From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 65CCEC43334 for ; Wed, 29 Jun 2022 13:38:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233872AbiF2Nix (ORCPT ); Wed, 29 Jun 2022 09:38:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41584 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233156AbiF2Niv (ORCPT ); Wed, 29 Jun 2022 09:38:51 -0400 Received: from esa.hc3962-90.iphmx.com (esa.hc3962-90.iphmx.com [216.71.140.77]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3BEC113DC9; Wed, 29 Jun 2022 06:38:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qccesdkim1; t=1656509928; x=1657114728; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=QZF557XH5QbgiL3m9HDA6BmXBII8uhwxRoqmOho6MNc=; b=QRXDBjobgmQjcdv25iAmoujMSIxVnp1KQgGCwUZDcGL+38MI1b8zDeKe Mgz0znuBGsTTX+O+iVThyxqGgeeOB7H9vbcB/7tx3LZ0qYHRY2twIn7PZ 1IkM3ELvbATFWfT2R3AldE91BwIW1fn/2Drtxb3ioqdXf5Yfg/XQ8KqbK 4=; Received: from mail-bn8nam04lp2043.outbound.protection.outlook.com (HELO NAM04-BN8-obe.outbound.protection.outlook.com) ([104.47.74.43]) by ob1.hc3962-90.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Jun 2022 13:38:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K0RIwGgkmK/wWBKORkcEPfzlDyYqkLkpaLmzhLfmuWCjRd/rXzloeI6bYuPzxt4rL/mab9xqjvbnrCFTbC7XRwqolwOF+c4plEjW7GgUEn6oPG5x8+cy+hXcnMmalurwgYIJHDUi8hXoUNSqsY9BvP2++4cmzxTtC82mw9RAiugkxwj6NXMgMGXPAiKB0B45Vaj7OPxHjjwqXSunN8GZ88yKp1MFCvbI2tdeiTPooKqk6pXl/ao651u/Z5spdld2ffVCy+yQEpmi6c9fUST+CjBV8OwUIY6IahKOaHwZPiOYjKcplum1xEFc/rkQ9+f6HEPC9blUVB/qpcnjsOrR5w== 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=QZF557XH5QbgiL3m9HDA6BmXBII8uhwxRoqmOho6MNc=; b=Om26iAZV5wArPVLyTuHvRp5zDUwjzUE8nRcuMDp62U+8csIcpgr3QYJBzfYxpfom5FyhXQrOKW7Hq2RR6qS4nkoKzcArtkUGSAC1IVMD3+8KC7SP1SqxEj9o0/tFexEoSEmUK3QMSdvmWsL8rCTpRecX1yC3Op0QkjOvbMbtXyZANjjEoL6asjJIkV7aYZ0QpKzEkRUrYL12+Err3o+6qJ6sS4T+5bS/fRIPAxNX2QclCXKTwVKqgzyXMkm6bjXU9Df2BKyj+lWwYoqetum5qQpdLyJanoWqye+HHUSo69qpsz7INWd+lprx5Eh9E4uQgAfnGPd7mbJ4bBgrHtVFGQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=quicinc.com; dmarc=pass action=none header.from=quicinc.com; dkim=pass header.d=quicinc.com; arc=none Received: from MW4PR02MB7186.namprd02.prod.outlook.com (2603:10b6:303:73::6) by SA1PR02MB8445.namprd02.prod.outlook.com (2603:10b6:806:1f4::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.14; Wed, 29 Jun 2022 13:38:39 +0000 Received: from MW4PR02MB7186.namprd02.prod.outlook.com ([fe80::29ab:75ef:34fd:3c13]) by MW4PR02MB7186.namprd02.prod.outlook.com ([fe80::29ab:75ef:34fd:3c13%7]) with mapi id 15.20.5395.014; Wed, 29 Jun 2022 13:38:39 +0000 From: "Sankeerth Billakanti (QUIC)" To: "dmitry.baryshkov@linaro.org" , "Vinod Polimera (QUIC)" , "y@qualcomm.com" , "dri-devel@lists.freedesktop.org" , "linux-arm-msm@vger.kernel.org" , "freedreno@lists.freedesktop.org" , "devicetree@vger.kernel.org" CC: "linux-kernel@vger.kernel.org" , "robdclark@gmail.com" , "dianders@chromium.org" , "swboyd@chromium.org" , "Kalyan Thota (QUIC)" , "Sankeerth Billakanti (QUIC)" , "Vishnuvardhan Prodduturi (QUIC)" , "Aravind Venkateswaran (QUIC)" , "Abhinav Kumar (QUIC)" , "Kuogee Hsieh (QUIC)" Subject: RE: [v3 1/5] drm/msm/dp: Add basic PSR support for eDP Thread-Topic: [v3 1/5] drm/msm/dp: Add basic PSR support for eDP Thread-Index: AQHYhV0y2Cyhli/VxE+zX68nohRwI61aNcoAgAw6jkA= Date: Wed, 29 Jun 2022 13:38:39 +0000 Message-ID: References: <1655808800-3996-1-git-send-email-quic_vpolimer@quicinc.com> <1655808800-3996-2-git-send-email-quic_vpolimer@quicinc.com> <55f64230-b847-5edb-3596-e22744f84b06@linaro.org> In-Reply-To: <55f64230-b847-5edb-3596-e22744f84b06@linaro.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=quicinc.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 77225133-bd92-4bdc-5f04-08da59d4acf8 x-ms-traffictypediagnostic: SA1PR02MB8445:EE_ x-ld-processed: 98e9ba89-e1a1-4e38-9007-8bdabc25de1d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: z/VVNd5hBBREWfykF2o3WO5toowUtUngHkRlrWJmYvoBKNNuxOZ5svdQ0365mUdqpIPWHzPx1Z+L4mShfqJpfp6ryrqnAuuKtD5L7eOGnyOOkN0nTvD9kRYeNqljb/iKc3BkcH0zyu9XXecbEvMXMeVU/ml3UMWtjT7BTCt3+aaHrw2U5swo4XcmQ/OCHsQKtq+p7EkivCSGAnWCgMiABpeNDjFdNl8UWUi4t3RDDe+L41WWCAA7q9R5SZIkwb9h/+4LxMxdiHO+Xxu+bgDX+VONeZjT+0xAS37sq5mVJKUopnmgG+3mM9uijtilgDRpkNbUhM0YAV36gybWcbo8flh3QrTu9YqIJy3uhCifmXvdrz1F3xiloPPotFFCN4Ze9VtQmfr26qm072SYe+MTE9JpuN9dYTVD3+BhL4OuFVxezo6Furo25kzIGjbA46pM/OrJsl46b1TVM/ewA+rfwC+nNhpnPZt7ex4LTFY9A9fKie2SGUIJrJMzWwgxOb+9aC/gEd7cXUjKwPf/h7V0+6WOtIg5rjS4oRDBnM3+8VKVaNhUxaZv448KfGsmS6cdhK8s5XOdQVqdtMF5F6kd+UABOoIS8ImsxFo6K53XDGRmevjFqZ551WUzrsNf4X0A9X/orC+TeUJPEXiKzzPE8lrOiX2kGU9J8OcjqrhxH0oWVa5+jxLXjkgiXfojSwzaBM0Za34N9au2khYUs10GSf5IA6mzYfMrA3rjD18f/8wreWc0idT4Xb+mlxZI4w0X+3X+k9ctI/tKP1NuRbvjraC5WFklfVB4TBeIm2VKyoGdOk81kcsDBTK2MP2dH1Ism+1yN8bqCP1YEa+1xSJsLQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR02MB7186.namprd02.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(136003)(366004)(346002)(396003)(39860400002)(376002)(316002)(38070700005)(30864003)(122000001)(110136005)(76116006)(66946007)(66556008)(66476007)(66446008)(64756008)(8676002)(4326008)(55016003)(71200400001)(54906003)(38100700002)(26005)(7696005)(6506007)(9686003)(41300700001)(2906002)(33656002)(478600001)(5660300002)(186003)(52536014)(107886003)(83380400001)(86362001)(8936002)(781001)(579004)(559001)(309714004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RlhLTVBDWXljU0RkR2JnT2I1ZHlIU0ljeDlMZjdTdUF1dDFucUZMMW9KajVH?= =?utf-8?B?bTVaM0RQVTdSb0puMklUV29ncFluVzQrVTZXQkoyMVp3TytFWWxwM2QwbUs1?= =?utf-8?B?bngxM2c3MUZsVzJPSU04S09hdGhpTDlDU3B2N2RROVpCWXVyUHJqYUREcTVX?= =?utf-8?B?VVhBZ2JmOFRTMCtTS2xMUjIveFVaQkpMQUQ5eEg4Z1ZYeWdMemN5RkpTWlZL?= =?utf-8?B?TE4wc01ub2NsdGxxQ3ZvQWdNemNjLzhDRHhPSm4zczdybHhDTSsvTmpaRWRa?= =?utf-8?B?ZEMrTGh6NUVKR0pLSmw2eFQ3bjNrSTFGdW5OVzZBZjJRWWwwWVdldHBJNVIy?= =?utf-8?B?NW9YUjJDR1Zha3FKaGxyVWhENVluZDFiS1dTc2VVUk1UeWZzWllYdjVBL1hq?= =?utf-8?B?ekIzbXlHRkpZOWh1VmpXUnFqTDRNQTIwN0VGOVhwWXh2ajNCUU4zUjdlZWRy?= =?utf-8?B?cmlvUEowRVdlcXNVb2g3RnZTM2YvNjR6blY4WVlZR2NCaGozZWNKeU5taGEw?= =?utf-8?B?aHNzcFQ4TmluMW5YaTh1Ny84K0JBSkNiTEY1WUgvM0l1U1c3SVlyY1hmTzVk?= =?utf-8?B?dm91UjMxQXZma1ZtcGlwR1l2NmhnYkdrY1JyTHJXRjVwRFcyakZWZUtzY1Fr?= =?utf-8?B?YlVHa1hTUEl6SzFCczVxbWl3V3Naak5CNnRYbW5VQVAxOG4xZWozekhvZVZn?= =?utf-8?B?TlIyVld1NnIweTd6MXdBSWhOOWRIK3hlTVBCVWpNcjArNjBlcHlLeFhxa3B5?= =?utf-8?B?YWovb2ZNMmhrYW9tVy9abGc2NmtLMGpSRUFhYW1jV3FqNDk0dUU2YURCK2VO?= =?utf-8?B?cEgzL1NVSXRzdXBXRktrczV5ckZaM281L1JhUjFxaXNiWmlQVnlsM0oyaE4x?= =?utf-8?B?U1gyeXJpMGtiNHdwaGFadXVreFFtb3JyL3BXeHp2TUF0YUNodkJvNzhBTUxa?= =?utf-8?B?M1pZckxaaXNoSC9SeDFrY2ZMNFUzRmdjWWszbTQwOXFaTlhsZDJRaW9sVWJv?= =?utf-8?B?V3g3dEhnQ213U3VTdzZIR1JnaEhVOEQyV251K3Z3YjZhbWxUM082VEI5bkVp?= =?utf-8?B?UGhlNEkxUXREVTZPU01acWt3aldXVTlEZUMyQm1qN1R3TU4yRzJlYTNVZkZ0?= =?utf-8?B?SWVMcFlRRDd2eUhTTmxrdERYSmZoYWhENlZnUFhneG9DVFYramIvUXNQMERB?= =?utf-8?B?VEIvOXkzZm43d3M3RU92dzJYeVNjeGRtV2lJdm01YStHL21wdmZuL0lYcDVD?= =?utf-8?B?QXIyY3o0d0dlWm04bkgvK0pZMW9ZRzVoY3BQKzB3aEJLSVpGVjB0VlF5Q3Fj?= =?utf-8?B?T2tUNi91Z1J2eVJyVkRNWk9sYVlXejBpZjJPczNTaWE0dmhka1dWaElINldT?= =?utf-8?B?UzRweVRQWlhBeWxVSkFQMmxsem1IYVI3d0g3aVRYREdnQVJvMnhOMlR4Mjlq?= =?utf-8?B?L2dBazVFcmJZN0lKbEVaVjlXTHh5dE10YnEzR0I2ckZKa0ZHZWxVY0Q2NStz?= =?utf-8?B?TmhBM3hpb2MyUnJDV003RlZzQUJpRU4zR3NSeFl2L1Z1VjVjMnpXZ1g1Z1dG?= =?utf-8?B?YTdCRzRYN0QrdmlsbWJyclp3bjlHUmFJbU5NSjVwcHd4NE96YWFUdExOMUZL?= =?utf-8?B?TkxBOGVLN282MnJZbm54cTc4UTVmWlgvUDN2bDBqMFFDWnFZMmVwRVJaRzd4?= =?utf-8?B?VTU4QlNUUVF3c0l1R3NISjdSSThRMlhPekI5ZWREb0RRMDNqMTY3YkdlOHNs?= =?utf-8?B?b29hUEJ2L0FwMlpGSlRPd0V6OWpiVmdndEdPd2JqdFd5dFBFTXFmOXFhVjZU?= =?utf-8?B?cjR0TTk2Mm9GUGRhUjJ0UmxERVQrdnQ0bGR0NlppVHIzZVpkUzF1Y3dVODEv?= =?utf-8?B?dHAwcFJ0YzVWMExESHcyZ09WWklCeldDN0FMNThxL2hSbFR3NXZheTMvcVpS?= =?utf-8?B?bjlic3VYaDd1MTkzRVhPeUphN05ObkNkYUFXM0h2SW1DeEx2WWNKckl3ZFU0?= =?utf-8?B?UXB5N0pHVUhpWE9XcFdaSHRFNERWamYyZ2UvV3V2dGJmZUJhVHF1YWlnQkg4?= =?utf-8?B?U2FKbEovS0NDeVpPcWdrVHVZSFhFUmlvYmFVZWkwY0pVckdhWVhhdStla29N?= =?utf-8?Q?rAPDZ+oewA4pCOr8Ggb21paGh?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: quicinc.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR02MB7186.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 77225133-bd92-4bdc-5f04-08da59d4acf8 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jun 2022 13:38:39.5932 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 98e9ba89-e1a1-4e38-9007-8bdabc25de1d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: OIZ191OV4OxnnwrOFCiptPdRphhVaP8x88zMdi+b1+IXTngrbmFM8yJ9IlNM9FTpCSFWOS009oa0piVlK/qz07DzaHe68Z0HpdLG0tFmjPM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR02MB8445 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org SGkgRG1pdHJ5LA0KDQo+T24gMjEvMDYvMjAyMiAxMzo1MywgVmlub2QgUG9saW1lcmEgd3JvdGU6 DQo+PiBBZGQgc3VwcG9ydCBmb3IgYmFzaWMgcGFuZWwgc2VsZiByZWZyZXNoIChQU1IpIGZlYXR1 cmUgZm9yIGVEUC4NCj4+IEFkZCBhIG5ldyBpbnRlcmZhY2UgdG8gc2V0IFBTUiBzdGF0ZSBpbiB0 aGUgc2luayBmcm9tIERQVS4NCj4+IFByb2dyYW0gdGhlIGVEUCBjb250cm9sbGVyIHRvIGlzc3Vl IFBTUiBlbnRlciBhbmQgZXhpdCBTRFAgdG8gdGhlDQo+PiBzaW5rLg0KPj4NCj4+IFNpZ25lZC1v ZmYtYnk6IFNhbmtlZXJ0aCBCaWxsYWthbnRpIDxxdWljX3NiaWxsYWthQHF1aWNpbmMuY29tPg0K Pj4gU2lnbmVkLW9mZi1ieTogVmlub2QgUG9saW1lcmEgPHF1aWNfdnBvbGltZXJAcXVpY2luYy5j b20+DQo+PiAtLS0NCj4+ICAgZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9jYXRhbG9nLmMgfCAg ODEgKysrKysrKysrKysrKysrKysrDQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfY2F0 YWxvZy5oIHwgICA0ICsNCj4+ICAgZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9jdHJsLmMgICAg fCAgNzYgKysrKysrKysrKysrKysrKy0NCj4+ICAgZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9j dHJsLmggICAgfCAgIDMgKw0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbXNtL2RwL2RwX2Rpc3BsYXku YyB8ICAxNCArKysNCj4+ICAgZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9kaXNwbGF5LmggfCAg IDIgKw0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbXNtL2RwL2RwX2RybS5jICAgICB8IDE2Ng0KPisr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPj4gICBkcml2ZXJzL2dwdS9kcm0v bXNtL2RwL2RwX2xpbmsuYyAgICB8ICAzNiArKysrKysrKw0KPj4gICBkcml2ZXJzL2dwdS9kcm0v bXNtL2RwL2RwX3BhbmVsLmMgICB8ICAyMiArKysrKw0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbXNt L2RwL2RwX3BhbmVsLmggICB8ICAgNiArKw0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbXNtL2RwL2Rw X3JlZy5oICAgICB8ICAyNyArKysrKysNCj4+ICAgMTEgZmlsZXMgY2hhbmdlZCwgNDMzIGluc2Vy dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vZHAvZHBfY2F0YWxvZy5jDQo+PiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBf Y2F0YWxvZy5jDQo+PiBpbmRleCA3MjU3NTE1Li5iOTAyMWVkIDEwMDY0NA0KPj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL21zbS9kcC9kcF9jYXRhbG9nLmMNCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZHAvZHBfY2F0YWxvZy5jDQo+PiBAQCAtNDcsNiArNDcsMTQgQEANCj4+ICAgI2RlZmlu ZSBEUF9JTlRFUlJVUFRfU1RBVFVTMl9NQVNLIFwNCj4+ICAgCShEUF9JTlRFUlJVUFRfU1RBVFVT MiA8PCBEUF9JTlRFUlJVUFRfU1RBVFVTX01BU0tfU0hJRlQpDQo+Pg0KPj4gKyNkZWZpbmUgRFBf SU5URVJSVVBUX1NUQVRVUzQgXA0KPj4gKwkoUFNSX1VQREFURV9JTlQgfCBQU1JfQ0FQVFVSRV9J TlQgfCBQU1JfRVhJVF9JTlQgfCBcDQo+PiArCVBTUl9VUERBVEVfRVJST1JfSU5UIHwgUFNSX1dB S0VfRVJST1JfSU5UKQ0KPj4gKw0KPj4gKyNkZWZpbmUgRFBfSU5URVJSVVBUX01BU0s0IFwNCj4+ ICsJKFBTUl9VUERBVEVfTUFTSyB8IFBTUl9DQVBUVVJFX01BU0sgfCBQU1JfRVhJVF9NQVNLIHwg XA0KPj4gKwlQU1JfVVBEQVRFX0VSUk9SX01BU0sgfCBQU1JfV0FLRV9FUlJPUl9NQVNLKQ0KPj4g Kw0KPj4gICBzdHJ1Y3QgZHBfY2F0YWxvZ19wcml2YXRlIHsNCj4+ICAgCXN0cnVjdCBkZXZpY2Ug KmRldjsNCj4+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2Ow0KPj4gQEAgLTM1OSw2ICsz NjcsMjQgQEAgdm9pZCBkcF9jYXRhbG9nX2N0cmxfbGFuZV9tYXBwaW5nKHN0cnVjdA0KPmRwX2Nh dGFsb2cgKmRwX2NhdGFsb2cpDQo+PiAgIAkJCWxuX21hcHBpbmcpOw0KPj4gICB9DQo+Pg0KPj4g K3ZvaWQgZHBfY2F0YWxvZ19jdHJsX3Bzcl9tYWlubGlua19lbmFibGUoc3RydWN0IGRwX2NhdGFs b2cgKmRwX2NhdGFsb2csDQo+PiArCQkJCQkJYm9vbCBlbmFibGUpDQo+PiArew0KPj4gKwl1MzIg dmFsOw0KPj4gKwlzdHJ1Y3QgZHBfY2F0YWxvZ19wcml2YXRlICpjYXRhbG9nID0gY29udGFpbmVy X29mKGRwX2NhdGFsb2csDQo+PiArCQkJCXN0cnVjdCBkcF9jYXRhbG9nX3ByaXZhdGUsIGRwX2Nh dGFsb2cpOw0KPj4gKw0KPj4gKwl2YWwgPSBkcF9yZWFkX2xpbmsoY2F0YWxvZywgUkVHX0RQX01B SU5MSU5LX0NUUkwpOw0KPj4gKwl2YWwgJj0gfkRQX01BSU5MSU5LX0NUUkxfRU5BQkxFOw0KPj4g Kw0KPj4gKwlpZiAoZW5hYmxlKQ0KPj4gKwkJdmFsIHw9IERQX01BSU5MSU5LX0NUUkxfRU5BQkxF Ow0KPj4gKwllbHNlDQo+PiArCQl2YWwgJj0gfkRQX01BSU5MSU5LX0NUUkxfRU5BQkxFOw0KPj4g Kw0KPj4gKwlkcF93cml0ZV9saW5rKGNhdGFsb2csIFJFR19EUF9NQUlOTElOS19DVFJMLCB2YWwp OyB9DQo+PiArDQo+PiAgIHZvaWQgZHBfY2F0YWxvZ19jdHJsX21haW5saW5rX2N0cmwoc3RydWN0 IGRwX2NhdGFsb2cgKmRwX2NhdGFsb2csDQo+PiAgIAkJCQkJCWJvb2wgZW5hYmxlKQ0KPj4gICB7 DQo+PiBAQCAtNjEwLDYgKzYzNiw0NyBAQCB2b2lkIGRwX2NhdGFsb2dfY3RybF9ocGRfY29uZmln KHN0cnVjdCBkcF9jYXRhbG9nDQo+KmRwX2NhdGFsb2cpDQo+PiAgIAlkcF93cml0ZV9hdXgoY2F0 YWxvZywgUkVHX0RQX0RQX0hQRF9DVFJMLA0KPkRQX0RQX0hQRF9DVFJMX0hQRF9FTik7DQo+PiAg IH0NCj4+DQo+PiArc3RhdGljIHZvaWQgZHBfY2F0YWxvZ19lbmFibGVfc2RwKHN0cnVjdCBkcF9j YXRhbG9nX3ByaXZhdGUgKmNhdGFsb2cpDQo+PiArew0KPj4gKwkvKiB0cmlnZ2VyIHNkcCAqLw0K Pj4gKwlkcF93cml0ZV9saW5rKGNhdGFsb2csIE1NU1NfRFBfU0RQX0NGRzMsIFVQREFURV9TRFAp Ow0KPj4gKwlkcF93cml0ZV9saW5rKGNhdGFsb2csIE1NU1NfRFBfU0RQX0NGRzMsICFVUERBVEVf U0RQKTsgfQ0KPj4gKw0KPj4gK3ZvaWQgZHBfY2F0YWxvZ19jdHJsX2NvbmZpZ19wc3Ioc3RydWN0 IGRwX2NhdGFsb2cgKmRwX2NhdGFsb2cpIHsNCj4+ICsJc3RydWN0IGRwX2NhdGFsb2dfcHJpdmF0 ZSAqY2F0YWxvZyA9IGNvbnRhaW5lcl9vZihkcF9jYXRhbG9nLA0KPj4gKwkJCQlzdHJ1Y3QgZHBf Y2F0YWxvZ19wcml2YXRlLCBkcF9jYXRhbG9nKTsNCj4+ICsJdTMyIGNvbmZpZzsNCj4+ICsNCj4+ ICsJLyogZW5hYmxlIFBTUjEgZnVuY3Rpb24gKi8NCj4+ICsJY29uZmlnID0gZHBfcmVhZF9saW5r KGNhdGFsb2csIFJFR19QU1JfQ09ORklHKTsNCj4+ICsJY29uZmlnIHw9IFBTUjFfU1VQUE9SVEVE Ow0KPj4gKwlkcF93cml0ZV9saW5rKGNhdGFsb2csIFJFR19QU1JfQ09ORklHLCBjb25maWcpOw0K Pj4gKw0KPj4gKwlkcF93cml0ZV9haGIoY2F0YWxvZywgUkVHX0RQX0lOVFJfTUFTSzQsDQo+RFBf SU5URVJSVVBUX01BU0s0KTsNCj4+ICsJZHBfY2F0YWxvZ19lbmFibGVfc2RwKGNhdGFsb2cpOw0K Pj4gK30NCj4+ICsNCj4+ICt2b2lkIGRwX2NhdGFsb2dfY3RybF9zZXRfcHNyKHN0cnVjdCBkcF9j YXRhbG9nICpkcF9jYXRhbG9nLCBib29sDQo+PiArZW50ZXIpIHsNCj4+ICsJc3RydWN0IGRwX2Nh dGFsb2dfcHJpdmF0ZSAqY2F0YWxvZyA9IGNvbnRhaW5lcl9vZihkcF9jYXRhbG9nLA0KPj4gKwkJ CXN0cnVjdCBkcF9jYXRhbG9nX3ByaXZhdGUsIGRwX2NhdGFsb2cpOw0KPj4gKwl1MzIgY21kOw0K Pj4gKw0KPj4gKwljbWQgPSBkcF9yZWFkX2xpbmsoY2F0YWxvZywgUkVHX1BTUl9DTUQpOw0KPj4g Kw0KPj4gKwljbWQgJj0gfihQU1JfRU5URVIgfCBQU1JfRVhJVCk7DQo+PiArDQo+PiArCWlmIChl bnRlcikNCj4+ICsJCWNtZCB8PSBQU1JfRU5URVI7DQo+PiArCWVsc2UNCj4+ICsJCWNtZCB8PSBQ U1JfRVhJVDsNCj4+ICsNCj4+ICsJZHBfY2F0YWxvZ19lbmFibGVfc2RwKGNhdGFsb2cpOw0KPj4g KwlkcF93cml0ZV9saW5rKGNhdGFsb2csIFJFR19QU1JfQ01ELCBjbWQpOyB9DQo+PiArDQo+PiAg IHUzMiBkcF9jYXRhbG9nX2xpbmtfaXNfY29ubmVjdGVkKHN0cnVjdCBkcF9jYXRhbG9nICpkcF9j YXRhbG9nKQ0KPj4gICB7DQo+PiAgIAlzdHJ1Y3QgZHBfY2F0YWxvZ19wcml2YXRlICpjYXRhbG9n ID0gY29udGFpbmVyX29mKGRwX2NhdGFsb2csIEBADQo+PiAtNjQ1LDYgKzcxMiwyMCBAQCB1MzIg ZHBfY2F0YWxvZ19ocGRfZ2V0X2ludHJfc3RhdHVzKHN0cnVjdCBkcF9jYXRhbG9nDQo+KmRwX2Nh dGFsb2cpDQo+PiAgIAlyZXR1cm4gaXNyICYgKG1hc2sgfCB+RFBfRFBfSFBEX0lOVF9NQVNLKTsN Cj4+ICAgfQ0KPj4NCj4+ICtpbnQgZHBfY2F0YWxvZ19jdHJsX3JlYWRfcHNyX2ludGVycnVwdF9z dGF0dXMoc3RydWN0IGRwX2NhdGFsb2cNCj4+ICsqZHBfY2F0YWxvZykgew0KPj4gKwlzdHJ1Y3Qg ZHBfY2F0YWxvZ19wcml2YXRlICpjYXRhbG9nID0gY29udGFpbmVyX29mKGRwX2NhdGFsb2csDQo+ PiArCQkJCXN0cnVjdCBkcF9jYXRhbG9nX3ByaXZhdGUsIGRwX2NhdGFsb2cpOw0KPj4gKwl1MzIg aW50ciwgaW50cl9hY2s7DQo+PiArDQo+PiArCWludHIgPSBkcF9yZWFkX2FoYihjYXRhbG9nLCBS RUdfRFBfSU5UUl9TVEFUVVM0KTsNCj4+ICsJaW50cl9hY2sgPSAoaW50ciAmIERQX0lOVEVSUlVQ VF9TVEFUVVM0KQ0KPj4gKwkJCTw8IERQX0lOVEVSUlVQVF9TVEFUVVNfQUNLX1NISUZUOw0KPj4g KwlkcF93cml0ZV9haGIoY2F0YWxvZywgUkVHX0RQX0lOVFJfU1RBVFVTNCwgaW50cl9hY2spOw0K Pj4gKw0KPj4gKwlyZXR1cm4gaW50cjsNCj4+ICt9DQo+PiArDQo+PiAgIGludCBkcF9jYXRhbG9n X2N0cmxfZ2V0X2ludGVycnVwdChzdHJ1Y3QgZHBfY2F0YWxvZyAqZHBfY2F0YWxvZykNCj4+ICAg ew0KPj4gICAJc3RydWN0IGRwX2NhdGFsb2dfcHJpdmF0ZSAqY2F0YWxvZyA9IGNvbnRhaW5lcl9v ZihkcF9jYXRhbG9nLCBkaWZmDQo+PiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBf Y2F0YWxvZy5oDQo+PiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfY2F0YWxvZy5oDQo+PiBp bmRleCAxZjcxN2Y0Li42NDU0ODQ1IDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21z bS9kcC9kcF9jYXRhbG9nLmgNCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfY2F0 YWxvZy5oDQo+PiBAQCAtOTMsNiArOTMsNyBAQCB2b2lkIGRwX2NhdGFsb2dfY3RybF9zdGF0ZV9j dHJsKHN0cnVjdCBkcF9jYXRhbG9nDQo+KmRwX2NhdGFsb2csIHUzMiBzdGF0ZSk7DQo+PiAgIHZv aWQgZHBfY2F0YWxvZ19jdHJsX2NvbmZpZ19jdHJsKHN0cnVjdCBkcF9jYXRhbG9nICpkcF9jYXRh bG9nLCB1MzINCj5jb25maWcpOw0KPj4gICB2b2lkIGRwX2NhdGFsb2dfY3RybF9sYW5lX21hcHBp bmcoc3RydWN0IGRwX2NhdGFsb2cgKmRwX2NhdGFsb2cpOw0KPj4gICB2b2lkIGRwX2NhdGFsb2df Y3RybF9tYWlubGlua19jdHJsKHN0cnVjdCBkcF9jYXRhbG9nICpkcF9jYXRhbG9nLA0KPj4gYm9v bCBlbmFibGUpOw0KPj4gK3ZvaWQgZHBfY2F0YWxvZ19jdHJsX3Bzcl9tYWlubGlua19lbmFibGUo c3RydWN0IGRwX2NhdGFsb2cNCj4+ICsqZHBfY2F0YWxvZywgYm9vbCBlbmFibGUpOw0KPj4gICB2 b2lkIGRwX2NhdGFsb2dfY3RybF9jb25maWdfbWlzYyhzdHJ1Y3QgZHBfY2F0YWxvZyAqZHBfY2F0 YWxvZywgdTMyIGNjLA0KPnUzMiB0Yik7DQo+PiAgIHZvaWQgZHBfY2F0YWxvZ19jdHJsX2NvbmZp Z19tc2Eoc3RydWN0IGRwX2NhdGFsb2cgKmRwX2NhdGFsb2csIHUzMiByYXRlLA0KPj4gICAJCQkJ dTMyIHN0cmVhbV9yYXRlX2toeiwgYm9vbCBmaXhlZF9udmlkKTsgQEAgLQ0KPjEwNCwxMiArMTA1 LDE1IEBADQo+PiB2b2lkIGRwX2NhdGFsb2dfY3RybF9lbmFibGVfaXJxKHN0cnVjdCBkcF9jYXRh bG9nICpkcF9jYXRhbG9nLCBib29sDQo+ZW5hYmxlKTsNCj4+ICAgdm9pZCBkcF9jYXRhbG9nX2hw ZF9jb25maWdfaW50cihzdHJ1Y3QgZHBfY2F0YWxvZyAqZHBfY2F0YWxvZywNCj4+ICAgCQkJdTMy IGludHJfbWFzaywgYm9vbCBlbik7DQo+PiAgIHZvaWQgZHBfY2F0YWxvZ19jdHJsX2hwZF9jb25m aWcoc3RydWN0IGRwX2NhdGFsb2cgKmRwX2NhdGFsb2cpOw0KPj4gK3ZvaWQgZHBfY2F0YWxvZ19j dHJsX2NvbmZpZ19wc3Ioc3RydWN0IGRwX2NhdGFsb2cgKmRwX2NhdGFsb2cpOyB2b2lkDQo+PiAr ZHBfY2F0YWxvZ19jdHJsX3NldF9wc3Ioc3RydWN0IGRwX2NhdGFsb2cgKmRwX2NhdGFsb2csIGJv b2wgZW50ZXIpOw0KPj4gICB1MzIgZHBfY2F0YWxvZ19saW5rX2lzX2Nvbm5lY3RlZChzdHJ1Y3Qg ZHBfY2F0YWxvZyAqZHBfY2F0YWxvZyk7DQo+PiAgIHUzMiBkcF9jYXRhbG9nX2hwZF9nZXRfaW50 cl9zdGF0dXMoc3RydWN0IGRwX2NhdGFsb2cgKmRwX2NhdGFsb2cpOw0KPj4gICB2b2lkIGRwX2Nh dGFsb2dfY3RybF9waHlfcmVzZXQoc3RydWN0IGRwX2NhdGFsb2cgKmRwX2NhdGFsb2cpOw0KPj4g ICBpbnQgZHBfY2F0YWxvZ19jdHJsX3VwZGF0ZV92eF9weChzdHJ1Y3QgZHBfY2F0YWxvZyAqZHBf Y2F0YWxvZywgdTgNCj52X2xldmVsLA0KPj4gICAJCQkJdTggcF9sZXZlbCk7DQo+PiAgIGludCBk cF9jYXRhbG9nX2N0cmxfZ2V0X2ludGVycnVwdChzdHJ1Y3QgZHBfY2F0YWxvZyAqZHBfY2F0YWxv Zyk7DQo+PiAraW50IGRwX2NhdGFsb2dfY3RybF9yZWFkX3Bzcl9pbnRlcnJ1cHRfc3RhdHVzKHN0 cnVjdCBkcF9jYXRhbG9nDQo+PiArKmRwX2NhdGFsb2cpOw0KPj4gICB2b2lkIGRwX2NhdGFsb2df Y3RybF91cGRhdGVfdHJhbnNmZXJfdW5pdChzdHJ1Y3QgZHBfY2F0YWxvZyAqZHBfY2F0YWxvZywN Cj4+ICAgCQkJCXUzMiBkcF90dSwgdTMyIHZhbGlkX2JvdW5kYXJ5LA0KPj4gICAJCQkJdTMyIHZh bGlkX2JvdW5kYXJ5Mik7DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9k cF9jdHJsLmMNCj4+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9jdHJsLmMNCj4+IGluZGV4 IGQyMTk3MWIuLjQ4NWU4ZjUgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rw L2RwX2N0cmwuYw0KPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9jdHJsLmMNCj4+ IEBAIC0yMiw2ICsyMiw3IEBADQo+Pg0KPj4gICAjZGVmaW5lIERQX0tIWl9UT19IWiAxMDAwDQo+ PiAgICNkZWZpbmUgSURMRV9QQVRURVJOX0NPTVBMRVRJT05fVElNRU9VVF9KSUZGSUVTCSgzMCAq IEhaIC8NCj4xMDAwKSAvKiAzMCBtcyAqLw0KPj4gKyNkZWZpbmUgUFNSX09QRVJBVElPTl9DT01Q TEVUSU9OX1RJTUVPVVRfSklGRklFUyAgICAgICAoMzAwICogSFogLw0KPjEwMDApIC8qIDMwMCBt cyAqLw0KPj4gICAjZGVmaW5lIFdBSVRfRk9SX1ZJREVPX1JFQURZX1RJTUVPVVRfSklGRklFUyAo SFogLyAyKQ0KPj4NCj4+ICAgI2RlZmluZSBEUF9DVFJMX0lOVFJfUkVBRFlfRk9SX1ZJREVPICAg ICBCSVQoMCkNCj4+IEBAIC04MCw2ICs4MSw3IEBAIHN0cnVjdCBkcF9jdHJsX3ByaXZhdGUgew0K Pj4gICAJc3RydWN0IGRwX2NhdGFsb2cgKmNhdGFsb2c7DQo+Pg0KPj4gICAJc3RydWN0IGNvbXBs ZXRpb24gaWRsZV9jb21wOw0KPj4gKwlzdHJ1Y3QgY29tcGxldGlvbiBwc3Jfb3BfY29tcDsNCj4+ ICAgCXN0cnVjdCBjb21wbGV0aW9uIHZpZGVvX2NvbXA7DQo+PiAgIH07DQo+Pg0KPj4gQEAgLTE1 Myw2ICsxNTUsOSBAQCBzdGF0aWMgdm9pZCBkcF9jdHJsX2NvbmZpZ19jdHJsKHN0cnVjdCBkcF9j dHJsX3ByaXZhdGUNCj4qY3RybCkNCj4+ICAgCWNvbmZpZyB8PSBEUF9DT05GSUdVUkFUSU9OX0NU UkxfU1RBVElDX0RZTkFNSUNfQ047DQo+PiAgIAljb25maWcgfD0gRFBfQ09ORklHVVJBVElPTl9D VFJMX1NZTkNfQVNZTkNfQ0xLOw0KPj4NCj4+ICsJaWYgKGN0cmwtPnBhbmVsLT5wc3JfY2FwLnZl cnNpb24pDQo+PiArCQljb25maWcgfD0gRFBfQ09ORklHVVJBVElPTl9DVFJMX1NFTkRfVlNDOw0K Pj4gKw0KPj4gICAJZHBfY2F0YWxvZ19jdHJsX2NvbmZpZ19jdHJsKGN0cmwtPmNhdGFsb2csIGNv bmZpZyk7DQo+PiAgIH0NCj4+DQo+PiBAQCAtMTM4MiwxMSArMTM4Nyw2NCBAQCBzdGF0aWMgaW50 IGRwX2N0cmxfZW5hYmxlX3N0cmVhbV9jbG9ja3Moc3RydWN0DQo+ZHBfY3RybF9wcml2YXRlICpj dHJsKQ0KPj4gICAJcmV0dXJuIHJldDsNCj4+ICAgfQ0KPj4NCj4+IC12b2lkIGRwX2N0cmxfcmVz ZXRfaXJxX2N0cmwoc3RydWN0IGRwX2N0cmwgKmRwX2N0cmwsIGJvb2wgZW5hYmxlKQ0KPj4gK3Zv aWQgZHBfY3RybF9jb25maWdfcHNyKHN0cnVjdCBkcF9jdHJsICpkcF9jdHJsKQ0KPj4gICB7DQo+ PiAtCXN0cnVjdCBkcF9jdHJsX3ByaXZhdGUgKmN0cmw7DQo+PiArCXU4IGNmZzsNCj4+ICsJc3Ry dWN0IGRwX2N0cmxfcHJpdmF0ZSAqY3RybCA9IGNvbnRhaW5lcl9vZihkcF9jdHJsLA0KPj4gKwkJ CXN0cnVjdCBkcF9jdHJsX3ByaXZhdGUsIGRwX2N0cmwpOw0KPj4NCj4+IC0JY3RybCA9IGNvbnRh aW5lcl9vZihkcF9jdHJsLCBzdHJ1Y3QgZHBfY3RybF9wcml2YXRlLCBkcF9jdHJsKTsNCj4+ICsJ aWYgKCFjdHJsLT5wYW5lbC0+cHNyX2NhcC52ZXJzaW9uKQ0KPj4gKwkJcmV0dXJuOw0KPj4gKw0K Pj4gKwlkcF9jYXRhbG9nX2N0cmxfY29uZmlnX3BzcihjdHJsLT5jYXRhbG9nKTsNCj4+ICsNCj4+ ICsJY2ZnID0gRFBfUFNSX0VOQUJMRTsNCj4+ICsJZHJtX2RwX2RwY2Rfd3JpdGUoY3RybC0+YXV4 LCBEUF9QU1JfRU5fQ0ZHLCAmY2ZnLCAxKTsgfQ0KPj4gKw0KPj4gK3ZvaWQgZHBfY3RybF9zZXRf cHNyKHN0cnVjdCBkcF9jdHJsICpkcF9jdHJsLCBib29sIGVudGVyKSB7DQo+PiArCXN0cnVjdCBk cF9jdHJsX3ByaXZhdGUgKmN0cmwgPSBjb250YWluZXJfb2YoZHBfY3RybCwNCj4+ICsJCQlzdHJ1 Y3QgZHBfY3RybF9wcml2YXRlLCBkcF9jdHJsKTsNCj4+ICsNCj4+ICsJaWYgKCFjdHJsLT5wYW5l bC0+cHNyX2NhcC52ZXJzaW9uKQ0KPj4gKwkJcmV0dXJuOw0KPj4gKw0KPj4gKwkvKg0KPj4gKwkg KiBXaGVuIGVudGVyaW5nIFBTUiwNCj4+ICsJICogMS4gU2VuZCBQU1IgZW50ZXIgU0RQIGFuZCB3 YWl0IGZvciB0aGUgUFNSX1VQREFURV9JTlQNCj4+ICsJICogMi4gVHVybiBvZmYgdmlkZW8NCj4+ ICsJICogMy4gRGlzYWJsZSB0aGUgbWFpbmxpbmsNCj4+ICsJICoNCj4+ICsJICogV2hlbiBleGl0 aW5nIFBTUiwNCj4+ICsJICogMS4gRW5hYmxlIHRoZSBtYWlubGluaw0KPj4gKwkgKiAyLiBTZW5k IHRoZSBQU1IgZXhpdCBTRFANCj4+ICsJICovDQo+PiArCWlmIChlbnRlcikgew0KPj4gKwkJcmVp bml0X2NvbXBsZXRpb24oJmN0cmwtPnBzcl9vcF9jb21wKTsNCj4+ICsJCWRwX2NhdGFsb2dfY3Ry bF9zZXRfcHNyKGN0cmwtPmNhdGFsb2csIHRydWUpOw0KPj4gKw0KPj4gKwkJaWYgKCF3YWl0X2Zv cl9jb21wbGV0aW9uX3RpbWVvdXQoJmN0cmwtPnBzcl9vcF9jb21wLA0KPj4gKwkJCVBTUl9PUEVS QVRJT05fQ09NUExFVElPTl9USU1FT1VUX0pJRkZJRVMpKSB7DQo+PiArCQkJRFJNX0VSUk9SKCJQ U1JfRU5UUlkgdGltZWRvdXRcbiIpOw0KPj4gKwkJCWRwX2NhdGFsb2dfY3RybF9zZXRfcHNyKGN0 cmwtPmNhdGFsb2csIGZhbHNlKTsNCj4+ICsJCQlyZXR1cm47DQo+PiArCQl9DQo+PiArDQo+PiAr CQlkcF9jYXRhbG9nX2N0cmxfc3RhdGVfY3RybChjdHJsLT5jYXRhbG9nLCAwKTsNCj4+ICsNCj4+ ICsJCWRwX2NhdGFsb2dfY3RybF9wc3JfbWFpbmxpbmtfZW5hYmxlKGN0cmwtPmNhdGFsb2csIGZh bHNlKTsNCj4+ICsJfSBlbHNlIHsNCj4+ICsJCWRwX2NhdGFsb2dfY3RybF9wc3JfbWFpbmxpbmtf ZW5hYmxlKGN0cmwtPmNhdGFsb2csIHRydWUpOw0KPj4gKw0KPj4gKwkJZHBfY2F0YWxvZ19jdHJs X3NldF9wc3IoY3RybC0+Y2F0YWxvZywgZmFsc2UpOw0KPj4gKwl9DQo+PiArfQ0KPj4gKw0KPj4g K3ZvaWQgZHBfY3RybF9yZXNldF9pcnFfY3RybChzdHJ1Y3QgZHBfY3RybCAqZHBfY3RybCwgYm9v bCBlbmFibGUpIHsNCj4+ICsJc3RydWN0IGRwX2N0cmxfcHJpdmF0ZSAqY3RybCA9IGNvbnRhaW5l cl9vZihkcF9jdHJsLA0KPj4gKwkJCXN0cnVjdCBkcF9jdHJsX3ByaXZhdGUsIGRwX2N0cmwpOw0K Pj4NCj4+ICAgCWRwX2NhdGFsb2dfY3RybF9yZXNldChjdHJsLT5jYXRhbG9nKTsNCj4+DQo+PiBA QCAtMTk5Nyw2ICsyMDU1LDE3IEBAIHZvaWQgZHBfY3RybF9pc3Ioc3RydWN0IGRwX2N0cmwgKmRw X2N0cmwpDQo+Pg0KPj4gICAJY3RybCA9IGNvbnRhaW5lcl9vZihkcF9jdHJsLCBzdHJ1Y3QgZHBf Y3RybF9wcml2YXRlLCBkcF9jdHJsKTsNCj4+DQo+PiArCWlmIChjdHJsLT5wYW5lbC0+cHNyX2Nh cC52ZXJzaW9uKSB7DQo+PiArCQlpc3IgPSBkcF9jYXRhbG9nX2N0cmxfcmVhZF9wc3JfaW50ZXJy dXB0X3N0YXR1cyhjdHJsLQ0KPj5jYXRhbG9nKTsNCj4+ICsNCj4+ICsJCWlmIChpc3IgPT0gUFNS X1VQREFURV9JTlQpDQo+PiArCQkJZHJtX2RiZ19kcChjdHJsLT5kcm1fZGV2LCAiUFNSIGZyYW1l IHVwZGF0ZQ0KPmRvbmVcbiIpOw0KPj4gKwkJZWxzZSBpZiAoaXNyID09IFBTUl9FWElUX0lOVCkN Cj4+ICsJCQlkcm1fZGJnX2RwKGN0cmwtPmRybV9kZXYsICJQU1IgZXhpdCBkb25lXG4iKTsNCj4+ ICsNCj4+ICsJCWNvbXBsZXRlKCZjdHJsLT5wc3Jfb3BfY29tcCk7DQo+PiArCX0NCj4+ICsNCj4+ ICAgCWlzciA9IGRwX2NhdGFsb2dfY3RybF9nZXRfaW50ZXJydXB0KGN0cmwtPmNhdGFsb2cpOw0K Pj4NCj4+ICAgCWlmIChpc3IgJiBEUF9DVFJMX0lOVFJfUkVBRFlfRk9SX1ZJREVPKSB7IEBAIC0y MDQzLDYgKzIxMTIsNw0KPkBADQo+PiBzdHJ1Y3QgZHBfY3RybCAqZHBfY3RybF9nZXQoc3RydWN0 IGRldmljZSAqZGV2LCBzdHJ1Y3QgZHBfbGluayAqbGluaywNCj4+ICAgCQlkZXZfZXJyKGRldiwg ImZhaWxlZCB0byBhZGQgRFAgT1BQIHRhYmxlXG4iKTsNCj4+DQo+PiAgIAlpbml0X2NvbXBsZXRp b24oJmN0cmwtPmlkbGVfY29tcCk7DQo+PiArCWluaXRfY29tcGxldGlvbigmY3RybC0+cHNyX29w X2NvbXApOw0KPj4gICAJaW5pdF9jb21wbGV0aW9uKCZjdHJsLT52aWRlb19jb21wKTsNCj4+DQo+ PiAgIAkvKiBpbiBwYXJhbWV0ZXJzICovDQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L21zbS9kcC9kcF9jdHJsLmgNCj4+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9jdHJsLmgN Cj4+IGluZGV4IDA3NDVmZGUuLmJlMDc0YWUgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vbXNtL2RwL2RwX2N0cmwuaA0KPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9j dHJsLmgNCj4+IEBAIC0zOCw0ICszOCw3IEBAIHZvaWQgZHBfY3RybF9waHlfaW5pdChzdHJ1Y3Qg ZHBfY3RybCAqZHBfY3RybCk7DQo+PiAgIHZvaWQgZHBfY3RybF9waHlfZXhpdChzdHJ1Y3QgZHBf Y3RybCAqZHBfY3RybCk7DQo+PiAgIHZvaWQgZHBfY3RybF9pcnFfcGh5X2V4aXQoc3RydWN0IGRw X2N0cmwgKmRwX2N0cmwpOw0KPj4NCj4+ICt2b2lkIGRwX2N0cmxfc2V0X3BzcihzdHJ1Y3QgZHBf Y3RybCAqZHBfY3RybCwgYm9vbCBlbmFibGUpOyB2b2lkDQo+PiArZHBfY3RybF9jb25maWdfcHNy KHN0cnVjdCBkcF9jdHJsICpkcF9jdHJsKTsNCj4+ICsNCj4+ICAgI2VuZGlmIC8qIF9EUF9DVFJM X0hfICovDQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9kaXNwbGF5 LmMNCj4+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9kaXNwbGF5LmMNCj4+IGluZGV4IGJj ZTc3OTMuLjJlNzc5YzIgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RwL2Rw X2Rpc3BsYXkuYw0KPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9kaXNwbGF5LmMN Cj4+IEBAIC0zODgsNiArMzg4LDggQEAgc3RhdGljIGludCBkcF9kaXNwbGF5X3Byb2Nlc3NfaHBk X2hpZ2goc3RydWN0DQo+PiBkcF9kaXNwbGF5X3ByaXZhdGUgKmRwKQ0KPj4NCj4+ICAgCWVkaWQg PSBkcC0+cGFuZWwtPmVkaWQ7DQo+Pg0KPj4gKwlkcC0+ZHBfZGlzcGxheS5wc3Jfc3VwcG9ydGVk ID0gISFkcC0+cGFuZWwtPnBzcl9jYXAudmVyc2lvbjsNCj4+ICsNCj4+ICAgCWRwLT5hdWRpb19z dXBwb3J0ZWQgPSBkcm1fZGV0ZWN0X21vbml0b3JfYXVkaW8oZWRpZCk7DQo+PiAgIAlkcF9wYW5l bF9oYW5kbGVfc2lua19yZXF1ZXN0KGRwLT5wYW5lbCk7DQo+Pg0KPj4gQEAgLTg5NSw2ICs4OTcs MTAgQEAgc3RhdGljIGludCBkcF9kaXNwbGF5X3Bvc3RfZW5hYmxlKHN0cnVjdCBtc21fZHANCj4+ ICpkcF9kaXNwbGF5KQ0KPj4NCj4+ICAgCS8qIHNpZ25hbCB0aGUgY29ubmVjdCBldmVudCBsYXRl IHRvIHN5bmNocm9uaXplIHZpZGVvIGFuZCBkaXNwbGF5ICovDQo+PiAgIAlkcF9kaXNwbGF5X2hh bmRsZV9wbHVnZ2VkX2NoYW5nZShkcF9kaXNwbGF5LCB0cnVlKTsNCj4+ICsNCj4+ICsJaWYgKGRw X2Rpc3BsYXktPnBzcl9zdXBwb3J0ZWQpDQo+PiArCQlkcF9jdHJsX2NvbmZpZ19wc3IoZHAtPmN0 cmwpOw0KPg0KPkR1bWIgcXVlc3Rpb24uIFdoYXQgaWYgdGhlIGZpcnN0IGRpc3BsYXkgcmVwb3J0 cyBwc3IgYXMgc3VwcG9ydGVkLCBidXQgdGhlDQo+bmV4dCBEUCBkaXNwbGF5IHRoYXQgZ2V0cyBw bHVnZ2VkIGRvZXNuJ3Qgc3VwcG9ydCBQU1I/IERvIHdlIG5lZWQgdG8gZG8NCj5hbnl0aGluZyB0 byBjbGVhciB0aGlzIGNvbmZpZz8NCj4NCg0KVGhlIHBzcl9zdXBwb3J0ZWQgZmxhZyBpcyBzZXQg YWZ0ZXIgY2hlY2tpbmcgZm9yIHBzciBzdXBwb3J0IGFmdGVyIEhQRC4NCg0KCWRwLT5kcF9kaXNw bGF5LnBzcl9zdXBwb3J0ZWQgPSAhIWRwLT5wYW5lbC0+cHNyX2NhcC52ZXJzaW9uOw0KaW4gZHBf ZGlzcGxheV9wcm9jZXNzX2hwZF9oaWdoIHdpbGwgdXBkYXRlIGl0Lg0KDQo+PiArDQo+PiAgIAly ZXR1cm4gMDsNCj4+ICAgfQ0KPj4NCj4+IEBAIC0xMDk0LDYgKzExMDAsMTQgQEAgc3RhdGljIHZv aWQgZHBfZGlzcGxheV9jb25maWdfaHBkKHN0cnVjdA0KPmRwX2Rpc3BsYXlfcHJpdmF0ZSAqZHAp DQo+PiAgIAllbmFibGVfaXJxKGRwLT5pcnEpOw0KPj4gICB9DQo+Pg0KPj4gK3ZvaWQgZHBfZGlz cGxheV9zZXRfcHNyKHN0cnVjdCBtc21fZHAgKmRwX2Rpc3BsYXksIGJvb2wgZW50ZXIpIHsNCj4+ ICsJc3RydWN0IGRwX2Rpc3BsYXlfcHJpdmF0ZSAqZHA7DQo+PiArDQo+PiArCWRwID0gY29udGFp bmVyX29mKGRwX2Rpc3BsYXksIHN0cnVjdCBkcF9kaXNwbGF5X3ByaXZhdGUsIGRwX2Rpc3BsYXkp Ow0KPj4gKwlkcF9jdHJsX3NldF9wc3IoZHAtPmN0cmwsIGVudGVyKTsNCj4+ICt9DQo+PiArDQo+ PiAgIHN0YXRpYyBpbnQgaHBkX2V2ZW50X3RocmVhZCh2b2lkICpkYXRhKQ0KPj4gICB7DQo+PiAg IAlzdHJ1Y3QgZHBfZGlzcGxheV9wcml2YXRlICpkcF9wcml2OyBkaWZmIC0tZ2l0DQo+PiBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfZGlzcGxheS5oDQo+PiBiL2RyaXZlcnMvZ3B1L2RybS9t c20vZHAvZHBfZGlzcGxheS5oDQo+PiBpbmRleCA0ZjlmZTRkLi4xZmVhYWRhIDEwMDY0NA0KPj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9kaXNwbGF5LmgNCj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZHAvZHBfZGlzcGxheS5oDQo+PiBAQCAtMjksNiArMjksNyBAQCBzdHJ1 Y3QgbXNtX2RwIHsNCj4+DQo+PiAgIAl1MzIgbWF4X2RwX2xhbmVzOw0KPj4gICAJc3RydWN0IGRw X2F1ZGlvICpkcF9hdWRpbzsNCj4+ICsJYm9vbCBwc3Jfc3VwcG9ydGVkOw0KPj4gICB9Ow0KPj4N Cj4+ICAgaW50IGRwX2Rpc3BsYXlfc2V0X3BsdWdnZWRfY2Ioc3RydWN0IG1zbV9kcCAqZHBfZGlz cGxheSwgQEAgLTM5LDUNCj4+ICs0MCw2IEBAIGJvb2wgZHBfZGlzcGxheV9jaGVja192aWRlb190 ZXN0KHN0cnVjdCBtc21fZHAgKmRwX2Rpc3BsYXkpOw0KPj4gICBpbnQgZHBfZGlzcGxheV9nZXRf dGVzdF9icHAoc3RydWN0IG1zbV9kcCAqZHBfZGlzcGxheSk7DQo+PiAgIHZvaWQgZHBfZGlzcGxh eV9zaWduYWxfYXVkaW9fc3RhcnQoc3RydWN0IG1zbV9kcCAqZHBfZGlzcGxheSk7DQo+PiAgIHZv aWQgZHBfZGlzcGxheV9zaWduYWxfYXVkaW9fY29tcGxldGUoc3RydWN0IG1zbV9kcCAqZHBfZGlz cGxheSk7DQo+PiArdm9pZCBkcF9kaXNwbGF5X3NldF9wc3Ioc3RydWN0IG1zbV9kcCAqZHAsIGJv b2wgZW50ZXIpOw0KPj4NCj4+ICAgI2VuZGlmIC8qIF9EUF9ESVNQTEFZX0hfICovDQo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9kcm0uYw0KPj4gYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2RwL2RwX2RybS5jIGluZGV4IDYyZDU4YjkuLmNmZTMxZWQgMTAwNjQ0DQo+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RwL2RwX2RybS5jDQo+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2RwL2RwX2RybS5jDQo+PiBAQCAtNjAsNiArNjAsMTY5IEBAIHN0YXRpYyBpbnQg ZHBfYnJpZGdlX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2JyaWRnZQ0KPipicmlkZ2UsIHN0cnVjdCBk cm1fY29ubmVjdG9yICoNCj4+ICAgCXJldHVybiByYzsNCj4+ICAgfQ0KPj4NCj4+ICtzdGF0aWMg c3RydWN0IGRybV9jcnRjICpkcF9icmlkZ2VfZ2V0X29sZF9jb25uZWN0b3JfY3J0YyhzdHJ1Y3Qg bXNtX2RwDQo+KmRwLA0KPj4gKwkJCQkJICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp IHsNCj4+ICsJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gZHAtPmVuY29kZXI7DQo+PiAr CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7DQo+PiArCXN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICpjb25uX3N0YXRlOw0KPj4gKw0KPj4gKwljb25uZWN0b3IgPSBkcm1fYXRvbWlj X2dldF9vbGRfY29ubmVjdG9yX2Zvcl9lbmNvZGVyKHN0YXRlLA0KPmVuY29kZXIpOw0KPj4gKwlp ZiAoIWNvbm5lY3RvcikNCj4+ICsJCXJldHVybiBOVUxMOw0KPj4gKw0KPj4gKwljb25uX3N0YXRl ID0gZHJtX2F0b21pY19nZXRfb2xkX2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwNCj5jb25uZWN0b3Ip Ow0KPj4gKwlpZiAoIWNvbm5fc3RhdGUpDQo+PiArCQlyZXR1cm4gTlVMTDsNCj4+ICsNCj4+ICsJ cmV0dXJuIGNvbm5fc3RhdGUtPmNydGM7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBzdHJ1Y3Qg ZHJtX2NydGMgKmRwX2JyaWRnZV9nZXRfbmV3X2Nvbm5lY3Rvcl9jcnRjKHN0cnVjdA0KPm1zbV9k cCAqZHAsDQo+PiArCQkJCQkgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkgew0KPj4g KwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSBkcC0+ZW5jb2RlcjsNCj4+ICsJc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsNCj4+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5fc3RhdGU7DQo+PiArDQo+PiArCWNvbm5lY3RvciA9IGRybV9hdG9taWNfZ2V0X25l d19jb25uZWN0b3JfZm9yX2VuY29kZXIoc3RhdGUsDQo+ZW5jb2Rlcik7DQo+PiArCWlmICghY29u bmVjdG9yKQ0KPj4gKwkJcmV0dXJuIE5VTEw7DQo+PiArDQo+PiArCWNvbm5fc3RhdGUgPSBkcm1f YXRvbWljX2dldF9uZXdfY29ubmVjdG9yX3N0YXRlKHN0YXRlLA0KPmNvbm5lY3Rvcik7DQo+PiAr CWlmICghY29ubl9zdGF0ZSkNCj4+ICsJCXJldHVybiBOVUxMOw0KPj4gKw0KPj4gKwlyZXR1cm4g Y29ubl9zdGF0ZS0+Y3J0YzsNCj4+ICt9DQo+DQo+VGhlc2UgdHdvIGZ1bmN0aW9ucyBzaG91bGQg YmVjb21lIGNvcmUgRFJNIGhlbHBlcnMuIFBsZWFzZSBtb3ZlIHRoZW0NCj5hY2NvcmRpbmdseSB0 byByZW1vdmUgZHVwbGljYXRpb24gd2l0aCB0aGUgYnJpZGdlIGNvZGUuDQo+DQoNCk9rYXkuIEkg d2lsbCBhZGQgdHdvIGhlbHBlciBmdW5jdGlvbnMgaW4gZHJtX2F0b21pYy5jIHRvIHJldHJpZXZl IHRoZSBvbGQgYW5kIG5ldyBjcnRjcyBmcm9tIGVuY29kZXIgYW5kIGF0b21pYyBzdGF0ZS4NCg0K Pj4gKw0KPj4gK3N0YXRpYyBpbnQgZWRwX2JyaWRnZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9i cmlkZ2UgKmRybV9icmlkZ2UsDQo+PiArCQkJICAgIHN0cnVjdCBkcm1fYnJpZGdlX3N0YXRlICpi cmlkZ2Vfc3RhdGUsDQo+PiArCQkJICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwNCj4+ICsJCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpIHsN Cj4+ICsJc3RydWN0IG1zbV9kcCAqZHA7DQo+PiArDQo+PiArCWRwID0gdG9fZHBfYnJpZGdlKGRy bV9icmlkZ2UpLT5kcF9kaXNwbGF5Ow0KPj4gKwlpZiAoV0FSTl9PTighY29ubl9zdGF0ZSkpDQo+ PiArCQlyZXR1cm4gLUVOT0RFVjsNCj4+ICsNCj4+ICsJaWYgKGRwLT5wc3Jfc3VwcG9ydGVkKQ0K Pj4gKwkJY29ubl9zdGF0ZS0+c2VsZl9yZWZyZXNoX2F3YXJlID0gdHJ1ZTsNCj4+ICsNCj4+ICsJ aWYgKCFjb25uX3N0YXRlLT5jcnRjIHx8ICFjcnRjX3N0YXRlKQ0KPj4gKwkJcmV0dXJuIDA7DQo+ PiArDQo+PiArCWlmIChjcnRjX3N0YXRlLT5zZWxmX3JlZnJlc2hfYWN0aXZlICYmICFkcC0+cHNy X3N1cHBvcnRlZCkNCj4+ICsJCXJldHVybiAtRUlOVkFMOw0KPj4gKw0KPj4gKwlyZXR1cm4gMDsN Cj4+ICt9DQo+PiArDQo+PiArc3RhdGljIHZvaWQgZWRwX2JyaWRnZV9hdG9taWNfZW5hYmxlKHN0 cnVjdCBkcm1fYnJpZGdlICpkcm1fYnJpZGdlLA0KPj4gKwkJCQlzdHJ1Y3QgZHJtX2JyaWRnZV9z dGF0ZSAqb2xkX2JyaWRnZV9zdGF0ZSkgew0KPj4gKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq b2xkX3N0YXRlID0gb2xkX2JyaWRnZV9zdGF0ZS0+YmFzZS5zdGF0ZTsNCj4+ICsJc3RydWN0IGRy bV9jcnRjICpjcnRjOw0KPj4gKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRl Ow0KPj4gKwlzdHJ1Y3QgbXNtX2RwX2JyaWRnZSAqZHBfYnJpZGdlID0gdG9fZHBfYnJpZGdlKGRy bV9icmlkZ2UpOw0KPj4gKwlzdHJ1Y3QgbXNtX2RwICpkcF9kaXNwbGF5ID0gZHBfYnJpZGdlLT5k cF9kaXNwbGF5Ow0KPj4gKw0KPj4gKwljcnRjID0gZHBfYnJpZGdlX2dldF9uZXdfY29ubmVjdG9y X2NydGMoZHBfZGlzcGxheSwgb2xkX3N0YXRlKTsNCj4+ICsJaWYgKCFjcnRjKQ0KPj4gKwkJcmV0 dXJuOw0KPg0KPldoeT8NCj4NCg0KV2UgbmVlZCB0byBrbm93IHRoZSBwc3Igc3RhdHVzIG9mIHRo ZSBvbGQgc3RhdGUgb2YgdGhlIGNydGMgdG8gZGVjaWRlIHdoZXRoZXINCnRvIGVuYWJsZSB0aGUg Y29tcGxldGUgZURQIGNvbnRyb2xsZXIgb3IganVzdCBleGl0IHBzciBzdGF0ZS4NCg0KPj4gKw0K Pj4gKwlvbGRfY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKG9sZF9z dGF0ZSwgY3J0Yyk7DQo+PiArDQo+PiArCS8qIEV4aXQgZnJvbSBzZWxmIHJlZnJlc2ggbW9kZSAq Lw0KPj4gKwlpZiAob2xkX2NydGNfc3RhdGUgJiYgb2xkX2NydGNfc3RhdGUtPnNlbGZfcmVmcmVz aF9hY3RpdmUpIHsNCj4+ICsJCWRwX2Rpc3BsYXlfc2V0X3BzcihkcF9kaXNwbGF5LCBmYWxzZSk7 DQo+PiArCQlyZXR1cm47DQo+PiArCX0NCj4+ICsNCj4+ICsJZHBfYnJpZGdlX2VuYWJsZShkcm1f YnJpZGdlKTsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIHZvaWQgZWRwX2JyaWRnZV9hdG9taWNf ZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqZHJtX2JyaWRnZSwNCj4+ICsJCQkJc3RydWN0IGRy bV9icmlkZ2Vfc3RhdGUgKm9sZF9icmlkZ2Vfc3RhdGUpIHsNCj4+ICsJc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKm9sZF9zdGF0ZSA9IG9sZF9icmlkZ2Vfc3RhdGUtPmJhc2Uuc3RhdGU7DQo+PiAr CXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsNCj4+ICsJc3RydWN0IGRybV9jcnRjX3N0YXRlICpuZXdf Y3J0Y19zdGF0ZSA9IE5VTEwsICpvbGRfY3J0Y19zdGF0ZSA9DQo+TlVMTDsNCj4+ICsJc3RydWN0 IG1zbV9kcF9icmlkZ2UgKmRwX2JyaWRnZSA9IHRvX2RwX2JyaWRnZShkcm1fYnJpZGdlKTsNCj4+ ICsJc3RydWN0IG1zbV9kcCAqZHBfZGlzcGxheSA9IGRwX2JyaWRnZS0+ZHBfZGlzcGxheTsNCj4+ ICsNCj4+ICsJY3J0YyA9IGRwX2JyaWRnZV9nZXRfb2xkX2Nvbm5lY3Rvcl9jcnRjKGRwX2Rpc3Bs YXksIG9sZF9zdGF0ZSk7DQo+PiArCWlmICghY3J0YykNCj4+ICsJCWdvdG8gb3V0Ow0KPg0KPldo eT8gQW5kIHdoeSBvbGQgY3J0Yz8NCj4NCkluIGRpc2FibGUgdGhlIG5ldyBjcnRjIG1heSBiZSBy ZW1vdmVkIGZvciBzY3JlZW4gb2ZmIGNhc2VzIGFuZCBoZW5jZSBjb3VsZCBiZSBOVUxMLg0KU28s IHdlIG5lZWQgdG8gcmV0cmlldmUgdGhlIG9sZCBjcnRjLg0KDQpXZSBuZWVkIHRvIGtub3cgaWYg cHNyIHdhcyBlbmFibGVkIGluIHRoZSBvbGQgc3RhdGUgb2YgY3J0Yy4gSWYgaXQgaXMgZW5hYmxl ZCwgdGhlbiBpdA0KbWVhbnMgdGhpcyBpcyBhIHNjcmVlbiBvZmYgY2FzZSBhbmQgd2UgbmVlZCB0 byBwcm9jZWVkIHRvIHR1cm4gb2ZmIHRoZSBlZHAgY29udHJvbGxlcg0KaW4gdGhlIHBvc3RfZGlz YWJsZS4NCg0KSWYgdGhpcyBpcyBub3QgYSBzY3JlZW4gb2ZmIGNhc2UsIHRoZW4gd2UgbmVlZCB0 byBjaGVjayB0aGUgbmV3IGNydGMgc3RhdGUgdG8ga25vdyBpZiB0aGUNCk9TIGlzIHJlcXVlc3Rp bmcgZm9yIGEgcHNyIGVudHJ5IGFuZCBhY2NvcmRpbmdseSBlbnRlciBwc3INCg0KPj4gKw0KPj4g KwluZXdfY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKG9sZF9zdGF0 ZSwgY3J0Yyk7DQo+PiArCWlmICghbmV3X2NydGNfc3RhdGUpDQo+PiArCQlnb3RvIG91dDsNCj4+ ICsNCj4+ICsJb2xkX2NydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9vbGRfY3J0Y19zdGF0ZShv bGRfc3RhdGUsIGNydGMpOw0KPj4gKwlpZiAoIW9sZF9jcnRjX3N0YXRlKQ0KPj4gKwkJZ290byBv dXQ7DQo+PiArDQo+PiArCS8qDQo+PiArCSAqIFNldCBzZWxmIHJlZnJlc2ggbW9kZSBpZiBjdXJy ZW50IGNydGMgc3RhdGUgaXMgYWN0aXZlLg0KPj4gKwkgKiBJZiBvbGQgY3J0YyBzdGF0ZSBpcyBh Y3RpdmUsIHRoZW4gdGhpcyBpcyBhIGRpc3BsYXkgZGlzYWJsZQ0KPj4gKwkgKiBjYWxsIHdoaWxl IHRoZSBzaW5rIGlzIGluIHBzciBzdGF0ZS4gU28sIGV4aXQgcHNyIGhlcmUuDQo+PiArCSAqIFRo ZSBlRFAgY29udHJvbGxlciB3aWxsIGJlIGRpc2FibGVkIGluIHRoZQ0KPj4gKwkgKiBlZHBfYnJp ZGdlX2F0b21pY19wb3N0X2Rpc2FibGUgZnVuY3Rpb24uDQo+PiArCSAqDQo+PiArCSAqIFdlIG9i c2VydmVkIHNpbmsgaXMgc3R1Y2sgaW4gc2VsZiByZWZyZXNoIGlmIHBzciBleGl0IGlzIHNraXBw ZWQNCj4+ICsJICogd2hlbiBkaXNwbGF5IGRpc2FibGUgb2NjdXJzIHdoaWxlIHRoZSBzaW5rIGlz IGluIHBzciBzdGF0ZS4NCj4+ICsJICovDQo+PiArCWlmIChuZXdfY3J0Y19zdGF0ZS0+c2VsZl9y ZWZyZXNoX2FjdGl2ZSkgew0KPj4gKwkJZHBfZGlzcGxheV9zZXRfcHNyKGRwX2Rpc3BsYXksIHRy dWUpOw0KPj4gKwkJcmV0dXJuOw0KPj4gKwl9IGVsc2UgaWYgKG9sZF9jcnRjX3N0YXRlLT5zZWxm X3JlZnJlc2hfYWN0aXZlKSB7DQo+PiArCQlkcF9kaXNwbGF5X3NldF9wc3IoZHBfZGlzcGxheSwg ZmFsc2UpOw0KPj4gKwkJcmV0dXJuOw0KPj4gKwl9DQo+PiArDQo+PiArb3V0Og0KPj4gKwlkcF9i cmlkZ2VfZGlzYWJsZShkcm1fYnJpZGdlKTsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIHZvaWQg ZWRwX2JyaWRnZV9hdG9taWNfcG9zdF9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlDQo+KmRybV9i cmlkZ2UsDQo+PiArCQkJCXN0cnVjdCBkcm1fYnJpZGdlX3N0YXRlICpvbGRfYnJpZGdlX3N0YXRl KSB7DQo+PiArCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUgPSBvbGRfYnJpZGdl X3N0YXRlLT5iYXNlLnN0YXRlOw0KPj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7DQo+PiArCXN0 cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUgPSBOVUxMOw0KPj4gKwlzdHJ1Y3Qg bXNtX2RwX2JyaWRnZSAqZHBfYnJpZGdlID0gdG9fZHBfYnJpZGdlKGRybV9icmlkZ2UpOw0KPj4g KwlzdHJ1Y3QgbXNtX2RwICpkcF9kaXNwbGF5ID0gZHBfYnJpZGdlLT5kcF9kaXNwbGF5Ow0KPj4g Kw0KPj4gKwljcnRjID0gZHBfYnJpZGdlX2dldF9vbGRfY29ubmVjdG9yX2NydGMoZHBfZGlzcGxh eSwgb2xkX3N0YXRlKTsNCj4+ICsJaWYgKCFjcnRjKQ0KPj4gKwkJcmV0dXJuOw0KPj4gKw0KPj4g KwluZXdfY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKG9sZF9zdGF0 ZSwgY3J0Yyk7DQo+PiArCWlmICghbmV3X2NydGNfc3RhdGUpDQo+PiArCQlyZXR1cm47DQo+PiAr DQo+PiArCS8qDQo+PiArCSAqIFNlbGYgcmVmcmVzaCBtb2RlIGlzIGFscmVhZHkgc2V0IGluIGVk cF9icmlkZ2VfYXRvbWljX2Rpc2FibGUuDQo+PiArCSAqLw0KPj4gKwlpZiAobmV3X2NydGNfc3Rh dGUtPnNlbGZfcmVmcmVzaF9hY3RpdmUpDQo+PiArCQlyZXR1cm47DQo+PiArDQo+PiArCWRwX2Jy aWRnZV9wb3N0X2Rpc2FibGUoZHJtX2JyaWRnZSk7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2JyaWRnZV9mdW5jcyBlZHBfYnJpZGdlX29wcyA9IHsNCj4+ICsJLmF0 b21pY19lbmFibGUgICAgICAgPSBlZHBfYnJpZGdlX2F0b21pY19lbmFibGUsDQo+PiArCS5hdG9t aWNfZGlzYWJsZSAgICAgID0gZWRwX2JyaWRnZV9hdG9taWNfZGlzYWJsZSwNCj4+ICsJLmF0b21p Y19wb3N0X2Rpc2FibGUgPSBlZHBfYnJpZGdlX2F0b21pY19wb3N0X2Rpc2FibGUsDQo+DQo+SWYg eW91IGFyZSB1c2luZyB0aGUgYXRvbWljIG9wcyBoZXJlLCBwbGVhc2Ugc3dpdGNoIGRwX2JyaWRn ZV9vcHMgdG8gYXRvbWljDQo+dG9vLg0KPg0KPj4gKwkubW9kZV9zZXQgICAgID0gZHBfYnJpZGdl X21vZGVfc2V0LA0KPg0KPi5tb2RlX3ZhbGlkIGlzIG1pc3NpbmcuIElzIHRoaXMgaW50ZW50aW9u YWw/DQo+DQoNCk5vLiBpdCB3YXMgbWlzc2VkLiBXaWxsIGFkZCBpdA0KDQo+PiArCS5hdG9taWNf cmVzZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9icmlkZ2VfcmVzZXQsDQo+PiArCS5hdG9taWNfZHVw bGljYXRlX3N0YXRlID0NCj5kcm1fYXRvbWljX2hlbHBlcl9icmlkZ2VfZHVwbGljYXRlX3N0YXRl LA0KPj4gKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9icmlkZ2Vf ZGVzdHJveV9zdGF0ZSwNCj4+ICsJLmF0b21pY19jaGVjayA9IGVkcF9icmlkZ2VfYXRvbWljX2No ZWNrLCB9Ow0KPj4gKw0KPj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9icmlkZ2VfZnVuY3Mg ZHBfYnJpZGdlX29wcyA9IHsNCj4+ICAgCS5lbmFibGUgICAgICAgPSBkcF9icmlkZ2VfZW5hYmxl LA0KPj4gICAJLmRpc2FibGUgICAgICA9IGRwX2JyaWRnZV9kaXNhYmxlLA0KPj4gQEAgLTg0LDcg KzI0Nyw3IEBAIHN0cnVjdCBkcm1fYnJpZGdlICpkcF9icmlkZ2VfaW5pdChzdHJ1Y3QgbXNtX2Rw DQo+KmRwX2Rpc3BsYXksIHN0cnVjdCBkcm1fZGV2aWNlICoNCj4+ICAgCWRwX2JyaWRnZS0+ZHBf ZGlzcGxheSA9IGRwX2Rpc3BsYXk7DQo+Pg0KPj4gICAJYnJpZGdlID0gJmRwX2JyaWRnZS0+YnJp ZGdlOw0KPj4gLQlicmlkZ2UtPmZ1bmNzID0gJmRwX2JyaWRnZV9vcHM7DQo+PiArCWJyaWRnZS0+ ZnVuY3MgPSAmZWRwX2JyaWRnZV9vcHM7DQo+DQo+UGxlYXNlIHVzZSB0ZXJuYXJ5IG9wZXJhdG9y IGhlcmUuDQo+DQoNCk9rYXkNCg0KPj4gICAJYnJpZGdlLT50eXBlID0gZHBfZGlzcGxheS0+Y29u bmVjdG9yX3R5cGU7DQo+Pg0KPj4gICAJLyoNCj4+IEBAIC05OSw2ICsyNjIsNyBAQCBzdHJ1Y3Qg ZHJtX2JyaWRnZSAqZHBfYnJpZGdlX2luaXQoc3RydWN0IG1zbV9kcA0KPipkcF9kaXNwbGF5LCBz dHJ1Y3QgZHJtX2RldmljZSAqDQo+PiAgIAkgKiAgIG1vZGVzLg0KPj4gICAJICovDQo+PiAgIAlp ZiAoIWRwX2Rpc3BsYXktPmlzX2VkcCkgew0KPj4gKwkJYnJpZGdlLT5mdW5jcyA9ICZkcF9icmlk Z2Vfb3BzOw0KPj4gICAJCWJyaWRnZS0+b3BzID0NCj4+ICAgCQkJRFJNX0JSSURHRV9PUF9ERVRF Q1QgfA0KPj4gICAJCQlEUk1fQlJJREdFX09QX0hQRCB8DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9kcC9kcF9saW5rLmMNCj4+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9k cF9saW5rLmMNCj4+IGluZGV4IDM2ZjBhZjAuLjgxYWMzYzEgMTAwNjQ0DQo+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2RwL2RwX2xpbmsuYw0KPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21z bS9kcC9kcF9saW5rLmMNCj4+IEBAIC05MzQsNiArOTM0LDM4IEBAIHN0YXRpYyBpbnQNCj5kcF9s aW5rX3Byb2Nlc3NfcGh5X3Rlc3RfcGF0dGVybl9yZXF1ZXN0KA0KPj4gICAJcmV0dXJuIDA7DQo+ PiAgIH0NCj4+DQo+PiArc3RhdGljIGJvb2wgZHBfbGlua19yZWFkX3Bzcl9lcnJvcl9zdGF0dXMo c3RydWN0IGRwX2xpbmtfcHJpdmF0ZQ0KPj4gKypsaW5rKSB7DQo+PiArCXU4IHN0YXR1czsNCj4+ ICsNCj4+ICsJZHJtX2RwX2RwY2RfcmVhZChsaW5rLT5hdXgsIERQX1BTUl9FUlJPUl9TVEFUVVMs ICZzdGF0dXMsIDEpOw0KPj4gKw0KPj4gKwlpZiAoc3RhdHVzICYgRFBfUFNSX0xJTktfQ1JDX0VS Uk9SKQ0KPj4gKwkJRFJNX0VSUk9SKCJQU1IgTElOSyBDUkMgRVJST1JcbiIpOw0KPj4gKwllbHNl IGlmIChzdGF0dXMgJiBEUF9QU1JfUkZCX1NUT1JBR0VfRVJST1IpDQo+PiArCQlEUk1fRVJST1Io IlBTUiBSRkIgU1RPUkFHRSBFUlJPUlxuIik7DQo+PiArCWVsc2UgaWYgKHN0YXR1cyAmIERQX1BT Ul9WU0NfU0RQX1VOQ09SUkVDVEFCTEVfRVJST1IpDQo+PiArCQlEUk1fRVJST1IoIlBTUiBWU0Mg U0RQIFVOQ09SUkVDVEFCTEUgRVJST1JcbiIpOw0KPj4gKwllbHNlDQo+PiArCQlyZXR1cm4gMDsN Cj4+ICsNCj4+ICsJcmV0dXJuIDE7DQo+DQo+SWYgaXQncyBib29sLCBpdCBzaG91bGQgcmV0dXJu IHRydWUvZmFsc2UgYW5kIG5vdCAwLzEuDQo+DQoNCk9rYXkuIFdpbGwgY2hhbmdlIGl0DQoNCj4+ ICt9DQo+PiArDQo+PiArc3RhdGljIGJvb2wgZHBfbGlua19wc3JfY2FwYWJpbGl0eV9jaGFuZ2Vk KHN0cnVjdCBkcF9saW5rX3ByaXZhdGUNCj4+ICsqbGluaykgew0KPj4gKwl1OCBzdGF0dXM7DQo+ PiArDQo+PiArCWRybV9kcF9kcGNkX3JlYWQobGluay0+YXV4LCBEUF9QU1JfRVNJLCAmc3RhdHVz LCAxKTsNCj4+ICsNCj4+ICsJaWYgKHN0YXR1cyAmIERQX1BTUl9DQVBTX0NIQU5HRSkNCj4+ICsJ CWRybV9kYmdfZHAobGluay0+ZHJtX2RldiwgIlBTUiBDYXBhYmlsaXR5IENoYW5nZVxuIik7DQo+ PiArCWVsc2UNCj4+ICsJCXJldHVybiAwOw0KPj4gKw0KPj4gKwlyZXR1cm4gMTsNCj4NCj5pZiAo IShzYXR1cyAmIERQX1BTUl9DQVBTX0NIQU5HRSkpDQo+ICAgICByZXR1cm4gZmFsc2U7DQo+DQo+ ZHJtX2RiZ19kcCguLikNCj5yZXR1cm4gdHJ1ZTsNCj4NCj4NCj5Pcg0KPg0KPmlmIChzdGF0dXMg JiBEUF9QU1JfQ0FQU19DSEFOR0UpIHsNCj4gICBkcm1fZGJnX2RwKC4uLikNCj4gICByZXR1cm4g dHJ1ZTsNCj59DQo+DQo+cmV0dXJuIGZhbHNlOw0KPg0KPg0KDQpPa2F5LiBXaWxsIGNoYW5nZSBp dC4NCg0KPj4gK30NCj4+ICsNCj4+ICAgc3RhdGljIHU4IGdldF9saW5rX3N0YXR1cyhjb25zdCB1 OCBsaW5rX3N0YXR1c1tEUF9MSU5LX1NUQVRVU19TSVpFXSwgaW50IHIpDQo+PiAgIHsNCj4+ICAg CXJldHVybiBsaW5rX3N0YXR1c1tyIC0gRFBfTEFORTBfMV9TVEFUVVNdOyBAQCAtMTA1Myw2ICsx MDg1LDEwDQo+QEANCj4+IGludCBkcF9saW5rX3Byb2Nlc3NfcmVxdWVzdChzdHJ1Y3QgZHBfbGlu ayAqZHBfbGluaykNCj4+ICAgCQlkcF9saW5rLT5zaW5rX3JlcXVlc3QgfD0gRFBfVEVTVF9MSU5L X1RSQUlOSU5HOw0KPj4gICAJfSBlbHNlIGlmICghZHBfbGlua19wcm9jZXNzX3BoeV90ZXN0X3Bh dHRlcm5fcmVxdWVzdChsaW5rKSkgew0KPj4gICAJCWRwX2xpbmstPnNpbmtfcmVxdWVzdCB8PQ0K PkRQX1RFU1RfTElOS19QSFlfVEVTVF9QQVRURVJOOw0KPj4gKwl9IGVsc2UgaWYgKGRwX2xpbmtf cmVhZF9wc3JfZXJyb3Jfc3RhdHVzKGxpbmspKSB7DQo+PiArCQlEUk1fRVJST1IoIlBTUiBJUlFf SFBEIHJlY2VpdmVkXG4iKTsNCj4+ICsJfSBlbHNlIGlmIChkcF9saW5rX3Bzcl9jYXBhYmlsaXR5 X2NoYW5nZWQobGluaykpIHsNCj4+ICsJCWRybV9kYmdfZHAobGluay0+ZHJtX2RldiwgIlBTUiBD YXBhYmlpdHkgY2hhbmdlZCIpOw0KPj4gICAJfSBlbHNlIHsNCj4+ICAgCQlyZXQgPSBkcF9saW5r X3Byb2Nlc3NfbGlua19zdGF0dXNfdXBkYXRlKGxpbmspOw0KPj4gICAJCWlmICghcmV0KSB7DQo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9wYW5lbC5jDQo+PiBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfcGFuZWwuYw0KPj4gaW5kZXggNTE0OWNlYi4uOGJmOGFi NCAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfcGFuZWwuYw0KPj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9wYW5lbC5jDQo+PiBAQCAtMjAsNiArMjAs MjcgQEAgc3RydWN0IGRwX3BhbmVsX3ByaXZhdGUgew0KPj4gICAJYm9vbCBhdXhfY2ZnX3VwZGF0 ZV9kb25lOw0KPj4gICB9Ow0KPj4NCj4+ICtzdGF0aWMgdm9pZCBkcF9wYW5lbF9yZWFkX3Bzcl9j YXAoc3RydWN0IGRwX3BhbmVsX3ByaXZhdGUgKnBhbmVsKSB7DQo+PiArCXNzaXplX3QgcmxlbjsN Cj4+ICsJc3RydWN0IGRwX3BhbmVsICpkcF9wYW5lbDsNCj4+ICsNCj4+ICsJZHBfcGFuZWwgPSAm cGFuZWwtPmRwX3BhbmVsOw0KPj4gKw0KPj4gKwkvKiBlZHAgc2luayAqLw0KPj4gKwlpZiAoZHBf cGFuZWwtPmRwY2RbRFBfRURQX0NPTkZJR1VSQVRJT05fQ0FQXSkgew0KPj4gKwkJcmxlbiA9IGRy bV9kcF9kcGNkX3JlYWQocGFuZWwtPmF1eCwgRFBfUFNSX1NVUFBPUlQsDQo+PiArCQkJCSZkcF9w YW5lbC0+cHNyX2NhcCwgc2l6ZW9mKGRwX3BhbmVsLQ0KPj5wc3JfY2FwKSk7DQo+PiArCQlpZiAo cmxlbiA9PSBzaXplb2YoZHBfcGFuZWwtPnBzcl9jYXApKSB7DQo+PiArCQkJZHJtX2RiZ19kcChw YW5lbC0+ZHJtX2RldiwNCj4+ICsJCQkJInBzciB2ZXJzaW9uOiAweCV4LCBwc3JfY2FwOiAweCV4 XG4iLA0KPj4gKwkJCQlkcF9wYW5lbC0+cHNyX2NhcC52ZXJzaW9uLA0KPj4gKwkJCQlkcF9wYW5l bC0+cHNyX2NhcC5jYXBhYmlsaXRpZXMpOw0KPj4gKwkJfSBlbHNlDQo+PiArCQkJRFJNX0VSUk9S KCJmYWlsZWQgdG8gcmVhZCBwc3IgaW5mbywgcmxlbj0lemRcbiIsDQo+cmxlbik7DQo+PiArCX0N Cj4+ICt9DQo+PiArDQo+PiAgIHN0YXRpYyBpbnQgZHBfcGFuZWxfcmVhZF9kcGNkKHN0cnVjdCBk cF9wYW5lbCAqZHBfcGFuZWwpDQo+PiAgIHsNCj4+ICAgCWludCByYyA9IDA7DQo+PiBAQCAtMTA2 LDYgKzEyNyw3IEBAIHN0YXRpYyBpbnQgZHBfcGFuZWxfcmVhZF9kcGNkKHN0cnVjdCBkcF9wYW5l bA0KPipkcF9wYW5lbCkNCj4+ICAgCQl9DQo+PiAgIAl9DQo+Pg0KPj4gKwlkcF9wYW5lbF9yZWFk X3Bzcl9jYXAocGFuZWwpOw0KPj4gICBlbmQ6DQo+PiAgIAlyZXR1cm4gcmM7DQo+PiAgIH0NCj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RwL2RwX3BhbmVsLmgNCj4+IGIvZHJp dmVycy9ncHUvZHJtL21zbS9kcC9kcF9wYW5lbC5oDQo+PiBpbmRleCBkODYxMTk3YS4uMmQwODI2 YSAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfcGFuZWwuaA0KPj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9wYW5lbC5oDQo+PiBAQCAtMzQsNiArMzQs MTEgQEAgc3RydWN0IGRwX3BhbmVsX2luIHsNCj4+ICAgCXN0cnVjdCBkcF9jYXRhbG9nICpjYXRh bG9nOw0KPj4gICB9Ow0KPj4NCj4+ICtzdHJ1Y3QgZHBfcGFuZWxfcHNyIHsNCj4+ICsJdTggdmVy c2lvbjsNCj4+ICsJdTggY2FwYWJpbGl0aWVzOw0KPj4gK307DQo+PiArDQo+PiAgIHN0cnVjdCBk cF9wYW5lbCB7DQo+PiAgIAkvKiBkcGNkIHJhdyBkYXRhICovDQo+PiAgIAl1OCBkcGNkW0RQX1JF Q0VJVkVSX0NBUF9TSVpFICsgMV07DQo+PiBAQCAtNDYsNiArNTEsNyBAQCBzdHJ1Y3QgZHBfcGFu ZWwgew0KPj4gICAJc3RydWN0IGVkaWQgKmVkaWQ7DQo+PiAgIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yOw0KPj4gICAJc3RydWN0IGRwX2Rpc3BsYXlfbW9kZSBkcF9tb2RlOw0KPj4g KwlzdHJ1Y3QgZHBfcGFuZWxfcHNyIHBzcl9jYXA7DQo+PiAgIAlib29sIHZpZGVvX3Rlc3Q7DQo+ Pg0KPj4gICAJdTMyIHZpYzsNCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rw L2RwX3JlZy5oDQo+PiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfcmVnLmggaW5kZXggMjY4 NjAyOC4uZWE4NWE2OSAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBf cmVnLmgNCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfcmVnLmgNCj4+IEBAIC0y Miw2ICsyMiwyMCBAQA0KPj4gICAjZGVmaW5lIFJFR19EUF9JTlRSX1NUQVRVUzIJCQkoMHgwMDAw MDAyNCkNCj4+ICAgI2RlZmluZSBSRUdfRFBfSU5UUl9TVEFUVVMzCQkJKDB4MDAwMDAwMjgpDQo+ Pg0KPj4gKyNkZWZpbmUgUkVHX0RQX0lOVFJfU1RBVFVTNAkJCSgweDAwMDAwMDJDKQ0KPj4gKyNk ZWZpbmUgUFNSX1VQREFURV9JTlQJCQkJKDB4MDAwMDAwMDEpDQo+PiArI2RlZmluZSBQU1JfQ0FQ VFVSRV9JTlQJCQkJKDB4MDAwMDAwMDQpDQo+PiArI2RlZmluZSBQU1JfRVhJVF9JTlQJCQkJKDB4 MDAwMDAwMTApDQo+PiArI2RlZmluZSBQU1JfVVBEQVRFX0VSUk9SX0lOVAkJCSgweDAwMDAwMDQw KQ0KPj4gKyNkZWZpbmUgUFNSX1dBS0VfRVJST1JfSU5UCQkJKDB4MDAwMDAxMDApDQo+PiArDQo+ PiArI2RlZmluZSBSRUdfRFBfSU5UUl9NQVNLNAkJCSgweDAwMDAwMDMwKQ0KPj4gKyNkZWZpbmUg UFNSX1VQREFURV9NQVNLCQkJCSgweDAwMDAwMDAxKQ0KPj4gKyNkZWZpbmUgUFNSX0NBUFRVUkVf TUFTSwkJCSgweDAwMDAwMDAyKQ0KPj4gKyNkZWZpbmUgUFNSX0VYSVRfTUFTSwkJCQkoMHgwMDAw MDAwNCkNCj4+ICsjZGVmaW5lIFBTUl9VUERBVEVfRVJST1JfTUFTSwkJCSgweDAwMDAwMDA4KQ0K Pj4gKyNkZWZpbmUgUFNSX1dBS0VfRVJST1JfTUFTSwkJCSgweDAwMDAwMDEwKQ0KPj4gKw0KPj4g ICAjZGVmaW5lIFJFR19EUF9EUF9IUERfQ1RSTAkJCSgweDAwMDAwMDAwKQ0KPj4gICAjZGVmaW5l IERQX0RQX0hQRF9DVFJMX0hQRF9FTgkJCSgweDAwMDAwMDAxKQ0KPj4NCj4+IEBAIC0xNjQsNiAr MTc4LDE2IEBADQo+PiAgICNkZWZpbmUgTU1TU19EUF9BVURJT19USU1JTkdfUkJSXzQ4CQkoMHgw MDAwMDA5NCkNCj4+ICAgI2RlZmluZSBNTVNTX0RQX0FVRElPX1RJTUlOR19IQlJfNDgJCSgweDAw MDAwMDk4KQ0KPj4NCj4+ICsjZGVmaW5lIFJFR19QU1JfQ09ORklHCQkJCSgweDAwMDAwMTAwKQ0K Pj4gKyNkZWZpbmUgRElTQUJMRV9QU1IJCQkJKDB4MDAwMDAwMDApDQo+PiArI2RlZmluZSBQU1Ix X1NVUFBPUlRFRAkJCQkoMHgwMDAwMDAwMSkNCj4+ICsjZGVmaW5lIFBTUjJfV0lUSE9VVF9GUkFN RVNZTkMJCQkoMHgwMDAwMDAwMikNCj4+ICsjZGVmaW5lIFBTUjJfV0lUSF9GUkFNRVNZTkMJCQko MHgwMDAwMDAwMykNCj4+ICsNCj4+ICsjZGVmaW5lIFJFR19QU1JfQ01ECQkJCSgweDAwMDAwMTEw KQ0KPj4gKyNkZWZpbmUgUFNSX0VOVEVSCQkJCSgweDAwMDAwMDAxKQ0KPj4gKyNkZWZpbmUgUFNS X0VYSVQJCQkJKDB4MDAwMDAwMDIpDQo+PiArDQo+PiAgICNkZWZpbmUgTU1TU19EUF9QU1JfQ1JD X1JHCQkJKDB4MDAwMDAxNTQpDQo+PiAgICNkZWZpbmUgTU1TU19EUF9QU1JfQ1JDX0IJCQkoMHgw MDAwMDE1OCkNCj4+DQo+PiBAQCAtMTg0LDYgKzIwOCw5IEBADQo+PiAgICNkZWZpbmUgTU1TU19E UF9BVURJT19TVFJFQU1fMAkJCSgweDAwMDAwMjQwKQ0KPj4gICAjZGVmaW5lIE1NU1NfRFBfQVVE SU9fU1RSRUFNXzEJCQkoMHgwMDAwMDI0NCkNCj4+DQo+PiArI2RlZmluZSBNTVNTX0RQX1NEUF9D RkczCQkJKDB4MDAwMDAyNGMpDQo+PiArI2RlZmluZSBVUERBVEVfU0RQCQkJCSgweDAwMDAwMDAx KQ0KPj4gKw0KPj4gICAjZGVmaW5lIE1NU1NfRFBfRVhURU5TSU9OXzAJCQkoMHgwMDAwMDI1MCkN Cj4+ICAgI2RlZmluZSBNTVNTX0RQX0VYVEVOU0lPTl8xCQkJKDB4MDAwMDAyNTQpDQo+PiAgICNk ZWZpbmUgTU1TU19EUF9FWFRFTlNJT05fMgkJCSgweDAwMDAwMjU4KQ0KPg0KPg0KPi0tDQo+V2l0 aCBiZXN0IHdpc2hlcw0KPkRtaXRyeQ0KDQpUaGFuayB5b3UsDQpTYW5rZWVydGgNCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C57D3C433EF for ; Wed, 29 Jun 2022 13:38:50 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 937E710F639; Wed, 29 Jun 2022 13:38:48 +0000 (UTC) Received: from esa.hc3962-90.iphmx.com (esa.hc3962-90.iphmx.com [216.71.140.77]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4EB9010F629; Wed, 29 Jun 2022 13:38:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qccesdkim1; t=1656509926; x=1657114726; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=QZF557XH5QbgiL3m9HDA6BmXBII8uhwxRoqmOho6MNc=; b=xsFXWS4UdUntpda/rQsHQDEzJIuudSZpOxjfctYNxnPsR1DXGB89dtPy U44MAxNYqx2iKtPZ33KJ+jU0657MYjJ3iyq30uegHUtN8jKINmuF1U8/h YTBpSLzVkJ8BmRK4S8WOww5HWgbgw1nfK6RiB+/vGsy0VKfXepwyNIbFq E=; Received: from mail-bn8nam04lp2043.outbound.protection.outlook.com (HELO NAM04-BN8-obe.outbound.protection.outlook.com) ([104.47.74.43]) by ob1.hc3962-90.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Jun 2022 13:38:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K0RIwGgkmK/wWBKORkcEPfzlDyYqkLkpaLmzhLfmuWCjRd/rXzloeI6bYuPzxt4rL/mab9xqjvbnrCFTbC7XRwqolwOF+c4plEjW7GgUEn6oPG5x8+cy+hXcnMmalurwgYIJHDUi8hXoUNSqsY9BvP2++4cmzxTtC82mw9RAiugkxwj6NXMgMGXPAiKB0B45Vaj7OPxHjjwqXSunN8GZ88yKp1MFCvbI2tdeiTPooKqk6pXl/ao651u/Z5spdld2ffVCy+yQEpmi6c9fUST+CjBV8OwUIY6IahKOaHwZPiOYjKcplum1xEFc/rkQ9+f6HEPC9blUVB/qpcnjsOrR5w== 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=QZF557XH5QbgiL3m9HDA6BmXBII8uhwxRoqmOho6MNc=; b=Om26iAZV5wArPVLyTuHvRp5zDUwjzUE8nRcuMDp62U+8csIcpgr3QYJBzfYxpfom5FyhXQrOKW7Hq2RR6qS4nkoKzcArtkUGSAC1IVMD3+8KC7SP1SqxEj9o0/tFexEoSEmUK3QMSdvmWsL8rCTpRecX1yC3Op0QkjOvbMbtXyZANjjEoL6asjJIkV7aYZ0QpKzEkRUrYL12+Err3o+6qJ6sS4T+5bS/fRIPAxNX2QclCXKTwVKqgzyXMkm6bjXU9Df2BKyj+lWwYoqetum5qQpdLyJanoWqye+HHUSo69qpsz7INWd+lprx5Eh9E4uQgAfnGPd7mbJ4bBgrHtVFGQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=quicinc.com; dmarc=pass action=none header.from=quicinc.com; dkim=pass header.d=quicinc.com; arc=none Received: from MW4PR02MB7186.namprd02.prod.outlook.com (2603:10b6:303:73::6) by SA1PR02MB8445.namprd02.prod.outlook.com (2603:10b6:806:1f4::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.14; Wed, 29 Jun 2022 13:38:39 +0000 Received: from MW4PR02MB7186.namprd02.prod.outlook.com ([fe80::29ab:75ef:34fd:3c13]) by MW4PR02MB7186.namprd02.prod.outlook.com ([fe80::29ab:75ef:34fd:3c13%7]) with mapi id 15.20.5395.014; Wed, 29 Jun 2022 13:38:39 +0000 From: "Sankeerth Billakanti (QUIC)" To: "dmitry.baryshkov@linaro.org" , "Vinod Polimera (QUIC)" , "y@qualcomm.com" , "dri-devel@lists.freedesktop.org" , "linux-arm-msm@vger.kernel.org" , "freedreno@lists.freedesktop.org" , "devicetree@vger.kernel.org" Subject: RE: [v3 1/5] drm/msm/dp: Add basic PSR support for eDP Thread-Topic: [v3 1/5] drm/msm/dp: Add basic PSR support for eDP Thread-Index: AQHYhV0y2Cyhli/VxE+zX68nohRwI61aNcoAgAw6jkA= Date: Wed, 29 Jun 2022 13:38:39 +0000 Message-ID: References: <1655808800-3996-1-git-send-email-quic_vpolimer@quicinc.com> <1655808800-3996-2-git-send-email-quic_vpolimer@quicinc.com> <55f64230-b847-5edb-3596-e22744f84b06@linaro.org> In-Reply-To: <55f64230-b847-5edb-3596-e22744f84b06@linaro.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=quicinc.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 77225133-bd92-4bdc-5f04-08da59d4acf8 x-ms-traffictypediagnostic: SA1PR02MB8445:EE_ x-ld-processed: 98e9ba89-e1a1-4e38-9007-8bdabc25de1d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: z/VVNd5hBBREWfykF2o3WO5toowUtUngHkRlrWJmYvoBKNNuxOZ5svdQ0365mUdqpIPWHzPx1Z+L4mShfqJpfp6ryrqnAuuKtD5L7eOGnyOOkN0nTvD9kRYeNqljb/iKc3BkcH0zyu9XXecbEvMXMeVU/ml3UMWtjT7BTCt3+aaHrw2U5swo4XcmQ/OCHsQKtq+p7EkivCSGAnWCgMiABpeNDjFdNl8UWUi4t3RDDe+L41WWCAA7q9R5SZIkwb9h/+4LxMxdiHO+Xxu+bgDX+VONeZjT+0xAS37sq5mVJKUopnmgG+3mM9uijtilgDRpkNbUhM0YAV36gybWcbo8flh3QrTu9YqIJy3uhCifmXvdrz1F3xiloPPotFFCN4Ze9VtQmfr26qm072SYe+MTE9JpuN9dYTVD3+BhL4OuFVxezo6Furo25kzIGjbA46pM/OrJsl46b1TVM/ewA+rfwC+nNhpnPZt7ex4LTFY9A9fKie2SGUIJrJMzWwgxOb+9aC/gEd7cXUjKwPf/h7V0+6WOtIg5rjS4oRDBnM3+8VKVaNhUxaZv448KfGsmS6cdhK8s5XOdQVqdtMF5F6kd+UABOoIS8ImsxFo6K53XDGRmevjFqZ551WUzrsNf4X0A9X/orC+TeUJPEXiKzzPE8lrOiX2kGU9J8OcjqrhxH0oWVa5+jxLXjkgiXfojSwzaBM0Za34N9au2khYUs10GSf5IA6mzYfMrA3rjD18f/8wreWc0idT4Xb+mlxZI4w0X+3X+k9ctI/tKP1NuRbvjraC5WFklfVB4TBeIm2VKyoGdOk81kcsDBTK2MP2dH1Ism+1yN8bqCP1YEa+1xSJsLQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MW4PR02MB7186.namprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(136003)(366004)(346002)(396003)(39860400002)(376002)(316002)(38070700005)(30864003)(122000001)(110136005)(76116006)(66946007)(66556008)(66476007)(66446008)(64756008)(8676002)(4326008)(55016003)(71200400001)(54906003)(38100700002)(26005)(7696005)(6506007)(9686003)(41300700001)(2906002)(33656002)(478600001)(5660300002)(186003)(52536014)(107886003)(83380400001)(86362001)(8936002)(781001)(579004)(559001)(309714004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RlhLTVBDWXljU0RkR2JnT2I1ZHlIU0ljeDlMZjdTdUF1dDFucUZMMW9KajVH?= =?utf-8?B?bTVaM0RQVTdSb0puMklUV29ncFluVzQrVTZXQkoyMVp3TytFWWxwM2QwbUs1?= =?utf-8?B?bngxM2c3MUZsVzJPSU04S09hdGhpTDlDU3B2N2RROVpCWXVyUHJqYUREcTVX?= =?utf-8?B?VVhBZ2JmOFRTMCtTS2xMUjIveFVaQkpMQUQ5eEg4Z1ZYeWdMemN5RkpTWlZL?= =?utf-8?B?TE4wc01ub2NsdGxxQ3ZvQWdNemNjLzhDRHhPSm4zczdybHhDTSsvTmpaRWRa?= =?utf-8?B?ZEMrTGh6NUVKR0pLSmw2eFQ3bjNrSTFGdW5OVzZBZjJRWWwwWVdldHBJNVIy?= =?utf-8?B?NW9YUjJDR1Zha3FKaGxyVWhENVluZDFiS1dTc2VVUk1UeWZzWllYdjVBL1hq?= =?utf-8?B?ekIzbXlHRkpZOWh1VmpXUnFqTDRNQTIwN0VGOVhwWXh2ajNCUU4zUjdlZWRy?= =?utf-8?B?cmlvUEowRVdlcXNVb2g3RnZTM2YvNjR6blY4WVlZR2NCaGozZWNKeU5taGEw?= =?utf-8?B?aHNzcFQ4TmluMW5YaTh1Ny84K0JBSkNiTEY1WUgvM0l1U1c3SVlyY1hmTzVk?= =?utf-8?B?dm91UjMxQXZma1ZtcGlwR1l2NmhnYkdrY1JyTHJXRjVwRFcyakZWZUtzY1Fr?= =?utf-8?B?YlVHa1hTUEl6SzFCczVxbWl3V3Naak5CNnRYbW5VQVAxOG4xZWozekhvZVZn?= =?utf-8?B?TlIyVld1NnIweTd6MXdBSWhOOWRIK3hlTVBCVWpNcjArNjBlcHlLeFhxa3B5?= =?utf-8?B?YWovb2ZNMmhrYW9tVy9abGc2NmtLMGpSRUFhYW1jV3FqNDk0dUU2YURCK2VO?= =?utf-8?B?cEgzL1NVSXRzdXBXRktrczV5ckZaM281L1JhUjFxaXNiWmlQVnlsM0oyaE4x?= =?utf-8?B?U1gyeXJpMGtiNHdwaGFadXVreFFtb3JyL3BXeHp2TUF0YUNodkJvNzhBTUxa?= =?utf-8?B?M1pZckxaaXNoSC9SeDFrY2ZMNFUzRmdjWWszbTQwOXFaTlhsZDJRaW9sVWJv?= =?utf-8?B?V3g3dEhnQ213U3VTdzZIR1JnaEhVOEQyV251K3Z3YjZhbWxUM082VEI5bkVp?= =?utf-8?B?UGhlNEkxUXREVTZPU01acWt3aldXVTlEZUMyQm1qN1R3TU4yRzJlYTNVZkZ0?= =?utf-8?B?SWVMcFlRRDd2eUhTTmxrdERYSmZoYWhENlZnUFhneG9DVFYramIvUXNQMERB?= =?utf-8?B?VEIvOXkzZm43d3M3RU92dzJYeVNjeGRtV2lJdm01YStHL21wdmZuL0lYcDVD?= =?utf-8?B?QXIyY3o0d0dlWm04bkgvK0pZMW9ZRzVoY3BQKzB3aEJLSVpGVjB0VlF5Q3Fj?= =?utf-8?B?T2tUNi91Z1J2eVJyVkRNWk9sYVlXejBpZjJPczNTaWE0dmhka1dWaElINldT?= =?utf-8?B?UzRweVRQWlhBeWxVSkFQMmxsem1IYVI3d0g3aVRYREdnQVJvMnhOMlR4Mjlq?= =?utf-8?B?L2dBazVFcmJZN0lKbEVaVjlXTHh5dE10YnEzR0I2ckZKa0ZHZWxVY0Q2NStz?= =?utf-8?B?TmhBM3hpb2MyUnJDV003RlZzQUJpRU4zR3NSeFl2L1Z1VjVjMnpXZ1g1Z1dG?= =?utf-8?B?YTdCRzRYN0QrdmlsbWJyclp3bjlHUmFJbU5NSjVwcHd4NE96YWFUdExOMUZL?= =?utf-8?B?TkxBOGVLN282MnJZbm54cTc4UTVmWlgvUDN2bDBqMFFDWnFZMmVwRVJaRzd4?= =?utf-8?B?VTU4QlNUUVF3c0l1R3NISjdSSThRMlhPekI5ZWREb0RRMDNqMTY3YkdlOHNs?= =?utf-8?B?b29hUEJ2L0FwMlpGSlRPd0V6OWpiVmdndEdPd2JqdFd5dFBFTXFmOXFhVjZU?= =?utf-8?B?cjR0TTk2Mm9GUGRhUjJ0UmxERVQrdnQ0bGR0NlppVHIzZVpkUzF1Y3dVODEv?= =?utf-8?B?dHAwcFJ0YzVWMExESHcyZ09WWklCeldDN0FMNThxL2hSbFR3NXZheTMvcVpS?= =?utf-8?B?bjlic3VYaDd1MTkzRVhPeUphN05ObkNkYUFXM0h2SW1DeEx2WWNKckl3ZFU0?= =?utf-8?B?UXB5N0pHVUhpWE9XcFdaSHRFNERWamYyZ2UvV3V2dGJmZUJhVHF1YWlnQkg4?= =?utf-8?B?U2FKbEovS0NDeVpPcWdrVHVZSFhFUmlvYmFVZWkwY0pVckdhWVhhdStla29N?= =?utf-8?Q?rAPDZ+oewA4pCOr8Ggb21paGh?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: quicinc.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR02MB7186.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 77225133-bd92-4bdc-5f04-08da59d4acf8 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jun 2022 13:38:39.5932 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 98e9ba89-e1a1-4e38-9007-8bdabc25de1d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: OIZ191OV4OxnnwrOFCiptPdRphhVaP8x88zMdi+b1+IXTngrbmFM8yJ9IlNM9FTpCSFWOS009oa0piVlK/qz07DzaHe68Z0HpdLG0tFmjPM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR02MB8445 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Kalyan Thota \(QUIC\)" , "Sankeerth Billakanti \(QUIC\)" , "dianders@chromium.org" , "Abhinav Kumar \(QUIC\)" , "Vishnuvardhan Prodduturi \(QUIC\)" , "linux-kernel@vger.kernel.org" , "swboyd@chromium.org" , "Aravind Venkateswaran \(QUIC\)" , "Kuogee Hsieh \(QUIC\)" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGkgRG1pdHJ5LA0KDQo+T24gMjEvMDYvMjAyMiAxMzo1MywgVmlub2QgUG9saW1lcmEgd3JvdGU6 DQo+PiBBZGQgc3VwcG9ydCBmb3IgYmFzaWMgcGFuZWwgc2VsZiByZWZyZXNoIChQU1IpIGZlYXR1 cmUgZm9yIGVEUC4NCj4+IEFkZCBhIG5ldyBpbnRlcmZhY2UgdG8gc2V0IFBTUiBzdGF0ZSBpbiB0 aGUgc2luayBmcm9tIERQVS4NCj4+IFByb2dyYW0gdGhlIGVEUCBjb250cm9sbGVyIHRvIGlzc3Vl IFBTUiBlbnRlciBhbmQgZXhpdCBTRFAgdG8gdGhlDQo+PiBzaW5rLg0KPj4NCj4+IFNpZ25lZC1v ZmYtYnk6IFNhbmtlZXJ0aCBCaWxsYWthbnRpIDxxdWljX3NiaWxsYWthQHF1aWNpbmMuY29tPg0K Pj4gU2lnbmVkLW9mZi1ieTogVmlub2QgUG9saW1lcmEgPHF1aWNfdnBvbGltZXJAcXVpY2luYy5j b20+DQo+PiAtLS0NCj4+ICAgZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9jYXRhbG9nLmMgfCAg ODEgKysrKysrKysrKysrKysrKysrDQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfY2F0 YWxvZy5oIHwgICA0ICsNCj4+ICAgZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9jdHJsLmMgICAg fCAgNzYgKysrKysrKysrKysrKysrKy0NCj4+ICAgZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9j dHJsLmggICAgfCAgIDMgKw0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbXNtL2RwL2RwX2Rpc3BsYXku YyB8ICAxNCArKysNCj4+ICAgZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9kaXNwbGF5LmggfCAg IDIgKw0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbXNtL2RwL2RwX2RybS5jICAgICB8IDE2Ng0KPisr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KPj4gICBkcml2ZXJzL2dwdS9kcm0v bXNtL2RwL2RwX2xpbmsuYyAgICB8ICAzNiArKysrKysrKw0KPj4gICBkcml2ZXJzL2dwdS9kcm0v bXNtL2RwL2RwX3BhbmVsLmMgICB8ICAyMiArKysrKw0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbXNt L2RwL2RwX3BhbmVsLmggICB8ICAgNiArKw0KPj4gICBkcml2ZXJzL2dwdS9kcm0vbXNtL2RwL2Rw X3JlZy5oICAgICB8ICAyNyArKysrKysNCj4+ICAgMTEgZmlsZXMgY2hhbmdlZCwgNDMzIGluc2Vy dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vZHAvZHBfY2F0YWxvZy5jDQo+PiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBf Y2F0YWxvZy5jDQo+PiBpbmRleCA3MjU3NTE1Li5iOTAyMWVkIDEwMDY0NA0KPj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL21zbS9kcC9kcF9jYXRhbG9nLmMNCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZHAvZHBfY2F0YWxvZy5jDQo+PiBAQCAtNDcsNiArNDcsMTQgQEANCj4+ICAgI2RlZmlu ZSBEUF9JTlRFUlJVUFRfU1RBVFVTMl9NQVNLIFwNCj4+ICAgCShEUF9JTlRFUlJVUFRfU1RBVFVT MiA8PCBEUF9JTlRFUlJVUFRfU1RBVFVTX01BU0tfU0hJRlQpDQo+Pg0KPj4gKyNkZWZpbmUgRFBf SU5URVJSVVBUX1NUQVRVUzQgXA0KPj4gKwkoUFNSX1VQREFURV9JTlQgfCBQU1JfQ0FQVFVSRV9J TlQgfCBQU1JfRVhJVF9JTlQgfCBcDQo+PiArCVBTUl9VUERBVEVfRVJST1JfSU5UIHwgUFNSX1dB S0VfRVJST1JfSU5UKQ0KPj4gKw0KPj4gKyNkZWZpbmUgRFBfSU5URVJSVVBUX01BU0s0IFwNCj4+ ICsJKFBTUl9VUERBVEVfTUFTSyB8IFBTUl9DQVBUVVJFX01BU0sgfCBQU1JfRVhJVF9NQVNLIHwg XA0KPj4gKwlQU1JfVVBEQVRFX0VSUk9SX01BU0sgfCBQU1JfV0FLRV9FUlJPUl9NQVNLKQ0KPj4g Kw0KPj4gICBzdHJ1Y3QgZHBfY2F0YWxvZ19wcml2YXRlIHsNCj4+ICAgCXN0cnVjdCBkZXZpY2Ug KmRldjsNCj4+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2Ow0KPj4gQEAgLTM1OSw2ICsz NjcsMjQgQEAgdm9pZCBkcF9jYXRhbG9nX2N0cmxfbGFuZV9tYXBwaW5nKHN0cnVjdA0KPmRwX2Nh dGFsb2cgKmRwX2NhdGFsb2cpDQo+PiAgIAkJCWxuX21hcHBpbmcpOw0KPj4gICB9DQo+Pg0KPj4g K3ZvaWQgZHBfY2F0YWxvZ19jdHJsX3Bzcl9tYWlubGlua19lbmFibGUoc3RydWN0IGRwX2NhdGFs b2cgKmRwX2NhdGFsb2csDQo+PiArCQkJCQkJYm9vbCBlbmFibGUpDQo+PiArew0KPj4gKwl1MzIg dmFsOw0KPj4gKwlzdHJ1Y3QgZHBfY2F0YWxvZ19wcml2YXRlICpjYXRhbG9nID0gY29udGFpbmVy X29mKGRwX2NhdGFsb2csDQo+PiArCQkJCXN0cnVjdCBkcF9jYXRhbG9nX3ByaXZhdGUsIGRwX2Nh dGFsb2cpOw0KPj4gKw0KPj4gKwl2YWwgPSBkcF9yZWFkX2xpbmsoY2F0YWxvZywgUkVHX0RQX01B SU5MSU5LX0NUUkwpOw0KPj4gKwl2YWwgJj0gfkRQX01BSU5MSU5LX0NUUkxfRU5BQkxFOw0KPj4g Kw0KPj4gKwlpZiAoZW5hYmxlKQ0KPj4gKwkJdmFsIHw9IERQX01BSU5MSU5LX0NUUkxfRU5BQkxF Ow0KPj4gKwllbHNlDQo+PiArCQl2YWwgJj0gfkRQX01BSU5MSU5LX0NUUkxfRU5BQkxFOw0KPj4g Kw0KPj4gKwlkcF93cml0ZV9saW5rKGNhdGFsb2csIFJFR19EUF9NQUlOTElOS19DVFJMLCB2YWwp OyB9DQo+PiArDQo+PiAgIHZvaWQgZHBfY2F0YWxvZ19jdHJsX21haW5saW5rX2N0cmwoc3RydWN0 IGRwX2NhdGFsb2cgKmRwX2NhdGFsb2csDQo+PiAgIAkJCQkJCWJvb2wgZW5hYmxlKQ0KPj4gICB7 DQo+PiBAQCAtNjEwLDYgKzYzNiw0NyBAQCB2b2lkIGRwX2NhdGFsb2dfY3RybF9ocGRfY29uZmln KHN0cnVjdCBkcF9jYXRhbG9nDQo+KmRwX2NhdGFsb2cpDQo+PiAgIAlkcF93cml0ZV9hdXgoY2F0 YWxvZywgUkVHX0RQX0RQX0hQRF9DVFJMLA0KPkRQX0RQX0hQRF9DVFJMX0hQRF9FTik7DQo+PiAg IH0NCj4+DQo+PiArc3RhdGljIHZvaWQgZHBfY2F0YWxvZ19lbmFibGVfc2RwKHN0cnVjdCBkcF9j YXRhbG9nX3ByaXZhdGUgKmNhdGFsb2cpDQo+PiArew0KPj4gKwkvKiB0cmlnZ2VyIHNkcCAqLw0K Pj4gKwlkcF93cml0ZV9saW5rKGNhdGFsb2csIE1NU1NfRFBfU0RQX0NGRzMsIFVQREFURV9TRFAp Ow0KPj4gKwlkcF93cml0ZV9saW5rKGNhdGFsb2csIE1NU1NfRFBfU0RQX0NGRzMsICFVUERBVEVf U0RQKTsgfQ0KPj4gKw0KPj4gK3ZvaWQgZHBfY2F0YWxvZ19jdHJsX2NvbmZpZ19wc3Ioc3RydWN0 IGRwX2NhdGFsb2cgKmRwX2NhdGFsb2cpIHsNCj4+ICsJc3RydWN0IGRwX2NhdGFsb2dfcHJpdmF0 ZSAqY2F0YWxvZyA9IGNvbnRhaW5lcl9vZihkcF9jYXRhbG9nLA0KPj4gKwkJCQlzdHJ1Y3QgZHBf Y2F0YWxvZ19wcml2YXRlLCBkcF9jYXRhbG9nKTsNCj4+ICsJdTMyIGNvbmZpZzsNCj4+ICsNCj4+ ICsJLyogZW5hYmxlIFBTUjEgZnVuY3Rpb24gKi8NCj4+ICsJY29uZmlnID0gZHBfcmVhZF9saW5r KGNhdGFsb2csIFJFR19QU1JfQ09ORklHKTsNCj4+ICsJY29uZmlnIHw9IFBTUjFfU1VQUE9SVEVE Ow0KPj4gKwlkcF93cml0ZV9saW5rKGNhdGFsb2csIFJFR19QU1JfQ09ORklHLCBjb25maWcpOw0K Pj4gKw0KPj4gKwlkcF93cml0ZV9haGIoY2F0YWxvZywgUkVHX0RQX0lOVFJfTUFTSzQsDQo+RFBf SU5URVJSVVBUX01BU0s0KTsNCj4+ICsJZHBfY2F0YWxvZ19lbmFibGVfc2RwKGNhdGFsb2cpOw0K Pj4gK30NCj4+ICsNCj4+ICt2b2lkIGRwX2NhdGFsb2dfY3RybF9zZXRfcHNyKHN0cnVjdCBkcF9j YXRhbG9nICpkcF9jYXRhbG9nLCBib29sDQo+PiArZW50ZXIpIHsNCj4+ICsJc3RydWN0IGRwX2Nh dGFsb2dfcHJpdmF0ZSAqY2F0YWxvZyA9IGNvbnRhaW5lcl9vZihkcF9jYXRhbG9nLA0KPj4gKwkJ CXN0cnVjdCBkcF9jYXRhbG9nX3ByaXZhdGUsIGRwX2NhdGFsb2cpOw0KPj4gKwl1MzIgY21kOw0K Pj4gKw0KPj4gKwljbWQgPSBkcF9yZWFkX2xpbmsoY2F0YWxvZywgUkVHX1BTUl9DTUQpOw0KPj4g Kw0KPj4gKwljbWQgJj0gfihQU1JfRU5URVIgfCBQU1JfRVhJVCk7DQo+PiArDQo+PiArCWlmIChl bnRlcikNCj4+ICsJCWNtZCB8PSBQU1JfRU5URVI7DQo+PiArCWVsc2UNCj4+ICsJCWNtZCB8PSBQ U1JfRVhJVDsNCj4+ICsNCj4+ICsJZHBfY2F0YWxvZ19lbmFibGVfc2RwKGNhdGFsb2cpOw0KPj4g KwlkcF93cml0ZV9saW5rKGNhdGFsb2csIFJFR19QU1JfQ01ELCBjbWQpOyB9DQo+PiArDQo+PiAg IHUzMiBkcF9jYXRhbG9nX2xpbmtfaXNfY29ubmVjdGVkKHN0cnVjdCBkcF9jYXRhbG9nICpkcF9j YXRhbG9nKQ0KPj4gICB7DQo+PiAgIAlzdHJ1Y3QgZHBfY2F0YWxvZ19wcml2YXRlICpjYXRhbG9n ID0gY29udGFpbmVyX29mKGRwX2NhdGFsb2csIEBADQo+PiAtNjQ1LDYgKzcxMiwyMCBAQCB1MzIg ZHBfY2F0YWxvZ19ocGRfZ2V0X2ludHJfc3RhdHVzKHN0cnVjdCBkcF9jYXRhbG9nDQo+KmRwX2Nh dGFsb2cpDQo+PiAgIAlyZXR1cm4gaXNyICYgKG1hc2sgfCB+RFBfRFBfSFBEX0lOVF9NQVNLKTsN Cj4+ICAgfQ0KPj4NCj4+ICtpbnQgZHBfY2F0YWxvZ19jdHJsX3JlYWRfcHNyX2ludGVycnVwdF9z dGF0dXMoc3RydWN0IGRwX2NhdGFsb2cNCj4+ICsqZHBfY2F0YWxvZykgew0KPj4gKwlzdHJ1Y3Qg ZHBfY2F0YWxvZ19wcml2YXRlICpjYXRhbG9nID0gY29udGFpbmVyX29mKGRwX2NhdGFsb2csDQo+ PiArCQkJCXN0cnVjdCBkcF9jYXRhbG9nX3ByaXZhdGUsIGRwX2NhdGFsb2cpOw0KPj4gKwl1MzIg aW50ciwgaW50cl9hY2s7DQo+PiArDQo+PiArCWludHIgPSBkcF9yZWFkX2FoYihjYXRhbG9nLCBS RUdfRFBfSU5UUl9TVEFUVVM0KTsNCj4+ICsJaW50cl9hY2sgPSAoaW50ciAmIERQX0lOVEVSUlVQ VF9TVEFUVVM0KQ0KPj4gKwkJCTw8IERQX0lOVEVSUlVQVF9TVEFUVVNfQUNLX1NISUZUOw0KPj4g KwlkcF93cml0ZV9haGIoY2F0YWxvZywgUkVHX0RQX0lOVFJfU1RBVFVTNCwgaW50cl9hY2spOw0K Pj4gKw0KPj4gKwlyZXR1cm4gaW50cjsNCj4+ICt9DQo+PiArDQo+PiAgIGludCBkcF9jYXRhbG9n X2N0cmxfZ2V0X2ludGVycnVwdChzdHJ1Y3QgZHBfY2F0YWxvZyAqZHBfY2F0YWxvZykNCj4+ICAg ew0KPj4gICAJc3RydWN0IGRwX2NhdGFsb2dfcHJpdmF0ZSAqY2F0YWxvZyA9IGNvbnRhaW5lcl9v ZihkcF9jYXRhbG9nLCBkaWZmDQo+PiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBf Y2F0YWxvZy5oDQo+PiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfY2F0YWxvZy5oDQo+PiBp bmRleCAxZjcxN2Y0Li42NDU0ODQ1IDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21z bS9kcC9kcF9jYXRhbG9nLmgNCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfY2F0 YWxvZy5oDQo+PiBAQCAtOTMsNiArOTMsNyBAQCB2b2lkIGRwX2NhdGFsb2dfY3RybF9zdGF0ZV9j dHJsKHN0cnVjdCBkcF9jYXRhbG9nDQo+KmRwX2NhdGFsb2csIHUzMiBzdGF0ZSk7DQo+PiAgIHZv aWQgZHBfY2F0YWxvZ19jdHJsX2NvbmZpZ19jdHJsKHN0cnVjdCBkcF9jYXRhbG9nICpkcF9jYXRh bG9nLCB1MzINCj5jb25maWcpOw0KPj4gICB2b2lkIGRwX2NhdGFsb2dfY3RybF9sYW5lX21hcHBp bmcoc3RydWN0IGRwX2NhdGFsb2cgKmRwX2NhdGFsb2cpOw0KPj4gICB2b2lkIGRwX2NhdGFsb2df Y3RybF9tYWlubGlua19jdHJsKHN0cnVjdCBkcF9jYXRhbG9nICpkcF9jYXRhbG9nLA0KPj4gYm9v bCBlbmFibGUpOw0KPj4gK3ZvaWQgZHBfY2F0YWxvZ19jdHJsX3Bzcl9tYWlubGlua19lbmFibGUo c3RydWN0IGRwX2NhdGFsb2cNCj4+ICsqZHBfY2F0YWxvZywgYm9vbCBlbmFibGUpOw0KPj4gICB2 b2lkIGRwX2NhdGFsb2dfY3RybF9jb25maWdfbWlzYyhzdHJ1Y3QgZHBfY2F0YWxvZyAqZHBfY2F0 YWxvZywgdTMyIGNjLA0KPnUzMiB0Yik7DQo+PiAgIHZvaWQgZHBfY2F0YWxvZ19jdHJsX2NvbmZp Z19tc2Eoc3RydWN0IGRwX2NhdGFsb2cgKmRwX2NhdGFsb2csIHUzMiByYXRlLA0KPj4gICAJCQkJ dTMyIHN0cmVhbV9yYXRlX2toeiwgYm9vbCBmaXhlZF9udmlkKTsgQEAgLQ0KPjEwNCwxMiArMTA1 LDE1IEBADQo+PiB2b2lkIGRwX2NhdGFsb2dfY3RybF9lbmFibGVfaXJxKHN0cnVjdCBkcF9jYXRh bG9nICpkcF9jYXRhbG9nLCBib29sDQo+ZW5hYmxlKTsNCj4+ICAgdm9pZCBkcF9jYXRhbG9nX2hw ZF9jb25maWdfaW50cihzdHJ1Y3QgZHBfY2F0YWxvZyAqZHBfY2F0YWxvZywNCj4+ICAgCQkJdTMy IGludHJfbWFzaywgYm9vbCBlbik7DQo+PiAgIHZvaWQgZHBfY2F0YWxvZ19jdHJsX2hwZF9jb25m aWcoc3RydWN0IGRwX2NhdGFsb2cgKmRwX2NhdGFsb2cpOw0KPj4gK3ZvaWQgZHBfY2F0YWxvZ19j dHJsX2NvbmZpZ19wc3Ioc3RydWN0IGRwX2NhdGFsb2cgKmRwX2NhdGFsb2cpOyB2b2lkDQo+PiAr ZHBfY2F0YWxvZ19jdHJsX3NldF9wc3Ioc3RydWN0IGRwX2NhdGFsb2cgKmRwX2NhdGFsb2csIGJv b2wgZW50ZXIpOw0KPj4gICB1MzIgZHBfY2F0YWxvZ19saW5rX2lzX2Nvbm5lY3RlZChzdHJ1Y3Qg ZHBfY2F0YWxvZyAqZHBfY2F0YWxvZyk7DQo+PiAgIHUzMiBkcF9jYXRhbG9nX2hwZF9nZXRfaW50 cl9zdGF0dXMoc3RydWN0IGRwX2NhdGFsb2cgKmRwX2NhdGFsb2cpOw0KPj4gICB2b2lkIGRwX2Nh dGFsb2dfY3RybF9waHlfcmVzZXQoc3RydWN0IGRwX2NhdGFsb2cgKmRwX2NhdGFsb2cpOw0KPj4g ICBpbnQgZHBfY2F0YWxvZ19jdHJsX3VwZGF0ZV92eF9weChzdHJ1Y3QgZHBfY2F0YWxvZyAqZHBf Y2F0YWxvZywgdTgNCj52X2xldmVsLA0KPj4gICAJCQkJdTggcF9sZXZlbCk7DQo+PiAgIGludCBk cF9jYXRhbG9nX2N0cmxfZ2V0X2ludGVycnVwdChzdHJ1Y3QgZHBfY2F0YWxvZyAqZHBfY2F0YWxv Zyk7DQo+PiAraW50IGRwX2NhdGFsb2dfY3RybF9yZWFkX3Bzcl9pbnRlcnJ1cHRfc3RhdHVzKHN0 cnVjdCBkcF9jYXRhbG9nDQo+PiArKmRwX2NhdGFsb2cpOw0KPj4gICB2b2lkIGRwX2NhdGFsb2df Y3RybF91cGRhdGVfdHJhbnNmZXJfdW5pdChzdHJ1Y3QgZHBfY2F0YWxvZyAqZHBfY2F0YWxvZywN Cj4+ICAgCQkJCXUzMiBkcF90dSwgdTMyIHZhbGlkX2JvdW5kYXJ5LA0KPj4gICAJCQkJdTMyIHZh bGlkX2JvdW5kYXJ5Mik7DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9k cF9jdHJsLmMNCj4+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9jdHJsLmMNCj4+IGluZGV4 IGQyMTk3MWIuLjQ4NWU4ZjUgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rw L2RwX2N0cmwuYw0KPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9jdHJsLmMNCj4+ IEBAIC0yMiw2ICsyMiw3IEBADQo+Pg0KPj4gICAjZGVmaW5lIERQX0tIWl9UT19IWiAxMDAwDQo+ PiAgICNkZWZpbmUgSURMRV9QQVRURVJOX0NPTVBMRVRJT05fVElNRU9VVF9KSUZGSUVTCSgzMCAq IEhaIC8NCj4xMDAwKSAvKiAzMCBtcyAqLw0KPj4gKyNkZWZpbmUgUFNSX09QRVJBVElPTl9DT01Q TEVUSU9OX1RJTUVPVVRfSklGRklFUyAgICAgICAoMzAwICogSFogLw0KPjEwMDApIC8qIDMwMCBt cyAqLw0KPj4gICAjZGVmaW5lIFdBSVRfRk9SX1ZJREVPX1JFQURZX1RJTUVPVVRfSklGRklFUyAo SFogLyAyKQ0KPj4NCj4+ICAgI2RlZmluZSBEUF9DVFJMX0lOVFJfUkVBRFlfRk9SX1ZJREVPICAg ICBCSVQoMCkNCj4+IEBAIC04MCw2ICs4MSw3IEBAIHN0cnVjdCBkcF9jdHJsX3ByaXZhdGUgew0K Pj4gICAJc3RydWN0IGRwX2NhdGFsb2cgKmNhdGFsb2c7DQo+Pg0KPj4gICAJc3RydWN0IGNvbXBs ZXRpb24gaWRsZV9jb21wOw0KPj4gKwlzdHJ1Y3QgY29tcGxldGlvbiBwc3Jfb3BfY29tcDsNCj4+ ICAgCXN0cnVjdCBjb21wbGV0aW9uIHZpZGVvX2NvbXA7DQo+PiAgIH07DQo+Pg0KPj4gQEAgLTE1 Myw2ICsxNTUsOSBAQCBzdGF0aWMgdm9pZCBkcF9jdHJsX2NvbmZpZ19jdHJsKHN0cnVjdCBkcF9j dHJsX3ByaXZhdGUNCj4qY3RybCkNCj4+ICAgCWNvbmZpZyB8PSBEUF9DT05GSUdVUkFUSU9OX0NU UkxfU1RBVElDX0RZTkFNSUNfQ047DQo+PiAgIAljb25maWcgfD0gRFBfQ09ORklHVVJBVElPTl9D VFJMX1NZTkNfQVNZTkNfQ0xLOw0KPj4NCj4+ICsJaWYgKGN0cmwtPnBhbmVsLT5wc3JfY2FwLnZl cnNpb24pDQo+PiArCQljb25maWcgfD0gRFBfQ09ORklHVVJBVElPTl9DVFJMX1NFTkRfVlNDOw0K Pj4gKw0KPj4gICAJZHBfY2F0YWxvZ19jdHJsX2NvbmZpZ19jdHJsKGN0cmwtPmNhdGFsb2csIGNv bmZpZyk7DQo+PiAgIH0NCj4+DQo+PiBAQCAtMTM4MiwxMSArMTM4Nyw2NCBAQCBzdGF0aWMgaW50 IGRwX2N0cmxfZW5hYmxlX3N0cmVhbV9jbG9ja3Moc3RydWN0DQo+ZHBfY3RybF9wcml2YXRlICpj dHJsKQ0KPj4gICAJcmV0dXJuIHJldDsNCj4+ICAgfQ0KPj4NCj4+IC12b2lkIGRwX2N0cmxfcmVz ZXRfaXJxX2N0cmwoc3RydWN0IGRwX2N0cmwgKmRwX2N0cmwsIGJvb2wgZW5hYmxlKQ0KPj4gK3Zv aWQgZHBfY3RybF9jb25maWdfcHNyKHN0cnVjdCBkcF9jdHJsICpkcF9jdHJsKQ0KPj4gICB7DQo+ PiAtCXN0cnVjdCBkcF9jdHJsX3ByaXZhdGUgKmN0cmw7DQo+PiArCXU4IGNmZzsNCj4+ICsJc3Ry dWN0IGRwX2N0cmxfcHJpdmF0ZSAqY3RybCA9IGNvbnRhaW5lcl9vZihkcF9jdHJsLA0KPj4gKwkJ CXN0cnVjdCBkcF9jdHJsX3ByaXZhdGUsIGRwX2N0cmwpOw0KPj4NCj4+IC0JY3RybCA9IGNvbnRh aW5lcl9vZihkcF9jdHJsLCBzdHJ1Y3QgZHBfY3RybF9wcml2YXRlLCBkcF9jdHJsKTsNCj4+ICsJ aWYgKCFjdHJsLT5wYW5lbC0+cHNyX2NhcC52ZXJzaW9uKQ0KPj4gKwkJcmV0dXJuOw0KPj4gKw0K Pj4gKwlkcF9jYXRhbG9nX2N0cmxfY29uZmlnX3BzcihjdHJsLT5jYXRhbG9nKTsNCj4+ICsNCj4+ ICsJY2ZnID0gRFBfUFNSX0VOQUJMRTsNCj4+ICsJZHJtX2RwX2RwY2Rfd3JpdGUoY3RybC0+YXV4 LCBEUF9QU1JfRU5fQ0ZHLCAmY2ZnLCAxKTsgfQ0KPj4gKw0KPj4gK3ZvaWQgZHBfY3RybF9zZXRf cHNyKHN0cnVjdCBkcF9jdHJsICpkcF9jdHJsLCBib29sIGVudGVyKSB7DQo+PiArCXN0cnVjdCBk cF9jdHJsX3ByaXZhdGUgKmN0cmwgPSBjb250YWluZXJfb2YoZHBfY3RybCwNCj4+ICsJCQlzdHJ1 Y3QgZHBfY3RybF9wcml2YXRlLCBkcF9jdHJsKTsNCj4+ICsNCj4+ICsJaWYgKCFjdHJsLT5wYW5l bC0+cHNyX2NhcC52ZXJzaW9uKQ0KPj4gKwkJcmV0dXJuOw0KPj4gKw0KPj4gKwkvKg0KPj4gKwkg KiBXaGVuIGVudGVyaW5nIFBTUiwNCj4+ICsJICogMS4gU2VuZCBQU1IgZW50ZXIgU0RQIGFuZCB3 YWl0IGZvciB0aGUgUFNSX1VQREFURV9JTlQNCj4+ICsJICogMi4gVHVybiBvZmYgdmlkZW8NCj4+ ICsJICogMy4gRGlzYWJsZSB0aGUgbWFpbmxpbmsNCj4+ICsJICoNCj4+ICsJICogV2hlbiBleGl0 aW5nIFBTUiwNCj4+ICsJICogMS4gRW5hYmxlIHRoZSBtYWlubGluaw0KPj4gKwkgKiAyLiBTZW5k IHRoZSBQU1IgZXhpdCBTRFANCj4+ICsJICovDQo+PiArCWlmIChlbnRlcikgew0KPj4gKwkJcmVp bml0X2NvbXBsZXRpb24oJmN0cmwtPnBzcl9vcF9jb21wKTsNCj4+ICsJCWRwX2NhdGFsb2dfY3Ry bF9zZXRfcHNyKGN0cmwtPmNhdGFsb2csIHRydWUpOw0KPj4gKw0KPj4gKwkJaWYgKCF3YWl0X2Zv cl9jb21wbGV0aW9uX3RpbWVvdXQoJmN0cmwtPnBzcl9vcF9jb21wLA0KPj4gKwkJCVBTUl9PUEVS QVRJT05fQ09NUExFVElPTl9USU1FT1VUX0pJRkZJRVMpKSB7DQo+PiArCQkJRFJNX0VSUk9SKCJQ U1JfRU5UUlkgdGltZWRvdXRcbiIpOw0KPj4gKwkJCWRwX2NhdGFsb2dfY3RybF9zZXRfcHNyKGN0 cmwtPmNhdGFsb2csIGZhbHNlKTsNCj4+ICsJCQlyZXR1cm47DQo+PiArCQl9DQo+PiArDQo+PiAr CQlkcF9jYXRhbG9nX2N0cmxfc3RhdGVfY3RybChjdHJsLT5jYXRhbG9nLCAwKTsNCj4+ICsNCj4+ ICsJCWRwX2NhdGFsb2dfY3RybF9wc3JfbWFpbmxpbmtfZW5hYmxlKGN0cmwtPmNhdGFsb2csIGZh bHNlKTsNCj4+ICsJfSBlbHNlIHsNCj4+ICsJCWRwX2NhdGFsb2dfY3RybF9wc3JfbWFpbmxpbmtf ZW5hYmxlKGN0cmwtPmNhdGFsb2csIHRydWUpOw0KPj4gKw0KPj4gKwkJZHBfY2F0YWxvZ19jdHJs X3NldF9wc3IoY3RybC0+Y2F0YWxvZywgZmFsc2UpOw0KPj4gKwl9DQo+PiArfQ0KPj4gKw0KPj4g K3ZvaWQgZHBfY3RybF9yZXNldF9pcnFfY3RybChzdHJ1Y3QgZHBfY3RybCAqZHBfY3RybCwgYm9v bCBlbmFibGUpIHsNCj4+ICsJc3RydWN0IGRwX2N0cmxfcHJpdmF0ZSAqY3RybCA9IGNvbnRhaW5l cl9vZihkcF9jdHJsLA0KPj4gKwkJCXN0cnVjdCBkcF9jdHJsX3ByaXZhdGUsIGRwX2N0cmwpOw0K Pj4NCj4+ICAgCWRwX2NhdGFsb2dfY3RybF9yZXNldChjdHJsLT5jYXRhbG9nKTsNCj4+DQo+PiBA QCAtMTk5Nyw2ICsyMDU1LDE3IEBAIHZvaWQgZHBfY3RybF9pc3Ioc3RydWN0IGRwX2N0cmwgKmRw X2N0cmwpDQo+Pg0KPj4gICAJY3RybCA9IGNvbnRhaW5lcl9vZihkcF9jdHJsLCBzdHJ1Y3QgZHBf Y3RybF9wcml2YXRlLCBkcF9jdHJsKTsNCj4+DQo+PiArCWlmIChjdHJsLT5wYW5lbC0+cHNyX2Nh cC52ZXJzaW9uKSB7DQo+PiArCQlpc3IgPSBkcF9jYXRhbG9nX2N0cmxfcmVhZF9wc3JfaW50ZXJy dXB0X3N0YXR1cyhjdHJsLQ0KPj5jYXRhbG9nKTsNCj4+ICsNCj4+ICsJCWlmIChpc3IgPT0gUFNS X1VQREFURV9JTlQpDQo+PiArCQkJZHJtX2RiZ19kcChjdHJsLT5kcm1fZGV2LCAiUFNSIGZyYW1l IHVwZGF0ZQ0KPmRvbmVcbiIpOw0KPj4gKwkJZWxzZSBpZiAoaXNyID09IFBTUl9FWElUX0lOVCkN Cj4+ICsJCQlkcm1fZGJnX2RwKGN0cmwtPmRybV9kZXYsICJQU1IgZXhpdCBkb25lXG4iKTsNCj4+ ICsNCj4+ICsJCWNvbXBsZXRlKCZjdHJsLT5wc3Jfb3BfY29tcCk7DQo+PiArCX0NCj4+ICsNCj4+ ICAgCWlzciA9IGRwX2NhdGFsb2dfY3RybF9nZXRfaW50ZXJydXB0KGN0cmwtPmNhdGFsb2cpOw0K Pj4NCj4+ICAgCWlmIChpc3IgJiBEUF9DVFJMX0lOVFJfUkVBRFlfRk9SX1ZJREVPKSB7IEBAIC0y MDQzLDYgKzIxMTIsNw0KPkBADQo+PiBzdHJ1Y3QgZHBfY3RybCAqZHBfY3RybF9nZXQoc3RydWN0 IGRldmljZSAqZGV2LCBzdHJ1Y3QgZHBfbGluayAqbGluaywNCj4+ICAgCQlkZXZfZXJyKGRldiwg ImZhaWxlZCB0byBhZGQgRFAgT1BQIHRhYmxlXG4iKTsNCj4+DQo+PiAgIAlpbml0X2NvbXBsZXRp b24oJmN0cmwtPmlkbGVfY29tcCk7DQo+PiArCWluaXRfY29tcGxldGlvbigmY3RybC0+cHNyX29w X2NvbXApOw0KPj4gICAJaW5pdF9jb21wbGV0aW9uKCZjdHJsLT52aWRlb19jb21wKTsNCj4+DQo+ PiAgIAkvKiBpbiBwYXJhbWV0ZXJzICovDQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L21zbS9kcC9kcF9jdHJsLmgNCj4+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9jdHJsLmgN Cj4+IGluZGV4IDA3NDVmZGUuLmJlMDc0YWUgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vbXNtL2RwL2RwX2N0cmwuaA0KPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9j dHJsLmgNCj4+IEBAIC0zOCw0ICszOCw3IEBAIHZvaWQgZHBfY3RybF9waHlfaW5pdChzdHJ1Y3Qg ZHBfY3RybCAqZHBfY3RybCk7DQo+PiAgIHZvaWQgZHBfY3RybF9waHlfZXhpdChzdHJ1Y3QgZHBf Y3RybCAqZHBfY3RybCk7DQo+PiAgIHZvaWQgZHBfY3RybF9pcnFfcGh5X2V4aXQoc3RydWN0IGRw X2N0cmwgKmRwX2N0cmwpOw0KPj4NCj4+ICt2b2lkIGRwX2N0cmxfc2V0X3BzcihzdHJ1Y3QgZHBf Y3RybCAqZHBfY3RybCwgYm9vbCBlbmFibGUpOyB2b2lkDQo+PiArZHBfY3RybF9jb25maWdfcHNy KHN0cnVjdCBkcF9jdHJsICpkcF9jdHJsKTsNCj4+ICsNCj4+ICAgI2VuZGlmIC8qIF9EUF9DVFJM X0hfICovDQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9kaXNwbGF5 LmMNCj4+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9kaXNwbGF5LmMNCj4+IGluZGV4IGJj ZTc3OTMuLjJlNzc5YzIgMTAwNjQ0DQo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RwL2Rw X2Rpc3BsYXkuYw0KPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9kaXNwbGF5LmMN Cj4+IEBAIC0zODgsNiArMzg4LDggQEAgc3RhdGljIGludCBkcF9kaXNwbGF5X3Byb2Nlc3NfaHBk X2hpZ2goc3RydWN0DQo+PiBkcF9kaXNwbGF5X3ByaXZhdGUgKmRwKQ0KPj4NCj4+ICAgCWVkaWQg PSBkcC0+cGFuZWwtPmVkaWQ7DQo+Pg0KPj4gKwlkcC0+ZHBfZGlzcGxheS5wc3Jfc3VwcG9ydGVk ID0gISFkcC0+cGFuZWwtPnBzcl9jYXAudmVyc2lvbjsNCj4+ICsNCj4+ICAgCWRwLT5hdWRpb19z dXBwb3J0ZWQgPSBkcm1fZGV0ZWN0X21vbml0b3JfYXVkaW8oZWRpZCk7DQo+PiAgIAlkcF9wYW5l bF9oYW5kbGVfc2lua19yZXF1ZXN0KGRwLT5wYW5lbCk7DQo+Pg0KPj4gQEAgLTg5NSw2ICs4OTcs MTAgQEAgc3RhdGljIGludCBkcF9kaXNwbGF5X3Bvc3RfZW5hYmxlKHN0cnVjdCBtc21fZHANCj4+ ICpkcF9kaXNwbGF5KQ0KPj4NCj4+ICAgCS8qIHNpZ25hbCB0aGUgY29ubmVjdCBldmVudCBsYXRl IHRvIHN5bmNocm9uaXplIHZpZGVvIGFuZCBkaXNwbGF5ICovDQo+PiAgIAlkcF9kaXNwbGF5X2hh bmRsZV9wbHVnZ2VkX2NoYW5nZShkcF9kaXNwbGF5LCB0cnVlKTsNCj4+ICsNCj4+ICsJaWYgKGRw X2Rpc3BsYXktPnBzcl9zdXBwb3J0ZWQpDQo+PiArCQlkcF9jdHJsX2NvbmZpZ19wc3IoZHAtPmN0 cmwpOw0KPg0KPkR1bWIgcXVlc3Rpb24uIFdoYXQgaWYgdGhlIGZpcnN0IGRpc3BsYXkgcmVwb3J0 cyBwc3IgYXMgc3VwcG9ydGVkLCBidXQgdGhlDQo+bmV4dCBEUCBkaXNwbGF5IHRoYXQgZ2V0cyBw bHVnZ2VkIGRvZXNuJ3Qgc3VwcG9ydCBQU1I/IERvIHdlIG5lZWQgdG8gZG8NCj5hbnl0aGluZyB0 byBjbGVhciB0aGlzIGNvbmZpZz8NCj4NCg0KVGhlIHBzcl9zdXBwb3J0ZWQgZmxhZyBpcyBzZXQg YWZ0ZXIgY2hlY2tpbmcgZm9yIHBzciBzdXBwb3J0IGFmdGVyIEhQRC4NCg0KCWRwLT5kcF9kaXNw bGF5LnBzcl9zdXBwb3J0ZWQgPSAhIWRwLT5wYW5lbC0+cHNyX2NhcC52ZXJzaW9uOw0KaW4gZHBf ZGlzcGxheV9wcm9jZXNzX2hwZF9oaWdoIHdpbGwgdXBkYXRlIGl0Lg0KDQo+PiArDQo+PiAgIAly ZXR1cm4gMDsNCj4+ICAgfQ0KPj4NCj4+IEBAIC0xMDk0LDYgKzExMDAsMTQgQEAgc3RhdGljIHZv aWQgZHBfZGlzcGxheV9jb25maWdfaHBkKHN0cnVjdA0KPmRwX2Rpc3BsYXlfcHJpdmF0ZSAqZHAp DQo+PiAgIAllbmFibGVfaXJxKGRwLT5pcnEpOw0KPj4gICB9DQo+Pg0KPj4gK3ZvaWQgZHBfZGlz cGxheV9zZXRfcHNyKHN0cnVjdCBtc21fZHAgKmRwX2Rpc3BsYXksIGJvb2wgZW50ZXIpIHsNCj4+ ICsJc3RydWN0IGRwX2Rpc3BsYXlfcHJpdmF0ZSAqZHA7DQo+PiArDQo+PiArCWRwID0gY29udGFp bmVyX29mKGRwX2Rpc3BsYXksIHN0cnVjdCBkcF9kaXNwbGF5X3ByaXZhdGUsIGRwX2Rpc3BsYXkp Ow0KPj4gKwlkcF9jdHJsX3NldF9wc3IoZHAtPmN0cmwsIGVudGVyKTsNCj4+ICt9DQo+PiArDQo+ PiAgIHN0YXRpYyBpbnQgaHBkX2V2ZW50X3RocmVhZCh2b2lkICpkYXRhKQ0KPj4gICB7DQo+PiAg IAlzdHJ1Y3QgZHBfZGlzcGxheV9wcml2YXRlICpkcF9wcml2OyBkaWZmIC0tZ2l0DQo+PiBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfZGlzcGxheS5oDQo+PiBiL2RyaXZlcnMvZ3B1L2RybS9t c20vZHAvZHBfZGlzcGxheS5oDQo+PiBpbmRleCA0ZjlmZTRkLi4xZmVhYWRhIDEwMDY0NA0KPj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9kaXNwbGF5LmgNCj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZHAvZHBfZGlzcGxheS5oDQo+PiBAQCAtMjksNiArMjksNyBAQCBzdHJ1 Y3QgbXNtX2RwIHsNCj4+DQo+PiAgIAl1MzIgbWF4X2RwX2xhbmVzOw0KPj4gICAJc3RydWN0IGRw X2F1ZGlvICpkcF9hdWRpbzsNCj4+ICsJYm9vbCBwc3Jfc3VwcG9ydGVkOw0KPj4gICB9Ow0KPj4N Cj4+ICAgaW50IGRwX2Rpc3BsYXlfc2V0X3BsdWdnZWRfY2Ioc3RydWN0IG1zbV9kcCAqZHBfZGlz cGxheSwgQEAgLTM5LDUNCj4+ICs0MCw2IEBAIGJvb2wgZHBfZGlzcGxheV9jaGVja192aWRlb190 ZXN0KHN0cnVjdCBtc21fZHAgKmRwX2Rpc3BsYXkpOw0KPj4gICBpbnQgZHBfZGlzcGxheV9nZXRf dGVzdF9icHAoc3RydWN0IG1zbV9kcCAqZHBfZGlzcGxheSk7DQo+PiAgIHZvaWQgZHBfZGlzcGxh eV9zaWduYWxfYXVkaW9fc3RhcnQoc3RydWN0IG1zbV9kcCAqZHBfZGlzcGxheSk7DQo+PiAgIHZv aWQgZHBfZGlzcGxheV9zaWduYWxfYXVkaW9fY29tcGxldGUoc3RydWN0IG1zbV9kcCAqZHBfZGlz cGxheSk7DQo+PiArdm9pZCBkcF9kaXNwbGF5X3NldF9wc3Ioc3RydWN0IG1zbV9kcCAqZHAsIGJv b2wgZW50ZXIpOw0KPj4NCj4+ICAgI2VuZGlmIC8qIF9EUF9ESVNQTEFZX0hfICovDQo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9kcm0uYw0KPj4gYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2RwL2RwX2RybS5jIGluZGV4IDYyZDU4YjkuLmNmZTMxZWQgMTAwNjQ0DQo+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RwL2RwX2RybS5jDQo+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2RwL2RwX2RybS5jDQo+PiBAQCAtNjAsNiArNjAsMTY5IEBAIHN0YXRpYyBpbnQg ZHBfYnJpZGdlX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2JyaWRnZQ0KPipicmlkZ2UsIHN0cnVjdCBk cm1fY29ubmVjdG9yICoNCj4+ICAgCXJldHVybiByYzsNCj4+ICAgfQ0KPj4NCj4+ICtzdGF0aWMg c3RydWN0IGRybV9jcnRjICpkcF9icmlkZ2VfZ2V0X29sZF9jb25uZWN0b3JfY3J0YyhzdHJ1Y3Qg bXNtX2RwDQo+KmRwLA0KPj4gKwkJCQkJICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp IHsNCj4+ICsJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gZHAtPmVuY29kZXI7DQo+PiAr CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7DQo+PiArCXN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICpjb25uX3N0YXRlOw0KPj4gKw0KPj4gKwljb25uZWN0b3IgPSBkcm1fYXRvbWlj X2dldF9vbGRfY29ubmVjdG9yX2Zvcl9lbmNvZGVyKHN0YXRlLA0KPmVuY29kZXIpOw0KPj4gKwlp ZiAoIWNvbm5lY3RvcikNCj4+ICsJCXJldHVybiBOVUxMOw0KPj4gKw0KPj4gKwljb25uX3N0YXRl ID0gZHJtX2F0b21pY19nZXRfb2xkX2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwNCj5jb25uZWN0b3Ip Ow0KPj4gKwlpZiAoIWNvbm5fc3RhdGUpDQo+PiArCQlyZXR1cm4gTlVMTDsNCj4+ICsNCj4+ICsJ cmV0dXJuIGNvbm5fc3RhdGUtPmNydGM7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBzdHJ1Y3Qg ZHJtX2NydGMgKmRwX2JyaWRnZV9nZXRfbmV3X2Nvbm5lY3Rvcl9jcnRjKHN0cnVjdA0KPm1zbV9k cCAqZHAsDQo+PiArCQkJCQkgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkgew0KPj4g KwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSBkcC0+ZW5jb2RlcjsNCj4+ICsJc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsNCj4+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5fc3RhdGU7DQo+PiArDQo+PiArCWNvbm5lY3RvciA9IGRybV9hdG9taWNfZ2V0X25l d19jb25uZWN0b3JfZm9yX2VuY29kZXIoc3RhdGUsDQo+ZW5jb2Rlcik7DQo+PiArCWlmICghY29u bmVjdG9yKQ0KPj4gKwkJcmV0dXJuIE5VTEw7DQo+PiArDQo+PiArCWNvbm5fc3RhdGUgPSBkcm1f YXRvbWljX2dldF9uZXdfY29ubmVjdG9yX3N0YXRlKHN0YXRlLA0KPmNvbm5lY3Rvcik7DQo+PiAr CWlmICghY29ubl9zdGF0ZSkNCj4+ICsJCXJldHVybiBOVUxMOw0KPj4gKw0KPj4gKwlyZXR1cm4g Y29ubl9zdGF0ZS0+Y3J0YzsNCj4+ICt9DQo+DQo+VGhlc2UgdHdvIGZ1bmN0aW9ucyBzaG91bGQg YmVjb21lIGNvcmUgRFJNIGhlbHBlcnMuIFBsZWFzZSBtb3ZlIHRoZW0NCj5hY2NvcmRpbmdseSB0 byByZW1vdmUgZHVwbGljYXRpb24gd2l0aCB0aGUgYnJpZGdlIGNvZGUuDQo+DQoNCk9rYXkuIEkg d2lsbCBhZGQgdHdvIGhlbHBlciBmdW5jdGlvbnMgaW4gZHJtX2F0b21pYy5jIHRvIHJldHJpZXZl IHRoZSBvbGQgYW5kIG5ldyBjcnRjcyBmcm9tIGVuY29kZXIgYW5kIGF0b21pYyBzdGF0ZS4NCg0K Pj4gKw0KPj4gK3N0YXRpYyBpbnQgZWRwX2JyaWRnZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9i cmlkZ2UgKmRybV9icmlkZ2UsDQo+PiArCQkJICAgIHN0cnVjdCBkcm1fYnJpZGdlX3N0YXRlICpi cmlkZ2Vfc3RhdGUsDQo+PiArCQkJICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwNCj4+ICsJCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpIHsN Cj4+ICsJc3RydWN0IG1zbV9kcCAqZHA7DQo+PiArDQo+PiArCWRwID0gdG9fZHBfYnJpZGdlKGRy bV9icmlkZ2UpLT5kcF9kaXNwbGF5Ow0KPj4gKwlpZiAoV0FSTl9PTighY29ubl9zdGF0ZSkpDQo+ PiArCQlyZXR1cm4gLUVOT0RFVjsNCj4+ICsNCj4+ICsJaWYgKGRwLT5wc3Jfc3VwcG9ydGVkKQ0K Pj4gKwkJY29ubl9zdGF0ZS0+c2VsZl9yZWZyZXNoX2F3YXJlID0gdHJ1ZTsNCj4+ICsNCj4+ICsJ aWYgKCFjb25uX3N0YXRlLT5jcnRjIHx8ICFjcnRjX3N0YXRlKQ0KPj4gKwkJcmV0dXJuIDA7DQo+ PiArDQo+PiArCWlmIChjcnRjX3N0YXRlLT5zZWxmX3JlZnJlc2hfYWN0aXZlICYmICFkcC0+cHNy X3N1cHBvcnRlZCkNCj4+ICsJCXJldHVybiAtRUlOVkFMOw0KPj4gKw0KPj4gKwlyZXR1cm4gMDsN Cj4+ICt9DQo+PiArDQo+PiArc3RhdGljIHZvaWQgZWRwX2JyaWRnZV9hdG9taWNfZW5hYmxlKHN0 cnVjdCBkcm1fYnJpZGdlICpkcm1fYnJpZGdlLA0KPj4gKwkJCQlzdHJ1Y3QgZHJtX2JyaWRnZV9z dGF0ZSAqb2xkX2JyaWRnZV9zdGF0ZSkgew0KPj4gKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq b2xkX3N0YXRlID0gb2xkX2JyaWRnZV9zdGF0ZS0+YmFzZS5zdGF0ZTsNCj4+ICsJc3RydWN0IGRy bV9jcnRjICpjcnRjOw0KPj4gKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRl Ow0KPj4gKwlzdHJ1Y3QgbXNtX2RwX2JyaWRnZSAqZHBfYnJpZGdlID0gdG9fZHBfYnJpZGdlKGRy bV9icmlkZ2UpOw0KPj4gKwlzdHJ1Y3QgbXNtX2RwICpkcF9kaXNwbGF5ID0gZHBfYnJpZGdlLT5k cF9kaXNwbGF5Ow0KPj4gKw0KPj4gKwljcnRjID0gZHBfYnJpZGdlX2dldF9uZXdfY29ubmVjdG9y X2NydGMoZHBfZGlzcGxheSwgb2xkX3N0YXRlKTsNCj4+ICsJaWYgKCFjcnRjKQ0KPj4gKwkJcmV0 dXJuOw0KPg0KPldoeT8NCj4NCg0KV2UgbmVlZCB0byBrbm93IHRoZSBwc3Igc3RhdHVzIG9mIHRo ZSBvbGQgc3RhdGUgb2YgdGhlIGNydGMgdG8gZGVjaWRlIHdoZXRoZXINCnRvIGVuYWJsZSB0aGUg Y29tcGxldGUgZURQIGNvbnRyb2xsZXIgb3IganVzdCBleGl0IHBzciBzdGF0ZS4NCg0KPj4gKw0K Pj4gKwlvbGRfY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKG9sZF9z dGF0ZSwgY3J0Yyk7DQo+PiArDQo+PiArCS8qIEV4aXQgZnJvbSBzZWxmIHJlZnJlc2ggbW9kZSAq Lw0KPj4gKwlpZiAob2xkX2NydGNfc3RhdGUgJiYgb2xkX2NydGNfc3RhdGUtPnNlbGZfcmVmcmVz aF9hY3RpdmUpIHsNCj4+ICsJCWRwX2Rpc3BsYXlfc2V0X3BzcihkcF9kaXNwbGF5LCBmYWxzZSk7 DQo+PiArCQlyZXR1cm47DQo+PiArCX0NCj4+ICsNCj4+ICsJZHBfYnJpZGdlX2VuYWJsZShkcm1f YnJpZGdlKTsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIHZvaWQgZWRwX2JyaWRnZV9hdG9taWNf ZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqZHJtX2JyaWRnZSwNCj4+ICsJCQkJc3RydWN0IGRy bV9icmlkZ2Vfc3RhdGUgKm9sZF9icmlkZ2Vfc3RhdGUpIHsNCj4+ICsJc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKm9sZF9zdGF0ZSA9IG9sZF9icmlkZ2Vfc3RhdGUtPmJhc2Uuc3RhdGU7DQo+PiAr CXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsNCj4+ICsJc3RydWN0IGRybV9jcnRjX3N0YXRlICpuZXdf Y3J0Y19zdGF0ZSA9IE5VTEwsICpvbGRfY3J0Y19zdGF0ZSA9DQo+TlVMTDsNCj4+ICsJc3RydWN0 IG1zbV9kcF9icmlkZ2UgKmRwX2JyaWRnZSA9IHRvX2RwX2JyaWRnZShkcm1fYnJpZGdlKTsNCj4+ ICsJc3RydWN0IG1zbV9kcCAqZHBfZGlzcGxheSA9IGRwX2JyaWRnZS0+ZHBfZGlzcGxheTsNCj4+ ICsNCj4+ICsJY3J0YyA9IGRwX2JyaWRnZV9nZXRfb2xkX2Nvbm5lY3Rvcl9jcnRjKGRwX2Rpc3Bs YXksIG9sZF9zdGF0ZSk7DQo+PiArCWlmICghY3J0YykNCj4+ICsJCWdvdG8gb3V0Ow0KPg0KPldo eT8gQW5kIHdoeSBvbGQgY3J0Yz8NCj4NCkluIGRpc2FibGUgdGhlIG5ldyBjcnRjIG1heSBiZSBy ZW1vdmVkIGZvciBzY3JlZW4gb2ZmIGNhc2VzIGFuZCBoZW5jZSBjb3VsZCBiZSBOVUxMLg0KU28s IHdlIG5lZWQgdG8gcmV0cmlldmUgdGhlIG9sZCBjcnRjLg0KDQpXZSBuZWVkIHRvIGtub3cgaWYg cHNyIHdhcyBlbmFibGVkIGluIHRoZSBvbGQgc3RhdGUgb2YgY3J0Yy4gSWYgaXQgaXMgZW5hYmxl ZCwgdGhlbiBpdA0KbWVhbnMgdGhpcyBpcyBhIHNjcmVlbiBvZmYgY2FzZSBhbmQgd2UgbmVlZCB0 byBwcm9jZWVkIHRvIHR1cm4gb2ZmIHRoZSBlZHAgY29udHJvbGxlcg0KaW4gdGhlIHBvc3RfZGlz YWJsZS4NCg0KSWYgdGhpcyBpcyBub3QgYSBzY3JlZW4gb2ZmIGNhc2UsIHRoZW4gd2UgbmVlZCB0 byBjaGVjayB0aGUgbmV3IGNydGMgc3RhdGUgdG8ga25vdyBpZiB0aGUNCk9TIGlzIHJlcXVlc3Rp bmcgZm9yIGEgcHNyIGVudHJ5IGFuZCBhY2NvcmRpbmdseSBlbnRlciBwc3INCg0KPj4gKw0KPj4g KwluZXdfY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKG9sZF9zdGF0 ZSwgY3J0Yyk7DQo+PiArCWlmICghbmV3X2NydGNfc3RhdGUpDQo+PiArCQlnb3RvIG91dDsNCj4+ ICsNCj4+ICsJb2xkX2NydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9vbGRfY3J0Y19zdGF0ZShv bGRfc3RhdGUsIGNydGMpOw0KPj4gKwlpZiAoIW9sZF9jcnRjX3N0YXRlKQ0KPj4gKwkJZ290byBv dXQ7DQo+PiArDQo+PiArCS8qDQo+PiArCSAqIFNldCBzZWxmIHJlZnJlc2ggbW9kZSBpZiBjdXJy ZW50IGNydGMgc3RhdGUgaXMgYWN0aXZlLg0KPj4gKwkgKiBJZiBvbGQgY3J0YyBzdGF0ZSBpcyBh Y3RpdmUsIHRoZW4gdGhpcyBpcyBhIGRpc3BsYXkgZGlzYWJsZQ0KPj4gKwkgKiBjYWxsIHdoaWxl IHRoZSBzaW5rIGlzIGluIHBzciBzdGF0ZS4gU28sIGV4aXQgcHNyIGhlcmUuDQo+PiArCSAqIFRo ZSBlRFAgY29udHJvbGxlciB3aWxsIGJlIGRpc2FibGVkIGluIHRoZQ0KPj4gKwkgKiBlZHBfYnJp ZGdlX2F0b21pY19wb3N0X2Rpc2FibGUgZnVuY3Rpb24uDQo+PiArCSAqDQo+PiArCSAqIFdlIG9i c2VydmVkIHNpbmsgaXMgc3R1Y2sgaW4gc2VsZiByZWZyZXNoIGlmIHBzciBleGl0IGlzIHNraXBw ZWQNCj4+ICsJICogd2hlbiBkaXNwbGF5IGRpc2FibGUgb2NjdXJzIHdoaWxlIHRoZSBzaW5rIGlz IGluIHBzciBzdGF0ZS4NCj4+ICsJICovDQo+PiArCWlmIChuZXdfY3J0Y19zdGF0ZS0+c2VsZl9y ZWZyZXNoX2FjdGl2ZSkgew0KPj4gKwkJZHBfZGlzcGxheV9zZXRfcHNyKGRwX2Rpc3BsYXksIHRy dWUpOw0KPj4gKwkJcmV0dXJuOw0KPj4gKwl9IGVsc2UgaWYgKG9sZF9jcnRjX3N0YXRlLT5zZWxm X3JlZnJlc2hfYWN0aXZlKSB7DQo+PiArCQlkcF9kaXNwbGF5X3NldF9wc3IoZHBfZGlzcGxheSwg ZmFsc2UpOw0KPj4gKwkJcmV0dXJuOw0KPj4gKwl9DQo+PiArDQo+PiArb3V0Og0KPj4gKwlkcF9i cmlkZ2VfZGlzYWJsZShkcm1fYnJpZGdlKTsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIHZvaWQg ZWRwX2JyaWRnZV9hdG9taWNfcG9zdF9kaXNhYmxlKHN0cnVjdCBkcm1fYnJpZGdlDQo+KmRybV9i cmlkZ2UsDQo+PiArCQkJCXN0cnVjdCBkcm1fYnJpZGdlX3N0YXRlICpvbGRfYnJpZGdlX3N0YXRl KSB7DQo+PiArCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUgPSBvbGRfYnJpZGdl X3N0YXRlLT5iYXNlLnN0YXRlOw0KPj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7DQo+PiArCXN0 cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUgPSBOVUxMOw0KPj4gKwlzdHJ1Y3Qg bXNtX2RwX2JyaWRnZSAqZHBfYnJpZGdlID0gdG9fZHBfYnJpZGdlKGRybV9icmlkZ2UpOw0KPj4g KwlzdHJ1Y3QgbXNtX2RwICpkcF9kaXNwbGF5ID0gZHBfYnJpZGdlLT5kcF9kaXNwbGF5Ow0KPj4g Kw0KPj4gKwljcnRjID0gZHBfYnJpZGdlX2dldF9vbGRfY29ubmVjdG9yX2NydGMoZHBfZGlzcGxh eSwgb2xkX3N0YXRlKTsNCj4+ICsJaWYgKCFjcnRjKQ0KPj4gKwkJcmV0dXJuOw0KPj4gKw0KPj4g KwluZXdfY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKG9sZF9zdGF0 ZSwgY3J0Yyk7DQo+PiArCWlmICghbmV3X2NydGNfc3RhdGUpDQo+PiArCQlyZXR1cm47DQo+PiAr DQo+PiArCS8qDQo+PiArCSAqIFNlbGYgcmVmcmVzaCBtb2RlIGlzIGFscmVhZHkgc2V0IGluIGVk cF9icmlkZ2VfYXRvbWljX2Rpc2FibGUuDQo+PiArCSAqLw0KPj4gKwlpZiAobmV3X2NydGNfc3Rh dGUtPnNlbGZfcmVmcmVzaF9hY3RpdmUpDQo+PiArCQlyZXR1cm47DQo+PiArDQo+PiArCWRwX2Jy aWRnZV9wb3N0X2Rpc2FibGUoZHJtX2JyaWRnZSk7DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2JyaWRnZV9mdW5jcyBlZHBfYnJpZGdlX29wcyA9IHsNCj4+ICsJLmF0 b21pY19lbmFibGUgICAgICAgPSBlZHBfYnJpZGdlX2F0b21pY19lbmFibGUsDQo+PiArCS5hdG9t aWNfZGlzYWJsZSAgICAgID0gZWRwX2JyaWRnZV9hdG9taWNfZGlzYWJsZSwNCj4+ICsJLmF0b21p Y19wb3N0X2Rpc2FibGUgPSBlZHBfYnJpZGdlX2F0b21pY19wb3N0X2Rpc2FibGUsDQo+DQo+SWYg eW91IGFyZSB1c2luZyB0aGUgYXRvbWljIG9wcyBoZXJlLCBwbGVhc2Ugc3dpdGNoIGRwX2JyaWRn ZV9vcHMgdG8gYXRvbWljDQo+dG9vLg0KPg0KPj4gKwkubW9kZV9zZXQgICAgID0gZHBfYnJpZGdl X21vZGVfc2V0LA0KPg0KPi5tb2RlX3ZhbGlkIGlzIG1pc3NpbmcuIElzIHRoaXMgaW50ZW50aW9u YWw/DQo+DQoNCk5vLiBpdCB3YXMgbWlzc2VkLiBXaWxsIGFkZCBpdA0KDQo+PiArCS5hdG9taWNf cmVzZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9icmlkZ2VfcmVzZXQsDQo+PiArCS5hdG9taWNfZHVw bGljYXRlX3N0YXRlID0NCj5kcm1fYXRvbWljX2hlbHBlcl9icmlkZ2VfZHVwbGljYXRlX3N0YXRl LA0KPj4gKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9icmlkZ2Vf ZGVzdHJveV9zdGF0ZSwNCj4+ICsJLmF0b21pY19jaGVjayA9IGVkcF9icmlkZ2VfYXRvbWljX2No ZWNrLCB9Ow0KPj4gKw0KPj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9icmlkZ2VfZnVuY3Mg ZHBfYnJpZGdlX29wcyA9IHsNCj4+ICAgCS5lbmFibGUgICAgICAgPSBkcF9icmlkZ2VfZW5hYmxl LA0KPj4gICAJLmRpc2FibGUgICAgICA9IGRwX2JyaWRnZV9kaXNhYmxlLA0KPj4gQEAgLTg0LDcg KzI0Nyw3IEBAIHN0cnVjdCBkcm1fYnJpZGdlICpkcF9icmlkZ2VfaW5pdChzdHJ1Y3QgbXNtX2Rw DQo+KmRwX2Rpc3BsYXksIHN0cnVjdCBkcm1fZGV2aWNlICoNCj4+ICAgCWRwX2JyaWRnZS0+ZHBf ZGlzcGxheSA9IGRwX2Rpc3BsYXk7DQo+Pg0KPj4gICAJYnJpZGdlID0gJmRwX2JyaWRnZS0+YnJp ZGdlOw0KPj4gLQlicmlkZ2UtPmZ1bmNzID0gJmRwX2JyaWRnZV9vcHM7DQo+PiArCWJyaWRnZS0+ ZnVuY3MgPSAmZWRwX2JyaWRnZV9vcHM7DQo+DQo+UGxlYXNlIHVzZSB0ZXJuYXJ5IG9wZXJhdG9y IGhlcmUuDQo+DQoNCk9rYXkNCg0KPj4gICAJYnJpZGdlLT50eXBlID0gZHBfZGlzcGxheS0+Y29u bmVjdG9yX3R5cGU7DQo+Pg0KPj4gICAJLyoNCj4+IEBAIC05OSw2ICsyNjIsNyBAQCBzdHJ1Y3Qg ZHJtX2JyaWRnZSAqZHBfYnJpZGdlX2luaXQoc3RydWN0IG1zbV9kcA0KPipkcF9kaXNwbGF5LCBz dHJ1Y3QgZHJtX2RldmljZSAqDQo+PiAgIAkgKiAgIG1vZGVzLg0KPj4gICAJICovDQo+PiAgIAlp ZiAoIWRwX2Rpc3BsYXktPmlzX2VkcCkgew0KPj4gKwkJYnJpZGdlLT5mdW5jcyA9ICZkcF9icmlk Z2Vfb3BzOw0KPj4gICAJCWJyaWRnZS0+b3BzID0NCj4+ICAgCQkJRFJNX0JSSURHRV9PUF9ERVRF Q1QgfA0KPj4gICAJCQlEUk1fQlJJREdFX09QX0hQRCB8DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9kcC9kcF9saW5rLmMNCj4+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9k cF9saW5rLmMNCj4+IGluZGV4IDM2ZjBhZjAuLjgxYWMzYzEgMTAwNjQ0DQo+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2RwL2RwX2xpbmsuYw0KPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21z bS9kcC9kcF9saW5rLmMNCj4+IEBAIC05MzQsNiArOTM0LDM4IEBAIHN0YXRpYyBpbnQNCj5kcF9s aW5rX3Byb2Nlc3NfcGh5X3Rlc3RfcGF0dGVybl9yZXF1ZXN0KA0KPj4gICAJcmV0dXJuIDA7DQo+ PiAgIH0NCj4+DQo+PiArc3RhdGljIGJvb2wgZHBfbGlua19yZWFkX3Bzcl9lcnJvcl9zdGF0dXMo c3RydWN0IGRwX2xpbmtfcHJpdmF0ZQ0KPj4gKypsaW5rKSB7DQo+PiArCXU4IHN0YXR1czsNCj4+ ICsNCj4+ICsJZHJtX2RwX2RwY2RfcmVhZChsaW5rLT5hdXgsIERQX1BTUl9FUlJPUl9TVEFUVVMs ICZzdGF0dXMsIDEpOw0KPj4gKw0KPj4gKwlpZiAoc3RhdHVzICYgRFBfUFNSX0xJTktfQ1JDX0VS Uk9SKQ0KPj4gKwkJRFJNX0VSUk9SKCJQU1IgTElOSyBDUkMgRVJST1JcbiIpOw0KPj4gKwllbHNl IGlmIChzdGF0dXMgJiBEUF9QU1JfUkZCX1NUT1JBR0VfRVJST1IpDQo+PiArCQlEUk1fRVJST1Io IlBTUiBSRkIgU1RPUkFHRSBFUlJPUlxuIik7DQo+PiArCWVsc2UgaWYgKHN0YXR1cyAmIERQX1BT Ul9WU0NfU0RQX1VOQ09SUkVDVEFCTEVfRVJST1IpDQo+PiArCQlEUk1fRVJST1IoIlBTUiBWU0Mg U0RQIFVOQ09SUkVDVEFCTEUgRVJST1JcbiIpOw0KPj4gKwllbHNlDQo+PiArCQlyZXR1cm4gMDsN Cj4+ICsNCj4+ICsJcmV0dXJuIDE7DQo+DQo+SWYgaXQncyBib29sLCBpdCBzaG91bGQgcmV0dXJu IHRydWUvZmFsc2UgYW5kIG5vdCAwLzEuDQo+DQoNCk9rYXkuIFdpbGwgY2hhbmdlIGl0DQoNCj4+ ICt9DQo+PiArDQo+PiArc3RhdGljIGJvb2wgZHBfbGlua19wc3JfY2FwYWJpbGl0eV9jaGFuZ2Vk KHN0cnVjdCBkcF9saW5rX3ByaXZhdGUNCj4+ICsqbGluaykgew0KPj4gKwl1OCBzdGF0dXM7DQo+ PiArDQo+PiArCWRybV9kcF9kcGNkX3JlYWQobGluay0+YXV4LCBEUF9QU1JfRVNJLCAmc3RhdHVz LCAxKTsNCj4+ICsNCj4+ICsJaWYgKHN0YXR1cyAmIERQX1BTUl9DQVBTX0NIQU5HRSkNCj4+ICsJ CWRybV9kYmdfZHAobGluay0+ZHJtX2RldiwgIlBTUiBDYXBhYmlsaXR5IENoYW5nZVxuIik7DQo+ PiArCWVsc2UNCj4+ICsJCXJldHVybiAwOw0KPj4gKw0KPj4gKwlyZXR1cm4gMTsNCj4NCj5pZiAo IShzYXR1cyAmIERQX1BTUl9DQVBTX0NIQU5HRSkpDQo+ICAgICByZXR1cm4gZmFsc2U7DQo+DQo+ ZHJtX2RiZ19kcCguLikNCj5yZXR1cm4gdHJ1ZTsNCj4NCj4NCj5Pcg0KPg0KPmlmIChzdGF0dXMg JiBEUF9QU1JfQ0FQU19DSEFOR0UpIHsNCj4gICBkcm1fZGJnX2RwKC4uLikNCj4gICByZXR1cm4g dHJ1ZTsNCj59DQo+DQo+cmV0dXJuIGZhbHNlOw0KPg0KPg0KDQpPa2F5LiBXaWxsIGNoYW5nZSBp dC4NCg0KPj4gK30NCj4+ICsNCj4+ICAgc3RhdGljIHU4IGdldF9saW5rX3N0YXR1cyhjb25zdCB1 OCBsaW5rX3N0YXR1c1tEUF9MSU5LX1NUQVRVU19TSVpFXSwgaW50IHIpDQo+PiAgIHsNCj4+ICAg CXJldHVybiBsaW5rX3N0YXR1c1tyIC0gRFBfTEFORTBfMV9TVEFUVVNdOyBAQCAtMTA1Myw2ICsx MDg1LDEwDQo+QEANCj4+IGludCBkcF9saW5rX3Byb2Nlc3NfcmVxdWVzdChzdHJ1Y3QgZHBfbGlu ayAqZHBfbGluaykNCj4+ICAgCQlkcF9saW5rLT5zaW5rX3JlcXVlc3QgfD0gRFBfVEVTVF9MSU5L X1RSQUlOSU5HOw0KPj4gICAJfSBlbHNlIGlmICghZHBfbGlua19wcm9jZXNzX3BoeV90ZXN0X3Bh dHRlcm5fcmVxdWVzdChsaW5rKSkgew0KPj4gICAJCWRwX2xpbmstPnNpbmtfcmVxdWVzdCB8PQ0K PkRQX1RFU1RfTElOS19QSFlfVEVTVF9QQVRURVJOOw0KPj4gKwl9IGVsc2UgaWYgKGRwX2xpbmtf cmVhZF9wc3JfZXJyb3Jfc3RhdHVzKGxpbmspKSB7DQo+PiArCQlEUk1fRVJST1IoIlBTUiBJUlFf SFBEIHJlY2VpdmVkXG4iKTsNCj4+ICsJfSBlbHNlIGlmIChkcF9saW5rX3Bzcl9jYXBhYmlsaXR5 X2NoYW5nZWQobGluaykpIHsNCj4+ICsJCWRybV9kYmdfZHAobGluay0+ZHJtX2RldiwgIlBTUiBD YXBhYmlpdHkgY2hhbmdlZCIpOw0KPj4gICAJfSBlbHNlIHsNCj4+ICAgCQlyZXQgPSBkcF9saW5r X3Byb2Nlc3NfbGlua19zdGF0dXNfdXBkYXRlKGxpbmspOw0KPj4gICAJCWlmICghcmV0KSB7DQo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9wYW5lbC5jDQo+PiBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfcGFuZWwuYw0KPj4gaW5kZXggNTE0OWNlYi4uOGJmOGFi NCAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfcGFuZWwuYw0KPj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9wYW5lbC5jDQo+PiBAQCAtMjAsNiArMjAs MjcgQEAgc3RydWN0IGRwX3BhbmVsX3ByaXZhdGUgew0KPj4gICAJYm9vbCBhdXhfY2ZnX3VwZGF0 ZV9kb25lOw0KPj4gICB9Ow0KPj4NCj4+ICtzdGF0aWMgdm9pZCBkcF9wYW5lbF9yZWFkX3Bzcl9j YXAoc3RydWN0IGRwX3BhbmVsX3ByaXZhdGUgKnBhbmVsKSB7DQo+PiArCXNzaXplX3QgcmxlbjsN Cj4+ICsJc3RydWN0IGRwX3BhbmVsICpkcF9wYW5lbDsNCj4+ICsNCj4+ICsJZHBfcGFuZWwgPSAm cGFuZWwtPmRwX3BhbmVsOw0KPj4gKw0KPj4gKwkvKiBlZHAgc2luayAqLw0KPj4gKwlpZiAoZHBf cGFuZWwtPmRwY2RbRFBfRURQX0NPTkZJR1VSQVRJT05fQ0FQXSkgew0KPj4gKwkJcmxlbiA9IGRy bV9kcF9kcGNkX3JlYWQocGFuZWwtPmF1eCwgRFBfUFNSX1NVUFBPUlQsDQo+PiArCQkJCSZkcF9w YW5lbC0+cHNyX2NhcCwgc2l6ZW9mKGRwX3BhbmVsLQ0KPj5wc3JfY2FwKSk7DQo+PiArCQlpZiAo cmxlbiA9PSBzaXplb2YoZHBfcGFuZWwtPnBzcl9jYXApKSB7DQo+PiArCQkJZHJtX2RiZ19kcChw YW5lbC0+ZHJtX2RldiwNCj4+ICsJCQkJInBzciB2ZXJzaW9uOiAweCV4LCBwc3JfY2FwOiAweCV4 XG4iLA0KPj4gKwkJCQlkcF9wYW5lbC0+cHNyX2NhcC52ZXJzaW9uLA0KPj4gKwkJCQlkcF9wYW5l bC0+cHNyX2NhcC5jYXBhYmlsaXRpZXMpOw0KPj4gKwkJfSBlbHNlDQo+PiArCQkJRFJNX0VSUk9S KCJmYWlsZWQgdG8gcmVhZCBwc3IgaW5mbywgcmxlbj0lemRcbiIsDQo+cmxlbik7DQo+PiArCX0N Cj4+ICt9DQo+PiArDQo+PiAgIHN0YXRpYyBpbnQgZHBfcGFuZWxfcmVhZF9kcGNkKHN0cnVjdCBk cF9wYW5lbCAqZHBfcGFuZWwpDQo+PiAgIHsNCj4+ICAgCWludCByYyA9IDA7DQo+PiBAQCAtMTA2 LDYgKzEyNyw3IEBAIHN0YXRpYyBpbnQgZHBfcGFuZWxfcmVhZF9kcGNkKHN0cnVjdCBkcF9wYW5l bA0KPipkcF9wYW5lbCkNCj4+ICAgCQl9DQo+PiAgIAl9DQo+Pg0KPj4gKwlkcF9wYW5lbF9yZWFk X3Bzcl9jYXAocGFuZWwpOw0KPj4gICBlbmQ6DQo+PiAgIAlyZXR1cm4gcmM7DQo+PiAgIH0NCj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2RwL2RwX3BhbmVsLmgNCj4+IGIvZHJp dmVycy9ncHUvZHJtL21zbS9kcC9kcF9wYW5lbC5oDQo+PiBpbmRleCBkODYxMTk3YS4uMmQwODI2 YSAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfcGFuZWwuaA0KPj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kcC9kcF9wYW5lbC5oDQo+PiBAQCAtMzQsNiArMzQs MTEgQEAgc3RydWN0IGRwX3BhbmVsX2luIHsNCj4+ICAgCXN0cnVjdCBkcF9jYXRhbG9nICpjYXRh bG9nOw0KPj4gICB9Ow0KPj4NCj4+ICtzdHJ1Y3QgZHBfcGFuZWxfcHNyIHsNCj4+ICsJdTggdmVy c2lvbjsNCj4+ICsJdTggY2FwYWJpbGl0aWVzOw0KPj4gK307DQo+PiArDQo+PiAgIHN0cnVjdCBk cF9wYW5lbCB7DQo+PiAgIAkvKiBkcGNkIHJhdyBkYXRhICovDQo+PiAgIAl1OCBkcGNkW0RQX1JF Q0VJVkVSX0NBUF9TSVpFICsgMV07DQo+PiBAQCAtNDYsNiArNTEsNyBAQCBzdHJ1Y3QgZHBfcGFu ZWwgew0KPj4gICAJc3RydWN0IGVkaWQgKmVkaWQ7DQo+PiAgIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yOw0KPj4gICAJc3RydWN0IGRwX2Rpc3BsYXlfbW9kZSBkcF9tb2RlOw0KPj4g KwlzdHJ1Y3QgZHBfcGFuZWxfcHNyIHBzcl9jYXA7DQo+PiAgIAlib29sIHZpZGVvX3Rlc3Q7DQo+ Pg0KPj4gICAJdTMyIHZpYzsNCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rw L2RwX3JlZy5oDQo+PiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfcmVnLmggaW5kZXggMjY4 NjAyOC4uZWE4NWE2OSAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBf cmVnLmgNCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHAvZHBfcmVnLmgNCj4+IEBAIC0y Miw2ICsyMiwyMCBAQA0KPj4gICAjZGVmaW5lIFJFR19EUF9JTlRSX1NUQVRVUzIJCQkoMHgwMDAw MDAyNCkNCj4+ICAgI2RlZmluZSBSRUdfRFBfSU5UUl9TVEFUVVMzCQkJKDB4MDAwMDAwMjgpDQo+ Pg0KPj4gKyNkZWZpbmUgUkVHX0RQX0lOVFJfU1RBVFVTNAkJCSgweDAwMDAwMDJDKQ0KPj4gKyNk ZWZpbmUgUFNSX1VQREFURV9JTlQJCQkJKDB4MDAwMDAwMDEpDQo+PiArI2RlZmluZSBQU1JfQ0FQ VFVSRV9JTlQJCQkJKDB4MDAwMDAwMDQpDQo+PiArI2RlZmluZSBQU1JfRVhJVF9JTlQJCQkJKDB4 MDAwMDAwMTApDQo+PiArI2RlZmluZSBQU1JfVVBEQVRFX0VSUk9SX0lOVAkJCSgweDAwMDAwMDQw KQ0KPj4gKyNkZWZpbmUgUFNSX1dBS0VfRVJST1JfSU5UCQkJKDB4MDAwMDAxMDApDQo+PiArDQo+ PiArI2RlZmluZSBSRUdfRFBfSU5UUl9NQVNLNAkJCSgweDAwMDAwMDMwKQ0KPj4gKyNkZWZpbmUg UFNSX1VQREFURV9NQVNLCQkJCSgweDAwMDAwMDAxKQ0KPj4gKyNkZWZpbmUgUFNSX0NBUFRVUkVf TUFTSwkJCSgweDAwMDAwMDAyKQ0KPj4gKyNkZWZpbmUgUFNSX0VYSVRfTUFTSwkJCQkoMHgwMDAw MDAwNCkNCj4+ICsjZGVmaW5lIFBTUl9VUERBVEVfRVJST1JfTUFTSwkJCSgweDAwMDAwMDA4KQ0K Pj4gKyNkZWZpbmUgUFNSX1dBS0VfRVJST1JfTUFTSwkJCSgweDAwMDAwMDEwKQ0KPj4gKw0KPj4g ICAjZGVmaW5lIFJFR19EUF9EUF9IUERfQ1RSTAkJCSgweDAwMDAwMDAwKQ0KPj4gICAjZGVmaW5l IERQX0RQX0hQRF9DVFJMX0hQRF9FTgkJCSgweDAwMDAwMDAxKQ0KPj4NCj4+IEBAIC0xNjQsNiAr MTc4LDE2IEBADQo+PiAgICNkZWZpbmUgTU1TU19EUF9BVURJT19USU1JTkdfUkJSXzQ4CQkoMHgw MDAwMDA5NCkNCj4+ICAgI2RlZmluZSBNTVNTX0RQX0FVRElPX1RJTUlOR19IQlJfNDgJCSgweDAw MDAwMDk4KQ0KPj4NCj4+ICsjZGVmaW5lIFJFR19QU1JfQ09ORklHCQkJCSgweDAwMDAwMTAwKQ0K Pj4gKyNkZWZpbmUgRElTQUJMRV9QU1IJCQkJKDB4MDAwMDAwMDApDQo+PiArI2RlZmluZSBQU1Ix X1NVUFBPUlRFRAkJCQkoMHgwMDAwMDAwMSkNCj4+ICsjZGVmaW5lIFBTUjJfV0lUSE9VVF9GUkFN RVNZTkMJCQkoMHgwMDAwMDAwMikNCj4+ICsjZGVmaW5lIFBTUjJfV0lUSF9GUkFNRVNZTkMJCQko MHgwMDAwMDAwMykNCj4+ICsNCj4+ICsjZGVmaW5lIFJFR19QU1JfQ01ECQkJCSgweDAwMDAwMTEw KQ0KPj4gKyNkZWZpbmUgUFNSX0VOVEVSCQkJCSgweDAwMDAwMDAxKQ0KPj4gKyNkZWZpbmUgUFNS X0VYSVQJCQkJKDB4MDAwMDAwMDIpDQo+PiArDQo+PiAgICNkZWZpbmUgTU1TU19EUF9QU1JfQ1JD X1JHCQkJKDB4MDAwMDAxNTQpDQo+PiAgICNkZWZpbmUgTU1TU19EUF9QU1JfQ1JDX0IJCQkoMHgw MDAwMDE1OCkNCj4+DQo+PiBAQCAtMTg0LDYgKzIwOCw5IEBADQo+PiAgICNkZWZpbmUgTU1TU19E UF9BVURJT19TVFJFQU1fMAkJCSgweDAwMDAwMjQwKQ0KPj4gICAjZGVmaW5lIE1NU1NfRFBfQVVE SU9fU1RSRUFNXzEJCQkoMHgwMDAwMDI0NCkNCj4+DQo+PiArI2RlZmluZSBNTVNTX0RQX1NEUF9D RkczCQkJKDB4MDAwMDAyNGMpDQo+PiArI2RlZmluZSBVUERBVEVfU0RQCQkJCSgweDAwMDAwMDAx KQ0KPj4gKw0KPj4gICAjZGVmaW5lIE1NU1NfRFBfRVhURU5TSU9OXzAJCQkoMHgwMDAwMDI1MCkN Cj4+ICAgI2RlZmluZSBNTVNTX0RQX0VYVEVOU0lPTl8xCQkJKDB4MDAwMDAyNTQpDQo+PiAgICNk ZWZpbmUgTU1TU19EUF9FWFRFTlNJT05fMgkJCSgweDAwMDAwMjU4KQ0KPg0KPg0KPi0tDQo+V2l0 aCBiZXN0IHdpc2hlcw0KPkRtaXRyeQ0KDQpUaGFuayB5b3UsDQpTYW5rZWVydGgNCg==