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 47BAB461AD; Thu, 6 Feb 2025 16:16:24 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 23B47402F1; Thu, 6 Feb 2025 16:16:24 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id DF9504029A for ; Thu, 6 Feb 2025 16:16:22 +0100 (CET) Received: from pps.filterd (m0431383.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 516EUY19014066 for ; Thu, 6 Feb 2025 07:16:22 -0800 Received: from pps.reinject (localhost [127.0.0.1]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 44mxwf030b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 06 Feb 2025 07:16:22 -0800 (PST) Received: from m0431383.ppops.net (m0431383.ppops.net [127.0.0.1]) by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 516FGLen019489; Thu, 6 Feb 2025 07:16:21 -0800 Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2046.outbound.protection.outlook.com [104.47.57.46]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 44mxwf030a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 06 Feb 2025 07:16:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=M2opNXfeIQv8G/2R6+ImwE2CO9OmAz2Sn8nvMqeh9D82sA4q0vLuBUsEv13WJHOMzEI8zVATUhBD8iX5y2JhxIUPRmJFfcqSiC4UQlEPyp3hboxz1izesl6qmwUr0CGEuQhTbarFg33xs+Ua5E2tPjSQ6dLIn/GatxpiN8Ra7VW85ob8Zm3U7A2AJeTAdOHxMknGUtM1OupAZVy8NXojN8w4Wm20kUlXNg0oVjp0g/5Gh/RQ800n5YTSvxXqA6WYr4dBOs/5dmFrdVdNWUBvhsHoMZHAaQ9fpBO1jQeQLdOq576vnT3j8+nSBQfCGXptuHuEdW5N8EE+dHw5idL6Dg== 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=BXtM7C1PTjukMjXHyFOl5VScNswnku8o8/0PJUDFh1k=; b=xkmuyq0rbE6ahYab2dBX0b1xjPkHxLv/i2xHjU7EiGpGVRFtaq5/O9laZwZB5poD7PP0In0m2/JRNMdWKVf4C14qwHU4KBXauv0gXBgSau35zpT4H/O68S0dXTpTnkX1N7Y9xhSt66x5h3e4FpS7cTl9zyWSYhoKnIeyaVgD/3wq8mWGYcXodH9RxFDv7MgsZ86/SceUG48pXIkVypW7Drx3ghXxHVm0uplh4A5xz3Toiax9N8UEv9L0BP+J6Eu3ifN1HU1w6/LAPL/xVNctFqVbHZjdNj5cRuJmlpzSDVfgZgerEO0SnbSEUnGMGhbAiD5b3748uox6nCxiP8/JeQ== 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=BXtM7C1PTjukMjXHyFOl5VScNswnku8o8/0PJUDFh1k=; b=KxMwo6jKsM4lTUAor08zxX+20kj8Ey8FWeyIhINE/0T9Sp/CmNzg1c1tVpDCaD+VsPthZjzbXfa7u55+HNF60hFGg6MsBAkZbiXtwX/ubS0JqQM3SbenYK59KFUbVJZbMnfE+QSRlU36wFLnGQbJ86EfsyjyjWaMLJT30lCUeN8= Received: from CO6PR18MB4484.namprd18.prod.outlook.com (2603:10b6:5:359::9) by MN2PR18MB3575.namprd18.prod.outlook.com (2603:10b6:208:26f::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.11; Thu, 6 Feb 2025 15:16:18 +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.8422.010; Thu, 6 Feb 2025 15:16:17 +0000 From: Akhil Goyal To: Hanxiao Li , "dev@dpdk.org" Subject: RE: [EXTERNAL] [PATCH v25 05/13] common/zsda: add definition and use of msg chan. Thread-Topic: [EXTERNAL] [PATCH v25 05/13] common/zsda: add definition and use of msg chan. Thread-Index: AQHbbLJUMpzTykPkQU+7/dgCnakEQ7M6egRA Date: Thu, 6 Feb 2025 15:16:17 +0000 Message-ID: References: <20250113022943.2603401-2-li.hanxiao@zte.com.cn> <20250122093325.3099070-1-li.hanxiao@zte.com.cn> <20250122093325.3099070-6-li.hanxiao@zte.com.cn> In-Reply-To: <20250122093325.3099070-6-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_|MN2PR18MB3575:EE_ x-ms-office365-filtering-correlation-id: 50d15986-bcce-4817-8442-08dd46c13479 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|1800799024|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?cmNURDFJY0V6OWt5QUFBcFk4V1B4MTZxbTV2S3IwQ043bjV2dTl3WkRITXo1?= =?utf-8?B?ci9RSlB3MFJWUGV6dlcxVkNFLzFqZUJHaHVvNzBrQTRpQTFoOTVLZUdlTW1B?= =?utf-8?B?UExITnA0MkpWamhsdUtNb1RUS2M1MDZnaVJBd1hZaDQwdmR0b3lIZDRka2pT?= =?utf-8?B?a0xaaEFzTmVOSGMzZ1pCM3QxMmJIVlhtRWdCSlF6cmIxVmVYaGRna01GdnlE?= =?utf-8?B?QVlTN1FsZytqSUg3NHduT2pxSC9Kc3F2b3FhVFNKSVBFQ0lzVnpLSTczK0xU?= =?utf-8?B?Z1hQd3VFSW94azhTQlVCR2pFUlMvV3dhYkFlYVdsRzBodlJldEJ6V0RSZGVj?= =?utf-8?B?MTAyVTZQcXF6aXFxcS8weFJuOHBqVDRVT1BtRTdSckdkM1llTzhkMzc2U0po?= =?utf-8?B?S1lmV05yQ0RkS09Ua3hxUVVHZGhiVFFsTSt0SXIzanJXVFRKT3k2SGdiaHh3?= =?utf-8?B?Vm9NSG14ZWF6SVYvTDRyUWZjaGZUWDkrOE4wd0ZFRFkrRW1sS0hnbHlpME9W?= =?utf-8?B?UXd3NmRIeFJqUVlrMWl6Y2F2NGE5YWJORFNLY2Rib0EwdnBYSWZJdDZuY2NG?= =?utf-8?B?RC9xQnhMZStWbzNoc2U3b1I5VzlvMWtsV1J6NGNaMWR2RmxPaG1ZUlpaL3VJ?= =?utf-8?B?bzgvajQ4WlZ4WlEySE5EMWF3UEtCdzlaeWNTWEh5amI1eU5LdWpLcUJwVlo0?= =?utf-8?B?Unk0QWFJcC9ZTHUzaHlTMnc0Qjl5ZVN6bW1UNG1UUnNvRjdsUWlGdE1POWlu?= =?utf-8?B?YnNCd0dNVkFFVWhKdFpXajF4TVNQOHlDdVFsZ0dnd2RZbVhxaXJpNG9OMGp0?= =?utf-8?B?TFV4YlRxUVhMSmdxTFd6L3dTV1JrN0NkR2kxQlVtT3lod0FLMFljWCttdTJV?= =?utf-8?B?ZER5MDBXWXRaRUcxSUdUdkdZWGpEUWF2UTVZYTc5akUrZFFkd0tQUlpaeUk3?= =?utf-8?B?ZUFrMnUxTFh1Qnk4MG5WS1NFenNUZWNpN3FuN3lIMnZOY2JyVXIxUHRQN21t?= =?utf-8?B?cEdJNUhHVXNobjRTdDJlV2dBTVB2SVcyeEdMQ0VmaG1rL1NQMXViNjRtdjhC?= =?utf-8?B?MkV3RzNHUkNwZ211Tlo4NFZ3d0sxai9MdDJzTjIwc0hucUhFR3pIZXNCOGFt?= =?utf-8?B?MVQ5elRXVmZPWnhERjdrR2JNbzJYUGdaNzJBVVQ1aFd0NnkzUFdsNVhTZjRj?= =?utf-8?B?bFh4TFlIUm9yOVVoNndmRXZ6WGd1K3cvWlZDa3BtMFNHQU9KRGk2by9PNXcw?= =?utf-8?B?ZTZrSkNDWnI1Zmh3Y2JXL1k0SnJnaXZlSmV2Tk1ZclVLRFNocHhrVHZERjZa?= =?utf-8?B?cktuTENKMkJmSTM2WFFIRnprdFd4SzFhQmI1T1ZnQk04VkluK04xbXBiM2JT?= =?utf-8?B?QzZFaEFwODdYZllON3ZaSzg2NWRMeFNSeFVhYXhPa0lEdFRNTElrcnB2eHc4?= =?utf-8?B?VnVoN2R1ajJObDZjdG5SRHNGaWMzcGJzeWp5alBhZXl4bmFqbTBlMUZJV1Rn?= =?utf-8?B?aDBBdUNMSU9FeDZyMkJ2V0FrUUlLcXQrYnFzeit1TTh3RHBIMitoZmJZWXpx?= =?utf-8?B?eUZQampmSU5TSUt5YktUNGZlV1Nhd284bitnQndNem81dXU0dUI0dm9qcUJ2?= =?utf-8?B?bC9NWUNveE1YUlorRXhJckNEcGdYM3VHZTNpaEJwRGZKcjB0RWl0c0VUc3Bn?= =?utf-8?B?MHBCNWtaT3oyd2l6ZXZmUnBzZWp1eHhYZXk0bEhXVG9ZSkVHc1FvbnpGYWFt?= =?utf-8?B?aGdtTlo1VUNqQ1ora2c0NDh5dnNRWjZBWHJiNWY1ZExQZlZmeWlBWmFlTnRO?= =?utf-8?B?QnVDSm1uMzFyQW56MkJjdzcvbm4xQ21pM3FoeDR0dGlCbkg2N1o5VWtxL0d2?= =?utf-8?B?RExBUVcwdlFxcGNWTEFzcmdFOTdIbDJRYVdMV015RHNDNjlEYThQUFM2YlQ2?= =?utf-8?Q?RI9EFeHhJC7vJrx8fR57DgVz4DpndVj8?= 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)(366016)(1800799024)(376014)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QXEvdmJOSHNaYWpSUCsraG9vV0lRMFVPVVE5cUx4Z1gwSE13TVhEZzV6TGpr?= =?utf-8?B?ODAyOUVBZjhxZElzNlRWanVFZHh3a3dieS9JTjhsaXRVMEw2Q1NaNHIvZ2J2?= =?utf-8?B?QnFHS0M0cjBhKzRSeFhQRU1mNE80TTlDSm9ZU2UrRG80VXVlQVBVMk1Dbzdh?= =?utf-8?B?ZjlsQ3NxS2FHTWZodGcxTkswSy8vR0hRWjFzS0R4eUd0bkQ2QmcvWXZEUk84?= =?utf-8?B?UzA5dVlndzJRTGJEa3FKc1R1VEJBYTJ4TUdNZkpPTDlqd0RqQW1hZk1xWFhC?= =?utf-8?B?eDZ1TmExaGlvWFRnUzJXQkNxZFRURDFlUnhnRkozYlZ3Qi8xbEhIajJ2WUVO?= =?utf-8?B?dnV5Z1lDS3pqQ1lXRmdSanVoNDdUMFBOVUtDRVpJWllUQWgwSGdmM2Qyd1d3?= =?utf-8?B?RTI0L1gxMURyemxCZFZsNEhlOHFLcEo0WWVvaUxYZEwrOUNLTC9zRHJpQzBh?= =?utf-8?B?QXN2c2MwZlV3b0lpQ0NTaWsxV2VFNGhUZjZDeUVVejZzSWZSa1N3NDV4UzFD?= =?utf-8?B?SHBRbTFPcWJ3YmlqUWJIb3FxanVYNWt2b0RhN25mSTZBSUFjRmNmU01EMzR2?= =?utf-8?B?SDNGMmk5elpRbThqQlQzWENrZ2lIWVUwY1RtS1p1QytpemhubVZzREhKUnhS?= =?utf-8?B?c2pjTldsRy9Wa2oxN3phZXAvK2NGYzFDVTNyREU3dXJYR1RZOXkwaVRwbU1H?= =?utf-8?B?Y3RWZFQxdlI2MVFybnd6aGFiTmU0YytGeTlMMUs4dDJmazN5YUlkeG1zVnM0?= =?utf-8?B?UWhXRTNQQWJDRUJML0lzZTNsSlNqMVZLbHNSZnk3NmJrM1Z2R0pJVjkwRXlp?= =?utf-8?B?MlRqRVh4ZURxYnkrdVJRMkhJUmpXSTJhQjc0NCtnekxVSTVteGN6Smlob3Ez?= =?utf-8?B?WXVzQ0J3aERleFgvVzI3WlFZZWJaU1FQM0gydzJVTC9XWnBucHNsdm96TW1L?= =?utf-8?B?WVErbk1QYUszOFN1U1ZPNUp6L3dUMVVGV0x1bjgzTldBaTk5T3habUpRTkN4?= =?utf-8?B?OUoxUHBoeE9udE9HVTlJQ2dCaWRFeE4rZlVONWJ6WDNpUHRIRkxFVjJHK0F4?= =?utf-8?B?YlhaWEU1M29GSXUvWFZKWCtsc29hR3ZFSlBCZlBnbjV5WnBqYXgySC81clVG?= =?utf-8?B?TU1RQWdQTjZBWHlQNkMwdnZkczJaYVdRTVpsNUppWnpaaDZsL3VnZ1h4TTZ2?= =?utf-8?B?TGw4YjNDTDlnZXVma3Zxb3ZKQTVSazVrUDFtRHZLOEM0V3U5STZCdVZoc1RB?= =?utf-8?B?a2RxQkRDTnA2aTZ6WVRja1IrcVJ3VjRRR0cyeldjWFhuYjA1amZmN0F0cjRI?= =?utf-8?B?RGhORktmdXNCUmRwK3Bxak42aU5KYjBPVHdtMXMwUWhmeS9EcncxOUIzajRn?= =?utf-8?B?SFdDb0lwQkFmU2lUeTl1THN2ZS9tZGNia2JJbHJ0emt0VWcySDBNQ0ZVOVgr?= =?utf-8?B?azZEOTZTcXJYM2ZYUThBcW1zdWhoREpNbWxwYkR3cUlNaVRRWlp2dmV4ZzU0?= =?utf-8?B?YkI2alFOY2ZzOUszd3JDZ0FqNTNnNHFaR1dWWkpKN21EUEplSHJIT3gxZ3JB?= =?utf-8?B?MEJFYlgvS3EvUUlmUHhsMFlMdXNmbWpuT3J0Vkx6eE1SWmVubldZSWxKeE9z?= =?utf-8?B?ZXB2RXRHZklJaFRoVC9nUXlyMGZVRisxaFZ3aVB0c1JGUjFybDVRVFREa2V0?= =?utf-8?B?eFR0RkFlRjZpb0JCS0QwSW83QlZCODk0Zm1XeTNrNEp2UWlYZWpJMGlsSi80?= =?utf-8?B?TkNxbVMraTNjMzhLYXh0Q05mVkh5NjlFRUdyNExUcndJd0JiRm5oUHU4R1Ez?= =?utf-8?B?a1c2TENOWFJHMlRHelFpQXpKZGwrMTVJMTJQdEh4RnZzUWhyTzBNVHZadDJy?= =?utf-8?B?enZVRTRoQkZkelhiWU55S2l5b2l2eDhqNG9saTRCTHNWc3lnVnc4RWN1V3gy?= =?utf-8?B?dXlGTS9HL3FuRHlSakJraUV4TnBPWm9LSWdBYTd0MHYwanVnKzdPd2hJRXZk?= =?utf-8?B?bG9iR3hIWS81dGRMbm9OZ0d6dmh1NUpXc2pNUURqeFhjRHhYMnk0RFMyTjBV?= =?utf-8?B?eEVwWVV0VUdmZGNFLzZmd2xkTUVDRXFnSnRDVTduaXUyTjVuSUE3K0ZpYzdK?= =?utf-8?Q?epMlzjrTHdnMtyv5FxA0lJAa7?= 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: 50d15986-bcce-4817-8442-08dd46c13479 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Feb 2025 15:16:17.9090 (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: 7hacdtUDRLqpFAjHd7EYOhjR3o0IRvt3xsf8WU7b4sHHbGsg+MiK9z8ztiUKOSuj0gfsfUurbALoBGIqOsv33Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR18MB3575 X-Proofpoint-ORIG-GUID: lwCwX_DGyjU3V0uPT9cMT8jx8E4TyiEl X-Proofpoint-GUID: 9Xlow0gculoN6p-zsHF1oeYKg1QrQ7Rt 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-02-06_03,2025-02-05_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 DQo+IEFkZCBtc2cgY2hhbiBmdW5jdGlvbnMgYW5kIHRoZSB1c2UgdG8gZ2V0DQo+IGhhcmR3YXJl IGluZm9ybWF0aW9uIG9yIG9wZXJhdGUgaGFyZHdhcmUuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBI YW54aWFvIExpIDxsaS5oYW54aWFvQHp0ZS5jb20uY24+DQo+IC0tLQ0KDQpCZWZvcmUgc2VuZGlu ZyB0aGUgbmV4dCB2ZXJzaW9uLCBwbGVhc2UgZW5zdXJlIGFsbCBwYXRjaGVzIGdldHMgY29tcGls ZWQgaW5jcmVtZW50YWxseS4NClBsZWFzZSBmaXggY29tcGlsYXRpb24uDQoNClsxLzMwXSBDb21w aWxpbmcgQyBvYmplY3QgZHJpdmVycy9saWJ0bXBfcnRlX2NvbW1vbl96c2RhLmEucC9jb21tb25f enNkYV96c2RhX3FwLmMubw0KRkFJTEVEOiBkcml2ZXJzL2xpYnRtcF9ydGVfY29tbW9uX3pzZGEu YS5wL2NvbW1vbl96c2RhX3pzZGFfcXAuYy5vDQpjY2FjaGUgY2xhbmcgLUlkcml2ZXJzL2xpYnRt cF9ydGVfY29tbW9uX3pzZGEuYS5wIC1JZHJpdmVycyAtSS4uL2RyaXZlcnMgLUlkcml2ZXJzL2Nv bW1vbi96c2RhIC1JLi4vZHJpdmVycy9jb21tb24venNkYSAtSWRyaXZlcnMvYnVzL3BjaSAtSS4u L2RyaXZlcnMvYnVzL3BjaSAtSS4uL2RyaXZlcnMvYnVzL3BjaS9saW51eCAtSS4gLUkuLiAtSWNv bmZpZyAtSS4uL2NvbmZpZyAtSWxpYi9lYWwvaW5jbHVkZSAtSS4uL2xpYi9lYWwvaW5jbHVkZSAt SWxpYi9lYWwvbGludXgvaW5jbHVkZSAtSS4uL2xpYi9lYWwvbGludXgvaW5jbHVkZSAtSWxpYi9l YWwveDg2L2luY2x1ZGUgLUkuLi9saWIvZWFsL3g4Ni9pbmNsdWRlIC1JLi4va2VybmVsL2xpbnV4 IC1JbGliL2VhbC9jb21tb24gLUkuLi9saWIvZWFsL2NvbW1vbiAtSWxpYi9lYWwgLUkuLi9saWIv ZWFsIC1JbGliL2t2YXJncyAtSS4uL2xpYi9rdmFyZ3MgLUlsaWIvbG9nIC1JLi4vbGliL2xvZyAt SWxpYi9tZXRyaWNzIC1JLi4vbGliL21ldHJpY3MgLUlsaWIvdGVsZW1ldHJ5IC1JLi4vbGliL3Rl bGVtZXRyeSAtSWxpYi9wY2kgLUkuLi9saWIvcGNpIC1JbGliL21idWYgLUkuLi9saWIvbWJ1ZiAt SWxpYi9tZW1wb29sIC1JLi4vbGliL21lbXBvb2wgLUlsaWIvcmluZyAtSS4uL2xpYi9yaW5nIC1m ZGlhZ25vc3RpY3MtY29sb3I9YWx3YXlzIC1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjQgLVdhbGwgLVdp bnZhbGlkLXBjaCAtV2V4dHJhIC1XZXJyb3IgLXN0ZD1jMTEgLU8yIC1nIC1pbmNsdWRlIHJ0ZV9j b25maWcuaCAtV2Nhc3QtcXVhbCAtV2RlcHJlY2F0ZWQgLVdmb3JtYXQgLVdmb3JtYXQtbm9ubGl0 ZXJhbCAtV2Zvcm1hdC1zZWN1cml0eSAtV21pc3NpbmctZGVjbGFyYXRpb25zIC1XbWlzc2luZy1w cm90b3R5cGVzIC1XbmVzdGVkLWV4dGVybnMgLVdvbGQtc3R5bGUtZGVmaW5pdGlvbiAtV3BvaW50 ZXItYXJpdGggLVdzaWduLWNvbXBhcmUgLVdzdHJpY3QtcHJvdG90eXBlcyAtV3VuZGVmIC1Xd3Jp dGUtc3RyaW5ncyAtV25vLW1pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzIC1EX0dOVV9TT1VSQ0Ug LWZQSUMgLW1hcmNoPW5hdGl2ZSAtbXJ0bSAtREFMTE9XX0VYUEVSSU1FTlRBTF9BUEkgLURBTExP V19JTlRFUk5BTF9BUEkgLVduby1hZGRyZXNzLW9mLXBhY2tlZC1tZW1iZXIgLURSVEVfTE9HX0RF RkFVTFRfTE9HVFlQRT1wbWQuY29tbW9uLnpzZGEgLURSVEVfQU5OT1RBVEVfTE9DS1MgLVd0aHJl YWQtc2FmZXR5IC1NRCAtTVEgZHJpdmVycy9saWJ0bXBfcnRlX2NvbW1vbl96c2RhLmEucC9jb21t b25fenNkYV96c2RhX3FwLmMubyAtTUYgZHJpdmVycy9saWJ0bXBfcnRlX2NvbW1vbl96c2RhLmEu cC9jb21tb25fenNkYV96c2RhX3FwLmMuby5kIC1vIGRyaXZlcnMvbGlidG1wX3J0ZV9jb21tb25f enNkYS5hLnAvY29tbW9uX3pzZGFfenNkYV9xcC5jLm8gLWMgLi4vZHJpdmVycy9jb21tb24venNk YS96c2RhX3FwLmMNCi4uL2RyaXZlcnMvY29tbW9uL3pzZGEvenNkYV9xcC5jOjIzNzoxOiBlcnJv cjogdW51c2VkIGZ1bmN0aW9uICd6c2RhX21vZHVsb18xNicgWy1XZXJyb3IsLVd1bnVzZWQtZnVu Y3Rpb25dDQp6c2RhX21vZHVsb18xNih1aW50MTZfdCBkYXRhLCB1aW50MTZfdCBtb2R1bG9fbWFz aykNCl4NCi4uL2RyaXZlcnMvY29tbW9uL3pzZGEvenNkYV9xcC5jOjI0MjoxOiBlcnJvcjogdW51 c2VkIGZ1bmN0aW9uICd6c2RhX21vZHVsb184JyBbLVdlcnJvciwtV3VudXNlZC1mdW5jdGlvbl0N CnpzZGFfbW9kdWxvXzgodWludDhfdCBkYXRhLCB1aW50OF90IG1vZHVsb19tYXNrKQ0KXg0KMiBl cnJvcnMgZ2VuZXJhdGVkLg0KWzIvMzBdIENvbXBpbGluZyBDIG9iamVjdCBkcml2ZXJzL2xpYnRt cF9ydGVfY29tbW9uX3pzZGEuYS5wL2NvbW1vbl96c2RhX3pzZGFfZGV2aWNlLmMubw0KDQoNCj4g IGRyaXZlcnMvY29tbW9uL3pzZGEvenNkYV9xcC5jICAgICAgICB8IDMwNyArKysrKysrKysrKysr KysrKysrKysrKysrKysNCj4gIGRyaXZlcnMvY29tbW9uL3pzZGEvenNkYV9xcC5oICAgICAgICB8 ICA0OCArKysrKw0KPiAgZHJpdmVycy9jb21tb24venNkYS96c2RhX3FwX2NvbW1vbi5oIHwgIDM3 ICsrKysNCj4gIDMgZmlsZXMgY2hhbmdlZCwgMzkyIGluc2VydGlvbnMoKykNCj4gDQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2NvbW1vbi96c2RhL3pzZGFfcXAuYyBiL2RyaXZlcnMvY29tbW9uL3pz ZGEvenNkYV9xcC5jDQo+IGluZGV4IGJjNDg5ZjYyOTYuLjZjMTg3NTc0NmQgMTAwNjQ0DQo+IC0t LSBhL2RyaXZlcnMvY29tbW9uL3pzZGEvenNkYV9xcC5jDQo+ICsrKyBiL2RyaXZlcnMvY29tbW9u L3pzZGEvenNkYV9xcC5jDQo+IEBAIC00LDggKzQsNTAgQEANCj4gDQo+ICAjaW5jbHVkZSAienNk YV9xcC5oIg0KPiANCj4gKyNkZWZpbmUgTUFHSUNfU0VORCAweGFiDQo+ICsjZGVmaW5lIE1BR0lD X1JFQ1YgMHhjZA0KPiArI2RlZmluZSBBRE1JTl9WRVIgMQ0KPiArDQo+ICBzdGF0aWMgdWludDhf dCB6c2RhX251bV91c2VkX3FwczsNCj4gDQo+ICtzdGF0aWMgc3RydWN0IHJpbmdfc2l6ZSB6c2Rh X3FwX2h3X3Jpbmdfc2l6ZVtaU0RBX01BWF9TRVJWSUNFU10gPSB7DQo+ICt9Ow0KPiArDQo+ICtz dGF0aWMgY29uc3QgdWludDhfdCBjcmM4X3RhYmxlWzI1Nl0gPSB7DQo+ICsgICAgMHgwMCwgMHg0 MSwgMHgxMywgMHg1MiwgMHgyNiwgMHg2NywgMHgzNSwgMHg3NCwgMHg0YywgMHgwZCwgMHg1Ziwg MHgxZSwNCj4gKyAgICAweDZhLCAweDJiLCAweDc5LCAweDM4LCAweDA5LCAweDQ4LCAweDFhLCAw eDViLCAweDJmLCAweDZlLCAweDNjLCAweDdkLA0KPiArICAgIDB4NDUsIDB4MDQsIDB4NTYsIDB4 MTcsIDB4NjMsIDB4MjIsIDB4NzAsIDB4MzEsIDB4MTIsIDB4NTMsIDB4MDEsIDB4NDAsDQo+ICsg ICAgMHgzNCwgMHg3NSwgMHgyNywgMHg2NiwgMHg1ZSwgMHgxZiwgMHg0ZCwgMHgwYywgMHg3OCwg MHgzOSwgMHg2YiwgMHgyYSwNCj4gKyAgICAweDFiLCAweDVhLCAweDA4LCAweDQ5LCAweDNkLCAw eDdjLCAweDJlLCAweDZmLCAweDU3LCAweDE2LCAweDQ0LCAweDA1LA0KPiArICAgIDB4NzEsIDB4 MzAsIDB4NjIsIDB4MjMsIDB4MjQsIDB4NjUsIDB4MzcsIDB4NzYsIDB4MDIsIDB4NDMsIDB4MTEs IDB4NTAsDQo+ICsgICAgMHg2OCwgMHgyOSwgMHg3YiwgMHgzYSwgMHg0ZSwgMHgwZiwgMHg1ZCwg MHgxYywgMHgyZCwgMHg2YywgMHgzZSwgMHg3ZiwNCj4gKyAgICAweDBiLCAweDRhLCAweDE4LCAw eDU5LCAweDYxLCAweDIwLCAweDcyLCAweDMzLCAweDQ3LCAweDA2LCAweDU0LCAweDE1LA0KPiAr ICAgIDB4MzYsIDB4NzcsIDB4MjUsIDB4NjQsIDB4MTAsIDB4NTEsIDB4MDMsIDB4NDIsIDB4N2Es IDB4M2IsIDB4NjksIDB4MjgsDQo+ICsgICAgMHg1YywgMHgxZCwgMHg0ZiwgMHgwZSwgMHgzZiwg MHg3ZSwgMHgyYywgMHg2ZCwgMHgxOSwgMHg1OCwgMHgwYSwgMHg0YiwNCj4gKyAgICAweDczLCAw eDMyLCAweDYwLCAweDIxLCAweDU1LCAweDE0LCAweDQ2LCAweDA3LCAweDQ4LCAweDA5LCAweDVi LCAweDFhLA0KPiArICAgIDB4NmUsIDB4MmYsIDB4N2QsIDB4M2MsIDB4MDQsIDB4NDUsIDB4MTcs IDB4NTYsIDB4MjIsIDB4NjMsIDB4MzEsIDB4NzAsDQo+ICsgICAgMHg0MSwgMHgwMCwgMHg1Miwg MHgxMywgMHg2NywgMHgyNiwgMHg3NCwgMHgzNSwgMHgwZCwgMHg0YywgMHgxZSwgMHg1ZiwNCj4g KyAgICAweDJiLCAweDZhLCAweDM4LCAweDc5LCAweDVhLCAweDFiLCAweDQ5LCAweDA4LCAweDdj LCAweDNkLCAweDZmLCAweDJlLA0KPiArICAgIDB4MTYsIDB4NTcsIDB4MDUsIDB4NDQsIDB4MzAs IDB4NzEsIDB4MjMsIDB4NjIsIDB4NTMsIDB4MTIsIDB4NDAsIDB4MDEsDQo+ICsgICAgMHg3NSwg MHgzNCwgMHg2NiwgMHgyNywgMHgxZiwgMHg1ZSwgMHgwYywgMHg0ZCwgMHgzOSwgMHg3OCwgMHgy YSwgMHg2YiwNCj4gKyAgICAweDZjLCAweDJkLCAweDdmLCAweDNlLCAweDRhLCAweDBiLCAweDU5 LCAweDE4LCAweDIwLCAweDYxLCAweDMzLCAweDcyLA0KPiArICAgIDB4MDYsIDB4NDcsIDB4MTUs IDB4NTQsIDB4NjUsIDB4MjQsIDB4NzYsIDB4MzcsIDB4NDMsIDB4MDIsIDB4NTAsIDB4MTEsDQo+ ICsgICAgMHgyOSwgMHg2OCwgMHgzYSwgMHg3YiwgMHgwZiwgMHg0ZSwgMHgxYywgMHg1ZCwgMHg3 ZSwgMHgzZiwgMHg2ZCwgMHgyYywNCj4gKyAgICAweDU4LCAweDE5LCAweDRiLCAweDBhLCAweDMy LCAweDczLCAweDIxLCAweDYwLCAweDE0LCAweDU1LCAweDA3LCAweDQ2LA0KPiArICAgIDB4Nzcs IDB4MzYsIDB4NjQsIDB4MjUsIDB4NTEsIDB4MTAsIDB4NDIsIDB4MDMsIDB4M2IsIDB4N2EsIDB4 MjgsIDB4NjksDQo+ICsgICAgMHgxZCwgMHg1YywgMHgwZSwgMHg0Zn07DQo+ICsNCj4gK3N0YXRp YyB1aW50OF90DQo+ICt6c2RhX2NyYzgoY29uc3QgdWludDhfdCAqbWVzc2FnZSwgY29uc3QgaW50 IGxlbmd0aCkNCj4gK3sNCj4gKyAgICB1aW50OF90IGNyYyA9IDA7DQo+ICsgICAgaW50IGk7DQo+ ICsNCj4gKyAgICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspDQo+ICsgICAgICAgIGNyYyA9 IGNyYzhfdGFibGVbY3JjIF4gbWVzc2FnZVtpXV07DQo+ICsgICAgcmV0dXJuIGNyYzsNCj4gK30N Cj4gKw0KPiAgc3RhdGljIHVpbnQ4X3QNCj4gIHpzZGFfdXNlZF9xcHNfbnVtX2dldChjb25zdCBz dHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKnBjaV9kZXYpDQo+ICB7DQo+IEBAIC0xNjQsNiArMjA2LDI1 OCBAQCB6c2RhX3F1ZXVlX2NsZWFyKGNvbnN0IHN0cnVjdCBydGVfcGNpX2RldmljZQ0KPiAqcGNp X2RldikNCj4gICAgICByZXR1cm4gcmV0Ow0KPiAgfQ0KPiANCj4gK3N0YXRpYyB1aW50MzJfdA0K PiArenNkYV9yZWdfOF9zZXQodm9pZCAqYWRkciwgY29uc3QgdWludDhfdCB2YWwwLCBjb25zdCB1 aW50OF90IHZhbDEsDQo+ICsgICAgICBjb25zdCB1aW50OF90IHZhbDIsIGNvbnN0IHVpbnQ4X3Qg dmFsMykNCj4gK3sNCj4gKyAgICB1aW50OF90IHZhbFs0XTsNCj4gKw0KPiArICAgIHZhbFswXSA9 IHZhbDA7DQo+ICsgICAgdmFsWzFdID0gdmFsMTsNCj4gKyAgICB2YWxbMl0gPSB2YWwyOw0KPiAr ICAgIHZhbFszXSA9IHZhbDM7DQo+ICsgICAgWlNEQV9DU1JfV1JJVEUzMihhZGRyLCAqKHVpbnQz Ml90ICopdmFsKTsNCj4gKyAgICByZXR1cm4gKih1aW50MzJfdCAqKXZhbDsNCj4gK30NCj4gKw0K PiArc3RhdGljIHVpbnQ4X3QNCj4gK3pzZGFfcmVnXzhfZ2V0KHZvaWQgKmFkZHIsIGNvbnN0IGlu dCBvZmZzZXQpDQo+ICt7DQo+ICsgICAgdWludDMyX3QgdmFsID0gWlNEQV9DU1JfUkVBRDMyKGFk ZHIpOw0KPiArDQo+ICsgICAgcmV0dXJuICooKCh1aW50OF90ICopJnZhbCkgKyBvZmZzZXQpOw0K PiArfQ0KPiArDQo+ICtzdGF0aWMgaW5saW5lIHVpbnQzMl90DQo+ICt6c2RhX21vZHVsb18zMih1 aW50MzJfdCBkYXRhLCB1aW50MzJfdCBtb2R1bG9fbWFzaykNCj4gK3sNCj4gKyAgICByZXR1cm4g KGRhdGEpICYgKG1vZHVsb19tYXNrKTsNCj4gK30NCj4gK3N0YXRpYyBpbmxpbmUgdWludDE2X3QN Cj4gK3pzZGFfbW9kdWxvXzE2KHVpbnQxNl90IGRhdGEsIHVpbnQxNl90IG1vZHVsb19tYXNrKQ0K PiArew0KPiArICAgIHJldHVybiAoZGF0YSkgJiAobW9kdWxvX21hc2spOw0KPiArfQ0KPiArc3Rh dGljIGlubGluZSB1aW50OF90DQo+ICt6c2RhX21vZHVsb184KHVpbnQ4X3QgZGF0YSwgdWludDhf dCBtb2R1bG9fbWFzaykNCj4gK3sNCj4gKyAgICByZXR1cm4gKGRhdGEpICYgKG1vZHVsb19tYXNr KTsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludA0KPiArenNkYV9hZG1pbl9tc2dfc2VuZChjb25z dCBzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKnBjaV9kZXYsIHZvaWQgKnJlcSwNCj4gKyAgICAgICAg ICAgIGNvbnN0IHVpbnQzMl90IGxlbikNCj4gK3sNCj4gKyAgICB1aW50OF90ICptbWlvX2Jhc2Ug PSBwY2lfZGV2LT5tZW1fcmVzb3VyY2VbMF0uYWRkcjsNCj4gKyAgICB1aW50OF90IHdxX2ZsYWc7 DQo+ICsgICAgdWludDhfdCBjcmM7DQo+ICsgICAgdWludDE2X3QgYWRtaW5fZGI7DQo+ICsgICAg dWludDMyX3QgcmV0cnkgPSBaU0RBX1RJTUVfTlVNOw0KPiArICAgIGludCBpOw0KPiArICAgIHVp bnQxNl90IGRiOw0KPiArICAgIGludCByZXBlYXQgPSBzaXplb2Yoc3RydWN0IHpzZGFfYWRtaW5f cmVxKSAvIHNpemVvZih1aW50MzJfdCk7DQo+ICsNCj4gKyAgICBpZiAobGVuID4gQURNSU5fQlVG X0RBVEFfTEVOKQ0KPiArICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gKw0KPiArICAgIGZvciAo aSA9IDA7IGkgPCByZXBlYXQ7IGkrKykgew0KPiArICAgICAgICBaU0RBX0NTUl9XUklURTMyKCgo dWludDMyX3QgKikobW1pb19iYXNlICsgWlNEQV9BRE1JTl9XUSkgKyBpKSwNCj4gKyAgICAgICAg ICAgICAgICAgKigodWludDMyX3QgKilyZXEgKyBpKSk7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAg Y3JjID0genNkYV9jcmM4KCh1aW50OF90ICopcmVxLCBBRE1JTl9CVUZfREFUQV9MRU4pOw0KPiAr ICAgIHpzZGFfcmVnXzhfc2V0KG1taW9fYmFzZSArIFpTREFfQURNSU5fV1FfQkFTRTcsIGNyYywg QURNSU5fVkVSLA0KPiBNQUdJQ19TRU5ELCAwKTsNCj4gKyAgICBydGVfZGVsYXlfdXNfc2xlZXAo WlNEQV9USU1FX1NMRUVQX1VTKTsNCj4gKyAgICBydGVfd21iKCk7DQo+ICsNCj4gKyAgICBhZG1p bl9kYiA9IFpTREFfQ1NSX1JFQUQzMihtbWlvX2Jhc2UgKyBaU0RBX0FETUlOX1dRX1RBSUwpOw0K PiArICAgIGRiID0genNkYV9tb2R1bG9fMzIoYWRtaW5fZGIsIDB4MWZmKTsNCj4gKyAgICBaU0RB X0NTUl9XUklURTMyKG1taW9fYmFzZSArIFpTREFfQURNSU5fV1FfVEFJTCwgZGIpOw0KPiArDQo+ ICsgICAgZG8gew0KPiArICAgICAgICBydGVfZGVsYXlfdXNfc2xlZXAoWlNEQV9USU1FX1NMRUVQ X1VTKTsNCj4gKyAgICAgICAgd3FfZmxhZyA9IHpzZGFfcmVnXzhfZ2V0KG1taW9fYmFzZSArIFpT REFfQURNSU5fV1FfQkFTRTcsIDIpOw0KPiArICAgICAgICBpZiAod3FfZmxhZyA9PSBNQUdJQ19S RUNWKQ0KPiArICAgICAgICAgICAgYnJlYWs7DQo+ICsNCj4gKyAgICAgICAgcmV0cnktLTsNCj4g KyAgICAgICAgaWYgKCFyZXRyeSkgew0KPiArICAgICAgICAgICAgWlNEQV9MT0coRVJSLCAid3Ff ZmxhZyAweCVYIiwgd3FfZmxhZyk7DQo+ICsgICAgICAgICAgICB6c2RhX3JlZ184X3NldChtbWlv X2Jhc2UgKyBaU0RBX0FETUlOX1dRX0JBU0U3LCAwLCBjcmMsDQo+ICsgICAgICAgICAgICAgICAg ICBBRE1JTl9WRVIsIDApOw0KPiArICAgICAgICAgICAgcmV0dXJuIC1FSU87DQo+ICsgICAgICAg IH0NCj4gKyAgICB9IHdoaWxlICgxKTsNCj4gKw0KPiArICAgIHJldHVybiBaU0RBX1NVQ0NFU1M7 DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyBpbnQNCj4gK3pzZGFfYWRtaW5fbXNnX3JlY3YoY29uc3Qg c3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpwY2lfZGV2LCB2b2lkICpyZXNwLA0KPiArICAgICAgICAg ICAgY29uc3QgdWludDMyX3QgbGVuKQ0KPiArew0KPiArICAgIHVpbnQ4X3QgKm1taW9fYmFzZSA9 IHBjaV9kZXYtPm1lbV9yZXNvdXJjZVswXS5hZGRyOw0KPiArICAgIHVpbnQ4X3QgY3FfZmxhZzsN Cj4gKyAgICB1aW50MzJfdCByZXRyeSA9IFpTREFfVElNRV9OVU07DQo+ICsgICAgdWludDhfdCBj cmM7DQo+ICsgICAgdWludDhfdCBidWZbQURNSU5fQlVGX1RPVEFMX0xFTl0gPSB7MH07DQo+ICsg ICAgdWludDMyX3QgaTsNCj4gKw0KPiArICAgIGlmIChsZW4gPiBBRE1JTl9CVUZfREFUQV9MRU4p DQo+ICsgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiArDQo+ICsgICAgZG8gew0KPiArICAgICAg ICBydGVfZGVsYXlfdXNfc2xlZXAoWlNEQV9USU1FX1NMRUVQX1VTKTsNCj4gKw0KPiArICAgICAg ICBjcV9mbGFnID0genNkYV9yZWdfOF9nZXQobW1pb19iYXNlICsgWlNEQV9BRE1JTl9DUV9CQVNF NywgMik7DQo+ICsgICAgICAgIGlmIChjcV9mbGFnID09IE1BR0lDX1NFTkQpDQo+ICsgICAgICAg ICAgICBicmVhazsNCj4gKw0KPiArICAgICAgICByZXRyeS0tOw0KPiArICAgICAgICBpZiAoIXJl dHJ5KQ0KPiArICAgICAgICAgICAgcmV0dXJuIC1FSU87DQo+ICsgICAgfSB3aGlsZSAoMSk7DQo+ ICsNCj4gKyAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspDQo+ICsgICAgICAgIGJ1ZltpXSA9 IFpTREFfQ1NSX1JFQUQ4KG1taW9fYmFzZSArIFpTREFfQURNSU5fQ1EgKyBpKTsNCj4gKw0KPiAr ICAgIGNyYyA9IFpTREFfQ1NSX1JFQUQ4KG1taW9fYmFzZSArIFpTREFfQURNSU5fQ1FfQ1JDKTsN Cj4gKyAgICBydGVfcm1iKCk7DQo+ICsgICAgWlNEQV9DU1JfV1JJVEU4KG1taW9fYmFzZSArIFpT REFfQURNSU5fQ1FfRkxBRywgTUFHSUNfUkVDVik7DQo+ICsgICAgaWYgKGNyYyAhPSB6c2RhX2Ny YzgoYnVmLCBBRE1JTl9CVUZfREFUQV9MRU4pKSB7DQo+ICsgICAgICAgIFpTREFfTE9HKEVSUiwg IlslZF0gRmFpbGVkISBjcmMgZXJyb3IhIiwgX19MSU5FX18pOw0KPiArICAgICAgICByZXR1cm4g LUVJTzsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICBtZW1jcHkocmVzcCwgYnVmLCBsZW4pOw0KPiAr DQo+ICsgICAgcmV0dXJuIFpTREFfU1VDQ0VTUzsNCj4gK30NCj4gKw0KPiArc3RhdGljIGludA0K PiArenNkYV9hZG1pbl9tc2dfaW5pdChjb25zdCBzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKnBjaV9k ZXYpDQo+ICt7DQo+ICsgICAgdWludDhfdCAqbW1pb19iYXNlID0gcGNpX2Rldi0+bWVtX3Jlc291 cmNlWzBdLmFkZHI7DQo+ICsNCj4gKyAgICB6c2RhX3JlZ184X3NldChtbWlvX2Jhc2UgKyBaU0RB X0FETUlOX1dRX0JBU0U3LCAwLCAwLCBNQUdJQ19SRUNWLA0KPiAwKTsNCj4gKyAgICB6c2RhX3Jl Z184X3NldChtbWlvX2Jhc2UgKyBaU0RBX0FETUlOX0NRX0JBU0U3LCAwLCAwLCBNQUdJQ19SRUNW LA0KPiAwKTsNCj4gKyAgICByZXR1cm4gMDsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQNCj4g K3pzZGFfcXVldWVfaGVhZF90YWlsX3NldChjb25zdCBzdHJ1Y3QgenNkYV9wY2lfZGV2aWNlICp6 c2RhX3BjaV9kZXYsDQo+ICsgICAgICAgICAgICAgY29uc3QgdWludDhfdCBxaWQpDQo+ICt7DQo+ ICsgICAgc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpwY2lfZGV2ID0NCj4gKyAgICAgICAgenNkYV9k ZXZzW3pzZGFfcGNpX2Rldi0+enNkYV9kZXZfaWRdLnBjaV9kZXY7DQo+ICsgICAgdWludDhfdCAq bW1pb19iYXNlID0gcGNpX2Rldi0+bWVtX3Jlc291cmNlWzBdLmFkZHI7DQo+ICsNCj4gKyAgICBa U0RBX0NTUl9XUklURTMyKG1taW9fYmFzZSArIElPX0RCX0lOSVRJQUxfQ09ORklHICsgKHFpZCAq IDQpLA0KPiArICAgICAgICAgICAgIFNFVF9IRUFEX0lOVEkpOw0KPiArfQ0KPiArDQo+ICtzdGF0 aWMgaW50DQo+ICt6c2RhX3F1ZXVlX2NmZ19ieV9pZF9nZXQoY29uc3Qgc3RydWN0IHpzZGFfcGNp X2RldmljZSAqenNkYV9wY2lfZGV2LA0KPiArICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgcWlk LCBzdHJ1Y3QgcWluZm8gKnFjZmcpDQo+ICt7DQo+ICsgICAgc3RydWN0IHpzZGFfYWRtaW5fcmVx X3FjZmcgcmVxID0gezB9Ow0KPiArICAgIHN0cnVjdCB6c2RhX2FkbWluX3Jlc3BfcWNmZyByZXNw ID0gezB9Ow0KPiArICAgIGludCByZXQ7DQo+ICsgICAgc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpw Y2lfZGV2ID0NCj4gKyAgICAgICAgenNkYV9kZXZzW3pzZGFfcGNpX2Rldi0+enNkYV9kZXZfaWRd LnBjaV9kZXY7DQo+ICsNCj4gKyAgICBpZiAocWlkID49IE1BWF9RUFNfT05fRlVOQ1RJT04pIHsN Cj4gKyAgICAgICAgWlNEQV9MT0coRVJSLCAicWlkIGJleW9uZCBsaW1pdCEiKTsNCj4gKyAgICAg ICAgcmV0dXJuIFpTREFfRkFJTEVEOw0KPiArICAgIH0NCj4gKw0KPiArICAgIHpzZGFfYWRtaW5f bXNnX2luaXQocGNpX2Rldik7DQo+ICsgICAgcmVxLm1zZ190eXBlID0gWlNEQV9BRE1JTl9RVUVV RV9DRkdfUkVROw0KPiArICAgIHJlcS5xaWQgPSBxaWQ7DQo+ICsNCj4gKyAgICByZXQgPSB6c2Rh X2FkbWluX21zZ19zZW5kKHBjaV9kZXYsICZyZXEsIHNpemVvZihyZXEpKTsNCj4gKyAgICBpZiAo cmV0KSB7DQo+ICsgICAgICAgIFpTREFfTE9HKEVSUiwgIkZhaWxlZCEgU2VuZCBtc2ciKTsNCj4g KyAgICAgICAgcmV0dXJuIHJldDsNCj4gKyAgICB9DQo+ICsNCj4gKyAgICByZXQgPSB6c2RhX2Fk bWluX21zZ19yZWN2KHBjaV9kZXYsICZyZXNwLCBzaXplb2YocmVzcCkpOw0KPiArICAgIGlmIChy ZXQpIHsNCj4gKyAgICAgICAgWlNEQV9MT0coRVJSLCAiRmFpbGVkISBSZWNlaXZlIG1zZyIpOw0K PiArICAgICAgICByZXR1cm4gcmV0Ow0KPiArICAgIH0NCj4gKw0KPiArICAgICpxY2ZnID0gcmVz cC5xY2ZnOw0KPiArDQo+ICsgICAgcmV0dXJuIFpTREFfU1VDQ0VTUzsNCj4gK30NCj4gKw0KPiAr c3RhdGljIGludA0KPiArenNkYV9xdWV1ZV9jZmdfZ2V0KHN0cnVjdCB6c2RhX3BjaV9kZXZpY2Ug KnpzZGFfcGNpX2RldikNCj4gK3sNCj4gKyAgICB1aW50OF90IGk7DQo+ICsgICAgdWludDMyX3Qg aW5kZXg7DQo+ICsgICAgZW51bSB6c2RhX3NlcnZpY2VfdHlwZSB0eXBlOw0KPiArICAgIHN0cnVj dCB6c2RhX3FwX2h3ICp6c2RhX2h3X3FwcyA9IHpzZGFfcGNpX2Rldi0+enNkYV9od19xcHM7DQo+ ICsgICAgc3RydWN0IHFpbmZvIHFjZmcgPSB7MH07DQo+ICsgICAgaW50IHJldCA9IFpTREFfRkFJ TEVEOw0KPiArDQo+ICsgICAgZm9yIChpID0gMDsgaSA8IHpzZGFfbnVtX3VzZWRfcXBzOyBpKysp IHsNCj4gKyAgICAgICAgenNkYV9xdWV1ZV9oZWFkX3RhaWxfc2V0KHpzZGFfcGNpX2RldiwgaSk7 DQo+ICsgICAgICAgIHJldCA9IHpzZGFfcXVldWVfY2ZnX2J5X2lkX2dldCh6c2RhX3BjaV9kZXYs IGksICZxY2ZnKTsNCj4gKyAgICAgICAgdHlwZSA9IHFjZmcucV90eXBlOw0KPiArICAgICAgICBp ZiAocmV0KSB7DQo+ICsgICAgICAgICAgICBaU0RBX0xPRyhFUlIsICJnZXQgcXVldWUgY2ZnISIp Ow0KPiArICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gKyAgICAgICAgfQ0KPiArICAgICAgICBp ZiAodHlwZSA+PSBaU0RBX1NFUlZJQ0VfSU5WQUxJRCkNCj4gKyAgICAgICAgICAgIGNvbnRpbnVl Ow0KPiArDQo+ICsgICAgICAgIGluZGV4ID0genNkYV9wY2lfZGV2LT56c2RhX3FwX2h3X251bVt0 eXBlXTsNCj4gKyAgICAgICAgenNkYV9od19xcHNbdHlwZV0uZGF0YVtpbmRleF0udXNlZCA9IHRy dWU7DQo+ICsgICAgICAgIHpzZGFfaHdfcXBzW3R5cGVdLmRhdGFbaW5kZXhdLnR4X3JpbmdfbnVt ID0gaTsNCj4gKyAgICAgICAgenNkYV9od19xcHNbdHlwZV0uZGF0YVtpbmRleF0ucnhfcmluZ19u dW0gPSBpOw0KPiArICAgICAgICB6c2RhX2h3X3Fwc1t0eXBlXS5kYXRhW2luZGV4XS50eF9tc2df c2l6ZSA9DQo+ICsgICAgICAgICAgICB6c2RhX3FwX2h3X3Jpbmdfc2l6ZVt0eXBlXS50eF9tc2df c2l6ZTsNCj4gKyAgICAgICAgenNkYV9od19xcHNbdHlwZV0uZGF0YVtpbmRleF0ucnhfbXNnX3Np emUgPQ0KPiArICAgICAgICAgICAgenNkYV9xcF9od19yaW5nX3NpemVbdHlwZV0ucnhfbXNnX3Np emU7DQo+ICsNCj4gKyAgICAgICAgenNkYV9wY2lfZGV2LT56c2RhX3FwX2h3X251bVt0eXBlXSsr Ow0KPiArICAgIH0NCj4gKw0KPiArICAgIHJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4gK3N0YXRp YyBpbnQNCj4gK3pzZGFfZmxyX3VubWFza19zZXQoY29uc3Qgc3RydWN0IHpzZGFfcGNpX2Rldmlj ZSAqenNkYV9wY2lfZGV2KQ0KPiArew0KPiArICAgIHN0cnVjdCB6c2RhX2FkbWluX3JlcV9xY2Zn IHJlcSA9IHswfTsNCj4gKyAgICBzdHJ1Y3QgenNkYV9hZG1pbl9yZXNwX3FjZmcgcmVzcCA9IHsw fTsNCj4gKw0KPiArICAgIGludCByZXQgPSAwOw0KPiArICAgIHN0cnVjdCBydGVfcGNpX2Rldmlj ZSAqcGNpX2RldiA9DQo+ICsgICAgICAgIHpzZGFfZGV2c1t6c2RhX3BjaV9kZXYtPnpzZGFfZGV2 X2lkXS5wY2lfZGV2Ow0KPiArDQo+ICsgICAgenNkYV9hZG1pbl9tc2dfaW5pdChwY2lfZGV2KTsN Cj4gKw0KPiArICAgIHJlcS5tc2dfdHlwZSA9IFpTREFfRkxSX1NFVF9GVU5DVElPTjsNCj4gKw0K PiArICAgIHJldCA9IHpzZGFfYWRtaW5fbXNnX3NlbmQocGNpX2RldiwgJnJlcSwgc2l6ZW9mKHJl cSkpOw0KPiArICAgIGlmIChyZXQpIHsNCj4gKyAgICAgICAgWlNEQV9MT0coRVJSLCAiRmFpbGVk ISBTZW5kIG1zZyIpOw0KPiArICAgICAgICByZXR1cm4gcmV0Ow0KPiArICAgIH0NCj4gKw0KPiAr ICAgIHJldCA9IHpzZGFfYWRtaW5fbXNnX3JlY3YocGNpX2RldiwgJnJlc3AsIHNpemVvZihyZXNw KSk7DQo+ICsgICAgaWYgKHJldCkgew0KPiArICAgICAgICBaU0RBX0xPRyhFUlIsICJGYWlsZWQh IFJlY2VpdmUgbXNnIik7DQo+ICsgICAgICAgIHJldHVybiByZXQ7DQo+ICsgICAgfQ0KPiArDQo+ ICsgICAgcmV0dXJuIFpTREFfU1VDQ0VTUzsNCj4gK30NCj4gKw0KPiArDQo+ICBpbnQNCj4gIHpz ZGFfcXVldWVfaW5pdChzdHJ1Y3QgenNkYV9wY2lfZGV2aWNlICp6c2RhX3BjaV9kZXYpDQo+ICB7 DQo+IEBAIC0xODMsNSArNDc3LDE4IEBAIHpzZGFfcXVldWVfaW5pdChzdHJ1Y3QgenNkYV9wY2lf ZGV2aWNlICp6c2RhX3BjaV9kZXYpDQo+ICAgICAgICAgIFpTREFfTE9HKEVSUiwgIkZhaWxlZCEg dXNlZCB6c2RhX2lvIHEgY2xlYXIiKTsNCj4gICAgICAgICAgcmV0dXJuIHJldDsNCj4gICAgICB9 DQo+ICsNCj4gKyAgICByZXQgPSB6c2RhX3F1ZXVlX2NmZ19nZXQoenNkYV9wY2lfZGV2KTsNCj4g KyAgICBpZiAocmV0KSB7DQo+ICsgICAgICAgIFpTREFfTE9HKEVSUiwgIkZhaWxlZCEgenNkYV9x dWV1ZV9jZmdfZ2V0Iik7DQo+ICsgICAgICAgIHJldHVybiByZXQ7DQo+ICsgICAgfQ0KPiArDQo+ ICsgICAgcmV0ID0genNkYV9mbHJfdW5tYXNrX3NldCh6c2RhX3BjaV9kZXYpOw0KPiArICAgIGlm IChyZXQpIHsNCj4gKyAgICAgICAgWlNEQV9MT0coRVJSLCAiRmFpbGVkISB6c2RhX2Zscl91bm1h c2tfc2V0Iik7DQo+ICsgICAgICAgIHJldHVybiByZXQ7DQo+ICsgICAgfQ0KPiArDQo+ICAgICAg cmV0dXJuIHJldDsNCj4gIH0NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvY29tbW9uL3pzZGEvenNk YV9xcC5oIGIvZHJpdmVycy9jb21tb24venNkYS96c2RhX3FwLmgNCj4gaW5kZXggOTViYzZiYWNk NS4uYTFkNzBmMTU1ZiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9jb21tb24venNkYS96c2RhX3Fw LmgNCj4gKysrIGIvZHJpdmVycy9jb21tb24venNkYS96c2RhX3FwLmgNCj4gQEAgLTIwLDYgKzIw LDE5IEBADQo+ICAjZGVmaW5lIFpTREFfSU9fUV9DTFIgICAgICAgICAgICAweDYwMA0KPiAgI2Rl ZmluZSBaU0RBX0lPX1FfQ0xSX1JFU1AgICAgICAgIDB4ODAwDQo+IA0KPiArI2RlZmluZSBaU0RB X0FETUlOX1dRICAgICAgICAgICAgMHg0MA0KPiArI2RlZmluZSBaU0RBX0FETUlOX1dRX0JBU0U3 ICAgICAgICAweDVDDQo+ICsjZGVmaW5lIFpTREFfQURNSU5fV1FfQ1JDICAgICAgICAweDVDDQo+ ICsjZGVmaW5lIFpTREFfQURNSU5fV1FfVkVSU0lPTiAgICAweDVEDQo+ICsjZGVmaW5lIFpTREFf QURNSU5fV1FfRkxBRyAgICAgICAgMHg1RQ0KPiArI2RlZmluZSBaU0RBX0FETUlOX0NRICAgICAg ICAgICAgMHg2MA0KPiArI2RlZmluZSBaU0RBX0FETUlOX0NRX0JBU0U3ICAgICAgICAweDdDDQo+ ICsjZGVmaW5lIFpTREFfQURNSU5fQ1FfQ1JDICAgICAgICAweDdDDQo+ICsjZGVmaW5lIFpTREFf QURNSU5fQ1FfVkVSU0lPTiAgICAweDdEDQo+ICsjZGVmaW5lIFpTREFfQURNSU5fQ1FfRkxBRyAg ICAgICAgMHg3RQ0KPiArI2RlZmluZSBaU0RBX0FETUlOX1dRX1RBSUwgICAgICAgIDB4ODANCj4g KyNkZWZpbmUgWlNEQV9BRE1JTl9DUV9IRUFEICAgICAgICAweDg0DQo+ICsNCj4gICNkZWZpbmUg WlNEQV9RX1NUQVJUICAgICAgICAweDENCj4gICNkZWZpbmUgWlNEQV9RX1NUT1AgICAgICAgICAg ICAweDANCj4gICNkZWZpbmUgWlNEQV9DTEVBUl9WQUxJRCAgICAweDENCj4gQEAgLTI3LDExICs0 MCw0NiBAQA0KPiAgI2RlZmluZSBaU0RBX1JFU1BfVkFMSUQgICAgICAgIDB4MQ0KPiAgI2RlZmlu ZSBaU0RBX1JFU1BfSU5WQUxJRCAgICAweDANCj4gDQo+ICsjZGVmaW5lIEFETUlOX0JVRl9EQVRB X0xFTiAgICAgICAgMHgxQw0KPiArI2RlZmluZSBBRE1JTl9CVUZfVE9UQUxfTEVOICAgICAgICAw eDIwDQo+ICsNCj4gKyNkZWZpbmUgSU9fREJfSU5JVElBTF9DT05GSUcgICAgMHgxQzAwDQo+ICsj ZGVmaW5lIFNFVF9DWUNMRSAgICAgICAgICAgIDB4ZmYNCj4gKyNkZWZpbmUgU0VUX0hFQURfSU5U SSAgICAgICAgMHgwDQo+ICsNCj4gKw0KPiAgI2RlZmluZSBaU0RBX1RJTUVfU0xFRVBfVVMgICAg MTAwDQo+ICAjZGVmaW5lIFpTREFfVElNRV9OVU0gICAgICAgIDUwMA0KPiANCj4gIGV4dGVybiBz dHJ1Y3QgenNkYV9udW1fcXBzIHpzZGFfbmJfcXBzOw0KPiANCj4gK2VudW0genNkYV9hZG1pbl9t c2dfaWQgew0KPiArICAgIC8qIFZlcnNpb24gaW5mb3JtYXRpb24gKi8NCj4gKyAgICBaU0RBX0FE TUlOX1ZFUlNJT05fUkVRID0gMCwNCj4gKyAgICBaU0RBX0FETUlOX1ZFUlNJT05fUkVTUCwNCj4g KyAgICAvKiBhbGdvIHR5cGUgKi8NCj4gKyAgICBaU0RBX0FETUlOX1FVRVVFX0NGR19SRVEsDQo+ ICsgICAgWlNEQV9BRE1JTl9RVUVVRV9DRkdfUkVTUCwNCj4gKyAgICAvKiBnZXQgY3ljbGUgKi8N Cj4gKyAgICBaU0RBX0FETUlOX1FVRVVFX0NZQ0xFX1JFUSwNCj4gKyAgICBaU0RBX0FETUlOX1FV RVVFX0NZQ0xFX1JFU1AsDQo+ICsgICAgLyogc2V0IGN5Y2xyICovDQo+ICsgICAgWlNEQV9BRE1J Tl9TRVRfQ1lDTEVfUkVRLA0KPiArICAgIFpTREFfQURNSU5fU0VUX0NZQ0xFX1JFU1AsDQo+ICsN Cj4gKyAgICBaU0RBX01JR19TVEFURV9XQVJOSU5HLA0KPiArICAgIFpTREFfQURNSU5fUkVTRVJW RSwNCj4gKyAgICAvKiBzZXQgY2xvc2UgZmxyIHJlZ2lzdGVyICovDQo+ICsgICAgWlNEQV9GTFJf U0VUX0ZVTkNUSU9OLA0KPiArICAgIFpTREFfQURNSU5fTVNHX1ZBTElELA0KPiArICAgIFpTREFf QURNSU5fSU5UX1RFU1QNCj4gK307DQo+ICsNCj4gK3N0cnVjdCByaW5nX3NpemUgew0KPiArICAg IHVpbnQxNl90IHR4X21zZ19zaXplOw0KPiArICAgIHVpbnQxNl90IHJ4X21zZ19zaXplOw0KPiAr fTsNCj4gKw0KPiAgaW50IHpzZGFfcXVldWVfc3RhcnQoY29uc3Qgc3RydWN0IHJ0ZV9wY2lfZGV2 aWNlICpwY2lfZGV2KTsNCj4gIGludCB6c2RhX3F1ZXVlX3N0b3AoY29uc3Qgc3RydWN0IHJ0ZV9w Y2lfZGV2aWNlICpwY2lfZGV2KTsNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2NvbW1vbi96 c2RhL3pzZGFfcXBfY29tbW9uLmgNCj4gYi9kcml2ZXJzL2NvbW1vbi96c2RhL3pzZGFfcXBfY29t bW9uLmgNCj4gaW5kZXggYmMyOWRmZGY2MC4uYWU3MjVjMTdhZSAxMDA2NDQNCj4gLS0tIGEvZHJp dmVycy9jb21tb24venNkYS96c2RhX3FwX2NvbW1vbi5oDQo+ICsrKyBiL2RyaXZlcnMvY29tbW9u L3pzZGEvenNkYV9xcF9jb21tb24uaA0KPiBAQCAtMzMsNCArMzMsNDEgQEAgZW51bSB6c2RhX3Nl cnZpY2VfdHlwZSB7DQo+ICAjZGVmaW5lIFpTREFfQ1NSX1JFQUQ4KGFkZHIpICAgICAgICAgIHJ0 ZV9yZWFkOCgoYWRkcikpDQo+ICAjZGVmaW5lIFpTREFfQ1NSX1dSSVRFOChhZGRyLCB2YWx1ZSkg IHJ0ZV93cml0ZThfcmVsYXhlZCgodmFsdWUpLCAoYWRkcikpDQo+IA0KPiArc3RydWN0IF9fcnRl X3BhY2tlZF9iZWdpbiB6c2RhX2FkbWluX3JlcSB7DQo+ICsgICAgdWludDE2X3QgbXNnX3R5cGU7 DQo+ICsgICAgdWludDhfdCBkYXRhWzI2XTsNCj4gK30gX19ydGVfcGFja2VkX2VuZDsNCj4gKw0K PiArc3RydWN0IF9fcnRlX3BhY2tlZF9iZWdpbiB6c2RhX2FkbWluX3Jlc3Agew0KPiArICAgIHVp bnQxNl90IG1zZ190eXBlOw0KPiArICAgIHVpbnQ4X3QgZGF0YVsyNl07DQo+ICt9IF9fcnRlX3Bh Y2tlZF9lbmQ7DQo+ICsNCj4gK3N0cnVjdCBfX3J0ZV9wYWNrZWRfYmVnaW4genNkYV9hZG1pbl9y ZXFfcWNmZyB7DQo+ICsgICAgdWludDE2X3QgbXNnX3R5cGU7DQo+ICsgICAgdWludDhfdCBxaWQ7 DQo+ICsgICAgdWludDhfdCBkYXRhWzI1XTsNCj4gK30gX19ydGVfcGFja2VkX2VuZDsNCj4gKw0K PiArc3RydWN0IF9fcnRlX3BhY2tlZF9iZWdpbiB6c2RhX3Rlc3RfbXNnIHsNCj4gKyAgICB1aW50 MzJfdCBtc2dfdHlwZTsNCj4gKyAgICB1aW50MzJfdCBkYXRhX2luOw0KPiArICAgIHVpbnQ4X3Qg ZGF0YVsyMF07DQo+ICt9IF9fcnRlX3BhY2tlZF9lbmQ7DQo+ICsNCj4gK3N0cnVjdCBfX3J0ZV9w YWNrZWRfYmVnaW4gcWluZm8gew0KPiArICAgIHVpbnQxNl90IHFfdHlwZTsNCj4gKyAgICB1aW50 MTZfdCB3cV90YWlsOw0KPiArICAgIHVpbnQxNl90IHdxX2hlYWQ7DQo+ICsgICAgdWludDE2X3Qg Y3FfdGFpbDsNCj4gKyAgICB1aW50MTZfdCBjcV9oZWFkOw0KPiArICAgIHVpbnQxNl90IGN5Y2xl Ow0KPiArfSBfX3J0ZV9wYWNrZWRfZW5kOw0KPiArDQo+ICtzdHJ1Y3QgX19ydGVfcGFja2VkX2Jl Z2luIHpzZGFfYWRtaW5fcmVzcF9xY2ZnIHsNCj4gKyAgICB1aW50MTZfdCBtc2dfdHlwZTsNCj4g KyAgICBzdHJ1Y3QgcWluZm8gcWNmZzsNCj4gKyAgICB1aW50OF90IGRhdGFbMTRdOw0KPiArfSBf X3J0ZV9wYWNrZWRfZW5kOw0KPiArDQo+ICAjZW5kaWYgLyogX1pTREFfUVBfQ09NTU9OX0hfICov DQo+IC0tDQo+IDIuMjcuMA0KDQo=