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 213F9460D6; Tue, 21 Jan 2025 18:39:49 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A9AB3402C4; Tue, 21 Jan 2025 18:39:48 +0100 (CET) Received: from mx0a-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 77DE14026C for ; Tue, 21 Jan 2025 18:39:47 +0100 (CET) Received: from pps.filterd (m0431384.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 50LEm2Iv022074 for ; Tue, 21 Jan 2025 09:39:46 -0800 Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 44adnermj7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 21 Jan 2025 09:39:46 -0800 (PST) Received: from m0431384.ppops.net (m0431384.ppops.net [127.0.0.1]) by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 50LHdj4H004742; Tue, 21 Jan 2025 09:39:45 -0800 Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2044.outbound.protection.outlook.com [104.47.70.44]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 44adnermhd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 21 Jan 2025 09:39:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TFLtyYayC6cMYP4O+hUxsmdX+OT9x53Ho4vL8DIO4gfxnVD83D3a/TzAIftPbGEdie15XE1aQLLxZy7aDSGAiG7ToS6qAiqyvtdQcWv3e/+AOcxaO1oiObgVLtX2Ejmn8ZDY3PhRy2wcQiIOU8KfStmPOFwTclFc11A1+Af2RqqSMihzRJKejg28VMo8lx2+5nTJ+6+6i8JKXtFPb5v5M1NYCYKN2C0xLPj8UQlfPH7oIH9yKdQ9+LAN+wYUjrPX7GwKyBHB8qII0euPD4teFq78SKPkWiOPwxidl40FE0OPpfFy37y5zHn/DQ2E1cXfv1/SLB3ruUaFYPyTBQlXxw== 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=PYVoUlmtbGv7INVND7N8pPNnfdwnQjs4TFb0V4dsPZQ=; b=v/145N2jo6VIJJxxnmL7pT2QOujDwULe5kLzwO/odpQYD+5oD6MrHNXi4CIzPewgw+5fs8rTeLnHYiZHTReY+4x9M5CGIWW9/c5Erlead/Ru1iR+9FOAN6DOIr49re/B68Ow5vAvTX4J0yeQb6P4hN1Uf7vRoTHCd42//P6menjbURxhFw16lvplLL7aEYrwlCHPCk7e4vn3gBCnua5NyEYNsthj+IAQ1ajS7QI6DqQDAIesN0CZ6qLJI2lac+zxhelTpsvm3L4+4VBvSdtx7vm2CdGJjRQm5rgyAizLlWkqUHJTsHfIv1myhO5L0qBXP8+VDZtMHbpBOn4lqwvmdQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PYVoUlmtbGv7INVND7N8pPNnfdwnQjs4TFb0V4dsPZQ=; b=JGfVu5PMOkMSpBUqjwaiyb5g5SWR4UyH7YhISugN30N1N2jBZFF0GWqoWzPmMbSszFzRwPPBCKsMN1ROqcevbSZ7CD6DFIsLOBYlLA+vAAKChxTJHCmz+TeDEb65P1eGH9Omizk60udYDrO2vCBRw2COY91CXwZL4DuYGvd/ZTI= Received: from CO6PR18MB4484.namprd18.prod.outlook.com (2603:10b6:5:359::9) by IA3PR18MB6164.namprd18.prod.outlook.com (2603:10b6:208:521::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8356.21; Tue, 21 Jan 2025 17:39:43 +0000 Received: from CO6PR18MB4484.namprd18.prod.outlook.com ([fe80::3c98:dd36:4897:a51d]) by CO6PR18MB4484.namprd18.prod.outlook.com ([fe80::3c98:dd36:4897:a51d%7]) with mapi id 15.20.8377.009; Tue, 21 Jan 2025 17:39:43 +0000 From: Akhil Goyal To: Hanxiao Li , "dev@dpdk.org" Subject: RE: [EXTERNAL] [PATCH v24 11/13] compress/zsda: add zsda compressdev enqueue datapath Thread-Topic: [EXTERNAL] [PATCH v24 11/13] compress/zsda: add zsda compressdev enqueue datapath Thread-Index: AQHbZWTercfRAMeC1UOxPNKNVZ15wLMhi7ow Date: Tue, 21 Jan 2025 17:39:43 +0000 Message-ID: References: <20250109104203.2404659-2-li.hanxiao@zte.com.cn> <20250113022943.2603401-1-li.hanxiao@zte.com.cn> <20250113022943.2603401-12-li.hanxiao@zte.com.cn> In-Reply-To: <20250113022943.2603401-12-li.hanxiao@zte.com.cn> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CO6PR18MB4484:EE_|IA3PR18MB6164:EE_ x-ms-office365-filtering-correlation-id: 14533a6d-aef9-49b1-777c-08dd3a4296f2 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|376014|1800799024|366016|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?VWtOTlFma05ZT0Y0MUU5RnhGekFxQUJuSFlRREVGRDZxSk1KbU9NUjNKMFUw?= =?utf-8?B?WDMxVy8vaGlsL3JQVE8vZ2N0eFBrUGxCY0tUQ3RyMXFQcTJuVjZFeWRUTkI3?= =?utf-8?B?ZXluNy96T2p0SVQvZUo4SGZTVzJRTUlCcWEwdDlLcTBoTkZvTlErMDFzNUJY?= =?utf-8?B?S1N4YnRmVkxhNlVHZGtTTUs4Q3BncExsNGJTQk81MkRKVE5PYnNwc1BZR1FM?= =?utf-8?B?dlVHeDJKVDNKekJPZVhlQ01QaHljUjltdlRLcGhYMXhFcGNhbGlCUFRGN1ph?= =?utf-8?B?K0d0RGNoT1I0MjE4S0dvdEtwT2ZWYTd3VHVlNkgrZjJWWmJ6RGxaMG5QOEky?= =?utf-8?B?dlVnMTBqWitSMmcwWUdna2pvK3ZUT3lkaVJBc1MrYUNSengrSjRzVUtEV0d5?= =?utf-8?B?bFc2OHI4bGVuSFo2NTlOaytHK2FGNkpIZURBalZLTlhXSTF0RERzM21xVXpz?= =?utf-8?B?WXFFZFBQWnU4aTNTK1kzdFFhdytXd21SM1VuWWVEdWVuM09IYytyTWFlNUlj?= =?utf-8?B?M1BQM2JySlNKOFppUGd6UHZZd3ZYcy9pLy9Xd2pRSFNkUEpXQTdSMWEwbUY5?= =?utf-8?B?b2lJYkNSR3FxRUJoOFVCalVBa1laeE5SbTdYZ3A1R1I0dkZDV2dscmViRVI5?= =?utf-8?B?TURxYUtkbkQreEhRTytMVzFQTlJuZEhZVGUwUGo0S2dIWmFZSjllcGluTFR2?= =?utf-8?B?Ull6a3QwRCtHM1ZjTkdJckthSUpOWHBwb3Vic2FacElwRFcyOUlQTW04cFdN?= =?utf-8?B?TlJxNldRbVlUZ3d4WTc3d3BKaVlyeWhuNVpEUC9JNWt5M1dkQVkxN0IyeXdB?= =?utf-8?B?a2tHS2hkcjlEbGJKZFpFcnE5SmhER3BqWDVzTVRmcWtLQ1FQTGw2MkZnN2Y0?= =?utf-8?B?RlJibWtaYmNPdldTRVRWNGNmcFE0bGZmdWtvajlkazhBdDVlL1owaktqZ2RM?= =?utf-8?B?RU9GVldIaDdrSGtDL2k2MDhPVUVYcW1FQ2RHTFdsL3pNY3BxNytNY3FwdGZl?= =?utf-8?B?bkJEbkV6NXJFSFArSjdxRXBmeXRJeU5tN0xNdWFzN2pDa2Vxbk9od2ovaUFx?= =?utf-8?B?UFlOODUwaCtRT2pMdlNCSWFUck9Uemw5K29GZHBOcEgvc1ZCZkdJano4VVBY?= =?utf-8?B?NldvbWJhNVN6N1Z3aFgwa2taMVM5a04vK0tKbXdyYzd2NkVHRDFQNGNaYlZ4?= =?utf-8?B?dGhGNSs2NCtPTU5iMzFudEU0OUVGcEhCSkh2UC80aTNscDBXTVhzcGRyRndR?= =?utf-8?B?UlpEaHRndGFlUGdZTCtKaHkxcXVpa0ZkQ0g2TlltV1JINGhWOWlvUVhud2tB?= =?utf-8?B?OHNqTnNzdThHTlNXNWxrWld0NnVPdE1IaC9ZTTdXcU11QUhLeE5jK0dFR2Zw?= =?utf-8?B?RkdaN0JvVHpwblFhRzkvMlg4MDRFMWp6dmlqQ1NRVHVmWU51TXFLT2ZNL1pR?= =?utf-8?B?QWtMaGZCcEZlUHcreEJUVEJDVTF5ZG1jSG1vbm9OUFRnM0NpK0xvczErMndS?= =?utf-8?B?MVhqTG1mTHF0M2hpYXFCUDdxOHJZdDNtdSs1L3JUTnRGNHp3L3BjVjBMbElr?= =?utf-8?B?b2FnWnpxUDZrbXovNzJjZzZoMEF3ckZUbVI2czQwdGw0czR6WHBWSFlBQzB5?= =?utf-8?B?ZjZpUUFqbThBQS93QjlCalB5YUdWMG9XdW42eVpHNllGMU1BaDJzMGxZRzJy?= =?utf-8?B?WTVYK3RhYmlOdktiY1ZlZTU4NWQxN2lxQlJzbUxtbXlaTERsemRVZUxRVFkr?= =?utf-8?B?SmFmeEU1a0IxSkovbkw3cnhKSUcrVGpJWDlSS3RaMkN3dmJEN1pCYjFDRkRX?= =?utf-8?B?Z3FnN1R0UWEvTFF5VTNjS2tVSFlRUFd2MkEwQ2pjTG9yb09vTUdpSEhhWEtB?= =?utf-8?B?L3pVWEYwUE5MaVl2a09vMW80ZVBkZmkvZ0FtcEVFSGhzdkJuZ0xad1lQZTMy?= =?utf-8?Q?QgK0NObzmHunWteSeU5rfPa4wBjZnP+R?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO6PR18MB4484.namprd18.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(366016)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YjQvQnY4YUl6V3lWcURnbGNZSXhNUTljSlBGRURseWVTOGc1YjlMOXRNMlh2?= =?utf-8?B?N0F1YWRCdjdFWnVoZ0xOcjhVMmtyT3JGcWJCRFdLcE45b09hSkh1NnlUU0Rj?= =?utf-8?B?Nk9SYUVqZjVzREJPWmFBUnhuWjNjMy9EV2pmQXhuR2Z2TWF0dGE1SmF6OEw1?= =?utf-8?B?c1dGd0NsSG01Y1BydDBQenFSOTE5Zmt1Zi9PTnJ0VGs1N3hVUWF4NlJkc25S?= =?utf-8?B?QlRzS3doTmtMYTUwdDZhR3JLT0JzNXhqa3UrVmE1a1FhSUw4di93ckc0bmRJ?= =?utf-8?B?ME1xMDc4QTJjUldadGFQSHRBTDZNN3Q3TU9ENFV5K3ZWWklJRWIvTC93Y2Q5?= =?utf-8?B?VE4vYmlsUTRyZ2J2ZnlYd29Qa0N1dWpISGt3S0xxZkhZem1FY2FqTVY4ODdC?= =?utf-8?B?WG1DYWE3VWtoUDVEZVMxdDcxTThhbUdWOHNjMDZRUDZVNXEwWFJLR2xxd0JX?= =?utf-8?B?b1RRbHBOOEZiZjJDSkJYWVpMNWR3Zk1kUERxbnZsNGg1THBJSnZIeDhpalpy?= =?utf-8?B?bmVFZ0dZUzlsZmpWN0o3Yi9tY2xnMGY4WHdZRFRvMnJCdm1LVVVrZjdSc0ds?= =?utf-8?B?VzN0WWxUMGRDVmJWbk1qVVFnb3VCNGJ1N2RIOXZTeU55RzA1OU54SThoTDJt?= =?utf-8?B?TSs1Y3cwQzVXemhzelRvc0ZQQVF3ME5FdkU4Mkt5MmRDRXM1MFpJVFRXckdE?= =?utf-8?B?ZGNwREFEbUMwVWdNNlBhWCt1ZmxwWHduYUZKT0o3aDFzYThPSVF3bnlHNGU5?= =?utf-8?B?ZkpsK2J0M2RJczJOT1JOSkJXVTNHUk03RWQxSnBGRWgwdHQ4ZkhyQ3hPNnJX?= =?utf-8?B?Q0I0K3Jwem5xK1hFZTVDMG5UeWdKRlRVSFRkYlRMYnJ4a3NSZXhHNm0wNkZ5?= =?utf-8?B?Tms1ZGt6ck5lc0l1c3R5Q0hDRDBhNTc2L1QxMjVGM2l0d29TbG85Y0g2TmF2?= =?utf-8?B?N1d3eTcwMmtOU0NXVHFra3lpTFJpbWs1TmtlOXp0ZUdwS0NFZWw0ajA4Ukpy?= =?utf-8?B?UjdzckJsa04vYTlic3pOMkh0N2RlaVBzSUxLSHU2STJlbldCbVFIUVJGUGQw?= =?utf-8?B?OTBzOGJRQnNEeGhkMWpNaDJ1bDRjQ0tYOUZZc3FJdGlBbi9FZHFqcnl4MDYz?= =?utf-8?B?ajM2czc1NVhXb3pVcmhOMmZoTlhsMmZiUWNQNnZwSUl0aVh2YUxDT1JWb0tG?= =?utf-8?B?bG5qSXAyekxhVjhuNWxXb2V0WFEyYWZHM2RDY1RNVWZhZ3VOSEtzTXRXam1X?= =?utf-8?B?eklOSFdUNFkrcXl4TGsxb2tWa282SllOZkhUdjNTWGxsbGVLK3h0S0xMUFVE?= =?utf-8?B?YW1yanR4bUJHVXU4eFBIWG02ZDFWSkRlTCtSUm8yVTZ3NFhzU0FBMVNSODc4?= =?utf-8?B?NzJMNmE5Slg4aUxndlJTZU02eG0xQnJNL3RVa2IrMEpCbFF3elBXcExFZGVq?= =?utf-8?B?ZlNFcTBUbWtDRnNacUJmN2t2YW5GMXpFY3o5V0diOXhreUpBcjBzQW96RXY5?= =?utf-8?B?MHpyajRYZlNWNDkvR2RMaTQ2RUpPRzFlNGp2NlVxZFJLaGNFcHY4NDVKVHVt?= =?utf-8?B?SlJWbzI0dUxVVmhPSFdHcEZ5anhSeVJIczNuNXJ0T3lySkRwYmJZMXZTbHJM?= =?utf-8?B?SGlqc21zU1RBTzZRYWNKUWNYaitLQTB2a05rcTQ5OW14dEJITVFMYm5sTXpn?= =?utf-8?B?RFh6QW5ZU1p6K1RlSlRGS0VITnZxZHllc2ZaZFJsNlZPeWtYaDl0NjNXdEN3?= =?utf-8?B?MXFuWmJoR25oQjN3cTBoWkt4c2hkaEQ3R2pEMGkremQ0TzZjSjYwLzRhbzdz?= =?utf-8?B?d1FHNVBJRWRzNnRRcnZTaDNrVndaTXlQUTUyamlBd1JhV3IzNm03bjlSMVdI?= =?utf-8?B?TExHRUVWUkdpb1BpSWNFSWxWMzlYUVY3OEh1eEJWTVV0RDdJMEtQUlFMRFNN?= =?utf-8?B?L0E5WWE5NHFuM1VmZXlDQUxxenJ4OExWYVR3RllaYXlFem9IYnBzTVExQlNl?= =?utf-8?B?VjRVTU1WWGdiUEhsRHJkeEdaYmZnOEhLYmdUK0FXajVieWdUa1p2Y0s2VFhZ?= =?utf-8?B?RzBtU0ZiT1V4ZlNnUHVKRDF2U1kwS0RQTzRWaWIzZm5zSThyZkd5WmxhN1lz?= =?utf-8?Q?PpNI=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO6PR18MB4484.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 14533a6d-aef9-49b1-777c-08dd3a4296f2 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jan 2025 17:39:43.0977 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: A1D7pYcmS6gv64nZmfULaud052xVytoAMW8GDDzQ6BnLoZz7yTNPUFobpBa4UWarzljZXCLi5301Bd1KQagaEQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA3PR18MB6164 X-Proofpoint-GUID: Xov626RKH0-670-HqHG6p296kyeLYm_m X-Proofpoint-ORIG-GUID: P9aEBLryAMaVIGNzHT9B3bWnLBWN-0pu X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-01-21_07,2025-01-21_03,2024-11-22_01 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 PiBBZGQgenNkYSBjb21wcmVzc2RldiBlbnF1ZXVlIGRhdGFwYXRoLg0KPiANCj4gU2lnbmVkLW9m Zi1ieTogSGFueGlhbyBMaSA8bGkuaGFueGlhb0B6dGUuY29tLmNuPg0KPiAtLS0NCj4gIGRyaXZl cnMvY29tbW9uL3pzZGEvbWVzb24uYnVpbGQgICAgICAgfCAgIDIgKy0NCj4gIGRyaXZlcnMvY29t bW9uL3pzZGEvenNkYV9xcC5jICAgICAgICAgfCAxMDYgKysrKysrKysrKysrDQo+ICBkcml2ZXJz L2NvbW1vbi96c2RhL3pzZGFfcXAuaCAgICAgICAgIHwgIDEzICstDQo+ICBkcml2ZXJzL2NvbW1v bi96c2RhL3pzZGFfcXBfY29tbW9uLmMgIHwgIDcyICsrKysrKysrDQo+ICBkcml2ZXJzL2NvbW1v bi96c2RhL3pzZGFfcXBfY29tbW9uLmggIHwgIDMwICsrKysNCj4gIGRyaXZlcnMvY29tcHJlc3Mv enNkYS96c2RhX2NvbXAuYyAgICAgfCAyMzMgKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4g IGRyaXZlcnMvY29tcHJlc3MvenNkYS96c2RhX2NvbXAuaCAgICAgfCAgMzYgKysrKw0KPiAgZHJp dmVycy9jb21wcmVzcy96c2RhL3pzZGFfY29tcF9wbWQuYyB8ICAxNSArLQ0KPiAgOCBmaWxlcyBj aGFuZ2VkLCA1MDQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL2NvbXByZXNzL3pzZGEvenNkYV9jb21wLmMNCj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL2NvbXByZXNzL3pzZGEvenNkYV9jb21wLmgNCj4gDQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2NvbW1vbi96c2RhL21lc29uLmJ1aWxkDQo+IGIvZHJpdmVycy9jb21tb24v enNkYS9tZXNvbi5idWlsZA0KPiBpbmRleCA2ZTZkNWFiMDA2Li4xNTIxNTBlNWVmIDEwMDY0NA0K PiAtLS0gYS9kcml2ZXJzL2NvbW1vbi96c2RhL21lc29uLmJ1aWxkDQo+ICsrKyBiL2RyaXZlcnMv Y29tbW9uL3pzZGEvbWVzb24uYnVpbGQNCj4gQEAgLTIwLDcgKzIwLDcgQEAgenNkYV9jb21wcmVz c19wYXRoID0gJ2NvbXByZXNzL3pzZGEnDQo+ICB6c2RhX2NvbXByZXNzX3JlbHBhdGggPSAnLi4v Li4vJyArIHpzZGFfY29tcHJlc3NfcGF0aA0KPiAgaW5jbHVkZXMgKz0gaW5jbHVkZV9kaXJlY3Rv cmllcyh6c2RhX2NvbXByZXNzX3JlbHBhdGgpDQo+ICBpZiB6c2RhX2NvbXByZXNzDQo+IC0gICAg Zm9yZWFjaCBmOiBbJ3pzZGFfY29tcF9wbWQuYyddDQo+ICsgICAgZm9yZWFjaCBmOiBbJ3pzZGFf Y29tcF9wbWQuYycsICd6c2RhX2NvbXAuYyddDQo+ICAgICAgICAgIHNvdXJjZXMgKz0gZmlsZXMo am9pbl9wYXRocyh6c2RhX2NvbXByZXNzX3JlbHBhdGgsIGYpKQ0KPiAgICAgIGVuZGZvcmVhY2gN Cj4gIGVuZGlmDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NvbW1vbi96c2RhL3pzZGFfcXAuYyBi L2RyaXZlcnMvY29tbW9uL3pzZGEvenNkYV9xcC5jDQo+IGluZGV4IDY2YjIxMmIzOWUuLjUzMTY5 YWZlYTQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvY29tbW9uL3pzZGEvenNkYV9xcC5jDQo+ICsr KyBiL2RyaXZlcnMvY29tbW9uL3pzZGEvenNkYV9xcC5jDQo+IEBAIC03ODMsMyArNzgzLDEwOSBA QCB6c2RhX3Rhc2tfcXVldWVfc2V0dXAoc3RydWN0IHpzZGFfcGNpX2RldmljZQ0KPiAqenNkYV9w Y2lfZGV2LA0KPiANCj4gICAgICByZXR1cm4gcmV0Ow0KPiAgfQ0KPiArDQo+ICtzdGF0aWMgaW50 DQo+ICt6c2RhX2ZyZWVfY29va2llX2ZpbmQoY29uc3Qgc3RydWN0IHpzZGFfcXVldWUgKnF1ZXVl LCB2b2lkICoqb3BfY29va2llLA0KPiArICAgICAgICAgICAgICB1aW50MTZfdCAqaWR4KQ0KPiAr ew0KPiArICAgIHVpbnQxNl90IG9sZF90YWlsID0gcXVldWUtPnRhaWw7DQo+ICsgICAgdWludDE2 X3QgdGFpbCA9IHF1ZXVlLT50YWlsOw0KPiArICAgIHN0cnVjdCB6c2RhX29wX2Nvb2tpZSAqY29v a2llOw0KPiArDQo+ICsgICAgZG8gew0KPiArICAgICAgICBjb29raWUgPSBvcF9jb29raWVbdGFp bF07DQo+ICsgICAgICAgIGlmICghY29va2llLT51c2VkKSB7DQo+ICsgICAgICAgICAgICAqaWR4 ID0gdGFpbCAmIChxdWV1ZS0+cXVldWVfc2l6ZSAtIDEpOw0KPiArICAgICAgICAgICAgcmV0dXJu IFpTREFfU1VDQ0VTUzsNCj4gKyAgICAgICAgfQ0KPiArICAgICAgICB0YWlsID0genNkYV9tb2R1 bG9fMTYodGFpbCsrLCBxdWV1ZS0+bW9kdWxvX21hc2spOw0KPiArICAgIH0gd2hpbGUgKG9sZF90 YWlsICE9IHRhaWwpOw0KPiArDQo+ICsgICAgcmV0dXJuIC1FSU5WQUw7DQo+ICt9DQo+ICsNCj4g K3N0YXRpYyBpbnQNCj4gK3pzZGFfZW5xdWV1ZSh2b2lkICpvcCwgc3RydWN0IHpzZGFfcXAgKnFw KQ0KPiArew0KPiArICAgIHVpbnQxNl90IG5ld190YWlsOw0KPiArICAgIGVudW0genNkYV9zZXJ2 aWNlX3R5cGUgdHlwZTsNCj4gKyAgICB2b2lkICoqb3BfY29va2llOw0KPiArICAgIGludCByZXQg PSBaU0RBX1NVQ0NFU1M7DQo+ICsgICAgc3RydWN0IHpzZGFfcXVldWUgKnF1ZXVlOw0KPiArDQo+ ICsgICAgZm9yICh0eXBlID0gMDsgdHlwZSA8IFpTREFfU0VSVklDRV9JTlZBTElEOyB0eXBlKysp IHsNCj4gKyAgICAgICAgaWYgKHFwLT5zcnZbdHlwZV0udXNlZCkgew0KPiArICAgICAgICAgICAg aWYgKCFxcC0+c3J2W3R5cGVdLm1hdGNoKG9wKSkNCj4gKyAgICAgICAgICAgICAgICBjb250aW51 ZTsNCj4gKyAgICAgICAgICAgIHF1ZXVlID0gJnFwLT5zcnZbdHlwZV0udHhfcTsNCj4gKyAgICAg ICAgICAgIG9wX2Nvb2tpZSA9IHFwLT5zcnZbdHlwZV0ub3BfY29va2llczsNCj4gKw0KPiArICAg ICAgICAgICAgaWYgKHpzZGFfZnJlZV9jb29raWVfZmluZChxdWV1ZSwgb3BfY29va2llLA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAmbmV3X3RhaWwpKSB7DQo+ICsgICAgICAgICAgICAg ICAgcmV0ID0gLUVCVVNZOw0KPiArICAgICAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgICAg ICAgfQ0KPiArICAgICAgICAgICAgcmV0ID0gcXAtPnNydlt0eXBlXS50eF9jYihvcCwgcXVldWUs IG9wX2Nvb2tpZSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3RhaWwpOw0KPiAr ICAgICAgICAgICAgaWYgKHJldCkgew0KPiArICAgICAgICAgICAgICAgIHFwLT5zcnZbdHlwZV0u c3RhdHMuZW5xdWV1ZV9lcnJfY291bnQrKzsNCj4gKyAgICAgICAgICAgICAgICBaU0RBX0xPRyhF UlIsICJGYWlsZWQhIGNvbmZpZyB3cWUiKTsNCj4gKyAgICAgICAgICAgICAgICBicmVhazsNCj4g KyAgICAgICAgICAgIH0NCj4gKyAgICAgICAgICAgIHFwLT5zcnZbdHlwZV0uc3RhdHMuZW5xdWV1 ZWRfY291bnQrKzsNCj4gKw0KPiArICAgICAgICAgICAgcXVldWUtPnRhaWwgPSB6c2RhX21vZHVs b18xNihuZXdfdGFpbCArIDEsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXVl LT5xdWV1ZV9zaXplIC0gMSk7DQo+ICsNCj4gKyAgICAgICAgICAgIGlmIChuZXdfdGFpbCA+IHF1 ZXVlLT50YWlsKQ0KPiArICAgICAgICAgICAgICAgIHF1ZXVlLT52YWxpZCA9DQo+ICsgICAgICAg ICAgICAgICAgICAgIHpzZGFfbW9kdWxvXzgocXVldWUtPnZhbGlkICsgMSwNCj4gKyAgICAgICAg ICAgICAgICAgICAgKHVpbnQ4X3QpKHF1ZXVlLT5jeWNsZV9zaXplIC0gMSkpOw0KPiArDQo+ICsg ICAgICAgICAgICBxdWV1ZS0+cHVzaGVkX3dxZSsrOw0KPiArICAgICAgICAgICAgYnJlYWs7DQo+ ICsgICAgICAgIH0NCj4gKyAgICB9DQo+ICsNCj4gKyAgICByZXR1cm4gcmV0Ow0KPiArfQ0KPiAr DQo+ICtzdGF0aWMgdm9pZA0KPiArenNkYV90eF90YWlsX3dyaXRlKHN0cnVjdCB6c2RhX3F1ZXVl ICpxdWV1ZSkNCj4gK3sNCj4gKyAgICBpZiAocXVldWUtPnB1c2hlZF93cWUpDQo+ICsgICAgICAg IFdSSVRFX0NTUl9XUV9UQUlMKHF1ZXVlLT5pb19hZGRyLCBxdWV1ZS0+aHdfcXVldWVfbnVtYmVy LA0KPiArICAgICAgICAgICAgICAgICAgcXVldWUtPnRhaWwpOw0KPiArDQo+ICsgICAgcXVldWUt PnB1c2hlZF93cWUgPSAwOw0KPiArfQ0KPiArDQo+ICt1aW50MTZfdA0KPiArenNkYV9lbnF1ZXVl X2J1cnN0KHN0cnVjdCB6c2RhX3FwICpxcCwgdm9pZCAqKm9wcywgY29uc3QgdWludDE2X3QgbmJf b3BzKQ0KPiArew0KPiArICAgIGludCByZXQgPSBaU0RBX1NVQ0NFU1M7DQo+ICsgICAgZW51bSB6 c2RhX3NlcnZpY2VfdHlwZSB0eXBlOw0KPiArICAgIHVpbnQxNl90IGk7DQo+ICsgICAgdWludDE2 X3QgbmJfc2VuZCA9IDA7DQo+ICsgICAgdm9pZCAqb3A7DQo+ICsNCj4gKyAgICBpZiAobmJfb3Bz ID4gWlNEQV9NQVhfREVTQykgew0KPiArICAgICAgICBaU0RBX0xPRyhFUlIsICJFbnF1ZXVlIG51 bWJlciBiaWdnZXIgdGhhbiAlZCIsIFpTREFfTUFYX0RFU0MpOw0KPiArICAgICAgICByZXR1cm4g MDsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBmb3IgKGkgPSAwOyBpIDwgbmJfb3BzOyBpKyspIHsN Cj4gKyAgICAgICAgb3AgPSBvcHNbaV07DQo+ICsgICAgICAgIHJldCA9IHpzZGFfZW5xdWV1ZShv cCwgcXApOw0KPiArICAgICAgICBpZiAocmV0IDwgMCkNCj4gKyAgICAgICAgICAgIGJyZWFrOw0K PiArICAgICAgICBuYl9zZW5kKys7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgZm9yICh0eXBlID0g MDsgdHlwZSA8IFpTREFfU0VSVklDRV9JTlZBTElEOyB0eXBlKyspDQo+ICsgICAgICAgIGlmIChx cC0+c3J2W3R5cGVdLnVzZWQpDQo+ICsgICAgICAgICAgICB6c2RhX3R4X3RhaWxfd3JpdGUoJnFw LT5zcnZbdHlwZV0udHhfcSk7DQo+ICsNCj4gKyAgICByZXR1cm4gbmJfc2VuZDsNCj4gK30NCj4g Kw0KDQpGaXggdGhpcyBleHRyYSBsaW5lIGF0IGVuZCBvZiBmaWxlLg0KZ2l0IGFtIHdpbGwgY29t cGxhaW4gd2hpbGUgYXBwbHlpbmcgdGhlIHBhdGNoLg0KDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2NvbW1vbi96c2RhL3pzZGFfcXAuaCBiL2RyaXZlcnMvY29tbW9uL3pzZGEvenNkYV9xcC5oDQo+ IGluZGV4IGM3OWJmYjVkMzYuLjk2ZmMzOGVhMDkgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvY29t bW9uL3pzZGEvenNkYV9xcC5oDQo+ICsrKyBiL2RyaXZlcnMvY29tbW9uL3pzZGEvenNkYV9xcC5o DQo+IEBAIC00OCw3ICs0OCw2IEBADQo+ICAjZGVmaW5lIFNFVF9DWUNMRSAgICAgICAgICAgIDB4 ZmYNCj4gICNkZWZpbmUgU0VUX0hFQURfSU5USSAgICAgICAgMHgwDQo+IA0KPiAtDQo+ICAjZGVm aW5lIFpTREFfVElNRV9TTEVFUF9VUyAgICAxMDANCj4gICNkZWZpbmUgWlNEQV9USU1FX05VTSAg ICAgICAgNTAwDQo+IA0KPiBAQCAtOTUsNiArOTQsMTUgQEANCj4gICAgICAgICAgICAgICAgICB1 X2Jhc2UpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICAg ICAgfSB3aGlsZSAoMCkNCj4gDQo+ICsjZGVmaW5lIFJFQURfQ1NSX1dRX0hFQUQoY3NyX2Jhc2Vf YWRkciwgcmluZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiArICAgIFpT REFfQ1NSX1JEKGNzcl9iYXNlX2FkZHIsIFdRX1RBSUwgKyAocmluZyA8PCAzKSkNCj4gKyNkZWZp bmUgV1JJVEVfQ1NSX1dRX1RBSUwoY3NyX2Jhc2VfYWRkciwgcmluZywgdmFsdWUpICAgICAgICAg ICAgICAgICAgICAgICAgICBcDQo+ICsgICAgWlNEQV9DU1JfV0NfV1IoY3NyX2Jhc2VfYWRkciwg V1FfVEFJTCArIChyaW5nIDw8IDMpLCB2YWx1ZSkNCj4gKyNkZWZpbmUgUkVBRF9DU1JfQ1FfSEVB RChjc3JfYmFzZV9hZGRyLCByaW5nKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc DQo+ICsgICAgWlNEQV9DU1JfUkQoY3NyX2Jhc2VfYWRkciwgV1FfVEFJTCArIChyaW5nIDw8IDMp KQ0KPiArI2RlZmluZSBXUklURV9DU1JfQ1FfSEVBRChjc3JfYmFzZV9hZGRyLCByaW5nLCB2YWx1 ZSkgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gKyAgICBaU0RBX0NTUl9XQ19XUihjc3Jf YmFzZV9hZGRyLCBDUV9IRUFEICsgKHJpbmcgPDwgMyksIHZhbHVlKQ0KPiArDQo+ICBleHRlcm4g c3RydWN0IHpzZGFfbnVtX3FwcyB6c2RhX25iX3FwczsNCj4gDQo+ICBlbnVtIHpzZGFfYWRtaW5f bXNnX2lkIHsNCj4gQEAgLTE3OSw0ICsxODcsNyBAQCB6c2RhX3Fwc19od19wZXJfc2VydmljZShz dHJ1Y3QgenNkYV9wY2lfZGV2aWNlDQo+ICp6c2RhX3BjaV9kZXYsDQo+IA0KPiAgaW50IHpzZGFf dGFza19xdWV1ZV9zZXR1cChzdHJ1Y3QgenNkYV9wY2lfZGV2aWNlICp6c2RhX3BjaV9kZXYsDQo+ ICAgICAgICAgICAgICBzdHJ1Y3QgenNkYV9xcCAqcXAsIHN0cnVjdCB0YXNrX3F1ZXVlX2luZm8g KnRhc2tfcV9pbmZvKTsNCj4gKw0KPiArdWludDE2X3QgenNkYV9lbnF1ZXVlX2J1cnN0KHN0cnVj dCB6c2RhX3FwICpxcCwgdm9pZCAqKm9wcywgY29uc3QgdWludDE2X3QNCj4gbmJfb3BzKTsNCj4g Kw0KPiAgI2VuZGlmIC8qIF9aU0RBX1FQX0hfICovDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Nv bW1vbi96c2RhL3pzZGFfcXBfY29tbW9uLmMNCj4gYi9kcml2ZXJzL2NvbW1vbi96c2RhL3pzZGFf cXBfY29tbW9uLmMNCj4gaW5kZXggNTc3MzkyODcxZi4uMzk5ZmJhODdlMyAxMDA2NDQNCj4gLS0t IGEvZHJpdmVycy9jb21tb24venNkYS96c2RhX3FwX2NvbW1vbi5jDQo+ICsrKyBiL2RyaXZlcnMv Y29tbW9uL3pzZGEvenNkYV9xcF9jb21tb24uYw0KPiBAQCAtMTE4LDMgKzExOCw3NSBAQCB6c2Rh X3N0YXRzX3Jlc2V0KHZvaWQgKipxdWV1ZV9wYWlycywgY29uc3QgdWludDMyX3QNCj4gbmJfcXVl dWVfcGFpcnMpDQo+ICAgICAgICAgIH0NCj4gICAgICB9DQo+ICB9DQo+ICsNCj4gK2ludA0KPiAr enNkYV9zZ2xfZmlsbChjb25zdCBzdHJ1Y3QgcnRlX21idWYgKmJ1ZiwgdWludDMyX3Qgb2Zmc2V0 LCBzdHJ1Y3QgenNkYV9zZ2wgKnNnbCwNCj4gKyAgICAgICAgICBjb25zdCBwaHlzX2FkZHJfdCBz Z2xfcGh5X2FkZHIsIHVpbnQzMl90IHJlbWFpbl9sZW4sDQo+ICsgICAgICAgICAgc3RydWN0IGNv bXBfaGVhZF9pbmZvICpjb21wX2hlYWRfaW5mbykNCj4gK3sNCj4gKyAgICB1aW50MzJfdCBucjsN Cj4gKyAgICB1aW50MTZfdCBwdXRfaW5fbGVuOw0KPiArICAgIGJvb2wgaGVhZF9zZXQgPSBmYWxz ZTsNCj4gKw0KPiArICAgIGZvciAobnIgPSAwOyAoYnVmICYmIChuciA8IChaU0RBX1NHTF9NQVhf TlVNQkVSIC0gMSkpKTspIHsNCj4gKyAgICAgICAgaWYgKG9mZnNldCA+PSBydGVfcGt0bWJ1Zl9k YXRhX2xlbihidWYpKSB7DQo+ICsgICAgICAgICAgICBvZmZzZXQgLT0gcnRlX3BrdG1idWZfZGF0 YV9sZW4oYnVmKTsNCj4gKyAgICAgICAgICAgIGJ1ZiA9IGJ1Zi0+bmV4dDsNCj4gKyAgICAgICAg ICAgIGNvbnRpbnVlOw0KPiArICAgICAgICB9DQo+ICsgICAgICAgIG1lbXNldCgmKHNnbC0+YnVm ZmVyc1tucl0pLCAwLCBzaXplb2Yoc3RydWN0IHpzZGFfYnVmKSk7DQo+ICsgICAgICAgIGlmICgo bnIgPiAwKSAmJiAoKChuciArIDEpICUgWlNEQV9TR0xfRlJBR01FTlRfU0laRSkgPT0gMCkgJiYN Cj4gKyAgICAgICAgICAgIChidWYtPm5leHQgIT0gTlVMTCkpIHsNCj4gKyAgICAgICAgICAgIHNn bC0+YnVmZmVyc1tucl0ubGVuID0gU0dMX1RZUEVfUEhZU19BRERSOw0KPiArICAgICAgICAgICAg c2dsLT5idWZmZXJzW25yXS5hZGRyID0NCj4gKyAgICAgICAgICAgICAgICBzZ2xfcGh5X2FkZHIg Kw0KPiArICAgICAgICAgICAgICAgICgobnIgKyAxKSAqIHNpemVvZihzdHJ1Y3QgenNkYV9idWYp KTsNCj4gKyAgICAgICAgICAgIHNnbC0+YnVmZmVyc1tucl0udHlwZSA9IFNHTF9UWVBFX05FWFRf TElTVDsNCj4gKyAgICAgICAgICAgICsrbnI7DQo+ICsgICAgICAgICAgICBjb250aW51ZTsNCj4g KyAgICAgICAgfQ0KPiArICAgICAgICBpZiAoY29tcF9oZWFkX2luZm8gJiYgIWhlYWRfc2V0KSB7 DQo+ICsgICAgICAgICAgICBzZ2wtPmJ1ZmZlcnNbbnJdLmxlbiA9IGNvbXBfaGVhZF9pbmZvLT5o ZWFkX2xlbjsNCj4gKyAgICAgICAgICAgIHNnbC0+YnVmZmVyc1tucl0uYWRkciA9IGNvbXBfaGVh ZF9pbmZvLT5oZWFkX3BoeXNfYWRkcjsNCj4gKyAgICAgICAgICAgIHNnbC0+YnVmZmVyc1tucl0u dHlwZSA9IFNHTF9UWVBFX1BIWVNfQUREUjsNCj4gKyAgICAgICAgICAgICsrbnI7DQo+ICsgICAg ICAgICAgICBoZWFkX3NldCA9IHRydWU7DQo+ICsgICAgICAgICAgICByZW1haW5fbGVuIC09IGNv bXBfaGVhZF9pbmZvLT5oZWFkX2xlbjsNCj4gKyAgICAgICAgICAgIGNvbnRpbnVlOw0KPiArICAg ICAgICB9IGVsc2Ugew0KPiArICAgICAgICAgICAgcHV0X2luX2xlbiA9IHJ0ZV9wa3RtYnVmX2Rh dGFfbGVuKGJ1ZikgLSAob2Zmc2V0ICYgMHhmZmZmKTsNCj4gKyAgICAgICAgICAgIGlmIChyZW1h aW5fbGVuIDw9IHB1dF9pbl9sZW4pDQo+ICsgICAgICAgICAgICAgICAgcHV0X2luX2xlbiA9IHJl bWFpbl9sZW47DQo+ICsgICAgICAgICAgICByZW1haW5fbGVuIC09IHB1dF9pbl9sZW47DQo+ICsN Cj4gKyAgICAgICAgICAgIHNnbC0+YnVmZmVyc1tucl0ubGVuID0gcHV0X2luX2xlbjsNCj4gKyAg ICAgICAgICAgIHNnbC0+YnVmZmVyc1tucl0uYWRkciA9IHJ0ZV9wa3RtYnVmX2lvdmFfb2Zmc2V0 KGJ1Ziwgb2Zmc2V0KTsNCj4gKyAgICAgICAgICAgIHNnbC0+YnVmZmVyc1tucl0udHlwZSA9IFNH TF9UWVBFX1BIWVNfQUREUjsNCj4gKyAgICAgICAgfQ0KPiArICAgICAgICBvZmZzZXQgPSAwOw0K PiArICAgICAgICArK25yOw0KPiArICAgICAgICBidWYgPSBidWYtPm5leHQ7DQo+ICsNCj4gKyAg ICAgICAgaWYgKHJlbWFpbl9sZW4gPT0gMCkNCj4gKyAgICAgICAgICAgIGJyZWFrOw0KPiArICAg IH0NCj4gKw0KPiArICAgIGlmIChuciA9PSAwKSB7DQo+ICsgICAgICAgIFpTREFfTE9HKEVSUiwg IkluIGZpbGxfc2dsLCBuciA9PSAwIik7DQo+ICsgICAgICAgIHJldHVybiBaU0RBX0ZBSUxFRDsN Cj4gKyAgICB9DQo+ICsNCj4gKyAgICBzZ2wtPmJ1ZmZlcnNbbnIgLSAxXS50eXBlID0gU0dMX1RZ UEVfTEFTVF9QSFlTX0FERFI7DQo+ICsNCj4gKyAgICBpZiAoYnVmKSB7DQo+ICsgICAgICAgIGlm ICh1bmxpa2VseShidWYtPm5leHQpKSB7DQo+ICsgICAgICAgICAgICBpZiAobnIgPT0gKFpTREFf U0dMX01BWF9OVU1CRVIgLSAxKSkgew0KPiArICAgICAgICAgICAgICAgIFpTREFfTE9HKEVSUiwg IkVSUiEgc2VncyBzaXplICgldSkiLA0KPiArICAgICAgICAgICAgICAgICAgICAgKFpTREFfU0dM X01BWF9OVU1CRVIpKTsNCj4gKyAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gKyAg ICAgICAgICAgIH0NCj4gKyAgICAgICAgfQ0KPiArICAgIH0NCj4gKw0KPiArICAgIHJldHVybiBa U0RBX1NVQ0NFU1M7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NvbW1vbi96c2RhL3pz ZGFfcXBfY29tbW9uLmgNCj4gYi9kcml2ZXJzL2NvbW1vbi96c2RhL3pzZGFfcXBfY29tbW9uLmgN Cj4gaW5kZXggYmE3N2IwZjAyNy4uMmIxYTU0OWE2OSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9j b21tb24venNkYS96c2RhX3FwX2NvbW1vbi5oDQo+ICsrKyBiL2RyaXZlcnMvY29tbW9uL3pzZGEv enNkYV9xcF9jb21tb24uaA0KPiBAQCAtNDMsNiArNDMsMjcgQEAgZW51bSB6c2RhX3NlcnZpY2Vf dHlwZSB7DQo+ICAjZGVmaW5lIFpTREFfTUFYX0NZQ0xFICAgICAgICAyNTYNCj4gICNkZWZpbmUg WlNEQV9NQVhfREVWICAgICAgICBSVEVfUE1EX1pTREFfTUFYX1BDSV9ERVZJQ0VTDQo+ICAjZGVm aW5lIE1BWF9OVU1fT1BTICAgICAgICAgICAgMHgxRkYNCj4gKyNkZWZpbmUgWlNEQV9TR0xfRlJB R01FTlRfU0laRSAgICAzMg0KPiArDQo+ICsjZGVmaW5lIFpTREFfT1BDX0NPTVBfR1pJUCAgICAg ICAgMHgxMCAvKiBFbmNvbXAgZGVmbGF0ZS1HemlwICovDQo+ICsjZGVmaW5lIFpTREFfT1BDX0NP TVBfWkxJQiAgICAgICAgMHgxMSAvKiBFbmNvbXAgZGVmbGF0ZS1abGliICovDQo+ICsjZGVmaW5l IFpTREFfT1BDX0RFQ09NUF9HWklQICAgIDB4MTggLyogRGVjb21wIGluZmxhdGUtR3ppcCAqLw0K PiArI2RlZmluZSBaU0RBX09QQ19ERUNPTVBfWkxJQiAgICAweDE5IC8qIERlY29tcCBpbmZsYXRl LVpsaWIgKi8NCj4gKyNkZWZpbmUgWlNEQV9PUENfSU5WQUxJRCAgICAgICAgMHhmZg0KPiArDQo+ ICtlbnVtIHdxZV9lbGVtZW50X3R5cGUgew0KPiArICAgIFdRRV9FTE1fVFlQRV9QSFlTX0FERFIg PSAxLA0KPiArICAgIFdRRV9FTE1fVFlQRV9MSVNULA0KPiArICAgIFdRRV9FTE1fVFlQRV9MSVNU X0FERFIsDQo+ICsgICAgV1FFX0VMTV9UWVBFX0xJU1RfU0dMMzIsDQo+ICt9Ow0KPiArDQo+ICtl bnVtIHNnbF9lbGVtZW50X3R5cGUgew0KPiArICAgIFNHTF9UWVBFX1BIWVNfQUREUiA9IDAsDQo+ ICsgICAgU0dMX1RZUEVfTEFTVF9QSFlTX0FERFIsDQo+ICsgICAgU0dMX1RZUEVfTkVYVF9MSVNU LA0KPiArICAgIFNHTF9UWVBFX0VDX0xFVkVMMV9TR0wzMiwNCj4gK307DQo+IA0KPiAgc3RydWN0 IHpzZGFfYWRtaW5fcmVxIHsNCj4gICAgICB1aW50MTZfdCBtc2dfdHlwZTsNCj4gQEAgLTE1OSwx MCArMTgwLDE5IEBAIHN0cnVjdCBfX3J0ZV9jYWNoZV9hbGlnbmVkIHpzZGFfc2dsIHsNCj4gICAg ICBzdHJ1Y3QgenNkYV9idWYgYnVmZmVyc1taU0RBX1NHTF9NQVhfTlVNQkVSXTsNCj4gIH07DQo+ IA0KPiArc3RydWN0IGNvbXBfaGVhZF9pbmZvIHsNCj4gKyAgICB1aW50MzJfdCBoZWFkX2xlbjsN Cj4gKyAgICBwaHlzX2FkZHJfdCBoZWFkX3BoeXNfYWRkcjsNCj4gK307DQo+ICsNCj4gIHZvaWQg enNkYV9xdWV1ZV9kZWxldGUoY29uc3Qgc3RydWN0IHpzZGFfcXVldWUgKnF1ZXVlKTsNCj4gIGlu dCB6c2RhX3F1ZXVlX3BhaXJfcmVsZWFzZShzdHJ1Y3QgenNkYV9xcCAqKnFwX2FkZHIpOw0KPiAg dm9pZCB6c2RhX3N0YXRzX2dldCh2b2lkICoqcXVldWVfcGFpcnMsIGNvbnN0IHVpbnQzMl90IG5i X3F1ZXVlX3BhaXJzLA0KPiAgICAgICAgICAgICAgc3RydWN0IHpzZGFfcXBfc3RhdCAqc3RhdHMp Ow0KPiAgdm9pZCB6c2RhX3N0YXRzX3Jlc2V0KHZvaWQgKipxdWV1ZV9wYWlycywgY29uc3QgdWlu dDMyX3QgbmJfcXVldWVfcGFpcnMpOw0KPiANCj4gK2ludCB6c2RhX3NnbF9maWxsKGNvbnN0IHN0 cnVjdCBydGVfbWJ1ZiAqYnVmLCB1aW50MzJfdCBvZmZzZXQsDQo+ICsgICAgICAgICAgc3RydWN0 IHpzZGFfc2dsICpzZ2wsIGNvbnN0IHBoeXNfYWRkcl90IHNnbF9waHlfYWRkciwNCj4gKyAgICAg ICAgICB1aW50MzJfdCByZW1haW5fbGVuLCBzdHJ1Y3QgY29tcF9oZWFkX2luZm8gKmNvbXBfaGVh ZF9pbmZvKTsNCj4gKw0KPiAgI2VuZGlmIC8qIF9aU0RBX1FQX0NPTU1PTl9IXyAqLw0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9jb21wcmVzcy96c2RhL3pzZGFfY29tcC5jDQo+IGIvZHJpdmVycy9j b21wcmVzcy96c2RhL3pzZGFfY29tcC5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4 IDAwMDAwMDAwMDAuLjYwOGM1MGM0OWENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9kcml2ZXJz L2NvbXByZXNzL3pzZGEvenNkYV9jb21wLmMNCj4gQEAgLTAsMCArMSwyMzMgQEANCj4gKy8qIFNQ RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gKyAqIENvcHlyaWdodChjKSAy MDI0IFpURSBDb3Jwb3JhdGlvbg0KPiArICovDQo+ICsNCj4gKyNpbmNsdWRlICJ6c2RhX2NvbXAu aCINCj4gKw0KPiArI2RlZmluZSBaTElCX0hFQURFUl9TSVpFIDINCj4gKyNkZWZpbmUgWkxJQl9U UkFJTEVSX1NJWkUgNA0KPiArI2RlZmluZSBHWklQX0hFQURFUl9TSVpFIDEwDQo+ICsjZGVmaW5l IEdaSVBfVFJBSUxFUl9TSVpFIDgNCj4gKyNkZWZpbmUgQ0hFQ0tTVU1fU0laRSA0DQo+ICsNCj4g K2ludA0KPiArenNkYV9jb21wX21hdGNoKGNvbnN0IHZvaWQgKm9wX2luKQ0KPiArew0KPiArICAg IGNvbnN0IHN0cnVjdCBydGVfY29tcF9vcCAqb3AgPSBvcF9pbjsNCj4gKyAgICBjb25zdCBzdHJ1 Y3QgenNkYV9jb21wX3hmb3JtICp4Zm9ybSA9IG9wLT5wcml2YXRlX3hmb3JtOw0KPiArDQo+ICsg ICAgaWYgKG9wLT5vcF90eXBlICE9IFJURV9DT01QX09QX1NUQVRFTEVTUykNCj4gKyAgICAgICAg cmV0dXJuIDA7DQo+ICsNCj4gKyAgICBpZiAoeGZvcm0tPnR5cGUgIT0gUlRFX0NPTVBfQ09NUFJF U1MpDQo+ICsgICAgICAgIHJldHVybiAwOw0KPiArDQo+ICsgICAgcmV0dXJuIDE7DQo+ICt9DQo+ ICsNCj4gK2ludA0KPiArenNkYV9kZWNvbXBfbWF0Y2goY29uc3Qgdm9pZCAqb3BfaW4pDQo+ICt7 DQo+ICsgICAgY29uc3Qgc3RydWN0IHJ0ZV9jb21wX29wICpvcCA9IG9wX2luOw0KPiArICAgIGNv bnN0IHN0cnVjdCB6c2RhX2NvbXBfeGZvcm0gKnhmb3JtID0gb3AtPnByaXZhdGVfeGZvcm07DQo+ ICsNCj4gKyAgICBpZiAob3AtPm9wX3R5cGUgIT0gUlRFX0NPTVBfT1BfU1RBVEVMRVNTKQ0KPiAr ICAgICAgICByZXR1cm4gMDsNCj4gKw0KPiArICAgIGlmICh4Zm9ybS0+dHlwZSAhPSBSVEVfQ09N UF9ERUNPTVBSRVNTKQ0KPiArICAgICAgICByZXR1cm4gMDsNCj4gKyAgICByZXR1cm4gMTsNCj4g K30NCj4gKw0KPiArc3RhdGljIHVpbnQ4X3QNCj4gK3pzZGFfb3Bjb2RlX2dldChjb25zdCBzdHJ1 Y3QgenNkYV9jb21wX3hmb3JtICp4Zm9ybSkNCj4gK3sNCj4gKyAgICBpZiAoeGZvcm0tPnR5cGUg PT0gUlRFX0NPTVBfQ09NUFJFU1MpIHsNCj4gKyAgICAgICAgaWYgKHhmb3JtLT5jaGVja3N1bV90 eXBlID09IFJURV9DT01QX0NIRUNLU1VNX05PTkUgfHwNCj4gKyAgICAgICAgICAgIHhmb3JtLT5j aGVja3N1bV90eXBlID09IFJURV9DT01QX0NIRUNLU1VNX0NSQzMyKQ0KPiArICAgICAgICAgICAg cmV0dXJuIFpTREFfT1BDX0NPTVBfR1pJUDsNCj4gKyAgICAgICAgZWxzZSBpZiAoeGZvcm0tPmNo ZWNrc3VtX3R5cGUgPT0gUlRFX0NPTVBfQ0hFQ0tTVU1fQURMRVIzMikNCj4gKyAgICAgICAgICAg IHJldHVybiBaU0RBX09QQ19DT01QX1pMSUI7DQo+ICsgICAgfQ0KPiArICAgIGlmICh4Zm9ybS0+ dHlwZSA9PSBSVEVfQ09NUF9ERUNPTVBSRVNTKSB7DQo+ICsgICAgICAgIGlmICh4Zm9ybS0+Y2hl Y2tzdW1fdHlwZSA9PSBSVEVfQ09NUF9DSEVDS1NVTV9DUkMzMiB8fA0KPiArICAgICAgICAgICAg eGZvcm0tPmNoZWNrc3VtX3R5cGUgPT0gUlRFX0NPTVBfQ0hFQ0tTVU1fTk9ORSkNCj4gKyAgICAg ICAgICAgIHJldHVybiBaU0RBX09QQ19ERUNPTVBfR1pJUDsNCj4gKyAgICAgICAgZWxzZSBpZiAo eGZvcm0tPmNoZWNrc3VtX3R5cGUgPT0gUlRFX0NPTVBfQ0hFQ0tTVU1fQURMRVIzMikNCj4gKyAg ICAgICAgICAgIHJldHVybiBaU0RBX09QQ19ERUNPTVBfWkxJQjsNCj4gKyAgICB9DQo+ICsNCj4g KyAgICByZXR1cm4gWlNEQV9PUENfSU5WQUxJRDsNCj4gK30NCj4gKw0KPiAraW50DQo+ICt6c2Rh X2NvbXBfcmVxdWVzdF9idWlsZCh2b2lkICpvcF9pbiwgY29uc3Qgc3RydWN0IHpzZGFfcXVldWUg KnF1ZXVlLA0KPiArICAgICAgICAgICB2b2lkICoqb3BfY29va2llcywgY29uc3QgdWludDE2X3Qg bmV3X3RhaWwpDQo+ICt7DQo+ICsgICAgc3RydWN0IHJ0ZV9jb21wX29wICpvcCA9IG9wX2luOw0K PiArICAgIHN0cnVjdCB6c2RhX2NvbXBfeGZvcm0gKnhmb3JtID0gb3AtPnByaXZhdGVfeGZvcm07 DQo+ICsgICAgc3RydWN0IHpzZGFfd3FlX2NvbXAgKndxZSA9DQo+ICsgICAgICAgIChzdHJ1Y3Qg enNkYV93cWVfY29tcCAqKShxdWV1ZS0+YmFzZV9hZGRyICsNCj4gKyAgICAgICAgICAgICAgICAg ICAgIChuZXdfdGFpbCAqIHF1ZXVlLT5tc2dfc2l6ZSkpOw0KPiArDQo+ICsgICAgc3RydWN0IHpz ZGFfb3BfY29va2llICpjb29raWUgPSBvcF9jb29raWVzW25ld190YWlsXTsNCj4gKyAgICBzdHJ1 Y3QgenNkYV9zZ2wgKnNnbF9zcmMgPSAoc3RydWN0IHpzZGFfc2dsICopJmNvb2tpZS0+c2dsX3Ny YzsNCj4gKyAgICBzdHJ1Y3QgenNkYV9zZ2wgKnNnbF9kc3QgPSAoc3RydWN0IHpzZGFfc2dsICop JmNvb2tpZS0+c2dsX2RzdDsNCj4gKyAgICBzdHJ1Y3QgY29tcF9oZWFkX2luZm8gY29tcF9oZWFk X2luZm87DQo+ICsNCj4gKyAgICB1aW50OF90IG9wY29kZTsNCj4gKyAgICBpbnQgcmV0Ow0KPiAr ICAgIHVpbnQzMl90IG9wX29mZnNldDsNCj4gKyAgICB1aW50MzJfdCBvcF9zcmNfbGVuOw0KPiAr ICAgIHVpbnQzMl90IG9wX2RzdF9sZW47DQo+ICsgICAgdWludDMyX3QgaGVhZF9sZW47DQo+ICsN Cj4gKyAgICBpZiAoKG9wLT5tX2RzdCA9PSBOVUxMKSB8fCAob3AtPm1fZHN0ID09IG9wLT5tX3Ny YykpIHsNCj4gKyAgICAgICAgWlNEQV9MT0coRVJSLCAiRmFpbGVkISBtX2RzdCIpOw0KPiArICAg ICAgICByZXR1cm4gLUVJTlZBTDsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBvcGNvZGUgPSB6c2Rh X29wY29kZV9nZXQoeGZvcm0pOw0KPiArICAgIGlmIChvcGNvZGUgPT0gWlNEQV9PUENfSU5WQUxJ RCkgew0KPiArICAgICAgICBaU0RBX0xPRyhFUlIsICJGYWlsZWQhIHpzZGFfb3Bjb2RlX2dldCIp Ow0KPiArICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBjb29r aWUtPnVzZWQgPSB0cnVlOw0KPiArICAgIGNvb2tpZS0+c2lkID0gbmV3X3RhaWw7DQo+ICsgICAg Y29va2llLT5vcCA9IG9wOw0KPiArDQo+ICsgICAgaWYgKG9wY29kZSA9PSBaU0RBX09QQ19DT01Q X0daSVApDQo+ICsgICAgICAgIGhlYWRfbGVuID0gR1pJUF9IRUFERVJfU0laRTsNCj4gKyAgICBl bHNlIGlmIChvcGNvZGUgPT0gWlNEQV9PUENfQ09NUF9aTElCKQ0KPiArICAgICAgICBoZWFkX2xl biA9IFpMSUJfSEVBREVSX1NJWkU7DQo+ICsgICAgZWxzZSB7DQo+ICsgICAgICAgIFpTREFfTE9H KEVSUiwgIkNvbXAsIG9wX2NvZGUgZXJyb3IhIik7DQo+ICsgICAgICAgIHJldHVybiAtRUlOVkFM Ow0KPiArICAgIH0NCj4gKw0KPiArICAgIGNvbXBfaGVhZF9pbmZvLmhlYWRfbGVuID0gaGVhZF9s ZW47DQo+ICsgICAgY29tcF9oZWFkX2luZm8uaGVhZF9waHlzX2FkZHIgPSBjb29raWUtPmNvbXBf aGVhZF9waHlzX2FkZHI7DQo+ICsNCj4gKyAgICBvcF9vZmZzZXQgPSBvcC0+c3JjLm9mZnNldDsN Cj4gKyAgICBvcF9zcmNfbGVuID0gb3AtPnNyYy5sZW5ndGg7DQo+ICsgICAgcmV0ID0genNkYV9z Z2xfZmlsbChvcC0+bV9zcmMsIG9wX29mZnNldCwgc2dsX3NyYywNCj4gKyAgICAgICAgICAgICAg ICAgICBjb29raWUtPnNnbF9zcmNfcGh5c19hZGRyLCBvcF9zcmNfbGVuLCBOVUxMKTsNCj4gKw0K PiArICAgIG9wX29mZnNldCA9IG9wLT5kc3Qub2Zmc2V0Ow0KPiArICAgIG9wX2RzdF9sZW4gPSBv cC0+bV9kc3QtPnBrdF9sZW4gLSBvcF9vZmZzZXQ7DQo+ICsgICAgb3BfZHN0X2xlbiArPSBoZWFk X2xlbjsNCj4gKyAgICByZXQgfD0genNkYV9zZ2xfZmlsbChvcC0+bV9kc3QsIG9wX29mZnNldCwg c2dsX2RzdCwNCj4gKyAgICAgICAgICAgICAgICAgICAgY29va2llLT5zZ2xfZHN0X3BoeXNfYWRk ciwgb3BfZHN0X2xlbiwNCj4gKyAgICAgICAgICAgICAgICAgICAgJmNvbXBfaGVhZF9pbmZvKTsN Cj4gKw0KPiArICAgIGlmIChyZXQpIHsNCj4gKyAgICAgICAgWlNEQV9MT0coRVJSLCAiRmFpbGVk ISB6c2RhX3NnbF9maWxsIik7DQo+ICsgICAgICAgIHJldHVybiByZXQ7DQo+ICsgICAgfQ0KPiAr DQo+ICsgICAgbWVtc2V0KHdxZSwgMCwgc2l6ZW9mKHN0cnVjdCB6c2RhX3dxZV9jb21wKSk7DQo+ ICsgICAgd3FlLT5yeF9sZW5ndGggPSBvcF9zcmNfbGVuOw0KPiArICAgIHdxZS0+dHhfbGVuZ3Ro ID0gb3BfZHN0X2xlbjsNCj4gKyAgICB3cWUtPnZhbGlkID0gcXVldWUtPnZhbGlkOw0KPiArICAg IHdxZS0+b3BfY29kZSA9IG9wY29kZTsNCj4gKyAgICB3cWUtPnNpZCA9IGNvb2tpZS0+c2lkOw0K PiArICAgIHdxZS0+cnhfc2dsX3R5cGUgPSBXUUVfRUxNX1RZUEVfTElTVDsNCj4gKyAgICB3cWUt PnR4X3NnbF90eXBlID0gV1FFX0VMTV9UWVBFX0xJU1Q7DQo+ICsNCj4gKyAgICB3cWUtPnJ4X2Fk ZHIgPSBjb29raWUtPnNnbF9zcmNfcGh5c19hZGRyOw0KPiArICAgIHdxZS0+dHhfYWRkciA9IGNv b2tpZS0+c2dsX2RzdF9waHlzX2FkZHI7DQo+ICsNCj4gKyAgICByZXR1cm4gcmV0Ow0KPiArfQ0K PiArDQo+ICtpbnQNCj4gK3pzZGFfZGVjb21wX3JlcXVlc3RfYnVpbGQodm9pZCAqb3BfaW4sIGNv bnN0IHN0cnVjdCB6c2RhX3F1ZXVlICpxdWV1ZSwNCj4gKyAgICAgICAgICAgICB2b2lkICoqb3Bf Y29va2llcywgY29uc3QgdWludDE2X3QgbmV3X3RhaWwpDQo+ICt7DQo+ICsgICAgc3RydWN0IHJ0 ZV9jb21wX29wICpvcCA9IG9wX2luOw0KPiArICAgIHN0cnVjdCB6c2RhX2NvbXBfeGZvcm0gKnhm b3JtID0gb3AtPnByaXZhdGVfeGZvcm07DQo+ICsNCj4gKyAgICBzdHJ1Y3QgenNkYV93cWVfY29t cCAqd3FlID0NCj4gKyAgICAgICAgKHN0cnVjdCB6c2RhX3dxZV9jb21wICopKHF1ZXVlLT5iYXNl X2FkZHIgKw0KPiArICAgICAgICAgICAgICAgICAgICAgKG5ld190YWlsICogcXVldWUtPm1zZ19z aXplKSk7DQo+ICsgICAgc3RydWN0IHpzZGFfb3BfY29va2llICpjb29raWUgPSBvcF9jb29raWVz W25ld190YWlsXTsNCj4gKyAgICBzdHJ1Y3QgenNkYV9zZ2wgKnNnbF9zcmMgPSAoc3RydWN0IHpz ZGFfc2dsICopJmNvb2tpZS0+c2dsX3NyYzsNCj4gKyAgICBzdHJ1Y3QgenNkYV9zZ2wgKnNnbF9k c3QgPSAoc3RydWN0IHpzZGFfc2dsICopJmNvb2tpZS0+c2dsX2RzdDsNCj4gKyAgICB1aW50OF90 IG9wY29kZTsNCj4gKyAgICBpbnQgcmV0Ow0KPiArDQo+ICsgICAgdWludDMyX3Qgb3Bfb2Zmc2V0 Ow0KPiArICAgIHVpbnQzMl90IG9wX3NyY19sZW47DQo+ICsgICAgdWludDMyX3Qgb3BfZHN0X2xl bjsNCj4gKw0KPiArICAgIHVpbnQ4X3QgKmhlYWRfZGF0YTsNCj4gKyAgICB1aW50MTZfdCBoZWFk X2xlbjsNCj4gKyAgICBzdHJ1Y3QgY29tcF9oZWFkX2luZm8gY29tcF9oZWFkX2luZm87DQo+ICsg ICAgdWludDhfdCBoZWFkX3psaWJbWkxJQl9IRUFERVJfU0laRV0gPSB7MHg3OCwgMHhEQX07DQo+ ICsgICAgdWludDhfdCBoZWFkX2d6aXBbR1pJUF9IRUFERVJfU0laRV0gPSB7MHgxRiwgMHg4Qiwg MHgwOCwgMHgwMCwgMHgwMCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDAsIDB4MDN9Ow0KPiArDQo+ICsgICAgaWYgKChvcC0+bV9kc3QgPT0gTlVM TCkgfHwgKG9wLT5tX2RzdCA9PSBvcC0+bV9zcmMpKSB7DQo+ICsgICAgICAgIFpTREFfTE9HKEVS UiwgIkZhaWxlZCEgbV9kc3QiKTsNCj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ICsgICAg fQ0KPiArDQo+ICsgICAgb3Bjb2RlID0genNkYV9vcGNvZGVfZ2V0KHhmb3JtKTsNCj4gKyAgICBp ZiAob3Bjb2RlID09IFpTREFfT1BDX0lOVkFMSUQpIHsNCj4gKyAgICAgICAgWlNEQV9MT0coRVJS LCAiRmFpbGVkISB6c2RhX29wY29kZV9nZXQiKTsNCj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7 DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgY29va2llLT51c2VkID0gdHJ1ZTsNCj4gKyAgICBjb29r aWUtPnNpZCA9IG5ld190YWlsOw0KPiArICAgIGNvb2tpZS0+b3AgPSBvcDsNCj4gKw0KPiArICAg IGlmIChvcGNvZGUgPT0gWlNEQV9PUENfREVDT01QX0daSVApIHsNCj4gKyAgICAgICAgaGVhZF9k YXRhID0gaGVhZF9nemlwOw0KPiArICAgICAgICBoZWFkX2xlbiA9IEdaSVBfSEVBREVSX1NJWkU7 DQo+ICsgICAgfSBlbHNlIGlmIChvcGNvZGUgPT0gWlNEQV9PUENfREVDT01QX1pMSUIpIHsNCj4g KyAgICAgICAgaGVhZF9kYXRhID0gaGVhZF96bGliOw0KPiArICAgICAgICBoZWFkX2xlbiA9IFpM SUJfSEVBREVSX1NJWkU7DQo+ICsgICAgfSBlbHNlIHsNCj4gKyAgICAgICAgWlNEQV9MT0coRVJS LCAiQ29tcCwgb3BfY29kZSBlcnJvciEiKTsNCj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ ICsgICAgfQ0KPiArDQo+ICsgICAgb3Bfb2Zmc2V0ID0gb3AtPnNyYy5vZmZzZXQ7DQo+ICsgICAg b3Bfc3JjX2xlbiA9IG9wLT5zcmMubGVuZ3RoOw0KPiArICAgIG9wX3NyY19sZW4gKz0gaGVhZF9s ZW47DQo+ICsgICAgY29tcF9oZWFkX2luZm8uaGVhZF9sZW4gPSBoZWFkX2xlbjsNCj4gKyAgICBj b21wX2hlYWRfaW5mby5oZWFkX3BoeXNfYWRkciA9IGNvb2tpZS0+Y29tcF9oZWFkX3BoeXNfYWRk cjsNCj4gKyAgICBjb29raWUtPmRlY29tcF9ub190YWlsID0gdHJ1ZTsNCj4gKyAgICBmb3IgKGlu dCBpID0gMDsgaSA8IGhlYWRfbGVuOyBpKyspDQo+ICsgICAgICAgIGNvb2tpZS0+Y29tcF9oZWFk W2ldID0gaGVhZF9kYXRhW2ldOw0KPiArDQo+ICsgICAgcmV0ID0genNkYV9zZ2xfZmlsbChvcC0+ bV9zcmMsIG9wX29mZnNldCwgc2dsX3NyYywNCj4gKyAgICAgICAgICAgICAgICBjb29raWUtPnNn bF9zcmNfcGh5c19hZGRyLCBvcF9zcmNfbGVuLA0KPiArICAgICAgICAgICAgICAgICZjb21wX2hl YWRfaW5mbyk7DQo+ICsNCj4gKyAgICBvcF9vZmZzZXQgPSBvcC0+ZHN0Lm9mZnNldDsNCj4gKyAg ICBvcF9kc3RfbGVuID0gb3AtPm1fZHN0LT5wa3RfbGVuIC0gb3Bfb2Zmc2V0Ow0KPiArICAgIHJl dCB8PSB6c2RhX3NnbF9maWxsKG9wLT5tX2RzdCwgb3Bfb2Zmc2V0LCBzZ2xfZHN0LA0KPiArICAg ICAgICAgICAgICAgICBjb29raWUtPnNnbF9kc3RfcGh5c19hZGRyLCBvcF9kc3RfbGVuLCBOVUxM KTsNCj4gKw0KPiArICAgIGlmIChyZXQpIHsNCj4gKyAgICAgICAgWlNEQV9MT0coRVJSLCAiRmFp bGVkISB6c2RhX3NnbF9maWxsIik7DQo+ICsgICAgICAgIHJldHVybiByZXQ7DQo+ICsgICAgfQ0K PiArDQo+ICsgICAgbWVtc2V0KHdxZSwgMCwgc2l6ZW9mKHN0cnVjdCB6c2RhX3dxZV9jb21wKSk7 DQo+ICsNCj4gKyAgICB3cWUtPnJ4X2xlbmd0aCA9IG9wX3NyY19sZW47DQo+ICsgICAgd3FlLT50 eF9sZW5ndGggPSBvcF9kc3RfbGVuOw0KPiArICAgIHdxZS0+dmFsaWQgPSBxdWV1ZS0+dmFsaWQ7 DQo+ICsgICAgd3FlLT5vcF9jb2RlID0gb3Bjb2RlOw0KPiArICAgIHdxZS0+c2lkID0gY29va2ll LT5zaWQ7DQo+ICsgICAgd3FlLT5yeF9zZ2xfdHlwZSA9IFdRRV9FTE1fVFlQRV9MSVNUOw0KPiAr ICAgIHdxZS0+dHhfc2dsX3R5cGUgPSBXUUVfRUxNX1RZUEVfTElTVDsNCj4gKyAgICB3cWUtPnJ4 X2FkZHIgPSBjb29raWUtPnNnbF9zcmNfcGh5c19hZGRyOw0KPiArICAgIHdxZS0+dHhfYWRkciA9 IGNvb2tpZS0+c2dsX2RzdF9waHlzX2FkZHI7DQo+ICsNCj4gKyAgICByZXR1cm4gcmV0Ow0KPiAr fQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9jb21wcmVzcy96c2RhL3pzZGFfY29tcC5oDQo+IGIv ZHJpdmVycy9jb21wcmVzcy96c2RhL3pzZGFfY29tcC5oDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+IGluZGV4IDAwMDAwMDAwMDAuLjBmMzEyYWNjZGYNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysg Yi9kcml2ZXJzL2NvbXByZXNzL3pzZGEvenNkYV9jb21wLmgNCj4gQEAgLTAsMCArMSwzNiBAQA0K PiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZQ0KPiArICogQ29weXJp Z2h0KGMpIDIwMjQgWlRFIENvcnBvcmF0aW9uDQo+ICsgKi8NCj4gKw0KPiArI2lmbmRlZiBfWlNE QV9DT01QX0hfDQo+ICsjZGVmaW5lIF9aU0RBX0NPTVBfSF8NCj4gKw0KPiArI2luY2x1ZGUgInpz ZGFfY29tcF9wbWQuaCINCj4gKw0KPiArc3RydWN0IGNvbXByZXNzX2NmZyB7DQo+ICt9IF9fcnRl X3BhY2tlZDsNCj4gKw0KPiArc3RydWN0IHpzZGFfd3FlX2NvbXAgew0KPiArICAgIHVpbnQ4X3Qg dmFsaWQ7DQo+ICsgICAgdWludDhfdCBvcF9jb2RlOw0KPiArICAgIHVpbnQxNl90IHNpZDsNCj4g KyAgICB1aW50OF90IHJlc3ZbM107DQo+ICsgICAgdWludDhfdCByeF9zZ2xfdHlwZSA6IDQ7DQo+ ICsgICAgdWludDhfdCB0eF9zZ2xfdHlwZSA6IDQ7DQo+ICsgICAgdWludDY0X3QgcnhfYWRkcjsN Cj4gKyAgICB1aW50MzJfdCByeF9sZW5ndGg7DQo+ICsgICAgdWludDY0X3QgdHhfYWRkcjsNCj4g KyAgICB1aW50MzJfdCB0eF9sZW5ndGg7DQo+ICsgICAgc3RydWN0IGNvbXByZXNzX2NmZyBjZmc7 DQo+ICt9IF9fcnRlX3BhY2tlZDsNCj4gKw0KPiAraW50IHpzZGFfY29tcF9tYXRjaChjb25zdCB2 b2lkICpvcF9pbik7DQo+ICtpbnQgenNkYV9kZWNvbXBfbWF0Y2goY29uc3Qgdm9pZCAqb3BfaW4p Ow0KPiArDQo+ICtpbnQgenNkYV9jb21wX3JlcXVlc3RfYnVpbGQodm9pZCAqb3BfaW4sIGNvbnN0 IHN0cnVjdCB6c2RhX3F1ZXVlICpxdWV1ZSwNCj4gKyAgICAgICAgICAgICAgIHZvaWQgKipvcF9j b29raWVzLCBjb25zdCB1aW50MTZfdCBuZXdfdGFpbCk7DQo+ICsNCj4gK2ludCB6c2RhX2RlY29t cF9yZXF1ZXN0X2J1aWxkKHZvaWQgKm9wX2luLCBjb25zdCBzdHJ1Y3QgenNkYV9xdWV1ZSAqcXVl dWUsDQo+ICsgICAgICAgICAgICAgdm9pZCAqKm9wX2Nvb2tpZXMsIGNvbnN0IHVpbnQxNl90IG5l d190YWlsKTsNCj4gKw0KPiArI2VuZGlmIC8qIF9aU0RBX0NPTVBfSF8gKi8NCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvY29tcHJlc3MvenNkYS96c2RhX2NvbXBfcG1kLmMNCj4gYi9kcml2ZXJzL2Nv bXByZXNzL3pzZGEvenNkYV9jb21wX3BtZC5jDQo+IGluZGV4IDE5YTQ5MzI1MjUuLmQ5ZTQ0NDk3 MmIgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvY29tcHJlc3MvenNkYS96c2RhX2NvbXBfcG1kLmMN Cj4gKysrIGIvZHJpdmVycy9jb21wcmVzcy96c2RhL3pzZGFfY29tcF9wbWQuYw0KPiBAQCAtOCw2 ICs4LDcgQEANCj4gICNpbmNsdWRlICJ6c2RhX3FwX2NvbW1vbi5oIg0KPiAgI2luY2x1ZGUgInpz ZGFfcXAuaCINCj4gICNpbmNsdWRlICJ6c2RhX2NvbXBfcG1kLmgiDQo+ICsjaW5jbHVkZSAienNk YV9jb21wLmgiDQo+IA0KPiAgc3RhdGljIGludA0KPiAgenNkYV9jb21wX3hmb3JtX3NpemUodm9p ZCkNCj4gQEAgLTI0NSwxMCArMjQ2LDE0IEBAIHpzZGFfY29tcF9xcF9zZXR1cChzdHJ1Y3QgcnRl X2NvbXByZXNzZGV2ICpkZXYsDQo+IHVpbnQxNl90IHFwX2lkLA0KPiANCj4gICAgICB0YXNrX3Ff aW5mby50eXBlID0gWlNEQV9TRVJWSUNFX0NPTVBSRVNTSU9OOw0KPiAgICAgIHRhc2tfcV9pbmZv LnNlcnZpY2Vfc3RyID0gImNvbXAiOw0KPiArICAgIHRhc2tfcV9pbmZvLnR4X2NiID0genNkYV9j b21wX3JlcXVlc3RfYnVpbGQ7DQo+ICsgICAgdGFza19xX2luZm8ubWF0Y2ggPSB6c2RhX2NvbXBf bWF0Y2g7DQo+ICAgICAgcmV0ID0genNkYV90YXNrX3F1ZXVlX3NldHVwKHpzZGFfcGNpX2Rldiwg cXBfbmV3LCAmdGFza19xX2luZm8pOw0KPiANCj4gICAgICB0YXNrX3FfaW5mby50eXBlID0gWlNE QV9TRVJWSUNFX0RFQ09NUFJFU1NJT047DQo+ICAgICAgdGFza19xX2luZm8uc2VydmljZV9zdHIg PSAiZGVjb21wIjsNCj4gKyAgICB0YXNrX3FfaW5mby50eF9jYiA9IHpzZGFfZGVjb21wX3JlcXVl c3RfYnVpbGQ7DQo+ICsgICAgdGFza19xX2luZm8ubWF0Y2ggPSB6c2RhX2RlY29tcF9tYXRjaDsN Cj4gICAgICByZXQgfD0genNkYV90YXNrX3F1ZXVlX3NldHVwKHpzZGFfcGNpX2RldiwgcXBfbmV3 LCAmdGFza19xX2luZm8pOw0KPiANCj4gICAgICBpZiAocmV0KSB7DQo+IEBAIC0yODcsNiArMjky LDE0IEBAIHN0YXRpYyBjb25zdCBjaGFyIHpzZGFfY29tcF9kcnZfbmFtZVtdID0NCj4gUlRFX1NU UihDT01QUkVTU0RFVl9OQU1FX1pTREFfUE1EKTsNCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRl X2RyaXZlciBjb21wZGV2X3pzZGFfZHJpdmVyID0gew0KPiAgICAgIC5uYW1lID0genNkYV9jb21w X2Rydl9uYW1lLCAuYWxpYXMgPSB6c2RhX2NvbXBfZHJ2X25hbWV9Ow0KPiANCj4gK3N0YXRpYyB1 aW50MTZfdA0KPiArenNkYV9jb21wX3BtZF9lbnF1ZXVlX29wX2J1cnN0KHZvaWQgKnFwLCBzdHJ1 Y3QgcnRlX2NvbXBfb3AgKipvcHMsDQo+ICsgICAgICAgICAgICAgICAgICAgdWludDE2X3QgbmJf b3BzKQ0KPiArew0KPiArICAgIHJldHVybiB6c2RhX2VucXVldWVfYnVyc3QoKHN0cnVjdCB6c2Rh X3FwICopcXAsICh2b2lkICoqKW9wcywNCj4gKyAgICAgICAgICAgICAgICAgICAgIG5iX29wcyk7 DQo+ICt9DQo+ICsNCj4gIGludA0KPiAgenNkYV9jb21wX2Rldl9jcmVhdGUoc3RydWN0IHpzZGFf cGNpX2RldmljZSAqenNkYV9wY2lfZGV2KQ0KPiAgew0KPiBAQCAtMzI0LDcgKzMzNyw3IEBAIHpz ZGFfY29tcF9kZXZfY3JlYXRlKHN0cnVjdCB6c2RhX3BjaV9kZXZpY2UNCj4gKnpzZGFfcGNpX2Rl dikNCj4gDQo+ICAgICAgY29tcHJlc3NkZXYtPmRldl9vcHMgPSAmY29tcHJlc3NfenNkYV9vcHM7 DQo+IA0KPiAtICAgIGNvbXByZXNzZGV2LT5lbnF1ZXVlX2J1cnN0ID0gTlVMTDsNCj4gKyAgICBj b21wcmVzc2Rldi0+ZW5xdWV1ZV9idXJzdCA9IHpzZGFfY29tcF9wbWRfZW5xdWV1ZV9vcF9idXJz dDsNCj4gICAgICBjb21wcmVzc2Rldi0+ZGVxdWV1ZV9idXJzdCA9IE5VTEw7DQo+IA0KPiAgICAg IGNvbXByZXNzZGV2LT5mZWF0dXJlX2ZsYWdzID0gUlRFX0NPTVBERVZfRkZfSFdfQUNDRUxFUkFU RUQ7DQo+IC0tDQo+IDIuMjcuMA0KDQo=