From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by sourceware.org (Postfix) with ESMTPS id 1779C3858434 for ; Fri, 2 Dec 2022 07:50:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1779C3858434 Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=ibm.com Received: from pps.filterd (m0098421.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2B27Veq7020015; Fri, 2 Dec 2022 07:50:28 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=pp1; bh=jCAi+yU9KyP2mLQHt08nW14NohpToaWpCGicgRxmU0Y=; b=g/HSk7CAgcZuXpqhNqGiem7GhmZhyIwxWhNca4ikKWHIRL+VdPkLIq1DOOVTkNFcFjnX OKhUv0yu9sRmQUOUjRQzQ/XvxW8nFzpzlCrbuJ9LlCjMObc2Bwa0facRlhlCgxldwZdK mFbSiOW9PzNQMYkp5bxVF0KtFz0CrOU2TC5qG+Q1slnjIJnr7e7vNmIY6uJL9kPsE0MN CZOjiBAIiYY5+1c1qZp3iLkrwQ6ZzD63vez25OP7etLKHL6UTNlWRlUlQy7gw0pb20A7 4DOMZhfRvqCZNRi7p39tAgVAIiG85XQm27rUXgPXFnWVj0fR6D1pHwQrVhNd4fjS8hrG qg== Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2106.outbound.protection.outlook.com [104.47.55.106]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3m7d260drt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 02 Dec 2022 07:50:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=n/ZGCgkJqGYPsvPKjnADWoMin/0SGy1mZ3JMb76qt9++guqOc9//hije9YvOh7OYQScjznQlc7tsvV+/sLPtbkqcxmp0cowb9S1UhOXCbM9cwjFOrz2jGA1TCyPwslAEAzmXPfidAy3vPhp0I25yl2k8vusDfAg5xlL2jFBNTvfZatBiQbuiVOamsg9AITwt7Avp+II0h0dYX1/AxtcKq68bRgy9AmPPBxrVch7dCJxdOXYg/DNWtax3LZSoZdT0fhY6Sgtu2/f1YNYyFSQ9qGXMies4NYA82GYeEVXNt4liqP0VU3+uM+TIcNI/8tJLKCJ2RUjWwg81ZJrritorpA== 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=jCAi+yU9KyP2mLQHt08nW14NohpToaWpCGicgRxmU0Y=; b=ggKesWlOtArAh6QzYnCL6yCoHwS55N1nUICYcxQTAoFiBxJAWEywfHPAn6c2YtvgBMi+ART0P+6/uYZDmQJKtnwFIdOw6xRIb7FN9FsVVAWhlqXMbW2wHe86qPNsbqLyTnjB9oVkmxXx4hu1fs6UhP7Q98BY8MEnDbBm+gL/SEEZXJhGPXGkGJquzrV5kyp042daSJAC2KLmlRe+ij6oA529PrCTObUmsih3ub+M34hpfEENBKu2COnxVhHAf5uzZUZzW6JJNyAHXnlj2m/pd2qV6bF54bmhzPdVkyT5ESH6/ruMkLLmZOOJrij6toKrdrh6SmIMR8v60VHx0CopBQ== 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 CY4PR15MB1366.namprd15.prod.outlook.com (2603:10b6:903:f7::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.20; Fri, 2 Dec 2022 07:50:22 +0000 Received: from CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::e4e:1586:a24a:764a]) by CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::e4e:1586:a24a:764a%7]) with mapi id 15.20.5880.010; Fri, 2 Dec 2022 07:50:21 +0000 From: Aditya Kamath1 To: Ulrich Weigand , "simark@simark.ca" , "gdb-patches@sourceware.org" CC: Sangamesh Mallayya Subject: Re: [PATCH] 0001-Fix-multi-thread-debug-bug-in-AIX.patch Thread-Topic: [PATCH] 0001-Fix-multi-thread-debug-bug-in-AIX.patch Thread-Index: AQHY6DximDPpCqTL9kGyFvcEZokFBq4jlIiAgBFljYeAAA2HgIAIORaygAMrdQCACMPAdYADi8KAgAAbf+aAABUYgIAADhDtgAjHItiAAgYnAIACq/WK Date: Fri, 2 Dec 2022 07:50:21 +0000 Message-ID: References: <0866c91331b08f2870fad6e6a13fbcd1a9823b48.camel@de.ibm.com> <5df6ab523034d1997ffda5bb06c3bd87777dcccb.camel@de.ibm.com> <0dba07cfad3da44c0281c53702d73f807bca7d06.camel@de.ibm.com> <5956432ab1e0eedc8f65e01d3793a80ccf3a3a1f.camel@de.ibm.com> <139ff3da5e35905c963869569bebf280733740c2.camel@de.ibm.com> In-Reply-To: <139ff3da5e35905c963869569bebf280733740c2.camel@de.ibm.com> Accept-Language: en-IN, en-US Content-Language: en-IN X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH2PR15MB3544:EE_|CY4PR15MB1366:EE_ x-ms-office365-filtering-correlation-id: f39658a3-f29b-40ad-b670-08dad439dd66 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: CT0JaxEOrkeysqvStVwg8Mr+l+VmA9kuVDKd1AzwS9LposVq+I8VYL9W7iB5ONHh2YI7DlVeWfv6XcTxMQBd4VHC2PfeM+zMYAOsvKn13Zv3gj5Al2SIsCmb7Ia4dYGBXUmFsKYdByX1hIz8iRSFBVLzh35TC7/V0o0/Q4zijmMOiu4JacbkV01XFzsnkF+d+k19+esNqjoAexrE3lJZ4uxYzsQYbDrsNXvwyzfjMjc6D0piHPe2vOwvPUcbmPHfOYd3GEAi9IU25flAh6J5qSBQUVU/VQchAkph1eJHyvvPy//tuDwy5dm8IQkP4LGkCmQiXwDSbobjupP8GCenXg6eGpdoQhqHSjykV82cjYxAAi9qpT8IurSCXWzl3/+N+AxcahaSx9gsInbgTLtHZm6/aolpf4gbR4Qme45/WIAORZeQpzisLi+7YYL8419k4YScdXNsmDQQmGK2bGMwwGgUl3LS4oHo2/gopp2N/8kwujLJHtmDE8OKXT1d78LDQYDdGZ9oQu7M/OKALo6UawTl2ePISSaP90Ox8qpZDOwi6B5C72N19ldmKuSES5dO59S1eYjlDYL8aoqMUf4DjWoRPpoqblR3Cqfy0DrHX5uV9jIU2ydYk/z+Nq2avNXijZRrCRZrhDXaNgQBwIUTErHxvJdqVfUleciS76oZcLc4fKAyKwZKQXaZfAZAqlg8+o2Gv3ghyM0kzyqtp5v6SN8z4ToOaTqLK0TYz01MU9Q= 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:(13230022)(396003)(39860400002)(366004)(346002)(376002)(136003)(84040400005)(451199015)(38070700005)(33656002)(66556008)(55016003)(166002)(6506007)(186003)(64756008)(91956017)(66476007)(76116006)(7696005)(53546011)(8676002)(71200400001)(4326008)(66946007)(30864003)(316002)(38100700002)(110136005)(99936003)(8936002)(52536014)(66446008)(86362001)(5660300002)(19627405001)(83380400001)(41300700001)(9686003)(2906002)(122000001)(478600001)(579004)(559001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?N3M0NnNHcW0zVTJZQVk4NW9PVWVjNWk5N09hLzdONFYxZmNJMWZyYVg2NHAy?= =?utf-8?B?Vi9hMnNsdlFqYzNKVitvQldQcDQvRzloeUVqcnE1bzFMMmdMVnZRTmlLelJZ?= =?utf-8?B?dWw2am9MeUdyY05EL3IyeDJHdGN5NEhueVRNSnE0Nks3UDJDbjcza29uM3pU?= =?utf-8?B?SWljWnR3bUZvZ25Ba3h1VytRTDRlalRjTkI0SXpnbWRlUzVOUFI2ZDk1NnpW?= =?utf-8?B?WXNKSG5LMjJRZVBGMkxBSXVTVmhNWUZRSG5BYktTdGUvYVppVzJrRW9rWWhJ?= =?utf-8?B?b1pqWlU4UGRFVWpuNEJucS9uWnQrdExOR3VyYUJIclZNWVFxNVVaaXdaWmtK?= =?utf-8?B?TjRGdnBHSTFNZ1hxWEhSeGtmeS9xa3Jka2FKMmlVVnB2TUdpQ2FvUVlJSk5q?= =?utf-8?B?Q0RFWnhrNDBGVE9VWGMreGVXY3N4ZVVwcGVkOVVWR1VrMXhYckRVTUhDOGVO?= =?utf-8?B?NnFmbGdleEEvd0ZBbXQwbXcrb3BkSGRNZG5OWWpmbWZOdXdnVmNvVWNaM1A0?= =?utf-8?B?UFBkdkdTTUtiUTNiTmF4UUYreXdKZG9vRE54QjFZNUFFalN3S04yckR2a1gv?= =?utf-8?B?eFM1QzVIaEFaZU1GWWFWSUVLaU0xSVdXeGFzeUhNa2YyNE9ib0ZsVW15TFJP?= =?utf-8?B?ZmNIUTI1SlNRV0pycXYxdG1tdDUydVJhbDd2c0h3bmJQVDdSaDVXUGNGb3FS?= =?utf-8?B?M1ZIaUJkTXFsTFZxdVlBQldaeVBiOEN6K2tyUUIvenorV0U5Uk9sd2xMdXM1?= =?utf-8?B?bkZPdzFJcFJERnNEV0JjeEE3R3RDMmtDamhtQmxXS2F2Z0JUZmZLWUVmY1pH?= =?utf-8?B?YjRqZCtFOFIxSHBZQ2Qzc1N6R0FPNzV3ZnRTOUZ6SnU1WDVoSTZ4QzRaZUg3?= =?utf-8?B?eldXQVNnZ1JEclJCZk1UYzVkVWl3MlFqSVZFV0pVaGY4K0E1ekc2S1hHRE5I?= =?utf-8?B?dGVWRFNYckhaZXovNTFrbmZKYjN1dXFsUVlJY3RUNXJpdTBmUjZuSlRyY0hT?= =?utf-8?B?OXM2b0VNaHhkU2l0MENWdEcyRDBDNHhkV3hCalI4M3RxRk9MRVFXZWJacG5h?= =?utf-8?B?ZW9DbmpGaG5MejVwemRDY3o2d3BneWlzbDhpMDhWMDBrK0dhZjFWS1FtSmFQ?= =?utf-8?B?N0ZoVisrdlErZmdkeWwzNVBCV2psVDRyTEFtNm5ZanBrU3dpTkNVa2h5TVk4?= =?utf-8?B?NXo2ODdHUEluR2toYTZLN0IzbTdTK2h0TElTOXZBWVdDUFBraEJGcTk3ZXNS?= =?utf-8?B?NVl6QU05VFJoV3dSbEo3UitJTE1UcTJtWVVSMjkvek03UlIxVlVibm5RTFFF?= =?utf-8?B?NWxQWlVGeGVGZFkzblI5UXlkWW5hOW5PaUlFS1RWa3FHTDM2aWNnQXNqdjVa?= =?utf-8?B?eGpQZ1NLUUNUZGxMaE1FS2R4bDZzK2wyRzVtNG9MU2pyV0pPR055WGZib0tT?= =?utf-8?B?cEVhTXRST0Vzc2pseEc1bjdFVlpXRG9oVVFOdkxrdHVUL0pWaWM4aUJqR2Rw?= =?utf-8?B?L3dtSmJJbEE1SytJanBXdGFtT3Q0eEV6TlJQMHJiSlVjTlRwSUVQeXE3Rm4v?= =?utf-8?B?NzgzTm9aQ3lldTJ1blVKaTljeXF4Y3I4Zkt5d0tjaEV3a3JpVTBLZWE5ckNs?= =?utf-8?B?TTkwSW05TmltWmk1N3E4Z1p2aFVHd1NGdVN6Z3AwU0N2SUhzY1RQaUlJc1dR?= =?utf-8?B?RzB1MWFaTEY5Qm9WdHA4ZDRrYzdUd2J4SzFLT2srS1kzNElCQ1ZYNmJydzI1?= =?utf-8?B?Ukx4b21WRE1UaE5OaGRQbk9ENkZLTG0wME13VS9RQVFmaXBGM25oVDZ4bFZv?= =?utf-8?B?T0czYVl0T1VyaDVIdlNFendKTEk5MkRBWXp1MTc2Sm9QY0g1RmNaR09EbE11?= =?utf-8?B?c3lSVVR0SlhibTE5WUcxUnQzTG1xbnZzYkRmb1NSMGVjRnpzT2NXYS9zL3VZ?= =?utf-8?B?eWI5RUo4WjdhaWs0UytkV2hWRThLRi9wRHZ4WGd6bzhJN20yTkFUVzhpVTZH?= =?utf-8?B?MzBiZkorSnFxQy9WSURNWGlkRjdNWnFBMVZCMEpMcTA3YXNGYnpTT3VUb25L?= =?utf-8?B?QUlTYnliR2R4ckNDNXYrZEZzblJLT21jTC94SzM4TFVLOHRwNFdtRW1UbVZz?= =?utf-8?B?Sy9QS2J0cmZQNEZhZFNFcjFxUmcxTkZRV0ZYQ3BJYVBhSmEvYzFNamJtT0o1?= =?utf-8?Q?QPPx6cRk7HSXYz14S+wM0qwMrcls/bZGmqoqwn4cFnmg?= Content-Type: multipart/mixed; boundary="_004_CH2PR15MB354486F155F5CC97501D056DD6179CH2PR15MB3544namp_" 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: f39658a3-f29b-40ad-b670-08dad439dd66 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2022 07:50:21.8910 (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: gW70TOCpf/EdvafW5nhQKGmeuY7DCl2TGEcZO1BA2yv5vw6Q8VzwgEm/1HAkuBNHR6+N3nmEcomc2TI0qsUTFw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR15MB1366 X-Proofpoint-ORIG-GUID: CAyZyK7vDOiy3AGLJWKwRZMm791ku5xd X-Proofpoint-GUID: CAyZyK7vDOiy3AGLJWKwRZMm791ku5xd X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-12-02_04,2022-12-01_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 priorityscore=1501 adultscore=0 spamscore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 impostorscore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2210170000 definitions=main-2212020057 X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,HTML_MESSAGE,RCVD_IN_MSPIKE_H2,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: --_004_CH2PR15MB354486F155F5CC97501D056DD6179CH2PR15MB3544namp_ Content-Type: multipart/alternative; boundary="_000_CH2PR15MB354486F155F5CC97501D056DD6179CH2PR15MB3544namp_" --_000_CH2PR15MB354486F155F5CC97501D056DD6179CH2PR15MB3544namp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgVWxyaWNoIGFuZCBjb21tdW5pdHksDQoNClBsZWFzZSBmaW5kIGF0dGFj aGVkIHRoZSBuZXcgcGF0Y2ggW1NlZTotIDAwMDEtRml4LW11bHRpLXRocmVh ZC1kZWJ1Zy1idWctaW4tQUlYLnBhdGNoIF0NCg0KU28gbm93IHRoZSBwcm9w b3NlZCBwYXRjaCBhdHRhY2hlZCBpbiB0aGlzIGVtYWlsIHdvcmtzIGZpbmUg Zm9yIHNpbmdsZSBwcm9jZXNzIGFuZCBtdWx0aSBwcm9jZXNzIGNvZGUgd2l0 aCBkZXRhY2ggZm9yayBvbiBhbmQgb2ZmIG9wdGlvbnMuIEtpbmRseSBzZWUg b3V0cHV0IDEgYW5kIHByb2dyYW0gMSBmb3Igc2luZ2xlIHByb2Nlc3MgY2Fz ZSBhbmQgcHJvZ3JhbSAyIGFuZCBvdXRwdXRzIDIsIDMgYW5kIDQgZm9yIG11 bHRpIHByb2Nlc3MgY2FzZSBbSXQgcG9pbnRzIG91dCB0aGF0IGlmIGEgcHJv Y2VzcyBpcyBhIHRocmVhZCwgaXQgaXMgYSB0aHJlYWQuIEl0IGlzIGhpZ2hs aWdodGVkIGluIGJvbGRdLiBUaGUgdW5pdCB0ZXN0IGNhc2VzIHJ1biB3ZWxs LiBPdXRwdXQgNCBpcyBmb2xsb3dpbmcgY2hpbGQuIEl0IGlzIGF0dGFjaGVk IHRvIGJlIHN1cmUgdGhpbmdzIHdvcmsgaW4gYWxsIGNhc2VzLiAgVGhlIHBy b3Bvc2VkIHBhdGNoIGhhcyBhIHBpZF90b19zdHIgKCkgZnVuY3Rpb24gdGhh dCBoZWxwcyB1cy4gU28sIHdoZW4gaW4gYSBtdWx0aSBwcm9jZXNzIGNhc2Ug YSBzd2l0Y2ggaGFwcGVucyBiZXR3ZWVuIHByb2Nlc3MgZHVlIHRvIGFueSBl dmVudCB0aGUgY29udHJvbCBjaGVja3MgaW4gb3VyIHJzNjAwMC1haXgtbmF0 LmMgZm9yIHRocmVhZCBvciBwcm9jZXNzIGluZm9ybWF0aW9uIGZyb20gdGhy ZWFkX3RhcmdldF9pZF9zdHIgKCkgZnJvbSB0aHJlYWQuYyBmaWxlLg0KVGhp cyBwYXJ0IGlzIG5vdyBzb2x2ZWQuDQoNClRoZXJlIGFyZSBzb21lIG9wdGlt aXNhdGlvbnMgZm9yIHdoaWNoIEkgbmVlZCB5b3VyIGFkdmljZSBzaW5jZSB5 b3UgYXJlIHRoZSBleHBlcnQuDQoNClNvIGhlcmUgYXJlIG15IHJlYXNvbnMu Lg0KDQo+Pm91cnN0YXR1cy0+c2V0X2ZvcmtlZCAocHRpZF90IChwaWQpKTsN Cj4+LeKAguKAguKAguKAguKAguKAguKAguKAguKAguKAguKAgiAgcmV0dXJu IHB0aWRfdCAocGFyZW50X3BpZCk7DQo+PivigILigILigILigILigILigILi gILigILigILigILigIIgIHJldHVybiBmaW5kX3RoZV9yZXR1cm5fcHRpZCAo cGFyZW50X3BpZCk7DQo+Pg0KPj5LaW5kbHkgbm90ZSB0aGF0IHRoZSBjb250 cm9sIHdpbGwgYWx3YXlzIG5vdCBjb21lIGZyb20gYWl4LXRocmVhZC5jDQo+ PmZvciBzdWNoIGV2ZW50cy4gSGVuY2UsIHdlIGNhbm5vdCB0YWtlIGNhcmUg b2YgdGhlIHNhbWUgdGhlcmUsDQo+PnRob3VnaCBpdCB3aWxsIGJlIGEgcmVs aWVmIGlmIHdlIGNhbiBkbyB0aGF0Lg0KDQo+SSdtIG5vdCBzdXJlIHdoeSBp dCBpcyBuZWNlc3NhcnkgdG8gaGFuZGxlIHRoaXMgaW4gdGhlIHByb2Nlc3Mg bGF5ZXINCj4ocnM2MDAwLWFpeC1uYXQuYykgaW5zdGVhZCBvZiB0aGUgdGhy ZWFkIGxheWVyIChhaXgtdGhyZWFkLmMpLg0KPldoYXQgc3BlY2lmaWNhbGx5 IGJyZWFrcyBpZiB5b3UgZG8gbm90IGhhdmUgdGhlc2UgcnM2MDAwLWFpeC1u YXQuYw0KPmNoYW5nZXM/DQoNClNvLCBpZiB5b3Ugb2JzZXJ2ZSBvdXRwdXQg MyBvciA0LCB0aGUgcHJvZ3JhbSBmaXJzdCBtdWx0aSB0aHJlYWRzLCBJIG1l YW4gdGhyZWFkIGV2ZW50cyBhcmUgaGFuZGxlZCBmaXJzdCBhbmQgdGhlbiB0 aGUgdGhyZWFkcyBmb3JrLiBTbywgd2hlbiB0aGlzIGhhcHBlbnMsIEkgY2Fu bm90IHJldHVybiBwdGlkX3QgKHBhcmVudF9waWQpLiBJZiBJIGRvIHNvLCB0 aGUgR0RCIGNvcmUgd2lsbCB0cmVhdCBpdCBhcyBhIG5ldyBwcm9jZXNzIGFu ZCBhZGQgaXQgaW4gbXkgdGhyZWFkbGlzdCBhcyBzYXkgcHJvY2VzcyAxMDAg ZGVzcGl0ZSBleGlzdGVuY2Ugb2YgJ3RocmVhZCAxJyByZXByZXNlbnRpbmcg dGhlIHNhbWUuIFNvLCBJIG5lZWQgdG8gY29ycmVjdGx5IHNlbmQgd2hpY2gg dGhyZWFkIGRpZCB0aGUgZm9yayAoKSBldmVudCBvciB3aGljaCB0aHJlYWQg b2YgdGhlIHByb2Nlc3MgaXMgdGhlIG9uZSB3aG8gZ2F2ZSBiaXJ0aCB0byBh IG5ldyBpbmZlcmlvciBwcm9jZXNzIFtzYXkgMiBvciAzIGluIG91dHB1dCAz IGJlbG93XSwgSSBtZWFuIHdoaWNoIHRocmVhZCBjYXVzZWQgdGhlIG11bHQg cHJvY2VzcyBldmVudCB3aGVuIHRoZSBwcm9jZXNzIGlzIG11dGxpIHRocmVh ZGVkLiBUaGlzIGhhcyB0byBoYW5kbGVkIGhlcmUgYXMgY29udHJvbCBmcm9t IHRhcmdldC5jIGNvbWVzIGRpcmVjdGx5IHRvIHJzNjAwMC1haXgtbmF0Ojp3 YWl0IGFuZCBub3QgdGhyb3VnaCBhaXgtdGhyZWFkLmM6OndhaXQgc2luY2Ug Zm9yayAoKSBpcyBhIHByb2Nlc3MgZXZlbnQuLg0KDQo+SWYgeW91ICpkbyog bmVlZCB0byBoYW5kbGUgTFdQcyAoa2VybmVsIHRocmVhZCBJRHMpIGluIHRo ZSBwcm9jZXNzDQo+bGF5ZXIgKHRoaXMgY2FuIGJlIGEgcmVhc29uYWJsZSBj aG9pY2UsIGFuZCBpdCBkb25lIGJ5IHNldmVyYWwgb3RoZXINCj5uYXRpdmUg dGFyZ2V0cyksIHRoZW4gaXQgc2hvdWxkIGJlICpjb25zaXN0ZW50KiwgYW5k ICphbGwqIExXUCBoYW5kbGluZw0KPnNob3VsZCBiZSBpbiB0aGUgcHJvY2Vz cyBsYXllci4gSW4gcGFydGljdWxhciwgdW5kZXIgbm8gY2lyY3Vtc3RhbmNl cw0KPmRvZXMgaXQgbWFrZSBzZW5zZSB0byBkdXBsaWNhdGUgdGhlICJmaW5k IGN1cnJlbnQvc2lnbmFsbGVkIHRocmVhZCINCj5jb2RlIGluICpib3RoKiB0 aGUgcHJvY2VzcyBhbnkgdGhyZWFkIGxheWVycy4NCg0KVGhpcyBub3Qgc3Ry YWlnaHRmb3J3YXJkIHRvIGRvLiBUaGUgcmVhc29uIGJlaW5nIHNheSBvdXIg YXBwbGljYXRpb24gaXMgcHRocmVhZGVkIFdlIG5lZWQgb3VyIHN5bmNfdGhy ZWFkbGlzdHMoKSBjb2RlIHRvIGRldGVjdCBtdWx0aXBsZSB0aHJlYWRzIGFu ZCBzeW5jLi4gV2UgY2Fubm90IGhhbmRsZSB0aGlzIGluIHJzNjAwMC1haXgt bmF0LmMgd2l0aCB0aGUgY3VycmVudCBkZXNpZ24gb2YgdGhlIGNvZGUuLiBM ZXQncyBzYXkgY2hpbGQgcHJvY2VzcyBpcyBtdWx0aS10aHJlYWRlZCB0aGlu Z3MgY2FuIGdldCBjb21wbGV4Li4gSXQgd2lsbCByZXF1aXJlIHVzIHRvIG1v dmUgdGhhdCB3aG9sZSBHREIgbGlzdCBhbmQgUHRocmVhZCBsaXN0IHN5bmMg Y29kZSB0byByczYwMDAtYWl4LW5hdC5jIGNvZGUuIFRoZSBlc3NlbmNlIG9y IG1vc3Qgc2VsbGluZyBwcm9kdWN0IG9yIHRoZSBVU1AgW1VuaXF1ZSBTZWxs aW5nIFByb3Bvc2l0aW9uXSBvZiBhaXgtdGhyZWFkLmMgY29kZSB3aWxsIGJl IGxvc3QuDQoNCkxldCBtZSBrbm93IHdoYXQgeW91IHRoaW5rIG9mIHRoaXMs IGFuZCBJIHdpbGwgbW9kaWZ5IHRoaXMgcGF0Y2ggYXMgcGVyIGhvdyB5b3Ug Z3VpZGUgb3Igc3VnZ2VzdC4uIFRoaXMgaXMgd2hlcmUgSSB3YW50ZWQgdG8g cmVhY2ggb3V0IHRvIGFsbCBvZiB5b3UgaW4gdGhlIGNvbW11bml0eSBhcyBJ IHRoaW5rIHRoaXMgbWlnaHQgYmUgYSBjb2RlIGRlc2lnbiBjaGFuZ2UgbmVl ZGVkLg0KDQoNCj4+W1N3aXRjaGluZyB0byBwcm9jZXNzIDE2Nzc3NjIwXQ0K DQo+VGhpcyBvdXRwdXRzIGluZmVyaW9yX3B0aWQgLi4uDQoNClllcywgeW91 IHdlcmUgcmlnaHQNCg0KPj4qIDEuMSAgcHJvY2VzcyAxNjc3NzYyMCAgMHhk MDU5NWZiMCBpbiBfcF9uc2xlZXAgKCkNCj4+ICAgZnJvbSAvdXNyL2xpYi9s aWJwdGhyZWFkLmEoc2hyX3hwZzUubykNCj4+ICAxLjIgIHByb2Nlc3MgMTY3 Nzc2MjAgIDB4ZDA1OTVmYjAgaW4gX3BfbnNsZWVwICgpDQo+PiAgIGZyb20g L3Vzci9saWIvbGlicHRocmVhZC5hKHNocl94cGc1Lm8pDQo+PiAgMS4zICBw cm9jZXNzIDE2Nzc3NjIwICAweGQwNTk1ZmIwIGluIF9wX25zbGVlcCAoKQ0K Pj4gICBmcm9tIC91c3IvbGliL2xpYnB0aHJlYWQuYShzaHJfeHBnNS5vKQ0K Pj4gIDIuMSAgcHJvY2VzcyA4MzIzNTcwICAgMHhkMDU5NGZjOCBpbiA/PyAo KQ0KPj4gIDMuMSAgcHJvY2VzcyAxNzk1NzE3MiAgMHhkMDU5NGZjOCBpbiA/ PyAoKQ0KDQo+Li4uIGFuZCB0aGlzIG91dHB1dHMgdGhlIHB0aWQgdmFsdWVz IGZvciB0aG9zZSB0aHJlYWRzLg0KDQo+SWYgaXQgc2F5cyAicHJvY2VzcyAu Li4iLCB0aGVuIHRob3NlIHB0aWQgdmFsdWVzIGhhdmUgbm90DQo+cHJvcGVy bHkgYmVlbiBzd2l0Y2hlZCBvdmVyIHRvIHRoZSAocGlkLCBsd3AsIHRpZCkg Zm9ybWF0Lg0KDQo+WW91IHNob3VsZCB2ZXJpZnkgdGhhdCB0aGUgc3luY190 aHJlYWRsaXN0cyBjb2RlIGhhbmRsZXMNCj5hbGwgbXVsdGktcHJvY2VzcyBj YXNlcyBjb3JyZWN0bHkuICBJIGhhdmVuJ3QgbG9va2VkIGF0DQo+dGhpcyBp biBkZXRhaWwsIGJ1dCBhcmUgeW91IHN1cmUgdGhhdCBoZXJlOg0KDQo+PkBA IC04NDEsOCArODI5LDIyIEBAIHN5bmNfdGhyZWFkbGlzdHMgKGludCBwaWQp DQogPj4gICAgICAgICAgICB9DQogPj4gICAgICAgICAgZWxzZSBpZiAoY21w X3Jlc3VsdCA+IDApDQogPj4gICAgICAgICAgICB7DQo+Pi0gICAgICAgICAg ICAgZGVsZXRlX3RocmVhZCAoZ2J1ZltnaV0pOw0KDQoNCj55b3UgbmV2ZXIg YWNjaWRlbnRhbGx5IHN3aXRjaCB0aGUgKnBpZCogcGFydCAoaWYgImdwdGlk Ig0KPmJlbG93cyB0byBhIGRpZmZlcmVudCBwaWQgdGhhbiAicHB0aWQiKT8N Cg0KU28sIHRoaXMgaXMgbm90IHRoZSByZWFzb24uIEkgaGF2ZSBhZGRlZCBh biBhc3NlcnRpb24gaGVyZSBqdXN0IHRvIGJlIHN1cmUuIEkgZ2V0IHdoYXQg eW91IGFyZSB0aGlua2luZy4gV2hpbGUgZGVidWdnZWQgaW4gZGVwdGggbGFz dCB0d28gZGF5cyBJIHJlYWxpc2VkIG91ciBwaWRfdG9fc3RyIGlzIG5lZWRl ZCBpbiByczYwMDAtYWl4LW5hdC5jIGFzIGNvbnRyb2wgY29tZXMgaGVyZSBp biBzZWFyY2ggb2YgaXQuIElmIGl0IGRvZXNuJ3QgR0RCIHRyZWF0cyBhbGwg dGhyZWFkcyBhcyBwcm9jZXNzLiBJdCBpcyB0aGUgcGF0Y2guIEtpbmRseSBz ZWUgaXQgYW5kIHRoZSBvdXRwdXRzIFszIGFuZCA0IGJlbG93IHRoaXMgZW1h aWxdIGFzIHdlbGwuDQoNCj5IbW0uICBTbyB3aGVuICJ3YWl0IiByZXR1cm5z LCBpdCBuZWVkcyB0byBkZXRlcm1pbmUgd2hpY2ggdGhyZWFkDQo+dHJpZ2dl cmVkIHRoZSBldmVudCB0aGF0IGNhdXNlZCBwdHJhY2UgdG8gc3RvcC4gIE9u IExpbnV4LCAid2FpdCINCj53aWxsIGFjdHVhbGx5IHJldHVybiB0aGUgTFdQ IG9mIHRoYXQgdGhyZWFkLCBzbyBpdCBjYW4gYmUgZGlyZWN0bHkNCj51c2Vk LiAgSXQgc2VlbXMgb24gQUlYLCAid2FpdCIgb25seSByZXR1cm5zIGEgUElE LCBhbmQgeW91IGRvIG5vdA0KPmltbWVkaWF0ZWx5IGtub3cgd2hpY2ggdGhy ZWFkIGNhdXNlZCB0aGUgZXZlbnQ/DQoNCj5JbiB0aGF0IGNhc2UsIEkgY2Fu IHNlZSB3aHkgeW91J2QgaGF2ZSB0byBjb25zaWRlciBTSUdJTlQgYXMgd2Vs bA0KPmFzIFNJR1RSQVAuIEhvd2V2ZXIsIGl0IHNlZW1zIHRvIG1lIHRoYXQg ZXZlbiB0aG9zZSB0d28gYXJlIG5vdCB0aGUNCj4qb25seSogY2FzZXMgdGhh dCBjYW4gY2F1c2UgIndhaXQiIHRvIHJldHVybiAtIGRvZXNuJ3QgKmFueSog c2lnbmFsDQo+KHBvdGVudGlhbGx5KSB0cmlnZ2VyIGEgcHRyYWNlIGludGVy Y2VwdCAoY2F1c2luZyB3YWl0IHRvIHJldHVybik/DQoNCj5CdXQgdGhhdCdz IHByb2JhYmx5IGEgbW9yZSBnZW5lcmFsIHByb2JsZW0sIGFuZCB3b3VsZG4n dCBvY2N1ciBpbg0KPnRoaXMgc2ltcGxlIHRlc3QgY2FzZS4NCg0KRXhhY3Rs eS4gU28gSSB0cmllZCBkZWJ1Z2dpbmcgZmV3IGV4YW1wbGVzIGNhdXNpbmcg YSBmZXcgb3RoZXIgc2lnbmFscyBhcyBtZW50aW9uZWQgaW4gdGhpcyBkb2N1 bWVudCBbaHR0cHM6Ly93d3cuaWJtLmNvbS9kb2NzL2VuL3Nkay1qYXZhLXRl Y2hub2xvZ3kvOD90b3BpYz1yZWZlcmVuY2Utc2lnbmFsLWhhbmRsaW5nXS4g SW4gQUlYIHdlIGhhdmUgbW9zdCBvZiB0aGVtIG1lbnRpb25lZCBpbiB0aGUg bGluay4gSXQgZG9lcyBub3QgYmxvY2sgdXMgZnJvbSBkb2luZyB0aGluZ3Mg b3IgY3Jhc2hlcyBpbmNhc2Ugb2YgYSBzZWdtZW50IGZhdWx0IHNpZ25hbCBb ZnJvbSBvdXIgZGVidWdnZXIgY29kZV0uIEFib3J0IGFsc28gd29ya3MgZmlu ZS4gTGV0IG1lIGtub3cgd2hhdCB5b3UgdGhpbmsuDQoNCg0KDQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQpQcm9ncmFtMTotIFtDcmVkaXRzIGdkYi50aHJlYWRz L2NvbnRpbnVvdXMtcGVuZGluZy5jXQ0KDQoNCiNpbmNsdWRlIDxzdGRpby5o Pg0KDQojaW5jbHVkZSA8dW5pc3RkLmg+DQoNCiNpbmNsdWRlIDxzdGRsaWIu aD4NCg0KI2luY2x1ZGUgPHB0aHJlYWQuaD4NCg0KI2luY2x1ZGUgPGFzc2Vy dC5oPg0KDQoNCnB0aHJlYWRfYmFycmllcl90IGJhcnJpZXI7DQoNCg0KI2Rl ZmluZSBOVU1fVEhSRUFEUyAzDQoNCg0Kdm9pZCAqDQoNCnRocmVhZF9mdW5j dGlvbiAodm9pZCAqYXJnKQ0KDQp7DQoNCiAgLyogVGhpcyBlbnN1cmVzIHRo YXQgdGhlIGJyZWFrcG9pbnQgaXMgb25seSBoaXQgYWZ0ZXIgYm90aCB0aHJl YWRzDQoNCiAgICAgYXJlIGNyZWF0ZWQsIHNvIHRoZSB0ZXN0IGNhbiBhbHdh eXMgc3dpdGNoIHRvIHRoZSBub24tZXZlbnQNCg0KICAgICB0aHJlYWQgd2hl biB0aGUgYnJlYWtwb2ludCB0cmlnZ2Vycy4gICovDQoNCiAgcHRocmVhZF9i YXJyaWVyX3dhaXQgKCZiYXJyaWVyKTsNCg0KDQogIHdoaWxlICgxKTsgLyog YnJlYWsgaGVyZSAqLw0KDQp9DQoNCg0KaW50DQoNCm1haW4gKHZvaWQpDQoN CnsNCg0KICBpbnQgaTsNCg0KDQogIGFsYXJtICgzMDApOw0KDQoNCiAgcHRo cmVhZF9iYXJyaWVyX2luaXQgKCZiYXJyaWVyLCBOVUxMLCBOVU1fVEhSRUFE Uyk7DQoNCg0KICBmb3IgKGkgPSAwOyBpIDwgTlVNX1RIUkVBRFM7IGkrKykN Cg0KICAgIHsNCg0KICAgICAgcHRocmVhZF90IHRocmVhZDsNCg0KICAgICAg aW50IHJlczsNCg0KDQogICAgICByZXMgPSBwdGhyZWFkX2NyZWF0ZSAoJnRo cmVhZCwgTlVMTCwNCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo cmVhZF9mdW5jdGlvbiwgTlVMTCk7DQoNCiAgICAgIGFzc2VydCAocmVzID09 IDApOw0KDQogICAgfQ0KDQoNCiAgd2hpbGUgKDEpDQoNCiAgICBzbGVlcCAo MSk7DQoNCg0KICByZXR1cm4gMDsNCg0KfQ0KDQoNCg0KLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KT3V0cHV0MTotIFNpbmdsZSBwcm9jZXNzDQoNCg0KUmVhZGlu ZyBzeW1ib2xzIGZyb20gL2hvbWUvYWRpdHlhL2dkYl90ZXN0cy9jb250aW51 ZS1wZW5kaW5nLXN0YXR1cy4uLg0KDQooZ2RiKSByDQoNClN0YXJ0aW5nIHBy b2dyYW06IC9ob21lL2FkaXR5YS9nZGJfdGVzdHMvY29udGludWUtcGVuZGlu Zy1zdGF0dXMNCg0KXkNbTmV3IFRocmVhZCAyNThdDQoNCltOZXcgVGhyZWFk IDUxNV0NCg0KW05ldyBUaHJlYWQgNzcyXQ0KDQoNClRocmVhZCAzIHJlY2Vp dmVkIHNpZ25hbCBTSUdJTlQsIEludGVycnVwdC4NCg0KW1N3aXRjaGluZyB0 byBUaHJlYWQgNTE1XQ0KDQp0aHJlYWRfZnVuY3Rpb24gKGFyZz0weDApDQoN CiAgICBhdCAvaG9tZS9hZGl0eWEvZ2RiX3Rlc3RzL2NvbnRpbnVlLXBlbmRp bmctc3RhdHVzLmM6MzYNCg0KMzYgICAgICAgIHdoaWxlICgxKTsgLyogYnJl YWsgaGVyZSAqLw0KDQooZ2RiKSBpbmZvIHRocmVhZHMNCg0KICBJZCAgIFRh cmdldCBJZCAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUNCg0KICAx ICAgIFRocmVhZCAxICh0aWQgMjQ4Mzg1ODUsIHJ1bm5pbmcpICAgd2Fybmlu ZzogKEludGVybmFsIGVycm9yOiBwYyAweDAgaW4gcmVhZCBpbiBwc3ltdGFi LCBidXQgbm90IGluIHN5bXRhYi4pDQoNCg0KICAyICAgIFRocmVhZCAyNTgg KHRpZCAyMzEzNDYzNSwgcnVubmluZykgdGhyZWFkX2Z1bmN0aW9uIChhcmc9 d2FybmluZzogKEludGVybmFsIGVycm9yOiBwYyAweDAgaW4gcmVhZCBpbiBw c3ltdGFiLCBidXQgbm90IGluIHN5bXRhYi4pDQoNCg0KMHgwKQ0KDQogICAg YXQgL2hvbWUvYWRpdHlhL2dkYl90ZXN0cy9jb250aW51ZS1wZW5kaW5nLXN0 YXR1cy5jOjM2DQoNCiogMyAgICBUaHJlYWQgNTE1ICh0aWQgMzAxNDY4Njcs IHJ1bm5pbmcpIHRocmVhZF9mdW5jdGlvbiAoYXJnPXdhcm5pbmc6IChJbnRl cm5hbCBlcnJvcjogcGMgMHgwIGluIHJlYWQgaW4gcHN5bXRhYiwgYnV0IG5v dCBpbiBzeW10YWIuKQ0KDQoNCjB4MCkNCg0KICAgIGF0IC9ob21lL2FkaXR5 YS9nZGJfdGVzdHMvY29udGludWUtcGVuZGluZy1zdGF0dXMuYzozNg0KDQog IDQgICAgVGhyZWFkIDc3MiAodGlkIDI3ODUzMTY1LCBydW5uaW5nKSB0aHJl YWRfZnVuY3Rpb24gKGFyZz13YXJuaW5nOiAoSW50ZXJuYWwgZXJyb3I6IHBj IDB4MCBpbiByZWFkIGluIHBzeW10YWIsIGJ1dCBub3QgaW4gc3ltdGFiLikN Cg0KDQoweDApDQoNCiAgICBhdCAvaG9tZS9hZGl0eWEvZ2RiX3Rlc3RzL2Nv bnRpbnVlLXBlbmRpbmctc3RhdHVzLmM6MzYNCg0KLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNClByb2dyYW0gMjotIE11bHRpIHBy b2Nlc3MgQ29kZQ0KDQoNCiNpbmNsdWRlIDxzdGRpby5oPg0KDQojaW5jbHVk ZSA8dW5pc3RkLmg+DQoNCiNpbmNsdWRlIDxzdGRsaWIuaD4NCg0KI2luY2x1 ZGUgPHB0aHJlYWQuaD4NCg0KI2luY2x1ZGUgPGFzc2VydC5oPg0KDQoNCnB0 aHJlYWRfYmFycmllcl90IGJhcnJpZXI7DQoNCg0KI2RlZmluZSBOVU1fVEhS RUFEUyAyDQoNCg0Kdm9pZCAqDQoNCnRocmVhZF9mdW5jdGlvbiAodm9pZCAq YXJnKQ0KDQp7DQoNCiAgLyogVGhpcyBlbnN1cmVzIHRoYXQgdGhlIGJyZWFr cG9pbnQgaXMgb25seSBoaXQgYWZ0ZXIgYm90aCB0aHJlYWRzDQoNCiAgICAg YXJlIGNyZWF0ZWQsIHNvIHRoZSB0ZXN0IGNhbiBhbHdheXMgc3dpdGNoIHRv IHRoZSBub24tZXZlbnQNCg0KICAgICB0aHJlYWQgd2hlbiB0aGUgYnJlYWtw b2ludCB0cmlnZ2Vycy4gICovDQoNCg0KICBwdGhyZWFkX2JhcnJpZXJfd2Fp dCAoJmJhcnJpZXIpOw0KDQogIHBpZF90IGNoaWxkOw0KDQoNCiAgY2hpbGQg PSBmb3JrICgpOw0KDQogIGlmIChjaGlsZCA+IDApDQoNCiAgICBwcmludGYg KCJJIGFtIHBhcmVudCBcbiIpOw0KDQogIGVsc2V7DQoNCiAgICBwcmludGYg KCIgSWFtIGNoaWxkIFxuIik7DQoNCiAgICBjaGlsZCA9IGZvcmsgKCk7DQoN CiAgICBpZiAoY2hpbGQgPiAwKQ0KDQogICAgICBwcmludGYgKCJGcm9tIGNo aWxkIEkgYmVjYW1lIGEgcGFyZW50IFxuIik7DQoNCiAgICBlbHNlDQoNCiAg ICAgIHByaW50ZiAoIkkgYW0gZ3JhbmRjaGlsZCBcbiIpOw0KDQogIH0NCg0K ICB3aGlsZSAoMSk7IC8qIGJyZWFrIGhlcmUgKi8NCg0KfQ0KDQoNCmludA0K DQptYWluICh2b2lkKQ0KDQp7DQoNCiAgaW50IGk7DQoNCg0KICBhbGFybSAo MzAwKTsNCg0KDQogIHB0aHJlYWRfYmFycmllcl9pbml0ICgmYmFycmllciwg TlVMTCwgTlVNX1RIUkVBRFMpOw0KDQoNCiAgZm9yIChpID0gMDsgaSA8IE5V TV9USFJFQURTOyBpKyspDQoNCiAgICB7DQoNCiAgICAgIHB0aHJlYWRfdCB0 aHJlYWQ7DQoNCiAgICAgIGludCByZXM7DQoNCg0KICAgICAgcmVzID0gcHRo cmVhZF9jcmVhdGUgKCZ0aHJlYWQsIE5VTEwsDQoNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0aHJlYWRfZnVuY3Rpb24sIE5VTEwpOw0KDQogICAg ICBhc3NlcnQgKHJlcyA9PSAwKTsNCg0KICAgIH0NCg0KDQogIHdoaWxlICgx KQ0KDQogIHsNCg0KICAgIHNsZWVwICgxNSk7DQoNCiAgICBicmVhazsNCg0K ICB9DQoNCg0KICByZXR1cm4gMDsNCg0KfQ0KDQoNCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0NCg0KT3V0cHV0IDI6LSBXaXRoIGRldGFjaC1vbi1m b3JrIG9uDQoNCg0KUmVhZGluZyBzeW1ib2xzIGZyb20gL2hvbWUvYWRpdHlh L2dkYl90ZXN0cy91bHRpbWF0ZS1tdWx0aS10aHJlYWQtZm9yay4uLg0KDQoo Z2RiKSByDQoNClN0YXJ0aW5nIHByb2dyYW06IC9ob21lL2FkaXR5YS9nZGJf dGVzdHMvdWx0aW1hdGUtbXVsdGktdGhyZWFkLWZvcmsNCg0KW05ldyBUaHJl YWQgMjU4XQ0KDQpbTmV3IFRocmVhZCA1MTVdDQoNCltEZXRhY2hpbmcgYWZ0 ZXIgZm9yayBmcm9tIGNoaWxkIHByb2Nlc3MgODMyMzU3Ml0NCg0KIElhbSBj aGlsZA0KDQpJIGFtIGdyYW5kY2hpbGQNCg0KRnJvbSBjaGlsZCBJIGJlY2Ft ZSBhIHBhcmVudA0KDQpJIGFtIHBhcmVudA0KDQpbRGV0YWNoaW5nIGFmdGVy IGZvcmsgZnJvbSBjaGlsZCBwcm9jZXNzIDExNjY1ODg0XQ0KDQogSWFtIGNo aWxkDQoNCkkgYW0gZ3JhbmRjaGlsZA0KDQpGcm9tIGNoaWxkIEkgYmVjYW1l IGEgcGFyZW50DQoNCkkgYW0gcGFyZW50DQoNCl5DDQoNClRocmVhZCAyIHJl Y2VpdmVkIHNpZ25hbCBTSUdJTlQsIEludGVycnVwdC4NCg0KW1N3aXRjaGlu ZyB0byBUaHJlYWQgMjU4XQ0KDQp0aHJlYWRfZnVuY3Rpb24gKGFyZz0weDAp DQoNCiAgICBhdCAvaG9tZS9hZGl0eWEvZ2RiX3Rlc3RzL3VsdGltYXRlLW11 bHRpLXRocmVhZC1mb3JrLmM6MzINCg0KMzIgICAgICAgIHdoaWxlICgxKTsg LyogYnJlYWsgaGVyZSAqLw0KDQooZ2RiKSBpbmZvIHRocmVhZHMNCg0KICBJ ZCAgIFRhcmdldCBJZCAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWUN Cg0KICAxICAgIFRocmVhZCAxICh0aWQgMjcyNjMyNjksIHJ1bm5pbmcpICAg d2FybmluZzogKEludGVybmFsIGVycm9yOiBwYyAweDAgaW4gcmVhZCBpbiBw c3ltdGFiLCBidXQgbm90IGluIHN5bXRhYi4pDQoNCg0KKiAyICAgIFRocmVh ZCAyNTggKHRpZCAyODcwNTA3NSwgcnVubmluZykgdGhyZWFkX2Z1bmN0aW9u IChhcmc9d2FybmluZzogKEludGVybmFsIGVycm9yOiBwYyAweDAgaW4gcmVh ZCBpbiBwc3ltdGFiLCBidXQgbm90IGluIHN5bXRhYi4pDQoNCg0KMHgwKQ0K DQogICAgYXQgL2hvbWUvYWRpdHlhL2dkYl90ZXN0cy91bHRpbWF0ZS1tdWx0 aS10aHJlYWQtZm9yay5jOjMyDQoNCiAgMyAgICBUaHJlYWQgNTE1ICh0aWQg Mjc4NTMxNjksIHJ1bm5pbmcpIHRocmVhZF9mdW5jdGlvbiAoYXJnPXdhcm5p bmc6IChJbnRlcm5hbCBlcnJvcjogcGMgMHgwIGluIHJlYWQgaW4gcHN5bXRh YiwgYnV0IG5vdCBpbiBzeW10YWIuKQ0KDQoNCjB4MCkNCg0KICAgIGF0IC9o b21lL2FkaXR5YS9nZGJfdGVzdHMvdWx0aW1hdGUtbXVsdGktdGhyZWFkLWZv cmsuYzozMg0KDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0K T3V0cHV0IDM6LSBXaXRoIGRldGFjaC1vbi1mb3JrIG9mZg0KDQoNClJlYWRp bmcgc3ltYm9scyBmcm9tIC9ob21lL2FkaXR5YS9nZGJfdGVzdHMvdWx0aW1h dGUtbXVsdGktdGhyZWFkLWZvcmsuLi4NCg0KKGdkYikgc2V0IGRldGFjaC1v bi1mb3JrIG9mZg0KDQooZ2RiKSByDQoNClN0YXJ0aW5nIHByb2dyYW06IC9o b21lL2FkaXR5YS9nZGJfdGVzdHMvdWx0aW1hdGUtbXVsdGktdGhyZWFkLWZv cmsNCg0KW05ldyBUaHJlYWQgMjU4XQ0KDQpbTmV3IFRocmVhZCA1MTVdDQoN CltOZXcgaW5mZXJpb3IgMiAoUHJvY2VzcyAxNTQ2NjkyOCldDQoNCltOZXcg aW5mZXJpb3IgMyAoUHJvY2VzcyAxMzg5NDA0OCldDQoNCkkgYW0gcGFyZW50 DQoNCkkgYW0gcGFyZW50DQoNCl5DDQoNClRocmVhZCAxLjEgcmVjZWl2ZWQg c2lnbmFsIFNJR0lOVCwgSW50ZXJydXB0Lg0KDQpbU3dpdGNoaW5nIHRvIFRo cmVhZCAxXQ0KDQoweGQwNTk1ZmIwIGluIF9wX25zbGVlcCAoKSBmcm9tIC91 c3IvbGliL2xpYnB0aHJlYWQuYShzaHJfeHBnNS5vKQ0KDQooZ2RiKSBpbmZv IHRocmVhZHMNCg0KICBJZCAgIFRhcmdldCBJZCAgICAgICAgIEZyYW1lDQoN CiogMS4xICBUaHJlYWQgMSAgICAgICAgICAweGQwNTk1ZmIwIGluIF9wX25z bGVlcCAoKQ0KDQogICBmcm9tIC91c3IvbGliL2xpYnB0aHJlYWQuYShzaHJf eHBnNS5vKQ0KDQogIDEuMiAgVGhyZWFkIDI1OCAgICAgICAgMHhkMDU5NWZi MCBpbiBfcF9uc2xlZXAgKCkNCg0KICAgZnJvbSAvdXNyL2xpYi9saWJwdGhy ZWFkLmEoc2hyX3hwZzUubykNCg0KICAxLjMgIFRocmVhZCA1MTUgICAgICAg IDB4ZDA1OTVmYjAgaW4gX3BfbnNsZWVwICgpDQoNCiAgIGZyb20gL3Vzci9s aWIvbGlicHRocmVhZC5hKHNocl94cGc1Lm8pDQoNCiAgMi4xICBQcm9jZXNz IDE1NDY2OTI4ICAweGQwNTk0ZmM4IGluID8/ICgpDQoNCiAgMy4xICBQcm9j ZXNzIDEzODk0MDQ4ICAweGQwNTk0ZmM4IGluID8/ICgpDQoNCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoN Ck91dHB1dCA0Oi0gZGV0YWNoIGZvcmsgb2ZmIGFuZCBmb2xsb3dpbmcgY2hp bGQNCg0KDQpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvaG9tZS9hZGl0eWEvZ2Ri X3Rlc3RzL3VsdGltYXRlLW11bHRpLXRocmVhZC1mb3JrLi4uDQoNCihnZGIp IHNldCBkZXRhY2gtb24tZm9yayBvZmYNCg0KKGdkYikgc2V0IGZvbGxvdy1m b3JrLW1vZGUgY2hpbGQNCg0KKGdkYikgcg0KDQpTdGFydGluZyBwcm9ncmFt OiAvaG9tZS9hZGl0eWEvZ2RiX3Rlc3RzL3VsdGltYXRlLW11bHRpLXRocmVh ZC1mb3JrDQoNCltOZXcgVGhyZWFkIDI1OF0NCg0KW05ldyBUaHJlYWQgNTE1 XQ0KDQpbQXR0YWNoaW5nIGFmdGVyIFRocmVhZCA1MTUgZm9yayB0byBjaGls ZCBQcm9jZXNzIDEzODk0MDUwXQ0KDQpbTmV3IGluZmVyaW9yIDIgKFByb2Nl c3MgMTM4OTQwNTApXQ0KDQogSWFtIGNoaWxkDQoNCltBdHRhY2hpbmcgYWZ0 ZXIgUHJvY2VzcyAxMzg5NDA1MCBmb3JrIHRvIGNoaWxkIFByb2Nlc3MgMTEw MTA0NzRdDQoNCltOZXcgaW5mZXJpb3IgMyAoUHJvY2VzcyAxMTAxMDQ3NCld DQoNCkkgYW0gZ3JhbmRjaGlsZA0KDQpeQ1JlYWRpbmcgc3ltYm9scyBmcm9t IC9ob21lL2FkaXR5YS9nZGJfdGVzdHMvdWx0aW1hdGUtbXVsdGktdGhyZWFk LWZvcmsuLi4NCg0KDQpUaHJlYWQgMy4xIHJlY2VpdmVkIHNpZ25hbCBTSUdJ TlQsIEludGVycnVwdC4NCg0KW1N3aXRjaGluZyB0byBQcm9jZXNzIDExMDEw NDc0XQ0KDQp0aHJlYWRfZnVuY3Rpb24gKGFyZz0weDApDQoNCiAgICBhdCAv aG9tZS9hZGl0eWEvZ2RiX3Rlc3RzL3VsdGltYXRlLW11bHRpLXRocmVhZC1m b3JrLmM6MzINCg0KMzIgICAgICAgIHdoaWxlICgxKTsgLyogYnJlYWsgaGVy ZSAqLw0KDQooZ2RiKSBpbmZvIHRocmVhZHMNCg0KICBJZCAgIFRhcmdldCBJ ZCAgICAgICAgIEZyYW1lDQoNCiAgMS4xICBUaHJlYWQgMSAgICAgICAgICAw eGQwNTk0ZmM4IGluIF9zaWdzZXRtYXNrICgpDQoNCiAgIGZyb20gL3Vzci9s aWIvbGlicHRocmVhZC5hKHNocl94cGc1Lm8pDQoNCiAgMS4yICBUaHJlYWQg MjU4ICAgICAgICAweGQwNTk0ZmM4IGluIF9zaWdzZXRtYXNrICgpDQoNCiAg IGZyb20gL3Vzci9saWIvbGlicHRocmVhZC5hKHNocl94cGc1Lm8pDQoNCiAg MS4zICBUaHJlYWQgNTE1ICAgICAgICAweGQwNTk0ZmM4IGluIF9zaWdzZXRt YXNrICgpDQoNCiAgIGZyb20gL3Vzci9saWIvbGlicHRocmVhZC5hKHNocl94 cGc1Lm8pDQoNCiAgMi4xICBQcm9jZXNzIDEzODk0MDUwICAweGQwNTk0ZmM4 IGluID8/ICgpDQoNCiogMy4xICBQcm9jZXNzIDExMDEwNDc0ICB0aHJlYWRf ZnVuY3Rpb24gKGFyZz13YXJuaW5nOiAoSW50ZXJuYWwgZXJyb3I6IHBjIDB4 MCBpbiByZWFkIGluIHBzeW10YWIsIGJ1dCBub3QgaW4gc3ltdGFiLikNCg0K DQoweDApDQoNCiAgICBhdCAvaG9tZS9hZGl0eWEvZ2RiX3Rlc3RzL3VsdGlt YXRlLW11bHRpLXRocmVhZC1mb3JrLmM6MzINCg0KDQpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXw0KRnJvbTogVWxyaWNoIFdlaWdhbmQgPFVs cmljaC5XZWlnYW5kQGRlLmlibS5jb20+DQpTZW50OiAzMCBOb3ZlbWJlciAy MDIyIDIwOjI3DQpUbzogc2ltYXJrQHNpbWFyay5jYSA8c2ltYXJrQHNpbWFy ay5jYT47IEFkaXR5YSBLYW1hdGgxIDxBZGl0eWEuS2FtYXRoMUBpYm0uY29t PjsgZ2RiLXBhdGNoZXNAc291cmNld2FyZS5vcmcgPGdkYi1wYXRjaGVzQHNv dXJjZXdhcmUub3JnPg0KQ2M6IFNhbmdhbWVzaCBNYWxsYXl5YSA8c2FuZ2Ft ZXNoLnN3YW15QGluLmlibS5jb20+DQpTdWJqZWN0OiBSZTogW1BBVENIXSAw MDAxLUZpeC1tdWx0aS10aHJlYWQtZGVidWctYnVnLWluLUFJWC5wYXRjaA0K DQpBZGl0eWEgS2FtYXRoMSA8QWRpdHlhLkthbWF0aDFAaWJtLmNvbT4gd3Jv dGU6DQoNCj5CZWZvcmUgd2UgaGFkIGFuIGV4dHJhIHRocmVhZCAncHJvY2Vz cyAxMDAnIGFwYXJ0IGZyb20gJ3RocmVhZCAxJy4NCj5TbywgaW4gY2FzZSBz b21lb25lIGludGVycnVwdGVkIGEgdGhyZWFkIHdpdGggY3RybCtjLi4gSW4g dGhlDQo+cGRfdXBkYXRlICgpIGV2ZW4gaWYgd2UgZG9uJ3QgaGF2ZSB0aHJl YWQgd2hvIHNpZ25hbGxlZCB0aGlzIGludGVycnVwdA0KPndoZW4gd2UgcmV0 dXJuIHB0aWRfdCAocGlkKSBpdCB3YXMgZmluZS4gQnV0IG5vdyB3aXRoIG5v ICdwcm9jZXNzIDEwMCcNCj5hbmQgb25seSAndGhyZWFkIDEnLCB3ZSBuZWVk IHRvIHRha2UgY2FyZSBvZiBpbnRlcnJ1cHQgYXMgd2VsbCwNCj5vdGhlcndp c2UgR0RCIGNvcmUgd2lsbCB0YWtlIHB0aWRfdCgxMDApIGFzIGEgbmV3IHBy b2Nlc3MuDQo+U28gdGhlIGNoYW5nZQ0KPisgICAgICBpZiAodGhyaW5mLnRp X2N1cnNpZyA9PSBTSUdUUkFQIHx8IHRocmluZi50aV9jdXJzaWcgPT0gU0lH SU5UKQ0KDQpIbW0uICBTbyB3aGVuICJ3YWl0IiByZXR1cm5zLCBpdCBuZWVk cyB0byBkZXRlcm1pbmUgd2hpY2ggdGhyZWFkDQp0cmlnZ2VyZWQgdGhlIGV2 ZW50IHRoYXQgY2F1c2VkIHB0cmFjZSB0byBzdG9wLiAgT24gTGludXgsICJ3 YWl0Ig0Kd2lsbCBhY3R1YWxseSByZXR1cm4gdGhlIExXUCBvZiB0aGF0IHRo cmVhZCwgc28gaXQgY2FuIGJlIGRpcmVjdGx5DQp1c2VkLiAgSXQgc2VlbXMg b24gQUlYLCAid2FpdCIgb25seSByZXR1cm5zIGEgUElELCBhbmQgeW91IGRv IG5vdA0KaW1tZWRpYXRlbHkga25vdyB3aGljaCB0aHJlYWQgY2F1c2VkIHRo ZSBldmVudD8NCg0KSW4gdGhhdCBjYXNlLCBJIGNhbiBzZWUgd2h5IHlvdSdk IGhhdmUgdG8gY29uc2lkZXIgU0lHSU5UIGFzIHdlbGwNCmFzIFNJR1RSQVAu IEhvd2V2ZXIsIGl0IHNlZW1zIHRvIG1lIHRoYXQgZXZlbiB0aG9zZSB0d28g YXJlIG5vdCB0aGUNCipvbmx5KiBjYXNlcyB0aGF0IGNhbiBjYXVzZSAid2Fp dCIgdG8gcmV0dXJuIC0gZG9lc24ndCAqYW55KiBzaWduYWwNCihwb3RlbnRp YWxseSkgdHJpZ2dlciBhIHB0cmFjZSBpbnRlcmNlcHQgKGNhdXNpbmcgd2Fp dCB0byByZXR1cm4pPw0KDQpCdXQgdGhhdCdzIHByb2JhYmx5IGEgbW9yZSBn ZW5lcmFsIHByb2JsZW0sIGFuZCB3b3VsZG4ndCBvY2N1ciBpbg0KdGhpcyBz aW1wbGUgdGVzdCBjYXNlLg0KDQo+SW4gdGhpcyBjYXNlIGlmIHdlIHJldHVy biBhIHB0aWRfdCAocGlkKSB0aGVuIGdkYiBjb3JlIHRyZWF0cyBpdA0KPmFz IGEgbmV3IHByb2Nlc3Mgc2luY2Ugb3VyIHBhcmVudCB0aHJlYWQgaXMgcHRo cmVhZGVkIEdEQiBjb3JlDQo+b25seSBrbm93cyB0aHJlYWRzIGxpa2UgcHRp ZF90IChwaWQsIHRpZCwgcHRoaWQpIGFuZCBub3QNCj5wdGlkX3QgKHBpZCku IEluIG9yZGVyIHRvIGF2b2lkIHRoaXMsIHRoZSBwcm9wb3NlZCBwYXRjaCB1 c2VzIGENCj5mdW5jdGlvbiBjYWxsIGZpbmRfdGhlX3JldHVybl9wdGlkICgp IHRvIGZpZ3VyZSBvdXQgdGhlIHNhbWUuDQo+VGhlIGNoYW5nZXMgbGlrZSBi ZWxvdyBhcmUgZm9yIHRoaXMgcmVhc29uLg0KPg0KPm91cnN0YXR1cy0+c2V0 X2ZvcmtlZCAocHRpZF90IChwaWQpKTsNCj4t4oCC4oCC4oCC4oCC4oCC4oCC 4oCC4oCC4oCC4oCC4oCCICByZXR1cm4gcHRpZF90IChwYXJlbnRfcGlkKTsN Cj4r4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCC4oCCICByZXR1cm4g ZmluZF90aGVfcmV0dXJuX3B0aWQgKHBhcmVudF9waWQpOw0KPg0KPktpbmRs eSBub3RlIHRoYXQgdGhlIGNvbnRyb2wgd2lsbCBhbHdheXMgbm90IGNvbWUg ZnJvbSBhaXgtdGhyZWFkLmMNCj5mb3Igc3VjaCBldmVudHMuIEhlbmNlLCB3 ZSBjYW5ub3QgdGFrZSBjYXJlIG9mIHRoZSBzYW1lIHRoZXJlLA0KPnRob3Vn aCBpdCB3aWxsIGJlIGEgcmVsaWVmIGlmIHdlIGNhbiBkbyB0aGF0Lg0KDQpJ J20gbm90IHN1cmUgd2h5IGl0IGlzIG5lY2Vzc2FyeSB0byBoYW5kbGUgdGhp cyBpbiB0aGUgcHJvY2VzcyBsYXllcg0KKHJzNjAwMC1haXgtbmF0LmMpIGlu c3RlYWQgb2YgdGhlIHRocmVhZCBsYXllciAoYWl4LXRocmVhZC5jKS4NCldo YXQgc3BlY2lmaWNhbGx5IGJyZWFrcyBpZiB5b3UgZG8gbm90IGhhdmUgdGhl c2UgcnM2MDAwLWFpeC1uYXQuYw0KY2hhbmdlcz8NCg0KSWYgeW91ICpkbyog bmVlZCB0byBoYW5kbGUgTFdQcyAoa2VybmVsIHRocmVhZCBJRHMpIGluIHRo ZSBwcm9jZXNzDQpsYXllciAodGhpcyBjYW4gYmUgYSByZWFzb25hYmxlIGNo b2ljZSwgYW5kIGl0IGRvbmUgYnkgc2V2ZXJhbCBvdGhlcg0KbmF0aXZlIHRh cmdldHMpLCB0aGVuIGl0IHNob3VsZCBiZSAqY29uc2lzdGVudCosIGFuZCAq YWxsKiBMV1AgaGFuZGxpbmcNCnNob3VsZCBiZSBpbiB0aGUgcHJvY2VzcyBs YXllci4gSW4gcGFydGljdWxhciwgdW5kZXIgbm8gY2lyY3Vtc3RhbmNlcw0K ZG9lcyBpdCBtYWtlIHNlbnNlIHRvIGR1cGxpY2F0ZSB0aGUgImZpbmQgY3Vy cmVudC9zaWduYWxsZWQgdGhyZWFkIg0KY29kZSBpbiAqYm90aCogdGhlIHBy b2Nlc3MgYW55IHRocmVhZCBsYXllcnMuDQoNCj5bU3dpdGNoaW5nIHRvIHBy b2Nlc3MgMTY3Nzc2MjBdDQoNClRoaXMgb3V0cHV0cyBpbmZlcmlvcl9wdGlk IC4uLg0KDQo+MHhkMDU5NWZiMCBpbiBfcF9uc2xlZXAgKCkgZnJvbSAvdXNy L2xpYi9saWJwdGhyZWFkLmEoc2hyX3hwZzUubykNCj4oZ2RiKSBpbmZvIHRo cmVhZHMNCj4gIElkICAgVGFyZ2V0IElkICAgICAgICAgRnJhbWUNCj4qIDEu MSAgcHJvY2VzcyAxNjc3NzYyMCAgMHhkMDU5NWZiMCBpbiBfcF9uc2xlZXAg KCkNCj4gICBmcm9tIC91c3IvbGliL2xpYnB0aHJlYWQuYShzaHJfeHBnNS5v KQ0KPiAgMS4yICBwcm9jZXNzIDE2Nzc3NjIwICAweGQwNTk1ZmIwIGluIF9w X25zbGVlcCAoKQ0KPiAgIGZyb20gL3Vzci9saWIvbGlicHRocmVhZC5hKHNo cl94cGc1Lm8pDQo+ICAxLjMgIHByb2Nlc3MgMTY3Nzc2MjAgIDB4ZDA1OTVm YjAgaW4gX3BfbnNsZWVwICgpDQo+ICAgZnJvbSAvdXNyL2xpYi9saWJwdGhy ZWFkLmEoc2hyX3hwZzUubykNCj4gIDIuMSAgcHJvY2VzcyA4MzIzNTcwICAg MHhkMDU5NGZjOCBpbiA/PyAoKQ0KPiAgMy4xICBwcm9jZXNzIDE3OTU3MTcy ICAweGQwNTk0ZmM4IGluID8/ICgpDQoNCi4uLiBhbmQgdGhpcyBvdXRwdXRz IHRoZSBwdGlkIHZhbHVlcyBmb3IgdGhvc2UgdGhyZWFkcy4NCg0KSWYgaXQg c2F5cyAicHJvY2VzcyAuLi4iLCB0aGVuIHRob3NlIHB0aWQgdmFsdWVzIGhh dmUgbm90DQpwcm9wZXJseSBiZWVuIHN3aXRjaGVkIG92ZXIgdG8gdGhlIChw aWQsIGx3cCwgdGlkKSBmb3JtYXQuDQoNCllvdSBzaG91bGQgdmVyaWZ5IHRo YXQgdGhlIHN5bmNfdGhyZWFkbGlzdHMgY29kZSBoYW5kbGVzDQphbGwgbXVs dGktcHJvY2VzcyBjYXNlcyBjb3JyZWN0bHkuICBJIGhhdmVuJ3QgbG9va2Vk IGF0DQp0aGlzIGluIGRldGFpbCwgYnV0IGFyZSB5b3Ugc3VyZSB0aGF0IGhl cmU6DQoNCkBAIC04NDEsOCArODI5LDIyIEBAIHN5bmNfdGhyZWFkbGlzdHMg KGludCBwaWQpDQogICAgICAgICAgICAgfQ0KICAgICAgICAgICBlbHNlIGlm IChjbXBfcmVzdWx0ID4gMCkNCiAgICAgICAgICAgICB7DQotICAgICAgICAg ICAgIGRlbGV0ZV90aHJlYWQgKGdidWZbZ2ldKTsNCi0gICAgICAgICAgICAg Z2krKzsNCisgICAgICAgICAgICAgaWYgKGdwdGlkLmlzX3BpZCAoKSkNCisg ICAgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgICB0aHJlYWRfY2hh bmdlX3B0aWQgKHByb2NfdGFyZ2V0LCBncHRpZCwgcHB0aWQpOw0KDQp5b3Ug bmV2ZXIgYWNjaWRlbnRhbGx5IHN3aXRjaCB0aGUgKnBpZCogcGFydCAoaWYg ImdwdGlkIg0KYmVsb3dzIHRvIGEgZGlmZmVyZW50IHBpZCB0aGFuICJwcHRp ZCIpPw0KDQpCeWUsDQpVbHJpY2gNCg0K --_000_CH2PR15MB354486F155F5CC97501D056DD6179CH2PR15MB3544namp_-- --_004_CH2PR15MB354486F155F5CC97501D056DD6179CH2PR15MB3544namp_ Content-Type: application/octet-stream; name="0001-Fix-multi-thread-debug-bug-in-AIX.patch" Content-Description: 0001-Fix-multi-thread-debug-bug-in-AIX.patch Content-Disposition: attachment; filename="0001-Fix-multi-thread-debug-bug-in-AIX.patch"; size=8565; creation-date="Fri, 02 Dec 2022 07:45:28 GMT"; modification-date="Fri, 02 Dec 2022 07:45:44 GMT" Content-Transfer-Encoding: base64 RnJvbSBmMmFlMTZmMmYzOTI5MTk4MTE0MDBhYzFmMWM4M2ExZTc2ZWMwMmRm IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBZGl0eWEgVmlkeWFk aGFyIEthbWF0aCA8QWRpdHlhLkthbWF0aDFAaWJtLmNvbT4KRGF0ZTogRnJp LCAyIERlYyAyMDIyIDAwOjU5OjU1IC0wNjAwClN1YmplY3Q6IFtQQVRDSF0g Rml4IG11bHRpLXRocmVhZCBkZWJ1ZyBidWcgaW4gQUlYCgotLS0KIGdkYi9h aXgtdGhyZWFkLmMgICAgIHwgNjUgKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogZ2RiL3JzNjAwMC1haXgtbmF0LmMgfCA2 NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LQogMiBmaWxlcyBjaGFuZ2VkLCA5NSBpbnNlcnRpb25zKCspLCAzNiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9nZGIvYWl4LXRocmVhZC5jIGIvZ2Ri L2FpeC10aHJlYWQuYwppbmRleCBlNTU2YzE1MzU3Ni4uNDVlMGQ5YzdhZTgg MTAwNjQ0Ci0tLSBhL2dkYi9haXgtdGhyZWFkLmMKKysrIGIvZ2RiL2FpeC10 aHJlYWQuYwpAQCAtNTA4LDE0ICs1MDgsMTMgQEAgcGRjX3JlYWRfZGF0YSAo cHRoZGJfdXNlcl90IHVzZXJfY3VycmVudF9waWQsIHZvaWQgKmJ1ZiwKICAg LyogVGhpcyBpcyBuZWVkZWQgdG8gZWxpbWluYXRlIHRoZSBkZXBlbmRlbmN5 IG9mIGN1cnJlbnQgdGhyZWFkCiAgICAgIHdoaWNoIGlzIG51bGwgc28gdGhh dCB0aHJlYWQgcmVhZHMgdGhlIGNvcnJlY3QgdGFyZ2V0IG1lbW9yeS4gICov CiAgIHsKLSAgICBzY29wZWRfcmVzdG9yZV9jdXJyZW50X3RocmVhZCByZXN0 b3JlX2N1cnJlbnRfdGhyZWFkOworICAgIHNjb3BlZF9yZXN0b3JlIHNhdmVf aW5mZXJpb3JfcHRpZCA9IG1ha2Vfc2NvcGVkX3Jlc3RvcmUgKCZpbmZlcmlv cl9wdGlkKTsKICAgICAvKiBCZWZvcmUgdGhlIGZpcnN0IGluZmVyaW9yIGlz IGFkZGVkLCB3ZSBwYXNzIGluZmVyaW9yX3B0aWQucGlkICgpCiAgICAgICAg ZnJvbSBwZF9lbmFibGUgKCkgd2hpY2ggaXMgMC4gIFRoZXJlIGlzIG5vIG5l ZWQgdG8gc3dpdGNoIHRocmVhZHMKICAgICAgICBkdXJpbmcgZmlyc3QgaW5p dGlhbGlzYXRpb24uICBJbiB0aGUgcmVzdCBvZiB0aGUgY2FsbGJhY2tzIHRo ZQogICAgICAgIGN1cnJlbnQgdGhyZWFkIG5lZWRzIHRvIGJlIGNvcnJlY3Qu ICAqLwogICAgIGlmICh1c2VyX2N1cnJlbnRfcGlkICE9IDApCi0gICAgICBz d2l0Y2hfdG9fdGhyZWFkIChjdXJyZW50X2luZmVyaW9yICgpLT5wcm9jZXNz X3RhcmdldCAoKSwKLQkJCXB0aWRfdCAodXNlcl9jdXJyZW50X3BpZCkpOwor ICAgICAgaW5mZXJpb3JfcHRpZCA9IHB0aWRfdCAodXNlcl9jdXJyZW50X3Bp ZCk7CiAgICAgc3RhdHVzID0gdGFyZ2V0X3JlYWRfbWVtb3J5IChhZGRyLCAo Z2RiX2J5dGUgKikgYnVmLCBsZW4pOwogICB9CiAgIHJldCA9IHN0YXR1cyA9 PSAwID8gUERDX1NVQ0NFU1MgOiBQRENfRkFJTFVSRTsKQEAgLTYzOSwzNiAr NjM4LDI0IEBAIHBjbXAgKGNvbnN0IHZvaWQgKnAxdiwgY29uc3Qgdm9pZCAq cDJ2KQogICByZXR1cm4gcDEtPnB0aGlkIDwgcDItPnB0aGlkID8gLTEgOiBw MS0+cHRoaWQgPiBwMi0+cHRoaWQ7CiB9CiAKLS8qIGl0ZXJhdGVfb3Zlcl90 aHJlYWRzKCkgY2FsbGJhY2sgZm9yIGNvdW50aW5nIEdEQiB0aHJlYWRzLgor LyogaXRlcmF0ZV9vdmVyX3RocmVhZHMoKSBjYWxsYmFjayBmb3IgY291bnRp bmcgR0RCIHRocmVhZHMuICAqLwogCi0gICBEbyBub3QgY291bnQgdGhlIG1h aW4gdGhyZWFkICh3aG9zZSB0aWQgaXMgemVybykuICBUaGlzIG1hdGNoZXMK LSAgIHRoZSBsaXN0IG9mIHRocmVhZHMgcHJvdmlkZWQgYnkgdGhlIHB0aHJl YWRkZWJ1ZyBsaWJyYXJ5LCB3aGljaAotICAgZG9lcyBub3QgaW5jbHVkZSB0 aGF0IG1haW4gdGhyZWFkIGVpdGhlciwgYW5kIHRodXMgYWxsb3dzIHVzCi0g ICB0byBjb21wYXJlIHRoZSB0d28gbGlzdHMuICAqLwogCiBzdGF0aWMgaW50 CiBnaXRlcl9jb3VudCAoc3RydWN0IHRocmVhZF9pbmZvICp0aHJlYWQsIHZv aWQgKmNvdW50cCkKIHsKLSAgaWYgKFBEX1RJRCAodGhyZWFkLT5wdGlkKSkK LSAgICAoKihpbnQgKikgY291bnRwKSsrOworICAoKihpbnQgKikgY291bnRw KSsrOwogICByZXR1cm4gMDsKIH0KIAotLyogaXRlcmF0ZV9vdmVyX3RocmVh ZHMoKSBjYWxsYmFjayBmb3IgYWNjdW11bGF0aW5nIEdEQiB0aHJlYWQgcGlk cy4KLQotICAgRG8gbm90IGluY2x1ZGUgdGhlIG1haW4gdGhyZWFkICh3aG9z ZSB0aWQgaXMgemVybykuICBUaGlzIG1hdGNoZXMKLSAgIHRoZSBsaXN0IG9m IHRocmVhZHMgcHJvdmlkZWQgYnkgdGhlIHB0aHJlYWRkZWJ1ZyBsaWJyYXJ5 LCB3aGljaAotICAgZG9lcyBub3QgaW5jbHVkZSB0aGF0IG1haW4gdGhyZWFk IGVpdGhlciwgYW5kIHRodXMgYWxsb3dzIHVzCi0gICB0byBjb21wYXJlIHRo ZSB0d28gbGlzdHMuICAqLworLyogaXRlcmF0ZV9vdmVyX3RocmVhZHMoKSBj YWxsYmFjayBmb3IgYWNjdW11bGF0aW5nIEdEQiB0aHJlYWQgcGlkcy4gICov CiAKIHN0YXRpYyBpbnQKIGdpdGVyX2FjY3VtIChzdHJ1Y3QgdGhyZWFkX2lu Zm8gKnRocmVhZCwgdm9pZCAqYnVmcCkKIHsKLSAgaWYgKFBEX1RJRCAodGhy ZWFkLT5wdGlkKSkKLSAgICB7Ci0gICAgICAqKihzdHJ1Y3QgdGhyZWFkX2lu Zm8gKioqKSBidWZwID0gdGhyZWFkOwotICAgICAgKCooc3RydWN0IHRocmVh ZF9pbmZvICoqKikgYnVmcCkrKzsKLSAgICB9CisgICoqKHN0cnVjdCB0aHJl YWRfaW5mbyAqKiopIGJ1ZnAgPSB0aHJlYWQ7CisgICgqKHN0cnVjdCB0aHJl YWRfaW5mbyAqKiopIGJ1ZnApKys7CisgICAgCiAgIHJldHVybiAwOwogfQog CkBAIC03MDQsNyArNjkxLDcgQEAgZ2NtcCAoY29uc3Qgdm9pZCAqdDF2LCBj b25zdCB2b2lkICp0MnYpCiB9CiAKIC8qIFNlYXJjaCB0aHJvdWdoIHRoZSBs aXN0IG9mIGFsbCBrZXJuZWwgdGhyZWFkcyBmb3IgdGhlIHRocmVhZAotICAg dGhhdCBoYXMgc3RvcHBlZCBvbiBhIFNJR1RSQVAgc2lnbmFsLCBhbmQgcmV0 dXJuIGl0cyBUSUQuCisgICB0aGF0IGhhcyBzdG9wcGVkIG9uIGEgU0lHVFJB UCBvciBTSUdJTlQgc2lnbmFsLCBhbmQgcmV0dXJuIGl0cyBUSUQuCiAgICBS ZXR1cm4gMCBpZiBub25lIGZvdW5kLiAgKi8KIAogc3RhdGljIHB0aGRiX3Rp ZF90CkBAIC03MTksNyArNzA2LDcgQEAgZ2V0X3NpZ25hbGVkX3RocmVhZCAo aW50IHBpZCkKIAkJICAgIHNpemVvZiAodGhyaW5mKSwgJmt0aWQsIDEpICE9 IDEpCiAJYnJlYWs7CiAKLSAgICAgIGlmICh0aHJpbmYudGlfY3Vyc2lnID09 IFNJR1RSQVApCisgICAgICBpZiAodGhyaW5mLnRpX2N1cnNpZyA9PSBTSUdU UkFQIHx8IHRocmluZi50aV9jdXJzaWcgPT0gU0lHSU5UKQogCXJldHVybiB0 aHJpbmYudGlfdGlkOwogICAgIH0KIApAQCAtNzUwLDYgKzczNyw5IEBAIHN5 bmNfdGhyZWFkbGlzdHMgKGludCBwaWQpCiAgIHB0aGRiX3B0aHJlYWRfdCBw ZHRpZDsKICAgcHRocmVhZF90IHB0aGlkOwogICBwdGhkYl90aWRfdCB0aWQ7 CisgIHByb2Nlc3Nfc3RyYXR1bV90YXJnZXQgKnByb2NfdGFyZ2V0CisJPSBj dXJyZW50X2luZmVyaW9yICgpLT5wcm9jZXNzX3RhcmdldCAoKTsKKyAgdGhy ZWFkX2luZm8gKnRwOwogCiAgIC8qIEFjY3VtdWxhdGUgYW4gYXJyYXkgb2Yg bGlicHRoZGVidWcgdGhyZWFkcyBzb3J0ZWQgYnkgcHRocmVhZCBpZC4gICov CiAKQEAgLTgxMCwxMCArODAwLDggQEAgc3luY190aHJlYWRsaXN0cyAoaW50 IHBpZCkKIAkgIHByaXYtPnBkdGlkID0gcGJ1ZltwaV0ucGR0aWQ7CiAJICBw cml2LT50aWQgPSBwYnVmW3BpXS50aWQ7CiAKLQkgIHByb2Nlc3Nfc3RyYXR1 bV90YXJnZXQgKnByb2NfdGFyZ2V0Ci0JICAgID0gY3VycmVudF9pbmZlcmlv ciAoKS0+cHJvY2Vzc190YXJnZXQgKCk7CiAJICB0aHJlYWQgPSBhZGRfdGhy ZWFkX3dpdGhfaW5mbyAocHJvY190YXJnZXQsCi0JCQkJCSBwdGlkX3QgKHBp ZCwgMCwgcGJ1ZltwaV0ucHRoaWQpLAorCQkJCQkgcHRpZF90IChwaWQsIHBi dWZbcGldLnRpZCwgcGJ1ZltwaV0ucHRoaWQpLAogCQkJCQkgcHJpdik7CiAK IAkgIHBpKys7CkBAIC04MjMsNyArODExLDcgQEAgc3luY190aHJlYWRsaXN0 cyAoaW50IHBpZCkKIAkgIHB0aWRfdCBwcHRpZCwgZ3B0aWQ7CiAJICBpbnQg Y21wX3Jlc3VsdDsKIAotCSAgcHB0aWQgPSBwdGlkX3QgKHBpZCwgMCwgcGJ1 ZltwaV0ucHRoaWQpOworCSAgcHB0aWQgPSBwdGlkX3QgKHBpZCwgcGJ1Zltw aV0udGlkLCBwYnVmW3BpXS5wdGhpZCk7CiAJICBncHRpZCA9IGdidWZbZ2ld LT5wdGlkOwogCSAgcGR0aWQgPSBwYnVmW3BpXS5wZHRpZDsKIAkgIHRpZCA9 IHBidWZbcGldLnRpZDsKQEAgLTg0MSw4ICs4MjksMjMgQEAgc3luY190aHJl YWRsaXN0cyAoaW50IHBpZCkKIAkgICAgfQogCSAgZWxzZSBpZiAoY21wX3Jl c3VsdCA+IDApCiAJICAgIHsKLQkgICAgICBkZWxldGVfdGhyZWFkIChnYnVm W2dpXSk7Ci0JICAgICAgZ2krKzsKKwkgICAgICBpZiAoZ3B0aWQuaXNfcGlk ICgpKQorCQl7CisJCSAgZ2RiX2Fzc2VydCAoZ3B0aWQucGlkICgpID09IHBw dGlkLnBpZCAoKSk7CisJCSAgdGhyZWFkX2NoYW5nZV9wdGlkIChwcm9jX3Rh cmdldCwgZ3B0aWQsIHBwdGlkKTsKKwkJICBhaXhfdGhyZWFkX2luZm8gKnBy aXYgPSBuZXcgYWl4X3RocmVhZF9pbmZvOworCQkgIHByaXYtPnBkdGlkID0g cGJ1ZltwaV0ucGR0aWQ7CisJCSAgcHJpdi0+dGlkID0gcGJ1ZltwaV0udGlk OworCQkgIHRwID0gZmluZF90aHJlYWRfcHRpZCAocHJvY190YXJnZXQsIHBw dGlkKTsKKwkJICB0cC0+cHJpdi5yZXNldCAocHJpdik7CisJCSAgcGkrKzsK KwkJICBnaSsrOworCQl9CisJICAgICAgZWxzZQorCQl7CisJCSAgZGVsZXRl X3RocmVhZCAoZ2J1ZltnaV0pOworCQkgIGdpKys7CisJCX0KIAkgICAgfQog CSAgZWxzZQogCSAgICB7CkBAIC0xMDkxLDEwICsxMDk0LDYgQEAgYWl4X3Ro cmVhZF90YXJnZXQ6OndhaXQgKHB0aWRfdCBwdGlkLCBzdHJ1Y3QgdGFyZ2V0 X3dhaXRzdGF0dXMgKnN0YXR1cywKICAgaWYgKHB0aWQucGlkICgpID09IC0x KQogICAgIHJldHVybiBwdGlkX3QgKC0xKTsKIAotICAvKiBUaGUgdGFyZ2V0 IGJlbmVhdGggZG9lcyBub3QgZGVhbCB3aXRoIHRocmVhZHMsIHNvIGl0IHNo b3VsZCBvbmx5IHJldHVybgotICAgICBwaWQtb25seSBwdGlkcy4gICovCi0g IGdkYl9hc3NlcnQgKHB0aWQuaXNfcGlkICgpKTsKLQogICAvKiBDaGVjayB3 aGV0aGVyIGxpYnB0aGRlYnVnIG1pZ2h0IGJlIHJlYWR5IHRvIGJlIGluaXRp YWxpemVkLiAgKi8KICAgaWYgKCFwZF9hY3RpdmUgJiYgc3RhdHVzLT5raW5k ICgpID09IFRBUkdFVF9XQUlUS0lORF9TVE9QUEVECiAgICAgICAmJiBzdGF0 dXMtPnNpZyAoKSA9PSBHREJfU0lHTkFMX1RSQVApCmRpZmYgLS1naXQgYS9n ZGIvcnM2MDAwLWFpeC1uYXQuYyBiL2dkYi9yczYwMDAtYWl4LW5hdC5jCmlu ZGV4IDJhYzFmNmU3MGI2Li5lNDg1ODBmMWI5NiAxMDA2NDQKLS0tIGEvZ2Ri L3JzNjAwMC1haXgtbmF0LmMKKysrIGIvZ2RiL3JzNjAwMC1haXgtbmF0LmMK QEAgLTk5LDYgKzk5LDggQEAgY2xhc3MgcnM2MDAwX25hdF90YXJnZXQgZmlu YWwgOiBwdWJsaWMgaW5mX3B0cmFjZV90YXJnZXQKICAgICAgc3VwcG9ydC4g ICovCiAgIHZvaWQgZm9sbG93X2ZvcmsgKGluZmVyaW9yICosIHB0aWRfdCwg dGFyZ2V0X3dhaXRraW5kLCBib29sLCBib29sKSBvdmVycmlkZTsKIAorICBz dGQ6OnN0cmluZyBwaWRfdG9fc3RyIChwdGlkX3QpIG92ZXJyaWRlOworCiBw cm90ZWN0ZWQ6CiAKICAgdm9pZCBwb3N0X3N0YXJ0dXBfaW5mZXJpb3IgKHB0 aWRfdCBwdGlkKSBvdmVycmlkZTsKQEAgLTYxOSw2ICs2MjEsNjQgQEAgcnM2 MDAwX25hdF90YXJnZXQ6OnhmZXJfcGFydGlhbCAoZW51bSB0YXJnZXRfb2Jq ZWN0IG9iamVjdCwKICAgICB9CiB9CiAKKy8qIFNlYXJjaCB0aHJvdWdoIHRo ZSBsaXN0IG9mIGFsbCBrZXJuZWwgdGhyZWFkcyBmb3IgdGhlIHRocmVhZAor ICAgdGhhdCBoYXMgc3RvcHBlZCBvbiBhIFNJR1RSQVAgb3IgU0lHSU5UIHNp Z25hbCwgYW5kIHJldHVybgorICAgaXRzIFRJRC4gIFJldHVybiAwIGlmIG5v bmUgZm91bmQuICAqLworCitzdGF0aWMgdGlkX3QKK2dldF9zaWduYWxlZF90 aHJlYWRfcnM2MDAwIChpbnQgcGlkKQoreworICBzdHJ1Y3QgdGhyZHNpbmZv NjQgdGhyaW5mOworICB0aWRfdCBrdGlkID0gMDsKKworICB3aGlsZSAoMSkK KyAgICB7CisgICAgICBpZiAoZ2V0dGhyZHMgKHBpZCwgJnRocmluZiwKKyAg ICAgICAgICAgICAgICAgICAgc2l6ZW9mICh0aHJpbmYpLCAma3RpZCwgMSkg IT0gMSkKKyAgICAgICAgYnJlYWs7CisKKyAgICAgIGlmICh0aHJpbmYudGlf Y3Vyc2lnID09IFNJR1RSQVAgfHwgdGhyaW5mLnRpX2N1cnNpZyA9PSBTSUdJ TlQpCisgICAgICAgIHJldHVybiB0aHJpbmYudGlfdGlkOworICAgIH0KKwor ICAvKiBEaWRuJ3QgZmluZCBhbnkgdGhyZWFkIHN0b3BwZWQgb24gYSBTSUdU UkFQIHNpZ25hbC4gICovCisgIHJldHVybiAwOworfQorCisvKiBJZiBteSBw cm9jZXNzIGlzIHB0aHJlYWRlZCBJIG5lZWQgdG8gcmV0dXJuIHRoYXQgcHRp ZCBlbHNlIHB0aWRfdAorICAgKHBpZCkuICAqLworCitzdGF0aWMgcHRpZF90 CitmaW5kX3RoZV9yZXR1cm5fcHRpZCAocGlkX3QgcGlkKQoreworICBwdGlk X3QgcHRpZCA9IHB0aWRfdCAocGlkKTsKKyAgcHJvY2Vzc19zdHJhdHVtX3Rh cmdldCAqcHJvY190YXJnZXQKKyAgICAgICAgPSBjdXJyZW50X2luZmVyaW9y ICgpLT5wcm9jZXNzX3RhcmdldCAoKTsKKyAgaW5mZXJpb3IgKmluZiA9IGZp bmRfaW5mZXJpb3JfcGlkIChwcm9jX3RhcmdldCwgcGlkKTsKKyAgdGhyZWFk X2luZm8gKnRwID0gZmluZF90aHJlYWRfcHRpZCAoaW5mLCBwdGlkX3QgKHBp ZCkpOworICBpZiAodHAgPT0gbnVsbHB0cikKKyAgICBmb3IgKHRocmVhZF9p bmZvICp0cDEgOiBpbmYtPnRocmVhZHMgKCkpCisgICAgICAgaWYgKHRwMS0+ cHRpZC5sd3AgKCkgPT0gZ2V0X3NpZ25hbGVkX3RocmVhZF9yczYwMDAgKHBp ZCkpCisgICAgICAgICByZXR1cm4gdHAxLT5wdGlkOworICByZXR1cm4gcHRp ZDsKK30KKworLyogUmV0dXJuaW5nICJ0aHJlYWQiIG9yICJwcm9jZXNzIiBp bmZvIGFzIGNvbnRyb2wgY29tZXMgaGVyZSAKKyAgIGR1cmluZyBhIHByb2Nl c3Mgc3dpdGNoIGluIG11bHRpIHByb2Nlc3MgZGVidWdnaW5nLiAgVGhpcyAK KyAgIGlzIG5lZWRlZCBmb3IgImluZm8gdGhyZWFkcyIgY29tbWFuZCBhcyBh IHByb2Nlc3MgY2FuIGJlCisgICB0aHJlYWRlZCBvciBub24gdGhyZWFkZWQg aW4gbXVsdGkgcHJvY2VzcyBjYXNlLiAgKi8KKworc3RkOjpzdHJpbmcKK3Jz NjAwMF9uYXRfdGFyZ2V0OjpwaWRfdG9fc3RyIChwdGlkX3QgcHRpZCkKK3sK KyAgaWYgKHB0aWQudGlkICgpICE9IDApCisgICAgcmV0dXJuIHN0cmluZ19w cmludGYgKF8oIlRocmVhZCAlcyIpLCBwdWxvbmdlc3QgKHB0aWQudGlkICgp KSk7CisKKyAgZWxzZQorICAgIHJldHVybiBzdHJpbmdfcHJpbnRmIChfKCJQ cm9jZXNzICVzIiksIHB1bG9uZ2VzdCAocHRpZC5waWQgKCkpKTsKK30KKwor CiAvKiBXYWl0IGZvciB0aGUgY2hpbGQgc3BlY2lmaWVkIGJ5IFBUSUQgdG8g ZG8gc29tZXRoaW5nLiAgUmV0dXJuIHRoZQogICAgcHJvY2VzcyBJRCBvZiB0 aGUgY2hpbGQsIG9yIE1JTlVTX09ORV9QVElEIGluIGNhc2Ugb2YgZXJyb3I7 IHN0b3JlCiAgICB0aGUgc3RhdHVzIGluICpPVVJTVEFUVVMuICAqLwpAQCAt NjcyLDcgKzczMiw3IEBAIHJzNjAwMF9uYXRfdGFyZ2V0Ojp3YWl0IChwdGlk X3QgcHRpZCwgc3RydWN0IHRhcmdldF93YWl0c3RhdHVzICpvdXJzdGF0dXMs CiAJICAgICAgaWYgKHBhcmVudF9waWQgPiAwKQogCQl7CiAJCSAgb3Vyc3Rh dHVzLT5zZXRfZm9ya2VkIChwdGlkX3QgKHBpZCkpOwotCQkgIHJldHVybiBw dGlkX3QgKHBhcmVudF9waWQpOworCQkgIHJldHVybiBmaW5kX3RoZV9yZXR1 cm5fcHRpZCAocGFyZW50X3BpZCk7CiAJCX0KIAkgICAgICBhaXhfcmVtZW1i ZXJfY2hpbGQgKHBpZCk7CiAJICAgIH0KQEAgLTY4Nyw3ICs3NDcsNyBAQCBy czYwMDBfbmF0X3RhcmdldDo6d2FpdCAocHRpZF90IHB0aWQsIHN0cnVjdCB0 YXJnZXRfd2FpdHN0YXR1cyAqb3Vyc3RhdHVzLAogCSAgICAgIGlmIChjaGls ZF9waWQgPiAwKQogCQl7CiAJCSAgb3Vyc3RhdHVzLT5zZXRfZm9ya2VkIChw dGlkX3QgKGNoaWxkX3BpZCkpOwotCQkgIHJldHVybiBwdGlkX3QgKHBpZCk7 CisJCSAgcmV0dXJuIGZpbmRfdGhlX3JldHVybl9wdGlkIChwaWQpOwogCQl9 CiAJICAgICAgYWl4X3JlbWVtYmVyX3BhcmVudCAocGlkKTsKIAkgICAgfQpA QCAtNzEyLDcgKzc3Miw3IEBAIHJzNjAwMF9uYXRfdGFyZ2V0Ojp3YWl0IChw dGlkX3QgcHRpZCwgc3RydWN0IHRhcmdldF93YWl0c3RhdHVzICpvdXJzdGF0 dXMsCiAgIGVsc2UKICAgICAqb3Vyc3RhdHVzID0gaG9zdF9zdGF0dXNfdG9f d2FpdHN0YXR1cyAoc3RhdHVzKTsKIAotICByZXR1cm4gcHRpZF90IChwaWQp OworICByZXR1cm4gZmluZF90aGVfcmV0dXJuX3B0aWQgKHBpZCk7CiB9CiAM CiAKLS0gCjIuMzEuMQoK --_004_CH2PR15MB354486F155F5CC97501D056DD6179CH2PR15MB3544namp_--