From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80087.outbound.protection.outlook.com [40.107.8.87]) by sourceware.org (Postfix) with ESMTPS id 5EB0E385840B for ; Tue, 5 Oct 2021 13:50:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5EB0E385840B Received: from AS9PR04CA0036.eurprd04.prod.outlook.com (2603:10a6:20b:46a::29) by PR2PR08MB4649.eurprd08.prod.outlook.com (2603:10a6:101:1f::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.14; Tue, 5 Oct 2021 13:50:15 +0000 Received: from VE1EUR03FT043.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:46a:cafe::4e) by AS9PR04CA0036.outlook.office365.com (2603:10a6:20b:46a::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.17 via Frontend Transport; Tue, 5 Oct 2021 13:50:15 +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 VE1EUR03FT043.mail.protection.outlook.com (10.152.19.122) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.14 via Frontend Transport; Tue, 5 Oct 2021 13:50:15 +0000 Received: ("Tessian outbound f1898412aff1:v103"); Tue, 05 Oct 2021 13:50:15 +0000 X-CR-MTA-TID: 64aa7808 Received: from f5e59b6ec6e7.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id C4A807C0-73AB-462B-999A-69F01C9F7EFE.1; Tue, 05 Oct 2021 13:50:05 +0000 Received: from EUR03-AM5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id f5e59b6ec6e7.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 05 Oct 2021 13:50:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EoHPQHp9zZrfYcLKw4pIbWvBgn3reLPscCtSk/RcXqurdvOf7nARvRIL2p2nmGAj0Ceol6wgQK5MKlPPLmWM8kSzAiBIjEfw628WJiMYobQrmar/G6BBJ/azbyOUpVfa1Y9g2RqOFBY3DbQCBp8X7dwDkav0cAAszybO6YeKnCoXJ4jSLHhvb59Ln6GI64V9h9/AGv2NG4oCqPdHTC5nDPx+lxew+X503ThIsJyjbyJA1uYqDObcZqEuOfIWxPACg2y6LTL39hbidqegcbKZJrXDDlVSV1aqv5hekWt6sx6Tf7wmOUyQsMtBCoDFkoDRmcp/c1/B9NjYuZXIqHQnvQ== 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=lUNBrvEA2jvH5KSZQWEaq/Doj2mJ7S+Q8HdsyBIwLS0=; b=IaegvWt8UBXWoNqI2K+QHTuuos7AwzyvqUCtl5GCBa79ueyf/WDvMDoD/irpBSDEtOONqtSThqu1cZAPAILxpKMvivAhDxCEGvYOquLRvscmmvJ1ZCcSCRlIA/DHf9pXIUJmkxTzC978ZXDRNvNDPDXX6zq8QIi2pe6fAnaFNLSAZ1e9xucFEzhoNihyKMk0SMKGAECzc5g9fg+s3lpAih4oiPKac69zftc8Yb2RLoROp7XPtD+1sEA50E8Hd4xPVNh7Gy50TQdIYZJrgkDBa6SWSW9TqdiSFinLOwvNHfyE4veP9DPI4lVPEDRaqciCNJzhH2ofbabyMtUs29H2+g== 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 AM0PR08MB5316.eurprd08.prod.outlook.com (2603:10a6:208:185::14) by AM9PR08MB6849.eurprd08.prod.outlook.com (2603:10a6:20b:301::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.16; Tue, 5 Oct 2021 13:49:57 +0000 Received: from AM0PR08MB5316.eurprd08.prod.outlook.com ([fe80::9c40:c69a:3ec5:88cc]) by AM0PR08MB5316.eurprd08.prod.outlook.com ([fe80::9c40:c69a:3ec5:88cc%6]) with mapi id 15.20.4566.022; Tue, 5 Oct 2021 13:49:57 +0000 From: Tamar Christina To: Richard Earnshaw , "gcc-patches@gcc.gnu.org" CC: nd , "rguenther@suse.de" Subject: RE: [PATCH]middle-end convert negate + right shift into compare greater. Thread-Topic: [PATCH]middle-end convert negate + right shift into compare greater. Thread-Index: AQHXueeaWRAdS6DoTEOGP9iM5Bte26vEXQSAgAAIyXCAAAHVgIAAA5Ww Date: Tue, 5 Oct 2021 13:49:57 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: F2D8AEBF7B5D514BA40FD37FD7D6085B.0 x-checkrecipientchecked: true Authentication-Results-Original: foss.arm.com; dkim=none (message not signed) header.d=none; foss.arm.com; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 5ec1223b-7ebe-43a3-c3ab-08d988070f4d x-ms-traffictypediagnostic: AM9PR08MB6849:|PR2PR08MB4649: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:1388;OLM:1388; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: SYOfEYsZAMSfrXVR6iifXnQXDomWvjR2yhEAQCO/5F6WvwmCQ1hD8g3nwPKpKFaTQ/BOttoHgk8SB94VleSknzWBA8A/+DtOAqXijPCUPqqpK0JshB35GKSeKHac8u1vqkYaQA3aWUImrth3rupzb9JRoOqVUhmuHeSRqJpICKStl847c/zPF7dweOOciqGsk/giINDTFweEp/npn/TMZgxGXki2vokuI9XxX9wbJfFO7+seuJhB5U6EGr9tAwtj4WZO8Nz9hdx4KZTT2kFePgMJk5W8CrjifE6qtruKgpkYeV7mCe+Es+xxFSV30KzZ/8v81jzW0tHXWnUQG7s8GCHfrzIdi5CjTu7JT6ShwbHTgar62/NpL74hnyrvBa4aaOF02pArCdWI1K6gOmWmbIUB9xvgaXeK/SuZRWkVuISjK1sB33xFr7dwNxPdm386SvZmDUk1q2nmb/HMm47xiYB9mBWGpLuC+j5zwQl7RM7JT46+Z3I8tcbIjxJjC93xpwBslBAepgboWq71gHULOXrB3ILxQjNWg3FcbRQIGn46g8eqDKYBSACQ+JCfPiEcchTLqJvBQ+arfGNQYrt7XBDtgQmTNNqkdTETi2JOLoTeAG7adR18znYDtDJhmFohd+FT+sJhwMYcQHCeGUsZaBgSnVTpSzWSxa1LsUuZCef8oUg/L6keRNzAv5R4NRLtBWCT6ecul6ax1g4whIbGAihatvE7tlyFFdymG/mwYxm9A39JSwFij4ebDHuSy7U4e5MDvbAwc2XEXjKHX7dPtkVcpbHCUVXYFtUPl2/5gkY9B1pXs7i1pwhnCBsUMQ1frLp7eRwrutGsHInTdrDXzg== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR08MB5316.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(6506007)(38100700002)(122000001)(71200400001)(33656002)(76116006)(4326008)(53546011)(66446008)(66476007)(66946007)(2906002)(8676002)(110136005)(54906003)(186003)(26005)(9686003)(83380400001)(66556008)(52536014)(8936002)(86362001)(55016002)(508600001)(38070700005)(316002)(7696005)(5660300002)(64756008); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6849 Original-Authentication-Results: foss.arm.com; dkim=none (message not signed) header.d=none; foss.arm.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT043.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 597bde27-2f1b-4a00-7661-08d9880704e2 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vBF8h/iPx8CTEWvyGcB3F2R/iAk5CNbMOzfC0W4yOCntsO4EIT8xQn973HRCqy/DCOR1VJgtdvsKUOruceJrNP4OGEdnscsdtpOqvcBBmaqExzt4EDryOgo68WvHZff722uoHZ36U0+Cr5OhVHY70vfKYhgzH4iuFiKTyxMJL7bag74j27LcyvL3pLb11aEqddoaSp4+9upRJggXk9lluDgDd+y2r/CEXJD+YGpZWZexvIoBsEVwxq4LA70EXaN6ST4qQnaPpb81jBcIY54RuPmD4xeh4+VlFiW2cWhx0MExlh8APpzaJnL+v2ejL6llBw6Lh5pQ0o9HnSJ9LKezsYRx59uVcRH37+b5lIGzbgdgVKlTCcdMTQOz730mxCLNpS0gq/2bZ0W4WmAMUyvywqTxFF9XxK6QI/gGrkDAirQDqV9yPcvbpAhtOm36D0L6A16UkWKSAb7w25v8tPkuoEnMRfiZ1XOJoJLoMvBwuPso4WqMlVX+tA4XEuWgKV8dS/Q/koEHP0WgdxI7DKjxIdVUyhibYuCiIoTrbnYjkGa7GqXrMfzRzkGtJie2ffhyKO035zI5erpz1+Gw/CECUNkc4UwHkPS9gk9+Bwi8YRyfOtjk1cVj43r49rsqSMi0dmi23XTbe8XGCPPZ8mBt56rQpmYqSpRwVIqhlpNB9W2up0qJymZJIdfFROrHlMGEgKvYuF9zdTHusEMitHy/Qo48kq9rgQNIVMbFgjFGzAnQh1vRJqXIcZiuhFPdtvNnEbboY55lPJyZhDRTD7zxUDYu+oRYXOoSz/b21rx/SiuJ5M/X+q8leSzdBhpxd4fl3rnOx0Lo7V0EWl/me8DK4A== 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)(5660300002)(33656002)(8676002)(36860700001)(54906003)(47076005)(70206006)(70586007)(6506007)(7696005)(9686003)(186003)(52536014)(508600001)(53546011)(356005)(81166007)(55016002)(26005)(4326008)(8936002)(83380400001)(107886003)(316002)(336012)(86362001)(2906002)(110136005)(82310400003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Oct 2021 13:50:15.1139 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5ec1223b-7ebe-43a3-c3ab-08d988070f4d 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: VE1EUR03FT043.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR2PR08MB4649 X-Spam-Status: No, score=-13.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_LOTSOFHASH, KAM_SHORT, 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, 05 Oct 2021 13:50:21 -0000 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBSaWNoYXJkIEVhcm5zaGF3IDxS aWNoYXJkLkVhcm5zaGF3QGZvc3MuYXJtLmNvbT4NCj4gU2VudDogVHVlc2RheSwgT2N0b2JlciA1 LCAyMDIxIDI6MzQgUE0NCj4gVG86IFRhbWFyIENocmlzdGluYSA8VGFtYXIuQ2hyaXN0aW5hQGFy bS5jb20+OyBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZw0KPiBDYzogbmQgPG5kQGFybS5jb20+OyBy Z3VlbnRoZXJAc3VzZS5kZQ0KPiBTdWJqZWN0OiBSZTogW1BBVENIXW1pZGRsZS1lbmQgY29udmVy dCBuZWdhdGUgKyByaWdodCBzaGlmdCBpbnRvIGNvbXBhcmUNCj4gZ3JlYXRlci4NCj4gDQo+IA0K PiANCj4gT24gMDUvMTAvMjAyMSAxNDozMCwgVGFtYXIgQ2hyaXN0aW5hIHdyb3RlOg0KPiA+DQo+ ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogUmljaGFyZCBF YXJuc2hhdyA8UmljaGFyZC5FYXJuc2hhd0Bmb3NzLmFybS5jb20+DQo+ID4+IFNlbnQ6IFR1ZXNk YXksIE9jdG9iZXIgNSwgMjAyMSAxOjU2IFBNDQo+ID4+IFRvOiBUYW1hciBDaHJpc3RpbmEgPFRh bWFyLkNocmlzdGluYUBhcm0uY29tPjsNCj4gPj4gZ2NjLXBhdGNoZXNAZ2NjLmdudS5vcmcNCj4g Pj4gQ2M6IG5kIDxuZEBhcm0uY29tPjsgcmd1ZW50aGVyQHN1c2UuZGUNCj4gPj4gU3ViamVjdDog UmU6IFtQQVRDSF1taWRkbGUtZW5kIGNvbnZlcnQgbmVnYXRlICsgcmlnaHQgc2hpZnQgaW50bw0K PiA+PiBjb21wYXJlIGdyZWF0ZXIuDQo+ID4+DQo+ID4+DQo+ID4+DQo+ID4+IE9uIDA1LzEwLzIw MjEgMTM6NTAsIFRhbWFyIENocmlzdGluYSB2aWEgR2NjLXBhdGNoZXMgd3JvdGU6DQo+ID4+PiBI aSBBbGwsDQo+ID4+Pg0KPiA+Pj4gVGhpcyB0dXJucyBhbiBpbnZlcnNpb24gb2YgdGhlIHNpZ24g Yml0ICsgYXJpdGhtZXRpYyByaWdodCBzaGlmdA0KPiA+Pj4gaW50byBhIGNvbXBhcmlzb24gd2l0 aCAwLg0KPiA+Pj4NCj4gPj4+IGkuZS4NCj4gPj4+DQo+ID4+PiB2b2lkIGZ1bjEoaW50MzJfdCAq eCwgaW50IG4pDQo+ID4+PiB7DQo+ID4+PiAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IChuICYg LTE2KTsgaSsrKQ0KPiA+Pj4gICAgICAgICB4W2ldID0gKC14W2ldKSA+PiAzMTsNCj4gPj4+IH0N Cj4gPj4+DQo+ID4+IE5vdHdpdGhzdGFuZGluZyB0aGF0IEkgdGhpbmsgc2hpZnRpbmcgYSBuZWdh dGl2ZSB2YWx1ZSByaWdodCBpcw0KPiA+PiB1bnNwZWNpZmllZCBiZWhhdmlvdXIsIEkgZG9uJ3Qg dGhpbmsgdGhpcyBnZW5lcmF0ZXMgdGhlIHNhbWUgcmVzdWx0DQo+ID4+IHdoZW4geFtpXSBpcyBJ TlRfTUlOIGVpdGhlciwgYWx0aG91Z2ggbmVnYXRpbmcgdGhhdCBpcyBhbHNvDQo+ID4+IHVuc3Bl Y2lmaWVkIHNpbmNlIGl0IGNhbid0IGJlIHJlcHJlc2VudGVkIGluIGFuIGludC4NCj4gPj4NCj4g Pg0KPiA+IFlvdSdyZSByaWdodCB0aGF0IHRoZXkgYXJlIGltcGxlbWVudGF0aW9uIGRlZmluZWQs IGJ1dCBJIHRoaW5rIG1vc3QNCj4gPiBJU0FzIGRvIGhhdmUgYSBzYW5lIEltcGxlbWVudGF0aW9u IG9mIHRoZXNlIHR3byBjYXNlcy4gQXQgbGVhc3QgYm90aA0KPiA+IHg4NiBhbmQgQUFyY2g2NCBq dXN0IHJlcGxpY2F0ZSB0aGUgc2lnbmJpdCBhbmQgZm9yIG5lZ2F0ZSBkbyB0d28NCj4gY29tcGxl bWVudCBuZWdhdGlvbi4gU28gSU5UX01JTiB3b3JrcyBhcyBleHBlY3RlZCBhbmQgcmVzdWx0cyBp biAwLg0KPiANCj4gV2hpY2ggaXMgbm90IHdoYXQgdGhlIG9yaWdpbmFsIGNvZGUgcHJvZHVjZXMg aWYgeW91IGhhdmUgd3JhcHBpbmcgaW50cywNCj4gYmVjYXVzZSAtSU5UX01JTiBpcyBJTlRfTUlO LCBhbmQgdGh1cyBzdGlsbCBuZWdhdGl2ZS4NCj4gDQoNClRydWUsIGJ1dCB0aGVuIHlvdSBoYXZl IGEgc2lnbmVkIG92ZXJmbG93IHdoaWNoIGlzIHVuZGVmaW5lZCBiZWhhdmlvdXIgYW5kIG5vdCBp bXBsZW1lbnRhdGlvbiBkZWZpbmVkDQoNCiIgSWYgYW4gZXhjZXB0aW9uYWwgY29uZGl0aW9uIG9j Y3VycyBkdXJpbmcgdGhlIGV2YWx1YXRpb24gb2YgYW4gZXhwcmVzc2lvbiAodGhhdCBpcywgaWYg dGhlIHJlc3VsdCBpcyBub3QgbWF0aGVtYXRpY2FsbHkgZGVmaW5lZCBvciBub3QgaW4gdGhlIHJh bmdlIG9mIHJlcHJlc2VudGFibGUgdmFsdWVzIGZvciBpdHMgdHlwZSksIHRoZSBiZWhhdmlvciBp cyB1bmRlZmluZWQuIg0KDQpTbyBpdCBzaG91bGQgc3RpbGwgYmUgYWNjZXB0YWJsZSB0byBkbyBp biB0aGlzIGNhc2UuDQoNCj4gUi4NCj4gDQo+ID4NCj4gPiBCdXQgSSdtIGhhcHB5IHRvIGd1YXJk IHRoaXMgYmVoaW5kIHNvbWUgc29ydCBvZiB0YXJnZXQgZ3VhcmQuDQo+ID4NCj4gPiBSZWdhcmRz LA0KPiA+IFRhbWFyDQo+ID4NCj4gPj4gUi4NCj4gPj4NCj4gPj4+IG5vdyBnZW5lcmF0ZXM6DQo+ ID4+Pg0KPiA+Pj4gLkwzOg0KPiA+Pj4gICAgICAgICAgIGxkciAgICAgcTAsIFt4MF0NCj4gPj4+ ICAgICAgICAgICBjbWd0ICAgIHYwLjRzLCB2MC40cywgIzANCj4gPj4+ICAgICAgICAgICBzdHIg ICAgIHEwLCBbeDBdLCAxNg0KPiA+Pj4gICAgICAgICAgIGNtcCAgICAgeDAsIHgxDQo+ID4+PiAg ICAgICAgICAgYm5lICAgICAuTDMNCj4gPj4+DQo+ID4+PiBpbnN0ZWFkIG9mOg0KPiA+Pj4NCj4g Pj4+IC5MMzoNCj4gPj4+ICAgICAgICAgICBsZHIgICAgIHEwLCBbeDBdDQo+ID4+PiAgICAgICAg ICAgbmVnICAgICB2MC40cywgdjAuNHMNCj4gPj4+ICAgICAgICAgICBzc2hyICAgIHYwLjRzLCB2 MC40cywgMzENCj4gPj4+ICAgICAgICAgICBzdHIgICAgIHEwLCBbeDBdLCAxNg0KPiA+Pj4gICAg ICAgICAgIGNtcCAgICAgeDAsIHgxDQo+ID4+PiAgICAgICAgICAgYm5lICAgICAuTDMNCj4gPj4+ DQo+ID4+PiBCb290c3RyYXBwZWQgUmVndGVzdGVkIG9uIGFhcmNoNjQtbm9uZS1saW51eC1nbnUs DQo+ID4+PiB4ODZfNjQtcGMtbGludXgtZ251IGFuZCBubyByZWdyZXNzaW9ucy4NCj4gPj4+DQo+ ID4+PiBPayBmb3IgbWFzdGVyPw0KPiA+Pj4NCj4gPj4+IFRoYW5rcywNCj4gPj4+IFRhbWFyDQo+ ID4+Pg0KPiA+Pj4gZ2NjL0NoYW5nZUxvZzoNCj4gPj4+DQo+ID4+PiAJKiBtYXRjaC5wZDogTmV3 IG5lZ2F0ZStzaGlmdCBwYXR0ZXJuLg0KPiA+Pj4NCj4gPj4+IGdjYy90ZXN0c3VpdGUvQ2hhbmdl TG9nOg0KPiA+Pj4NCj4gPj4+IAkqIGdjYy5kZy9zaWduYml0LTIuYzogTmV3IHRlc3QuDQo+ID4+ PiAJKiBnY2MuZGcvc2lnbmJpdC0zLmM6IE5ldyB0ZXN0Lg0KPiA+Pj4gCSogZ2NjLnRhcmdldC9h YXJjaDY0L3NpZ25iaXQtMS5jOiBOZXcgdGVzdC4NCj4gPj4+DQo+ID4+PiAtLS0gaW5saW5lIGNv cHkgb2YgcGF0Y2ggLS0NCj4gPj4+IGRpZmYgLS1naXQgYS9nY2MvbWF0Y2gucGQgYi9nY2MvbWF0 Y2gucGQgaW5kZXgNCj4gPj4NCj4gN2QyYTI0ZGJjNWU5NjQ0YTA5OTY4Zjg3N2UxMmE4MjRkOGJh MWNhYS4uNTgxNDM2ZmUzNmRiYWNkY2IwYzI3MjBiNw0KPiA+PiAxOTBjOTZkMTQzOTgxNDMgMTAw NjQ0DQo+ID4+PiAtLS0gYS9nY2MvbWF0Y2gucGQNCj4gPj4+ICsrKyBiL2djYy9tYXRjaC5wZA0K PiA+Pj4gQEAgLTgyNiw2ICs4MjYsMzcgQEAgREVGSU5FX0lOVF9BTkRfRkxPQVRfUk9VTkRfRk4g KFJJTlQpDQo+ID4+PiAgICAgICAgeyB0cmVlIHV0eXBlID0gdW5zaWduZWRfdHlwZV9mb3IgKHR5 cGUpOyB9DQo+ID4+PiAgICAgICAgKGNvbnZlcnQgKHJzaGlmdCAobHNoaWZ0IChjb252ZXJ0OnV0 eXBlIEAwKSBAMikgQDMpKSkpKSkNCj4gPj4+DQo+ID4+PiArLyogRm9sZCAoLXggPj4gQykgaW50 byB4ID4gMCB3aGVyZSBDID0gcHJlY2lzaW9uKHR5cGUpIC0gMS4gICovDQo+ID4+PiArKGZvciBj c3QgKElOVEVHRVJfQ1NUIFZFQ1RPUl9DU1QpICAoc2ltcGxpZnkNCj4gPj4+ICsgIChyc2hpZnQg KG5lZ2F0ZTpzIEAwKSBjc3RAMSkNCj4gPj4+ICsgICAod2l0aCB7IHRyZWUgY3R5cGUgPSBUUkVF X1RZUEUgKEAwKTsNCj4gPj4+ICsJICAgdHJlZSBzdHlwZSA9IFRSRUVfVFlQRSAoQDEpOw0KPiA+ Pj4gKwkgICB0cmVlIGJ0ID0gdHJ1dGhfdHlwZV9mb3IgKGN0eXBlKTsgfQ0KPiA+Pj4gKyAgICAo c3dpdGNoDQo+ID4+PiArICAgICAvKiBIYW5kbGUgc2NhbGFyIGNhc2UuICAqLw0KPiA+Pj4gKyAg ICAgKGlmIChJTlRFR1JBTF9UWVBFX1AgKGN0eXBlKQ0KPiA+Pj4gKwkgICYmICFWRUNUT1JfVFlQ RV9QIChjdHlwZSkNCj4gPj4+ICsJICAmJiAhVFlQRV9VTlNJR05FRCAoY3R5cGUpDQo+ID4+PiAr CSAgJiYgY2Fub25pY2FsaXplX21hdGhfYWZ0ZXJfdmVjdG9yaXphdGlvbl9wICgpDQo+ID4+PiAr CSAgJiYgd2k6OmVxX3AgKHdpOjp0b193aWRlIChAMSksIFRZUEVfUFJFQ0lTSU9OIChzdHlwZSkg LSAxKSkNCj4gPj4+ICsgICAgICAoY29udmVydDpidCAoZ3Q6YnQgQDAgeyBidWlsZF96ZXJvX2Nz dCAoc3R5cGUpOyB9KSkpDQo+ID4+PiArICAgICAvKiBIYW5kbGUgdmVjdG9yIGNhc2Ugd2l0aCBh IHNjYWxhciBpbW1lZGlhdGUuICAqLw0KPiA+Pj4gKyAgICAgKGlmIChWRUNUT1JfSU5URUdFUl9U WVBFX1AgKGN0eXBlKQ0KPiA+Pj4gKwkgICYmICFWRUNUT1JfVFlQRV9QIChzdHlwZSkNCj4gPj4+ ICsJICAmJiAhVFlQRV9VTlNJR05FRCAoY3R5cGUpDQo+ID4+PiArICAgICAgICAgICYmIHdpOjpl cV9wICh3aTo6dG9fd2lkZSAoQDEpLCBUWVBFX1BSRUNJU0lPTiAoc3R5cGUpIC0gMSkpDQo+ID4+ PiArICAgICAgKGNvbnZlcnQ6YnQgKGd0OmJ0IEAwIHsgYnVpbGRfemVyb19jc3QgKGN0eXBlKTsg fSkpKQ0KPiA+Pj4gKyAgICAgLyogSGFuZGxlIHZlY3RvciBjYXNlIHdpdGggYSB2ZWN0b3IgaW1t ZWRpYXRlLiAgICovDQo+ID4+PiArICAgICAoaWYgKFZFQ1RPUl9JTlRFR0VSX1RZUEVfUCAoY3R5 cGUpDQo+ID4+PiArCSAgJiYgVkVDVE9SX1RZUEVfUCAoc3R5cGUpDQo+ID4+PiArCSAgJiYgIVRZ UEVfVU5TSUdORUQgKGN0eXBlKQ0KPiA+Pj4gKwkgICYmIHVuaWZvcm1fdmVjdG9yX3AgKEAxKSkN Cj4gPj4+ICsgICAgICAod2l0aCB7IHRyZWUgY3N0ID0gdmVjdG9yX2NzdF9lbHQgKEAxLCAwKTsN Cj4gPj4+ICsJICAgICAgdHJlZSB0ID0gVFJFRV9UWVBFIChjc3QpOyB9DQo+ID4+PiArICAgICAg IChpZiAod2k6OmVxX3AgKHdpOjp0b193aWRlIChjc3QpLCBUWVBFX1BSRUNJU0lPTiAodCkgLSAx KSkNCj4gPj4+ICsgICAgICAgIChjb252ZXJ0OmJ0IChndDpidCBAMCB7IGJ1aWxkX3plcm9fY3N0 IChjdHlwZSk7IH0pKSkpKSkpKSkNCj4gPj4+ICsNCj4gPj4+ICAgIC8qIEZvbGQgKEMxL1gpKkMy IGludG8gKEMxKkMyKS9YLiAgKi8NCj4gPj4+ICAgIChzaW1wbGlmeQ0KPiA+Pj4gICAgIChtdWx0 IChyZGl2QDMgUkVBTF9DU1RAMCBAMSkgUkVBTF9DU1RAMikgZGlmZiAtLWdpdA0KPiA+Pj4gYS9n Y2MvdGVzdHN1aXRlL2djYy5kZy9zaWduYml0LTIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3Np Z25iaXQtDQo+ID4+IDIuYw0KPiA+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPj4+IGluZGV4 DQo+ID4+DQo+IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjMDE1 N2NiYzVjNzk5NmI0ODFmMjk5OGJjDQo+ID4+IDMwMTc2Yzk2YTY2OWJiDQo+ID4+PiAtLS0gL2Rl di9udWxsDQo+ID4+PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy9zaWduYml0LTIuYw0KPiA+ Pj4gQEAgLTAsMCArMSwxOSBAQA0KPiA+Pj4gKy8qIHsgZGctZG8gYXNzZW1ibGUgfSAqLw0KPiA+ Pj4gKy8qIHsgZGctb3B0aW9ucyAiLU8zIC0tc2F2ZS10ZW1wcyAtZmR1bXAtdHJlZS1vcHRpbWl6 ZWQiIH0gKi8NCj4gPj4+ICsNCj4gPj4+ICsjaW5jbHVkZSA8c3RkaW50Lmg+DQo+ID4+PiArDQo+ ID4+PiArdm9pZCBmdW4xKGludDMyX3QgKngsIGludCBuKQ0KPiA+Pj4gK3sNCj4gPj4+ICsgICAg Zm9yIChpbnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykNCj4gPj4+ICsgICAgICB4W2ldID0g KC14W2ldKSA+PiAzMTsNCj4gPj4+ICt9DQo+ID4+PiArDQo+ID4+PiArdm9pZCBmdW4yKGludDMy X3QgKngsIGludCBuKQ0KPiA+Pj4gK3sNCj4gPj4+ICsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAo biAmIC0xNik7IGkrKykNCj4gPj4+ICsgICAgICB4W2ldID0gKC14W2ldKSA+PiAzMDsNCj4gPj4+ ICt9DQo+ID4+PiArDQo+ID4+PiArLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVz IHtccys+XHMrXHsgMCwgMCwgMCwgMCBcfX0gMQ0KPiA+Pj4gK29wdGltaXplZCB9IH0NCj4gPj4g Ki8NCj4gPj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90IHtccys+PlxzKzMx fSBvcHRpbWl6ZWQgfSB9ICovDQo+ID4+PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu ZGcvc2lnbmJpdC0zLmMNCj4gPj4+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvc2lnbmJpdC0NCj4g Pj4gMy5jDQo+ID4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+Pj4gaW5kZXgNCj4gPj4NCj4g MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTllOWMwNmMzNDliMzI4 NzYxMGY4MTc2MjgNCj4gPj4gZjAwOTM4ZWNlNjBiZjcNCj4gPj4+IC0tLSAvZGV2L251bGwNCj4g Pj4+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3NpZ25iaXQtMy5jDQo+ID4+PiBAQCAtMCww ICsxLDEzIEBADQo+ID4+PiArLyogeyBkZy1kbyBhc3NlbWJsZSB9ICovDQo+ID4+PiArLyogeyBk Zy1vcHRpb25zICItTzEgLS1zYXZlLXRlbXBzIC1mZHVtcC10cmVlLW9wdGltaXplZCIgfSAqLw0K PiA+Pj4gKw0KPiA+Pj4gKyNpbmNsdWRlIDxzdGRpbnQuaD4NCj4gPj4+ICsNCj4gPj4+ICt2b2lk IGZ1bjEoaW50MzJfdCAqeCwgaW50IG4pDQo+ID4+PiArew0KPiA+Pj4gKyAgICBmb3IgKGludCBp ID0gMDsgaSA8IChuICYgLTE2KTsgaSsrKQ0KPiA+Pj4gKyAgICAgIHhbaV0gPSAoLXhbaV0pID4+ IDMxOw0KPiA+Pj4gK30NCj4gPj4+ICsNCj4gPj4+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVl LWR1bXAtdGltZXMge1xzKz5ccyswO30gMSBvcHRpbWl6ZWQgfSB9ICovDQo+ID4+PiArLyogeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLW5vdCB7XHMrPj5ccyszMX0gb3B0aW1pemVkIH0gfSAq Lw0KPiA+Pj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3Np Z25iaXQtMS5jDQo+ID4+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc2lnbmJp dC0xLmMNCj4gPj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4+PiBpbmRleA0KPiA+Pg0KPiAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZWJmYjA1ODZmMzdkZTI5 Y2Y1ODYzNWIyNw0KPiA+PiBmZTQ4NTAzNzE0NDQ3ZQ0KPiA+Pj4gLS0tIC9kZXYvbnVsbA0KPiA+ Pj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc2lnbmJpdC0xLmMNCj4g Pj4+IEBAIC0wLDAgKzEsMTggQEANCj4gPj4+ICsvKiB7IGRnLWRvIGFzc2VtYmxlIH0gKi8NCj4g Pj4+ICsvKiB7IGRnLW9wdGlvbnMgIi1PMyAtLXNhdmUtdGVtcHMiIH0gKi8NCj4gPj4+ICsNCj4g Pj4+ICsjaW5jbHVkZSA8c3RkaW50Lmg+DQo+ID4+PiArDQo+ID4+PiArdm9pZCBmdW4xKGludDMy X3QgKngsIGludCBuKQ0KPiA+Pj4gK3sNCj4gPj4+ICsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAo biAmIC0xNik7IGkrKykNCj4gPj4+ICsgICAgICB4W2ldID0gKC14W2ldKSA+PiAzMTsNCj4gPj4+ ICt9DQo+ID4+PiArDQo+ID4+PiArdm9pZCBmdW4yKGludDMyX3QgKngsIGludCBuKQ0KPiA+Pj4g K3sNCj4gPj4+ICsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAmIC0xNik7IGkrKykNCj4gPj4+ ICsgICAgICB4W2ldID0gKC14W2ldKSA+PiAzMDsNCj4gPj4+ICt9DQo+ID4+PiArDQo+ID4+PiAr LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdGNtZ3RcdH0gMSB9IH0gKi8N Cj4gPj4+DQo+ID4+Pg0K