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 601903858D32 for ; Mon, 26 Dec 2022 13:18:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 601903858D32 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 (m0098399.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2BQCg7Bq018880; Mon, 26 Dec 2022 13:18:29 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=H8ZCFbPO9Qc7lOpqTDM8Kj8zSBJj63GfnjBbl4iQJzs=; b=nAk7U7xnuBo28aXNIHLpOfdmwbF5bW/C+aCGZ6nGTzvwdj7C9wYWiy3p64Q5Iusq4EI2 p1FpdXHiMqOR7XwjlPnU9n6c463mNt7oRG7xpRBWaMVXAnsfnub7y7yi7RF1DZscU7dp E7TkJAUzvGhrcjfJXM55eu5gU3e8iMpR/J91+EZcH+oIt8NFBDGuJUogM4QrjwsN5nBJ S5KqcgA3EsPjUpZHQv3hkDW+nYzcitFisYJ9/6RPnL9xqddMHTmEHNDPxHn0iCuueBnE DlkSuSlm/RNOyxWgaeKPZDbPZp0voPcTVL0zMjR1ATby98+2GxMKlYuC61YclxSf0XXA OQ== Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2106.outbound.protection.outlook.com [104.47.58.106]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3mqbuggth4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 26 Dec 2022 13:18:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Y5e8m+obfVy2JUfjJYs2rWvBxyf0MdUXnuHftxxc+v/iq4Fb64+2q0tykjLY5Oeg+4qetnVUyWfD3RqpIgSPDc+QnHNHblWJTWN9pHS3bPXDH+n4LZJrN5JZJD9pbDMzsB/m78+LEKZBFCGHoLm2Nkto77bbk/3ARfQFETiqubA28jQ/gTi4Gb7yN0v6Yc39JmO3P0uJFgGbYfNXb5n7GcqnTmgnWjgYaqFG8vejksmqowUhylsgWCuG4sdcyhRA0xMs4IQWvIEwnofQCEftyvoXXdAwcFPZI6E5Y6jI5sj5Dg2nAu4ygvT8Op9TknmSW7GZRb6VROoB0env9CB/6A== 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=H8ZCFbPO9Qc7lOpqTDM8Kj8zSBJj63GfnjBbl4iQJzs=; b=Xi6ZkAyhFIYx+LhvUpFJZR/vtOVP7wJinkFdbDAwMsTKsRqFfsHuvD/AHk1EYWy3FErtSstsuq4BSYH+3AkUu4pFZkoQ8vJidXXlLEkjvaXbDKA9KGStPQ76OxCKQyvEjaiZyUe2l0XfvYt3XU4J48d/nCeTu+wr9oVa/ComndcpMiWPHCOJwz3Gg1zl2T46xNgNGI1iqyZr87DMHmPuHf+WJxF/817GJ56y64619NFXOAM/1t90sd02oE7MpINDBdNy4RX26RW1Edgq2bX3MRJnecskzctqJ+wFTOC0KnH7sUea1RBDNsTmtz0y7b0ichMnX4RZ/2Z97pydiD6tJg== 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 DM6PR15MB3625.namprd15.prod.outlook.com (2603:10b6:5:1ff::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.16; Mon, 26 Dec 2022 13:18:27 +0000 Received: from CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::7450:e71:7fd7:88df]) by CH2PR15MB3544.namprd15.prod.outlook.com ([fe80::7450:e71:7fd7:88df%3]) with mapi id 15.20.5944.016; Mon, 26 Dec 2022 13:18:27 +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/WKgAVsGwCABC6K8oAAZcYAgAq8WQ+AADoMgIAFnB/fgAUxEICABkBkKw== Date: Mon, 26 Dec 2022 13:18:27 +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> <8302c3570292b864ab21176e58bdee546f6e4544.camel@de.ibm.com> In-Reply-To: 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_|DM6PR15MB3625:EE_ x-ms-office365-filtering-correlation-id: 78c7fc6a-ab0b-4107-74c9-08dae743acb0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 54D012Fp7viNYw/CRzjBso7ZH8dDAJOmE6zmnJXS6A3PvmWCyPx5d8+VUCFFq0Yh79xBl1X/bk11lSmR+nGgTNeq0BTT/whiZ1MiM4MXxRRsHBc/typSYfIMbjaTIt1n1lAeqHX2WfujkzBT1f1Pp697TOQ2k+VbtNpGNhHP7q99ZeUvfMahkfUZHedX8vH9XDWuV8KIQhirOIvtBPYkLhZSgg/l4k5lYJmKO/JAxDzjsjCbqBNfMWjL2upCcq1WQBxDG8LZvuOjiREsWV7cgVPFgwCNYPFrEMmElmphHDwjzgU2WA8LBlm9+q1knYvLnztmiWW2W9Nw9hOmcUPCY3NDQNkfyuzndApK5HtFzcxn4ZUc+zPJ+X1HG5BEi/1zLRjr/uoI1EwC60IHoNMTl5LlgZC4V1y08oXF8wcrKaY/s9i7iN3h2wyTVaC5DpSGQELJLXM4/bevt+nA66EPn/dHYMMq+adJj8nNXS6Y7mb6j2CP4Qusum9HU7N3CyB+heyJ9IemUg5L81/o91ThQWu0TR16fCBWxb8k5aSDOLo9dbDb8yaa7OpVVI+FR/LARQx+j+BTXPHNek82/m7RqkcgQ6MLFAz5HjeRx7GH4hsX19qmx7DJ8hczg0RAsssEJvMhJVxCYRMwbnxpsKjebRDA/Pm4b+m07GrEYDSABcJ9w95zXOJjiAeoG9Jk+kMgHHZW3is9WWLhhW/SOxPLsw== 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)(346002)(366004)(136003)(376002)(39860400002)(451199015)(83380400001)(86362001)(38100700002)(99936003)(8936002)(122000001)(2906002)(4001150100001)(52536014)(5660300002)(41300700001)(55016003)(6506007)(7696005)(478600001)(186003)(53546011)(76116006)(9686003)(91956017)(4326008)(8676002)(66946007)(316002)(64756008)(71200400001)(66446008)(110136005)(66556008)(66476007)(38070700005)(19627405001)(33656002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?m2Jw5xAKZeQ33HY1F0tGM7C1lczvr6rDthKHaWi9gSbWGZkCy/KyUDvi4r1m?= =?us-ascii?Q?iHtWcFlBa2XOQE4g8V5E4ZoB+gW2WoSFoBWsTwb1WaGsc4HUihcRKXH2XEeX?= =?us-ascii?Q?1Ddag0JLHz1y+QKLwzxaT+MehrC9vJ10eMSeJNcnr8KPeCcuiVwB+DpuFef/?= =?us-ascii?Q?OSIms3FXyd3CvcKSNH1VJU7QxpUuwsCwVPsZpp7Ey+nwSO0gzVdSGpbgUaVu?= =?us-ascii?Q?svX5FWLgFF4FjyZGREGRRAApH2nLxo/4V7Bjos8kxmBA29U8UznXKrn6Qpqx?= =?us-ascii?Q?j6kbCcbRhWPxUoSAmVHKUGLbI5vjqogiiRDLvN1YnaoAqOS+OjY1oIfUUP1P?= =?us-ascii?Q?fZcNNoeFA+3l4gHBgG2GRtZ8WU0oLyaclgHfvw6G/LhdQyXbO6+mFhOJIHaw?= =?us-ascii?Q?c4Yu62LsXrRZ5cgq8BwtgqsTiuqaz1AFljqkA/6jtAX2stJhFXLlwULMdTwo?= =?us-ascii?Q?lcgqJDw+WVThQv6PhQwkkwGjj48WBUzG3qitwmbnNJEA1fG4Jh6/B0fji1a9?= =?us-ascii?Q?vmx9XCr4wW1PoOSzt9NO/TXVR8RkwyucqNIHWjzqvAGS1vrTxncwha+DLAMc?= =?us-ascii?Q?609x+RNLTiX6UiXnor/aWKVrX3mJKIaZ8xbssrj+O9WE7iLRHjMH1bNeqpd5?= =?us-ascii?Q?/GIjO+YpD4Wdn3IFoI/l63W1J87fHpTosbs7gfCxenu06FUhVg9ff/jL7Q+J?= =?us-ascii?Q?XNW89X0SojU+qEbeMVZzbatqDBxV10g6Kip6hIcHeF5kI3mhDk7Fzg1KeEnf?= =?us-ascii?Q?3jXydBQ2wLPH7VwiEqaMov+hS8y3kaGTtDaa7d3y4bjVI3Kz+Wb3YqkdTJgC?= =?us-ascii?Q?xhGYkUQgEPF+6mrMmY5fKBQRVjszwmj5JlHftAqgCnTBO1ZwHOXwXdc4Yjq2?= =?us-ascii?Q?AnMvO4/GCS0YZ+46aah685IquHtpcJ9qRazuw+GR/ifcvNrprU1gcO2eNu8D?= =?us-ascii?Q?tylJzT7W5zz0HHEss/MbeqCVkqvtuKkY+IPTi+RUQYkh2q90LjDIDJ1scVuu?= =?us-ascii?Q?IktbcKfMmP+fQ46gEYmfdlpJHYaJyPa9g75heBWZ8dMjW7xMH6NHlsPCGZNv?= =?us-ascii?Q?791UpL3iqTkuQ10cq+w+dE9iE9kZAd4EmxxWnzrSRxSdvd4ijjRnHmReTvjm?= =?us-ascii?Q?UYorOv8A3eI0xG6gJwpYZm95W0k1f0yquyQqgMsewVPwPs2cCEA0vYlQLrH8?= =?us-ascii?Q?YJ4z88kOwi0+GqoPL8q9huuiIi8353v6r89ubEM9Bge9gTOaWnC/3db87hGo?= =?us-ascii?Q?4biHl+RuGAg2CVd0VjR5DPbPzQf7c96gVUD6pt/5/0Gx5FQJvGatIJrRmRtx?= =?us-ascii?Q?++6YsDnS7aS7x/zSUrE2hOFBKX/w0gk7DuMQnrLPFgy/PP1Z8PV0Gb9ZJ5pu?= =?us-ascii?Q?tkhMilbB3PAIGpbFEQrf3PIn4SDDmQ0asrhFnLkd6XlX7uXlMgTUdN9aBuBa?= =?us-ascii?Q?benHjC46uXbNlzCOTacvInJxBBKQ1GmjLIn192SRe1nw07w4L9rnrj/vGlwe?= =?us-ascii?Q?kbIeDlvaiHyVXacRqnhsioErU7zizZRWg4bJOSG7iYPCLillR3oEKFALtp6d?= =?us-ascii?Q?urN3/2xvUz4LL0GPwlLEqYPHi5/LQKOx256j1AiiFWHLp6xMBtUAG7hBukjo?= =?us-ascii?Q?KtBmbbUk2IXJ8xost2Da8ROhQrgTdNK0kBdPNdFUFwfZ?= Content-Type: multipart/mixed; boundary="_004_CH2PR15MB3544BD03B93F39BA8E9E5452D6EC9CH2PR15MB3544namp_" MIME-Version: 1.0 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: 78c7fc6a-ab0b-4107-74c9-08dae743acb0 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Dec 2022 13:18:27.1791 (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: SR3Add18bQ3Bn3pYXX4lq6+BGjuSUDsVeiIs2z/FXr+LXopfszZXJieyA6zzao6VHj5JnvYtJpNWi2daRy1x0Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR15MB3625 X-Proofpoint-ORIG-GUID: bjuDO7JS8bhMvaQ2pWBLnucSqcVGk61G X-Proofpoint-GUID: bjuDO7JS8bhMvaQ2pWBLnucSqcVGk61G X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-12-26_10,2022-12-23_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 mlxscore=0 lowpriorityscore=0 mlxlogscore=999 phishscore=0 adultscore=0 malwarescore=0 impostorscore=0 clxscore=1015 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2212260114 X-Spam-Status: No, score=-3.0 required=5.0 tests=BAYES_00,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_CH2PR15MB3544BD03B93F39BA8E9E5452D6EC9CH2PR15MB3544namp_ Content-Type: multipart/alternative; boundary="_000_CH2PR15MB3544BD03B93F39BA8E9E5452D6EC9CH2PR15MB3544namp_" --_000_CH2PR15MB3544BD03B93F39BA8E9E5452D6EC9CH2PR15MB3544namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Ulrich, >If not, are shared libraries actually detected correctly in the >second inferior (e.g. does "info sharedlibrary" show them correctly >in the second inferior)? If not, maybe solib-aix.c also needs to >be reviewed whether it handles multiple inferiors correctly You were right about this in the previous email. There are 4 shared librari= es all present in their respective archived files, we try to access when a = new inferior is created. They are:- /usr/lib/libpthreads.a(shr_comm.o) /usr/lib/libcrypt.a(shr.o) /usr/lib/libpthread.a(shr_xpg5.o) /usr/lib/libc.a(shr.o) Consider the patch for the analysis as shown below:- --- solib-aix.c_orig 2022-12-23 12:05:39 +0000 +++ solib-aix.c 2022-12-26 06:12:06 +0000 @@ -615,6 +615,7 @@ (gdb_bfd_openr_next_archived_file (archive_bfd.get (), NULL)); while (object_bfd !=3D NULL) { + printf ("object_bfd is %s --- compared with --- member_name is %s in= path %s \n", bfd_get_filename (object_bfd.get ()), member_name.c_str (), p= athname); if (member_name =3D=3D bfd_get_filename (object_bfd.get ())) break; Here I have added a print statement to ensure we are able to find the membe= r in the archive. What's interesting is for the first inferior this works fine for all shared= libraries. For the second one and every inferior thereafter the output is = as shown below in the next paragraph, object_bfd is shr.o --- compared with --- member_name is shr_comm.o in path= /usr/lib/libpthreads.a(shr_comm.o) object_bfd is /usr/lib/libpthreads.a(shr_comm.o) --- compared with --- memb= er_name is shr_comm.o in path /usr/lib/libpthreads.a(shr_comm.o) I was surprised that the bfd_get_filename (object_bfd.get ()) is returning = the pathname instead of the object file descriptor. Everything until here s= eems to correct in the solib_aix_bfd_open () function and this makes it har= d for me to understand what is going on. Even if I allow a pathname match t= o the member_name we end up losing all the information of our threads in th= e first process though we still have the process information. One more thing I want to share is that the inferior is getting correctly al= igned wherever current_inferior () is used to get the inferior's shared lib= rary list or information. So right now, I do not have answers to why the pathname is getting returned= and if I need to correct the same how I can. As a consequence, the Shared = libraries are missing for new inferior. Kindly guide me on how this can be= solved. The rest of the patch I am attempting to solve this remains unchanged. Have a nice day ahead. Thanks and regards, Aditya. ________________________________ From: Ulrich Weigand Sent: 22 December 2022 18:20 To: simark@simark.ca ; Aditya Kamath1 ; gdb-patches@sourceware.org Cc: Sangamesh Mallayya Subject: Re: [PATCH] 0001-Fix-multi-thread-debug-bug-in-AIX.patch Aditya Kamath1 wrote: >So, I guess if we manage to do something similar just like for the >first inferior, we will get to the solution, but I did not understand >how Linux might be reading the symbol again and again for a new >inferior or AIX for that matter for the first inferior. Kindly let >me know how we can do something similar or are we missing something >here that I have not kept in mind in our attempt to solve this for >AIX and GDB community. So the way is works on Linux is that linux-thread-db.c registers both an inferior_created observer and a new_objfile observer. The inferior_created observer gets called immediately after the new inferior is noticed - at this point, only the main executable is detected by GDB, not any of the shared libraries. So this will only successfully detect a libpthread-linked executable if it was *statically* linked. For dynamically linked executables, the new_objfile observer will later get called as well, once for each shared library. As soon as this happens for the libpthread shared library, the fact that the inferior is multithreaded is detected. At first glance, this should actually work the same on AIX - the aix-thread.c file also registers both inferior_created and new_objfile observers. Not sure why this doesn't work ... Do you see the new_objfile observer being called for all the shared libraries in the second inferior? If not, are shared libraries actually detected correctly in the second inferior (e.g. does "info sharedlibrary" show them correctly in the second inferior)? If not, maybe solib-aix.c also needs to be reviewed whether it handles multiple inferiors correctly ... Bye, Ulrich --_000_CH2PR15MB3544BD03B93F39BA8E9E5452D6EC9CH2PR15MB3544namp_-- --_004_CH2PR15MB3544BD03B93F39BA8E9E5452D6EC9CH2PR15MB3544namp_ 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=9371; creation-date="Mon, 26 Dec 2022 13:01:29 GMT"; modification-date="Mon, 26 Dec 2022 13:02:17 GMT" Content-Transfer-Encoding: base64 RnJvbSA4YjFmMzRiN2Q2MmM5ZTZhMGYyMTZjMGUzYjM2ZmNlNzUyOTUyZWVl IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBZGl0eWEgVmlkeWFk aGFyIEthbWF0aCA8QWRpdHlhLkthbWF0aDFAaWJtLmNvbT4KRGF0ZTogU3Vu LCAxOCBEZWMgMjAyMiAyMzoxOTowNCAtMDYwMApTdWJqZWN0OiBbUEFUQ0hd IEZpeCBtdWx0aSB0aHJlYWQgZGVidWcgYnVnIGluIEFJWAoKLS0tCiBnZGIv YWl4LXRocmVhZC5jIHwgMTAzICsrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNTggaW5z ZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2Ri L2FpeC10aHJlYWQuYyBiL2dkYi9haXgtdGhyZWFkLmMKaW5kZXggZTU1NmMx NTM1NzYuLjNhMmFmYWQyNWExIDEwMDY0NAotLS0gYS9nZGIvYWl4LXRocmVh ZC5jCisrKyBiL2dkYi9haXgtdGhyZWFkLmMKQEAgLTU1LDYgKzU1LDcgQEAK ICNpbmNsdWRlIDxzeXMvcmVnLmg+CiAjaW5jbHVkZSA8c2NoZWQuaD4KICNp bmNsdWRlIDxzeXMvcHRoZGVidWcuaD4KKyNpbmNsdWRlIDx2ZWN0b3I+CiAK ICNpZiAhSEFWRV9ERUNMX0dFVFRIUkRTCiBleHRlcm4gaW50IGdldHRocmRz IChwaWRfdCwgc3RydWN0IHRocmRzaW5mbzY0ICosIGludCwgdGlkX3QgKiwg aW50KTsKQEAgLTcwLDcgKzcxLDcgQEAgc3RhdGljIGJvb2wgZGVidWdfYWl4 X3RocmVhZDsKIAogLyogUmV0dXJuIHdoZXRoZXIgdG8gdHJlYXQgUElEIGFz IGEgZGVidWdnYWJsZSB0aHJlYWQgaWQuICAqLwogCi0jZGVmaW5lIFBEX1RJ RChwdGlkKQkocGRfYWN0aXZlICYmIHB0aWQudGlkICgpICE9IDApCisjZGVm aW5lIFBEX1RJRChwdGlkKQkoc3RkOjpmaW5kIChwZF9hY3RpdmUuYmVnaW4g KCksIHBkX2FjdGl2ZS5lbmQgKCksIHB0aWQucGlkICgpKSAhPSBwZF9hY3Rp dmUuZW5kICgpICYmIHB0aWQudGlkICgpICE9IDApCiAKIC8qIFN1Y2Nlc3Mg YW5kIGZhaWx1cmUgdmFsdWVzIHJldHVybmVkIGJ5IHB0aGRiIGNhbGxiYWNr cy4gICovCiAKQEAgLTE1MSwxMSArMTUyLDExIEBAIHN0YXRpYyBDT1JFX0FE RFIgcGRfYnJrX2FkZHI7CiAKIC8qIFdoZXRoZXIgdGhlIGN1cnJlbnQgYXBw bGljYXRpb24gaXMgZGVidWdnYWJsZSBieSBwdGhkYi4gICovCiAKLXN0YXRp YyBpbnQgcGRfYWJsZSA9IDA7CitzdGF0aWMgc3RkOjp2ZWN0b3I8cGlkX3Q+ IHBkX2FibGU7CiAKIC8qIFdoZXRoZXIgYSB0aHJlYWRlZCBhcHBsaWNhdGlv biBpcyBiZWluZyBkZWJ1Z2dlZC4gICovCiAKLXN0YXRpYyBpbnQgcGRfYWN0 aXZlID0gMDsKK3N0YXRpYyBzdGQ6OnZlY3RvcjxwaWRfdD4gcGRfYWN0aXZl OwogCiAvKiBXaGV0aGVyIHRoZSBjdXJyZW50IGFyY2hpdGVjdHVyZSBpcyA2 NC1iaXQuICAKICAgIE9ubHkgdmFsaWQgd2hlbiBwZF9hYmxlIGlzIHRydWUu ICAqLwpAQCAtMzMxLDYgKzMzMiw5IEBAIHBkY19zeW1ib2xfYWRkcnMgKHB0 aGRiX3VzZXJfdCB1c2VyX2N1cnJlbnRfcGlkLCBwdGhkYl9zeW1ib2xfdCAq c3ltYm9scywgaW50IGNvCiAgIHN0cnVjdCBib3VuZF9taW5pbWFsX3N5bWJv bCBtczsKICAgaW50IGk7CiAgIGNoYXIgKm5hbWU7CisgIHNjb3BlZF9yZXN0 b3JlX2N1cnJlbnRfcHJvZ3JhbV9zcGFjZSByZXN0b3JlX3BzcGFjZTsgCisg IGluZmVyaW9yICppbmYgPSBmaW5kX2luZmVyaW9yX3BpZCAoY3VycmVudF9p bmZlcmlvciAoKS0+cHJvY2Vzc190YXJnZXQgKCksIHVzZXJfY3VycmVudF9w aWQpOworICBzZXRfY3VycmVudF9wcm9ncmFtX3NwYWNlIChpbmYtPnBzcGFj ZSk7CiAKICAgaWYgKGRlYnVnX2FpeF90aHJlYWQpCiAgICAgZ2RiX3ByaW50 ZiAoZ2RiX3N0ZGxvZywKQEAgLTUwOCwxNCArNTEyLDEzIEBAIHBkY19yZWFk X2RhdGEgKHB0aGRiX3VzZXJfdCB1c2VyX2N1cnJlbnRfcGlkLCB2b2lkICpi dWYsCiAgIC8qIFRoaXMgaXMgbmVlZGVkIHRvIGVsaW1pbmF0ZSB0aGUgZGVw ZW5kZW5jeSBvZiBjdXJyZW50IHRocmVhZAogICAgICB3aGljaCBpcyBudWxs IHNvIHRoYXQgdGhyZWFkIHJlYWRzIHRoZSBjb3JyZWN0IHRhcmdldCBtZW1v cnkuICAqLwogICB7Ci0gICAgc2NvcGVkX3Jlc3RvcmVfY3VycmVudF90aHJl YWQgcmVzdG9yZV9jdXJyZW50X3RocmVhZDsKKyAgICBzY29wZWRfcmVzdG9y ZSBzYXZlX2luZmVyaW9yX3B0aWQgPSBtYWtlX3Njb3BlZF9yZXN0b3JlICgm aW5mZXJpb3JfcHRpZCk7CiAgICAgLyogQmVmb3JlIHRoZSBmaXJzdCBpbmZl cmlvciBpcyBhZGRlZCwgd2UgcGFzcyBpbmZlcmlvcl9wdGlkLnBpZCAoKQog ICAgICAgIGZyb20gcGRfZW5hYmxlICgpIHdoaWNoIGlzIDAuICBUaGVyZSBp cyBubyBuZWVkIHRvIHN3aXRjaCB0aHJlYWRzCiAgICAgICAgZHVyaW5nIGZp cnN0IGluaXRpYWxpc2F0aW9uLiAgSW4gdGhlIHJlc3Qgb2YgdGhlIGNhbGxi YWNrcyB0aGUKICAgICAgICBjdXJyZW50IHRocmVhZCBuZWVkcyB0byBiZSBj b3JyZWN0LiAgKi8KICAgICBpZiAodXNlcl9jdXJyZW50X3BpZCAhPSAwKQot ICAgICAgc3dpdGNoX3RvX3RocmVhZCAoY3VycmVudF9pbmZlcmlvciAoKS0+ cHJvY2Vzc190YXJnZXQgKCksCi0JCQlwdGlkX3QgKHVzZXJfY3VycmVudF9w aWQpKTsKKyAgICAgIGluZmVyaW9yX3B0aWQgPSBwdGlkX3QgKHVzZXJfY3Vy cmVudF9waWQpOwogICAgIHN0YXR1cyA9IHRhcmdldF9yZWFkX21lbW9yeSAo YWRkciwgKGdkYl9ieXRlICopIGJ1ZiwgbGVuKTsKICAgfQogICByZXQgPSBz dGF0dXMgPT0gMCA/IFBEQ19TVUNDRVNTIDogUERDX0ZBSUxVUkU7CkBAIC02 MzksMzYgKzY0MiwyMyBAQCBwY21wIChjb25zdCB2b2lkICpwMXYsIGNvbnN0 IHZvaWQgKnAydikKICAgcmV0dXJuIHAxLT5wdGhpZCA8IHAyLT5wdGhpZCA/ IC0xIDogcDEtPnB0aGlkID4gcDItPnB0aGlkOwogfQogCi0vKiBpdGVyYXRl X292ZXJfdGhyZWFkcygpIGNhbGxiYWNrIGZvciBjb3VudGluZyBHREIgdGhy ZWFkcy4KLQotICAgRG8gbm90IGNvdW50IHRoZSBtYWluIHRocmVhZCAod2hv c2UgdGlkIGlzIHplcm8pLiAgVGhpcyBtYXRjaGVzCi0gICB0aGUgbGlzdCBv ZiB0aHJlYWRzIHByb3ZpZGVkIGJ5IHRoZSBwdGhyZWFkZGVidWcgbGlicmFy eSwgd2hpY2gKLSAgIGRvZXMgbm90IGluY2x1ZGUgdGhhdCBtYWluIHRocmVh ZCBlaXRoZXIsIGFuZCB0aHVzIGFsbG93cyB1cwotICAgdG8gY29tcGFyZSB0 aGUgdHdvIGxpc3RzLiAgKi8KKy8qIGl0ZXJhdGVfb3Zlcl90aHJlYWRzKCkg Y2FsbGJhY2sgZm9yIGNvdW50aW5nIEdEQiB0aHJlYWRzLiAgKi8KIAogc3Rh dGljIGludAogZ2l0ZXJfY291bnQgKHN0cnVjdCB0aHJlYWRfaW5mbyAqdGhy ZWFkLCB2b2lkICpjb3VudHApCiB7Ci0gIGlmIChQRF9USUQgKHRocmVhZC0+ cHRpZCkpCi0gICAgKCooaW50ICopIGNvdW50cCkrKzsKKyAgKCooaW50ICop IGNvdW50cCkrKzsKICAgcmV0dXJuIDA7CiB9CiAKLS8qIGl0ZXJhdGVfb3Zl cl90aHJlYWRzKCkgY2FsbGJhY2sgZm9yIGFjY3VtdWxhdGluZyBHREIgdGhy ZWFkIHBpZHMuCi0KLSAgIERvIG5vdCBpbmNsdWRlIHRoZSBtYWluIHRocmVh ZCAod2hvc2UgdGlkIGlzIHplcm8pLiAgVGhpcyBtYXRjaGVzCi0gICB0aGUg bGlzdCBvZiB0aHJlYWRzIHByb3ZpZGVkIGJ5IHRoZSBwdGhyZWFkZGVidWcg bGlicmFyeSwgd2hpY2gKLSAgIGRvZXMgbm90IGluY2x1ZGUgdGhhdCBtYWlu IHRocmVhZCBlaXRoZXIsIGFuZCB0aHVzIGFsbG93cyB1cwotICAgdG8gY29t cGFyZSB0aGUgdHdvIGxpc3RzLiAgKi8KKy8qIGl0ZXJhdGVfb3Zlcl90aHJl YWRzKCkgY2FsbGJhY2sgZm9yIGFjY3VtdWxhdGluZyBHREIgdGhyZWFkIHBp ZHMuICAqLwogCiBzdGF0aWMgaW50CiBnaXRlcl9hY2N1bSAoc3RydWN0IHRo cmVhZF9pbmZvICp0aHJlYWQsIHZvaWQgKmJ1ZnApCiB7Ci0gIGlmIChQRF9U SUQgKHRocmVhZC0+cHRpZCkpCi0gICAgewotICAgICAgKiooc3RydWN0IHRo cmVhZF9pbmZvICoqKikgYnVmcCA9IHRocmVhZDsKLSAgICAgICgqKHN0cnVj dCB0aHJlYWRfaW5mbyAqKiopIGJ1ZnApKys7Ci0gICAgfQorICAqKihzdHJ1 Y3QgdGhyZWFkX2luZm8gKioqKSBidWZwID0gdGhyZWFkOworICAoKihzdHJ1 Y3QgdGhyZWFkX2luZm8gKioqKSBidWZwKSsrOworCiAgIHJldHVybiAwOwog fQogCkBAIC03MTksNyArNzA5LDcgQEAgZ2V0X3NpZ25hbGVkX3RocmVhZCAo aW50IHBpZCkKIAkJICAgIHNpemVvZiAodGhyaW5mKSwgJmt0aWQsIDEpICE9 IDEpCiAJYnJlYWs7CiAKLSAgICAgIGlmICh0aHJpbmYudGlfY3Vyc2lnID09 IFNJR1RSQVApCisgICAgICBpZiAodGhyaW5mLnRpX2N1cnNpZykKIAlyZXR1 cm4gdGhyaW5mLnRpX3RpZDsKICAgICB9CiAKQEAgLTc1MCw2ICs3NDAsOSBA QCBzeW5jX3RocmVhZGxpc3RzIChpbnQgcGlkKQogICBwdGhkYl9wdGhyZWFk X3QgcGR0aWQ7CiAgIHB0aHJlYWRfdCBwdGhpZDsKICAgcHRoZGJfdGlkX3Qg dGlkOworICBwcm9jZXNzX3N0cmF0dW1fdGFyZ2V0ICpwcm9jX3RhcmdldAor ICAgICAgICAgICAgPSBjdXJyZW50X2luZmVyaW9yICgpLT5wcm9jZXNzX3Rh cmdldCAoKTsKKyAgdGhyZWFkX2luZm8gICp0cDsKIAogICAvKiBBY2N1bXVs YXRlIGFuIGFycmF5IG9mIGxpYnB0aGRlYnVnIHRocmVhZHMgc29ydGVkIGJ5 IHB0aHJlYWQgaWQuICAqLwogCkBAIC04MTAsOCArODAzLDYgQEAgc3luY190 aHJlYWRsaXN0cyAoaW50IHBpZCkKIAkgIHByaXYtPnBkdGlkID0gcGJ1Zltw aV0ucGR0aWQ7CiAJICBwcml2LT50aWQgPSBwYnVmW3BpXS50aWQ7CiAKLQkg IHByb2Nlc3Nfc3RyYXR1bV90YXJnZXQgKnByb2NfdGFyZ2V0Ci0JICAgID0g Y3VycmVudF9pbmZlcmlvciAoKS0+cHJvY2Vzc190YXJnZXQgKCk7CiAJICB0 aHJlYWQgPSBhZGRfdGhyZWFkX3dpdGhfaW5mbyAocHJvY190YXJnZXQsCiAJ CQkJCSBwdGlkX3QgKHBpZCwgMCwgcGJ1ZltwaV0ucHRoaWQpLAogCQkJCQkg cHJpdik7CkBAIC04NDEsOCArODMyLDIyIEBAIHN5bmNfdGhyZWFkbGlzdHMg KGludCBwaWQpCiAJICAgIH0KIAkgIGVsc2UgaWYgKGNtcF9yZXN1bHQgPiAw KQogCSAgICB7Ci0JICAgICAgZGVsZXRlX3RocmVhZCAoZ2J1ZltnaV0pOwot CSAgICAgIGdpKys7CisgICAgICAgICAgICAgIGlmIChncHRpZC5pc19waWQg KCkgJiYgZ3B0aWQucGlkICgpID09IHBwdGlkLnBpZCAoKSkKKyAgICAgICAg ICAgICAgICB7CisgICAgICAgICAgICAgICAgICB0aHJlYWRfY2hhbmdlX3B0 aWQgKHByb2NfdGFyZ2V0LCBncHRpZCwgcHB0aWQpOworICAgICAgICAgICAg ICAgICAgYWl4X3RocmVhZF9pbmZvICpwcml2ID0gbmV3IGFpeF90aHJlYWRf aW5mbzsKKyAgICAgICAgICAgICAgICAgIHByaXYtPnBkdGlkID0gcGJ1Zltw aV0ucGR0aWQ7CisgICAgICAgICAgICAgICAgICBwcml2LT50aWQgPSBwYnVm W3BpXS50aWQ7CisgICAgICAgICAgICAgICAgICB0cCA9IGZpbmRfdGhyZWFk X3B0aWQgKHByb2NfdGFyZ2V0LCBwcHRpZCk7CisgICAgICAgICAgICAgICAg ICB0cC0+cHJpdi5yZXNldCAocHJpdik7CisgICAgICAgICAgICAgICAgICBw aSsrOworICAgICAgICAgICAgICAgICAgZ2krKzsKKyAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICAgICBkZWxldGVfdGhyZWFkIChnYnVmW2dpXSk7Cisg ICAgICAgICAgICAgICAgICBnaSsrOworICAgICAgICAgICAgICAgIH0KIAkg ICAgfQogCSAgZWxzZQogCSAgICB7CkBAIC04ODgsNyArODkzLDggQEAgcGRf dXBkYXRlIChpbnQgcGlkKQogICBwdGhkYl90aWRfdCB0aWQ7CiAgIHN0cnVj dCB0aHJlYWRfaW5mbyAqdGhyZWFkID0gTlVMTDsKIAotICBpZiAoIXBkX2Fj dGl2ZSkKKyAgaWYgKHN0ZDo6ZmluZCAocGRfYWN0aXZlLmJlZ2luICgpLCBw ZF9hY3RpdmUuZW5kICgpLCBwaWQpCisgICAgPT0gcGRfYWN0aXZlLmVuZCAo KSkKICAgICByZXR1cm4gcHRpZF90IChwaWQpOwogCiAgIHN0YXR1cyA9IHB0 aGRiX3Nlc3Npb25fdXBkYXRlIChwZF9zZXNzaW9uKTsKQEAgLTkyNiw3ICs5 MzIsNyBAQCBwZF9hY3RpdmF0ZSAoaW50IHBpZCkKICAgICB7CiAgICAgICBy ZXR1cm4gcHRpZF90IChwaWQpOwogICAgIH0KLSAgcGRfYWN0aXZlID0gMTsK KyAgcGRfYWN0aXZlLnB1c2hfYmFjayAocGlkKTsKICAgcmV0dXJuIHBkX3Vw ZGF0ZSAocGlkKTsKIH0KIApAQCAtOTM1LDI2ICs5NDEsMjkgQEAgcGRfYWN0 aXZhdGUgKGludCBwaWQpCiBzdGF0aWMgdm9pZAogcGRfZGVhY3RpdmF0ZSAo dm9pZCkKIHsKLSAgaWYgKCFwZF9hY3RpdmUpCisgIGlmIChzdGQ6OmZpbmQg KHBkX2FjdGl2ZS5iZWdpbiAoKSwgcGRfYWN0aXZlLmVuZCAoKSwgaW5mZXJp b3JfcHRpZC5waWQgKCkpCisgICAgPT0gcGRfYWN0aXZlLmVuZCAoKSkKICAg ICByZXR1cm47CiAgIHB0aGRiX3Nlc3Npb25fZGVzdHJveSAocGRfc2Vzc2lv bik7CiAgIAogICBwaWRfdG9fcHJjICgmaW5mZXJpb3JfcHRpZCk7Ci0gIHBk X2FjdGl2ZSA9IDA7CisgIHBkX2FjdGl2ZS5lcmFzZSAoc3RkOjpmaW5kIChw ZF9hY3RpdmUuYmVnaW4gKCksIHBkX2FjdGl2ZS5lbmQgKCksIGluZmVyaW9y X3B0aWQucGlkICgpKSk7CiB9CiAKIC8qIEFuIG9iamVjdCBmaWxlIGhhcyBq dXN0IGJlZW4gbG9hZGVkLiAgQ2hlY2sgd2hldGhlciB0aGUgY3VycmVudAog ICAgYXBwbGljYXRpb24gaXMgcHRocmVhZGVkLCBhbmQgaWYgc28sIHByZXBh cmUgZm9yIHRocmVhZCBkZWJ1Z2dpbmcuICAqLwogCiBzdGF0aWMgdm9pZAot cGRfZW5hYmxlICh2b2lkKQorcGRfZW5hYmxlIChpbmZlcmlvciAqaW5mKQog ewogICBpbnQgc3RhdHVzOwogICBjaGFyICpzdHViX25hbWU7CiAgIHN0cnVj dCBib3VuZF9taW5pbWFsX3N5bWJvbCBtczsKKyAgcGlkX3QgcGlkID0gKGlu ZiA9PSBOVUxMP2luZmVyaW9yX3B0aWQucGlkICgpOmluZi0+cGlkKTsKIAog ICAvKiBEb24ndCBpbml0aWFsaXplIHR3aWNlLiAgKi8KLSAgaWYgKHBkX2Fi bGUpCisgIGlmIChzdGQ6OmZpbmQgKHBkX2FibGUuYmVnaW4gKCksIHBkX2Fi bGUuZW5kICgpLCBwaWQpIAorCSE9IHBkX2FibGUuZW5kICgpKQogICAgIHJl dHVybjsKIAogICAvKiBDaGVjayBhcHBsaWNhdGlvbiB3b3JkIHNpemUuICAq LwpAQCAtOTYyLDcgKzk3MSw3IEBAIHBkX2VuYWJsZSAodm9pZCkKIAogICAv KiBDaGVjayB3aGV0aGVyIHRoZSBhcHBsaWNhdGlvbiBpcyBwdGhyZWFkZWQu ICAqLwogICBzdHViX25hbWUgPSBOVUxMOwotICBzdGF0dXMgPSBwdGhkYl9z ZXNzaW9uX3B0aHJlYWRlZCAoaW5mZXJpb3JfcHRpZC5waWQgKCksIFBUSERC X0ZMQUdfUkVHUywKKyAgc3RhdHVzID0gcHRoZGJfc2Vzc2lvbl9wdGhyZWFk ZWQgKHBpZCwgUFRIREJfRkxBR19SRUdTLAogCQkJCSAgICAmcGRfY2FsbGJh Y2tzLCAmc3R1Yl9uYW1lKTsKICAgaWYgKChzdGF0dXMgIT0gUFRIREJfU1VD Q0VTUwogICAgICAgICYmIHN0YXR1cyAhPSBQVEhEQl9OT1RfUFRIUkVBREVE KSB8fCAhc3R1Yl9uYW1lKQpAQCAtOTc4LDEyICs5ODcsMTIgQEAgcGRfZW5h YmxlICh2b2lkKQogCiAgIC8qIFByZXBhcmUgZm9yIHRocmVhZCBkZWJ1Z2dp bmcuICAqLwogICBjdXJyZW50X2luZmVyaW9yICgpLT5wdXNoX3RhcmdldCAo JmFpeF90aHJlYWRfb3BzKTsKLSAgcGRfYWJsZSA9IDE7CisgIHBkX2FibGUu cHVzaF9iYWNrIChwaWQpOwogCiAgIC8qIElmIHdlJ3JlIGRlYnVnZ2luZyBh IGNvcmUgZmlsZSBvciBhbiBhdHRhY2hlZCBpbmZlcmlvciwgdGhlCiAgICAg IHB0aHJlYWQgbGlicmFyeSBtYXkgYWxyZWFkeSBoYXZlIGJlZW4gaW5pdGlh bGl6ZWQsIHNvIHRyeSB0bwogICAgICBhY3RpdmF0ZSB0aHJlYWQgZGVidWdn aW5nLiAgKi8KLSAgcGRfYWN0aXZhdGUgKGluZmVyaW9yX3B0aWQucGlkICgp KTsKKyAgcGRfYWN0aXZhdGUgKHBpZCk7CiB9CiAKIC8qIFVuZG8gdGhlIGVm ZmVjdHMgb2YgcGRfZW5hYmxlKCkuICAqLwpAQCAtOTkxLDExICsxMDAwLDE0 IEBAIHBkX2VuYWJsZSAodm9pZCkKIHN0YXRpYyB2b2lkCiBwZF9kaXNhYmxl ICh2b2lkKQogewotICBpZiAoIXBkX2FibGUpCisgIGlmIChzdGQ6OmZpbmQg KHBkX2FibGUuYmVnaW4gKCksIHBkX2FibGUuZW5kICgpLCAKKwlpbmZlcmlv cl9wdGlkLnBpZCAoKSkgPT0gcGRfYWJsZS5lbmQgKCkpCiAgICAgcmV0dXJu OwotICBpZiAocGRfYWN0aXZlKQorICBpZiAoc3RkOjpmaW5kIChwZF9hY3Rp dmUuYmVnaW4gKCksIHBkX2FjdGl2ZS5lbmQgKCksCisgICAgICAgIGluZmVy aW9yX3B0aWQucGlkICgpKSAhPSBwZF9hY3RpdmUuZW5kICgpKQogICAgIHBk X2RlYWN0aXZhdGUgKCk7Ci0gIHBkX2FibGUgPSAwOworICBwZF9hYmxlLmVy YXNlIChzdGQ6OmZpbmQgKHBkX2FibGUuYmVnaW4gKCksIHBkX2FibGUuZW5k ICgpLCAKKwlpbmZlcmlvcl9wdGlkLnBpZCAoKSkpOwogICBjdXJyZW50X2lu ZmVyaW9yICgpLT51bnB1c2hfdGFyZ2V0ICgmYWl4X3RocmVhZF9vcHMpOwog fQogCkBAIC0xMDEwLDcgKzEwMjIsNyBAQCBzdGF0aWMgdm9pZAogbmV3X29i amZpbGUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogewogICBpZiAob2Jq ZmlsZSkKLSAgICBwZF9lbmFibGUgKCk7CisgICAgcGRfZW5hYmxlIChOVUxM KTsKICAgZWxzZQogICAgIHBkX2Rpc2FibGUgKCk7CiB9CkBAIC0xMDIwLDcg KzEwMzIsNyBAQCBuZXdfb2JqZmlsZSAoc3RydWN0IG9iamZpbGUgKm9iamZp bGUpCiBzdGF0aWMgdm9pZAogYWl4X3RocmVhZF9pbmZlcmlvcl9jcmVhdGVk IChpbmZlcmlvciAqaW5mKQogewotICBwZF9lbmFibGUgKCk7CisgIHBkX2Vu YWJsZSAoaW5mKTsKIH0KIAogLyogRGV0YWNoIGZyb20gdGhlIHByb2Nlc3Mg YXR0YWNoZWQgdG8gYnkgYWl4X3RocmVhZF9hdHRhY2goKS4gICovCkBAIC0x MDk2LDcgKzExMDgsOCBAQCBhaXhfdGhyZWFkX3RhcmdldDo6d2FpdCAocHRp ZF90IHB0aWQsIHN0cnVjdCB0YXJnZXRfd2FpdHN0YXR1cyAqc3RhdHVzLAog ICBnZGJfYXNzZXJ0IChwdGlkLmlzX3BpZCAoKSk7CiAKICAgLyogQ2hlY2sg d2hldGhlciBsaWJwdGhkZWJ1ZyBtaWdodCBiZSByZWFkeSB0byBiZSBpbml0 aWFsaXplZC4gICovCi0gIGlmICghcGRfYWN0aXZlICYmIHN0YXR1cy0+a2lu ZCAoKSA9PSBUQVJHRVRfV0FJVEtJTkRfU1RPUFBFRAorICBpZiAoc3RkOjpm aW5kIChwZF9hY3RpdmUuYmVnaW4gKCksIHBkX2FjdGl2ZS5lbmQgKCksIHB0 aWQucGlkICgpKSA9PSBwZF9hY3RpdmUuZW5kICgpCisgICAgICAmJiBzdGF0 dXMtPmtpbmQgKCkgPT0gVEFSR0VUX1dBSVRLSU5EX1NUT1BQRUQKICAgICAg ICYmIHN0YXR1cy0+c2lnICgpID09IEdEQl9TSUdOQUxfVFJBUCkKICAgICB7 CiAgICAgICBwcm9jZXNzX3N0cmF0dW1fdGFyZ2V0ICpwcm9jX3RhcmdldAot LSAKMi4zMS4xCgo= --_004_CH2PR15MB3544BD03B93F39BA8E9E5452D6EC9CH2PR15MB3544namp_--