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 4FEC93853C09 for ; Tue, 17 Aug 2021 14:03:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4FEC93853C09 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 17HE2nTT022833; Tue, 17 Aug 2021 14:03:11 GMT Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3agdnf05qw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Aug 2021 14:03:10 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 17HE13m6023060; Tue, 17 Aug 2021 14:03:08 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2177.outbound.protection.outlook.com [104.47.56.177]) by userp3030.oracle.com with ESMTP id 3ae2y06kuv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Aug 2021 14:03:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mebIVYAb8kiDGJzwyOEEI5Uarbh2zOqZPzkMi5b33ctn2Ius/J4O1xTT2CvAtcMJX7kIH1WGupi+AMv89dBVrjtjC5SAV0lVq5mFYzVju2Yrutm4lcRTfaCATFZVtUd5uBcy2NqKynNkWuAwTKOQkug02XQY/ZD4DsAbA0osvkAwSOmDaNJ1hrM6dZns1WD7dHuoF+aVrEjMjSHcTWrSDe7B4Rsv1vIjKNqB5RypTIs0KpIfx1BGa10HbjpPtvahqiFigEPdkjByPT2n62eC4unk6nrWCvWLIYkG52Sn4ONXfI/mCB4hfWr1wib4fXVEM3jRmrmah22sZjOO8bMQbw== 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-SenderADCheck; bh=kfWG75yEnaSNCiDZ+XD5gkvYH6u7hmNJEdDCXJuC2K8=; b=EQpeMUqFaKPS0x2izXZb0lU0uMSBaBMm2INaChJS6BVUF83Wjgo/jRNKPTcUmpBnlND9KajHYTIOj/J8EaK1SAc5SpVqAY18uUrUUfUxNONCxYiPvw9+mFpj9uTqzqysOaVcws81sUzWFvHZYeQNNIpmXoZZ91JEtjmRblprNOFCIoxfkRuKb2kMO0D0FWlJi/ePPi1y2WpVUvPc5KNTb7ku7HSmguOoy653DtqMBmzSSYfWbdi5scAOeWnqzZQYO4+3IGY4ZUWWuUyZVIuGcs0XHYaeIwhhfoDfE+7Ge1HR+CWtBrvfUrJnksiQbE3FLV3DpdcrIAodqLofn3pUsg== 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 CH0PR10MB5002.namprd10.prod.outlook.com (2603:10b6:610:c1::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.14; Tue, 17 Aug 2021 14:03:06 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::f463:6b71:2491:d547]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::f463:6b71:2491:d547%9]) with mapi id 15.20.4415.024; Tue, 17 Aug 2021 14:03:06 +0000 From: Qing Zhao To: Richard Biener CC: Martin Jambor , Jakub Jelinek , Kees Cook , Nick Alcock via Gcc-patches , Richard Biener Subject: Re: [patch][version 6] add -ftrivial-auto-var-init and variable attribute "uninitialized" to gcc Thread-Topic: [patch][version 6] add -ftrivial-auto-var-init and variable attribute "uninitialized" to gcc Thread-Index: AQHXgpcfj6SO0Rka1UmU0GU91mFncqtrSzIAgAUO6ICABYSmgIAAy6WAgADYMQCAAFltAA== Date: Tue, 17 Aug 2021 14:03:06 +0000 Message-ID: <6987380F-4DF9-4A42-9989-C1991E0BE3FA@oracle.com> References: <52E29277-1403-4755-901A-528116C43FB8@oracle.com> <517EA40B-9500-4090-8F03-B4A9CECC62F8@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.3608.120.23.2.7) x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 32c46ae9-fdce-436d-cfdf-08d96187bc9e x-ms-traffictypediagnostic: CH0PR10MB5002: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: D0Ib9WbRBm34hZMF/z8EM3we27/tq6t/NniUpP2s5Nj+uLMzYHvbohVyeWl0DwEJMoZjK/nN9Dda0Qa/HHO2wC0oKfSagCA6/pDJx/MVDUNrhYCNyb5eBuduHIXZIjCe8ypd2qig11/7fjiO69rwu9jxWtX3QjmEjbZ+pF93W9WpKDUm6j/GaVaU50GO4aXesMn01GSEsEMc7VtTQZfBKhkMW9JdTSovvkIaEYIyenMydhJ/geHZDpsdpi/shgLJt+KBB4nm8JF9TL+e3MdS2WREf8bQ+kT5mtqoGKeV6gCqRjZuj5qiO20kkmrGI2CDfzahb5YrAWDv5CRniPzHnTjAHtNd+3XtkH3iehrOG7kSte5kaBuSjobyDHIwBg6s8ri+NAYvHrj5hRRcFG8m/UJDOGrqHJKhba6XLmBm9ri6Td3zdEJgwC+15mDRjjbSvj1W6TGCM8Fbryl83rNN9ni4ah7vOTULEjtcLlk10OMWp0bH9vYkvcgtoGta35VdMp1X6wPKSENfEfOi8cYHtTbITS9McMdSIjwnp9aAdzYlSVU18ZTS0xXD7gpmRJVUAxsEN//p2N1KDOB0UD15drmat0KkQB55DhDE+0r57/d8adQCKxrqN/hpXmtoyA5T1wDh1cfghR2ITkGO5ZHYdQG3+EFEFd0QQPIPJ4GPNh102Ei9jVh2b834reTTD9RBKX/9Qa4bwKSsHM/PJGKebWejuaD5TAShSzBWPDgqsVyhGa5ScDps4tP+++mdS2D3 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:(396003)(366004)(136003)(39860400002)(346002)(376002)(2616005)(5660300002)(71200400001)(316002)(36756003)(4326008)(38070700005)(8936002)(44832011)(478600001)(6916009)(8676002)(122000001)(66946007)(6512007)(91956017)(76116006)(54906003)(86362001)(38100700002)(53546011)(6506007)(6486002)(33656002)(186003)(66476007)(66556008)(64756008)(66446008)(83380400001)(2906002)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bHBNMVdwZFlaejdlOStKQU9LdURFaEgrTExzQU5aMTM2Zk01N1gxVGVwb1Jh?= =?utf-8?B?UkdiVk15ZXFHOThiSmpkZkRMZ0xMVDhyOVhYazkxanp1bDdvZXF5a0xjdlZ5?= =?utf-8?B?UHJrV0NPdHk2ZHk1akhJbDVwU3pnaTM2dnRYMzhGazJvUGlteVZwa1J0Q0J5?= =?utf-8?B?V2loWDJHWEF4TlhScDg1NFdoZE9UYVZxVWt1cDlmd0oxNTBRa0wyeEFaaUNN?= =?utf-8?B?eGVzbStlSW9nNzZZOUpKYUhQdEN1eEY5cGhlVHhnNUd0Tk1iTm9rTlIvYTRI?= =?utf-8?B?L09Pdkh5eE8xdUJ0QUJQYUJtT2MwMzBBbmh2VmNOOWlkK256a2JnYnp1SlJS?= =?utf-8?B?bXZRN09SR1ExZGVJbVd6blB1bko1Sk1WT0JwYkZkdjVtODAwMnlQdmtVRm04?= =?utf-8?B?WVJQM0hLV2pCL2hUc1Jja0pqdEptUmNhTHdrY0xIZGkyckpvQ0JhK1BycFZM?= =?utf-8?B?SmxFV0hVVGZVWk1TS1hkTkFUMnZOYkhpbmx3eENvNCtndmgzY1E0ZGlWZjlB?= =?utf-8?B?cWEyVVlZa01CNUNXSGFNOERLQW96b280UmRiZHFuWDUxRUdnRjlxY3JiSXor?= =?utf-8?B?ZlhRdGFUM3hreTVmWHlMdnpzbStVVlVGUEZLVmtrMDhGQzkyYlhMc0pwOVJk?= =?utf-8?B?SEdORXg3YmhGS2VTc1NkcGEraWtSbXpCQ1FBbGR2ZFJtTGxmVWV4YjFxMW0v?= =?utf-8?B?eXRDdW9Sejh6bUkyckpXaExQOTJSdnFmUUF3QisrTitGMGluRzRpRXdHNjNW?= =?utf-8?B?c0ZmWFBpYWZ0VkJBckFWMVJpbm1tZGJWb0MxSy9JNEpKQlZZVjJ1c2FYaXlm?= =?utf-8?B?YjB2YU9DR0Jza1JJTHlrNG5mdzllcEE4YTJ0ZU9lOG0rams4aHhrUmQ2Y0Rv?= =?utf-8?B?VmJKczBZOXpjbGZNZXNQOGcraGhpTnN3U0hveG15U3BuTTlTa0haeE4xc3Fj?= =?utf-8?B?WnRaNmg0ZFVxbHo3Tm0vUmhVTWRscitSaUF5WDBtRzhRUmxoMWVEVElwWnUw?= =?utf-8?B?RUZGbUltUlFPTHR2d21UUUZvRWtMUmZXbWlIUS9GMURaeTlyaFRXVENOTXRQ?= =?utf-8?B?OTY5aGFKRWNHaWRnZHhnM3lXNWI0b293U0lIWStENDR0RjRsSXV5M09OelhI?= =?utf-8?B?OEVxYUt3dS94ci9NdWtVbjhTVHpSYmFwODY0bHVvVm9yQ0pFWjZuaW5VZlRM?= =?utf-8?B?TEVKTkdrR01oalZubHphZkVNTU5hY0JBWHdHMHRRMzU5SGh2Ym9WUGJXcVRM?= =?utf-8?B?bmhXQnpaeHZWSG04eXpONi9WNjlsQzVvcmh1RTdiMTR4Y1ZUYVJUZ2tzdzlL?= =?utf-8?B?TEU2ODRzUFJmUzYzMFM3V1FkaXlqVjUrbmRBekRXeGw4WEZ4b3FVZEdUYTFq?= =?utf-8?B?eXBTb3VFVFd5M0dZQy85SHVDSkovS2ZyTnFEMDJKeVZGbXl0blRLL0lYbGtD?= =?utf-8?B?QWNTSkZ0MFM0cngvQWZLM25tbzNRa2JXT2YzUTJPdnBMS1NvZ2tjVWYrTDhX?= =?utf-8?B?VTZYeXl3a2JtcjMrWThSNmlkT2ZteDdlNHY4dW1wNDVUb2xkajVxRXJJSTB5?= =?utf-8?B?UE9lcEZOaE5CUjhpWDFleDZuYW90RVFHL3M3UG9LU1JKYk5TWHZPTlQ5NlBL?= =?utf-8?B?Y3pHeVlJQUNMMC9ReWxIT2ZmV2lRekphMlQ4TUdLY2hEWXNtWFdrcHJMOCtT?= =?utf-8?B?dTFjM3NxVUpKUFBvRE56VmxkYXQ3cGlXZUVUSmN4V0Y4a3dlSVVEREhRZC92?= =?utf-8?B?ZVh5NXZTdlBlSXlISGtRMmdwSGkyR3BLNnhnd2pHZlMwZEhVeUVPNmFHRi82?= =?utf-8?Q?A65n3yUGhl8oMguzmFD004fprTLUo9DeflyzY=3D?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <806A535983F9A746A360D613E6D1892C@namprd10.prod.outlook.com> 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: 32c46ae9-fdce-436d-cfdf-08d96187bc9e X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Aug 2021 14:03:06.1614 (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: mddYF//qPfD3hP/MZkM8KBLdT5GI3mLqX+lTRPzaa4PjiM/u4E1qt4nW7FWgYKDtr6l61bI/BOmz7F0MEQn9Lw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5002 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10079 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 spamscore=0 adultscore=0 suspectscore=0 phishscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2108170086 X-Proofpoint-GUID: iDFW7UjH5RbT1DGS1RXMMcYCY3OuNDIL X-Proofpoint-ORIG-GUID: iDFW7UjH5RbT1DGS1RXMMcYCY3OuNDIL X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_BL, RCVD_IN_MSPIKE_L3, SPF_HELO_NONE, SPF_NONE, TXREP 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: Tue, 17 Aug 2021 14:03:24 -0000 DQoNCj4gT24gQXVnIDE3LCAyMDIxLCBhdCAzOjQzIEFNLCBSaWNoYXJkIEJpZW5lciA8cmd1ZW50 aGVyQHN1c2UuZGU+IHdyb3RlOg0KPiANCj4gT24gTW9uLCAxNiBBdWcgMjAyMSwgUWluZyBaaGFv IHdyb3RlOg0KPiANCj4+IA0KPj4gDQo+Pj4gT24gQXVnIDE2LCAyMDIxLCBhdCAyOjQwIEFNLCBS aWNoYXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+IHdyb3RlOg0KPj4+IA0KPj4+IE9uIFRo dSwgMTIgQXVnIDIwMjEsIFFpbmcgWmhhbyB3cm90ZToNCj4+PiANCj4+Pj4gSGksIFJpY2hhcmQs DQo+Pj4+IA0KPj4+PiBGb3IgUlRMIGV4cGFuc2lvbiBvZiBjYWxsIHRvIC5ERUZFUlJFRF9JTklU LCBJIGNoYW5nZWQgbXkgY29kZSBwZXIgeW91ciBzdWdnZXN0aW9ucyBsaWtlIGZvbGxvd2luZzoN Cj4+Pj4gDQo+Pj4+ID09PT09PT09PT09PT09PT09PT09PT0NCj4+Pj4gI2RlZmluZSBJTklUX1BB VFRFUk5fVkFMVUUgIDB4RkUNCj4+Pj4gc3RhdGljIHZvaWQNCj4+Pj4gZXhwYW5kX0RFRkVSUkVE X0lOSVQgKGludGVybmFsX2ZuLCBnY2FsbCAqc3RtdCkNCj4+Pj4gew0KPj4+PiB0cmVlIGxocyA9 IGdpbXBsZV9jYWxsX2xocyAoc3RtdCk7DQo+Pj4+IHRyZWUgdmFyX3NpemUgPSBnaW1wbGVfY2Fs bF9hcmcgKHN0bXQsIDApOw0KPj4+PiBlbnVtIGF1dG9faW5pdF90eXBlIGluaXRfdHlwZQ0KPj4+ PiAgID0gKGVudW0gYXV0b19pbml0X3R5cGUpIFRSRUVfSU5UX0NTVF9MT1cgKGdpbXBsZV9jYWxs X2FyZyAoc3RtdCwgMSkpOw0KPj4+PiBib29sIGlzX3ZsYSA9IChib29sKSBUUkVFX0lOVF9DU1Rf TE9XIChnaW1wbGVfY2FsbF9hcmcgKHN0bXQsIDIpKTsNCj4+Pj4gDQo+Pj4+IHRyZWUgdmFyX3R5 cGUgPSBUUkVFX1RZUEUgKGxocyk7DQo+Pj4+IGdjY19hc3NlcnQgKGluaXRfdHlwZSA+IEFVVE9f SU5JVF9VTklOSVRJQUxJWkVEKTsNCj4+Pj4gDQo+Pj4+IGlmIChpc192bGEgfHwgKCFjYW5fbmF0 aXZlX2ludGVycHJldF90eXBlX3AgKHZhcl90eXBlKSkpDQo+Pj4+ICAgew0KPj4+PiAgIC8qIElm IHRoaXMgaXMgYSBWTEEgb3IgdGhlIHR5cGUgb2YgdGhlIHZhcmlhYmxlIGNhbm5vdCBiZSBuYXRp dmVseQ0KPj4+PiAgICAgIGludGVycHJldGVkLCBleHBhbmQgdG8gYSBtZW1zZXQgdG8gaW5pdGlh bGl6ZSBpdC4gICovDQo+Pj4+ICAgICBpZiAoVFJFRV9DT0RFIChsaHMpID09IFNTQV9OQU1FKQ0K Pj4+PiAgICAgICBsaHMgPSBTU0FfTkFNRV9WQVIgKGxocyk7DQo+Pj4+ICAgICB0cmVlIHZhcl9h ZGRyID0gTlVMTF9UUkVFOw0KPj4+PiAgICAgaWYgKGlzX3ZsYSkNCj4+Pj4gICAgICAgdmFyX2Fk ZHIgPSBUUkVFX09QRVJBTkQgKGxocywgMCk7DQo+Pj4+ICAgICBlbHNlDQo+Pj4+ICAgICAgIHsN Cj4+Pj4gICAgICAgIFRSRUVfQUREUkVTU0FCTEUgKGxocykgPSAxOw0KPj4+PiAgICAgICAgdmFy X2FkZHIgPSBidWlsZF9mb2xkX2FkZHJfZXhwciAobGhzKTsNCj4+Pj4gICAgICAgfQ0KPj4+PiAg ICAgdHJlZSB2YWx1ZSA9IChpbml0X3R5cGUgPT0gQVVUT19JTklUX1BBVFRFUk4pID8NCj4+Pj4g ICAgICAgICAgICAgICAgICAgYnVpbGRfaW50X2NzdCAodW5zaWduZWRfY2hhcl90eXBlX25vZGUs DQo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOSVRfUEFUVEVSTl9WQUxV RSkgOg0KPj4+PiAgICAgICAgICAgICAgICAgICBidWlsZF96ZXJvX2NzdCAodW5zaWduZWRfY2hh cl90eXBlX25vZGUpOw0KPj4+PiAgICAgdHJlZSBtX2NhbGwgPSBidWlsZF9jYWxsX2V4cHIgKGJ1 aWx0aW5fZGVjbF9pbXBsaWNpdCAoQlVJTFRfSU5fTUVNU0VUKSwNCj4+Pj4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAzLCB2YXJfYWRkciwgdmFsdWUsIHZhcl9zaXplKTsNCj4+ Pj4gICAgIC8qIEV4cGFuZCB0aGlzIG1lbXNldCBjYWxsLiAgKi8NCj4+Pj4gICAgIGV4cGFuZF9i dWlsdGluX21lbXNldCAobV9jYWxsLCBOVUxMX1JUWCwgVFlQRV9NT0RFICh2YXJfdHlwZSkpOw0K Pj4+PiAgIH0NCj4+Pj4gZWxzZQ0KPj4+PiAgIHsNCj4+Pj4gICAvKiBJZiB0aGlzIGlzIG5vdCBh IFZMQSBhbmQgdGhlIHR5cGUgb2YgdGhlIHZhcmlhYmxlIGNhbiBiZSBuYXRpdmVseSANCj4+Pj4g ICAgICBpbnRlcnByZXRlZCwgZXhwYW5kIHRvIGFzc2lnbm1lbnQgdG8gZ2VuZXJhdGUgYmV0dGVy IGNvZGUuICAqLw0KPj4+PiAgICAgdHJlZSBwYXR0ZXJuID0gTlVMTF9UUkVFOw0KPj4+PiAgICAg dW5zaWduZWQgSE9TVF9XSURFX0lOVCB0b3RhbF9ieXRlcw0KPj4+PiAgICAgICA9IHRyZWVfdG9f dWh3aSAoVFlQRV9TSVpFX1VOSVQgKHZhcl90eXBlKSk7DQo+Pj4+IA0KPj4+PiAgICAgaWYgKGlu aXRfdHlwZSA9PSBBVVRPX0lOSVRfUEFUVEVSTikNCj4+Pj4gICAgICAgew0KPj4+PiAgICAgICAg IHVuc2lnbmVkIGNoYXIgKmJ1ZiA9ICh1bnNpZ25lZCBjaGFyICopIHhtYWxsb2MgKHRvdGFsX2J5 dGVzKTsNCj4+Pj4gICAgICAgICBtZW1zZXQgKGJ1ZiwgSU5JVF9QQVRURVJOX1ZBTFVFLCB0b3Rh bF9ieXRlcyk7DQo+Pj4+ICAgICAgICAgcGF0dGVybiA9IG5hdGl2ZV9pbnRlcnByZXRfZXhwciAo dmFyX3R5cGUsIGJ1ZiwgdG90YWxfYnl0ZXMpOw0KPj4+PiAgICAgICAgIGdjY19hc3NlcnQgKHBh dHRlcm4pOw0KPj4+PiAgICAgICB9DQo+Pj4+IA0KPj4+PiAgICAgdHJlZSBpbml0ID0gKGluaXRf dHlwZSA9PSBBVVRPX0lOSVRfUEFUVEVSTikgPw0KPj4+PiAgICAgICAgICAgICAgICAgIHBhdHRl cm4gOg0KPj4+PiAgICAgICAgICAgICAgICAgIGJ1aWxkX3plcm9fY3N0ICh2YXJfdHlwZSk7DQo+ Pj4+ICAgICBleHBhbmRfYXNzaWdubWVudCAobGhzLCBpbml0LCBmYWxzZSk7DQo+Pj4+ICAgfQ0K Pj4+PiB9DQo+Pj4+ID09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPj4+PiANCj4+Pj4gTm93 LCBJIHVzZWQg4oCcY2FuX25hdGl2ZV9pbnRlcnByZXRfdHlwZV9wICh2YXJfdHlwZSnigJ0gaW5z dGVhZCBvZiDigJx1c2VfcmVnaXN0ZXJfZm9yX2RlY2wgKGxocynigJ0gdG8gZGVjaWRlIA0KPj4+ PiB3aGV0aGVyIHRvIHVzZSDigJxtZW1zZXTigJ0gb3IgdXNlIOKAnGFzc2lnbuKAnSB0byBleHBh bmQgdGhpcyBmdW5jdGlvbi4NCj4+Pj4gDQo+Pj4+IEhvd2V2ZXIsIHRoaXMgZXhwb3NlZCBhbiBi dWcgdGhhdCBpcyB2ZXJ5IGhhcmQgdG8gYmUgYWRkcmVzc2VkOg0KPj4+PiANCj4+Pj4gKioqKioq KkZvciB0aGUgdGVzdGluZyBjYXNlOiB0ZXN0IHN1aXRlL2djYy5kZy91bmluaXQtSS5jOg0KPj4+ PiANCj4+Pj4gLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4+Pj4gLyogeyBkZy1vcHRpb25zICIt TzIgLVd1bmluaXRpYWxpemVkIiB9ICovDQo+Pj4+IA0KPj4+PiBpbnQgc3lzX21zZ2N0bCAodm9p ZCkNCj4+Pj4gew0KPj4+PiBzdHJ1Y3QgeyBpbnQgbW9kZTsgfSBzZXRidWY7DQo+Pj4+IHJldHVy biBzZXRidWYubW9kZTsgIC8qIHsgZGctd2FybmluZyAiJ3NldGJ1ZlwubW9kZScgaXMgdXNlZCIg fSAqLw0KPj4+PiA9PQ0KPj4+PiANCj4+Pj4gKioqKioqdGhlIGFib3ZlIGF1dG8gdmFyIOKAnHNl dGJ1ZuKAnSBoYXMg4oCcc3RydWN04oCdIHR5cGUsIHdoaWNoIOKAnGNhbl9uYXRpdmVfaW50ZXJw cmV0X3R5cGVfcCh2YXJfdHlwZSnigJ0gaXMgZmFsc2UsIHRoZXJlZm9yZSwgDQo+Pj4+IEV4cGFu ZGluZyB0aGlzIC5ERUZFUlJFRF9JTklUIGNhbGwgd2VudCBkb3duIHRoZSDigJxtZW1zZXTigJ0g ZXhwYW5zaW9uIHJvdXRlLiANCj4+Pj4gDQo+Pj4+IEhvd2V2ZXIsIHRoaXMgc3RydWN0dXJlIHR5 cGUgY2FuIGJlIGZpdHRlZCBpbnRvIGEgcmVnaXN0ZXIsIHRoZXJlZm9yZSBjYW5ub3QgYmUgdGFr ZW4gYWRkcmVzcyBhbnltb3JlIGF0IHRoaXMgc3RhZ2UsIGV2ZW4gdGhvdWdoIEkgdHJpZWQ6DQo+ Pj4+IA0KPj4+PiAgICAgICAgVFJFRV9BRERSRVNTQUJMRSAobGhzKSA9IDE7DQo+Pj4+ICAgICAg ICB2YXJfYWRkciA9IGJ1aWxkX2ZvbGRfYWRkcl9leHByIChsaHMpOw0KPj4+PiANCj4+Pj4gVG8g Y3JlYXRlIGFuIGFkZHJlc3MgdmFyaWFibGUgZm9yIGl0LCB0aGUgZXhwYW5zaW9uIHN0aWxsIGZh aWxlZCBhdCBleHByLmM6IGxpbmUgODQxMjoNCj4+Pj4gZHVyaW5nIFJUTCBwYXNzOiBleHBhbmQN Cj4+Pj4gL2hvbWUvb3BjL1dvcmsvR0NDL2xhdGVzdC1nY2MvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcv YXV0by1pbml0LXVuaW5pdC1JLmM6NjoyNDogaW50ZXJuYWwgY29tcGlsZXIgZXJyb3I6IGluIGV4 cGFuZF9leHByX2FkZHJfZXhwcl8xLCBhdCBleHByLmM6ODQxMg0KPj4+PiAweGQwNDEwNCBleHBh bmRfZXhwcl9hZGRyX2V4cHJfMQ0KPj4+PiAJLi4vLi4vbGF0ZXN0LWdjYy9nY2MvZXhwci5jOjg0 MTINCj4+Pj4gMHhkMDRhOTUgZXhwYW5kX2V4cHJfYWRkcl9leHByDQo+Pj4+IAkuLi8uLi9sYXRl c3QtZ2NjL2djYy9leHByLmM6ODUyNQ0KPj4+PiAweGQxMzU5MiBleHBhbmRfZXhwcl9yZWFsXzEo dHJlZV9ub2RlKiwgcnR4X2RlZiosIG1hY2hpbmVfbW9kZSwgZXhwYW5kX21vZGlmaWVyLCBydHhf ZGVmKiosIGJvb2wpDQo+Pj4+IAkuLi8uLi9sYXRlc3QtZ2NjL2djYy9leHByLmM6MTE3NDENCj4+ Pj4gMHhkMDUxNDIgZXhwYW5kX2V4cHJfcmVhbCh0cmVlX25vZGUqLCBydHhfZGVmKiwgbWFjaGlu ZV9tb2RlLCBleHBhbmRfbW9kaWZpZXIsIHJ0eF9kZWYqKiwgYm9vbCkNCj4+Pj4gCS4uLy4uL2xh dGVzdC1nY2MvZ2NjL2V4cHIuYzo4NzEzDQo+Pj4+IDB4YWVkMWQzIGV4cGFuZF9leHByDQo+Pj4+ IAkuLi8uLi9sYXRlc3QtZ2NjL2djYy9leHByLmg6MzAxDQo+Pj4+IDB4YWYwZDg5IGdldF9tZW1v cnlfcnR4DQo+Pj4+IAkuLi8uLi9sYXRlc3QtZ2NjL2djYy9idWlsdGlucy5jOjEzNzANCj4+Pj4g MHhhZmI0ZmIgZXhwYW5kX2J1aWx0aW5fbWVtc2V0X2FyZ3MNCj4+Pj4gCS4uLy4uL2xhdGVzdC1n Y2MvZ2NjL2J1aWx0aW5zLmM6NDEwMg0KPj4+PiAweGFmYWNkZSBleHBhbmRfYnVpbHRpbl9tZW1z ZXQodHJlZV9ub2RlKiwgcnR4X2RlZiosIG1hY2hpbmVfbW9kZSkNCj4+Pj4gCS4uLy4uL2xhdGVz dC1nY2MvZ2NjL2J1aWx0aW5zLmM6Mzg4Ng0KPj4+PiAweGU5N2ZiMyBleHBhbmRfREVGRVJSRURf SU5JVA0KPj4+PiANCj4+Pj4gKioqKioqVGhhdOKAmXMgdGhlIG1ham9yIHJlYXNvbiB3aHkgSSBj aG9zZSDigJx1c2VfcmVnaXN0ZXJfZm9yX2RlY2wobGhzKeKAnSB0byBkZWNpZGUg4oCcbWVtc2V0 4oCdIGV4cGFuc2lvbiBvciDigJxhc3NpZ27igJ0gZXhwYW5zaW9uLCDigJxtZW1zZXTigJ0gZXhw YW5zaW9uDQo+Pj4+IG5lZWRzIHRvIHRha2UgYWRkcmVzcyBvZiB0aGUgdmFyaWFibGUsIGlmIHRo ZSB2YXJpYWJsZSBoYXMgYmVlbiBkZWNpZGVkIHRvIGZpdCBpbnRvIGEgcmVnaXN0ZXIsIHRoZW4g aXRzIGFkZHJlc3MgY2Fubm90IHRha2VuIGFueW1vcmUgYXQgdGhpcyBzdGFnZS4NCj4+Pj4gDQo+ Pj4+ICoqKioqKnVzaW5nIOKAnGNhbl9uYXRpdmVfaW50ZXJwcmV0X3R5cGVfcOKAnSBkaWQgbWFr ZSB0aGUg4oCccGF0dGVybuKAnSBnZW5lcmF0aW9uIHBhcnQgbXVjaCAgY2xlYW5lciBhbmQgc2lt cGxlciwgaG93ZXZlciwgbG9va3MgbGlrZSBpdCBkaWRu4oCZdCB3b3JrIGNvcnJlY3RseS4NCj4+ Pj4gDQo+Pj4+IEJhc2VkIG9uIHRoaXMsIEnigJlkIGxpa2UgdG8ga2VlcCBteSBwcmV2aW91cyBp bXBsZW1lbnRhdGlvbiBieSB1c2luZyDigJx1c2VfcmVnaXN0ZXJfZm9yX2RlY2zigJ0gdG8gZGVj aWRlIHdoZXRoZXIgdG8gdGFrZSDigJxtZW1zZXTigJ0gZXhwYW5zaW9uIG9yIOKAnGFzc2lnbuKA nSBleHBhbnNpb24uDQo+Pj4+IFRoZXJlZm9yZSwgSSBtaWdodCBzdGlsbCBuZWVkIHRvIGtlZXAg dGhlIOKAnFVHTFnigJ0gIGltcGxlbWVudGF0aW9uIG9mIGdlbmVyYXR0aW5nIOKAnHBhdHRlcm7i gJ0gY29uc3RhbnQgZm9yIGRpZmZlcmVudCB0eXBlcz8NCj4+Pj4gDQo+Pj4+IExldCBtZSBrbm93 IHlvdXIgb3BpbmlvbiBvbiB0aGlzLg0KPj4+IA0KPj4+IEhtbSwgSSB0aGluayB5b3UgY2FuIHVz ZSB1c2VfcmVnaXN0ZXJfZm9yX2RlY2wobGhzKSB0byBkZWNpZGUgdG8gdXNlIGFuDQo+Pj4gYWx0 ZXJuYXRlIHR5cGUgdG8gZ2VuZXJhdGUgdGhlIHBhdHRlcm4gKGFuZCBmZWVkIHRvIA0KPj4+IGNh bl9uYXRpdmVfaW50ZXJwcmV0X3R5cGVfcCkgYnkgdXNpbmcNCj4+PiBsYW5nX2hvb2tzLnR5cGVf Zm9yX21vZGUgKFRZUEVfTU9ERSAoVFJFRV9UWVBFIChsaHMpKSkuDQo+PiANCj4+IERvIHlvdSBt ZWFuIHRoYXQgdGhlIFRZUEUgcmV0dXJuZWQgYnkg4oCcbGFuZ19ob29rcy50eXBlX2Zvcl9tb2Rl KFRZUEVfTU9ERSAoVFJFRV9UWVBFIChsaHMpKeKAnSB3aWxsIGFsd2F5cyBzYXRpc2Z5IOKAnGNh bl9uYXRpdmVfaW50ZXJwcmV0X3R5cGVfcOKAnT8gDQo+PiBFdmVuIGZvciBiaWcgc3RydWN0dXJl IHR5cGVzPw0KPiANCj4gSSBtZWFudCB0aGF0IGZvciB1c2VfcmVnaXN0ZXJfZm9yX2RlY2wgKGxo cykgdGhlIHN0cnVjdHVyZXMgd2lsbCBiZQ0KPiBhbHdheXMgc21hbGwgYW5kIHRoZSBzdHJ1Y3R1 cmUgdHlwZSB3aWxsIGhhdmUgYSBtb2RlIHRoYXQgaXMgbm90IEJMS21vZGUNCj4gKGJ1dCBmb3Ig ZXhhbXBsZSBESW1vZGUgZm9yIHN0cnVjdCB7IGludCBpOyBpbnQgajsgfSkuDQoNCk9oLCBJIHNl ZS4NCg0KPiANCj4+IGkuZSwgDQo+PiANCj4+IHRyZWUgdmFyX3R5cGUgPSBUUkVFX1RZUEUobGhz KTsNCj4+IHRyZWUgcGF0dGVybiA9IE5VTExfVFJFRTsNCj4+IHVuc2lnbmVkIEhPU1RfV0lERV9J TlQgdG90YWxfYnl0ZXMNCj4+ICAgICAgICA9IHRyZWVfdG9fdWh3aSAoVFlQRV9TSVpFX1VOSVQg KHZhcl90eXBlKSk7DQo+PiANCj4+IElmICh1c2VfcmVnaXN0ZXJfZm9yX2RlY2wobGhzKT09ZmFs c2UpDQo+PiAgew0KPj4gICAgdHJlZSBhbHRfdHlwZSA9IGxhbmdfaG9va3MudHlwZV9mb3JfbW9k ZShUWVBFX01PREUodmFyX3R5cGUpLCBUWVBFX1VOU0lHTkVEKHZhcl90eXBlKTsNCj4+ICAgIElm IChjYW5fbmF0aXZlX2ludGVycHJldF90eXBlX3AgKGFsdF90eXBlKSkNCj4+ICAgICAgew0KPj4g CXVuc2lnbmVkIGNoYXIgKmJ1ZiA9ICh1bnNpZ25lZCBjaGFyICopIHhtYWxsb2MgKHRvdGFsX2J5 dGVzKTsgDQo+PiAJbWVtc2V0IChidWYsIElOSVRfUEFUVEVSTl9WQUxVRSwgdG90YWxfYnl0ZXMp OyANCj4+IAlwYXR0ZXJuID0gbmF0aXZlX2ludGVycHJldF9leHByIChhbHRfdHlwZSwgYnVmLCB0 b3RhbF9ieXRlcyk7IA0KPj4gCWdjY19hc3NlcnQgKHBhdHRlcm4pOyANCj4+ICAgICAgfQ0KPj4g ICAgZWxzZQ0KPj4gICAgICBnY2NfdW5yZWFjaGFibGUgKCk7DQo+PiAgfQ0KPj4gDQo+PiA/DQo+ PiBEb27igJl0IHF1aXRlIHVuZGVyc3RhbmQgaGVyZS4gUGxlYXNlIGNsYXJpZnkuDQo+IA0KPiBG b3IgIXVzZV9yZWdpc3Rlcl9mb3JfZGVjbCB5b3UgdXNlIG1lbXNldCBhbHJlYWR5LCBidXQgZm9y DQo+IHVzZV9yZWdpc3Rlcl9mb3JfZGVjbCBub3QgYWxsIHR5cGVzIHNhdGlzZnkgY2FuX25hdGl2 ZV9pbnRlcnByZXRfdHlwZV9wDQo+IChpbiBwYXJ0aWN1bGFyIGFsbCBzdHJ1Y3QgYW5kIHVuaW9u IHR5cGVzKS4gIEJ1dCB3aGVuIHdlIHVzZSBhDQo+IHJlZ2lzdGVyIGZvciB0aGUgZGVjbCB0aGVu IHdlIGNhbiBvZiBjb3Vyc2UgZGlyZWN0bHkgaW5pdGlhbGl6ZSB0aGUNCj4gcmVnaXN0ZXIuDQoN ClNvLCB5b3UgbWVhbiB0aGUgZm9sbG93aW5nOg0KDQpJZiAoaXNfdmxhIHx8ICghdXNlX3JlZ2lz dGVyX2Zvcl9kZWNsIChsaHMpKSkNCnsNCiAgLyogZXhwYW5kIGFzIG1lbXNldCB0aGF0IGlzIGRv bmUgY3VycmVudGx5LiAgKi8NCn0NCmVsc2UgDQogew0KICAgdHJlZSBhbHRfdHlwZSA9IGxhbmdf aG9va3MudHlwZV9mb3JfbW9kZShUWVBFX01PREUodmFyX3R5cGUpLCBUWVBFX1VOU0lHTkVEKHZh cl90eXBlKTsNCiAgIElmIChjYW5fbmF0aXZlX2ludGVycHJldF90eXBlX3AgKGFsdF90eXBlKSkN CiAgICAgew0KCXVuc2lnbmVkIGNoYXIgKmJ1ZiA9ICh1bnNpZ25lZCBjaGFyICopIHhtYWxsb2Mg KHRvdGFsX2J5dGVzKTsgDQoJbWVtc2V0IChidWYsIElOSVRfUEFUVEVSTl9WQUxVRSwgdG90YWxf Ynl0ZXMpOyANCglwYXR0ZXJuID0gbmF0aXZlX2ludGVycHJldF9leHByIChhbHRfdHlwZSwgYnVm LCB0b3RhbF9ieXRlcyk7IA0KCWdjY19hc3NlcnQgKHBhdHRlcm4pOyANCiAgICAgfQ0KICAgZWxz ZQ0KICAgICBnY2NfdW5yZWFjaGFibGUgKCk7DQoNCiAgICAgdHJlZSBpbml0ID0gKGluaXRfdHlw ZSA9PSBBVVRPX0lOSVRfUEFUVEVSTikgPw0KICAgICAgICAgICAgICAgICAgIHBhdHRlcm4gOg0K ICAgICAgICAgICAgICAgICAgIGJ1aWxkX3plcm9fY3N0IChhbHRfdHlwZSk7DQoNCiAgICAvKiBo ZXJlIGJ1aWxkIFZJRVdfQ09OVkVSVCA8YWx0X3R5cGU+IChsaHMpID0gaW5pdDsNCiAgICAgICBB bmQgdGhlbiBleHBhbmQgaXQuICAqLw0KIH0NCg0KPw0KDQo+ICBBcyBzYWlkLCBpdCB3b3VsZCBi ZSBtdWNoIGNsZWFuZXIgKGFuZCBtYXliZSBhbHNvIGVhc2llcikNCj4gdG8gdGhlbiBzaW1wbHkg ZXhwYW5kIHRoZSBSVEwgZGlyZWN0bHkgcmF0aGVyIHRoYW4gZ29pbmcgdGhyb3VnaA0KPiBleHBh bmRfYXNzaWdubWVudC4NCg0KRHVtcCBxdWVzdGlvbnMgaGVyZTogIA0KDQoxLiBXaGVuIGJ1aWxk aW5nIFZJRVdfQ09OVkVSVCAgPGFsdF90eXBlPiAobGhzKSA9IGluaXQgYW5kIGV4cGFuZCBpdDoN Cg0KSXMgdGhlIGZvbGxvd2luZyBjb3JyZWN0Og0KDQogbGhzID0gYnVpbGQxIChWSUVXX0NPTlZF UlRfRVhQUiwgYWx0X3R5cGUsIGxocyk7DQpleHBhbmRfYXNzaWdubWVudCAobGhzLCBpbml0KTsN Cg0KDQp3aGljaCB1dGlsaXR5IHJvdXRpbmVzIHNob3VsZCBiZSB1c2VkIHRvIGJ1aWxkaW5nIHRo ZSBhc3NpZ25tZW50IGFuZCB0aGVuIGV4cGFuZCBpdD8NCg0KQXJlIHRoZSBhYm92ZSB1dGlsaXR5 IHJvdXRpbmVzIGNvcnJlY3Q/DQoNCg0KPiAgSXQncyBhbHNvIGVhc2llciB0byBkaXJlY3RseSBz ZWUgd2hldGhlciB0aGUNCj4gTEhTIGlzIGEgTUVNX1Agb3IgYSBSRUdfUCBidXQgdGhlbiBmb3Ig dGhlIE1FTV9QIGNhc2UgaXQncyBhIGJpdA0KPiBtb3JlICJhd2t3YXJkIiB0byB1c2UgdGhlIGVh c3kgd2F5IG9mIHRoZSBnZW5lcmljIGV4cGFuZCBjb2RlDQo+IChlc3AuIGlmIHdlIGV2ZW50dWFs bHkgd2FudCB0byBlbWl0IGFjdHVhbCBjYWxscyB0byBtZW1zZXQgLSBkbyB3ZT8pDQoNCklmIGFs bCB0aGVzZSBhcmUgZ3VhcmRlZCBieSDigJx1c2VfcmVnaXN0ZXJfZm9yX2RlY2zigJ0gYWxyZWFk eSwgdGhlIGxocyBzaG91bGQgYmUgZml0IGludG8gcmVnaXN0ZXJzLCANClVuZGVyIHN1Y2ggc2l0 dWF0aW9uLCBJIGRvbuKAmXQgdGhpbmsgdGhhdCB3ZSB3YW50IHRvIGVtaXQgYWN0dWFsIGNhbGxz IHRvIG1lbXNldC4gVGhhdOKAmXMgdG9vIGV4cGVuc2l2ZS4NCg0KPiANCj4+PiBZb3UgY2FuIHRo ZW4NCj4+PiBidWlsZCB0aGUgYXNzaWdubWVudCBmcm9tIHRoZSBwYXR0ZXJuIGFzDQo+Pj4gDQo+ Pj4gVklFV19DT05WRVJUIDxyZWctdHlwZT4gKGxocykgPSBwYXR0ZXJuX2NzdDsNCj4+IA0KPj4g V2hhdOKAmXMgdGhlIDxyZWdfdHlwZT4gaW4gdGhlIGFib3ZlPyBUaGUgdHlwZSDigJxhbHRfdHlw ZeKAnSByZXR1cm5lZCBieSDigJxsYW5nX2hvb2tzLnR5cGVfZm9yX21vZGUoVFJFRV9UWVBFKGxo cykpPw0KPj4gRG8gSSBuZWVkIHRvIGJ1aWxkIOKAnE1PRElGWV9FWFBS4oCdIGZvciB0aGUgYWJv dmU/IA0KPiANCj4gWWVzLCB0aGUgbGFuZ19ob29rLnR5cGVfZm9yX21vZGUgcmVzdWx0IGFuZCBu bywgeW91IGNvdWxkIGdvIHRocm91Z2gNCj4gZXhwYW5kX2Fzc2lnbm1lbnQuDQoNCk9rYXkuIFNv LCBzdGlsbCB1c2Ug4oCcZXhwYW5kX2Fzc2lnbWVudOKAnSB0byBleHBhbmQgaXQ/DQo+IA0KPj4g bGhzID0gIGJ1aWxkMSAoVklFV19DT05WRVJUX0VYUFIsIGFsdF90eXBlLCBsaHMpOw0KPj4gdHJl ZSAgZmluYWwgPSBidWlsZDIgKE1PRElGWV9FWFBSLCBUUkVFX1RZUEUgKGFsdF90eXBlKSwgbGhz LCBwYXR0ZXJuKTsNCj4+IA0KPj4gVGhlbiBob3cgdG8gZXhwYW5kIHRoaXPigJ1maW5hbCI/IA0K Pj4+IA0KPj4+IG5vdGUgdGhhdCBtb3JlIFJUTC1leHBhbmQtaXNoIHdvdWxkIGJlIHRvIHNpbXBs eSBleHBhbmQgJ2xocycgYW5kDQo+Pj4gc2VlIHdoZXRoZXIgaXQncyBhIFJFR19QIG9yIGEgTUVN X1AgYW5kIGRlY2lkZSBiYXNlZCBvbiB0aGF0Lg0KPj4gDQo+PiBZb3UgbWVhbiB0aGF0IHRoZSBj dXJyZW50IFJUTCBleHBhbnNpb24gd2lsbCBhdXRvbWF0aWNhbGx5IGV4cGFuZCBMSFMgdG8gbWVt c2V0IHJvdXRlIG9yIGFzc2lnbm1lbnQgcm91dGUgYmFzZWQgb24gd2hldGhlcg0KPj4gTEhTIGlz IGEgUkVHX1Agb3IgTUVNX1A/IEkgZG9u4oCZdCBuZWVkIHRvIGV4cGxpY2l0bHkgY29kZSBmb3Ig 4oCcZXhwYW5kX2J1aWx0aW5fbWVtc2V04oCdIG9yIOKAnGV4cGFuZF9hc3NpZ27igJ0/DQo+IA0K PiBOby4gIEJ1dCB5b3UgYXJlIGluc2lkZSB0aGUgZXhwYW5kZXIgZm9yIHRoZSBpbnRlcm5hbCBm dW5jdGlvbiBjYWxsDQo+IGFuZCB0aGlzIGlzIGV4cGVjdGVkIHRvIGdlbmVyYXRlIFJUTC4gIFlv dSBjYW4gc2ltcGx5IGdlbmVyYXRlDQo+IFJUTCBkaXJlY3RseSB3aXRob3V0ICJmYWtpbmciIG5l dyBHRU5FUklDIGNhbGxzIG9yIGFzc2lnbm1lbnRzIGFuZA0KPiBleHBhbmRpbmcgdGhvc2UuDQo+ IA0KPiBCdXQgbGV0cyBub3QgZ28gdGhlcmUgZm9yIG5vdy4NCg0KT2theS4gSSBzZWUgbm93Lg0K DQpRaW5nDQo+IA0KPiBSaWNoYXJkLg0KDQo=