From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2040.outbound.protection.outlook.com [40.107.22.40]) by sourceware.org (Postfix) with ESMTPS id 3E7EE3858023 for ; Tue, 26 Oct 2021 12:10:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 3E7EE3858023 Received: from AM6PR0202CA0050.eurprd02.prod.outlook.com (2603:10a6:20b:3a::27) by VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.16; Tue, 26 Oct 2021 12:10:30 +0000 Received: from AM5EUR03FT003.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:3a:cafe::31) by AM6PR0202CA0050.outlook.office365.com (2603:10a6:20b:3a::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18 via Frontend Transport; Tue, 26 Oct 2021 12:10:30 +0000 X-MS-Exchange-Authentication-Results: spf=temperror (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=temperror action=none header.from=arm.com; Received-SPF: TempError (protection.outlook.com: error in processing during lookup of arm.com: DNS Timeout) Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT003.mail.protection.outlook.com (10.152.16.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.16 via Frontend Transport; Tue, 26 Oct 2021 12:10:28 +0000 Received: ("Tessian outbound 8e26f7114b75:v103"); Tue, 26 Oct 2021 12:10:28 +0000 X-CR-MTA-TID: 64aa7808 Received: from e7b2a73b82b0.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id E8BB2991-D4E6-4432-A60C-D7BC64E2F78B.1; Tue, 26 Oct 2021 12:10:22 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id e7b2a73b82b0.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 26 Oct 2021 12:10:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lTWWzwJPJ5knZk5WbN/NjrklSfjt1q+VN0lDkB1oAktIG9z5d1kafe6iWxPCDgMP1yPK8yfAGxZb4xAJmb0zd7xQAC1OCPipauYAN88wpAWQ1CAaly+uwiNwasj3UT/rxydhqVf67W/z81TdD1+vTNhTEwfwK9F/pAMBeUG7QiSnSLLyE506QAvLoxcRSun9X82S5laNKHuCbyTsCtr/nU6XmK3EPIJmiYE12ec91S9AVcaJxXzCVXXADxn/x5pJk8lFhgu7KqQn5znjQ+ga2fxfBtoCkagMS2e62LYuNLZc0ZOY5VCpJpTt+6SGHsfPE5LAfIGBPNeoE+KwMou8Mw== 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=F5RPxwwOIL66ijZVDgLRe9n6tZM83dlLPNJ+4ckLvLI=; b=iWPAvIKOFkElBY0lbJu74jPUsM3FVpYpNTFnrJrbbobYPvSXlwkAhtiSjGXOCMhj6RB0uGTQMDDkL+SaAOnNVrfM+E+F2J6WwZkIlm1SsBUcNr/SinEiiyajndZOQEMZS6ko0PrOZdh+F99AxDCikV6C9aDdJW+/dZp8V28ZH6RYcxPo5/Y3XEJ3kdws8IiLxzTYQCiaWNCJ2PdZhBSa7GXngx3rrFQ50WMtxfCxU7fFicLKwgnRFtWg/Aqb73MYI1UNC+6me7vlVVYCejQ0+M0CV/PpzH6EM0BuX3Gs5IQuE50WF2HZ0sDOqijr5AeSQ1mzDjgQgN4uNSlicT2tXA== 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 VI1PR08MB4576.eurprd08.prod.outlook.com (2603:10a6:803:e4::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.16; Tue, 26 Oct 2021 12:10:19 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::31cf:ea55:2234:c50b]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::31cf:ea55:2234:c50b%6]) with mapi id 15.20.4628.020; Tue, 26 Oct 2021 12:10:18 +0000 From: Tamar Christina To: Richard Biener CC: "gcc-patches@gcc.gnu.org" , Jakub Jelinek , nd Subject: RE: [PATCH] middle-end: fix de-optimizations with bitclear patterns on signed values Thread-Topic: [PATCH] middle-end: fix de-optimizations with bitclear patterns on signed values Thread-Index: AQHXwbT49hlh89SzcEi6qeY4FuXfDqvT7LQAgA/njkCAAS6gAIAAAdEQgAADmgCAADiyMA== Date: Tue, 26 Oct 2021 12:10:18 +0000 Message-ID: References: <9o14q41-qs41-64qn-poo0-o29p3r98rr5s@fhfr.qr> <7s13204o-n6os-699-q544-65sr84rprnsq@fhfr.qr> In-Reply-To: <7s13204o-n6os-699-q544-65sr84rprnsq@fhfr.qr> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 223830D91B30C547908F3B0AB7FE1087.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 5ad39039-34b6-45ee-177e-08d9987999f0 x-ms-traffictypediagnostic: VI1PR08MB4576:|VI1PR08MB5325: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:7219;OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: iCroXZM3UOHXlWGHcX5Ktn2V3n3ESYkmbsQ4NVklahbiyduYIa3G0D2vsvwXdlR7Dt5IbmIzstt2pGwdD75tdfp0Wfqbm8YJx25VdeeujBsf97+MnwWf4SYWXw6I6bZ6BWJ9BAF4axrycul7dvMSCyAJDYCBm+L6jbFQrM+xCOuf20EnhXonxgTJj3BrkpRPWUmGsUdViJMqP0wM0EqwQoanQWiaNs0ruPEeDf/gMao+8sLmNelLO/q2BnnwGxeXV5V/42lSMKXFRaknJkMsIdo99C2FtjZYI152zBq7ZB1r4BVRVLPeQzcl6ATy1qwrypINinz9C3BkP2ZtOQkDqR2/H1FJUgPL9+GVAJ4c9BhTmt6s1bI9KNlfodbPgm4/lvATevipMFZ9eyuEYmGi97XijcJJfW3MLL8Gb48SB0vnRKlI18prixL2gZpt4GwO2IZ89fixTZP1KG0qQehmneLOeJlOSyyUb79kR3LM1SNbYvj4Rt6M+TpgRM9nkwMC0AOh092FJ/dTFuILZEJ5NVcISx09Sj4NgMbESJXJeAMFgTd+Qu8fC4E8J75ZZzvFIOa3siOl4rMub6R6X3Zg/r+5HQNYSo51fLe7Qo4P4rUj0f/+VPl6lTmbY8Rdz23f8tDYM5yZ5YQjgsCQdkY9ak7M3QExABHZjNQ6ntdmv6V/3O6BruEoD+Bn1m8dqimXLx4BrcZiZihfsw92+HIHYg== 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)(366004)(66446008)(64756008)(83380400001)(53546011)(76116006)(7696005)(66574015)(122000001)(66556008)(186003)(33656002)(86362001)(66946007)(9686003)(26005)(38100700002)(38070700005)(5660300002)(8936002)(8676002)(66476007)(6506007)(6916009)(71200400001)(54906003)(52536014)(316002)(55016002)(4326008)(2906002)(508600001); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB4576 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT003.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: a4bf787c-fa24-428e-5d1c-08d9987993e3 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1qE1kPW3mHM4CawCoI0mSICbSvEXmupQ5AWvdqjmf0ClLuj1K4SrpluJLfniWgRHy09BxQlSyo7DQiZcOyVPx0b5l9X3SvKxmO8qEBTMsp1bT9+Zfae6Zuf5y9FuCE4x0QI+5M+qlLZb66+jN5AmJXCepsolD0VEi4knVL15/o4KN18CUsU78A4GUpzpqph22iA/QEPtP2OXXxAJTsw8RsEzdCXTqI3q1ZHRdVjNRvaPP5evayAJ8ad5vqSNtb1bC3IEpyFBcAfDHeSXCvFGg7bc4wF/P1a1yHL0cvZa7bQ2Vfg4kDrxqLbYAjF97VVs5BVP2GA9E0j4hRxm7UKAQvG5TB8vued86o3Q2gik4cQdiMO8XqwgEM0Dd4AvnYHOppL3lL4ZISpMAYLGg0gyZgFCpEVHYIxUKF1u74m0+iJ6Zu2WyLbQTEvG4eLmBaCpdzatBCqEFV52rDVTU00dLV3IQCyopSQ4bLpiKA6NoObRpUFBIKM3scx4+pfpfcyyPAR6ZIw5nyM0L5kpsqDtMzemMf6QhGBIZ6HxF84/DDCkkaVyT7kdgCVlz4L2tryoxp7ksnoBZNOA0J8k8T20eJkbWKgofSzisJAPxz9NVHrnQSWyIRDoC47l2eTc/mVZD4yDCpC8ydEUmJcYIIspuAlZ0OmDojxgPECQxUJ5ErOVPrAor/kgAA0K8O4yTPxzRTb2c9P9eABq6MY+P211Lg== 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)(46966006)(36840700001)(47076005)(54906003)(356005)(83380400001)(81166007)(52536014)(66574015)(36860700001)(70206006)(70586007)(86362001)(5660300002)(8936002)(316002)(2906002)(55016002)(53546011)(6862004)(63370400001)(9686003)(63350400001)(336012)(82310400003)(7696005)(4326008)(26005)(6506007)(8676002)(33656002)(508600001)(186003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2021 12:10:28.9989 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5ad39039-34b6-45ee-177e-08d9987999f0 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: AM5EUR03FT003.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB5325 X-Spam-Status: No, score=-13.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 26 Oct 2021 12:10:36 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUmljaGFyZCBCaWVuZXIg PHJndWVudGhlckBzdXNlLmRlPg0KPiBTZW50OiBUdWVzZGF5LCBPY3RvYmVyIDI2LCAyMDIxIDk6 NDYgQU0NCj4gVG86IFRhbWFyIENocmlzdGluYSA8VGFtYXIuQ2hyaXN0aW5hQGFybS5jb20+DQo+ IENjOiBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZzsgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0 LmNvbT47IG5kDQo+IDxuZEBhcm0uY29tPg0KPiBTdWJqZWN0OiBSRTogW1BBVENIXSBtaWRkbGUt ZW5kOiBmaXggZGUtb3B0aW1pemF0aW9ucyB3aXRoIGJpdGNsZWFyIHBhdHRlcm5zDQo+IG9uIHNp Z25lZCB2YWx1ZXMNCj4gDQo+IE9uIFR1ZSwgMjYgT2N0IDIwMjEsIFRhbWFyIENocmlzdGluYSB3 cm90ZToNCj4gDQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTog UmljaGFyZCBCaWVuZXIgPHJndWVudGhlckBzdXNlLmRlPg0KPiA+ID4gU2VudDogVHVlc2RheSwg T2N0b2JlciAyNiwgMjAyMSA5OjI2IEFNDQo+ID4gPiBUbzogVGFtYXIgQ2hyaXN0aW5hIDxUYW1h ci5DaHJpc3RpbmFAYXJtLmNvbT4NCj4gPiA+IENjOiBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZzsg SmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT47IG5kDQo+ID4gPiA8bmRAYXJtLmNvbT4N Cj4gPiA+IFN1YmplY3Q6IFJFOiBbUEFUQ0hdIG1pZGRsZS1lbmQ6IGZpeCBkZS1vcHRpbWl6YXRp b25zIHdpdGggYml0Y2xlYXINCj4gPiA+IHBhdHRlcm5zIG9uIHNpZ25lZCB2YWx1ZXMNCj4gPiA+ DQo+ID4gPiBPbiBNb24sIDI1IE9jdCAyMDIxLCBUYW1hciBDaHJpc3RpbmEgd3JvdGU6DQo+ID4g Pg0KPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gRnJvbTog UmljaGFyZCBCaWVuZXIgPHJndWVudGhlckBzdXNlLmRlPg0KPiA+ID4gPiA+IFNlbnQ6IEZyaWRh eSwgT2N0b2JlciAxNSwgMjAyMSAxMjozMSBQTQ0KPiA+ID4gPiA+IFRvOiBUYW1hciBDaHJpc3Rp bmEgPFRhbWFyLkNocmlzdGluYUBhcm0uY29tPg0KPiA+ID4gPiA+IENjOiBnY2MtcGF0Y2hlc0Bn Y2MuZ251Lm9yZzsgSmFrdWIgSmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT47DQo+ID4gPiA+ID4g bmQgPG5kQGFybS5jb20+DQo+ID4gPiA+ID4gU3ViamVjdDogUmU6IFtQQVRDSF0gbWlkZGxlLWVu ZDogZml4IGRlLW9wdGltaXphdGlvbnMgd2l0aA0KPiA+ID4gPiA+IGJpdGNsZWFyIHBhdHRlcm5z IG9uIHNpZ25lZCB2YWx1ZXMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IE9uIEZyaSwgMTUgT2N0IDIw MjEsIFRhbWFyIENocmlzdGluYSB3cm90ZToNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gSGkgQWxs LA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IER1cmluZyB0ZXN0aW5nIGFmdGVyIHJlYmFzaW5n IHRvIGNvbW1pdCBJIG5vdGljZWQgYSBmYWlsaW5nDQo+ID4gPiA+ID4gPiB0ZXN0Y2FzZSB3aXRo IHRoZSBiaXRtYXNrIGNvbXBhcmUgcGF0Y2guDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gQ29u c2lkZXIgdGhlIGZvbGxvd2luZyBDKysgdGVzdGNhc2U6DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gI2luY2x1ZGUgPGNvbXBhcmU+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gI2RlZmluZSBB IF9fYXR0cmlidXRlX18oKG5vaXBhKSkgQSBib29sIGY1IChkb3VibGUgaSwgZG91YmxlDQo+ID4g PiA+ID4gPiBqKSB7IGF1dG8gYyA9IGkgPD0+IGo7IHJldHVybiBjID49IDA7IH0NCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiBUaGlzIHR1cm5zIGludG8gYSBjb21wYXJpc29uIGFnYWluc3QgY2hh cnMsIG9uIHN5c3RlbXMgd2hlcmUNCj4gPiA+ID4gPiA+IGNoYXJzIGFyZSBzaWduZWQgdGhlIHBh dHRlcm4gaW5zZXJ0cyBhbiB1bnNpZ25lZCBjb252ZXJ0IHN1Y2gNCj4gPiA+ID4gPiA+IHRoYXQg aXQncyBhYmxlIHRvIGRvIHRoZSB0cmFuc2Zvcm1hdGlvbi4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiBpLmUuOg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAgIyBSQU5HRSBbLTEsIDJdDQo+ ID4gPiA+ID4gPiAgICMgYyRfTV92YWx1ZV8yMiA9IFBISSA8LTEoMyksIDAoMiksIDIoNSksIDEo NCk+DQo+ID4gPiA+ID4gPiAgICMgUkFOR0UgflszLCAyNTRdDQo+ID4gPiA+ID4gPiAgIF8xMSA9 ICh1bnNpZ25lZCBjaGFyKSBjJF9NX3ZhbHVlXzIyOw0KPiA+ID4gPiA+ID4gICBfMTkgPSBfMTEg PD0gMTsNCj4gPiA+ID4gPiA+ICAgIyAuTUVNXzI0ID0gVkRFRiA8Lk1FTV82KEQpPg0KPiA+ID4g PiA+ID4gICBELjEwNDM0ID17dn0ge0NMT0JCRVJ9Ow0KPiA+ID4gPiA+ID4gICAjIC5NRU1fMTQg PSBWREVGIDwuTUVNXzI0Pg0KPiA+ID4gPiA+ID4gICBELjEwNDA3ID17dn0ge0NMT0JCRVJ9Ow0K PiA+ID4gPiA+ID4gICAjIFZVU0UgPC5NRU1fMTQ+DQo+ID4gPiA+ID4gPiAgIHJldHVybiBfMTk7 DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gaW5zdGVhZCBvZjoNCj4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiAgICMgUkFOR0UgWy0xLCAyXQ0KPiA+ID4gPiA+ID4gICAjIGMkX01fdmFsdWVfNSA9 IFBISSA8LTEoMyksIDAoMiksIDIoNSksIDEoNCk+DQo+ID4gPiA+ID4gPiAgICMgUkFOR0UgWy0y LCAyXQ0KPiA+ID4gPiA+ID4gICBfMyA9IGMkX01fdmFsdWVfNSAmIC0yOw0KPiA+ID4gPiA+ID4g ICBfMTkgPSBfMyA9PSAwOw0KPiA+ID4gPiA+ID4gICAjIC5NRU1fMjQgPSBWREVGIDwuTUVNXzYo RCk+DQo+ID4gPiA+ID4gPiAgIEQuMTA0NDAgPXt2fSB7Q0xPQkJFUn07DQo+ID4gPiA+ID4gPiAg ICMgLk1FTV8xNCA9IFZERUYgPC5NRU1fMjQ+DQo+ID4gPiA+ID4gPiAgIEQuMTA0MTMgPXt2fSB7 Q0xPQkJFUn07DQo+ID4gPiA+ID4gPiAgICMgVlVTRSA8Lk1FTV8xND4NCj4gPiA+ID4gPiA+ICAg cmV0dXJuIF8xOTsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBUaGlzIGNhdXNlcyBtdWNoIHdv cnNlIGNvZGVnZW4gdW5kZXIgLWZmYXN0LW1hdGggZHVlIHRvIHBoaW9wcw0KPiA+ID4gPiA+ID4g bm8gbG9uZ2VyIHJlY29nbml6aW5nIHRoZSBwYXR0ZXJuLiAgSXQgdHVybnMgb3V0IHRoYXQgcGhp b3B0cw0KPiA+ID4gPiA+ID4gc3BhY2VzaGlwX3JlcGxhY2VtZW50IGlzIGxvb2tpbmcgZm9yIHRo ZSBleGFjdCBmb3JtIHRoYXQgd2FzDQo+ID4gPiA+ID4gPiBqdXN0DQo+ID4gPiBjaGFuZ2VkLg0K PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFRyeWluZyB0byBnZXQgaXQgdG8gcmVjb2duaXplIHRo ZSBuZXcgZm9ybSBpcyBub3QgdHJpdmlhbCBhcw0KPiA+ID4gPiA+ID4gdGhlIHRyYW5zZm9ybWF0 aW9uIGRvZXNuJ3QgbG9vayB0byB3b3JrIHdoZW4gdGhlIHRoaW5nIGl0J3MNCj4gPiA+ID4gPiA+ IHBvaW50aW5nIHRvIGlzIGl0c2VsZg0KPiA+ID4gPiA+IGEgcGhpLW5vZGUuDQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiBXaGF0IGRvIHlvdSBtZWFuPyAgV2hlcmUgaXQgaGFuZGxlcyB0aGUgQklUX0FO RCBpdCBjb3VsZCBhbHNvDQo+ID4gPiA+ID4gaGFuZGxlIHRoZSBjb252ZXJzaW9uLCBubz8gIFRo ZSBsYXRlciBoYW5kbGluZyB3b3VsZCBwcm9iYWJseQ0KPiA+ID4gPiA+IG1vcmUgZXhwbGljaXRl bHkgbmVlZCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSBCSVRfQU5EIGFuZCB0aGUNCj4gPiA+ ID4gPiBjb252ZXJzaW9uDQo+ID4gPiBmb3Jtcy4NCj4gPiA+ID4NCj4gPiA+ID4gTG9va3MgbGlr ZSBJIG1pc3VuZGVyc3Rvb2QgdGhlIGNvZGUsIGl0IHdhcyBsb29raW5nIGF0IHRoZSB1c2VzDQo+ ID4gPiA+IG5vdCB0aGUgZGVmcyBvZiB0aGUgdmFsdWUuDQo+ID4gPiA+DQo+ID4gPiA+IC0tLSBp bmxpbmUgY29weSBvZiBwYXRjaCAtLS0NCj4gPiA+ID4NCj4gPiA+ID4gVGhlIGNvbW1lbnRzIHNl ZW1zIHRvIHN1Z2dlc3QgdGhpcyBjb2RlIG9ubHkgY2hlY2tzIGZvciAocmVzICYgfjEpDQo+ID4g PiA+ID09DQo+ID4gPiA+IDAgYnV0IHRoZSBpbXBsZW1lbnRhdGlvbiBzZWVtcyB0byBzdWdnZXN0 IGl0J3MgYnJvYWRlci4NCj4gPiA+ID4NCj4gPiA+ID4gQXMgc3VjaCBJIGFkZGVkIGEgY2FzZSB0 byBjaGVjayB0byBzZWUgaWYgdGhlIHZhbHVlIGNvbXBhcmlzb24gd2UNCj4gPiA+ID4gZm91bmQg aXMgYSB0eXBlIGNhc3QuICBhbmQgc3RyaXBzIGF3YXkgdGhlIHR5cGUgY2FzdCBhbmQgY29udGlu dWVzLg0KPiA+ID4gPg0KPiA+ID4gPiBJbiBtYXRjaC5wZCB0aGUgdHlwZWNhc3RzIGFyZSBvbmx5 IGFkZGVkIGZvciBzaWduZWQgY29tcGFyaXNvbnMgdG8NCj4gPiA+ID4gPT0NCj4gPiA+ID4gMCBh bmQgIT0gMCB3aGljaCBhcmUgdGhlbiByZXdyaXR0ZW4gaW50byBjb21wYXJpc29ucyB3aXRoIDEu DQo+ID4gPiA+DQo+ID4gPiA+IEFzIHN1Y2ggSSBvbmx5IGNoZWNrIGZvciAxIGFuZCBMRSBhbmQg R1QsIHdoaWNoIGlzIHdoYXQgbWF0Y2gucGQNCj4gPiA+ID4gd291bGQgaGF2ZSByZXdyaXR0ZW4g aXQgdG8uDQo+ID4gPiA+DQo+ID4gPiA+IFRoaXMgZml4ZXMgdGhlIHJlZ3Jlc3Npb24gYnV0IHRo aXMgaXMgbm90IGNvZGUgSSAxMDAlIHVuZGVyc3RhbmQsDQo+ID4gPiA+IHNpbmNlIEkgZG9uJ3Qg cmVhbGx5IGtub3cgdGhlIHNlbWFudGljcyBvZiB0aGUgc3BhY2VzaGlwIG9wZXJhdG9yDQo+ID4g PiA+IHNvIHdvdWxkIGFwcHJlY2lhdGUgYW4gZXh0cmEgbG9vay4NCj4gPiA+ID4NCj4gPiA+ID4g Qm9vdHN0cmFwcGVkIFJlZ3Rlc3RlZCBvbiBhYXJjaDY0LW5vbmUtbGludXgtZ251LA0KPiA+ID4g PiB4ODZfNjQtcGMtbGludXgtZ251IGFuZCBubyByZWdyZXNzaW9ucy4NCj4gPiA+ID4NCj4gPiA+ ID4gT2sgZm9yIG1hc3Rlcj8NCj4gPiA+DQo+ID4gPiBQbGVhc2UgYWRkIGEgdGVzdGNhc2UuICBJ IGhvcGUgSmFrdWIgY2FuIHJldmlldyB0aGUNCj4gPiA+IHNwYWNlc2hpcF9yZXBsYWNlbWVudCBw YXRjaCBzaW5jZSBoZSdzIHRoZSBvbmUgZmFtaWxpYXIgd2l0aCB0aGUgY29kZS4NCj4gPg0KPiA+ IFRoZXJlJ3MgYWxyZWFkeSBhIGJ1bmNoIG9mIHRlc3RjYXNlcyB0aGF0IHRlc3QgdGhlIHZhcmlv dXMgdmFyaWFudHM6DQo+ID4gZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvb3B0L3ByOTQ1ODktMS5DDQo+ ID4gYW5kIGdjYy90ZXN0c3VpdGUvZysrLmRnL29wdC9wcjk0NTg5LTIuQyB3aGljaCBpcyBob3cg SSBub3RpY2VkIHRoZQ0KPiA+IGZhaWx1cmUuICBIb3dldmVyIHRoZXkgb25seSB0cmlnZ2VyIHRo ZSBmYWlsdXJlIG9uIHNpZ25lZCBjaGFycy4gIEkNCj4gPiB0cmllZCBmb3JjaW5nIGAtZnNpZ25l ZC1jaGFyYCB0byBzZWUgaWYgSSBjYW4gbWFrZSBhIGdlbmVyYWwgdGVzdGNhc2UgYnV0IHRoaXMN Cj4gc2VlbXMgdG8gaGF2ZSBub3QgZG9uZSBpdC4NCj4gPg0KPiA+IElzIHRoZXJlIGFub3RoZXIg ZmxhZyBJIGNhbiB1c2U/DQo+IA0KPiBJIHN1cHBvc2UgeW91IGNhbiBjb3B5IHRoZSB0ZXN0Y2Fz ZShzKSBhbmQgcmVwbGFjZSAnYXV0bycgd2l0aCAnc2lnbmVkIGNoYXInPw0KDQpVbmZvcnR1bmF0 ZWx5IHRoYXQgZGllcyB3aXRoDQoNCmJpdC5jYzogSW4gZnVuY3Rpb24gJ2Jvb2wgZjUoZG91Ymxl LCBkb3VibGUpJzoNCmJpdC5jYzo0OjUyOiBlcnJvcjogY2Fubm90IGNvbnZlcnQgJ3N0ZDo6cGFy dGlhbF9vcmRlcmluZycgdG8gJ3NpZ25lZCBjaGFyJyBpbiBpbml0aWFsaXphdGlvbg0KICAgIDQg fCBBIGJvb2wgZjUgKGRvdWJsZSBpLCBkb3VibGUgaikgeyBzaWduZWQgY2hhciBjID0gaSA8PT4g ajsgcmV0dXJuIGMgPj0gMDsgfQ0KICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfn5efn5+fg0KICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQogICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6cGFydGlhbF9vcmRlcmlu Zw0KDQpJdCBsb29rcyBsaWtlIHRoZSBjaGFycyBlbmQgdXAgdGhlcmUgYWZ0ZXIgaW5saW5pbmcg dGhlIGA8PT5gIG9wZXJhdGlvbiBpdHNlbGYuDQpJIGNvdWxkIGRvIGEgR2ltcGxlIHRlc3RjYXNl LCBidXQgd29ycnkgaXQgbWF5IGJlIGEgYml0IGZyYWdpbGUuDQoNClJlZ2FyZHMsDQpUYW1hci4N Cg0KPiANCj4gPg0KPiA+IFJlZ2FyZHMsDQo+ID4gVGFtYXINCj4gPiA+DQo+ID4gPiBUaGFua3Ms DQo+ID4gPiBSaWNoYXJkLg0KPiA+ID4NCj4gPiA+ID4gVGhhbmtzLA0KPiA+ID4gPiBUYW1hcg0K PiA+ID4gPg0KPiA+ID4gPiBnY2MvQ2hhbmdlTG9nOg0KPiA+ID4gPg0KPiA+ID4gPiAJKiB0cmVl LXNzYS1waGlvcHQuYyAoc3BhY2VzaGlwX3JlcGxhY2VtZW50KTogSGFuZGxlIG5ldyBjYW5vbmlj YWwNCj4gPiA+ID4gCWNvZGVnZW4uDQo+ID4gPiA+DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9nY2Mv dHJlZS1zc2EtcGhpb3B0LmMgYi9nY2MvdHJlZS1zc2EtcGhpb3B0LmMgaW5kZXgNCj4gPiA+ID4N Cj4gPiA+DQo+IDBlMzM5YzQ2YWZhMjlmYTk3ZjkwZDliYzQzOTQzNzBjZDliNGIzOTYuLjY1YjI1 YmUzMzk5Yjc1ZDVlOWNhYjBmNzgNCj4gPiA+IGFhMg0KPiA+ID4gPiAzNDA0MTg1NzFhMzMgMTAw NjQ0DQo+ID4gPiA+IC0tLSBhL2djYy90cmVlLXNzYS1waGlvcHQuYw0KPiA+ID4gPiArKysgYi9n Y2MvdHJlZS1zc2EtcGhpb3B0LmMNCj4gPiA+ID4gQEAgLTIwMzcsNiArMjAzNyw3IEBAIHNwYWNl c2hpcF9yZXBsYWNlbWVudCAoYmFzaWNfYmxvY2sgY29uZF9iYiwNCj4gPiA+IGJhc2ljX2Jsb2Nr IG1pZGRsZV9iYiwNCj4gPiA+ID4gICAgdHJlZSBsaHMsIHJoczsNCj4gPiA+ID4gICAgZ2ltcGxl ICpvcmlnX3VzZV9zdG10ID0gdXNlX3N0bXQ7DQo+ID4gPiA+ICAgIHRyZWUgb3JpZ191c2VfbGhz ID0gTlVMTF9UUkVFOw0KPiA+ID4gPiArICBib29sIGlzX2Nhbm9uID0gZmFsc2U7DQo+ID4gPiA+ ICAgIGludCBwcmVjID0gVFlQRV9QUkVDSVNJT04gKFRSRUVfVFlQRSAocGhpcmVzKSk7DQo+ID4g PiA+ICAgIGlmIChpc19naW1wbGVfYXNzaWduICh1c2Vfc3RtdCkNCj4gPiA+ID4gICAgICAgICYm IGdpbXBsZV9hc3NpZ25fcmhzX2NvZGUgKHVzZV9zdG10KSA9PSBCSVRfQU5EX0VYUFIgQEANCj4g PiA+ID4gLTIwNjMsNg0KPiA+ID4gPiArMjA2NCwyNiBAQCBzcGFjZXNoaXBfcmVwbGFjZW1lbnQg KGJhc2ljX2Jsb2NrIGNvbmRfYmIsDQo+ID4gPiA+ICtiYXNpY19ibG9jaw0KPiA+ID4gbWlkZGxl X2JiLA0KPiA+ID4gPiAgICAgIH0NCj4gPiA+ID4gICAgZWxzZSBpZiAoaXNfZ2ltcGxlX2Fzc2ln biAodXNlX3N0bXQpKQ0KPiA+ID4gPiAgICAgIHsNCj4gPiA+ID4gKyAgICAgIC8qIERlYWwgd2l0 aCBpZiBtYXRjaC5wZCBoYXMgcmV3cml0dGVuIHRoZSAocmVzICYgfjEpID09IDANCj4gPiA+ID4g KwkgaW50byByZXMgPD0gMSBhbmQgaGFzIGxlZnQgYSB0eXBlLWNhc3QgZm9yIHNpZ25lZCB0eXBl cy4gICovDQo+ID4gPiA+ICsgICAgICBpZiAoZ2ltcGxlX2Fzc2lnbl9jYXN0X3AgKHVzZV9zdG10 KSkNCj4gPiA+ID4gKwl7DQo+ID4gPiA+ICsJICBvcmlnX3VzZV9saHMgPSBnaW1wbGVfYXNzaWdu X2xocyAodXNlX3N0bXQpOw0KPiA+ID4gPiArCSAgaWYgKFNTQV9OQU1FX09DQ1VSU19JTl9BQk5P Uk1BTF9QSEkgKG9yaWdfdXNlX2xocykpDQo+ID4gPiA+ICsJICAgIHJldHVybiBmYWxzZTsNCj4g PiA+ID4gKwkgIGlmIChFREdFX0NPVU5UIChwaGlfYmItPnByZWRzKSAhPSA0KQ0KPiA+ID4gPiAr CSAgICByZXR1cm4gZmFsc2U7DQo+ID4gPiA+ICsJICBpZiAoIVRZUEVfVU5TSUdORUQgKFRSRUVf VFlQRSAob3JpZ191c2VfbGhzKSkpDQo+ID4gPiA+ICsJICAgIHJldHVybiBmYWxzZTsNCj4gPiA+ ID4gKwkgIGlmICghc2luZ2xlX2ltbV91c2UgKG9yaWdfdXNlX2xocywgJnVzZV9wLCAmdXNlX3N0 bXQpKQ0KPiA+ID4gPiArCSAgICByZXR1cm4gZmFsc2U7DQo+ID4gPiA+ICsJICB0cmVlX2NvZGUg Y21wOw0KPiA+ID4gPiArCSAgaWYgKGlzX2dpbXBsZV9hc3NpZ24gKHVzZV9zdG10KQ0KPiA+ID4g PiArCSAgICAgICYmIChjbXAgPSBnaW1wbGVfYXNzaWduX3Joc19jb2RlICh1c2Vfc3RtdCkpDQo+ ID4gPiA+ICsJICAgICAgJiYgKGNtcCA9PSBMRV9FWFBSIHx8IGNtcCA9PSBHVF9FWFBSKQ0KPiA+ ID4gPiArCSAgICAgICYmIHdpOjplcV9wICh3aTo6dG9fd2lkZSAoZ2ltcGxlX2Fzc2lnbl9yaHMy ICh1c2Vfc3RtdCkpLCAxKSkNCj4gPiA+ID4gKwkgICAgaXNfY2Fub24gPSB0cnVlOw0KPiA+ID4g PiArCX0NCj4gPiA+ID4gICAgICAgIGlmIChnaW1wbGVfYXNzaWduX3Joc19jbGFzcyAodXNlX3N0 bXQpID09IEdJTVBMRV9CSU5BUllfUkhTKQ0KPiA+ID4gPiAgCXsNCj4gPiA+ID4gIAkgIGNtcCA9 IGdpbXBsZV9hc3NpZ25fcmhzX2NvZGUgKHVzZV9zdG10KTsgQEAgLTIwOTksNyArMjEyMCw5DQo+ ID4gPiBAQA0KPiA+ID4gPiBzcGFjZXNoaXBfcmVwbGFjZW1lbnQgKGJhc2ljX2Jsb2NrIGNvbmRf YmIsIGJhc2ljX2Jsb2NrIG1pZGRsZV9iYiwNCj4gPiA+ID4gICAgICAgIHx8ICF0cmVlX2ZpdHNf c2h3aV9wIChyaHMpDQo+ID4gPiA+ICAgICAgICB8fCAhSU5fUkFOR0UgKHRyZWVfdG9fc2h3aSAo cmhzKSwgLTEsIDEpKQ0KPiA+ID4gPiAgICAgIHJldHVybiBmYWxzZTsNCj4gPiA+ID4gLSAgaWYg KG9yaWdfdXNlX2xocykNCj4gPiA+ID4gKyAgLyogSWYgd2UncmUgYWxyZWFkeSBpbiB0aGUgY2Fu b25pY2FsIGZvcm0gd2UgbmVlZCB0byBrZWVwIHRoZSBvcmlnaW5hbA0KPiA+ID4gPiArICAgICBj b21wYXJpc29uLiAgKi8NCj4gPiA+ID4gKyAgaWYgKG9yaWdfdXNlX2xocyAmJiAhaXNfY2Fub24p DQo+ID4gPiA+ICAgICAgew0KPiA+ID4gPiAgICAgICAgaWYgKChjbXAgIT0gRVFfRVhQUiAmJiBj bXAgIT0gTkVfRVhQUikgfHwgIWludGVnZXJfemVyb3AgKHJocykpDQo+ID4gPiA+ICAJcmV0dXJu IGZhbHNlOw0KPiA+ID4gPiBAQCAtMjMxMCw2ICsyMzMzLDcgQEAgc3BhY2VzaGlwX3JlcGxhY2Vt ZW50IChiYXNpY19ibG9jayBjb25kX2JiLA0KPiA+ID4gYmFzaWNfYmxvY2sgbWlkZGxlX2JiLA0K PiA+ID4gPiAgICAgIG9uZV9jbXAgPSBHVF9FWFBSOw0KPiA+ID4gPg0KPiA+ID4gPiAgICBlbnVt IHRyZWVfY29kZSByZXNfY21wOw0KPiA+ID4gPiArDQo+ID4gPiA+ICAgIHN3aXRjaCAoY21wKQ0K PiA+ID4gPiAgICAgIHsNCj4gPiA+ID4gICAgICBjYXNlIEVRX0VYUFI6DQo+ID4gPiA+IEBAIC0y MzQ1LDYgKzIzNjksOCBAQCBzcGFjZXNoaXBfcmVwbGFjZW1lbnQgKGJhc2ljX2Jsb2NrIGNvbmRf YmIsDQo+ID4gPiBiYXNpY19ibG9jayBtaWRkbGVfYmIsDQo+ID4gPiA+ICAJcmVzX2NtcCA9IG9u ZV9jbXAgPT0gTFRfRVhQUiA/IEdFX0VYUFIgOiBMRV9FWFBSOw0KPiA+ID4gPiAgICAgICAgZWxz ZSBpZiAoaW50ZWdlcl9taW51c19vbmVwIChyaHMpKQ0KPiA+ID4gPiAgCXJlc19jbXAgPSBvbmVf Y21wID09IExUX0VYUFIgPyBHVF9FWFBSIDogTFRfRVhQUjsNCj4gPiA+ID4gKyAgICAgIGVsc2Ug aWYgKGludGVnZXJfb25lcCAocmhzKSAmJiBpc19jYW5vbikNCj4gPiA+ID4gKwlyZXNfY21wID0g R0VfRVhQUjsNCj4gPiA+ID4gICAgICAgIGVsc2UNCj4gPiA+ID4gIAlyZXR1cm4gZmFsc2U7DQo+ ID4gPiA+ICAgICAgICBicmVhazsNCj4gPiA+ID4gQEAgLTIzNTMsNiArMjM3OSw4IEBAIHNwYWNl c2hpcF9yZXBsYWNlbWVudCAoYmFzaWNfYmxvY2sgY29uZF9iYiwNCj4gPiA+IGJhc2ljX2Jsb2Nr IG1pZGRsZV9iYiwNCj4gPiA+ID4gIAlyZXNfY21wID0gb25lX2NtcCA9PSBMVF9FWFBSID8gTEVf RVhQUiA6IEdFX0VYUFI7DQo+ID4gPiA+ICAgICAgICBlbHNlIGlmIChpbnRlZ2VyX3plcm9wIChy aHMpKQ0KPiA+ID4gPiAgCXJlc19jbXAgPSBvbmVfY21wOw0KPiA+ID4gPiArICAgICAgZWxzZSBp ZiAoaW50ZWdlcl9vbmVwIChyaHMpICYmIGlzX2Nhbm9uKQ0KPiA+ID4gPiArCXJlc19jbXAgPSBM RV9FWFBSOw0KPiA+ID4gPiAgICAgICAgZWxzZQ0KPiA+ID4gPiAgCXJldHVybiBmYWxzZTsNCj4g PiA+ID4gICAgICAgIGJyZWFrOw0KPiA+ID4gPg0KPiA+ID4NCj4gPiA+IC0tDQo+ID4gPiBSaWNo YXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+DQo+ID4gPiBTVVNFIFNvZnR3YXJlIFNvbHV0 aW9ucyBHZXJtYW55IEdtYkgsIE1heGZlbGRzdHJhc3NlIDUsIDkwNDA5DQo+ID4gPiBOdWVybmJl cmcsIEdlcm1hbnk7IEdGOiBGZWxpeCBJbWVuZMO2cmZmZXI7IEhSQiAzNjgwOSAoQUcgTnVlcm5i ZXJnKQ0KPiA+DQo+IA0KPiAtLQ0KPiBSaWNoYXJkIEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+ DQo+IFNVU0UgU29mdHdhcmUgU29sdXRpb25zIEdlcm1hbnkgR21iSCwgTWF4ZmVsZHN0cmFzc2Ug NSwgOTA0MDkNCj4gTnVlcm5iZXJnLCBHZXJtYW55OyBHRjogRmVsaXggSW1lbmTDtnJmZmVyOyBI UkIgMzY4MDkgKEFHIE51ZXJuYmVyZykNCg==