From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.20]) by sourceware.org (Postfix) with ESMTPS id F00C43858C53 for ; Fri, 8 Dec 2023 15:21:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F00C43858C53 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 F00C43858C53 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=134.134.136.20 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1702048889; cv=pass; b=NHKsYLTCuuhxYCmmV2w5fsKv39y6nuGt97cc6Z386Z62XpI4MbnoHnwJJCHKfah6S9gWc6waYCWeqyLCFGR4CG765P2OlxaPRj+Tsk65mryuEwC63mXtwSaN/Tx0u/lmQcgj0nXJLm9FUffEyJ/JzsH4zOul8p3acSztijPj+C4= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1702048889; c=relaxed/simple; bh=qlnEZXamHnKVzXMl0031IUTsnNaHOShGVRUrfvEIEvw=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=xVk38SH4J9n3LdN3ASonzxXty4Dk6T5YPqyI6wTzYAAJxL959p7P54gFzAHSLYTKFro3Tyjh9kC0jL5ie0hZu5biInNeypAssg0A3MWVDGlHwyWihR3tKhLm3tGJNAuAthbAJR8sOKayCMjWqFZFA4P8kTBzNgBoZU6IMAjbrDk= 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=1702048878; x=1733584878; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=qlnEZXamHnKVzXMl0031IUTsnNaHOShGVRUrfvEIEvw=; b=mASQ6AGERp0eM4Sr6esjnDZF0hoZLrdSRKl2jvFOz5nwwJxiUYYBvqsY xl5b95JeIWuIZxkgCjmKp0bjJ0G7ZaYlBI7GiptXyvQ6d1Pfl04Cf6SLw K8L8DsG5iKfadzKNAvJj+LQN7YIDD352sRRmAemwWtFLH90ZbBDYNp4cb HL5bqywGxvAhEwHqCtXpF7AhAUxzCVBIzVEh118pUUtSbg42Vepeu80n8 CkGMVpKrwap97tuHRei20q2TF3298Sj8NLQHkKX3WJash6TTGqWTJEtGW 1RsPPkJcnpiWwDy9ls8V/SKVIrUHTQSfg2HdGll8o7CWbGi/3jYIAfm8I g==; X-IronPort-AV: E=McAfee;i="6600,9927,10918"; a="384823049" X-IronPort-AV: E=Sophos;i="6.04,261,1695711600"; d="scan'208";a="384823049" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Dec 2023 07:21:17 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10918"; a="765520884" X-IronPort-AV: E=Sophos;i="6.04,261,1695711600"; d="scan'208";a="765520884" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga007.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 08 Dec 2023 07:21:17 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Fri, 8 Dec 2023 07:21:17 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Fri, 8 Dec 2023 07:21:16 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Fri, 8 Dec 2023 07:21:16 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.169) 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.35; Fri, 8 Dec 2023 07:21:16 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LfDI3HJZZW/JYCpLw6qSm2QT8qmJlznEpkR/kl/VI228502e75swD3BP7W/evql5MpzEgxzqazDx7+qYJMAPQUUwOU/Y2cIzU9dtOuSybEp/2CXANrgxS71sSsIVbQ4cZHn7uvyTqM6JDLqM/BTpsxWw1YRvQbYMgI/NEWynRuhUM+9hOO0qjs+ylJtj0idH8GUkf39WmjtaB8WcsUSYuneiZH0eeBiUoQRHVy6uK2TI7dHJoCOCOlJZXkNnP17C/wiXLtWk5EEXNuT2fybg7xWVHA7J41C2UoDwf0c9DgtHGAVpgjxoC1vyCTfHIH5nIntl8k+U7KD7qfqu++V0xA== 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=qlnEZXamHnKVzXMl0031IUTsnNaHOShGVRUrfvEIEvw=; b=cYRlMRGTBWmpx4zfOYUpaQA5wANw+1tEYDIIYEZAneTAmnzcnrc+hlxQdo79yIm346gIVcN8GzLz5D4rgAflgvhvRIyVniKYVmOYBYZkIbsWmXIDC6LQGZz5jG+s1ViAmLmMIqcaJSlhEOsjBwfB2eBA/feQIX+G3wGf8v8RT5xClVlgvQhx0aQesm5MPAPvNgXmKMC/p02kwsvu9IMt+gz6d0jueF3K2XXcMCMK5prao0S5uXMxL8QuWozdpV6RR5Nt7Gzh/P1D41joW8Y/7tBUGK3yMStJK3qFDhqY40TFK0b5+RRIAJs1OeKdHwegQDmdGVlOGwr2ioULvh/XIA== 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 SJ0PR11MB5600.namprd11.prod.outlook.com (2603:10b6:a03:3ab::16) by CH3PR11MB8383.namprd11.prod.outlook.com (2603:10b6:610:171::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.28; Fri, 8 Dec 2023 15:21:14 +0000 Received: from SJ0PR11MB5600.namprd11.prod.outlook.com ([fe80::f925:7c4b:8747:4549]) by SJ0PR11MB5600.namprd11.prod.outlook.com ([fe80::f925:7c4b:8747:4549%3]) with mapi id 15.20.7068.028; Fri, 8 Dec 2023 15:21:14 +0000 From: "Cui, Lili" To: "Beulich, Jan" CC: "Lu, Hongjiu" , "binutils@sourceware.org" Subject: RE: [PATCH v3 4/9] Support APX GPR32 with extend evex prefix Thread-Topic: [PATCH v3 4/9] Support APX GPR32 with extend evex prefix Thread-Index: AQHaHqSBoOJdrIV6akyqA3/eSh9S+7Cd12QAgAEdKVA= Date: Fri, 8 Dec 2023 15:21:14 +0000 Message-ID: References: <20231124070213.3886483-1-lili.cui@intel.com> <20231124070213.3886483-4-lili.cui@intel.com> <546c8890-0526-49a3-8310-319358bf55c2@suse.com> In-Reply-To: <546c8890-0526-49a3-8310-319358bf55c2@suse.com> 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: SJ0PR11MB5600:EE_|CH3PR11MB8383:EE_ x-ms-office365-filtering-correlation-id: 6330f64f-fd8b-4be0-9dd4-08dbf8015116 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: zfBDCYE3LfJqer5WlzJu2zwZDbSMMYBR0+DLFnaC1rXVbk8rkkMgCCbvOTi1Gr5B+fZBuRq0xdEDpSr5fdUQ9G6QkAFzNIjLhbQw/j0tN7dOyanCyXF6FeqJyg0w4JMDAvjqBvewmQwW/IT+uHW4qmN3pNppMtfwTgBJrKlaxv2ozopTLxeVlejnjyc6gMC35Uu09vR8g7HA7uImXeHpb7DLFMQELgv/dxFT5+/KkGb35RRw4O1FVzFaickEeYiv6LzwrsIuRe8cQKBdNgSJnYrkjMDrOil1B6p1i+ZTSwV+HclW2P0WycdFsIytshVPfhOe2abfeZ0EyHxJSeF+XpFZKAyC/GBT14zu5jsFNuCEnnBNR5MD8E5yXQlaiXLXuI+2H6fl+oG8BUlkaban2IZkyWYgvQkscizKhAQPLc3e0sjJzapTEKsao1vyKfjlIv7wWKXyA/qW0h+wuRtEsL/tErLPRCPPj3LYTD0mYLnt2igLTvL1Stg7OiwgZiHUF+i8k4/lhH72VJiRdCB2MXYtL7Z+T78j0Bk9kJXZo2j/0kgg2Fkn/VF6BdHD6roVjFSQHo0OLTKymwiHyXucQkfbFdy+7lx5FTnHshm+CLlqEt5Zde+YJwIYN/AO3hZv x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR11MB5600.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(346002)(396003)(376002)(136003)(366004)(230922051799003)(1800799012)(64100799003)(451199024)(186009)(55016003)(38070700009)(38100700002)(76116006)(66946007)(66556008)(54906003)(66476007)(66446008)(64756008)(6916009)(82960400001)(33656002)(86362001)(122000001)(83380400001)(26005)(9686003)(53546011)(7696005)(6506007)(2906002)(316002)(71200400001)(478600001)(30864003)(5660300002)(4326008)(8676002)(8936002)(41300700001)(52536014);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NG5ENS9janEwbjJWekI2a2l5Y3lzVGVrQWplcmZMczRaOGFkbHNSYUY2Yysy?= =?utf-8?B?cUhnb1hEM3NtMFRwRW9BaW5yWUZQemdqamJpTjIwbEtGQ1NRQ0plbWFiblR4?= =?utf-8?B?R1RweGVzaldlZWp2ekVWcDc4QVNFY1ZkamxqUFF4Nkd4S3FWOVF5aTFQWjdZ?= =?utf-8?B?ekE3WEttWlc1cnB1OUpRVlJKa0Fwdkd4ZWZGZ0Y5YlBCeHVHZ0FUczZFdzJG?= =?utf-8?B?MHVuZmRKdzNOYlpmTHhLaEdaWGVSblBsWjVoWmxqYVpwTjM2VDA5cEdQK0pW?= =?utf-8?B?QzJ4WEFNazRzQnlsY0h5SEptUlNaVTJzcWdlYlNVRGRheUQvLzd3Z1RYcEYw?= =?utf-8?B?d1dBMmJSYzMyMmdxVWFPRWhDUnlnd3Avb0JQR2NuVUN5c0Y1K3ROR0FPaWpl?= =?utf-8?B?T2Q0dU9DMlVJK3c3dlFsVmpJckcxTUwrNVltcVA2MTkvV3ptcThjVE9oTm1j?= =?utf-8?B?YjdWWjVSSUlPYXdhWVNiWE9ZdVRsVnIycEIvNVFpcEVNc1AwOXVta0FQTTRH?= =?utf-8?B?WHZraGxDN1ZCdzFEUHc4Q3RzU0U0cnlOMlNiWU1FUVB0aWhFS1BoNEw0aFQx?= =?utf-8?B?NHppUHlKamJRK0ZRNE9xTHVFUmgzbTUwRVZYTmtyNkIrTWZSa2JsNXJPYlZZ?= =?utf-8?B?WVQ2RVhodVpQeGUwQjN0YllJOGNzUkV4MytkZWN1VHczUnhNV29veTNueTJi?= =?utf-8?B?Q3YvRHRNdDYxNzNaR2E5OEVTd3ZPdll6c1IxUVROd01KRnpZNWRCT2k5eFp2?= =?utf-8?B?WXNvMGZzNjk0V0U3WEhHKzJUdzFiOXA2MXNCOHJEV3NjYmI5MUFNUVh2dlFp?= =?utf-8?B?L1lzOUZpbkdnNUN4bU03eEFYSmtxUTlZOExUWVFJU0xXdTVqZEdaa3ptQWNv?= =?utf-8?B?ZUN6UmNIYklpc3B4RHpYR3lmb09sRXh0ODE2NnBLNkdBandRbDduNVpEZlJJ?= =?utf-8?B?TWNXN3NuUGlxTjNhU0Yzd1NxMTZpVjFlVndXTnV4RE9zeko1U1RqaW9QN3Ny?= =?utf-8?B?SlY0N1JoY2l5Q2lqcGRDeVJ2Q2tkR0s5bEQzQkJZbTBhajdaVUI0bmR1RitH?= =?utf-8?B?d3B5WURLRXh2OUFwOC9BMUhVUkphWW1xRGwxQkFxcWdLNVhJTEhPU3FlWkEw?= =?utf-8?B?dkZEVjA5cko5QmQ1K2hJbEtiVEZZZmpGTTh5UDFnMjNXbldxSVZRNDlzcXpY?= =?utf-8?B?eTNUSk9aM2doRUlhWTZIL204cnRsRFluaDU0ck1MMyswSCtXZ0h4SnRUZEFE?= =?utf-8?B?bzF5V3RQNUJKYzdNVG5mdzhXa0EwQlBNeTZ4T2dacUZIMkdSL2t3OXZMK2ww?= =?utf-8?B?K2k5Rkk3T3l5WTFIRll0cmhxVkl2Um1HZGZHTEExMEFvbHk3RW9iK2ZUV253?= =?utf-8?B?S2ZWQVNnYnVIZjl0MEV4dGtENktxbkpKb0ZHbEphWktzeVpBM0ZscXc3Nk05?= =?utf-8?B?Z2JuTVVYanh4a21hTU15V2tMK0xBTFlzV05sRjZIbkptdm9adkt5S2cyWmhP?= =?utf-8?B?cUs1M1RmMnhGbTltRTFpb1ErakNkYVlCRWwraE9IWmVqTng3b01wYWVJeHow?= =?utf-8?B?aGw4QXVyQXNyMVF0S0dTVXF5bzFXQ2F2QzBkOXl4Yi9Rb2dDWHNzamkyYWpM?= =?utf-8?B?TTI4aDhKL08veWNTZkNodzJJUXJnTGNWQXh0Lytnelh2YjRYZ0JpL2EzeW5L?= =?utf-8?B?RytvZE9ZTW04VDBtaFo5dS82b0xkL3FVTzFRUDNQdU81S3RadTVZRlFYbXpw?= =?utf-8?B?UjRpRlhIZmVYaXpNczBldVB4OVpHNHhGNGt4ekpKdEw2OUVsUTI5VkU4Y1dJ?= =?utf-8?B?aUFhcGtmdk9EYnRlMXNZYjd5dUhYcFJqOHZIVnRuY1VZZ1QveHZobmRHYlQw?= =?utf-8?B?R0hQWVkwaitQZFVkYTlyT1RxZ3VXYzl3aHk3eGZocjh5cVBUVFIvUzhoUEQ1?= =?utf-8?B?Qy9Lb3B2RVVmRVJtTGlxUzMwb2VaZHVqY0lPYngxV2UxSExwcWtkLytvL2Vt?= =?utf-8?B?c3dsU3h3NFhlRmQwR3k0OHFzbEtVcWR6ZU51Vkx6eDdRejRzOVkwdGlRUTMx?= =?utf-8?B?OFRhK1lOYm13L1ptZVVQbjhaci9yazZNMDNXYllBemdRSldkOXZyQ1N0RVFu?= =?utf-8?Q?mOgMu+dO6XziHv3Q2G5LLmWrW?= 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: SJ0PR11MB5600.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6330f64f-fd8b-4be0-9dd4-08dbf8015116 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Dec 2023 15:21:14.1624 (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: uds6eFWQ3fqcxGPIH6mp+1zCkkHFP4aML1V9O1oINmmIYsaqHgoqT0VM2/6FQOeEsf9Y0YU2Vd7bSHv+41SWgg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR11MB8383 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-4.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_MSPIKE_H3,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: DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSmFuIEJldWxpY2ggPGpi ZXVsaWNoQHN1c2UuY29tPg0KPiBTZW50OiBUaHVyc2RheSwgRGVjZW1iZXIgNywgMjAyMyA4OjM5 IFBNDQo+IFRvOiBDdWksIExpbGkgPGxpbGkuY3VpQGludGVsLmNvbT4NCj4gQ2M6IEx1LCBIb25n aml1IDxob25naml1Lmx1QGludGVsLmNvbT47IGJpbnV0aWxzQHNvdXJjZXdhcmUub3JnDQo+IFN1 YmplY3Q6IFJlOiBbUEFUQ0ggdjMgNC85XSBTdXBwb3J0IEFQWCBHUFIzMiB3aXRoIGV4dGVuZCBl dmV4IHByZWZpeA0KPiANCj4gT24gMjQuMTEuMjAyMyAwODowMiwgQ3VpLCBMaWxpIHdyb3RlOg0K PiA+IC0tLSBhL2dhcy9jb25maWcvdGMtaTM4Ni5jDQo+ID4gKysrIGIvZ2FzL2NvbmZpZy90Yy1p Mzg2LmMNCj4gPiBAQCAtNDA5LDYgKzQwOSw5IEBAIHN0cnVjdCBfaTM4Nl9pbnNuDQo+ID4gICAg ICAvKiBDb21wcmVzc2VkIGRpc3A4Kk4gYXR0cmlidXRlLiAgKi8NCj4gPiAgICAgIHVuc2lnbmVk IGludCBtZW1zaGlmdDsNCj4gPg0KPiA+ICsgICAgLyogTm8gQ1NQQVpPIGZsYWdzIHVwZGF0ZS4q Lw0KPiA+ICsgICAgYm9vbCBoYXNfbmY7DQo+IA0KPiBBcyBiZWZvcmUgSSBkb24ndCBzZWUgdGhl IHBvaW50IGluIGFkZGluZyB0aGlzIGZpZWxkIHdoZW4gaXQncyBub3QgdXNlZCBpbiB0aGUNCj4g Y2hhbmdlLiBOb3RlIHRoYXQgdGhpcyBpcyB1bnJlbGF0ZWQgdG8gdGhlIGludHJvZHVjdGlvbiBv ZiB0aGUgTkYgYXR0cmlidXRlIHJpZ2h0DQo+IGhlcmUsIHdoaWNoIGhhcyBhIHJlYXNvbi4NCj4g DQoNCk1vdmVkLg0KDQo+ID4gQEAgLTM2NzAsMTAgKzM2NzMsMTEgQEAgaW5zdGFsbF90ZW1wbGF0 ZSAoY29uc3QgaW5zbl90ZW1wbGF0ZSAqdCkNCj4gPg0KPiA+ICAgIC8qIER1YWwgVkVYL0VWRVgg dGVtcGxhdGVzIG5lZWQgc3RyaXBwaW5nIG9uZSBvZiB0aGUgcG9zc2libGUgdmFyaWFudHMuICAq Lw0KPiA+ICAgIGlmICh0LT5vcGNvZGVfbW9kaWZpZXIudmV4ICYmIHQtPm9wY29kZV9tb2RpZmll ci5ldmV4KQ0KPiA+IC0gIHsNCj4gPiAtICAgICAgaWYgKChtYXliZV9jcHUgKHQsIENwdUFWWCkg fHwgbWF5YmVfY3B1ICh0LCBDcHVBVlgyKQ0KPiA+IC0JICAgfHwgbWF5YmVfY3B1ICh0LCBDcHVG TUEpKQ0KPiA+IC0JICAmJiAobWF5YmVfY3B1ICh0LCBDcHVBVlg1MTJGKSB8fCBtYXliZV9jcHUg KHQsIENwdUFWWDUxMlZMKSkpDQo+ID4gKyAgICB7DQo+ID4gKyAgICAgIGlmIChBVlg1MTJGKENw dUFWWCkgfHwgQVZYNTEyRihDcHVBVlgyKSB8fCBBVlg1MTJGKENwdUZNQSkNCj4gPiArCSAgfHwg QVZYNTEyVkwoQ3B1QVZYKSB8fCBBVlg1MTJWTChDcHVBVlgyKSB8fA0KPiBBUFhfRihDcHVDTVBD Q1hBREQpDQo+ID4gKwkgIHx8IEFQWF9GKENwdUFNWF9USUxFKSB8fCBBUFhfRihDcHVBVlg1MTJG KSB8fA0KPiBBUFhfRihDcHVBVlg1MTJEUSkNCj4gPiArCSAgfHwgQVBYX0YoQ3B1QVZYNTEyQlcp IHx8IEFQWF9GKENwdUJNSSkgfHwgQVBYX0YoQ3B1Qk1JMikpDQo+ID4gIAl7DQo+ID4gIAkgIGlm IChuZWVkX2V2ZXhfZW5jb2RpbmcgKCkpDQo+IA0KPiBUaGVyZSBhcmUgc2V2ZXJhbCBpc3N1ZXMg aGVyZToNCj4gLSBXaHkgZGlkIHlvdSBuZWVkIHRvIGNoYW5nZSAodG8gdGhlIHdvcnNlKSB0aGUg b3JpZ2luYWwgY29kZT8NCj4gLSBXaHkgZGlkIHlvdSBub3QgbW9kZWwgdGhlIGFkZGl0aW9uIGFm dGVyIHRoYXQgb3JpZ2luYWwgY29kZT8NCj4gLSBIb3cgY29tZSBBUFhfRiAoQ3B1QVZYNTEyKikg Y29uc3RydWN0cyBhcHBlYXIgaGVyZSwgd2hlbiBubyBBVlg1MTINCj4gaW5zbiBjYW4gYmUgVkVY LWVuY29kZWQ/DQoNCiBJIGRvbid0IHVuZGVyc3RhbmQgd2hhdCB5b3UgbWVhbiwgd2UgaGF2ZSB0 aGlzIGNvbWJpbmF0aW9uLg0KDQprbW92PGRxPiwgMHg8ZHE6a3BmeD45MCwgQVZYNTEyQlcmKEFW WDUxMkJXfEFQWF9GKSwgTW9kcm18VmV4MTI4fEVWZXgxMjh8U3BhY2UwRnxWZXhXMXw8ZHE6a3Zz ej58Tm9TdWYsIHsgUmVnTWFza3w8ZHE6ZWxlbT58VW5zcGVjaWZpZWR8QmFzZUluZGV4LCBSZWdN YXNrIH0NCg0KPiAtIElmIHRoZXNlIG5ldyBtYWNyb3MgYXJlIHJlYWxseSBuZWVkZWQgZm9yIHdo YXRldmVyIHJlYXNvbiwgdGhleSBzaG91bGRuJ3QNCj4gICBiZSBhZGRlZCB0byBvcGNvZGVzL2kz ODYtb3BjLmggd2hlbiB0aGV5J3JlIHVzZWZ1bCBvbmx5IGluIHRoZSBhc3NlbWJsZXIuDQo+IC0g U3R5bGUgcmVxdWlyZXMgYSBibGFuayBiZWZvcmUgdGhlIG9wZW5pbmcgcGFyZW50aGVzaXMgaW4g ZnVuY3Rpb24NCj4gICBpbnZvY2F0aW9ucyAod2hpY2ggYWxzbyBjb3ZlcnMgZnVuY3Rpb24tbGlr ZSBtYWNybyBpbnZvY2F0aW9ucykuDQo+IA0KPiBJIHRoaW5rIEkgYXNrZWQgYmVmb3JlOiBIb3cg aXMgaXQgdGhhdCB5b3UgZ2V0IGF3YXkgd2l0aG91dCBhbHRlcmluZw0KPiBjcHVfZmxhZ3NfbWF0 Y2goKSwgY29udGFpbmluZyByZWxhdGVkIGFuZCBxdWl0ZSBzaW1pbGFyIGxvZ2ljPw0KPiANCg0K Rm9yIHRoZSBvcmlnaW5hbCBsb2dpYyAoIC4uLiB8fCAuLi4gKSAmJiAoIC4uLiB8fCAuLi4pLCB0 aGUgY29udGVudCBpbiB0aGUgZmlyc3QgYnJhY2tldCBhbmQgdGhlIGNvbnRlbnQgaW4gdGhlIGZv bGxvd2luZyBicmFja2V0cyBjYW4gYmUgY29tYmluZWQgYXJiaXRyYXJpbHkuIEkgdGhpbmsgaXQg aXMgSW5hY2N1cmF0ZS4gU28gSSBnaXZlIGV4YW1wbGVzIG9uZSBieSBvbmUgZm9yIGVhY2ggaWRl bnRpZmllZCBjb21iaW5hdGlvbi4NCg0KSnVzdCBmb3VuZCBjcHVfZmxhZ3NfbWF0Y2goKSBoYXMg c2ltaWxhciBsb2dpYywgSSB0aGluayB0aGUgZm9sbG93aW5nIGlzIHRoZSBvbmx5IGNvZGUgcmVs YXRlZCB0byBDUFVJRCBhbGVydHMsIGJ1dCBub25lIG9mIG91ciBjb21iaW5hdGlvbnMgYXJlIHJl bGF0ZWQgdG8gY3B1YXZ4Lg0KDQogICAgICAgICAgaWYgKGFsbC5iaXRmaWVsZC5jcHVhdngpDQog ICAgICAgICAgICB7DQogICAgICAgICAgICAgIC8qIFdlIG5lZWQgdG8gY2hlY2sgU1NFMkFWWCB3 aXRoIEFWWC4gICovDQogICAgICAgICAgICAgIGlmICghdC0+b3Bjb2RlX21vZGlmaWVyLnNzZTJh dngNCiAgICAgICAgICAgICAgICAgIHx8IChzc2UyYXZ4ICYmICFpLnByZWZpeFtEQVRBX1BSRUZJ WF0pKQ0KICAgICAgICAgICAgICAgIG1hdGNoIHw9IENQVV9GTEFHU19BUkNIX01BVENIOw0KICAg ICAgICAgICAgfQ0KDQo+ID4gQEAgLTM4NzMsNiArMzg3NywxNCBAQCBpc19hbnlfdmV4X2VuY29k aW5nIChjb25zdCBpbnNuX3RlbXBsYXRlICp0KQ0KPiA+ICAgIHJldHVybiB0LT5vcGNvZGVfbW9k aWZpZXIudmV4IHx8IHQtPm9wY29kZV9tb2RpZmllci5ldmV4OyAgfQ0KPiA+DQo+ID4gK3N0YXRp YyBJTkxJTkUgYm9vbA0KPiA+ICtpc19hcHhfZXZleF9lbmNvZGluZyAodm9pZCkNCj4gPiArew0K PiA+ICsgIHJldHVybiBpLnJleDIgfHwgaS50bS5vcGNvZGVfc3BhY2UgPT0gU1BBQ0VfRVZFWE1B UDQNCj4gPiArICAgIHx8IChpLnZleC5yZWdpc3Rlcl9zcGVjaWZpZXINCj4gPiArCSYmIGkudmV4 LnJlZ2lzdGVyX3NwZWNpZmllci0+cmVnX2ZsYWdzICYgUmVnUmV4Mik7IH0NCj4gDQo+IElmIHlv dSB3YW50IHRoaXMgdG8gYmUgYSBmdW5jdGlvbiBkZXNwaXRlIGJlaW5nIHVzZWQganVzdCBvbmNl LCB5b3UnbGwgbmVlZCB0bw0KPiBhZGQgYSBjb21tZW50IG1lbnRpb25pbmcgdGhlIGNvbnN0cmFp bnQgd2hlbiBjYWxsaW5nIGl0IChvciBlbHNlIHRoZSB1c2Ugb2YNCj4gaS5yZXgyIGluIHBhcnRp Y3VsYXIgaXMgY29uZnVzaW5nKS4gSSdtIHN1cmUgSSBjb21tZW50ZWQgb24gdGhpcyBiZWZvcmUs IGFuZCBJDQo+IHRob3VnaHQgc3VjaCBhIGNvbW1lbnQgaGFkIGFscmVhZHkgYXBwZWFyZWQuDQo+ IA0KDQpJIGFsc28gaGF2ZSB0aGUgaW1wcmVzc2lvbiB0aGF0IGl0IHdhcyBhZGRlZCwgYW55d2F5 IEkgd2lsbCBhZGQgaXQuDQoNCisvKiBXZSBjYW4gdXNlIHRoaXMgZnVuY3Rpb24gb25seSB3aGVu IHRoZSBjdXJyZW50IGVuY29kaW5nIGlzIGV2ZXguICAqLw0KIHN0YXRpYyBJTkxJTkUgYm9vbA0K IGlzX2FweF9ldmV4X2VuY29kaW5nICh2b2lkKQ0KIHsNCg0KPiA+IEBAIC01NjU1LDE3ICs1Njkz LDE3IEBAIG1kX2Fzc2VtYmxlIChjaGFyICpsaW5lKQ0KPiA+ICAgICAgIGluc3RydWN0aW9uIGFs cmVhZHkgaGFzIGEgcHJlZml4LCB3ZSBuZWVkIHRvIGNvbnZlcnQgb2xkDQo+ID4gICAgICAgcmVn aXN0ZXJzIHRvIG5ldyBvbmVzLiAgKi8NCj4gPg0KPiA+IC0gIGlmICgoaS50eXBlc1swXS5iaXRm aWVsZC5jbGFzcyA9PSBSZWcgJiYgaS50eXBlc1swXS5iaXRmaWVsZC5ieXRlDQo+ID4gLSAgICAg ICAmJiAoaS5vcFswXS5yZWdzLT5yZWdfZmxhZ3MgJiBSZWdSZXg2NCkgIT0gMCkNCj4gPiAtICAg ICAgfHwgKGkudHlwZXNbMV0uYml0ZmllbGQuY2xhc3MgPT0gUmVnICYmIGkudHlwZXNbMV0uYml0 ZmllbGQuYnl0ZQ0KPiA+IC0JICAmJiAoaS5vcFsxXS5yZWdzLT5yZWdfZmxhZ3MgJiBSZWdSZXg2 NCkgIT0gMCkNCj4gPiAtICAgICAgfHwgKCgoaS50eXBlc1swXS5iaXRmaWVsZC5jbGFzcyA9PSBS ZWcgJiYgaS50eXBlc1swXS5iaXRmaWVsZC5ieXRlKQ0KPiA+IC0JICAgfHwgKGkudHlwZXNbMV0u Yml0ZmllbGQuY2xhc3MgPT0gUmVnICYmIGkudHlwZXNbMV0uYml0ZmllbGQuYnl0ZSkpDQo+ID4g LQkgICYmIChpLnJleCAhPSAwIHx8IGkucmV4MiAhPSAwKSkpDQo+ID4gKyAgaWYgKCgoaS50eXBl c1swXS5iaXRmaWVsZC5jbGFzcyA9PSBSZWcgJiYgaS50eXBlc1swXS5iaXRmaWVsZC5ieXRlDQo+ ID4gKwkmJiAoaS5vcFswXS5yZWdzLT5yZWdfZmxhZ3MgJiBSZWdSZXg2NCkgIT0gMCkNCj4gPiAr ICAgICAgIHx8IChpLnR5cGVzWzFdLmJpdGZpZWxkLmNsYXNzID09IFJlZyAmJiBpLnR5cGVzWzFd LmJpdGZpZWxkLmJ5dGUNCj4gPiArCSAgICYmIChpLm9wWzFdLnJlZ3MtPnJlZ19mbGFncyAmIFJl Z1JleDY0KSAhPSAwKQ0KPiA+ICsgICAgICAgfHwgKCgoaS50eXBlc1swXS5iaXRmaWVsZC5jbGFz cyA9PSBSZWcgJiYgaS50eXBlc1swXS5iaXRmaWVsZC5ieXRlKQ0KPiA+ICsJICAgIHx8IChpLnR5 cGVzWzFdLmJpdGZpZWxkLmNsYXNzID09IFJlZyAmJiBpLnR5cGVzWzFdLmJpdGZpZWxkLmJ5dGUp KQ0KPiA+ICsJICAgJiYgKGkucmV4ICE9IDAgfHwgaS5yZXgyICE9IDApKSkpDQo+IA0KPiBJJ20g aGF2aW5nIHRyb3VibGUgc3BvdHRpbmcgdGhlIGNoYW5nZSBoZXJlOiBUaGVyZSdzIGFuIG91dGVy IHBhaXIgb2YNCj4gcGFyZW50aGVzZXMgYmVpbmcgYWRkZWQsIGJ1dCB0aGF0J3MgZm9yIG5vIHJl YXNvbiB1bmxlc3MgdGhlcmUncyBhbm90aGVyDQo+IGNoYW5nZSB3ZWxsIGhpZGRlbi4gUGxlYXNl IGNsYXJpZnkuDQo+IA0KDQpSZW1vdmVkLg0KDQo+ID4gICAgICB7DQo+ID4gICAgICAgIGludCB4 Ow0KPiA+DQo+ID4gLSAgICAgIGlmICghaS5yZXgyKQ0KPiA+ICsgICAgICBpZiAoIWlzX2FweF9y ZXgyX2VuY29kaW5nICgpICYmICFpc19hbnlfdmV4X2VuY29kaW5nKCZpLnRtKSkNCj4gPiAgCWku cmV4IHw9IFJFWF9PUENPREU7DQo+IA0KPiBXaHkgdGhlIGNoYW5nZSB0byBpc19hcHhfcmV4Ml9l bmNvZGluZygpPyBJZiB0aGF0J3Mgd2FudGVkIC8gbmVlZGVkIGhlcmUsDQo+IHNob3VsZG4ndCB0 aGF0IGJlIHB1dCBpbiBwbGFjZSBieSB0aGUgZWFybGllciBwYXRjaD8NCj4NCg0KTW92ZWQgdG8g dGhlIGNvcnJlc3BvbmRpbmcgcGF0Y2guDQoNCj4gPiBAQCAtMTQyMzMsNiArMTQyNzYsMTIgQEAg c3RhdGljIGJvb2wgY2hlY2tfcmVnaXN0ZXIgKGNvbnN0IHJlZ19lbnRyeQ0KPiAqcikNCj4gPiAg ICAgICAgaWYgKCFjcHVfYXJjaF9mbGFncy5iaXRmaWVsZC5jcHVhcHhfZg0KPiA+ICAJICB8fCBm bGFnX2NvZGUgIT0gQ09ERV82NEJJVCkNCj4gPiAgCXJldHVybiBmYWxzZTsNCj4gPiArDQo+ID4g KyAgICAgIC8qIFdoZW4gdXNpbmcgUmVnUmV4MiwgZHVhbCBWRVgvRVZFWCB0ZW1wbGF0ZXMgbmVl ZCB0byBiZSBtYXJrZWQgYXMNCj4gRVZFWC4NCj4gPiArCSBGb3IgdGhlIGxhdGVyIGluc3RhbGxf dGVtcGxhdGUgZnVuY3Rpb24uICAqLw0KPiA+ICsgICAgICBpZiAoY3VycmVudF90ZW1wbGF0ZXMt PnN0YXJ0LT5vcGNvZGVfbW9kaWZpZXIudmV4DQo+ID4gKwkgICYmIGN1cnJlbnRfdGVtcGxhdGVz LT5zdGFydC0+b3Bjb2RlX21vZGlmaWVyLmV2ZXgpDQo+ID4gKwlpLnZlY19lbmNvZGluZyA9IHZl eF9lbmNvZGluZ19ldmV4Ow0KPiANCj4gSSdtIGFmcmFpZCBJIGRvbid0IHVuZGVyc3RhbmQgdGhl IDJuZCBzZW50ZW5jZSBvZiB0aGUgY29tbWVudC4gVGhpcyBtYXkgYmUNCj4gcmVsYXRlZCB0byBt eSBxdWVzdGlvbiByZWdhcmRpbmcgY3B1X2ZsYWdzX21hdGNoKCkgZnVydGhlciB1cC4NCj4gDQo+ IFRoZSBmaXJzdCBzZW50ZW5jZSBpc24ndCBxdWl0ZSBjb3JyZWN0IGVpdGhlciAtIHlvdSBkb24n dCBtYXJrIGFueSB0ZW1wbGF0ZSBoZXJlDQo+IChhbmQgeW91IGNhbid0LCBiZWNhdXNlIHdlIGRv bid0IGV2ZW4ga25vdyB5ZXQgd2hpY2ggdGVtcGxhdGUgd2UncmUgZ29pbmcNCj4gdG8gdXNlKS4N Cj4gDQo+IEZpbmFsbHkgLSBkbyB5b3UgcmVhbGx5IG5lZWQgdGhlIC5ldmV4IGNoZWNrIGhlcmU/ IChJIHdvbid0IGV4Y2x1ZGUgdGhhdCB0aGlzDQo+IHlpZWxkcyBhIGJldHRlciBkaWFnbm9zdGlj IGluIGNlcnRhaW4gY2FzZXMsIGJ1dCB0aGlzIHdhbnRzIGNsYXJpZnlpbmcgaWYgc28uKQ0KPiAN Cg0KSWYgeW91IGxvb2sgYXQgaW5zdGFsbF90ZW1wbGF0ZSgpLCB5b3UnbGwgc2VlIHRoYXQgYmVm b3JlIHRoaXMgZnVuY3Rpb24gd2UgbmVlZCB0byBrbm93IGlmIHRoZSBjdXJyZW50IGVuY29kaW5n IGlzIGV2ZXguIFdlIG5lZWQgdG8gY2hlY2sgb3Bjb2RlX21vZGlmaWVyLmV2ZXggaGVyZSwgaXQg aXMgYSBmaXggZm9yIGlzc3VlcyBjYXVzZWQgYnkgdGhlIG1lcmdlIG9mIFZFWCBhbmQgRVZFWC4N CiAgaWYgKHQtPm9wY29kZV9tb2RpZmllci52ZXggJiYgdC0+b3Bjb2RlX21vZGlmaWVyLmV2ZXgp DQogICAgew0KICAgICAgaWYgKEFWWDUxMkYoQ3B1QVZYKSB8fCBBVlg1MTJGKENwdUFWWDIpIHx8 IEFWWDUxMkYoQ3B1Rk1BKQ0KICAgICAgICAgIHx8IEFWWDUxMlZMKENwdUFWWCkgfHwgQVZYNTEy VkwoQ3B1QVZYMikgfHwgQVBYX0YoQ3B1Q01QQ0NYQUREKQ0KICAgICAgICAgIHx8IEFQWF9GKENw dUFNWF9USUxFKSB8fCBBUFhfRihDcHVBVlg1MTJGKSB8fCBBUFhfRihDcHVBVlg1MTJEUSkNCiAg ICAgICAgICB8fCBBUFhfRihDcHVBVlg1MTJCVykgfHwgQVBYX0YoQ3B1Qk1JKSB8fCBBUFhfRihD cHVCTUkyKSkNCiAgICAgICAgew0KICAgICAgICAgIGlmIChuZWVkX2V2ZXhfZW5jb2RpbmcgKCkp DQogICAgICAgICAgICB7DQoNCj4gPiAtLS0gYS9nYXMvdGVzdHN1aXRlL2dhcy9pMzg2L3g4Ni02 NC5leHANCj4gPiArKysgYi9nYXMvdGVzdHN1aXRlL2dhcy9pMzg2L3g4Ni02NC5leHANCj4gPiBA QCAtMjUwLDcgKzI1MCw3IEBAIHJ1bl9kdW1wX3Rlc3QgIng4Ni02NC1zc2Utbm9hdngiDQo+ID4g IHJ1bl9kdW1wX3Rlc3QgIng4Ni02NC1tb3ZiZSINCj4gPiAgcnVuX2R1bXBfdGVzdCAieDg2LTY0 LW1vdmJlLWludGVsIg0KPiA+ICBydW5fZHVtcF90ZXN0ICJ4ODYtNjQtbW92YmUtc3VmZml4Ig0K PiA+IC1ydW5fbGlzdF90ZXN0ICJ4ODYtNjQtaW52YWwtbW92YmUiICItYWwiDQo+ID4gK3J1bl9s aXN0X3Rlc3QgIng4Ni02NC1pbnZhbC1tb3ZiZSIgIi1JJHtzcmNkaXJ9LyRzdWJkaXIgLW1hcmNo PStub2FweF9mIC0NCj4gYWwiDQo+IA0KPiBJIGNhbiBzZWUgd2h5IHlvdSBhZGQgdGhlIC1tYXJj aD0sIGFzIHdlJ3ZlIGJlZW4gdGhyb3VnaCB0aGlzIGJlZm9yZS4NCj4gQnV0IHdoeSB0aGUgLUkg Pw0KPiANCg0KUmVtb3ZlZCwgSXQgaXMgcmVkdW5kYW50Lg0KDQo+ID4gQEAgLTg5Niw3ICs4OTcs NyBAQCByZXgud3J4YiwgMHg0ZiwgeDY0LCBOb1N1ZnxJc1ByZWZpeCwge30NCj4gPiA8cHNldWRv cGZ4OmlkZW50OmNwdSwgZGlzcDg6RGlzcDg6MCwgZGlzcDE2OkRpc3AxNjowLCBkaXNwMzI6RGlz cDMyOjAsICsNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQ6TG9hZDowLCBzdG9yZTpT dG9yZTowLCArDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICB2ZXg6VkVYOjAsIHZleDI6VkVY OjAsIHZleDM6VkVYMzowLCBldmV4OkVWRVg6MCwgKw0KPiA+IC0gICAgICAgICAgICAgICAgICAg ICAgcmV4OlJFWDp4NjQsIHJleDI6UkVYMjp4NjQsIG5vb3B0aW1pemU6Tm9PcHRpbWl6ZTowPg0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgcmV4OlJFWDp4NjQsIHJleDI6UkVYMjpBUFhfRiwN Cj4gPiArIG5vb3B0aW1pemU6Tm9PcHRpbWl6ZTowPg0KPiANCj4gVGhpcyBjaGFuZ2Ugd2FudHMg dG8gZ28gaW50byB0aGUgZWFybGllciBwYXRjaD8NCj4gDQoNCkRvbmUuDQoNCj4gPiBAQCAtMTMx OSwxMyArMTMyMCwxNiBAQCBnZXRzZWMsIDB4ZjM3LCBTTVgsIE5vU3VmLCB7fQ0KPiA+DQo+ID4g IGludmVwdCwgMHg2NjBmMzg4MCwgRVBUJk5vNjQsIE1vZHJtfElnbm9yZVNpemV8Tm9TdWYsIHsN Cj4gPiBPd29yZHxVbnNwZWNpZmllZHxCYXNlSW5kZXgsIFJlZzMyIH0gIGludmVwdCwgMHg2NjBm Mzg4MCwgRVBUJng2NCwNCj4gPiBNb2RybXxOb1N1ZnxOb1JleDY0LCB7IE93b3JkfFVuc3BlY2lm aWVkfEJhc2VJbmRleCwgUmVnNjQgfQ0KPiA+ICtpbnZlcHQsIDB4ZjNmMCwgRVBUJkFQWF9GLCBN b2RybXxOb1N1ZnxFVmV4MTI4fEVWZXhNYXA0LCB7DQo+ID4gK093b3JkfFVuc3BlY2lmaWVkfEJh c2VJbmRleCwgUmVnNjQgfQ0KPiA+ICBpbnZ2cGlkLCAweDY2MGYzODgxLCBFUFQmTm82NCwgTW9k cm18SWdub3JlU2l6ZXxOb1N1Ziwgew0KPiA+IE93b3JkfFVuc3BlY2lmaWVkfEJhc2VJbmRleCwg UmVnMzIgfSAgaW52dnBpZCwgMHg2NjBmMzg4MSwgRVBUJng2NCwNCj4gPiBNb2RybXxOb1N1ZnxO b1JleDY0LCB7IE93b3JkfFVuc3BlY2lmaWVkfEJhc2VJbmRleCwgUmVnNjQgfQ0KPiA+ICtpbnZ2 cGlkLCAweGYzZjEsIEVQVCZBUFhfRiwgTW9kcm18Tm9TdWZ8RVZleDEyOHxFVmV4TWFwNCwgew0K PiA+ICtPd29yZHxVbnNwZWNpZmllZHxCYXNlSW5kZXgsIFJlZzY0IH0NCj4gDQo+IFNlZWluZyB0 aGVzZTogQXJlIHRoZXJlIGFueSBNYXA0IGVuY29kaW5ncyB3aGljaCBhcmVuJ3QgRVZleDEyOD8g SWYgbm90DQo+IChhbmQgaWYgeW91J3JlIGFsc28gbm90IGhpZGRlbmx5IGF3YXJlIG9mIHNvbWUg YXBwZWFyaW5nIGluIHRoZSBuZWFyIGZ1dHVyZSksDQo+IHBsZWFzZSBjb25zaWRlciBtYWtpbmcg RVZleE1hcDQgaW5jbHVkZSB0aGlzIHJpZ2h0IGF3YXkuIEV2ZW4gaWYgaW4gdGhlIGxvbmdlcg0K PiBydW4gb3RoZXIgZW5jb2RpbmdzIGFwcGVhciwgaXQnbGwgdGhlbiBiZSBlYXN5IHRvIHNpbXBs eSByZXBsYWNlIGFsbCB0aGUNCj4gRVZleE1hcDQgdXNlcyBpbiBhIHB1cmVseSBtZWNoYW5pY2Fs IHdheS4gVW50aWwgdGhlbiBzaG9ydGVyIHRlbXBsYXRlIGxpbmVzDQo+IGFyZSBwcmVmZXJhYmxl Lg0KPiANCg0KV291bGQgeW91IG1pbmQgZGVmaW5pbmcgaXQgdGhpcyB3YXk/IFNpbmNlICNkZWZp bmUgRVZleDEyOCBpcyBiZWhpbmQgaXQuIENvbnNpZGVyaW5nIHRoYXQgeW91IGRvbid0IGxpa2Ug dW5uZWNlc3NhcnkgY2hhbmdlcy4NCg0KKyNkZWZpbmUgRVZleE1hcDQgT3Bjb2RlU3BhY2U9U1BB Q0VfRVZFWE1BUDR8RVZleD1FVkVYMTI4DQoNCj4gPiBAQCAtMTQzNyw3ICsxNDQzLDYgQEAgeGdl dGJ2LCAweGYwMWQwLCBYc2F2ZSwgTm9TdWYsIHt9ICB4c2V0YnYsDQo+ID4gMHhmMDFkMSwgWHNh dmUsIE5vU3VmLCB7fQ0KPiA+DQo+ID4gIC8vIHhzYXZlb3B0DQo+ID4gLQ0KPiA+ICB4c2F2ZW9w dCwgMHhmYWUvNiwgWHNhdmVvcHQsDQo+ID4gTW9kcm18Tm9fYlN1ZnxOb193U3VmfE5vX2xTdWZ8 Tm9fc1N1ZnxOb0VncHIsDQo+IHsgVW5zcGVjaWZpZWR8QmFzZUluZGV4DQo+ID4gfSAgeHNhdmVv cHQ2NCwgMHhmYWUvNiwgWHNhdmVvcHQmeDY0LCBNb2RybXxOb1N1ZnxTaXplNjR8Tm9FZ3ByLCB7 DQo+ID4gVW5zcGVjaWZpZWR8QmFzZUluZGV4IH0NCj4gDQo+IElpcmMgdGhlIGVhcmxpZXIgcGF0 Y2ggYWRkZWQgdGhhdCBibGFuayBsaW5lLiBXaHkgd291bGQgeW91IGRvIHN1Y2ggYmFjayBhbmQN Cj4gZm9ydGg/DQo+IA0KDQpEb25lLg0KDQo+ID4gQEAgLTE4MzcsMTQgKzE4NDIsMTQgQEAgeHRl c3QsIDB4ZjAxZDYsIEhMRXxSVE0sIE5vU3VmLCB7fQ0KPiA+DQo+ID4gIC8vIEJNSTIgaW5zdHJ1 Y3Rpb25zLg0KPiA+DQo+ID4gLWJ6aGksIDB4ZjUsIEJNSTIsDQo+ID4NCj4gTW9kcm18Q2hlY2tP cGVyYW5kU2l6ZXxWZXgxMjh8U3BhY2UwRjM4fFZleFZWVlZ8U3dhcFNvdXJjZXN8Tm8NCj4gX2JT dWZ8Tm8NCj4gPiBfd1N1ZnxOb19zU3VmLCB7IFJlZzMyfFJlZzY0LCBSZWczMnxSZWc2NHxVbnNw ZWNpZmllZHxCYXNlSW5kZXgsDQo+ID4gUmVnMzJ8UmVnNjQgfSAtbXVseCwgMHhmMmY2LCBCTUky LA0KPiA+DQo+IE1vZHJtfENoZWNrT3BlcmFuZFNpemV8VmV4MTI4fFNwYWNlMEYzOHxWZXhWVlZW fE5vX2JTdWZ8Tm9fd1MNCj4gdWZ8Tm9fc1N1DQo+ID4gZiwgeyBSZWczMnxSZWc2NHxVbnNwZWNp ZmllZHxCYXNlSW5kZXgsIFJlZzMyfFJlZzY0LCBSZWczMnxSZWc2NCB9DQo+ID4gLXBkZXAsIDB4 ZjJmNSwgQk1JMiwNCj4gPg0KPiBNb2RybXxDaGVja09wZXJhbmRTaXplfFZleDEyOHxTcGFjZTBG Mzh8VmV4VlZWVnxOb19iU3VmfE5vX3dTDQo+IHVmfE5vX3NTdQ0KPiA+IGYsIHsgUmVnMzJ8UmVn NjR8VW5zcGVjaWZpZWR8QmFzZUluZGV4LCBSZWczMnxSZWc2NCwgUmVnMzJ8UmVnNjQgfQ0KPiA+ IC1wZXh0LCAweGYzZjUsIEJNSTIsDQo+ID4NCj4gTW9kcm18Q2hlY2tPcGVyYW5kU2l6ZXxWZXgx Mjh8U3BhY2UwRjM4fFZleFZWVlZ8Tm9fYlN1ZnxOb193Uw0KPiB1ZnxOb19zU3UNCj4gPiBmLCB7 IFJlZzMyfFJlZzY0fFVuc3BlY2lmaWVkfEJhc2VJbmRleCwgUmVnMzJ8UmVnNjQsIFJlZzMyfFJl ZzY0IH0NCj4gPiAtcm9yeCwgMHhmMmYwLCBCTUkyLA0KPiA+DQo+IE1vZHJtfENoZWNrT3BlcmFu ZFNpemV8VmV4MTI4fFNwYWNlMEYzQXxOb19iU3VmfE5vX3dTdWZ8Tm9fc1N1DQo+IGYsIHsNCj4g PiBJbW04fEltbThTLCBSZWczMnxSZWc2NHxEd29yZHxRd29yZHxVbnNwZWNpZmllZHxCYXNlSW5k ZXgsDQo+IFJlZzMyfFJlZzY0DQo+ID4gfSAtc2FyeCwgMHhmM2Y3LCBCTUkyLA0KPiA+DQo+IE1v ZHJtfENoZWNrT3BlcmFuZFNpemV8VmV4MTI4fFNwYWNlMEYzOHxWZXhWVlZWfFN3YXBTb3VyY2Vz fE5vDQo+IF9iU3VmfE5vDQo+ID4gX3dTdWZ8Tm9fc1N1ZiwgeyBSZWczMnxSZWc2NCwgUmVnMzJ8 UmVnNjR8VW5zcGVjaWZpZWR8QmFzZUluZGV4LA0KPiA+IFJlZzMyfFJlZzY0IH0gLXNobHgsIDB4 NjZmNywgQk1JMiwNCj4gPg0KPiBNb2RybXxDaGVja09wZXJhbmRTaXplfFZleDEyOHxTcGFjZTBG Mzh8VmV4VlZWVnxTd2FwU291cmNlc3xObw0KPiBfYlN1ZnxObw0KPiA+IF93U3VmfE5vX3NTdWYs IHsgUmVnMzJ8UmVnNjQsIFJlZzMyfFJlZzY0fFVuc3BlY2lmaWVkfEJhc2VJbmRleCwNCj4gPiBS ZWczMnxSZWc2NCB9IC1zaHJ4LCAweGYyZjcsIEJNSTIsDQo+ID4NCj4gTW9kcm18Q2hlY2tPcGVy YW5kU2l6ZXxWZXgxMjh8U3BhY2UwRjM4fFZleFZWVlZ8U3dhcFNvdXJjZXN8Tm8NCj4gX2JTdWZ8 Tm8NCj4gPiBfd1N1ZnxOb19zU3VmLCB7IFJlZzMyfFJlZzY0LCBSZWczMnxSZWc2NHxVbnNwZWNp ZmllZHxCYXNlSW5kZXgsDQo+ID4gUmVnMzJ8UmVnNjQgfQ0KPiA+ICtiemhpLCAweGY1LCBCTUky JihCTUkyfEFQWF9GKSwNCj4gPg0KPiArTW9kcm18Q2hlY2tPcGVyYW5kU2l6ZXxWZXgxMjh8RVZl eDEyOHxTcGFjZTBGMzh8VmV4VlZWVnxTd2FwUw0KPiBvdXJjZXN8Tg0KPiA+ICtvX2JTdWZ8Tm9f d1N1ZnxOb19zU3VmfE5GLCB7IFJlZzMyfFJlZzY0LA0KPiA+ICtSZWczMnxSZWc2NHxVbnNwZWNp ZmllZHxCYXNlSW5kZXgsIFJlZzMyfFJlZzY0IH0NCj4gDQo+IEhtbSwgSSBoYWQgc3BlY2lmaWNh bGx5IHN1Z2dlc3RlZCBhIHByZS1wcm9jZXNzb3IgbWFjcm8gdG8gdXNlIGluIHBsYWNlIG9mIHRo ZQ0KPiBvcGVuLWNvZGVkIEJNSTImKEJNSTJ8QVBYX0YpLiBJcyB0aGVyZSBhIHJlYXNvbiB5b3Ug ZGlkbid0IHVzZSB0aGF0IChoZXJlDQo+IGFuZCBiZWxvdyk/DQo+IA0KDQpUaGVyZSBhcmUgbWFu eSBkaWZmZXJlbnQgdHlwZXMgb2YgY29tYmluYXRpb25zLCBhbmQgZWFjaCBjb21iaW5hdGlvbiBh cHBlYXJzIHJlbGF0aXZlbHkgZmV3IHRpbWVzLCBzbyBJIHRoaW5rIGFkZGluZyBhICNkZWZpbmUg Zm9yIGVhY2ggY29tYmluYXRpb24gZmVlbHMgYSBiaXQgd2FzdGVmdWwuDQoNClRoYW5rcywNCkxp bGkuDQo=