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 90503385841C for ; Wed, 11 Aug 2021 16:23:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 90503385841C Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 17BGHV0X021218; Wed, 11 Aug 2021 16:23:15 GMT Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3acb7a138f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 11 Aug 2021 16:23:14 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 17BGMHYp136632; Wed, 11 Aug 2021 16:23:13 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2045.outbound.protection.outlook.com [104.47.56.45]) by userp3020.oracle.com with ESMTP id 3aa3xvdegp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 11 Aug 2021 16:23:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jy7XLhA7lm/7yAGHbVucIa69ePvcLD4w22AL9vbAxhHIPxM7z9Kg6KNCzVpTRl8pGdYmblCJiKOjjZ0IoYew95QIG8oZM3YLtXEc/vv58dgeoV8WfnO0tW5nuYpFSVElOfYvzLnNzujAxTdLcJ6OnQgm40AsWK0nZ9M8Ci90YHyQ5W9aeNIYJp9Bghhayrs+AZaZE/IJ0IILQJMobCpUTaA76nDFcyhvH2M3uoVVzOQ6YXN/sojn2A0FB2WryIa2CJk9EiCsXngdYjPrfpWeDRJsYUeoxs/+Ix4IhgA8JJpz+Y3IfpRXq4k8pNJZ+A7xvkIFdLEsrS610sLtXV/ffw== 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=ULj9uz1GPLk9VS15vBhouRoBy9zfk9gJqqkvOBaYUCo=; b=iVyRF1dCffJqIsoozWwRTNfyoeV2Hdk40WH0oSpPO0CKocdXFjOpd76+gPGeyUhpOUZQUm1N9CjpFLCSMZ2r1eCmTa2slIuG2zuwVtgzdQliwmR+NlN2IbnhY7+Rhj4tdKDLbcY1tpUlFUAV8GwuadwBQIuMTj1oHk1K6S+kDiyiZMRVS0q+X0PTnb9WZhK+qqXcFeqlfF82cb8hnfLLHepgpGHY63MECKs9TpgHQdtGO5oDhy8GHQjSB2R17e+zMUcvEg7XRsfhbMibWGlWTWzhWqHsl4xMDK6xyj6Mq5eTjAyIlo2J7iRyYXuS9Tvr56z/93kBxexskXiIg0v/7Q== 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 CH0PR10MB5116.namprd10.prod.outlook.com (2603:10b6:610:d9::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4394.19; Wed, 11 Aug 2021 16:22:00 +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.014; Wed, 11 Aug 2021 16:22:00 +0000 From: Qing Zhao To: Richard Biener CC: Richard Sandiford , Jakub Jelinek , Nick Alcock via Gcc-patches , Kees Cook 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: AQHXgpcfj6SO0Rka1UmU0GU91mFncqtrSzIAgAApjACAAPr8gIAAZYMAgAAKVgCAAAy9gIAABZoAgABR/YCAACR6AIAAkCQAgABtVACAAAEPAIAABLkAgAABQACAABmfAIAABkYAgAAIEIA= Date: Wed, 11 Aug 2021 16:22:00 +0000 Message-ID: References: <52E29277-1403-4755-901A-528116C43FB8@oracle.com> <58ADBC0C-9D44-485B-BB5A-B072664B9C4F@oracle.com> <6FD42B95-F73D-4B75-B83A-BAC4925B1714@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: 61eecdc3-b8c8-4ac7-3f69-08d95ce4259c x-ms-traffictypediagnostic: CH0PR10MB5116: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0mIURHqk9GkCY9oWMOWZmW+q+myOC/7Uiy47J5AVIXyPZl3SyKsRpgbCxIC3LuFgdhvDm4QC+j0ukresC4yEoTUg6CnQlXOKimCEp3tDL+CVfDr2zF92W5P/bX5sLcvzs6a133wsWcwQLJ3PMLNeod+91YWF0Os+25178eZGQ33oAFnZDP7Hz8hOTFldr0ksni1G9MybpxbVf8haMLY4F8GwwmqRzEBJArDuibOkLGWR2yKibsYP4t6XRC21BdN+OmOO+RXQ12ibInApGDYTFyLxaocC+9vDSVaHrepm3cX93K/YlysdiD4sMpiw1FSjvUGqIa+mD01dRbCbkQaGfwsDkAj2yUMwEUQ1J9gX6/fwnG/kc1UdxQFMVyuGp0rtQzMB72AWia+4SEXU6QOb1ss7TMc2M67D2gorqcpYvTjItGOHjUmdeE8iOdiN15jKLlJHa+RAbW+7Xo0IrM8r50WVCb3LA53IXl5lWmGArdDbvqYjO+6jy3PnFufGuhiQpHn15j0Sn226lVryCWQo45XxiaR7JmhTFyelLt/9IY6T7RkuoaFbfJs7n6UB36d6eBOsVvumvl5Roh4ckEh7j/ubi7hicc81rSngBiPDD5yc4tGqbwx8AMnFEc2lCmEsKWKMJtNAYxSd48DXJc+oy7yAtNdHAL+PZytXTBoA7rIkbTn4f5Oqo7V626L2izMkR7ubq0MqW2AN9Y3itAo46TrsEMrLEKKRmPxc49RMyAzqoTRO8SYO0K6qU3e01Upgt3fo4LQfGBGwyn57oGNWzQ== 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:(366004)(396003)(39860400002)(136003)(376002)(346002)(8676002)(83380400001)(38070700005)(26005)(66574015)(64756008)(53546011)(66476007)(38100700002)(6486002)(54906003)(36756003)(6506007)(122000001)(66556008)(316002)(6916009)(4326008)(91956017)(76116006)(30864003)(6512007)(66946007)(5660300002)(66446008)(478600001)(44832011)(2616005)(8936002)(71200400001)(86362001)(2906002)(33656002)(186003)(45980500001)(266184004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SXdITzFYaVUwdEQ4cmZtc0V3MlJCOVh3K2MyM0I1TGs1SFVMVGcrT1V5cVVm?= =?utf-8?B?dkFsN3JGRUJxSjM0U1l4V2xJOGRZVE1Ja3hRWlVYNU54UWEzMFhSamplZ0wr?= =?utf-8?B?WTIrU3lxREZJaDFFVnJITVlvTHBXYjVMK00wTFFNSEMxVng5NDNLRWprNEp2?= =?utf-8?B?NGx6Y2VaaTNvUlBwa1J6b3pJaUp2QnZ5K29NT1VwNndtd1dmajE0cndQNXNC?= =?utf-8?B?TkVZTGdqK3hONlQ3akZnY3NjWnlMM3ozNWJ6VHN5WFlYbnpDaHFOVlhjOTVS?= =?utf-8?B?VEJ6S2xhcDg3UkVaSDFadXlKZW9JVnpKL3RXV2lXKzNkVmMwLzVPZ0JpN3h5?= =?utf-8?B?aWZjb0d0bnkrVFlTT3VZV1B5VWJXQ1lRYmU5SmlGZWkrWWpJR20vTFo3dTRr?= =?utf-8?B?a3ZWeklqbzEyeit2NkJyU3cxaE1oWlFxZ0p3dExzVVRCY0ZIQ1oyM3k1ZzdP?= =?utf-8?B?ZFhFN3lza1dXSnpsSndYeFdxVG1UVUNMQ1NmWXdrcVEwaUQ0cVFHYXkrdTd2?= =?utf-8?B?K0dGQ1VoaDhMenpScUlkOWhIYXVYN3lSOUl0MEdXazBCcUNrYnNuVmZKemJH?= =?utf-8?B?WlQ0UDNIMkRXeSs3ZG5weFkwUVY0WGRuZ0hJcDc3ZWd6RnhhZjZoNEtkUXB1?= =?utf-8?B?MllDZy9tWHlIeTVqd2xtcDNoQncrWTExTHROMmZoZ1BSOExGVFZFTmNidmVn?= =?utf-8?B?Q1ZwcDRVL295T2dpa1lnWGtYSDZsQ2VDaGNSQWtSODk5NnUzT2Nxd0FlR2xP?= =?utf-8?B?aVA5MzBaVTRZQ2g5M1RleC85V3J5S3kxYnIzcUdiRWtGM25GR2xuUlMwWTZZ?= =?utf-8?B?L1k1cW9vS0dQNEh2bDBaS3A2dUp3WDlrY1VrTGlOQkJtcHNkVlo3dlRWS1FY?= =?utf-8?B?c0VING1KYmIvQnZWNTFzMTNEbnhkRWNoQ3RZV0FuREhCVlg2NFV2MThLSnpu?= =?utf-8?B?QUordU4zK1FoaHBwSElEZEs3b3JaaUdod01MZFNwRVNGdU9VM29hK3hZdERZ?= =?utf-8?B?Skt6b1FjQmp5MXpLU2o0S3Qvcy9aZENUUzhEeTNoYWQ1SHdTQ0h1RDk1REpm?= =?utf-8?B?ZTBuK3VyZ21YeU91SldzNmhQSnFQZHFxUnlEb3J6QkxDUWFkSzZ3eVBsa0JV?= =?utf-8?B?VjVjOERzS0JHOUtQTFhyWHl2UHZ0MmhES2Z1REcxd0dmeFYxMGZ3dFZhQ3Ar?= =?utf-8?B?L3lKVlRFZmEzZ3JtOEQydVI3bit3REIwcTFrcEx1ZVk2TlpzWitRbVVmbTVH?= =?utf-8?B?RjRsT2kvRGRaenU2dkxLZUprOVRVejFmQVNiWXZIejZJbWlUYklYMVMySGt3?= =?utf-8?B?UVZsQjF3dk5GamNQL05VaUF0ZDlNSTlQZ0drZ1BLaWlaTUFlVHRmcGVOeVB2?= =?utf-8?B?MVJpM3dpR1V3Z2pPTjdQUS8vcUVFc0NYSGFVbWRGRWs3ZjJjN3pWSEFDZ0gz?= =?utf-8?B?R05sRVV5NGpVUnZrcStha3BGWW5wY21vRG9hWFhkcGlsK1pPR3NLNlhhN2VB?= =?utf-8?B?T0hqY3ZZRGlzYW5WWG9DUDlkY3hoMFl3L1l0djUwOUtMeGxuenBNQjVpSkFq?= =?utf-8?B?MXpWR0U0MGpFWEt3OU4rb1BzR1lwZHhLMXk2S0RzZy81WlJPZUFZTGRMQ2h4?= =?utf-8?B?dkJiRmc2YjBSRGNTdkxaMDd0aEJ2VkJVVzN1eXVPSGo5ZFBRNnhUU2xDYkdT?= =?utf-8?B?aENtOUFIOENvTCtCREFaeDlZQVBCTGpJUnBMc0VmcWpzODdIYzZ0VCsydjFM?= =?utf-8?Q?G9Ro3MGk29hdLroENHAChzQZ0+/FWkk+b5C9EjR?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <6A8D65911AB16F4F9658CBC830350014@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: 61eecdc3-b8c8-4ac7-3f69-08d95ce4259c X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Aug 2021 16:22:00.1547 (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: RI2bT2wFGW2RJc9p7vgrzcim9OwtJN59kj0V9ly/J2lg7wqFqnR3M7GphO6W93++/8JtBezn21O9OA7PI0ZYqw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5116 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10073 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 mlxscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2108110110 X-Proofpoint-GUID: DeNlEXZlfZcN5wBnLwc1K5pp_tt89lA9 X-Proofpoint-ORIG-GUID: DeNlEXZlfZcN5wBnLwc1K5pp_tt89lA9 X-Spam-Status: No, score=-10.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, 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: Wed, 11 Aug 2021 16:23:30 -0000 DQoNCj4gT24gQXVnIDExLCAyMDIxLCBhdCAxMDo1MyBBTSwgUmljaGFyZCBCaWVuZXIgPHJndWVu dGhlckBzdXNlLmRlPiB3cm90ZToNCj4gDQo+IE9uIEF1Z3VzdCAxMSwgMjAyMSA1OjMwOjQwIFBN IEdNVCswMjowMCwgUWluZyBaaGFvIDxxaW5nLnpoYW9Ab3JhY2xlLmNvbT4gd3JvdGU6DQo+PiBJ IG1vZGlmaWVkIHRoZSByb3V0aW5lIOKAnGdpbXBsZV9hZGRfaW5pdF9mb3JfYXV0b192YXLigJ0g YXMgdGhlIGZvbGxvd2luZzoNCj4+ID09PT0NCj4+IC8qIEdlbmVyYXRlIGluaXRpYWxpemF0aW9u IHRvIGF1dG9tYXRpYyB2YXJpYWJsZSBERUNMIGJhc2VkIG9uIElOSVRfVFlQRS4NCj4+ICBCdWls ZCBhIGNhbGwgdG8gaW50ZXJuYWwgY29uc3QgZnVuY3Rpb24gREVGRVJSRURfSU5JVDoNCj4+ICAx c3QgYXJndW1lbnQ6IFNJWkUgb2YgdGhlIERFQ0w7DQo+PiAgMm5kIGFyZ3VtZW50OiBJTklUX1RZ UEU7DQo+PiAgM3JkIGFyZ3VtZW50OiBJU19WTEEsIDAgTk8sIDEgWUVTOw0KPj4gDQo+PiAgYXMg REVGRVJSRURfSU5JVCAoU0laRSBvZiB0aGUgREVDTCwgSU5JVF9UWVBFLCBJU19WTEEpLiAgKi8N Cj4+IHN0YXRpYyB2b2lkDQo+PiBnaW1wbGVfYWRkX2luaXRfZm9yX2F1dG9fdmFyICh0cmVlIGRl Y2wsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBhdXRvX2luaXRfdHlwZSBp bml0X3R5cGUsDQo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc192bGEsDQo+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ltcGxlX3NlcSAqc2VxX3ApDQo+PiB7DQo+ PiBnY2NfYXNzZXJ0IChWQVJfUCAoZGVjbCkgJiYgIURFQ0xfRVhURVJOQUwgKGRlY2wpICYmICFU UkVFX1NUQVRJQyAoZGVjbCkpOw0KPj4gZ2NjX2Fzc2VydCAoaW5pdF90eXBlID4gQVVUT19JTklU X1VOSU5JVElBTElaRUQpOw0KPj4gdHJlZSBkZWNsX3NpemUgPSBUWVBFX1NJWkVfVU5JVCAoVFJF RV9UWVBFIChkZWNsKSk7DQo+PiANCj4+IHRyZWUgaW5pdF90eXBlX25vZGUNCj4+ICAgPSBidWls ZF9pbnRfY3N0IChpbnRlZ2VyX3R5cGVfbm9kZSwgKGludCkgaW5pdF90eXBlKTsNCj4+IHRyZWUg aXNfdmxhX25vZGUNCj4+ICAgPSBidWlsZF9pbnRfY3N0IChpbnRlZ2VyX3R5cGVfbm9kZSwgKGlu dCkgaXNfdmxhKTsNCj4+IA0KPj4gdHJlZSBjYWxsID0gYnVpbGRfY2FsbF9leHByX2ludGVybmFs X2xvYyAoVU5LTk9XTl9MT0NBVElPTiwgSUZOX0RFRkVSUkVEX0lOSVQsDQo+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUUkVFX1RZUEUgKGRlY2wpLCAzLA0KPj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjbF9zaXplLCBpbml0 X3R5cGVfbm9kZSwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlzX3ZsYV9ub2RlKTsNCj4+IA0KPj4gLyogSWYgdGhpcyBERUNMIGlzIGEgVkxBLCBhIHRlbXBv cmFyeSBhZGRyZXNzIHZhcmlhYmxlIGZvciBpdCBoYXMgYmVlbg0KPj4gICAgY3JlYXRlZCwgdGhl IHJlcGxhY2VtZW50IGZvciBERUNMIGlzIHJlY29yZGVkIGluIERFQ0xfVkFMVUVfRVhQUiAoZGVj bCksDQo+PiAgICB3ZSBzaG91bGQgdXNlIGl0IGFzIHRoZSBMSFMgb2YgdGhlIGNhbGwuICAqLw0K Pj4gDQo+PiB0cmVlIGxoc19jYWxsDQo+PiAgID0gaXNfdmxhID8gREVDTF9WQUxVRV9FWFBSIChk ZWNsKSA6IGRlY2w7DQo+PiBnaW1wbGlmeV9hc3NpZ24gKGxoc19jYWxsLCBjYWxsLCBzZXFfcCk7 DQo+PiB9DQo+PiANCj4+IFdpdGggdGhpcyBjaGFuZ2UsIHRoZSBjdXJyZW50IGlzc3VlIGlzIHJl c29sdmVkLCB0aGUgZ2ltcGxlIGR1bXAgbm93IGlzOg0KPj4gDQo+PiAoKmFyci4xKSA9IC5ERUZF UlJFRF9JTklUIChELjE5NTIsIDIsIDEpOw0KPj4gDQo+PiBIb3dldmVyLCB0aGVyZSBpcyBhbm90 aGVyIG5ldyBpc3N1ZToNCj4+IA0KPj4gRm9yIHRoZSBmb2xsb3dpbmcgdGVzdGluZyBjYXNlOg0K Pj4gDQo+PiA9PT09PT0NCj4+IFtvcGNAcWluemhhby1vbDh1My14ODYgZ2NjXSQgY2F0IHQuYw0K Pj4gaW50IGJhcjsNCj4+IA0KPj4gZXh0ZXJuIHZvaWQgZGVjb2RlX3JlbG9jKGludCAqKTsNCj4+ IA0KPj4gdm9pZCB0ZXN0ZnVuYygpDQo+PiB7DQo+PiBpbnQgYWx0X3JlbG9jOw0KPj4gDQo+PiBk ZWNvZGVfcmVsb2MoJmFsdF9yZWxvYyk7DQo+PiANCj4+IGlmIChhbHRfcmVsb2MpIC8qIHsgZGct d2FybmluZyAibWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCIgfSAqLw0KPj4gICBiYXIgPSA0Mjsg DQo+PiB9DQo+PiA9PT09PQ0KPj4gDQo+PiBJbiB0aGUgYWJvdmUsIHRoZSBhdXRvIHZhciDigJxh bHRfcmVsb2PigJ0gaXMgYWRkcmVzcyB0YWtlbiwgdGhlbiB0aGUgZ2ltcGxlIGR1bXAgZm9yIGl0 IHdoZW4gY29tcGlsZWQgd2l0aCAtZnRyaXZpYWwtYXV0by12YXItaW5pdD16ZXJvIGlzOg0KPj4g DQo+PiB2b2lkIHRlc3RmdW5jICgpDQo+PiB7DQo+PiBpbnQgYWx0X3JlbG9jOw0KPj4gDQo+PiB0 cnkNCj4+ICAgew0KPj4gICAgIF8xID0gLkRFRkVSUkVEX0lOSVQgKDQsIDIsIDApOw0KPj4gICAg IGFsdF9yZWxvYyA9IF8xOw0KPj4gICAgIGRlY29kZV9yZWxvYyAoJmFsdF9yZWxvYyk7DQo+PiAg ICAgYWx0X3JlbG9jLjBfMiA9IGFsdF9yZWxvYzsNCj4+ICAgICBpZiAoYWx0X3JlbG9jLjBfMiAh PSAwKSBnb3RvIDxELjE5NDk+OyBlbHNlIGdvdG8gPEQuMTk1MD47DQo+PiAgICAgPEQuMTk0OT46 DQo+PiAgICAgYmFyID0gNDI7DQo+PiAgICAgPEQuMTk1MD46DQo+PiAgIH0NCj4+IGZpbmFsbHkN Cj4+ICAgew0KPj4gICAgIGFsdF9yZWxvYyA9IHtDTE9CQkVSfTsNCj4+ICAgfQ0KPj4gfQ0KPj4g DQo+PiBJLmUsIGluc3RlYWQgb2YgdGhlIGV4cGVjdGVkIElSOg0KPj4gDQo+PiBhbHRfcmVsb2Mg PSAuREVGRVJSRURfSU5JVCAoNCwgMiwgMCk7DQo+PiANCj4+IFdlIGdvdCB0aGUgZm9sbG93aW5n Og0KPj4gDQo+PiBfMSA9IC5ERUZFUlJFRF9JTklUICg0LCAyLCAwKTsNCj4+ICAgICBhbHRfcmVs b2MgPSBfMTsNCj4+IA0KPj4gSSBndWVzcyB0aGUgdGVtcCDigJxfMeKAnSBpcyBjcmVhdGVkIGJl Y2F1c2Ug4oCcYWx0X3JlbG9j4oCdIGlzIGFkZHJlc3MgdGFrZW4uIA0KPiANCj4gWWVzIGFuZCBu by4gVGhlIHJlYXNvbiBpcyB0aGF0IGFsdF9yZWxvYyBpcyBtZW1vcnkgKGJlY2F1c2UgaXQgaXMg YWRkcmVzcyB0YWtlbikgYW5kIHRoYXQgR0lNUExFIHNheXMgdGhhdCByZWdpc3RlciB0eXBlZCBz dG9yZXMgbmVlZCB0byB1c2UgYSBpc19naW1wbGVfdmFsIFJIUyB3aGljaCB0aGUgY2FsbCBpcyBu b3QuDQoNCk9rYXkuDQo+IA0KPj4gTXkgcXVlc3Rpb25zOg0KPj4gDQo+PiBTaGFsbCB3ZSBhY2Nl cHQgc3VjaCBJUiBmb3IgLkRFRkVSUkVEX0lOSVQgcHVycG9zZSB3aGVuIHRoZSBhdXRvIHZhciBp cyBhZGRyZXNzIHRha2VuPyANCj4gDQo+IEkgdGhpbmsgc28uIE5vdGUgaXQgZG9lc24ndCBuZWNl c3NhcmlseSBuZWVkIGFkZHJlc3MgdGFraW5nIGJ1dCBhbnkgb3RoZXIgcmVhc29uIHRoYXQgcHJl dmVudHMgU1NBIHJld3JpdGluZyB0aGUgdmFyaWFibGUgc3VmZmljZXMuIA0KDQpZb3UgbWVhbiwg aW4gYWRkaXRpb24gdG8g4oCcYWRkcmVzcyB0YWtlbuKAnSwgdGhlcmUgYXJlIG90aGVyIHNpdHVh dGlvbnMgdGhhdCB3aWxsIGludHJvZHVjZSBzdWNoIElSOg0KDQp0ZW1wID0gLkRFRkVSUkVEX0lO SVQoKTsNCmF1dG9fdmFyID0gdGVtcDsNCg0KU28sIHN1Y2ggSVIgaXMgdW5hdm9pZGFibGUgYW5k IHdlIGhhdmUgdG8gaGFuZGxlIGl0Pw0KDQpJZiB3ZSBoYXZlIHRvIGhhbmRsZSBpdCwgIHdoYXTi gJkgdGhlIGJlc3Qgd2F5IHRvIGRvIGl0Pw0KDQpUaGUgc29sdXRpb24gaW4gbXkgbWluZCBpczoN CjEuIER1cmluZyB1bmluaXRpYWxpemVkIGFuYWx5c2lzIHBoYXNlLCBmb2xsb3dpbmcgdGhlIGRh dGEgZmxvdyB0byBjb25uZWN0IC5ERUZFUlJFRF9JTklUIHRvIOKAnGF1dG9fdmFy4oCdLCBhbmQg dGhlbiBkZWNpZGUgdGhhdCDigJxhdXRvX3ZhcuKAnSBpcyB1bmluaXRpYWxpemVkLg0KDQoyLiBE dXJpbmcgUlRMIGV4cGFuc2lvbiwgZm9sbG93aW5nIHRoZSBkYXRhIGZsb3cgdG8gY29ubmVjdCAu REVGRVJSRURfSU5JVCB0byDigJxhdXRvX3ZhcuKAnSwgYW5kIHRoZW4gZGVsZXRlIOKAnHRlbXDi gJ0sIGFuZCB0aGVuIGV4cGFuZCAuREVGRVJSRURfSU5JVCB0byBhdXRvX3Zhci4NCg0KTGV0IG1l IGtub3cgeW91ciBjb21tZW50cyBhbmQgc3VnZ2VzdGlvbnMgb24gdGhpcy4NCg0KDQo+IA0KPiBU aGUgb25seSBvdGhlciBvcHRpb24gaXMgdG8gZm9yY2UuIERFRkVSRURfSU5JVCBtYWtpbmcgdGhl IExIUyBhZGRyZXNzIHRha2VuIHdoaWNoIEkgdGhpbmsgY291bGQgYmUgYWNoaWV2ZWQgYnkgcGFz c2luZyBpdCB0aGUgYWRkcmVzcyBhcyBhcmd1bWVudCBpbnN0ZWFkIG9mIGhhdmluZyBhIExIUy4g QnV0IGxldCdzIG5vdCBnbyBkb3duIHRoaXMgcm91dGUgLSBpdCB3aWxsIGhhdmUgcXVpdGUgYmFk IGJlaGF2aW9yIG9uIGFsaWFzIGFuYWx5c2lzIGFuZCBvcHRpbWl6YXRpb24uIA0KDQpPa2F5Lg0K DQpRaW5nDQo+IA0KPj4gSWYgc28sIOKAnHVuaW5pdGlhbGl6ZWQgYW5hbHlzaXPigJ0gcGhhc2Ug bmVlZCB0byBiZSBmdXJ0aGVyIGFkanVzdGVkIHRvIHNwZWNpYWxseSBoYW5kbGUgc3VjaCBJUi4g DQo+PiANCj4+IElmIG5vdCwgd2hhdCBzaG91bGQgd2UgZG8gd2hlbiB0aGUgYXV0byB2YXIgaXMg YWRkcmVzcyB0YWtlbj8NCj4+IA0KPj4gVGhhbmtzIGEgbG90Lg0KPj4gDQo+PiBRaW5nDQo+PiAN Cj4+IA0KPj4+IE9uIEF1ZyAxMSwgMjAyMSwgYXQgODo1OCBBTSwgUmljaGFyZCBCaWVuZXIgPHJn dWVudGhlckBzdXNlLmRlPiB3cm90ZToNCj4+PiANCj4+PiBPbiBXZWQsIDExIEF1ZyAyMDIxLCBR aW5nIFpoYW8gd3JvdGU6DQo+Pj4gDQo+Pj4+IA0KPj4+PiANCj4+Pj4+IE9uIEF1ZyAxMSwgMjAy MSwgYXQgODozNyBBTSwgUmljaGFyZCBCaWVuZXIgPHJndWVudGhlckBzdXNlLmRlPiB3cm90ZToN Cj4+Pj4+IA0KPj4+Pj4gT24gV2VkLCAxMSBBdWcgMjAyMSwgUWluZyBaaGFvIHdyb3RlOg0KPj4+ Pj4gDQo+Pj4+Pj4gDQo+Pj4+Pj4gDQo+Pj4+Pj4+IE9uIEF1ZyAxMSwgMjAyMSwgYXQgMjowMiBB TSwgUmljaGFyZCBCaWVuZXIgPHJndWVudGhlckBzdXNlLmRlPiB3cm90ZToNCj4+Pj4+Pj4gDQo+ Pj4+Pj4+IE9uIFR1ZSwgMTAgQXVnIDIwMjEsIFFpbmcgWmhhbyB3cm90ZToNCj4+Pj4+Pj4gDQo+ Pj4+Pj4+PiANCj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+IE9uIEF1ZyAxMCwgMjAyMSwgYXQgMzoxNiBQ TSwgUWluZyBaaGFvIHZpYSBHY2MtcGF0Y2hlcyA8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+IHdy b3RlOg0KPj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+IEhpLCBSaWNoYXJkLA0KPj4+Pj4+Pj4+IA0KPj4+ Pj4+Pj4+PiBPbiBBdWcgMTAsIDIwMjEsIGF0IDEwOjIyIEFNLCBSaWNoYXJkIEJpZW5lciA8cmd1 ZW50aGVyQHN1c2UuZGU+IHdyb3RlOg0KPj4+Pj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+Pj4+IEVzcGVj aWFsbHkgaW4gdGhlIFZMQSBjYXNlIGJ1dCBsaWtlbHkgYWxzbyBpbiBnZW5lcmFsICh0aG91Z2gg dW5saWtlbHkNCj4+Pj4+Pj4+Pj4+PiBzaW5jZSB1c3VhbGx5IHRoZSByZWNlaXZlciBvZiBpbml0 aWFsaXphdGlvbnMgYXJlIHNpbXBsZSBlbm91Z2gpLiAgSSdkDQo+Pj4+Pj4+Pj4+Pj4gZXhwZWN0 IHRoZSBWTEEgY2FzZSBlbmQgdXAgYXMNCj4+Pj4+Pj4+Pj4+PiANCj4+Pj4+Pj4+Pj4+PiAqcHRy X3RvX2RlY2wgPSAuREVGRVJSRURfSU5JVCAoLi4uKTsNCj4+Pj4+Pj4+Pj4+PiANCj4+Pj4+Pj4+ Pj4+PiB3aGVyZSAqcHRyX3RvX2RlY2wgaXMgdGhlIERFQ0xfVkFMVUVfRVhQUiBvZiB0aGUgZGVj bC4NCj4+Pj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+Pj4gU28sIGZvciB0aGUgZm9sbG93aW5nIHNtYWxs IHRlc3RpbmcgY2FzZToNCj4+Pj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+Pj4gPT09PQ0KPj4+Pj4+Pj4+ Pj4gZXh0ZXJuIHZvaWQgYmFyIChpbnQpOw0KPj4+Pj4+Pj4+Pj4gDQo+Pj4+Pj4+Pj4+PiB2b2lk IGZvbyhpbnQgbikNCj4+Pj4+Pj4+Pj4+IHsNCj4+Pj4+Pj4+Pj4+IGludCBhcnJbbl07DQo+Pj4+ Pj4+Pj4+PiBiYXIgKGFyclsyXSk7DQo+Pj4+Pj4+Pj4+PiByZXR1cm47DQo+Pj4+Pj4+Pj4+PiB9 DQo+Pj4+Pj4+Pj4+PiA9PT09PQ0KPj4+Pj4+Pj4+Pj4gDQo+Pj4+Pj4+Pj4+PiBJZiBJIGNvbXBp bGUgaXQgd2l0aCAtZnRyaXZpYWwtYXV0by12YXItaW5pdD16ZXJvIC1mZHVtcC10cmVlLWdpbXBs ZSAtUyAtbyBhdXRvLWluaXQtMTEucyAtZmR1bXAtcnRsLWV4cGFuZCwgdGhlICouZ2ltcGxlIGR1 bXAgaXM6DQo+Pj4+Pj4+Pj4+PiANCj4+Pj4+Pj4+Pj4+ID09PT09DQo+Pj4+Pj4+Pj4+PiB2b2lk IGZvbyAoaW50IG4pDQo+Pj4+Pj4+Pj4+PiB7DQo+Pj4+Pj4+Pj4+PiBpbnQgbi4wOw0KPj4+Pj4+ Pj4+Pj4gc2l6ZXR5cGUgRC4xOTUwOw0KPj4+Pj4+Pj4+Pj4gYml0c2l6ZXR5cGUgRC4xOTUxOw0K Pj4+Pj4+Pj4+Pj4gc2l6ZXR5cGUgRC4xOTUyOw0KPj4+Pj4+Pj4+Pj4gYml0c2l6ZXR5cGUgRC4x OTUzOw0KPj4+Pj4+Pj4+Pj4gc2l6ZXR5cGUgRC4xOTU0Ow0KPj4+Pj4+Pj4+Pj4gaW50WzA6RC4x OTUwXSAqIGFyci4xOw0KPj4+Pj4+Pj4+Pj4gdm9pZCAqIHNhdmVkX3N0YWNrLjI7DQo+Pj4+Pj4+ Pj4+PiBpbnQgYXJyWzA6RC4xOTUwXSBbdmFsdWUtZXhwcjogKmFyci4xXTsNCj4+Pj4+Pj4+Pj4+ IA0KPj4+Pj4+Pj4+Pj4gc2F2ZWRfc3RhY2suMiA9IF9fYnVpbHRpbl9zdGFja19zYXZlICgpOw0K Pj4+Pj4+Pj4+Pj4gdHJ5DQo+Pj4+Pj4+Pj4+PiB7DQo+Pj4+Pj4+Pj4+PiBuLjAgPSBuOw0KPj4+ Pj4+Pj4+Pj4gXzEgPSAobG9uZyBpbnQpIG4uMDsNCj4+Pj4+Pj4+Pj4+IF8yID0gXzEgKyAtMTsN Cj4+Pj4+Pj4+Pj4+IF8zID0gKHNpemV0eXBlKSBfMjsNCj4+Pj4+Pj4+Pj4+IEQuMTk1MCA9IF8z Ow0KPj4+Pj4+Pj4+Pj4gXzQgPSAoc2l6ZXR5cGUpIG4uMDsNCj4+Pj4+Pj4+Pj4+IF81ID0gKGJp dHNpemV0eXBlKSBfNDsNCj4+Pj4+Pj4+Pj4+IF82ID0gXzUgKiAzMjsNCj4+Pj4+Pj4+Pj4+IEQu MTk1MSA9IF82Ow0KPj4+Pj4+Pj4+Pj4gXzcgPSAoc2l6ZXR5cGUpIG4uMDsNCj4+Pj4+Pj4+Pj4+ IF84ID0gXzcgKiA0Ow0KPj4+Pj4+Pj4+Pj4gRC4xOTUyID0gXzg7DQo+Pj4+Pj4+Pj4+PiBfOSA9 IChzaXpldHlwZSkgbi4wOw0KPj4+Pj4+Pj4+Pj4gXzEwID0gKGJpdHNpemV0eXBlKSBfOTsNCj4+ Pj4+Pj4+Pj4+IF8xMSA9IF8xMCAqIDMyOw0KPj4+Pj4+Pj4+Pj4gRC4xOTUzID0gXzExOw0KPj4+ Pj4+Pj4+Pj4gXzEyID0gKHNpemV0eXBlKSBuLjA7DQo+Pj4+Pj4+Pj4+PiBfMTMgPSBfMTIgKiA0 Ow0KPj4+Pj4+Pj4+Pj4gRC4xOTU0ID0gXzEzOw0KPj4+Pj4+Pj4+Pj4gYXJyLjEgPSBfX2J1aWx0 aW5fYWxsb2NhX3dpdGhfYWxpZ24gKEQuMTk1NCwgMzIpOw0KPj4+Pj4+Pj4+Pj4gYXJyID0gLkRF RkVSUkVEX0lOSVQgKEQuMTk1MiwgMiwgMSk7DQo+Pj4+Pj4+Pj4+PiBfMTQgPSAoKmFyci4xKVsy XTsNCj4+Pj4+Pj4+Pj4+IGJhciAoXzE0KTsNCj4+Pj4+Pj4+Pj4+IHJldHVybjsNCj4+Pj4+Pj4+ Pj4+IH0NCj4+Pj4+Pj4+Pj4+IGZpbmFsbHkNCj4+Pj4+Pj4+Pj4+IHsNCj4+Pj4+Pj4+Pj4+IF9f YnVpbHRpbl9zdGFja19yZXN0b3JlIChzYXZlZF9zdGFjay4yKTsNCj4+Pj4+Pj4+Pj4+IH0NCj4+ Pj4+Pj4+Pj4+IH0NCj4+Pj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+Pj4gPT09PQ0KPj4+Pj4+Pj4+Pj4g DQo+Pj4+Pj4+Pj4+PiBZb3UgdGhpbmsgdGhhdCB0aGUgYWJvdmUgLkRFRkVFUkVEX0lOSVQgaXMg bm90IGNvcnJlY3Q/DQo+Pj4+Pj4+Pj4+PiBJdCBzaG91bGQgYmU6DQo+Pj4+Pj4+Pj4+PiANCj4+ Pj4+Pj4+Pj4+ICphcnIuMSA9IC5ERUZFUlJFRF9JTklUIChELjE5NTIuIDIsIDEpOw0KPj4+Pj4+ Pj4+Pj4gDQo+Pj4+Pj4+Pj4+PiA/DQo+Pj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+PiBZZXMuDQo+Pj4+ Pj4+Pj4+IA0KPj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+IEkgdXBkYXRlZCBnaW1wbGlmeS5jIGZvciBW TEEgYW5kIG5vdyBpdCBlbWl0cyB0aGUgY2FsbCB0byAuREVGRVJSRURfSU5JVCBhczoNCj4+Pj4+ Pj4+PiANCj4+Pj4+Pj4+PiAgYXJyLjEgPSBfX2J1aWx0aW5fYWxsb2NhX3dpdGhfYWxpZ24gKEQu MTk1NCwgMzIpOw0KPj4+Pj4+Pj4+ICAqYXJyLjEgPSAuREVGRVJSRURfSU5JVCAoRC4xOTUyLCAy LCAxKTsNCj4+Pj4+Pj4+PiANCj4+Pj4+Pj4+PiBIb3dldmVyLCB0aGlzIGNhbGwgdHJpZ2dlcmVk IHRoZSBhc3NlcnRpb24gZmFpbHVyZSBpbiB2ZXJpZnlfZ2ltcGxlX2NhbGwgb2YgdHJlZS1jZmcu YyBiZWNhdXNlIHRoZSBMSFMgaXMgbm90IGEgdmFsaWQgTEhTLiANCj4+Pj4+Pj4+PiBUaGVuIEkg bW9kaWZ5IHRyZWUtY2ZnLmMgYXM6DQo+Pj4+Pj4+Pj4gDQo+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBh L2djYy90cmVlLWNmZy5jIGIvZ2NjL3RyZWUtY2ZnLmMNCj4+Pj4+Pj4+PiBpbmRleCAzMzBlYjdk ZDg5YmYuLjE4MGQ0ZjFmOWUzMiAxMDA2NDQNCj4+Pj4+Pj4+PiAtLS0gYS9nY2MvdHJlZS1jZmcu Yw0KPj4+Pj4+Pj4+ICsrKyBiL2djYy90cmVlLWNmZy5jDQo+Pj4+Pj4+Pj4gQEAgLTMzNzUsNyAr MzM3NSwxMSBAQCB2ZXJpZnlfZ2ltcGxlX2NhbGwgKGdjYWxsICpzdG10KQ0KPj4+Pj4+Pj4+ICB9 DQo+Pj4+Pj4+Pj4gDQo+Pj4+Pj4+Pj4gdHJlZSBsaHMgPSBnaW1wbGVfY2FsbF9saHMgKHN0bXQp Ow0KPj4+Pj4+Pj4+ICsgIC8qIEZvciAuREVGRVJSRURfSU5JVCBjYWxsLCB0aGUgTEhTIG1pZ2h0 IGJlIGFuIGluZGlyZWN0aW9uIG9mDQo+Pj4+Pj4+Pj4gKyAgICAgYSBwb2ludGVyIGZvciB0aGUg VkxBIHZhcmlhYmxlLCB3aGljaCBpcyBub3QgYSB2YWxpZCBMSFMgb2YNCj4+Pj4+Pj4+PiArICAg ICBhIGdpbXBsZSBjYWxsLCB3ZSBpZ25vcmUgdGhlIGFzc3NlcnRpb24gb24gdGhpcy4gICovIA0K Pj4+Pj4+Pj4+IGlmIChsaHMNCj4+Pj4+Pj4+PiArICAgICAgJiYgKCFnaW1wbGVfY2FsbF9pbnRl cm5hbF9wIChzdG10LCBJRk5fREVGRVJSRURfSU5JVCkpDQo+Pj4+Pj4+Pj4gICAmJiAoIWlzX2dp bXBsZV9yZWcgKGxocykNCj4+Pj4+Pj4+PiAgICAgICYmICghaXNfZ2ltcGxlX2x2YWx1ZSAobGhz KQ0KPj4+Pj4+Pj4+ICAgICAgICAgIHx8IHZlcmlmeV90eXBlc19pbl9naW1wbGVfcmVmZXJlbmNl DQo+Pj4+Pj4+Pj4gDQo+Pj4+Pj4+Pj4gVGhlIGFzc2VydGlvbiBmYWlsdXJlIGluIHRyZWUtY2Zn LmMgZ290IHJlc29sdmVkLCBidXQgSSBnb3QgYW5vdGhlciBhc3NlcnRpb24gZmFpbHVyZSBpbiBv cGVyYW5kc19zY2FubmVyOjpnZXRfZXhwcl9vcGVyYW5kcyAodHJlZSAqZXhwcl9wLCBpbnQgZmxh Z3MpLCBsaW5lIDk0NToNCj4+Pj4+Pj4+PiANCj4+Pj4+Pj4+PiA5MzkgICAvKiBJZiB3ZSBnZXQg aGVyZSwgc29tZXRoaW5nIGhhcyBnb25lIHdyb25nLiAgKi8NCj4+Pj4+Pj4+PiA5NDAgICBpZiAo ZmxhZ19jaGVja2luZykNCj4+Pj4+Pj4+PiA5NDEgICAgIHsNCj4+Pj4+Pj4+PiA5NDIgICAgICAg ZnByaW50ZiAoc3RkZXJyLCAidW5oYW5kbGVkIGV4cHJlc3Npb24gaW4gZ2V0X2V4cHJfb3BlcmFu ZHMoKTpcbiIpOw0KPj4+Pj4+Pj4+IDk0MyAgICAgICBkZWJ1Z190cmVlIChleHByKTsNCj4+Pj4+ Pj4+PiA5NDQgICAgICAgZnB1dHMgKCJcbiIsIHN0ZGVycik7DQo+Pj4+Pj4+Pj4gOTQ1ICAgICAg IGdjY191bnJlYWNoYWJsZSAoKTsNCj4+Pj4+Pj4+PiA5NDYgICAgIH0NCj4+Pj4+Pj4+PiANCj4+ Pj4+Pj4+PiBMb29rcyBsaWtlIHRoYXQgIHRoZSBnaW1wbGUgc3RhdGVtZW50Og0KPj4+Pj4+Pj4+ ICphcnIuMSA9IC5ERUZFUlJFRF9JTklUIChELjE5NTIsIDIsIDEpOw0KPj4+Pj4+Pj4+IA0KPj4+ Pj4+Pj4+IElzIG5vdCB2YWxpZC4gIGkuZSwgdGhlIExIUyBzaG91bGQgbm90IGJlIGFuIGluZGly ZWN0aW9uIHRvIGEgcG9pbnRlci4gDQo+Pj4+Pj4+Pj4gDQo+Pj4+Pj4+Pj4gSG93IHRvIHJlc29s dmUgdGhpcyBpc3N1ZT8NCj4+Pj4+Pj4gDQo+Pj4+Pj4+IEl0IHNvdW5kcyBsaWtlIHRoZSBMSFMg aXMgYW4gSU5ESVJFQ1RfUkVGIG1heWJlPyAgVGhhdCBtZWFucyBpdCdzDQo+Pj4+Pj4+IHN0aWxs IG5vdCBwcm9wZXJseSBnaW1wbGlmaWVkIGJlY2F1c2UgaXQgc2hvdWxkIGVuZCB1cCBhcyBhIE1F TV9SRUYNCj4+Pj4+Pj4gaW5zdGVhZC4NCj4+Pj4+Pj4gDQo+Pj4+Pj4+IEJ1dCBJJ20ganVzdCBn dWVzc2luZyBoZXJlIC4uLiBpZiB5b3UgYXJlIGluIGEgZGVidWdnZXIgdGhlbiB5b3UgY2FuDQo+ Pj4+Pj4+IGludm9rZSBkZWJ1Z190cmVlIChsaHMpIGluIHRoZSBpbmZlcmlvciB0byBzZWUgd2hh dCBpdCBleGFjdGx5IGlzDQo+Pj4+Pj4+IGF0IHRoZSBwb2ludCBvZiB0aGUgZmFpbHVyZS4NCj4+ Pj4+PiANCj4+Pj4+PiBZZXMsIGl04oCZcyBhbiBJTkRJUkVDVF9SRUYgYXQgdGhlIHBvaW50IG9m IHRoZSBmYWlsdXJlIGV2ZW4gdGhvdWdoIEkgYWRkZWQgYSANCj4+Pj4+PiANCj4+Pj4+PiBnaW1w bGlmeV92YXJfb3JfcGFybV9kZWNsICAobGhzKSANCj4+Pj4+IA0KPj4+Pj4gSSB0aGluayB0aGUg ZWFzaWVzdCBpcyB0byBidWlsZCB0aGUgLkRFRkVSUkVEX0lOSVQgYXMgR0VORVJJQw0KPj4+Pj4g YW5kIHVzZSBnaW1wbGlmeV9hc3NpZ24gKCkgdG8gZ2ltcGxpZnkgYW5kIGFkZCB0aGUgcmVzdWx0 DQo+Pj4+PiB0byB0aGUgc2VxdWVuY2UuICBUaHVzLCBidWlsZCBhIEdFTkVSSUMgQ0FMTF9FWFBS IGFuZCB0aGVuDQo+Pj4+PiBnaW1wbGlmeV9hc3NpZ24gKGxocywgY2FsbF9leHByLCBzZXEpOw0K Pj4+PiANCj4+Pj4gV2hpY2ggdXRpbGl0eSByb3V0aW5lIGlzIHVzZWQgdG8gYnVpbGQgYW4gSW50 ZXJuYWwgZ2VuZXJpYyBjYWxsPw0KPj4+PiBDdXJyZW50bHksIEkgdXNlZCDigJxnaW1wbGVfYnVp bGRfY2FsbF9pbnRlcm5hbOKAnSB0byBidWlsZCB0aGlzIGludGVybmFsIGdpbXBsZSBjYWxsLg0K Pj4+PiANCj4+Pj4gRm9yIHRoZSBnZW5lcmljIGNhbGwsIHNoYWxsIEkgdXNlIOKAnGJ1aWxkX2Nh bGxfZXhwcl9sb2PigJ0gPyANCj4+PiANCj4+PiBGb3IgZXhhbXBsZSBsb29rIGF0IGJ1aWxkX2Fz YW5fcG9pc29uX2NhbGxfZXhwciB3aGljaCBkb2VzIHN1Y2ggdGhpbmcNCj4+PiBmb3IgQVNBTiBw b2lzb24gaW50ZXJuYWwgZnVuY3Rpb24gY2FsbCBpbnNlcnRpb24gYXQgZ2ltcGxpZmljYXRpb24g dGltZS4NCj4+PiANCj4+PiBSaWNoYXJkLg0KPj4+IA0KPj4+PiBRaW5nDQo+Pj4+IA0KPj4+Pj4g DQo+Pj4+PiBSaWNoYXJkLg0KPj4+Pj4gDQo+Pj4+Pj4gUWluZw0KPj4+Pj4+IA0KPj4+Pj4+PiAN Cj4+Pj4+Pj4+IEkgY2FtZSB1cCB3aXRoIHRoZSBmb2xsb3dpbmcgc29sdXRpb246DQo+Pj4+Pj4+ PiANCj4+Pj4+Pj4+IERlZmluZSB0aGUgSUZOX0RFRkVSUkVEX0lOSVQgZnVuY3Rpb24gYXM6DQo+ Pj4+Pj4+PiANCj4+Pj4+Pj4+IExIUyA9IERFRkVSUkVEX0lOSVQgKFNJWkUgb2YgdGhlIERFQ0ws IElOSVRfVFlQRSwgSVNfVkxBKTsNCj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4gaWYgSVNfVkxBIGlzIGZh bHNlLCB0aGUgTEhTIGlzIHRoZSBERUNMIGl0c2VsZiwNCj4+Pj4+Pj4+IGlmIElTX1ZMQSBpcyB0 cnVlLCB0aGUgTEhTIGlzIHRoZSBwb2ludGVyIHRvIHRoaXMgREVDTCB0aGF0IGNyZWF0ZWQgYnkN Cj4+Pj4+Pj4+IGdpbXBsaWZ5X3ZsYV9kZWNsLg0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+PiANCj4+Pj4+ Pj4+IFRoZSBiZW5lZml0IG9mIHRoaXMgc29sdXRpb24gYXJlOg0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+ PiAxLiBSZXNvbHZlZCB0aGUgaW52YWxpZCBJUiBpc3N1ZTsNCj4+Pj4+Pj4+IDIuIFRoZSBjYWxs IHN0bXQgY2FycmllcyB0aGUgYWRkcmVzcyBvZiB0aGUgVkxBIG5hdHVhbGx5Ow0KPj4+Pj4+Pj4g DQo+Pj4+Pj4+PiBUaGUgaXNzdWUgd2l0aCB0aGlzIHNvbHV0aW9uIGlzOg0KPj4+Pj4+Pj4gDQo+ Pj4+Pj4+PiBGb3IgVkxBIGFuZCBub24tVkxBLCB0aGUgTEhTIHdpbGwgYmUgZGlmZmVyZW50LCAN Cj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4gRG8geW91IHNlZSBhbnkgb3RoZXIgcG90ZW50aWFsIGlzc3Vl cyB3aXRoIHRoaXMgc29sdXRpb24/DQo+Pj4+Pj4+PiANCj4+Pj4+Pj4+IHRoYW5rcy4NCj4+Pj4+ Pj4+IA0KPj4+Pj4+Pj4gUWluZw0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+PiANCj4+Pj4+Pj4+IA0KPj4+ Pj4+Pj4gDQo+Pj4+Pj4+PiANCj4+Pj4+Pj4gDQo+Pj4+Pj4+IC0tIA0KPj4+Pj4+PiBSaWNoYXJk IEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+DQo+Pj4+Pj4+IFNVU0UgU29mdHdhcmUgU29sdXRp b25zIEdlcm1hbnkgR21iSCwgTWF4ZmVsZHN0cmFzc2UgNSwgOTA0MDkgTnVlcm5iZXJnLA0KPj4+ Pj4+PiBHZXJtYW55OyBHRjogRmVsaXggSW1lbmTDtnJmZmVyOyBIUkIgMzY4MDkgKEFHIE51ZXJu YmVyZykNCj4+Pj4+PiANCj4+Pj4+PiANCj4+Pj4+IA0KPj4+Pj4gLS0gDQo+Pj4+PiBSaWNoYXJk IEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+DQo+Pj4+PiBTVVNFIFNvZnR3YXJlIFNvbHV0aW9u cyBHZXJtYW55IEdtYkgsIE1heGZlbGRzdHJhc3NlIDUsIDkwNDA5IE51ZXJuYmVyZywNCj4+Pj4+ IEdlcm1hbnk7IEdGOiBGZWxpeCBJbWVuZMO2cmZmZXI7IEhSQiAzNjgwOSAoQUcgTnVlcm5iZXJn KQ0KPj4+PiANCj4+Pj4gDQo+Pj4gDQo+Pj4gLS0gDQo+Pj4gUmljaGFyZCBCaWVuZXIgPHJndWVu dGhlckBzdXNlLmRlPg0KPj4+IFNVU0UgU29mdHdhcmUgU29sdXRpb25zIEdlcm1hbnkgR21iSCwg TWF4ZmVsZHN0cmFzc2UgNSwgOTA0MDkgTnVlcm5iZXJnLA0KPj4+IEdlcm1hbnk7IEdGOiBGZWxp eCBJbWVuZMO2cmZmZXI7IEhSQiAzNjgwOSAoQUcgTnVlcm5iZXJnKQ0KPj4gDQo+IA0KDQo=