From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?iso-8859-1?Q?H=E5kon_Flatval?= Newsgroups: gmane.emacs.devel Subject: Sv: Sv: Sv: Support for background transparency Date: Thu, 20 Jan 2022 19:52:33 +0000 Message-ID: References: <87wnlnptf2.fsf@gnus.org> <83h7bwybeg.fsf@gnu.org> <87y24t1ed1.fsf@gnus.org> <87wniv2pp8.fsf@yahoo.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="_004_PRAP251MB0688D5598FB165C53AD95A81CF5A9PRAP251MB0688EURP_" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="16601"; mail-complaints-to="usenet@ciao.gmane.io" Cc: "emacs-devel@gnu.org" To: Po Lu Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Jan 20 23:25:56 2022 Return-path: Envelope-to: ged-emacs-devel@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 1nAfsS-0004B8-DB for ged-emacs-devel@m.gmane-mx.org; Thu, 20 Jan 2022 23:25:56 +0100 Original-Received: from localhost ([::1]:44864 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nAfsR-0007Ds-9K for ged-emacs-devel@m.gmane-mx.org; Thu, 20 Jan 2022 17:25:55 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:46224) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nAdoV-0000gf-4i for emacs-devel@gnu.org; Thu, 20 Jan 2022 15:13:43 -0500 Original-Received: from mail-db8eur05olkn2093.outbound.protection.outlook.com ([40.92.89.93]:34273 helo=EUR05-DB8-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nAdoO-0005lI-89 for emacs-devel@gnu.org; Thu, 20 Jan 2022 15:13:39 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CGvrsP8i1n3aLrQA1d+PCi3HgKRJv+jIY7O/4CL4PTR3ZVZjMTR/heDk+fE46VnNJ224Oenf5PNUpKCjRsrFIZgYjk69/+cedSxkYQXBtWcQJC2/HuHd3eKPj0I+OXwC1+Cvgotqr9H/EOlX0QpmHWkkqp5b9+DfwelbfsvFNJYIlx9PLxZgGT9xob3zPm7NiNbdI4gzKbpuHJ9bXD66a7jBq4QnlmeKufX55kivcGtCWpGCu/3H9V69kYR+8QTaYkWlMIinzuaqCcinrX5eKTOE0jEK2OFzpJJEv0AePiLxppy6jLNIkoedJaTkN8eXSuYkk1UOxrnpIVhaXbYSVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=K368NWI8oXCyuX+0hHB6De50uGVMNWBNEjAgdD5pXPs=; b=bXK9KXDgOdtydYyMkdsXAce6YZetNq+BSW9t/rQImzx7R8RwWLLdgkyQLxZhcJvselN3oGGvLEni+99IZAKpH/vteSo/jzchf9/h6cU172fpSHB0tqPdLsO4rmPrpv7M9AnvLcA/uian+MSiKFq8KqObmud2AI5XoThRoQcR0NwqkP0xg5GB/7E9DAdNXOSaSgv97zyLLNB0cyyln4WsRzJM0iYuzW2okjjOvUkuIaUpSHk/vuZ2eHleJgI6T7qlQa8t/hxZj8fF+2KI/bOqrAMvIiI5npPCQ4INNVw7PNARW/y3NMQRHDWPeEzSOCMKEypodnWALmotIaCdt2xS7g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=K368NWI8oXCyuX+0hHB6De50uGVMNWBNEjAgdD5pXPs=; b=Mgl36carxQYNWyOo1m+WgkmmB5ja79nLcPb7q4kmg6aBeX4dL/Klm4SIJcaL62pRXLkLvAl7mHjNMJ8Q5TXVtZma1mOq5SwqH+fHWth0hKTN+EvRlJFMOJCAbTTtjmiKJoMsokKz9MnusORqsexy85ZGgFlAFU1oVnTjBHExvbzqYG21i/89nFmXpifUxAuOfysEIYZvV1sZd7/7H6rydpyPCoofyGbckUlP8Rt8SkdSs6E/NEVIRBbOZG+ZXAjjn+PG1oTc5QFAkbsfcpiEHKkGtI49OIBoJCAO4oP3A4HDCbB+EuPr3LiMYawhPAfYYSE311zawSEyT0QvBndtaA== Original-Received: from PRAP251MB0688.EURP251.PROD.OUTLOOK.COM (2603:10a6:102:293::21) by PAXP251MB0242.EURP251.PROD.OUTLOOK.COM (2603:10a6:102:209::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.7; Thu, 20 Jan 2022 19:52:33 +0000 Original-Received: from PRAP251MB0688.EURP251.PROD.OUTLOOK.COM ([fe80::15ff:34d8:e4d9:a23f]) by PRAP251MB0688.EURP251.PROD.OUTLOOK.COM ([fe80::15ff:34d8:e4d9:a23f%4]) with mapi id 15.20.4909.007; Thu, 20 Jan 2022 19:52:33 +0000 Thread-Topic: Sv: Sv: Support for background transparency Thread-Index: AQHX0bIys4Ov0x7yz0mL720z1uOE/qvzzpV2gCRO2lGAAJYAHYAFbgUTgAx6f/iAAH3QcoA/9LTYgAB+TBCAATfiRg== In-Reply-To: <87wniv2pp8.fsf@yahoo.com> Accept-Language: nb-NO, en-US Content-Language: nb-NO X-MS-Has-Attach: yes suggested_attachment_session_id: e911b3a7-173d-42d9-d2b5-9ca6c223864a x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [qdRNEyAr2urSTmDQVqO5R6ycYH7dzqmKzlrZEyt4mT0=] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 60cb0308-78f6-4d7e-8f7d-08d9dc4e669c x-ms-traffictypediagnostic: PAXP251MB0242:EE_ x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 03ylj6neaY7sLnzT6j83MJDZpkKafmKXq3OXds8gjhTnvlEiMtDMHrFL/sfqJVbRdtHGZOxxBRrqTrS142vRIflZYvmklG/tGhgMnrd5CS8K5poDlHQHIFUYlf56yQ1K7I0bwJbLPhHiAT1tcteeWlnM+JRRtZ2ICRql/IL8uCK4D5OzM+3QkeTsQ6KH7oLyWg8i0o5GRDttnpS9IErMM9oOP65J8OHDzbG+SyYBNjvgG7FJQ62wRQEchuhoBuEcWh6QdC1TfYiyuTa/eXrBp923usp01Pt5hChhwUw9FLMV5Q7wMerqlhzEGNZQpXxw7iJMkSsRS3XaDvd9iRm0b2UDd8pkizYjeI3P6B9lfDjkvRfv9X5emD35luwkWbVz1kOW+baUf7WxRmyROTPWYTrWOhtxU0Dyi+/5mkiUeBMXEgkFvr7HQiqOLOzAMU4iuTsN6Dzh8gsctG3Q305OvC2qoQwa2XEGHt1mLS384LQR6EHwTq0mr2xAYQ0d2xchhD6qFZ6yimNplYSZaqG0YbObr8FVnp7C9CaO2CkafKPswRayeQRzpkFMKCv8tRH470EBD2wknz1agefuKchh3Q== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?Fk3HuUqpdP+eVhMlNvHOlOcOGcc+OMkfFWZtsuLblAOKF1NySXmrDnOOFE?= =?iso-8859-1?Q?PB7fZ05fPLdaS1iDVf+GRlE/0nutkc8qiLsx7NSodqf13S2WhtbudSEe6p?= =?iso-8859-1?Q?5dNXJG5X86U6cClUd+yqc2levfaoifL5AF49Q/rz/h98Hobh9446kAWGEr?= =?iso-8859-1?Q?VkH1oFl900VGcdR6JuPH4POCXG5aaZXlfnci7M0X0PZj4b+jd1bDnXNLKD?= =?iso-8859-1?Q?0RKzOpVUYHmo2Eq/by/EM9hPsFNXLIz/1SnqkPWSNKi4xpBqNFyL+RREyT?= =?iso-8859-1?Q?1PbfYckd1aPdPWl99AF/RvcL4RAVFYlrDVp354pjC0Ig2gZuT/DYj+WxfP?= =?iso-8859-1?Q?ap0s/owEeREvE4jy+0EoGX+qNKbpXaib8Wo+x24Jp1rOk394Yu5r8hu7rG?= =?iso-8859-1?Q?/J+KhlKgZgnEj2kObXEnczVu//qBQfJOkDrNI7qBG8cggyRnr3L4nqt870?= =?iso-8859-1?Q?/DHpKFWm8vR4qdAolTz88Q9i8xiyEMVqrpEfGXNLUnGA3+gqivWap9O0z6?= =?iso-8859-1?Q?1lJnkp4JBCxYbnicXuN/Pidd73cmgLWVJtkqOPTjZsoYFtci04cEbWB+Qr?= =?iso-8859-1?Q?g9J3dYqKAxfoaWmtOikfu3plUDSNK2mAgKcPf0k7fhcjvkSxN+DcVoWSuC?= =?iso-8859-1?Q? X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-00b75.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PRAP251MB0688.EURP251.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 60cb0308-78f6-4d7e-8f7d-08d9dc4e669c X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Jan 2022 19:52:33.5950 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXP251MB0242 Received-SPF: pass client-ip=40.92.89.93; envelope-from=hkon20@hotmail.com; helo=EUR05-DB8-obe.outbound.protection.outlook.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:285058 Archived-At: --_004_PRAP251MB0688D5598FB165C53AD95A81CF5A9PRAP251MB0688EURP_ Content-Type: multipart/alternative; boundary="_000_PRAP251MB0688D5598FB165C53AD95A81CF5A9PRAP251MB0688EURP_" --_000_PRAP251MB0688D5598FB165C53AD95A81CF5A9PRAP251MB0688EURP_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Thanks for the thorough review! I have adressed your points in this new patch. I now run a check on the bit depth of the visual in the x_set_cr_source_wit= h_gc_background function. I'm not too happy about this solution, as it invo= lves two more calls to the X API, but perhaps it is acceptable. I have primarily considered GTK and Cairo when implementing this. Support f= or other build configurations do not work currently. It will require additi= onal treatment of e.g. the LUCID libs. I have looked a bit on such builds o= n the side, but currently have not shaped a plan to finish it. The preprocessor statements are to ensure nothing else is screwed up when u= sing 32-bit visuals. Again, I appreciate the feedback. Best regards, H=E5kon ________________________________ Fra: Po Lu Sendt: torsdag 20. januar 2022 01:52 Til: H=E5kon Flatval Kopi: Lars Ingebrigtsen ; emacs-devel@gnu.org Emne: Re: Sv: Sv: Support for background transparency H=E5kon Flatval writes: > I have attached a final patch. The only changes from the last one is a > small conflict resolution I did while rebasing today. > > Is everything ready to have it merged? And also, how does that happen? > Is the ball in your court, or does it require action on my end? I see some problems: > + /* This prevents GTK from painting the window's background, which > + would interfere with transparent background in some environments */ > + gtk_widget_set_app_paintable (wtop, TRUE); This must be under the conditional `!HAVE_PGTK'. > +#if defined (USE_GTK) && defined (USE_CAIRO) Why only Cairo? I see no reason this can't work on non-Cairo configurations, or Cairo configurations built without GTK. > + gui_set_alpha_background, In this case, please add the frame parameter handler to the rest of the terminal backends, even if it doesn't do anything: - pgtkfns.c - nsfns.c - w32fns.c - haikufns.c > + color.green / 65535.0, color.blue / 65535.0, f-= >alpha_background); > + > + cairo_set_operator (FRAME_CR_CONTEXT (f), CAIRO_OPERATOR_SOURCE); Cairo on XCB becomes _very_ slow if this is done and the visual has no alpha channel, so please make this conditional on both alpha being less than 1.0 and the display's visual actually having an alpha channel. Also, I see a hunk that only touches indentation and whitespace. Please remove the following whitespace-only change: > + > vinfo =3D XGetVisualInfo (dpy, VisualIDMask | VisualScreenMask, > &vinfo_template, &n_visuals); > + > if (n_visuals <=3D 0) > - fatal ("Can't get proper X visual info"); > + fatal ("Can't get proper X visual info"); Aside from that, LGTM. Thanks. --_000_PRAP251MB0688D5598FB165C53AD95A81CF5A9PRAP251MB0688EURP_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Thanks for the thorough review!

I have adressed your points in this new patch.

I now run a check on the bit depth of the visual in the x_set_cr_source_wit= h_gc_background function. I'm not too happy about this solution, as it invo= lves two more calls to the X API, but perhaps it is acceptable.

I have primarily considered GTK and Cairo when implementing this. Support f= or other build configurations do not work currently. It will require additi= onal treatment of e.g. the LUCID libs. I have looked a bit on such builds o= n the side, but currently have not shaped a plan to finish it.

The preprocessor statements are to ensure nothing else is screwed up when u= sing 32-bit visuals.

Again, I appreciate the feedback.

Best regards,
H=E5kon


Fra: Po Lu <luangruo@y= ahoo.com>
Sendt: torsdag 20. januar 2022 01:52
Til: H=E5kon Flatval <hkon20@hotmail.com>
Kopi: Lars Ingebrigtsen <larsi@gnus.org>; emacs-devel@gnu.org = <emacs-devel@gnu.org>
Emne: Re: Sv: Sv: Support for background transparency
 
H=E5kon Flatval <hkon20@hotmail.com> writes:=


> I have attached a final patch. The only changes from the last one is a=
> small conflict resolution I did while rebasing today.
>
> Is everything ready to have it merged? And also, how does that happen?=
> Is the ball in your court, or does it require action on my end?

I see some problems:

> +  /* This prevents GTK from painting the window's background, wh= ich
> +     would interfere with transparent background = in some environments */
> +  gtk_widget_set_app_paintable (wtop, TRUE);

This must be under the conditional `!HAVE_PGTK'.

> +#if defined (USE_GTK) && defined (USE_CAIRO)

Why only Cairo?  I see no reason this can't work on non-Cairo
configurations, or Cairo configurations built without GTK.

> +  gui_set_alpha_background,

In this case, please add the frame parameter handler to the rest of the
terminal backends, even if it doesn't do anything:

  - pgtkfns.c
  - nsfns.c
  - w32fns.c
  - haikufns.c

> +           &nb= sp;            = color.green / 65535.0, color.blue / 65535.0, f->alpha_background);
> +
> +  cairo_set_operator (FRAME_CR_CONTEXT (f), CAIRO_OPERATOR_SOURC= E);

Cairo on XCB becomes _very_ slow if this is done and the visual has no
alpha channel, so please make this conditional on both alpha being less
than 1.0 and the display's visual actually having an alpha channel.

Also, I see a hunk that only touches indentation and whitespace.  Plea= se
remove the following whitespace-only change:

> +
>        vinfo =3D XGetVisualInfo (dp= y, VisualIDMask | VisualScreenMask,
>            = ;            &n= bsp;     &vinfo_template, &n_visuals);
> +
>        if (n_visuals <=3D 0)
> -     fatal ("Can't get proper X visual info&= quot;);
> +       fatal ("Can't get proper X = visual info");

Aside from that, LGTM.  Thanks.
--_000_PRAP251MB0688D5598FB165C53AD95A81CF5A9PRAP251MB0688EURP_-- --_004_PRAP251MB0688D5598FB165C53AD95A81CF5A9PRAP251MB0688EURP_ Content-Type: text/x-patch; name="gdk-cairo-background-transparency-005.patch" Content-Description: gdk-cairo-background-transparency-005.patch Content-Disposition: attachment; filename="gdk-cairo-background-transparency-005.patch"; size=11809; creation-date="Thu, 20 Jan 2022 19:34:51 GMT"; modification-date="Thu, 20 Jan 2022 19:35:21 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL3NyYy9mcmFtZS5jIGIvc3JjL2ZyYW1lLmMKaW5kZXggOGFhZmY5NDliYS4u YzMzMWNmZjMyYiAxMDA2NDQKLS0tIGEvc3JjL2ZyYW1lLmMKKysrIGIvc3JjL2ZyYW1lLmMKQEAg LTM5MDcsNiArMzkwNyw3IEBAIERFRlVOICgiZnJhbWUtc2NhbGUtZmFjdG9yIiwgRmZyYW1lX3Nj YWxlX2ZhY3RvciwgU2ZyYW1lX3NjYWxlX2ZhY3RvciwKICAgeyJ6LWdyb3VwIiwJCQlTWU1CT0xf SU5ERVggKFF6X2dyb3VwKX0sCiAgIHsib3ZlcnJpZGUtcmVkaXJlY3QiLAkJU1lNQk9MX0lOREVY IChRb3ZlcnJpZGVfcmVkaXJlY3QpfSwKICAgeyJuby1zcGVjaWFsLWdseXBocyIsCQlTWU1CT0xf SU5ERVggKFFub19zcGVjaWFsX2dseXBocyl9LAorICB7ImFscGhhLWJhY2tncm91bmQiLCAgICAg ICAgICBTWU1CT0xfSU5ERVggKFFhbHBoYV9iYWNrZ3JvdW5kKX0sCiAjaWZkZWYgTlNfSU1QTF9D T0NPQQogICB7Im5zLWFwcGVhcmFuY2UiLAkJU1lNQk9MX0lOREVYIChRbnNfYXBwZWFyYW5jZSl9 LAogICB7Im5zLXRyYW5zcGFyZW50LXRpdGxlYmFyIiwJU1lNQk9MX0lOREVYIChRbnNfdHJhbnNw YXJlbnRfdGl0bGViYXIpfSwKQEAgLTUwMjQsNiArNTAyNSwzMyBAQCBndWlfc2V0X2FscGhhIChz dHJ1Y3QgZnJhbWUgKmYsIExpc3BfT2JqZWN0IGFyZywgTGlzcF9PYmplY3Qgb2xkdmFsKQogICAg IH0KIH0KIAordm9pZAorZ3VpX3NldF9hbHBoYV9iYWNrZ3JvdW5kIChzdHJ1Y3QgZnJhbWUgKmYs IExpc3BfT2JqZWN0IGFyZywgTGlzcF9PYmplY3Qgb2xkdmFsKQoreworICBkb3VibGUgYWxwaGEg PSAxLjA7CisKKyAgaWYgKE5JTFAgKGFyZykpCisgICAgYWxwaGEgPSAxLjA7CisgIGVsc2UgaWYg KEZMT0FUUCAoYXJnKSkKKyAgICB7CisgICAgICBhbHBoYSA9IFhGTE9BVF9EQVRBIChhcmcpOwor ICAgICAgaWYgKCEgKDAgPD0gYWxwaGEgJiYgYWxwaGEgPD0gMS4wKSkKKwlhcmdzX291dF9vZl9y YW5nZSAobWFrZV9mbG9hdCAoMC4wKSwgbWFrZV9mbG9hdCAoMS4wKSk7CisgICAgfQorICBlbHNl IGlmIChGSVhOVU1QIChhcmcpKQorICAgIHsKKyAgICAgIEVNQUNTX0lOVCBpYWxwaGEgPSBYRklY TlVNIChhcmcpOworICAgICAgaWYgKCEgKDAgPD0gaWFscGhhICYmIGlhbHBoYSA8PSAxMDApKQor CWFyZ3Nfb3V0X29mX3JhbmdlIChtYWtlX2ZpeG51bSAoMCksIG1ha2VfZml4bnVtICgxMDApKTsK KyAgICAgIGFscGhhID0gaWFscGhhIC8gMTAwLjA7CisgICAgfQorICBlbHNlCisgICAgd3Jvbmdf dHlwZV9hcmd1bWVudCAoUW51bWJlcnAsIGFyZyk7CisKKyAgZi0+YWxwaGFfYmFja2dyb3VuZCA9 IGFscGhhOworCisgIFNFVF9GUkFNRV9HQVJCQUdFRCAoZik7Cit9CiAKIC8qKgogICogZ3VpX3Nl dF9ub19zcGVjaWFsX2dseXBoczoKQEAgLTYxMDAsNiArNjEyOCw3IEBAIHN5bXNfb2ZfZnJhbWUg KHZvaWQpCiAjZW5kaWYKIAogICBERUZTWU0gKFFhbHBoYSwgImFscGhhIik7CisgIERFRlNZTSAo UWFscGhhX2JhY2tncm91bmQsICJhbHBoYS1iYWNrZ3JvdW5kIik7CiAgIERFRlNZTSAoUWF1dG9f bG93ZXIsICJhdXRvLWxvd2VyIik7CiAgIERFRlNZTSAoUWF1dG9fcmFpc2UsICJhdXRvLXJhaXNl Iik7CiAgIERFRlNZTSAoUWJvcmRlcl9jb2xvciwgImJvcmRlci1jb2xvciIpOwpkaWZmIC0tZ2l0 IGEvc3JjL2ZyYW1lLmggYi9zcmMvZnJhbWUuaAppbmRleCBjYjJmNThlMjYxLi41ZDVmMjEyMmZi IDEwMDY0NAotLS0gYS9zcmMvZnJhbWUuaAorKysgYi9zcmMvZnJhbWUuaApAQCAtNjM3LDYgKzYz Nyw5IEBAICNkZWZpbmUgRU1BQ1NfRlJBTUVfSAogICAgICBOZWdhdGl2ZSB2YWx1ZXMgbWVhbiBu b3QgdG8gY2hhbmdlIGFscGhhLiAgKi8KICAgZG91YmxlIGFscGhhWzJdOwogCisgIC8qIEJhY2tn cm91bmQgb3BhY2l0eSAqLworICBkb3VibGUgYWxwaGFfYmFja2dyb3VuZDsKKwogICAvKiBFeHBv bmVudCBmb3IgZ2FtbWEgY29ycmVjdGlvbiBvZiBjb2xvcnMuICAxLyhWSUVXSU5HX0dBTU1BICoK ICAgICAgU0NSRUVOX0dBTU1BKSB3aGVyZSB2aWV3aW5nX2dhbW1hIGlzIDAuNDU0NSBhbmQgU0NS RUVOX0dBTU1BIGlzIGEKICAgICAgZnJhbWUgcGFyYW1ldGVyLiAgMCBtZWFucyBkb24ndCBkbyBn YW1tYSBjb3JyZWN0aW9uLiAgKi8KQEAgLTE2NjksNiArMTY3Miw3IEBAICNkZWZpbmUgRU1BQ1Nf Q0xBU1MgIkVtYWNzIgogZXh0ZXJuIGxvbmcgZ3VpX2ZpZ3VyZV93aW5kb3dfc2l6ZSAoc3RydWN0 IGZyYW1lICosIExpc3BfT2JqZWN0LCBib29sLCBib29sKTsKIAogZXh0ZXJuIHZvaWQgZ3VpX3Nl dF9hbHBoYSAoc3RydWN0IGZyYW1lICosIExpc3BfT2JqZWN0LCBMaXNwX09iamVjdCk7CitleHRl cm4gdm9pZCBndWlfc2V0X2FscGhhX2JhY2tncm91bmQgKHN0cnVjdCBmcmFtZSAqLCBMaXNwX09i amVjdCwgTGlzcF9PYmplY3QpOwogZXh0ZXJuIHZvaWQgZ3VpX3NldF9ub19zcGVjaWFsX2dseXBo cyAoc3RydWN0IGZyYW1lICosIExpc3BfT2JqZWN0LCBMaXNwX09iamVjdCk7CiAKIGV4dGVybiB2 b2lkIHZhbGlkYXRlX3hfcmVzb3VyY2VfbmFtZSAodm9pZCk7CmRpZmYgLS1naXQgYS9zcmMvZ3Rr dXRpbC5jIGIvc3JjL2d0a3V0aWwuYwppbmRleCAzY2I4Y2QxNTMzLi5iZDM0OTk5NjMwIDEwMDY0 NAotLS0gYS9zcmMvZ3RrdXRpbC5jCisrKyBiL3NyYy9ndGt1dGlsLmMKQEAgLTE0NjcsNiArMTQ2 NywxMCBAQCB4Z19jcmVhdGVfZnJhbWVfd2lkZ2V0cyAoc3RydWN0IGZyYW1lICpmKQogICAgIH0K ICAgd3RvcCA9IGd0a193aW5kb3dfbmV3ICh0eXBlKTsKICAgZ3RrX3dpZGdldF9hZGRfZXZlbnRz ICh3dG9wLCBHREtfQUxMX0VWRU5UU19NQVNLKTsKKworICAvKiBUaGlzIHByZXZlbnRzIEdUSyBm cm9tIHBhaW50aW5nIHRoZSB3aW5kb3cncyBiYWNrZ3JvdW5kLCB3aGljaAorICAgICB3b3VsZCBp bnRlcmZlcmUgd2l0aCB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kIGluIHNvbWUgZW52aXJvbm1lbnRz ICovCisgIGd0a193aWRnZXRfc2V0X2FwcF9wYWludGFibGUgKHd0b3AsIFRSVUUpOwogI2VuZGlm CiAKICAgLyogZ3RrX3dpbmRvd19zZXRfaGFzX3Jlc2l6ZV9ncmlwIGlzIGEgR3RrKyAzLjAgZnVu Y3Rpb24gYnV0IFVidW50dQpAQCAtMTU4Nyw2ICsxNTkxLDE1IEBAIHhnX2NyZWF0ZV9mcmFtZV93 aWRnZXRzIChzdHJ1Y3QgZnJhbWUgKmYpCiAjZW5kaWYKICAgICAgICAgICAgICAgICAgICAgICAg ICB8IEdES19WSVNJQklMSVRZX05PVElGWV9NQVNLKTsKIAorICBHZGtTY3JlZW4gKnNjcmVlbiA9 IGd0a193aWRnZXRfZ2V0X3NjcmVlbiAod3RvcCk7CisKKyAgaWYgKHhfZ2V0X2JpdF9kZXB0aCAo ZikgPT0gMzIpCisgICAgeworICAgICAgR2RrVmlzdWFsICp2aXN1YWwgPSBnZGtfc2NyZWVuX2dl dF9yZ2JhX3Zpc3VhbCAoc2NyZWVuKTsKKyAgICAgIGd0a193aWRnZXRfc2V0X3Zpc3VhbCAod3Rv cCwgdmlzdWFsKTsKKyAgICAgIGd0a193aWRnZXRfc2V0X3Zpc3VhbCAod2ZpeGVkLCB2aXN1YWwp OworICAgIH0KKwogI2lmbmRlZiBIQVZFX1BHVEsKICAgLyogTXVzdCByZWFsaXplIHRoZSB3aW5k b3dzIHNvIHRoZSBYIHdpbmRvdyBnZXRzIGNyZWF0ZWQuICBJdCBpcyB1c2VkCiAgICAgIGJ5IGNh bGxlcnMgb2YgdGhpcyBmdW5jdGlvbi4gICovCkBAIC0xNjUxLDcgKzE2NjQsNiBAQCB4Z19jcmVh dGVfZnJhbWVfd2lkZ2V0cyAoc3RydWN0IGZyYW1lICpmKQogI2VuZGlmCiAKICAgewotICAgIEdk a1NjcmVlbiAqc2NyZWVuID0gZ3RrX3dpZGdldF9nZXRfc2NyZWVuICh3dG9wKTsKICAgICBHdGtT ZXR0aW5ncyAqZ3MgPSBndGtfc2V0dGluZ3NfZ2V0X2Zvcl9zY3JlZW4gKHNjcmVlbik7CiAgICAg LyogT25seSBjb25uZWN0IHRoaXMgc2lnbmFsIG9uY2UgcGVyIHNjcmVlbi4gICovCiAgICAgaWYg KCEgZ19zaWduYWxfaGFuZGxlcl9maW5kIChHX09CSkVDVCAoZ3MpLApkaWZmIC0tZ2l0IGEvc3Jj L2hhaWt1Zm5zLmMgYi9zcmMvaGFpa3VmbnMuYwppbmRleCA1OGEyZTFkNDY0Li43MTE3Mjk2YTcz IDEwMDY0NAotLS0gYS9zcmMvaGFpa3VmbnMuYworKysgYi9zcmMvaGFpa3VmbnMuYwpAQCAtMjYw OSw3ICsyNjA5LDggQEAgREVGVU4gKCJoYWlrdS1mcmFtZS1yZXN0YWNrIiwgRmhhaWt1X2ZyYW1l X3Jlc3RhY2ssIFNoYWlrdV9mcmFtZV9yZXN0YWNrLCAyLCAzLAogICAgIGhhaWt1X3NldF9ub19h Y2NlcHRfZm9jdXMsCiAgICAgTlVMTCwgLyogc2V0IHogZ3JvdXAgKi8KICAgICBoYWlrdV9zZXRf b3ZlcnJpZGVfcmVkaXJlY3QsCi0gICAgZ3VpX3NldF9ub19zcGVjaWFsX2dseXBocworICAgIGd1 aV9zZXRfbm9fc3BlY2lhbF9nbHlwaHMsCisgICAgZ3VpX3NldF9hbHBoYV9iYWNrZ3JvdW5kLAog ICB9OwogCiB2b2lkCmRpZmYgLS1naXQgYS9zcmMvbnNmbnMubSBiL3NyYy9uc2Zucy5tCmluZGV4 IDExMTMyYTI5NGEuLmE0ZjNmMDkxZmMgMTAwNjQ0Ci0tLSBhL3NyYy9uc2Zucy5tCisrKyBiL3Ny Yy9uc2Zucy5tCkBAIC0xMDA0LDYgKzEwMDQsNyBAQCBUdXJuIHRoZSBpbnB1dCBtZW51IChhbiBO U01lbnUpIGludG8gYSBsaXNwIGxpc3QgZm9yIHRyYWNraW5nIG9uIGxpc3Agc2lkZS4KICAgbnNf c2V0X3pfZ3JvdXAsCiAgIDAsIC8qIHhfc2V0X292ZXJyaWRlX3JlZGlyZWN0ICovCiAgIGd1aV9z ZXRfbm9fc3BlY2lhbF9nbHlwaHMsCisgIGd1aV9zZXRfYWxwaGFfYmFja2dyb3VuZCwKICNpZmRl ZiBOU19JTVBMX0NPQ09BCiAgIG5zX3NldF9hcHBlYXJhbmNlLAogICBuc19zZXRfdHJhbnNwYXJl bnRfdGl0bGViYXIsCmRpZmYgLS1naXQgYS9zcmMvcGd0a2Zucy5jIGIvc3JjL3BndGtmbnMuYwpp bmRleCA5YzM3YzA0ODEwLi5iNDY0MjkzNzllIDEwMDY0NAotLS0gYS9zcmMvcGd0a2Zucy5jCisr KyBiL3NyYy9wZ3RrZm5zLmMKQEAgLTEwNDMsNiArMTA0Myw3IEBAIGZyYW1lcyAoZWFjaCBvZiB3 aGljaCBjb3JyZXNwb25kcyB0byBvbmUgcGFnZSkuICBFYWNoIGZyYW1lIHNob3VsZCBiZQogICB4 X3NldF96X2dyb3VwLAogICB4X3NldF9vdmVycmlkZV9yZWRpcmVjdCwKICAgZ3VpX3NldF9ub19z cGVjaWFsX2dseXBocywKKyAgZ3VpX3NldF9hbHBoYV9iYWNrZ3JvdW5kLAogfTsKIAogCmRpZmYg LS1naXQgYS9zcmMvdzMyZm5zLmMgYi9zcmMvdzMyZm5zLmMKaW5kZXggMzdmOWI4MTNjNi4uYTM2 MGZhZWZhOCAxMDA2NDQKLS0tIGEvc3JjL3czMmZucy5jCisrKyBiL3NyYy93MzJmbnMuYwpAQCAt MTA0MzYsNiArMTA0MzYsNyBAQCB3MzJfZ2V0X3Jlc291cmNlIChjb25zdCBjaGFyICprZXksIGNv bnN0IGNoYXIgKm5hbWUsIExQRFdPUkQgbHBkd3R5cGUpCiAgIHczMl9zZXRfel9ncm91cCwKICAg MCwgLyogeF9zZXRfb3ZlcnJpZGVfcmVkaXJlY3QgKi8KICAgZ3VpX3NldF9ub19zcGVjaWFsX2ds eXBocywKKyAgZ3VpX3NldF9hbHBoYV9iYWNrZ3JvdW5kLAogfTsKIAogdm9pZApkaWZmIC0tZ2l0 IGEvc3JjL3hmbnMuYyBiL3NyYy94Zm5zLmMKaW5kZXggYTE0MzVkNTM1MS4uZmNhMmJhZGI3OSAx MDA2NDQKLS0tIGEvc3JjL3hmbnMuYworKysgYi9zcmMveGZucy5jCkBAIC00NTY5LDYgKzQ1Njks OCBAQCBERUZVTiAoIngtY3JlYXRlLWZyYW1lIiwgRnhfY3JlYXRlX2ZyYW1lLCBTeF9jcmVhdGVf ZnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgUkVTX1RZUEVfTlVNQkVSKTsKICAgZ3Vp X2RlZmF1bHRfcGFyYW1ldGVyIChmLCBwYXJtcywgUWFscGhhLCBRbmlsLAogICAgICAgICAgICAg ICAgICAgICAgICAgICJhbHBoYSIsICJBbHBoYSIsIFJFU19UWVBFX05VTUJFUik7CisgIGd1aV9k ZWZhdWx0X3BhcmFtZXRlciAoZiwgcGFybXMsIFFhbHBoYV9iYWNrZ3JvdW5kLCBRbmlsLAorCQkJ ICJhbHBoYV9iYWNrZ3JvdW5kIiwgIkFscGhhQmFja2dyb3VuZCIsIFJFU19UWVBFX05VTUJFUik7 CiAKICAgaWYgKCFOSUxQIChwYXJlbnRfZnJhbWUpKQogICAgIHsKQEAgLTYzNDIsMTAgKzYzNDQs MjkgQEAgc2VsZWN0X3Zpc3VhbCAoc3RydWN0IHhfZGlzcGxheV9pbmZvICpkcHlpbmZvKQogICAg ICAgaW50IG5fdmlzdWFsczsKICAgICAgIFhWaXN1YWxJbmZvICp2aW5mbywgdmluZm9fdGVtcGxh dGU7CiAKLSAgICAgIGRweWluZm8tPnZpc3VhbCA9IERlZmF1bHRWaXN1YWxPZlNjcmVlbiAoc2Ny ZWVuKTsKKyAgICAgIHZpbmZvX3RlbXBsYXRlLnNjcmVlbiA9IFhTY3JlZW5OdW1iZXJPZlNjcmVl biAoc2NyZWVuKTsKKworI2lmIGRlZmluZWQgKFVTRV9HVEspICYmIGRlZmluZWQgKFVTRV9DQUlS TykKKyAgICAgIC8qIEZpcnN0IGF0dGVtcHQgdG8gdXNlIDMyLWJpdCB2aXN1YWwgaWYgYXZhaWxh YmxlICovCisKKyAgICAgIHZpbmZvX3RlbXBsYXRlLmRlcHRoID0gMzI7CisKKyAgICAgIHZpbmZv ID0gWEdldFZpc3VhbEluZm8gKGRweSwgVmlzdWFsU2NyZWVuTWFzayB8IFZpc3VhbERlcHRoTWFz aywKKwkJCSAgICAgICZ2aW5mb190ZW1wbGF0ZSwgJm5fdmlzdWFscyk7CiAKKyAgICAgIGlmIChu X3Zpc3VhbHMgPiAwKQorCXsKKwkgIGRweWluZm8tPm5fcGxhbmVzID0gdmluZm8tPmRlcHRoOwor CSAgZHB5aW5mby0+dmlzdWFsID0gdmluZm8tPnZpc3VhbDsKKwkgIFhGcmVlICh2aW5mbyk7CisJ ICByZXR1cm47CisJfQorCisjZW5kaWYgLy8gZGVmaW5lZCAoVVNFX0dUSykgJiYgZGVmaW5lZCAo VVNFX0NBSVJPKQorCisgICAgICAvKiAzMi1iaXQgdmlzdWFsIG5vdCBhdmFpbGFibGUsIGZhbGxi YWNrIHRvIGRlZmF1bHQgdmlzdWFsICovCisgICAgICBkcHlpbmZvLT52aXN1YWwgPSBEZWZhdWx0 VmlzdWFsT2ZTY3JlZW4gKHNjcmVlbik7CiAgICAgICB2aW5mb190ZW1wbGF0ZS52aXN1YWxpZCA9 IFhWaXN1YWxJREZyb21WaXN1YWwgKGRweWluZm8tPnZpc3VhbCk7Ci0gICAgICB2aW5mb190ZW1w bGF0ZS5zY3JlZW4gPSBYU2NyZWVuTnVtYmVyT2ZTY3JlZW4gKHNjcmVlbik7CiAgICAgICB2aW5m byA9IFhHZXRWaXN1YWxJbmZvIChkcHksIFZpc3VhbElETWFzayB8IFZpc3VhbFNjcmVlbk1hc2ss CiAJCQkgICAgICAmdmluZm9fdGVtcGxhdGUsICZuX3Zpc3VhbHMpOwogICAgICAgaWYgKG5fdmlz dWFscyA8PSAwKQpAQCAtNzIwMyw2ICs3MjI0LDggQEAgeF9jcmVhdGVfdGlwX2ZyYW1lIChzdHJ1 Y3QgeF9kaXNwbGF5X2luZm8gKmRweWluZm8sIExpc3BfT2JqZWN0IHBhcm1zKQogICAgICAgICAg ICAgICAgICAgICAgICAgICJjdXJzb3JUeXBlIiwgIkN1cnNvclR5cGUiLCBSRVNfVFlQRV9TWU1C T0wpOwogICBndWlfZGVmYXVsdF9wYXJhbWV0ZXIgKGYsIHBhcm1zLCBRYWxwaGEsIFFuaWwsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgImFscGhhIiwgIkFscGhhIiwgUkVTX1RZUEVfTlVNQkVS KTsKKyAgZ3VpX2RlZmF1bHRfcGFyYW1ldGVyIChmLCBwYXJtcywgUWFscGhhX2JhY2tncm91bmQs IFFuaWwsCisJCQkgImFscGhhX2JhY2tncm91bmQiLCAiQWxwaGFCYWNrZ3JvdW5kIiwgUkVTX1RZ UEVfTlVNQkVSKTsKIAogICAvKiBBZGQgYHRvb2x0aXAnIGZyYW1lIHBhcmFtZXRlcidzIGRlZmF1 bHQgdmFsdWUuICovCiAgIGlmIChOSUxQIChGZnJhbWVfcGFyYW1ldGVyIChmcmFtZSwgUXRvb2x0 aXApKSkKQEAgLTg1MzEsNiArODU1NCw3IEBAIERFRlVOICgieC1ndGstZGVidWciLCBGeF9ndGtf ZGVidWcsIFN4X2d0a19kZWJ1ZywgMSwgMSwgMCwKICAgeF9zZXRfel9ncm91cCwKICAgeF9zZXRf b3ZlcnJpZGVfcmVkaXJlY3QsCiAgIGd1aV9zZXRfbm9fc3BlY2lhbF9nbHlwaHMsCisgIGd1aV9z ZXRfYWxwaGFfYmFja2dyb3VuZCwKIH07CiAKIHZvaWQKZGlmZiAtLWdpdCBhL3NyYy94dGVybS5j IGIvc3JjL3h0ZXJtLmMKaW5kZXggNWFkYmYyMTBiZS4uNTA3ZGFlNjcwZSAxMDA2NDQKLS0tIGEv c3JjL3h0ZXJtLmMKKysrIGIvc3JjL3h0ZXJtLmMKQEAgLTgzNiwxMiArODM2LDI0IEBAIHhfc2V0 X2NyX3NvdXJjZV93aXRoX2djX2JhY2tncm91bmQgKHN0cnVjdCBmcmFtZSAqZiwgR0MgZ2MpCiB7 CiAgIFhHQ1ZhbHVlcyB4Z2N2OwogICBYQ29sb3IgY29sb3I7CisgIHVuc2lnbmVkIGludCBkZXB0 aDsKIAogICBYR2V0R0NWYWx1ZXMgKEZSQU1FX1hfRElTUExBWSAoZiksIGdjLCBHQ0JhY2tncm91 bmQsICZ4Z2N2KTsKICAgY29sb3IucGl4ZWwgPSB4Z2N2LmJhY2tncm91bmQ7CisKICAgeF9xdWVy eV9jb2xvcnMgKGYsICZjb2xvciwgMSk7Ci0gIGNhaXJvX3NldF9zb3VyY2VfcmdiIChGUkFNRV9D Ul9DT05URVhUIChmKSwgY29sb3IucmVkIC8gNjU1MzUuMCwKLQkJCWNvbG9yLmdyZWVuIC8gNjU1 MzUuMCwgY29sb3IuYmx1ZSAvIDY1NTM1LjApOworCisgIGRlcHRoID0geF9nZXRfYml0X2RlcHRo IChmKTsKKworICBpZiAoZi0+YWxwaGFfYmFja2dyb3VuZCA8IDEuMCAmJiBkZXB0aCA9PSAzMikg eworICAgIGNhaXJvX3NldF9zb3VyY2VfcmdiYSAoRlJBTUVfQ1JfQ09OVEVYVCAoZiksIGNvbG9y LnJlZCAvIDY1NTM1LjAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvci5ncmVlbiAv IDY1NTM1LjAsIGNvbG9yLmJsdWUgLyA2NTUzNS4wLCBmLT5hbHBoYV9iYWNrZ3JvdW5kKTsKKwor ICAgIGNhaXJvX3NldF9vcGVyYXRvciAoRlJBTUVfQ1JfQ09OVEVYVCAoZiksIENBSVJPX09QRVJB VE9SX1NPVVJDRSk7CisgIH0gZWxzZSB7CisgICAgY2Fpcm9fc2V0X3NvdXJjZV9yZ2IgKEZSQU1F X0NSX0NPTlRFWFQgKGYpLCBjb2xvci5yZWQgLyA2NTUzNS4wLAorICAgICAgICAgICAgICAgICAg ICAgICAgICBjb2xvci5ncmVlbiAvIDY1NTM1LjAsIGNvbG9yLmJsdWUgLyA2NTUzNS4wKTsKKyAg fQogfQogCiBzdGF0aWMgY29uc3QgY2Fpcm9fdXNlcl9kYXRhX2tleV90IHhsaWJfc3VyZmFjZV9r ZXksIHNhdmVkX2RyYXdhYmxlX2tleTsKQEAgLTEyNTQsNiArMTI2NiwyOSBAQCB4X2ZpbGxfcmVj dGFuZ2xlIChzdHJ1Y3QgZnJhbWUgKmYsIEdDIGdjLCBpbnQgeCwgaW50IHksIGludCB3aWR0aCwg aW50IGhlaWdodCkKICNlbmRpZgogfQogCisKK3N0YXRpYyB2b2lkCit4X2NsZWFyX3JlY3Rhbmds ZSAoc3RydWN0IGZyYW1lICpmLCBHQyBnYywgaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBo ZWlnaHQpCit7CisjaWZkZWYgVVNFX0NBSVJPCisgIGNhaXJvX3QgKmNyOworCisgIGNyID0geF9i ZWdpbl9jcl9jbGlwIChmLCBnYyk7CisgIHhfc2V0X2NyX3NvdXJjZV93aXRoX2djX2JhY2tncm91 bmQgKGYsIGdjKTsKKyAgY2Fpcm9fcmVjdGFuZ2xlIChjciwgeCwgeSwgd2lkdGgsIGhlaWdodCk7 CisgIGNhaXJvX2ZpbGwgKGNyKTsKKyAgeF9lbmRfY3JfY2xpcCAoZik7CisjZWxzZQorICBYR0NW YWx1ZXMgeGdjdjsKKyAgRGlzcGxheSAqZHB5ID0gRlJBTUVfWF9ESVNQTEFZIChmKTsKKyAgWEdl dEdDVmFsdWVzIChkcHksIGdjLCBHQ0JhY2tncm91bmQgfCBHQ0ZvcmVncm91bmQsICZ4Z2N2KTsK KyAgWFNldEZvcmVncm91bmQgKGRweSwgZ2MsIHhnY3YuYmFja2dyb3VuZCk7CisgIFhGaWxsUmVj dGFuZ2xlIChkcHksIEZSQU1FX1hfRFJBV0FCTEUgKGYpLAorCQkgIGdjLCB4LCB5LCB3aWR0aCwg aGVpZ2h0KTsKKyAgWFNldEZvcmVncm91bmQgKGRweSwgZ2MsIHhnY3YuZm9yZWdyb3VuZCk7Cisj ZW5kaWYKK30KKwogc3RhdGljIHZvaWQKIHhfZHJhd19yZWN0YW5nbGUgKHN0cnVjdCBmcmFtZSAq ZiwgR0MgZ2MsIGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogewpAQCAtMTgz MCw5ICsxODY1LDkgQEAgeF9kcmF3X2ZyaW5nZV9iaXRtYXAgKHN0cnVjdCB3aW5kb3cgKncsIHN0 cnVjdCBnbHlwaF9yb3cgKnJvdywgc3RydWN0IGRyYXdfZnJpbmcKICAgICAgIGlmIChmYWNlLT5z dGlwcGxlKQogCVhTZXRGaWxsU3R5bGUgKGRpc3BsYXksIGZhY2UtPmdjLCBGaWxsT3BhcXVlU3Rp cHBsZWQpOwogICAgICAgZWxzZQotCVhTZXRGb3JlZ3JvdW5kIChkaXNwbGF5LCBmYWNlLT5nYywg ZmFjZS0+YmFja2dyb3VuZCk7CisJWFNldEJhY2tncm91bmQgKGRpc3BsYXksIGZhY2UtPmdjLCBm YWNlLT5iYWNrZ3JvdW5kKTsKIAotICAgICAgeF9maWxsX3JlY3RhbmdsZSAoZiwgZmFjZS0+Z2Ms IHAtPmJ4LCBwLT5ieSwgcC0+bngsIHAtPm55KTsKKyAgICAgIHhfY2xlYXJfcmVjdGFuZ2xlIChm LCBmYWNlLT5nYywgcC0+YngsIHAtPmJ5LCBwLT5ueCwgcC0+bnkpOwogCiAgICAgICBpZiAoIWZh Y2UtPnN0aXBwbGUpCiAJWFNldEZvcmVncm91bmQgKGRpc3BsYXksIGZhY2UtPmdjLCBmYWNlLT5m b3JlZ3JvdW5kKTsKQEAgLTIxMzMsMTIgKzIxNjgsNyBAQCB4X2NvbXB1dGVfZ2x5cGhfc3RyaW5n X292ZXJoYW5ncyAoc3RydWN0IGdseXBoX3N0cmluZyAqcykKIHN0YXRpYyB2b2lkCiB4X2NsZWFy X2dseXBoX3N0cmluZ19yZWN0IChzdHJ1Y3QgZ2x5cGhfc3RyaW5nICpzLCBpbnQgeCwgaW50IHks IGludCB3LCBpbnQgaCkKIHsKLSAgRGlzcGxheSAqZGlzcGxheSA9IEZSQU1FX1hfRElTUExBWSAo cy0+Zik7Ci0gIFhHQ1ZhbHVlcyB4Z2N2OwotICBYR2V0R0NWYWx1ZXMgKGRpc3BsYXksIHMtPmdj LCBHQ0ZvcmVncm91bmQgfCBHQ0JhY2tncm91bmQsICZ4Z2N2KTsKLSAgWFNldEZvcmVncm91bmQg KGRpc3BsYXksIHMtPmdjLCB4Z2N2LmJhY2tncm91bmQpOwotICB4X2ZpbGxfcmVjdGFuZ2xlIChz LT5mLCBzLT5nYywgeCwgeSwgdywgaCk7Ci0gIFhTZXRGb3JlZ3JvdW5kIChkaXNwbGF5LCBzLT5n YywgeGdjdi5mb3JlZ3JvdW5kKTsKKyAgeF9jbGVhcl9yZWN0YW5nbGUgKHMtPmYsIHMtPmdjLCB4 LCB5LCB3LCBoKTsKIH0KIAogCkBAIC00MDE5LDYgKzQwNDksMjcgQEAgeF9nZXRfc2NhbGVfZmFj dG9yKERpc3BsYXkgKmRpc3AsIGludCAqc2NhbGVfeCwgaW50ICpzY2FsZV95KQogICAgIH0KIH0K IAordW5zaWduZWQgaW50Cit4X2dldF9iaXRfZGVwdGggKHN0cnVjdCBmcmFtZSAqZikKK3sKKyAg VmlzdWFsICp2aXN1YWwgPSBGUkFNRV9YX1ZJU1VBTCAoZik7CisgIFZpc3VhbElEIHZpc3VhbF9p ZCA9IFhWaXN1YWxJREZyb21WaXN1YWwgKHZpc3VhbCk7CisKKyAgWFZpc3VhbEluZm8gdmluZm9f dGVtcGxhdGU7CisgIHZpbmZvX3RlbXBsYXRlLnZpc3VhbGlkID0gdmlzdWFsX2lkOworCisgIGlu dCBudW1faXRlbXM7CisKKyAgWFZpc3VhbEluZm8gKnZpc3VhbF9pbmZvcyA9IFhHZXRWaXN1YWxJ bmZvIChGUkFNRV9YX0RJU1BMQVkgKGYpLAorCQkJCQkgICAgICBWaXN1YWxJRE1hc2ssCisJCQkJ CSAgICAgICZ2aW5mb190ZW1wbGF0ZSwKKwkJCQkJICAgICAgJm51bV9pdGVtcyk7CisKKyAgZWFz c2VydCAobnVtX2l0ZW1zID4gMCk7CisKKyAgcmV0dXJuIHZpc3VhbF9pbmZvc1swXS5kZXB0aDsK K30KKwogLyoKICAgIERyYXcgYSB3YXZ5IGxpbmUgdW5kZXIgUy4gVGhlIHdhdmUgZmlsbHMgd2F2 ZV9oZWlnaHQgcGl4ZWxzIGZyb20geTAuCiAKZGlmZiAtLWdpdCBhL3NyYy94dGVybS5oIGIvc3Jj L3h0ZXJtLmgKaW5kZXggMjZiMjg1MTU5MC4uNzg5OWQ0ZjI2NCAxMDA2NDQKLS0tIGEvc3JjL3h0 ZXJtLmgKKysrIGIvc3JjL3h0ZXJtLmgKQEAgLTExNTUsNiArMTE1NSw3IEBAICNkZWZpbmUgU0VM RUNUSU9OX0VWRU5UX1RJTUUoZXZlbnRwKQlcCiB0eXBlZGVmIHZvaWQgKCp4X3NwZWNpYWxfZXJy b3JfaGFuZGxlcikoRGlzcGxheSAqLCBYRXJyb3JFdmVudCAqLCBjaGFyICosCiAJCQkJCXZvaWQg Kik7CiAKK2V4dGVybiB1bnNpZ25lZCBpbnQgeF9nZXRfYml0X2RlcHRoIChzdHJ1Y3QgZnJhbWUg KmYpOwogZXh0ZXJuIGJvb2wgeF90ZXh0X2ljb24gKHN0cnVjdCBmcmFtZSAqLCBjb25zdCBjaGFy ICopOwogZXh0ZXJuIHZvaWQgeF9jYXRjaF9lcnJvcnMgKERpc3BsYXkgKik7CiBleHRlcm4gdm9p ZCB4X2NhdGNoX2Vycm9yc193aXRoX2hhbmRsZXIgKERpc3BsYXkgKiwgeF9zcGVjaWFsX2Vycm9y X2hhbmRsZXIsCg== --_004_PRAP251MB0688D5598FB165C53AD95A81CF5A9PRAP251MB0688EURP_--