From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id 37C923858C56 for ; Tue, 7 May 2024 09:57:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 37C923858C56 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=ibm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 37C923858C56 Authentication-Results: server2.sourceware.org; arc=fail smtp.remote-ip=148.163.156.1 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1715075849; cv=fail; b=sfmijOIPC/zGZkohv/CqGG29IucbBZDQhbw0V9mc9k9Qu2LTKlrA0xXiadst6W+SxdNzsQ1dnZy4jzUfjuQ9hYaREUEGNxNmJ6AFVriNP4y96V+iqyU4ref/jXkZo7fH2Fvfy/jnz7aBQUbOCV0GXMiDzfOEYu1TPONZpGgLajM= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1715075849; c=relaxed/simple; bh=/QNt26sL6bcHtNPoyb9NncPlSCs8HNa9eM6fe2tolC0=; h=DKIM-Signature:From:To:Date:Message-ID:MIME-Version:Subject; b=JTLaYK88f3B/+Q1eiyfOXwORHYXfY9wheb66+ksGNab54AXa2ZXrjDaOINNR3EiYQxWTT0kzmOOoQHB+HOjzTbdcjPxPOYFpmwaor0s5+EhPTl32aTHbhl91arrJ+uymyc47kNP7kdVxbqgBN8RS1+jsVoQAfRSAZ04SmrtLIGw= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0353727.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 4479GB7d030512; Tue, 7 May 2024 09:57:19 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : date : message-id : references : in-reply-to : content-type : mime-version : subject; s=pp1; bh=/QNt26sL6bcHtNPoyb9NncPlSCs8HNa9eM6fe2tolC0=; b=cPGoc5/mInhF9FIgKKJo8hmpzv9xa0jm+nAXuS4P4rhBvpPRuauT2bsh+8HPgcBcTHw8 YGIWuAQJENnIUMDjNrHIFMF8xnZfnaoYFiMRBd3FyYCZaWzuWMlYSITqC9vpKOl+HCfN Oe1+kK7HPCXtoWlpQPYZQj4gsWnvASM/Nahyv7KY87DXyYUwWo39/KgkHHYh3mqYHfLU NC1Zz2PF2LGhuhpjEfpVt+WVTVPUqNNyYNsIqclH7ITNdJMJNelmTyhz8P/iX49reW/z oUzu9Fdf+DG7SY6V0iJQ9K1VERIpd3jOGUcwWiXMhRkYwuEsrrMj/spWx5tMvscLjyfs wg== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3xyh3e85wt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 May 2024 09:57:18 +0000 Received: from m0353727.ppops.net (m0353727.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 4479vIaQ007743; Tue, 7 May 2024 09:57:18 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam02lp2040.outbound.protection.outlook.com [104.47.51.40]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3xyh3e85wp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 May 2024 09:57:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WS7fRNEkZhys2E9vc832Zs4apDYZIu7NNlqSYyPXxTd366TCjF8V+wDPUs/rE28MUy3wsDvdBzlVRpbxHU8qnJvTUaMRzOXTchNP6Er/W+wgJCF+YPH6Tmc90CkdM6XtfGyw18plOCVwBjqBy0jcE2i64Iy7JI6qrxTW6rvlKE1Jr0NttTZA/kVfctcqqbSjITPyUG25ttYi36WXK+awdKjkQHeqPeLa3UUnKJVJ1S1dq6cT5UZ9+2V5gbEbNHOsU/wGCPMukEnqfCqQ8JGvyrDxnQF37eUxcjMCd5w6MFmy8dcGNQlQKJTEWt2P+prUBJNobDBDs4GXAuPt80r5SA== 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=/QNt26sL6bcHtNPoyb9NncPlSCs8HNa9eM6fe2tolC0=; b=h9xVpd0XuLmRBxzxYO3uhr1kkc92GGjbL0PDXJh8bipUCgw64Cw+LkfK8s6SACoK17FHYr6eqmPSgi+NzvT2A+gHnJ5StNroY8wMya5wigY7TEM00gVaOVHmXqAa1qg5J5fvCbPBipPXKfx8fdKGliImttyA5LaNH0FA331BYhR18jJXmVtqjKKiWaodbtectlbI3v/EtK1OTYlOXEaMVWIrnRaSK3byPnhxWt8FaDA8ikD9htoSaAqUtPtWVJEjxeuoGzoeHx47ygaxG1CWlgN7vWa69tljvzlBEhY1ft/NZJHeyYiMmU6IbectPreeJu/YAzSKYQsHtI5WVvoA0A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ibm.com; dmarc=pass action=none header.from=ibm.com; dkim=pass header.d=ibm.com; arc=none Received: from CH2PR15MB3544.namprd15.prod.outlook.com (2603:10b6:610:5::26) by CH3PR15MB6327.namprd15.prod.outlook.com (2603:10b6:610:160::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.43; Tue, 7 May 2024 09:57:15 +0000 Received: from CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::86ba:f8f8:c478:6919]) by CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::86ba:f8f8:c478:6919%3]) with mapi id 15.20.7544.041; Tue, 7 May 2024 09:57:14 +0000 From: Aditya Kamath1 To: Aditya Vidyadhar Kamath , "tom@tromey.com" CC: Ulrich Weigand , "gdb-patches@sourceware.org" , Sangamesh Mallayya , "jhb@freebsd.org" Thread-Topic: [EXTERNAL] [PATCH v5] Fix AIX thread exit events not being reported and UI to show kernel thread ID. Thread-Index: AQHanWwcdRKC6ra6y02Kc4zvbQaKB7GFnWjegAXxOBs= Date: Tue, 7 May 2024 09:57:14 +0000 Message-ID: References: <20240503150953.28380-1-akamath996@gmail.com> In-Reply-To: Accept-Language: en-IN, en-US Content-Language: en-IN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH2PR15MB3544:EE_|CH3PR15MB6327:EE_ x-ms-office365-filtering-correlation-id: ff835635-590f-4600-fa89-08dc6e7c1274 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230031|1800799015|366007|376005|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?cEVPNGIzc2ZKdmw0MmVqUHZwVjBoQkRaM3VSaXc1ZXN4QS9UdjZHMWI2cUY3?= =?utf-8?B?VUhGdHVrRFhLZEZOWktEeG05VnVYaWxZUHNuZEw0MWtrNGpBRFBwTjc1eDR1?= =?utf-8?B?TXV1M2dwMVEyQmQ1OTF4UEZZZERtWHl1cDk1ODcvelhIK3lnTG1tN3N0Z0lS?= =?utf-8?B?OGdYdVN1VCtEOVlwSWFCRFc5UTFheVpuYzZLaVdOdHQ1blE4dUt5K1B5OE5H?= =?utf-8?B?aXFRblJieTJzR25MVjdrNHNyTjBRLzBSWTBuR2g4TmsvNHBuanRtNGc1bUhH?= =?utf-8?B?SW1iUmIreW1hMFVmRFVPVFo5NFUxMGZEWnVDdlJvd3NFTjNnekw3cEdWQlNj?= =?utf-8?B?cjh3WUpuNkFaNEN4dEdDWi9wb1QxVk10bFJLVjFkTjRoUU5jbS9CMHhaNHBP?= =?utf-8?B?OGEyMThWckVNRVpTd25uaVZ5dDBkdVBLSFFOT0ZiWDZlL25vQi9zcVFFdTY1?= =?utf-8?B?azlNMW03T1NQMEk0TXFnTWh0dFRxSGNyMXJZMEtYNWx2TDFkZkVtQk15UWMw?= =?utf-8?B?TnlITWpqRTcrclppZ05RY04vZENUTXh2cnc2K3pramNycVgyajAyM1NUSm1C?= =?utf-8?B?cjJTY1B2L01OQ3ovMm9IZ3BzWUE1YzA2QXdEejZGaVlaVm5pOGJueWZnQzBs?= =?utf-8?B?RWhSYUlRazdKL2hTOHZUWktnWmVVMDVLZ1IvZjFIOTZUNHpTOUJYWmFYU0hz?= =?utf-8?B?WlE4Q1VlMmFtTGlxM3VwRDFkeXJ1Ris1bGtZWnV1MzJaSXNIWDRiTDMxTVYz?= =?utf-8?B?NjJiQzVuanJZL0g4dFlFTk96eW1iZHhCSEhJbFZjU2g3LzQ4aE9EejhsM21N?= =?utf-8?B?U2R6VVNxZzVLakRUaCtDeG9xOFJ5dXczVHRCUzN1TXE2Snl3ellTZ2xzVUZl?= =?utf-8?B?dG5UNWxtck9pZi9RVHhvcGNGS3Q3QjlaUkZxZGNxL2JsbVN2R2YrMVN1MmJn?= =?utf-8?B?NVhPUEMrcEpLTVFzdFdOUzVKYzhjNXFnVUFIb2lIdmY1dEF1aE9hLzBhUWVx?= =?utf-8?B?SFVVRDZSOTlhV1RLdFV3L0h0UmthR2FXL3QxOFpQTGFxMTBLRWExTWFFZmpV?= =?utf-8?B?VC9sZTgvd1g0ekp0VGJKbk9rUUcxVUszZ2dIdnhNVGVoeHp3dEMwNVhXZU5M?= =?utf-8?B?aExoa3FsSDQrS2FITW9iYXdQcnRQUVlwV2RINlB5eVF3eW44L3J4T2t6LzlY?= =?utf-8?B?NERKQzFaOFZTYVlQNk1FTm5EZXpJckpjK1Zhc2F5R0lESkVkMkhmNEJ3cncv?= =?utf-8?B?ZXhYck91dDBIcnoycXlQOTdQbnU4UTZrN3hreVJZWmNPdFhNa2J2cHZlU3ZM?= =?utf-8?B?S1k4QWNIcTNlUytWaXc1OGh4VmdNTFpYdUhOcGMwWnVhYkpucmljcVR4UzY5?= =?utf-8?B?UVpySUJKZHp6SU80bk5pMkltbzV3c3hGVkwrVVVBR2J6V1RMdTZybzhqdE8z?= =?utf-8?B?a2ZvSzVTY2x3TVFVVUFkZmZVVzZIcnRwZU9xL3J6RVlJODFVak1BNk9TY1Iw?= =?utf-8?B?LzVnOWFReWdtcjhQQzl4dU9MdVBMNFhEYmhqV1RiSmlMWERZckozSTBqZHR2?= =?utf-8?B?WHVUVnpqMzViOWRwbk5teUFjTXB1MW1sQkp5QVhBREk5T2pTNXZqaU0xY3ZZ?= =?utf-8?B?SG9hV1hOb0NmWlBVWkI0d1NIK25EajZtUG5JZ21iVjFnS2s3Y3Zaam44Qmpy?= =?utf-8?B?UXBHVmVLcjNjc3NkSHJ6ZTlmSHRvN1NwWlQrZ1MvaUt0aldkaDNRNGJnPT0=?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR15MB3544.namprd15.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(1800799015)(366007)(376005)(38070700009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WHEwSmg4a2draDUra3lKRFpmRC9ham1SYmRJaXIxeGk2QXFsaGh5TG5kZnBm?= =?utf-8?B?NHVPTXZwRzk1cVEwekptdDFuOVdkQ2cvMmpsZHltc29EUUZGVkZmUEFQdDJk?= =?utf-8?B?eUFvcThMNUc5Ym9BdVZGRnFCZk90ckdnYzYxd2ovRkM0V2JQOURJMXhkcmtZ?= =?utf-8?B?TUU3Z2dLTDZpbkVkaXRqVGRWZm5kUkZGSzNxcHpTTjJSRWNEdGRGeHpEdHZU?= =?utf-8?B?Z3pDU3JmTVBTUFZIUzBhdUZMZitZTklKV1NrTzFrYnFXUjlaNk5jN2F2Y01X?= =?utf-8?B?M01EYTd1M2x6ZFg4NXJjOEFoK3B4Z1JZcXE0bGV5cm0rMk5qckF5bXZZSXRI?= =?utf-8?B?d3hQZmpkUlZ2QUJBR29uWm9PNWVyOXgydDhlV0tOS3Z4WlpmYUlCSVpadXJp?= =?utf-8?B?VGttNG10RFlvbGRESEphdFgwYk9MeVowYmU3TUk0NllFZmpFWGFtenVGQWtU?= =?utf-8?B?OHlkdmFCRjFHSVVNR1lLdWw5eG1kamhTNUNwNDd1dkhmaE1kYTI3ckVUTERX?= =?utf-8?B?ZjBzandDNE9pU1FsNjNReUJJNG1QZ1JSaW40NWNLbzR0dmc0RW83NVNqYStK?= =?utf-8?B?ZlRDeE1DQ0w4ODF2dWxaMEh1QUxJcUgvYWYwK1lUZ2syc3VHdGh1dVpLRGxS?= =?utf-8?B?UlpEZHdpVFpSNHNFR2xTTmxXQTVzRmQrMit2UFhIS290OTd2Y290Y2VKYUcr?= =?utf-8?B?TENraG16ZlBqVm94RzV5dnVad3E2Mktqd2crTlhxYmx3L1djNklHMGd2eXhY?= =?utf-8?B?cWRibCtUd0hqdnpQZ2srcWp2cktKTWFVekplQkVjS0RicEZzQkFTQ1o0RVFx?= =?utf-8?B?VFN2dzdoRnZpd1hkR253TExuR1NPSjhJTS92aG1vK2xSNkxhV2NKcWtsL2p1?= =?utf-8?B?OE9lQkdMTlh6RmpSZ1hMVERMSTZmdHFvczhTdWJLUGowemFLSWd3cG9RaElP?= =?utf-8?B?U0pqMWJrVDlZV216cjFsb0d2QVlxNWF4ZmdWRGNkeUk3NmhUbVJaU3lheXdp?= =?utf-8?B?MFBCaEhkVjVkcEZYUHdkeDJ3M0V2ZDVKSUR0MWk4QWE2aGRXNER1TVNRRGtz?= =?utf-8?B?QXd3WG5wWStJY2UzTS85U2FHa01hVDJRZWN5c1VoN3cyM3dDQ3lCaCsrNnJw?= =?utf-8?B?Y2xYWk00UldIdU5EaGV5N1kwK2hMeWVmWWtjVFhpQVUzOWNERFRYbjJta0Vp?= =?utf-8?B?VFU2bGpBai82czdNcnhDZlM5aysra09JWC94d3U4YmpDbEp3QW9yTEMwczV1?= =?utf-8?B?YXNLTm5xVnY4WFVaV2hMRDdmM3g5Ris3VDNrTTdPM3llVTdNc1BxZ1kvRlVI?= =?utf-8?B?ZU93SmRVMGdwZno0KzFvbFhPZ2ppWmtyekMwaTB0c2laVzRHMmdZYkROTUZo?= =?utf-8?B?bmY2RHNLNjFGWmgvVkxXQnRqMDhvWWxFb3lpTnZEVW1Iamt3K2pDeEVFdFNZ?= =?utf-8?B?b2pkOUN1SHVDeXI2Ui9Yb1RDeUVRMHl5akRHMmJseE5LZU9WZXhYbXk2ZGo5?= =?utf-8?B?K1FFQVo1RjNXaU9ydlVpdVdRRGdxSnVvZXNGWHpDRjlTQllsS2NwNWtzaStX?= =?utf-8?B?cTZHU21BdEh0RjFlZzN2N3RCYzFPYWRveWs2cDh3MlRXVU5WTkZHYnBUeS9B?= =?utf-8?B?dEFFMDVZLzdNaTJwTVhPbU5pcEtRNERISVU1Mm9RWVlXd2tRR1h2WkdTUGRm?= =?utf-8?B?ejVyNHNuZjdhNVFUU09Sc1Q0V1llRWJQT01TSm5GRWx1Y2xZQXJyU3NKcU5H?= =?utf-8?B?M2hNYTVHbHRrMi9IVFQ4S092RE1ud1UwYTRhSHRKeWZXMzM1NUdCSEZnRnNR?= =?utf-8?B?eWtwcWVYQWNpUURLK0ROMTVWRjRySE81Q2VXVnRjL0dETWdHZmhsaWN3SWNR?= =?utf-8?B?Z3lYRFZKOWlsODBhbGlyOXJJV0laTU14YTIwK3UvWGJOQmJDemdydGhzaWRO?= =?utf-8?B?cEx6NDdSRXlvTEU5WHR3WjN0ZDVOdThNeFo5V244djNQTUNrNE0zQWZUdURG?= =?utf-8?B?YU5QNUxHWmdtbXo1QkNKL0Jlc2pmbGlSbjY1NFk2M3JYZk02a1BvNFhvdXgw?= =?utf-8?B?SzB4M1FCREhjdkZrSk52TVRxMGVKSm5jc3hIdFFsd2oxV2hnTEU5QVBHbXRo?= =?utf-8?B?WG52VGNQWTYyTEkyQjRQNGFiakxVM1p3a3Jhd2x2TVd6VmdMV3ZKMk1PZERp?= =?utf-8?B?N0E9PQ==?= Content-Type: multipart/alternative; boundary="_000_CH2PR15MB35447E80BFE67CCEAD8F2885D6E42CH2PR15MB3544namp_" X-OriginatorOrg: ibm.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR15MB3544.namprd15.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ff835635-590f-4600-fa89-08dc6e7c1274 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 May 2024 09:57:14.3901 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fcf67057-50c9-4ad4-98f3-ffca64add9e9 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: +a8C/VXDFmin0vAKQDS8WIhM9SFJP9Ywi3kRgTPwpXzRDH8ytOhNDOUK43PGKTt+badf9s+XH4zHqPgghwf1Cw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR15MB6327 X-Proofpoint-GUID: sQSkmMyAt3TjFMXM4laMspMGN2ucIjBb X-Proofpoint-ORIG-GUID: U-1vvAN4PM8oGAbDfbLIE16IFEf_W3MD X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 Subject: Re: [PATCH v5] Fix AIX thread exit events not being reported and UI to show kernel thread ID. X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.650,FMLib:17.11.176.26 definitions=2024-05-07_04,2024-05-06_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 impostorscore=0 malwarescore=0 suspectscore=0 phishscore=0 priorityscore=1501 mlxlogscore=999 spamscore=0 clxscore=1015 mlxscore=0 adultscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2404010000 definitions=main-2405070067 X-Spam-Status: No, score=-9.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,HTML_MESSAGE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --_000_CH2PR15MB35447E80BFE67CCEAD8F2885D6E42CH2PR15MB3544namp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UmVzcGVjdGVkIGNvbW11bml0eSBtZW1iZXJzLA0KDQpBbnkgdXBkYXRlL2Zl ZWRiYWNrIG9uIHRoaXMgdmVyc2lvbiBvZiB0aGUgcGF0Y2guIEtpbmRseSBs ZXQgbWUga25vdy4NCg0KSGF2ZSBhIG5pY2UgZGF5IGFoZWFkLg0KDQpUaGFu a3MgYW5kIHJlZ2FyZHMsDQpBZGl0eWEuDQoNCkZyb206IEFkaXR5YSBLYW1h dGgxIDxBZGl0eWEuS2FtYXRoMUBpYm0uY29tPg0KRGF0ZTogRnJpZGF5LCAz IE1heSAyMDI0IGF0IDg6NDTigK9QTQ0KVG86IEFkaXR5YSBWaWR5YWRoYXIg S2FtYXRoIDxha2FtYXRoOTk2QGdtYWlsLmNvbT4sIHRvbUB0cm9tZXkuY29t IDx0b21AdHJvbWV5LmNvbT4NCkNjOiBVbHJpY2ggV2VpZ2FuZCA8VWxyaWNo LldlaWdhbmRAZGUuaWJtLmNvbT4sIGdkYi1wYXRjaGVzQHNvdXJjZXdhcmUu b3JnIDxnZGItcGF0Y2hlc0Bzb3VyY2V3YXJlLm9yZz4sIFNhbmdhbWVzaCBN YWxsYXl5YSA8c2FuZ2FtZXNoLnN3YW15QGluLmlibS5jb20+LCBqaGJAZnJl ZWJzZC5vcmcgPGpoYkBmcmVlYnNkLm9yZz4NClN1YmplY3Q6IFJlOiBbRVhU RVJOQUxdIFtQQVRDSCB2NV0gRml4IEFJWCB0aHJlYWQgZXhpdCBldmVudHMg bm90IGJlaW5nIHJlcG9ydGVkIGFuZCBVSSB0byBzaG93IGtlcm5lbCB0aHJl YWQgSUQuDQpSZXNwZWN0ZWQgVWxyaWNoIGFuZCBjb21tdW5pdHkgbWVtYmVy cywNCg0KSGksDQoNCj4rICAgICAgICBpZiAoZ2V0X3NpZ25hbGVkX3RocmVh ZCAocGlkKSA9PSB0aWQNCj4rICAgICAgICAgICAgICAmJiBpbl90aHJlYWRf bGlzdCAocHJvY190YXJnZXQsIHB0aWRfdCAocGlkKSkpDQo+RGlkbid0IHlv dSB3YW50IHRvIGNoYW5nZSB0aGlzPw0KDQpJbiBlbnRodXNpYXNtIEkgbWlz c2VkIGl0LiBTb3JyeSBmb3IgdGhlIHNhbWUuIFBsZWFzZSBjaGVjayBub3cu DQoNCj4rICAgICAgYXV0byBpdHIgPSBpbl9xdWV1ZV90aHJlYWRzLmZpbmQg KHByaXYtPnBkdGlkKTsNCj4rICAgICAgaWYgKGl0ciA9PSBpbl9xdWV1ZV90 aHJlYWRzLmVuZCAoKQ0KPldoeSBkb24ndCB5b3UgdXNlIC5jb3VudCBsaWtl IGVsc2V3aGVyZT8NCg0KVGhpcyBhbHNvIGlzIGRvbmUuDQoNCktpbmRseSBs ZXQgbWUga25vdyBpZiB2NSBpcyBva2F5Lg0KDQpQYXN0aW5nIHJlc3VsdHMg b2YgdjUgcGF0Y2guDQoNCkdkYi50aHJlYWRzL3RocmVhZF9ldmVudHMuZXhw IHRlc3QgY2FzZSByZXN1bHQgYWZ0ZXIgdGhpcyBwYXRjaA0KDQo9PT0gZ2Ri IFN1bW1hcnkgPT09DQogZ21ha2UgY2hlY2sgUlVOVEVTVEZMQUdTPSdnZGIu dGhyZWFkcy90aHJlYWRfZXZlbnRzLmV4cCAgQ0NfRk9SX1RBUkdFVD0iL29w dC9mcmVld2FyZS9iaW4vZ2NjIiBDWFhfRk9SX1RBUkdFVD0iL29wdC9mcmVl d2FyZS9iaW4vZysrIiBDWFhGTEFHU19GT1JfVEFSR0VUPSItTzAgLXcgLWcg LWdkd2FyZiAtbWFpeDY0IiBDRkxBR1NfRk9SX1RBUkdFVD0iLU8wIC13IC1n IC1nZHdhcmYgLW1haXg2NCInDQpnbWFrZSBjaGVjay1zaW5nbGUNCiMgb2Yg ZXhwZWN0ZWQgcGFzc2VzICAgICAgICAgICAgMTENCi9jdXJyZW50X2dkYi9i aW51dGlscy1nZGIvZ2RiL2dkYiB2ZXJzaW9uICAxNS4wLjUwLjIwMjQwMzI1 LWdpdCAtbncgLW54IC1xIC1pZXggInNldCBoZWlnaHQgMCIgLWlleCAic2V0 IHdpZHRoIDAiIC1kYXRhLWRpcmVjdG9yeSAvY3VycmVudF9nZGIvYmludXRp bHMtZ2RiL2dkYi9kYXRhLWRpcmVjdG9yeQ0KDQpPdXRwdXQgb2YgcHJvZ3Jh bSAxKFByb2dyYW0gMSBQYXN0ZWQgYmVsb3cgdGhpcyBlbWFpbCkNClJlYWRp bmcgc3ltYm9scyBmcm9tIHRlc3RzdWl0ZS9nZGIudGhyZWFkcy90aHJlYWRf ZXZlbnRzLi4uDQooZ2RiKSBiIG1haW4NCkJyZWFrcG9pbnQgMSBhdCAweDEw MDAwN2RjOiBmaWxlIGdkYi50aHJlYWRzL3RocmVhZF9ldmVudHMuYywgbGlu ZSA0MS4NCihnZGIpIHINClN0YXJ0aW5nIHByb2dyYW06IC9jdXJyZW50X2dk Yi9iaW51dGlscy1nZGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy90aHJl YWRfZXZlbnRzDQoNCkJyZWFrcG9pbnQgMSwgbWFpbiAoYXJnYz0xLCBhcmd2 PTB4MmZmMjI5NDApIGF0IGdkYi50aHJlYWRzL3RocmVhZF9ldmVudHMuYzo0 MQ0KNDEgICAgICAgIGlmIChwdGhyZWFkX2NyZWF0ZSAoJnRocmVhZCwgTlVM TCwgdGhyZWFkZnVuYywgTlVMTCkgIT0gMCkNCihnZGIpIGIgdGhyZWFkZnVu Yw0KQnJlYWtwb2ludCAyIGF0IDB4MTAwMDA3MTg6IGZpbGUgZ2RiLnRocmVh ZHMvdGhyZWFkX2V2ZW50cy5jLCBsaW5lIDI3Lg0KKGdkYikgYiBhZnRlcl9q b2luX2Z1bmMNCkJyZWFrcG9pbnQgMyBhdCAweDEwMDAwNzc4OiBmaWxlIGdk Yi50aHJlYWRzL3RocmVhZF9ldmVudHMuYywgbGluZSAzNC4NCihnZGIpIGMN CkNvbnRpbnVpbmcuDQpbTmV3IFRocmVhZCAyNTggKHRpZCAyNDk2OTYzMSld DQpbU3dpdGNoaW5nIHRvIFRocmVhZCAyNTggKHRpZCAyNDk2OTYzMSldDQoN ClRocmVhZCAyIGhpdCBCcmVha3BvaW50IDIsIHRocmVhZGZ1bmMgKGFyZz0w eDApIGF0IGdkYi50aHJlYWRzL3RocmVhZF9ldmVudHMuYzoyNw0KMjcgICAg ICAgIHByaW50ZiAoImluIHRocmVhZGZ1bmNcbiIpOw0KKGdkYikNCkNvbnRp bnVpbmcuDQppbiB0aHJlYWRmdW5jDQpbVGhyZWFkIDI1OCAodGlkIDI0OTY5 NjMxKSBleGl0ZWRdDQpbU3dpdGNoaW5nIHRvIFRocmVhZCAxICh0aWQgMzQz NDExMzcpXQ0KDQpUaHJlYWQgMSBoaXQgQnJlYWtwb2ludCAzLCBhZnRlcl9q b2luX2Z1bmMgKCkgYXQgZ2RiLnRocmVhZHMvdGhyZWFkX2V2ZW50cy5jOjM0 DQozNCAgICAgICAgcHJpbnRmICgiZmluaXNoZWRcbiIpOw0KKGdkYikgaW5m byB0aHJlYWRzDQogIElkICAgVGFyZ2V0IElkICAgICAgICAgICAgICAgICAg ICAgICAgICAgRnJhbWUNCiogMSAgICBUaHJlYWQgMSAodGlkIDM0MzQxMTM3 KSAoW3J1bm5pbmddKSBhZnRlcl9qb2luX2Z1bmMgKCkgYXQgZ2RiLnRocmVh ZHMvdGhyZWFkX2V2ZW50cy5jOjM0DQooZ2RiKSBjDQpDb250aW51aW5nLg0K ZmluaXNoZWQNCltUaHJlYWQgMSAodGlkIDM0MzQxMTM3KSBleGl0ZWRdDQpb SW5mZXJpb3IgMSAocHJvY2VzcyAxMTMzODEyMikgZXhpdGVkIG5vcm1hbGx5 XQ0KKGdkYikgcQ0KDQpQcm9ncmFtIDE6DQoNCi8qICAgVGhpcyBmaWxlIHdh cyB3cml0dGVuIGJ5IENocmlzIERlbWV0cmlvdSAoY2dkQGdvb2dsZS5jb208 bWFpbHRvOmNnZEBnb29nbGUuY29tPikuICAqLw0KDQovKiBTaW1wbGUgdGVz dCB0byB0cmlnZ2VyIHRocmVhZCBldmVudHMgKHRocmVhZCBzdGFydCwgdGhy ZWFkIGV4aXQpLiAgKi8NCg0KI2luY2x1ZGUgPHB0aHJlYWQuaD4NCiNpbmNs dWRlIDxzdGRsaWIuaD4NCiNpbmNsdWRlIDxzdGRpby5oPg0KDQpzdGF0aWMg dm9pZCAqDQp0aHJlYWRmdW5jICh2b2lkICphcmcpDQp7DQogIHByaW50ZiAo ImluIHRocmVhZGZ1bmNcbiIpOw0KICByZXR1cm4gTlVMTDsNCn0NCg0Kc3Rh dGljIHZvaWQNCmFmdGVyX2pvaW5fZnVuYyAodm9pZCkNCnsNCiAgcHJpbnRm ICgiZmluaXNoZWRcbiIpOw0KfQ0KDQppbnQgbWFpbiAoaW50IGFyZ2MsIGNo YXIgKmFyZ3ZbXSkNCnsNCiAgcHRocmVhZF90IHRocmVhZDsNCg0KICBpZiAo cHRocmVhZF9jcmVhdGUgKCZ0aHJlYWQsIE5VTEwsIHRocmVhZGZ1bmMsIE5V TEwpICE9IDApDQogICAgew0KICAgICAgcHJpbnRmICgicHRocmVhZF9jcmVh dGUgZmFpbGVkXG4iKTsNCiAgICAgIGV4aXQgKDEpOw0KICAgIH0NCg0KICBp ZiAocHRocmVhZF9qb2luICh0aHJlYWQsIE5VTEwpICE9IDApDQogICAgew0K ICAgICAgcHJpbnRmICgicHRocmVhZF9qb2luIGZhaWxlZFxuIik7DQogICAg ICBleGl0ICgxKTsNCiAgICB9DQoNCiAgYWZ0ZXJfam9pbl9mdW5jICgpOw0K ICByZXR1cm4gMDsNCn0NCg0KDQoNCk91dHB1dCBvZiBwcm9ncmFtIDIgW1By b2dyYW0gMiBwYXN0ZWQgYmVsb3ddDQoNClJlYWRpbmcgc3ltYm9scyBmcm9t IC8vZ2RiX3Rlc3RzL2NvbnRpbnVlLXBlbmRpbmctc3RhdHVzX2V4aXRfdGVz dC4uLg0KKGdkYikgcg0KU3RhcnRpbmcgcHJvZ3JhbTogL2dkYl90ZXN0cy9j b250aW51ZS1wZW5kaW5nLXN0YXR1c19leGl0X3Rlc3QNCkhlbGxvIFdvcmxk DQpIZWxsbyBXb3JsZA0KTW9yZSB0aHJlYWRzDQpIZWxsbyBXb3JsZA0KSGVs bG8gV29ybGQNCkhlbGxvIFdvcmxkDQpIZWxsbyBXb3JsZA0KW05ldyBUaHJl YWQgMjU4ICh0aWQgMjQ5Njk2MzMpXQ0KW1RocmVhZCAyNTggKHRpZCAyNDk2 OTYzMykgZXhpdGVkXQ0KW05ldyBUaHJlYWQgNTE1ICh0aWQgMzA1NDAwNjcp XQ0KW1RocmVhZCA1MTUgKHRpZCAzMDU0MDA2NykgZXhpdGVkXQ0KW05ldyBU aHJlYWQgNzcyICh0aWQgMzA2NzExMDcpXQ0KW1RocmVhZCA3NzIgKHRpZCAz MDY3MTEwNykgZXhpdGVkXQ0KW05ldyBUaHJlYWQgMTAyOSAodGlkIDMxNTg4 NzY3KV0NCltUaHJlYWQgMTAyOSAodGlkIDMxNTg4NzY3KSBleGl0ZWRdDQpb TmV3IFRocmVhZCAxMjg2ICh0aWQgMzA5OTg5NDcpXQ0KW1RocmVhZCAxMjg2 ICh0aWQgMzA5OTg5NDcpIGV4aXRlZF0NCltOZXcgVGhyZWFkIDE1NDMgKHRp ZCAyODk2NzQxMyldDQpbVGhyZWFkIDE1NDMgKHRpZCAyODk2NzQxMykgZXhp dGVkXQ0KDQpUaHJlYWQgMSByZWNlaXZlZCBzaWduYWwgU0lHSU5ULCBJbnRl cnJ1cHQuDQoweGQwNjExZDcwIGluIF9wX25zbGVlcCAoKSBmcm9tIC91c3Iv bGliL2xpYnB0aHJlYWQuYShfc2hyX3hwZzUubykNCihnZGIpIGluZm8gdGhy ZWFkcw0KICBJZCAgIFRhcmdldCBJZCAgICAgICAgICAgICAgICAgICAgICAg ICAgIEZyYW1lDQoqIDEgICAgVGhyZWFkIDEgKHRpZCAzNDM0MTEzOSkgKFty dW5uaW5nXSkgMHhkMDYxMWQ3MCBpbiBfcF9uc2xlZXAgKCkgZnJvbSAvdXNy L2xpYi9saWJwdGhyZWFkLmEoX3Nocl94cGc1Lm8pDQooZ2RiKSBxDQpBIGRl YnVnZ2luZyBzZXNzaW9uIGlzIGFjdGl2ZS4NCg0KICAgICAgICBJbmZlcmlv ciAxIFtwcm9jZXNzIDExMzM4MTI2XSB3aWxsIGJlIGtpbGxlZC4NCg0KUXVp dCBhbnl3YXk/ICh5IG9yIG4pIHkNCg0KUHJvZ3JhbSAyOg0KDQojaW5jbHVk ZSA8c3RkaW8uaD4NCiNpbmNsdWRlIDx1bmlzdGQuaD4NCiNpbmNsdWRlIDxz dGRsaWIuaD4NCiNpbmNsdWRlIDxwdGhyZWFkLmg+DQojaW5jbHVkZSA8YXNz ZXJ0Lmg+DQoNCnB0aHJlYWRfYmFycmllcl90IGJhcnJpZXI7DQoNCiNkZWZp bmUgTlVNX1RIUkVBRFMgMw0KDQp2b2lkICoNCnRocmVhZF9mdW5jdGlvbiAo dm9pZCAqYXJnKQ0Kew0KICAvKiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgYnJl YWtwb2ludCBpcyBvbmx5IGhpdCBhZnRlciBib3RoIHRocmVhZHMNCiAgICAg YXJlIGNyZWF0ZWQsIHNvIHRoZSB0ZXN0IGNhbiBhbHdheXMgc3dpdGNoIHRv IHRoZSBub24tZXZlbnQNCiAgICAgdGhyZWFkIHdoZW4gdGhlIGJyZWFrcG9p bnQgdHJpZ2dlcnMuICAqLw0KLy8gIHB0aHJlYWRfYmFycmllcl93YWl0ICgm YmFycmllcik7DQoNCiAgcHJpbnRmICgiSGVsbG8gV29ybGQgXG4iKTsgLyog YnJlYWsgaGVyZSAqLw0KfQ0KDQppbnQNCm1haW4gKHZvaWQpDQp7DQogIGlu dCBpOw0KDQogIGFsYXJtICgzMDApOw0KDQogIHB0aHJlYWRfYmFycmllcl9p bml0ICgmYmFycmllciwgTlVMTCwgTlVNX1RIUkVBRFMpOw0KDQogIGZvciAo aSA9IDA7IGkgPCBOVU1fVEhSRUFEUzsgaSsrKQ0KICAgIHsNCiAgICAgIHB0 aHJlYWRfdCB0aHJlYWQ7DQogICAgICBpbnQgcmVzOw0KDQogICAgICByZXMg PSBwdGhyZWFkX2NyZWF0ZSAoJnRocmVhZCwgTlVMTCwNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0aHJlYWRfZnVuY3Rpb24sIE5VTEwpOw0KICAg ICAgYXNzZXJ0IChyZXMgPT0gMCk7DQogICAgfQ0KDQogIHByaW50ZiAoIk1v cmUgdGhyZWFkcyBcbiIpOw0KICBmb3IgKGkgPSAwOyBpIDwgTlVNX1RIUkVB RFM7IGkrKykNCiAgICB7DQogICAgICBwdGhyZWFkX3QgdGhyZWFkOw0KICAg ICAgaW50IHJlczsNCg0KICAgICAgcmVzID0gcHRocmVhZF9jcmVhdGUgKCZ0 aHJlYWQsIE5VTEwsDQogICAgICAgICAgICAgICAgdGhyZWFkX2Z1bmN0aW9u LCBOVUxMKTsNCiAgICAgIGFzc2VydCAocmVzID09IDApOw0KICAgIH0NCiAg d2hpbGUgKDEpDQogICAgc2xlZXAgKDEpOw0KDQogIHJldHVybiAwOw0KfQ0K DQoNCkZyb206IEFkaXR5YSBWaWR5YWRoYXIgS2FtYXRoIDxha2FtYXRoOTk2 QGdtYWlsLmNvbT4NCkRhdGU6IEZyaWRheSwgMyBNYXkgMjAyNCBhdCA4OjQx 4oCvUE0NClRvOiB0b21AdHJvbWV5LmNvbSA8dG9tQHRyb21leS5jb20+DQpD YzogVWxyaWNoIFdlaWdhbmQgPFVscmljaC5XZWlnYW5kQGRlLmlibS5jb20+ LCBnZGItcGF0Y2hlc0Bzb3VyY2V3YXJlLm9yZyA8Z2RiLXBhdGNoZXNAc291 cmNld2FyZS5vcmc+LCBBZGl0eWEgS2FtYXRoMSA8QWRpdHlhLkthbWF0aDFA aWJtLmNvbT4sIFNhbmdhbWVzaCBNYWxsYXl5YSA8c2FuZ2FtZXNoLnN3YW15 QGluLmlibS5jb20+LCBqaGJAZnJlZWJzZC5vcmcgPGpoYkBmcmVlYnNkLm9y Zz4NClN1YmplY3Q6IFtFWFRFUk5BTF0gW1BBVENIIHY1XSBGaXggQUlYIHRo cmVhZCBleGl0IGV2ZW50cyBub3QgYmVpbmcgcmVwb3J0ZWQgYW5kIFVJIHRv IHNob3cga2VybmVsIHRocmVhZCBJRC4NCkZyb206IEFkaXR5YSBWaWR5YWRo YXIgS2FtYXRoIDxBZGl0eWEuS2FtYXRoMUBpYm0uY29tPg0KDQpJbiBBSVgg d2hlbiBhIHRocmVhZCBleGl0cyB3ZSB3ZXJlIG5vdCBzaG93aW5nIHRoYXQg YSB0aHJlYWQgZXhpdCBldmVudCBoYXBwZW5lZA0KYW5kIEdEQiBjb250aW51 ZWQgdG8ga2VlcCB0aGUgdGVybWluYXRlZCB0aHJlYWRzLg0KDQpJZiB3ZSBo YXZlIHRlcm1pbmF0ZWQgdGhyZWFkcyB0aGVuIHRoZSBVSSBvbiBpbmZvIHRo cmVhZHMgY29tbWFuZCB3aWxsIGxvb2sgbGlrZQ0KKGdkYikgaW5mbyB0aHJl YWRzDQogIElkICAgVGFyZ2V0IElkICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgRnJhbWUNCiogMSAgICBUaHJlYWQgMSAodGlk IDI2NjA3OTc5LCBydW5uaW5nKSAgICAweGQwNjExZDcwIGluIF9wX25zbGVl cCAoKSBmcm9tIC91c3IvbGliL2xpYnB0aHJlYWRzLmEoX3Nocl94cGc1Lm8p DQogIDIgICAgVGhyZWFkIDI1OCAodGlkIDMwOTk4Nzk5LCBmaW5pc2hlZCkg YWl4LXRocmVhZDogcHRyYWNlICg1MiwgMzA5OTg3OTkpIHJldHVybmVkIC0x IChlcnJubyA9IDMgVGhlIHByb2Nlc3MgZG9lcyBub3QgZXhpc3QuKQ0KDQpJ ZiB3ZSBzZWUgdGhlIGZyYW1lIGlzIG5vdCBnZXR0aW5nIGRpc3BsYXllZCBj b3JyZWN0bHkuDQoNClRoZSByZWFzb24gZm9yIHRoZSBzYW1lIGlzIHRoYXQg aW4gQUlYIHdlIHdlcmUgbm90IG1hbmFnaW5nIHRocmVhZCBzdGF0ZXMuIElu IHBhcnRpY3VsYXIgd2UgZG8gbm90IGtub3cNCndoZW4gYSB0aHJlYWQgdGVy bWluYXRlcy4NCg0KVGhlIHJlYXNvbiBiZWluZyBpbiBzeW5jX3RocmVhZGxp c3RzICgpIHRoZSBwYnVmIGFuZCBnYnVmIGxpc3RzIHJlbWFpbiB0aGUgc2Ft ZSB0aG91Z2ggY2VydGFpbiB0aHJlYWRzIGV4aXQuDQoNClRoaXMgcGF0Y2gg aXMgYSBmaXggdG8gdGhlIHNhbWUuDQoNCkFsc28gY2VydGFpbiBVSSBpcyBj aGFuZ2VkLg0KDQpPbiBhIG5ldyB0aHJlYWQgYm9ybiBhbmQgZXhpdCB0aGUg VUkgaW4gQUlYIHdpbGwgYmUgc2ltaWxhciB0byBMaW51eCB3aXRoIGJvdGgg dXNlciBhbmQga2VybmVsIHRocmVhZCBpbmZvcm1hdGlvbi4NCg0KW05ldyBU aHJlYWQgMjU4ICh0aWQgMzIxNzg1MzMpXQ0KW05ldyBUaHJlYWQgNTE1ICh0 aWQgMzAzNDM2NTEpXQ0KW05ldyBUaHJlYWQgNzcyICh0aWQgMzM1NTQ5MDkp XQ0KW05ldyBUaHJlYWQgMTAyOSAodGlkIDI0OTY5NDg5KV0NCltOZXcgVGhy ZWFkIDEyODYgKHRpZCAxODE1Mzk0NSldDQpbTmV3IFRocmVhZCAxNTQzICh0 aWQgMzA3MzY3MzkpXQ0KW1RocmVhZCAyNTggKHRpZCAzMjE3ODUzMykgZXhp dGVkXQ0KW1RocmVhZCA1MTUgKHRpZCAzMDM0MzY1MSkgZXhpdGVkXQ0KW1Ro cmVhZCA3NzIgKHRpZCAzMzU1NDkwOSkgZXhpdGVkXQ0KW1RocmVhZCAxMDI5 ICh0aWQgMjQ5Njk0ODkpIGV4aXRlZF0NCltUaHJlYWQgMTI4NiAodGlkIDE4 MTUzOTQ1KSBleGl0ZWRdDQpbVGhyZWFkIDE1NDMgKHRpZCAzMDczNjczOSkg ZXhpdGVkXQ0KDQphbmQgaW5mbyB0aHJlYWRzIHdpbGwgbG9vayBsaWtlDQoo Z2RiKSBpbmZvIHRocmVhZHMNCiAgSWQgICBUYXJnZXQgSWQgICAgICAgICAg ICAgICAgICAgICAgICAgICBGcmFtZQ0KKiAxICAgIFRocmVhZCAxICh0aWQg MzEzMjY1NzkpIChbcnVubmluZ10pIDB4ZDA2MTFkNzAgaW4gX3BfbnNsZWVw ICgpIGZyb20gL3Vzci9saWIvbGlicHRocmVhZC5hKF9zaHJfeHBnNS5vKQ0K DQpBbHNvIGEgc21hbGwgY2hhbmdlIHRvIHRlc3RjYXNlIGdkYi50aHJlYWRz L3RocmVhZF9ldmVudHMuZXhwIHRvIG1ha2Ugc3VyZSB0aGlzIHRlc3QgcnVu cyBvbiBBSVggYXMgd2VsbC4NCi0tLQ0KIGdkYi9haXgtdGhyZWFkLmMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAyNDIgKysrKysrLS0tLS0tLS0t LS0tLS0NCiBnZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3RocmVhZF9ldmVu dHMuZXhwIHwgICA2ICstDQogMiBmaWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRp b25zKCspLCAxNzAgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9nZGIv YWl4LXRocmVhZC5jIGIvZ2RiL2FpeC10aHJlYWQuYw0KaW5kZXggYzcwYmQ4 MmJjMjQuLmE2OTlhNTM5NTk4IDEwMDY0NA0KLS0tIGEvZ2RiL2FpeC10aHJl YWQuYw0KKysrIGIvZ2RiL2FpeC10aHJlYWQuYw0KQEAgLTU1LDYgKzU1LDcg QEANCiAjaW5jbHVkZSA8c3lzL3JlZy5oPg0KICNpbmNsdWRlIDxzY2hlZC5o Pg0KICNpbmNsdWRlIDxzeXMvcHRoZGVidWcuaD4NCisjaW5jbHVkZSA8dW5v cmRlcmVkX3NldD4NCg0KICNpZiAhSEFWRV9ERUNMX0dFVFRIUkRTDQogZXh0 ZXJuIGludCBnZXR0aHJkcyAocGlkX3QsIHN0cnVjdCB0aHJkc2luZm82NCAq LCBpbnQsIHRpZF90ICosIGludCk7DQpAQCAtMTkwLDYgKzE5MSw5IEBAIHN0 cnVjdCBhaXhfdGhyZWFkX3ZhcmlhYmxlcw0KICAgLyogV2hldGhlciB0aGUg Y3VycmVudCBhcmNoaXRlY3R1cmUgaXMgNjQtYml0Lg0KICAgIE9ubHkgdmFs aWQgd2hlbiBwZF9hYmxlIGlzIHRydWUuICAqLw0KICAgaW50IGFyY2g2NDsN CisNCisgIC8qIERlc2NyaWJlcyB0aGUgbnVtYmVyIG9mIHRocmVhZCBleGl0 IGV2ZW50cyByZXBvcnRlZC4gICovDQorICBzdGQ6OnVub3JkZXJlZF9zZXQ8 cHRoZGJfcHRocmVhZF90PiBleGl0ZWRfdGhyZWFkczsNCiB9Ow0KDQogLyog S2V5IHRvIG91ciBwZXItaW5mZXJpb3IgZGF0YS4gICovDQpAQCAtNzM3LDQ3 ICs3NDEsNiBAQCBzdGF0ZTJzdHIgKHB0aGRiX3N0YXRlX3Qgc3RhdGUpDQog ICAgIH0NCiB9DQoNCi0vKiBxc29ydCgpIGNvbXBhcmlzb24gZnVuY3Rpb24g Zm9yIHNvcnRpbmcgcGRfdGhyZWFkIHN0cnVjdHMgYnkgcHRoaWQuICAqLw0K LQ0KLXN0YXRpYyBpbnQNCi1wY21wIChjb25zdCB2b2lkICpwMXYsIGNvbnN0 IHZvaWQgKnAydikNCi17DQotICBzdHJ1Y3QgcGRfdGhyZWFkICpwMSA9IChz dHJ1Y3QgcGRfdGhyZWFkICopIHAxdjsNCi0gIHN0cnVjdCBwZF90aHJlYWQg KnAyID0gKHN0cnVjdCBwZF90aHJlYWQgKikgcDJ2Ow0KLSAgcmV0dXJuIHAx LT5wdGhpZCA8IHAyLT5wdGhpZCA/IC0xIDogcDEtPnB0aGlkID4gcDItPnB0 aGlkOw0KLX0NCi0NCi0vKiBwdGlkIGNvbXBhcmlzb24gZnVuY3Rpb24gKi8N Ci0NCi1zdGF0aWMgaW50DQotcHRpZF9jbXAgKHB0aWRfdCBwdGlkMSwgcHRp ZF90IHB0aWQyKQ0KLXsNCi0gIGlmIChwdGlkMS5waWQgKCkgPCBwdGlkMi5w aWQgKCkpDQotICAgIHJldHVybiAtMTsNCi0gIGVsc2UgaWYgKHB0aWQxLnBp ZCAoKSA+IHB0aWQyLnBpZCAoKSkNCi0gICAgcmV0dXJuIDE7DQotICBlbHNl IGlmIChwdGlkMS50aWQgKCkgPCBwdGlkMi50aWQgKCkpDQotICAgIHJldHVy biAtMTsNCi0gIGVsc2UgaWYgKHB0aWQxLnRpZCAoKSA+IHB0aWQyLnRpZCAo KSkNCi0gICAgcmV0dXJuIDE7DQotICBlbHNlIGlmIChwdGlkMS5sd3AgKCkg PCBwdGlkMi5sd3AgKCkpDQotICAgIHJldHVybiAtMTsNCi0gIGVsc2UgaWYg KHB0aWQxLmx3cCAoKSA+IHB0aWQyLmx3cCAoKSkNCi0gICAgcmV0dXJuIDE7 DQotICBlbHNlDQotICAgIHJldHVybiAwOw0KLX0NCi0NCi0vKiBxc29ydCgp IGNvbXBhcmlzb24gZnVuY3Rpb24gZm9yIHNvcnRpbmcgdGhyZWFkX2luZm8g c3RydWN0cyBieSBwaWQuICAqLw0KLQ0KLXN0YXRpYyBpbnQNCi1nY21wIChj b25zdCB2b2lkICp0MXYsIGNvbnN0IHZvaWQgKnQydikNCi17DQotICBzdHJ1 Y3QgdGhyZWFkX2luZm8gKnQxID0gKihzdHJ1Y3QgdGhyZWFkX2luZm8gKiop IHQxdjsNCi0gIHN0cnVjdCB0aHJlYWRfaW5mbyAqdDIgPSAqKHN0cnVjdCB0 aHJlYWRfaW5mbyAqKikgdDJ2Ow0KLSAgcmV0dXJuIHB0aWRfY21wICh0MS0+ cHRpZCwgdDItPnB0aWQpOw0KLX0NCi0NCiAvKiBTZWFyY2ggdGhyb3VnaCB0 aGUgbGlzdCBvZiBhbGwga2VybmVsIHRocmVhZHMgZm9yIHRoZSB0aHJlYWQN CiAgICB0aGF0IGhhcyBzdG9wcGVkIG9uIGEgU0lHVFJBUCBzaWduYWwsIGFu ZCByZXR1cm4gaXRzIFRJRC4NCiAgICBSZXR1cm4gMCBpZiBub25lIGZvdW5k LiAgKi8NCkBAIC04MjIsMjIgKzc4NSwxNyBAQCBzdGF0aWMgdm9pZA0KIHN5 bmNfdGhyZWFkbGlzdHMgKHBpZF90IHBpZCkNCiB7DQogICBpbnQgY21kLCBz dGF0dXM7DQotICBpbnQgcGNvdW50LCBwc2l6ZSwgcGksIGdjb3VudCwgZ2k7 DQotICBzdHJ1Y3QgcGRfdGhyZWFkICpwYnVmOw0KLSAgc3RydWN0IHRocmVh ZF9pbmZvICoqZ2J1ZiwgKipnLCAqdGhyZWFkOw0KICAgcHRoZGJfcHRocmVh ZF90IHBkdGlkOw0KICAgcHRocmVhZF90IHB0aGlkOw0KICAgcHRoZGJfdGlk X3QgdGlkOw0KICAgcHJvY2Vzc19zdHJhdHVtX3RhcmdldCAqcHJvY190YXJn ZXQgPSBjdXJyZW50X2luZmVyaW9yICgpLT5wcm9jZXNzX3RhcmdldCAoKTsN CiAgIHN0cnVjdCBhaXhfdGhyZWFkX3ZhcmlhYmxlcyAqZGF0YTsNCiAgIGRh dGEgPSBnZXRfdGhyZWFkX2RhdGFfaGVscGVyX2Zvcl9waWQgKHBpZCk7DQor ICBwdGhkYl9zdGF0ZV90IHN0YXRlOw0KKyAgc3RkOjpzZXQ8cHRoZGJfcHRo cmVhZF90PiBpbl9xdWV1ZV90aHJlYWRzOw0KDQogICAvKiBBY2N1bXVsYXRl IGFuIGFycmF5IG9mIGxpYnB0aGRlYnVnIHRocmVhZHMgc29ydGVkIGJ5IHB0 aHJlYWQgaWQuICAqLw0KDQotICBwY291bnQgPSAwOw0KLSAgcHNpemUgPSAx Ow0KLSAgcGJ1ZiA9IFhORVdWRUMgKHN0cnVjdCBwZF90aHJlYWQsIHBzaXpl KTsNCi0NCiAgIGZvciAoY21kID0gUFRIREJfTElTVF9GSVJTVDs7IGNtZCA9 IFBUSERCX0xJU1RfTkVYVCkNCiAgICAgew0KICAgICAgIHN0YXR1cyA9IHB0 aGRiX3B0aHJlYWQgKGRhdGEtPnBkX3Nlc3Npb24sICZwZHRpZCwgY21kKTsN CkBAIC04NDgsMTE4ICs4MDYsNjYgQEAgc3luY190aHJlYWRsaXN0cyAocGlk X3QgcGlkKQ0KICAgICAgIGlmIChzdGF0dXMgIT0gUFRIREJfU1VDQ0VTUyB8 fCBwdGhpZCA9PSBQVEhEQl9JTlZBTElEX1BUSUQpDQogICAgICAgICBjb250 aW51ZTsNCg0KLSAgICAgIGlmIChwY291bnQgPT0gcHNpemUpDQotICAgICAg IHsNCi0gICAgICAgICBwc2l6ZSAqPSAyOw0KLSAgICAgICAgIHBidWYgPSAo c3RydWN0IHBkX3RocmVhZCAqKSB4cmVhbGxvYyAocGJ1ZiwNCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBzaXpl ICogc2l6ZW9mICpwYnVmKTsNCi0gICAgICAgfQ0KLSAgICAgIHBidWZbcGNv dW50XS5wZHRpZCA9IHBkdGlkOw0KLSAgICAgIHBidWZbcGNvdW50XS5wdGhp ZCA9IHB0aGlkOw0KLSAgICAgIHBjb3VudCsrOw0KLSAgICB9DQotDQotICBm b3IgKHBpID0gMDsgcGkgPCBwY291bnQ7IHBpKyspDQotICAgIHsNCi0gICAg ICBzdGF0dXMgPSBwdGhkYl9wdGhyZWFkX3RpZCAoZGF0YS0+cGRfc2Vzc2lv biwgcGJ1ZltwaV0ucGR0aWQsICZ0aWQpOw0KLSAgICAgIGlmIChzdGF0dXMg IT0gUFRIREJfU1VDQ0VTUykNCi0gICAgICAgdGlkID0gUFRIREJfSU5WQUxJ RF9USUQ7DQotICAgICAgcGJ1ZltwaV0udGlkID0gdGlkOw0KLSAgICB9DQot DQotICBxc29ydCAocGJ1ZiwgcGNvdW50LCBzaXplb2YgKnBidWYsIHBjbXAp Ow0KLQ0KLSAgLyogQWNjdW11bGF0ZSBhbiBhcnJheSBvZiBHREIgdGhyZWFk cyBzb3J0ZWQgYnkgcGlkLiAgKi8NCi0NCi0gIC8qIGdjb3VudCBpcyBHREIg dGhyZWFkIGNvdW50IGFuZCBwY291bnQgaXMgcHRocmVhZGxpYiB0aHJlYWQg Y291bnQuICAqLw0KLQ0KLSAgZ2NvdW50ID0gMDsNCi0gIGZvciAodGhyZWFk X2luZm8gKnRwIDogYWxsX3RocmVhZHMgKHByb2NfdGFyZ2V0LCBwdGlkX3Qg KHBpZCkpKQ0KLSAgICBnY291bnQrKzsNCi0gIGcgPSBnYnVmID0gWE5FV1ZF QyAoc3RydWN0IHRocmVhZF9pbmZvICosIGdjb3VudCk7DQotICBmb3IgKHRo cmVhZF9pbmZvICp0cCA6IGFsbF90aHJlYWRzIChwcm9jX3RhcmdldCwgcHRp ZF90IChwaWQpKSkNCi0gICAgKmcrKyA9IHRwOw0KLSAgcXNvcnQgKGdidWYs IGdjb3VudCwgc2l6ZW9mICpnYnVmLCBnY21wKTsNCisgICAgICBwdGlkX3Qg cHRpZCAocGlkLCAwLCBwdGhpZCk7DQorICAgICAgc3RhdHVzID0gcHRoZGJf cHRocmVhZF9zdGF0ZSAoZGF0YS0+cGRfc2Vzc2lvbiwgcGR0aWQsICZzdGF0 ZSk7DQorICAgICAgaW5fcXVldWVfdGhyZWFkcy5pbnNlcnQgKHBkdGlkKTsN Cg0KLSAgLyogQXBwbHkgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgdHdvIGFy cmF5cyB0byBHREIncyB0aHJlYWQgbGlzdC4gICovDQotDQotICBmb3IgKHBp ID0gZ2kgPSAwOyBwaSA8IHBjb3VudCB8fCBnaSA8IGdjb3VudDspDQotICAg IHsNCi0gICAgICBpZiAocGkgPT0gcGNvdW50KQ0KKyAgICAgIC8qIElmIHRo aXMgdGhyZWFkIGhhcyByZXBvcnRlZCBhbmQgZXhpdGVkLCBkbyBub3QgYWRk IGl0IGFnYWluLiAgKi8NCisgICAgICBpZiAoc3RhdGUgPT0gUFNUX1RFUk0p DQogICAgICAgICB7DQotICAgICAgICAgZGVsZXRlX3RocmVhZCAoZ2J1Zltn aV0pOw0KLSAgICAgICAgIGdpKys7DQorICAgICAgICAgaWYgKGRhdGEtPmV4 aXRlZF90aHJlYWRzLmNvdW50IChwZHRpZCkgIT0gMCkNCisgICAgICAgICAg ICBjb250aW51ZTsNCiAgICAgICAgIH0NCi0gICAgICBlbHNlIGlmIChnaSA9 PSBnY291bnQpDQotICAgICAgIHsNCi0gICAgICAgICBhaXhfdGhyZWFkX2lu Zm8gKnByaXYgPSBuZXcgYWl4X3RocmVhZF9pbmZvOw0KLSAgICAgICAgIHBy aXYtPnBkdGlkID0gcGJ1ZltwaV0ucGR0aWQ7DQotICAgICAgICAgcHJpdi0+ dGlkID0gcGJ1ZltwaV0udGlkOw0KDQotICAgICAgICAgdGhyZWFkID0gYWRk X3RocmVhZF93aXRoX2luZm8gKHByb2NfdGFyZ2V0LA0KLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdGlkX3QgKHBpZCwgMCwg cGJ1ZltwaV0ucHRoaWQpLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwcml2YXRlX3RocmVhZF9pbmZvX3VwIChwcml2KSk7 DQotDQotICAgICAgICAgcGkrKzsNCi0gICAgICAgfQ0KLSAgICAgIGVsc2UN CisgICAgICAvKiBJZiB0aGlzIHRocmVhZCBoYXMgbmV2ZXIgYmVlbiByZXBv cnRlZCB0byBHREIsIGFkZCBpdC4gICovDQorICAgICAgaWYgKCFpbl90aHJl YWRfbGlzdCAocHJvY190YXJnZXQsIHB0aWQpKQ0KICAgICAgICAgew0KLSAg ICAgICAgIHB0aWRfdCBwcHRpZCwgZ3B0aWQ7DQotICAgICAgICAgaW50IGNt cF9yZXN1bHQ7DQotDQotICAgICAgICAgcHB0aWQgPSBwdGlkX3QgKHBpZCwg MCwgcGJ1ZltwaV0ucHRoaWQpOw0KLSAgICAgICAgIGdwdGlkID0gZ2J1Zltn aV0tPnB0aWQ7DQotICAgICAgICAgcGR0aWQgPSBwYnVmW3BpXS5wZHRpZDsN Ci0gICAgICAgICB0aWQgPSBwYnVmW3BpXS50aWQ7DQotDQotICAgICAgICAg Y21wX3Jlc3VsdCA9IHB0aWRfY21wIChwcHRpZCwgZ3B0aWQpOw0KLQ0KLSAg ICAgICAgIGlmIChjbXBfcmVzdWx0ID09IDApDQotICAgICAgICAgICB7DQot ICAgICAgICAgICAgIGFpeF90aHJlYWRfaW5mbyAqcHJpdiA9IGdldF9haXhf dGhyZWFkX2luZm8gKGdidWZbZ2ldKTsNCi0NCi0gICAgICAgICAgICAgcHJp di0+cGR0aWQgPSBwZHRpZDsNCi0gICAgICAgICAgICAgcHJpdi0+dGlkID0g dGlkOw0KLSAgICAgICAgICAgICBwaSsrOw0KLSAgICAgICAgICAgICBnaSsr Ow0KLSAgICAgICAgICAgfQ0KLSAgICAgICAgIGVsc2UgaWYgKGNtcF9yZXN1 bHQgPiAwKQ0KKyAgICAgICAgIGFpeF90aHJlYWRfaW5mbyAqcHJpdiA9IG5l dyBhaXhfdGhyZWFkX2luZm87DQorICAgICAgICAgLyogaW5pdCBwcml2ICov DQorICAgICAgICAgcHJpdi0+cGR0aWQgPSBwZHRpZDsNCisgICAgICAgICBz dGF0dXMgPSBwdGhkYl9wdGhyZWFkX3RpZCAoZGF0YS0+cGRfc2Vzc2lvbiwg cGR0aWQsICZ0aWQpOw0KKyAgICAgICAgIHByaXYtPnRpZCA9IHRpZDsNCisg ICAgICAgICAvKiBDaGVjayBpZiB0aGlzIGlzIHRoZSBtYWluIHRocmVhZC4g IElmIGl0IGlzLCB0aGVuIGNoYW5nZQ0KKyAgICAgICAgICAgIGl0cyBwdGlk IGFuZCBhZGQgaXRzIHByaXZhdGUgZGF0YS4gICovDQorICAgICAgICAgaWYg KGluX3RocmVhZF9saXN0IChwcm9jX3RhcmdldCwgcHRpZF90IChwaWQpKSkN CiAgICAgICAgICAgICB7DQotICAgICAgICAgICAgIC8qIFRoaXMgaXMgdG8g bWFrZSB0aGUgbWFpbiBwcm9jZXNzIHRocmVhZCBub3cgbG9vaw0KLSAgICAg ICAgICAgICAgICBsaWtlIGEgdGhyZWFkLiAgKi8NCi0NCi0gICAgICAgICAg ICAgaWYgKGdwdGlkLmlzX3BpZCAoKSkNCi0gICAgICAgICAgICAgICB7DQot ICAgICAgICAgICAgICAgICB0aHJlYWRfaW5mbyAqdHAgPSBwcm9jX3Rhcmdl dC0+ZmluZF90aHJlYWQgKGdwdGlkKTsNCi0gICAgICAgICAgICAgICAgIHRo cmVhZF9jaGFuZ2VfcHRpZCAocHJvY190YXJnZXQsIGdwdGlkLCBwcHRpZCk7 DQotICAgICAgICAgICAgICAgICBhaXhfdGhyZWFkX2luZm8gKnByaXYgPSBu ZXcgYWl4X3RocmVhZF9pbmZvOw0KLSAgICAgICAgICAgICAgICAgcHJpdi0+ cGR0aWQgPSBwYnVmW3BpXS5wZHRpZDsNCi0gICAgICAgICAgICAgICAgIHBy aXYtPnRpZCA9IHBidWZbcGldLnRpZDsNCi0gICAgICAgICAgICAgICAgIHRw LT5wcml2LnJlc2V0IChwcml2KTsNCi0gICAgICAgICAgICAgICAgIGdpKys7 DQotICAgICAgICAgICAgICAgICBwaSsrOw0KLSAgICAgICAgICAgICAgIH0N Ci0gICAgICAgICAgICAgZWxzZQ0KLSAgICAgICAgICAgICAgIHsNCi0gICAg ICAgICAgICAgICAgIGRlbGV0ZV90aHJlYWQgKGdidWZbZ2ldKTsNCi0gICAg ICAgICAgICAgICAgIGdpKys7DQotICAgICAgICAgICAgICAgfQ0KKyAgICAg ICAgICAgICB0aHJlYWRfaW5mbyAqdHAgPSBwcm9jX3RhcmdldC0+ZmluZF90 aHJlYWQgKHB0aWRfdCAocGlkKSk7DQorICAgICAgICAgICAgIHRocmVhZF9j aGFuZ2VfcHRpZCAocHJvY190YXJnZXQsIHB0aWRfdCAocGlkKSwgcHRpZCk7 DQorICAgICAgICAgICAgIHRwLT5wcml2LnJlc2V0IChwcml2KTsNCiAgICAg ICAgICAgICB9DQogICAgICAgICAgIGVsc2UNCi0gICAgICAgICAgIHsNCi0g ICAgICAgICAgICAgdGhyZWFkID0gYWRkX3RocmVhZCAocHJvY190YXJnZXQs IHBwdGlkKTsNCisgICAgICAgICAgIGFkZF90aHJlYWRfd2l0aF9pbmZvIChw cm9jX3RhcmdldCwgcHRpZCwNCisgICAgICAgICAgICAgICBwcml2YXRlX3Ro cmVhZF9pbmZvX3VwIChwcml2KSk7DQorICAgICAgIH0NCg0KLSAgICAgICAg ICAgICBhaXhfdGhyZWFkX2luZm8gKnByaXYgPSBuZXcgYWl4X3RocmVhZF9p bmZvOw0KLSAgICAgICAgICAgICB0aHJlYWQtPnByaXYucmVzZXQgKHByaXYp Ow0KLSAgICAgICAgICAgICBwcml2LT5wZHRpZCA9IHBkdGlkOw0KLSAgICAg ICAgICAgICBwcml2LT50aWQgPSB0aWQ7DQotICAgICAgICAgICAgIHBpKys7 DQotICAgICAgICAgICB9DQorICAgICAgLyogVGhlIHRocmVhZCBpcyB0ZXJt aW5hdGVkLiBSZW1vdmUgaXQuICAqLw0KKyAgICAgIGlmIChzdGF0ZSA9PSBQ U1RfVEVSTSkNCisgICAgICAgew0KKyAgICAgICAgIHRocmVhZF9pbmZvICp0 aHIgPSBwcm9jX3RhcmdldC0+ZmluZF90aHJlYWQgKHB0aWQpOw0KKyAgICAg ICAgIGdkYl9hc3NlcnQgKHRociAhPSBudWxscHRyKTsNCisgICAgICAgICBk ZWxldGVfdGhyZWFkICh0aHIpOw0KKyAgICAgICAgIGRhdGEtPmV4aXRlZF90 aHJlYWRzLmluc2VydCAocGR0aWQpOw0KICAgICAgICAgfQ0KICAgICB9DQoN Ci0gIHhmcmVlIChwYnVmKTsNCi0gIHhmcmVlIChnYnVmKTsNCisgICAgLyog U29tZXRpbWVzIHRoZXJlIGNhbiBiZSBzY2VuYXJpb3Mgd2hlcmUgdGhlIHRo cmVhZCBzdGF0dXMgaXMNCisgICAgICAgdW5rbm93biBhbmQgd2UgaXQgd2ls bCBuZXZlciBpdGVyYXRlIGluIHRoZSBmb3IgbG9vcCBhYm92ZSwNCisgICAg ICAgc2luY2UgY21kIHdpbGwgYmUgbm8gbG9uZ2VyIGJlIHBvaW50aW5nIHRv IHRoYXQgdGhyZWFkcy4gIE9uZQ0KKyAgICAgICBzdWNoIHNjZW5hcmlvIGlz IHRoZSBnZGIudGhyZWFkcy90aHJlYWRfZXZlbnRzLmV4cCB0ZXN0Y2FzZQ0K KyAgICAgICB3aGVyZSBpbiB0aGUgZW5kIGFmdGVyIHRoZSB0aHJlYWRmdW5j IGJyZWFrcG9pbnQgaXMgaGl0LCB0aGUNCisgICAgICAgdGhyZWFkIGV4aXRz IGFuZCBnZXRzIGludG8gYSBQU1RfVU5LTk9XTiBzdGF0ZS4gIFNvIHRoaXMg dGhyZWFkDQorICAgICAgIHdpbGwgbm90IHJ1biBpbiB0aGUgYWJvdmUgZm9y IGxvb3AuICBUaGVyZWZvcmUgdGhlIGJlbG93IGZvciBsb29wDQorICAgICAg IGlzIHRvIG1hbnVhbGx5IGRlbGV0ZSBzdWNoIHRocmVhZHMuICAqLw0KKyAg ICBmb3IgKHN0cnVjdCB0aHJlYWRfaW5mbyAqaXQgOiBhbGxfdGhyZWFkcyAo KSkNCisgICAgICB7DQorICAgICAgIGFpeF90aHJlYWRfaW5mbyAqcHJpdiA9 IGdldF9haXhfdGhyZWFkX2luZm8gKGl0KTsNCisgICAgICAgaWYgKGluX3F1 ZXVlX3RocmVhZHMuY291bnQgKHByaXYtPnBkdGlkKSA9PSAwDQorICAgICAg ICAgICAgICAgJiYgaW5fdGhyZWFkX2xpc3QgKHByb2NfdGFyZ2V0LCBpdC0+ cHRpZCkpDQorICAgICAgICAgew0KKyAgICAgICAgICAgZGVsZXRlX3RocmVh ZCAoaXQpOw0KKyAgICAgICAgICAgZGF0YS0+ZXhpdGVkX3RocmVhZHMuaW5z ZXJ0IChwcml2LT5wZHRpZCk7DQorICAgICAgICAgfQ0KKyAgICAgIH0NCiB9 DQoNCiAvKiBJdGVyYXRlX292ZXJfdGhyZWFkcygpIGNhbGxiYWNrIGZvciBs b2NhdGluZyBhIHRocmVhZCwgdXNpbmcNCkBAIC0xMDEzLDggKzkxOSw4IEBA IHBkX3VwZGF0ZSAocGlkX3QgcGlkKQ0KIH0NCg0KIC8qIFRyeSB0byBzdGFy dCBkZWJ1Z2dpbmcgdGhyZWFkcyBpbiB0aGUgY3VycmVudCBwcm9jZXNzLg0K LSAgIElmIHN1Y2Nlc3NmdWwgYW5kIHRoZXJlIGV4aXN0cyBhbmQgd2UgY2Fu IGZpbmQgYW4gZXZlbnQgdGhyZWFkLCByZXR1cm4gYSBwdGlkDQotICAgZm9y IHRoYXQgdGhyZWFkLiAgT3RoZXJ3aXNlLCByZXR1cm4gYSBwdGlkLW9ubHkg cHRpZCB1c2luZyBQSUQuICAqLw0KKyAgIElmIHN1Y2Nlc3NmdWwgYW5kIHRo ZXJlIGV4aXN0cyBhbmQgd2UgY2FuIGZpbmQgYW4gZXZlbnQgdGhyZWFkLCBz ZXQNCisgICBwZF9hY3RpdmUgZm9yIHRoYXQgdGhyZWFkLiAgT3RoZXJ3aXNl LCByZXR1cm4uICAqLw0KDQogc3RhdGljIHZvaWQNCiBwZF9hY3RpdmF0ZSAo cGlkX3QgcGlkKQ0KQEAgLTIwODQsMTAgKzE5OTAsMTcgQEAgYWl4X3RocmVh ZF90YXJnZXQ6OnRocmVhZF9hbGl2ZSAocHRpZF90IHB0aWQpDQogc3RkOjpz dHJpbmcNCiBhaXhfdGhyZWFkX3RhcmdldDo6cGlkX3RvX3N0ciAocHRpZF90 IHB0aWQpDQogew0KLSAgaWYgKHB0aWQudGlkICgpID09IDApDQotICAgIHJl dHVybiBiZW5lYXRoICgpLT5waWRfdG9fc3RyIChwdGlkKTsNCisgIHRocmVh ZF9pbmZvICp0aHJlYWRfaW5mbyA9IGN1cnJlbnRfaW5mZXJpb3IgKCktPmZp bmRfdGhyZWFkIChwdGlkKTsNCg0KLSAgcmV0dXJuIHN0cmluZ19wcmludGYg KF8oIlRocmVhZCAlcyIpLCBwdWxvbmdlc3QgKHB0aWQudGlkICgpKSk7DQor ICBpZiAodGhyZWFkX2luZm8gIT0gTlVMTCAmJiB0aHJlYWRfaW5mby0+cHJp diAhPSBOVUxMKQ0KKyAgICB7DQorICAgICAgYWl4X3RocmVhZF9pbmZvICpw cml2ID0gZ2V0X2FpeF90aHJlYWRfaW5mbyAodGhyZWFkX2luZm8pOw0KKw0K KyAgICAgIHJldHVybiBzdHJpbmdfcHJpbnRmIChfKCJUaHJlYWQgJXMgKHRp ZCAlcykiKSwgcHVsb25nZXN0IChwdGlkLnRpZCAoKSksDQorICAgICAgICAg ICAgICAgcHVsb25nZXN0IChwcml2LT50aWQpKTsNCisgICAgfQ0KKw0KKyAg cmV0dXJuIGJlbmVhdGggKCktPnBpZF90b19zdHIgKHB0aWQpOw0KIH0NCg0K IC8qIFJldHVybiBhIHByaW50YWJsZSByZXByZXNlbnRhdGlvbiBvZiBleHRy YSBpbmZvcm1hdGlvbiBhYm91dA0KQEAgLTIwOTgsNyArMjAxMSw2IEBAIGFp eF90aHJlYWRfdGFyZ2V0OjpleHRyYV90aHJlYWRfaW5mbyAoc3RydWN0IHRo cmVhZF9pbmZvICp0aHJlYWQpDQogew0KICAgaW50IHN0YXR1czsNCiAgIHB0 aGRiX3B0aHJlYWRfdCBwZHRpZDsNCi0gIHB0aGRiX3RpZF90IHRpZDsNCiAg IHB0aGRiX3N0YXRlX3Qgc3RhdGU7DQogICBwdGhkYl9zdXNwZW5kc3RhdGVf dCBzdXNwZW5kc3RhdGU7DQogICBwdGhkYl9kZXRhY2hzdGF0ZV90IGRldGFj aHN0YXRlOw0KQEAgLTIxMTUsMzMgKzIwMjcsMzEgQEAgYWl4X3RocmVhZF90 YXJnZXQ6OmV4dHJhX3RocmVhZF9pbmZvIChzdHJ1Y3QgdGhyZWFkX2luZm8g KnRocmVhZCkNCiAgIGFpeF90aHJlYWRfaW5mbyAqcHJpdiA9IGdldF9haXhf dGhyZWFkX2luZm8gKHRocmVhZCk7DQoNCiAgIHBkdGlkID0gcHJpdi0+cGR0 aWQ7DQotICB0aWQgPSBwcml2LT50aWQ7DQotDQotICBpZiAodGlkICE9IFBU SERCX0lOVkFMSURfVElEKQ0KLSAgICAvKiBpMThuOiBMaWtlICJ0aHJlYWQt aWRlbnRpZmllciAlZCwgW3N0YXRlXSBydW5uaW5nLCBzdXNwZW5kZWQiICov DQotICAgIGJ1Zi5wcmludGYgKF8oInRpZCAlZCIpLCAoaW50KXRpZCk7DQoN CiAgIHN0YXR1cyA9IHB0aGRiX3B0aHJlYWRfc3RhdGUgKGRhdGEtPnBkX3Nl c3Npb24sIHBkdGlkLCAmc3RhdGUpOw0KKw0KKyAgLyogT3V0cHV0IHNob3Vs ZCBsb29rIGxpa2UgVGhyZWFkICVkICh0aWQgJWQpIChbc3RhdGVdKS4gICov DQorICAvKiBFeGFtcGxlOi0gVGhyZWFkIDEgKHRpZCAzNDE0NDU4NykgKFty dW5uaW5nXSkuICAqLw0KKyAgLyogd2hlcmUgc3RhdGUgY2FuIGJlIHJ1bm5p bmcsIGlkbGUsIHNsZWVwaW5nLCBmaW5pc2hlZCwNCisgICAgIHN1c3BlbmRl ZCwgZGV0YWNoZWQsIGNhbmNlbCBwZW5kaW5nLCByZWFkeSBvciB1bmtub3du LiAgKi8NCisNCiAgIGlmIChzdGF0dXMgIT0gUFRIREJfU1VDQ0VTUykNCiAg ICAgc3RhdGUgPSBQU1RfTk9UU1VQOw0KLSAgYnVmLnByaW50ZiAoIiwgJXMi LCBzdGF0ZTJzdHIgKHN0YXRlKSk7DQorICBidWYucHJpbnRmICgiWyVzXSIs IHN0YXRlMnN0ciAoc3RhdGUpKTsNCg0KICAgc3RhdHVzID0gcHRoZGJfcHRo cmVhZF9zdXNwZW5kc3RhdGUgKGRhdGEtPnBkX3Nlc3Npb24sIHBkdGlkLA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzdXNw ZW5kc3RhdGUpOw0KICAgaWYgKHN0YXR1cyA9PSBQVEhEQl9TVUNDRVNTICYm IHN1c3BlbmRzdGF0ZSA9PSBQU1NfU1VTUEVOREVEKQ0KLSAgICAvKiBpMThu OiBMaWtlICJUaHJlYWQtSWQgJWQsIFtzdGF0ZV0gcnVubmluZywgc3VzcGVu ZGVkIiAqLw0KLSAgICBidWYucHJpbnRmIChfKCIsIHN1c3BlbmRlZCIpKTsN CisgICAgYnVmLnByaW50ZiAoXygiW3N1c3BlbmRlZF0iKSk7DQoNCiAgIHN0 YXR1cyA9IHB0aGRiX3B0aHJlYWRfZGV0YWNoc3RhdGUgKGRhdGEtPnBkX3Nl c3Npb24sIHBkdGlkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmRldGFjaHN0YXRlKTsNCiAgIGlmIChzdGF0dXMgPT0gUFRI REJfU1VDQ0VTUyAmJiBkZXRhY2hzdGF0ZSA9PSBQRFNfREVUQUNIRUQpDQot ICAgIC8qIGkxOG46IExpa2UgIlRocmVhZC1JZCAlZCwgW3N0YXRlXSBydW5u aW5nLCBkZXRhY2hlZCIgKi8NCi0gICAgYnVmLnByaW50ZiAoXygiLCBkZXRh Y2hlZCIpKTsNCisgICAgYnVmLnByaW50ZiAoXygiW2RldGFjaGVkXSIpKTsN Cg0KICAgcHRoZGJfcHRocmVhZF9jYW5jZWxwZW5kIChkYXRhLT5wZF9zZXNz aW9uLCBwZHRpZCwgJmNhbmNlbHBlbmQpOw0KICAgaWYgKHN0YXR1cyA9PSBQ VEhEQl9TVUNDRVNTICYmIGNhbmNlbHBlbmQpDQotICAgIC8qIGkxOG46IExp a2UgIlRocmVhZC1JZCAlZCwgW3N0YXRlXSBydW5uaW5nLCBjYW5jZWwgcGVu ZGluZyIgKi8NCi0gICAgYnVmLnByaW50ZiAoXygiLCBjYW5jZWwgcGVuZGlu ZyIpKTsNCisgICAgYnVmLnByaW50ZiAoXygiW2NhbmNlbCBwZW5kaW5nXSIp KTsNCg0KICAgYnVmLndyaXRlICgiIiwgMSk7DQoNCmRpZmYgLS1naXQgYS9n ZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3RocmVhZF9ldmVudHMuZXhwIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy90aHJlYWRfZXZlbnRzLmV4cA0K aW5kZXggMTAwMjA1ZTVmNTguLmNhNTFhYmViNTQ1IDEwMDY0NA0KLS0tIGEv Z2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy90aHJlYWRfZXZlbnRzLmV4cA0K KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy90aHJlYWRfZXZlbnRz LmV4cA0KQEAgLTIxLDExICsyMSw5IEBADQogIyBtZXNzYWdlcyBhcmUgcHJp bnRlZCBhbmQgY2FuIGJlIGRpc2FibGVkKSBpcyBkZXBlbmRlbnQgb24gdGhl IHRhcmdldA0KICMgdGhyZWFkIHN1cHBvcnQgY29kZS4NCg0KLSMgVGhpcyB0 ZXN0IGhhcyBvbmx5IGJlZW4gdmVyaWZpZWQgd2l0aCBMaW51eCB0YXJnZXRz LCBhbmQgd291bGQgbmVlZA0KKyMgVGhpcyB0ZXN0IGhhcyBiZWVuIHZlcmlm aWVkIHdpdGggTGludXggdGFyZ2V0cyBhbmQgQUlYIHRhcmdldCwgYW5kIHdv dWxkIG5lZWQNCiAjIHRvIGJlIGdlbmVyYWxpemVkIHRvIHN1cHBvcnQgb3Ro ZXIgdGFyZ2V0cw0KLWlmIHshW2lzdGFyZ2V0ICotKi1saW51eCpdfSB7DQot ICAgIHJldHVybg0KLX0NCityZXF1aXJlIHtpc19hbnlfdGFyZ2V0ICIqLSot bGludXgqIiAiKi0qLWFpeCoifQ0KDQogIyBXaGVuIHVzaW5nIHRoZSBSU1As IHdlIGRvbid0IGdldCBub3RpZmljYXRpb25zIGFib3V0IG5ldyB0aHJlYWRz Lg0KICMgVGhpcyBpcyBleHBlY3RlZCwgc28gZG9uJ3QgdGVzdCBmb3IgdGhh dC4NCi0tDQoyLjQxLjANCg== --_000_CH2PR15MB35447E80BFE67CCEAD8F2885D6E42CH2PR15MB3544namp_--