From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.136]) by sourceware.org (Postfix) with ESMTPS id 163E73858CDA; Thu, 14 Sep 2023 08:34:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 163E73858CDA Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1694680443; x=1726216443; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=XijQd0okJp46/F7feUb88M2RAg7Z6Cs4rs68ub7mMn4=; b=l9zrGMwr8peIY/V05+1P7TMNras+FvbEZunuE+qYYw47Scs/3NEwOE6b mvxI1UHVZgaCh/hr4i0DNzDm58pUPBGw1111nP4YU0tODyQOQTxOyFV0f OBR9JMAz2VY0u5xYshB+ZpiCOgKF1EJqJmzMxtwyijB66PIqQNSnwM3Ct ROsPAJMOsZuPCrodMQPDGAP+24Mreotsor7Oxv10ktVzbNlHgZcy67IHp fLVJeG1Im6HkgHg6SvXGOoi4gX63ubo/GZNP1aLwoHKl9mK4T9T3aJjcd 9ym8WKm6ewJb0+vtbWwpioj+hbYAoeYF73lSt+ukVhYEJ5LxR5ayDv8qz w==; X-IronPort-AV: E=McAfee;i="6600,9927,10832"; a="358317518" X-IronPort-AV: E=Sophos;i="6.02,145,1688454000"; d="scan'208";a="358317518" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Sep 2023 01:34:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10832"; a="834671561" X-IronPort-AV: E=Sophos;i="6.02,145,1688454000"; d="scan'208";a="834671561" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by FMSMGA003.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 14 Sep 2023 01:34:01 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Thu, 14 Sep 2023 01:34:00 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend Transport; Thu, 14 Sep 2023 01:34:00 -0700 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (104.47.73.45) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.32; Thu, 14 Sep 2023 01:33:58 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=N7fH5wLEKHao9m02I22S+Js2rxFGvDi62q/KaKN2inJ8s57nlpw+RErgdTvFvt7/9uxBEETk0GU/PHXvfTkmZoD6nmANfRIAUWAX65887X2XFaB+O32R8B+eJmt3vf6Zmn9xD5WHtFg+f8CQNwnnPk43TVwhu54/+gCug7Gx/Iwk/laz97RQ2G0o8h6PshH6RYnDeeNSiRpX8VYFvwHLc9/uxOt3zKX0mUjjqpZ1LTpg1O5YpKfoUX5EFIdVWo3jZG++0o3QKOVmaSV8gfW0pCiqu2A0LK47eJQSdZ9mRsytzYTq8tl4YUtddvH7tZ4/n21SC7i6XpOxrhyey5qQmw== 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=XijQd0okJp46/F7feUb88M2RAg7Z6Cs4rs68ub7mMn4=; b=JI2f31klib4FXtKbTrgIs3nFNCrZh9+SCNLpr7SZQoymVU2cz9SRZkaW8zi+HecXzhpj8+9QZB+0T2t2cgfapgrpOuhYk7BzhGITGcb7Tzx6rgD4P+tBKMmuolqqgCy7KGGOLnVcoinqgmAaMbxItRxD/MwrnhQrqyioRdkTF2rEb4AHqMTnkIJpDyr6Vfp1cIeNfxXzlNz3K6D/zhiKCVNEHYa2PzPlDN2Vswboz46DzVmvSVCnOZMTzTYmV8B+/VcgkRwMRhmOVuDFiqny8V1VAdM/LFockXBiyC5pjAp1+p8bipQgswk9SoDFpGOv0CQytyFGymEK7fcGnD3AGA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from PH7PR11MB6056.namprd11.prod.outlook.com (2603:10b6:510:1d4::20) by PH7PR11MB8250.namprd11.prod.outlook.com (2603:10b6:510:1a8::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6768.34; Thu, 14 Sep 2023 08:33:56 +0000 Received: from PH7PR11MB6056.namprd11.prod.outlook.com ([fe80::d409:4336:5929:aeaa]) by PH7PR11MB6056.namprd11.prod.outlook.com ([fe80::d409:4336:5929:aeaa%4]) with mapi id 15.20.6745.035; Thu, 14 Sep 2023 08:33:56 +0000 From: "Zhu, Lipeng" To: Thomas Koenig , Bernhard Reutner-Fischer CC: "fortran@gcc.gnu.org" , "gcc-patches@gcc.gnu.org" , "Lu, Hongjiu" , "Li, Tianyou" , "Deng, Pan" , "Guo, Wangyang" , Jakub Jelinek Subject: RE: [PATCH v4] libgfortran: Replace mutex with rwlock Thread-Topic: [PATCH v4] libgfortran: Replace mutex with rwlock Thread-Index: AQHZjnSfaJBwUZwj3E+ssbm/v3Oko6/v5JkQgCrGN9A= Date: Thu, 14 Sep 2023 08:33:56 +0000 Message-ID: References: <81c359ae-ab69-7f03-f113-4b865441de44@intel.com> <9e30db8a-2a6f-89d0-84fb-2f549f61954c@intel.com> <93b9e2d5-4355-136a-a961-da1ae9c1468f@netcologne.de> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH7PR11MB6056:EE_|PH7PR11MB8250:EE_ x-ms-office365-filtering-correlation-id: 8f4c6bf8-cff9-47b3-d3a0-08dbb4fd55e7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: KEiuTiCt3VuZyIPY/mxfGVrYcaQKZvQ0OWx+cwwAor0r5iFvSBbiLktEpey0d6VJFrp7imlyMNaN+0HNvRuJX3wCtDeReiJdxO8UoRrXQxjZHSD5g+ha3ez91TsI4XwVEN6TOudXdwVg+r/Vt70Jmx1TCDBwbL/zXkcDWRVN3X2lkFdvXp6mDE/CC3yMTHZl7479XidoJFzb2JeMBLh3J4Gr8f6jj7otvW9dZPNo1Hx4M2SfbJdte3RaEJ4kF8g5h18xM5zwjLkPhlFbNcSsii08ePfrjta1c4jqb+b8pWZm3I2Xo1vNcU/be95rZoJtgHl7iTsxiOsucvWOujkb6C+GEw0CDyMpuk07ABDRSApxGdH4VRXNJLu4wn9kwvrqgAWkpdUApQlVfoI8xUh+VCQFkrRpecUAdquvviEWnWsRJV8tOk9qdp5/wn0Z6cJlL4/praq5GhBiEvqGBVsK3vVIh0Fg/ppD4DLzHZuprHOtZslqILb/oSnMsoteQtdOQM73to6UuaoRSQXXorGkNBU/wbaiJamkldsErGOxk/9sliGC/9ILTUZDKhAWQzI5A77k5Y3Dt5QaK0k01X1JdKOIsRcPbqTwBLeSZIGX+sPEzSEjzsPMBh7xvBN7yt1O x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR11MB6056.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(346002)(366004)(396003)(39860400002)(136003)(186009)(1800799009)(451199024)(478600001)(9686003)(8676002)(33656002)(38100700002)(86362001)(122000001)(5660300002)(55016003)(82960400001)(83380400001)(38070700005)(66476007)(316002)(8936002)(4326008)(110136005)(2906002)(41300700001)(26005)(71200400001)(66446008)(7696005)(66946007)(6506007)(54906003)(66556008)(52536014)(76116006)(64756008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aVEybHR4K013M0ROOHFtWm9XaDhnSE92anZvckY2M1A3bTNTMEsrdzRyWFZU?= =?utf-8?B?blJkSnZISUd4TGxaTHljY2xBeUh0bCt5eklnajltWWpLeWc1aU01aElEZ3R2?= =?utf-8?B?TFJYUEZKOGtNMHJ2RC9JUS9tcTZPb0NHVHJ3ZnZnOWthRWRvRzlvaWhZSWs5?= =?utf-8?B?VWJzcElsaTg4VUUzMEVCNkluK21pVVNNTEd6aDIzZ3c2YzRUVVRoSWVJYSt1?= =?utf-8?B?TXkxaVhmeThwamFXQkRSeDRVRk4wdkExa0dxN1NiK2NoTHdxVVBWL0cxZVZN?= =?utf-8?B?OGptOEs5NEl5N2xUWVJBV2xPTzEyM1FzM29hSHNDTFh6Nzh2TjdQbW5oNGc4?= =?utf-8?B?cXVWVzFJVVYvbTdsQmdMejkrOVlMbXpVVjFiSGRPSW93dkEzZ1VlOFBTQnFO?= =?utf-8?B?eUpEQzA5MlNMRVhBMmtYTHpFZGFmNUNzc1ZodndDeHdwc3pDR0ZxbEJTbEtp?= =?utf-8?B?SVFHeWtzZHdFemM3SUh0Z20rLzk4ZHhIdFRNYks2Y1pLQi9lU0QvWDdwM2Jn?= =?utf-8?B?SUZOT2swYzlPbkRUcjgvU1U5Rm5kQW5EZjZWNCt5dzZEbUV3ZWxIeDJSNXI2?= =?utf-8?B?TUlPR2lGZFVsRW9idEZsNExJdHEwTWZLVStFc0w3VHFaWTZaOEh1QU1LNEha?= =?utf-8?B?Qit4d3JJZVdrbkRLWGhnMWdySTlVUkdKODRUeWFrbHRiOSsrK3hmZzlkbmR3?= =?utf-8?B?Unc4cVJpSzZjK2pDLzJTVmErVVpHOTJXU0xDajdsMDRTTnJkUzZNSk9ZS1Mx?= =?utf-8?B?VC9iWGhGWmxjb296TUJmS3RydFFoY0lsSlVZZkVRbFY3ZHpzVUFEN3psZHE4?= =?utf-8?B?VUtFQ3JQOUlBZHpZdEtZZFEyMVBPVlZMOGsvaWFGQzlEMU9TNDZWYWdGbHRI?= =?utf-8?B?eTdCVDRsRnBBdkhKNjlNMGNmQXNhMGZjTVg1aXJzbTIzdXAxd3hFNXMyTnhj?= =?utf-8?B?MHZ0d0YxdlJReVV4d1Fna2c2NzVGLy9kQ1laaEJ2MUcxWFRPM1hJNERSZEdL?= =?utf-8?B?K2gzanIzOURhNzBqQ1Z2ZGhCQWRhSFlHMDFkYkJOcTM4Ky9PdHd6U3Q4NXpn?= =?utf-8?B?WXF4Y2xHT1gwYzNNemNncXJPeGw5TzU2dW5nQ3dzTGU2dFBVU2xSakV4aElZ?= =?utf-8?B?SS8zcVd0VldVTEVWUmFZcU8zc1VKSnhVNk4yQlV5eEV3NmhpR0VLcDZYNXdE?= =?utf-8?B?endlTC9zNU84MEVNYmNNYlR6VkFtdnRQcktMZVQweWtQUGJ2MUxGTlh4T2ZC?= =?utf-8?B?QjRXSGxKUEFzNGhzUjQ0ZlhhSy8zWUJiTzNDNWl5QUVselVaSmQveENudTV1?= =?utf-8?B?eWF6UGdBTmRMSXYxT1ZlZUplNGZYbkQvN051NEZ5Rnp5bk41MklIQW9pWTQ0?= =?utf-8?B?anVEV2ZybFNCaGRQdXBMNlBZdVpqd3BKSkcwZlRSSk9VNmZHVFJkVm1qYnoy?= =?utf-8?B?VTl1bEJkSC9qNitOWjFtUnhESTRNZktCS2pML0x2YzZIS29HWjFsdHRNQm1x?= =?utf-8?B?SVM3QlBXU3p4KzUvZG93YUc3U0NvUERkc2xjU2ZBYWFFWEJKZXQzQkNUT2Jv?= =?utf-8?B?aHR3M3NwMXhxV1JtRmhqZzJFd0RmOHpWQUlwcVFNRnNzenFpaGFncXJBaTZF?= =?utf-8?B?WWNieUovQXVINDhHcGZ1RG95T1BHSVM4ZTJwaExwN3NjYmoyZVlac0ZIaHhy?= =?utf-8?B?RHg1d0pDczhIRUJaSVU4RlMwYmZHV1dUOWJlTlBYZDl6bURPeXFJbzdJVEV2?= =?utf-8?B?eDV2REdvWGoxTVBLSjNTTTZyMHVFTEhaZEo0Y3d0eTcrMmJjZzhPREh1dTBm?= =?utf-8?B?aUZqbHp1MllGcSs5L3Brenp3eTZKVGVYOEJZczRaSTI2MGVqYWxNa2ZncnFm?= =?utf-8?B?cE9SalhaVWFHLzBPNnpVQjE5RDZZUUcrVnBlNGJKK0lwRkpsVzljVFVLT2N0?= =?utf-8?B?VzdzRTV3WGFLMTROeGhHeG12VTYxbTdDSUg2QzNEdWtiN3J3R1U3cmlIbGp4?= =?utf-8?B?SUVjVXc0MXNNem1rNEhxbEVkQmxvdFpjUHV6WSsweVFGaUE5Q0xWUHRZOVpJ?= =?utf-8?B?eUU2eGFHY25UVDZkVHAvVjEwWDZSdXQvWTk2NERRNjRXbmNiZ2J1M1ZCTUhq?= =?utf-8?Q?B1w0GcxNBjNM+oQmpKxKaJrbg?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH7PR11MB6056.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8f4c6bf8-cff9-47b3-d3a0-08dbb4fd55e7 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Sep 2023 08:33:56.3794 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 8POsUlQ7ScKErfC9SEhZLlJk/TnEu1/wnBG9Jxp4OCnL8LoRMDeqNvx+yiWi9pIMJBGWwawpHpJ2zMw+h+GJGA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB8250 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: PiBIaSBUaG9tYXMsDQo+IA0KPiA+DQo+ID4gSGkgTGlwZW5nLA0KPiA+DQo+ID4gPiBNYXkgSSBr bm93IGFueSBjb21tZW50IG9yIGNvbmNlcm4gb24gdGhpcyBwYXRjaCwgdGhhbmtzIGZvciB5b3Vy DQo+ID4gPiB0aW1lDQo+ID4gPiDwn5iEDQo+ID4NCj4gPiBUaGFua3MgZm9yIHlvdXIgcGF0aWVu Y2UgaW4gZ2V0dGluZyB0aGlzIHJldmlld2VkLg0KPiA+DQo+ID4gQSBmZXcgcmVtYXJrcyAvIHF1 ZXN0aW9ucy4NCj4gPg0KPiA+IFdoaWNoIHN0cmF0ZWd5IGlzIHVzZWQgaW4gdGhpcyBpbXBsZW1l bnRhdGlvbiwgcmVhZC1wcmVmZXJyaW5nIG9yDQo+ID4gd3JpdGUtIHByZWZlcnJpbmc/ICBBbmQg aWYgcmVhZC1wcmVmZXJyaW5nIGlzIHVzZWQsIGlzIHRoZXJlIGEgZGFuZ2VyDQo+ID4gb2YgZGVh ZGxvY2sgaWYgcGVvcGxlIGRvIHVucmVhc29uYWJsZSB0aGluZ3M/DQo+ID4gTWF5YmUgeW91IGNv dWxkIGV4cGxhaW4gdGhhdCwgYWxzbyBpbiBhIGNvbW1lbnQgaW4gdGhlIGNvZGUuDQo+ID4NCj4g DQo+IFllcywgdGhlIGltcGxlbWVudGF0aW9uIHVzZSB0aGUgcmVhZC1wcmVmZXJyaW5nIHN0cmF0 ZWd5LCBhbmQgY29tbWVudHMgaW4NCj4gY29kZS4NCj4gV2hlbiBhZGRpbmcgdGhlIHRlc3QgY2Fz ZXMsIEkgZGlkbuKAmXQgbWVldCB0aGUgc2l0dWF0aW9uIHdoaWNoIG1heSBjYXVzZSB0aGUNCj4g ZGVhZGxvY2suDQo+IE1heWJlIHlvdSBjYW4gZ2l2ZSBtb3JlIGd1aWRhbmNlIGFib3V0IHRoYXQu DQo+IA0KPiA+IENhbiB5b3UgYWRkIHNvbWUgc29ydCBvZiB0b3J0dXJlIHRlc3QgY2FzZShzKSB3 aGljaCBkb2VzIGEgbG90IG9mDQo+ID4gb3BlbmluZy9jbG9zaW5nL3JlYWRpbmcvd3JpdGluZywg cG9zc2libHkgd2l0aCBhc3luY2hyb25vdXMgSS9PIGFuZC9vcg0KPiA+IHB0aHJlYWRzLCB0byBj YXRjaCBwb3NzaWJsZSBwcm9ibGVtcz8gIElmIHRoZXJlIGlzIGEgc3lzdGVtIGRlcGVuZGVuY3kN Cj4gPiBvciBzb21lIHJhY2UgY29uZGl0aW9uLCBjaGFuY2VzIGFyZSB0aGF0IHJlZ3Jlc3Npb24g dGVzdGVycyB3aWxsIGNhdGNoIHRoaXMuDQo+ID4NCj4gDQo+IFN1cmUsIGFzIHlvdXIgY29tbWVu dHMsIGluIHRoZSBwYXRjaCBWNiwgSSBhZGRlZCAzIHRlc3QgY2FzZXMgd2l0aCBPcGVuTVAgdG8N Cj4gdGVzdCBkaWZmZXJlbnQgY2FzZXMgaW4gY29uY3VycmVuY3kgcmVzcGVjdGl2ZWx5Og0KPiAx LiBmaW5kIGFuZCBjcmVhdGUgdW5pdCB2ZXJ5IGZyZXF1ZW50bHkgdG8gc3RyZXNzIHJlYWQgbG9j ayBhbmQgd3JpdGUgbG9jay4NCj4gMi4gb25seSBhY2Nlc3MgdGhlIHVuaXQgd2hpY2ggZXhpc3Qg aW4gY2FjaGUgdG8gc3RyZXNzIHJlYWQgbG9jay4NCj4gMy4gYWNjZXNzIHRoZSBzYW1lIHVuaXQg aW4gY29uY3VycmVuY3kuDQo+IEZvciB0aGUgdGhpcmQgdGVzdCBjYXNlLCBpdCBhbHNvIGhlbHAg dG8gZmluZCBhIGJ1ZzogIFdoZW4gdW5pdCBjYW4ndCBiZSBmb3VuZCBpbg0KPiBjYWNoZSBub3Ig dW5pdCBsaXN0IGluIHJlYWQgcGhhc2UsIHRoZW4gdGhyZWFkcyB3aWxsIHRyeSB0byBhY3F1aXJl IHdyaXRlIGxvY2sgdG8NCj4gaW5zZXJ0IHRoZSBzYW1lIHVuaXQsIHRoaXMgd2lsbCBjYXVzZSBk dXBsaWNhdGUga2V5IGVycm9yLg0KPiBUbyBmaXggdGhpcyBidWcsIEkgZ2V0IHRoZSB1bml0IGZy b20gdW5pdCBsaXN0IG9uY2UgYWdhaW4gYmVmb3JlIGluc2VydCBpbiB3cml0ZSBsb2NrLg0KPiBN b3JlIGRldGFpbHMgeW91IGNhbiByZWZlciB0aGUgcGF0Y2ggdjYuDQo+IA0KDQpDb3VsZCB5b3Ug aGVscCB0byByZXZpZXcgdGhpcyB1cGRhdGU/IEkgcmVhbGx5IGFwcHJlY2lhdGUgeW91ciBhc3Np c3RhbmNlLg0KDQo+ID4gV2l0aCB0aGlzLCB0aGUgbGliZ2ZvcnRyYW4gcGFydHMgYXJlIE9LLCB1 bmxlc3Mgc29tZWJvZHkgZWxzZSBoYXMgbW9yZQ0KPiA+IGNvbW1lbnRzLCBzbyBnaXZlIHRoaXMg YSBjb3VwbGUgb2YgZGF5cy4gIEkgY2Fubm90IGFwcHJvdmUgdGhlIGxpYmdjYw0KPiA+IHBhcnRz LCB0aGF0IHdvdWxkIGJlIHNvbWVib2R5IGVsc2UgKEpha3ViPykNCj4gPg0KPiA+IEJlc3QgcmVn YXJkcw0KPiA+DQo+ID4gCVRob21hcw0KPiA+DQo+IA0KPiBCZXN0IFJlZ2FyZHMsDQo+IExpcGVu ZyBaaHUNCg0KQmVzdCBSZWdhcmRzLA0KTGlwZW5nIFpodQ0K