From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50089.outbound.protection.outlook.com [40.107.5.89]) by sourceware.org (Postfix) with ESMTPS id C3EA639BEC0E for ; Tue, 3 Nov 2020 15:06:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org C3EA639BEC0E Received: from DB9PR01CA0004.eurprd01.prod.exchangelabs.com (2603:10a6:10:1d8::9) by VI1PR08MB3984.eurprd08.prod.outlook.com (2603:10a6:803:e9::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.22; Tue, 3 Nov 2020 15:06:53 +0000 Received: from DB5EUR03FT017.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:1d8:cafe::62) by DB9PR01CA0004.outlook.office365.com (2603:10a6:10:1d8::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.18 via Frontend Transport; Tue, 3 Nov 2020 15:06:53 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT017.mail.protection.outlook.com (10.152.20.114) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3520.15 via Frontend Transport; Tue, 3 Nov 2020 15:06:53 +0000 Received: ("Tessian outbound c579d876a324:v64"); Tue, 03 Nov 2020 15:06:53 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 328318a11aa069de X-CR-MTA-TID: 64aa7808 Received: from 7104f606c80b.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 42F1E889-E8A6-462C-8D61-DC5B3CEF3EF5.1; Tue, 03 Nov 2020 15:06:48 +0000 Received: from EUR01-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 7104f606c80b.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 03 Nov 2020 15:06:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z+j+bm5Uyd0dp/Q3dEbyAC5uAkB0JN8ungBX178oGyMPXaEYKvFpYjtb1QdnS3M1nR4OzB2c5VoTeTIoExcmISvCyyXszosIMajlXrvNkpP8unl2P0jdlWfVRhcFO2EoieHy5mjRtn66FAy/Im98ZWprna5eOBXkBoM8Ofeg1wZyCLpYWz37WpsWNHvKIIdoCgnvb1voijb/ZpMgWTLu6ktvg/O4+/NJ/2nK+O1ByD1OD9C26IbSm8t1FWKLshU7+zMOl7uYANSRPnFX759VeeoB3takjSeMe3K4Fgese8eQO7ZcIN5J7hjg6gxI/M7NjHZzgWUctZ4W3JAYzLZ0Aw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nf4/0AWqmq30gDzN7JpEIqf3XRwaAQS/ZzXwwSk9XJk=; b=IvJYLcUOlA1uXHHZL3rMkpksh04RUgdPYtEqEwH01XZzsty8kBQIOzK1MQ/RpIlauDoLKK8hsSTwrLBipBNn8cwIXc7SWw7GUGbz1ottWINRK3Yshl4w5wVNmpkXgP1Rt0pexhC/hU2zUTBOuChlSckgJqcpeY/yXHeQb3nmnbcBLljiAjlCnqiC+5rAwClQmVAyVvxlz69bqT3huvQjHcg7ZDKUPcykfp0dalcm0iQLxY8TP5iYfIj1tW7KJV39pXHPN0zkfZNtx5an3/YvFTxcNtBevqo5NXDgRbR+kMuvzxUhI8AQj2yiNsbGLE4ge85qApLsINkuCeguIAOumQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by VI1PR08MB2702.eurprd08.prod.outlook.com (2603:10a6:802:1e::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3499.27; Tue, 3 Nov 2020 15:06:46 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::d0e7:49cd:4dae:a2a2]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::d0e7:49cd:4dae:a2a2%6]) with mapi id 15.20.3499.032; Tue, 3 Nov 2020 15:06:46 +0000 From: Tamar Christina To: Tamar Christina , "gcc-patches@gcc.gnu.org" CC: nd , "rguenther@suse.de" , "ook@ucw.cz" Subject: RE: [PATCH v2 8/16]middle-end: add Complex Multiply and Accumulate/Subtract and Multiply and Accumulate/Subtract with Conjucate detection Thread-Topic: [PATCH v2 8/16]middle-end: add Complex Multiply and Accumulate/Subtract and Multiply and Accumulate/Subtract with Conjucate detection Thread-Index: AQHWk0hK21HS5uaq6EWaKXQMREI93qm2sVcQ Date: Tue, 3 Nov 2020 15:06:45 +0000 Message-ID: References: <20200925142931.GA21805@arm.com> In-Reply-To: <20200925142931.GA21805@arm.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-exchange-imapappendstamp: VI1PR08MB5325.eurprd08.prod.outlook.com (15.20.3499.032) x-ts-tracking-id: 905C765691DF584AA884B35A95C18190.0 x-checkrecipientchecked: true Authentication-Results-Original: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [82.24.248.186] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: daefb24d-fdbd-444f-e932-08d8800a1954 x-ms-traffictypediagnostic: VI1PR08MB2702:|VI1PR08MB3984: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: kD4gtjKjnHX3sxbO0fg++z41g8XisdKeB+jv3ZItt4ykdUWkSwZUFu2f3nzLP3tuAO0a/weZh19CoWXyAddnomvSosmiTLnxMtPpty3mlhbJHVkbk8VJczjjJVim6dWfh6u1iP3a7GTbWSr2/Cjs1lGbrTUpNevSU5YhphSPhJZR5nr5sDYR2Sc0o9foNFxe7G0f6tkfvcp3KFWf1Kal0HfqDxCWluuwHEKBqwdiimZQ7N09wG0EUu4J1kJgCNmXE+Y6ELqccr60zd0mGdnzCoH3lpqxgnUeZ8SahjiExYv6VdSb9ulmvqoduIqZ62k0spUoJiM3J8QaWBI0puBbkg== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR08MB5325.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39850400004)(366004)(136003)(346002)(376002)(396003)(186003)(8676002)(66446008)(110136005)(66476007)(478600001)(4326008)(54906003)(64756008)(66616009)(66556008)(66946007)(76116006)(8936002)(99936003)(26005)(83380400001)(6506007)(316002)(86362001)(55016002)(7696005)(2906002)(53546011)(52536014)(5660300002)(71200400001)(9686003)(33656002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: ZlDJMzAdDpDvqW0w8nvgQFBtIHxP6Dy5xmZTj+Y9MRAZK9N1G2cnX7ZKXxy+wyWAi76qOM86aDt3E8boRaGqk+Fr7NXkeTid2CQ7CF9Y8FiypHlGPwWP9xeKuL21kqrq95IaHetBD0l0L8eEvHtliN12VkaTUBV1vVXNkzICi1s0+/+ostIBoG2tehkfUsbG1Ww1C5f/NoXABlk6XFY16Wz/ba3D8U2MNV7fkkJYdyoATBbKYbRf/v6DjjtJZsF50NgD6McRIb5kpiyI2137lhWoCB4Xg4jyoeSLp31sVwfjCSIcHO3Dobx5fMF2N+7if7PADz4X8mwtcAlQIQ0iMzFuo0gCHZV/dveOPXDzU1m/QivhI0lmQRyTDEJ1hKGb2uooB+RIhwGyXP60jfrc3pDlMSUPBH4XeKm8JS+pcO3GTjG5ndX/MKcfygB2iSLYwwrk8po/IXVfcCC+9NLAPCYmxrqtxtSbiIxVrLA4pRCPN1NcGPKHAOPR5Fl9Amq7n5bOAjeO/1yg0CudQjGIzmqMN83XvtRjOz6TyIg/px4NsbiELXPE9Iqu7QABs8uHAbeuS2mPoC9Z8JaJrLbqXil8QAbjBk7WI+BRSiQgNDVFa03JOTYUvbqHxjoQJNKc4gv7dY92nC3tMxrMzZIZ4A== Content-Type: multipart/mixed; boundary="_002_VI1PR08MB5325D6273A6F708BC149B6C0FF110VI1PR08MB5325eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB2702 Original-Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT017.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: d86cf87b-f252-4f49-4ed8-08d8800a14db X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: n7TBzyAZqMirkJqxhtyj0zhNVE+nfy/89Pkq3DQHhA8egz6bwa7vl6SAIGbI6QqXgsq99iWPVkRQl5w0d7HGPBn/+zSNtzwtEYgB0BGyS+Uh0hq4vXiEEzQyYCqVisruq2BpuSt3Tt6tV3f++BzLzrGZ25VOb8mJICC724kF9jMfxFM8L2BMnojuMPYravo1ebRflR2lFrDM0EMN2tr3TJBFWDJl7Avyjb43i3DrGTSu+WJCftzsRBg9cWhVhb1JvRnTq8kNTi92hQLsVXamX4kQA0rGKIcQqee/dhFn8hQEd1PiP0+EcUHB9mXdejK2IOWnK6L1SEEZWCqNWDy2qYXxniwLDfrxbEe+ZEpInlIEumDkTAg79LeQxx/TdimynJKArcFxX6jvDAEjW/zzCA== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(39860400002)(346002)(376002)(396003)(136003)(46966005)(66616009)(54906003)(186003)(86362001)(110136005)(235185007)(33656002)(52536014)(2906002)(316002)(9686003)(5660300002)(26005)(55016002)(33964004)(336012)(6506007)(7696005)(53546011)(82310400003)(81166007)(82740400003)(47076004)(83380400001)(99936003)(8676002)(70586007)(356005)(8936002)(4326008)(478600001)(70206006); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Nov 2020 15:06:53.5858 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: daefb24d-fdbd-444f-e932-08d8800a1954 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DB5EUR03FT017.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB3984 X-Spam-Status: No, score=-14.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_LOTSOFHASH, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Nov 2020 15:06:58 -0000 --_002_VI1PR08MB5325D6273A6F708BC149B6C0FF110VI1PR08MB5325eurp_ Content-Type: text/plain; charset="utf-8" Content-ID: <8EB6F7865B87D84391E16E54FB465147@arm.com> Content-Transfer-Encoding: base64 SGkgQWxsLA0KDQpUaGlzIGlzIGEgcmVzcGluIG9mIHRoZSBwYXRjaCB1c2luZyB0aGUgbmV3IGFw cHJvYWNoLg0KDQpCb290c3RyYXBwZWQgUmVndGVzdGVkIG9uIGFhcmNoNjQtbm9uZS1saW51eC1n bnUgYW5kIG5vIGlzc3Vlcy4NCg0KT2sgZm9yIG1hc3Rlcj8NCg0KVGhhbmtzLA0KVGFtYXINCg0K Z2NjL0NoYW5nZUxvZzoNCg0KCSogZG9jL21kLnRleGk6IERvY3VtZW50IG9wdGFicy4NCgkqIGlu dGVybmFsLWZuLmRlZiAoQ09NUExFWF9GTUEsIENPTVBMRVhfRk1BX0NPTkosIENPTVBMRVhfRk1T LA0KCUNPTVBMRVhfRk1TX0NPTkopOiBOZXcuDQoJKiBvcHRhYnMuZGVmIChjbWxhX29wdGFiLCBj bWxhX2Nvbmpfb3B0YWIsIGNtbHNfb3B0YWIsIGNtbHNfY29ual9vcHRhYik6DQoJTmV3Lg0KCSog dHJlZS12ZWN0LXNscC1wYXR0ZXJucy5jIChjbGFzcyBjb21wbGV4X2ZtYV9wYXR0ZXJuLA0KCWNv bXBsZXhfZm1hX3BhdHRlcm46Om1hdGNoZXMpOiBOZXcuDQoJKHNscF9wYXR0ZXJucyk6IEFkZCBj b21wbGV4X2ZtYV9wYXR0ZXJuLg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZy b206IEdjYy1wYXRjaGVzIDxnY2MtcGF0Y2hlcy1ib3VuY2VzQGdjYy5nbnUub3JnPiBPbiBCZWhh bGYgT2YgVGFtYXINCj4gQ2hyaXN0aW5hDQo+IFNlbnQ6IEZyaWRheSwgU2VwdGVtYmVyIDI1LCAy MDIwIDM6MzAgUE0NCj4gVG86IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnDQo+IENjOiBuZCA8bmRA YXJtLmNvbT47IHJndWVudGhlckBzdXNlLmRlOyBvb2tAdWN3LmN6DQo+IFN1YmplY3Q6IFtQQVRD SCB2MiA4LzE2XW1pZGRsZS1lbmQ6IGFkZCBDb21wbGV4IE11bHRpcGx5IGFuZA0KPiBBY2N1bXVs YXRlL1N1YnRyYWN0IGFuZCBNdWx0aXBseSBhbmQgQWNjdW11bGF0ZS9TdWJ0cmFjdCB3aXRoIENv bmp1Y2F0ZQ0KPiBkZXRlY3Rpb24NCj4gDQo+IEhpIEFsbCwNCj4gDQo+IFRoaXMgcGF0Y2ggYWRk cyBwYXR0ZXJuIGRldGVjdGlvbnMgZm9yIHRoZSBmb2xsb3dpbmcgb3BlcmF0aW9uOg0KPiANCj4g ICBDb21wbGV4IEZNTEEsIENvbmp1Y2F0ZSBGTUxBIG9mIHRoZSBzZWNvbmQgcGFyYW1ldGVyIGFu ZCBGTUxTLg0KPiANCj4gICAgIGMgKz0gYSAqIGIsIGMgKz0gYSAqIGNvbmogKGIpLCBjIC09IGEg KiBiIGFuZCBjIC09IGEgKiBjb25qIChiKQ0KPiANCj4gICBGb3IgdGhlIGNvbmp1Y2F0ZSBjYXNl cyBpdCBzdXBwb3J0cyB1bmRlciBmYXN0LW1hdGggdGhhdCB0aGUgb3BlcmFuZHMgdGhhdA0KPiBp cw0KPiAgIGJlaW5nIGNvbmp1Y2F0ZWQgYmUgZmxpcHBlZCBieSBmbGlwcGluZyB0aGUgYXJndW1l bnRzIHRvIHRoZSBvcHRhYi4gIFRoaXMNCj4gICBhbGxvd3MgaXQgdG8gc3VwcG9ydCBjID0gY29u aiAoYSkgKiBiIGFuZCBjICs9IGNvbmogKGEpICogYi4NCj4gDQo+ICAgd2hlcmUgYSwgYiBhbmQg YyBhcmUgY29tcGxleCBudW1iZXJzLg0KPiANCj4gQm9vdHN0cmFwcGVkIFJlZ3Rlc3RlZCBvbiBh YXJjaDY0LW5vbmUtbGludXgtZ251IGFuZCBubyBpc3N1ZXMuDQo+IA0KPiBPayBmb3IgbWFzdGVy Pw0KPiANCj4gVGhhbmtzLA0KPiBUYW1hcg0KPiANCj4gZ2NjL0NoYW5nZUxvZzoNCj4gDQo+IAkq IGRvYy9tZC50ZXhpOiBEb2N1bWVudCBvcHRhYnMuDQo+IAkqIGludGVybmFsLWZuLmRlZiAoQ09N UExFWF9GTUEsIENPTVBMRVhfRk1BX0NPTkosDQo+IENPTVBMRVhfRk1TLA0KPiAJQ09NUExFWF9G TVNfQ09OSik6IE5ldy4NCj4gCSogb3B0YWJzLmRlZiAoY21sYV9vcHRhYiwgY21sYV9jb25qX29w dGFiLCBjbWxzX29wdGFiLA0KPiBjbWxzX2Nvbmpfb3B0YWIpOg0KPiAJTmV3Lg0KPiAJKiB0cmVl LXZlY3Qtc2xwLXBhdHRlcm5zLmMgKGNsYXNzIENvbXBsZXhGTUFQYXR0ZXJuKTogTmV3Lg0KPiAJ KHNscF9wYXR0ZXJucyk6IEFkZCBDb21wbGV4Rk1BUGF0dGVybi4NCj4gDQo+IC0tDQo= --_002_VI1PR08MB5325D6273A6F708BC149B6C0FF110VI1PR08MB5325eurp_ Content-Type: text/x-diff; name="pr13512.patch" Content-Description: pr13512.patch Content-Disposition: attachment; filename="pr13512.patch"; size=9915; creation-date="Tue, 03 Nov 2020 15:02:11 GMT"; modification-date="Tue, 03 Nov 2020 15:02:11 GMT" Content-ID: <4D859D8606CCC54CB0842CCE45628FE3@arm.com> Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9kb2MvbWQudGV4aSBiL2djYy9kb2MvbWQudGV4aQ0KaW5kZXggZGRh ZjFhYmFjY2JkNDRkYWUxMWVhOTAyZWMzOGI0NzRhYWNmYjhlMS4uZDgxNDJmNzQ1MDUwZDk2M2U4 ZDE1Yzc3OTNmYWUwNmQ5YWQwMjAyMCAxMDA2NDQNCi0tLSBhL2djYy9kb2MvbWQudGV4aQ0KKysr IGIvZ2NjL2RvYy9tZC50ZXhpDQpAQCAtNjE0Myw2ICs2MTQzLDUwIEBAIHJvdGF0aW9ucyBAdmFy e219IG9mIDkwIG9yIDI3MC4NCiANCiBUaGlzIHBhdHRlcm4gaXMgbm90IGFsbG93ZWQgdG8gQGNv ZGV7RkFJTH0uDQogDQorQGNpbmRleCBAY29kZXtjbWxhQHZhcnttfTR9IGluc3RydWN0aW9uIHBh dHRlcm4NCitAaXRlbSBAc2FtcHtjbWxhQHZhcnttfTR9DQorUGVyZm9ybSBhIHZlY3RvciBmbG9h dGluZyBwb2ludCBtdWx0aXBseSBhbmQgYWNjdW11bGF0ZSBvZiBjb21wbGV4IG51bWJlcnMNCitp biBvcGVyYW5kIDAsIG9wZXJhbmQgMSBhbmQgb3BlcmFuZCAyLg0KKw0KK1RoZSBpbnN0cnVjdGlv biBtdXN0IHBlcmZvcm0gdGhlIG9wZXJhdGlvbiBvbiBkYXRhIGxvYWRlZCBjb250aWd1b3VzbHkg aW50byB0aGUNCit2ZWN0b3JzLg0KK1RoZSBvcGVyYXRpb24gaXMgb25seSBzdXBwb3J0ZWQgZm9y IHZlY3RvciBtb2RlcyBAdmFye219Lg0KKw0KK1RoaXMgcGF0dGVybiBpcyBub3QgYWxsb3dlZCB0 byBAY29kZXtGQUlMfS4NCisNCitAY2luZGV4IEBjb2Rle2NtbGFfY29uakB2YXJ7bX00fSBpbnN0 cnVjdGlvbiBwYXR0ZXJuDQorQGl0ZW0gQHNhbXB7Y21sYV9jb25qQHZhcnttfTR9DQorUGVyZm9y bSBhIHZlY3RvciBmbG9hdGluZyBwb2ludCBtdWx0aXBseSBhbmQgYWNjdW11bGF0ZSBvZiBjb21w bGV4IG51bWJlcnMNCitpbiBvcGVyYW5kIDAsIG9wZXJhbmQgMSBhbmQgdGhlIGNvbmp1Y2F0ZSBv ZiBvcGVyYW5kIDIuDQorDQorVGhlIGluc3RydWN0aW9uIG11c3QgcGVyZm9ybSB0aGUgb3BlcmF0 aW9uIG9uIGRhdGEgbG9hZGVkIGNvbnRpZ3VvdXNseSBpbnRvIHRoZQ0KK3ZlY3RvcnMuDQorVGhl IG9wZXJhdGlvbiBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgdmVjdG9yIG1vZGVzIEB2YXJ7bX0uDQor DQorVGhpcyBwYXR0ZXJuIGlzIG5vdCBhbGxvd2VkIHRvIEBjb2Rle0ZBSUx9Lg0KKw0KK0BjaW5k ZXggQGNvZGV7Y21sc0B2YXJ7bX00fSBpbnN0cnVjdGlvbiBwYXR0ZXJuDQorQGl0ZW0gQHNhbXB7 Y21sc0B2YXJ7bX00fQ0KK1BlcmZvcm0gYSB2ZWN0b3IgZmxvYXRpbmcgcG9pbnQgbXVsdGlwbHkg YW5kIHN1YnRyYWN0IG9mIGNvbXBsZXggbnVtYmVycw0KK2luIG9wZXJhbmQgMCwgb3BlcmFuZCAx IGFuZCBvcGVyYW5kIDIuDQorDQorVGhlIGluc3RydWN0aW9uIG11c3QgcGVyZm9ybSB0aGUgb3Bl cmF0aW9uIG9uIGRhdGEgbG9hZGVkIGNvbnRpZ3VvdXNseSBpbnRvIHRoZQ0KK3ZlY3RvcnMuDQor VGhlIG9wZXJhdGlvbiBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgdmVjdG9yIG1vZGVzIEB2YXJ7bX0u DQorDQorVGhpcyBwYXR0ZXJuIGlzIG5vdCBhbGxvd2VkIHRvIEBjb2Rle0ZBSUx9Lg0KKw0KK0Bj aW5kZXggQGNvZGV7Y21sc19jb25qQHZhcnttfTR9IGluc3RydWN0aW9uIHBhdHRlcm4NCitAaXRl bSBAc2FtcHtjbWxzX2NvbmpAdmFye219NH0NCitQZXJmb3JtIGEgdmVjdG9yIGZsb2F0aW5nIHBv aW50IG11bHRpcGx5IGFuZCBzdWJ0cmFjdCBvZiBjb21wbGV4IG51bWJlcnMNCitpbiBvcGVyYW5k IDAsIG9wZXJhbmQgMSBhbmQgdGhlIGNvbmp1Y2F0ZSBvZiBvcGVyYW5kIDIuDQorDQorVGhlIGlu c3RydWN0aW9uIG11c3QgcGVyZm9ybSB0aGUgb3BlcmF0aW9uIG9uIGRhdGEgbG9hZGVkIGNvbnRp Z3VvdXNseSBpbnRvIHRoZQ0KK3ZlY3RvcnMuDQorVGhlIG9wZXJhdGlvbiBpcyBvbmx5IHN1cHBv cnRlZCBmb3IgdmVjdG9yIG1vZGVzIEB2YXJ7bX0uDQorDQorVGhpcyBwYXR0ZXJuIGlzIG5vdCBh bGxvd2VkIHRvIEBjb2Rle0ZBSUx9Lg0KKw0KIEBjaW5kZXggQGNvZGV7Y211bEB2YXJ7bX00fSBp bnN0cnVjdGlvbiBwYXR0ZXJuDQogQGl0ZW0gQHNhbXB7Y211bEB2YXJ7bX00fQ0KIFBlcmZvcm0g YSB2ZWN0b3IgZmxvYXRpbmcgcG9pbnQgbXVsdGlwbGljYXRpb24gb2YgY29tcGxleCBudW1iZXJz IGluIG9wZXJhbmQgMA0KZGlmZiAtLWdpdCBhL2djYy9pbnRlcm5hbC1mbi5kZWYgYi9nY2MvaW50 ZXJuYWwtZm4uZGVmDQppbmRleCBjYjQxNjQzZjVlMzMyNTE4YTAyNzFiYjhlMWFmNDg4M2M4YmQ2 ODgwLi5hY2I3ZDlmM2JkYzc1NzQzN2Q1NDkyYTY1MjE0NGJhMzFjMmVmNzAyIDEwMDY0NA0KLS0t IGEvZ2NjL2ludGVybmFsLWZuLmRlZg0KKysrIGIvZ2NjL2ludGVybmFsLWZuLmRlZg0KQEAgLTI4 OCw2ICsyODgsMTAgQEAgREVGX0lOVEVSTkFMX0ZMVF9GTiAoTERFWFAsIEVDRl9DT05TVCwgbGRl eHAsIGJpbmFyeSkNCiANCiAvKiBUZXJuYXJ5IG1hdGggZnVuY3Rpb25zLiAgKi8NCiBERUZfSU5U RVJOQUxfRkxUX0ZMT0FUTl9GTiAoRk1BLCBFQ0ZfQ09OU1QsIGZtYSwgdGVybmFyeSkNCitERUZf SU5URVJOQUxfT1BUQUJfRk4gKENPTVBMRVhfRk1BLCBFQ0ZfQ09OU1QsIGNtbGEsIHRlcm5hcnkp DQorREVGX0lOVEVSTkFMX09QVEFCX0ZOIChDT01QTEVYX0ZNQV9DT05KLCBFQ0ZfQ09OU1QsIGNt bGFfY29uaiwgdGVybmFyeSkNCitERUZfSU5URVJOQUxfT1BUQUJfRk4gKENPTVBMRVhfRk1TLCBF Q0ZfQ09OU1QsIGNtbHMsIHRlcm5hcnkpDQorREVGX0lOVEVSTkFMX09QVEFCX0ZOIChDT01QTEVY X0ZNU19DT05KLCBFQ0ZfQ09OU1QsIGNtbHNfY29uaiwgdGVybmFyeSkNCiANCiAvKiBVbmFyeSBp bnRlZ2VyIG9wcy4gICovDQogREVGX0lOVEVSTkFMX0lOVF9GTiAoQ0xSU0IsIEVDRl9DT05TVCB8 IEVDRl9OT1RIUk9XLCBjbHJzYiwgdW5hcnkpDQpkaWZmIC0tZ2l0IGEvZ2NjL29wdGFicy5kZWYg Yi9nY2Mvb3B0YWJzLmRlZg0KaW5kZXggOWMyNjdkNDIyNDc4ZDAwMTFmMjg4YjFmNWY2MmRhYWJl Mzk4OWJhNy4uMTlkYjljMDA4OTZjZDA4YWRmZDIwYTAxNjY5OTkwYmJiZWJkNzlmMSAxMDA2NDQN Ci0tLSBhL2djYy9vcHRhYnMuZGVmDQorKysgYi9nY2Mvb3B0YWJzLmRlZg0KQEAgLTI5NCw2ICsy OTQsMTAgQEAgT1BUQUJfRCAoY2FkZDkwX29wdGFiLCAiY2FkZDkwJGEzIikNCiBPUFRBQl9EIChj YWRkMjcwX29wdGFiLCAiY2FkZDI3MCRhMyIpDQogT1BUQUJfRCAoY211bF9vcHRhYiwgImNtdWwk YTMiKQ0KIE9QVEFCX0QgKGNtdWxfY29ual9vcHRhYiwgImNtdWxfY29uaiRhMyIpDQorT1BUQUJf RCAoY21sYV9vcHRhYiwgImNtbGEkYTQiKQ0KK09QVEFCX0QgKGNtbGFfY29ual9vcHRhYiwgImNt bGFfY29uaiRhNCIpDQorT1BUQUJfRCAoY21sc19vcHRhYiwgImNtbHMkYTQiKQ0KK09QVEFCX0Qg KGNtbHNfY29ual9vcHRhYiwgImNtbHNfY29uaiRhNCIpDQogT1BUQUJfRCAoY29zX29wdGFiLCAi Y29zJGEyIikNCiBPUFRBQl9EIChjb3NoX29wdGFiLCAiY29zaCRhMiIpDQogT1BUQUJfRCAoZXhw MTBfb3B0YWIsICJleHAxMCRhMiIpDQpkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtdmVjdC1zbHAtcGF0 dGVybnMuYyBiL2djYy90cmVlLXZlY3Qtc2xwLXBhdHRlcm5zLmMNCmluZGV4IDJlZGIwMTE3Zjlj YmJmYzQwZTllZDNhOTYxMjBhM2M4OGY4NGE2OGUuLmMyOTg3YzJhZmFjMmZiZDU1ZTJhY2Q2YjU2 ZmMxM2M3ZDNhZDEzYzEgMTAwNjQ0DQotLS0gYS9nY2MvdHJlZS12ZWN0LXNscC1wYXR0ZXJucy5j DQorKysgYi9nY2MvdHJlZS12ZWN0LXNscC1wYXR0ZXJucy5jDQpAQCAtMTE3Miw2ICsxMTcyLDE3 NiBAQCBjb21wbGV4X211bF9wYXR0ZXJuOjp2YWxpZGF0ZV9wICgpDQogICByZXR1cm4gdHJ1ZTsN CiB9DQogDQorDQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBjb21wbGV4X2ZtYV9wYXR0 ZXJuIGNsYXNzDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCisNCitjbGFzcyBjb21wbGV4X2Zt YV9wYXR0ZXJuIDogcHVibGljIGNvbXBsZXhfbXVsX3BhdHRlcm4NCit7DQorICBwcm90ZWN0ZWQ6 DQorICAgIGNvbXBsZXhfZm1hX3BhdHRlcm4gKHNscF90cmVlICpub2RlLCB2ZWNfaW5mbyAqdmlu Zm8pDQorICAgICAgOiBjb21wbGV4X211bF9wYXR0ZXJuIChub2RlLCB2aW5mbykNCisgICAgew0K KyAgICAgIHRoaXMtPm1fYXJpdHkgPSAyOw0KKyAgICAgIHRoaXMtPm1fbnVtX2FyZ3MgPSAzOw0K KyAgICB9DQorDQorICBwdWJsaWM6DQorICAgIHN0YXRpYyB2ZWN0X3BhdHRlcm4qIGNyZWF0ZSAo c2xwX3RyZWUgKm5vZGUsIHZlY19pbmZvICp2aW5mbykNCisgICAgew0KKyAgICAgICByZXR1cm4g bmV3IGNvbXBsZXhfZm1hX3BhdHRlcm4gKG5vZGUsIHZpbmZvKTsNCisgICAgfQ0KKw0KKyAgICBj b25zdCBjaGFyKiBnZXRfbmFtZSAoKQ0KKyAgICB7DQorICAgICAgcmV0dXJuICJDb21wbGV4IEZN KEF8UykiOw0KKyAgICB9DQorDQorICAgIGJvb2wgbWF0Y2hlcyAoKTsNCisgICAgYm9vbCBtYXRj aGVzIChjb21wbGV4X29wZXJhdGlvbl90IG9wLCB2ZWM8c2xwX3RyZWU+IG9wcyk7DQorfTsNCisN CisvKiBQYXR0ZXJuIG1hdGNoZXIgZm9yIHRyeWluZyB0byBtYXRjaCBjb21wbGV4IG11bHRpcGx5 IGFuZCBhY2N1bXVsYXRlDQorICAgYW5kIG11bHRpcGx5IGFuZCBzdWJ0cmFjdCBwYXR0ZXJucyBp biBTTFAgdHJlZS4NCisgICBJZiB0aGUgb3BlcmF0aW9uIG1hdGNoZXMgdGhlbiBJRk4gaXMgc2V0 IHRvIHRoZSBvcGVyYXRpb24gaXQgbWF0Y2hlZCBhbmQNCisgICB0aGUgYXJndW1lbnRzIHRvIHRo ZSB0d28gcmVwbGFjZW1lbnQgc3RhdGVtZW50cyBhcmUgcHV0IGluIE1fT1BTLg0KKw0KKyAgIElm IG5vIG1hdGNoIGlzIGZvdW5kIHRoZW4gSUZOIGlzIHNldCB0byBJRk5fTEFTVCBhbmQgTV9PUFRT IGlzIHVuY2hhbmdlZC4NCisNCisgICBUaGlzIGZ1bmN0aW9uIG1hdGNoZXMgdGhlIHBhdHRlcm5z IHNoYXBlZCBhczoNCisNCisgICBkb3VibGUgYXggPSAoYltpKzFdICogYVtpXSkgKyAoYltpXSAq IGFbaV0pOw0KKyAgIGRvdWJsZSBieCA9IChhW2krMV0gKiBiW2ldKSAtIChhW2krMV0gKiBiW2kr MV0pOw0KKw0KKyAgIGNbaV0gPSBjW2ldIC0gYXg7DQorICAgY1tpKzFdID0gY1tpKzFdICsgYng7 DQorDQorICAgSWYgYSBtYXRjaCBvY2N1cnJlZCB0aGVuIFRSVUUgaXMgcmV0dXJuZWQsIGVsc2Ug RkFMU0UuICAqLw0KK2Jvb2wNCitjb21wbGV4X2ZtYV9wYXR0ZXJuOjptYXRjaGVzIChjb21wbGV4 X29wZXJhdGlvbl90IG9wMSwgdmVjPHNscF90cmVlPiBhcmdzMCkNCit7DQorICB0aGlzLT5tX2lm biA9IElGTl9MQVNUOw0KKw0KKyAgLyogRmluZCB0aGUgdHdvIGNvbXBvbmVudHMuICBXZSBtYXRj aCBDb21wbGV4IE1VTCBmaXJzdCB3aGljaCByZWR1Y2VzIHRoZQ0KKyAgICAgYW1vdW50IG9mIHdv cmsgdGhpcyBwYXR0ZXJuIGhhcyB0byBkby4gIEFmdGVyIHRoYXQgd2UganVzdCBtYXRjaCB0aGUN CisgICAgIGhlYWQgbm9kZSBhbmQgd2UncmUgZG9uZS46DQorDQorICAgICAqIEZNQTogKyArDQor ICAgICAqIEZNUzogLSArLiAgKi8NCisgIHNscF90cmVlIGNoaWxkID0gTlVMTDsNCisNCisgIC8q IFdlIG5lZWQgdG8gaWdub3JlIHRoZSB0d29fb3BlcmFuZHMgbm9kZXMgdGhhdCBtYXkgYWxzbyBt YXRjaCwNCisgICAgIGZvciB0aGF0IHdlIGNhbiBjaGVjayBpZiB0aGV5IGhhdmUgYW55IHNjYWxh ciBzdGF0ZW1lbnRzIGFuZCBhbHNvDQorICAgICBjaGVjayB0aGF0IGl0J3Mgbm90IGEgcGVybXV0 ZSBub2RlIGFzIHdlJ3JlIGxvb2tpbmcgZm9yIGEgbm9ybWFsDQorICAgICBQTFVTX0VYUFIgb3Bl cmF0aW9uLiAgKi8NCisgIGlmIChvcDEgPT0gUExVU19NSU5VUykNCisgICAgew0KKyAgICAgIGNo aWxkID0gU0xQX1RSRUVfQ0hJTERSRU4gKGFyZ3MwWzFdKVsxXTsNCisgICAgfQ0KKyAgZWxzZSBp ZiAoU0xQX1RSRUVfU0NBTEFSX1NUTVRTICgqdGhpcy0+bV9ub2RlKS5sZW5ndGggKCkgPiAwDQor CSAgICYmIFNMUF9UUkVFX0NPREUgKCp0aGlzLT5tX25vZGUpICE9IFZFQ19QRVJNX0VYUFINCisJ ICAgJiYgdmVjdF9tYXRjaF9leHByZXNzaW9uX3AgKCp0aGlzLT5tX25vZGUsIFBMVVNfRVhQUikp DQorICAgIHsNCisgICAgICBpZiAoU0xQX1RSRUVfQ0hJTERSRU4gKCp0aGlzLT5tX25vZGUpLmxl bmd0aCAoKSAhPSAyKQ0KKwkgIHJldHVybiBmYWxzZTsNCisNCisgICAgICBvcDEgPSBQTFVTX1BM VVM7DQorICAgICAgYXJnczAuc2FmZV9zcGxpY2UgKFNMUF9UUkVFX0NISUxEUkVOICgqdGhpcy0+ bV9ub2RlKSk7DQorICAgICAgY2hpbGQgPSBhcmdzMFsxXTsNCisgICAgfQ0KKyAgZWxzZQ0KKyAg ICByZXR1cm4gZmFsc2U7DQorDQorICBhdXRvX3ZlYzxzbHBfdHJlZT4gb3BzOw0KKyAgaW50ZXJu YWxfZm4gbXVsZm4gPSBJRk5fTEFTVDsNCisgIC8qIFRoZSBhY2N1bXVsYXRpb24gc3RlcCBwcm9k dWNlcyBhbiBpbnZlcnNlIHRyZWUgZnJvbSBub3JtYWwNCisgICAgIG11bHRpcGx5IHNvIG1hdGNo IHRoZSBub2RlcyBpbiByZXZlcnNlLiAgKi8NCisgIGlmICghdmVjdF9zbHBfbWF0Y2hlc19jb21w bGV4X211bCAoY2hpbGQsICZtdWxmbiwgJm9wcywgZmFsc2UsDQorCQkJCSAgICAgb3AxID09IFBM VVNfTUlOVVMpKQ0KKyAgICByZXR1cm4gZmFsc2U7DQorDQorICB0aGlzLT5tX29wcy5jcmVhdGUg KDYpOw0KKyAgaWYgKG9wMSA9PSBQTFVTX01JTlVTKQ0KKyAgICB7DQorICAgICAgaWYgKG11bGZu ID09IElGTl9DT01QTEVYX01VTCkNCisJdGhpcy0+bV9pZm4gPSBJRk5fQ09NUExFWF9GTVM7DQor ICAgICAgZWxzZSBpZiAobXVsZm4gPT0gSUZOX0NPTVBMRVhfTVVMX0NPTkopDQorCXRoaXMtPm1f aWZuID0gSUZOX0NPTVBMRVhfRk1TX0NPTko7DQorDQorICAgICAgY2hpbGQgPSBTTFBfVFJFRV9D SElMRFJFTiAoYXJnczBbMF0pWzBdOw0KKyAgICAgIHRoaXMtPndvcmtzZXQuc2FmZV9zcGxpY2Ug KFNMUF9UUkVFX0NISUxEUkVOICgqdGhpcy0+bV9ub2RlKSk7DQorICAgICAgc2F2ZV9tYXRjaCAo KTsNCisgICAgfQ0KKyAgZWxzZSBpZiAob3AxID09IFBMVVNfUExVUykNCisgICAgew0KKyAgICAg IGlmIChtdWxmbiA9PSBJRk5fQ09NUExFWF9NVUwpDQorCXRoaXMtPm1faWZuID0gSUZOX0NPTVBM RVhfRk1BOw0KKyAgICAgIGVsc2UgaWYgKG11bGZuID09IElGTl9DT01QTEVYX01VTF9DT05KKQ0K Kwl0aGlzLT5tX2lmbiA9IElGTl9DT01QTEVYX0ZNQV9DT05KOw0KKw0KKyAgICAgIC8qIEFkZCBk b2Vzbid0IGdlbmVyYXRlIGEgdHdvX29wZXJhdG9ycyBub2RlLCBzbyBmb3IgaXQgd2UgcmVwbGFj ZSBpdA0KKwkgaW5saW5lIGJ5IHR1cm5pbmcgdGhlIGFkZCBub2RlIGl0c2VsZiBpbnRvIGEgcGF0 dGVybi4gICovDQorICAgICAgdGhpcy0+bV9pbnBsYWNlID0gdHJ1ZTsNCisgICAgICB0aGlzLT53 b3Jrc2V0LnNhZmVfcHVzaCAoKnRoaXMtPm1fbm9kZSk7DQorICAgICAgY2hpbGQgPSBhcmdzMFsw XTsNCisgICAgICB0aGlzLT5tX21hdGNoDQorCT0gbmV3IHZlY3Rfc2ltcGxlX3BhdHRlcm5fbWF0 Y2ggKHRoaXMtPm1fYXJpdHksIHRoaXMtPm1faWZuLA0KKwkJCQkJIHRoaXMtPm1fdmluZm8sICZ0 aGlzLT53b3Jrc2V0LA0KKwkJCQkJIHRoaXMtPm1fbnVtX2FyZ3MpOw0KKyAgICB9DQorDQorICBp ZiAodGhpcy0+bV9pZm4gPT0gSUZOX0xBU1QpDQorICAgIHJldHVybiBmYWxzZTsNCisNCisgIC8q IFRoZSBjb25qdWNhdGUgbm9kZXMgaGF2ZSBhIGRpZmZlcmVudCBvcmRlcmluZ3MsIG9kZGx5IGVu b3VnaCB0aGUgU1VCIG5vZGUNCisgICAgIGhhcyB0aGUgc2FtZSBvcmRlciByZWdhcmRsZXNzIG9m IHRoZSBjb25qdWNhdGUuICBUaGlzIG5lZWRzIHRvIGJlIG1hZGUgbW9yZQ0KKyAgICAgY29uc2lz dGVudCBpbiB0aGUgbWlkLWVuZC4gICovDQorICBpZiAob3AxID09IFBMVVNfTUlOVVMgfHwgbXVs Zm4gPT0gSUZOX0NPTVBMRVhfTVVMKQ0KKyAgICB7DQorICAgICAgdGhpcy0+bV9vcHMucXVpY2tf cHVzaCAoY2hpbGQpOw0KKyAgICAgIHRoaXMtPm1fb3BzLnF1aWNrX3B1c2ggKG9wc1sxXSk7DQor ICAgICAgdGhpcy0+bV9vcHMucXVpY2tfcHVzaCAob3BzWzBdKTsNCisgICAgICB0aGlzLT5tX29w cy5xdWlja19wdXNoIChjaGlsZCk7DQorICAgICAgdGhpcy0+bV9vcHMucXVpY2tfcHVzaCAob3Bz WzNdKTsNCisgICAgICB0aGlzLT5tX29wcy5xdWlja19wdXNoIChvcHNbMl0pOw0KKyAgICB9DQor ICBlbHNlDQorICAgIHsNCisgICAgICB0aGlzLT5tX29wcy5xdWlja19wdXNoIChjaGlsZCk7DQor ICAgICAgdGhpcy0+bV9vcHMucXVpY2tfcHVzaCAob3BzWzBdKTsNCisgICAgICB0aGlzLT5tX29w cy5xdWlja19wdXNoIChvcHNbMV0pOw0KKyAgICAgIHRoaXMtPm1fb3BzLnF1aWNrX3B1c2ggKGNo aWxkKTsNCisgICAgICB0aGlzLT5tX29wcy5xdWlja19wdXNoIChvcHNbMl0pOw0KKyAgICAgIHRo aXMtPm1fb3BzLnF1aWNrX3B1c2ggKG9wc1szXSk7DQorICAgIH0NCisNCisgIHZlY3RfYnVpbGRf cGVybV9ncm91cHMgKCZ0aGlzLT5tX2Jsb2Nrc1swXSwgdGhpcy0+bV9vcHMpOw0KKw0KKyAgLyog VW5mb3J0dW5hdGVseSB0aGUgc2VxdWVuY2UgZm9yIGEgY29uanVjYXRlIGFuZCByb3RhdGlvbiBi eSAxODAgYW5kIDI3MCBhcmUNCisgICAgIHJlbWFya2FibHkgc2ltaWxhci4gIFNvIHdlIG5lZWQg dG8gZG8gc29tZSBleHRyYSBjaGVja3MgdG8gbWFrZSBzdXJlIHdlDQorICAgICBkb24ndCBtYXRj aCB0aG9zZS4gICovDQorICBpZiAobXVsZm4gPT0gSUZOX0NPTVBMRVhfTVVMX0NPTkopDQorICAg IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0aGlzLT5tX29wcy5sZW5ndGggKCk7IGkrKykNCisg ICAgICB7DQorCW1hcF90IG0gPSB0aGlzLT5tX2Jsb2Nrc1tpXTsNCisJaWYgKG0uYSA+IG0uYikN CisJICByZXR1cm4gZmFsc2U7DQorICAgICAgfQ0KKw0KKyAgcmV0dXJuIHRydWU7DQorfQ0KKw0K K2Jvb2wNCitjb21wbGV4X2ZtYV9wYXR0ZXJuOjptYXRjaGVzICgpDQorew0KKyAgYXV0b192ZWM8 c2xwX3RyZWU+IGFyZ3MwOw0KKyAgY29tcGxleF9vcGVyYXRpb25fdCBvcA0KKyAgICA9IHZlY3Rf ZGV0ZWN0X3BhaXJfb3AgKCp0aGlzLT5tX25vZGUsIHRydWUsICZhcmdzMCk7DQorICByZXR1cm4g bWF0Y2hlcyAob3AsIGFyZ3MwKTsNCit9DQorDQorDQogLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioN CiAgKiBjb21wbGV4X29wZXJhdGlvbnNfcGF0dGVybiBjbGFzcw0KICAqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovDQpAQCAtMTMwMyw2ICsxNDczLDEwIEBAIHZlY3RfcGF0dGVybl9kZWNsX3Qgc2xwX3Bh dHRlcm5zW10NCiAgICAgIG9yZGVyIHBhdHRlcm5zIGZyb20gdGhlIGxhcmdlc3QgdG8gdGhlIHNt YWxsZXN0LiAgRXNwZWNpYWxseSBpZiB0aGV5DQogICAgICBvdmVybGFwIGluIHdoYXQgdGhleSBj YW4gZGV0ZWN0LiAgKi8NCiANCisgIC8qIEZNQSBvdmVybGFwcyB3aXRoIE1VTCBidXQgaXMgdGhl IGxvbmdlciBzZXF1ZW5jZS4gIEJlY2F1c2Ugd2UncmUgaW4gcG9zdA0KKyAgICAgb3JkZXIgdHJh dmVyc2FsIHdlIGNhbid0IG1hdGNoIEZNQSBpZiBpbmNsdWRlZCBpbg0KKyAgICAgY29tcGxleF9v cGVyYXRpb25zX3BhdHRlcm4gc28gbXVzdCBiZSBjaGVja2VkIG9uIGl0J3Mgb3duLiAgKi8NCisg IFNMUF9QQVRURVJOIChjb21wbGV4X2ZtYV9wYXR0ZXJuKSwNCiAgIFNMUF9QQVRURVJOIChjb21w bGV4X29wZXJhdGlvbnNfcGF0dGVybiksDQogfTsNCiAjdW5kZWYgU0xQX1BBVFRFUk4NCg0K --_002_VI1PR08MB5325D6273A6F708BC149B6C0FF110VI1PR08MB5325eurp_--