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 X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4BCDFC433F5 for ; Wed, 8 Sep 2021 07:44:42 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 0F96961167 for ; Wed, 8 Sep 2021 07:44:42 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 0F96961167 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A6CCF6E152; Wed, 8 Sep 2021 07:44:41 +0000 (UTC) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2070.outbound.protection.outlook.com [40.107.94.70]) by gabe.freedesktop.org (Postfix) with ESMTPS id 564126E152 for ; Wed, 8 Sep 2021 07:44:40 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QFbBOVJSt5HgwDLp9uL/ygnzc7OJXHjl1Uz/tuLJ1u547IElwueQp3JlzIqB59yJkILHL0XczLCxryq7cD2ZYzUteiP3k7W+yIbKPK9qXRtIarZmoIwZV4WSoCMlKEd6ggZdtY26U+M3kJqStbn5Auwk0vdUxfFdzbShEdMFP2t6weaxKppgCqbxZFRz0Hxtw278VhrvFDDXj60HjMGcKU2yoPXuM9GOYml6+kCxL9/f/bO3J1nZDYvhuTqpN5mrI/Bid6Xms6SEzc/h97uskY3utlgYNGKdqp4e75pIgYSWo45hYsYaSMCH2uc+bh0PRoT+6Mp3pNB07bBp56KoTg== 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; bh=NyMJiuUCNpBdvFmZYAGH0Fw2tOlVEMBsVNV1OINAxZ8=; b=eXoigbDOQGjmKcd2dMftSn/v9M+tRaIi6M0QJFE9S5NkORJxiRLE7vOpNM4Z41iJ7Uj/yDy/QITDZo/9vb3WyHRGqzNOooTOUjeyijs0CXoLyxsponkhsaReN5q1a2JKlUVHBSxUXUreNuI4H3J+ZN6f93f0K4OJjwcA66OAEk65d2L3SiyiCFyD++y7I60hTIz4q3ULpoAzzSLP3tdizFR+EWeaZDZLhiT5aIPKNvZu4RK2P/d8SRD6W51EtgmD9hUuFdjIc9pSSnKEIztx/3siGU1Pj0ROOvgXWeFMblkRL5agGRThpreKHIH23Qyp6JMwHs7Agd+8Blr33X4rSw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NyMJiuUCNpBdvFmZYAGH0Fw2tOlVEMBsVNV1OINAxZ8=; b=IEiG3rUu5vXg+i6vE+5fDoz0jSAaKrYDqiMYrLf2xO83LfCFZfl7sDQiTHID8zhij/6V0P8K9/p0pl1R9hLCG3Pz+CWgi3gEEzo1uarTMgZ71Ef2ZI9RFZVMJxM3AtGp3I1GGhbX9esYmAgiQii6bEcrVjDpDdtjMYbwpyzoLyI= Received: from DM6PR12MB4250.namprd12.prod.outlook.com (2603:10b6:5:21a::9) by DM6PR12MB4402.namprd12.prod.outlook.com (2603:10b6:5:2a5::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.14; Wed, 8 Sep 2021 07:44:34 +0000 Received: from DM6PR12MB4250.namprd12.prod.outlook.com ([fe80::899f:5742:e36e:b303]) by DM6PR12MB4250.namprd12.prod.outlook.com ([fe80::899f:5742:e36e:b303%9]) with mapi id 15.20.4478.025; Wed, 8 Sep 2021 07:44:34 +0000 From: "Yu, Lang" To: "Lazar, Lijo" , =?utf-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= , "amd-gfx@lists.freedesktop.org" CC: "Deucher, Alexander" , "Huang, Ray" , Tian Tao Subject: RE: [PATCH] drm/amdgpu: fix sysfs_emit/sysfs_emit_at warnings Thread-Topic: [PATCH] drm/amdgpu: fix sysfs_emit/sysfs_emit_at warnings Thread-Index: AQHXpHZHU9itz+o/Z0SrCH1yaBZ0dquZrxWAgAAQcoCAAAEmAA== Date: Wed, 8 Sep 2021 07:44:34 +0000 Message-ID: References: <20210908055615.3781901-1-lang.yu@amd.com> <47ed143e-b9ab-a80e-dac0-cfa1ec39d033@amd.com> In-Reply-To: <47ed143e-b9ab-a80e-dac0-cfa1ec39d033@amd.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_Enabled=true; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_SetDate=2021-09-08T07:44:30Z; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_Method=Standard; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_Name=AMD Official Use Only-AIP 2.0; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_ActionId=9a454c14-ef3a-40fc-bc6e-7f961ea5fb2c; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_ContentBits=1 authentication-results: amd.com; dkim=none (message not signed) header.d=none;amd.com; dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0caabcb8-1bb0-491f-275d-08d9729c8044 x-ms-traffictypediagnostic: DM6PR12MB4402: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1186; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 7TwQO1m91IYq6CKwqTDpEGhyS1iGtjJs2AAg7crBS952U9DNalKH3grXNVaXI6c4iJssIGpRXStWlAE1Bp9k2YfJFTSBW0NA3Al+6vbm7VxneSS2Gp+VtKtXCjDG0U2PcSQFDof1uNASEXQqjr1jncx3gT2QmOvSFqzdPMAYpUSN/l7bnO4u10rjLzMMkqBsKZTaTDhXhTMZn56ggdBP3n8VTWl6LWZQARQ6WRAPxgz9vxoy4y0gRz3fLC37N9TNqW06MliHuwTObgkZnrqkwyAqNQztqTifnCmOmWY8zwK9I9n7tmWW2ysbb1A3RleVrohFIUtFCC5rj5+EABIHz8BIqA8GjIyrRNNT9DXrrZtoMAtDBTWKf4ds4RT9BOIgpIePa+9UbxwSRWrhM8j+wjXW/ldn1ozLZFW2S8qtPReTC0IJzNYD3XF+y8VTIFrz6S1CIoYaK50eR8+BCjsl8dTy2SqllZzaJxVL6/LOF65gos9Dxzr7Vf6Vzbw8b3AyA7Da701NbD6Kyx6EhVnqVQFmYgxLmNCvwepVijzYtMLWmM1mr3LwiUfn6nWS/raBpyU9OuWMO4bh9Phj6W7YlPkqzM6KgCOWnS2A8ROtduUkzvgZUYt+E8j9jXgHbCh7UsNRnOVNMlZPrJSWiL7bxAi7nxQr7f+hxysTk9Jk7mZcHw/hH+O9K0kVNvheAAbAKHZ653QjsAmGZ0Z0vjoB8Q== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB4250.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(366004)(396003)(39860400002)(376002)(136003)(66574015)(71200400001)(5660300002)(64756008)(478600001)(66946007)(66556008)(55016002)(33656002)(86362001)(66446008)(76116006)(26005)(66476007)(83380400001)(2906002)(110136005)(52536014)(8936002)(54906003)(186003)(30864003)(9686003)(8676002)(38070700005)(38100700002)(4326008)(7696005)(316002)(6506007)(122000001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cFNNZlNDNHdmWnpjUUd4TnVxVmRTa3N3ZUpMRnUxZlZlTmVxM0J3MVIyUWJ6?= =?utf-8?B?aHQ4bTNxSld1LzM3RVZFRTIzL0ZFRjlBNFEyUUJGeXNLaExLak42NTJuMHds?= =?utf-8?B?RG43UE1zMEwwWllwaFMyQVRKK1BnTHoxY3hGcmM3UkZXWjlHMlAwekpHTXNY?= =?utf-8?B?VFJOMDBRNFFRa285Ym9UWk1sdFVlYVlYVGxWS2FpMHZOZEFjcWcxTzZOaE15?= =?utf-8?B?L0RnSldGU3Fra0ttRWhkaVZzUjhrMXdPck1SNVNUL2NuL2JVQzMwTXZDeDBl?= =?utf-8?B?Ynl5ajZ2M0FDZWltNi9rUUhiVlM5TSsweHlRWXNUZExLS1pjYXpaMnR3cVQ2?= =?utf-8?B?M3dPMEVRYjd3aUFlMmJHQVVLb293eFNpV2tuMDI5d25wRGswMTh6SXdDVGZk?= =?utf-8?B?ZUEwMkdwazNyZDJkbzV2dTVGdFgrL0J3QWdCYXcwa3cyQU9lVFRuZ2JIZ0lt?= =?utf-8?B?Z3VSMlZscm00OGdhZ3NmYTFBTTJFNkJwMGJlWlQ3TkxpQ1UwMERpajVtOXkz?= =?utf-8?B?eG9zS3h1bW1PRnFaWEZiWEIybDVJZzY1bFN6STkwN0Fyb1hIV09pdkZFUFZj?= =?utf-8?B?SUs4eTIyZTlFU1NzSWFJN1RTRWxhY2hCRFVUSWdWVXNBTFk2engvS3BZM1ht?= =?utf-8?B?TGhJVjBzU2Z4RWkybk1IUVZiWEhZOVpDUUpKMjlqdzBHMzVqM2F1aHFaM1Vm?= =?utf-8?B?VW9jS3hJdDZZMis1ckpFUC8wclJwRk8ra0dJcnZubld0OTY3SHVUVitwaHd5?= =?utf-8?B?UjZSWDc0Y2J6YmhIK2hrenkrSUdHUi9jU1I1VkxHRVQvbVhNRzI4K3p6M3lq?= =?utf-8?B?YXR4RHVaZUc5a0pjTDV5SEh3Tm9RRzg3V2lXOEh5WG1ubEllTGQxV2tubTh3?= =?utf-8?B?dmVnUmoybldmMnFYR0taUW1nbFphVkpQQUROZkszdTR2VVA1ODY4ampQeDY4?= =?utf-8?B?dCtWTFB3azJGRkdLdmNYWWxFV0R5ZHhGUlk2SUQzb3lMeGs1TFJOT0diODNZ?= =?utf-8?B?N2pHNXVPQlR0ZStjSVhXenI3eWJzRmxCNGpuSUl3cE95WGhidEczaEVGQUlD?= =?utf-8?B?OFU1VWMraU92MDlwTDlkUWY1UFdZMHdBV0MxRlc0VnJjYUVFQlp1YUxyOEp6?= =?utf-8?B?QzZyZWkxVDZNODdDQWFCcC8vc1hMMHBwQzdpQlk0NzQvbkZEd2UwS1VqRXFM?= =?utf-8?B?VGlYOHA0UzRGWm4xNmJKMDB3TXlMcENGR2RNUWwrOXc0ZE9sbGo1NGJKOHlK?= =?utf-8?B?bWZ0MjMxVEZyKzllNjRUL3VlUndQUmxtbGt1ODdXczdmV1JuQndSOUN6NEd4?= =?utf-8?B?UHVTbFpXV05rYmF2Q3YySDJaUWk2THBDeVRDc2g3WVJFTkgwMDVHVnE4S3RR?= =?utf-8?B?a3pJZWhZOTBBaDBnOTlTYkZmbGplMHVDU1RIT2hIUTloaDljZHF2UkhwRUxs?= =?utf-8?B?YmVaV1NodUUyOWYyQk04VVRwSWJTVWg5dmdYOGNlMjhreGdnZFFWMm9qQjZL?= =?utf-8?B?SHlQRm1XenJiK28zemNSdGI4VHdScVQwSDRiU29sbEVNaTlqc2JqYWIxalpB?= =?utf-8?B?UmdWckxYaGRiNDhIQi9JT08vU3luQmVFZ1hRUlB5amhnZ0gvd3UxVkxLT0dx?= =?utf-8?B?dWNlVU5RMnAzUzRxWGlNRGF0a0pYbUVuVVVsYjhscXZNOTZSU04ybWUzYmV4?= =?utf-8?B?SVhUUlcxZ1laQ3BHemZzK0w1aVJ4djNpREROaVRISlorS2MrS1BoMDQ2N2hZ?= =?utf-8?Q?j7rQ2KUDZAGgAOE2Kq+KPx0rNuQCgBCw5xKhtoM?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB4250.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0caabcb8-1bb0-491f-275d-08d9729c8044 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Sep 2021 07:44:34.1074 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: mjp6UMK4+oR/n1EffCC8O0O9z7DpQB+1e3BTOc4Ubt1JaedX8zDNTMrDseCC6R1b6mSq5XL7A8LFHWGZRSgy3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4402 X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" W0FNRCBPZmZpY2lhbCBVc2UgT25seV0NCg0KDQoNCj4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPkZyb206IExhemFyLCBMaWpvIDxMaWpvLkxhemFyQGFtZC5jb20+DQo+U2VudDogV2VkbmVz ZGF5LCBTZXB0ZW1iZXIgOCwgMjAyMSAzOjM2IFBNDQo+VG86IENocmlzdGlhbiBLw7ZuaWcgPGNr b2VuaWcubGVpY2h0enVtZXJrZW5AZ21haWwuY29tPjsgWXUsIExhbmcNCj48TGFuZy5ZdUBhbWQu Y29tPjsgYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj5DYzogRGV1Y2hlciwgQWxleGFu ZGVyIDxBbGV4YW5kZXIuRGV1Y2hlckBhbWQuY29tPjsgSHVhbmcsIFJheQ0KPjxSYXkuSHVhbmdA YW1kLmNvbT47IFRpYW4gVGFvIDx0aWFudGFvNkBoaXNpbGljb24uY29tPg0KPlN1YmplY3Q6IFJl OiBbUEFUQ0hdIGRybS9hbWRncHU6IGZpeCBzeXNmc19lbWl0L3N5c2ZzX2VtaXRfYXQgd2Fybmlu Z3MNCj4NCj4NCj4NCj5PbiA5LzgvMjAyMSAxMjowNyBQTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90 ZToNCj4+IEFtIDA4LjA5LjIxIHVtIDA3OjU2IHNjaHJpZWIgTGFuZyBZdToNCj4+PiBzeXNmc19l bWl0IGFuZCBzeXNmc19lbWl0X2F0IHJlcXVyaWUgYSBwYWdlIGJvdW5kYXJ5IGFsaWduZWQgYnVm DQo+Pj4gYWRkcmVzcy4gTWFrZSB0aGVtIGhhcHB5IQ0KPj4+DQo+Pj4gV2FybmluZyBMb2c6DQo+ Pj4gW8KgIDQ5Mi41NDUxNzRdIGludmFsaWQgc3lzZnNfZW1pdF9hdDogYnVmOjAwMDAwMDAwZjE5 YmRmZGUgYXQ6MCBbDQo+Pj4gNDkyLjU0NjQxNl0gV0FSTklORzogQ1BVOiA3IFBJRDogMTMwNCBh dCBmcy9zeXNmcy9maWxlLmM6NzY1DQo+Pj4gc3lzZnNfZW1pdF9hdCsweDRhLzB4YTANCj4+PiBb wqAgNDkyLjY1NDgwNV0gQ2FsbCBUcmFjZToNCj4+PiBbwqAgNDkyLjY1NTM1M13CoCA/IHNtdV9j bW5fZ2V0X21ldHJpY3NfdGFibGUrMHg0MC8weDUwIFthbWRncHVdIFsNCj4+PiA0OTIuNjU2Nzgw XcKgIHZhbmdvZ2hfcHJpbnRfY2xrX2xldmVscysweDM2OS8weDQxMCBbYW1kZ3B1XSBbDQo+Pj4g NDkyLjY1ODI0NV3CoCB2YW5nb2doX2NvbW1vbl9wcmludF9jbGtfbGV2ZWxzKzB4NzcvMHg4MCBb YW1kZ3B1XSBbDQo+Pj4gNDkyLjY1OTczM13CoCA/IHByZWVtcHRfc2NoZWR1bGVfY29tbW9uKzB4 MTgvMHgzMCBbwqAgNDkyLjY2MDcxM10NCj4+PiBzbXVfcHJpbnRfcHBjbGtfbGV2ZWxzKzB4NjUv MHg5MCBbYW1kZ3B1XSBbwqAgNDkyLjY2MjEwN10NCj4+PiBhbWRncHVfZ2V0X3BwX29kX2Nsa192 b2x0YWdlKzB4MTNkLzB4MTkwIFthbWRncHVdIFvCoCA0OTIuNjYzNjIwXQ0KPj4+IGRldl9hdHRy X3Nob3crMHgxZC8weDQwDQo+Pg0KPj4gTWhtLCB0aGF0IGF0IGxlYXN0IHBhcnRpYWxseSBkb2Vz bid0IGxvb2tzIGxpa2UgdGhlIHJpZ2h0IGFwcHJvYWNoIHRvIG1lLg0KPj4NCj4+IFdoeSBkbyB3 ZSBoYXZlIHN0cmluZyBwcmludGluZyBhbmQgc3lzZnMgY29kZSBpbiB0aGUgaGFyZHdhcmUgdmVy c2lvbg0KPj4gc3BlY2lmaWMgYmFja2VuZCBpbiB0aGUgZmlyc3QgcGxhY2U/DQo+Pg0KPg0KPlRo aXMgaXMgYSBjYWxsYmFjayBtZWFudCBmb3IgcHJpbnRpbmcgQVNJQyBzcGVjaWZpYyBpbmZvcm1h dGlvbiB0byBzeXNmcyBub2RlLiBUaGUNCj5idWZmZXIgcGFzc2VkIGluIHN5c2ZzIHJlYWQgaXMg cGFzc2VkIGFzIGl0IGlzIHRvIHRoZSBjYWxsYmFjayBBUEkuDQo+DQo+PiBUaGF0IHN0dWZmIG5l ZWRzIHRvIGJlIGltcGxlbWVudGVkIGZvciBlYWNoIGhhcmR3YXJlIGdlbmVyYXRpb24gYW5kIGlz DQo+PiBub3cgY2x1dHRlcmVkIHdpdGggc3lzZnMgYnVmZmVyIG9mZnNldCBjYWxjdWxhdGlvbnMu DQo+Pg0KPg0KPkxvb2tzIGxpa2UgdGhlIHdhcm5pbmcgaGFwcGVuZWQgYmVjYXVzZSBvZiB0aGlz IHVzYWdlLg0KPg0KPiAgICAgICAgICAgICAgICAgc2l6ZSA9IGFtZGdwdV9kcG1fcHJpbnRfY2xv Y2tfbGV2ZWxzKGFkZXYsIE9EX1NDTEssIGJ1Zik7DQo+ICAgICAgICAgICAgICAgICBzaXplICs9 IGFtZGdwdV9kcG1fcHJpbnRfY2xvY2tfbGV2ZWxzKGFkZXYsIE9EX01DTEssDQo+YnVmK3NpemUp Ow0KPiAgICAgICAgICAgICAgICAgc2l6ZSArPSBhbWRncHVfZHBtX3ByaW50X2Nsb2NrX2xldmVs cyhhZGV2LA0KPk9EX1ZERENfQ1VSVkUsIGJ1ZitzaXplKTsNCj4gICAgICAgICAgICAgICAgIHNp emUgKz0gYW1kZ3B1X2RwbV9wcmludF9jbG9ja19sZXZlbHMoYWRldiwNCj5PRF9WRERHRlhfT0ZG U0VULCBidWYrc2l6ZSk7DQo+ICAgICAgICAgICAgICAgICBzaXplICs9IGFtZGdwdV9kcG1fcHJp bnRfY2xvY2tfbGV2ZWxzKGFkZXYsIE9EX1JBTkdFLA0KPmJ1ZitzaXplKTsNCj4gICAgICAgICAg ICAgICAgIHNpemUgKz0gYW1kZ3B1X2RwbV9wcmludF9jbG9ja19sZXZlbHMoYWRldiwgT0RfQ0NM SywNCj5idWYrc2l6ZSk7DQo+DQo+DQpbWXUsIExhbmddIA0KWWVzLiBTbyBpdCBpcyBmaW5lIHdl IGp1c3QgZml4IHRoZSBjYWxsZXIgYW1kZ3B1X2dldF9wcF9vZF9jbGtfdm9sdGFnZSBsaWtlIGZv bGxvd2luZzoNCg0Kc3RhdGljIHNzaXplX3QgYW1kZ3B1X2dldF9wcF9vZF9jbGtfdm9sdGFnZShz dHJ1Y3QgZGV2aWNlICpkZXYsDQoJCXN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLA0KCQlj aGFyICpidWYpDQp7DQoJc3RydWN0IGRybV9kZXZpY2UgKmRkZXYgPSBkZXZfZ2V0X2RydmRhdGEo ZGV2KTsNCglzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGRybV90b19hZGV2KGRkZXYpOw0K CXNzaXplX3Qgc2l6ZSwgb2Zmc2V0Ow0KCWludCByZXQsIGk7DQoJY2hhciB0ZW1wX2J1Zls1MTJd Ow0KCWNoYXIgY2xvY2tfdHlwZVtdID0ge09EX1NDTEssIE9EX01DTEssIE9EX1ZERENfQ1VSVkUs IA0KCSAgICAgICAgICAgICAgICAgICAgIE9EX1ZEREdGWF9PRkZTRVQsIE9EX1JBTkdFLCBPRF9D Q0xLfTsNCg0KCWlmIChhbWRncHVfaW5fcmVzZXQoYWRldikpDQoJCXJldHVybiAtRVBFUk07DQoJ aWYgKGFkZXYtPmluX3N1c3BlbmQgJiYgIWFkZXYtPmluX3J1bnBtKQ0KCQlyZXR1cm4gLUVQRVJN Ow0KDQoJcmV0ID0gcG1fcnVudGltZV9nZXRfc3luYyhkZGV2LT5kZXYpOw0KCWlmIChyZXQgPCAw KSB7DQoJCXBtX3J1bnRpbWVfcHV0X2F1dG9zdXNwZW5kKGRkZXYtPmRldik7DQoJCXJldHVybiBy ZXQ7DQoJfQ0KDQoJb2Zmc2V0ID0gMDsNCg0KCWlmIChhZGV2LT5wb3dlcnBsYXkucHBfZnVuY3Mt PnByaW50X2Nsb2NrX2xldmVscykgewkNCgkJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoY2xv Y2tfdHlwZSk7IGkrKykgew0KCQkJc2l6ZSA9IGFtZGdwdV9kcG1fcHJpbnRfY2xvY2tfbGV2ZWxz KGFkZXYsIGNsb2NrX3R5cGVbaV0sIGJ1Zik7DQoJCQlpZiAob2Zmc2V0ICsgc2l6ZSA+IFBBR0Vf U0laRSkNCgkJCQlicmVhazsNCgkJCW1lbWNweSh0ZW1wX2J1ZiArIG9mZnNldCwgYnVmLCBzaXpl KTsNCgkJCW9mZnNldCArPSBzaXplOw0KCQl9DQoJCW1lbWNweShidWYsIHRlbXBfYnVmLCBvZmZz ZXQpOw0KCQlzaXplID0gb2Zmc2V0Ow0KCX0gZWxzZSB7DQoJCXNpemUgPSBzeXNmc19lbWl0KGJ1 ZiwgIlxuIik7DQoJfQ0KCXBtX3J1bnRpbWVfbWFya19sYXN0X2J1c3koZGRldi0+ZGV2KTsNCglw bV9ydW50aW1lX3B1dF9hdXRvc3VzcGVuZChkZGV2LT5kZXYpOw0KDQoJcmV0dXJuIHNpemU7DQp9 DQoNClJlZ2FyZHMsDQpMYW5nDQoNCj4NCj4+IFJlZ2FyZHMsDQo+PiBDaHJpc3RpYW4uDQo+Pg0K Pj4+DQo+Pj4gU2lnbmVkLW9mZi1ieTogTGFuZyBZdSA8bGFuZy55dUBhbWQuY29tPg0KPj4+IC0t LQ0KPj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9hbWQvcG0vc3dzbXUvc211MTEvYXJjdHVydXNfcHB0 LmMgfMKgIDkgKysrKysrKy0tDQo+Pj4gwqAgZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9zd3NtdS9z bXUxMS9uYXZpMTBfcHB0LmPCoMKgIHzCoCA1ICsrKystDQo+Pj4gwqAgLi4uL2RybS9hbWQvcG0v c3dzbXUvc211MTEvc2llbm5hX2NpY2hsaWRfcHB0LmPCoMKgIHzCoCA1ICsrKystDQo+Pj4gwqAg ZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9zd3NtdS9zbXUxMS92YW5nb2doX3BwdC5jwqAgfCAxNQ0K Pj4+ICsrKysrKysrKy0tLS0tLQ0KPj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9hbWQvcG0vc3dzbXUv c211MTIvcmVub2lyX3BwdC5jwqDCoCB8wqAgMyArKysNCj4+PiDCoCAuLi4vZ3B1L2RybS9hbWQv cG0vc3dzbXUvc211MTMvYWxkZWJhcmFuX3BwdC5jwqDCoMKgIHwgMTMNCj4+PiArKysrKysrKyst LS0tDQo+Pj4gwqAgLi4uL2dwdS9kcm0vYW1kL3BtL3N3c211L3NtdTEzL3llbGxvd19jYXJwX3Bw dC5jwqAgfMKgIDcgKysrKystLQ0KPj4+IMKgIDcgZmlsZXMgY2hhbmdlZCwgNDEgaW5zZXJ0aW9u cygrKSwgMTYgZGVsZXRpb25zKC0pDQo+Pj4NCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9wbS9zd3NtdS9zbXUxMS9hcmN0dXJ1c19wcHQuYw0KPj4+IGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9wbS9zd3NtdS9zbXUxMS9hcmN0dXJ1c19wcHQuYw0KPj4+IGluZGV4IGUzNDNjYzIx ODk5MC4uNTMxODVmZTk2ZDgzIDEwMDY0NA0KPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv cG0vc3dzbXUvc211MTEvYXJjdHVydXNfcHB0LmMNCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL3BtL3N3c211L3NtdTExL2FyY3R1cnVzX3BwdC5jDQo+Pj4gQEAgLTc3MSw4ICs3NzEsMTMg QEAgc3RhdGljIGludCBhcmN0dXJ1c19wcmludF9jbGtfbGV2ZWxzKHN0cnVjdA0KPj4+IHNtdV9j b250ZXh0ICpzbXUsDQo+Pj4gwqDCoMKgwqDCoCBzdHJ1Y3Qgc211XzExXzBfZHBtX2NvbnRleHQg KmRwbV9jb250ZXh0ID0gTlVMTDsNCj4+PiDCoMKgwqDCoMKgIHVpbnQzMl90IGdlbl9zcGVlZCwg bGFuZV93aWR0aDsNCj4+PiAtwqDCoMKgIGlmIChhbWRncHVfcmFzX2ludHJfdHJpZ2dlcmVkKCkp DQo+Pj4gLcKgwqDCoMKgwqDCoMKgIHJldHVybiBzeXNmc19lbWl0KGJ1ZiwgInVuYXZhaWxhYmxl XG4iKTsNCj4+PiArwqDCoMKgIHNpemUgPSBvZmZzZXRfaW5fcGFnZShidWYpOw0KPj4+ICvCoMKg wqAgYnVmID0gYnVmIC0gc2l6ZTsNCj4+PiArDQo+Pj4gK8KgwqDCoCBpZiAoYW1kZ3B1X3Jhc19p bnRyX3RyaWdnZXJlZCgpKSB7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHNpemUgKz0gc3lzZnNfZW1p dF9hdChidWYsIHNpemUsICJ1bmF2YWlsYWJsZVxuIik7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHJl dHVybiBzaXplOw0KPj4+ICvCoMKgwqAgfQ0KPj4+IMKgwqDCoMKgwqAgZHBtX2NvbnRleHQgPSBz bXVfZHBtLT5kcG1fY29udGV4dDsgZGlmZiAtLWdpdA0KPj4+IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9wbS9zd3NtdS9zbXUxMS9uYXZpMTBfcHB0LmMNCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv cG0vc3dzbXUvc211MTEvbmF2aTEwX3BwdC5jDQo+Pj4gaW5kZXggNGM4MTk4OWI4MTYyLi41NDkw ZThlNjZlMTQgMTAwNjQ0DQo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9zd3NtdS9z bXUxMS9uYXZpMTBfcHB0LmMNCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3BtL3N3c211 L3NtdTExL25hdmkxMF9wcHQuYw0KPj4+IEBAIC0xMjc5LDYgKzEyNzksOSBAQCBzdGF0aWMgaW50 IG5hdmkxMF9wcmludF9jbGtfbGV2ZWxzKHN0cnVjdA0KPj4+IHNtdV9jb250ZXh0ICpzbXUsDQo+ Pj4gwqDCoMKgwqDCoCBzdHJ1Y3Qgc211XzExXzBfb3ZlcmRyaXZlX3RhYmxlICpvZF9zZXR0aW5n cyA9DQo+Pj4gc211LT5vZF9zZXR0aW5nczsNCj4+PiDCoMKgwqDCoMKgIHVpbnQzMl90IG1pbl92 YWx1ZSwgbWF4X3ZhbHVlOw0KPj4+ICvCoMKgwqAgc2l6ZSA9IG9mZnNldF9pbl9wYWdlKGJ1Zik7 DQo+Pj4gK8KgwqDCoCBidWYgPSBidWYgLSBzaXplOw0KPj4+ICsNCj4+PiDCoMKgwqDCoMKgIHN3 aXRjaCAoY2xrX3R5cGUpIHsNCj4+PiDCoMKgwqDCoMKgIGNhc2UgU01VX0dGWENMSzoNCj4+PiDC oMKgwqDCoMKgIGNhc2UgU01VX1NDTEs6DQo+Pj4gQEAgLTEzOTIsNyArMTM5NSw3IEBAIHN0YXRp YyBpbnQgbmF2aTEwX3ByaW50X2Nsa19sZXZlbHMoc3RydWN0DQo+Pj4gc211X2NvbnRleHQgKnNt dSwNCj4+PiDCoMKgwqDCoMKgIGNhc2UgU01VX09EX1JBTkdFOg0KPj4+IMKgwqDCoMKgwqDCoMKg wqDCoCBpZiAoIXNtdS0+b2RfZW5hYmxlZCB8fCAhb2RfdGFibGUgfHwgIW9kX3NldHRpbmdzKQ0K Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOw0KPj4+IC3CoMKgwqDCoMKgwqDC oCBzaXplID0gc3lzZnNfZW1pdChidWYsICIlczpcbiIsICJPRF9SQU5HRSIpOw0KPj4+ICvCoMKg wqDCoMKgwqDCoCBzaXplICs9IHN5c2ZzX2VtaXRfYXQoYnVmLCBzaXplLCAiJXM6XG4iLCAiT0Rf UkFOR0UiKTsNCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKG5hdmkxMF9vZF9mZWF0dXJlX2lz X3N1cHBvcnRlZChvZF9zZXR0aW5ncywNCj4+PiBTTVVfMTFfMF9PRENBUF9HRlhDTEtfTElNSVRT KSkgew0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG5hdmkxMF9vZF9zZXR0aW5nX2dl dF9yYW5nZShvZF9zZXR0aW5ncywNCj4+PiBTTVVfMTFfMF9PRFNFVFRJTkdfR0ZYQ0xLRk1JTiwN Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9zd3NtdS9zbXUxMS9zaWVu bmFfY2ljaGxpZF9wcHQuYw0KPj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9zd3NtdS9zbXUx MS9zaWVubmFfY2ljaGxpZF9wcHQuYw0KPj4+IGluZGV4IDVlMjkyYzNmNTA1MC4uODE3YWQ2ZGUz ODU0IDEwMDY0NA0KPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG0vc3dzbXUvc211MTEv c2llbm5hX2NpY2hsaWRfcHB0LmMNCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3BtL3N3 c211L3NtdTExL3NpZW5uYV9jaWNobGlkX3BwdC5jDQo+Pj4gQEAgLTEwNTgsNiArMTA1OCw5IEBA IHN0YXRpYyBpbnQNCj4+PiBzaWVubmFfY2ljaGxpZF9wcmludF9jbGtfbGV2ZWxzKHN0cnVjdCBz bXVfY29udGV4dCAqc211LA0KPj4+IMKgwqDCoMKgwqAgdWludDMyX3QgbWluX3ZhbHVlLCBtYXhf dmFsdWU7DQo+Pj4gwqDCoMKgwqDCoCB1aW50MzJfdCBzbXVfdmVyc2lvbjsNCj4+PiArwqDCoMKg IHNpemUgPSBvZmZzZXRfaW5fcGFnZShidWYpOw0KPj4+ICvCoMKgwqAgYnVmID0gYnVmIC0gc2l6 ZTsNCj4+PiArDQo+Pj4gwqDCoMKgwqDCoCBzd2l0Y2ggKGNsa190eXBlKSB7DQo+Pj4gwqDCoMKg wqDCoCBjYXNlIFNNVV9HRlhDTEs6DQo+Pj4gwqDCoMKgwqDCoCBjYXNlIFNNVV9TQ0xLOg0KPj4+ IEBAIC0xMTgwLDcgKzExODMsNyBAQCBzdGF0aWMgaW50DQo+Pj4gc2llbm5hX2NpY2hsaWRfcHJp bnRfY2xrX2xldmVscyhzdHJ1Y3Qgc211X2NvbnRleHQgKnNtdSwNCj4+PiDCoMKgwqDCoMKgwqDC oMKgwqAgaWYgKCFzbXUtPm9kX2VuYWJsZWQgfHwgIW9kX3RhYmxlIHx8ICFvZF9zZXR0aW5ncykN Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBicmVhazsNCj4+PiAtwqDCoMKgwqDCoMKg wqAgc2l6ZSA9IHN5c2ZzX2VtaXQoYnVmLCAiJXM6XG4iLCAiT0RfUkFOR0UiKTsNCj4+PiArwqDC oMKgwqDCoMKgwqAgc2l6ZSArPSBzeXNmc19lbWl0X2F0KGJ1Ziwgc2l6ZSwgIiVzOlxuIiwgIk9E X1JBTkdFIik7DQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChzaWVubmFfY2ljaGxpZF9pc19v ZF9mZWF0dXJlX3N1cHBvcnRlZChvZF9zZXR0aW5ncywNCj4+PiBTTVVfMTFfMF83X09EQ0FQX0dG WENMS19MSU1JVFMpKSB7DQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2llbm5hX2Np Y2hsaWRfZ2V0X29kX3NldHRpbmdfcmFuZ2Uob2Rfc2V0dGluZ3MsDQo+Pj4gU01VXzExXzBfN19P RFNFVFRJTkdfR0ZYQ0xLRk1JTiwNCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9wbS9zd3NtdS9zbXUxMS92YW5nb2doX3BwdC5jDQo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1k L3BtL3N3c211L3NtdTExL3ZhbmdvZ2hfcHB0LmMNCj4+PiBpbmRleCAzYTM0MjE0NTJlNTcuLmM3 ODQyYzY5YjU3MCAxMDA2NDQNCj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3BtL3N3c211 L3NtdTExL3ZhbmdvZ2hfcHB0LmMNCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3BtL3N3 c211L3NtdTExL3ZhbmdvZ2hfcHB0LmMNCj4+PiBAQCAtNTkyLDcgKzU5Miw3IEBAIHN0YXRpYyBp bnQgdmFuZ29naF9wcmludF9sZWdhY3lfY2xrX2xldmVscyhzdHJ1Y3QNCj4+PiBzbXVfY29udGV4 dCAqc211LA0KPj4+IMKgwqDCoMKgwqAgc3dpdGNoIChjbGtfdHlwZSkgew0KPj4+IMKgwqDCoMKg wqAgY2FzZSBTTVVfT0RfU0NMSzoNCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHNtdV9kcG1f Y3R4LT5kcG1fbGV2ZWwgPT0gQU1EX0RQTV9GT1JDRURfTEVWRUxfTUFOVUFMKQ0KPj4+IHsNCj4+ PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzaXplID0gc3lzZnNfZW1pdChidWYsICIlczpcbiIs ICJPRF9TQ0xLIik7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2l6ZSArPSBzeXNmc19l bWl0X2F0KGJ1Ziwgc2l6ZSwgIiVzOlxuIiwgIk9EX1NDTEsiKTsNCj4+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBzaXplICs9IHN5c2ZzX2VtaXRfYXQoYnVmLCBzaXplLCAiMDogJTEwdU1o elxuIiwNCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc211LT5nZnhfYWN0dWFsX2hh cmRfbWluX2ZyZXEgPiAwKSA/DQo+Pj4gc211LT5nZnhfYWN0dWFsX2hhcmRfbWluX2ZyZXEgOiBz bXUtPmdmeF9kZWZhdWx0X2hhcmRfbWluX2ZyZXEpOw0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHNpemUgKz0gc3lzZnNfZW1pdF9hdChidWYsIHNpemUsICIxOiAlMTB1TWh6XG4iLCBA QA0KPj4+IC02MDEsNyArNjAxLDcgQEAgc3RhdGljIGludCB2YW5nb2doX3ByaW50X2xlZ2FjeV9j bGtfbGV2ZWxzKHN0cnVjdA0KPj4+IHNtdV9jb250ZXh0ICpzbXUsDQo+Pj4gwqDCoMKgwqDCoMKg wqDCoMKgIGJyZWFrOw0KPj4+IMKgwqDCoMKgwqAgY2FzZSBTTVVfT0RfQ0NMSzoNCj4+PiDCoMKg wqDCoMKgwqDCoMKgwqAgaWYgKHNtdV9kcG1fY3R4LT5kcG1fbGV2ZWwgPT0gQU1EX0RQTV9GT1JD RURfTEVWRUxfTUFOVUFMKQ0KPj4+IHsNCj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzaXpl ID0gc3lzZnNfZW1pdChidWYsICJDQ0xLX1JBTkdFIGluIENvcmUlZDpcbiIsDQo+Pj4gc211LT5j cHVfY29yZV9pZF9zZWxlY3QpOw0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNpemUgKz0g c3lzZnNfZW1pdF9hdChidWYsIHNpemUsICJDQ0xLX1JBTkdFIGluDQo+Pj4gQ29yZSVkOlxuIizC oCBzbXUtPmNwdV9jb3JlX2lkX3NlbGVjdCk7DQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgc2l6ZSArPSBzeXNmc19lbWl0X2F0KGJ1Ziwgc2l6ZSwgIjA6ICUxMHVNaHpcbiIsDQo+Pj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHNtdS0+Y3B1X2FjdHVhbF9zb2Z0X21pbl9mcmVx ID4gMCkgPw0KPj4+IHNtdS0+Y3B1X2FjdHVhbF9zb2Z0X21pbl9mcmVxIDogc211LT5jcHVfZGVm YXVsdF9zb2Z0X21pbl9mcmVxKTsNCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzaXpl ICs9IHN5c2ZzX2VtaXRfYXQoYnVmLCBzaXplLCAiMTogJTEwdU1oelxuIiwgQEANCj4+PiAtNjEw LDcgKzYxMCw3IEBAIHN0YXRpYyBpbnQgdmFuZ29naF9wcmludF9sZWdhY3lfY2xrX2xldmVscyhz dHJ1Y3QNCj4+PiBzbXVfY29udGV4dCAqc211LA0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBicmVh azsNCj4+PiDCoMKgwqDCoMKgIGNhc2UgU01VX09EX1JBTkdFOg0KPj4+IMKgwqDCoMKgwqDCoMKg wqDCoCBpZiAoc211X2RwbV9jdHgtPmRwbV9sZXZlbCA9PSBBTURfRFBNX0ZPUkNFRF9MRVZFTF9N QU5VQUwpDQo+Pj4gew0KPj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNpemUgPSBzeXNmc19l bWl0KGJ1ZiwgIiVzOlxuIiwgIk9EX1JBTkdFIik7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgc2l6ZSArPSBzeXNmc19lbWl0X2F0KGJ1Ziwgc2l6ZSwgIiVzOlxuIiwgIk9EX1JBTkdFIik7 DQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2l6ZSArPSBzeXNmc19lbWl0X2F0KGJ1 Ziwgc2l6ZSwgIlNDTEs6ICU3dU1oeg0KPj4+ICUxMHVNaHpcbiIsDQo+Pj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzbXUtPmdmeF9kZWZhdWx0X2hhcmRfbWluX2ZyZXEsDQo+ Pj4gc211LT5nZnhfZGVmYXVsdF9zb2Z0X21heF9mcmVxKTsNCj4+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBzaXplICs9IHN5c2ZzX2VtaXRfYXQoYnVmLCBzaXplLCAiQ0NMSzogJTd1TWh6 DQo+Pj4gJTEwdU1oelxuIiwgQEAgLTY4Miw2ICs2ODIsOSBAQCBzdGF0aWMgaW50DQo+Pj4gdmFu Z29naF9wcmludF9jbGtfbGV2ZWxzKHN0cnVjdCBzbXVfY29udGV4dCAqc211LA0KPj4+IMKgwqDC oMKgwqAgdWludDMyX3QgY3VyX3ZhbHVlID0gMCwgdmFsdWUgPSAwLCBjb3VudCA9IDA7DQo+Pj4g wqDCoMKgwqDCoCBib29sIGN1cl92YWx1ZV9tYXRjaF9sZXZlbCA9IGZhbHNlOw0KPj4+ICvCoMKg wqAgc2l6ZSA9IG9mZnNldF9pbl9wYWdlKGJ1Zik7DQo+Pj4gK8KgwqDCoCBidWYgPSBidWYgLSBz aXplOw0KPj4+ICsNCj4+PiDCoMKgwqDCoMKgIG1lbXNldCgmbWV0cmljcywgMCwgc2l6ZW9mKG1l dHJpY3MpKTsNCj4+PiDCoMKgwqDCoMKgIHJldCA9IHNtdV9jbW5fZ2V0X21ldHJpY3NfdGFibGUo c211LCAmbWV0cmljcywgZmFsc2UpOyBAQA0KPj4+IC02OTEsNyArNjk0LDcgQEAgc3RhdGljIGlu dCB2YW5nb2doX3ByaW50X2Nsa19sZXZlbHMoc3RydWN0DQo+Pj4gc211X2NvbnRleHQgKnNtdSwN Cj4+PiDCoMKgwqDCoMKgIHN3aXRjaCAoY2xrX3R5cGUpIHsNCj4+PiDCoMKgwqDCoMKgIGNhc2Ug U01VX09EX1NDTEs6DQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChzbXVfZHBtX2N0eC0+ZHBt X2xldmVsID09IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX01BTlVBTCkNCj4+PiB7DQo+Pj4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgc2l6ZSA9IHN5c2ZzX2VtaXQoYnVmLCAiJXM6XG4iLCAiT0RfU0NM SyIpOw0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNpemUgKz0gc3lzZnNfZW1pdF9hdChi dWYsIHNpemUsICIlczpcbiIsICJPRF9TQ0xLIik7DQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgc2l6ZSArPSBzeXNmc19lbWl0X2F0KGJ1Ziwgc2l6ZSwgIjA6ICUxMHVNaHpcbiIsDQo+ Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHNtdS0+Z2Z4X2FjdHVhbF9oYXJkX21pbl9m cmVxID4gMCkgPw0KPj4+IHNtdS0+Z2Z4X2FjdHVhbF9oYXJkX21pbl9mcmVxIDogc211LT5nZnhf ZGVmYXVsdF9oYXJkX21pbl9mcmVxKTsNCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBz aXplICs9IHN5c2ZzX2VtaXRfYXQoYnVmLCBzaXplLCAiMTogJTEwdU1oelxuIiwgQEANCj4+PiAt NzAwLDcgKzcwMyw3IEBAIHN0YXRpYyBpbnQgdmFuZ29naF9wcmludF9jbGtfbGV2ZWxzKHN0cnVj dA0KPj4+IHNtdV9jb250ZXh0ICpzbXUsDQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOw0K Pj4+IMKgwqDCoMKgwqAgY2FzZSBTTVVfT0RfQ0NMSzoNCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAg aWYgKHNtdV9kcG1fY3R4LT5kcG1fbGV2ZWwgPT0gQU1EX0RQTV9GT1JDRURfTEVWRUxfTUFOVUFM KQ0KPj4+IHsNCj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzaXplID0gc3lzZnNfZW1pdChi dWYsICJDQ0xLX1JBTkdFIGluIENvcmUlZDpcbiIsDQo+Pj4gc211LT5jcHVfY29yZV9pZF9zZWxl Y3QpOw0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNpemUgKz0gc3lzZnNfZW1pdF9hdChi dWYsIHNpemUsICJDQ0xLX1JBTkdFIGluDQo+Pj4gQ29yZSVkOlxuIizCoCBzbXUtPmNwdV9jb3Jl X2lkX3NlbGVjdCk7DQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2l6ZSArPSBzeXNm c19lbWl0X2F0KGJ1Ziwgc2l6ZSwgIjA6ICUxMHVNaHpcbiIsDQo+Pj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgKHNtdS0+Y3B1X2FjdHVhbF9zb2Z0X21pbl9mcmVxID4gMCkgPw0KPj4+IHNt dS0+Y3B1X2FjdHVhbF9zb2Z0X21pbl9mcmVxIDogc211LT5jcHVfZGVmYXVsdF9zb2Z0X21pbl9m cmVxKTsNCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzaXplICs9IHN5c2ZzX2VtaXRf YXQoYnVmLCBzaXplLCAiMTogJTEwdU1oelxuIiwgQEANCj4+PiAtNzA5LDcgKzcxMiw3IEBAIHN0 YXRpYyBpbnQgdmFuZ29naF9wcmludF9jbGtfbGV2ZWxzKHN0cnVjdA0KPj4+IHNtdV9jb250ZXh0 ICpzbXUsDQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOw0KPj4+IMKgwqDCoMKgwqAgY2Fz ZSBTTVVfT0RfUkFOR0U6DQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChzbXVfZHBtX2N0eC0+ ZHBtX2xldmVsID09IEFNRF9EUE1fRk9SQ0VEX0xFVkVMX01BTlVBTCkNCj4+PiB7DQo+Pj4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgc2l6ZSA9IHN5c2ZzX2VtaXQoYnVmLCAiJXM6XG4iLCAiT0Rf UkFOR0UiKTsNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzaXplICs9IHN5c2ZzX2VtaXRf YXQoYnVmLCBzaXplLCAiJXM6XG4iLCAiT0RfUkFOR0UiKTsNCj4+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBzaXplICs9IHN5c2ZzX2VtaXRfYXQoYnVmLCBzaXplLCAiU0NMSzogJTd1TWh6 DQo+Pj4gJTEwdU1oelxuIiwNCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHNtdS0+Z2Z4X2RlZmF1bHRfaGFyZF9taW5fZnJlcSwNCj4+PiBzbXUtPmdmeF9kZWZhdWx0X3Nv ZnRfbWF4X2ZyZXEpOw0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNpemUgKz0gc3lz ZnNfZW1pdF9hdChidWYsIHNpemUsICJDQ0xLOiAlN3VNaHoNCj4+PiAlMTB1TWh6XG4iLCBkaWZm IC0tZ2l0DQo+Pj4gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3BtL3N3c211L3NtdTEyL3Jlbm9pcl9w cHQuYw0KPj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9zd3NtdS9zbXUxMi9yZW5vaXJfcHB0 LmMNCj4+PiBpbmRleCA1YWExNzVlMTJhNzguLjg2ZTc5NzhiNmQ2MyAxMDA2NDQNCj4+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL3BtL3N3c211L3NtdTEyL3Jlbm9pcl9wcHQuYw0KPj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG0vc3dzbXUvc211MTIvcmVub2lyX3BwdC5jDQo+Pj4g QEAgLTQ5MSw2ICs0OTEsOSBAQCBzdGF0aWMgaW50IHJlbm9pcl9wcmludF9jbGtfbGV2ZWxzKHN0 cnVjdA0KPj4+IHNtdV9jb250ZXh0ICpzbXUsDQo+Pj4gwqDCoMKgwqDCoCBzdHJ1Y3Qgc211X2Rw bV9jb250ZXh0ICpzbXVfZHBtX2N0eCA9ICYoc211LT5zbXVfZHBtKTsNCj4+PiDCoMKgwqDCoMKg IGJvb2wgY3VyX3ZhbHVlX21hdGNoX2xldmVsID0gZmFsc2U7DQo+Pj4gK8KgwqDCoCBzaXplID0g b2Zmc2V0X2luX3BhZ2UoYnVmKTsNCj4+PiArwqDCoMKgIGJ1ZiA9IGJ1ZiAtIHNpemU7DQo+Pj4g Kw0KPj4+IMKgwqDCoMKgwqAgbWVtc2V0KCZtZXRyaWNzLCAwLCBzaXplb2YobWV0cmljcykpOw0K Pj4+IMKgwqDCoMKgwqAgcmV0ID0gc211X2Ntbl9nZXRfbWV0cmljc190YWJsZShzbXUsICZtZXRy aWNzLCBmYWxzZSk7IGRpZmYNCj4+PiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG0vc3dz bXUvc211MTMvYWxkZWJhcmFuX3BwdC5jDQo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3BtL3N3 c211L3NtdTEzL2FsZGViYXJhbl9wcHQuYw0KPj4+IGluZGV4IGFiNjUyMDI4ZTAwMy4uNjM0OWYy N2U5ZWZjIDEwMDY0NA0KPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG0vc3dzbXUvc211 MTMvYWxkZWJhcmFuX3BwdC5jDQo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wbS9zd3Nt dS9zbXUxMy9hbGRlYmFyYW5fcHB0LmMNCj4+PiBAQCAtNzMzLDE1ICs3MzMsMjAgQEAgc3RhdGlj IGludCBhbGRlYmFyYW5fcHJpbnRfY2xrX2xldmVscyhzdHJ1Y3QNCj4+PiBzbXVfY29udGV4dCAq c211LA0KPj4+IMKgwqDCoMKgwqAgdWludDMyX3QgZnJlcV92YWx1ZXNbM10gPSB7MH07DQo+Pj4g wqDCoMKgwqDCoCB1aW50MzJfdCBtaW5fY2xrLCBtYXhfY2xrOw0KPj4+IC3CoMKgwqAgaWYgKGFt ZGdwdV9yYXNfaW50cl90cmlnZ2VyZWQoKSkNCj4+PiAtwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHN5 c2ZzX2VtaXQoYnVmLCAidW5hdmFpbGFibGVcbiIpOw0KPj4+ICvCoMKgwqAgc2l6ZSA9IG9mZnNl dF9pbl9wYWdlKGJ1Zik7DQo+Pj4gK8KgwqDCoCBidWYgPSBidWYgLSBzaXplOw0KPj4+ICsNCj4+ PiArwqDCoMKgIGlmIChhbWRncHVfcmFzX2ludHJfdHJpZ2dlcmVkKCkpIHsNCj4+PiArwqDCoMKg wqDCoMKgwqAgc2l6ZSArPSBzeXNmc19lbWl0X2F0KGJ1Ziwgc2l6ZSwgInVuYXZhaWxhYmxlXG4i KTsNCj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHNpemU7DQo+Pj4gK8KgwqDCoCB9DQo+Pj4g wqDCoMKgwqDCoCBkcG1fY29udGV4dCA9IHNtdV9kcG0tPmRwbV9jb250ZXh0Ow0KPj4+IMKgwqDC oMKgwqAgc3dpdGNoICh0eXBlKSB7DQo+Pj4gwqDCoMKgwqDCoCBjYXNlIFNNVV9PRF9TQ0xLOg0K Pj4+IC3CoMKgwqDCoMKgwqDCoCBzaXplID0gc3lzZnNfZW1pdChidWYsICIlczpcbiIsICJHRlhD TEsiKTsNCj4+PiArwqDCoMKgwqDCoMKgwqAgc2l6ZSArPSBzeXNmc19lbWl0X2F0KGJ1Ziwgc2l6 ZSwgIiVzOlxuIiwgIkdGWENMSyIpOw0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBmYWxsdGhyb3Vn aDsNCj4+PiDCoMKgwqDCoMKgIGNhc2UgU01VX1NDTEs6DQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKg IHJldCA9IGFsZGViYXJhbl9nZXRfY3VycmVudF9jbGtfZnJlcV9ieV90YWJsZShzbXUsDQo+Pj4g U01VX0dGWENMSywgJm5vdyk7DQo+Pj4gQEAgLTc5NSw3ICs4MDAsNyBAQCBzdGF0aWMgaW50IGFs ZGViYXJhbl9wcmludF9jbGtfbGV2ZWxzKHN0cnVjdA0KPj4+IHNtdV9jb250ZXh0ICpzbXUsDQo+ Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOw0KPj4+IMKgwqDCoMKgwqAgY2FzZSBTTVVfT0Rf TUNMSzoNCj4+PiAtwqDCoMKgwqDCoMKgwqAgc2l6ZSA9IHN5c2ZzX2VtaXQoYnVmLCAiJXM6XG4i LCAiTUNMSyIpOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCBzaXplICs9IHN5c2ZzX2VtaXRfYXQoYnVm LCBzaXplLCAiJXM6XG4iLCAiTUNMSyIpOw0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBmYWxsdGhy b3VnaDsNCj4+PiDCoMKgwqDCoMKgIGNhc2UgU01VX01DTEs6DQo+Pj4gwqDCoMKgwqDCoMKgwqDC oMKgIHJldCA9IGFsZGViYXJhbl9nZXRfY3VycmVudF9jbGtfZnJlcV9ieV90YWJsZShzbXUsDQo+ Pj4gU01VX1VDTEssICZub3cpOyBkaWZmIC0tZ2l0DQo+Pj4gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L3BtL3N3c211L3NtdTEzL3llbGxvd19jYXJwX3BwdC5jDQo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0v YW1kL3BtL3N3c211L3NtdTEzL3llbGxvd19jYXJwX3BwdC5jDQo+Pj4gaW5kZXggNjI3YmEyZWVj N2ZkLi4zYjIxZDkxNDNiOTYgMTAwNjQ0DQo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9w bS9zd3NtdS9zbXUxMy95ZWxsb3dfY2FycF9wcHQuYw0KPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvcG0vc3dzbXUvc211MTMveWVsbG93X2NhcnBfcHB0LmMNCj4+PiBAQCAtMTA1MiwxNiAr MTA1MiwxOSBAQCBzdGF0aWMgaW50DQo+Pj4geWVsbG93X2NhcnBfcHJpbnRfY2xrX2xldmVscyhz dHJ1Y3QNCj4+PiBzbXVfY29udGV4dCAqc211LA0KPj4+IMKgwqDCoMKgwqAgaW50IGksIHNpemUg PSAwLCByZXQgPSAwOw0KPj4+IMKgwqDCoMKgwqAgdWludDMyX3QgY3VyX3ZhbHVlID0gMCwgdmFs dWUgPSAwLCBjb3VudCA9IDA7DQo+Pj4gK8KgwqDCoCBzaXplID0gb2Zmc2V0X2luX3BhZ2UoYnVm KTsNCj4+PiArwqDCoMKgIGJ1ZiA9IGJ1ZiAtIHNpemU7DQo+Pj4gKw0KPj4+IMKgwqDCoMKgwqAg c3dpdGNoIChjbGtfdHlwZSkgew0KPj4+IMKgwqDCoMKgwqAgY2FzZSBTTVVfT0RfU0NMSzoNCj4+ PiAtwqDCoMKgwqDCoMKgwqAgc2l6ZSA9IHN5c2ZzX2VtaXQoYnVmLCAiJXM6XG4iLCAiT0RfU0NM SyIpOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCBzaXplICs9IHN5c2ZzX2VtaXRfYXQoYnVmLCBzaXpl LCAiJXM6XG4iLCAiT0RfU0NMSyIpOw0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBzaXplICs9IHN5 c2ZzX2VtaXRfYXQoYnVmLCBzaXplLCAiMDogJTEwdU1oelxuIiwNCj4+PiDCoMKgwqDCoMKgwqDC oMKgwqAgKHNtdS0+Z2Z4X2FjdHVhbF9oYXJkX21pbl9mcmVxID4gMCkgPw0KPj4+IHNtdS0+Z2Z4 X2FjdHVhbF9oYXJkX21pbl9mcmVxIDogc211LT5nZnhfZGVmYXVsdF9oYXJkX21pbl9mcmVxKTsN Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgc2l6ZSArPSBzeXNmc19lbWl0X2F0KGJ1Ziwgc2l6ZSwg IjE6ICUxMHVNaHpcbiIsDQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIChzbXUtPmdmeF9hY3R1YWxf c29mdF9tYXhfZnJlcSA+IDApID8NCj4+PiBzbXUtPmdmeF9hY3R1YWxfc29mdF9tYXhfZnJlcSA6 IHNtdS0+Z2Z4X2RlZmF1bHRfc29mdF9tYXhfZnJlcSk7DQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKg IGJyZWFrOw0KPj4+IMKgwqDCoMKgwqAgY2FzZSBTTVVfT0RfUkFOR0U6DQo+Pj4gLcKgwqDCoMKg wqDCoMKgIHNpemUgPSBzeXNmc19lbWl0KGJ1ZiwgIiVzOlxuIiwgIk9EX1JBTkdFIik7DQo+Pj4g K8KgwqDCoMKgwqDCoMKgIHNpemUgKz0gc3lzZnNfZW1pdF9hdChidWYsIHNpemUsICIlczpcbiIs ICJPRF9SQU5HRSIpOw0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBzaXplICs9IHN5c2ZzX2VtaXRf YXQoYnVmLCBzaXplLCAiU0NMSzogJTd1TWh6ICUxMHVNaHpcbiIsDQo+Pj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc211LT5nZnhfZGVmYXVsdF9o YXJkX21pbl9mcmVxLA0KPj4+IHNtdS0+Z2Z4X2RlZmF1bHRfc29mdF9tYXhfZnJlcSk7DQo+Pj4g wqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOw0KPj4NCg==