From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id BB2B642B34; Thu, 18 May 2023 20:18:12 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5563141141; Thu, 18 May 2023 20:18:12 +0200 (CEST) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2066.outbound.protection.outlook.com [40.107.96.66]) by mails.dpdk.org (Postfix) with ESMTP id 7569840A8A for ; Thu, 18 May 2023 20:18:11 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UUPxHt+WhPBeB14JaN7twHZVz9VvWjl+rQanGcmXRdWiu7ZuIt4EhYeSUTR8+4Cw7mnBRj2XX85lnMOTXvwqJEQzSj2lKt5ah/IgoZ17vMgDrajldhCub3CfuOPnXvXIP1U34LAsKd+tlH6zPmCRmW2ZkkA2P82erpNpbBEzzjV4pc3sGzmD0Nfq3mZAJ7+9ugqNb2iTd4JLdId/1xgLHN+pCivIWml2STtpNuM3QMJRv7DBMpyV0PsE8GEO4ePmFgFfLwovJEFO1JJMhfOsIPoJUutmuw/JxSU/NZ2o/0FmyurQboYC3Kb23YOcECIntH1cp++itUYPZpyp8GKwBw== 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=B7SlK9Hvau9nwYzpMpyb3Fgu4qpYIHCnkUxRsV29zdo=; b=fC6Q2rxvkAaT9+9nlCHkze2WLJvd/YSHWsK40Ahe3+va4hbrvOqPYgMc26OSx6i5/YCRXrV+Pz20o2vjFNi+nPgqFH9T6fcK8Rs7JuhU28o2KE0AEgMU8tAwdJpRkRsHK0Zd8QqkmzDJlNU1BXwRymuypKxKxCMshzFgNJUIEm55odUJSdCw67PmAzvjpdj49caztrYPqLJWUaR8LlDXiT8oRIdCiOThHo9BVX4TLQbMgPYQZmc0RUzEx/aidSORA1X+83IlgbfhsfwdHYG74A57Dm9BGkHJ3JusrpDVeh0AZC/so8V7E90CaDKo4VA+o9CaQ2aaEToHvxWnvj/xXg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=B7SlK9Hvau9nwYzpMpyb3Fgu4qpYIHCnkUxRsV29zdo=; b=dH8vYGZil4aUXdajF6SIzUX9fTBrTLQlDVEVIAnlpmjq9tUa/gU2h8F/Ax0ca7bKXWW8WK4fvJcTARBMqYIveH6kHfaWJQnWLHUBLTr95aSS2FF6/R+uQLVYPIB9OXqkd9ND7Dbm9N89UjsQTEn/5I5xio9iYpXbWI1QpFYq5j8mlEFkyTwQ1t2sI1+BoIcHVC/fSnnvw711pB+tR9xiBNe5wJbZaDLWwj1CDE3q3UJLQVdrp+9GW5wnjhXBJW2YEQxZbgRGZg92M6+3DLk82T4Lv2ABiogvTodHzuqytvrcLDJxnHUkiVdwUPPMVu5WQbHd7g8uh3wy972eiurH7g== Received: from IA1PR12MB6332.namprd12.prod.outlook.com (2603:10b6:208:3e2::13) by PH8PR12MB7352.namprd12.prod.outlook.com (2603:10b6:510:214::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6387.30; Thu, 18 May 2023 18:18:08 +0000 Received: from IA1PR12MB6332.namprd12.prod.outlook.com ([fe80::47c3:508f:d2cd:f29d]) by IA1PR12MB6332.namprd12.prod.outlook.com ([fe80::47c3:508f:d2cd:f29d%6]) with mapi id 15.20.6387.033; Thu, 18 May 2023 18:18:08 +0000 From: Gregory Etelson To: Ori Kam , "dev@dpdk.org" CC: Maayan Kashani , Raslan Darawsheh , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , Ferruh Yigit , Andrew Rybchenko Subject: RE: [RFC PATCH v3] ethdev: add indirect list flow action Thread-Topic: [RFC PATCH v3] ethdev: add indirect list flow action Thread-Index: AQHZgMl1EfKp6mcweEG7xbvMZel7Fa9ev6wAgAGnz5A= Date: Thu, 18 May 2023 18:18:07 +0000 Message-ID: References: <20230418172144.24365-1-getelson@nvidia.com> <20230507095046.5456-1-getelson@nvidia.com> In-Reply-To: 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=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: IA1PR12MB6332:EE_|PH8PR12MB7352:EE_ x-ms-office365-filtering-correlation-id: 541011de-d3d4-407c-1268-08db57cc3b2e x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 6HQy+gxasKkZLnd/BaUsnmQAP8+m3SRcF8dHRBpNvSLBSX7FILsv7lXyD7lr3DjJ4d/HEiBjaPsdF+jVtG5YB4mnP+DQUgXV8BjL+LDaTP7tsv6bz4MfwQCVK53sWerL33DtFEHYRjP05Xz5kYDFylcMqF0p7c1uKa+NDyrTACohXBdHrkMilg+WEIgXTHbQ7knmWbgAg7KSSUY/tjHuNqXrgDbxjSF6tZejTirsWY3hYueBzEMT9gdFmNOAohXT6utd4V687wWePq1cRLLU5vbxQ1wWKEeVdAkt+NkUvkh+JSposVjgmo3kol2Hwcy3QCuauae5CVi5s0EWr48SUl99CjmFg1yQLwH/Q3WQpgkIUEw4GnB4F5PAr8ZKDS5M2N6CWS2tiyAwDQqdo5OFF3ecfbGr3YOx6WAKreyTYX74yaOJGGhAUNupJIZlhl/Yo/NwBPGMVleh6Vv/1+W2B7tYigJzMwZsTyjlxTBG54NnmJ4AnJVURFfel64TI4wN6xwsJEzcaEEocM7HkBQ4biVRisrXL+ndRFDkIqeXhHQsSrWOUSY5VkcxhXjf7MjTOuigxktco/1zcb6Sb3vNKKGLv+UndNTPlJniCGAAOsiMRm5LeCh32AIN5g0q40g/ x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:IA1PR12MB6332.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(376002)(366004)(396003)(346002)(39860400002)(136003)(451199021)(6506007)(83380400001)(26005)(38100700002)(41300700001)(9686003)(7696005)(186003)(71200400001)(110136005)(478600001)(54906003)(4326008)(64756008)(66946007)(66476007)(66446008)(316002)(55016003)(66556008)(122000001)(76116006)(8936002)(8676002)(5660300002)(86362001)(2906002)(38070700005)(33656002)(52536014)(30864003)(579004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cTZlT0ZiMEZ5eG0wNUw0c2VLM1E1cWRkRk9IWkIwUkdkTWhoUThIcUhXSExv?= =?utf-8?B?ZllmVkozT1o3WmFjU2NVeUhLRXZqRkJCbXVrV1plem92V3ZOSkxINCtOd0Y4?= =?utf-8?B?QUtxRTdoMG55TnFCYjFXYVQyb2UrSXZQTE9TRUZiRWtRT2NkbnhtbjRsYmN0?= =?utf-8?B?Z1I0dG9tY1JLWVpXcWxrd01MYktNNmxDYnQ4dVpxbVd3UTBXbk5ROVdXeDRF?= =?utf-8?B?OFlIR1hVWTZPUjRFL0wzOFZNTWJMYWl3eVFOZVJZVm9XbUpzSVFnLzNQQ1d4?= =?utf-8?B?SjUwWEQ2NVZ1cHEwSWdBbFhZSGdpdDlrNmtHcU9TVHBraHd5Z2k5MlFwMlYx?= =?utf-8?B?NnFMNCtNbmtDMTE2SU1EdHNRdW5JWmZoNjU5ekdmVlI0RmhDOUZNZjVXSjhK?= =?utf-8?B?TlRIUFA5MitSTURUTHZ4dGJ4SUU0bGdmRmdST1ZmZXc3NTNQeWpjd3lJNzFF?= =?utf-8?B?U1p0cHhpaUNKN1ZONE1SakcvT2FrTlM3ZFNZK3hMaUdJc3c2V1NFekFrMURr?= =?utf-8?B?SlZRUksrK2xYc28wUG5tOCs1czdFbTVsNTVTM3dlNlB5TnVjMW1kajV1U0h6?= =?utf-8?B?YzMvY3lDWUpZRGdrQ3pkc05JNGk4QytNSU5BL0lPVnJLRmppTGt6N25paU5I?= =?utf-8?B?azZQQjJRUzJlMG9QU1NvV1EwM25WVkk0clZrQ3g0ek16STlXMHpwZDNjVEpM?= =?utf-8?B?VU9HMTlYcGt5SU1zanBNUjk3M3R1U3RzSWxHMkJQNlFBOXB3U2VsYnVzL1Ir?= =?utf-8?B?MlZURGdxR2JsRnFGT3IyZFo4Uy90cGY5V1dMNnhzNVdzWjN2bS8vOEhzNXZX?= =?utf-8?B?UUZ6ZTlnUFdMbDN1bzhaSTFFRWFqWFZORHFBVUdlNENtVWNwUXVoem1UVFZx?= =?utf-8?B?NXVOSUIyMGQ5ME0xMW9NcmhycEwwRWsxQSs2ekxkMVdEK3cwa1grRWp0ajBD?= =?utf-8?B?MEhJYWkzTGQ3U0o1SlhEbUxTQ3hmWnNWWDFRS0N6eW1OY28rM0pkZXllOGxR?= =?utf-8?B?RHRLYmdiTmJIU2FZeG1EY3NNb1Y2UWZ6amRRTVVNZXZjZUd0WCsrWHROZVpL?= =?utf-8?B?UnMwbnVSMmM2b1dkbEFaTEJNaHpIOGxQTjlpWWVQYlpCSytqZVV2bEZ6emxz?= =?utf-8?B?ai9rRnRiUm5kVTlUTG1Uc244dERQK0t4L0hKdUl0VnNld2lIbStVWHNhcDV1?= =?utf-8?B?TFl3R2V5ek9LREFGeHF2L0JVSkNjQ3JydWJnVk4zODdYbDRQVlJDelhNWEh1?= =?utf-8?B?M29zTzh6VGVsbm5NWnRnSVZaRHRXNGlaZThsQVpJUFI0SDJ4THByNGpTVnNJ?= =?utf-8?B?OUhzbzBJSWY3Vjg5Nk03cXhtU3BleXRjRWdkV3N1U3cxbjB5NWhybzY3ZXFK?= =?utf-8?B?RHJOV09BK1RnS29EY0NsNCtqQnB6Um9qMDlpaE85MUF0L05rQnNUcGM5allj?= =?utf-8?B?MkJLTkhTcUIvTndXa2pPUE41cjdocDFRSzEyYXhXRWNoVTljZnRnVk4xUGZQ?= =?utf-8?B?dXAxSGxvRnFFMWcyR09KWkk1WFVsbkNQTU9BS0NLZDlYUFgrbnpXcGdjT3Fj?= =?utf-8?B?R1M2T0ZERmd6dU1OWEVyc1M2R2toVCszb201ZWVQTXNXcW5kTWkrdHc0d1Vl?= =?utf-8?B?cDBEUFd5TzBTWFRPUDFnSnFmOWgrVTlwSDNHUER5RzhBTW9QelVQdHpIdzVs?= =?utf-8?B?TmxuUldKSnFCZ0VhdEhRZUVVYkNld1Z4ZkZnSUQvRXZFcUE3YXA4N1VlSE91?= =?utf-8?B?RUFISmh6RzIxSTVDU2FUcldBdVdUU2Z6dlpJOWhPNEw0bisyWlpwZFRXYTVF?= =?utf-8?B?SzhVMmRMRjhIb3ZuOHp6MThkL2ZxS3FaOEw0NEw0Tml4aVZqQVdTOTdWV1Bn?= =?utf-8?B?SGpYRVdtTjhzaFIzdXFtRXVnYWptcmN3bWhZQzMrd2o4R214UVNFbDJpLzVZ?= =?utf-8?B?Y1o4TU5CaTdRRnZxWk5pZ3Q0YnptRE44RUFzVVR0Nkg0U3d4enBtczJEK3Vu?= =?utf-8?B?eWd0RG1qdkhRaVpzSWRrcm1SbGFEMERNWVkrREZpOTIvMHZWQU1Pbm4vZXBn?= =?utf-8?B?bGZoSjdEcnNUcUtPR1R0MW80NGRLZ1V3SlY1MGh3N0c2SG5hRm5Dd202MGJE?= =?utf-8?Q?wIkIkF9tjSr8QO8X4VEppuMVK?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: IA1PR12MB6332.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 541011de-d3d4-407c-1268-08db57cc3b2e X-MS-Exchange-CrossTenant-originalarrivaltime: 18 May 2023 18:18:08.0540 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: UTHy3psX06fbdijdymfymsE5yx6rRK8msdlYiC2QRstdx1lysBvT10l6dkU7YYpkUiw20ICKhZHg2/5RnL74LA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7352 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org SGVsbG8gT3JpLA0KDQo+IEZpcnN0IEknbSBhc3N1bWluZyB0aGlzIGlzIGp1c3QgUkZDLCBzaW5j ZSB0aGVyZSBpcyBubyBjb2RlIGltcGxlbWVudGF0aW9uLg0KPg0KDQpJJ2xsIGFkZCBjb2RlIGlt cGxlbWVudGF0aW9uIGluIHY0Lg0KIA0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ ID4gRnJvbTogR3JlZ29yeSBFdGVsc29uIDxnZXRlbHNvbkBudmlkaWEuY29tPg0KPiA+IFNlbnQ6 IFN1bmRheSwgTWF5IDcsIDIwMjMgMTI6NTEgUE0NCj4gPg0KPiA+IEluZGlyZWN0IEFQSSBjcmVh dGVzIGEgc2hhcmVkIGZsb3cgYWN0aW9uIHdpdGggdW5pcXVlIGFjdGlvbiBoYW5kbGUuDQo+ID4g RmxvdyBydWxlcyBjYW4gYWNjZXNzIHRoZSBzaGFyZWQgZmxvdyBhY3Rpb24gYW5kIHJlc291cmNl cyByZWxhdGVkIHRvDQo+ID4gdGhhdCBhY3Rpb24gdGhyb3VnaCB0aGUgaW5kaXJlY3QgYWN0aW9u IGhhbmRsZS4NCj4gPiBJbiBhZGRpdGlvbiwgdGhlIEFQSSBhbGxvd3MgdG8gdXBkYXRlIGV4aXN0 aW5nIHNoYXJlZCBmbG93IGFjdGlvbg0KPiA+IGNvbmZpZ3VyYXRpb24uICBBZnRlciB0aGUgdXBk YXRlIGNvbXBsZXRlcywgbmV3IGFjdGlvbiBjb25maWd1cmF0aW9uDQo+ID4gaXMgYXZhaWxhYmxl IHRvIGFsbCBmbG93cyB0aGF0IHJlZmVyZW5jZSB0aGF0IHNoYXJlZCBhY3Rpb24uDQo+ID4NCj4g PiBJbmRpcmVjdCBhY3Rpb25zIGxpc3QgZXhwYW5kcyB0aGUgaW5kaXJlY3QgYWN0aW9uIEFQSToN Cj4gPiDigKIgSW5kaXJlY3QgYWN0aW9uIGxpc3QgY3JlYXRlcyBhIGhhbmRsZSBmb3Igb25lIG9y IHNldmVyYWwNCj4gPiAgIGZsb3cgYWN0aW9ucywgd2hpbGUgbGVnYWN5IGluZGlyZWN0IGFjdGlv biBoYW5kbGUgcmVmZXJlbmNlcw0KPiA+ICAgc2luZ2xlIGFjdGlvbiBvbmx5Lg0KPiA+ICAgSW5w dXQgZmxvdyBhY3Rpb25zIGFycmFuZ2VkIGluIEVORCB0ZXJtaW5hdGVkIGxpc3QuDQo+ID4g4oCi IEZsb3cgcnVsZSBjYW4gcHJvdmlkZSBydWxlIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gcGFyYW1l dGVycyB0bw0KPiA+ICAgZXhpc3Rpbmcgc2hhcmVkIGhhbmRsZS4NCj4gPiAgIFVwZGF0ZXMgb2Yg ZmxvdyBydWxlIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gd2lsbCBub3QgY2hhbmdlIHRoZSBiYXNl DQo+ID4gICBhY3Rpb24gY29uZmlndXJhdGlvbi4NCj4gPiAgIEJhc2UgYWN0aW9uIGNvbmZpZ3Vy YXRpb24gd2FzIHNldCBkdXJpbmcgdGhlIGFjdGlvbiBjcmVhdGlvbi4NCj4gPg0KPiA+IEluZGly ZWN0IGFjdGlvbiBsaXN0IGhhbmRsZSBkZWZpbmVzIDIgdHlwZXMgb2YgcmVzb3VyY2VzOg0KPiA+ IOKAoiBNdXRhYmxlIGhhbmRsZSByZXNvdXJjZSBjYW4gYmUgY2hhbmdlZCBkdXJpbmcgaGFuZGxl IGxpZmVzcGFuLg0KPiA+IOKAoiBJbW11dGFibGUgaGFuZGxlIHJlc291cmNlIHZhbHVlIGlzIHNl dCBkdXJpbmcgaGFuZGxlIGNyZWF0aW9uDQo+ID4gICBhbmQgY2Fubm90IGJlIGNoYW5nZWQuDQo+ ID4NCj4gPiBUaGVyZSBhcmUgMiB0eXBlcyBvZiBtdXRhYmxlIGluZGlyZWN0IGhhbmRsZSBjb250 ZXh0czoNCj4gPiDigKIgQWN0aW9uIG11dGFibGUgY29udGV4dCBpcyBhbHdheXMgc2hhcmVkIGJl dHdlZW4gYWxsIGZsb3dzDQo+ID4gICB0aGF0IHJlZmVyZW5jZWQgaW5kaXJlY3QgYWN0aW9ucyBs aXN0IGhhbmRsZS4NCj4gPiAgIEFjdGlvbiBtdXRhYmxlIGNvbnRleHQgY2FuIGJlIGNoYW5nZWQg YnkgZXhwbGljaXQgaW52b2NhdGlvbg0KPiA+ICAgb2YgaW5kaXJlY3QgaGFuZGxlIHVwZGF0ZSBm dW5jdGlvbi4NCj4gPiDigKIgRmxvdyBtdXRhYmxlIGNvbnRleHQgaXMgcHJpdmF0ZSB0byBhIGZs b3cuDQo+ID4gICBGbG93IG11dGFibGUgY29udGV4dCBjYW4gYmUgdXBkYXRlZCBieSBpbmRpcmVj dCBsaXN0IGhhbmRsZQ0KPiA+ICAgZmxvdyBydWxlIGNvbmZpZ3VyYXRpb24uDQo+ID4NCj4gPiBm bG93IDE6DQo+ID4gIC8gaW5kaXJlY3QgaGFuZGxlIEggY29uZiBDMSAvDQo+ID4gICAgICAgICAg ICAgICAgICAgIHwgICAgICAgfA0KPiA+ICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHwNCj4g PiAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8ICAgICAgICAgZmxvdyAyOg0KPiA+ICAgICAg ICAgICAgICAgICAgICB8ICAgICAgIHwgICAgICAgICAvIGluZGlyZWN0IGhhbmRsZSBIIGNvbmYg QzIgLw0KPiA+ICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgfA0KPiA+ICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgfA0KPiA+ICAgICAgICAgICAgICAgICAgICB8ICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgfA0KPiA+ICAgICAgICAgICAg ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KPiA+ICAgICAgICAgICAgIF4gICAgICB8ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgfA0KPiA+ICAgICAgICAgICAgIHwgICAgICB8ICAgICAgIFYgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgVg0KPiA+ICAgICAgICAgICAgIHwgICAgfn5+fn5+fn5+ fn5+fn4gICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+fn5+fn5+DQo+ID4gICAgICAgICAg ICAgfCAgICAgZmxvdyBtdXRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgZmxvdyBtdXRhYmxl DQo+ID4gICAgICAgICAgICAgfCAgICAgY29udGV4dCAxICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29udGV4dCAyDQo+ID4gICAgICAgICAgICAgfCAgICB+fn5+fn5+fn5+fn5+fiAgICAgICAg ICAgICAgICAgICAgICB+fn5+fn5+fn5+fn5+fn4NCj4gPiAgIGluZGlyZWN0ICB8ICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiA+ICAgYWN0aW9uICAgIHwgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ID4gICBjb250ZXh0ICAg fCAgICAgIFYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYNCj4gPiAgICAgICAg ICAgICB8ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCj4gPiAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICBhY3Rpb24gbXV0YWJsZSBj b250ZXh0DQo+ID4gICAgICAgICAgICAgfCAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gICAgICAgICAgICAgdiAgICAgICAgICAgICAg ICBhY3Rpb24gaW1tdXRhYmxlIGNvbnRleHQNCj4gPiAgICAgICAgICAgICA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPg0KPiA+IElu ZGlyZWN0IGFjdGlvbiB0eXBlcyAtIGltbXV0YWJsZSwgYWN0aW9uIC8gZmxvdyBtdXRhYmxlLCBh cmUgbXV0dWFsbHkNCj4gPiBleGNsdXNpdmUgYW5kIGRlcGVuZCBvbiB0aGUgYWN0aW9uIGRlZmlu aXRpb24uDQo+ID4gRm9yIGV4YW1wbGU6DQo+ID4g4oCiIEluZGlyZWN0IE1FVEVSX01BUksgcG9s aWN5IGlzIGltbXV0YWJsZSBhY3Rpb24gbWVtYmVyIGFuZCBwcm9maWxlIGlzDQo+ID4gICBhY3Rp b24gbXV0YWJsZSBhY3Rpb24gbWVtYmVyLg0KPiA+IOKAoiBJbmRpcmVjdCBNRVRFUl9NQVJLIGZs b3cgYWN0aW9uIGRlZmluZXMgaW5pdF9jb2xvciBhcyBmbG93IG11dGFibGUNCj4gPiAgIG1lbWJl ci4NCj4gPiDigKIgSW5kaXJlY3QgUVVPVEEgZmxvdyBhY3Rpb24gZG9lcyBub3QgZGVmaW5lIGZs b3cgbXV0YWJsZSBtZW1iZXJzLg0KPiA+DQo+ID4gVGVtcGxhdGUgQVBJOg0KPiA+DQo+ID4gQWN0 aW9uIHRlbXBsYXRlIGZvcm1hdDoNCj4gPg0KPiA+ICAgICB0ZW1wbGF0ZSAuLiBpbmRpcmVjdF9s aXN0IGhhbmRsZSBIdG1wbCBjb25mIEN0bXBsIC4uDQo+ID4gICAgIG1hc2sgICAgIC4uIGluZGly ZWN0X2xpc3QgaGFuZGxlIEhtYXNrIGNvbmYgQ21hc2sgLi4NCj4gPg0KPiA+IDEgSWYgSHRtcGwg d2FzIG1hc2tlZCAoSG1hc2sgIT0gMCksIFBNRCBjb21waWxlcyBiYXNlIGFjdGlvbg0KPiA+ICAg Y29uZmlndXJhdGlvbiBkdXJpbmcgYWN0aW9uIHRlbXBsYXRlLCB0YWJsZSB0ZW1wbGF0ZSBhbmQg ZmxvdyBydWxlDQo+ID4gICBwaGFzZXMgLSBkZXBlbmRpbmcgb24gUE1EIGFjdGlvbiBpbXBsZW1l bnRhdGlvbi4NCj4gPiAgIE90aGVyd2lzZSwgYWN0aW9uIGlzIGNvbXBpbGVkIGZyb20gc2NyYXRj aCBkdXJpbmcgZmxvdyBydWxlDQo+ID4gICBwcm9jZXNzaW5nLg0KPiA+DQo+IFdoeSBub3QganVz dCBzYXkgaWYgSG1hc2sgIT0gTlVMTCB0aGlzIGFjdGlvbiBpcyBmaXhlZCBmb3IgdGhpcyB0ZW1w bGF0ZSwNCj4gZWxzZSBhY3Rpb24gd2lsbCBiZSBzZXQgcGVyIGVhY2ggZmxvdz8NCj4gDQo+IEFs c28gc2luY2UgdGhpcyBpcyBhIGxpc3Qgb2YgYWN0aW9uIGl0IGlzIHBvc3NpYmxlIHRoYXQgb25l IGFjdGlvbiB3aWxsIGhhdmUgbnVsbA0KPiB3aGlsZSBvdGhlciB3aWxsIGhhdmUgYSBmaXhlZCB2 YWx1ZS4NCj4gVGhpcyBtZWFucyB0aGF0IHRoZSBDdG1wbCBzaG91bGQgYWxzbyBiZSBjaGVja2Vk IHBlciBlYWNoIGVudGVyeToNCj4gQ29uZlswXSAhPSBudWxsLCBjb25mWzFdICE9IG51bGwuDQo+ IFRoaXMgd2lsbCBhbHNvIG1lYW4gdGhhdCBpZiBhcHBsaWNhdGlvbiB3YW50cyB0byB1c2UgZml4 ZWQgY29uZnMgaGUgYWxzbw0KPiBtdXN0IHN1cHBseSBhIHZhbGlkIGV4YW1wbGUgYWN0aW9uX2xp c3QsIChjYW4gYmUgZGlmZmVyZW50IGFjdGlvbl9saXN0IG9iamVjdA0KPiBwZXIgZmxvdyBidXQg bXVzdCBiZSBjb21wb3NlZCBvZiB0aGUgc2FtZSBhY3Rpb25zLikNCj4gDQoNCldpbGwgdXBkYXRl IGluZGlyZWN0X2xpc3QgYWN0aW9uIHRlbXBsYXRlIGRlc2NyaXB0aW9uIGluIHY0DQoNCj4gPiAy IElmIEh0bXBsIGFuZCBDdG1wbCB3ZXJlIG1hc2tlZCAoSG1hc2sgIT0wIGFuZCBDbWFzayAhPSAw KSwgdGFibGUNCj4gPiAgIHRlbXBsYXRlIHByb2Nlc3Npbmcgb3ZlcndyaXRlcyBiYXNlIGFjdGlv biBjb25maWd1cmF0aW9uIHdpdGggQ3RtcGwNCj4gPiAgIHBhcmFtZXRlcnMuDQo+ID4NCj4gV2hh dCBkbyB5b3UgbWVhbiBiYXNlZCBhY3Rpb24/DQo+IElmIHRoZSBIdG1wbCBhbmQgQ21hc2sgaXMg bm9uIHplcm8gaXQgbWVhbnMgdGhhdCB0aGUgY29uZmlndXJhdGlvbiBhbmQNCj4gYWN0aW9uIGFy ZSBiYXNlZCBvbiB0aGUgb25lIHNldCBpbiB0aGUgdGVtcGxhdGUgY3JlYXRlIGFuZCBub3QgcGVy IGZsb3cuDQo+IA0KPiA+IEZsb3cgcnVsZSBmb3JtYXQ6DQo+ID4NCj4gPiAgICAgYWN0aW9ucyAu LiBpbmRpcmVjdF9saXN0IGhhbmRsZSBIZmxvdyBjb25mIENmbG93IC4uDQo+ID4NCj4gPiAzIElm IEh0bXBsIHdhcyBtYXNrZWQsIEhmbG93IGNhbiByZWZlcmVuY2UgYSBkaWZmZXJlbnQgYWN0aW9u IG9mIHRoZQ0KPiA+ICAgc2FtZSB0eXBlIGFzIEh0bXBsLg0KPiA+DQo+ID4gNCBJZiBDZmxvdyB3 YXMgc3BlY2lmaWVkLCBpdCBvdmVyd3JpdGVzIGFjdGlvbiBjb25maWd1cmF0aW9uLg0KPiA+DQo+ ID4gU2lnbmVkLW9mZi1ieTogR3JlZ29yeSBFdGVsc29uIDxnZXRlbHNvbkBudmlkaWEuY29tPg0K PiA+IC0tLQ0KPiA+IHYzOiBkbyBub3QgZGVwcmVjYXRlIGluZGlyZWN0IGZsb3cgYWN0aW9uLg0K PiA+IC0tLQ0KPiA+ICBsaWIvZXRoZGV2L3J0ZV9mbG93LmggICAgICAgIHwgMjY2ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4gIGxpYi9ldGhkZXYvcnRlX2Zsb3dfZHJp dmVyLmggfCAgNDEgKysrKysrDQo+ID4gIDIgZmlsZXMgY2hhbmdlZCwgMzA3IGluc2VydGlvbnMo KykNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9saWIvZXRoZGV2L3J0ZV9mbG93LmggYi9saWIvZXRo ZGV2L3J0ZV9mbG93LmgNCj4gPiBpbmRleCA3MTNiYThiNjVjLi5hYzFmNTFlNTY0IDEwMDY0NA0K PiA+IC0tLSBhL2xpYi9ldGhkZXYvcnRlX2Zsb3cuaA0KPiA+ICsrKyBiL2xpYi9ldGhkZXYvcnRl X2Zsb3cuaA0KPiA+IEBAIC0yOTEyLDYgKzI5MTIsMTMgQEAgZW51bSBydGVfZmxvd19hY3Rpb25f dHlwZSB7DQo+ID4gIAkgKiBhcHBsaWVkIHRvIHRoZSBnaXZlbiBldGhkZXYgUnggcXVldWUuDQo+ ID4gIAkgKi8NCj4gPiAgCVJURV9GTE9XX0FDVElPTl9UWVBFX1NLSVBfQ01BTiwNCj4gPiArDQo+ ID4gKwkvKioNCj4gPiArCSAqIEFjdGlvbiBoYW5kbGUgdG8gcmVmZXJlbmNlIGZsb3cgYWN0aW9u cyBsaXN0Lg0KPiA+ICsJICoNCj4gPiArCSAqIEBzZWUgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9p bmRpcmVjdF9saXN0DQo+ID4gKwkgKi8NCj4gPiArCVJURV9GTE9XX0FDVElPTl9UWVBFX0lORElS RUNUX0xJU1QsDQo+ID4gIH07DQo+ID4NCj4gPiAgLyoqDQo+ID4gQEAgLTYxMTgsNiArNjEyNSwy NjUgQEANCj4gPiBydGVfZmxvd19hc3luY19hY3Rpb25faGFuZGxlX3F1ZXJ5X3VwZGF0ZSh1aW50 MTZfdCBwb3J0X2lkLCB1aW50MzJfdA0KPiA+IHF1ZXVlX2lkLA0KPiA+ICAJCQkJCSAgdm9pZCAq dXNlcl9kYXRhLA0KPiA+ICAJCQkJCSAgc3RydWN0IHJ0ZV9mbG93X2Vycm9yICplcnJvcik7DQo+ ID4NCj4gPiArc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9saXN0X2hhbmRsZTsNCj4gPiArDQo+ID4g Ky8qKg0KPiA+ICsgKiBAd2FybmluZw0KPiA+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJ IG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UuDQo+ID4gKyAqDQo+ID4gKyAqIENvbmZp Z3VyZSBJTkRJUkVDVF9MSVNUIGZsb3cgYWN0aW9uLg0KPiA+ICsgKg0KPiA+ICsgKiBAc2VlIFJU RV9GTE9XX0FDVElPTl9UWVBFX0lORElSRUNUX0xJU1QNCj4gPiArICovDQo+ID4gK3N0cnVjdCBy dGVfZmxvd19hY3Rpb25faW5kaXJlY3RfbGlzdCB7DQo+ID4gKwlzdHJ1Y3QgcnRlX2Zsb3dfYWN0 aW9uX2xpc3RfaGFuZGxlOyAvKio8IEluZGlyZWN0IGFjdGlvbiBsaXN0IGhhbmRsZSAqLw0KPiBT aW5jZSB0aGUgY29tbWVudHMgYWJvdmUgdGhlIG1lbWJlciB0aGUgY29tbWVudCBzaG91bGQgc3Rh cnQgd2l0aCAvKiogb25seQ0KPiANCg0KV2lsbCB1cGRhdGUgdGhlIGNvbW1lbnQgaW4gdjQuDQoN Cj4gPiArCS8qKg0KPiA+ICsJICogRmxvdyBtdXRhYmxlIGNvbmZpZ3VyYXRpb24gYXJyYXkuDQo+ ID4gKwkgKiBOVUxMIGlmIHRoZSBoYW5kbGUgaGFzIG5vIGZsb3cgbXV0YWJsZSBjb25maWd1cmF0 aW9uIHVwZGF0ZS4NCj4gPiArCSAqIE90aGVyd2lzZSwgaWYgdGhlIGhhbmRsZSB3YXMgY3JlYXRl ZCB3aXRoIGxpc3QgQTEgLyBBMiAuLiBBbiAvIEVORA0KPiA+ICsJICogc2l6ZSBvZiBjb25mIGlz IG4uDQo+ID4gKwkgKiBjb25mW2ldIHBvaW50cyB0byBmbG93IG11dGFibGUgdXBkYXRlIG9mIEFp IGluIHRoZSBoYW5kbGUNCj4gPiArCSAqIGFjdGlvbnMgbGlzdCBvciBOVUxMIGlmIEFpIGhhcyBu byB1cGRhdGUuDQo+ID4gKwkgKi8NCj4gPiArCWNvbnN0IHZvaWQgKipjb25mOw0KPiA+ICt9Ow0K PiA+ICsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsgKiBAd2FybmluZw0KPiA+ICsgKiBAYiBFWFBF UklNRU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UuDQo+ID4g KyAqDQo+ID4gKyAqIENyZWF0ZSBhbiBpbmRpcmVjdCBmbG93IGFjdGlvbiBvYmplY3QgZnJvbSBm bG93IGFjdGlvbnMgbGlzdC4NCj4gPiArICogVGhlIG9iamVjdCBpcyBpZGVudGlmaWVkIGJ5IGEg dW5pcXVlIGhhbmRsZS4NCj4gPiArICogVGhlIGhhbmRsZSBoYXMgc2luZ2xlIHN0YXRlIGFuZCBj b25maWd1cmF0aW9uDQo+ID4gKyAqIGFjcm9zcyBhbGwgdGhlIGZsb3cgcnVsZXMgdXNpbmcgaXQu DQo+ID4gKyAqDQo+ID4gKyAqIEBwYXJhbVtpbl0gcG9ydF9pZA0KPiA+ICsgKiAgICBUaGUgcG9y dCBpZGVudGlmaWVyIG9mIHRoZSBFdGhlcm5ldCBkZXZpY2UuDQo+ID4gKyAqIEBwYXJhbVtpbl0g Y29uZg0KPiA+ICsgKiAgIEFjdGlvbiBjb25maWd1cmF0aW9uIGZvciB0aGUgaW5kaXJlY3QgYWN0 aW9uIGxpc3QgY3JlYXRpb24uDQo+ID4gKyAqIEBwYXJhbVtpbl0gYWN0aW9ucw0KPiA+ICsgKiAg IFNwZWNpZmljIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGluZGlyZWN0IGFjdGlvbiBsaXN0cy4NCj4g PiArICogQHBhcmFtW291dF0gZXJyb3INCj4gPiArICogICBQZXJmb3JtIHZlcmJvc2UgZXJyb3Ig cmVwb3J0aW5nIGlmIG5vdCBOVUxMLiBQTURzIGluaXRpYWxpemUgdGhpcw0KPiA+ICsgKiAgIHN0 cnVjdHVyZSBpbiBjYXNlIG9mIGVycm9yIG9ubHkuDQo+ID4gKyAqIEByZXR1cm4NCj4gPiArICog ICBBIHZhbGlkIGhhbmRsZSBpbiBjYXNlIG9mIHN1Y2Nlc3MsIE5VTEwgb3RoZXJ3aXNlIGFuZCBy dGVfZXJybm8gaXMgc2V0DQo+ID4gKyAqICAgdG8gb25lIG9mIHRoZSBlcnJvciBjb2RlcyBkZWZp bmVkOg0KPiA+ICsgKiAgIC0gKC1FTk9ERVYpIGlmICpwb3J0X2lkKiBpbnZhbGlkLg0KPiA+ICsg KiAgIC0gKC1FTk9TWVMpIGlmIHVuZGVybHlpbmcgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgdGhp cyBmdW5jdGlvbmFsaXR5Lg0KPiA+ICsgKiAgIC0gKC1FSU8pIGlmIHVuZGVybHlpbmcgZGV2aWNl IGlzIHJlbW92ZWQuDQo+ID4gKyAqICAgLSAoLUVJTlZBTCkgaWYgKmFjdGlvbnMqIGxpc3QgaW52 YWxpZC4NCj4gPiArICogICAtICgtRU5PVFNVUCkgaWYgKmFjdGlvbiogbGlzdCBlbGVtZW50IHZh bGlkIGJ1dCB1bnN1cHBvcnRlZC4NCj4gPiArICogICAtICgtRTJCSUcpIHRvIG1hbnkgZWxlbWVu dHMgaW4gKmFjdGlvbnMqDQo+IEhvdyBjYW4geW91IGdldCB0aGlzIGVycm9yPw0KPiANCg0KV2ls bCByZW1vdmUgRTJCSUcgaW4gdjQuDQoNCj4gPiArICovDQo+ID4gK19fcnRlX2V4cGVyaW1lbnRh bA0KPiA+ICtzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2xpc3RfaGFuZGxlICoNCj4gPiArcnRlX2Zs b3dfYWN0aW9uX2xpc3RfaGFuZGxlX2NyZWF0ZSh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICsJCQkJ ICAgY29uc3QNCj4gPiArCQkJCSAgIHN0cnVjdCBydGVfZmxvd19pbmRpcl9hY3Rpb25fY29uZiAq Y29uZiwNCj4gPiArCQkJCSAgIGNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb24gKmFjdGlvbnMs DQo+ID4gKwkJCQkgICBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gPiArDQo+ID4g Ky8qKg0KPiA+ICsgKiBAd2FybmluZw0KPiA+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJ IG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UuDQo+ID4gKyAqDQo+ID4gKyAqIEFzeW5j IGZ1bmN0aW9uIGNhbGwgdG8gY3JlYXRlIGFuIGluZGlyZWN0IGZsb3cgYWN0aW9uIG9iamVjdA0K PiA+ICsgKiBmcm9tIGZsb3cgYWN0aW9ucyBsaXN0Lg0KPiA+ICsgKiBUaGUgb2JqZWN0IGlzIGlk ZW50aWZpZWQgYnkgYSB1bmlxdWUgaGFuZGxlLg0KPiA+ICsgKiBUaGUgaGFuZGxlIGhhcyBzaW5n bGUgc3RhdGUgYW5kIGNvbmZpZ3VyYXRpb24NCj4gPiArICogYWNyb3NzIGFsbCB0aGUgZmxvdyBy dWxlcyB1c2luZyBpdC4NCj4gPiArICoNCj4gPiArICogQHBhcmFtW2luXSBwb3J0X2lkDQo+ID4g KyAqICAgIFRoZSBwb3J0IGlkZW50aWZpZXIgb2YgdGhlIEV0aGVybmV0IGRldmljZS4NCj4gPiAr ICogQHBhcmFtW2luXSBxdWV1ZV9pZA0KPiA+ICsgKiAgIEZsb3cgcXVldWUgd2hpY2ggaXMgdXNl ZCB0byB1cGRhdGUgdGhlIHJ1bGUuDQo+ID4gKyAqIEBwYXJhbVtpbl0gYXR0cg0KPiA+ICsgKiAg IEluZGlyZWN0IGFjdGlvbiB1cGRhdGUgb3BlcmF0aW9uIGF0dHJpYnV0ZXMuDQo+ID4gKyAqIEBw YXJhbVtpbl0gY29uZg0KPiA+ICsgKiAgIEFjdGlvbiBjb25maWd1cmF0aW9uIGZvciB0aGUgaW5k aXJlY3QgYWN0aW9uIGxpc3QgY3JlYXRpb24uDQo+ID4gKyAqIEBwYXJhbVtpbl0gYWN0aW9ucw0K PiA+ICsgKiAgIFNwZWNpZmljIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGluZGlyZWN0IGFjdGlvbiBs aXN0Lg0KPiA+ICsgKiBAcGFyYW1baW5dIHVzZXJfZGF0YQ0KPiA+ICsgKiAgIFRoZSB1c2VyIGRh dGEgdGhhdCB3aWxsIGJlIHJldHVybmVkIG9uIGFzeW5jIGNvbXBsZXRpb24gZXZlbnQuDQo+ID4g KyAqIEBwYXJhbVtvdXRdIGVycm9yDQo+ID4gKyAqICAgUGVyZm9ybSB2ZXJib3NlIGVycm9yIHJl cG9ydGluZyBpZiBub3QgTlVMTC4gUE1EcyBpbml0aWFsaXplIHRoaXMNCj4gPiArICogICBzdHJ1 Y3R1cmUgaW4gY2FzZSBvZiBlcnJvciBvbmx5Lg0KPiA+ICsgKiBAcmV0dXJuDQo+ID4gKyAqICAg QSB2YWxpZCBoYW5kbGUgaW4gY2FzZSBvZiBzdWNjZXNzLCBOVUxMIG90aGVyd2lzZSBhbmQgcnRl X2Vycm5vIGlzIHNldA0KPiA+ICsgKiAgIHRvIG9uZSBvZiB0aGUgZXJyb3IgY29kZXMgZGVmaW5l ZDoNCj4gPiArICogICAtICgtRU5PREVWKSBpZiAqcG9ydF9pZCogaW52YWxpZC4NCj4gPiArICog ICAtICgtRU5PU1lTKSBpZiB1bmRlcmx5aW5nIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMg ZnVuY3Rpb25hbGl0eS4NCj4gPiArICogICAtICgtRUlPKSBpZiB1bmRlcmx5aW5nIGRldmljZSBp cyByZW1vdmVkLg0KPiA+ICsgKiAgIC0gKC1FSU5WQUwpIGlmICphY3Rpb25zKiBsaXN0IGludmFs aWQuDQo+ID4gKyAqICAgLSAoLUVOT1RTVVApIGlmICphY3Rpb24qIGxpc3QgZWxlbWVudCB2YWxp ZCBidXQgdW5zdXBwb3J0ZWQuDQo+ID4gKyAqICAgLSAoLUUyQklHKSB0byBtYW55IGVsZW1lbnRz IGluICphY3Rpb25zKg0KPiBTYW1lIGFzIGFib3ZlIHF1ZXN0aW9uDQo+IA0KDQpXaWxsIHJlbW92 ZSBFMkJJRyBpbiB2NC4NCg0KPiA+ICsgKi8NCj4gPiArX19ydGVfZXhwZXJpbWVudGFsDQo+ID4g K3N0cnVjdCBydGVfZmxvd19hY3Rpb25fbGlzdF9oYW5kbGUgKg0KPiA+ICtydGVfZmxvd19hc3lu Y19hY3Rpb25fbGlzdF9oYW5kbGVfY3JlYXRlKHVpbnQxNl90IHBvcnRfaWQsIHVpbnQzMl90DQo+ ID4gcXVldWVfaWQsDQo+ID4gKwkJCQkJIGNvbnN0IHN0cnVjdCBydGVfZmxvd19vcF9hdHRyICph dHRyLA0KPiA+ICsJCQkJCSBjb25zdCBzdHJ1Y3QNCj4gPiArCQkJCQkgcnRlX2Zsb3dfaW5kaXJf YWN0aW9uX2NvbmYgKmNvbmYsDQo+ID4gKwkJCQkJIGNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rp b24NCj4gPiAqYWN0aW9ucywNCj4gPiArCQkJCQkgdm9pZCAqdXNlcl9kYXRhLA0KPiA+ICsJCQkJ CSBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsg KiBAd2FybmluZw0KPiA+ICsgKiBAYiBFWFBFUklNRU5UQUw6IHRoaXMgQVBJIG1heSBjaGFuZ2Ug d2l0aG91dCBwcmlvciBub3RpY2UuDQo+ID4gKyAqDQo+ID4gKyAqIERlc3Ryb3kgaW5kaXJlY3Qg YWN0aW9ucyBsaXN0IGJ5IGhhbmRsZS4NCj4gPiArICoNCj4gPiArICogQHBhcmFtW2luXSBwb3J0 X2lkDQo+ID4gKyAqICAgIFRoZSBwb3J0IGlkZW50aWZpZXIgb2YgdGhlIEV0aGVybmV0IGRldmlj ZS4NCj4gPiArICogQHBhcmFtW2luXSBoYW5kbGUNCj4gPiArICogICBIYW5kbGUgZm9yIHRoZSBp bmRpcmVjdCBhY3Rpb25zIGxpc3QgdG8gYmUgZGVzdHJveWVkLg0KPiA+ICsgKiBAcGFyYW1bb3V0 XSBlcnJvcg0KPiA+ICsgKiAgIFBlcmZvcm0gdmVyYm9zZSBlcnJvciByZXBvcnRpbmcgaWYgbm90 IE5VTEwuIFBNRHMgaW5pdGlhbGl6ZSB0aGlzDQo+ID4gKyAqICAgc3RydWN0dXJlIGluIGNhc2Ug b2YgZXJyb3Igb25seS4NCj4gPiArICogQHJldHVybg0KPiA+ICsgKiAgIC0gKDApIGlmIHN1Y2Nl c3MuDQo+ID4gKyAqICAgLSAoLUVOT0RFVikgaWYgKnBvcnRfaWQqIGludmFsaWQuDQo+ID4gKyAq ICAgLSAoLUVOT1NZUykgaWYgdW5kZXJseWluZyBkZXZpY2UgZG9lcyBub3Qgc3VwcG9ydCB0aGlz IGZ1bmN0aW9uYWxpdHkuDQo+ID4gKyAqICAgLSAoLUVJTykgaWYgdW5kZXJseWluZyBkZXZpY2Ug aXMgcmVtb3ZlZC4NCj4gPiArICogICAtICgtRU5PRU5UKSBpZiBhY3Rpb25zIGxpc3QgcG9pbnRl ZCBieSAqYWN0aW9uKiBoYW5kbGUgd2FzIG5vdCBmb3VuZC4NCj4gPiArICogICAtICgtRUJVU1kp IGlmIGFjdGlvbnMgbGlzdCBwb2ludGVkIGJ5ICphY3Rpb24qIGhhbmRsZSBzdGlsbCB1c2VkDQo+ ID4gKyAqICAgcnRlX2Vycm5vIGlzIGFsc28gc2V0Lg0KPiBXaHkgbm90IGtlZXAgdGhlIHNhbWUg cmV0dXJuIGRlc2NyaXB0aW9uIGFzIGFib3ZlPw0KPiANCg0KV2lsbCB1cGRhdGUgdGhlIGZvcm1h dCBpbiB2NC4NCg0KPiA+ICsgKi8NCj4gPiArX19ydGVfZXhwZXJpbWVudGFsDQo+ID4gK2ludA0K PiA+ICtydGVfZmxvd19hY3Rpb25fbGlzdF9oYW5kbGVfZGVzdHJveSh1aW50MTZfdCBwb3J0X2lk LA0KPiA+ICsJCQkJICAgIHN0cnVjdCBydGVfZmxvd19hY3Rpb25fbGlzdF9oYW5kbGUNCj4gPiAq aGFuZGxlLA0KPiA+ICsJCQkJICAgIHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJyb3IpOw0KPiA+ ICsNCj4gPiArLyoqDQo+ID4gKyAqIEB3YXJuaW5nDQo+ID4gKyAqIEBiIEVYUEVSSU1FTlRBTDog dGhpcyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGljZS4NCj4gPiArICoNCj4gPiAr ICogRW5xdWV1ZSBpbmRpcmVjdCBhY3Rpb24gbGlzdCBkZXN0cnVjdGlvbiBvcGVyYXRpb24uDQo+ ID4gKyAqIFRoZSBkZXN0cm95IHF1ZXVlIG11c3QgYmUgdGhlIHNhbWUNCj4gPiArICogYXMgdGhl IHF1ZXVlIG9uIHdoaWNoIHRoZSBhY3Rpb24gd2FzIGNyZWF0ZWQuDQo+ID4gKyAqDQo+ID4gKyAq IEBwYXJhbVtpbl0gcG9ydF9pZA0KPiA+ICsgKiAgIFBvcnQgaWRlbnRpZmllciBvZiBFdGhlcm5l dCBkZXZpY2UuDQo+ID4gKyAqIEBwYXJhbVtpbl0gcXVldWVfaWQNCj4gPiArICogICBGbG93IHF1 ZXVlIHdoaWNoIGlzIHVzZWQgdG8gZGVzdHJveSB0aGUgcnVsZS4NCj4gPiArICogQHBhcmFtW2lu XSBvcF9hdHRyDQo+ID4gKyAqICAgSW5kaXJlY3QgYWN0aW9uIGRlc3RydWN0aW9uIG9wZXJhdGlv biBhdHRyaWJ1dGVzLg0KPiA+ICsgKiBAcGFyYW1baW5dIGhhbmRsZQ0KPiA+ICsgKiAgIEhhbmRs ZSBmb3IgdGhlIGluZGlyZWN0IGFjdGlvbiBvYmplY3QgdG8gYmUgZGVzdHJveWVkLg0KPiA+ICsg KiBAcGFyYW1baW5dIHVzZXJfZGF0YQ0KPiA+ICsgKiAgIFRoZSB1c2VyIGRhdGEgdGhhdCB3aWxs IGJlIHJldHVybmVkIG9uIHRoZSBjb21wbGV0aW9uIGV2ZW50cy4NCj4gPiArICogQHBhcmFtW291 dF0gZXJyb3INCj4gPiArICogICBQZXJmb3JtIHZlcmJvc2UgZXJyb3IgcmVwb3J0aW5nIGlmIG5v dCBOVUxMLg0KPiA+ICsgKiAgIFBNRHMgaW5pdGlhbGl6ZSB0aGlzIHN0cnVjdHVyZSBpbiBjYXNl IG9mIGVycm9yIG9ubHkuDQo+ID4gKyAqDQo+ID4gKyAqIEByZXR1cm4NCj4gPiArICogICAwIG9u IHN1Y2Nlc3MsIGEgbmVnYXRpdmUgZXJybm8gdmFsdWUgb3RoZXJ3aXNlIGFuZCBydGVfZXJybm8g aXMgc2V0Lg0KPiBTYW1lIGVycm9ycyBhcyBhYm92ZT8NCj4gDQoNCldpbGwgdXBkYXRlIHRoZSBm b3JtYXQgaW4gdjQuDQoNCj4gPiArICovDQo+ID4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiA+ICtp bnQNCj4gPiArcnRlX2Zsb3dfYXN5bmNfYWN0aW9uX2xpc3RfaGFuZGxlX2Rlc3Ryb3kNCj4gPiAr CQkodWludDE2X3QgcG9ydF9pZCwgdWludDMyX3QgcXVldWVfaWQsDQo+ID4gKwkJIGNvbnN0IHN0 cnVjdCBydGVfZmxvd19vcF9hdHRyICpvcF9hdHRyLA0KPiA+ICsJCSBzdHJ1Y3QgcnRlX2Zsb3df YWN0aW9uX2xpc3RfaGFuZGxlICpoYW5kbGUsDQo+ID4gKwkJIHZvaWQgKnVzZXJfZGF0YSwgc3Ry dWN0IHJ0ZV9mbG93X2Vycm9yICplcnJvcik7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICogQHdh cm5pbmcNCj4gPiArICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkgY2hhbmdlIHdpdGhv dXQgcHJpb3Igbm90aWNlLg0KPiA+ICsgKg0KPiA+ICsgKiBRdWVyeSBhbmQvb3IgdXBkYXRlIGlu ZGlyZWN0IGZsb3cgYWN0aW9ucyBsaXN0Lg0KPiA+ICsgKiBJZiBib3RoIHF1ZXJ5IGFuZCB1cGRh dGUgbm90IE5VTEwsIHRoZSBmdW5jdGlvbiBhdG9taWNhbGx5DQo+ID4gKyAqIHF1ZXJpZXMgYW5k IHVwZGF0ZXMgaW5kaXJlY3QgYWN0aW9uLiBRdWVyeSBhbmQgdXBkYXRlIGFyZSBjYXJyaWVkIGlu DQo+ID4gb3JkZXINCj4gPiArICogc3BlY2lmaWVkIGluIHRoZSBtb2RlIHBhcmFtZXRlci4NCj4g PiArICogSWYgZXRoZXIgcXVlcnkgb3IgdXBkYXRlIGlzIE5VTEwsIHRoZSBmdW5jdGlvbiBleGVj dXRlcw0KPiA+ICsgKiBjb21wbGVtZW50aW5nIG9wZXJhdGlvbi4NCj4gPiArICoNCj4gPiArICog QHBhcmFtIHBvcnRfaWQNCj4gPiArICogICBQb3J0IGlkZW50aWZpZXIgb2YgRXRoZXJuZXQgZGV2 aWNlLg0KPiA+ICsgKiBAcGFyYW0gaGFuZGxlDQo+ID4gKyAqICAgSGFuZGxlIGZvciB0aGUgaW5k aXJlY3QgYWN0aW9ucyBsaXN0IG9iamVjdCB0byBiZSB1cGRhdGVkLg0KPiA+ICsgKiBAcGFyYW0g dXBkYXRlDQo+ID4gKyAqICAgSWYgbm90IE5VTEwsIHVwZGF0ZSBwcm9maWxlIHNwZWNpZmljYXRp b24gdXNlZCB0byBtb2RpZnkgdGhlIGFjdGlvbg0KPiA+ICsgKiAgIHBvaW50ZWQgYnkgaGFuZGxl Lg0KPiA+ICsgKiAgIEBzZWUgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9pbmRpcmVjdF9saXN0DQo+ IEl0IHNob3VsZCBiZSBjbGVhciB0aGF0IHRoZSB1cGRhdGUvcXVlcnkgaXMgaW4gdGhlIG9yZGVy IHRoZSBhY3Rpb24gd2FzDQo+IGNyZWF0ZWQgYW5kIGlmIHRoZSBhY3Rpb24gaSBkb2Vzbid0IGhh dmUgY29uZmlndXJhdGlvbiBpdCBzaG91bGQgYmUgcyBzZXQgdG8gTlVMTC4NCj4gQW5kIGdvZXMg d2l0aG91dCBzYXlpbmcgdGhhdCB0aGUgbGlzdCBzaXplIG11c3QgYmUgZXF1YWwgdG8gdGhlIG51 bWJlciBvZiBhY3Rpb25zLA0KPiB0aGF0IHRoaXMgbGlzdCBpcyBidWlsZCBmcm9tLg0KPiANCg0K V2lsbCB1cGRhdGUgaW4gdjQuDQoNCj4gPiArICogQHBhcmFtIHF1ZXJ5DQo+ID4gKyAqICAgSWYg bm90IE5VTEwgcG9pbnRlciB0byBzdG9yYWdlIGZvciB0aGUgYXNzb2NpYXRlZCBxdWVyeSBkYXRh IHR5cGUuDQo+ID4gKyAqICAgQHNlZSBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2luZGlyZWN0X2xp c3QNCj4gPiArICogQHBhcmFtIG1vZGUNCj4gPiArICogICBPcGVyYXRpb25hbCBtb2RlLg0KPiA+ ICsgKiBAcGFyYW0gZXJyb3INCj4gPiArICogICBQZXJmb3JtIHZlcmJvc2UgZXJyb3IgcmVwb3J0 aW5nIGlmIG5vdCBOVUxMLg0KPiA+ICsgKiAgIFBNRHMgaW5pdGlhbGl6ZSB0aGlzIHN0cnVjdHVy ZSBpbiBjYXNlIG9mIGVycm9yIG9ubHkuDQo+ID4gKyAqDQo+ID4gKyAqIEByZXR1cm4NCj4gPiAr ICogMCBvbiBzdWNjZXNzLCBhIG5lZ2F0aXZlIGVycm5vIHZhbHVlIG90aGVyd2lzZSBhbmQgcnRl X2Vycm5vIGlzIHNldC4NCj4gPiArICogLSAoLUVOT0RFVikgaWYgKnBvcnRfaWQqIGludmFsaWQu DQo+ID4gKyAqIC0gKC1FTk9UU1VQKSBpZiB1bmRlcmx5aW5nIGRldmljZSBkb2VzIG5vdCBzdXBw b3J0IHRoaXMgZnVuY3Rpb25hbGl0eS4NCj4gPiArICogLSAoLUVJTlZBTCkgaWYgKmhhbmRsZSog b3IgKm1vZGUqIGludmFsaWQgb3INCj4gPiArICogICAgICAgICAgICAgYm90aCAqcXVlcnkqIGFu ZCAqdXBkYXRlKiBhcmUgTlVMTC4NCj4gPiArICovDQo+ID4gK19fcnRlX2V4cGVyaW1lbnRhbA0K PiA+ICtpbnQNCj4gPiArcnRlX2Zsb3dfYWN0aW9uX2xpc3RfaGFuZGxlX3F1ZXJ5X3VwZGF0ZSh1 aW50MTZfdCBwb3J0X2lkLA0KPiA+ICsJCQkJCSBjb25zdCBzdHJ1Y3QNCj4gPiArCQkJCQkgcnRl X2Zsb3dfYWN0aW9uX2xpc3RfaGFuZGxlICpoYW5kbGUsDQo+ID4gKwkJCQkJIGNvbnN0IHZvaWQg Kip1cGRhdGUsIHZvaWQgKipxdWVyeSwNCj4gPiArCQkJCQkgZW51bSBydGVfZmxvd19xdWVyeV91 cGRhdGVfbW9kZQ0KPiA+IG1vZGUsDQo+ID4gKwkJCQkJIHN0cnVjdCBydGVfZmxvd19lcnJvciAq ZXJyb3IpOw0KPiA+ICsNCj4gPiArLyoqDQo+ID4gKyAqIEB3YXJuaW5nDQo+ID4gKyAqIEBiIEVY UEVSSU1FTlRBTDogdGhpcyBBUEkgbWF5IGNoYW5nZSB3aXRob3V0IHByaW9yIG5vdGljZS4NCj4g PiArICoNCj4gPiArICogRW5xdWV1ZSBhc3luYyBpbmRpcmVjdCBmbG93IGFjdGlvbnMgbGlzdCBx dWVyeSBhbmQvb3IgdXBkYXRlDQo+ID4gKyAqDQo+ID4gKyAqIEBwYXJhbSBwb3J0X2lkDQo+ID4g KyAqICAgUG9ydCBpZGVudGlmaWVyIG9mIEV0aGVybmV0IGRldmljZS4NCj4gPiArICogQHBhcmFt IHF1ZXVlX2lkDQo+ID4gKyAqICAgRmxvdyBxdWV1ZSB3aGljaCBpcyB1c2VkIHRvIHVwZGF0ZSB0 aGUgcnVsZS4NCj4gPiArICogQHBhcmFtIGF0dHINCj4gPiArICogICBJbmRpcmVjdCBhY3Rpb24g dXBkYXRlIG9wZXJhdGlvbiBhdHRyaWJ1dGVzLg0KPiA+ICsgKiBAcGFyYW0gaGFuZGxlDQo+ID4g KyAqICAgSGFuZGxlIGZvciB0aGUgaW5kaXJlY3QgYWN0aW9ucyBsaXN0IG9iamVjdCB0byBiZSB1 cGRhdGVkLg0KPiA+ICsgKiBAcGFyYW0gdXBkYXRlDQo+ID4gKyAqICAgSWYgbm90IE5VTEwsIHVw ZGF0ZSBwcm9maWxlIHNwZWNpZmljYXRpb24gdXNlZCB0byBtb2RpZnkgdGhlIGFjdGlvbg0KPiA+ ICsgKiAgIHBvaW50ZWQgYnkgaGFuZGxlLg0KPiA+ICsgKiAgIEBzZWUgc3RydWN0IHJ0ZV9mbG93 X2FjdGlvbl9pbmRpcmVjdF9saXN0DQo+ID4gKyAqIEBwYXJhbSBxdWVyeQ0KPiA+ICsgKiAgIElm IG5vdCBOVUxMLCBwb2ludGVyIHRvIHN0b3JhZ2UgZm9yIHRoZSBhc3NvY2lhdGVkIHF1ZXJ5IGRh dGEgdHlwZS4NCj4gPiArICogICBRdWVyeSByZXN1bHQgcmV0dXJuZWQgb24gYXN5bmMgY29tcGxl dGlvbiBldmVudC4NCj4gPiArICogICBAc2VlIHN0cnVjdCBydGVfZmxvd19hY3Rpb25faW5kaXJl Y3RfbGlzdA0KPiA+ICsgKiBAcGFyYW0gbW9kZQ0KPiA+ICsgKiAgIE9wZXJhdGlvbmFsIG1vZGUu DQo+ID4gKyAqIEBwYXJhbSB1c2VyX2RhdGENCj4gPiArICogICBUaGUgdXNlciBkYXRhIHRoYXQg d2lsbCBiZSByZXR1cm5lZCBvbiBhc3luYyBjb21wbGV0aW9uIGV2ZW50Lg0KPiA+ICsgKiBAcGFy YW0gZXJyb3INCj4gPiArICogICBQZXJmb3JtIHZlcmJvc2UgZXJyb3IgcmVwb3J0aW5nIGlmIG5v dCBOVUxMLg0KPiA+ICsgKiAgIFBNRHMgaW5pdGlhbGl6ZSB0aGlzIHN0cnVjdHVyZSBpbiBjYXNl IG9mIGVycm9yIG9ubHkuDQo+ID4gKyAqDQo+ID4gKyAqIEByZXR1cm4NCj4gPiArICogICAwIG9u IHN1Y2Nlc3MsIGEgbmVnYXRpdmUgZXJybm8gdmFsdWUgb3RoZXJ3aXNlIGFuZCBydGVfZXJybm8g aXMgc2V0Lg0KPiA+ICsgKiAtICgtRU5PREVWKSBpZiAqcG9ydF9pZCogaW52YWxpZC4NCj4gPiAr ICogLSAoLUVOT1RTVVApIGlmIHVuZGVybHlpbmcgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgdGhp cyBmdW5jdGlvbmFsaXR5Lg0KPiA+ICsgKiAtICgtRUlOVkFMKSBpZiAqaGFuZGxlKiBvciAqbW9k ZSogaW52YWxpZCBvcg0KPiA+ICsgKiAgICAgICAgICAgICBib3RoICp1cGRhdGUqIGFuZCAqcXVl cnkqIGFyZSBOVUxMLg0KPiA+ICsgKi8NCj4gPiArX19ydGVfZXhwZXJpbWVudGFsDQo+ID4gK2lu dA0KPiA+ICtydGVfZmxvd19hc3luY19hY3Rpb25fbGlzdF9oYW5kbGVfcXVlcnlfdXBkYXRlKHVp bnQxNl90IHBvcnRfaWQsDQo+ID4gdWludDMyX3QgcXVldWVfaWQsDQo+ID4gKwkJCQkJICBjb25z dCBzdHJ1Y3QgcnRlX2Zsb3dfb3BfYXR0ciAqYXR0ciwNCj4gPiArCQkJCQkgIGNvbnN0IHN0cnVj dA0KPiA+ICsJCQkJCSAgcnRlX2Zsb3dfYWN0aW9uX2xpc3RfaGFuZGxlDQo+ID4gKmhhbmRsZSwN Cj4gPiArCQkJCQkgIGNvbnN0IHZvaWQgKnVwZGF0ZSwgdm9pZCAqcXVlcnksDQo+ID4gKwkJCQkJ ICBlbnVtDQo+ID4gcnRlX2Zsb3dfcXVlcnlfdXBkYXRlX21vZGUgbW9kZSwNCj4gPiArCQkJCQkg IHZvaWQgKnVzZXJfZGF0YSwNCj4gPiArCQkJCQkgIHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJy b3IpOw0KPiA+ICsNCj4gPiArDQo+ID4gICNpZmRlZiBfX2NwbHVzcGx1cw0KPiA+ICB9DQo+ID4g ICNlbmRpZg0KPiA+IGRpZmYgLS1naXQgYS9saWIvZXRoZGV2L3J0ZV9mbG93X2RyaXZlci5oIGIv bGliL2V0aGRldi9ydGVfZmxvd19kcml2ZXIuaA0KPiA+IGluZGV4IGExMjlhNDYwNWQuLjhkYzgw MzAyM2MgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2V0aGRldi9ydGVfZmxvd19kcml2ZXIuaA0KPiA+ ICsrKyBiL2xpYi9ldGhkZXYvcnRlX2Zsb3dfZHJpdmVyLmgNCj4gPiBAQCAtMTIxLDYgKzEyMSwx NyBAQCBzdHJ1Y3QgcnRlX2Zsb3dfb3BzIHsNCj4gPiAgCQkgY29uc3Qgdm9pZCAqdXBkYXRlLCB2 b2lkICpxdWVyeSwNCj4gPiAgCQkgZW51bSBydGVfZmxvd19xdWVyeV91cGRhdGVfbW9kZSBxdV9t b2RlLA0KPiA+ICAJCSBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gPiArCS8qKiBA c2VlIHJ0ZV9mbG93X2FjdGlvbl9saXN0X2hhbmRsZV9jcmVhdGUoKSAqLw0KPiA+ICsJc3RydWN0 IHJ0ZV9mbG93X2FjdGlvbl9saXN0X2hhbmRsZSAqKCphY3Rpb25fbGlzdF9oYW5kbGVfY3JlYXRl KQ0KPiA+ICsJCShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gPiArCQkgY29uc3Qgc3RydWN0 IHJ0ZV9mbG93X2luZGlyX2FjdGlvbl9jb25mICpjb25mLA0KPiA+ICsJCSBjb25zdCBzdHJ1Y3Qg cnRlX2Zsb3dfYWN0aW9uIGFjdGlvbnNbXSwNCj4gPiArCQkgc3RydWN0IHJ0ZV9mbG93X2Vycm9y ICplcnJvcik7DQo+ID4gKwkvKiogQHNlZSBydGVfZmxvd19hY3Rpb25fbGlzdF9oYW5kbGVfZGVz dHJveSgpICovDQo+ID4gKwlpbnQgKCphY3Rpb25fbGlzdF9oYW5kbGVfZGVzdHJveSkNCj4gPiAr CQkoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4gKwkJIHN0cnVjdCBydGVfZmxvd19hY3Rp b25fbGlzdF9oYW5kbGUgKmhhbmRsZSwNCj4gPiArCQkgc3RydWN0IHJ0ZV9mbG93X2Vycm9yICpl cnJvcik7DQo+ID4gIAkvKiogU2VlIHJ0ZV9mbG93X3R1bm5lbF9kZWNhcF9zZXQoKSAqLw0KPiA+ ICAJaW50ICgqdHVubmVsX2RlY2FwX3NldCkNCj4gPiAgCQkoc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYsDQo+ID4gQEAgLTMwMiw2ICszMTMsMzYgQEAgc3RydWN0IHJ0ZV9mbG93X29wcyB7DQo+ID4g IAkJIGNvbnN0IHZvaWQgKnVwZGF0ZSwgdm9pZCAqcXVlcnksDQo+ID4gIAkJIGVudW0gcnRlX2Zs b3dfcXVlcnlfdXBkYXRlX21vZGUgcXVfbW9kZSwNCj4gPiAgCQkgdm9pZCAqdXNlcl9kYXRhLCBz dHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gPiArCS8qKiBAc2VlIHJ0ZV9mbG93X2Fz eW5jX2FjdGlvbl9saXN0X2hhbmRsZV9jcmVhdGUoKSAqLw0KPiA+ICsJc3RydWN0IHJ0ZV9mbG93 X2FjdGlvbl9saXN0X2hhbmRsZSAqDQo+ID4gKwkoKmFzeW5jX2FjdGlvbl9saXN0X2hhbmRsZV9j cmVhdGUpDQo+ID4gKwkJKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MzJfdCBxdWV1ZV9p ZCwNCj4gPiArCQkgY29uc3Qgc3RydWN0IHJ0ZV9mbG93X29wX2F0dHIgKmF0dHIsDQo+ID4gKwkJ IGNvbnN0IHN0cnVjdCBydGVfZmxvd19pbmRpcl9hY3Rpb25fY29uZiAqY29uZiwNCj4gPiArCQkg Y29uc3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbiAqYWN0aW9ucywNCj4gPiArCQkgdm9pZCAqdXNl cl9kYXRhLCBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsNCj4gPiArCS8qKiBAc2VlIHJ0 ZV9mbG93X2FzeW5jX2FjdGlvbl9saXN0X2hhbmRsZV9kZXN0cm95KCkgKi8NCj4gPiArCWludCAo KmFzeW5jX2FjdGlvbl9saXN0X2hhbmRsZV9kZXN0cm95KQ0KPiA+ICsJCShzdHJ1Y3QgcnRlX2V0 aF9kZXYgKmRldiwgdWludDMyX3QgcXVldWVfaWQsDQo+ID4gKwkJIGNvbnN0IHN0cnVjdCBydGVf Zmxvd19vcF9hdHRyICpvcF9hdHRyLA0KPiA+ICsJCSBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2xp c3RfaGFuZGxlICphY3Rpb25faGFuZGxlLA0KPiA+ICsJCSB2b2lkICp1c2VyX2RhdGEsIHN0cnVj dCBydGVfZmxvd19lcnJvciAqZXJyb3IpOw0KPiA+ICsJLyoqIEBzZWUgcnRlX2Zsb3dfYWN0aW9u X2xpc3RfaGFuZGxlX3F1ZXJ5X3VwZGF0ZSgpICovDQo+ID4gKwlpbnQgKCphY3Rpb25fbGlzdF9o YW5kbGVfcXVlcnlfdXBkYXRlKQ0KPiA+ICsJCSh1aW50MTZfdCBwb3J0X2lkLA0KPiA+ICsJCSBj b25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2xpc3RfaGFuZGxlICpoYW5kbGUsDQo+ID4gKwkJ IGNvbnN0IHZvaWQgKip1cGRhdGUsIHZvaWQgKipxdWVyeSwNCj4gPiArCQkgZW51bSBydGVfZmxv d19xdWVyeV91cGRhdGVfbW9kZSBtb2RlLA0KPiA+ICsJCSBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3Ig KmVycm9yKTsNCj4gPiArCS8qKiBAc2VlIHJ0ZV9mbG93X2FzeW5jX2FjdGlvbl9saXN0X2hhbmRs ZV9xdWVyeV91cGRhdGUoKSAqLw0KPiA+ICsJaW50ICgqYXN5bmNfYWN0aW9uX2xpc3RfaGFuZGxl X3F1ZXJ5X3VwZGF0ZSkNCj4gPiArCQkodWludDE2X3QgcG9ydF9pZCwgdWludDMyX3QgcXVldWVf aWQsDQo+ID4gKwkJIGNvbnN0IHN0cnVjdCBydGVfZmxvd19vcF9hdHRyICphdHRyLA0KPiA+ICsJ CSBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX2xpc3RfaGFuZGxlICpoYW5kbGUsDQo+ID4g KwkJIGNvbnN0IHZvaWQgKip1cGRhdGUsIHZvaWQgKipxdWVyeSwNCj4gPiArCQkgZW51bSBydGVf Zmxvd19xdWVyeV91cGRhdGVfbW9kZSBtb2RlLA0KPiA+ICsJCSB2b2lkICp1c2VyX2RhdGEsIHN0 cnVjdCBydGVfZmxvd19lcnJvciAqZXJyb3IpOw0KPiA+ICsNCj4gPiAgfTsNCj4gPg0KPiA+ICAv KioNCj4gPiAtLQ0KPiA+IDIuMzQuMQ0KPiANCj4gQmVzdCwNCj4gT3JpDQoNCg==