From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id 76FE8394FC2E; Wed, 16 Mar 2022 20:27:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 76FE8394FC2E Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 22GJj2HQ009576; Wed, 16 Mar 2022 20:27:30 GMT Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80] (may be forged)) by mx0b-00069f02.pphosted.com with ESMTP id 3et60rqfkm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 16 Mar 2022 20:27:29 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 22GKB8qT102662; Wed, 16 Mar 2022 20:27:28 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2170.outbound.protection.outlook.com [104.47.59.170]) by userp3030.oracle.com with ESMTP id 3et65q0ubf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 16 Mar 2022 20:27:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ThZPAYKlr1YREwGyt38cPNk4w0qbBOzWJFBT6vN3xiRV7xF+YMzi+dG0D6Gla8VMdaBDsh9fmu0cIRxVe3Pn2zBE8PK1ZinX0DG+1XPlxzXlCViUTkCfuPrO/tK/lU6Rh36i6+0h4PSwJ0OuZjBDh6eO6dpI3vHmU/mbYxkAgsoeuf4P3O8X+9g6SAjWnjOquBYTilUbJ3EzqzVql2NCBTcSRgLVxGYKif4EPyi+Q9Uc1xvcWb+bcuxjGirnDfBSuT0KxvcJfQ51Bd1A2yn5ynF6+m/6izer1JCiIb4ZlYrOX3fILpUNM5T0SsIViZ9dg1up5tUn10Sv64DG6XfMKg== 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=wTqyH26t3ZoXew77sk6ludIrXPQ9lHTkrkD77r3RRv8=; b=JmKOnaZkVU8i9Ju7LFZ9HJUKNWcg3rWQttLktHpqCa0z3mZR7gOSHzVJfYJyeCS4rnfWgbq/JNMqcJyyFLVgU8spcm82Tr3cGPYwc0LSihNfnxKDhMftI/pfTV/SRO/m7UEJRBL4+xg/xDibLhXL9hceGQjs9ntL2XZWyMnMGJ8QjMOfL0wRgiKnLRd+OAohMq2JQlMKQvahqkEufzck97YdTs39viDFUJeEZpfsYwbB6+Msu8zp5T3jxLWQlmUlIewDTDhNg8V8kRtcDzMCmgotBdPzMBnjIbOeSgi7H1Hgkw0ZAAmoN/VaLdbaltPhVriY8MeM8J90oLjI35us0A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by MW4PR10MB5725.namprd10.prod.outlook.com (2603:10b6:303:18b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5081.14; Wed, 16 Mar 2022 20:27:26 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::a8c6:8b2:c197:7489]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::a8c6:8b2:c197:7489%6]) with mapi id 15.20.5081.015; Wed, 16 Mar 2022 20:27:26 +0000 From: Qing Zhao To: Richard Sandiford CC: Xi Ruoyao , Jeff Law , "gcc-patches@gcc.gnu.org" , YunQiang Su , Jakub Jelinek Subject: Re: [PATCH RFC] mips: add TARGET_ZERO_CALL_USED_REGS hook [PR104817, PR104820] Thread-Topic: [PATCH RFC] mips: add TARGET_ZERO_CALL_USED_REGS hook [PR104817, PR104820] Thread-Index: AQHYMmO/PXN0JIZqDUOFTxRjiAiIgqy3YadBgAG1IICAAGsZAIAA3eWAgAAWmwCAAEJQAIAA3+0AgAFCs4CAAjp/E4ADbeiA Date: Wed, 16 Mar 2022 20:27:26 +0000 Message-ID: References: <93ab62b2b9473733e5118f4265b61804978adfd7.camel@mengyan1223.wang> <53408AB1-0FA4-4529-95D9-A10FA8999DF6@oracle.com> <4ec3ce765b9959334d2a3e08d8957fc2fcf57f7d.camel@mengyan1223.wang> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3608.120.23.2.7) x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9283a223-08ea-4faf-470e-08da078b62c6 x-ms-traffictypediagnostic: MW4PR10MB5725:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: d8TfQLlQCG851j2voo04FpGBu6QIPSI+FSaCMosjQT5x8Wi9syU0lE/cS24chcbqHYaMsqJtPfGTiXB/Ea2p5FcL98Dn1I2uVHEk0cNfRJsh+Vtz+bh/wLa++HdPKukTxdMwk7N+DqBgc+tVoNr89DGgjRQ2L8TlumG4TyAVA/V47I1RgSCUMD+d8gT9W3iiKPETv8XOKoRruouT/yt96nrwm603Rgt6XO9SBI12gZ09rwFf66UuOq3vMs7I3ueQP6uRGoxxXlkTjXbv+q8aARHJma5vJnpSs1pEYfFu8NZTyAJQ2BnT8ku7Wt0ydWUFndUUQx3zJZoPm7f/ZOzTRF6pwtVJEh8lA2ZTsErvbg5/gp6XJh6mNrHCO3gEigKYRsqk3EDzaS6eaSQMWCzzGT5oUV51qyTbyub+acT9A1KenrJmNB2aSU+JN1RZ7pIzstj5YoE4L0ZDEHEMLCbCcwuT3tD07Hu5at8yhFYt/NJdtKDQEV72qLLNIyRAoqTKSiYMPGbBk8tifJefSIsXR0/HXuy5PXrDVAxHUGPTLIaYng/kzdAnwGPMyjti6DS0YiX/B0/yIvO4yxi/YPsOQVMJVs0MQrmfoXH7mADLNyWE+w/7xOk3noNHfvsVlz3GEOc13A0VappNYBrHRt9AEkp1aqxFunyQzvH3TxUIwLz5pEDuLaTVjIHhaNWZeIeSGOI57slzeTnlOaLyqTQ3/4ScF+U9TYDyWX4uT2TWsLYLW0yG319F4Iq7h9Ozl4nVlZl4MTAhk4Kg61iGN5arM1NOXpuaJy7/tMg8qXUAABiZWMQWoB8SHdN3KAPf6sGyYDedUICnjzfrfu5fqJ0gdVw5heHjxuKChFSNpNwS8D4= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR10MB4344.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(33656002)(122000001)(508600001)(71200400001)(966005)(6486002)(86362001)(38070700005)(54906003)(2616005)(316002)(6916009)(36756003)(53546011)(6506007)(83380400001)(6512007)(8936002)(44832011)(5660300002)(66946007)(2906002)(66556008)(66476007)(66446008)(4326008)(8676002)(64756008)(76116006)(91956017)(38100700002)(186003)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SkRYMEk5azVhc1ZYTURsTDg3cXVRQkgvQit6bnRpS0tFS2NzVmJsUnJpbjE0?= =?utf-8?B?UGdOenFwVUpXM29aUUlDOWdSK3dLdStwcThZMExLUVMraDhZcm9zaFhEc3or?= =?utf-8?B?L2pucVVpNEZvNmRDRXpHMUl1Y3RtYVk4NnZHNkxoNk9jL0Z1WHZHRjJDT2ww?= =?utf-8?B?RXJGc01DaTJsVTQxL1B1UXZ2MDhsc0xZYlk2UVZYZmZjdmRvOTBydHJPQ25t?= =?utf-8?B?YW5PQ1R3V2liQVFKc3ZCeWFybmdQYUc3V1ZYbXdtK1RvakNRU3ovVFcwRm9H?= =?utf-8?B?bFVuL1ljSjNZTXNXQXo2Wkc3MnZ3YnhUdHl4UmpKWDhHSTlQUXJwek9yOHpT?= =?utf-8?B?WUwvNC9DdHVFQTd2OXYvNUpSaUNxaEZYU3pGaHQ0VHdxN0h6NTd3alUrWEEx?= =?utf-8?B?Q2V4Z3hOS28xN1VkVE1PM1YzTkwvMGpocGlzNGtEL1BqaitQdUdhc2VGM05w?= =?utf-8?B?UGxod2tmQUY1K2ErSTZLSG93SExmdkRwMUZjNTE4SHpEK3l6aEJZbTNDd0hl?= =?utf-8?B?MzB6VGUrUkRCTU5SS0NDZ09ob29ZcFZ4dEF0Y2dBekE4Q2RvaTRxLzBWbVNX?= =?utf-8?B?RHcwNXIzRUFGenRaaWdaMEFNdnNKT1lESkhvV0lsb1laZTVOWmtFVmRzZjFr?= =?utf-8?B?eEV0ZWVZaVBXQ2lYaVZKc01DbHkvVm95UFZnS0NIblFnOHB5M0dGN3RIK0NX?= =?utf-8?B?TVdxTVlEOFE1aUd1WDBhVzVmaFk4MWtaamUrVE5zMUlETXZZaDRqeHkwS0cx?= =?utf-8?B?ditvbVNwYjRvTEIra3EzdzdoZUNBQzVoL1JDdGxzQk5WQ3UvZm56SXZSSk1Z?= =?utf-8?B?eHBMelNYWU80Um45eHdJYk8xRGhPT1RzcTF1cWpGOVQ0KzdXZllnekNONGJo?= =?utf-8?B?UEJWeFRNNjBrQWpra3VUajFYSzFyRGYrMW4rNWZKcXczUGFiTjB1WHIrdlVq?= =?utf-8?B?YlVBUlBaL3lHNzZCMXQ0UzFvbEplNzYxakhFazBETHJ3VXNNaURYZmhqMHNG?= =?utf-8?B?dDJwajZjVU1mdWMxb3l6a28vQkZiYjFLbWxnc3Q2TWtCK29yWENiUmZuclo4?= =?utf-8?B?WVZLbGtXL1Y3TWl1WVZnQ3NXSy8zR0VCWVF6VFJodE1xYXU0bWViV1BIdXYv?= =?utf-8?B?MmRJY2NmK3JrcGZlNmdxOGNSK1lQb3VGa1FMdnVGc2Zsa2x3TE1FSVB2dFNE?= =?utf-8?B?WXdTODBOSyt2VGtUNkdrNjdyYm4xd2hsS3FBWHpJMVNEaVE5U25Ed2Y1bFhL?= =?utf-8?B?b28xdzlOQzVPTHB0UWxxcHBiRkJScGtjeitSQWdwVmlja2xycFJUV1N3RlZB?= =?utf-8?B?anNvUm4zRHdHbyszR2RYcHcvcFIxaXhaQXNCZ1pTaVdSRE8waG9ETTRwaXND?= =?utf-8?B?RDRTdjZ5NW8zREdEVXZSbGk0bVd6ckVqR1oxQkR2aUYvb0Y5UVozNU5ZQWN0?= =?utf-8?B?Nk1XeXpaWlltbDV4Z0FhWS9FcWcyZkdwcW9KYlIyOEJSTW5YRVNiSEltRU1t?= =?utf-8?B?MlNzR0F6b3E5VFFTTGJEeEhRNjVBTnFQZStadkhYUnBSYkc4dG51OWZQRVBW?= =?utf-8?B?bHV6QjRXblhjTE1GSUM2WnppejV4NlNRSmQ5bnRzek9KUkVnN0Y3Z2RCcUJj?= =?utf-8?B?UVlpVTJvUlRydm1pRmltY1BtSDJtWEpaZ21zYmt3UGtVY3VENDRNZC9mQlNZ?= =?utf-8?B?a2xiNzZQWG1lTDlYdzdjS0pySUtHSEx0MmYvVTRDN2lDNVhCWm1lUy9HYk5q?= =?utf-8?B?ZkJpa0hDeEZGUStUM1R4SGNkam5wSGJicHJKWnUwMEZsdTlOMmxYU21KM0tj?= =?utf-8?B?QmlwbnFtUVBlWEoxUENyV0xiWnlWNzdOdGJQT0NESEt4L2ozcjBjOGc3akMz?= =?utf-8?B?b2h4ZmF5WEx2eG16eG5oMmgwTjlNUDExWmxoL2htUENDWHhVelJMdWFlY2tG?= =?utf-8?B?UGo0ZWxsUGVJeFdrQVBUSWFVeCs2Tno2V0xZU3FpUGcySGYrMm1TVm9TWlU4?= =?utf-8?Q?aRkILawIlsVnC7P6jwLfVn9cFZKyjk=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR10MB4344.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9283a223-08ea-4faf-470e-08da078b62c6 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Mar 2022 20:27:26.4575 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: IIDGAF497uu5bCCaAC6Khn6b+1rNFQZK0C+cCeF/aOjLyLIgTPBJ3kQTCjBc4GYA/bLRj0G5fhr4b0SXbZwejA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR10MB5725 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10288 signatures=693715 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=834 phishscore=0 suspectscore=0 adultscore=0 spamscore=0 bulkscore=0 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2203160121 X-Proofpoint-ORIG-GUID: 64oBMYmp5J9NbSLhb5WFxd2OdoowMfxr X-Proofpoint-GUID: 64oBMYmp5J9NbSLhb5WFxd2OdoowMfxr X-Spam-Status: No, score=-5.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, KAM_SHORT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Mar 2022 20:27:40 -0000 DQoNCj4gT24gTWFyIDE0LCAyMDIyLCBhdCAxMTowNCBBTSwgUmljaGFyZCBTYW5kaWZvcmQgPHJp Y2hhcmQuc2FuZGlmb3JkQGFybS5jb20+IHdyb3RlOg0KPiANCj4gU29ycnkgZm9yIHRoZSBzbG93 IHJlc3BvbnNlLCB3YXMgb3V0IGZvciBhIGZldyBkYXlzLg0KPiANCj4gWGkgUnVveWFvIDx4cnkx MTFAbWVuZ3lhbjEyMjMud2FuZz4gd3JpdGVzOg0KPj4gT24gU2F0LCAyMDIyLTAzLTEyIGF0IDE4 OjQ4ICswODAwLCBYaSBSdW95YW8gdmlhIEdjYy1wYXRjaGVzIHdyb3RlOg0KPj4+IE9uIEZyaSwg MjAyMi0wMy0xMSBhdCAyMToyNiArMDAwMCwgUWluZyBaaGFvIHdyb3RlOg0KPj4+PiBIaSwgUnVv eWFvLA0KPj4+PiANCj4+Pj4gKEkgbWlnaHQgbm90IGJlIGFibGUgdG8gcmVwbHkgdG8gdGhpcyB0 aHJlYWQgdGlsbCBuZXh0IFdlZCBkdWUgdG8gYQ0KPj4+PiBzaG9ydCB2YWNhdGlvbikuDQo+Pj4+ IA0KPj4+PiBGaXJzdCwgc29tZSBjb21tZW50cyBvbiBvcGVuaW5nIGJ1Z3MgYWdhaW5zdCBHY2M6 DQo+Pj4+IA0KPj4+PiBJIHRvb2sgYSBsb29rIGF0IHRoZSBidWcgcmVwb3J0cyBQUjEwNDgxNyBh bmQgUFIxMDQ4MjA6DQo+Pj4+IGh0dHBzOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcu Y2dpP2lkPTEwNDgyMA0KPj4+PiBodHRwczovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVn LmNnaT9pZD0xMDQ4MTcNCj4+Pj4gDQo+Pj4+IEkgZGlkbuKAmXQgc2VlIGEgdGVzdGluZyBjYXNl IGFuZCBhIHNjcmlwdCB0byByZXBlYXQgdGhlIGVycm9yLCBzbyBJDQo+Pj4+IGNhbm5vdCByZXBl YXQgdGhlIGVycm9yIGF0IG15IHNpZGUuDQo+Pj4gDQo+Pj4gSSd2ZSBwdXQgdGhlIHRlc3QgY2Fz ZSwgYnV0IG1heWJlIHlvdSBkaWRuJ3Qgc2VlIGl0IGJlY2F1c2UgaXQgaXMgdG9vDQo+Pj4gc2lt cGxlOg0KPj4+IA0KPj4+IGVjaG8gJ2ludCB0KCkge30nIHwgL2hvbWUveHJ5MTExL2dpdC1yZXBv cy9nY2MtdGVzdC1taXBzL2djYy9jYzEgLQ0KPj4+IG5vc3RkaW5jIC1memVyby1jYWxsLXVzZWQt cmVncz1hbGwNCj4+PiANCj4+PiBBbiBlbXB0eSBmdW5jdGlvbiBpcyBlbm91Z2ggdG8gYnJlYWsg LWZ6ZXJvLWNhbGwtdXNlZC1yZWdzPWFsbC4gIEFuZA0KPj4+IGlmDQo+Pj4geW91IGFwcGVuZCAt bWlwczY0cjIgdG8gdGhlIGNjMSBjb21tYW5kIGxpbmUgeW91J2xsIGdldCAxMDQ4MjAuICBJDQo+ Pj4gZW5hYmxlZCA0IGV4aXN0aW5nIHRlc3RzIGZvciBNSVBTIChyZXBvcnRlZCAibm90IHdvcmsi IG9uIE1JUFMpIGluIHRoZQ0KPj4+IHBhdGNoIHNvIEkgdGhpbmsgaXQncyB1bm5lY2Vzc2FyeSB0 byBhZGQgbmV3IHRlc3QgY2FzZXMuDQo+Pj4gDQo+Pj4gUmljaGFyZDogY2FuIHdlIHVzZSBNSVBT X0VQSUxPR1VFX1RFTVAgYXMgYSBzY3JhdGNoIHJlZ2lzdGVyIGluIHRoZQ0KPj4+IHNlcXVlbmNl IGZvciB6ZXJvaW5nIHRoZSBjYWxsLXVzZWQgcmVnaXN0ZXJzLCBhbmQgdGhlbiB6ZXJvIGl0c2Vs Zg0KPj4+IChkZXNwaXRlIGl0J3Mgbm90IGluIG5lZWRfemVyb2VkX2hhcmRyZWdzKT8NCj4+IA0K Pj4gTm8sIGl0IGxlYWRzIHRvIGFuIElDRSBhdCBzdGFnZSAzIGJvb3RzdHJhcHBpbmcgOiguDQo+ PiANCj4+IE5vdyBJIHRoaW5rIHRoZSBvbmx5IHJhdGlvbmFsIHdheXMgYXJlOg0KPj4gDQo+PiAo MSkgYWxsb3cgemVyb2luZyBtb3JlIHJlZ2lzdGVycyB0aGFuIG5lZWRfemVyb2VkX2hhcmRyZWdz Lg0KPiANCj4gSSB0aGluayB0aGlzIGlzIHRoZSB3YXkgdG8gZ28uICBJIGFncmVlIGl0J3MgYSBi aXQgaGFja3ksIGJ1dCBpdCBzZWVtcw0KPiBsaWtlIHRoZSBsZWFzdCB3b3JzdCBvcHRpb24uDQo+ IA0KPiBBIGxlc3MgaGFja3kgYWx0ZXJuYXRpdmUgd291bGQgYmUgdG8gcGFzcyBhbiBleHRyYSBh cmd1bWVudCB0byB0aGUgaG9vaw0KPiB0aGF0IGNvbnRhaW5zIHRoZSBzZXQgb2YgcmVnaXN0ZXJz IHRoYXQgdGhlIGhvb2sgaXMgKmFsbG93ZWQqIHRvIGNsb2JiZXIuDQo+IEZvciAtZnplcm8tY2Fs bC11c2VkLXJlZ3M9WCwgdGhpcyBuZXcgYXJndW1lbnQgd291bGQgYmUgdGhlIHNldCB0aGF0DQo+ IHdvdWxkIGhhdmUgYmVlbiBjaG9zZW4gZm9yIC1memVyby1jYWxsLXVzZWQtcmVncz1hbGwsIHJl Z2FyZGxlc3Mgb2YNCj4gd2hhdCBYIGFjdHVhbGx5IGlzLiAgV2UgY291bGQgdGhlbiBhc3NlcnQg dGhhdCB0aGUgZXh0cmEgcmVnaXN0ZXJzIHdlDQo+IHdhbnQgdG8gY2xvYmJlciBhcmUgaW4gdGhh dCBzZXQgKHdoaWNoIHdpbGwgYmUgdHJ1ZSBmb3IgYWxsIHZhbHVlcyBvZiBYKS4NCg0KSWYgd2Ug aGF2ZSB0byBnbyB0aGlzIHdheSwgSSB0aGluayBpdOKAmXMgYmV0dGVyIHRvIG1ha2UgdGhlIGNo YW5nZSB5b3Ugc3VnZ2VzdGVkIGFib3ZlLCANCmFuZCB0aGVuIGFsc28gdXBkYXRlIHRoZSBkb2N1 bWVudGF0aW9uLCBib3RoIGludGVybmFsIGRvY3VtZW50YXRpb24gb24gaG93IHRvIGRlZmluZQ0K IHRoZSBob29rIGFuZCB0aGUgdXNlciBsZXZlbCBkb2N1bWVudGF0aW9uIG9uIHdoYXQgdGhlIHVz ZXIgbWlnaHQgZXhwZWN0IHdoZW4gdXNpbmcgDQp0aGlzIG9wdGlvbiAoaS5lLCBpdOKAmXMgcG9z c2libGUgdGhhdCB0aGUgY29tcGlsZXIgbWlnaHQgY2xlYXIgbW9yZSByZWdpc3RlcnMgdGhhbiB0 aGUgdXNlciANCnJlcXVlc3RzIG9uIHNvbWUgdGFyZ2V0cyBkdWUgdG8gdGhlIGltcGxlbWVudGF0 aW9uIGxpbWl0YXRpb24pLiANCg0KSSBjYW4gbWFrZSB0aGlzIGNoYW5nZSBpZiB3ZSBkZWNpZGUg dG8gZG8gdGhpcy4NCg0KVGhhbmtzLg0KDQpRaW5nDQoNCj4gDQo+PiBPcg0KPj4gDQo+PiAoMikg YWxsb3cgemVyb2luZyBsZXNzIHJlZ2lzdGVycyB0aGFuIG5lZWRfemVyb2VkX2hhcmRyZWdzICh0 aGVuIEknbGwNCj4+IHNraXAgU1RfUkVHUywgYWZ0ZXIgYWxsIHRoZXkgYXJlIGp1c3QgOCBiaXRz IGluIHRvdGFsKS4NCj4gDQo+IFllYWgsIHRoaXMgaXMgZXhwbGljaXRseSBPSywgcHJvdmlkZWQg dGhhdCB0aGUgdGFyZ2V0IG1haW50YWluZXJzDQo+IGZlZWwgdGhhdCB0aGUgY29udGVudHMgb2Yg dGhlIHJlZ2lzdGVycyBpbiBxdWVzdGlvbiBhcmUgbm90IGEgc2lnbmlmaWNhbnQNCj4gc2VjdXJp dHkgY29uY2Vybi4gIEkgZG9uJ3QgZmVlbCBJIGNhbiBtYWtlIHRoYXQgY2FsbCB0aG91Z2guICBJ dCdzIHJlYWxseQ0KPiBhIHF1ZXN0aW9uIGZvciB0aGUgdXNlcmJhc2UuDQo+IA0KPiBUaGFua3Ms DQo+IFJpY2hhcmQNCj4gDQo+PiBJZiBhbGwgdGhlc2UgYXJlIHVuYWNjZXB0YWJsZSwgdGhlbg0K Pj4gDQo+PiAoMykgSSdsbCBqdXN0IGNhbGwgc29ycnkgaW4gTUlQUyB0YXJnZXQgaG9vayB0byB0 ZWxsIG5vdCB0byB1c2UgdGhpcw0KPj4gZmVhdHVyZSBvbiBNSVBTLg0KDQo=