From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2135.outbound.protection.outlook.com [40.107.96.135]) by sourceware.org (Postfix) with ESMTPS id 01D153858D1E for ; Sun, 8 Oct 2023 16:40:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 01D153858D1E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=os.amperecomputing.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=os.amperecomputing.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=S2jxTeyKQ/lGYBHV8hCk8JllxFa7kI72YvlKgU9BIRBBqI0TvYVxbNcyyCamr3NdP4KdmrNXVVpi46YRrQXOqf/qI1v41YclyoUU0vgr1z3LAO5CX7xWVZdTkuAAHIfF8fgj50XwtnBqJjlGyFodOweHCzwg/DNa8WTRXGaXPzMasjN4gXAWZFbNOnlXfoZS1NwePnJT6zBxA5/wbprGyJGuVXUjlEdj7jT72Z2dUsiuq7GCTrBB6h+h778Zjpi1SlS1JcRkiA5lSNGduzSEJk5vMiEesxWL3J62CX+/BO3JtgLCs+dAAJBZ2MIZPyPP1JRxIaOH6rOJ6uI8bAF6mw== 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=0V9FljnBDUvqEfAe2xFSW1hpsL0aAjJXbnhRujCIuqs=; b=jhflqGrw3jB5fQp4bueqiXXay4MDm9OXGSAqnbtIiKemhgvhxXuSgoqF1MxsdHfV+mqQV+VPNglVNz5b/EfuPuJtdPiQvkXqkr/vguV+iC/uwNl/w29xwHb+W2ALiRgqKiafrPKPFsNggCqoy85WYs1piozjim1LjtihOEX//by9GOp0kutwVdC72ijQZJH2pHVfpq4URYSzHgB8OWo8xoon/YKPF7IpKNpR+LUk+DbU02uuHOmwW3LSYeFaa7LUpXgbrxzbxG4mEbxdHqbG0XxfxZSnGX1OsOtFKpzU6TuNZyDBadmTE4Y+V7xRw7DzeajxRC90A/s95BFDG1ptbw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0V9FljnBDUvqEfAe2xFSW1hpsL0aAjJXbnhRujCIuqs=; b=B7Hk9VR3/1ImjvHVxffiza/IquHX0Dh8ETb+c7i+/R16hPoTG8wuJ9QWIGy4BEH2hA03fkabbwGYWsVeP1PRm15kM7IJttH+5BdPeYYi/ZTWrS9mLrjYMXSKDH4Y1BM4vQZMv5FLMHGtAv/rcPQx6BBKA4d3roKe2ztB5LjL9fk= Received: from SN6PR01MB4240.prod.exchangelabs.com (2603:10b6:805:ae::22) by MW6PR01MB8274.prod.exchangelabs.com (2603:10b6:303:23b::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.43; Sun, 8 Oct 2023 16:39:58 +0000 Received: from SN6PR01MB4240.prod.exchangelabs.com ([fe80::ea65:37e6:b211:85af]) by SN6PR01MB4240.prod.exchangelabs.com ([fe80::ea65:37e6:b211:85af%6]) with mapi id 15.20.6863.032; Sun, 8 Oct 2023 16:39:57 +0000 From: Di Zhao OS To: Richard Biener CC: "gcc-patches@gcc.gnu.org" Subject: RE: [PATCH v4] [tree-optimization/110279] Consider FMA in get_reassociation_width Thread-Topic: [PATCH v4] [tree-optimization/110279] Consider FMA in get_reassociation_width Thread-Index: AdnnBSPtK+NgbkElQ86FLpG1NcmCuQRMvhQAAHJVX2A= Date: Sun, 8 Oct 2023 16:39:56 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: zh-CN X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_ActionId=ecf1380a-eada-4b53-a866-9730e6ea0c18;MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_ContentBits=0;MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_Enabled=true;MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_Method=Standard;MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_Name=Confidential (Default);MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_SetDate=2023-10-08T16:06:49Z;MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_SiteId=3bc2b170-fd94-476d-b0ce-4229bdc904a7; authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=os.amperecomputing.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR01MB4240:EE_|MW6PR01MB8274:EE_ x-ms-office365-filtering-correlation-id: 5f0f3e36-9a08-4c2c-1485-08dbc81d3499 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ALiKj2p7iuSbyldPi4fZ0rnPOkN7GWhr2jye+ZL34xC2BEarOeUyMMwSbgnfMJj3PpokaklPW5FtSBvsx76mRBtP8b0XufRYtQf40mkebw4yzyBflNYzduQje2zgMGDAi0xGthqB/3kdWNw0NVPKqhcmYMmRlsDDCXYaL33YkjfIbd7WAqZZ5lK97ywvJFRa4ZnXFuKRPuzTVlU9XdtLXCBPzBfWrCXPf6maiF9f3cmoZwvg/+h3CjhZ7fMnFeM7Z2JEzQoabm6zHFXyuTagHyXstkldbVj7hxGZf6+gMoVKimTxqLraX0RO9uAR2AHnyQy1/a4l/Bim0o77bnb3NIoge4PPC3G6Ttf34NnjBQ7bPbB9BabYQqw6HK1MDW99W5F/bYNyCq0tO7w53ck6w9MUYL12PZo2Vsw0XI8xeIBkiLHmW1ZPmG3KJyZdHad5l7g+MMPmsuvwO+SocCy3Bm6s0CG7f0PpGXLjX/SWRI0en69umKvAnOCyW4CzGQO5JxlO134uqDY8JCbyQCeBV5ki1j7XrBW6KXOcHFrcNhsygiOXPmsDXY6BGa6xXN+UcKKHef4gB7iff4iJtOe9cIW8A5zsXAgSRUtEnViNvwQ= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR01MB4240.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(39840400004)(136003)(396003)(376002)(346002)(230922051799003)(451199024)(1800799009)(186009)(64100799003)(84970400001)(122000001)(99936003)(86362001)(38100700002)(38070700005)(33656002)(55016003)(2906002)(9686003)(478600001)(966005)(52536014)(5660300002)(41300700001)(8936002)(4326008)(8676002)(71200400001)(7696005)(6506007)(83380400001)(53546011)(66556008)(66476007)(76116006)(64756008)(66446008)(66946007)(6916009)(316002)(26005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?blRKTXVpaEtoVE9tM3ZlN0xwSnQrZC9uWjNFZXlSbE9ieEdUaWlRQy9TZGtP?= =?utf-8?B?OUJSWVlYN2FaTWY3QllOb1gzNmx1N2VJYXRwQ1BDNDYrVUpIOGlwbW9BcnhO?= =?utf-8?B?cUhTZzRPVnEyakwxdVJ4VE41THRKeEFZc2Nrbi9odXlRd0FFclZ4a3QyWCsx?= =?utf-8?B?NnJrUTRXU1RWUjYrbGJrRExYZmpKR2FUeWRTT1pwREYwazVyREsrTDRVdHVD?= =?utf-8?B?anBhQXlxVzkyNExTdFRWQ1VWRlo2a1lTTS81V1ZSNlI2UHpHYTNlakVtenN0?= =?utf-8?B?VjAwNkI1RmNjZnE4dHA5RGw3cVBvayt1ZXZTYkJDa1BrOWRoVTJlOFFzYTJI?= =?utf-8?B?czM0YldBVVhLMi9uRHFIRjd3bnRPTFNWSVVMT1RPQXBJNVpSUFdCb204ck5F?= =?utf-8?B?Ny9jcUVONnIwLzlQYUcyREZBNGJyYVBCTTdZUUU5UThQOFNLSVlLdzdvQUl6?= =?utf-8?B?Y3JNb1ZNT0RXak9qQ1dNb2NiZ0Y3blR1bEZiNEx1c3YyUTE4RTBMSmlDRXFs?= =?utf-8?B?UjAxODRrTzZLYnkvYmxlVGFNN2NYL1lwK1NyTjFpbGY3M2VwTldOV29Wdm5W?= =?utf-8?B?NmNZc2RFNG1TZUNMcEt6UEVYM2RiN29XdXpGWmZuamNDRlB6WU9XMEJZV1pP?= =?utf-8?B?Q2NlNmdUMVZTWGJuR3d2TFB1bEx2K0ZQb1NhMGVjQVpXMk9wUjR5dUFVMXVx?= =?utf-8?B?T01vOEk3T2E3ZW9aemJ2WU1GWnphVnI2L0k2ZnpZOWFWWHRndXlHaFQ0SEJX?= =?utf-8?B?STlFaEJXeGgyUU82QitrenNmdkxjQ0NMaThtOHNpWE9qbHFXdzBxdHBBdkN3?= =?utf-8?B?NmNOY3p4NStPQWV5c1I5SjE4S1Vpdld0NE1ZN3VvVUFRY29RUmFjdFp6VlM4?= =?utf-8?B?SFJEWkJXcjFCY3VERXVMSUhCZ1kvTlpBOUE1bXlzTGVJS2Q4TGVIRGZUQmdn?= =?utf-8?B?QWsyQ0FWcXh0TlJSWExCV3JBRW1ZemxnYzNLZFNMUkp4aXAyYnFUWU5lTjJa?= =?utf-8?B?Z0dhb3VuSVE3WmovRzl5cUl2dmtReXNoU3prU2JkcEpzRWFCb1RTNVF6andR?= =?utf-8?B?bnhSemZFRmNnTTQzenQzdUdCV2QvcjlUZDBDWmxDL0tacWhsWGpISi8xV2FV?= =?utf-8?B?cURSc3RUejFSbUl1Q2ZiMklKUXo2SVZPZ0swK0dXc3A5MGR6VS9wLzgyZ0Rm?= =?utf-8?B?QlNOR0tsdTJyNGRNZE5wOHNXOUtpSXJKZG9lV2gvWUJRUFNOZHNzVFJNNy9D?= =?utf-8?B?cENqWW5JV05WenI3aktpWHJzckNVNjY2ZkZPYjlzVXp5cFFaTWZTd21JQzdW?= =?utf-8?B?SDd6b1RZa0hTNWhHanh5R3g4eXFhc28xa3NISVM3aElGNHRCSzZrc3VFb3Mz?= =?utf-8?B?M0ZDWnhyc0hoOVp1NTg1RHdZWVhUUDljZVJsUkRSckpKb0NMd3pKZERvM3hO?= =?utf-8?B?Umkvdmh3QWc4SlFIVUplY1pZRWFCcVI4b2dSS2dKS1ZZMUQ5WmVHUk9iOC9l?= =?utf-8?B?VmtxdHhKdHh3cHdXUHRzd0plb2dUaENTbHh1L2J5YTNXMzduSXE5MGZTRU5X?= =?utf-8?B?OEVvOHNSSXU2OC9ONFp2MmhpK1Mvd1RZUzRsdnBuTkFodzNUWVF6Wm1VRFdH?= =?utf-8?B?UjVkcm8zUi9yNktId1RGanZpNk1oQ2JlOVBDQVgwUm5Xc0F0SW82dk0wYysr?= =?utf-8?B?TnZSMVlYMXRpV0lnSXpRUWlsU2ZFTndZOW5SZlVlRStCZUFHR3B0cURYNkNG?= =?utf-8?B?a2JFanZCcHFMeWlPSThUZU5hblU3bGJmcHJ0LzF2REhITDRLcFV5MTdJNEhz?= =?utf-8?B?ZUFGcFZEZm9sazIzMFpzVy9Cbnc0M0xkdForaXNMSFNLNFBpMnFlcDI0ZS90?= =?utf-8?B?TmZ4bUN0YmxUTzBPZ3h3cmdKWXM5OWpGUWFLVGNkMWV4RlA5UXJUODBWMGVr?= =?utf-8?B?NE9PZ0xVMFNKaEw3RXR3aEVGY0ZTTnc5R29wU0VKeDUxR0Nxby9IbksvUWhU?= =?utf-8?B?SmVXalkyaTBTWTBtU2FkUlJNMmpZbGhPS0M1SEs5UDZBK0l6bU5ROWl0ZW9V?= =?utf-8?B?M3laYldLWnlPRjg4RlRoV1lORWpVaDh4S1ZvM1NMekU4VXdFdzEwNXRPaGJR?= =?utf-8?B?OXJCMkpVWVpvL2VJKyt4YnNVNGV5TnR1ZUZWalFabFJOeitWNDhQOXZRMk9v?= =?utf-8?B?bGc9PQ==?= Content-Type: multipart/mixed; boundary="_002_SN6PR01MB4240C36D35F02379B33C258DE8CFASN6PR01MB4240prod_" MIME-Version: 1.0 X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR01MB4240.prod.exchangelabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5f0f3e36-9a08-4c2c-1485-08dbc81d3499 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Oct 2023 16:39:56.4808 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 5aMrG3ST+J9LsIY+hYntyr0hYjTlVSQ86tetto79Nd7Cx2E0o6+fK1v3YrcgMjdFM/r5XqOlDHNP8oTTjevNdhk8qVOn00QxHUP8zkes9NBbZraD2hzL5Ej9n1eqK7p5 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR01MB8274 X-Spam-Status: No, score=-3.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --_002_SN6PR01MB4240C36D35F02379B33C258DE8CFASN6PR01MB4240prod_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QXR0YWNoZWQgaXMgYSBuZXcgdmVyc2lvbiBvZiB0aGUgcGF0Y2guDQoNCj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUmljaGFyZCBCaWVuZXIgPHJpY2hhcmQuZ3VlbnRoZXJA Z21haWwuY29tPg0KPiBTZW50OiBGcmlkYXksIE9jdG9iZXIgNiwgMjAyMyA1OjMzIFBNDQo+IFRv OiBEaSBaaGFvIE9TIDxkaXpoYW9Ab3MuYW1wZXJlY29tcHV0aW5nLmNvbT4NCj4gQ2M6IGdjYy1w YXRjaGVzQGdjYy5nbnUub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjRdIFt0cmVlLW9wdGlt aXphdGlvbi8xMTAyNzldIENvbnNpZGVyIEZNQSBpbg0KPiBnZXRfcmVhc3NvY2lhdGlvbl93aWR0 aA0KPiANCj4gT24gVGh1LCBTZXAgMTQsIDIwMjMgYXQgMjo0M+KAr1BNIERpIFpoYW8gT1MNCj4g PGRpemhhb0Bvcy5hbXBlcmVjb21wdXRpbmcuY29tPiB3cm90ZToNCj4gPg0KPiA+IFRoaXMgaXMg YSBuZXcgdmVyc2lvbiBvZiB0aGUgcGF0Y2ggb24gIm5lc3RlZCBGTUEiLg0KPiA+IFNvcnJ5IGZv ciB1cGRhdGluZyB0aGlzIGFmdGVyIHNvIGxvbmcsIEkndmUgYmVlbiBzdHVkeWluZyBhbmQNCj4g PiB3cml0aW5nIG1pY3JvIGNhc2VzIHRvIHNvcnQgb3V0IHRoZSBjYXVzZSBvZiB0aGUgcmVncmVz c2lvbi4NCj4gDQo+IFNvcnJ5IGZvciB0YWtpbmcgc28gbG9uZyB0byByZXBseS4NCj4gDQo+ID4g Rmlyc3QsIGZvbGxvd2luZyBwcmV2aW91cyBkaXNjdXNzaW9uOg0KPiA+IChodHRwczovL2djYy5n bnUub3JnL3BpcGVybWFpbC9nY2MtcGF0Y2hlcy8yMDIzLVNlcHRlbWJlci82MjkwODAuaHRtbCkN Cj4gPg0KPiA+IDEuIEZyb20gdGVzdGluZyBtb3JlIGFsdGVyZWQgY2FzZXMsIEkgZG9uJ3QgdGhp bmsgdGhlDQo+ID4gcHJvYmxlbSBpcyB0aGF0IHJlYXNzb2NpYXRpb24gd29ya3MgbG9jYWxseS4g SW4gdGhhdDoNCj4gPg0KPiA+ICAgMSkgT24gdGhlIGV4YW1wbGUgd2l0aCBtdWx0aXBsaWNhdGlv bnM6DQo+ID4NCj4gPiAgICAgICAgIHRtcDEgPSBhICsgYyAqIGMgKyBkICogZCArIHggKiB5Ow0K PiA+ICAgICAgICAgdG1wMiA9IHggKiB0bXAxOw0KPiA+ICAgICAgICAgcmVzdWx0ICs9IChhICsg YyArIGQgKyB0bXAyKTsNCj4gPg0KPiA+ICAgR2l2ZW4gInJlc3VsdCIgcmV3cml0dGVuIGJ5IHdp ZHRoPTIsIHRoZSBwZXJmb3JtYW5jZSBpcw0KPiA+ICAgd29yc2UgaWYgd2UgcmV3cml0ZSAidG1w MSIgd2l0aCB3aWR0aD0yLiBJbiBjb250cmFzdCwgaWYgd2UNCj4gPiAgIHJlbW92ZSB0aGUgbXVs dGlwbGljYXRpb25zIGZyb20gdGhlIGV4YW1wbGUgKGFuZCBtYWtlICJ0bXAxIg0KPiA+ICAgbm90 IHNpbmdlIHVzZWQpLCBhbmQgc3RpbGwgcmV3cml0ZSAicmVzdWx0IiBieSB3aWR0aD0yLCB0aGVu DQo+ID4gICByZXdyaXRpbmcgInRtcDEiIHdpdGggd2lkdGg9MiBpcyBiZXR0ZXIuIChNYWtlIHNl bnNlIGJlY2F1c2UNCj4gPiAgIHRoZSB0cmVlJ3MgZGVwdGggYXQgInJlc3VsdCIgaXMgc3RpbGwg c21hbGxlciBpZiB3ZSByZXdyaXRlDQo+ID4gICAidG1wMSIuKQ0KPiA+DQo+ID4gICAyKSBJIHRy aWVkIHRvIG1vZGlmeSB0aGUgYXNzZW1ibHkgY29kZSBvZiB0aGUgZXhhbXBsZSB3aXRob3V0DQo+ ID4gICBGTUEsIHNvIHRoZSB3aWR0aCBvZiAicmVzdWx0IiBpcyA0LiBPbiBBbXBlcmUxIHRoZXJl J3Mgbm8NCj4gPiAgIG9idmlvdXMgaW1wcm92ZW1lbnQuIFNvIGFsdGhvdWdoIHRoaXMgaXMgYW4g aW50ZXJlc3RpbmcNCj4gPiAgIHByb2JsZW0sIGl0IGRvZXNuJ3Qgc2VlbSBsaWtlIHRoZSBjYXVz ZSBvZiB0aGUgcmVncmVzc2lvbi4NCj4gDQo+IE9LLCBJIHNlZS4NCj4gDQo+ID4gMi4gRnJvbSBh c3NlbWJseSBjb2RlIG9mIHRoZSBjYXNlIHdpdGggRk1BLCBvbmUgcHJvYmxlbSBpcw0KPiA+IHRo YXQsIHJld3JpdGluZyAidG1wMSIgdG8gcGFyYWxsZWwgZGlkbid0IGRlY3JlYXNlIHRoZQ0KPiA+ IG1pbmltdW0gQ1BVIGN5Y2xlcyAodGFraW5nIE1VTFRfRVhQUnMgaW50byBhY2NvdW50KSwgYnV0 DQo+ID4gaW5jcmVhc2VkIGNvZGUgc2l6ZSwgc28gdGhlIG92ZXJoZWFkIGlzIGluY3JlYXNlZC4N Cj4gPg0KPiA+ICAgIGEpIFdoZW4gInRtcDEiIGlzIG5vdCByZS13cml0dGVuIHRvIHBhcmFsbGVs Og0KPiA+ICAgICAgICAgZm1hZGQgZDMxLCBkMiwgZDIsIGQzMA0KPiA+ICAgICAgICAgZm1hZGQg ZDMxLCBkMywgZDMsIGQzMQ0KPiA+ICAgICAgICAgZm1hZGQgZDMxLCBkNCwgZDUsIGQzMSAgLy8i dG1wMSINCj4gPiAgICAgICAgIGZtYWRkIGQzMSwgZDMxLCBkNCwgZDMNCj4gPg0KPiA+ICAgIGIp IFdoZW4gInRtcDEiIGlzIHJlLXdyaXR0ZW4gdG8gcGFyYWxsZWw6DQo+ID4gICAgICAgICBmbXVs ICBkMzEsIGQ0LCBkNQ0KPiA+ICAgICAgICAgZm1hZGQgZDI3LCBkMiwgZDIsIGQzMA0KPiA+ICAg ICAgICAgZm1hZGQgZDMxLCBkMywgZDMsIGQzMQ0KPiA+ICAgICAgICAgZmFkZCAgZDMxLCBkMzEs IGQyNyAgICAgLy8idG1wMSINCj4gPiAgICAgICAgIGZtYWRkIGQzMSwgZDMxLCBkNCwgZDMNCj4g Pg0KPiA+IEZvciB2ZXJzaW9uIGEpLCB0aGVyZSBhcmUgMyBkZXBlbmRlbnQgRk1BcyB0byBjYWxj dWxhdGUgInRtcDEiLg0KPiA+IEZvciB2ZXJzaW9uIGIpLCB0aGVyZSBhcmUgYWxzbyAzIGRlcGVu ZGVudCBpbnN0cnVjdGlvbnMgaW4gdGhlDQo+ID4gbG9uZ2VyIHBhdGg6IHRoZSAxc3QsIDNyZCBh bmQgNHRoLg0KPiANCj4gWWVzLCBpdCBkb2Vzbid0IHJlYWxseSBjaGFuZ2UgYW55dGhpbmcuICBU aGUgcGF0Y2ggaGFzDQo+IA0KPiArICAvKiBJZiB0aGVyZSdzIGNvZGUgbGlrZSAiYWNjID0gYSAq IGIgKyBjICogZCArIGFjYyIgaW4gYSB0aWdodCBsb29wLCBzb21lDQo+ICsgICAgIHVhcmNocyBj YW4gZXhlY3V0ZSByZXN1bHRzIGxpa2U6DQo+ICsNCj4gKyAgICAgICBfMSA9IGEgKiBiOw0KPiAr ICAgICAgIF8yID0gLkZNQSAoYywgZCwgXzEpOw0KPiArICAgICAgIGFjY18xID0gYWNjXzAgKyBf MjsNCj4gKw0KPiArICAgICBpbiBwYXJhbGxlbCwgd2hpbGUgdHVybmluZyBpdCBpbnRvDQo+ICsN Cj4gKyAgICAgICBfMSA9IC5GTUEoYSwgYiwgYWNjXzApOw0KPiArICAgICAgIGFjY18xID0gLkZN QShjLCBkLCBfMSk7DQo+ICsNCj4gKyAgICAgaGluZGVycyB0aGF0LCBiZWNhdXNlIHRoZW4gdGhl IGZpcnN0IEZNQSBkZXBlbmRzIG9uIHRoZSByZXN1bHQNCj4gb2YgcHJlY2VkaW5nDQo+ICsgICAg IGl0ZXJhdGlvbi4gICovDQo+IA0KPiBJIGNhbid0IHNlZSB3aGF0IGNhbiBiZSBydW4gaW4gcGFy YWxsZWwgZm9yIHRoZSBmaXJzdCBjYXNlLiAgVGhlIC5GTUENCj4gZGVwZW5kcyBvbiB0aGUgbXVs dGlwbGljYXRpb24gYSAqIGIuICBJZmYgdGhlIHVhcmNoIHNvbWVob3cgZGVjb21wb3Nlcw0KPiAu Rk1BIGludG8gbXVsdGlwbHkgKyBhZGQgdGhlbiB0aGUgYyAqIGQgbXVsdGlwbHkgY291bGQgcnVu IGluIHBhcmFsbGVsDQo+IHdpdGggdGhlIGEgKiBiIG11bHRpcGx5IHdoaWNoIF9taWdodF8gYmUg YWJsZSB0byBoaWRlIHNvbWUgb2YgdGhlDQo+IGxhdGVuY3kgb2YgdGhlIGZ1bGwgLkZNQS4gIExp a2Ugb24geDg2IFplbiBGTUEgaGFzIGEgbGF0ZW5jeSBvZiA0DQo+IGN5Y2xlcyBidXQgYSBtdWx0 aXBseSBvbmx5IDMuICBCdXQgSSBuZXZlciBnb3QgY29uZmlybWF0aW9uIGZyb20gYW55DQo+IG9m IHRoZSBDUFUgZGVzaWduZXJzIHRoYXQgLkZNQXMgYXJlIGlzc3VlZCB3aGVuIHRoZSBtdWx0aXBs eQ0KPiBvcGVyYW5kcyBhcmUgcmVhZHkgYW5kIHRoZSBhZGQgb3BlcmFuZCBjYW4gYmUgZm9yd2Fy ZGVkLg0KPiANCj4gSSBhbHNvIHdvbmRlciB3aHkgdGhlIG11bHRpcGxpY2F0aW9ucyBvZiB0aGUg dHdvLUZNQSBzZXF1ZW5jZQ0KPiB0aGVuIGNhbm5vdCBiZSBleGVjdXRlZCBhdCB0aGUgc2FtZSB0 aW1lPyAgU28gSSBoYXZlIHNvbWUgZG91YnQNCj4gb2YgdGhlIHRoZW9yeSBhYm92ZS4NCg0KVGhl IHBhcmFsbGVsIGV4ZWN1dGlvbiBmb3IgdGhlIGNvZGUgc25pcHBldCBhYm92ZSB3YXMgdGhlIG90 aGVyDQppc3N1ZSAocHJldmlvdXNseSBkaXNjdXNzZWQgaGVyZToNCmh0dHBzOi8vZ2NjLmdudS5v cmcvcGlwZXJtYWlsL2djYy1wYXRjaGVzLzIwMjMtQXVndXN0LzYyODk2MC5odG1sKS4NClNvcnJ5 IGl0J3MgYSBiaXQgY29uZnVzaW5nIHRvIGluY2x1ZGUgdGhhdCBoZXJlLCBidXQgdGhlc2UgMiBm aXhlcw0KbmVlZHMgdG8gYmUgY29tYmluZWQgdG8gYXZvaWQgbmV3IHJlZ3Jlc3Npb25zLiBTaW5j ZSBjb25zaWRlcmluZw0KRk1BIGluIGdldF9yZWFzc29jaWF0aW9uX3dpZHRoIHByb2R1Y2VzIG1v cmUgcmVzdWx0cyBvZiB3aWR0aD0xLA0Kc28gdGhlcmUgd291bGQgYmUgbW9yZSBsb29wIGRlcGVu ZGluZyBGTUEgY2hhaW5zLg0KDQo+IElmZiB0aGlzIHJlYWxseSBpcyB0aGUgcmVhc29uIGZvciB0 aGUgc2VxdWVuY2UgdG8gZXhlY3V0ZSB3aXRoIGxvd2VyDQo+IG92ZXJhbGwgbGF0ZW5jeSBhbmQg d2Ugd2FudCB0byBhdHRhY2sgdGhpcyBvbiBHSU1QTEUgdGhlbiBJIHRoaW5rDQo+IHdlIG5lZWQg YSB0YXJnZXQgaG9vayB0ZWxsaW5nIHVzIHRoaXMgZmFjdCAoSSBhbHNvIHdvbmRlciBpZiBzdWNo DQo+IGJlaGF2aW9yIGNhbiBiZSBtb2RlbGVkIGluIHRoZSBzY2hlZHVsZXIgcGlwZWxpbmUgZGVz Y3JpcHRpb24gYXQgYWxsPykNCj4gDQo+ID4gU28gaXQgc2VlbXMgdG8gbWUgdGhlIGN1cnJlbnQg Z2V0X3JlYXNzb2NpYXRpb25fd2lkdGggYWxnb3JpdGhtDQo+ID4gaXNuJ3Qgb3B0aW1hbCBpbiB0 aGUgcHJlc2VuY2Ugb2YgRk1BLiBTbyBJIG1vZGlmaWVkIHRoZSBwYXRjaCB0bw0KPiA+IGltcHJv dmUgZ2V0X3JlYXNzb2NpYXRpb25fd2lkdGgsIHJhdGhlciB0aGFuIGNoZWNrIGZvciBjb2RlDQo+ ID4gcGF0dGVybnMuIChBbHRob3VnaCB0aGVyZSBjb3VsZCBiZSBzb21lIG90aGVyIGNvbXBsaWNh dGVkDQo+ID4gZmFjdG9ycyBzbyB0aGUgcmVncmVzc2lvbiBpcyBtb3JlIG9idmlvdXMgd2hlbiB0 aGVyZSdzICJuZXN0ZWQNCj4gPiBGTUEiLiBCdXQgd2l0aCB0aGlzIHBhdGNoIHRoYXQgc2hvdWxk IGJlIGF2b2lkZWQgb3IgcmVkdWNlZC4pDQo+ID4NCj4gPiBXaXRoIHRoaXMgcGF0Y2ggNTA4Lm5h bWRfciAxLWNvcHkgcnVuIGhhcyA3JSBpbXByb3ZlbWVudCBvbg0KPiA+IEFtcGVyZTEsIG9uIElu dGVsIFhlb24gdGhlcmUncyBhYm91dCAzJS4gV2hpbGUgSSdtIHN0aWxsDQo+ID4gY29sbGVjdGlu ZyBkYXRhIG9uIG90aGVyIENQVXMsIEknZCBsaWtlIHRvIGtub3cgaG93IGRvIHlvdQ0KPiA+IHRo aW5rIG9mIHRoaXMuDQo+ID4NCj4gPiBBYm91dCBjaGFuZ2VzIGluIHRoZSBwYXRjaDoNCj4gPg0K PiA+IDEuIFdoZW4gdGhlIG9wIGxpc3QgZm9ybXMgYSBjb21wbGV0ZSBGTUEgY2hhaW4sIHRyeSB0 byBzZWFyY2gNCj4gPiBmb3IgYSBzbWFsbGVyIHdpZHRoIGNvbnNpZGVyaW5nIHRoZSBiZW5lZml0 IG9mIHVzaW5nIEZNQS4gV2l0aA0KPiA+IGEgc21hbGxlciB3aWR0aCwgdGhlIGluY3JlbWVudCBv ZiBjb2RlIHNpemUgaXMgc21hbGxlciB3aGVuDQo+ID4gYnJlYWtpbmcgdGhlIGNoYWluLg0KPiAN Cj4gQnV0IHRoaXMgaXMgYWxsIGhpZ2hseSB0YXJnZXQgc3BlY2lmaWMgKGNvZGUgc2l6ZSBldmVu IG1vcmUgc28pLg0KPg0KPiBIb3cgSSB1bmRlcnN0YW5kIHlvdXIgYXBwcm9hY2ggdG8gZml4aW5n IHRoZSBpc3N1ZSBsZWFkcyBtZSB0bw0KPiB0aGUgc3VnZ2VzdGlvbiB0byBwcmlvcml0aXplIHBh cmFsbGVsIHJld3JpdGluZywgdGh1cyBhbHRlciByYW5rX29wc19mb3JfZm1hLA0KPiB0YWtpbmcg dGhlIHJlYXNzb2Mgd2lkdGggaW50byBhY2NvdW50ICh0aGUgY29tcHV0ZWQgd2lkdGggc2hvdWxk IGJlDQo+IHVuY2hhbmdlZCBmcm9tIHJhbmtfb3BzX2Zvcl9mbWEpIGluc3RlYWQgb2YgImZpeGlu ZyB1cCIgdGhlIHBhcmFsbGVsDQo+IHJld3JpdGluZyBvZiBGTUFzICh3ZWxsLCB0aGV5IGFyZSBu b3QgeWV0IGZvcm1lZCBvZiBjb3Vyc2UpLg0KPiBnZXRfcmVhc3NvY2lhdGlvbl93aWR0aCBoYXMg J2dldF9yZXF1aXJlZF9jeWNsZXMnLCB0aGUgYWJvdmUgdGhlb3J5DQo+IGNvdWxkIGJlIHZlcmlm aWVkIHdpdGggYSB2ZXJ5IHNpbXBsZSB0b3kgcGlwZWxpbmUgbW9kZWwuICBXZSdkIGhhdmUNCj4g dG8gYXNrIHRoZSB0YXJnZXQgZm9yIHRoZSByZWFzc29jIHdpZHRoIGZvciBNVUxUX0VYUFJzIGFz IHdlbGwgKG9yIG1heWJlDQo+IGV2ZW4gRk1BX0VYUFJzKS4NCj4gDQo+IFRha2luZyB0aGUgd2lk dGggb2YgRk1BcyBpbnRvIGFjY291bnQgd2hlbiBjb21wdXRpbmcgdGhlIHJlYXNzb2Mgd2lkdGgN Cj4gbWlnaHQgYmUgYW5vdGhlciB3YXkgdG8gYXR0YWNrIHRoaXMuDQoNClByZXZpb3VzbHkgSSB0 cmllZCB0byBzb2x2ZSB0aGlzIGdlbmVyYWxseSwgb24gdGhlIGFzc3VtcHRpb24gdGhhdA0KRk1B IChzbWFsbGVyIGNvZGUgc2l6ZSkgaXMgcHJlZmVycmVkLiBOb3cgSSBhZ3JlZSBpdCdzIGRpZmZp Y3VsdA0Kc2luY2U6IDEpIEFzIHlvdSBtZW50aW9uZWQsIHRoZSBsYXRlbmN5IG9mIEZNQSwgRk1V TCBhbmQgRkFERCBjYW4NCmJlIGRpZmZlcmVudC4gMikgRnJvbSBteSB0ZXN0IHJlc3VsdCBvbiBk aWZmZXJlbnQgbWFjaGluZXMgd2UNCmhhdmUsIGl0IHNlZW1zIHNpbXBseSBhZGRpbmcgdGhlIGN5 Y2xlcyB0b2dldGhlciBpcyBub3QgYSBnb29kIHdheQ0KdG8gZXN0aW1hdGUgdGhlIGxhdGVuY3kg b2YgY29uc2VjdXRpdmUgRk1BLg0KDQpJIHRoaW5rIGFuIGVhc2llciB3YXkgdG8gZml4IHRoaXMg aXMgdG8gYWRkIGEgcGFyYW1ldGVyIHRvIHN1Z2dlc3QNCnRoZSBsZW5ndGggb2YgY29tcGxldGUg Rk1BIGNoYWluIHRvIGtlZXAuIChJdCBjYW4gYmUgc2V0IGJ5IHRhcmdldA0Kc3BlY2lmaWMgdHVu aW5nIHRoZW4uKSBBbmQgd2UgY2FuIGJyZWFrIGxvbmdlciBGTUEgY2hhaW5zIGZvcg0KYmV0dGVy IHBhcmFsbGVsaXNtLiBBdHRhY2hlZCBpcyB0aGUgbmV3IGltcGxlbWVudGF0aW9uLiBXaXRoDQpt YXgtZm1hLWNoYWluLWxlbj04LCB0aGVyZSdzIGFib3V0IDclIGltcHJvdmVtZW50IGluIHNwZWMy MDE3DQo1MDgubmFtZF9yIG9uIGFtcGVyZTEsIGFuZCB0aGUgb3ZlcmFsbCBpbXByb3ZlbWVudCBv biBmcHJhdGUgaXMNCmFib3V0IDElLg0KDQpTaW5jZSB0aGVyZSdzIGNvZGUgaW4gcmFua19vcHNf Zm9yX2ZtYSB0byBpZGVudGlmeSBNVUxUX0VYUFJzIGZyb20NCm90aGVycywgSSBsZWZ0IGl0IGJl Zm9yZSBnZXRfcmVhc3NvY2lhdGlvbl93aWR0aCBzbyB0aGUgbnVtYmVyIG9mDQpNVUxUX0VYUFJz IGNhbiBiZSB1c2VkLg0KDQo+IA0KPiA+IDIuIFRvIGF2b2lkIHJlZ3Jlc3Npb25zLCBpbmNsdWRl ZCB0aGUgb3RoZXIgcGF0Y2gNCj4gPiAoaHR0cHM6Ly9nY2MuZ251Lm9yZy9waXBlcm1haWwvZ2Nj LXBhdGNoZXMvMjAyMy1TZXB0ZW1iZXIvNjI5MjAzLmh0bWwpDQo+ID4gb24gdGhpcyB0cmFja2Vy IGFnYWluLiBUaGlzIGlzIGJlY2F1c2UgbW9yZSBGTUEgd2lsbCBiZSBrZXB0DQo+ID4gd2l0aCAx Liwgc28gd2UgbmVlZCB0byBydWxlIG91dCB0aGUgbG9vcCBkZXBlbmRlbnQNCj4gPiBGTUEgY2hh aW5zIHdoZW4gcGFyYW1fYXZvaWRfZm1hX21heF9iaXRzIGlzIHNldC4NCj4gDQo+IFNvcnJ5IGFn YWluIGZvciB0YWtpbmcgc28gbG9uZyB0byByZXBseS4NCj4gDQo+IEknbGwgbm90ZSB3ZSBoYXZl IGFuIG9kZCBjYXNlIG9uIHg4NiBaZW4yKD8pIGFzIHdlbGwgd2hpY2ggd2UgZG9uJ3QgcmVhbGx5 DQo+IHVuZGVyc3RhbmQgZnJvbSBhIENQVSBiZWhhdmlvciBwZXJzcGVjdGl2ZS4NCj4gDQo+IFRo YW5rcywNCj4gUmljaGFyZC4NCj4gDQo+ID4gVGhhbmtzLA0KPiA+IERpIFpoYW8NCj4gPg0KPiA+ IC0tLS0NCj4gPg0KPiA+ICAgICAgICAgUFIgdHJlZS1vcHRpbWl6YXRpb24vMTEwMjc5DQo+ID4N Cj4gPiBnY2MvQ2hhbmdlTG9nOg0KPiA+DQo+ID4gICAgICAgICAqIHRyZWUtc3NhLXJlYXNzb2Mu Y2MgKHJhbmtfb3BzX2Zvcl9iZXR0ZXJfcGFyYWxsZWxpc21fcCk6DQo+ID4gICAgICAgICBOZXcg ZnVuY3Rpb24gdG8gY2hlY2sgd2hldGhlciByYW5raW5nIHRoZSBvcHMgcmVzdWx0cyBpbg0KPiA+ ICAgICAgICAgYmV0dGVyIHBhcmFsbGVsaXNtLg0KPiA+ICAgICAgICAgKGdldF9yZWFzc29jaWF0 aW9uX3dpZHRoKTogQWRkIG5ldyBwYXJhbWV0ZXJzLiBTZWFyY2ggZm9yDQo+ID4gICAgICAgICBz bWFsbGVyIHdpZHRoIGNvbnNpZGVyaW5nIHRoZSBiZW5lZml0IG9mIEZNQS4NCj4gPiAgICAgICAg IChyYW5rX29wc19mb3JfZm1hKTogQ2hhbmdlIHJldHVybiB2YWx1ZSB0byBiZSBudW1iZXIgb2YN Cj4gPiAgICAgICAgIE1VTFRfRVhQUnMuDQo+ID4gICAgICAgICAocmVhc3NvY2lhdGVfYmIpOiBG b3IgMyBvcHMsIHJlZmluZSB0aGUgY29uZGl0aW9uIHRvIGNhbGwNCj4gPiAgICAgICAgIHN3YXBf b3BzX2Zvcl9iaW5hcnlfc3RtdC4NCj4gPg0KPiA+IGdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOg0K PiA+DQo+ID4gICAgICAgICAqIGdjYy5kZy9wcjExMDI3OS5jOiBOZXcgdGVzdC4NCg0KVGhhbmtz LA0KRGkgWmhhbw0KDQotLS0tDQoNCiAgICAgICAgUFIgdHJlZS1vcHRpbWl6YXRpb24vMTEwMjc5 DQoNCmdjYy9DaGFuZ2VMb2c6DQoNCiAgICAgICAgKiBkb2MvaW52b2tlLnRleGk6IERlc2NyaXB0 aW9uIG9mIHBhcmFtX21heF9mbWFfY2hhaW5fbGVuLg0KICAgICAgICAqIHBhcmFtcy5vcHQ6IE5l dyBwYXJhbWV0ZXIgcGFyYW1fbWF4X2ZtYV9jaGFpbl9sZW4uDQogICAgICAgICogdHJlZS1zc2Et cmVhc3NvYy5jYyAoZ2V0X3JlYXNzb2NpYXRpb25fd2lkdGgpOg0KICAgICAgICBTdXBwb3J0IHBh cmFtX21heF9mbWFfY2hhaW5fbGVuOyBjaGVjayBmb3IgbG9vcCBkZXBlbmRlbnQNCiAgICAgICAg Rk1Bcy4NCiAgICAgICAgKHJhbmtfb3BzX2Zvcl9mbWEpOiBSZXR1cm4gdGhlIG51bWJlciBvZiBN VUxUX0VYUFJzLg0KICAgICAgICAocmVhc3NvY2lhdGVfYmIpOiBGb3IgMyBvcHMsIHJlZmluZSB0 aGUgY29uZGl0aW9uIHRvIGNhbGwNCiAgICAgICAgc3dhcF9vcHNfZm9yX2JpbmFyeV9zdG10Lg0K DQpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCg0KICAgICAgICAqIGdjYy5kZy9wcjExMDI3OS0x LmM6IE5ldyB0ZXN0Lg0KICAgICAgICAqIGdjYy5kZy9wcjExMDI3OS0yLmM6IE5ldyB0ZXN0Lg0K ICAgICAgICAqIGdjYy5kZy9wcjExMDI3OS0zLmM6IE5ldyB0ZXN0Lg0K --_002_SN6PR01MB4240C36D35F02379B33C258DE8CFASN6PR01MB4240prod_ Content-Type: application/octet-stream; name="0001-Keep-FMA-chains-in-reassoc-based-on-new-parameter.patch" Content-Description: 0001-Keep-FMA-chains-in-reassoc-based-on-new-parameter.patch Content-Disposition: attachment; filename="0001-Keep-FMA-chains-in-reassoc-based-on-new-parameter.patch"; size=14002; creation-date="Sun, 08 Oct 2023 16:37:57 GMT"; modification-date="Sun, 08 Oct 2023 16:39:55 GMT" Content-Transfer-Encoding: base64 RnJvbSA0ODkwZjFhNzhhODVlOWI3MzFiMzRiZmRlZDlmYTc5Yjc4MmZjMGE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiZHpoYW8uYW1wZXJlIiA8ZGkuemhhb0BhbXBlcmVjb21wdXRp bmcuY29tPgpEYXRlOiBTYXQsIDcgT2N0IDIwMjMgMTk6Mjc6MjIgKzA4MDAKU3ViamVjdDogW1BB VENIXSBLZWVwIEZNQSBjaGFpbnMgaW4gcmVhc3NvYyBiYXNlZCBvbiBuZXcgcGFyYW1ldGVyCgpB ZGQgYSBuZXcgcGFyYW1ldGVyIHBhcmFtX21heF9mbWFfY2hhaW5fbGVuLCB0byBzdWdnZXN0IHRo ZQptYXhpbXVtIGxlbmd0aCBvZiBGTUEgY2hhaW4gdG8gYmUga2VwdCBpbiByZWFzc29jMi4KLS0t CiBnY2MvZG9jL2ludm9rZS50ZXhpICAgICAgICAgICAgICAgfCAgIDMgKwogZ2NjL3BhcmFtcy5v cHQgICAgICAgICAgICAgICAgICAgIHwgICA0ICsKIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3ByMTEw Mjc5LTEuYyB8ICA0NyArKysrKysrKysrKwogZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHIxMTAyNzkt Mi5jIHwgIDUwICsrKysrKysrKysrKwogZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHIxMTAyNzktMy5j IHwgIDY1ICsrKysrKysrKysrKysrKwogZ2NjL3RyZWUtc3NhLXJlYXNzb2MuY2MgICAgICAgICAg IHwgMTMxICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQogNiBmaWxlcyBjaGFuZ2VkLCAy ODQgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvcHIxMTAyNzktMS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rl c3RzdWl0ZS9nY2MuZGcvcHIxMTAyNzktMi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3Rz dWl0ZS9nY2MuZGcvcHIxMTAyNzktMy5jCgpkaWZmIC0tZ2l0IGEvZ2NjL2RvYy9pbnZva2UudGV4 aSBiL2djYy9kb2MvaW52b2tlLnRleGkKaW5kZXggMjMwODM0NjdkNDcuLmM5MjhmNGJmYjBlIDEw MDY0NAotLS0gYS9nY2MvZG9jL2ludm9rZS50ZXhpCisrKyBiL2djYy9kb2MvaW52b2tlLnRleGkK QEAgLTE2MjA0LDYgKzE2MjA0LDkgQEAgRW1pdCBpbnN0cnVtZW50YXRpb24gY2FsbHMgdG8gX190 c2FuX2Z1bmNfZW50cnkoKSBhbmQgX190c2FuX2Z1bmNfZXhpdCgpLgogTWF4aW11bSBudW1iZXIg b2YgaW5zdHJ1Y3Rpb25zIHRvIGNvcHkgd2hlbiBkdXBsaWNhdGluZyBibG9ja3Mgb24gYQogZmlu aXRlIHN0YXRlIGF1dG9tYXRvbiBqdW1wIHRocmVhZCBwYXRoLgogCitAaXRlbSBtYXgtZm1hLWNo YWluLWxlbgorVGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbnNlY3V0aXZlIEZNQXMgdGhhdCB3ZSdk IGxpa2Ugbm90IHRvIGJyZWFrLgorCiBAaXRlbSB0aHJlYWRlci1kZWJ1ZwogdGhyZWFkZXItZGVi dWc9W25vbmV8YWxsXSBFbmFibGVzIHZlcmJvc2UgZHVtcGluZyBvZiB0aGUgdGhyZWFkZXIgc29s dmVyLgogCmRpZmYgLS1naXQgYS9nY2MvcGFyYW1zLm9wdCBiL2djYy9wYXJhbXMub3B0CmluZGV4 IGZmZmE4YjFiYzY0Li5jMjJkYmRhMWU5ZiAxMDA2NDQKLS0tIGEvZ2NjL3BhcmFtcy5vcHQKKysr IGIvZ2NjL3BhcmFtcy5vcHQKQEAgLTUwMiw2ICs1MDIsMTAgQEAgVGhlIG1heGltdW0gbnVtYmVy IG9mIG5lc3RlZCBpbmRpcmVjdCBpbmxpbmluZyBwZXJmb3JtZWQgYnkgZWFybHkgaW5saW5lci4K IENvbW1vbiBKb2luZWQgVUludGVnZXIgVmFyKHBhcmFtX21heF9maWVsZHNfZm9yX2ZpZWxkX3Nl bnNpdGl2ZSkgUGFyYW0KIE1heGltdW0gbnVtYmVyIG9mIGZpZWxkcyBpbiBhIHN0cnVjdHVyZSBi ZWZvcmUgcG9pbnRlciBhbmFseXNpcyB0cmVhdHMgdGhlIHN0cnVjdHVyZSBhcyBhIHNpbmdsZSB2 YXJpYWJsZS4KIAorLXBhcmFtPW1heC1mbWEtY2hhaW4tbGVuPQorQ29tbW9uIEpvaW5lZCBVSW50 ZWdlciBWYXIocGFyYW1fbWF4X2ZtYV9jaGFpbl9sZW4pIEludGVnZXJSYW5nZSgwLCA1MTIpIFBh cmFtIE9wdGltaXphdGlvbgorVGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbnNlY3V0aXZlIEZNQXMg dGhhdCB3ZSdkIGxpa2Ugbm90IHRvIGJyZWFrLgorCiAtcGFyYW09bWF4LWZzbS10aHJlYWQtcGF0 aC1pbnNucz0KIENvbW1vbiBKb2luZWQgVUludGVnZXIgVmFyKHBhcmFtX21heF9mc21fdGhyZWFk X3BhdGhfaW5zbnMpIEluaXQoMTAwKSBJbnRlZ2VyUmFuZ2UoMSwgOTk5OTk5KSBQYXJhbSBPcHRp bWl6YXRpb24KIE1heGltdW0gbnVtYmVyIG9mIGluc3RydWN0aW9ucyB0byBjb3B5IHdoZW4gZHVw bGljYXRpbmcgYmxvY2tzIG9uIGEgZmluaXRlIHN0YXRlIGF1dG9tYXRvbiBqdW1wIHRocmVhZCBw YXRoLgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHIxMTAyNzktMS5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvcHIxMTAyNzktMS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi41MWNjY2Q1ZDhiNwotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLmRnL3ByMTEwMjc5LTEuYwpAQCAtMCwwICsxLDQ3IEBACisvKiBQUiB0cmVlLW9wdGlt aXphdGlvbi8xMTAyNzkgKi8KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlv bnMgIi1PZmFzdCAtLXBhcmFtIHRyZWUtcmVhc3NvYy13aWR0aD00IC0tcGFyYW0gbWF4LWZtYS1j aGFpbi1sZW49OCAtZmR1bXAtdHJlZS1yZWFzc29jMi1kZXRhaWxzIC1mZHVtcC10cmVlLW9wdGlt aXplZCIgfSAqLworLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1tYXJjaD1hcm12OC4yLWEi IHsgdGFyZ2V0IGFhcmNoNjQtKi0qIH0gfSAqLworCisjZGVmaW5lIExPT1BfQ09VTlQgODAwMDAw MDAwCit0eXBlZGVmIGRvdWJsZSBkYXRhX2U7CisKKyNpbmNsdWRlIDxzdGRpby5oPgorCitfX2F0 dHJpYnV0ZV9ub2lubGluZV9fIGRhdGFfZQorZm9vIChkYXRhX2UgaW4pCit7CisgIGRhdGFfZSBh MSwgYTIsIGEzLCBhNDsKKyAgZGF0YV9lIHRtcCwgcmVzdWx0ID0gMDsKKyAgYTEgPSBpbiArIDAu MTsKKyAgYTIgPSBpbiAqIDAuMTsKKyAgYTMgPSBpbiArIDAuMDE7CisgIGE0ID0gaW4gKiAwLjU5 OworCisgIGRhdGFfZSByZXN1bHQyID0gMDsKKworICBmb3IgKGludCBpYyA9IDA7IGljIDwgTE9P UF9DT1VOVDsgaWMrKykKKyAgICB7CisgICAgICAvKiBUZXN0IHRoYXQgYSBjb21wbGV0ZSBGTUEg Y2hhaW4gd2l0aCBsZW5ndGg9NCBpcyBub3QgYnJva2VuLiAgKi8KKyAgICAgIHRtcCA9IGExICsg YTIgKiBhMiArIGEzICogYTMgKyBhNCAqIGE0IDsKKyAgICAgIHJlc3VsdCArPSB0bXAgLSBpYzsK KyAgICAgIHJlc3VsdDIgPSByZXN1bHQyIC8gMiAtIHRtcDsKKworICAgICAgYTEgKz0gMC45MTsK KyAgICAgIGEyICs9IDAuMTsKKyAgICAgIGEzIC09IDAuMDE7CisgICAgICBhNCAtPSAwLjg5Owor CisgICAgfQorCisgIHJldHVybiByZXN1bHQgKyByZXN1bHQyOworfQorCitpbnQKK21haW4gKGlu dCBhcmdjLCBjaGFyICoqYXJndikKK3sKKyAgcHJpbnRmICgiJWZcbiIsIGZvbyAoLTEuMikpOwor fQorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90ICJ3YXMgY2hvc2VuIGZvciBy ZWFzc29jaWF0aW9uIiAicmVhc3NvYzIifSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVl LWR1bXAtdGltZXMge1wuRk1BIH0gMyAib3B0aW1pemVkIn0gfSAqLwpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ByMTEwMjc5LTIu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ByMTEwMjc5LTIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uNDIzZTY1ZDJkN2YKLS0tIC9kZXYvbnVsbAorKysgYi9nY2Mv dGVzdHN1aXRlL2djYy5kZy9wcjExMDI3OS0yLmMKQEAgLTAsMCArMSw1MCBAQAorLyogUFIgdHJl ZS1vcHRpbWl6YXRpb24vMTEwMjc5ICovCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBk Zy1vcHRpb25zICItT2Zhc3QgLS1wYXJhbSB0cmVlLXJlYXNzb2Mtd2lkdGg9NCAtLXBhcmFtIG1h eC1mbWEtY2hhaW4tbGVuPTggLWZkdW1wLXRyZWUtcmVhc3NvYzItZGV0YWlscyAtZmR1bXAtdHJl ZS1vcHRpbWl6ZWQiIH0gKi8KKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItbWFyY2g9YXJt djguMi1hIiB7IHRhcmdldCBhYXJjaDY0LSotKiB9IH0gKi8KKworI2RlZmluZSBMT09QX0NPVU5U IDgwMDAwMDAwMAordHlwZWRlZiBkb3VibGUgZGF0YV9lOworCitkYXRhX2UKK2ZvbyAoZGF0YV9l IGluKQoreworICBkYXRhX2UgYTEsIGEyLCBhMywgYTQsIGE1LCBhNiwgYTcsIGE4LCBhOSwgYTEw OworICBkYXRhX2UgdG1wLCByZXN1bHQsIHJlc3VsdDIgPSAwOworICBhMSA9IGluICsgMC4xOwor ICBhMiA9IGluICogMC4xOworICBhMyA9IGluICsgMC4wMTsKKyAgYTQgPSBpbiAqIDAuNTk7Cisg IGE1ID0gaW47CisgIGE2ID0gaW4gKiAyOworICBhNyA9IGluIC0gMC4xOworICBhOCA9IGluICog MC4wOTsKKyAgYTkgPSBpbiAqIDIgLSAyOworICBhMTAgPSBpbiAvIDIgKyAwLjc7CisKKyAgZm9y IChpbnQgaWMgPSAwOyBpYyA8IExPT1BfQ09VTlQ7IGljKyspCisgICAgeworICAgICAgLyogb3Bf bnVtPTEwLCBtdWx0X2V4cHJzX251bT04LiBUZXN0IHRoYXQgdGhlIG9wIGxpc3QgaXMgYnJva2Vu IGludG8gMgorICAgICAgICAgY29tcGxldGUgRk1BIGNoYWlucy4gICovCisgICAgICB0bXAgPSBh MSAqIGExICsgYTIgKiBhMiArIGEzICogYTMgKyBhNCArIGE1ICogYTUgKyBhNiArIGE3ICogYTcg KyBhOCAqIGE4CisJICAgICsgYTkgKiBhOSArIGExMCAqIGExMDsKKyAgICAgIHJlc3VsdCArPSB0 bXAgLSBpYzsKKworICAgICAgYTEgKz0gMC45MTsKKyAgICAgIGEyICs9IDAuMTsKKyAgICAgIGEz IC09IDAuMDE7CisgICAgICBhNCAtPSAxLjA7CisgICAgICBhNiArPSAwLjA5OworICAgICAgYTcg LT0gMS45OworICAgICAgYTggPSBhMSArIGEyOworICAgICAgYTkgKz0gYTI7CisgICAgICBhMTAg LT0gYTQ7CisKKyAgICAgIHJlc3VsdDIgPSByZXN1bHQyIC0gYTEgLSB0bXAgKiAwLjI7CisgICAg fQorCisgIHJldHVybiByZXN1bHQgKiByZXN1bHQyOworfQorCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi10cmVlLWR1bXAtdGltZXMgIldpZHRoID0gMiB3YXMgY2hvc2VuIGZvciByZWFzc29jaWF0aW9u IiAxICJyZWFzc29jMiJ9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l cyB7XC5GTUEgfSA5ICJvcHRpbWl6ZWQifSB9ICovClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvcHIxMTAyNzktMy5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MuZGcvcHIxMTAyNzktMy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi5kOTQ0NzRjYzQyZAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLmRnL3ByMTEwMjc5LTMuYwpAQCAtMCwwICsxLDY1IEBACisvKiB7IGRnLWRvIGNvbXBpbGUg fSAqLworLyogeyBkZy1vcHRpb25zICItT2Zhc3QgLS1wYXJhbSBhdm9pZC1mbWEtbWF4LWJpdHM9 NTEyIC0tcGFyYW0gdHJlZS1yZWFzc29jLXdpZHRoPTQgLWZkdW1wLXRyZWUtd2lkZW5pbmdfbXVs LWRldGFpbHMiIH0gKi8KKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItbWFyY2g9YXJtdjgu Mi1hIiB7IHRhcmdldCBhYXJjaDY0LSotKiB9IH0gKi8KKworI2RlZmluZSBMT09QX0NPVU5UIDgw MDAwMDAwMAordHlwZWRlZiBkb3VibGUgZGF0YV9lOworCisvKiBDaGVjayB0aGF0IEZNQXMgd2l0 aCBiYWNrZWRnZSBkZXBlbmRlbmN5IGFyZSBhdm9pZGVkLiBPdGhlcndpc2UgdGhlcmUgd29uJ3QK KyAgIGJlIEZNQSBnZW5lcmF0ZWQgd2l0aCAiLS1wYXJhbSBhdm9pZC1mbWEtbWF4LWJpdHM9NTEy Ii4gICAqLworCitkYXRhX2UKK2ZvbzEgKGRhdGFfZSBhLCBkYXRhX2UgYiwgZGF0YV9lIGMsIGRh dGFfZSBkKQoreworICBkYXRhX2UgcmVzdWx0ID0gMDsKKworICBmb3IgKGludCBpYyA9IDA7IGlj IDwgTE9PUF9DT1VOVDsgaWMrKykKKyAgICB7CisgICAgICByZXN1bHQgKz0gKGEgKiBiICsgYyAq IGQpOworCisgICAgICBhIC09IDAuMTsKKyAgICAgIGIgKz0gMC45OworICAgICAgYyAqPSAxLjAy OworICAgICAgZCAqPSAwLjYxOworICAgIH0KKworICByZXR1cm4gcmVzdWx0OworfQorCitkYXRh X2UKK2ZvbzIgKGRhdGFfZSBhLCBkYXRhX2UgYiwgZGF0YV9lIGMsIGRhdGFfZSBkKQoreworICBk YXRhX2UgcmVzdWx0ID0gMDsKKworICBmb3IgKGludCBpYyA9IDA7IGljIDwgTE9PUF9DT1VOVDsg aWMrKykKKyAgICB7CisgICAgICByZXN1bHQgPSBhICogYiArIHJlc3VsdCArIGMgKiBkOworCisg ICAgICBhIC09IDAuMTsKKyAgICAgIGIgKz0gMC45OworICAgICAgYyAqPSAxLjAyOworICAgICAg ZCAqPSAwLjYxOworICAgIH0KKworICByZXR1cm4gcmVzdWx0OworfQorCitkYXRhX2UKK2ZvbzMg KGRhdGFfZSBhLCBkYXRhX2UgYiwgZGF0YV9lIGMsIGRhdGFfZSBkKQoreworICBkYXRhX2UgcmVz dWx0ID0gMDsKKworICBmb3IgKGludCBpYyA9IDA7IGljIDwgTE9PUF9DT1VOVDsgaWMrKykKKyAg ICB7CisgICAgICByZXN1bHQgPSByZXN1bHQgKyBhICogYiArIGMgKiBkOworCisgICAgICBhIC09 IDAuMTsKKyAgICAgIGIgKz0gMC45OworICAgICAgYyAqPSAxLjAyOworICAgICAgZCAqPSAwLjYx OworICAgIH0KKworICByZXR1cm4gcmVzdWx0OworfQorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi10 cmVlLWR1bXAtdGltZXMgIkdlbmVyYXRlZCBGTUEiIDMgIndpZGVuaW5nX211bCJ9IH0gKi8KZGlm ZiAtLWdpdCBhL2djYy90cmVlLXNzYS1yZWFzc29jLmNjIGIvZ2NjL3RyZWUtc3NhLXJlYXNzb2Mu Y2MKaW5kZXggNDFlZTM2NDEzYjUuLmJhYmQ1OGFhODhhIDEwMDY0NAotLS0gYS9nY2MvdHJlZS1z c2EtcmVhc3NvYy5jYworKysgYi9nY2MvdHJlZS1zc2EtcmVhc3NvYy5jYwpAQCAtNTQzMSwxNiAr NTQzMSwyMCBAQCBnZXRfcmVxdWlyZWRfY3ljbGVzIChpbnQgb3BzX251bSwgaW50IGNwdV93aWR0 aCkKIH0KIAogLyogUmV0dXJucyBhbiBvcHRpbWFsIG51bWJlciBvZiByZWdpc3RlcnMgdG8gdXNl IGZvciBjb21wdXRhdGlvbiBvZgotICAgZ2l2ZW4gc3RhdGVtZW50cy4gICovCisgICBnaXZlbiBz dGF0ZW1lbnRzLgorCisgICBMSFMgaXMgdGhlIHJlc3VsdCBzc2EgbmFtZSBvZiBPUFMuICBNVUxU X05VTSBpcyBudW1iZXIgb2YgTVVMVF9FWFBScyBpbgorICAgT1BTLiAgKi8KIAogc3RhdGljIGlu dAotZ2V0X3JlYXNzb2NpYXRpb25fd2lkdGggKGludCBvcHNfbnVtLCBlbnVtIHRyZWVfY29kZSBv cGMsCi0JCQkgbWFjaGluZV9tb2RlIG1vZGUpCitnZXRfcmVhc3NvY2lhdGlvbl93aWR0aCAodmVj PG9wZXJhbmRfZW50cnkgKj4gKm9wcywgaW50IG11bHRfbnVtLCB0cmVlIGxocywKKwkJCSBlbnVt IHRyZWVfY29kZSBvcGMsIG1hY2hpbmVfbW9kZSBtb2RlKQogewogICBpbnQgcGFyYW1fd2lkdGgg PSBwYXJhbV90cmVlX3JlYXNzb2Nfd2lkdGg7CiAgIGludCB3aWR0aDsKICAgaW50IHdpZHRoX21p bjsKICAgaW50IGN5Y2xlc19iZXN0OworICBpbnQgb3BzX251bSA9IG9wcy0+bGVuZ3RoICgpOwog CiAgIGlmIChwYXJhbV93aWR0aCA+IDApCiAgICAgd2lkdGggPSBwYXJhbV93aWR0aDsKQEAgLTU0 NzEsNiArNTQ3NSw3NCBAQCBnZXRfcmVhc3NvY2lhdGlvbl93aWR0aCAoaW50IG9wc19udW0sIGVu dW0gdHJlZV9jb2RlIG9wYywKIAlicmVhazsKICAgICB9CiAKKyAgLyogQ2hlY2sgaWYga2VlcGlu ZyBjb21wbGV0ZSBGTUEgY2hhaW5zIGlzIHByZWZlcnJlZC4gICovCisgIGlmICh3aWR0aCA+IDEg JiYgbXVsdF9udW0gPj0gMiAmJiBwYXJhbV9tYXhfZm1hX2NoYWluX2xlbikKKyAgICB7CisgICAg ICAvKiBudW1fZm1hX2NoYWluICsgKG51bV9mbWFfY2hhaW4gLSAxKSA+PSBudW1fcGx1cyAuICAq LworICAgICAgaW50IG51bV9vdGhlcnMgPSBvcHNfbnVtIC0gbXVsdF9udW07CisgICAgICBpbnQg bnVtX2ZtYV9jaGFpbiA9IENFSUwgKG51bV9vdGhlcnMgKyAxLCAyKTsKKworICAgICAgaWYgKG51 bV9mbWFfY2hhaW4gPCB3aWR0aAorCSAgJiYgQ0VJTCAobXVsdF9udW0sIG51bV9mbWFfY2hhaW4p IDw9IHBhcmFtX21heF9mbWFfY2hhaW5fbGVuKQorCXdpZHRoID0gbnVtX2ZtYV9jaGFpbjsKKyAg ICB9CisKKyAgLyogSWYgdGhlcmUncyBsb29wIGRlcGVuZGVudCBGTUEgcmVzdWx0LCByZXR1cm4g d2lkdGg9MiB0byBhdm9pZCBpdC4gIFRoaXMgaXMKKyAgICAgYmV0dGVyIHRoYW4gc2tpcHBpbmcg dGhlc2UgRk1BIGNhbmRpZGF0ZXMgaW4gd2lkZW5pbmdfbXVsLiAgKi8KKyAgaWYgKHdpZHRoID09 IDEgJiYgbXVsdF9udW0KKyAgICAgICYmIG1heWJlX2xlICh0cmVlX3RvX3BvbHlfaW50NjQgKFRZ UEVfU0laRSAoVFJFRV9UWVBFIChsaHMpKSksCisJCSAgIHBhcmFtX2F2b2lkX2ZtYV9tYXhfYml0 cykpCisgICAgeworICAgICAgLyogTG9vayBmb3IgY3Jvc3MgYmFja2VkZ2UgZGVwZW5kZW5jeToK KwkxLiBMSFMgaXMgYSBwaGkgYXJndW1lbnQgaW4gdGhlIHNhbWUgYmFzaWMgYmxvY2sgaXQgaXMg ZGVmaW5lZC4KKwkyLiBBbmQgdGhlIHJlc3VsdCBvZiB0aGUgcGhpIG5vZGUgaXMgdXNlZCBpbiBP UFMuICAqLworICAgICAgYmFzaWNfYmxvY2sgYmIgPSBnaW1wbGVfYmIgKFNTQV9OQU1FX0RFRl9T VE1UIChsaHMpKTsKKyAgICAgIGdpbXBsZV9zdG10X2l0ZXJhdG9yIGdzaTsKKyAgICAgIGZvciAo Z3NpID0gZ3NpX3N0YXJ0X3BoaXMgKGJiKTsgIWdzaV9lbmRfcCAoZ3NpKTsgZ3NpX25leHQgKCZn c2kpKQorCXsKKwkgIGdwaGkgKnBoaSA9IGR5bl9jYXN0PGdwaGkgKj4gKGdzaV9zdG10IChnc2kp KTsKKwkgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBnaW1wbGVfcGhpX251bV9hcmdzIChwaGkp OyArK2kpCisJICAgIHsKKwkgICAgICB0cmVlIG9wID0gUEhJX0FSR19ERUYgKHBoaSwgaSk7CisJ ICAgICAgaWYgKCEob3AgPT0gbGhzICYmIGdpbXBsZV9waGlfYXJnX2VkZ2UgKHBoaSwgaSktPnNy YyA9PSBiYikpCisJCWNvbnRpbnVlOworCSAgICAgIHRyZWUgcGhpX3Jlc3VsdCA9IGdpbXBsZV9w aGlfcmVzdWx0IChwaGkpOworCSAgICAgIG9wZXJhbmRfZW50cnkgKm9lOworCSAgICAgIHVuc2ln bmVkIGludCBqOworCSAgICAgIEZPUl9FQUNIX1ZFQ19FTFQgKCpvcHMsIGosIG9lKQorCQl7CisJ CSAgaWYgKFRSRUVfQ09ERSAob2UtPm9wKSAhPSBTU0FfTkFNRSkKKwkJICAgIGNvbnRpbnVlOwor CisJCSAgLyogUmVzdWx0IG9mIHBoaSBpcyBvcGVyYW5kIG9mIFBMVVNfRVhQUi4gICovCisJCSAg aWYgKG9lLT5vcCA9PSBwaGlfcmVzdWx0KQorCQkgICAgcmV0dXJuIDI7CisKKwkJICAvKiBDaGVj ayBpcyByZXN1bHQgb2YgcGhpIGlzIG9wZXJhbmQgb2YgTVVMVF9FWFBSLiAgKi8KKwkJICBnaW1w bGUgKmRlZl9zdG10ID0gU1NBX05BTUVfREVGX1NUTVQgKG9lLT5vcCk7CisJCSAgaWYgKGlzX2dp bXBsZV9hc3NpZ24gKGRlZl9zdG10KQorCQkgICAgICAmJiBnaW1wbGVfYXNzaWduX3Joc19jb2Rl IChkZWZfc3RtdCkgPT0gTkVHQVRFX0VYUFIpCisJCSAgICB7CisJCSAgICAgIHRyZWUgcmhzID0g Z2ltcGxlX2Fzc2lnbl9yaHMxIChkZWZfc3RtdCk7CisJCSAgICAgIGlmIChUUkVFX0NPREUgKHJo cykgPT0gU1NBX05BTUUpCisJCQl7CisJCQkgIGlmIChyaHMgPT0gcGhpX3Jlc3VsdCkKKwkJCSAg ICByZXR1cm4gMjsKKwkJCSAgZGVmX3N0bXQgPSBTU0FfTkFNRV9ERUZfU1RNVCAocmhzKTsKKwkJ CX0KKwkJICAgIH0KKwkJICBpZiAoaXNfZ2ltcGxlX2Fzc2lnbiAoZGVmX3N0bXQpCisJCSAgICAg ICYmIGdpbXBsZV9hc3NpZ25fcmhzX2NvZGUgKGRlZl9zdG10KSA9PSBNVUxUX0VYUFIpCisJCSAg ICB7CisJCSAgICAgIGlmIChnaW1wbGVfYXNzaWduX3JoczEgKGRlZl9zdG10KSA9PSBwaGlfcmVz dWx0CisJCQkgIHx8IGdpbXBsZV9hc3NpZ25fcmhzMiAoZGVmX3N0bXQpID09IHBoaV9yZXN1bHQp CisJCQlyZXR1cm4gMjsKKwkJICAgIH0KKwkJfQorCSAgICB9CisJfQorICAgIH0KKwogICByZXR1 cm4gd2lkdGg7CiB9CiAKQEAgLTY3ODMsOCArNjg1NSwxMCBAQCB0cmFuc2Zvcm1fc3RtdF90b19t dWx0aXBseSAoZ2ltcGxlX3N0bXRfaXRlcmF0b3IgKmdzaSwgZ2ltcGxlICpzdG10LAogICAgUmVh cnJhbmdlIG9wcyB0byAtPiBlICsgYSAqIGIgKyBjICogZCBnZW5lcmF0ZXM6CiAKICAgIF80ICA9 IC5GTUEgKGNfNyhEKSwgZF84KEQpLCBfMyk7Ci0gICBfMTEgPSAuRk1BIChhXzUoRCksIGJfNihE KSwgXzQpOyAgKi8KLXN0YXRpYyBib29sCisgICBfMTEgPSAuRk1BIChhXzUoRCksIGJfNihEKSwg XzQpOworCisgICBSZXR1cm4gdGhlIG51bWJlciBvZiBNVUxUX0VYUFJzIGluIHRoZSBjaGFpbi4g ICovCitzdGF0aWMgaW50CiByYW5rX29wc19mb3JfZm1hICh2ZWM8b3BlcmFuZF9lbnRyeSAqPiAq b3BzKQogewogICBvcGVyYW5kX2VudHJ5ICpvZTsKQEAgLTY3OTgsOSArNjg3MiwyNiBAQCByYW5r X29wc19mb3JfZm1hICh2ZWM8b3BlcmFuZF9lbnRyeSAqPiAqb3BzKQogICAgICAgaWYgKFRSRUVf Q09ERSAob2UtPm9wKSA9PSBTU0FfTkFNRSkKIAl7CiAJICBnaW1wbGUgKmRlZl9zdG10ID0gU1NB X05BTUVfREVGX1NUTVQgKG9lLT5vcCk7Ci0JICBpZiAoaXNfZ2ltcGxlX2Fzc2lnbiAoZGVmX3N0 bXQpCi0JICAgICAgJiYgZ2ltcGxlX2Fzc2lnbl9yaHNfY29kZSAoZGVmX3N0bXQpID09IE1VTFRf RVhQUikKLQkgICAgb3BzX211bHQuc2FmZV9wdXNoIChvZSk7CisJICBpZiAoaXNfZ2ltcGxlX2Fz c2lnbiAoZGVmX3N0bXQpKQorCSAgICB7CisJICAgICAgaWYgKGdpbXBsZV9hc3NpZ25fcmhzX2Nv ZGUgKGRlZl9zdG10KSA9PSBNVUxUX0VYUFIpCisJCW9wc19tdWx0LnNhZmVfcHVzaCAob2UpOwor CSAgICAgIC8qIEEgbmVnYXRlIG9uIHRoZSBtdWx0aXBsaWNhdGlvbiBsZWFkcyB0byBGTk1BLiAg Ki8KKwkgICAgICBlbHNlIGlmIChnaW1wbGVfYXNzaWduX3Joc19jb2RlIChkZWZfc3RtdCkgPT0g TkVHQVRFX0VYUFIKKwkJICAgICAgICYmIFRSRUVfQ09ERSAoZ2ltcGxlX2Fzc2lnbl9yaHMxIChk ZWZfc3RtdCkpID09IFNTQV9OQU1FKQorCQl7CisJCSAgZ2ltcGxlICpuZWdfZGVmX3N0bXQKKwkJ ICAgID0gU1NBX05BTUVfREVGX1NUTVQgKGdpbXBsZV9hc3NpZ25fcmhzMSAoZGVmX3N0bXQpKTsK KwkJICBpZiAoaXNfZ2ltcGxlX2Fzc2lnbiAobmVnX2RlZl9zdG10KQorCQkgICAgICAmJiBnaW1w bGVfYmIgKG5lZ19kZWZfc3RtdCkgPT0gZ2ltcGxlX2JiIChkZWZfc3RtdCkKKwkJICAgICAgJiYg Z2ltcGxlX2Fzc2lnbl9yaHNfY29kZSAobmVnX2RlZl9zdG10KSA9PSBNVUxUX0VYUFIpCisJCSAg ICBvcHNfbXVsdC5zYWZlX3B1c2ggKG9lKTsKKwkJICBlbHNlCisJCSAgICBvcHNfb3RoZXJzLnNh ZmVfcHVzaCAob2UpOworCQl9CisJICAgICAgZWxzZQorCQlvcHNfb3RoZXJzLnNhZmVfcHVzaCAo b2UpOworCSAgICB9CiAJICBlbHNlCiAJICAgIG9wc19vdGhlcnMuc2FmZV9wdXNoIChvZSk7CiAJ fQpAQCAtNjgxNiw3ICs2OTA3LDggQEAgcmFua19vcHNfZm9yX2ZtYSAodmVjPG9wZXJhbmRfZW50 cnkgKj4gKm9wcykKICAgICAgUHV0dGluZyBvcHMgdGhhdCBub3QgZGVmIGZyb20gbXVsdCBpbiBm cm9udCBjYW4gZ2VuZXJhdGUgbW9yZSBGTUFzLgogCiAgICAgIDIuIElmIGFsbCBvcHMgYXJlIGRl ZmluZWQgd2l0aCBtdWx0LCB3ZSBkb24ndCBuZWVkIHRvIHJlYXJyYW5nZSB0aGVtLiAgKi8KLSAg aWYgKG9wc19tdWx0Lmxlbmd0aCAoKSA+PSAyICYmIG9wc19tdWx0Lmxlbmd0aCAoKSAhPSBvcHNf bGVuZ3RoKQorICB1bnNpZ25lZCBtdWx0X251bSA9IG9wc19tdWx0Lmxlbmd0aCAoKTsKKyAgaWYg KG11bHRfbnVtID49IDIgJiYgbXVsdF9udW0gIT0gb3BzX2xlbmd0aCkKICAgICB7CiAgICAgICAv KiBQdXQgbm8tbXVsdCBvcHMgYW5kIG11bHQgb3BzIGFsdGVybmF0ZWx5IGF0IHRoZSBlbmQgb2Yg dGhlCiAJIHF1ZXVlLCB3aGljaCBpcyBjb25kdWNpdmUgdG8gZ2VuZXJhdGluZyBtb3JlIEZNQSBh bmQgcmVkdWNpbmcgdGhlCkBAIC02ODMyLDkgKzY5MjQsOCBAQCByYW5rX29wc19mb3JfZm1hICh2 ZWM8b3BlcmFuZF9lbnRyeSAqPiAqb3BzKQogCSAgaWYgKG9waW5kZXggPiAwKQogCSAgICBvcGlu ZGV4LS07CiAJfQotICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICByZXR1cm4gZmFsc2U7Cisg IHJldHVybiBtdWx0X251bTsKIH0KIC8qIFJlYXNzb2NpYXRlIGV4cHJlc3Npb25zIGluIGJhc2lj IGJsb2NrIEJCIGFuZCBpdHMgcG9zdC1kb21pbmF0b3IgYXMKICAgIGNoaWxkcmVuLgpAQCAtNzAw MCw3ICs3MDkxLDcgQEAgcmVhc3NvY2lhdGVfYmIgKGJhc2ljX2Jsb2NrIGJiKQogCQkgIG1hY2hp bmVfbW9kZSBtb2RlID0gVFlQRV9NT0RFIChUUkVFX1RZUEUgKGxocykpOwogCQkgIGludCBvcHNf bnVtID0gb3BzLmxlbmd0aCAoKTsKIAkJICBpbnQgd2lkdGg7Ci0JCSAgYm9vbCBoYXNfZm1hID0g ZmFsc2U7CisJCSAgaW50IG11bHRfbnVtID0gMDsKIAogCQkgIC8qIEZvciBiaW5hcnkgYml0IG9w ZXJhdGlvbnMsIGlmIHRoZXJlIGFyZSBhdCBsZWFzdCAzCiAJCSAgICAgb3BlcmFuZHMgYW5kIHRo ZSBsYXN0IG9wZXJhbmQgaW4gT1BTIGlzIGEgY29uc3RhbnQsCkBAIC03MDIzLDE2ICs3MTE0LDE4 IEBAIHJlYXNzb2NpYXRlX2JiIChiYXNpY19ibG9jayBiYikKIAkJCQkJCSAgICAgIG9wdF90eXBl KQogCQkgICAgICAmJiAocmhzX2NvZGUgPT0gUExVU19FWFBSIHx8IHJoc19jb2RlID09IE1JTlVT X0VYUFIpKQogCQkgICAgewotCQkgICAgICBoYXNfZm1hID0gcmFua19vcHNfZm9yX2ZtYSAoJm9w cyk7CisJCSAgICAgIG11bHRfbnVtID0gcmFua19vcHNfZm9yX2ZtYSAoJm9wcyk7CiAJCSAgICB9 CiAKIAkJICAvKiBPbmx5IHJld3JpdGUgdGhlIGV4cHJlc3Npb24gdHJlZSB0byBwYXJhbGxlbCBp biB0aGUKIAkJICAgICBsYXN0IHJlYXNzb2MgcGFzcyB0byBhdm9pZCB1c2VsZXNzIHdvcmsgYmFj ay1hbmQtZm9ydGgKIAkJICAgICB3aXRoIGluaXRpYWwgbGluZWFyaXphdGlvbi4gICovCisJCSAg Ym9vbCBoYXNfZm1hID0gbXVsdF9udW0gPj0gMiAmJiBtdWx0X251bSAhPSBvcHNfbnVtOwogCQkg IGlmICghcmVhc3NvY19pbnNlcnRfcG93aV9wCiAJCSAgICAgICYmIG9wcy5sZW5ndGggKCkgPiAz Ci0JCSAgICAgICYmICh3aWR0aCA9IGdldF9yZWFzc29jaWF0aW9uX3dpZHRoIChvcHNfbnVtLCBy aHNfY29kZSwKLQkJCQkJCQkgICBtb2RlKSkgPiAxKQorCQkgICAgICAmJiAod2lkdGggPSBnZXRf cmVhc3NvY2lhdGlvbl93aWR0aCAoJm9wcywgbXVsdF9udW0sIGxocywKKwkJCQkJCQkgICByaHNf Y29kZSwgbW9kZSkpCisJCQkgICA+IDEpCiAJCSAgICB7CiAJCSAgICAgIGlmIChkdW1wX2ZpbGUg JiYgKGR1bXBfZmxhZ3MgJiBUREZfREVUQUlMUykpCiAJCQlmcHJpbnRmIChkdW1wX2ZpbGUsCkBA IC03MDQ5LDcgKzcxNDIsMTMgQEAgcmVhc3NvY2lhdGVfYmIgKGJhc2ljX2Jsb2NrIGJiKQogCQkJ IHRvIG1ha2Ugc3VyZSB0aGUgb25lcyB0aGF0IGdldCB0aGUgZG91YmxlCiAJCQkgYmluYXJ5IG9w IGFyZSBjaG9zZW4gd2lzZWx5LiAgKi8KIAkJICAgICAgaW50IGxlbiA9IG9wcy5sZW5ndGggKCk7 Ci0JCSAgICAgIGlmIChsZW4gPj0gMyAmJiAhaGFzX2ZtYSkKKwkJICAgICAgaWYgKGxlbiA+PSAz CisJCQkgICYmICghaGFzX2ZtYQorCQkJICAgICAgLyogd2lkdGggPiAxIG1lYW5zIHJhbmtpbmcg b3BzIHJlc3VsdHMgaW4gYmV0dGVyCisJCQkJIHBhcmFsbGVsaXNtLiAgKi8KKwkJCSAgICAgIHx8 IGdldF9yZWFzc29jaWF0aW9uX3dpZHRoICgmb3BzLCBtdWx0X251bSwgbGhzLAorCQkJCQkJCSAg cmhzX2NvZGUsIG1vZGUpCisJCQkJICAgPiAxKSkKIAkJCXN3YXBfb3BzX2Zvcl9iaW5hcnlfc3Rt dCAob3BzLCBsZW4gLSAzKTsKIAogCQkgICAgICBuZXdfbGhzID0gcmV3cml0ZV9leHByX3RyZWUg KHN0bXQsIHJoc19jb2RlLCAwLCBvcHMsCi0tIAoyLjI1LjEKCg== --_002_SN6PR01MB4240C36D35F02379B33C258DE8CFASN6PR01MB4240prod_--