From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 0A3D33858CD1 for ; Thu, 29 Jun 2023 15:21:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0A3D33858CD1 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35TE7qoO012306; Thu, 29 Jun 2023 15:21:48 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=corp-2023-03-30; bh=XKbjQ70sI61tOab4V9Z7cITI0cPNtBkTTqHp1pIjWWM=; b=q4fT9RRtaUH1ME8rX+D0uShHVTj9oWdi8NFraRPe1/ICpfDvXqQ+HyPc5fBEsawthXiZ trinEW8yt0sHMH1Y6AjoD0TA48oUB6Vr5N5mMQNUNjrvMn50XOKpiW55FMgImcZxxgh/ 3nP4eiDuWmFLeH0lAh69lKI4MN/dLw1T6SWs/pVmSlM/TDk4R4GQpW+mPfgbblHihpy6 xJmsQvUDsTRlVDFrzC71jxXySwwfpjOBiFtlTf1NG7xfRZcZcON+hTjRVMKrhEPXDKL9 oYZhgdiWwenaia/z5379bHRdcgetWPITrdTt+yLmaT1jSSQo50E3V9JZhS4NE1G9ty5Q Vg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3rdqdtvqu4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 29 Jun 2023 15:21:48 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35TFKcKD004006; Thu, 29 Jun 2023 15:21:47 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2174.outbound.protection.outlook.com [104.47.55.174]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3rdpxdjfs6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 29 Jun 2023 15:21:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jQjuvAqY6UL5u8zVZeOSGEes0avtR7glIumvov7cmr6xX0kDHoPFYsHG1t/MPKSP8nR3QKGx9891pmYpHWKECw+TgzpqoNzG7dzpcZTZ8Rf+1vZqfqhHiAakC5GTFpTDBxnlWpXA8yrjJLhDIG5Il0C5KeJ15hUHBIPUO7se/hP7NXBcWNf/ypdwZo4GiuaXjCY+zgvrENCclvAVLMbW/4viGkO9cnPQzl22HYjIdt43cPooVaS5jEw2MRNXDME2pFJKFi+hiS+X1QeFYG35fVsxJ1wAMDj4nf7WNkj4lac/X9ljEw81dru3bucuAe2x6xO7pHZQS8Xdu7fkGTaLvw== 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=XKbjQ70sI61tOab4V9Z7cITI0cPNtBkTTqHp1pIjWWM=; b=I5Tso5N1CZ4FjmvakxPbbiOafRY0e3wukvoCIyrPZlYGaYijzRcr3g2Ui1NAmViP0I7NpsigfBp6XamSbvrnQkzMYf7UtmUVeopFlj9RIsZC8wrcqrGzBUx8eEQoRqxAsN1xqFAaBkfuXRSdUne/daWcBUB6ZUPwfPWx6ZibJgGYZlk0IaqasAq5EWIBkcsaE21C1nLn2UDfxp/JdEpz2pSlHFW0PF+sZBN2hNZlFHKL//eOiOT+iFmWY/S+5gDi1jc5XjkmM78s4rpX8McyXwnHUrxJblduRHXmY/ylngy6GZ0YLzzGEStLqj3PZrPuWTcqd+XmuOEIbokuO8Br5Q== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XKbjQ70sI61tOab4V9Z7cITI0cPNtBkTTqHp1pIjWWM=; b=yPgMgPOVc3c6BLet7WBPu4Udl9Am6T7e7AqMyot3ibVhnkKjlt72SzZOZ+JWNrwpRdS07SVHRcXxBfd4OFP4sQIpwvptTf2mtXn2ike59gsFd8VF0spCpMgVtRsw//tDaOJmv2fOIJNiRgTm1YPEKdsoR5mk3eOZsRfWPexEnDM= Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by DS0PR10MB7512.namprd10.prod.outlook.com (2603:10b6:8:165::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.23; Thu, 29 Jun 2023 15:21:45 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::8d90:607a:f94c:5323]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::8d90:607a:f94c:5323%3]) with mapi id 15.20.6521.026; Thu, 29 Jun 2023 15:21:45 +0000 From: Qing Zhao To: Alexandre Oliva , Joseph Myers CC: Qing Zhao via Gcc-patches Subject: Re: [PATCH] Introduce hardbool attribute for C Thread-Topic: [PATCH] Introduce hardbool attribute for C Thread-Index: AQHZoBSFsszJUlXTREeC8C9fnLFx8K+VcfMAgACydk+AAtIeAIAAU2q4gAQ4TICAAmFYgYAAgK4AgAFFBHqAAFFhgA== Date: Thu, 29 Jun 2023 15:21:45 +0000 Message-ID: <25C3A428-ADF5-4DB7-B1BC-5DC65A59EBD3@oracle.com> References: <6BED3980-B5DF-4605-A6FA-390B241AB37A@oracle.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3696.120.41.1.3) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH2PR10MB4344:EE_|DS0PR10MB7512:EE_ x-ms-office365-filtering-correlation-id: e78197d0-5462-4f19-a407-08db78b48c99 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: LD5OGQ6MFfK/JT4aDnWbGXXMmL8CU2NMsY/gs8v/MVCfKkcO49tpUyvLMsbUm5no1YIpyo1vSQoYxDKSNXIl39bknI5hrU7hCSYmmxyDaixbBgzs2krT4221UyrLnsSiX2KSI56oUXql4um1fgeInG0hiBrxXs8cFlw5GTCUHh8TiKPClnFw5j0ZwNV9EaMjjHmYUiacHuc0FxnTWPmtqD/y83RgOijVw+29z9APTHcs4DI+Mi20D9c2BqviPXJfiSTP4UX301OYw5SwA3KTE4dj1lSNN2iVaXFQ1C8Um+ZHnKtO7JSz8uZMcnqbXT19J8rGryjjc3I3jgB4FmLALVN6YMnNqOGc+p0Roxhn5SI+0bTFv4IuscokSfrEepUjiftmGbJG996hch8UV0VLXVWc2UVNLS583Y7sxTVDoeZi4wKgbmmJHnFTcpYVyASQDRC9VtRVfKaR3KbHPEwzZ6o9zDAOuZds6OD+YiRsK7VMiYu6+Tng5TwBSTDVQHVoxVhfoMBFgA5qtphKlIPkSbbz5i1kF/W15a4eqV2HYjCXPitOd0dAgl8PbXMti0iaRAfNIT8S3TcY54iA31L8GKpiDrpsajI8gf+cPz34rIjaRQMWwBFLfr1K47GdhpaKD9OWoVVShGQVUOW/7QY8HwUfkaHiUn9IDH/GJyp2e+I= 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:(13230028)(136003)(346002)(366004)(39860400002)(396003)(376002)(451199021)(2906002)(186003)(44832011)(26005)(38070700005)(316002)(86362001)(36756003)(33656002)(8676002)(966005)(110136005)(4326008)(6486002)(478600001)(122000001)(2616005)(38100700002)(71200400001)(8936002)(5660300002)(66476007)(91956017)(41300700001)(66946007)(66556008)(66446008)(83380400001)(64756008)(76116006)(6512007)(53546011)(6506007)(2004002)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dURqUVBxeUJ2cXNzbUt0VUhOSVp2TFVPN0NNMUFYeWhLRGF2VzQ3Y0QxZC9N?= =?utf-8?B?ZGVBTnlHR0wzVHFydTN6TnRQbXp3Z0x5Z0ZWcVRURFZCZUZmUDZKaWtkL1BX?= =?utf-8?B?c3drQUFhcXMySTE5SjlPLzd5ajBCSnBBWXROdzEvZEVYV1hLUUtFZkdOaFRF?= =?utf-8?B?R2srQWl6QkZKZWUzWjJHam5qbDlja0tQMTBaNGhWWlRGa0lQanpHMmFIMS8v?= =?utf-8?B?eDdDN0tUdzZESWxoRldzalFjZDhscDhMRkQ4YUdrRTl1RDE1cm8vcndseTRN?= =?utf-8?B?TkY0K1ZrNEZiYmt3UWs4dnQxeHNDMXozbFhDd3hFT3djakpxQ2ZYUUNlOW5o?= =?utf-8?B?VmZucGZDTXFWdlQ3clNXSTF0NGgzanl0Ky9yaERLVHlOUHZoODZ3K21oZHVx?= =?utf-8?B?L2pKME5VOWRBSkZYY2JkOFpFZm9qSUNOOFpCV05sUi9INlBsTUpwd0ZFeWg2?= =?utf-8?B?T2hpbE00ekx3VFBWem8vRDdZR1RnUWwyNE1UdXV2ZUJHbHVJdS9oOVRtTUFT?= =?utf-8?B?bjEzQjRpeXlRbVF5M0RxTVRyeEhzdXlFb2VzMXN3b2tRa2hCMDVuempUYXlG?= =?utf-8?B?aVhSOFpwcWpaaUxjalNtcGVOQ2VPM3pPREFkdERuVnN4blpYKy9iVGdQaEtl?= =?utf-8?B?K202MVpxOENEL3NrRDZQMlNGUi8rQ1YwTVBvU0UxRW0xdEdiWnNGalFEbzVj?= =?utf-8?B?YkFsUm9YTHRvWTJKNURWNXhwdVUyOTkvQU1aaUhpMmtUWWlwbDRVZ2wvS2sx?= =?utf-8?B?V28yYnF1cFkrcEdRTnRwa3RSMWE2SnMzVDhZUXoxbUUyUGU2Uk44dFppS29L?= =?utf-8?B?MmpXWXNpc0hkQmZRSFBzOXlBSVNPMWdKSFhQckVzM0t1dHliZFpIVWROVFVl?= =?utf-8?B?YVc4ZW1reWtXNi92Z2N1bE9WWWZjdG9xaDVDYjNRN21jeG1rVE9wVzFocnZp?= =?utf-8?B?aUIwNWgzMUh4RzI0Rnh0dkkxcGdjRGk2eU9aVFBvMmNTWXY5U3YxekdVeHVO?= =?utf-8?B?WHNZZGtZekVCaGVMdERrZ1NsUUllQTdacWQ2SGFmMDNWK2hyYURUdkpJK2pO?= =?utf-8?B?MkRFblplSTJUZ25xRCtNNVBSSGp4ZTViTHFiclh4RHBUSTJWSk5CSUFzL3Nx?= =?utf-8?B?Z0xSODhvdkU0Ri9UZURVRVhENUJyakN3VThXcENTbnVxZjJaZlE0OHRkT3E0?= =?utf-8?B?NlgrOEhQMzZiZnZCS05pOTJmTDRTRDVNT1lwMi9peExjUUx1TlZOVTlhK2FD?= =?utf-8?B?MHdpMVNEZ0poODRmc3VGQmZocHZobDlmN3B6RkRneDBlUkhCOEhqK1ZxQkwz?= =?utf-8?B?TjhSMWlQSFpCUDlYN3dGc2VLL1hHMDFMZFFYcW02aVQ1ckp0UmNKd25ob2Rj?= =?utf-8?B?ZUE0Y2dMcmoyRlRjSDBENCs0bHpldGh2QnFDVVJ6QkV5aW05eThQL1J3R2R3?= =?utf-8?B?QXJ4ZFdWUTNCcGhsYVI2NUN5MGM1YXo0YmM5ZUI1VzNoWFcxMXRtT2hKczdL?= =?utf-8?B?VVUyZUtFV0psM01VRVlhcEdHNU5mcUdXZU0ya3BWQzNrUTB5dGQxM1FzUWsv?= =?utf-8?B?VWNoS2ZNK3JYWGszN2FqRmxsVXNwVnRtWDhWb1JzTXJocitoQzcrdDhlQTBP?= =?utf-8?B?TGlEZGdYMjYwanlnTkQ5RnIwSGZzWXk3a3k5bjJnRkJqTG5OTG1vaWtOZlV4?= =?utf-8?B?UUVpdjdGanRhay9HK2srUnRNamhjWDV6SDUzeFo5LzdLSXVoaDZOd0VvaXN6?= =?utf-8?B?VHU4T0lUd3JwbWhHZ0NJRWQxbElvMDlPb0IwZ0dBMjlKYktlTndsem9abXJB?= =?utf-8?B?ZzlraVNxNk13c0lWV2FTTkdWZmN3dytoUVNkbm1jSkhnN0ZWNHRWRC9SVlow?= =?utf-8?B?Rk80eklLT2R5dWJab1RjOTVFcTJjZ296aDQwaXgyWTMwYzEvdlluUUxtMWNX?= =?utf-8?B?b1dISWN3cWVCaU5WdkJjY29XbytWcC9BQXBkUzZHSUYvcVFPWkJhaVE2S05T?= =?utf-8?B?ZXY5WXdNdWFWRDkxR25VV2xGalI5RHNLVmJ3dFVQZ01lRjBTdnhIb0M2cTFF?= =?utf-8?B?d3ZuQk1kZFY0NmhteWwzaG5KU05ZcG9lNVBucjJXb1ExVGplTHhQZkFsSzRw?= =?utf-8?Q?ONKzVsJNyma3GTWuE4WWKG4Rn?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Z58CKXnWq9ogdXwoJg+N35QIOattZdycOOtSauM/JWXk4u61A5JW6ieNUnFBP7ptat4TSIJFA7n+xL56uFQJsIo69w/05q4G9berXGXtN6FSlMK+PfINMdmjAqcn0RN2LIQZM7WDTkDD645z/xdJwUzaObwYFCDWxpglL60ukphV/fi4saJY4wM3gG8baCjVVhM7ms8LHbSueugeb7fPViUsOo7SyVVqHyYqCSltQfKupci+SSD0b7JJNcbyEwBUvSOiu9+h/d3Vz86DhSfvmS1iVgB1PYmpuQW0gpZ4Gq8WoIpDTByRfAuNRTnHo8mwRl9zsf4rMbHd3Rqw/c/my2KEAQj4xyg8XoF9HOXeEfWW9zj10KrycMPLhzpuHdJ+B/KNvJQXBIwGULvAdA1RfHTHUBDKguqfRAeH+X5jJgcoOoZ4WQ+9pOUEsCO6BLD+EmscqKN9rziyJUnAEXfjUmFY973FtC3OVAzkD16EF1rP+fBJL6CeGNy2R9t/lNxGR4OPhgpQ9OqhKiBzYYDU2nCT3TbZkcb6WC91qcmICqsBnb2Z54YiOmeSxx7Ksl5ENMbIkF2y+GGIInKmv5Q4IWE8QBzyfu1xbJdvEKz44uP2of8bwaUZ5EjbJ2iGEEGQ6gsLhOwU3Rj41BPuw7Jr10wMHAXzX8/6SjTlI7OaXFh9X6I6ZKskPiFa6NIbb6xduU8Us5ORrkY9JkWX1R/L1MNQO65c187f8Hik5WyYBMQvHrijvsw13WQ14wx29mTj95WfSj4R605SKj3HKQFPsiCgUSAvgYQ80jJpgxGv8Yi+wjhoqtvahT93BY+9zhkqwAu+hKJy7RRCV3nXBg/vZg== 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: e78197d0-5462-4f19-a407-08db78b48c99 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jun 2023 15:21:45.1213 (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: mo2KthP20IVqhOPq5mn2MlI0F1oZRki5zfEFZ64hbg0stJsfEHrIneBZZq2UdKL6+6U+6vtBkP/nkcKIawjWlA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB7512 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-06-29_03,2023-06-27_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306290139 X-Proofpoint-GUID: WDevOAANcLltgwXVGc1hS22w2glrOdOk X-Proofpoint-ORIG-GUID: WDevOAANcLltgwXVGc1hS22w2glrOdOk X-Spam-Status: No, score=-5.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,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.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: SGksIEFMZXhhbmRyZSwNCg0KVGhhbmsgeW91IGZvciB0aGUgZXhwbGFuYXRpb24uDQpJIGFtIG5v dyBjbGVhciB3aXRoIHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIGhhcmRib29sIGFuZCAtZnRyaXZp YWwtYXV0by12YXItaW5pdCwgYW5kIGFsc28gYWdyZWUNCnRoYXQgY2xhcmlmeWluZyB0aGUgZG9j dW1lbnRhdGlvbiBvbiB0aGVpciBpbnRlcmFjdGlvbiBpcyBnb29kIGVub3VnaC4gDQoNClFpbmcN Cg0KPiBPbiBKdW4gMjksIDIwMjMsIGF0IDY6MzAgQU0sIEFsZXhhbmRyZSBPbGl2YSA8b2xpdmFA YWRhY29yZS5jb20+IHdyb3RlOg0KPiANCj4gT24gSnVuIDI4LCAyMDIzLCBRaW5nIFpoYW8gPHFp bmcuemhhb0BvcmFjbGUuY29tPiB3cm90ZToNCj4gDQo+PiBJbiBzdW1tYXJ5LCBBZGHigJlzIEJv b2xlYW4gdmFyaWFibGVzICh3aGV0aGVyIGl04oCZcyBoYXJkZW5lZCBvciBub3QpIGFyZQ0KPj4g cmVwcmVzZW50ZWQgYXMNCj4+IGVudW1lcmF0aW9uIHR5cGVzIGluIEdOVSBJUi4NCj4gDQo+IE5v dCBxdWl0ZS4gIE9ubHkgYm9vbGVhbiB0eXBlcyB3aXRoIHJlcHJlc2VudGF0aW9uIGNsYXVzZXMg YXJlLiAgVGhvc2UNCj4gd2l0aG91dCAoc3VjaCBhcyBTdGFuZGFyZC5Cb29sZWFuKSBhcmUgQk9P TEVBTl9UWVBFcy4gIEJ1dCB0aG9zZSB3aXRob3V0DQo+IGEgcmVwcmVzZW50YXRpb24gY2xhdXNl IGFyZSBub3Qgc28gcmVsZXZhbnQgYW5kIGNvdWxkIGJlIGRpc3JlZ2FyZGVkLA0KPiBmb3IgcHVy cG9zZXMgb2YgdGhpcyBjb252ZXJzYXRpb24uDQo+IA0KPj4gRkUgdGFrZXMgY2FyZSBvZiB0aGUg Y29udmVydGluZyBiZXR3ZWVuIG5vbi1ib29sZWFuX3R5cGVfbm9kZQ0KPj4gZW51bWVyYXRpb24g dHlwZXMgYW5kIGJvb2xlYW5fdHlwZV9ub2RlIGFzIG5lZWRlZCwgbm8gc3BlY2lhbCBoYW5kbGlu Zw0KPj4gaW4gTWlkZGxlIGVuZC4NCj4gDQo+PiBTbywgaXMgdGhpcyBleGFjdGx5IHRoZSBzYW1l IHNpdHVhdGlvbiBhcyB0aGUgbmV3IGhhcmRib29sIGF0dHJpYnV0ZQ0KPj4gZm9yIEMgYmVpbmcg aW1wbGVtZW50ZWQgaW4gdGhpcyBwYXRjaD8NCj4gDQo+IFRoYXQncyBjb3JyZWN0Lg0KPiANCj4+ IChBbm90aGVyIHF1ZXN0aW9uLCBmb3IgQWRh4oCZcyBCb29sZWFuIHZhcmlhYmxlcywgZG9lcyB0 aGUgYWRhIEZFIGFsc28NCj4+IGluc2VydCBCVUlMVF9JTl9UUkFQIHdoZW4NCj4+ICBUaGUgdmFs dWUgaXMgbmVpdGhlciB0cnVlX3ZhbHVlIG5vciBmYWxzZV92YWx1ZT8pDQo+IA0KPiBBZGEgcmFp c2VzIGV4Y2VwdGlvbnMgd2hlbiB2YWxpZGl0eSBjaGVja2luZyBmYWlsczsgc3VjaCBhcyB1cG9u IHVzaW5nIGENCj4gYm9vbGVhbiB2YXJpYWJsZSB3aXRoIGEgcmVwcmVzZW50YXRpb24gY2xhdXNl IGhvbGRzIGEgdmFsdWUgdGhhdCBpcw0KPiBuZWl0aGVyIHRydWUgbm9yIGZhbHNlLg0KPiANCj4+ PiBUaGUgbWlkZGxlLWVuZCBkb2Vzbid0IGtub3cgKGFuZCBBVE0gY2Fubm90IGtub3cpIHRoYXQg dGhvc2UgcmVwcmVzZW50ZWQNCj4+PiBhcyBlbnVtZXJhdGlvbiB0eXBlcyBhcmUgY29uY2VwdHVh bGx5IGJvb2xlYW5zLCBzbyB0aGV5IGFyZSB0cmVhdGVkIGFzDQo+Pj4gZW51bWVyYXRpb24gdHlw ZXMsIG5vdCBhcyBib29sZWFucy4NCj4gDQo+PiBUaGV5IHNob3VsZCBrbm93IGl04oCZcyBhIGJv b2xlYW4gaWYgdXNpbmcgdGhlIGxvb2t1cF9hdHRyaWJ1dGUgdG8gZ2V0DQo+PiB0aGUgYXR0cmli dXRlIGluZm8gLTopDQo+IA0KPiBJIG1lYW50IGJvb2xlYW4gdHlwZXMgdGhhdCBoYXZlIGEgcmVw cmVzZW50YXRpb24gY2xhdXNlIGJ1dCBhcmUgbm90DQo+IGhhcmRib29scy4gIFRob3NlIGRvbid0 IGhhdmUgYW55IGF0dHJpYnV0ZSB3aGF0c29ldmVyLg0KPiANCj4+PiBZb3UgbWVhbiBtb3JlIHRo YW4gd2hhdCdzIGluIHRoZSBwYXRjaCBwb3N0ZWQgbGFzdCB3ZWVrPw0KPj4gTm8sIHRoZSB1cGRh dGVkIGRvYyBpcyBnb29kIEkgdGhpbmsuDQo+IA0KPiBHcmVhdCwgdGhhbmtzDQo+IA0KPj4gU28s IGZyb20gbXkgY3VycmVudCB1bmRlcnN0YW5kaW5nLCBhIHN1bW1hcnkgb24gbXkgbWFqb3IgY29u Y2VybiBhbmQNCj4+IHRoZSBwb3NzaWJsZSBzb2x1dGlvbiB0byB0aGlzIGNvbmNlcm46DQo+IA0K PiBUaGF0IHdhcyBhIGdvb2Qgc3VtbWFyeS4NCj4gDQo+PiBJcyBpdCBuZWNlc3NhcnkgdG8gZml4 IHN1Y2ggaW5jb25zaXN0ZW5jeT8NCj4gDQo+IEkgZG9uJ3QgdGhpbmsgaXQgaXMgZXZlbiBkZXNp cmFibGUuDQo+IA0KPiBJbml0aWFsaXphdGlvbiBvZiBzdGF0aWMgdmFyaWFibGVzIGlzIHdlbGwt ZGVmaW5lZCwgb25lIGlzIGFsbG93ZWQgdG8NCj4gY291bnQgb24gYSBzcGVjaWZpYyB2YWx1ZSBh ZnRlciBpbml0aWFsaXphdGlvbiwgYW5kIHdlIGhhdmUgdGhhdA0KPiBjb3ZlcmVkLg0KPiANCj4g QXV0b21hdGljIHZhcmlhYmxlcywgT1RPSCwgd2hlbiBub3QgZXhwbGljaXRseSBpbml0aWFsaXpl ZCwgbWF5IGhvbGQNCj4gdW5kZWZpbmVkLCByYW5kb20sIGV2ZW4gbWFsZm9ybWVkIHZhbHVlcy4g IFBpY2tpbmcgYW4gaW5pdGlhbGl6ZXIgdG8NCj4gbWFrZSB0aGVtIHByZWRpY3RhYmxlIG5lZWRz IG5vdCBmb2xsb3cgdGhlIHNlbWFudGljcyBvZiB6ZXJvDQo+IGluaXRpYWxpemF0aW9uIGZvciBz dGF0aWMgdmFyaWFibGVzLiAgPXBhdHRlcm4gbWFrZXMgaXQgY2xlYXIgdGhhdCB1c2luZw0KPiBz b21ldGhpbmcgb3RoZXIgdGhhbiB6ZXJvIGluaXRpYWxpemF0aW9uIGlzIHVzZWZ1bCB0byBjYXRj aCBlcnJvcnMuICBUaGUNCj4gQWRhIGxhbmd1YWdlIHN0YW5kYXJkIGV2ZW4gc3VnZ2VzdHMgdGhh dCBjb21waWxlcnMgbWF5IHNldCB1bmluaXRpYWxpemVkDQo+IHZhcmlhYmxlcyB0byBvdXQtb2Yt cmFuZ2UgdmFsdWVzIHNvIGFzIHRvIGNhdGNoIHRoaXMgc29ydCBvZiBlcnJvci4gIFNvLA0KPiB0 aG91Z2ggaXQgbWlnaHQgc2VlbSBkZXNpcmFibGUsIGZvciBzeW1tZXRyeSwgdG8gaGF2ZSBhdXRv bWF0aWMNCj4gdmFyaWFibGVzIGltcGxpY2l0bHkgaW5pdGlhbGl6ZWQgc2ltaWxhcmx5IHRvIHN0 YXRpYyB2YXJpYWJsZXMsIGl0J3Mgbm90DQo+IGNsZWFyIHRoYXQgZG9pbmcgc28gc2VydmVzIGEg dXNlZnVsIHB1cnBvc2UsIGF0IGxlYXN0IGZvciBzdWNoIHR5cGVzIGFzDQo+IGhhcmRlbmVkIGJv b2xlYW5zLCB0aGF0IGFyZSAqaW50ZW5kZWQqIHRvIGNhdGNoIG1hbGZvcm1lZCB2YWx1ZXMuDQo+ IA0KPiAtLSANCj4gQWxleGFuZHJlIE9saXZhLCBoYXBweSBoYWNrZXIgICAgICAgICAgICAgICAg aHR0cHM6Ly9GU0ZMQS5vcmcvYmxvZ3MvbHhvLw0KPiAgIEZyZWUgU29mdHdhcmUgQWN0aXZpc3Qg ICAgICAgICAgICAgICAgICAgICAgIEdOVSBUb29sY2hhaW4gRW5naW5lZXINCj4gRGlzaW5mb3Jt YXRpb24gZmxvdXJpc2hlcyBiZWNhdXNlIG1hbnkgcGVvcGxlIGNhcmUgZGVlcGx5IGFib3V0IGlu anVzdGljZQ0KPiBidXQgdmVyeSBmZXcgY2hlY2sgdGhlIGZhY3RzLiAgQXNrIG1lIGFib3V0IDxo dHRwczovL3N0YWxsbWFuc3VwcG9ydC5vcmc+DQoNCg==