From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2041.outbound.protection.outlook.com [40.107.223.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D02891FECAD; Fri, 22 Aug 2025 04:41:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.41 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755837715; cv=fail; b=XBYniTIVT0x72I+XzmR17QX2gkLoGPbZIyzcSx5OOeRm0i5ZCLjzaSX9qq6loQQd9TLeeLmYM/C+otbFvmCAppyb5Ve8qSeGbSMpnD8vPK03pShG85ve58KzugnzRlDVYz6RqpizXBJ7DEeCugim/WsDh1FhLkDMxr6VbQMG21I= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755837715; c=relaxed/simple; bh=MEVgYL9zOTRVZLgHNPQ80H+uB/9PXaB3e0hUZc5v+uQ=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=TgeYgvPAH501BuKnAkJbEZ9fRgQLRHvPXl5b8LOGui2HLSCd0DyXAxCLDpUaNn7rTk2/W5Qvjdnke0mdTywF75L6P/vYf1ZMw8KfhFikx7NiIvuUTycl0mia7an4fozJXJCtiq7EWIJkNvt/VBBDONfv+rH0oy1TTSsfG954GAk= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=microchip.com; spf=pass smtp.mailfrom=microchip.com; dkim=pass (2048-bit key) header.d=microchip.com header.i=@microchip.com header.b=I8ofHRFg; arc=fail smtp.client-ip=40.107.223.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=microchip.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=microchip.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=microchip.com header.i=@microchip.com header.b="I8ofHRFg" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GyisStg9wYC00J5Gi4tR+3r4KCT3eajVDqwwoUjYI8oiQtBXJTlhBTfcAicgO9M9TNCDSI9X/2K4mCU/NIMT5s5P7jsd+md62gX2GFpMCf+zwny84wRuf5+YewqsCdN/gfUVYy6uODTUWSuY68wYgE7Dpe/1jM6gXY+64ki5sboFBpAgsL14xefQ01oFlLZMNMYiL7r7i0DuG3x8ZtKvhGZo/v1JT91fpq0lOxqWy6KW3NLy6nKC8x9u1uoLaof2Xd2ceM+TqmiU17NIycqIcZ+G4C8BQna4XrPsooZN6xoo3MOfUBJlXdarrePo+MOyf0QWGpje3KenQDZucgZVnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=MEVgYL9zOTRVZLgHNPQ80H+uB/9PXaB3e0hUZc5v+uQ=; b=HcW2yjHtMMVy2MygJp4ugH0Ro2w5QaJguAbFOGvG6/sN5JbGQc6JEUSHsAmgW5UcCGyEHVYK53J3uZVnc3GUPF7kJNKfKs8Ui9YExhS4YyOtXcL5a6e8zZzlg7CA0j64St64NUq9tm3P6xuDC7Elni7SNocrM5IUKoIZQwvaAgvaZ/gKzSxUpIY3kmVXSf3tSm1XGzajO3B4yVpunnV2kWyIoI7Svxo0UEB5qJe2G6sgRB2cnJsUc025rW3BTeFF4lEdczqVHeMIEKIQXSEXI/qfyCyJ3lJO/dEwriNd+W6oooV0ZjNittKKlCfosBnWJND4QPuTYNh/38SMmWrNWg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microchip.com; dmarc=pass action=none header.from=microchip.com; dkim=pass header.d=microchip.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microchip.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MEVgYL9zOTRVZLgHNPQ80H+uB/9PXaB3e0hUZc5v+uQ=; b=I8ofHRFg4HfX8d/prprNSi5t6ceJAaeBWhH/WY7qCNc61TRh0fGw3WgJ+bnHWxpfk+bJ0rhhSAtbO+NWWgL7YGikLxVvmPK/FA83Pv8lniDNlFgDeSt3kZvIr5RgGrRHoyIgcdPwoaFdgsi9HLC9claPI1tA8RFAz9ULFpLUKSq5AEQ//tyKTu4E4qaSg1reoD4m4vK0dwEyUYjl5+ypG/q2vJrHWmB5qMrGKizvifHEko2YTj4OMNhxDFzTMv7ZokwEiJ59SdE3uyeTAEFXgawgHugq4/ryGS6aOy8esZP+iPumSIFqL4PvrI6cPdDB+8DbnRksAP5fYxo5IFnb2w== Received: from SA1PR11MB8278.namprd11.prod.outlook.com (2603:10b6:806:25b::19) by MN2PR11MB4693.namprd11.prod.outlook.com (2603:10b6:208:261::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9052.16; Fri, 22 Aug 2025 04:41:49 +0000 Received: from SA1PR11MB8278.namprd11.prod.outlook.com ([fe80::84fa:e267:e389:fa9]) by SA1PR11MB8278.namprd11.prod.outlook.com ([fe80::84fa:e267:e389:fa9%7]) with mapi id 15.20.8989.011; Fri, 22 Aug 2025 04:41:48 +0000 From: To: , , , , , , , , , , , , , , , , , , , , CC: , , , Subject: Re: [PATCH net-next v7 3/5] net: rnpgbe: Add basic mbx ops support Thread-Topic: [PATCH net-next v7 3/5] net: rnpgbe: Add basic mbx ops support Thread-Index: AQHcEw2KrMk697fHIUyMUt1z/DIDubRuGAgA Date: Fri, 22 Aug 2025 04:41:48 +0000 Message-ID: References: <20250822023453.1910972-1-dong100@mucse.com> <20250822023453.1910972-4-dong100@mucse.com> In-Reply-To: <20250822023453.1910972-4-dong100@mucse.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla Thunderbird authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microchip.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SA1PR11MB8278:EE_|MN2PR11MB4693:EE_ x-ms-office365-filtering-correlation-id: 49f8e51b-a163-4012-7fd6-08dde13634d8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014|921020|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?a0VNNEJnR2V1RlpTbVFWa0tERm9VYUlXazd1OWdiclhBR3YzM2Fsd2VicHI0?= =?utf-8?B?WnJaUkhSZndhRFpWNjdZYjVLTzRDV1hrcVpqRld0cnRpTE9ZS29Bb2R6Q2tm?= =?utf-8?B?ODREaUhhaG5TbG9oRjVMNEllZUpEVVZtTmFMRVNNVUVlTDUxSFB2Nmc3N2pq?= =?utf-8?B?OUtyN0ZEQ1AwV3JNTGxVeVdCMEdvRHA3T2laZGR0bHdXamw0cEZmM2R2K05E?= =?utf-8?B?eFJhcU5pUFZHY0tCZUJmZVZkaWh1Y3JxUUlVYjlzVTlMNStuUUw2UXliSENv?= =?utf-8?B?TU1jWWxSdG5MYTQ4cXQxTk9vZnNnTGVIczFxcWZIeFpSZWkwbkFuRUNGcU9q?= =?utf-8?B?WFVWVytHdWJ5TXRPT0sxcEc5dGJCOTVxUFV6TVkzQWRSejFXOE1YVzZXd3Ny?= =?utf-8?B?ZFFZOXNpOGpwTEZrR0VienMvSEJ5L2M3SUU3ZitMMTgwTEtCelJZc1g4OFhn?= =?utf-8?B?OTFoK0VFSXJ3ck82eThDUThmdlR1ZmpyYitaSFFRMnhIVFlJTXV3WVNVY1BX?= =?utf-8?B?bDFhNFpWNmNJbHRpRENFMlp4TldJRGZOZTNTcjVLT2dHWkdRVmdLQ3Y0WFRL?= =?utf-8?B?cm5nZGdKTjI5WWNjcUVWYkFpVEFVaGpYVkFiRzBJN2RCdHZ5Y3U2MjBDc0hY?= =?utf-8?B?d1RFY25tYit5L1haeEhRWTJnVjZ2c1BiZG42VzltN2JJbmplK3g5TzRTWFZT?= =?utf-8?B?cWdlQkRDSDJnQVU2SXV3Tm8xUjNXR24wbTFiZENacG1MZTdYMjVKSGwxKzVN?= =?utf-8?B?Q3N5TDZlTHExaUFzS3lmYmt6MWNueEJNYmY5M1ZiK1dwZjBVeSs3c2s0dHFa?= =?utf-8?B?K3RwN001UWVnWmpwL0ZCaGFlRmxNek9SNndzM0psWEhGRGhHcDEyTDJ1T0Js?= =?utf-8?B?V2dDMWJkMnVCMUhSeis4MVhBbG9nWUMvbUhzQi9LcHpyZnhkUGpubzNGV0dX?= =?utf-8?B?L3A1aGZzRHk2WFVyd3dnbFFMY1BNN1hFc2RWNEt6MkswcWQ0MU1xSU0wUXdG?= =?utf-8?B?QmxuL0RQeG5IbTNoeHorcitNOU9KMkNyNzl6ZnpVTTJuZHJBRlEwaUNBNDkr?= =?utf-8?B?cDlESUVWbmFGcFRIcFJ5VU52OE91NFVoQVJ2WXpYL3IrQUZrNTg5dzkrRkVM?= =?utf-8?B?LzkxeGE0Rms3dXoxZnZsdHJ4aXFmS25nK0szdU5YNUkwR0k4U2cyaW5wbVRW?= =?utf-8?B?b3FQa3daMHVtck9ZWm50TUVoT1dhaFZWcVg2WXV5VGRxMFRENUJ5K0ZaUXJU?= =?utf-8?B?SHErOTduQkdISVNsZStseW10Z2ZKdnBJMDEwbklGQTFNL2JZVFBYU2FhUkNv?= =?utf-8?B?VmFGVUc4T0tDUEVRTWlTUTBkMlJVSzRLekVWSVBvczFQeldvaU5PNkRVTFdm?= =?utf-8?B?QStqVncreDVpcTNtN2hRbDM5QW9ERWlsbWRjdUY1WTRQWDU2SEFNbEorTVlp?= =?utf-8?B?ekVncFdSSGtrdjJrNDkwT0xtWTZ6VENXZEhZWHUvUmx6WFhvTmI1dDhUVHhZ?= =?utf-8?B?dCsvbUtBeFFqWFl0b2Y5VlM3ZEx3UGpnRHNSWklJN2NCUzdTd1JHRGFXTENN?= =?utf-8?B?clY5YVV2QmFiZERSazFaWTZnNnlKY0M1QjNiK1JuMk5HUHdBUUVsdEQzQTFR?= =?utf-8?B?MzNSa3B6OVpuQ3JaUWc2SWt6d0FETmxOeXB6M2lhUnArN3FsL3BkZm1CcjJK?= =?utf-8?B?cnMwSjNxK3dNSDN5akM5K2liUzZPSmV1Z0F0SlVJdTFDY3JuY2Z1RlNHMmhQ?= =?utf-8?B?RGllSEJwNzFPSHJUUERDUXRpYzhjYlFHcTJJUmF1NW1xVU5WRGpMZ2l0d2FJ?= =?utf-8?B?elRYQjg5aVcxOEIzeS85djBkSFNKVzNMS1gvWmZpbmhyYXpmSXM4dS81YWJ4?= =?utf-8?B?b1ZBMVFCS0dNUUdqbVg0dDFpZnVSWlZONm1wT09sL3RJV2tpN09Oc2R3QUdt?= =?utf-8?B?WllEYXdHcDF2TTB5UVpmS2hMUjRkcGVZSmRwNVZvdnc4MXlQUS8zYlg1bFFP?= =?utf-8?Q?wIN4Qh4GMpNPlIiIPdVsWE6bKuudlk=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR11MB8278.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(921020)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?N3dJZ09NN0owZ3h0Zm8zNEZjalBUSmFVenpxTDIzcmU2YmNaRGl3bXpTai8w?= =?utf-8?B?OEN0OG9rbmNsSmVJa3pwcHZITFBSbmhVQkhaS0ZuNS9rUUNUU0pwR0wzSlY3?= =?utf-8?B?cWJWcEp3TWlESytYcm5LS0tERHZrZVR1NkoyNGI2ay8zeWdOUy9nQUhWajBq?= =?utf-8?B?dmttSE5tSnRCbzF1ZUttWHdVVmtZbmtBTnB3cjN2dndqdVh2Z0I2VmxXc3pr?= =?utf-8?B?T0syRmVsMHpjS3dXRWZPWmU3NThZdlRkdlJuaWk1NzFOSTJ2WXV3ajFQYjRQ?= =?utf-8?B?UTNHT2ppWmI2anNDT2I3bzlKSGw1S0tlWmNoK05lSU12bHlHamYzb1NPOHVq?= =?utf-8?B?SXdrcFgybUtCUDBJYkdyVnQ1WDB3RmFCR1VyNXhwVk1Vc2FDcTlQMlk2MTlv?= =?utf-8?B?ZWJDbTcrV2RVYVBLQ1UxUHZENkJMRkJCTDlkYVN0M3E5UVduSFdVUTlIZlE5?= =?utf-8?B?a2ttZFZaRjFYcDIwaGRXMlVUb1l3VEw0UzJIWWxIOFJES0NNSEt1b0hWOEpx?= =?utf-8?B?R0gxbkdaRGZUQmIyTzNiYXBGTkZxVnQxNzlNblFJZVBMSkhTdklGbEFIWVNj?= =?utf-8?B?WTlrUUZFc2xqaG96bWd3T2hxcTA0REE0ZGx4UTV5OGRySnVvVzBIcmJzMWpS?= =?utf-8?B?Q0V3UkN1NXp6Ly9rS2VaczlIemhoM0ZKNGJHcERnSDhITExhN2d5OWd0L3BT?= =?utf-8?B?ejFRODhmVk5hc1U1dUlHYXNyOW9TL1N6OENUdlMyQ2FXNzZuL2t0Tzg3YkNZ?= =?utf-8?B?Z3lhVzBDQkc0dFBvcVZoZGdoRVJFQjROVUd5anRCcUdwbjZRc1ozNTV5YUpC?= =?utf-8?B?RXVMVFZBdlg2cklKYmVwYVJqMWtZYUtRdWdjTDkxYnVpYTVaRlJLSE41Q3VW?= =?utf-8?B?NkZ5UVhSU1k5MjZPSUxQTzEvb0xhVGhjQUU1Y1lXTDNURC9zZXhhd3I4U3RE?= =?utf-8?B?bVhxSXNXRzQ4bHZzYVRjQTN4bjQ5UzgrZ3JMYmlYcmtROG9temw0NWlHc1hR?= =?utf-8?B?Q2Q4Vk5obi9WWkttZUtlbjNqTzhDSjZnYnBHTGRuWERHWEl3aE9LbFg0N01W?= =?utf-8?B?TU9TSzViWVJNMFlQNTVvSWFIVVU5dUp4MGcwUlR5STNNM0FYSWxwMGUrNkFv?= =?utf-8?B?elpyRC90RWw4dENJMHVyM3R3cmNzSjB2eEhKU01NbFcvdXZrYktzdlVJM2lL?= =?utf-8?B?S1FVWkpNaVNVcHh5N3hCMVBYZFRYNmtEeGMwbDY5Rk1XMUkvZTFhN1BqWFFX?= =?utf-8?B?b2ovTUk2MWs1UlFoT1huQWF6Snd3YnRrZ01kL0tKVkRmck5NY042NGJldTNs?= =?utf-8?B?SGhEcnJTT1J4bWY4enFBVElTZlFMcStYcDQ0VnNBQ09zM1BsTjJEUUxFMGlj?= =?utf-8?B?dnU5UG1zRlpkNDFsNkoxZWlZZzhXZG5nZGpJNU85V21OZktVVmQwRkN2ejZT?= =?utf-8?B?NU8waXRTY0M3bWRsZHgvU2JYcnl1YWhFbFR3dFBCNjlIUlNpS3VoaHY4dGwv?= =?utf-8?B?bVk3L2lCM0pXaDJJSXJjVDVndUxTTFhwWWZrRC9DV1hqc0lqRW9ibjl5YUVJ?= =?utf-8?B?cXd4UWhKMkZEdVpEdkVxYkwvZzdFRkpvczJCYlhGalR5Q24rcWxqUkEvK0pv?= =?utf-8?B?cks4SjFEMHVrQ1Q0SHh3S1JHejFNMkFuWm54aGJUNkhiakRrQ3JKTXVSSU54?= =?utf-8?B?bkJBNzcvWXhyRXA1c0Vsajl1VUh3V1BEczJxMk14L1o5M1BJS3MvYWluN0tU?= =?utf-8?B?MEsyWVJSYkhhcDlqOFR3NEF3Uk1kUitlRUNabVJIQ1ViSDBodjZWSkhyK1Qy?= =?utf-8?B?Y0hDZktMclJJMlV5bmR2SVNEa0t0a2NOWjZiRHVUTzIvQ3pQUkhGM2xLUzRO?= =?utf-8?B?S0NZVlBMTmdDdE5BejAzNC8waWt4cEpFUm0wZGQ0YlZYTUp5TVhHalBsaWxT?= =?utf-8?B?bnpERlBSZmg3d2U4cmU3MFNiN2FhK2lQeW02TWdEb1BhV3RNUllWME1Tdjdp?= =?utf-8?B?UEJtVkR3a3ZSNUtScFRMTU02bjh0NWw5SVJWQU9IU255dWZFRlpva3Z0N1E3?= =?utf-8?B?RjZFU1JrclZiSzFjVmFSUTYrKzRTZm1nT2V6WENjVlZuVGlQVzVic2NKRmZp?= =?utf-8?B?VlZMUnRnUmtPelFmSkZZLzcwQlRmNUQ4T2xtblNaMnVDTG1hUXVVbnIveEVu?= =?utf-8?B?TEE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-doc@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-OriginatorOrg: microchip.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA1PR11MB8278.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 49f8e51b-a163-4012-7fd6-08dde13634d8 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Aug 2025 04:41:48.7061 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3f4057f3-b418-4d4e-ba84-d55b4e897d88 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: G9Xg7UZodMU+Ln/3u15G0Xh+muJIc0rnjhnorbzd+qTZ0PtM6IkOnQVsJtOCWtJ/MBbAq3/yXu3NnjEipgDc/ZzKlWYrCakyyo2gKGgjsFPj4Me76GCAszIW2rYzPt9N X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4693 T24gMjIvMDgvMjUgODowNCBhbSwgRG9uZyBZaWJvIHdyb3RlOg0KPiBFWFRFUk5BTCBFTUFJTDog RG8gbm90IGNsaWNrIGxpbmtzIG9yIG9wZW4gYXR0YWNobWVudHMgdW5sZXNzIHlvdSBrbm93IHRo ZSBjb250ZW50IGlzIHNhZmUNCj4gDQo+IEluaXRpYWxpemUgYmFzaWMgbWJ4IGZ1bmN0aW9uLg0K PiANCj4gU2lnbmVkLW9mZi1ieTogRG9uZyBZaWJvIDxkb25nMTAwQG11Y3NlLmNvbT4NCj4gLS0t DQo+ICAgZHJpdmVycy9uZXQvZXRoZXJuZXQvbXVjc2Uvcm5wZ2JlL01ha2VmaWxlICAgIHwgICAz ICstDQo+ICAgZHJpdmVycy9uZXQvZXRoZXJuZXQvbXVjc2Uvcm5wZ2JlL3JucGdiZS5oICAgIHwg IDE3ICsNCj4gICAuLi4vbmV0L2V0aGVybmV0L211Y3NlL3JucGdiZS9ybnBnYmVfY2hpcC5jICAg fCAgIDMgKw0KPiAgIC4uLi9uZXQvZXRoZXJuZXQvbXVjc2Uvcm5wZ2JlL3JucGdiZV9tYnguYyAg ICB8IDM5NSArKysrKysrKysrKysrKysrKysNCj4gICAuLi4vbmV0L2V0aGVybmV0L211Y3NlL3Ju cGdiZS9ybnBnYmVfbWJ4LmggICAgfCAgMjUgKysNCj4gICA1IGZpbGVzIGNoYW5nZWQsIDQ0MiBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvbmV0L2V0aGVybmV0L211Y3NlL3JucGdiZS9ybnBnYmVfbWJ4LmMNCj4gICBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9uZXQvZXRoZXJuZXQvbXVjc2Uvcm5wZ2JlL3JucGdiZV9tYnguaA0K PiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L211Y3NlL3JucGdiZS9NYWtl ZmlsZSBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L211Y3NlL3JucGdiZS9NYWtlZmlsZQ0KPiBpbmRl eCA0MmMzNTlmNDU5ZDkuLjVmYzg3OGFkYTRiMSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQv ZXRoZXJuZXQvbXVjc2Uvcm5wZ2JlL01ha2VmaWxlDQo+ICsrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L211Y3NlL3JucGdiZS9NYWtlZmlsZQ0KPiBAQCAtNiw0ICs2LDUgQEANCj4gDQo+ICAgb2Jq LSQoQ09ORklHX01HQkUpICs9IHJucGdiZS5vDQo+ICAgcm5wZ2JlLW9ianMgOj0gcm5wZ2JlX21h aW4ub1wNCj4gLSAgICAgICAgICAgICAgcm5wZ2JlX2NoaXAubw0KPiArICAgICAgICAgICAgICBy bnBnYmVfY2hpcC5vXA0KPiArICAgICAgICAgICAgICBybnBnYmVfbWJ4Lm8NCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L211Y3NlL3JucGdiZS9ybnBnYmUuaCBiL2RyaXZlcnMv bmV0L2V0aGVybmV0L211Y3NlL3JucGdiZS9ybnBnYmUuaA0KPiBpbmRleCA5YTg2ZTY3ZDYzOTUu LjY3ZTI4YTQ2NjdlNyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbXVjc2Uv cm5wZ2JlL3JucGdiZS5oDQo+ICsrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L211Y3NlL3JucGdi ZS9ybnBnYmUuaA0KPiBAQCAtNSw2ICs1LDcgQEANCj4gICAjZGVmaW5lIF9STlBHQkVfSA0KPiAN Cj4gICAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9tdXRleC5o Pg0KPiANCj4gICBleHRlcm4gY29uc3Qgc3RydWN0IHJucGdiZV9pbmZvIHJucGdiZV9uNTAwX2lu Zm87DQo+ICAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBybnBnYmVfaW5mbyBybnBnYmVfbjIxMF9pbmZv Ow0KPiBAQCAtMjMsNyArMjQsMjMgQEAgZW51bSBybnBnYmVfaHdfdHlwZSB7DQo+ICAgICAgICAg IHJucGdiZV9od191bmtub3duDQo+ICAgfTsNCj4gDQo+ICtzdHJ1Y3QgbXVjc2VfbWJ4X3N0YXRz IHsNCj4gKyAgICAgICB1MzIgbXNnc190eDsNCj4gKyAgICAgICB1MzIgbXNnc19yeDsNCj4gKyAg ICAgICB1MzIgYWNrczsNCj4gKyAgICAgICB1MzIgcmVxczsNCj4gK307DQo+ICsNCj4gICBzdHJ1 Y3QgbXVjc2VfbWJ4X2luZm8gew0KPiArICAgICAgIHN0cnVjdCBtdWNzZV9tYnhfc3RhdHMgc3Rh dHM7DQo+ICsgICAgICAgdTMyIHRpbWVvdXQ7DQo+ICsgICAgICAgdTMyIHVzZWNfZGVsYXk7DQo+ ICsgICAgICAgdTE2IHNpemU7DQo+ICsgICAgICAgdTE2IGZ3X3JlcTsNCj4gKyAgICAgICB1MTYg ZndfYWNrOw0KPiArICAgICAgIC8qIGxvY2sgZm9yIG9ubHkgb25lIHVzZSBtYnggKi8NCj4gKyAg ICAgICBzdHJ1Y3QgbXV0ZXggbG9jazsNCj4gKyAgICAgICBib29sIGlycV9lbmFibGVkOw0KPiAg ICAgICAgICAvKiBmdyA8LS0+IHBmIG1ieCAqLw0KPiAgICAgICAgICB1MzIgZndfcGZfc2htX2Jh c2U7DQo+ICAgICAgICAgIHUzMiBwZjJmd19tYm94X2N0cmw7DQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tdWNzZS9ybnBnYmUvcm5wZ2JlX2NoaXAuYyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L211Y3NlL3JucGdiZS9ybnBnYmVfY2hpcC5jDQo+IGluZGV4IDE3OTYyMWVhMDlm My4uZjM4ZGFlZjc1MmEzIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tdWNz ZS9ybnBnYmUvcm5wZ2JlX2NoaXAuYw0KPiArKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tdWNz ZS9ybnBnYmUvcm5wZ2JlX2NoaXAuYw0KPiBAQCAtMSw4ICsxLDExIEBADQo+ICAgLy8gU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjANCj4gICAvKiBDb3B5cmlnaHQoYykgMjAyMCAtIDIw MjUgTXVjc2UgQ29ycG9yYXRpb24uICovDQo+IA0KPiArI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5o Pg0KPiArDQo+ICAgI2luY2x1ZGUgInJucGdiZS5oIg0KPiAgICNpbmNsdWRlICJybnBnYmVfaHcu aCINCj4gKyNpbmNsdWRlICJybnBnYmVfbWJ4LmgiDQo+IA0KPiAgIC8qKg0KPiAgICAqIHJucGdi ZV9pbml0X2NvbW1vbiAtIFNldHVwIGNvbW1vbiBhdHRyaWJ1dGUNCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L211Y3NlL3JucGdiZS9ybnBnYmVfbWJ4LmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9tdWNzZS9ybnBnYmUvcm5wZ2JlX21ieC5jDQo+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMC4uZTAyNTYzYjk5NGMyDQo+IC0tLSAvZGV2L251bGwN Cj4gKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbXVjc2Uvcm5wZ2JlL3JucGdiZV9tYnguYw0K PiBAQCAtMCwwICsxLDM5NSBAQA0KPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0y LjANCj4gKy8qIENvcHlyaWdodChjKSAyMDIyIC0gMjAyNSBNdWNzZSBDb3Jwb3JhdGlvbi4gKi8N Cj4gKw0KPiArI2luY2x1ZGUgPGxpbnV4L3BjaS5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L2Vycm5v Lmg+DQo+ICsjaW5jbHVkZSA8bGludXgvZGVsYXkuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9pb3Bv bGwuaD4NCj4gKw0KPiArI2luY2x1ZGUgInJucGdiZS5oIg0KPiArI2luY2x1ZGUgInJucGdiZV9t YnguaCINCj4gKyNpbmNsdWRlICJybnBnYmVfaHcuaCINCj4gKw0KPiArLyoqDQo+ICsgKiBtYnhf ZGF0YV9yZDMyICAtIFJlYWRzIHJlZyB3aXRoIGJhc2UgbWJ4LT5md19wZl9zaG1fYmFzZQ0KPiAr ICogQG1ieDogcG9pbnRlciB0byB0aGUgTUJYIHN0cnVjdHVyZQ0KPiArICogQHJlZzogcmVnaXN0 ZXIgb2Zmc2V0DQo+ICsgKg0KPiArICogQHJldHVybjogcmVnaXN0ZXIgdmFsdWUNCj4gKyAqKi8N Cj4gK3N0YXRpYyB1MzIgbWJ4X2RhdGFfcmQzMihzdHJ1Y3QgbXVjc2VfbWJ4X2luZm8gKm1ieCwg dTMyIHJlZykNCj4gK3sNCj4gKyAgICAgICBzdHJ1Y3QgbXVjc2VfaHcgKmh3ID0gY29udGFpbmVy X29mKG1ieCwgc3RydWN0IG11Y3NlX2h3LCBtYngpOw0KPiArDQo+ICsgICAgICAgcmV0dXJuIHJl YWRsKGh3LT5od19hZGRyICsgbWJ4LT5md19wZl9zaG1fYmFzZSArIHJlZyk7DQo+ICt9DQo+ICsN Cj4gKy8qKg0KPiArICogbWJ4X2RhdGFfd3IzMiAgLSBXcml0ZXMgdmFsdWUgdG8gcmVnIHdpdGgg YmFzZSBtYngtPmZ3X3BmX3NobV9iYXNlDQo+ICsgKiBAbWJ4OiBwb2ludGVyIHRvIHRoZSBNQlgg c3RydWN0dXJlDQo+ICsgKiBAcmVnOiByZWdpc3RlciBvZmZzZXQNCj4gKyAqIEB2YWx1ZTogdmFs dWUgdG8gYmUgd3JpdHRlbg0KPiArICoNCj4gKyAqKi8NCj4gK3N0YXRpYyB2b2lkIG1ieF9kYXRh X3dyMzIoc3RydWN0IG11Y3NlX21ieF9pbmZvICptYngsIHUzMiByZWcsIHUzMiB2YWx1ZSkNCj4g K3sNCj4gKyAgICAgICBzdHJ1Y3QgbXVjc2VfaHcgKmh3ID0gY29udGFpbmVyX29mKG1ieCwgc3Ry dWN0IG11Y3NlX2h3LCBtYngpOw0KPiArDQo+ICsgICAgICAgd3JpdGVsKHZhbHVlLCBody0+aHdf YWRkciArIG1ieC0+ZndfcGZfc2htX2Jhc2UgKyByZWcpOw0KPiArfQ0KPiArDQo+ICsvKioNCj4g KyAqIG1ieF9jdHJsX3JkMzIgIC0gUmVhZHMgcmVnIHdpdGggYmFzZSBtYngtPmZ3MnBmX21ib3hf dmVjDQo+ICsgKiBAbWJ4OiBwb2ludGVyIHRvIHRoZSBNQlggc3RydWN0dXJlDQo+ICsgKiBAcmVn OiByZWdpc3RlciBvZmZzZXQNCj4gKyAqDQo+ICsgKiBAcmV0dXJuOiByZWdpc3RlciB2YWx1ZQ0K PiArICoqLw0KPiArc3RhdGljIHUzMiBtYnhfY3RybF9yZDMyKHN0cnVjdCBtdWNzZV9tYnhfaW5m byAqbWJ4LCB1MzIgcmVnKQ0KPiArew0KPiArICAgICAgIHN0cnVjdCBtdWNzZV9odyAqaHcgPSBj b250YWluZXJfb2YobWJ4LCBzdHJ1Y3QgbXVjc2VfaHcsIG1ieCk7DQo+ICsNCj4gKyAgICAgICBy ZXR1cm4gcmVhZGwoaHctPmh3X2FkZHIgKyBtYngtPmZ3MnBmX21ib3hfdmVjICsgcmVnKTsNCj4g K30NCj4gKw0KPiArLyoqDQo+ICsgKiBtYnhfY3RybF93cjMyICAtIFdyaXRlcyB2YWx1ZSB0byBy ZWcgd2l0aCBiYXNlIG1ieC0+ZncycGZfbWJveF92ZWMNCj4gKyAqIEBtYng6IHBvaW50ZXIgdG8g dGhlIE1CWCBzdHJ1Y3R1cmUNCj4gKyAqIEByZWc6IHJlZ2lzdGVyIG9mZnNldA0KPiArICogQHZh bHVlOiB2YWx1ZSB0byBiZSB3cml0dGVuDQo+ICsgKg0KPiArICoqLw0KPiArc3RhdGljIHZvaWQg bWJ4X2N0cmxfd3IzMihzdHJ1Y3QgbXVjc2VfbWJ4X2luZm8gKm1ieCwgdTMyIHJlZywgdTMyIHZh bHVlKQ0KPiArew0KPiArICAgICAgIHN0cnVjdCBtdWNzZV9odyAqaHcgPSBjb250YWluZXJfb2Yo bWJ4LCBzdHJ1Y3QgbXVjc2VfaHcsIG1ieCk7DQo+ICsNCj4gKyAgICAgICB3cml0ZWwodmFsdWUs IGh3LT5od19hZGRyICsgbWJ4LT5mdzJwZl9tYm94X3ZlYyArIHJlZyk7DQo+ICt9DQo+ICsNCj4g Ky8qKg0KPiArICogbXVjc2VfbWJ4X2dldF9md3JlcSAtIFJlYWQgZncgcmVxIGZyb20gcmVnDQo+ ICsgKiBAbWJ4OiBwb2ludGVyIHRvIHRoZSBtYnggc3RydWN0dXJlDQo+ICsgKg0KPiArICogQHJl dHVybjogdGhlIHJlcSB2YWx1ZQ0KPiArICoqLw0KPiArc3RhdGljIHUxNiBtdWNzZV9tYnhfZ2V0 X2Z3cmVxKHN0cnVjdCBtdWNzZV9tYnhfaW5mbyAqbWJ4KQ0KPiArew0KPiArICAgICAgIHJldHVy biBtYnhfZGF0YV9yZDMyKG1ieCwgTUJYX0ZXMlBGX0NPVU5URVIpICYgR0VOTUFTS19VMzIoMTUs IDApOw0KPiArfQ0KPiArDQo+ICsvKioNCj4gKyAqIG11Y3NlX21ieF9nZXRfZndhY2sgLSBSZWFk IGZ3IGFjayBmcm9tIHJlZw0KPiArICogQG1ieDogcG9pbnRlciB0byB0aGUgTUJYIHN0cnVjdHVy ZQ0KPiArICoNCj4gKyAqIEByZXR1cm46IHRoZSBhY2sgdmFsdWUNCj4gKyAqKi8NCj4gK3N0YXRp YyB1MTYgbXVjc2VfbWJ4X2dldF9md2FjayhzdHJ1Y3QgbXVjc2VfbWJ4X2luZm8gKm1ieCkNCj4g K3sNCj4gKyAgICAgICByZXR1cm4gKG1ieF9kYXRhX3JkMzIobWJ4LCBNQlhfRlcyUEZfQ09VTlRF UikgPj4gMTYpOw0KPiArfQ0KPiArDQo+ICsvKioNCj4gKyAqIG11Y3NlX21ieF9pbmNfcGZfcmVx IC0gSW5jcmVhc2UgcmVxDQo+ICsgKiBAaHc6IHBvaW50ZXIgdG8gdGhlIEhXIHN0cnVjdHVyZQ0K PiArICoNCj4gKyAqIG11Y3NlX21ieF9pbmNfcGZfcmVxIHJlYWQgcGZfcmVxIGZyb20gaHcsIHRo ZW4gd3JpdGUNCj4gKyAqIG5ldyB2YWx1ZSBiYWNrIGFmdGVyIGluY3JlYXNlDQo+ICsgKiovDQo+ ICtzdGF0aWMgdm9pZCBtdWNzZV9tYnhfaW5jX3BmX3JlcShzdHJ1Y3QgbXVjc2VfaHcgKmh3KQ0K PiArew0KPiArICAgICAgIHN0cnVjdCBtdWNzZV9tYnhfaW5mbyAqbWJ4ID0gJmh3LT5tYng7DQo+ ICsgICAgICAgdTE2IHJlcTsNCj4gKyAgICAgICB1MzIgdjsNCj4gKw0KPiArICAgICAgIHYgPSBt YnhfZGF0YV9yZDMyKG1ieCwgTUJYX1BGMkZXX0NPVU5URVIpOw0KPiArICAgICAgIHJlcSA9ICh2 ICYgR0VOTUFTS19VMzIoMTUsIDApKTsNCj4gKyAgICAgICByZXErKzsNCj4gKyAgICAgICB2ICY9 IEdFTk1BU0tfVTMyKDMxLCAxNik7DQo+ICsgICAgICAgdiB8PSByZXE7DQo+ICsgICAgICAgbWJ4 X2RhdGFfd3IzMihtYngsIE1CWF9QRjJGV19DT1VOVEVSLCB2KTsNCj4gKyAgICAgICBody0+bWJ4 LnN0YXRzLm1zZ3NfdHgrKzsNCj4gK30NCj4gKw0KPiArLyoqDQo+ICsgKiBtdWNzZV9tYnhfaW5j X3BmX2FjayAtIEluY3JlYXNlIGFjaw0KPiArICogQGh3OiBwb2ludGVyIHRvIHRoZSBIVyBzdHJ1 Y3R1cmUNCj4gKyAqDQo+ICsgKiBtdWNzZV9tYnhfaW5jX3BmX2FjayByZWFkIHBmX2FjayBmcm9t IGh3LCB0aGVuIHdyaXRlDQo+ICsgKiBuZXcgdmFsdWUgYmFjayBhZnRlciBpbmNyZWFzZQ0KPiAr ICoqLw0KPiArc3RhdGljIHZvaWQgbXVjc2VfbWJ4X2luY19wZl9hY2soc3RydWN0IG11Y3NlX2h3 ICpodykNCj4gK3sNCj4gKyAgICAgICBzdHJ1Y3QgbXVjc2VfbWJ4X2luZm8gKm1ieCA9ICZody0+ bWJ4Ow0KPiArICAgICAgIHUxNiBhY2s7DQo+ICsgICAgICAgdTMyIHY7DQo+ICsNCj4gKyAgICAg ICB2ID0gbWJ4X2RhdGFfcmQzMihtYngsIE1CWF9QRjJGV19DT1VOVEVSKTsNCj4gKyAgICAgICBh Y2sgPSAodiA+PiAxNikgJiBHRU5NQVNLX1UzMigxNSwgMCk7DQo+ICsgICAgICAgYWNrKys7DQo+ ICsgICAgICAgdiAmPSBHRU5NQVNLX1UzMigxNSwgMCk7DQo+ICsgICAgICAgdiB8PSAoYWNrIDw8 IDE2KTsNCj4gKyAgICAgICBtYnhfZGF0YV93cjMyKG1ieCwgTUJYX1BGMkZXX0NPVU5URVIsIHYp Ow0KPiArICAgICAgIGh3LT5tYnguc3RhdHMubXNnc19yeCsrOw0KPiArfQ0KPiArDQo+ICsvKioN Cj4gKyAqIG11Y3NlX2NoZWNrX2Zvcl9tc2dfcGYgLSBDaGVjayB0byBzZWUgaWYgdGhlIGZ3IGhh cyBzZW50IG1haWwNCj4gKyAqIEBodzogcG9pbnRlciB0byB0aGUgSFcgc3RydWN0dXJlDQo+ICsg Kg0KPiArICogQHJldHVybjogMCBpZiB0aGUgZncgaGFzIHNldCB0aGUgU3RhdHVzIGJpdCBvciBl bHNlDQo+ICsgKiAtRUlPDQo+ICsgKiovDQo+ICtzdGF0aWMgaW50IG11Y3NlX2NoZWNrX2Zvcl9t c2dfcGYoc3RydWN0IG11Y3NlX2h3ICpodykNCj4gK3sNCj4gKyAgICAgICBzdHJ1Y3QgbXVjc2Vf bWJ4X2luZm8gKm1ieCA9ICZody0+bWJ4Ow0KPiArICAgICAgIHUxNiBod19yZXFfY291bnQgPSAw Ow0KSSBkb24ndCB0aGluayB5b3UgbmVlZCB0byBhc3NpZ24gMCBoZXJlIGFzIHRoaXMgdmFyaWFi bGUgaXMgdXBkYXRlZCBpbiANCnRoZSBuZXh0IGxpbmUuDQoNCkJlc3QgcmVnYXJkcywNClBhcnRo aWJhbiBWDQo+ICsNCj4gKyAgICAgICBod19yZXFfY291bnQgPSBtdWNzZV9tYnhfZ2V0X2Z3cmVx KG1ieCk7DQo+ICsgICAgICAgLyogY2hpcCdzIHJlZ2lzdGVyIGlzIHJlc2V0IHRvIDAgd2hlbiBy YyBzZW5kIHJlc2V0DQo+ICsgICAgICAgICogbWJ4IGNvbW1hbmQuIFRoaXMgY2F1c2VzICdod19y ZXFfY291bnQgIT0gaHctPm1ieC5md19yZXEnDQo+ICsgICAgICAgICogYmUgVFJVRSBiZWZvcmUg ZncgcmVhbGx5IHJlcGx5LiBEcml2ZXIgbXVzdCB3YWl0IGZ3IHJlc2V0DQo+ICsgICAgICAgICog ZG9uZSByZXBseSBiZWZvcmUgdXNpbmcgY2hpcCwgd2UgbXVzdCBjaGVjayBuby16ZXJvLg0KPiAr ICAgICAgICAqKi8NCj4gKyAgICAgICBpZiAoaHdfcmVxX2NvdW50ICE9IDAgJiYgaHdfcmVxX2Nv dW50ICE9IGh3LT5tYnguZndfcmVxKSB7DQo+ICsgICAgICAgICAgICAgICBody0+bWJ4LnN0YXRz LnJlcXMrKzsNCj4gKyAgICAgICAgICAgICAgIHJldHVybiAwOw0KPiArICAgICAgIH0NCj4gKw0K PiArICAgICAgIHJldHVybiAtRUlPOw0KPiArfQ0KPiArDQo+ICsvKioNCj4gKyAqIG11Y3NlX3Bv bGxfZm9yX21zZyAtIFdhaXQgZm9yIG1lc3NhZ2Ugbm90aWZpY2F0aW9uDQo+ICsgKiBAaHc6IHBv aW50ZXIgdG8gdGhlIEhXIHN0cnVjdHVyZQ0KPiArICoNCj4gKyAqIEByZXR1cm46IDAgb24gc3Vj Y2VzcywgbmVnYXRpdmUgb24gZmFpbHVyZQ0KPiArICoqLw0KPiArc3RhdGljIGludCBtdWNzZV9w b2xsX2Zvcl9tc2coc3RydWN0IG11Y3NlX2h3ICpodykNCj4gK3sNCj4gKyAgICAgICBzdHJ1Y3Qg bXVjc2VfbWJ4X2luZm8gKm1ieCA9ICZody0+bWJ4Ow0KPiArICAgICAgIGludCBjb3VudGRvd24g PSBtYngtPnRpbWVvdXQ7DQo+ICsgICAgICAgaW50IHZhbDsNCj4gKw0KPiArICAgICAgIHJldHVy biByZWFkX3BvbGxfdGltZW91dChtdWNzZV9jaGVja19mb3JfbXNnX3BmLA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2YWwsIHZhbCA9PSAwLCBtYngtPnVzZWNfZGVsYXksDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50ZG93biAqIG1ieC0+dXNlY19k ZWxheSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIGh3KTsNCj4g K30NCj4gKw0KPiArLyoqDQo+ICsgKiBtdWNzZV9jaGVja19mb3JfYWNrX3BmIC0gQ2hlY2sgdG8g c2VlIGlmIHRoZSBWRiBoYXMgQUNLZWQNCj4gKyAqIEBodzogcG9pbnRlciB0byB0aGUgSFcgc3Ry dWN0dXJlDQo+ICsgKg0KPiArICogQHJldHVybjogMCBpZiB0aGUgZncgaGFzIHNldCB0aGUgU3Rh dHVzIGJpdCBvciBlbHNlDQo+ICsgKiAtRUlPDQo+ICsgKiovDQo+ICtzdGF0aWMgaW50IG11Y3Nl X2NoZWNrX2Zvcl9hY2tfcGYoc3RydWN0IG11Y3NlX2h3ICpodykNCj4gK3sNCj4gKyAgICAgICBz dHJ1Y3QgbXVjc2VfbWJ4X2luZm8gKm1ieCA9ICZody0+bWJ4Ow0KPiArICAgICAgIHUxNiBod19m d19hY2s7DQo+ICsNCj4gKyAgICAgICBod19md19hY2sgPSBtdWNzZV9tYnhfZ2V0X2Z3YWNrKG1i eCk7DQo+ICsgICAgICAgLyogY2hpcCdzIHJlZ2lzdGVyIGlzIHJlc2V0IHRvIDAgd2hlbiByYyBz ZW5kIHJlc2V0DQo+ICsgICAgICAgICogbWJ4IGNvbW1hbmQuIFRoaXMgY2F1c2VzICdod19md19h Y2sgIT0gaHctPm1ieC5md19hY2snDQo+ICsgICAgICAgICogYmUgVFJVRSBiZWZvcmUgZncgcmVh bGx5IHJlcGx5LiBEcml2ZXIgbXVzdCB3YWl0IGZ3IHJlc2V0DQo+ICsgICAgICAgICogZG9uZSBy ZXBseSBiZWZvcmUgdXNpbmcgY2hpcCwgd2UgbXVzdCBjaGVjayBuby16ZXJvLg0KPiArICAgICAg ICAqKi8NCj4gKyAgICAgICBpZiAoaHdfZndfYWNrICE9IDAgJiYgaHdfZndfYWNrICE9IGh3LT5t YnguZndfYWNrKSB7DQo+ICsgICAgICAgICAgICAgICBody0+bWJ4LnN0YXRzLmFja3MrKzsNCj4g KyAgICAgICAgICAgICAgIHJldHVybiAwOw0KPiArICAgICAgIH0NCj4gKw0KPiArICAgICAgIHJl dHVybiAtRUlPOw0KPiArfQ0KPiArDQo+ICsvKioNCj4gKyAqIG11Y3NlX3BvbGxfZm9yX2FjayAt IFdhaXQgZm9yIG1lc3NhZ2UgYWNrbm93bGVkZ21lbnQNCj4gKyAqIEBodzogcG9pbnRlciB0byB0 aGUgSFcgc3RydWN0dXJlDQo+ICsgKg0KPiArICogQHJldHVybjogMCBpZiBpdCBzdWNjZXNzZnVs bHkgcmVjZWl2ZWQgYSBtZXNzYWdlIGFja25vd2xlZGdtZW50DQo+ICsgKiovDQo+ICtzdGF0aWMg aW50IG11Y3NlX3BvbGxfZm9yX2FjayhzdHJ1Y3QgbXVjc2VfaHcgKmh3KQ0KPiArew0KPiArICAg ICAgIHN0cnVjdCBtdWNzZV9tYnhfaW5mbyAqbWJ4ID0gJmh3LT5tYng7DQo+ICsgICAgICAgaW50 IGNvdW50ZG93biA9IG1ieC0+dGltZW91dDsNCj4gKyAgICAgICBpbnQgdmFsOw0KPiArDQo+ICsg ICAgICAgcmV0dXJuIHJlYWRfcG9sbF90aW1lb3V0KG11Y3NlX2NoZWNrX2Zvcl9hY2tfcGYsDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCwgdmFsID09IDAsIG1ieC0+dXNl Y19kZWxheSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRkb3duICog bWJ4LT51c2VjX2RlbGF5LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxz ZSwgaHcpOw0KPiArfQ0KPiArDQo+ICsvKioNCj4gKyAqIG11Y3NlX29idGFpbl9tYnhfbG9ja19w ZiAtIE9idGFpbiBtYWlsYm94IGxvY2sNCj4gKyAqIEBodzogcG9pbnRlciB0byB0aGUgSFcgc3Ry dWN0dXJlDQo+ICsgKg0KPiArICogVGhpcyBmdW5jdGlvbiBtYXliZSB1c2VkIGluIGFuIGlycSBo YW5kbGVyLg0KPiArICoNCj4gKyAqIEByZXR1cm46IDAgaWYgd2Ugb2J0YWluZWQgdGhlIG1haWxi b3ggbG9jaw0KPiArICoqLw0KPiArc3RhdGljIGludCBtdWNzZV9vYnRhaW5fbWJ4X2xvY2tfcGYo c3RydWN0IG11Y3NlX2h3ICpodykNCj4gK3sNCj4gKyAgICAgICBzdHJ1Y3QgbXVjc2VfbWJ4X2lu Zm8gKm1ieCA9ICZody0+bWJ4Ow0KPiArICAgICAgIGludCB0cnlfY250ID0gNTAwMDsNCj4gKyAg ICAgICB1MzIgcmVnOw0KPiArDQo+ICsgICAgICAgcmVnID0gUEYyRldfTUJPWF9DVFJMKG1ieCk7 DQo+ICsgICAgICAgd2hpbGUgKHRyeV9jbnQtLSA+IDApIHsNCj4gKyAgICAgICAgICAgICAgIG1i eF9jdHJsX3dyMzIobWJ4LCByZWcsIE1CT1hfUEZfSE9MRCk7DQo+ICsgICAgICAgICAgICAgICAv KiBmb3JjZSB3cml0ZSBiYWNrIGJlZm9yZSBjaGVjayAqLw0KPiArICAgICAgICAgICAgICAgd21i KCk7DQo+ICsgICAgICAgICAgICAgICBpZiAobWJ4X2N0cmxfcmQzMihtYngsIHJlZykgJiBNQk9Y X1BGX0hPTEQpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOw0KPiArICAgICAg ICAgICAgICAgdWRlbGF5KDEwMCk7DQo+ICsgICAgICAgfQ0KPiArICAgICAgIHJldHVybiAtRUlP Ow0KPiArfQ0KPiArDQo+ICsvKioNCj4gKyAqIG11Y3NlX3JlYWRfbWJ4X3BmIC0gUmVhZCBhIG1l c3NhZ2UgZnJvbSB0aGUgbWFpbGJveA0KPiArICogQGh3OiBwb2ludGVyIHRvIHRoZSBIVyBzdHJ1 Y3R1cmUNCj4gKyAqIEBtc2c6IHRoZSBtZXNzYWdlIGJ1ZmZlcg0KPiArICogQHNpemU6IGxlbmd0 aCBvZiBidWZmZXINCj4gKyAqDQo+ICsgKiBUaGlzIGZ1bmN0aW9uIGNvcGllcyBhIG1lc3NhZ2Ug ZnJvbSB0aGUgbWFpbGJveCBidWZmZXIgdG8gdGhlIGNhbGxlcidzDQo+ICsgKiBtZW1vcnkgYnVm ZmVyLiBUaGUgcHJlc3VtcHRpb24gaXMgdGhhdCB0aGUgY2FsbGVyIGtub3dzIHRoYXQgdGhlcmUg d2FzDQo+ICsgKiBhIG1lc3NhZ2UgZHVlIHRvIGEgZncgcmVxdWVzdCBzbyBubyBwb2xsaW5nIGZv ciBtZXNzYWdlIGlzIG5lZWRlZC4NCj4gKyAqDQo+ICsgKiBAcmV0dXJuOiAwIG9uIHN1Y2Nlc3Ms IG5lZ2F0aXZlIG9uIGZhaWx1cmUNCj4gKyAqKi8NCj4gK3N0YXRpYyBpbnQgbXVjc2VfcmVhZF9t YnhfcGYoc3RydWN0IG11Y3NlX2h3ICpodywgdTMyICptc2csIHUxNiBzaXplKQ0KPiArew0KPiAr ICAgICAgIHN0cnVjdCBtdWNzZV9tYnhfaW5mbyAqbWJ4ID0gJmh3LT5tYng7DQo+ICsgICAgICAg aW50IHNpemVfaW53b3JkcyA9IHNpemUgLyA0Ow0KPiArICAgICAgIHUzMiBjdHJsX3JlZzsNCj4g KyAgICAgICBpbnQgcmV0Ow0KPiArICAgICAgIGludCBpOw0KPiArDQo+ICsgICAgICAgY3RybF9y ZWcgPSBQRjJGV19NQk9YX0NUUkwobWJ4KTsNCj4gKw0KPiArICAgICAgIHJldCA9IG11Y3NlX29i dGFpbl9tYnhfbG9ja19wZihodyk7DQo+ICsgICAgICAgaWYgKHJldCkNCj4gKyAgICAgICAgICAg ICAgIHJldHVybiByZXQ7DQo+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IHNpemVfaW53b3Jkczsg aSsrKQ0KPiArICAgICAgICAgICAgICAgbXNnW2ldID0gbWJ4X2RhdGFfcmQzMihtYngsIE1CWF9G V19QRl9TSE1fREFUQSArIDQgKiBpKTsNCj4gKyAgICAgICAvKiBIdyBuZWVkIHdyaXRlIGRhdGFf cmVnIGF0IGxhc3QgKi8NCj4gKyAgICAgICBtYnhfZGF0YV93cjMyKG1ieCwgTUJYX0ZXX1BGX1NI TV9EQVRBLCAwKTsNCj4gKyAgICAgICBody0+bWJ4LmZ3X3JlcSA9IG11Y3NlX21ieF9nZXRfZndy ZXEobWJ4KTsNCj4gKyAgICAgICBtdWNzZV9tYnhfaW5jX3BmX2Fjayhodyk7DQo+ICsgICAgICAg bWJ4X2N0cmxfd3IzMihtYngsIGN0cmxfcmVnLCAwKTsNCj4gKw0KPiArICAgICAgIHJldHVybiAw Ow0KPiArfQ0KPiArDQo+ICsvKioNCj4gKyAqIG11Y3NlX3JlYWRfcG9zdGVkX21ieCAtIFdhaXQg Zm9yIG1lc3NhZ2Ugbm90aWZpY2F0aW9uIGFuZCByZWNlaXZlIG1lc3NhZ2UNCj4gKyAqIEBodzog cG9pbnRlciB0byB0aGUgSFcgc3RydWN0dXJlDQo+ICsgKiBAbXNnOiB0aGUgbWVzc2FnZSBidWZm ZXINCj4gKyAqIEBzaXplOiBsZW5ndGggb2YgYnVmZmVyDQo+ICsgKg0KPiArICogQHJldHVybjog MCBpZiBpdCBzdWNjZXNzZnVsbHkgcmVjZWl2ZWQgYSBtZXNzYWdlIG5vdGlmaWNhdGlvbiBhbmQN Cj4gKyAqIGNvcGllZCBpdCBpbnRvIHRoZSByZWNlaXZlIGJ1ZmZlci4NCj4gKyAqKi8NCj4gK2lu dCBtdWNzZV9yZWFkX3Bvc3RlZF9tYngoc3RydWN0IG11Y3NlX2h3ICpodywgdTMyICptc2csIHUx NiBzaXplKQ0KPiArew0KPiArICAgICAgIGludCByZXQ7DQo+ICsNCj4gKyAgICAgICByZXQgPSBt dWNzZV9wb2xsX2Zvcl9tc2coaHcpOw0KPiArICAgICAgIGlmIChyZXQpDQo+ICsgICAgICAgICAg ICAgICByZXR1cm4gcmV0Ow0KPiArDQo+ICsgICAgICAgcmV0dXJuIG11Y3NlX3JlYWRfbWJ4X3Bm KGh3LCBtc2csIHNpemUpOw0KPiArfQ0KPiArDQo+ICsvKioNCj4gKyAqIG11Y3NlX21ieF9yZXNl dCAtIFJlc2V0IG1ieCBpbmZvLCBzeW5jIGluZm8gZnJvbSByZWdzDQo+ICsgKiBAaHc6IHBvaW50 ZXIgdG8gdGhlIEhXIHN0cnVjdHVyZQ0KPiArICoNCj4gKyAqIFRoaXMgZnVuY3Rpb24gcmVzZXQg YWxsIG1ieCB2YXJpYWJsZXMgdG8gZGVmYXVsdC4NCj4gKyAqKi8NCj4gK3N0YXRpYyB2b2lkIG11 Y3NlX21ieF9yZXNldChzdHJ1Y3QgbXVjc2VfaHcgKmh3KQ0KPiArew0KPiArICAgICAgIHN0cnVj dCBtdWNzZV9tYnhfaW5mbyAqbWJ4ID0gJmh3LT5tYng7DQo+ICsgICAgICAgdTMyIHY7DQo+ICsN Cj4gKyAgICAgICB2ID0gbWJ4X2RhdGFfcmQzMihtYngsIE1CWF9GVzJQRl9DT1VOVEVSKTsNCj4g KyAgICAgICBody0+bWJ4LmZ3X3JlcSA9IHYgJiBHRU5NQVNLX1UzMigxNSwgMCk7DQo+ICsgICAg ICAgaHctPm1ieC5md19hY2sgPSAodiA+PiAxNikgJiBHRU5NQVNLX1UzMigxNSwgMCk7DQo+ICsg ICAgICAgbWJ4X2N0cmxfd3IzMihtYngsIFBGMkZXX01CT1hfQ1RSTChtYngpLCAwKTsNCj4gKyAg ICAgICBtYnhfY3RybF93cjMyKG1ieCwgRldfUEZfTUJPWF9NQVNLKG1ieCksIEdFTk1BU0tfVTMy KDMxLCAxNikpOw0KPiArfQ0KPiArDQo+ICsvKioNCj4gKyAqIG11Y3NlX2luaXRfbWJ4X3BhcmFt c19wZiAtIFNldCBpbml0aWFsIHZhbHVlcyBmb3IgcGYgbWFpbGJveA0KPiArICogQGh3OiBwb2lu dGVyIHRvIHRoZSBIVyBzdHJ1Y3R1cmUNCj4gKyAqDQo+ICsgKiBJbml0aWFsaXplcyB0aGUgaHct Pm1ieCBzdHJ1Y3QgdG8gY29ycmVjdCB2YWx1ZXMgZm9yIHBmIG1haWxib3gNCj4gKyAqLw0KPiAr dm9pZCBtdWNzZV9pbml0X21ieF9wYXJhbXNfcGYoc3RydWN0IG11Y3NlX2h3ICpodykNCj4gK3sN Cj4gKyAgICAgICBzdHJ1Y3QgbXVjc2VfbWJ4X2luZm8gKm1ieCA9ICZody0+bWJ4Ow0KPiArDQo+ ICsgICAgICAgbWJ4LT51c2VjX2RlbGF5ID0gMTAwOw0KPiArICAgICAgIG1ieC0+dGltZW91dCA9 ICg0ICogVVNFQ19QRVJfU0VDKSAvIG1ieC0+dXNlY19kZWxheTsNCj4gKyAgICAgICBtYngtPnN0 YXRzLm1zZ3NfdHggPSAwOw0KPiArICAgICAgIG1ieC0+c3RhdHMubXNnc19yeCA9IDA7DQo+ICsg ICAgICAgbWJ4LT5zdGF0cy5yZXFzID0gMDsNCj4gKyAgICAgICBtYngtPnN0YXRzLmFja3MgPSAw Ow0KPiArICAgICAgIG1ieC0+c2l6ZSA9IE1VQ1NFX01BSUxCT1hfQllURVM7DQo+ICsgICAgICAg bXV0ZXhfaW5pdCgmbWJ4LT5sb2NrKTsNCj4gKyAgICAgICBtdWNzZV9tYnhfcmVzZXQoaHcpOw0K PiArfQ0KPiArDQo+ICsvKioNCj4gKyAqIG11Y3NlX3dyaXRlX21ieF9wZiAtIFBsYWNlIGEgbWVz c2FnZSBpbiB0aGUgbWFpbGJveA0KPiArICogQGh3OiBwb2ludGVyIHRvIHRoZSBIVyBzdHJ1Y3R1 cmUNCj4gKyAqIEBtc2c6IHRoZSBtZXNzYWdlIGJ1ZmZlcg0KPiArICogQHNpemU6IGxlbmd0aCBv ZiBidWZmZXINCj4gKyAqDQo+ICsgKiBUaGlzIGZ1bmN0aW9uIG1heWJlIHVzZWQgaW4gYW4gaXJx IGhhbmRsZXIuDQo+ICsgKg0KPiArICogQHJldHVybjogMCBpZiBpdCBzdWNjZXNzZnVsbHkgY29w aWVkIG1lc3NhZ2UgaW50byB0aGUgYnVmZmVyDQo+ICsgKiovDQo+ICtpbnQgbXVjc2Vfd3JpdGVf bWJ4X3BmKHN0cnVjdCBtdWNzZV9odyAqaHcsIHUzMiAqbXNnLCB1MTYgc2l6ZSkNCj4gK3sNCj4g KyAgICAgICBzdHJ1Y3QgbXVjc2VfbWJ4X2luZm8gKm1ieCA9ICZody0+bWJ4Ow0KPiArICAgICAg IGludCBzaXplX2lud29yZHMgPSBzaXplIC8gNDsNCj4gKyAgICAgICB1MzIgY3RybF9yZWc7DQo+ ICsgICAgICAgaW50IHJldDsNCj4gKyAgICAgICBpbnQgaTsNCj4gKw0KPiArICAgICAgIGN0cmxf cmVnID0gUEYyRldfTUJPWF9DVFJMKG1ieCk7DQo+ICsgICAgICAgcmV0ID0gbXVjc2Vfb2J0YWlu X21ieF9sb2NrX3BmKGh3KTsNCj4gKyAgICAgICBpZiAocmV0KQ0KPiArICAgICAgICAgICAgICAg cmV0dXJuIHJldDsNCj4gKw0KPiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBzaXplX2lud29yZHM7 IGkrKykNCj4gKyAgICAgICAgICAgICAgIG1ieF9kYXRhX3dyMzIobWJ4LCBNQlhfRldfUEZfU0hN X0RBVEEgKyBpICogNCwgbXNnW2ldKTsNCj4gKw0KPiArICAgICAgIC8qIGZsdXNoIG1zZyBhbmQg YWNrcyBhcyB3ZSBhcmUgb3ZlcndyaXRpbmcgdGhlIG1lc3NhZ2UgYnVmZmVyICovDQo+ICsgICAg ICAgaHctPm1ieC5md19hY2sgPSBtdWNzZV9tYnhfZ2V0X2Z3YWNrKG1ieCk7DQo+ICsgICAgICAg bXVjc2VfbWJ4X2luY19wZl9yZXEoaHcpOw0KPiArICAgICAgIG1ieF9jdHJsX3dyMzIobWJ4LCBj dHJsX3JlZywgTUJPWF9DVFJMX1JFUSk7DQo+ICsNCj4gKyAgICAgICByZXR1cm4gMDsNCj4gK30N Cj4gKw0KPiArLyoqDQo+ICsgKiBtdWNzZV93cml0ZV9wb3N0ZWRfbWJ4IC0gV3JpdGUgYSBtZXNz YWdlIHRvIHRoZSBtYWlsYm94LCB3YWl0IGZvciBhY2sNCj4gKyAqIEBodzogcG9pbnRlciB0byB0 aGUgSFcgc3RydWN0dXJlDQo+ICsgKiBAbXNnOiB0aGUgbWVzc2FnZSBidWZmZXINCj4gKyAqIEBz aXplOiBsZW5ndGggb2YgYnVmZmVyDQo+ICsgKg0KPiArICogQHJldHVybjogMCBpZiBpdCBzdWNj ZXNzZnVsbHkgY29waWVkIG1lc3NhZ2UgaW50byB0aGUgYnVmZmVyIGFuZA0KPiArICogcmVjZWl2 ZWQgYW4gYWNrIHRvIHRoYXQgbWVzc2FnZSB3aXRoaW4gZGVsYXkgKiB0aW1lb3V0IHBlcmlvZA0K PiArICoqLw0KPiAraW50IG11Y3NlX3dyaXRlX3Bvc3RlZF9tYngoc3RydWN0IG11Y3NlX2h3ICpo dywgdTMyICptc2csIHUxNiBzaXplKQ0KPiArew0KPiArICAgICAgIGludCByZXQ7DQo+ICsNCj4g KyAgICAgICByZXQgPSBtdWNzZV93cml0ZV9tYnhfcGYoaHcsIG1zZywgc2l6ZSk7DQo+ICsgICAg ICAgaWYgKHJldCkNCj4gKyAgICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ICsgICAgICAgcmV0 dXJuIG11Y3NlX3BvbGxfZm9yX2Fjayhodyk7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9tdWNzZS9ybnBnYmUvcm5wZ2JlX21ieC5oIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbXVjc2Uvcm5wZ2JlL3JucGdiZV9tYnguaA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0K PiBpbmRleCAwMDAwMDAwMDAwMDAuLjExMGMxZWUwMjViYQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L211Y3NlL3JucGdiZS9ybnBnYmVfbWJ4LmgNCj4gQEAg LTAsMCArMSwyNSBAQA0KPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgKi8N Cj4gKy8qIENvcHlyaWdodChjKSAyMDIwIC0gMjAyNSBNdWNzZSBDb3Jwb3JhdGlvbi4gKi8NCj4g Kw0KPiArI2lmbmRlZiBfUk5QR0JFX01CWF9IDQo+ICsjZGVmaW5lIF9STlBHQkVfTUJYX0gNCj4g Kw0KPiArI2luY2x1ZGUgInJucGdiZS5oIg0KPiArDQo+ICsjZGVmaW5lIE1VQ1NFX01BSUxCT1hf QllURVMgNTYNCj4gKyNkZWZpbmUgTUJYX0ZXMlBGX0NPVU5URVIgMA0KPiArI2RlZmluZSBNQlhf UEYyRldfQ09VTlRFUiA0DQo+ICsjZGVmaW5lIE1CWF9GV19QRl9TSE1fREFUQSA4DQo+ICsjZGVm aW5lIEZXMlBGX01CT1hfVkVDIDANCj4gKyNkZWZpbmUgUEYyRldfTUJPWF9DVFJMKG1ieCkgKCht YngpLT5wZjJmd19tYm94X2N0cmwpDQo+ICsjZGVmaW5lIEZXX1BGX01CT1hfTUFTSyhtYngpICgo bWJ4KS0+ZndfcGZfbWJveF9tYXNrKQ0KPiArI2RlZmluZSBNQk9YX0NUUkxfUkVRIEJJVCgwKQ0K PiArI2RlZmluZSBNQk9YX1BGX0hPTEQgQklUKDMpDQo+ICsjZGVmaW5lIE1CT1hfSVJRX0VOIDAN Cj4gKyNkZWZpbmUgTUJPWF9JUlFfRElTQUJMRSAxDQo+ICsNCj4gK2ludCBtdWNzZV93cml0ZV9t YnhfcGYoc3RydWN0IG11Y3NlX2h3ICpodywgdTMyICptc2csIHUxNiBzaXplKTsNCj4gK2ludCBt dWNzZV93cml0ZV9wb3N0ZWRfbWJ4KHN0cnVjdCBtdWNzZV9odyAqaHcsIHUzMiAqbXNnLCB1MTYg c2l6ZSk7DQo+ICt2b2lkIG11Y3NlX2luaXRfbWJ4X3BhcmFtc19wZihzdHJ1Y3QgbXVjc2VfaHcg Kmh3KTsNCj4gK2ludCBtdWNzZV9yZWFkX3Bvc3RlZF9tYngoc3RydWN0IG11Y3NlX2h3ICpodywg dTMyICptc2csIHUxNiBzaXplKTsNCj4gKyNlbmRpZiAvKiBfUk5QR0JFX01CWF9IICovDQo+IC0t DQo+IDIuMjUuMQ0KPiANCg0K