Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1soMdL-00AelI-F3 for pgsql-hackers@arkaria.postgresql.org; Wed, 11 Sep 2024 12:39:45 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1soMdL-00Gqb6-6M for pgsql-hackers@arkaria.postgresql.org; Wed, 11 Sep 2024 12:39:43 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1soMcu-00Glpe-B3 for pgsql-hackers@lists.postgresql.org; Wed, 11 Sep 2024 12:39:16 +0000 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1soMcp-000e0l-At for pgsql-hackers@postgresql.org; Wed, 11 Sep 2024 12:39:15 +0000 Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 48BBA1kJ004560; Wed, 11 Sep 2024 12:38:54 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=IXWyZ8uCkkXpLoRBc8YQ31o0ncypCpy GGtJpoL1uyJs=; b=p+BEYC/pBiP5YraUnDa8CNUEv+EgVD+9Sz5GhkJu3RxMnsp oM+VBWjz759KIdC+pbKm50AmvYbNVC1clurPNRtT3rBePTU+U/FNcvxcm8yQa98W KTGDOS+VBIkOP8yELSYv1EqBEU+aJBYyGEwTBc7fCFci4nC2ZiyJN1vcjfQPYzx0 zZGl8nYYnTmpZ7JxJV8bWoXK8xvRDsGpOfmSdeS1DNyU7lxVT0bf3RgHLR/QaNqB 81xAM6AezM4gj3GB/kIkVfPeA4LJAGsPmCrlqV4L1nLAwiGz1gBYk3CmIg5qB+kA D91U/8GdIyJgOrMJKrCTJFX6ROLSN0GwjirKYaw== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 41gegwwr2x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 11 Sep 2024 12:38:53 +0000 (GMT) Received: from m0353729.ppops.net (m0353729.ppops.net [127.0.0.1]) by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 48BCZ1DT027646; Wed, 11 Sep 2024 12:38:53 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2101.outbound.protection.outlook.com [104.47.58.101]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 41gegwwr2r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 11 Sep 2024 12:38:52 +0000 (GMT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MZk5LQBw5iDTYmt2ZNGWWoD6gLkKB0pXmdCg4SnYBZfvCmQr8Rl4Jiyhy4ntAf4BpOjDhfGxOeZmljh22UkUFqacsXNJEX7pOURj3jrsyaAJ8MNWKzdCvsEFq3HFOakAidtHmC8nousITPlXpo2PvsrmGlz0YHqsFXb2Z2EkuJe4ouAgYmfBJ31txDc2jaBWZpgx8AmVeNTlJo/Zi3+cBAYHp29Eh46TYAyVUUcpm7HySnpi+1L6COsidH7acYChZt69aqJQuSIa0pMR8VfaDwZdvfiXUGqasfeXMHuVlqpKCc2pr7yJBQF92kDfAr097ok33iKeE3kV58r9mAtFTw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qkPkIrAuHZ56EAXbuO+C0tq+Y7YWe5Uq0PtFdhCU5+w=; b=FnzwjrYwSyTW8yIcyD35RxW9fF2xyG5aZuzgYao2Du/EifHBXkYEFQa4thzhIeZCiQM0lw1MkyJEyAK8oTGNMDJDyOzYyGlGpx041tDrNZlb3JwjpSfzbh6oGAq9DEtNN3g7FEpwpRNTg38KsMp3AZrGOorFEOQ1SJfD3SC1XUGuVAFHN+SbjXYm1a7b9itghDH9tcuukRLWHtkP/vBlCtQa30n2nfBRgHDymxdMX3CkENMf9sP0z6bNAQ5Nl2EilUy1hEIVedBqy0Te+NYMUGMwGW6tNryHGm2trfsXFVlLoC1hk4+ezskLCmCOsa1it43GjNPy6gT0VHud513NwQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=in.ibm.com; dmarc=pass action=none header.from=in.ibm.com; dkim=pass header.d=in.ibm.com; arc=none Received: from CY8PR15MB5602.namprd15.prod.outlook.com (2603:10b6:930:9a::21) by SN7PR15MB4175.namprd15.prod.outlook.com (2603:10b6:806:10e::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7962.17; Wed, 11 Sep 2024 12:38:39 +0000 Received: from CY8PR15MB5602.namprd15.prod.outlook.com ([fe80::e975:185c:340f:70ae]) by CY8PR15MB5602.namprd15.prod.outlook.com ([fe80::e975:185c:340f:70ae%5]) with mapi id 15.20.7918.024; Wed, 11 Sep 2024 12:38:39 +0000 From: Srirama Kucherlapati To: Heikki Linnakangas , Heikki Linnakangas , Tom Lane CC: Peter Eisentraut , Alvaro Herrera , "pgsql-hackers@postgresql.org" , Laurenz Albe , Noah Misch , Michael Paquier , Andres Freund , Thomas Munro , "tvk1271@gmail.com" , "postgres-ibm-aix@wwpdl.vnet.ibm.com" , Bruce Momjian Thread-Topic: [EXTERNAL] Re: AIX support Thread-Index: AQHae4rr5/ageaPz8EuxaB+VNKiBu7FCOGKAgAArgSaACn9l2IABLM4AgAADTgCAAAP8gIAABU6AgAvJNWiAAB/ogIATySEqgACu3ACAARripYAB4tSAgAAMOICABwWYgIAAB3wAgAAD0oCAAAcGgIACYnHWgAxC+/6AAz5ikoAC7ZKggAAzhgCAAAZWgIALF3TtgAAGbYCAAAc8toABabZigAAKZACACX4wBIAA83CAgAA8Eh6AAGyZAIAD7Q2AgBOpYxWABEWoAIABtJbFgAm10OGAAxsEAIAACpc/gAM2cX+AU/nKsoAASmYAgAB8EsuAAFNfAIArcUjP Date: Wed, 11 Sep 2024 12:38:33 +0000 Message-ID: References: <698dd3efec644b5c0dd6220d73033f8153ae2fde.camel@cybertec.at> <95a44be0-b2f8-464a-8984-771d892b1cac@iki.fi> <40da8288-05fd-4028-adab-81db2092ba8c@iki.fi> In-Reply-To: <40da8288-05fd-4028-adab-81db2092ba8c@iki.fi> Accept-Language: en-US Content-Language: en-IN X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CY8PR15MB5602:EE_|SN7PR15MB4175:EE_ x-ms-office365-filtering-correlation-id: 9fe8cbfd-588d-4a0a-26c2-08dcd25ea997 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016|38070700018; x-microsoft-antispam-message-info: =?us-ascii?Q?WvcJ1uUREsLOJrxS3O5H3ECdXrUCv0cqpMZE98vYa3JLO9k6WO25QHjlla+V?= =?us-ascii?Q?n02PUbVkHak07Bk8zU2pWL7pwmsHEKelrFGtiv4EyhhPPKPEUljH+b+5rT16?= =?us-ascii?Q?13+z/OmDSd7nxHBbrPpnnK1Ws3l7bTZzW+CJuLvvxEEUW3h9aYNZFH6ypSUt?= =?us-ascii?Q?KVrGdGjxCBBcPhvIuOsJsVWA38rD0WXQwV2d4EzL5cwWf5qlanmhvXqUzhdP?= =?us-ascii?Q?GcLqJAuakfaOw9dKrIza0VSL3QZ2oAjsqQyb7hXGFaGwDyUGtflQ+cISy6Hp?= =?us-ascii?Q?Bhof98/FO4ikklUQoMByiqfyeVkPGw6bFmgOHiUOFUaBmqVhl5xilNQ4S8NV?= =?us-ascii?Q?HwKRydxN+QsGTq8BczjE8hTUiKBTk1p5w9hWhryzV5f/0dyKh3J+VlG7Ldjc?= =?us-ascii?Q?mw24czIqt8ikX5voh1PLU76WDFL5ytPMZxQ59WkmZPTLeL4sT3u1De1fjyKC?= =?us-ascii?Q?v31O2rnD/rk5jbDxoIJBcSQkVLJVZThbLcED4X8yW9KuI2GYrul6ABJk6EoC?= =?us-ascii?Q?sTsS7JWSUPNRQ2yvXAQjISKJcC32dXe7F0BGeJ30wmYW9kJZCTlaxG6MAPKL?= =?us-ascii?Q?2tIN5xJ9wCVEi9QYD3FJBwD7vGpekEKnvkNFaSJeq2/eN4t1IT5CKPePkWsE?= =?us-ascii?Q?Tpkx11RJv3U32d7gIhTlpK8REuk3OWORso6wXWYH0FLRCKgGANyBEUZ67Wfm?= =?us-ascii?Q?O9N7EedaJMGQf8hW7e2kzsMYU2hfwozqrSsUtxwTHwstDVkmbXgjXdMOnZCl?= =?us-ascii?Q?87/1S+iAT92Gax2oDeCh1j4l8d+0uInkf9EtizOVZ5Ee0RqmKd+mwavdMUxq?= =?us-ascii?Q?rFleG/JKJnddhJ63ol3WxuFSE1YqWjHlLxNStCSs2bmhyRqx6TkVtvDblXMB?= =?us-ascii?Q?ngt3Iw+WWVNmnNyym6isGtcqqhgbMJzmfg1qOY0cJd8Smr+xX5o4LRsVLApG?= =?us-ascii?Q?jdee4u7tXzPWQCXGLleFVjLG4fzZQg/lOvB6JWjhjU2O1q9PcUNrFjefXORo?= =?us-ascii?Q?d7O/OuInubB8hGrfu8R3V2zpZccytyl2b6PUfNsAuoMeXY2yIqEsoTMHbhPM?= =?us-ascii?Q?rEshjz0/1MyFp96Iv5cQ+l5pcYiE0a7n4QF+rc31yaC45Q4RA915ra5NnFuT?= =?us-ascii?Q?x/xiOXrR9bQU1NA4UyYlDyKIsAFMT4GdDEWsd24BxfKfGj2A685NbvqNoPIf?= =?us-ascii?Q?9PjOFJvO+E2Yl1JA+nuLcIUes1EVV817oVy8N9mr106EZa42vt1UaJSWxwi2?= =?us-ascii?Q?J0Nm1ojQv/EPS/tzmU2dPTlBCrxca4gheA04j3Zuc9/ekbVFtsrL/ABf1bBh?= =?us-ascii?Q?ytJ2SQmqoV7Ys/3MEO+jG5z5p+v3Z8jvU1apRCn0EYhked5a5pHakZZqovym?= =?us-ascii?Q?axOQ2yGxjUfvSKgAcaZi3snCeGkCmbzmqNivLqZ1uafEdZTF+g=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY8PR15MB5602.namprd15.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?D3JXFi0Bujr2Lt2XPzodOuHY7q9dT87CIXqtqE+BT/M3Mt6IEj2Djy58E7Fr?= =?us-ascii?Q?ZA3q7VQKEkMZOgMz2DbZgTAhu13JZLJ/CPKqQtk9UK0/52jaHMbederm3Fk3?= =?us-ascii?Q?GkcJOe/swu+k622FyUDYhD7DsctynXRwx8/n4Zc6707kDcwlASYcavT3hGvL?= =?us-ascii?Q?3pxbKmjSZ4o5THaLr1iFYsGfajLrpIGcS94HSkJq+Xln3WyEuHhi7SEueYFX?= =?us-ascii?Q?W0v5R9fDLciyeM4CkZMPaq+jEym322cSWroJHGHupbQV4Yyy3KEvaZi22/ny?= =?us-ascii?Q?wLFm6jRcA/HlrJz1OWSVPlcGl+TnHODokVcGtK1BL1SUbaM2pzwNtWg0H3lI?= =?us-ascii?Q?EEA3KWqUH6D3FHsaEuwB2BFIEcblLIpq7OTviC5c5CcTm64/jr16LBoNS9Ay?= =?us-ascii?Q?h4ANkjZimO65jYKCBD+F+DsZvPU1M12f5RwDoyotHarQcXMbG9272fUiBk2m?= =?us-ascii?Q?hVoSdBrj3BRGCUOJRR/5d80fisaaSQ2GfLFJKVIkT7GGWek05Kww0vsNpr6v?= =?us-ascii?Q?RBXA434Tp0XioCiR07UFoekLCPTnEzpvPao9cp0waNTEPPKISWB7aDEAODkT?= =?us-ascii?Q?ppBXAsUIr4hJ5tiki5EYadEeZlN4335yZYqxO036xs5chXBBrDse7Q2tsVth?= =?us-ascii?Q?t8iyPhZRUZcPLL+xT1rh2AKQS1wWdL9fS7q7ApUxxKiaRWePYZFNz20hCHAq?= =?us-ascii?Q?bTN3GYnWcVwBYlEJIUuB1ULr0AzAmSx9Uc1LwEwupXYLvAElPAyOquQUzMbR?= =?us-ascii?Q?6C2g2N+r6RJKraTS3dqPh3NyD2gqKyMilA/nXa2YqhxkB9gf8Hfit/YHjTce?= =?us-ascii?Q?jOp6VbC/J5ip/dii8YNcp0TQKfh2XHUOEa2lE54/ouaH8rFHLQpsza4xiPYT?= =?us-ascii?Q?51Xz6GuCCGKQhIwRuia3M18s5JUZ2LlUGM891AkvXAql++cEDKdOshytKp3a?= =?us-ascii?Q?bECHb5s64P+igBufXyU1le7KXj87y66PVnkbSSATpO/i1LLnRSH4X+QGGf8D?= =?us-ascii?Q?sHBlQI2jV2iSEmNT/FoVgCsq9kJPxFXSRl97FPi6KOc3kgCNrC3WNA17sYy0?= =?us-ascii?Q?7X1gZzaoYsgxlh8ygo2EzGjQY185rY5Gf12T1d4CkI+xVFnvLxJ0m87OeDyn?= =?us-ascii?Q?tx04SctAkV5jh7XEwT11crDMy23vRYnO57f6v2W1Q2cpVti118r1YsSwNui8?= =?us-ascii?Q?PapzZkndhnJSDkxo5YEg3OhUeMZn6460z8mQdn4RNr01dqXG70h2tGXEvoPe?= =?us-ascii?Q?r4r7R9LpWDxsvA654FHpCN2faDwPo9OsDJ7u8fMtHK72OcFnZJKM39J8v266?= =?us-ascii?Q?3w3Z5YETaomrBXwgOthZfbexUtA2FCkLGmrvX7+tO6lE3e9asjyhaZfq/EN4?= =?us-ascii?Q?AbFWkWGzQac8t24ueFFd7rLiNSeqX8eRaO0XXK7BONrqBTaUe6SG3kM60zoQ?= =?us-ascii?Q?zq0O61Hs22S3f7fmC9zsm45evj9tsGBnCjwIri2Ehea6nxTc1tcsoa/WW4lo?= =?us-ascii?Q?8eoMZpsQuHzGntQ0s0q8U2OT1ADWLx2mAG53BpLcprtT0tY/ND8lGzorntl8?= =?us-ascii?Q?JaGQD7cHBfk4igsYC6B2VkFyYB/+8q5VeTYtQC+D?= Content-Type: multipart/mixed; boundary="_006_CY8PR15MB5602B407BBD1B7B7C5FF1D8CDB9B2CY8PR15MB5602namp_" X-OriginatorOrg: in.ibm.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY8PR15MB5602.namprd15.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9fe8cbfd-588d-4a0a-26c2-08dcd25ea997 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Sep 2024 12:38:39.3522 (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: iMf6n6jJSfFopTkR70rkNpv8XZI8Ec+RKNF1ijpRKriwPNYUvdfe9vufmkgeUNH0b67ECLAkujan96Zl/w0Dyg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR15MB4175 X-Proofpoint-GUID: bX0AvAtXIqvSKZDaXw7bzFn2xJahg-dt X-Proofpoint-ORIG-GUID: cGinnQYZMhcDaP-gyTcWEOF02JNvPAhs X-Proofpoint-UnRewURL: 0 URL was un-rewritten MIME-Version: 1.0 Subject: RE: AIX support X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.60.29 definitions=2024-09-10_12,2024-09-09_02,2024-09-02_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 mlxlogscore=999 lowpriorityscore=0 suspectscore=0 priorityscore=1501 bulkscore=0 adultscore=0 impostorscore=0 clxscore=1011 malwarescore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2408220000 definitions=main-2409110094 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_006_CY8PR15MB5602B407BBD1B7B7C5FF1D8CDB9B2CY8PR15MB5602namp_ Content-Type: multipart/alternative; boundary="_000_CY8PR15MB5602B407BBD1B7B7C5FF1D8CDB9B2CY8PR15MB5602namp_" --_000_CY8PR15MB5602B407BBD1B7B7C5FF1D8CDB9B2CY8PR15MB5602namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Heikki and Team, Thanks for your comments. Here are some more details > I still don't understand. We have Linux powerpc systems > running happily in the buildfarm. They are happy with the > current spinlock implementation. Why is this needed? > What happens without it? Not sure, by the time the below commits were made if there was a considerat= ion to use the gcc routines. My guess is that by using this PPC assembler code would make the code independent of the compilers. Even the Linux ppc would = use the same asm. Since gcc is available on AIX, I have replaced the asm changes wi= th the gcc routine __sync_lock_test_and_set() to set the lock. We have the gcc(package) build on the AIX platform and as part of the tests= uite there are no issues wrt this routine. We tried to test with the sample test program extracted from gcc testsuite. Also we discussed the same with our compiler teams internally and they see no issues using this routine. gcc-12.4.0/libgomp/testsuite/libgomp.c/sections-= 1.c -------- > > +#define TAS(lock) _check_lock((slock_t *) (lock), 0, 1) > > > > +#define S_UNLOCK(lock) _clear_lock((slock_t *) (lock), 0) > > > How is it different from __sync_lock_test_and_set()? Why is it needed? > What is AIX kernel memory operation? More Info: _check_lock routine description https://www.ibm.com/docs/en/aix/7.1?topic=3Dc-check-lock-subroutine The _check_lock subroutine performs an atomic (uninterruptible) sequenc= e of operations. The compare_and_swap subroutine is similar, but does not is= sue synchronization instructions and therefore is inappropriate for updatin= g lock words. This change need not be replaced with gcc routine as, these changes will be compiled for the non-gcc platforms only. This piece of code would never be compiled, as we are using only gcc to build. I tried to replace the AIX asm (under__ppc__ macro) with the gcc routine __sync_lock_test_and_set(), and all the buildfarm tests passed. Attached pa= tch and the buildfarm output. Please let me know your feedback. ---- > On a general note: it's your responsibility to explain all the changes > in a way that others will understand and can verify. It is especially > important for something critical and platform-specific like spinlocks, > because others don't have easy access to the hardware to test these > things independently. I also want to remind you that from the Postgres > community point of view, you are introducing support for a new platfo= rm, > AIX, not merely resurrecting the old stuff. Every change needs to be > justified anew. I do agree with you. To have a better understand on the previous changes, I was going through the history of the file(s_lock.h) and see that multiple changes that were made wrt the tas()routine specific to ppc/AIX. Below are the commit levels. I would kindly request, Tom Lane, to provide some insights on these changes. commit e3b06a871b63b90d4a08560ce184bb33324410b8 commit 50938576d482cd36e52a60b5bb1b56026e63962a << added tas() for = AIX commit 7233aae50bea503369b0a4ef9a3b6a3864c96812 commit ceb4f5ea9c2c6c2bd44d4799ff4a62c40a038894 << added tas() for = PPC commit f9ba0a7fe56398e89fe349476d9e437c3197ea28 commit eb5e4c58d137c9258eff5e41b09cb5fe4ed6d64c commit cd35d601b859d3a56632696b8d5293cbe547764b commit 109867748259d286dd01fce17d5f895ce59c68d5 commit 5cfa8dd3007d7e953c6a03b0fa2215d97c581b0c commit 631beeac3598a73dee2c2afa38fa2e734148031b commit bc2a050d40976441cdb963ad829316c23e8df0aa commit c41a1215f04912108068b909569551f42059db29 commit 50938576d482cd36e52a60b5bb1b56026e63962a Please let me know if would like to try on the hardware, we have recently setup a node in the OSU lab to try out. Thanks, Sriram. --_000_CY8PR15MB5602B407BBD1B7B7C5FF1D8CDB9B2CY8PR15MB5602namp_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hi Heikki and Team,

 

Thanks for your comments.

 

Here are some more details

 

    > I still don't understand. We have L= inux powerpc systems

    > running happily in the buildfarm. T= hey are happy with the

    > current spinlock implementation. Wh= y is this needed?

    > What happens without it?=

Not sure, by the time the below commits were made if there = was a consideration

to use the gcc routines. My guess is that by using this PPC= assembler code

would make the code independent of the compilers. Even the = Linux ppc would use the

same asm. Since gcc is available on AIX, I have replaced th= e asm changes with

the gcc routine __sync_lock_test_and_set() to set the lock.

 

We have the gcc(package) build on the AIX platform and as p= art of the testsuite

there are no issues wrt this routine. We tried to test with= the sample test

program extracted from gcc testsuite. Also we discussed the= same with our

compiler teams internally and they see no issues using this= routine.

 

    <attached sample test> gcc-12.4.0/= libgomp/testsuite/libgomp.c/sections-1.c

 

--------

    > > +#define TAS(lock)  =       _check_lock((slock_t *) (lock), 0, 1)     > >
    > > +#define S_UNLOCK(lock)   = _clear_lock((slock_t *) (lock), 0)
    > >

 

    > How is it different from __sync_loc= k_test_and_set()? Why is it needed? 
    > What is AIX kernel memory operation?

 

    More Info: _check_lock routine descripti= on

    https://www.ibm.com/docs/en/aix/7.1?topic=3Dc-check-lock-subroutine

    The _check_lock subroutine performs an a= tomic (uninterruptible) sequence of

    operations. The compare_and_swap subrout= ine is similar, but does not issue

    synchronization instructions and therefo= re is inappropriate for updating lock

    words.

 

This change need not be replaced with gcc routine as, these= changes will be

compiled for the non-gcc platforms only. This piece of code= would never be

compiled, as we are using only gcc to build.

 

I tried to replace the AIX asm (under__ppc__ macro) with th= e gcc routine

__sync_lock_test_and_set(), and all the buildfarm tests pas= sed. Attached patch

and the buildfarm output. Please let me know your feedback.=

 

 

 

----

 

    > On a general note: it's your respon= sibility to explain all the changes

    > in a way that others will understan= d and can verify. It is especially

    > important for something critical an= d platform-specific like spinlocks,

    > because others don't have easy acce= ss to the hardware to test these

    > things independently. I also want t= o remind you that from the Postgres

    > community point of view, you are in= troducing support for a new platform,

    > AIX, not merely resurrecting the ol= d stuff. Every change needs to be

    > justified anew.

 

I do agree with you. To have a better understand on the pre= vious changes,

I was going through the history of the file(s_lock.h) and s= ee that multiple

changes that were made wrt the tas()routine specific to ppc= /AIX. Below are

the commit levels.

I would kindly request, Tom Lane, to provide some insights = on these changes.

 

 

    commit e3b06a871b63b90d4a08560ce184bb333= 24410b8

    commit 50938576d482cd36e52a60b5bb1b56026= e63962a     << added tas() for AIX

    commit 7233aae50bea503369b0a4ef9a3b6a386= 4c96812

    commit ceb4f5ea9c2c6c2bd44d4799ff4a62c40= a038894     << added tas() for PPC

    commit f9ba0a7fe56398e89fe349476d9e437c3= 197ea28

    commit eb5e4c58d137c9258eff5e41b09cb5fe4= ed6d64c

    commit cd35d601b859d3a56632696b8d5293cbe= 547764b

    commit 109867748259d286dd01fce17d5f895ce= 59c68d5

    commit 5cfa8dd3007d7e953c6a03b0fa2215d97= c581b0c

    commit 631beeac3598a73dee2c2afa38fa2e734= 148031b

    commit bc2a050d40976441cdb963ad829316c23= e8df0aa

    commit c41a1215f04912108068b909569551f42= 059db29

    commit 50938576d482cd36e52a60b5bb1b56026= e63962a

 

 

Please let me know if would like to try on the hardware, we= have recently

setup a node in the OSU lab to try out.

 

Thanks,

Sriram.

--_000_CY8PR15MB5602B407BBD1B7B7C5FF1D8CDB9B2CY8PR15MB5602namp_-- --_006_CY8PR15MB5602B407BBD1B7B7C5FF1D8CDB9B2CY8PR15MB5602namp_ Content-Type: application/octet-stream; name="0001-AIX-support-revert-the-changes-from-0b16bb8776bb8.v4.patch" Content-Description: 0001-AIX-support-revert-the-changes-from-0b16bb8776bb8.v4.patch Content-Disposition: attachment; filename="0001-AIX-support-revert-the-changes-from-0b16bb8776bb8.v4.patch"; size=46025; creation-date="Wed, 11 Sep 2024 12:05:26 GMT"; modification-date="Wed, 11 Sep 2024 12:05:26 GMT" Content-Transfer-Encoding: base64 RnJvbSBmMTYyZTdkMDFmMzQ5NTdjOTA2Zjk2Y2RlODY1OTM3ZTA1ZjE1MDM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTcmlyYW0gUksgPHNyaXJhbS5ya0Bpbi5pYm0uY29tPgpEYXRl OiBNb24sIDIwIE1heSAyMDI0IDAxOjM4OjU5IC0wNTAwClN1YmplY3Q6IFtQQVRDSCAxLzFdIEFJ WCBzdXBwb3J0LCByZXZlcnQgdGhlIGNoYW5nZXMgZnJvbSAwYjE2YmI4Nzc2YmI4LiBUcmltCiBB SVgvWExDIGNoYW5nZXMgdG8gc3VwcG9ydCBnY2Mgb25seS4KCiAtIFJldmlldyBjb21tZW50cyBm cm9tIEhlaWtraS4KIC0gUmVwbGFjZSB0YXMoKSBBSVggYXNtIHdpdGggZ2NjIF9fc3luY19sb2Nr X3Rlc3RfYW5kX3NldCgpLgogLSBGaXggdGFzKCkgZm9yIHBvd2VyUEMuCi0tLQogTWFrZWZpbGUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyIC0KIGNvbmZpZ3VyZSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzNyArKystLS0KIGNvbmZpZ3Vy ZS5hYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyOCArKy0tLQogZG9jL3Ny Yy9zZ21sL2RmdW5jLnNnbWwgICAgICAgICAgICAgICAgICAgICAgIHwgIDE5ICsrKwogZG9jL3Ny Yy9zZ21sL2luc3RhbGxhdGlvbi5zZ21sICAgICAgICAgICAgICAgIHwgMTE4ICsrKysrKysrKysr KysrKysrLQogZG9jL3NyYy9zZ21sL3J1bnRpbWUuc2dtbCAgICAgICAgICAgICAgICAgICAgIHwg IDIzICsrKysKIG1lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICA1NyArKysrKy0tLS0KIHNyYy9NYWtlZmlsZS5zaGxpYiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAyOSArKysrKwogc3JjL2JhY2tlbmQvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDIwICsrKwogc3JjL2JhY2tlbmQvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAg ICAgICAgIHwgIDE1ICsrKwogc3JjL2JhY2tlbmQvcG9ydC9haXgvbWtsZGV4cG9ydC5zaCAgICAg ICAgICAgIHwgIDYxICsrKysrKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jICAg ICAgICAgICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcHNfc3RhdHVzLmMg ICAgICAgICAgICB8ICAgNCArLQogc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3QvMDEwX3BnX2Jhc2Vi YWNrdXAucGwgIHwgICAzICstCiBzcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwOF91bnRhci5w bCAgICAgICAgfCAgIDMgKy0KIHNyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDEwX2NsaWVudF91 bnRhci5wbCB8ICAgMyArLQogc3JjL2luY2x1ZGUvYy5oICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICA0ICstCiBzcmMvaW5jbHVkZS9wb3J0L2FpeC5oICAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDYgKwogc3JjL2luY2x1ZGUvc3RvcmFnZS9zX2xvY2suaCAgICAgICAgICAgICAg ICAgIHwgIDYyICsrKy0tLS0tLQogc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUgICAgICAg ICAgICAgICAgIHwgICAyICstCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9tZXNvbi5idWlsZCAgICAg ICAgICAgICAgfCAgIDUgKy0KIHNyYy9tYWtlZmlsZXMvTWFrZWZpbGUuYWl4ICAgICAgICAgICAg ICAgICAgICB8ICAzOSArKysrKysKIHNyYy9wb3J0L1JFQURNRSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgMiArLQogc3JjL3BvcnQvc3RyZXJyb3IuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAyICsKIHNyYy90ZW1wbGF0ZS9haXggICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAxNCArKysKIHNyYy90ZXN0L3JlZ3Jlc3MvTWFrZWZpbGUgICAgICAgICAgICAg ICAgICAgICB8ICAgNSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nhbml0eV9jaGVjay5v dXQgICAgfCAgMjkgKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdGVzdF9zZXR1cC5v dXQgICAgICB8ICAgNCArCiBzcmMvdGVzdC9yZWdyZXNzL3JlZ3Jlc3MuYyAgICAgICAgICAgICAg ICAgICAgfCAgNDAgKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zYW5pdHlfY2hlY2suc3Fs ICAgICAgICAgfCAgMjYgKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvdGVzdF9zZXR1cC5zcWwg ICAgICAgICAgIHwgICA1ICsKIHNyYy90b29scy9nZW5fZXhwb3J0LnBsICAgICAgICAgICAgICAg ICAgICAgICB8ICAxMSArLQogc3JjL3Rvb2xzL3BnaW5jbHVkZS9oZWFkZXJzY2hlY2sgICAgICAg ICAgICAgIHwgICAxICsKIDMzIGZpbGVzIGNoYW5nZWQsIDU1NCBpbnNlcnRpb25zKCspLCAxMjcg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA3NTUgc3JjL2JhY2tlbmQvcG9ydC9haXgvbWts ZGV4cG9ydC5zaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL3BvcnQvYWl4LmgKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvbWFrZWZpbGVzL01ha2VmaWxlLmFpeAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy90ZW1wbGF0ZS9haXgKCmRpZmYgLS1naXQgYS9NYWtlZmlsZSBiL01ha2VmaWxl CmluZGV4IDhhMmVjOTM5NmIuLjliYzFhNGVjMTcgMTAwNjQ0Ci0tLSBhL01ha2VmaWxlCisrKyBi L01ha2VmaWxlCkBAIC0xMyw4ICsxMyw2IEBACiAKICMgQUlYIG1ha2UgZGVmYXVsdHMgdG8gYnVp bGRpbmcgKmV2ZXJ5KiB0YXJnZXQgb2YgdGhlIGZpcnN0IHJ1bGUuICBTdGFydCB3aXRoCiAjIGEg c2luZ2xlLXRhcmdldCwgZW1wdHkgcnVsZSB0byBtYWtlIHRoZSBvdGhlciB0YXJnZXRzIG5vbi1k ZWZhdWx0LgotIyAoV2UgZG9uJ3Qgc3VwcG9ydCBBSVggYW55bW9yZSwgYnV0IGlmIHNvbWVvbmUg dHJpZXMgdG8gYnVpbGQgb24gQUlYIGFueXdheSwKLSMgYXQgbGVhc3QgdGhleSdsbCBnZXQgdGhl IGluc3RydWN0aW9ucyB0byBydW4gJ2NvbmZpZ3VyZScgZmlyc3QuKQogYWxsOgogCiBhbGwgY2hl Y2sgaW5zdGFsbCBpbnN0YWxsZGlycyBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLXBhcmFsbGVs IHVuaW5zdGFsbCBjbGVhbiBkaXN0Y2xlYW4gbWFpbnRhaW5lci1jbGVhbiBkaXN0IGRpc3RjaGVj ayB3b3JsZCBjaGVjay13b3JsZCBpbnN0YWxsLXdvcmxkIGluc3RhbGxjaGVjay13b3JsZDoKZGlm ZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQppbmRleCA4OTY0NGYyMjQ5Li5mMjE4YjJl MDQwIDEwMDc1NQotLS0gYS9jb25maWd1cmUKKysrIGIvY29uZmlndXJlCkBAIC0yOTg4LDYgKzI5 ODgsNyBAQCBlbHNlCiAjIC0td2l0aC10ZW1wbGF0ZSBub3QgZ2l2ZW4KIAogY2FzZSAkaG9zdF9v cyBpbgorICAgICBhaXgqKSB0ZW1wbGF0ZT1haXggOzsKICAgY3lnd2luKnxtc3lzKikgdGVtcGxh dGU9Y3lnd2luIDs7CiAgIGRhcndpbiopIHRlbXBsYXRlPWRhcndpbiA7OwogZHJhZ29uZmx5Kikg dGVtcGxhdGU9bmV0YnNkIDs7CkBAIC02ODQ4LDcgKzY4NDksNiBAQCBpZiB0ZXN0IHgiJHBnYWNf Y3ZfcHJvZ19DWFhfY3h4ZmxhZ3NfX2Zub19zdHJpY3RfYWxpYXNpbmciID0geCJ5ZXMiOyB0aGVu CiAgIENYWEZMQUdTPSIke0NYWEZMQUdTfSAtZm5vLXN0cmljdC1hbGlhc2luZyIKIGZpCiAKLQog ZmkKIAogIyBJZiB0aGUgY29tcGlsZXIga25vd3MgaG93IHRvIGhpZGUgc3ltYm9scywgYWRkIHRo ZSBzd2l0Y2ggbmVlZGVkIGZvciB0aGF0IHRvCkBAIC0xMjg2MCw3ICsxMjg2MCw4IEBAIGZpCiAK IGZpCiAKLSMgTm90ZTogV2UgY2FuIHRlc3QgZm9yIGxpYmxkYXBfciBvbmx5IGFmdGVyIHdlIGtu b3cgUFRIUkVBRF9MSUJTCisjIE5vdGU6IFdlIGNhbiB0ZXN0IGZvciBsaWJsZGFwX3Igb25seSBh ZnRlciB3ZSBrbm93IFBUSFJFQURfTElCUzsKKyMgYWxzbywgb24gQUlYLCB3ZSBtYXkgbmVlZCB0 byBoYXZlIG9wZW5zc2wgaW4gTElCUyBmb3IgdGhpcyBzdGVwLgogaWYgdGVzdCAiJHdpdGhfbGRh cCIgPSB5ZXMgOyB0aGVuCiAgIF9MSUJTPSIkTElCUyIKICAgaWYgdGVzdCAiJFBPUlROQU1FIiAh PSAid2luMzIiOyB0aGVuCkBAIC0xNjk1MSwyOCArMTY5NTIsMTggQEAgX0FDRU9GCiAKIAogIyBD b21wdXRlIG1heGltdW0gYWxpZ25tZW50IG9mIGFueSBiYXNpYyB0eXBlLgotIwotIyBXZSByZXF1 aXJlICdkb3VibGUnIHRvIGhhdmUgdGhlIHN0cmljdGVzdCBhbGlnbm1lbnQgYW1vbmcgdGhlIGJh c2ljIHR5cGVzLAotIyBiZWNhdXNlIG90aGVyd2lzZSB0aGUgQyBBQkkgbWlnaHQgaW1wb3NlIDgt Ynl0ZSBhbGlnbm1lbnQgb24gc29tZSBvZiB0aGUKLSMgb3RoZXIgQyB0eXBlcyB0aGF0IGNvcnJl c3BvbmQgdG8gVFlQQUxJR05fRE9VQkxFIFNRTCB0eXBlcy4gIFRoYXQgY291bGQKLSMgY2F1c2Ug YSBtaXNtYXRjaCBiZXR3ZWVuIHRoZSB0dXBsZSBsYXlvdXQgYW5kIHRoZSBDIHN0cnVjdCBsYXlv dXQgb2YgYQotIyBjYXRhbG9nIHR1cGxlLiAgV2UgdXNlZCB0byBjYXJlZnVsbHkgb3JkZXIgY2F0 YWxvZyBjb2x1bW5zIHN1Y2ggdGhhdCBhbnkKLSMgZml4ZWQtd2lkdGgsIGF0dGFsaWduPTQgY29s dW1ucyB3ZXJlIGF0IG9mZnNldHMgZGl2aXNpYmxlIGJ5IDggcmVnYXJkbGVzcwotIyBvZiBNQVhJ TVVNX0FMSUdOT0YgdG8gYXZvaWQgdGhhdCwgYnV0IHdlIG5vIGxvbmdlciBzdXBwb3J0IGFueSBw bGF0Zm9ybXMKLSMgd2hlcmUgVFlQQUxJR05fRE9VQkxFICE9IE1BWElNVU1fQUxJR05PRi4KLSMK LSMgV2UgYXNzdW1lIHdpdGhvdXQgY2hlY2tpbmcgdGhhdCBsb25nJ3MgYWxpZ25tZW50IGlzIGF0 IGxlYXN0IGFzIHN0cm9uZyBhcwotIyBjaGFyLCBzaG9ydCwgb3IgaW50LiAgTm90ZSB0aGF0IHdl IGludGVudGlvbmFsbHkgZG8gbm90IGNvbnNpZGVyIGFueSB0eXBlcwotIyB3aWRlciB0aGFuIDY0 IGJpdHMsIGFzIGFsbG93aW5nIE1BWElNVU1fQUxJR05PRiB0byBleGNlZWQgOCB3b3VsZCBiZSB0 b28KLSMgbXVjaCBvZiBhIHBlbmFsdHkgZm9yIGRpc2sgYW5kIG1lbW9yeSBzcGFjZS4KLQotTUFY X0FMSUdOT0Y9JGFjX2N2X2FsaWdub2ZfZG91YmxlCisjIFdlIGFzc3VtZSBsb25nJ3MgYWxpZ25t ZW50IGlzIGF0IGxlYXN0IGFzIHN0cm9uZyBhcyBjaGFyLCBzaG9ydCwgb3IgaW50OworIyBidXQg d2UgbXVzdCBjaGVjayBsb25nIGxvbmcgKGlmIGl0IGlzIGJlaW5nIHVzZWQgZm9yIGludDY0KSBh bmQgZG91YmxlLgorIyBOb3RlIHRoYXQgd2UgaW50ZW50aW9uYWxseSBkbyBub3QgY29uc2lkZXIg YW55IHR5cGVzIHdpZGVyIHRoYW4gNjQgYml0cywKKyMgYXMgYWxsb3dpbmcgTUFYSU1VTV9BTElH Tk9GIHRvIGV4Y2VlZCA4IHdvdWxkIGJlIHRvbyBtdWNoIG9mIGEgcGVuYWx0eQorIyBmb3IgZGlz ayBhbmQgbWVtb3J5IHNwYWNlLgogCi1pZiB0ZXN0ICRhY19jdl9hbGlnbm9mX2xvbmcgLWd0ICRN QVhfQUxJR05PRiA7IHRoZW4KLSAgYXNfZm5fZXJyb3IgJD8gImFsaWdubWVudCBvZiAnbG9uZycg aXMgZ3JlYXRlciB0aGFuIHRoZSBhbGlnbm1lbnQgb2YgJ2RvdWJsZSciICIkTElORU5PIiA1CitN QVhfQUxJR05PRj0kYWNfY3ZfYWxpZ25vZl9sb25nCitpZiB0ZXN0ICRNQVhfQUxJR05PRiAtbHQg JGFjX2N2X2FsaWdub2ZfZG91YmxlIDsgdGhlbgorICBNQVhfQUxJR05PRj0kYWNfY3ZfYWxpZ25v Zl9kb3VibGUKIGZpCi1pZiB0ZXN0IHgiJEhBVkVfTE9OR19MT05HX0lOVF82NCIgPSB4eWVzICYm IHRlc3QgJGFjX2N2X2FsaWdub2ZfbG9uZ19sb25nX2ludCAtZ3QgJE1BWF9BTElHTk9GIDsgdGhl bgotICBhc19mbl9lcnJvciAkPyAiYWxpZ25tZW50IG9mICdsb25nIGxvbmcgaW50JyBpcyBncmVh dGVyIHRoYW4gdGhlIGFsaWdubWVudCBvZiAnZG91YmxlJyIgIiRMSU5FTk8iIDUKK2lmIHRlc3Qg eCIkSEFWRV9MT05HX0xPTkdfSU5UXzY0IiA9IHh5ZXMgJiYgdGVzdCAkTUFYX0FMSUdOT0YgLWx0 ICRhY19jdl9hbGlnbm9mX2xvbmdfbG9uZ19pbnQgOyB0aGVuCisgIE1BWF9BTElHTk9GPSIkYWNf Y3ZfYWxpZ25vZl9sb25nX2xvbmdfaW50IgogZmkKIAogY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VP RgpAQCAtMTcwOTAsNyArMTcwODEsNyBAQCBlbHNlCiAvKiBlbmQgY29uZmRlZnMuaC4gICovCiAK IC8qIFRoaXMgbXVzdCBtYXRjaCB0aGUgY29ycmVzcG9uZGluZyBjb2RlIGluIGMuaDogKi8KLSNp ZiBkZWZpbmVkKF9fR05VQ19fKSB8fCBkZWZpbmVkKF9fU1VOUFJPX0MpCisjaWYgZGVmaW5lZChf X0dOVUNfXykgfHwgZGVmaW5lZChfX1NVTlBST19DKSB8fCBkZWZpbmVkKF9fSUJNQ19fKQogI2Rl ZmluZSBwZ19hdHRyaWJ1dGVfYWxpZ25lZChhKSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKGEpKSkK ICNlbGlmIGRlZmluZWQoX01TQ19WRVIpCiAjZGVmaW5lIHBnX2F0dHJpYnV0ZV9hbGlnbmVkKGEp IF9fZGVjbHNwZWMoYWxpZ24oYSkpCmRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1 cmUuYWMKaW5kZXggYzczMjJlMjkyYy4uYTA1OTUwOWNkOSAxMDA2NDQKLS0tIGEvY29uZmlndXJl LmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtNjIsNiArNjIsNyBAQCBQR0FDX0FSR19SRVEod2l0 aCwgdGVtcGxhdGUsIFtOQU1FXSwgW292ZXJyaWRlIG9wZXJhdGluZyBzeXN0ZW0gdGVtcGxhdGVd LAogIyAtLXdpdGgtdGVtcGxhdGUgbm90IGdpdmVuCiAKIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICAg YWl4KikgdGVtcGxhdGU9YWl4IDs7CiAgIGN5Z3dpbip8bXN5cyopIHRlbXBsYXRlPWN5Z3dpbiA7 OwogICBkYXJ3aW4qKSB0ZW1wbGF0ZT1kYXJ3aW4gOzsKIGRyYWdvbmZseSopIHRlbXBsYXRlPW5l dGJzZCA7OwpAQCAtMTM4NSw3ICsxMzg2LDggQEAgaWYgdGVzdCAiJHdpdGhfenN0ZCIgPSB5ZXMg OyB0aGVuCiAgIEFDX0NIRUNLX0xJQih6c3RkLCBaU1REX2NvbXByZXNzLCBbXSwgW0FDX01TR19F UlJPUihbbGlicmFyeSAnenN0ZCcgaXMgcmVxdWlyZWQgZm9yIFpTVEQgc3VwcG9ydF0pXSkKIGZp CiAKLSMgTm90ZTogV2UgY2FuIHRlc3QgZm9yIGxpYmxkYXBfciBvbmx5IGFmdGVyIHdlIGtub3cg UFRIUkVBRF9MSUJTCisjIE5vdGU6IFdlIGNhbiB0ZXN0IGZvciBsaWJsZGFwX3Igb25seSBhZnRl ciB3ZSBrbm93IFBUSFJFQURfTElCUzsKKyMgYWxzbywgb24gQUlYLCB3ZSBtYXkgbmVlZCB0byBo YXZlIG9wZW5zc2wgaW4gTElCUyBmb3IgdGhpcyBzdGVwLgogaWYgdGVzdCAiJHdpdGhfbGRhcCIg PSB5ZXMgOyB0aGVuCiAgIF9MSUJTPSIkTElCUyIKICAgaWYgdGVzdCAiJFBPUlROQU1FIiAhPSAi d2luMzIiOyB0aGVuCkBAIC0xNjQzLDggKzE2NDUsOSBAQCBQR0FDX1RZUEVfTE9DQUxFX1QKICMg c3BlbGxpbmcgaXQgdW5kZXJzdGFuZHMsIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGgKICMgX19k ZWNsc3BlYyhyZXN0cmljdCkuIFRoZXJlZm9yZSB3ZSBkZWZpbmUgcGdfcmVzdHJpY3QgdG8gdGhl CiAjIGFwcHJvcHJpYXRlIGRlZmluaXRpb24sIHdoaWNoIHByZXN1bWFibHkgd29uJ3QgY29uZmxp Y3QuCisjCiBBQ19DX1JFU1RSSUNUCi1pZiB0ZXN0ICIkYWNfY3ZfY19yZXN0cmljdCIgPSAibm8i OyB0aGVuCitpZiB0ZXN0ICIkYWNfY3ZfY19yZXN0cmljdCIgPSAibm8iIDsgdGhlbgogICBwZ19y ZXN0cmljdD0iIgogZWxzZQogICBwZ19yZXN0cmljdD0iJGFjX2N2X2NfcmVzdHJpY3QiCkBAIC0x OTk2LDIyICsxOTk5LDExIEBAIGZpCiBBQ19DSEVDS19BTElHTk9GKGRvdWJsZSkKIAogIyBDb21w dXRlIG1heGltdW0gYWxpZ25tZW50IG9mIGFueSBiYXNpYyB0eXBlLgotIwotIyBXZSByZXF1aXJl ICdkb3VibGUnIHRvIGhhdmUgdGhlIHN0cmljdGVzdCBhbGlnbm1lbnQgYW1vbmcgdGhlIGJhc2lj IHR5cGVzLAotIyBiZWNhdXNlIG90aGVyd2lzZSB0aGUgQyBBQkkgbWlnaHQgaW1wb3NlIDgtYnl0 ZSBhbGlnbm1lbnQgb24gc29tZSBvZiB0aGUKLSMgb3RoZXIgQyB0eXBlcyB0aGF0IGNvcnJlc3Bv bmQgdG8gVFlQQUxJR05fRE9VQkxFIFNRTCB0eXBlcy4gIFRoYXQgY291bGQKLSMgY2F1c2UgYSBt aXNtYXRjaCBiZXR3ZWVuIHRoZSB0dXBsZSBsYXlvdXQgYW5kIHRoZSBDIHN0cnVjdCBsYXlvdXQg b2YgYQotIyBjYXRhbG9nIHR1cGxlLiAgV2UgdXNlZCB0byBjYXJlZnVsbHkgb3JkZXIgY2F0YWxv ZyBjb2x1bW5zIHN1Y2ggdGhhdCBhbnkKLSMgZml4ZWQtd2lkdGgsIGF0dGFsaWduPTQgY29sdW1u cyB3ZXJlIGF0IG9mZnNldHMgZGl2aXNpYmxlIGJ5IDggcmVnYXJkbGVzcwotIyBvZiBNQVhJTVVN X0FMSUdOT0YgdG8gYXZvaWQgdGhhdCwgYnV0IHdlIG5vIGxvbmdlciBzdXBwb3J0IGFueSBwbGF0 Zm9ybXMKLSMgd2hlcmUgVFlQQUxJR05fRE9VQkxFICE9IE1BWElNVU1fQUxJR05PRi4KLSMKLSMg V2UgYXNzdW1lIHdpdGhvdXQgY2hlY2tpbmcgdGhhdCBsb25nJ3MgYWxpZ25tZW50IGlzIGF0IGxl YXN0IGFzIHN0cm9uZyBhcwotIyBjaGFyLCBzaG9ydCwgb3IgaW50LiAgTm90ZSB0aGF0IHdlIGlu dGVudGlvbmFsbHkgZG8gbm90IGNvbnNpZGVyIGFueSB0eXBlcwotIyB3aWRlciB0aGFuIDY0IGJp dHMsIGFzIGFsbG93aW5nIE1BWElNVU1fQUxJR05PRiB0byBleGNlZWQgOCB3b3VsZCBiZSB0b28K LSMgbXVjaCBvZiBhIHBlbmFsdHkgZm9yIGRpc2sgYW5kIG1lbW9yeSBzcGFjZS4KLQotTUFYX0FM SUdOT0Y9JGFjX2N2X2FsaWdub2ZfZG91YmxlCisjIFdlIGFzc3VtZSBsb25nJ3MgYWxpZ25tZW50 IGlzIGF0IGxlYXN0IGFzIHN0cm9uZyBhcyBjaGFyLCBzaG9ydCwgb3IgaW50OworIyBidXQgd2Ug bXVzdCBjaGVjayBsb25nIGxvbmcgKGlmIGl0IGlzIGJlaW5nIHVzZWQgZm9yIGludDY0KSBhbmQg ZG91YmxlLgorIyBOb3RlIHRoYXQgd2UgaW50ZW50aW9uYWxseSBkbyBub3QgY29uc2lkZXIgYW55 IHR5cGVzIHdpZGVyIHRoYW4gNjQgYml0cywKKyMgYXMgYWxsb3dpbmcgTUFYSU1VTV9BTElHTk9G IHRvIGV4Y2VlZCA4IHdvdWxkIGJlIHRvbyBtdWNoIG9mIGEgcGVuYWx0eQorIyBmb3IgZGlzayBh bmQgbWVtb3J5IHNwYWNlLgogCiBpZiB0ZXN0ICRhY19jdl9hbGlnbm9mX2xvbmcgLWd0ICRNQVhf QUxJR05PRiA7IHRoZW4KICAgQUNfTVNHX0VSUk9SKFthbGlnbm1lbnQgb2YgJ2xvbmcnIGlzIGdy ZWF0ZXIgdGhhbiB0aGUgYWxpZ25tZW50IG9mICdkb3VibGUnXSkKZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9kZnVuYy5zZ21sIGIvZG9jL3NyYy9zZ21sL2RmdW5jLnNnbWwKaW5kZXggYjk0YWVm Y2QwYy4uNTU0ZjlmYWM0YyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RmdW5jLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL2RmdW5jLnNnbWwKQEAgLTIwMiw0ICsyMDIsMjMgQEAgZ2NjIC1HIC1v IGZvby5zbyBmb28ubwogICBzZXJ2ZXIgZXhwZWN0cyB0byBmaW5kIHRoZSBzaGFyZWQgbGlicmFy eSBmaWxlcy4KICA8L3BhcmE+CiAKKzwhLS0KK1VuZGVyIEFJWCwgb2JqZWN0IGZpbGVzIGFyZSBj b21waWxlZCBub3JtYWxseSBidXQgYnVpbGRpbmcgdGhlIHNoYXJlZAorbGlicmFyeSByZXF1aXJl cyBhIGNvdXBsZSBvZiBzdGVwcy4gIEZpcnN0LCBjcmVhdGUgdGhlIG9iamVjdCBmaWxlOgorLm5m CitjYyA8b3RoZXIgZmxhZ3M+IC1jIGZvby5jCisuZmkKK1lvdSBtdXN0IHRoZW4gY3JlYXRlIGEg c3ltYm9sIFwqKGxxZXhwb3J0c1wqKHJxIGZpbGUgZm9yIHRoZSBvYmplY3QKK2ZpbGU6CisubmYK K21rbGRleHBvcnQgZm9vLm8gYHB3ZGAgJmd0OyBmb28uZXhwCisuZmkKK0ZpbmFsbHksIHlvdSBj YW4gY3JlYXRlIHRoZSBzaGFyZWQgbGlicmFyeToKKy5uZgorbGQgPG90aGVyIGZsYWdzPiAtSDUx MiAtVDUxMiAtbyBmb28uc28gLWUgX25vc3RhcnQgXGUKKyAgIC1iSTouLi4vbGliL3Bvc3RncmVz LmV4cCAtYkU6Zm9vLmV4cCBmb28ubyBcZQorICAgLWxtIC1sYyAyPi9kZXYvbnVsbAorLmZpCisg IC0tPgorCiA8L3NlY3QyPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2luc3RhbGxhdGlvbi5z Z21sIGIvZG9jL3NyYy9zZ21sL2luc3RhbGxhdGlvbi5zZ21sCmluZGV4IDFiMzJkNWNhNjIuLjYw ZTlhMzRhMDMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9pbnN0YWxsYXRpb24uc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvaW5zdGFsbGF0aW9uLnNnbWwKQEAgLTM0MDEsNyArMzQwMSw3IEBAIGV4 cG9ydCBNQU5QQVRICiAgIDxwYXJhPgogICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1 Y3RuYW1lPiBjYW4gYmUgZXhwZWN0ZWQgdG8gd29yayBvbiBjdXJyZW50CiAgICB2ZXJzaW9ucyBv ZiB0aGVzZSBvcGVyYXRpbmcgc3lzdGVtczogTGludXgsIFdpbmRvd3MsCi0gICBGcmVlQlNELCBP cGVuQlNELCBOZXRCU0QsIERyYWdvbkZseUJTRCwgbWFjT1MsIFNvbGFyaXMsIGFuZCBpbGx1bW9z LgorICAgRnJlZUJTRCwgT3BlbkJTRCwgTmV0QlNELCBEcmFnb25GbHlCU0QsIG1hY09TLCBBSVgs IFNvbGFyaXMsIGFuZCBpbGx1bW9zLgogICAgT3RoZXIgVW5peC1saWtlIHN5c3RlbXMgbWF5IGFs c28gd29yayBidXQgYXJlIG5vdCBjdXJyZW50bHkKICAgIGJlaW5nIHRlc3RlZC4gIEluIG1vc3Qg Y2FzZXMsIGFsbCBDUFUgYXJjaGl0ZWN0dXJlcyBzdXBwb3J0ZWQgYnkKICAgIGEgZ2l2ZW4gb3Bl cmF0aW5nIHN5c3RlbSB3aWxsIHdvcmsuICBMb29rIGluCkBAIC0zNDQ1LDYgKzM0NDUsMTIyIEBA IGV4cG9ydCBNQU5QQVRICiAgICBpbnN0YWxsYXRpb24gaXNzdWVzLgogICA8L3BhcmE+CiAKKyAg PHNlY3QyIGlkPSJpbnN0YWxsYXRpb24tbm90ZXMtYWl4Ij4KKyAgIDx0aXRsZT5BSVg8L3RpdGxl PgorCisgICA8aW5kZXh0ZXJtIHpvbmU9Imluc3RhbGxhdGlvbi1ub3Rlcy1haXgiPgorICAgIDxw cmltYXJ5PkFJWDwvcHJpbWFyeT4KKyAgICA8c2Vjb25kYXJ5Pmluc3RhbGxhdGlvbiBvbjwvc2Vj b25kYXJ5PgorICAgPC9pbmRleHRlcm0+CisKKyAgIDxwYXJhPgorICAgIFlvdSBjYW4gdXNlIEdD QyB0byBidWlsZCA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+CisgICAgb24g PHByb2R1Y3RuYW1lPkFJWDwvcHJvZHVjdG5hbWU+LgorICAgPC9wYXJhPgorCisgICA8cGFyYT4K KyAgICA8cHJvZHVjdG5hbWU+QUlYPC9wcm9kdWN0bmFtZT4gdmVyc2lvbnMgYmVmb3JlIDcuMSBh cmUgbm8gbG9uZ2VyCisgICAgdGVzdGVkIG5vciBzdXBwb3J0ZWQgYnkgdGhlIDxwcm9kdWN0bmFt ZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4KKyAgICBjb21tdW5pdHkuCisgICA8L3BhcmE+CisK KyAgIDxzZWN0MyBpZD0iaW5zdGFsbGF0aW9uLW5vdGVzLWFpeC1tZW0tbWFuYWdlbWVudCI+Cisg ICAgPHRpdGxlPk1lbW9yeSBNYW5hZ2VtZW50PC90aXRsZT4KKyAgICA8IS0tIGh0dHBzOi8vYXJj aGl2ZXMucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC82MDNiZ3FtcGw5LmZzZkBkYmEyLmludC5s aWJlcnR5cm1zLmNvbSAtLT4KKworICAgIDxwYXJhPgorICAgICBBSVggY2FuIGJlIHNvbWV3aGF0 IHBlY3VsaWFyIHdpdGggcmVnYXJkcyB0byB0aGUgd2F5IGl0IGRvZXMKKyAgICAgbWVtb3J5IG1h bmFnZW1lbnQuICBZb3UgY2FuIGhhdmUgYSBzZXJ2ZXIgd2l0aCBtYW55IG11bHRpcGxlcyBvZgor ICAgICBnaWdhYnl0ZXMgb2YgUkFNIGZyZWUsIGJ1dCBzdGlsbCBnZXQgb3V0IG9mIG1lbW9yeSBv ciBhZGRyZXNzCisgICAgIHNwYWNlIGVycm9ycyB3aGVuIHJ1bm5pbmcgYXBwbGljYXRpb25zLiAg T25lIGV4YW1wbGUKKyAgICAgaXMgbG9hZGluZyBvZiBleHRlbnNpb25zIGZhaWxpbmcgd2l0aCB1 bnVzdWFsIGVycm9ycy4KKyAgICAgRm9yIGV4YW1wbGUsIHJ1bm5pbmcgYXMgdGhlIG93bmVyIG9m IHRoZSBQb3N0Z3JlU1FMIGluc3RhbGxhdGlvbjoKKzxzY3JlZW4+Cis9IyBDUkVBVEUgRVhURU5T SU9OIHBscGVybDsKK0VSUk9SOiAgY291bGQgbm90IGxvYWQgbGlicmFyeSAiL29wdC9kYnMvcGdz cWwvbGliL3BscGVybC5zbyI6IEEgbWVtb3J5IGFkZHJlc3MgaXMgbm90IGluIHRoZSBhZGRyZXNz IHNwYWNlIGZvciB0aGUgcHJvY2Vzcy4KKzwvc2NyZWVuPgorICAgIFJ1bm5pbmcgYXMgYSBub24t b3duZXIgaW4gdGhlIGdyb3VwIHBvc3Nlc3NpbmcgdGhlIFBvc3RncmVTUUwKKyAgICBpbnN0YWxs YXRpb246Cis8c2NyZWVuPgorPSMgQ1JFQVRFIEVYVEVOU0lPTiBwbHBlcmw7CitFUlJPUjogIGNv dWxkIG5vdCBsb2FkIGxpYnJhcnkgIi9vcHQvZGJzL3Bnc3FsL2xpYi9wbHBlcmwuc28iOiBCYWQg YWRkcmVzcworPC9zY3JlZW4+CisgICAgIEFub3RoZXIgZXhhbXBsZSBpcyBvdXQgb2YgbWVtb3J5 IGVycm9ycyBpbiB0aGUgUG9zdGdyZVNRTCBzZXJ2ZXIKKyAgICAgbG9ncywgd2l0aCBldmVyeSBt ZW1vcnkgYWxsb2NhdGlvbiBuZWFyIG9yIGdyZWF0ZXIgdGhhbiAyNTYgTUIKKyAgICAgZmFpbGlu Zy4KKyAgICA8L3BhcmE+CisKKyAgICA8cGFyYT4KKyAgICAgVGhlIG92ZXJhbGwgY2F1c2Ugb2Yg YWxsIHRoZXNlIHByb2JsZW1zIGlzIHRoZSBkZWZhdWx0IGJpdHRlZG5lc3MKKyAgICAgYW5kIG1l bW9yeSBtb2RlbCB1c2VkIGJ5IHRoZSBzZXJ2ZXIgcHJvY2Vzcy4gIEJ5IGRlZmF1bHQsIGFsbAor ICAgICBiaW5hcmllcyBidWlsdCBvbiBBSVggYXJlIDMyLWJpdC4gIFRoaXMgZG9lcyBub3QgZGVw ZW5kIHVwb24KKyAgICAgaGFyZHdhcmUgdHlwZSBvciBrZXJuZWwgaW4gdXNlLiAgVGhlc2UgMzIt Yml0IHByb2Nlc3NlcyBhcmUKKyAgICAgbGltaXRlZCB0byA0IEdCIG9mIG1lbW9yeSBsYWlkIG91 dCBpbiAyNTYgTUIgc2VnbWVudHMgdXNpbmcgb25lCisgICAgIG9mIGEgZmV3IG1vZGVscy4gIFRo ZSBkZWZhdWx0IGFsbG93cyBmb3IgbGVzcyB0aGFuIDI1NiBNQiBpbiB0aGUKKyAgICAgaGVhcCBh cyBpdCBzaGFyZXMgYSBzaW5nbGUgc2VnbWVudCB3aXRoIHRoZSBzdGFjay4KKyAgICA8L3BhcmE+ CisKKyAgICA8cGFyYT4KKyAgICAgSW4gdGhlIGNhc2Ugb2YgdGhlIDxsaXRlcmFsPnBscGVybDwv bGl0ZXJhbD4gZXhhbXBsZSwgYWJvdmUsCisgICAgIGNoZWNrIHlvdXIgdW1hc2sgYW5kIHRoZSBw ZXJtaXNzaW9ucyBvZiB0aGUgYmluYXJpZXMgaW4geW91cgorICAgICBQb3N0Z3JlU1FMIGluc3Rh bGxhdGlvbi4gIFRoZSBiaW5hcmllcyBpbnZvbHZlZCBpbiB0aGF0IGV4YW1wbGUKKyAgICAgd2Vy ZSAzMi1iaXQgYW5kIGluc3RhbGxlZCBhcyBtb2RlIDc1MCBpbnN0ZWFkIG9mIDc1NS4gIER1ZSB0 byB0aGUKKyAgICAgcGVybWlzc2lvbnMgYmVpbmcgc2V0IGluIHRoaXMgZmFzaGlvbiwgb25seSB0 aGUgb3duZXIgb3IgYSBtZW1iZXIKKyAgICAgb2YgdGhlIHBvc3Nlc3NpbmcgZ3JvdXAgY2FuIGxv YWQgdGhlIGxpYnJhcnkuICBTaW5jZSBpdCBpc24ndAorICAgICB3b3JsZC1yZWFkYWJsZSwgdGhl IGxvYWRlciBwbGFjZXMgdGhlIG9iamVjdCBpbnRvIHRoZSBwcm9jZXNzJworICAgICBoZWFwIGlu c3RlYWQgb2YgdGhlIHNoYXJlZCBsaWJyYXJ5IHNlZ21lbnRzIHdoZXJlIGl0IHdvdWxkCisgICAg IG90aGVyd2lzZSBiZSBwbGFjZWQuCisgICAgPC9wYXJhPgorCisgICAgPHBhcmE+CisgICAgIFRo ZSA8cXVvdGU+aWRlYWw8L3F1b3RlPiBzb2x1dGlvbiBmb3IgdGhpcyBpcyB0byB1c2UgYSA2NC1i aXQKKyAgICAgYnVpbGQgb2YgUG9zdGdyZVNRTCwgYnV0IHRoYXQgaXMgbm90IGFsd2F5cyBwcmFj dGljYWwsIGJlY2F1c2UKKyAgICAgc3lzdGVtcyB3aXRoIDMyLWJpdCBwcm9jZXNzb3JzIGNhbiBi dWlsZCwgYnV0IG5vdCBydW4sIDY0LWJpdAorICAgICBiaW5hcmllcy4KKyAgICA8L3BhcmE+CisK KyAgICA8cGFyYT4KKyAgICAgSWYgYSAzMi1iaXQgYmluYXJ5IGlzIGRlc2lyZWQsIHNldCA8c3lt Ym9sPkxEUl9DTlRSTDwvc3ltYm9sPiB0bworICAgICA8bGl0ZXJhbD5NQVhEQVRBPTB4PHJlcGxh Y2VhYmxlPm48L3JlcGxhY2VhYmxlPjAwMDAwMDA8L2xpdGVyYWw+LAorICAgICB3aGVyZSAxICZs dDs9IG4gJmx0Oz0gOCwgYmVmb3JlIHN0YXJ0aW5nIHRoZSBQb3N0Z3JlU1FMIHNlcnZlciwKKyAg ICAgYW5kIHRyeSBkaWZmZXJlbnQgdmFsdWVzIGFuZCA8ZmlsZW5hbWU+cG9zdGdyZXNxbC5jb25m PC9maWxlbmFtZT4KKyAgICAgc2V0dGluZ3MgdG8gZmluZCBhIGNvbmZpZ3VyYXRpb24gdGhhdCB3 b3JrcyBzYXRpc2ZhY3RvcmlseS4gIFRoaXMKKyAgICAgdXNlIG9mIDxzeW1ib2w+TERSX0NOVFJM PC9zeW1ib2w+IHRlbGxzIEFJWCB0aGF0IHlvdSB3YW50IHRoZQorICAgICBzZXJ2ZXIgdG8gaGF2 ZSA8c3ltYm9sPk1BWERBVEE8L3N5bWJvbD4gYnl0ZXMgc2V0IGFzaWRlIGZvciB0aGUKKyAgICAg aGVhcCwgYWxsb2NhdGVkIGluIDI1NiBNQiBzZWdtZW50cy4gIFdoZW4geW91IGZpbmQgYSB3b3Jr YWJsZQorICAgICBjb25maWd1cmF0aW9uLAorICAgICA8Y29tbWFuZD5sZGVkaXQ8L2NvbW1hbmQ+ IGNhbiBiZSB1c2VkIHRvIG1vZGlmeSB0aGUgYmluYXJpZXMgc28KKyAgICAgdGhhdCB0aGV5IGRl ZmF1bHQgdG8gdXNpbmcgdGhlIGRlc2lyZWQgaGVhcCBzaXplLiAgUG9zdGdyZVNRTCBjYW4KKyAg ICAgYWxzbyBiZSByZWJ1aWx0LCBwYXNzaW5nIDxsaXRlcmFsPmNvbmZpZ3VyZQorICAgICBMREZM QUdTPSItV2wsLWJtYXhkYXRhOjB4PHJlcGxhY2VhYmxlPm48L3JlcGxhY2VhYmxlPjAwMDAwMDAi PC9saXRlcmFsPgorICAgICB0byBhY2hpZXZlIHRoZSBzYW1lIGVmZmVjdC4KKyAgICA8L3BhcmE+ CisKKyAgICA8cGFyYT4KKyAgICAgRm9yIGEgNjQtYml0IGJ1aWxkLCBzZXQgPGVudmFyPk9CSkVD VF9NT0RFPC9lbnZhcj4gdG8gNjQgYW5kCisgICAgIHBhc3MgPGxpdGVyYWw+Q0M9ImdjYyAtbWFp eDY0IjwvbGl0ZXJhbD4KKyAgICAgYW5kIDxsaXRlcmFsPkxERkxBR1M9Ii1XbCwtYmJpZ3RvYyI8 L2xpdGVyYWw+CisgICAgIHRvIDxjb21tYW5kPmNvbmZpZ3VyZTwvY29tbWFuZD4uIAorICAgICBJ ZiB5b3Ugb21pdCB0aGUgZXhwb3J0IG9mCisgICAgPGVudmFyPk9CSkVDVF9NT0RFPC9lbnZhcj4s IHlvdXIgYnVpbGQgbWF5IGZhaWwgd2l0aCBsaW5rZXIgZXJyb3JzLiAgV2hlbgorICAgIDxlbnZh cj5PQkpFQ1RfTU9ERTwvZW52YXI+IGlzIHNldCwgaXQgdGVsbHMgQUlYJ3MgYnVpbGQgdXRpbGl0 aWVzCisgICAgc3VjaCBhcyA8Y29tbWFuZD5hcjwvY29tbWFuZD4sIDxjb21tYW5kPmFzPC9jb21t YW5kPiwgYW5kIDxjb21tYW5kPmxkPC9jb21tYW5kPiB3aGF0CisgICAgdHlwZSBvZiBvYmplY3Rz IHRvIGRlZmF1bHQgdG8gaGFuZGxpbmcuCisgICAgPC9wYXJhPgorCisgICAgPHBhcmE+CisgICAg IEJ5IGRlZmF1bHQsIG92ZXJjb21taXQgb2YgcGFnaW5nIHNwYWNlIGNhbiBoYXBwZW4uICBXaGls ZSB3ZSBoYXZlCisgICAgIG5vdCBzZWVuIHRoaXMgb2NjdXIsIEFJWCB3aWxsIGtpbGwgcHJvY2Vz c2VzIHdoZW4gaXQgcnVucyBvdXQgb2YKKyAgICAgbWVtb3J5IGFuZCB0aGUgb3ZlcmNvbW1pdCBp cyBhY2Nlc3NlZC4gIFRoZSBjbG9zZXN0IHRvIHRoaXMgdGhhdAorICAgICB3ZSBoYXZlIHNlZW4g aXMgZm9yayBmYWlsaW5nIGJlY2F1c2UgdGhlIHN5c3RlbSBkZWNpZGVkIHRoYXQKKyAgICAgdGhl cmUgd2FzIG5vdCBlbm91Z2ggbWVtb3J5IGZvciBhbm90aGVyIHByb2Nlc3MuICBMaWtlIG1hbnkg b3RoZXIKKyAgICAgcGFydHMgb2YgQUlYLCB0aGUgcGFnaW5nIHNwYWNlIGFsbG9jYXRpb24gbWV0 aG9kIGFuZAorICAgICBvdXQtb2YtbWVtb3J5IGtpbGwgaXMgY29uZmlndXJhYmxlIG9uIGEgc3lz dGVtLSBvciBwcm9jZXNzLXdpZGUKKyAgICAgYmFzaXMgaWYgdGhpcyBiZWNvbWVzIGEgcHJvYmxl bS4KKyAgICA8L3BhcmE+CisgICA8L3NlY3QzPgorICA8L3NlY3QyPgorCiAgIDxzZWN0MiBpZD0i aW5zdGFsbGF0aW9uLW5vdGVzLWN5Z3dpbiI+CiAgICA8dGl0bGU+Q3lnd2luPC90aXRsZT4KIApk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3J1bnRpbWUuc2dtbCBiL2RvYy9zcmMvc2dtbC9ydW50 aW1lLnNnbWwKaW5kZXggNjA0N2I4MTcxZC4uNjQ3NTNkOWMwMSAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3J1bnRpbWUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcnVudGltZS5zZ21sCkBAIC04 OTEsNiArODkxLDI5IEBAIHBzcWw6IGVycm9yOiBjb25uZWN0aW9uIHRvIHNlcnZlciBvbiBzb2Nr ZXQgIi90bXAvLnMuUEdTUUwuNTQzMiIgZmFpbGVkOiBObyBzdWNoCiAKIAogICAgIDx2YXJpYWJs ZWxpc3Q+CisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48c3lzdGVtaXRlbSBjbGFz cz0ib3NuYW1lIj5BSVg8L3N5c3RlbWl0ZW0+CisgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkFJ WDwvcHJpbWFyeT48c2Vjb25kYXJ5PklQQyBjb25maWd1cmF0aW9uPC9zZWNvbmRhcnk+PC9pbmRl eHRlcm0+CisgICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+Cisg ICAgICAgIEl0IHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5IHRvIGRvCisgICAgICAgIGFueSBzcGVj aWFsIGNvbmZpZ3VyYXRpb24gZm9yIHN1Y2ggcGFyYW1ldGVycyBhcworICAgICAgICA8dmFybmFt ZT5TSE1NQVg8L3Zhcm5hbWU+LCBhcyBpdCBhcHBlYXJzIHRoaXMgaXMgY29uZmlndXJlZCB0bwor ICAgICAgICBhbGxvdyBhbGwgbWVtb3J5IHRvIGJlIHVzZWQgYXMgc2hhcmVkIG1lbW9yeS4gIFRo YXQgaXMgdGhlCisgICAgICAgIHNvcnQgb2YgY29uZmlndXJhdGlvbiBjb21tb25seSB1c2VkIGZv ciBvdGhlciBkYXRhYmFzZXMgc3VjaAorICAgICAgICBhcyA8YXBwbGljYXRpb24+REIvMjwvYXBw bGljYXRpb24+LjwvcGFyYT4KKworICAgICAgIDxwYXJhPiBJdCBtaWdodCwgaG93ZXZlciwgYmUg bmVjZXNzYXJ5IHRvIG1vZGlmeSB0aGUgZ2xvYmFsCisgICAgICAgPGNvbW1hbmQ+dWxpbWl0PC9j b21tYW5kPiBpbmZvcm1hdGlvbiBpbgorICAgICAgIDxmaWxlbmFtZT4vZXRjL3NlY3VyaXR5L2xp bWl0czwvZmlsZW5hbWU+LCBhcyB0aGUgZGVmYXVsdCBoYXJkCisgICAgICAgbGltaXRzIGZvciBm aWxlIHNpemVzICg8dmFybmFtZT5mc2l6ZTwvdmFybmFtZT4pIGFuZCBudW1iZXJzIG9mCisgICAg ICAgZmlsZXMgKDx2YXJuYW1lPm5vZmlsZXM8L3Zhcm5hbWU+KSBtaWdodCBiZSB0b28gbG93Lgor ICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5Pgor CisKICAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAgIDx0ZXJtPjxzeXN0ZW1pdGVtIGNsYXNzPSJv c25hbWUiPkZyZWVCU0Q8L3N5c3RlbWl0ZW0+CiAgICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PkZy ZWVCU0Q8L3ByaW1hcnk+PHNlY29uZGFyeT5JUEMgY29uZmlndXJhdGlvbjwvc2Vjb25kYXJ5Pjwv aW5kZXh0ZXJtPgpkaWZmIC0tZ2l0IGEvbWVzb24uYnVpbGQgYi9tZXNvbi5idWlsZAppbmRleCAx YzA1NzlkNWE2Li5mMWFjMTU0Y2RjIDEwMDY0NAotLS0gYS9tZXNvbi5idWlsZAorKysgYi9tZXNv bi5idWlsZApAQCAtMTk2LDcgKzE5NiwyNiBAQCBlbmRpZgogIyB0aGF0IHB1cnBvc2UuCiBwb3J0 bmFtZSA9IGhvc3Rfc3lzdGVtCiAKLWlmIGhvc3Rfc3lzdGVtID09ICdjeWd3aW4nCitpZiBob3N0 X3N5c3RlbSA9PSAnYWl4JworICBsaWJyYXJ5X3BhdGhfdmFyID0gJ0xJQlBBVEgnCisKKyAgZXhw b3J0X2ZpbGVfZm9ybWF0ID0gJ2FpeCcKKyAgZXhwb3J0X2ZtdCA9ICctV2wsLWJFOkAwQCcKKyAg bW9kX2xpbmtfYXJnc19mbXQgPSBbJy1XbCwtYkk6QDBAJ10KKyAgbW9kX2xpbmtfd2l0aF9kaXIg PSAnbGliZGlyJworICBtb2RfbGlua193aXRoX25hbWUgPSAnQDBALmltcCcKKworICAjIE06U1JF IHNldHMgYSBmbGFnIGluZGljYXRpbmcgdGhhdCBhbiBvYmplY3QgaXMgYSBzaGFyZWQgbGlicmFy eS4gU2VlbXMgdG8KKyAgIyB3b3JrIGluIHNvbWUgY2lyY3Vtc3RhbmNlcyB3aXRob3V0LCBidXQg cmVxdWlyZWQgaW4gb3RoZXJzLgorICBsZGZsYWdzX3NsICs9ICctV2wsLWJNOlNSRScKKyAgbGRm bGFnc19iZSArPSAnLVdsLC1icnRsbGliJworCisgICMgTmF0aXZlIG1lbXNldCgpIGlzIGZhc3Rl ciwgdGVzdGVkIG9uOgorICAjIC0gQUlYIDUuMSBhbmQgNS4yLCBYTEMgNi4wIChJQk0ncyBjYykK KyAgIyAtIEFJWCA1LjMgTUwzLCBnY2MgNC4wLjEKKyAgbWVtc2V0X2xvb3BfbGltaXQgPSAwCisK K2VsaWYgaG9zdF9zeXN0ZW0gPT0gJ2N5Z3dpbicKICAgc2VtYV9raW5kID0gJ3VubmFtZWRfcG9z aXgnCiAgIGNwcGZsYWdzICs9ICctRF9HTlVfU09VUkNFJwogICBkbHN1ZmZpeCA9ICcuZGxsJwpA QCAtMTQ5MCwxMSArMTUwOSwxMSBAQCBzaXplb2ZfbG9uZyA9IGNjLnNpemVvZignbG9uZycsIGFy Z3M6IHRlc3RfY19hcmdzKQogY2RhdGEuc2V0KCdTSVpFT0ZfTE9ORycsIHNpemVvZl9sb25nKQog aWYgc2l6ZW9mX2xvbmcgPT0gOAogICBjZGF0YS5zZXQoJ0hBVkVfTE9OR19JTlRfNjQnLCAxKQot ICBwZ19pbnQ2NF90eXBlID0gJ2xvbmcgaW50JworICBjZGF0YS5zZXQoJ1BHX0lOVDY0X1RZUEUn LCAnbG9uZyBpbnQnKQogICBjZGF0YS5zZXRfcXVvdGVkKCdJTlQ2NF9NT0RJRklFUicsICdsJykK IGVsaWYgc2l6ZW9mX2xvbmcgPT0gNCBhbmQgY2Muc2l6ZW9mKCdsb25nIGxvbmcnLCBhcmdzOiB0 ZXN0X2NfYXJncykgPT0gOAogICBjZGF0YS5zZXQoJ0hBVkVfTE9OR19MT05HX0lOVF82NCcsIDEp Ci0gIHBnX2ludDY0X3R5cGUgPSAnbG9uZyBsb25nIGludCcKKyAgY2RhdGEuc2V0KCdQR19JTlQ2 NF9UWVBFJywgJ2xvbmcgbG9uZyBpbnQnKQogICBjZGF0YS5zZXRfcXVvdGVkKCdJTlQ2NF9NT0RJ RklFUicsICdsbCcpCiBlbHNlCiAgIGVycm9yKCdkbyBub3Qga25vdyBob3cgdG8gZ2V0IGEgNjRi aXQgaW50JykKQEAgLTE1MDgsMzEgKzE1MjcsMTUgQEAgZW5kaWYKICMgRGV0ZXJtaW5lIG1lbW9y eSBhbGlnbm1lbnQgcmVxdWlyZW1lbnRzIGZvciB0aGUgYmFzaWMgQyBkYXRhIHR5cGVzLgogCiBh bGlnbm9mX3R5cGVzID0gWydzaG9ydCcsICdpbnQnLCAnbG9uZycsICdkb3VibGUnXQorbWF4YWxp Z24gPSAwCiBmb3JlYWNoIHQgOiBhbGlnbm9mX3R5cGVzCiAgIGFsaWduID0gY2MuYWxpZ25tZW50 KHQsIGFyZ3M6IHRlc3RfY19hcmdzKQorICBpZiBtYXhhbGlnbiA8IGFsaWduCisgICAgbWF4YWxp Z24gPSBhbGlnbgorICBlbmRpZgogICBjZGF0YS5zZXQoJ0FMSUdOT0ZfQDBAJy5mb3JtYXQodC50 b191cHBlcigpKSwgYWxpZ24pCiBlbmRmb3JlYWNoCi0KLSMgQ29tcHV0ZSBtYXhpbXVtIGFsaWdu bWVudCBvZiBhbnkgYmFzaWMgdHlwZS4KLSMKLSMgV2UgcmVxdWlyZSAnZG91YmxlJyB0byBoYXZl IHRoZSBzdHJpY3Rlc3QgYWxpZ25tZW50IGFtb25nIHRoZSBiYXNpYyB0eXBlcywKLSMgYmVjYXVz ZSBvdGhlcndpc2UgdGhlIEMgQUJJIG1pZ2h0IGltcG9zZSA4LWJ5dGUgYWxpZ25tZW50IG9uIHNv bWUgb2YgdGhlCi0jIG90aGVyIEMgdHlwZXMgdGhhdCBjb3JyZXNwb25kIHRvIFRZUEFMSUdOX0RP VUJMRSBTUUwgdHlwZXMuICBUaGF0IGNvdWxkCi0jIGNhdXNlIGEgbWlzbWF0Y2ggYmV0d2VlbiB0 aGUgdHVwbGUgbGF5b3V0IGFuZCB0aGUgQyBzdHJ1Y3QgbGF5b3V0IG9mIGEKLSMgY2F0YWxvZyB0 dXBsZS4gIFdlIHVzZWQgdG8gY2FyZWZ1bGx5IG9yZGVyIGNhdGFsb2cgY29sdW1ucyBzdWNoIHRo YXQgYW55Ci0jIGZpeGVkLXdpZHRoLCBhdHRhbGlnbj00IGNvbHVtbnMgd2VyZSBhdCBvZmZzZXRz IGRpdmlzaWJsZSBieSA4IHJlZ2FyZGxlc3MKLSMgb2YgTUFYSU1VTV9BTElHTk9GIHRvIGF2b2lk IHRoYXQsIGJ1dCB3ZSBubyBsb25nZXIgc3VwcG9ydCBhbnkgcGxhdGZvcm1zCi0jIHdoZXJlIFRZ UEFMSUdOX0RPVUJMRSAhPSBNQVhJTVVNX0FMSUdOT0YuCi0jCi0jIFdlIGFzc3VtZSB3aXRob3V0 IGNoZWNraW5nIHRoYXQgaW50NjQncyBhbGlnbm1lbnQgaXMgYXQgbGVhc3QgYXMgc3Ryb25nCi0j IGFzIGxvbmcsIGNoYXIsIHNob3J0LCBvciBpbnQuICBOb3RlIHRoYXQgd2UgaW50ZW50aW9uYWxs eSBkbyBub3QgY29uc2lkZXIKLSMgYW55IHR5cGVzIHdpZGVyIHRoYW4gNjQgYml0cywgYXMgYWxs b3dpbmcgTUFYSU1VTV9BTElHTk9GIHRvIGV4Y2VlZCA4Ci0jIHdvdWxkIGJlIHRvbyBtdWNoIG9m IGEgcGVuYWx0eSBmb3IgZGlzayBhbmQgbWVtb3J5IHNwYWNlLgotYWxpZ25vZl9kb3VibGUgPSBj ZGF0YS5nZXQoJ0FMSUdOT0ZfRE9VQkxFJykKLWlmIGNjLmFsaWdubWVudChwZ19pbnQ2NF90eXBl LCBhcmdzOiB0ZXN0X2NfYXJncykgPiBhbGlnbm9mX2RvdWJsZQotICBlcnJvcignYWxpZ25tZW50 IG9mIGludDY0IGlzIGdyZWF0ZXIgdGhhbiB0aGUgYWxpZ25tZW50IG9mIGRvdWJsZScpCi1lbmRp ZgotY2RhdGEuc2V0KCdNQVhJTVVNX0FMSUdOT0YnLCBhbGlnbm9mX2RvdWJsZSkKK2NkYXRhLnNl dCgnTUFYSU1VTV9BTElHTk9GJywgbWF4YWxpZ24pCiAKIGNkYXRhLnNldCgnU0laRU9GX1ZPSURf UCcsIGNjLnNpemVvZigndm9pZCAqJywgYXJnczogdGVzdF9jX2FyZ3MpKQogY2RhdGEuc2V0KCdT SVpFT0ZfU0laRV9UJywgY2Muc2l6ZW9mKCdzaXplX3QnLCBhcmdzOiB0ZXN0X2NfYXJncykpCkBA IC0xNTgxLDcgKzE1ODQsNyBAQCBpZiBjYy5saW5rcygnJycKICAgaWYgbm90IG1lc29uLmlzX2Ny b3NzX2J1aWxkKCkKICAgICByID0gY2MucnVuKCcnJwogICAgIC8qIFRoaXMgbXVzdCBtYXRjaCB0 aGUgY29ycmVzcG9uZGluZyBjb2RlIGluIGMuaDogKi8KLSAgICAjaWYgZGVmaW5lZChfX0dOVUNf XykgfHwgZGVmaW5lZChfX1NVTlBST19DKQorICAgICNpZiBkZWZpbmVkKF9fR05VQ19fKSB8fCBk ZWZpbmVkKF9fU1VOUFJPX0MpIHx8IGRlZmluZWQoX19JQk1DX18pCiAgICAgI2RlZmluZSBwZ19h dHRyaWJ1dGVfYWxpZ25lZChhKSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKGEpKSkKICAgICAjZWxp ZiBkZWZpbmVkKF9NU0NfVkVSKQogICAgICNkZWZpbmUgcGdfYXR0cmlidXRlX2FsaWduZWQoYSkg X19kZWNsc3BlYyhhbGlnbihhKSkKQEAgLTI0NzYsNiArMjQ3OSwxMCBAQCBlbmRpZgogIyBjb25m bGljdC4KICMKICMgV2UgYXNzdW1lIEM5OSBzdXBwb3J0LCBzbyB3ZSBkb24ndCBuZWVkIHRvIG1h a2UgdGhpcyBjb25kaXRpb25hbC4KKyMKKyMgWFhYOiBIaXN0b3JpY2FsbHkgd2UgYWxsb3dlZCBw bGF0Zm9ybXMgdG8gZGlzYWJsZSByZXN0cmljdCBpbiB0ZW1wbGF0ZQorIyBmaWxlcywgYnV0IHRo YXQgd2FzIG9ubHkgYWRkZWQgZm9yIEFJWCB3aGVuIGJ1aWxkaW5nIHdpdGggWExDLCB3aGljaCB3 ZQorIyBkb24ndCBzdXBwb3J0IHlldC4KIGNkYXRhLnNldCgncGdfcmVzdHJpY3QnLCAnX19yZXN0 cmljdCcpCiAKIApkaWZmIC0tZ2l0IGEvc3JjL01ha2VmaWxlLnNobGliIGIvc3JjL01ha2VmaWxl LnNobGliCmluZGV4IGZhODFmNmZmZGQuLjhjYTUxY2EwM2YgMTAwNjQ0Ci0tLSBhL3NyYy9NYWtl ZmlsZS5zaGxpYgorKysgYi9zcmMvTWFrZWZpbGUuc2hsaWIKQEAgLTEwNiw2ICsxMDYsMjAgQEAg aWZkZWYgU09fTUFKT1JfVkVSU0lPTgogb3ZlcnJpZGUgQ1BQRkxBR1MgKz0gLURTT19NQUpPUl9W RVJTSU9OPSQoU09fTUFKT1JfVkVSU0lPTikKIGVuZGlmCiAKK2lmZXEgKCQoUE9SVE5BTUUpLCBh aXgpCisgIExJTksuc2hhcmVkCQk9ICQoQ09NUElMRVIpCisgIGlmZGVmIFNPX01BSk9SX1ZFUlNJ T04KKyAgICBzaGxpYgkJPSBsaWIkKE5BTUUpJChETFNVRkZJWCkuJChTT19NQUpPUl9WRVJTSU9O KQorICBlbmRpZgorICBoYXNsaWJhcnVsZSAgID0geWVzCisgICMgJChleHBvcnRzX2ZpbGUpIGlz IGFsc28gdXNhYmxlIGFzIGFuIGltcG9ydCBmaWxlCisgIGV4cG9ydHNfZmlsZQkJPSBsaWIkKE5B TUUpLmV4cAorICBCVUlMRC5leHBvcnRzCQk9ICggZWNobyAnXCMhICQoc2hsaWIpJzsgJChBV0sp ICcvXlteXCNdLyB7cHJpbnRmICIlc1xuIiwkJDF9JyAkPCApID4gJEAKKyAgaWZuZXEgKCwkKFNI TElCX0VYUE9SVFMpKQorICAgIExJTksuc2hhcmVkCQkrPSAtV2wsLWJFOiQoZXhwb3J0c19maWxl KQorICBlbmRpZgorZW5kaWYKKwogaWZlcSAoJChQT1JUTkFNRSksIGRhcndpbikKICAgaWZkZWYg c29uYW1lCiAgICAgIyBsaW5rYWJsZSBsaWJyYXJ5CkBAIC0yNTQsNiArMjY4LDE0IEBAICQoc3Rs aWIpOiAkKE9CSlMpIHwgJChTSExJQl9QUkVSRVFTKQogCXRvdWNoICRACiBlbmRpZiAjaGFzbGli YXJ1bGUKIAorIyBBSVggd3JhcHMgc2hhcmVkIGxpYnJhcmllcyBpbnNpZGUgYSBzdGF0aWMgbGli cmFyeSwgY2FuIGJlIHVzZWQgYm90aAorIyBmb3Igc3RhdGljIGFuZCBzaGFyZWQgbGlua2luZwor aWZlcSAoJChQT1JUTkFNRSksIGFpeCkKKyQoc3RsaWIpOiAkKHNobGliKQorCXJtIC1mICQoc3Rs aWIpCisJJChBUikgJChBUk9QVCkgJChzdGxpYikgJChzaGxpYikKK2VuZGlmICMgYWl4CisKIGlm ZXEgKCwkKGZpbHRlciBjeWd3aW4gd2luMzIsJChQT1JUTkFNRSkpKQogCiAjIE5vcm1hbCBjYXNl CkBAIC0yNjcsOCArMjg5LDExIEBAIGlmbmVxICgkKHNobGliKSwgJChzaGxpYl9tYWpvcikpCiBl bmRpZgogIyBNYWtlIHN1cmUgd2UgaGF2ZSBhIGxpbmsgdG8gYSBuYW1lIHdpdGhvdXQgYW55IHZl cnNpb24gbnVtYmVycwogaWZuZXEgKCQoc2hsaWIpLCAkKHNobGliX2JhcmUpKQorIyBleGNlcHQg b24gQUlYLCB3aGVyZSB0aGF0J3Mgbm90IGEgdGhpbmcKK2lmbmVxICgkKFBPUlROQU1FKSwgYWl4 KQogCXJtIC1mICQoc2hsaWJfYmFyZSkKIAkkKExOX1MpICQoc2hsaWIpICQoc2hsaWJfYmFyZSkK K2VuZGlmICMgYWl4CiBlbmRpZiAjIHNobGliX2JhcmUKIGVuZGlmICMgc2hsaWJfbWFqb3IKIApA QCAtMzc2LDYgKzQwMSw5IEBAIGluc3RhbGwtbGliLXN0YXRpYzogJChzdGxpYikgaW5zdGFsbGRp cnMtbGliCiAKIGluc3RhbGwtbGliLXNoYXJlZDogJChzaGxpYikgaW5zdGFsbGRpcnMtbGliCiBp ZmRlZiBzb25hbWUKKyMgd2UgZG9uJ3QgaW5zdGFsbCAkKHNobGliKSBvbiBBSVgKKyMgKHNlZSBo dHRwOi8vYXJjaGl2ZXMucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC81MkVGMjBCMkUzMjA5NDQz QkMzNzczNkQwMEMzQzEzODBBNkU3OUZFQEVYQURWMS5ob3N0Lm1hZ3dpZW4uZ3YuYXQpCitpZm5l cSAoJChQT1JUTkFNRSksIGFpeCkKIAkkKElOU1RBTExfU0hMSUIpICQ8ICckKERFU1RESVIpJChs aWJkaXIpLyQoc2hsaWIpJwogaWZuZXEgKCQoUE9SVE5BTUUpLCBjeWd3aW4pCiBpZm5lcSAoJChQ T1JUTkFNRSksIHdpbjMyKQpAQCAtMzkxLDYgKzQxOSw3IEBAIGlmbmVxICgkKHNobGliKSwgJChz aGxpYl9iYXJlKSkKIGVuZGlmCiBlbmRpZiAjIG5vdCB3aW4zMgogZW5kaWYgIyBub3QgY3lnd2lu CitlbmRpZiAjIG5vdCBhaXgKIGlmbmVxICgsJChmaW5kc3RyaW5nICQoUE9SVE5BTUUpLHdpbjMy IGN5Z3dpbikpCiAJJChJTlNUQUxMX1NITElCKSAkPCAnJChERVNURElSKSQoYmluZGlyKS8kKHNo bGliKScKIGVuZGlmCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9NYWtlZmlsZSBiL3NyYy9iYWNr ZW5kL01ha2VmaWxlCmluZGV4IDY3MDBhZWMwMzkuLjk1NGIxNDk2MmYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL01ha2VmaWxlCkBAIC02MiwxMiAr NjIsMTQgQEAgYWxsOiBzdWJtYWtlLWxpYnBncG9ydCBzdWJtYWtlLWNhdGFsb2ctaGVhZGVycyBz dWJtYWtlLXV0aWxzLWhlYWRlcnMgcG9zdGdyZXMgJCgKIAogaWZuZXEgKCQoUE9SVE5BTUUpLCBj eWd3aW4pCiBpZm5lcSAoJChQT1JUTkFNRSksIHdpbjMyKQoraWZuZXEgKCQoUE9SVE5BTUUpLCBh aXgpCiAKIHBvc3RncmVzOiAkKE9CSlMpCiAJJChDQykgJChDRkxBR1MpICQoY2FsbCBleHBhbmRf c3Vic3lzLCReKSAkKExERkxBR1MpICQoTElCUykgLW8gJEAKIAogZW5kaWYKIGVuZGlmCitlbmRp ZgogCiBpZmVxICgkKFBPUlROQU1FKSwgY3lnd2luKQogCkBAIC05NCw2ICs5NiwyNCBAQCBsaWJw b3N0Z3Jlcy5hOiBwb3N0Z3JlcwogCiBlbmRpZiAjIHdpbjMyCiAKK2lmZXEgKCQoUE9SVE5BTUUp LCBhaXgpCisKK3Bvc3RncmVzOiAkKFBPU1RHUkVTX0lNUCkKKwkkKENDKSAkKENGTEFHUykgJChj YWxsIGV4cGFuZF9zdWJzeXMsJChPQkpTKSkgJChMREZMQUdTKSAtV2wsLWJFOiQodG9wX2J1aWxk ZGlyKS9zcmMvYmFja2VuZC8kKFBPU1RHUkVTX0lNUCkgJChMSUJTKSAtV2wsLWJydGxsaWIgLW8g JEAKKworIyBMaW5raW5nIHRvIGEgc2luZ2xlIC5vIHdpdGggLXIgaXMgYSBsb3QgZmFzdGVyIHRo YW4gYnVpbGRpbmcgYSAuYSBvciBwYXNzaW5nCisjIGFsbCBvYmplY3RzIHRvIE1LTERFWFBPUlQu CisjCisjIEl0IGxvb2tzIGFsbHVyaW5nIHRvIHVzZSAkKENDKSAtciBpbnN0ZWFkIG9mIGxkIC1y LCBidXQgdGhhdCBkb2Vzbid0CisjIHRyaXZpYWxseSB3b3JrIHdpdGggZ2NjLCBkdWUgdG8gZ2Nj IHNwZWNpZmljIHN0YXRpYyBsaWJyYXJpZXMgbGlua2VkIGluIHdpdGgKKyMgLXIuCiskKFBPU1RH UkVTX0lNUCk6ICQoT0JKUykKKwlsZCAtciAtbyBTVUJTWVMubyAkKGNhbGwgZXhwYW5kX3N1YnN5 cywkXikKKwkkKE1LTERFWFBPUlQpIFNVQlNZUy5vIC4gPiAkQAorCUBybSAtZiBTVUJTWVMubwor CitlbmRpZiAjIGFpeAorCiAkKHRvcF9idWlsZGRpcikvc3JjL3BvcnQvbGlicGdwb3J0X3Nydi5h OiB8IHN1Ym1ha2UtbGlicGdwb3J0CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbWVzb24u YnVpbGQgYi9zcmMvYmFja2VuZC9tZXNvbi5idWlsZAppbmRleCA0MzZjMDRhZjA4Li44NzY3YWFi YTY3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2Vu ZC9tZXNvbi5idWlsZApAQCAtOTEsNiArOTEsMjEgQEAgaWYgY2MuZ2V0X2lkKCkgPT0gJ21zdmMn CiAgICMgYmUgcmVzdHJpY3RlZCB0byBiX3BjaD10cnVlLgogICBiYWNrZW5kX2xpbmtfd2l0aCAr PSBwb3N0Z3Jlc19saWIKIAorZWxpZiBob3N0X3N5c3RlbSA9PSAnYWl4JworICAjIFRoZSAnLicg YXJndW1lbnQgbGVhZHMgbWtsZGV4cG9ydC5zaCB0byBlbWl0ICIjISAuIiwgd2hpY2ggcmVmZXJz IHRvIHRoZQorICAjIG1haW4gZXhlY3V0YWJsZSwgYWxsb3dpbmcgZXh0ZW5zaW9uIGxpYnJhcmll cyB0byByZXNvbHZlIHRoZWlyIHVuZGVmaW5lZAorICAjIHN5bWJvbHMgdG8gc3ltYm9scyBpbiB0 aGUgcG9zdGdyZXMgYmluYXJ5LgorICBwb3N0Z3Jlc19pbXAgPSBjdXN0b21fdGFyZ2V0KCdwb3N0 Z3Jlcy5pbXAnLAorICAgIGNvbW1hbmQ6IFtmaWxlcygncG9ydC9haXgvbWtsZGV4cG9ydC5zaCcp LCAnQElOUFVUQCcsICcuJ10sCisgICAgaW5wdXQ6IHBvc3RncmVzX2xpYiwKKyAgICBvdXRwdXQ6 ICdwb3N0Z3Jlcy5pbXAnLAorICAgIGNhcHR1cmU6IHRydWUsCisgICAgaW5zdGFsbDogdHJ1ZSwK KyAgICBpbnN0YWxsX2RpcjogZGlyX2xpYiwKKyAgICBidWlsZF9ieV9kZWZhdWx0OiBmYWxzZSwK KyAgKQorICBiYWNrZW5kX2xpbmtfYXJncyArPSAnLVdsLC1iRTpAMEAnLmZvcm1hdChwb3N0Z3Jl c19pbXAuZnVsbF9wYXRoKCkpCisgIGJhY2tlbmRfbGlua19kZXBlbmRzICs9IHBvc3RncmVzX2lt cAogZW5kaWYKIAogYmFja2VuZF9pbnB1dCA9IFtdCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w b3J0L2FpeC9ta2xkZXhwb3J0LnNoIGIvc3JjL2JhY2tlbmQvcG9ydC9haXgvbWtsZGV4cG9ydC5z aApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwLi5hZGYzNzkzZTg2Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvcG9ydC9haXgvbWtsZGV4cG9ydC5zaApAQCAtMCww ICsxLDYxIEBACisjIS9iaW4vc2gKKyMKKyMgbWtsZGV4cG9ydAorIwljcmVhdGUgYW4gQUlYIGV4 cG9ydHMgZmlsZSBmcm9tIGFuIG9iamVjdCBmaWxlCisjCisjIHNyYy9iYWNrZW5kL3BvcnQvYWl4 L21rbGRleHBvcnQuc2gKKyMKKyMgVXNhZ2U6CisjCW1rbGRleHBvcnQgb2JqZWN0ZmlsZSBbbG9j YXRpb25dCisjIHdoZXJlCisjCW9iamVjdGZpbGUgaXMgdGhlIGN1cnJlbnQgbG9jYXRpb24gb2Yg dGhlIG9iamVjdCBmaWxlLgorIwlsb2NhdGlvbiBpcyB0aGUgZXZlbnR1YWwgKGluc3RhbGxlZCkg bG9jYXRpb24gb2YgdGhlCisjCQlvYmplY3QgZmlsZSAoaWYgZGlmZmVyZW50IGZyb20gdGhlIGN1 cnJlbnQKKyMJCXdvcmtpbmcgZGlyZWN0b3J5KS4KKyMKKyMgW1RoaXMgZmlsZSBjb21lcyBmcm9t IHRoZSBQb3N0Z3JlcyA0LjIgZGlzdHJpYnV0aW9uLiAtIGF5IDcvOTVdCisjCisjIEhlYWRlcjog L3Vzci9sb2NhbC9kZXZlbC9wb3N0Z3Jlcy9zcmMvdG9vbHMvbWtsZGV4cG9ydC9SQ1MvbWtsZGV4 cG9ydC5zaCx2IDEuMiAxOTk0LzAzLzEzIDA0OjU5OjEyIGFva2kgRXhwCisjCisKKyMgc2V0dGlu ZyB0aGlzIHRvIG5tIC1CIG1pZ2h0IGJlIGJldHRlcgorIyAuLi4gZHVlIHRvIGNoYW5nZXMgaW4g QUlYIDQueCAuLi4KKyMgLi4uIGxldCB1cyBzZWFyY2ggaW4gZGlmZmVyZW50IGRpcmVjdG9yaWVz IC0gR2VyaGFyZCBSZWl0aG9mZXIKK2lmIFsgLXggL3Vzci91Y2Ivbm0gXQordGhlbiBOTT0vdXNy L3VjYi9ubQorZWxpZiBbIC14IC91c3IvYmluL25tIF0KK3RoZW4gTk09L3Vzci9iaW4vbm0KK2Vs aWYgWyAteCAvdXNyL2Njcy9iaW4vbm0gXQordGhlbiBOTT0vdXNyL2Njcy9iaW4vbm0KK2VsaWYg WyAteCAvdXNyL3VzZy9iaW4vbm0gXQordGhlbiBOTT0vdXNyL3VzZy9iaW4vbm0KK2Vsc2UgZWNo byAiRmF0YWwgZXJyb3I6IGNhbm5vdCBmaW5kIGBubScgLi4uIHBsZWFzZSBjaGVjayB5b3VyIGlu c3RhbGxhdGlvbi4iCisgICAgIGV4aXQgMQorZmkKKworQ01ETkFNRT1gYmFzZW5hbWUgJDBgCitp ZiBbIC16ICIkMSIgXTsgdGhlbgorCWVjaG8gIlVzYWdlOiAkQ01ETkFNRSBvYmplY3QgW2xvY2F0 aW9uXSIKKwlleGl0IDEKK2ZpCitPQkpOQU1FPWBiYXNlbmFtZSAkMWAKK2lmIFsgImBiYXNlbmFt ZSAkT0JKTkFNRWAiICE9ICJgYmFzZW5hbWUgJE9CSk5BTUUgLm9gIiBdOyB0aGVuCisJT0JKTkFN RT1gYmFzZW5hbWUgJE9CSk5BTUUgLm9gLnNvCitmaQoraWYgWyAteiAiJDIiIF07IHRoZW4KKwll Y2hvICcjIScKK2Vsc2UKKwlpZiBbICIkMiIgPSAiLiIgXTsgdGhlbgorCQkjIGZvciB0aGUgYmFz ZSBleGVjdXRhYmxlIChBSVggNC4yIGFuZCB1cCkKKwkJZWNobyAnIyEgLicKKwllbHNlCisJCWVj aG8gJyMhJyAkMgorCWZpCitmaQorJE5NIC1CQ2cgJDEgfCBcCisJZWdyZXAgJyBbVERCXSAnIHwg XAorCXNlZCAtZSAncy8uKiAvLycgfCBcCisJZWdyZXAgLXYgJ1wkJyB8IFwKKwlzZWQgLWUgJ3Mv XlsuXS8vJyB8IFwKKwlzb3J0IHwgXAorCXVuaXEKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2Vycm9yL2Vsb2cuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2Vsb2cuYwppbmRleCBk OTFhODVjYjJkLi43YjUxZTk0ZjRhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9lcnJv ci9lbG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jCkBAIC05MDgsNyAr OTA4LDkgQEAgZXJyY29kZV9mb3JfZmlsZV9hY2Nlc3Modm9pZCkKIAkJCS8qIFdyb25nIG9iamVj dCB0eXBlIG9yIHN0YXRlICovCiAJCWNhc2UgRU5PVERJUjoJCQkvKiBOb3QgYSBkaXJlY3Rvcnkg Ki8KIAkJY2FzZSBFSVNESVI6CQkJLyogSXMgYSBkaXJlY3RvcnkgKi8KKyNpZiBkZWZpbmVkKEVO T1RFTVBUWSkgJiYgKEVOT1RFTVBUWSAhPSBFRVhJU1QpIC8qIHNhbWUgY29kZSBvbiBBSVggKi8K IAkJY2FzZSBFTk9URU1QVFk6CQkJLyogRGlyZWN0b3J5IG5vdCBlbXB0eSAqLworI2VuZGlmCiAJ CQllZGF0YS0+c3FsZXJyY29kZSA9IEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEU7CiAJCQlicmVh azsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wc19zdGF0dXMuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvcHNfc3RhdHVzLmMKaW5kZXggOWRhNjM3NzQwMi4uNTMyZWFj MzFiNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wc19zdGF0dXMuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9taXNjL3BzX3N0YXR1cy5jCkBAIC01MCw3ICs1MCw3IEBAIGJv b2wJCXVwZGF0ZV9wcm9jZXNzX3RpdGxlID0gREVGQVVMVF9VUERBVEVfUFJPQ0VTU19USVRMRTsK ICNkZWZpbmUgUFNfVVNFX1NFVFBST0NUSVRMRV9GQVNUCiAjZWxpZiBkZWZpbmVkKEhBVkVfU0VU UFJPQ1RJVExFKQogI2RlZmluZSBQU19VU0VfU0VUUFJPQ1RJVExFCi0jZWxpZiBkZWZpbmVkKF9f bGludXhfXykgfHwgZGVmaW5lZChfX3N1bikgfHwgZGVmaW5lZChfX2Rhcndpbl9fKQorI2VsaWYg ZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX0FJWCkgfHwgZGVmaW5lZChfX3N1bikgfHwg ZGVmaW5lZChfX2Rhcndpbl9fKQogI2RlZmluZSBQU19VU0VfQ0xPQkJFUl9BUkdWCiAjZWxpZiBk ZWZpbmVkKFdJTjMyKQogI2RlZmluZSBQU19VU0VfV0lOMzIKQEAgLTYwLDcgKzYwLDcgQEAgYm9v bAkJdXBkYXRlX3Byb2Nlc3NfdGl0bGUgPSBERUZBVUxUX1VQREFURV9QUk9DRVNTX1RJVExFOwog CiAKIC8qIERpZmZlcmVudCBzeXN0ZW1zIHdhbnQgdGhlIGJ1ZmZlciBwYWRkZWQgZGlmZmVyZW50 bHkgKi8KLSNpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfX2Rhcndpbl9fKQorI2lm IGRlZmluZWQoX0FJWCkgfHwgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX19kYXJ3aW5f XykKICNkZWZpbmUgUFNfUEFERElORyAnXDAnCiAjZWxzZQogI2RlZmluZSBQU19QQURESU5HICcg JwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19iYXNlYmFja3VwL3QvMDEwX3BnX2Jhc2ViYWNrdXAu cGwgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvdC8wMTBfcGdfYmFzZWJhY2t1cC5wbAppbmRleCAy ZDRiNzVhNmZlLi5jZTkzNjk1OWMxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAv dC8wMTBfcGdfYmFzZWJhY2t1cC5wbAorKysgYi9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvdC8wMTBf cGdfYmFzZWJhY2t1cC5wbApAQCAtNDAxLDcgKzQwMSw4IEBAIFNLSVA6CiB7CiAJbXkgJHRhciA9 ICRFTlZ7VEFSfTsKIAkjIGRvbid0IGNoZWNrIGZvciBhIHdvcmtpbmcgdGFyIGhlcmUsIHRvIGFj Y29tbW9kYXRlIHZhcmlvdXMgb2RkCi0JIyBjYXNlcy4gSWYgdGFyIGRvZXNuJ3Qgd29yayB0aGUg aW5pdF9mcm9tX2JhY2t1cCBiZWxvdyB3aWxsIGZhaWwuCisJIyBjYXNlcyBzdWNoIGFzIEFJWC4g SWYgdGFyIGRvZXNuJ3Qgd29yayB0aGUgaW5pdF9mcm9tX2JhY2t1cCBiZWxvdworCSMgd2lsbCBm YWlsLgogCXNraXAgIm5vIHRhciBwcm9ncmFtIGF2YWlsYWJsZSIsIDEKIAkgIGlmICghZGVmaW5l ZCAkdGFyIHx8ICR0YXIgZXEgJycpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJh Y2t1cC90LzAwOF91bnRhci5wbCBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDA4X3VudGFy LnBsCmluZGV4IDdhMDlmM2I3NWIuLjMwZDlmM2Y3ZjAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf dmVyaWZ5YmFja3VwL3QvMDA4X3VudGFyLnBsCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3Vw L3QvMDA4X3VudGFyLnBsCkBAIC0xMDQsNyArMTA0LDggQEAgZm9yIG15ICR0YyAoQHRlc3RfY29u ZmlndXJhdGlvbikKIAkJewogCQkJbXkgJHRhciA9ICRFTlZ7VEFSfTsKIAkJCSMgZG9uJ3QgY2hl Y2sgZm9yIGEgd29ya2luZyB0YXIgaGVyZSwgdG8gYWNjb21tb2RhdGUgdmFyaW91cyBvZGQKLQkJ CSMgY2FzZXMuIElmIHRhciBkb2Vzbid0IHdvcmsgdGhlIGluaXRfZnJvbV9iYWNrdXAgYmVsb3cg d2lsbCBmYWlsLgorCQkJIyBjYXNlcyBzdWNoIGFzIEFJWC4gSWYgdGFyIGRvZXNuJ3Qgd29yayB0 aGUgaW5pdF9mcm9tX2JhY2t1cCBiZWxvdworCQkJIyB3aWxsIGZhaWwuCiAJCQlza2lwICJubyB0 YXIgcHJvZ3JhbSBhdmFpbGFibGUiLCAxCiAJCQkgIGlmICghZGVmaW5lZCAkdGFyIHx8ICR0YXIg ZXEgJycpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAxMF9jbGll bnRfdW50YXIucGwgYi9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAxMF9jbGllbnRfdW50YXIu cGwKaW5kZXggOGMwNzZkNDZkZS4uNDUwMTBkNzlhYyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ192 ZXJpZnliYWNrdXAvdC8wMTBfY2xpZW50X3VudGFyLnBsCisrKyBiL3NyYy9iaW4vcGdfdmVyaWZ5 YmFja3VwL3QvMDEwX2NsaWVudF91bnRhci5wbApAQCAtMTM0LDcgKzEzNCw4IEBAIGZvciBteSAk dGMgKEB0ZXN0X2NvbmZpZ3VyYXRpb24pCiAJCXsKIAkJCW15ICR0YXIgPSAkRU5We1RBUn07CiAJ CQkjIGRvbid0IGNoZWNrIGZvciBhIHdvcmtpbmcgdGFyIGhlcmUsIHRvIGFjY29tbW9kYXRlIHZh cmlvdXMgb2RkCi0JCQkjIGNhc2VzLiBJZiB0YXIgZG9lc24ndCB3b3JrIHRoZSBpbml0X2Zyb21f YmFja3VwIGJlbG93IHdpbGwgZmFpbC4KKwkJCSMgY2FzZXMgc3VjaCBhcyBBSVguIElmIHRhciBk b2Vzbid0IHdvcmsgdGhlIGluaXRfZnJvbV9iYWNrdXAgYmVsb3cKKwkJCSMgd2lsbCBmYWlsLgog CQkJc2tpcCAibm8gdGFyIHByb2dyYW0gYXZhaWxhYmxlIiwgMQogCQkJICBpZiAoIWRlZmluZWQg JHRhciB8fCAkdGFyIGVxICcnKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYy5oIGIvc3Jj L2luY2x1ZGUvYy5oCmluZGV4IGRjMTg0MTM0NmMuLjY0MWNkOWJkZjEgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2MuaAorKysgYi9zcmMvaW5jbHVkZS9jLmgKQEAgLTE4Miw3ICsxODIsNyBAQAog I2RlZmluZSBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFkgcGdfYXR0cmlidXRlX3VudXNlZCgpCiAj ZW5kaWYKIAotLyogR0NDIHN1cHBvcnRzIGZvcm1hdCBhdHRyaWJ1dGVzICovCisvKiBHQ0Mgc3Vw cG9ydCBmb3JtYXQgYXR0cmlidXRlcyAqLwogI2lmIGRlZmluZWQoX19HTlVDX18pCiAjZGVmaW5l IHBnX2F0dHJpYnV0ZV9mb3JtYXRfYXJnKGEpIF9fYXR0cmlidXRlX18oKGZvcm1hdF9hcmcoYSkp KQogI2RlZmluZSBwZ19hdHRyaWJ1dGVfcHJpbnRmKGYsYSkgX19hdHRyaWJ1dGVfXygoZm9ybWF0 KFBHX1BSSU5URl9BVFRSSUJVVEUsIGYsIGEpKSkKQEAgLTE5Miw3ICsxOTIsNyBAQAogI2VuZGlm CiAKIC8qIEdDQyBhbmQgU3VucHJvIHN1cHBvcnQgYWxpZ25lZCwgcGFja2VkIGFuZCBub3JldHVy biAqLwotI2lmIGRlZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoX19TVU5QUk9fQykKKyNpZiBk ZWZpbmVkKF9fR05VQ19fKSB8fCBkZWZpbmVkKF9fU1VOUFJPX0MpIAogI2RlZmluZSBwZ19hdHRy aWJ1dGVfYWxpZ25lZChhKSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKGEpKSkKICNkZWZpbmUgcGdf YXR0cmlidXRlX25vcmV0dXJuKCkgX19hdHRyaWJ1dGVfXygobm9yZXR1cm4pKQogI2RlZmluZSBw Z19hdHRyaWJ1dGVfcGFja2VkKCkgX19hdHRyaWJ1dGVfXygocGFja2VkKSkKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3BvcnQvYWl4LmggYi9zcmMvaW5jbHVkZS9wb3J0L2FpeC5oCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjFjMmQxNjY3OTEKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvaW5jbHVkZS9wb3J0L2FpeC5oCkBAIC0wLDAgKzEsNiBAQAorLyoKKyAqIHNyYy9p bmNsdWRlL3BvcnQvYWl4LmgKKyAqLworI2RlZmluZSBDTEFTU19DT05GTElDVAorI2RlZmluZSBE SVNBQkxFX1hPUEVOX05MUworCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3NfbG9j ay5oIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9zX2xvY2suaAppbmRleCAyOWFjNmNkY2Q5Li43Njhk YmJkMmUzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3NfbG9jay5oCisrKyBiL3Ny Yy9pbmNsdWRlL3N0b3JhZ2Uvc19sb2NrLmgKQEAgLTQwMSw1NyArNDAxLDE2IEBAIHR5cGVkZWYg dW5zaWduZWQgaW50IHNsb2NrX3Q7CiAKICNkZWZpbmUgVEFTKGxvY2spIHRhcyhsb2NrKQogCi0v KiBPbiBQUEMsIGl0J3MgYSB3aW4gdG8gdXNlIGEgbm9uLWxvY2tpbmcgdGVzdCBiZWZvcmUgdGhl IGx3YXJ4ICovCisvKiBPbiBQUEMsIHVzZSB0aGUgZ2NjIGF0b21pYyByb3V0aW5lcywgdG8gc2V0 IHRoZSBsb2NrLiAqLwogI2RlZmluZSBUQVNfU1BJTihsb2NrKQkoKihsb2NrKSA/IDEgOiBUQVMo bG9jaykpCiAKLS8qCi0gKiBUaGUgc2Vjb25kIG9wZXJhbmQgb2YgYWRkaSBjYW4gaG9sZCBhIGNv bnN0YW50IHplcm8gb3IgYSByZWdpc3RlciBudW1iZXIsCi0gKiBoZW5jZSBjb25zdHJhaW50ICI9 JmIiIHRvIGF2b2lkIGFsbG9jYXRpbmcgcjAuICAiYiIgc3RhbmRzIGZvciAiYWRkcmVzcwotICog YmFzZSByZWdpc3RlciI7IG1vc3Qgb3BlcmFuZHMgaGF2aW5nIHRoaXMgcmVnaXN0ZXItb3ItemVy byBwcm9wZXJ0eSBhcmUKLSAqIGFkZHJlc3MgYmFzZXMsIGUuZy4gdGhlIHNlY29uZCBvcGVyYW5k IG9mIGx3YXguCi0gKgotICogTk9URTogcGVyIHRoZSBFbmhhbmNlZCBQb3dlclBDIEFyY2hpdGVj dHVyZSBtYW51YWwsIHYxLjAgZGF0ZWQgNy1NYXktMjAwMiwKLSAqIGFuIGlzeW5jIGlzIGEgc3Vm ZmljaWVudCBzeW5jaHJvbml6YXRpb24gYmFycmllciBhZnRlciBhIGx3YXJ4L3N0d2N4IGxvb3Au Ci0gKiBCdXQgaWYgdGhlIHNwaW5sb2NrIGlzIGluIG9yZGluYXJ5IG1lbW9yeSwgd2UgY2FuIHVz ZSBsd3N5bmMgaW5zdGVhZCBmb3IKLSAqIGJldHRlciBwZXJmb3JtYW5jZS4KLSAqLwogc3RhdGlj IF9faW5saW5lX18gaW50CiB0YXModm9sYXRpbGUgc2xvY2tfdCAqbG9jaykKIHsKLQlzbG9ja190 IF90OwotCWludCBfcmVzOwotCi0JX19hc21fXyBfX3ZvbGF0aWxlX18oCi0iCWx3YXJ4ICAgJTAs MCwlMywxCVxuIgotIgljbXB3aSAgICUwLDAJCVxuIgotIglibmUgICAgIDFmCQkJXG4iCi0iCWFk ZGkgICAgJTAsJTAsMQkJXG4iCi0iCXN0d2N4LiAgJTAsMCwlMwkJXG4iCi0iCWJlcSAgICAgMmYJ CQlcbiIKLSIxOiBcbiIKLSIJbGkgICAgICAlMSwxCQlcbiIKLSIJYiAgICAgICAzZgkJCVxuIgot IjI6IFxuIgotIglsd3N5bmMJCQkJXG4iCi0iCWxpICAgICAgJTEsMAkJXG4iCi0iMzogXG4iCi06 CSI9JmIiKF90KSwgIj1yIihfcmVzKSwgIittIigqbG9jaykKLToJInIiKGxvY2spCi06CSJtZW1v cnkiLCAiY2MiKTsKLQlyZXR1cm4gX3JlczsKKyAgICByZXR1cm4gX19zeW5jX2xvY2tfdGVzdF9h bmRfc2V0KGxvY2ssIDEpOwogfQogCi0vKgotICogUG93ZXJQQyBTX1VOTE9DSyBpcyBhbG1vc3Qg c3RhbmRhcmQgYnV0IHJlcXVpcmVzIGEgInN5bmMiIGluc3RydWN0aW9uLgotICogQnV0IHdlIGNh biB1c2UgbHdzeW5jIGluc3RlYWQgZm9yIGJldHRlciBwZXJmb3JtYW5jZS4KLSAqLwotI2RlZmlu ZSBTX1VOTE9DSyhsb2NrKQlcCi1kbyBcCi17IFwKLQlfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIgls d3N5bmMgXG4iIDo6OiAibWVtb3J5Iik7IFwKLQkqKCh2b2xhdGlsZSBzbG9ja190ICopIChsb2Nr KSkgPSAwOyBcCi19IHdoaWxlICgwKQotCisjZGVmaW5lIFNfVU5MT0NLKGxvY2spIF9fc3luY19s b2NrX3JlbGVhc2UobG9jaykKICNlbmRpZiAvKiBwb3dlcnBjICovCiAKIApAQCAtNjYyLDYgKzYy MSwyMSBAQCB0YXModm9sYXRpbGUgc2xvY2tfdCAqbG9jaykKIAogI2lmICFkZWZpbmVkKEhBU19U RVNUX0FORF9TRVQpCS8qIFdlIGRpZG4ndCB0cmlnZ2VyIGFib3ZlLCBsZXQncyB0cnkgaGVyZSAq LwogCisjaWYgZGVmaW5lZChfQUlYKQkvKiBBSVggKi8KKy8qCisgKiBBSVggKFBPV0VSKQorICov CisjZGVmaW5lIEhBU19URVNUX0FORF9TRVQKKworI2luY2x1ZGUgPHN5cy9hdG9taWNfb3AuaD4K KwordHlwZWRlZiBpbnQgc2xvY2tfdDsKKworI2RlZmluZSBUQVMobG9jaykJCQlfY2hlY2tfbG9j aygoc2xvY2tfdCAqKSAobG9jayksIDAsIDEpCisjZGVmaW5lIFNfVU5MT0NLKGxvY2spCQlfY2xl YXJfbG9jaygoc2xvY2tfdCAqKSAobG9jayksIDApCisjZW5kaWYJIC8qIF9BSVggKi8KKworCiAv KiBUaGVzZSBhcmUgaW4gc3Vuc3R1ZGlvXyhzcGFyY3x4ODYpLnMgKi8KIAogI2lmIGRlZmluZWQo X19TVU5QUk9fQykgJiYgKGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8 IGRlZmluZWQoX19zcGFyY19fKSB8fCBkZWZpbmVkKF9fc3BhcmMpKQpkaWZmIC0tZ2l0IGEvc3Jj L2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmls ZQppbmRleCBiMzZhNzY1NzY0Li4xNTQ0MjlkNGQxIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNl cy9saWJwcS9NYWtlZmlsZQorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZQpAQCAt MTE0LDcgKzExNCw3IEBAIGJhY2tlbmRfc3JjID0gJCh0b3Bfc3JjZGlyKS9zcmMvYmFja2VuZAog IyBjb2RpbmcgcnVsZS4KIGxpYnBxLXJlZnMtc3RhbXA6ICQoc2hsaWIpCiBpZm5lcSAoJChlbmFi bGVfY292ZXJhZ2UpLCB5ZXMpCi1pZmVxICgsJChmaWx0ZXIgc29sYXJpcywkKFBPUlROQU1FKSkp CitpZmVxICgsJChmaWx0ZXIgYWl4IHNvbGFyaXMsJChQT1JUTkFNRSkpKQogCUBpZiBubSAtQSAt dSAkPCAyPi9kZXYvbnVsbCB8IGdyZXAgLXYgLWUgX19jeGFfYXRleGl0IC1lIF9fdHNhbl9mdW5j X2V4aXQgfCBncmVwIGV4aXQ7IHRoZW4gXAogCQllY2hvICdsaWJwcSBtdXN0IG5vdCBiZSBjYWxs aW5nIGFueSBmdW5jdGlvbiB3aGljaCBpbnZva2VzIGV4aXQnOyBleGl0IDE7IFwKIAlmaQpkaWZm IC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQgYi9zcmMvaW50ZXJmYWNl cy9saWJwcS9tZXNvbi5idWlsZAppbmRleCBlZDJhNDA0OGQxLi43ZTIwMTdkYWYwIDEwMDY0NAot LS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9tZXNvbi5idWlsZAorKysgYi9zcmMvaW50ZXJmYWNl cy9saWJwcS9tZXNvbi5idWlsZApAQCAtNTQsOCArNTQsOSBAQCBsaWJwcV9jX2FyZ3MgPSBbJy1E U09fTUFKT1JfVkVSU0lPTj01J10KICMgICAgbGlicHFfc3QsIGFuZCB7cGdwb3J0LGNvbW1vbn1f c2hsaWIgZm9yIGxpYnBxX3NoCiAjCiAjIFdlIGNvdWxkIHRyeSB0byBhdm9pZCBidWlsZGluZyB0 aGUgc291cmNlIGZpbGVzIHR3aWNlLCBidXQgaXQgcHJvYmFibHkgYWRkcwotIyBtb3JlIGNvbXBs ZXhpdHkgdGhhbiBpdHMgd29ydGggKHJldXNpbmcgb2JqZWN0IGZpbGVzIHJlcXVpcmVzIGFsc28g bGlua2luZwotIyB0byB0aGUgbGlicmFyeSBvbiB3aW5kb3dzIG9yIGJyZWFrcyBwcmVjb21waWxl ZCBoZWFkZXJzKS4KKyMgbW9yZSBjb21wbGV4aXR5IHRoYW4gaXRzIHdvcnRoIChBSVggZG9lc24n dCBzdXBwb3J0IGxpbmtfd2hvbGUgeWV0LCByZXVzaW5nCisjIG9iamVjdCBmaWxlcyByZXF1aXJl cyBhbHNvIGxpbmtpbmcgdG8gdGhlIGxpYnJhcnkgb24gd2luZG93cyBvciBicmVha3MKKyMgcHJl Y29tcGlsZWQgaGVhZGVycykuCiBsaWJwcV9zdCA9IHN0YXRpY19saWJyYXJ5KCdsaWJwcScsCiAg IGxpYnBxX3NvdXJjZXMsCiAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IFtsaWJwcV9pbmNdLApkaWZm IC0tZ2l0IGEvc3JjL21ha2VmaWxlcy9NYWtlZmlsZS5haXggYi9zcmMvbWFrZWZpbGVzL01ha2Vm aWxlLmFpeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5kZDE2YTdhMDM3 Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL21ha2VmaWxlcy9NYWtlZmlsZS5haXgKQEAgLTAsMCAr MSwzOSBAQAorIyBNQUtFX0VYUE9SVFMgaXMgcmVxdWlyZWQgZm9yIHN2cjQgbG9hZGVycyB0aGF0 IHdhbnQgYSBmaWxlIG9mCisjIHN5bWJvbCBuYW1lcyB0byB0ZWxsIHRoZW0gd2hhdCB0byBleHBv cnQvaW1wb3J0LgorTUFLRV9FWFBPUlRTPSB0cnVlCisKKyMgLWJsaWJwYXRoIG11c3QgY29udGFp biBBTEwgZGlyZWN0b3JpZXMgd2hlcmUgd2Ugc2hvdWxkIGxvb2sgZm9yIGxpYnJhcmllcworbGli cGF0aCA6PSAkKHNoZWxsIGVjaG8gJChzdWJzdCAtTCw6LCQoZmlsdGVyIC1MLyUsJChMREZMQUdT KSkpIHwgc2VkIC1lJ3MvIC8vZycpOi91c3IvbGliOi9saWIKKworIyB3aGVuIGJ1aWxkaW5nIHdp dGggZ2NjLCBuZWVkIHRvIG1ha2Ugc3VyZSB0aGF0IGxpYmdjYyBjYW4gYmUgZm91bmQKK2lmZXEg KCQoR0NDKSwgeWVzKQorbGlicGF0aCA6PSAkKGxpYnBhdGgpOiQoZGlyICQoc2hlbGwgZ2NjIC1w cmludC1saWJnY2MtZmlsZS1uYW1lKSkKK2VuZGlmCisKK3JwYXRoID0gLVdsLC1ibGlicGF0aDon JChycGF0aGRpcikkKGxpYnBhdGgpJworCitMREZMQUdTX1NMICs9IC1XbCwtYm5vZW50cnkgLVds LC1INTEyIC1XbCwtYk06U1JFCisKKyMgZ2NjIG5lZWRzIHRvIGtub3cgaXQncyBidWlsZGluZyBh IHNoYXJlZCBsaWIsIG90aGVyd2lzZSBpdCdsbCBub3QgZW1pdAorIyBjb3JyZWN0IGNvZGUgLyBs aW5rIHRvIHRoZSByaWdodCBzdXBwb3J0IGxpYnJhcmllcworaWZlcSAoJChHQ0MpLCB5ZXMpCitM REZMQUdTX1NMICs9IC1zaGFyZWQKK2VuZGlmCisKKyMgZW52IHZhciBuYW1lIHRvIHVzZSBpbiBw bGFjZSBvZiBMRF9MSUJSQVJZX1BBVEgKK2xkX2xpYnJhcnlfcGF0aF92YXIgPSBMSUJQQVRICisK KworUE9TVEdSRVNfSU1QPSBwb3N0Z3Jlcy5pbXAKKworaWZkZWYgUEdYUworQkVfRExMTElCUz0g LVdsLC1iSTokKHBrZ2xpYmRpcikvJChQT1NUR1JFU19JTVApCitlbHNlCitCRV9ETExMSUJTPSAt V2wsLWJJOiQodG9wX2J1aWxkZGlyKS9zcmMvYmFja2VuZC8kKFBPU1RHUkVTX0lNUCkKK2VuZGlm CisKK01LTERFWFBPUlRfRElSPXNyYy9iYWNrZW5kL3BvcnQvYWl4CitNS0xERVhQT1JUPSQodG9w X3NyY2RpcikvJChNS0xERVhQT1JUX0RJUikvbWtsZGV4cG9ydC5zaAorCislJChETFNVRkZJWCk6 ICUubworCSQoQ0MpICQoQ0ZMQUdTKSAkKi5vICQoTERGTEFHUykgJChMREZMQUdTX1NMKSAtbyAk QCAkKEJFX0RMTExJQlMpCmRpZmYgLS1naXQgYS9zcmMvcG9ydC9SRUFETUUgYi9zcmMvcG9ydC9S RUFETUUKaW5kZXggZWQ1YzU0YTcyZi4uOTdmMThhNjIzMyAxMDA2NDQKLS0tIGEvc3JjL3BvcnQv UkVBRE1FCisrKyBiL3NyYy9wb3J0L1JFQURNRQpAQCAtMjgsNSArMjgsNSBAQCBhcHBsaWNhdGlv bnMuCiBmcm9tIGxpYnBncG9ydCBhcmUgbGlua2VkIGZpcnN0LiAgVGhpcyBhdm9pZHMgaGF2aW5n IGFwcGxpY2F0aW9ucwogZGVwZW5kZW50IG9uIHN5bWJvbHMgdGhhdCBhcmUgX3VzZWRfIGJ5IGxp YnBxLCBidXQgbm90IGludGVuZGVkIHRvIGJlCiBleHBvcnRlZCBieSBsaWJwcS4gIGxpYnBxJ3Mg bGlicGdwb3J0IHVzYWdlIGNoYW5nZXMgb3ZlciB0aW1lLCBzbyBzdWNoIGEKLWRlcGVuZGVuY3kg aXMgYSBwcm9ibGVtLiAgV2luZG93cywgTGludXgsIGFuZCBtYWNPUyB1c2UgYW4gZXhwb3J0Citk ZXBlbmRlbmN5IGlzIGEgcHJvYmxlbS4gIFdpbmRvd3MsIExpbnV4LCBBSVgsIGFuZCBtYWNPUyB1 c2UgYW4gZXhwb3J0CiBsaXN0IHRvIGNvbnRyb2wgdGhlIHN5bWJvbHMgZXhwb3J0ZWQgYnkgbGli cHEuCmRpZmYgLS1naXQgYS9zcmMvcG9ydC9zdHJlcnJvci5jIGIvc3JjL3BvcnQvc3RyZXJyb3Iu YwppbmRleCA0OTE4YmE4MjFjLi4xMDcwYTQ5ODAyIDEwMDY0NAotLS0gYS9zcmMvcG9ydC9zdHJl cnJvci5jCisrKyBiL3NyYy9wb3J0L3N0cmVycm9yLmMKQEAgLTIxNCw4ICsyMTQsMTAgQEAgZ2V0 X2Vycm5vX3N5bWJvbChpbnQgZXJybnVtKQogCQkJcmV0dXJuICJFTk9UQ09OTiI7CiAJCWNhc2Ug RU5PVERJUjoKIAkJCXJldHVybiAiRU5PVERJUiI7CisjaWYgZGVmaW5lZChFTk9URU1QVFkpICYm IChFTk9URU1QVFkgIT0gRUVYSVNUKSAvKiBzYW1lIGNvZGUgb24gQUlYICovCiAJCWNhc2UgRU5P VEVNUFRZOgogCQkJcmV0dXJuICJFTk9URU1QVFkiOworI2VuZGlmCiAJCWNhc2UgRU5PVFNPQ0s6 CiAJCQlyZXR1cm4gIkVOT1RTT0NLIjsKICNpZmRlZiBFTk9UU1VQCmRpZmYgLS1naXQgYS9zcmMv dGVtcGxhdGUvYWl4IGIvc3JjL3RlbXBsYXRlL2FpeApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwLi4wYTc4ODY3NmMwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3RlbXBsYXRl L2FpeApAQCAtMCwwICsxLDE0IEBACisjIHNyYy90ZW1wbGF0ZS9haXgKKworICAjIER1ZSB0byBh IGNvbXBpbGVyIGJ1Zywgc2VlIDIwMTcxMDEzMDIzNTM2LkdBNDkyMTQ2QHJmZC5sZWFkYm9hdC5j b20gZm9yIGRldGFpbHMsCisgICMgZm9yY2UgcmVzdHJpY3Qgbm90IHRvIGJlIHVzZWQgd2hlbiBj b21waWxpbmcgd2l0aCB4bGMuCisjICBGT1JDRV9ESVNBQkxFX1JFU1RSSUNUPXllcworI2ZpCisK KyMgRXh0cmEgQ0ZMQUdTIGZvciBjb2RlIHRoYXQgd2lsbCBnbyBpbnRvIGEgc2hhcmVkIGxpYnJh cnkKK0NGTEFHU19TTD0iIgorCisjIE5hdGl2ZSBtZW1zZXQoKSBpcyBmYXN0ZXIsIHRlc3RlZCBv bjoKKyMgCUFJWCA1LjEgYW5kIDUuMiwgWExDIDYuMCAoSUJNJ3MgY2MpCisjIAlBSVggNS4zIE1M MywgZ2NjIDQuMC4xCitNRU1TRVRfTE9PUF9MSU1JVD0wCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL01ha2VmaWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9NYWtlZmlsZQppbmRleCA2NDA5YTQ4 NWU4Li43YzY2NWZmODkyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL01ha2VmaWxlCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvTWFrZWZpbGUKQEAgLTcsNiArNywxMSBAQAogIyBHTlUgbWFr ZSB1c2VzIGEgbWFrZSBmaWxlIG5hbWVkICJHTlVtYWtlZmlsZSIgaW4gcHJlZmVyZW5jZSB0byAi TWFrZWZpbGUiCiAjIGlmIGl0IGV4aXN0cy4gIFBvc3RncmVzIGlzIHNoaXBwZWQgd2l0aCBhICJH TlVtYWtlZmlsZSIuCiAKKworIyBBSVggbWFrZSBkZWZhdWx0cyB0byBidWlsZGluZyAqZXZlcnkq IHRhcmdldCBvZiB0aGUgZmlyc3QgcnVsZS4gIFN0YXJ0IHdpdGgKKyMgYSBzaW5nbGUtdGFyZ2V0 LCBlbXB0eSBydWxlIHRvIG1ha2UgdGhlIG90aGVyIHRhcmdldHMgbm9uLWRlZmF1bHQuCithbGw6 CisKIGFsbCBpbnN0YWxsIGNsZWFuIGNoZWNrIGluc3RhbGxjaGVjazoKIAlAZWNobyAiWW91IG11 c3QgdXNlIEdOVSBtYWtlIHRvIHVzZSBQb3N0Z3Jlcy4gIEl0IG1heSBiZSBpbnN0YWxsZWQiCiAJ QGVjaG8gIm9uIHlvdXIgc3lzdGVtIHdpdGggdGhlIG5hbWUgJ2dtYWtlJy4iCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nhbml0eV9jaGVjay5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nhbml0eV9jaGVjay5vdXQKaW5kZXggODM3MGMxNTYxYy4uYzVjNjc1 Yjc1MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zYW5pdHlfY2hlY2su b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2FuaXR5X2NoZWNrLm91dApAQCAt MjUsMyArMjUsMzIgQEAgU0VMRUNUIHJlbG5hbWUsIHJlbGtpbmQKIC0tLS0tLS0tLSstLS0tLS0t LS0KICgwIHJvd3MpCiAKKy0tCistLSBXaGVuIEFMSUdOT0ZfRE9VQkxFPT00IChlLmcuIEFJWCks IHRoZSBDIEFCSSBtYXkgaW1wb3NlIDgtYnl0ZSBhbGlnbm1lbnQgb24KKy0tIHNvbWUgb2YgdGhl IEMgdHlwZXMgdGhhdCBjb3JyZXNwb25kIHRvIFRZUEFMSUdOX0RPVUJMRSBTUUwgdHlwZXMuICBU byBlbnN1cmUKKy0tIGNhdGFsb2cgQyBzdHJ1Y3QgbGF5b3V0IG1hdGNoZXMgY2F0YWxvZyB0dXBs ZSBsYXlvdXQsIGFycmFuZ2UgZm9yIHRoZSB0dXBsZQorLS0gb2Zmc2V0IG9mIGVhY2ggZml4ZWQt d2lkdGgsIGF0dGFsaWduPSdkJyBjYXRhbG9nIGNvbHVtbiB0byBiZSBkaXZpc2libGUgYnkgOAor LS0gdW5jb25kaXRpb25hbGx5LiAgS2VlcCBzdWNoIGNvbHVtbnMgYmVmb3JlIHRoZSBmaXJzdCBO YW1lRGF0YSBjb2x1bW4gb2YgdGhlCistLSBjYXRhbG9nLCBzaW5jZSBwYWNrYWdlcnMgY2FuIG92 ZXJyaWRlIE5BTUVEQVRBTEVOIHRvIGFuIG9kZCBudW1iZXIuCistLQorV0lUSCBjaGVja19jb2x1 bW5zIEFTICgKKyBTRUxFQ1QgcmVsbmFtZSwgYXR0bmFtZSwKKyAgYXJyYXkoCisgICBTRUxFQ1Qg dC5vaWQKKyAgICBGUk9NIHBnX3R5cGUgdCBKT0lOIHBnX2F0dHJpYnV0ZSBwYSBPTiB0Lm9pZCA9 IHBhLmF0dHR5cGlkCisgICAgV0hFUkUgcGEuYXR0cmVsaWQgPSBhLmF0dHJlbGlkIEFORAorICAg ICAgICAgIHBhLmF0dG51bSA+IDAgQU5EIHBhLmF0dG51bSA8IGEuYXR0bnVtCisgICAgT1JERVIg QlkgcGEuYXR0bnVtKSBBUyBjb2x0eXBlcworIEZST00gcGdfYXR0cmlidXRlIGEgSk9JTiBwZ19j bGFzcyBjIE9OIGMub2lkID0gYXR0cmVsaWQKKyAgSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiBjLnJl bG5hbWVzcGFjZSA9IG4ub2lkCisgV0hFUkUgYXR0YWxpZ24gPSAnZCcgQU5EIHJlbGtpbmQgPSAn cicgQU5ECisgIGF0dG5vdG51bGwgQU5EIGF0dGxlbiA8PiAtMSBBTkQgbi5uc3BuYW1lID0gJ3Bn X2NhdGFsb2cnCispCitTRUxFQ1QgcmVsbmFtZSwgYXR0bmFtZSwgY29sdHlwZXMsIGdldF9jb2x1 bW5zX2xlbmd0aChjb2x0eXBlcykKKyBGUk9NIGNoZWNrX2NvbHVtbnMKKyBXSEVSRSBnZXRfY29s dW1uc19sZW5ndGgoY29sdHlwZXMpICUgOCAhPSAwIE9SCisgICAgICAgJ25hbWUnOjpyZWd0eXBl OjpvaWQgPSBBTlkoY29sdHlwZXMpOworIHJlbG5hbWUgfCBhdHRuYW1lIHwgY29sdHlwZXMgfCBn ZXRfY29sdW1uc19sZW5ndGggCistLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvdGVzdF9zZXR1cC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Rlc3Rf c2V0dXAub3V0CmluZGV4IDNkMGVlZWM5OTYuLjVkOWU2YmYxMmIgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdGVzdF9zZXR1cC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC90ZXN0X3NldHVwLm91dApAQCAtMjA5LDYgKzIwOSwxMCBAQCBDUkVBVEUgRlVO Q1RJT04gdHRkdW1teSAoKQogICAgIFJFVFVSTlMgdHJpZ2dlcgogICAgIEFTIDoncmVncmVzc2xp YicKICAgICBMQU5HVUFHRSBDOworQ1JFQVRFIEZVTkNUSU9OIGdldF9jb2x1bW5zX2xlbmd0aChv aWRbXSkKKyAgICBSRVRVUk5TIGludAorICAgIEFTIDoncmVncmVzc2xpYicKKyAgICBMQU5HVUFH RSBDIFNUUklDVCBTVEFCTEUgUEFSQUxMRUwgU0FGRTsKIC0tIFVzZSBoYW5kLXJvbGxlZCBoYXNo IGZ1bmN0aW9ucyBhbmQgb3BlcmF0b3IgY2xhc3NlcyB0byBnZXQgcHJlZGljdGFibGUKIC0tIHJl c3VsdCBvbiBkaWZmZXJlbnQgbWFjaGluZXMuICBUaGUgaGFzaCBmdW5jdGlvbiBmb3IgaW50NCBz aW1wbHkgcmV0dXJucwogLS0gdGhlIHN1bSBvZiB0aGUgdmFsdWVzIHBhc3NlZCB0byBpdCBhbmQg dGhlIG9uZSBmb3IgdGV4dCByZXR1cm5zIHRoZSBsZW5ndGgKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvcmVncmVzcy5jIGIvc3JjL3Rlc3QvcmVncmVzcy9yZWdyZXNzLmMKaW5kZXggZGVm ZmFlYTU3OC4uY2M2MzM4NjRkNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9yZWdyZXNz LmMKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9yZWdyZXNzLmMKQEAgLTEyMjEsMyArMTIyMSw0MyBA QCBiaW5hcnlfY29lcmNpYmxlKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlQR19SRVRVUk5fQk9PTChJ c0JpbmFyeUNvZXJjaWJsZShzcmN0eXBlLCB0YXJnZXR0eXBlKSk7CiB9CisKKy8qCisgKiBSZXR1 cm4gdGhlIGxlbmd0aCBvZiB0aGUgcG9ydGlvbiBvZiBhIHR1cGxlIGNvbnNpc3Rpbmcgb2YgdGhl IGdpdmVuIGFycmF5CisgKiBvZiBkYXRhIHR5cGVzLiAgVGhlIGlucHV0IGRhdGEgdHlwZXMgbXVz dCBiZSBmaXhlZC1sZW5ndGggZGF0YSB0eXBlcy4KKyAqLworUEdfRlVOQ1RJT05fSU5GT19WMShn ZXRfY29sdW1uc19sZW5ndGgpOworRGF0dW0KK2dldF9jb2x1bW5zX2xlbmd0aChQR19GVU5DVElP Tl9BUkdTKQoreworCUFycmF5VHlwZSAgKnRhID0gUEdfR0VUQVJHX0FSUkFZVFlQRV9QKDApOwor CU9pZAkJICAgKnR5cGVfb2lkczsKKwlpbnQJCQludHlwZXM7CisJaW50CQkJY29sdW1uX29mZnNl dCA9IDA7CisKKwlpZiAoQVJSX0hBU05VTEwodGEpICYmIGFycmF5X2NvbnRhaW5zX251bGxzKHRh KSkKKwkJZWxvZyhFUlJPUiwgImFyZ3VtZW50IG11c3Qgbm90IGNvbnRhaW4gbnVsbHMiKTsKKwor CWlmIChBUlJfTkRJTSh0YSkgPiAxKQorCQllbG9nKEVSUk9SLCAiYXJndW1lbnQgbXVzdCBiZSBl bXB0eSBvciBvbmUtZGltZW5zaW9uYWwgYXJyYXkiKTsKKworCXR5cGVfb2lkcyA9IChPaWQgKikg QVJSX0RBVEFfUFRSKHRhKTsKKwludHlwZXMgPSBBcnJheUdldE5JdGVtcyhBUlJfTkRJTSh0YSks IEFSUl9ESU1TKHRhKSk7CisJZm9yIChpbnQgaSA9IDA7IGkgPCBudHlwZXM7IGkrKykKKwl7CisJ CU9pZAkJCXR5cGVvaWQgPSB0eXBlX29pZHNbaV07CisJCWludDE2CQl0eXBsZW47CisJCWJvb2wJ CXR5cGJ5dmFsOworCQljaGFyCQl0eXBhbGlnbjsKKworCQlnZXRfdHlwbGVuYnl2YWxhbGlnbih0 eXBlb2lkLCAmdHlwbGVuLCAmdHlwYnl2YWwsICZ0eXBhbGlnbik7CisKKwkJLyogdGhlIGRhdGEg dHlwZSBtdXN0IGJlIGZpeGVkLWxlbmd0aCAqLworCQlpZiAodHlwbGVuIDwgMCkKKwkJCWVsb2co RVJST1IsICJ0eXBlICV1IGlzIG5vdCBmaXhlZC1sZW5ndGggZGF0YSB0eXBlIiwgdHlwZW9pZCk7 CisKKwkJY29sdW1uX29mZnNldCA9IGF0dF9hbGlnbl9ub21pbmFsKGNvbHVtbl9vZmZzZXQgKyB0 eXBsZW4sIHR5cGFsaWduKTsKKwl9CisKKwlQR19SRVRVUk5fSU5UMzIoY29sdW1uX29mZnNldCk7 Cit9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zYW5pdHlfY2hlY2suc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc2FuaXR5X2NoZWNrLnNxbAppbmRleCAxNjJlNTMyNGI1Li43 ZjMzOGQxOTFjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zYW5pdHlfY2hlY2su c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nhbml0eV9jaGVjay5zcWwKQEAgLTE5LDMg KzE5LDI5IEBAIFNFTEVDVCByZWxuYW1lLCByZWxraW5kCiAgIEZST00gcGdfY2xhc3MKICBXSEVS RSByZWxraW5kIElOICgndicsICdjJywgJ2YnLCAncCcsICdJJykKICAgICAgICBBTkQgcmVsZmls ZW5vZGUgPD4gMDsKKworLS0KKy0tIFdoZW4gQUxJR05PRl9ET1VCTEU9PTQgKGUuZy4gQUlYKSwg dGhlIEMgQUJJIG1heSBpbXBvc2UgOC1ieXRlIGFsaWdubWVudCBvbgorLS0gc29tZSBvZiB0aGUg QyB0eXBlcyB0aGF0IGNvcnJlc3BvbmQgdG8gVFlQQUxJR05fRE9VQkxFIFNRTCB0eXBlcy4gIFRv IGVuc3VyZQorLS0gY2F0YWxvZyBDIHN0cnVjdCBsYXlvdXQgbWF0Y2hlcyBjYXRhbG9nIHR1cGxl IGxheW91dCwgYXJyYW5nZSBmb3IgdGhlIHR1cGxlCistLSBvZmZzZXQgb2YgZWFjaCBmaXhlZC13 aWR0aCwgYXR0YWxpZ249J2QnIGNhdGFsb2cgY29sdW1uIHRvIGJlIGRpdmlzaWJsZSBieSA4Cist LSB1bmNvbmRpdGlvbmFsbHkuICBLZWVwIHN1Y2ggY29sdW1ucyBiZWZvcmUgdGhlIGZpcnN0IE5h bWVEYXRhIGNvbHVtbiBvZiB0aGUKKy0tIGNhdGFsb2csIHNpbmNlIHBhY2thZ2VycyBjYW4gb3Zl cnJpZGUgTkFNRURBVEFMRU4gdG8gYW4gb2RkIG51bWJlci4KKy0tCitXSVRIIGNoZWNrX2NvbHVt bnMgQVMgKAorIFNFTEVDVCByZWxuYW1lLCBhdHRuYW1lLAorICBhcnJheSgKKyAgIFNFTEVDVCB0 Lm9pZAorICAgIEZST00gcGdfdHlwZSB0IEpPSU4gcGdfYXR0cmlidXRlIHBhIE9OIHQub2lkID0g cGEuYXR0dHlwaWQKKyAgICBXSEVSRSBwYS5hdHRyZWxpZCA9IGEuYXR0cmVsaWQgQU5ECisgICAg ICAgICAgcGEuYXR0bnVtID4gMCBBTkQgcGEuYXR0bnVtIDwgYS5hdHRudW0KKyAgICBPUkRFUiBC WSBwYS5hdHRudW0pIEFTIGNvbHR5cGVzCisgRlJPTSBwZ19hdHRyaWJ1dGUgYSBKT0lOIHBnX2Ns YXNzIGMgT04gYy5vaWQgPSBhdHRyZWxpZAorICBKT0lOIHBnX25hbWVzcGFjZSBuIE9OIGMucmVs bmFtZXNwYWNlID0gbi5vaWQKKyBXSEVSRSBhdHRhbGlnbiA9ICdkJyBBTkQgcmVsa2luZCA9ICdy JyBBTkQKKyAgYXR0bm90bnVsbCBBTkQgYXR0bGVuIDw+IC0xIEFORCBuLm5zcG5hbWUgPSAncGdf Y2F0YWxvZycKKykKK1NFTEVDVCByZWxuYW1lLCBhdHRuYW1lLCBjb2x0eXBlcywgZ2V0X2NvbHVt bnNfbGVuZ3RoKGNvbHR5cGVzKQorIEZST00gY2hlY2tfY29sdW1ucworIFdIRVJFIGdldF9jb2x1 bW5zX2xlbmd0aChjb2x0eXBlcykgJSA4ICE9IDAgT1IKKyAgICAgICAnbmFtZSc6OnJlZ3R5cGU6 Om9pZCA9IEFOWShjb2x0eXBlcyk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC90 ZXN0X3NldHVwLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Rlc3Rfc2V0dXAuc3FsCmluZGV4 IDA2YjBlMjEyMWYuLjFiMmQ0MzQ2ODMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Rlc3Rfc2V0dXAuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Rlc3Rfc2V0dXAuc3Fs CkBAIC0yNTcsNiArMjU3LDExIEBAIENSRUFURSBGVU5DVElPTiB0dGR1bW15ICgpCiAgICAgQVMg OidyZWdyZXNzbGliJwogICAgIExBTkdVQUdFIEM7CiAKK0NSRUFURSBGVU5DVElPTiBnZXRfY29s dW1uc19sZW5ndGgob2lkW10pCisgICAgUkVUVVJOUyBpbnQKKyAgICBBUyA6J3JlZ3Jlc3NsaWIn CisgICAgTEFOR1VBR0UgQyBTVFJJQ1QgU1RBQkxFIFBBUkFMTEVMIFNBRkU7CisKIC0tIFVzZSBo YW5kLXJvbGxlZCBoYXNoIGZ1bmN0aW9ucyBhbmQgb3BlcmF0b3IgY2xhc3NlcyB0byBnZXQgcHJl ZGljdGFibGUKIC0tIHJlc3VsdCBvbiBkaWZmZXJlbnQgbWFjaGluZXMuICBUaGUgaGFzaCBmdW5j dGlvbiBmb3IgaW50NCBzaW1wbHkgcmV0dXJucwogLS0gdGhlIHN1bSBvZiB0aGUgdmFsdWVzIHBh c3NlZCB0byBpdCBhbmQgdGhlIG9uZSBmb3IgdGV4dCByZXR1cm5zIHRoZSBsZW5ndGgKZGlmZiAt LWdpdCBhL3NyYy90b29scy9nZW5fZXhwb3J0LnBsIGIvc3JjL3Rvb2xzL2dlbl9leHBvcnQucGwK aW5kZXggZDlmZGFhYWY2ZC4uODg4YzhhMTk3YSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL2dlbl9l eHBvcnQucGwKKysrIGIvc3JjL3Rvb2xzL2dlbl9leHBvcnQucGwKQEAgLTE2LDExICsxNiwxMiBA QCBHZXRPcHRpb25zKAogCSdpbnB1dDpzJyA9PiBcJGlucHV0LAogCSdvdXRwdXQ6cycgPT4gXCRv dXRwdXQpIG9yIGRpZSAid3JvbmcgYXJndW1lbnRzIjsKIAotaWYgKG5vdCggICAkZm9ybWF0IGVx ICdkYXJ3aW4nCitpZiAobm90KCAgICRmb3JtYXQgZXEgJ2FpeCcKKwkJb3IgJGZvcm1hdCBlcSAn ZGFyd2luJwogCQlvciAkZm9ybWF0IGVxICdnbnUnCiAJCW9yICRmb3JtYXQgZXEgJ3dpbicpKQog ewotCWRpZSAiJDA6ICRmb3JtYXQgaXMgbm90IHlldCBoYW5kbGVkIChvbmx5IGRhcndpbiwgZ251 LCB3aW4gYXJlKVxuIjsKKwlkaWUgIiQwOiAkZm9ybWF0IGlzIG5vdCB5ZXQgaGFuZGxlZCAob25s eSBhaXgsIGRhcndpbiwgZ251LCB3aW4gYXJlKVxuIjsKIH0KIAogb3BlbihteSAkaW5wdXRfaGFu ZGxlLCAnPCcsICRpbnB1dCkKQEAgLTU1LDcgKzU2LDExIEBAIHdoaWxlICg8JGlucHV0X2hhbmRs ZT4pCiAJfQogCWVsc2lmICgvXihcUyspXHMrKFxTKykvKQogCXsKLQkJaWYgKCRmb3JtYXQgZXEg J2RhcndpbicpCisJCWlmICgkZm9ybWF0IGVxICdhaXgnKQorCQl7CisJCQlwcmludCAkb3V0cHV0 X2hhbmRsZSAiJDFcbiI7CisJCX0KKwkJZWxzaWYgKCRmb3JtYXQgZXEgJ2RhcndpbicpCiAJCXsK IAkJCXByaW50ICRvdXRwdXRfaGFuZGxlICJfJDFcbiI7CiAJCX0KZGlmZiAtLWdpdCBhL3NyYy90 b29scy9wZ2luY2x1ZGUvaGVhZGVyc2NoZWNrIGIvc3JjL3Rvb2xzL3BnaW5jbHVkZS9oZWFkZXJz Y2hlY2sKaW5kZXggNGExNTdkMGE1Zi4uY2ZkOGM2ODk2YyAxMDA3NTUKLS0tIGEvc3JjL3Rvb2xz L3BnaW5jbHVkZS9oZWFkZXJzY2hlY2sKKysrIGIvc3JjL3Rvb2xzL3BnaW5jbHVkZS9oZWFkZXJz Y2hlY2sKQEAgLTg1LDYgKzg1LDcgQEAgZG8KIAogCSMgVGhlc2UgZmlsZXMgYXJlIHBsYXRmb3Jt LXNwZWNpZmljLCBhbmQgYy5oIHdpbGwgaW5jbHVkZSB0aGUKIAkjIG9uZSB0aGF0J3MgcmVsZXZh bnQgZm9yIG91ciBjdXJyZW50IHBsYXRmb3JtIGFueXdheS4KKwl0ZXN0ICIkZiIgPSBzcmMvaW5j bHVkZS9wb3J0L2FpeC5oICYmIGNvbnRpbnVlCiAJdGVzdCAiJGYiID0gc3JjL2luY2x1ZGUvcG9y dC9jeWd3aW4uaCAmJiBjb250aW51ZQogCXRlc3QgIiRmIiA9IHNyYy9pbmNsdWRlL3BvcnQvZGFy d2luLmggJiYgY29udGludWUKIAl0ZXN0ICIkZiIgPSBzcmMvaW5jbHVkZS9wb3J0L2ZyZWVic2Qu aCAmJiBjb250aW51ZQotLSAKMi40MS4wCgo= --_006_CY8PR15MB5602B407BBD1B7B7C5FF1D8CDB9B2CY8PR15MB5602namp_ Content-Type: application/octet-stream; name="buildfarm17-summary.log" Content-Description: buildfarm17-summary.log Content-Disposition: attachment; filename="buildfarm17-summary.log"; size=3659; creation-date="Wed, 11 Sep 2024 12:05:28 GMT"; modification-date="Wed, 11 Sep 2024 12:05:28 GMT" Content-Transfer-Encoding: base64 CldlZCBTZXAgMTEgMDQ6MDE6NDggMjAyNDogYnVpbGRmYXJtIHJ1biBmb3IgQUlYbm9kZTAxOkhF QUQgc3RhcnRpbmcKQUlYbm9kZTAxOkhFQUQgICAgICAgICAgWzA0OjAyOjA3XSBjbGVhbmluZyBz b3VyY2UgaW4gL2hvbWUvcHNkYi9iZmFybS9wZzE3L3BnMTcuYWl4VHJpbSAuLi4KQUlYbm9kZTAx OkhFQUQgICAgICAgICAgWzA0OjAyOjE5XSBydW5uaW5nIGNvbmZpZ3VyZSAuLi4KY29uZmlndXJl OiBsb2FkaW5nIGNhY2hlIC9ob21lL3BzZGIvYmZhcm0vcGcxNy9idWlsZC1mYXJtLTE3L2J1aWxk cm9vdC9hY2NhY2hlLUFJWG5vZGUwMS9jb25maWctSEVBRC5jYWNoZQpBSVhub2RlMDE6SEVBRCAg ICAgICAgICBbMDQ6MDI6MjRdIHJ1bm5pbmcgYnVpbGQgLi4uCkFJWG5vZGUwMTpIRUFEICAgICAg ICAgIFswNDoxNjozMl0gcnVubmluZyBiYXNpYyByZWdyZXNzaW9uIHRlc3RzIC4uLgojIEFsbCAy MjMgdGVzdHMgcGFzc2VkLgpBSVhub2RlMDE6SEVBRCAgICAgICAgICBbMDQ6MjQ6MTVdIHJ1bm5p bmcgbWFrZSBjb250cmliIC4uLgpBSVhub2RlMDE6SEVBRCAgICAgICAgICBbMDQ6MjU6MzNdIHJ1 bm5pbmcgbWFrZSB0ZXN0bW9kdWxlcyAuLi4KQUlYbm9kZTAxOkhFQUQgICAgICAgICAgWzA0OjI1 OjQ5XSBydW5uaW5nIGluc3RhbGwgLi4uCkFJWG5vZGUwMTpIRUFEICAgICAgICAgIFswNDoyNjow M10gcnVubmluZyBtYWtlIGNvbnRyaWIgaW5zdGFsbCAuLi4KQUlYbm9kZTAxOkhFQUQgICAgICAg ICAgWzA0OjI2OjEwXSBydW5uaW5nIHRlc3Rtb2R1bGVzIGluc3RhbGwgLi4uCkFJWG5vZGUwMTpI RUFEICAgICAgICAgIFswNDoyNjoxNF0gY2hlY2tpbmcgcGdfdXBncmFkZQpBSVhub2RlMDE6SEVB RCAgICAgICAgICBbMDQ6MjY6MTRdIGNoZWNraW5nIHRlc3QtZGVjb2RpbmcKIyBBbGwgMTkgdGVz dHMgcGFzc2VkLgojIEFsbCAxMSB0ZXN0cyBwYXNzZWQuCkFJWG5vZGUwMTpIRUFEICAgICAgICAg IFswNDoyNjozNF0gcnVubmluZyBtYWtlIGNoZWNrIG1pc2NlbGxhbmVvdXMgbW9kdWxlcyAuLi4K IyBBbGwgMSB0ZXN0cyBwYXNzZWQuCiMgQWxsIDIgdGVzdHMgcGFzc2VkLgojIEFsbCAxIHRlc3Rz IHBhc3NlZC4KIyBBbGwgMyB0ZXN0cyBwYXNzZWQuCiMgQWxsIDEgdGVzdHMgcGFzc2VkLgojIEFs bCAxIHRlc3RzIHBhc3NlZC4KIyBBbGwgMTEgdGVzdHMgcGFzc2VkLgojIEFsbCAyIHRlc3RzIHBh c3NlZC4KIyBBbGwgMTkgdGVzdHMgcGFzc2VkLgojIEFsbCAxMSB0ZXN0cyBwYXNzZWQuCkFJWG5v ZGUwMTpIRUFEICAgICAgICAgIFswNDoyNzoyMV0gc2V0dGluZyB1cCBkYiBjbHVzdGVyIChDKS4u LgpBSVhub2RlMDE6SEVBRCAgICAgICAgICBbMDQ6Mjc6MjRdIHN0YXJ0aW5nIGRiIChDKS4uLgpB SVhub2RlMDE6SEVBRCAgICAgICAgICBbMDQ6Mjc6MjRdIHJ1bm5pbmcgaW5zdGFsbGNoZWNrIChD KS4uLgojIEFsbCAyMjMgdGVzdHMgcGFzc2VkLgpBSVhub2RlMDE6SEVBRCAgICAgICAgICBbMDQ6 Mzc6MzldIHJlc3RhcnRpbmcgZGIgKEMpLi4uCkFJWG5vZGUwMTpIRUFEICAgICAgICAgIFswNDoz Nzo0Ml0gcnVubmluZyBtYWtlIGlzb2xhdGlvbiBjaGVjayAuLi4KIyBBbGwgMTE2IHRlc3RzIHBh c3NlZC4KQUlYbm9kZTAxOkhFQUQgICAgICAgICAgWzA0OjQxOjA4XSByZXN0YXJ0aW5nIGRiIChD KS4uLgpBSVhub2RlMDE6SEVBRCAgICAgICAgICBbMDQ6NDE6MTNdIHJ1bm5pbmcgbWFrZSBQTCBp bnN0YWxsY2hlY2sgKEMpLi4uCiMgQWxsIDEzIHRlc3RzIHBhc3NlZC4KIyBBbGwgMTMgdGVzdHMg cGFzc2VkLgojIEFsbCA4IHRlc3RzIHBhc3NlZC4KQUlYbm9kZTAxOkhFQUQgICAgICAgICAgWzA0 OjQxOjIwXSByZXN0YXJ0aW5nIGRiIChDKS4uLgpBSVhub2RlMDE6SEVBRCAgICAgICAgICBbMDQ6 NDE6MjJdIHJ1bm5pbmcgbWFrZSBjb250cmliIGluc3RhbGxjaGVjayAoQykuLi4KIyBBbGwgMyB0 ZXN0cyBwYXNzZWQuCiMgQWxsIDEgdGVzdHMgcGFzc2VkLgojIEFsbCAzMCB0ZXN0cyBwYXNzZWQu CiMgQWxsIDMyIHRlc3RzIHBhc3NlZC4KIyBBbGwgMyB0ZXN0cyBwYXNzZWQuCiMgQWxsIDIgdGVz dHMgcGFzc2VkLgojIEFsbCAxIHRlc3RzIHBhc3NlZC4KIyBBbGwgMSB0ZXN0cyBwYXNzZWQuCiMg QWxsIDEgdGVzdHMgcGFzc2VkLgojIEFsbCAxIHRlc3RzIHBhc3NlZC4KIyBBbGwgMSB0ZXN0cyBw YXNzZWQuCiMgQWxsIDIgdGVzdHMgcGFzc2VkLgojIEFsbCAyIHRlc3RzIHBhc3NlZC4KIyBBbGwg MSB0ZXN0cyBwYXNzZWQuCiMgQWxsIDEgdGVzdHMgcGFzc2VkLgojIEFsbCAxIHRlc3RzIHBhc3Nl ZC4KIyBBbGwgMSB0ZXN0cyBwYXNzZWQuCiMgQWxsIDggdGVzdHMgcGFzc2VkLgojIEFsbCAxIHRl c3RzIHBhc3NlZC4KIyBBbGwgMSB0ZXN0cyBwYXNzZWQuCiMgQWxsIDEgdGVzdHMgcGFzc2VkLgoj IEFsbCAzIHRlc3RzIHBhc3NlZC4KIyBBbGwgMSB0ZXN0cyBwYXNzZWQuCiMgQWxsIDEgdGVzdHMg cGFzc2VkLgojIEFsbCAxIHRlc3RzIHBhc3NlZC4KIyBBbGwgMSB0ZXN0cyBwYXNzZWQuCiMgQWxs IDIgdGVzdHMgcGFzc2VkLgojIEFsbCAxIHRlc3RzIHBhc3NlZC4KIyBBbGwgMSB0ZXN0cyBwYXNz ZWQuCiMgQWxsIDEgdGVzdHMgcGFzc2VkLgojIEFsbCAxIHRlc3RzIHBhc3NlZC4KIyBBbGwgMSB0 ZXN0cyBwYXNzZWQuCiMgQWxsIDIzIHRlc3RzIHBhc3NlZC4KIyBBbGwgMSB0ZXN0cyBwYXNzZWQu CiMgQWxsIDIgdGVzdHMgcGFzc2VkLgojIEFsbCAzIHRlc3RzIHBhc3NlZC4KIyBBbGwgMiB0ZXN0 cyBwYXNzZWQuCkFJWG5vZGUwMTpIRUFEICAgICAgICAgIFswNDo0NToxMl0gcmVzdGFydGluZyBk YiAoQykuLi4KQUlYbm9kZTAxOkhFQUQgICAgICAgICAgWzA0OjQ1OjE1XSBydW5uaW5nIG1ha2Ug dGVzdC1tb2R1bGVzIGluc3RhbGxjaGVjayAoQykuLi4KIyBBbGwgMSB0ZXN0cyBwYXNzZWQuCiMg QWxsIDIgdGVzdHMgcGFzc2VkLgojIEFsbCAxIHRlc3RzIHBhc3NlZC4KIyBBbGwgMSB0ZXN0cyBw YXNzZWQuCiMgQWxsIDEgdGVzdHMgcGFzc2VkLgojIEFsbCAxIHRlc3RzIHBhc3NlZC4KIyBBbGwg MSB0ZXN0cyBwYXNzZWQuCiMgQWxsIDEgdGVzdHMgcGFzc2VkLgojIEFsbCAyMSB0ZXN0cyBwYXNz ZWQuCiMgQWxsIDEgdGVzdHMgcGFzc2VkLgojIEFsbCAxIHRlc3RzIHBhc3NlZC4KIyBBbGwgMiB0 ZXN0cyBwYXNzZWQuCiMgQWxsIDEgdGVzdHMgcGFzc2VkLgojIEFsbCAxIHRlc3RzIHBhc3NlZC4K IyBBbGwgMSB0ZXN0cyBwYXNzZWQuCiMgQWxsIDEgdGVzdHMgcGFzc2VkLgojIEFsbCAxIHRlc3Rz IHBhc3NlZC4KIyBBbGwgMSB0ZXN0cyBwYXNzZWQuCiMgQWxsIDEgdGVzdHMgcGFzc2VkLgojIEFs bCAxIHRlc3RzIHBhc3NlZC4KIyBBbGwgMiB0ZXN0cyBwYXNzZWQuCiMgQWxsIDEgdGVzdHMgcGFz c2VkLgojIEFsbCAxIHRlc3RzIHBhc3NlZC4KIyBBbGwgMSB0ZXN0cyBwYXNzZWQuCiMgQWxsIDEg dGVzdHMgcGFzc2VkLgpBSVhub2RlMDE6SEVBRCAgICAgICAgICBbMDQ6NDU6NDldIHN0b3BwaW5n IGRiIChDKS4uLgpBSVhub2RlMDE6SEVBRCAgICAgICAgICBbMDQ6NDU6NDldIHJ1bm5pbmcgbWFr ZSBlY3BnIGNoZWNrIC4uLgojIEFsbCA2NSB0ZXN0cyBwYXNzZWQuCkFJWG5vZGUwMTpIRUFEICAg ICAgICAgIFswNDo0Njo0NV0gT0sKPT09PT09PT0gbG9nIHBhc3NlZCB0byBzZW5kX3Jlc3VsdCA9 PT09PT09PT09PQo= --_006_CY8PR15MB5602B407BBD1B7B7C5FF1D8CDB9B2CY8PR15MB5602namp_ Content-Type: text/plain; name="sections-1.c" Content-Description: sections-1.c Content-Disposition: attachment; filename="sections-1.c"; size=1333; creation-date="Wed, 11 Sep 2024 12:32:01 GMT"; modification-date="Wed, 11 Sep 2024 12:32:01 GMT" Content-Transfer-Encoding: base64 LyogVGVzdCB0aGF0IGFsbCBzZWN0aW9ucyBhcmUgdG91Y2hlZC4gICovCgovKiB7IGRnLXJlcXVp cmUtZWZmZWN0aXZlLXRhcmdldCBzeW5jX2ludF9sb25nIH0gKi8KCiNpbmNsdWRlIDxvbXAuaD4K I2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8YXNzZXJ0Lmg+CiNpbmNsdWRlICJsaWJnb21w X2cuaCIKCgojZGVmaW5lIE4gMTAwCnN0YXRpYyBpbnQgZGF0YVtOXTsKc3RhdGljIGludCBOVEhS OwoKc3RhdGljIHZvaWQgY2xlYW5fZGF0YSAodm9pZCkKewogIG1lbXNldCAoZGF0YSwgLTEsIHNp emVvZiAoZGF0YSkpOwp9CgpzdGF0aWMgdm9pZCB0ZXN0X2RhdGEgKHZvaWQpCnsKICBpbnQgaTsK CiAgZm9yIChpID0gMDsgaSA8IE47ICsraSkKICAgIGFzc2VydCAoZGF0YVtpXSAhPSAtMSk7Cn0K CnN0YXRpYyB2b2lkIHNldF9kYXRhICh1bnNpZ25lZCBpLCBpbnQgdmFsKQp7CiAgaW50IG9sZDsK ICBhc3NlcnQgKGkgPj0gMSAmJiBpIDw9IE4pOwogIG9sZCA9IF9fc3luY19sb2NrX3Rlc3RfYW5k X3NldCAoZGF0YStpLTEsIHZhbCk7CiAgYXNzZXJ0IChvbGQgPT0gLTEpOwp9CiAgCgpzdGF0aWMg dm9pZCBmXzEgKHZvaWQgKmR1bW15KQp7CiAgaW50IGlhbSA9IG9tcF9nZXRfdGhyZWFkX251bSAo KTsKICB1bnNpZ25lZCBsb25nIHM7CgogIGZvciAocyA9IEdPTVBfc2VjdGlvbnNfc3RhcnQgKE4p OyBzIDsgcyA9IEdPTVBfc2VjdGlvbnNfbmV4dCAoKSkKICAgIHNldF9kYXRhIChzLCBpYW0pOwog IEdPTVBfc2VjdGlvbnNfZW5kICgpOwp9CgpzdGF0aWMgdm9pZCB0ZXN0XzEgKHZvaWQpCnsKICBj bGVhbl9kYXRhICgpOwogIEdPTVBfcGFyYWxsZWxfc3RhcnQgKGZfMSwgTlVMTCwgTlRIUik7CiAg Zl8xIChOVUxMKTsKICBHT01QX3BhcmFsbGVsX2VuZCAoKTsKICB0ZXN0X2RhdGEgKCk7Cn0KCnN0 YXRpYyB2b2lkIGZfMiAodm9pZCAqZHVtbXkpCnsKICBpbnQgaWFtID0gb21wX2dldF90aHJlYWRf bnVtICgpOwogIHVuc2lnbmVkIHM7CgogIHdoaWxlICgocyA9IEdPTVBfc2VjdGlvbnNfbmV4dCAo KSkpCiAgICBzZXRfZGF0YSAocywgaWFtKTsKICBHT01QX3NlY3Rpb25zX2VuZF9ub3dhaXQgKCk7 Cn0KCnN0YXRpYyB2b2lkIHRlc3RfMiAodm9pZCkKewogIGNsZWFuX2RhdGEgKCk7CiAgR09NUF9w YXJhbGxlbF9zZWN0aW9uc19zdGFydCAoZl8yLCBOVUxMLCBOVEhSLCBOKTsKICBmXzIgKE5VTEwp OwogIEdPTVBfcGFyYWxsZWxfZW5kICgpOwogIHRlc3RfZGF0YSAoKTsKfQoKaW50IG1haW4oKQp7 CiAgb21wX3NldF9keW5hbWljICgwKTsKCiAgTlRIUiA9IDQ7CgogIHRlc3RfMSAoKTsKICB0ZXN0 XzIgKCk7CgogIHJldHVybiAwOwp9Cg== --_006_CY8PR15MB5602B407BBD1B7B7C5FF1D8CDB9B2CY8PR15MB5602namp_--