From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.126]) by sourceware.org (Postfix) with ESMTPS id 63F733858CD1 for ; Tue, 14 Nov 2023 02:28:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 63F733858CD1 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 63F733858CD1 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=134.134.136.126 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1699928922; cv=pass; b=LWJv3q1sJSD+VrFah486FlFA0ZeTUreP3LUFDhSr0U0+QmywnCrlJS/ofa0k59oyz+6r0iaFLIho+DUnyxqrpraE5EBYra718AayEv8IUNCk+Fa8c0aYwcxy57P5NT1Rk7QZM15eMbbjWpnvHE27hpAY4sRalj6bixNQgFEAEDk= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1699928922; c=relaxed/simple; bh=gZfw9Cyz1MnhBh4FmGRSM8TlKHEXBqQW0DW++Iv5u9o=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=jQqg81QEPLny3tIBnATFmdSqhvby1JHVx7NKEBtIzHldilNomV5Jc+M0wdbi7kX/5u2kQ+iBUS4Dp9bf5jZcoQEQbpmP0cApFBI7IZ/WzqnkW4n6/G+lVS4O0jLqZ3w+VxN6ECfMBQs6TUKELUg6UY4+hgWxhJ3r/thHXQEs9Ug= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1699928919; x=1731464919; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=gZfw9Cyz1MnhBh4FmGRSM8TlKHEXBqQW0DW++Iv5u9o=; b=O6R5CjI5ASZRM2rpLsZhmdCtT7pZEJb0PPZMpsexLbhZcR3vtCO5/Zwc imV+FhLGWdlL6tFBJnAstLAlcRICG6e6KfYORU0P3uJGby2cNBkMilnWC f+QhtjX7X16KC4DDqpUWdfLoWshwwqpZGQ3F7+Nldd9H3H7HaNAbO0Wvr nzX3h1y2LyPj1i8vmbvY46CKw9tthVemPPBH+iyMEL1lXtVmHfT1ENTqG TrNQhFGXpkmt/UsuyhSoI39oPtQ1RwipBEDvj/kRVyoqM9OPI2KKjHaCu chol5MdzQSDXCz+tXQEFII5w5YfVBKEk/I3EIG1FpTCXU6WKgRgRl2Dk5 w==; X-IronPort-AV: E=McAfee;i="6600,9927,10893"; a="375591247" X-IronPort-AV: E=Sophos;i="6.03,299,1694761200"; d="scan'208";a="375591247" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Nov 2023 18:28:24 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10893"; a="937895111" X-IronPort-AV: E=Sophos;i="6.03,299,1694761200"; d="scan'208";a="937895111" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga005.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 13 Nov 2023 18:28:24 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 13 Nov 2023 18:28:24 -0800 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 13 Nov 2023 18:28:23 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34 via Frontend Transport; Mon, 13 Nov 2023 18:28:23 -0800 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.168) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34; Mon, 13 Nov 2023 18:28:23 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=a4xlCzfCDeNdgw/LZ54UeA5qAvOruf6hWTvW++CakVcacCZ12dQSxHXdvoZZEr9NsfRVJd2RvOBiiq1mboCQQn/VMioMt0+OJptZhLw2W3KI+r3E5o1hl5wXL7c3h8C3m80IQ7Xpb6X2YhIDQ0I9hDMw2lNVbYaOZ0PGOkzLzZv9NmQUffixhIb05oqO0Z7Jwz9+U88QVlL0rNwPCI/GRsIsHwVdvzBvf9T8YkIH9d/wYyOpSGi7ciHblpZOBLCOkCKGZ9BgiidXKJzVUgE326IL2du6HuChK8PJVIOcCtutqsR9uacopyF4gcTQpcLcEBDgey1dLfhIgV+BpYo2fA== 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=gZfw9Cyz1MnhBh4FmGRSM8TlKHEXBqQW0DW++Iv5u9o=; b=ZWAA1xxK1AmcoHdUtaZ+JlwIj9iZ8KOvnUqqGTdGaGtrURSnREKnwfehUIRLHbLgMwW/GjcQPaGHrz+EedTjurdNn7RQrq84SS1hhztzpDPu1nEqf0dbau4zEl6UPPTvpNbDyBFXZ+pbxUHUQqErqXK34XXx57zQS5GKKLKcX973tgo4cqQPjkenZkkc6d+dE3qP+jHJpn48dCH6lLJmnttSeJXngTB0eKbeROEBDFEC6FcsRu9UcR+1WwJ6dOuAxMqC4IDXUFpRIwPuMpWUXXS40O3/Rm1/fhsmCzKXEcE116/r50wWW3nEfrQn/gJqKdTlzmqRT3Uz7JOfOTDo/w== 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 SJ0PR11MB5940.namprd11.prod.outlook.com (2603:10b6:a03:42f::18) by BL1PR11MB5543.namprd11.prod.outlook.com (2603:10b6:208:317::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6977.31; Tue, 14 Nov 2023 02:28:20 +0000 Received: from SJ0PR11MB5940.namprd11.prod.outlook.com ([fe80::8a10:338f:c17e:dd7f]) by SJ0PR11MB5940.namprd11.prod.outlook.com ([fe80::8a10:338f:c17e:dd7f%7]) with mapi id 15.20.6977.029; Tue, 14 Nov 2023 02:28:20 +0000 From: "Hu, Lin1" To: "Beulich, Jan" CC: "Lu, Hongjiu" , "ccoutant@gmail.com" , "binutils@sourceware.org" , "Cui, Lili" Subject: RE: [PATCH 7/8] Support APX NDD optimized encoding. Thread-Topic: [PATCH 7/8] Support APX NDD optimized encoding. Thread-Index: AQHaDX/bY3NWB3vRSUSaY4murTglurBx1hqAgAD3UBCAAI9LgIAEKPMw Date: Tue, 14 Nov 2023 02:28:20 +0000 Message-ID: References: <20231102112911.2372810-1-lili.cui@intel.com> <20231102112911.2372810-8-lili.cui@intel.com> 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: SJ0PR11MB5940:EE_|BL1PR11MB5543:EE_ x-ms-office365-filtering-correlation-id: 7e86bd5f-e035-4f8b-525e-08dbe4b95e4f x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: SlYl8+nCYp+GhGBb6DXBbvpR1kVk/0wXWR/gP2V6n1ru0Wgdazl82Qwo0oQrWNxH1uG5MxRWLNRuPNT67baS8RAw7UOhul6xSC9IDiZArJ/5d1xWSn9fbraUpIXbz3vdoejqYcDWHD+XzNmjxloAPvDCP9Wl+fuGCre+ktRWmdkFgbso2gJJCk1Xs8IJO5WhCK9B963WGBKdtCBW1oymOWFZudTgH5+fGaIPjXav0BkiSvpvmT6PnhvaBvt4iS6A9I34221WS0MxaMqmCSAJAOevZbm5MJVtosjLSIAR3yU1dp+ssNjNJ4p/MWmmDzWjrfmKkonVRJFqaIg06F1MheJTOp5tALiSp3no7wSZIxZMk6OWaE+hX5HQ2SzgnA4rXhJzQRuNzL62hRpTANN2GUXKJRN02Eao7NspTWSlwr8cTj8UHwhnVqT5SdwOZtGiFtwbHBnoe5OrAYAn9mxGWDYCjhArflbvAUhyvEnGC/p5iMugzgz98h0EiVNd2uq5MMKNxOafyRuGfkmkxBQ0JZoI+o8JM33nkzTmoJIpdj4DsrpsfWun+uhiJeN1nGkIXI5yvqyxjbnd1L5fekC4ZRWk/obdldN3sYdD14BddNr9EjQJ3ccPMKFlSkHsrDoesJ8z3PKdAxMfgDpxgTgDh5U0LApSZ6Kfa77RHQ00Cgc= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR11MB5940.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(39860400002)(136003)(366004)(376002)(396003)(230173577357003)(230922051799003)(230273577357003)(186009)(451199024)(1800799009)(64100799003)(66556008)(66946007)(76116006)(38070700009)(66446008)(66476007)(54906003)(64756008)(6916009)(316002)(107886003)(26005)(478600001)(122000001)(19627235002)(9686003)(53546011)(86362001)(5660300002)(7696005)(6506007)(71200400001)(82960400001)(41300700001)(55016003)(38100700002)(8676002)(8936002)(33656002)(4326008)(2906002)(52536014)(66899024)(83380400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZDNZTzcvWkVTZGlHYUV3T29Da2dESWY2TGNBbHpLeWl1WjlnRWRDRlRsckgr?= =?utf-8?B?RXJ0TGgySlZoM3JGUnZoRVVoelZvUjlHWVNRcGNIOUZoOUxLVXo2SVVhVE1J?= =?utf-8?B?RFFpQkhWVHQzTVRYQVVuVnM0bHViMUVKcm5SRk42RXIyYW5FNkdFbGt3NnFk?= =?utf-8?B?dHFqZDliR0Z4cURZYUpocGFUNUtuajJlUWlOME5IYkt5S2twZUFmY1dwYm54?= =?utf-8?B?bEdGZXJsOHh6Zzg5emJnUXUzVkVhbWFXVGtMUk9TV0c1VWJuUEQ5RURqdmU3?= =?utf-8?B?WWVLc1FMQVFCeldFZGxKY3RaMDlZb2MvYzg0ZVNHOVJmOGVjcjNJYnI3eC84?= =?utf-8?B?YTNqODRlRHZFMXU2Q2J4Z3hrUEtCdXJiNm9HOU5LUmlUVmVyQ2p2Q1Fhdmt2?= =?utf-8?B?a0ZGOGQxdDRPWktQU1h4aEFjcHhvWTJFTDE4b1g2ZzdTODFTOXgwNlNkUlox?= =?utf-8?B?L2lKUVJtenNNbzluQkcyQ1c3NzYxMHZOUDdzT2J5akVnK3ozUDlBT1Z4RCtP?= =?utf-8?B?WFBITjlKU0dnQ1VyU1pwVFlZYWZmNXVqb1dQWVQ0UnJBOWoyS0JaM2lVRFg2?= =?utf-8?B?aC8wNVZ6SWM5RStkQXFKS1RJR2dKeWRaZEFydkZjQjAzU0RndjhmUUpkSFVC?= =?utf-8?B?WVVXNlpHZ3ZSZDllUDBlSk9lUlh2SXM4Qkd3eEY4R2UxU1hRM1lEMWZ2NUw1?= =?utf-8?B?cmNDUFlVTEEreWdodmRzZktmZ2d4QjNBL1dMZ1k2OEVwZjdjL1Bjc2gwYTNX?= =?utf-8?B?SU9ZMEhzZ01qWnovT0g4QmFpbE9xR0VzRVhHMDZJNFF6ZmgyRmhIQk5kWWFT?= =?utf-8?B?emYvSTJkbFE0SHFjWHhEM1lhdEV6cHZXeWwvNStHTStvUUNZMnltTG4zUkFq?= =?utf-8?B?ZkRPSGxJNncyeXFVOHFRb1NqWFMrTjBZYmJiQWRTNlJKMEdpL3ZIbDN1QUEr?= =?utf-8?B?Y1FjQU94d3ZFeHJxRlVCZEdHekdtS1M1K1pXUWFlWkpOOWd2VCtxdUxaWUVz?= =?utf-8?B?QnBEWnNlSmU5bnoxYUVKaWFQaDNkbmxkUDcvS3RCWlVQMU5mWFY0RkYwV0Fq?= =?utf-8?B?STRZeDdOVnljcTJFOFZtNDV3WGR3QjdDYU9VL0ZQVS9EQnJ5djNFb09DSWt1?= =?utf-8?B?V2l1dXp4ZGJJZHNwK1RmSlFLZXNHd01zTWdEaWxLYklvdnEwdkVtNG56T3B5?= =?utf-8?B?WnlrQ3p4WTY1S2t5TVVseW9BUU96d1dhSDdoOU8xaHZUWXR6QTJqTm1aU1Z0?= =?utf-8?B?U3VqQ3BZWE9mU0NBeWw4S3hDMFZQZkJYV3RUYWVreGxTc3N5VWg0YzRoM0ZS?= =?utf-8?B?ZG0yNGJqRXU3bnpSdjFadURKa1BPaHI5d0U3ektNUUpTT3hmckR6WTVQaUJh?= =?utf-8?B?a1pZN093ZkxicERGTlpoTHQ0S0RSSC9mb3M4U2xHeWZ6Ykhrb3ZVRU4xMm5K?= =?utf-8?B?WW5Uc1pJV0dMZlZiWVdhL0p6Z1NYQm5mRi9Yd1pSSFp6OUR3VVI0azE0NlRr?= =?utf-8?B?YmxXSjV0QmszZS9heHMyTFRORFdTVnBUeDdDWG1kMTJwMWxCQjRZNU9ISXBu?= =?utf-8?B?QkVHVUdydWppbnFDL2Fuek9XdUxWc3k3enRLdG5nOTRhcjFlK1JLMG1QYm5t?= =?utf-8?B?ajlRUG1zditWQ1lqeDE2MTVUK0NtbUMvcWdoZTlpelRlcERWVmZpSEtFM3pG?= =?utf-8?B?eFFNTkdiZTZvNUl3TFlWdy83cEdFZWkvVDl5cFNMS1UrUzA4eVI3c2phZHJ1?= =?utf-8?B?aWhBZnZidVp5aWZJaDFoTDU2ZGxxSkpWditYM0xEOTRDL1UvbVRSL1BxZWtS?= =?utf-8?B?ampCZmp0eDlrQ2lMRFZpcFhvdTBGcDlmMEg2VlRib3lMY1c1SFdEcG1IUFNH?= =?utf-8?B?a2NIKyszM0hHSWJvRDFVNkNVbWVIeVJxS1QwcUJDcmVaYTdBZG9iODJ0RE1S?= =?utf-8?B?d3V1ZkRKTEZQbkgrQXlWd2N5NHhYeXkyY3l1ZnRlemF3Mko3ZHJhWXE1UTZx?= =?utf-8?B?dDVJRWFJcUFtWnU4a3ljQU5tOTdHU2RONzJseG5RdllXT1lMWTE4RkpmamtO?= =?utf-8?B?NXJ4cGlaY0FnTU1Ta0NFUlIxN1FjVWpWRG1sMWUybHh4eXNiSXplQ2hIcmlY?= =?utf-8?Q?OnsQ=3D?= 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: SJ0PR11MB5940.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7e86bd5f-e035-4f8b-525e-08dbe4b95e4f X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Nov 2023 02:28:20.5130 (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: YrmfYweQqO1+DCvRivAMrGo5q6l2jS0I22jL+XZUwFDeeU+qNNMBRKDcGSqfya4AiTOQebQbOOmev/cVUNI0+Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR11MB5543 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-10.9 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,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: PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKYW4gQmV1bGljaCA8amJldWxp Y2hAc3VzZS5jb20+DQo+IFNlbnQ6IEZyaWRheSwgTm92ZW1iZXIgMTAsIDIwMjMgNTo1NCBQTQ0K PiBUbzogSHUsIExpbjEgPGxpbjEuaHVAaW50ZWwuY29tPg0KPiBDYzogTHUsIEhvbmdqaXUgPGhv bmdqaXUubHVAaW50ZWwuY29tPjsgY2NvdXRhbnRAZ21haWwuY29tOw0KPiBiaW51dGlsc0Bzb3Vy Y2V3YXJlLm9yZzsgQ3VpLCBMaWxpIDxsaWxpLmN1aUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJl OiBbUEFUQ0ggNy84XSBTdXBwb3J0IEFQWCBOREQgb3B0aW1pemVkIGVuY29kaW5nLg0KPiANCj4g T24gMTAuMTEuMjAyMyAwNjo0MywgSHUsIExpbjEgd3JvdGU6DQo+ID4+IE9uIDAyLjExLjIwMjMg MTI6MjksIEN1aSwgTGlsaSB3cm90ZToNCj4gDQo+IEJ0dywgeW91ciBzaHJpbmtpbmcgb2YgcmVw bHkgY29udGV4dCBhYm92ZSBmcm9tIGhlcmUgaXMgcHJvYmxlbWF0aWMuIFNvbWVvbmUNCj4gcmVh ZGluZyBqdXN0IHRoaXMgbWFpbCBjYW4ndCB0ZWxsIHdobyAuLi4NCj4gDQo+ID4+IFNpbWlsYXJs eSBJJ20gY29uY2VybmVkIG9mIHRoZSBORCBmb3JtIG9mIENGQ01PVmNjLCB3aGljaCBpc24ndCB0 aGVyZQ0KPiA+PiB5ZXQgaW4gdGhlIHBhdGNoZXMsIGJ1dCB3aGljaCB3aWxsIGFsc28gbmVlZCBl eGNsdWRpbmcgZnJvbSB0aGlzDQo+ID4+IG9wdGltaXphdGlvbi4gT2J2aW91c2x5IHRoaXMgY29u Y2VybiB0aGVuIGV4dGVuZHMgdG8gYW55IGZ1dHVyZSBORC0NCj4gPj4gZW5jb2RlZCBpbnNucywg d2hpY2ggKGxpa2VseSkgd29uJ3QgaGF2ZSBsZWdhY3ktZW5jb2RlZCAoYW5kIGhlbmNlDQo+ID4+ IFJFWDItZW5jb2RhYmxlKSBjb3VudGVycGFydHMuIEFyZSB0aGVyZSBhbnkgcGxhbnMgaG93IHRv IGRlYWwgd2l0aCBzdWNoPw0KPiA+PiAoVGhlcmUncyBhIHBvc3NpYmxlIGFwcHJvYWNoIG1lbnRp b25lZCBmdXJ0aGVyIGRvd24uKQ0KPiANCj4gLi4uIG9yaWdpbmFsbHkgc2FpZCB0aGlzLg0KPg0K DQpUaGFua3MgZm9yIHlvdXIgYWR2aXNlcy4NCg0KPiANCj4gPiBMb29raW5nIGF0IG90aGVyIGN1 cnJlbnQgTkREIGluc3RydWN0aW9ucywgaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHVzZSBldmV4 DQo+IGVuY29kaW5nIGV2ZW4gaWYgaXQgZG9lc24ndCBoYXZlIHJleDIgZW5jb2RpbmcuDQo+IA0K PiBTaG91bGQgYmUgcG9zc2libGUgLSB5ZXMuIEJ1dCB3aHkgd291bGQgeW91IGRvIHN1Y2ggYSB0 cmFuc2Zvcm1hdGlvbj8gVGhhdCdzDQo+IG5vdCBhbiBvcHRpbWl6YXRpb24gYXQgYWxsLCBhZmFp Y3QuIEFuZCB3ZSBzaG91bGRuJ3QgYWx0ZXIgd2hhdCB0aGUgcHJvZ3JhbW1lcg0KPiB3cm90ZSBp ZiB0aGUgcmVzdWx0IGlzbid0IGluIGF0IGxlYXN0IHNvbWUgcmVzcGVjdCBkZWVtZWQgYmV0dGVy IHRoYW4gdGhlIG9yaWdpbmFsLg0KPiBDb25zaWRlcmluZyB0aGlzLCB0aGUgaGVscGVyIGZ1bmN0 aW9uIG1heSB3YW50IGZ1cnRoZXIgbmFtaW5nIGRpZmZlcmVudGx5IHRoYW4NCj4gYWxyZWFkeSBz dWdnZXN0ZWQsIHRvIGUuZy4gY29udmVydF9ORERfdG9fUkVYMigpLg0KPg0KDQpJbmRlZWQuDQog DQo+DQo+ID4+PiArICAgICAgdW5zaWduZWQgaW50IHNyYzIgPSAoaS5vcGVyYW5kcyA+IDMpID8g aS5vcGVyYW5kcyAtIDMgOiAwOw0KPiA+Pj4gKw0KPiA+Pj4gKyAgICAgIGlmIChpLnR5cGVzW3Ny YzFdLmJpdGZpZWxkLmNsYXNzID09IFJlZw0KPiA+Pj4gKwkgICYmIGkub3Bbc3JjMV0ucmVncyA9 PSBpLm9wW2Rlc3RdLnJlZ3MpDQo+ID4+PiArCXJlYWRvbmx5X3ZhciA9IHNyYzI7DQo+ID4+DQo+ ID4+IEFzIGNhbiBiZSBzZWVuIGluIHRoZSB0ZXN0Y2FzZSwgdGhpcyBhbHNvIHJlc3VsdHMgaW4g QURDWC9BRE9YIHRvIGJlDQo+ID4+IGNvbnZlcnRlZCB0byBub24tTkQgRVZFWCBmb3JtcywgaS5l LiBldmVuIHdoZW4gdGhhdCdzIG5vdCBhIHdpbiBhdCBhbGwuDQo+ID4+IFdlIHNob3VsZG4ndCBj aGFuZ2Ugd2hhdCB0aGUgdXNlciBoYXMgd3JpdHRlbiB3aGVuIHRoZSBlbmNvZGluZw0KPiA+PiBk b2Vzbid0IGFjdHVhbGx5IGltcHJvdmUuIChPciBlbHNlLCBidXQgSSdkIGJlIGhlc2l0YW50IHRv IGFjY2VwdA0KPiA+PiB0aGF0LCBhdCB0aGUgdmVyeSBsZWFzdCB0aGUgZWZmZWN0IHdvdWxkIG5l ZWQgcG9pbnRpbmcgb3V0IGluIHRoZQ0KPiA+PiBkZXNjcmlwdGlvbiBvciBldmVuIGEgY29kZSBj b21tZW50LCBzbyB0aGF0IGxhdGVyIG9uIGl0IGlzIHBvc3NpYmxlDQo+ID4+IHRvIGZpZ3VyZSBv dXQgd2hldGhlciB0aGF0IHdhcyBpbnRlbnRpb25hbCBvciBhbg0KPiA+PiBvdmVyc2lnaHQuKQ0K PiA+Pg0KPiA+PiBUaGlzIGlzIHdoZXJlIG15IHRlbXBsYXRlIG9yZGVyaW5nIHJlbWFyayBpbiBy ZXBseSB0byBwYXRjaCA1IGNvbWVzIGludG8gcGxheToNCj4gPj4gV2hldGhlciBpbnZva2luZyBy ZS1wYXJzZSBpcyBva2F5IHdvdWxkIGZ1cnRoZXIgbmVlZCB0byBkZXBlbmQgb24NCj4gPj4gd2hl dGhlciBhbiBhbHRlcm5hdGl2ZSAoZWFybGllcikgdGVtcGxhdGUgYWN0dWFsbHkgYWxsb3dzDQo+ ID4+IFJFWDIgZW5jb2RpbmcgKHNhbWUgYmFzZS1vcGNvZGUgY291bGQgYmUgb25lIG9mIHRoZSBj cml0ZXJpYSBmb3IgaG93DQo+ID4+IGZhciB0byBsb29rIGJhY2sgdGhyb3VnaCBlYXJsaWVyIHRl bXBsYXRlczsgYW4gb3B0aW9uIG1pZ2h0IGFsc28gYmUNCj4gPj4gdG8gcHV0IHRoZSAzLSBvcGVy YW5kIHRlbXBsYXRlcyBmaXJzdCwgc28gdGhhdCBsb29raW5nIGJhY2t3YXJkcw0KPiA+PiB3b3Vs ZG4ndCBiZSBuZWNlc3NhcnkgaW4gdGhlIGZpcnN0IHBsYWNlKS4gVGhpcyB3b3VsZCB0aGVuIGxp a2VseQ0KPiA+PiBhbHNvIGFkZHJlc3Mgb25lIG9mIHRoZSBmb3J3YXJkIGxvb2tpbmcgY29uY2Vy bnMgSSd2ZSByYWlzZWQgYWJvdmUuDQo+ID4+DQo+ID4NCj4gPiBJbmRlZWQsIGFkY3gncyBsZWdh Y3kgaW5zbiBjYW4ndCBzdXBwb3J0IHJleDIuDQo+ID4NCj4gPiBGb3IgbXkgcHJvYmxlbSwgSSBw cmVmZXIgdG8gcmUtb3JkZXIgdGVtcGxhdGVzIG9yZGVyLCBiZWNhdXNlLCBJIGhhZG4ndA0KPiB0 aG91Z2h0IG9mIGEgd2F5IHRvIHNpbXBseSBtb3ZlIHQgdG8gdGhlIGZhcnRoZXN0IHNhbWUgYmFz ZV9vcGNvZGUgdGVtcGxhdGUNCj4gZm9yIHRoZSBtb21lbnQuIFRoZSBmb2xsb3dpbmcgaXMgYSB0 ZW50YXRpdmUgc2NlbmFyaW86IHRoZSBvcmRlciB3aWxsIGJlIG5kZCBldmV4DQo+IC0gcmV4MiAt IGV2ZXguDQo+IA0KPiBZZXMsIHRoaXMgbWF0Y2hlcyBteSB1bmRlcnN0YW5kaW5nIC8gZXhwZWN0 YXRpb24uDQo+IA0KPiA+IEFuZCBJIHdpbGwgbmVlZCBhIHRtcF92YXJpYWJsZSB0byBhdm9pZCB0 aGUgaW5zbiBkb2Vzbid0IG1hdGNoIHRoZSByZXgyLCBsZXQgbWUNCj4gYmFja3RyYWNrIHRoZSBt YXRjaCdzIHJlc3VsdCBhbmQgdGhlIHZhbHVlIG9mIGkuDQo+IA0KPiBUaGlzLCBob3dldmVyLCBJ J20gbm90IGNvbnZpbmNlZCBvZi4gSSdkIHJhdGhlciBzZWUgdGhpcyB2YWd1ZWx5IGluIGxpbmUg d2l0aA0KPiA1OGJjZWIxODI3NDAgKCJ4ODY6IHByZWZlciBWRVggZW5jb2RpbmdzIG92ZXIgRVZF WCBvbmVzIHdoZW4NCj4gcG9zc2libGUiKTogRG8gYW5vdGhlciBmdWxsIG1hdGNoaW5nIHJvdW5k IHdpdGggdGhlIHJlbW92ZWQgb3BlcmFuZCwgYXJyYW5naW5nDQo+IGZvciAiaW50ZXJuYWwgZXJy b3IiIHRvIGJlIHJhaXNlZCBpbiBjYXNlIHRoYXQgZmFpbHMuIFlvdXIgYXBwcm9hY2ggd291bGQs IEkgdGhpbmssDQo+IHJlc3VsdCBpbiBzaWxlbnQgYmFkIGNvZGUgZ2VuZXJhdGlvbiBpbiBjYXNl IHNvbWV0aGluZyB3ZW50IHdyb25nLiBUaGluZyBpcyAtIHlvdQ0KPiBkb24ndCBldmVuIG5lZWQg dG8gYWR2YW5jZSAob3INCj4gYmFja3RyYWNrKSB0IGluIHRoYXQgY2FzZQ0KPg0KDQpJIHRyaWVk IHRvIHJlb3JkZXIgdGhlIHRlbXBsYXRlcyBhbmQgbW9kaWZ5IHRoZSBjb2RlIGFzIGZvbGxvd3M6 DQoNCkAgLTc3MjgsNiArNzc2NSw0MCBAQCBtYXRjaF90ZW1wbGF0ZSAoY2hhciBtbmVtX3N1ZmZp eCkNCiAgICAgICAgICBpLm1lbXNoaWZ0ID0gbWVtc2hpZnQ7DQogICAgICAgIH0NCg0KKyAgICAg IC8qIElmIHdlIGNhbiBvcHRpbWl6ZSBhIE5ERCBpbnNuIHRvIG5vbi1OREQgaW5zbiwgbGlrZQ0K KyAgICAgICAgYWRkICVyMTYsICVyOCwgJXI4IC0+IGFkZCAlcjE2LCAlcjgsDQorICAgICAgICBh ZGQgICVyOCwgJXIxNiwgJXI4IC0+IGFkZCAlcjE2LCAlcjgsIHRoZW4gcmVtYXRjaCB0ZW1wbGF0 ZS4NCisgICAgICAgIE5vdGUgdGhhdCB0aGUgc2VtYW50aWNzIGhhdmUgbm90IGJlZW4gY2hhbmdl ZC4gICovDQorICAgICAgaWYgKG9wdGltaXplDQorICAgICAgICAgJiYgIWkubm9fb3B0aW1pemUN CisgICAgICAgICAmJiBpLnZlY19lbmNvZGluZyAhPSB2ZXhfZW5jb2RpbmdfZXZleA0KKyAgICAg ICAgICYmIHQgKyAxIDwgY3VycmVudF90ZW1wbGF0ZXMtPmVuZA0KKyAgICAgICAgICYmICF0WzFd Lm9wY29kZV9tb2RpZmllci5ldmV4KQ0KKyAgICAgICB7DQorICAgICAgICAgdW5zaWduZWQgaW50 IHJlYWRvbmx5X3ZhciA9IGNvbnZlcnRfTkREX3RvX1JFWDIgKHQpOw0KKyAgICAgICAgIGlmIChy ZWFkb25seV92YXIgIT0gfjApDQorICAgICAgICAgICB7DQorICAgICAgICAgICAgIGlmICghY2hl Y2tfRWdwck9wZXJhbmRzICh0ICsgMSkpDQorICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAg ICAgICAgc3BlY2lmaWNfZXJyb3IgPSBwcm9ncmVzcyAoaW50ZXJuYWxfZXJyb3IpOw0KKyAgICAg ICAgICAgICAgICAgY29udGludWU7DQorICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAr K2kub3BlcmFuZHM7DQorICAgICAgICAgICAgICsraS5yZWdfb3BlcmFuZHM7DQorICAgICAgICAg ICAgICsraS50bS5vcGVyYW5kczsNCisNCisgICAgICAgICAgICAgaWYgKHJlYWRvbmx5X3ZhciA9 PSAxKQ0KKyAgICAgICAgICAgICAgIHN3YXBfMl9vcGVyYW5kcyAoMCwgMSk7DQorICAgICAgICAg ICB9DQorICAgICAgIH0NCg0KY29udmVydF9ORERfdG9fUkVYMiByZXR1cm4gcmVhZG9ubHlfdmFy IG5vdy4gY2hlY2tfRWdwck9wZXJhbmRzIGFpbXMgdG8gZXhjbHVkZSBzb21lIGluc25zIGxpa2Ug YWRjeCBhbmQgYWRveC4gQmVjYXVzZSB0aGVpciBvcGNvZGVfc3BhY2UgaXMgbGVnYWN5LW1hcDIg Y2FuJ3Qgc3VwcG9ydCByZXgyLg0KDQpBbmQgSSBuZWVkIHNvbWUgbW9kaWZpY2F0aW9ucyBpbiB0 Yy1pMzg2LmMgYWZ0ZXIgcmVvcmRlciBpMzg2LW9wYy50YmwuDQoNCmRpZmYgLS1naXQgYS9nYXMv Y29uZmlnL3RjLWkzODYuYyBiL2dhcy9jb25maWcvdGMtaTM4Ni5jDQppbmRleCA3YTg2YWZmMTgy OC4uZDk4OTUwYzdkZmQgMTAwNjQ0DQotLS0gYS9nYXMvY29uZmlnL3RjLWkzODYuYw0KKysrIGIv Z2FzL2NvbmZpZy90Yy1pMzg2LmMNCkBAIC0xNDQwMSw3ICsxNDQwMSw5IEBAIHN0YXRpYyBib29s IGNoZWNrX3JlZ2lzdGVyIChjb25zdCByZWdfZW50cnkgKnIpDQoNCiAgIGlmIChyLT5yZWdfZmxh Z3MgJiBSZWdSZXgyKQ0KICAgICB7DQotICAgICAgaWYgKGlzX2V2ZXhfZW5jb2RpbmcgKGN1cnJl bnRfdGVtcGxhdGVzLT5zdGFydCkpDQorICAgICAgaWYgKGlzX2V2ZXhfZW5jb2RpbmcgKGN1cnJl bnRfdGVtcGxhdGVzLT5zdGFydCkNCisgICAgICAgICAmJiAoKGN1cnJlbnRfdGVtcGxhdGVzLT5z dGFydCArIDEgPj0gY3VycmVudF90ZW1wbGF0ZXMtPmVuZCkNCisgICAgICAgICAgICAgfHwgKGlz X2V2ZXhfZW5jb2RpbmcgKGN1cnJlbnRfdGVtcGxhdGVzLT5zdGFydCArIDEpKSkpDQogICAgICAg IGkudmVjX2VuY29kaW5nID0gdmV4X2VuY29kaW5nX2V2ZXg7DQoNCiAgICAgICBpZiAoIWNwdV9h cmNoX2ZsYWdzLmJpdGZpZWxkLmNwdWFweF9mDQoNCldoYXQncyB5b3VyIG9waW5pb24/DQoNCj4g DQo+ID4+PiBAQCAtNzcyOCw2ICs3NzY2LDE0IEBAIG1hdGNoX3RlbXBsYXRlIChjaGFyIG1uZW1f c3VmZml4KQ0KPiA+Pj4gIAkgIGkubWVtc2hpZnQgPSBtZW1zaGlmdDsNCj4gPj4+ICAJfQ0KPiA+ Pj4NCj4gPj4+ICsgICAgICAvKiBJZiB3ZSBjYW4gb3B0aW1pemUgYSBOREQgaW5zbiB0byBub24t TkREIGluc24sIGxpa2UNCj4gPj4+ICsJIGFkZCAlcjE2LCAlcjgsICVyOCAtPiBhZGQgJXIxNiwg JXI4LCB0aGVuIHJlbWF0Y2ggdGVtcGxhdGUuICAqLw0KPiA+Pj4gKyAgICAgIGlmIChvcHRpbWl6 ZSA9PSAxICYmIG9wdGltaXplX05ERF90b19ub25OREQgKHQpKQ0KPiA+Pg0KPiA+PiBTbyB5b3Ug ZG8gdGhpcyBvcHRpbWl6YXRpb24gYXQgLU8xLCBidXQgbm90IGF0IC1PMj8gSW1vIHRoZSAiPT0g MSINCj4gPj4gc2ltcGx5IG5lZWRzIGRyb3BwaW5nLiBGdXJ0aGVybW9yZSB0aGUge25vb3B0aW1p emV9IGFuZCB7ZXZleH0gcHNldWRvDQo+ID4+IHByZWZpeGVzIG5lZWQgcmVzcGVjdGluZy4gUXVp dGUgbGlrZWx5IHJlc3BlY3Rpbmcge2V2ZXh9IHdvdWxkDQo+ID4+IGVsaW1pbmF0ZSB0aGUgbmVl ZCBmb3IgdGhlIGV4cGxpY2l0IC5oYXNfbmYgY2hlY2sgaW4gdGhlIGhlbHBlcg0KPiA+PiBmdW5j dGlvbiwgYXMgSSBleHBlY3QgLnZlY19lbmNvZGluZyB0byBiZSBzZXQgYWxvbmdzaWRlIHRoYXQg Yml0DQo+ID4+IGFueXdheS4gRnVydGhlciBxdWl0ZSBsaWtlbHkgcmVzcGVjdGluZyB7ZXZleH0g aGVyZSB3aWxsIG1lYW4gdGhhdCBpbiBwYXRjaCAzDQo+IHlvdSBuZWVkIHRvIGludHJvZHVjZSBh IG5ldyBlbnVtZXJhdG9yIChlLmcuDQo+ID4+IHZleF9lbmNvZGluZ19lZ3ByLCB2YWd1ZWx5IHNp bWlsYXIgdG8gdmV4X2VuY29kaW5nX2V2ZXg1MTIpLCB0byBhdm9pZA0KPiA+PiBzZXR0aW5nIC52 ZWNfZW5jb2RpbmcgdG8gdmV4X2VuY29kaW5nX2V2ZXggd2hlbiBhbiBlR1BSIGlzIHBhcnNlZC4N Cj4gPj4NCj4gPj4gQXMgdG8gb3B0aW1pemF0aW9uIGxldmVsOiBJbiBidWlsZF92ZXhfcHJlZml4 KCkgd2UgbGV2ZXJhZ2UgQyBvbmx5IGF0DQo+ID4+IC1PMiBvciBoaWdoZXIgKGluY2x1ZGluZyAt T3MpLiBXZSBtYXkgd2FudCB0byBiZSBjb25zaXN0ZW50IGluIHRoaXMNCj4gPj4gcmVnYXJkIGhl cmUgKGkuZS4gYnkgYW4gZXh0cmEgY2hlY2sgaW4gdGhlIGhlbHBlciBmdW5jdGlvbikuDQo+ID4+ DQo+ID4NCj4gPiBJdCdzIGEgbWlzdGFrZSwgSSBoYXZlIGZpeGVkIGl0LiBUaGUgY29uZGl0aW9u cyB3aWxsIGJlLiBJIHdpbGwgdHJ5IGxhdGVyLCBhZnRlciB0aGUgTkYNCj4gcGF0Y2ggaXMgZG9u ZSwgdG8gc2VlIGlmIHRoZSBjb25zdHJhaW50IGkuaGFzX25mIGNhbiBiZSByZW1vdmVkIG9yIG5v dC4NCj4gPg0KPiA+ICAgICAgICAvKiBJZiB3ZSBjYW4gb3B0aW1pemUgYSBOREQgaW5zbiB0byBu b24tTkREIGluc24sIGxpa2UNCj4gPiAgICAgICAgICBhZGQgJXIxNiwgJXI4LCAlcjggLT4gYWRk ICVyMTYsICVyOCwgdGhlbiByZW1hdGNoIHRlbXBsYXRlLiAgKi8NCj4gPiAtICAgICAgaWYgKG9w dGltaXplID09IDEgJiYgb3B0aW1pemVfTkREX3RvX25vbk5ERCAodCkpDQo+ID4gKyAgICAgIGlm ICghaS5ub19vcHRpbWl6ZSAmJiBpLnZlY19lbmNvZGluZyAhPSB2ZXhfZW5jb2RpbmdfZXZleA0K PiA+ICsgICAgICAgICAmJiBvcHRpbWl6ZSAmJiBvcHRpbWl6ZV9ORERfdG9fbm9uTkREICh0KSkN Cj4gPiAgICAgICAgIHsNCj4gDQo+IFJlZ2FyZGxlc3Mgb2Ygd2hhdCB0aGUgZmluYWwgZXhwcmVz c2lvbiBpcyBnb2luZyB0byBiZSwgcGxlYXNlIGtlZXAgdGhlIGNoZWNrIG9mDQo+ICJvcHRpbWl6 ZSIgZmlyc3QsIHN1Y2ggdGhhdCB0aGUgY29tbW9uIGNhc2Ugb2Ygb3B0aW1pemF0aW9uIGJlaW5n IGRpc2FibGVkIHdpbGwNCj4gYmUgaW1wYWN0ZWQgYXMgbGl0dGxlIGFzIHBvc3NpYmxlLg0KPg0K DQpPa2F5Lg0KIA0KPg0KPiA+Pj4gKwl7DQo+ID4+PiArCSAgdCA9IGN1cnJlbnRfdGVtcGxhdGVz LT5zdGFydCAtIDE7DQo+ID4+DQo+ID4+IEFzIHBlciBhIHJlbWFyayBmdXJ0aGVyIHVwLCB0aGlz IGFkanVzdG1lbnQgY291bGQgYmUgYXZvaWRlZCBpZiB0aGUNCj4gPj4gTkQgdGVtcGxhdGVzIGNh bWUgYWhlYWQgb2YgdGhlIGxlZ2FjeSBvbmVzLiBUaGV5IGNhbid0IGJlIHdyb25nbHkNCj4gPj4g dXNlZCBpbiBwbGFjZSBvZiB0aGUgbGVnYWN5IG9uZXMsIGR1ZSB0byB0aGUgZXh0cmEgb3BlcmFu ZCB0aGV5DQo+ID4+IHJlcXVpcmUuIFRoZW4gYSBjb21tZW50IGhlcmUgd291bGQgbWVyZWx5IHBv aW50IG91dCB0aGlzIG9yZGVyaW5nDQo+ID4+IGFzcGVjdC4gQnV0IG9mIGNvdXJzZSBjYXJlIHdp bGwgdGhlbiBuZWVkIHRvIGJlIHRha2VuIHRvIG5vdCBnbyBwYXN0DQo+ID4+IGkzODZfb3B0YWJb XSdzIGJvdW5kcyAoYnkgaGF2aW5nIHN1aXRhYmx5IG9yZGVyZWQgY29uZGl0aW9uYWxzIHdoZW4N Cj4gPj4gbG9va2luZyBmb3Igd2hldGhlciB0aGVyZSBpcyBhbiBhbHRlcm5hdGl2ZSB0ZW1wbGF0 ZSBpbiB0aGUgZmlyc3QgcGxhY2U7IGFnYWluDQo+IHNlZSB0aGUgcmVzcGVjdGl2ZSByZW1hcmsg ZnVydGhlciB1cCkuDQo+ID4+DQo+ID4NCj4gPiBZZXMsIGlmIHdlIHJlb3JkZXIgdGhlIHRlbXBs YXRlJ3Mgb3JkZXIsIEkgd2lsbCByZW1vdmUgdGhlIGxpbmUuIE9ubHkgb25lDQo+IGV4YW1wbGUg b2YgYSBwb3NzaWJsZSBpbXBsZW1lbnRhdGlvbiBpcyBnaXZlbiBoZXJlOg0KPiA+DQo+ID4gICAg ICAgICB9DQo+ID4NCj4gPiArICAgICAgYm9vbCBoYXZlX2NvbnZlcnRlZF9ORERfdG9fbm9uTkRE ID0gZmFsc2U7DQo+ID4gKyAgICAgIGkzODZfaW5zbiB0bXBfaTsNCj4gPiArDQo+ID4gKyAgICAg IGlmICghaS5ub19vcHRpbWl6ZSAmJiBpLnZlY19lbmNvZGluZyAhPSB2ZXhfZW5jb2RpbmdfZXZl eA0KPiA+ICsgICAgICAgICAmJiBvcHRpbWl6ZSAmJiAhaGF2ZV9jb252ZXJ0ZWRfTkREX3RvX25v bk5ERA0KPiA+ICsgICAgICAgICAmJiBjb252ZXJ0X05ERF90b19ub25OREQgKHQpKQ0KPiA+ICsg ICAgICAgew0KPiA+ICsgICAgICAgICBoYXZlX2NvbnZlcnRlZF9ORERfdG9fbm9uTkREID0gdHJ1 ZTsNCj4gPiArICAgICAgICAgdG1wX2kgPSBpOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiAg ICAgICAgLyogV2UndmUgZm91bmQgYSBtYXRjaDsgYnJlYWsgb3V0IG9mIGxvb3AuICAqLw0KPiA+ ICAgICAgICBicmVhazsNCj4gPiAgICAgIH0NCj4gPiBAQCAtNzc4Nyw2ICs3ODAyLDkgQEAgbWF0 Y2hfdGVtcGxhdGUgKGNoYXIgbW5lbV9zdWZmaXgpDQo+ID4gICAgICAgIHJldHVybiBOVUxMOw0K PiA+ICAgICAgfQ0KPiA+DQo+ID4gKyAgaWYgKGhhdmVfY29udmVydGVkX3RvX25vbk5ERCkNCj4g PiArICAgIGkgPSB0bXBfaTsNCj4gPiArDQo+ID4gICAgaWYgKCFxdWlldF93YXJuaW5ncykNCj4g DQo+IEkgaGF2ZSB0byBhZG1pdCB0aGF0IEkgZG9uJ3QgdW5kZXJzdGFuZCB3aGF0IHRoZSBnb2Fs IGlzIG9mIHRoaXMgcGxheWluZyB3aXRoIGkgYW5kDQo+IHRtcF9pLg0KPg0KDQpUaGlzIHZhcmlh YmxlIGhhcyBiZWVuIHJlbW92ZWQgaW4gdGhlIG5ldyB2ZXJzaW9uLCBzbyB0aGVyZSdzIG5vIG5l ZWQgdG8gdGhpbmsgYWJvdXQgaXQuDQoNCj4gDQo+ID4+IEZvciBhbGwgb2YgdGhlIGNoYW5nZXMg YmVsb3cgKHdoaWNoIGFyZSBhIGxpdHRsZSBoYXJkIHRvIHJldmlldyBpbg0KPiA+PiBlbWFpbCks IGFpdWkgdGhleSBvbmx5IGFkZCBDIGFzIG5lZWRlZC4gSSBvbmNlIGFnYWluIHdvdWxkIHByZWZl ciBpZg0KPiA+PiB0aGF0IGF0dHJpYnV0ZSBjb3VsZCBiZSBhZGRlZCByaWdodCBhcyB0aGUgdGVt cGxhdGVzIGFyZSBpbnRyb2R1Y2VkLA0KPiA+PiB3aXRoIHRoZSBkZXNjcmlwdGlvbiBzdGF0aW5n IHRoZSBpbnRlbnRpb24gYW5kIHRoYXQgdGhlIGFjdHVhbCB1c2Ugb2YNCj4gPj4gdGhlIGF0dHJp YnV0ZSB3aWxsIGJlIGFkZGVkIGxhdGVyIChpLmUuIGFzIGV4cHJlc3NlZCBlYXJsaWVyIGFscmVh ZHkgZm9yIE5GKS4NCj4gPg0KPiA+IEFmdGVyIHRoZSBjaGFuZ2VzIGFyZSBmaW5hbGl6ZWQsIEkn bGwgYnJlYWsgb3V0IHRoaXMgcGFydCBvZiB0aGUgbW9kaWZpY2F0aW9uIHRoYXQNCj4gYWRkcyB0 aGUgQyB0byBsaWxpIHNvIHNoZSBjYW4gcHV0IGl0IHdoZXJlIGl0IGJlbG9uZ3MuDQo+IA0KPiBI bW0sIHRoYXQgd2lsbCBuZWVkIGRvaW5nIGVhcmx5LCBhcyB0aGUgTkREIHBhdGNoIGlzIGhvcGVm dWxseSBnb2luZyB0byBsYW5kDQo+IHNvb24taXNoLiBTYW1lIGZvciB0aGUgdGVtcGxhdGUgcmUt b3JkZXJpbmcgKHdoaWNoIHdpbGwgbmVlZCBleHBsYWluaW5nIHdoZW4NCj4gcHVsbGVkIGFoZWFk LCBidXQgaXQgd2lsbCB3YW50IHB1bGxpbmcgYWhlYWQgdG8gcmVkdWNlIGNodXJuKS4NCj4gDQoN Ck9LLiBUaGVzZSBjaGFuZ2VzLCBpZiB0aGVyZSBhcmUgbm8gbWFqb3IgcHJvYmxlbXMsIEknbGwg Z2l2ZSBhIHBhdGNoIChUaGlzIHBhdGNoIHdpbGwgYmUgYXR0YWNoZWQgdG8gdGhpcyBlbWFpbCBm b3IgZG91YmxlLWNoZWNrLikgdG8gbGlsaSwgYW5kIHdyaXRlIGluIHRoZSBjaGFuZ2Vsb2cgdGhl IHJlYXNvbiB3aHkgd2UgbWFkZSB0aGVzZSBjaGFuZ2VzLg0KDQpCUnMsDQpMaW4NCg==