From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2050.outbound.protection.outlook.com [40.107.22.50]) by sourceware.org (Postfix) with ESMTPS id D4622385828E for ; Thu, 1 Dec 2022 16:29:53 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D4622385828E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GRzEDddaEc8OrxqFv4vtKZCEJRnm7jpJ3Lx+UAn3MKuPWDkouSYei2E3BI6Wyr7fS9g8BZQhb5InGGH+ri/JhOZdw9pggX6OyeZ4cpuBG3r30xSRc2VAhHKPFs45IDM4Rg1PSl8O+OZp2kfpyts+R83TEjKg58A8XasFymhS9iDeXgU2TIjx9pkUUG4Fw99BiPu4EEHOjgGWvUQv0FVnTgLN1GvMIctwItyvrFTOIPeJk6b9uEJfEjlviZhT4Ui0saoskZh4irfvWcu/5Rq2vWTIgq3VAbYI7Zsysun01eJVOxS3FdhmP3FKqGo4tKqu28QnKzuha9Ih/IsRfb2NtA== 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=9HnrUeAFmuT2xinffk7OnKE5wPUIxIJOXcOQt5s5uEE=; b=Kytn+fmdvM0Sjb61nbXbKeToKnkQokwwMZZs4blwbdMX/05scRz4gdJymoty1V6UD3gDk3WqMXUcmshTlacT3L2xubW+8AA+SFWaiKNPk+SIu6URZgnRU5YA7SUAh+LvaZ/SIE0y2iQhhTEaOpZrdx4LJnMzxYP811qkqXY1ejcMiM1oNgoGhBYFPmbcVi6wgwdBSaopcH4WLm68+yRfT1hi9JKwtyILC6xmoL9QaPlt1H+qKsCb2vwNTCf8lf2S3x67fBehwR0iKF99PKXaZ3P7fGITF+CRh7/9dwCNPeX7ARQpCGRj3pjOgok6ZS/2mUynp8G4uhLVuAIEjReIRA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9HnrUeAFmuT2xinffk7OnKE5wPUIxIJOXcOQt5s5uEE=; b=wUIFFUoUkDiXBNqXGWA8eOILqVbuM0osp46I9q1FlnTICX72uU84hOw0uXaTfdjCB5pSIY/uG2/waP7uXCZcQ1hvo2FiRjnpc96//shvOOgQzqxZO8x4MBVLA0OgNwP/mzTjHfdDG1SX5/dvEWrXnvT/8IU6amy6a6dfAD4U0oI= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by AS8PR08MB10270.eurprd08.prod.outlook.com (2603:10a6:20b:63c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.8; Thu, 1 Dec 2022 16:29:50 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::bd2a:aff9:b1a0:2fc7]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::bd2a:aff9:b1a0:2fc7%5]) with mapi id 15.20.5880.008; Thu, 1 Dec 2022 16:29:50 +0000 From: Tamar Christina To: Richard Biener CC: Richard Biener , Aldy Hernandez , Jeff Law , "gcc-patches@gcc.gnu.org" , nd , "MacLeod, Andrew" Subject: RE: [PATCH 1/2]middle-end: Add new tbranch optab to add support for bit-test-and-branch operations Thread-Topic: [PATCH 1/2]middle-end: Add new tbranch optab to add support for bit-test-and-branch operations Thread-Index: AQHY7R9cKvcaBRMFXUuPansZrSRGda4pAcQAgAE3DxCAABO8gIABGlewgAAV2wCABO1MAIAJjAtAgAW46YCAGbnYUA== Date: Thu, 1 Dec 2022 16:29:49 +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: AD2AD538B6A8714395F878450A9C0D5E.0 x-checkrecipientchecked: true authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: VI1PR08MB5325:EE_|AS8PR08MB10270:EE_ x-ms-office365-filtering-correlation-id: ba096318-dfef-4d9a-4516-08dad3b9449f nodisclaimer: true x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: AUX6jAzfRs32DV/8QVzXmvtmtI1VPFnO6dr3meQ4ZB56/ttTjT/jDWPwZZof5FiTL4p6dbqutrkmrlmF/YTrkRhOWeVgT7a8YDgD/ElPYS25D7gl4kMp++ZC8K05VerWBLsKKg3VH7112m/pCdMG1xTYsiXWxnN2c1hdt6hoHUsuM3dF3qiMnyOYqQ+1/0Nnl0OT0XpIyOfhWnbg22NAWNDOPFE0YDLNK8mj10gbJhfO3ceADhCjHhTuWd5BUQs34GOmNtWnEtaiP8qBS5OvnrE93CJfbKfqxWpysKVugldeDRuAfKmIl8t5n8wCIu+3gKXxIGRpTRZFyTliAooLkEXmx8rD9dJoKp3reGlC3f/kODUy9M8l+gHa+knkmpkqtOynqFK1MMA5wv0UdOQglTDjenUBtUvlSzhXI1sYItm7NGK70kH2M0A+0IjHeerLVBCrONAiNyhAWgFjv6XzB3mUs6knU3BSoG04BK1XsR4onksJ8ti8usxzwNRtvaLTDr/16iWwoKyQegfAoPGZ84dmtafgMq1hdbooeWtXjSdfx0S01nfRULuQKl4jZ3ECJ7bJ0dVv7apf4NOU3+uw35fzRBVoc3eiBXBWsQwB5eTPilJjDBCPPUlpUcnytjFLVam0/mD3bPFwcEHKI0fZZIZAaNg5eiKDzqR6jijgpAgAM4MBrKd2J7JBDgtrKRzIh0uKvrclcTgu5hDalHQZ1g== x-forefront-antispam-report: 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:(13230022)(4636009)(376002)(346002)(366004)(396003)(39850400004)(136003)(451199015)(2906002)(83380400001)(26005)(66946007)(186003)(8936002)(41300700001)(76116006)(55016003)(33656002)(86362001)(122000001)(6916009)(52536014)(38100700002)(38070700005)(5660300002)(71200400001)(66476007)(66556008)(66446008)(30864003)(8676002)(7696005)(9686003)(6506007)(478600001)(316002)(64756008)(4326008)(54906003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SDZpYkpQNkpOTjZVZFAwUU42Y25PVzBqZVBWeE5mTTdkUXdJMmZ1TDlINEpF?= =?utf-8?B?WGpxWDhLQmF1b2QyYmRFbWJxYVRFTVhjM21uQ2VtT3Jva3BoakxnQnV3c1Jt?= =?utf-8?B?QkFDZjhXTitvdkN3MTN6ejA5azIrZS82WERKeGFHNWVMNmd4U1llTFRPcmV2?= =?utf-8?B?eGlUeHRLUWFJTzBTcGduVDZ5SXZ4Njd4U2pIL2FVZ1AwUGRWYVdLMlFhTVpG?= =?utf-8?B?dEdURGk3N0FIMnFORWc4Qm5VcjI0L1grQzZ0RkVBeUgvWUZhTTJYalpleGpr?= =?utf-8?B?U29rUEs2VG9sSVhIcUJLVDFrYk5MdWZCTjRDaWN1Zk1KY0ZXeVdBNjk0SkVH?= =?utf-8?B?bmU2OUlvcUdLdnFYV3lmMzlGcWtseFJOMHZKKzdpTHZwK25SRXByQjBkRjkv?= =?utf-8?B?MFlYamlMSDRvdnVNTHBXVllmVHljVGVEQnFtd1J3NG1xMHdnVGNYVE9mTEZN?= =?utf-8?B?RTFQK2dRaHBLSC9QWUc1UzUzMjErbzc2ckRta0tzMTd5UlpuMGZ3d1lhR0k3?= =?utf-8?B?QUFtRG9HekEwTFB2Wk96eW1qQUJZUHR1aTJEcXA5M2hSTExYdzNUdC9DWG1P?= =?utf-8?B?aDRtYmwvOUdIK2x6UStYM0RtL2dTZ0QzZ0VEWDlXcFNiZFRwdS9KMjY3WTQx?= =?utf-8?B?ekNkZTBDNVN3SExuMUlLTmZ5TGtJRUN5dWVUY0c1MmZsN2NSblNQLzdvMitJ?= =?utf-8?B?U1NHYTJ1bWt3Nm94M2djdTc2R015d2pickdRcW9NOXBjVlh3ZHQ5YVl4V0NI?= =?utf-8?B?eUMrWlFkS3E3aE1sWi9RdGMyZGRFaXZNaDlxSHE3dHo3ZnhPRHdPakY0T1dG?= =?utf-8?B?ZTNyZzV4T2dBeFpVTWRNWXhHS0dJS0pWUjQ0VzhvMnNmZEdpT0x2YTdheStz?= =?utf-8?B?VmZSV3ZZQnJOQ1NpWTUva1J5aTExSVpub3gxZTNhc0dsd3BrOWlRRmVBei84?= =?utf-8?B?ZmxLNFppZ3E4ZWZnWXdnNTMxVEVNeVZKY3c0ZHpnZWJiOUF5YXVGbGpYNzFy?= =?utf-8?B?Zko0WXJnc2NreHNZMFg3ZEJ3c2hrcCtJSW9xdVQ0U0JLUkJoY3hQQkZaRGJi?= =?utf-8?B?SXRTRUpwaWNPN3krQnRHb3RiMjZxdHpvbUJUaWhmSzdPRitvaHEwY1FjTFV2?= =?utf-8?B?a1RsZUhiclloUUVVbkNMbGVkOVYxbWRoSFV4NXNmQ3crNExGM1dEc2dMVEp5?= =?utf-8?B?R1RsT0FUYlZwU1pXN2gxanZGWmZWRFBua0o0MGNOSEh4RjJocHN4dE9KZG11?= =?utf-8?B?Nzh4UmU5TXZXVDBpdVUxdUpHRDJIOGtQb1cwVDE5c2crVUJMLzRjb21UZ0Ix?= =?utf-8?B?bG1BL0dLL2tkMFFyeE1iVWlBVEZ5Ync0dlErNUFVUmh0MGtYU2pzTEZvci9L?= =?utf-8?B?SXZTNkpmUkduZmRXNEw1SWxVdG1wRVlKZm9CZ3lZcGxLSGdkSGpJUVF3TGFK?= =?utf-8?B?WTE0NjFGZG0xN2JiNkwxdkZ0eHQ2dHRUVmhGbFByVll5ZnBPSTZSU1pVNjlJ?= =?utf-8?B?NWwzN25DMlVOUVVISGxTRUtNclpSWUloVW4yN1JIcExRQnA0YXZnNGdpTlRk?= =?utf-8?B?c0RYZFlmTXBQTHhmL1VFVzJ1UEY5VjRFNzk5YzhveGJGZnR2d2NNZWlQZ1Zy?= =?utf-8?B?MWhZWjhBVU1scURQSFNkN003TkVZelNyT1NaSGtTU0dRMmd3YUtVb1NCU0M0?= =?utf-8?B?V1FST3BEYU5xeUdIOVlsdUFTOHJsK1lTRGo4a2pPK1ZRTGhjcGdhaGxHS3c4?= =?utf-8?B?ZDhYQytTNzhEWjBKbnNISU4vZCtvTXA5Y2E5dTVlUFRXR3Fyejg3TzZUWERY?= =?utf-8?B?aklTSElxdnBaRVkzVWNmVFI2MTBTdUUrelA2Rk04M3BnYXdva0ZLZFdsbGpj?= =?utf-8?B?Qk1PNUhYVUtiQUoxd1B1MStva21xaGVWL3NCWUJ5OXhxaGwxYzNZZlVxSExv?= =?utf-8?B?ZVByV0kvUXN3YXVDVzlVNG5Nb2tZUlJWbU40YTNiTTljN2x6V1YwdTNDVmJN?= =?utf-8?B?WEdYOS9uN2MyZ0ovM3VHanRjTG4veUJPamZ1N0VST2E3Tks4MWpVN1VqVnVh?= =?utf-8?B?cGJLalRKMS9nWEE1TUMrdm4xYSs1SUs1QWVTc2hNUEJsMWphdWtPNkxHNVNy?= =?utf-8?Q?xdr8JKMV7kB9jb3Cnril1C+T8?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: VI1PR08MB5325.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ba096318-dfef-4d9a-4516-08dad3b9449f X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Dec 2022 16:29:49.9888 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: N2wtLoB+l1mX+6m1th8nZbzCkDEk9BmssMg4y1Jhgq+ga3l8YikW3izSMjCzdfqq8qXZthfUQpAyct3sZin+Nw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB10270 X-Spam-Status: No, score=-10.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,KAM_LOTSOFHASH,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,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: PiA+ICsvKiBDaGVjayB0byBzZWUgaWYgdGhlIHN1cHBsaWVkIGNvbXBhcmlzb24gaW4gUFRFU1Qg Y2FuIGJlIHBlcmZvcm1lZCBhcyBhDQo+ID4gKyAgIGJpdC10ZXN0LWFuZC1icmFuY2ggaW5zdGVh ZC4gIFZBTCBtdXN0IGNvbnRhaW4gdGhlIG9yaWdpbmFsIHRyZWUNCj4gPiArICAgZXhwcmVzc2lv biBvZiB0aGUgbm9uLXplcm8gb3BlcmFuZCB3aGljaCB3aWxsIGJlIHVzZWQgdG8gcmV3cml0ZSB0 aGUNCj4gPiArICAgY29tcGFyaXNvbiBpbiBQVEVTVC4NCj4gPiArDQo+ID4gKyAgIFJldHVybnMg VFJVRSBpZiBvcGVyYXRpb24gc3VjY2VlZHMgYW5kIHJldHVybnMgdXBkYXRlZCBQTU9ERSBhbmQN Cj4gUFRFU1QsDQo+ID4gKyAgIGVsc2UgRkFMU0UuICAqLw0KPiA+ICsNCj4gPiArZW51bSBpbnNu X2NvZGUNCj4gPiArc3RhdGljIHZhbGlkYXRlX3Rlc3RfYW5kX2JyYW5jaCAodHJlZSB2YWwsIHJ0 eCAqcHRlc3QsIG1hY2hpbmVfbW9kZQ0KPiA+ICsqcG1vZGUpIHsNCj4gPiArICBpZiAoIXZhbCB8 fCBUUkVFX0NPREUgKHZhbCkgIT0gU1NBX05BTUUpDQo+ID4gKyAgICByZXR1cm4gQ09ERV9GT1Jf bm90aGluZzsNCj4gPiArDQo+ID4gKyAgbWFjaGluZV9tb2RlIG1vZGUgPSBUWVBFX01PREUgKFRS RUVfVFlQRSAodmFsKSk7ICBydHggdGVzdCA9DQo+ID4gKyAqcHRlc3Q7DQo+ID4gKw0KPiA+ICsg IGlmIChHRVRfQ09ERSAodGVzdCkgIT0gRVEgJiYgR0VUX0NPREUgKHRlc3QpICE9IE5FKQ0KPiA+ ICsgICAgcmV0dXJuIENPREVfRk9SX25vdGhpbmc7DQo+ID4gKw0KPiA+ICsgIC8qIElmIHRoZSB0 YXJnZXQgc3VwcG9ydHMgdGhlIHRlc3RiaXQgY29tcGFyaXNvbiBkaXJlY3RseSwgZ3JlYXQuDQo+ ID4gKyAqLyAgYXV0byBpY29kZSA9IGRpcmVjdF9vcHRhYl9oYW5kbGVyICh0YnJhbmNoX29wdGFi LCBtb2RlKTsgIGlmDQo+ID4gKyAoaWNvZGUgPT0gQ09ERV9GT1Jfbm90aGluZykNCj4gPiArICAg IHJldHVybiBpY29kZTsNCj4gPiArDQo+ID4gKyAgaWYgKHRyZWVfemVyb19vbmVfdmFsdWVkX3Ag KHZhbCkpDQo+ID4gKyAgICB7DQo+ID4gKyAgICAgIGF1dG8gcG9zID0gQllURVNfQklHX0VORElB TiA/IEdFVF9NT0RFX0JJVFNJWkUgKG1vZGUpIC0gMSA6IDA7DQo+IA0KPiBEb2VzIHRoaXMgd29y ayBmb3IgQllURVNfQklHX0VORElBTiAmJiAhV09SRFNfQklHX0VORElBTiBhbmQgbW9kZQ0KPiA+ IHdvcmRfbW9kZT8NCj4gDQoNCkl0IGRvZXMgbm93LiBJbiB0aGlzIHBhcnRpY3VsYXIgY2FzZSBh bGwgdGhhdCBtYXR0ZXJzIGlzIHRoZSBiaXQgb3JkZXJpbmcsIHNvIEkndmUgY2hhbmdlZA0KSXQg dG8gQklUU19CSUdfRU5ESUFOLg0KDQpBbHNvIGR1cmluZyB0aGUgcmV2aWV3IG9mIHRoZSBBQXJj aDY0IG9wdGFiIFJpY2hhcmQgU2FuZGlmb3JkIHdhbnRlZCBtZSB0byBzcGxpdCB0aGUNCm9wdGFi cyBhcGFydCBpbnRvIHR3by4gIFRoZSByZWFzb24gaXMgdGhhdCBhIG1hdGNoX29wZXJhdG9yIHN0 aWxsIGdldHMgdGhlIGZ1bGwgUlRMLg0KDQpJbiB0aGUgY2FzZSBvZiBhIHRicmFuY2ggdGhlIGZ1 bGwgUlRMIGhhcyBhbiBpbnZhbGlkIGNvbXBhcmlzb24sIHNvIGlmIGEgdGFyZ2V0IGRvZXNuJ3Qg aW1wbGVtZW50DQp0aGUgaG9vayBjb3JyZWN0bHkgdGhpcyB3b3VsZCBsZWFkIHRvIGluY29ycmVj dCBjb2RlLiAgV2UndmUgbm93IG1vdmVkIHRoZSBvcGVyYXRvciBhcyBwYXJ0IG9mDQp0aGUgbmFt ZSBpdHNlbGYgdG8gYXZvaWQgdGhpcy4NCg0KQm9vdHN0cmFwcGVkIFJlZ3Rlc3RlZCBvbiBhYXJj aDY0LW5vbmUtbGludXgtZ251IGFuZCBubyBpc3N1ZXMuDQoNCk9rIGZvciBtYXN0ZXI/DQoNClRo YW5rcywNClRhbWFyDQoNCmdjYy9DaGFuZ2VMb2c6DQoNCgkqIGRvanVtcC5jYyAoZG9fanVtcCk6 IFBhc3MgYWxvbmcgdmFsdWUuDQoJKGRvX2p1bXBfYnlfcGFydHNfZ3JlYXRlcl9ydHgpOiBMaWtl d2lzZS4NCgkoZG9fanVtcF9ieV9wYXJ0c196ZXJvX3J0eCk6IExpa2V3aXNlLg0KCShkb19qdW1w X2J5X3BhcnRzX2VxdWFsaXR5X3J0eCk6IExpa2V3aXNlLg0KCShkb19jb21wYXJlX3J0eF9hbmRf anVtcCk6IExpa2V3aXNlLg0KCShkb19jb21wYXJlX2FuZF9qdW1wKTogTGlrZXdpc2UuDQoJKiBk b2p1bXAuaCAoZG9fY29tcGFyZV9ydHhfYW5kX2p1bXApOiBOZXcuDQoJKiBvcHRhYnMuY2MgKGVt aXRfY21wX2FuZF9qdW1wX2luc25fMSk6IFJlZmFjdG9yIHRvIHRha2Ugb3B0YWIgdG8gY2hlY2su DQoJKHZhbGlkYXRlX3Rlc3RfYW5kX2JyYW5jaCk6IE5ldy4NCgkoZW1pdF9jbXBfYW5kX2p1bXBf aW5zbnMpOiBPcHRpb2JhbGx5IHRha2UgYSB2YWx1ZSwgYW5kIHdoZW4gdmFsdWUgaXMNCglzdXBw bGllZCB0aGVuIGNoZWNrIGlmIGl0J3Mgc3VpdGFibGUgZm9yIHRicmFuY2guDQoJKiBvcHRhYnMu ZGVmICh0YnJhbmNoX2VxJGE0LCB0YnJhbmNoX25lJGE0KTogTmV3Lg0KCSogZG9jL21kLnRleGkg KHRicmFuY2hfQHZhcntvcH1AdmFye21vZGV9NCk6IERvY3VtZW50IGl0Lg0KCSogb3B0YWJzLmgg KGVtaXRfY21wX2FuZF9qdW1wX2luc25zKToNCgkqIHRyZWUuaCAodHJlZV96ZXJvX29uZV92YWx1 ZWRfcCk6IE5ldy4NCg0KLS0tIGlubGluZSBjb3B5IG9mIHBhdGNoIC0tLQ0KDQpkaWZmIC0tZ2l0 IGEvZ2NjL2RvYy9tZC50ZXhpIGIvZ2NjL2RvYy9tZC50ZXhpDQppbmRleCBkMGE3MWVjYmI4MDZk ZTNhNjU2NGM2ZmZlOTczZmVjNWRhNWM1OTdiLi5jNmM0YjEzZDc1NmRlMjgwNzhhMGE3Nzk4NzZh MDBjNjE0MjQ2OTE0IDEwMDY0NA0KLS0tIGEvZ2NjL2RvYy9tZC50ZXhpDQorKysgYi9nY2MvZG9j L21kLnRleGkNCkBAIC02OTY0LDYgKzY5NjQsMTQgQEAgY2FzZSwgeW91IGNhbiBhbmQgc2hvdWxk IG1ha2Ugb3BlcmFuZCAxJ3MgcHJlZGljYXRlIHJlamVjdCBzb21lIG9wZXJhdG9ycw0KIGluIHRo ZSBAc2FtcHtjc3RvcmVAdmFye21vZGV9NH0gcGF0dGVybiwgb3IgcmVtb3ZlIHRoZSBwYXR0ZXJu IGFsdG9nZXRoZXINCiBmcm9tIHRoZSBtYWNoaW5lIGRlc2NyaXB0aW9uLg0KIA0KK0BjaW5kZXgg QGNvZGV7dGJyYW5jaF9AdmFye29wfUB2YXJ7bW9kZX00fSBpbnN0cnVjdGlvbiBwYXR0ZXJuDQor QGl0ZW0gQHNhbXB7dGJyYW5jaF9AdmFye29wfUB2YXJ7bW9kZX00fQ0KK0NvbmRpdGlvbmFsIGJy YW5jaCBpbnN0cnVjdGlvbiBjb21iaW5lZCB3aXRoIGEgYml0IHRlc3QtYW5kLWNvbXBhcmUNCitp bnN0cnVjdGlvbi4gT3BlcmFuZCAwIGlzIGEgY29tcGFyaXNvbiBvcGVyYXRvci4gIE9wZXJhbmQg MSBpcyB0aGUNCitvcGVyYW5kIG9mIHRoZSBjb21wYXJpc29uLiBPcGVyYW5kIDIgaXMgdGhlIGJp dCBwb3NpdGlvbiBvZiBPcGVyYW5kIDEgdG8gdGVzdC4NCitPcGVyYW5kIDMgaXMgdGhlIEBjb2Rl e2NvZGVfbGFiZWx9IHRvIGp1bXAgdG8uIEB2YXJ7b3B9IGlzIG9uZSBvZiBAdmFye2VxfSBvcg0K K0B2YXJ7bmV9Lg0KKw0KIEBjaW5kZXggQGNvZGV7Y2JyYW5jaEB2YXJ7bW9kZX00fSBpbnN0cnVj dGlvbiBwYXR0ZXJuDQogQGl0ZW0gQHNhbXB7Y2JyYW5jaEB2YXJ7bW9kZX00fQ0KIENvbmRpdGlv bmFsIGJyYW5jaCBpbnN0cnVjdGlvbiBjb21iaW5lZCB3aXRoIGEgY29tcGFyZSBpbnN0cnVjdGlv bi4NCmRpZmYgLS1naXQgYS9nY2MvZG9qdW1wLmggYi9nY2MvZG9qdW1wLmgNCmluZGV4IGUzNzlj Y2ViMzRiYjE3NjVjYjU3NTYzNmU0YzA1YjYxNTAxZmMyY2YuLmQxZDc5YzQ5MGM0MjBhODA1ZmU0 OGQ1ODc0MGE3OWMxZjI1ZmI4MzkgMTAwNjQ0DQotLS0gYS9nY2MvZG9qdW1wLmgNCisrKyBiL2dj Yy9kb2p1bXAuaA0KQEAgLTcxLDYgKzcxLDEwIEBAIGV4dGVybiB2b2lkIGp1bXBpZm5vdCAodHJl ZSBleHAsIHJ0eF9jb2RlX2xhYmVsICpsYWJlbCwNCiBleHRlcm4gdm9pZCBqdW1waWZub3RfMSAo ZW51bSB0cmVlX2NvZGUsIHRyZWUsIHRyZWUsIHJ0eF9jb2RlX2xhYmVsICosDQogCQkJIHByb2Zp bGVfcHJvYmFiaWxpdHkpOw0KIA0KK2V4dGVybiB2b2lkIGRvX2NvbXBhcmVfcnR4X2FuZF9qdW1w IChydHgsIHJ0eCwgZW51bSBydHhfY29kZSwgaW50LCB0cmVlLA0KKwkJCQkgICAgIG1hY2hpbmVf bW9kZSwgcnR4LCBydHhfY29kZV9sYWJlbCAqLA0KKwkJCQkgICAgIHJ0eF9jb2RlX2xhYmVsICos IHByb2ZpbGVfcHJvYmFiaWxpdHkpOw0KKw0KIGV4dGVybiB2b2lkIGRvX2NvbXBhcmVfcnR4X2Fu ZF9qdW1wIChydHgsIHJ0eCwgZW51bSBydHhfY29kZSwgaW50LA0KIAkJCQkgICAgIG1hY2hpbmVf bW9kZSwgcnR4LCBydHhfY29kZV9sYWJlbCAqLA0KIAkJCQkgICAgIHJ0eF9jb2RlX2xhYmVsICos IHByb2ZpbGVfcHJvYmFiaWxpdHkpOw0KZGlmZiAtLWdpdCBhL2djYy9kb2p1bXAuY2MgYi9nY2Mv ZG9qdW1wLmNjDQppbmRleCAyYWYwY2QxYWNhM2I2YWYxM2Q1ZDg3OTkwOTRlZTkzZjE4MDIyMjk2 Li4xOTAzMjRmMzZmMWEzMTk5MGY4YzQ5YmM4YzBmNDVjMjNkYTVjMzFlIDEwMDY0NA0KLS0tIGEv Z2NjL2RvanVtcC5jYw0KKysrIGIvZ2NjL2RvanVtcC5jYw0KQEAgLTYxOSw3ICs2MTksNyBAQCBk b19qdW1wICh0cmVlIGV4cCwgcnR4X2NvZGVfbGFiZWwgKmlmX2ZhbHNlX2xhYmVsLA0KIAl9DQog ICAgICAgZG9fY29tcGFyZV9ydHhfYW5kX2p1bXAgKHRlbXAsIENPTlNUMF9SVFggKEdFVF9NT0RF ICh0ZW1wKSksDQogCQkJICAgICAgIE5FLCBUWVBFX1VOU0lHTkVEIChUUkVFX1RZUEUgKGV4cCkp LA0KLQkJCSAgICAgICBHRVRfTU9ERSAodGVtcCksIE5VTExfUlRYLA0KKwkJCSAgICAgICBleHAs IEdFVF9NT0RFICh0ZW1wKSwgTlVMTF9SVFgsDQogCQkJICAgICAgIGlmX2ZhbHNlX2xhYmVsLCBp Zl90cnVlX2xhYmVsLCBwcm9iKTsNCiAgICAgfQ0KIA0KQEAgLTY4Nyw3ICs2ODcsNyBAQCBkb19q dW1wX2J5X3BhcnRzX2dyZWF0ZXJfcnR4IChzY2FsYXJfaW50X21vZGUgbW9kZSwgaW50IHVuc2ln bmVkcCwgcnR4IG9wMCwNCiANCiAgICAgICAvKiBBbGwgYnV0IGhpZ2gtb3JkZXIgd29yZCBtdXN0 IGJlIGNvbXBhcmVkIGFzIHVuc2lnbmVkLiAgKi8NCiAgICAgICBkb19jb21wYXJlX3J0eF9hbmRf anVtcCAob3AwX3dvcmQsIG9wMV93b3JkLCBjb2RlLCAodW5zaWduZWRwIHx8IGkgPiAwKSwNCi0J CQkgICAgICAgd29yZF9tb2RlLCBOVUxMX1JUWCwgTlVMTCwgaWZfdHJ1ZV9sYWJlbCwNCisJCQkg ICAgICAgTlVMTCwgd29yZF9tb2RlLCBOVUxMX1JUWCwgTlVMTCwgaWZfdHJ1ZV9sYWJlbCwNCiAJ CQkgICAgICAgcHJvYik7DQogDQogICAgICAgLyogRW1pdCBvbmx5IG9uZSBjb21wYXJpc29uIGZv ciAwLiAgRG8gbm90IGVtaXQgdGhlIGxhc3QgY29uZCBqdW1wLiAgKi8NCkBAIC02OTUsOCArNjk1 LDggQEAgZG9fanVtcF9ieV9wYXJ0c19ncmVhdGVyX3J0eCAoc2NhbGFyX2ludF9tb2RlIG1vZGUs IGludCB1bnNpZ25lZHAsIHJ0eCBvcDAsDQogCWJyZWFrOw0KIA0KICAgICAgIC8qIENvbnNpZGVy IGxvd2VyIHdvcmRzIG9ubHkgaWYgdGhlc2UgYXJlIGVxdWFsLiAgKi8NCi0gICAgICBkb19jb21w YXJlX3J0eF9hbmRfanVtcCAob3AwX3dvcmQsIG9wMV93b3JkLCBORSwgdW5zaWduZWRwLCB3b3Jk X21vZGUsDQotCQkJICAgICAgIE5VTExfUlRYLCBOVUxMLCBpZl9mYWxzZV9sYWJlbCwNCisgICAg ICBkb19jb21wYXJlX3J0eF9hbmRfanVtcCAob3AwX3dvcmQsIG9wMV93b3JkLCBORSwgdW5zaWdu ZWRwLCBOVUxMLA0KKwkJCSAgICAgICB3b3JkX21vZGUsIE5VTExfUlRYLCBOVUxMLCBpZl9mYWxz ZV9sYWJlbCwNCiAJCQkgICAgICAgcHJvYi5pbnZlcnQgKCkpOw0KICAgICB9DQogDQpAQCAtNzU1 LDcgKzc1NSw3IEBAIGRvX2p1bXBfYnlfcGFydHNfemVyb19ydHggKHNjYWxhcl9pbnRfbW9kZSBt b2RlLCBydHggb3AwLA0KIA0KICAgaWYgKHBhcnQgIT0gMCkNCiAgICAgew0KLSAgICAgIGRvX2Nv bXBhcmVfcnR4X2FuZF9qdW1wIChwYXJ0LCBjb25zdDBfcnR4LCBFUSwgMSwgd29yZF9tb2RlLA0K KyAgICAgIGRvX2NvbXBhcmVfcnR4X2FuZF9qdW1wIChwYXJ0LCBjb25zdDBfcnR4LCBFUSwgMSwg TlVMTCwgd29yZF9tb2RlLA0KIAkJCSAgICAgICBOVUxMX1JUWCwgaWZfZmFsc2VfbGFiZWwsIGlm X3RydWVfbGFiZWwsIHByb2IpOw0KICAgICAgIHJldHVybjsNCiAgICAgfQ0KQEAgLTc2Niw3ICs3 NjYsNyBAQCBkb19qdW1wX2J5X3BhcnRzX3plcm9fcnR4IChzY2FsYXJfaW50X21vZGUgbW9kZSwg cnR4IG9wMCwNCiANCiAgIGZvciAoaSA9IDA7IGkgPCBud29yZHM7IGkrKykNCiAgICAgZG9fY29t cGFyZV9ydHhfYW5kX2p1bXAgKG9wZXJhbmRfc3Vid29yZF9mb3JjZSAob3AwLCBpLCBtb2RlKSwN Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0MF9ydHgsIEVRLCAxLCB3b3JkX21v ZGUsIE5VTExfUlRYLA0KKwkJCSAgICAgY29uc3QwX3J0eCwgRVEsIDEsIE5VTEwsIHdvcmRfbW9k ZSwgTlVMTF9SVFgsDQogCQkJICAgICBpZl9mYWxzZV9sYWJlbCwgTlVMTCwgcHJvYik7DQogDQog ICBpZiAoaWZfdHJ1ZV9sYWJlbCkNCkBAIC04MDksOCArODA5LDggQEAgZG9fanVtcF9ieV9wYXJ0 c19lcXVhbGl0eV9ydHggKHNjYWxhcl9pbnRfbW9kZSBtb2RlLCBydHggb3AwLCBydHggb3AxLA0K IA0KICAgZm9yIChpID0gMDsgaSA8IG53b3JkczsgaSsrKQ0KICAgICBkb19jb21wYXJlX3J0eF9h bmRfanVtcCAob3BlcmFuZF9zdWJ3b3JkX2ZvcmNlIChvcDAsIGksIG1vZGUpLA0KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb3BlcmFuZF9zdWJ3b3JkX2ZvcmNlIChvcDEsIGksIG1vZGUp LA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVEsIDAsIHdvcmRfbW9kZSwgTlVMTF9S VFgsDQorCQkJICAgICBvcGVyYW5kX3N1YndvcmRfZm9yY2UgKG9wMSwgaSwgbW9kZSksDQorCQkJ ICAgICBFUSwgMCwgTlVMTCwgd29yZF9tb2RlLCBOVUxMX1JUWCwNCiAJCQkgICAgIGlmX2ZhbHNl X2xhYmVsLCBOVUxMLCBwcm9iKTsNCiANCiAgIGlmIChpZl90cnVlX2xhYmVsKQ0KQEAgLTk2Miw2 ICs5NjIsMjMgQEAgZG9fY29tcGFyZV9ydHhfYW5kX2p1bXAgKHJ0eCBvcDAsIHJ0eCBvcDEsIGVu dW0gcnR4X2NvZGUgY29kZSwgaW50IHVuc2lnbmVkcCwNCiAJCQkgcnR4X2NvZGVfbGFiZWwgKmlm X2ZhbHNlX2xhYmVsLA0KIAkJCSBydHhfY29kZV9sYWJlbCAqaWZfdHJ1ZV9sYWJlbCwNCiAJCQkg cHJvZmlsZV9wcm9iYWJpbGl0eSBwcm9iKQ0KK3sNCisgIGRvX2NvbXBhcmVfcnR4X2FuZF9qdW1w IChvcDAsIG9wMSwgY29kZSwgdW5zaWduZWRwLCBOVUxMLCBtb2RlLCBzaXplLA0KKwkJCSAgaWZf ZmFsc2VfbGFiZWwsIGlmX3RydWVfbGFiZWwsIHByb2IpOw0KK30NCisNCisvKiBMaWtlIGRvX2Nv bXBhcmVfYW5kX2p1bXAgYnV0IGV4cGVjdHMgdGhlIHZhbHVlcyB0byBjb21wYXJlIGFzIHR3byBy dHgncy4NCisgICBUaGUgZGVjaXNpb24gYXMgdG8gc2lnbmVkIG9yIHVuc2lnbmVkIGNvbXBhcmlz b24gbXVzdCBiZSBtYWRlIGJ5IHRoZSBjYWxsZXIuDQorDQorICAgSWYgTU9ERSBpcyBCTEttb2Rl LCBTSVpFIGlzIGFuIFJUWCBnaXZpbmcgdGhlIHNpemUgb2YgdGhlIG9iamVjdHMgYmVpbmcNCisg ICBjb21wYXJlZC4gICovDQorDQordm9pZA0KK2RvX2NvbXBhcmVfcnR4X2FuZF9qdW1wIChydHgg b3AwLCBydHggb3AxLCBlbnVtIHJ0eF9jb2RlIGNvZGUsIGludCB1bnNpZ25lZHAsDQorCQkJIHRy ZWUgdmFsLCBtYWNoaW5lX21vZGUgbW9kZSwgcnR4IHNpemUsDQorCQkJIHJ0eF9jb2RlX2xhYmVs ICppZl9mYWxzZV9sYWJlbCwNCisJCQkgcnR4X2NvZGVfbGFiZWwgKmlmX3RydWVfbGFiZWwsDQor CQkJIHByb2ZpbGVfcHJvYmFiaWxpdHkgcHJvYikNCiB7DQogICBydHggdGVtOw0KICAgcnR4X2Nv ZGVfbGFiZWwgKmR1bW15X2xhYmVsID0gTlVMTDsNCkBAIC0xMTc3LDggKzExOTQsMTAgQEAgZG9f Y29tcGFyZV9ydHhfYW5kX2p1bXAgKHJ0eCBvcDAsIHJ0eCBvcDEsIGVudW0gcnR4X2NvZGUgY29k ZSwgaW50IHVuc2lnbmVkcCwNCiAJCSAgICB9DQogCQkgIGVsc2UNCiAJCSAgICBkZXN0X2xhYmVs ID0gaWZfZmFsc2VfbGFiZWw7DQotICAgICAgICAgICAgICAgICAgZG9fY29tcGFyZV9ydHhfYW5k X2p1bXAgKG9wMCwgb3AxLCBmaXJzdF9jb2RlLCB1bnNpZ25lZHAsIG1vZGUsDQotCQkJCQkgICBz aXplLCBkZXN0X2xhYmVsLCBOVUxMLCBmaXJzdF9wcm9iKTsNCisNCisJCSAgZG9fY29tcGFyZV9y dHhfYW5kX2p1bXAgKG9wMCwgb3AxLCBmaXJzdF9jb2RlLCB1bnNpZ25lZHAsDQorCQkJCQkgICB2 YWwsIG1vZGUsIHNpemUsIGRlc3RfbGFiZWwsIE5VTEwsDQorCQkJCQkgICBmaXJzdF9wcm9iKTsN CiAJCX0NCiAJICAgICAgLyogRm9yICFhbmRfdGhlbSB3ZSB3YW50IHRvIHNwbGl0Og0KIAkJIGlm ICh4KSBnb3RvIHQ7IC8vIHByb2I7DQpAQCAtMTE5Miw4ICsxMjExLDkgQEAgZG9fY29tcGFyZV9y dHhfYW5kX2p1bXAgKHJ0eCBvcDAsIHJ0eCBvcDEsIGVudW0gcnR4X2NvZGUgY29kZSwgaW50IHVu c2lnbmVkcCwNCiAgICAgICAgICAgICAgIGVsc2UNCiAJCXsNCiAJCSAgcHJvZmlsZV9wcm9iYWJp bGl0eSBmaXJzdF9wcm9iID0gcHJvYi5zcGxpdCAoY3Byb2IpOw0KLQkJICBkb19jb21wYXJlX3J0 eF9hbmRfanVtcCAob3AwLCBvcDEsIGZpcnN0X2NvZGUsIHVuc2lnbmVkcCwgbW9kZSwNCi0JCQkJ CSAgIHNpemUsIE5VTEwsIGlmX3RydWVfbGFiZWwsIGZpcnN0X3Byb2IpOw0KKwkJICBkb19jb21w YXJlX3J0eF9hbmRfanVtcCAob3AwLCBvcDEsIGZpcnN0X2NvZGUsIHVuc2lnbmVkcCwNCisJCQkJ CSAgIHZhbCwgbW9kZSwgc2l6ZSwgTlVMTCwNCisJCQkJCSAgIGlmX3RydWVfbGFiZWwsIGZpcnN0 X3Byb2IpOw0KIAkJICBpZiAob3JpZ19jb2RlID09IE5FICYmIGNhbl9jb21wYXJlX3AgKFVORVEs IG1vZGUsIGNjcF9qdW1wKSkNCiAJCSAgICB7DQogCQkgICAgICAvKiB4ICE9IHkgY2FuIGJlIHNw bGl0IGludG8geCB1bm9yZCB5IHx8IHggbHRndCB5DQpAQCAtMTIxNSw3ICsxMjM1LDcgQEAgZG9f Y29tcGFyZV9ydHhfYW5kX2p1bXAgKHJ0eCBvcDAsIHJ0eCBvcDEsIGVudW0gcnR4X2NvZGUgY29k ZSwgaW50IHVuc2lnbmVkcCwNCiAJICAgIH0NCiAJfQ0KIA0KLSAgICAgIGVtaXRfY21wX2FuZF9q dW1wX2luc25zIChvcDAsIG9wMSwgY29kZSwgc2l6ZSwgbW9kZSwgdW5zaWduZWRwLA0KKyAgICAg IGVtaXRfY21wX2FuZF9qdW1wX2luc25zIChvcDAsIG9wMSwgY29kZSwgc2l6ZSwgbW9kZSwgdW5z aWduZWRwLCB2YWwsDQogCQkJICAgICAgIGlmX3RydWVfbGFiZWwsIHByb2IpOw0KICAgICB9DQog DQpAQCAtMTI4OSw5ICsxMzA5LDkgQEAgZG9fY29tcGFyZV9hbmRfanVtcCAodHJlZSB0cmVlb3Aw LCB0cmVlIHRyZWVvcDEsIGVudW0gcnR4X2NvZGUgc2lnbmVkX2NvZGUsDQogICAgICAgb3AxID0g bmV3X29wMTsNCiAgICAgfQ0KIA0KLSAgZG9fY29tcGFyZV9ydHhfYW5kX2p1bXAgKG9wMCwgb3Ax LCBjb2RlLCB1bnNpZ25lZHAsIG1vZGUsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKCht b2RlID09IEJMS21vZGUpDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZXhwcl9zaXpl ICh0cmVlb3AwKSA6IE5VTExfUlRYKSwNCisgIGRvX2NvbXBhcmVfcnR4X2FuZF9qdW1wIChvcDAs IG9wMSwgY29kZSwgdW5zaWduZWRwLCB0cmVlb3AwLCBtb2RlLA0KKwkJCSAgICgobW9kZSA9PSBC TEttb2RlKQ0KKwkJCSAgICA/IGV4cHJfc2l6ZSAodHJlZW9wMCkgOiBOVUxMX1JUWCksDQogCQkJ ICAgaWZfZmFsc2VfbGFiZWwsIGlmX3RydWVfbGFiZWwsIHByb2IpOw0KIH0NCiANCmRpZmYgLS1n aXQgYS9nY2Mvb3B0YWJzLmNjIGIvZ2NjL29wdGFicy5jYw0KaW5kZXggMzFiMTVmZDNkZjVmYTg4 MTE5ODY3YTIzZDJhYmJlZDEzOWEwNTExNS4uMzAzYjRmZDJkZWY5Mjc4ZGRiYzNkNTg2MTAzYWM4 Mjc0ZTczYTk4MiAxMDA2NDQNCi0tLSBhL2djYy9vcHRhYnMuY2MNCisrKyBiL2djYy9vcHRhYnMu Y2MNCkBAIC00Niw2ICs0Niw4IEBAIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlO RzMuICBJZiBub3Qgc2VlDQogI2luY2x1ZGUgImxpYmZ1bmNzLmgiDQogI2luY2x1ZGUgImludGVy bmFsLWZuLmgiDQogI2luY2x1ZGUgImxhbmdob29rcy5oIg0KKyNpbmNsdWRlICJnaW1wbGUuaCIN CisjaW5jbHVkZSAic3NhLmgiDQogDQogc3RhdGljIHZvaWQgcHJlcGFyZV9mbG9hdF9saWJfY21w IChydHgsIHJ0eCwgZW51bSBydHhfY29kZSwgcnR4ICosDQogCQkJCSAgIG1hY2hpbmVfbW9kZSAq KTsNCkBAIC00NjIzLDcgKzQ2MjUsOCBAQCBwcmVwYXJlX29wZXJhbmQgKGVudW0gaW5zbl9jb2Rl IGljb2RlLCBydHggeCwgaW50IG9wbnVtLCBtYWNoaW5lX21vZGUgbW9kZSwNCiANCiBzdGF0aWMg dm9pZA0KIGVtaXRfY21wX2FuZF9qdW1wX2luc25fMSAocnR4IHRlc3QsIG1hY2hpbmVfbW9kZSBt b2RlLCBydHggbGFiZWwsDQotCQkJICBwcm9maWxlX3Byb2JhYmlsaXR5IHByb2IpDQorCQkJICBk aXJlY3Rfb3B0YWIgY21wX29wdGFiLCBwcm9maWxlX3Byb2JhYmlsaXR5IHByb2IsDQorCQkJICBi b29sIHRlc3RfYnJhbmNoKQ0KIHsNCiAgIG1hY2hpbmVfbW9kZSBvcHRhYl9tb2RlOw0KICAgZW51 bSBtb2RlX2NsYXNzIG1jbGFzczsNCkBAIC00NjMyLDEyICs0NjM1LDE3IEBAIGVtaXRfY21wX2Fu ZF9qdW1wX2luc25fMSAocnR4IHRlc3QsIG1hY2hpbmVfbW9kZSBtb2RlLCBydHggbGFiZWwsDQog DQogICBtY2xhc3MgPSBHRVRfTU9ERV9DTEFTUyAobW9kZSk7DQogICBvcHRhYl9tb2RlID0gKG1j bGFzcyA9PSBNT0RFX0NDKSA/IENDbW9kZSA6IG1vZGU7DQotICBpY29kZSA9IG9wdGFiX2hhbmRs ZXIgKGNicmFuY2hfb3B0YWIsIG9wdGFiX21vZGUpOw0KKyAgaWNvZGUgPSBvcHRhYl9oYW5kbGVy IChjbXBfb3B0YWIsIG9wdGFiX21vZGUpOw0KIA0KICAgZ2NjX2Fzc2VydCAoaWNvZGUgIT0gQ09E RV9GT1Jfbm90aGluZyk7DQotICBnY2NfYXNzZXJ0IChpbnNuX29wZXJhbmRfbWF0Y2hlcyAoaWNv ZGUsIDAsIHRlc3QpKTsNCi0gIGluc24gPSBlbWl0X2p1bXBfaW5zbiAoR0VOX0ZDTiAoaWNvZGUp ICh0ZXN0LCBYRVhQICh0ZXN0LCAwKSwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBYRVhQICh0ZXN0LCAxKSwgbGFiZWwpKTsNCisgIGdjY19hc3NlcnQgKHRlc3Rf YnJhbmNoIHx8IGluc25fb3BlcmFuZF9tYXRjaGVzIChpY29kZSwgMCwgdGVzdCkpOw0KKyAgaWYg KHRlc3RfYnJhbmNoKQ0KKyAgICBpbnNuID0gZW1pdF9qdW1wX2luc24gKEdFTl9GQ04gKGljb2Rl KSAoWEVYUCAodGVzdCwgMCksDQorCQkJCQkgICAgWEVYUCAodGVzdCwgMSksIGxhYmVsKSk7DQor ICBlbHNlDQorICAgIGluc24gPSBlbWl0X2p1bXBfaW5zbiAoR0VOX0ZDTiAoaWNvZGUpICh0ZXN0 LCBYRVhQICh0ZXN0LCAwKSwNCisJCQkJCSAgICBYRVhQICh0ZXN0LCAxKSwgbGFiZWwpKTsNCisN CiAgIGlmIChwcm9iLmluaXRpYWxpemVkX3AgKCkNCiAgICAgICAmJiBwcm9maWxlX3N0YXR1c19m b3JfZm4gKGNmdW4pICE9IFBST0ZJTEVfQUJTRU5UDQogICAgICAgJiYgaW5zbg0KQEAgLTQ2NDcs NiArNDY1NSw2MyBAQCBlbWl0X2NtcF9hbmRfanVtcF9pbnNuXzEgKHJ0eCB0ZXN0LCBtYWNoaW5l X21vZGUgbW9kZSwgcnR4IGxhYmVsLA0KICAgICBhZGRfcmVnX2JyX3Byb2Jfbm90ZSAoaW5zbiwg cHJvYik7DQogfQ0KIA0KKy8qIENoZWNrIHRvIHNlZSBpZiB0aGUgc3VwcGxpZWQgY29tcGFyaXNv biBpbiBQVEVTVCBjYW4gYmUgcGVyZm9ybWVkIGFzIGENCisgICBiaXQtdGVzdC1hbmQtYnJhbmNo IGluc3RlYWQuICBWQUwgbXVzdCBjb250YWluIHRoZSBvcmlnaW5hbCB0cmVlDQorICAgZXhwcmVz c2lvbiBvZiB0aGUgbm9uLXplcm8gb3BlcmFuZCB3aGljaCB3aWxsIGJlIHVzZWQgdG8gcmV3cml0 ZSB0aGUNCisgICBjb21wYXJpc29uIGluIFBURVNULg0KKw0KKyAgIFJldHVybnMgVFJVRSBpZiBv cGVyYXRpb24gc3VjY2VlZHMgYW5kIHJldHVybnMgdXBkYXRlZCBQTU9ERSBhbmQgUFRFU1QsDQor ICAgZWxzZSBGQUxTRS4gICovDQorDQorc3RhdGljIGVudW0gaW5zbl9jb2RlDQordmFsaWRhdGVf dGVzdF9hbmRfYnJhbmNoICh0cmVlIHZhbCwgcnR4ICpwdGVzdCwgbWFjaGluZV9tb2RlICpwbW9k ZSwgb3B0YWIgKnJlcykNCit7DQorICBpZiAoIXZhbCB8fCBUUkVFX0NPREUgKHZhbCkgIT0gU1NB X05BTUUpDQorICAgIHJldHVybiBDT0RFX0ZPUl9ub3RoaW5nOw0KKw0KKyAgbWFjaGluZV9tb2Rl IG1vZGUgPSBUWVBFX01PREUgKFRSRUVfVFlQRSAodmFsKSk7DQorICBydHggdGVzdCA9ICpwdGVz dDsNCisgIGRpcmVjdF9vcHRhYiBvcHRhYjsNCisNCisgIGlmIChHRVRfQ09ERSAodGVzdCkgPT0g RVEpDQorICAgIG9wdGFiID0gdGJyYW5jaF9lcV9vcHRhYjsNCisgIGVsc2UgaWYgKEdFVF9DT0RF ICh0ZXN0KSA9PSBORSkNCisgICAgb3B0YWIgPSB0YnJhbmNoX25lX29wdGFiOw0KKyAgZWxzZQ0K KyAgICByZXR1cm4gQ09ERV9GT1Jfbm90aGluZzsNCisNCisgICpyZXMgPSBvcHRhYjsNCisNCisg IC8qIElmIHRoZSB0YXJnZXQgc3VwcG9ydHMgdGhlIHRlc3RiaXQgY29tcGFyaXNvbiBkaXJlY3Rs eSwgZ3JlYXQuICAqLw0KKyAgYXV0byBpY29kZSA9IGRpcmVjdF9vcHRhYl9oYW5kbGVyIChvcHRh YiwgbW9kZSk7DQorICBpZiAoaWNvZGUgPT0gQ09ERV9GT1Jfbm90aGluZykNCisgICAgcmV0dXJu IGljb2RlOw0KKw0KKyAgaWYgKHRyZWVfemVyb19vbmVfdmFsdWVkX3AgKHZhbCkpDQorICAgIHsN CisgICAgICBhdXRvIHBvcyA9IEJJVFNfQklHX0VORElBTiA/IEdFVF9NT0RFX0JJVFNJWkUgKG1v ZGUpIC0gMSA6IDA7DQorICAgICAgWEVYUCAodGVzdCwgMSkgPSBnZW5faW50X21vZGUgKHBvcywg bW9kZSk7DQorICAgICAgKnB0ZXN0ID0gdGVzdDsNCisgICAgICAqcG1vZGUgPSBtb2RlOw0KKyAg ICAgIHJldHVybiBpY29kZTsNCisgICAgfQ0KKw0KKyAgd2lkZV9pbnQgd2NzdCA9IGdldF9ub256 ZXJvX2JpdHMgKHZhbCk7DQorICBpZiAod2NzdCA9PSAtMSkNCisgICAgcmV0dXJuIENPREVfRk9S X25vdGhpbmc7DQorDQorICBpbnQgYml0cG9zOw0KKw0KKyAgaWYgKChiaXRwb3MgPSB3aTo6ZXhh Y3RfbG9nMiAod2NzdCkpID09IC0xKQ0KKyAgICByZXR1cm4gQ09ERV9GT1Jfbm90aGluZzsNCisN CisgIGF1dG8gcG9zID0gQklUU19CSUdfRU5ESUFOID8gR0VUX01PREVfQklUU0laRSAobW9kZSkg LSAxIC0gYml0cG9zIDogYml0cG9zOw0KKyAgWEVYUCAodGVzdCwgMSkgPSBnZW5faW50X21vZGUg KHBvcywgbW9kZSk7DQorICAqcHRlc3QgPSB0ZXN0Ow0KKyAgKnBtb2RlID0gbW9kZTsNCisgIHJl dHVybiBpY29kZTsNCit9DQorDQogLyogR2VuZXJhdGUgY29kZSB0byBjb21wYXJlIFggd2l0aCBZ IHNvIHRoYXQgdGhlIGNvbmRpdGlvbiBjb2RlcyBhcmUNCiAgICBzZXQgYW5kIHRvIGp1bXAgdG8g TEFCRUwgaWYgdGhlIGNvbmRpdGlvbiBpcyB0cnVlLiAgSWYgWCBpcyBhDQogICAgY29uc3RhbnQg YW5kIFkgaXMgbm90IGEgY29uc3RhbnQsIHRoZW4gdGhlIGNvbXBhcmlzb24gaXMgc3dhcHBlZCB0 bw0KQEAgLTQ2NjQsMTEgKzQ3MjksMTMgQEAgZW1pdF9jbXBfYW5kX2p1bXBfaW5zbl8xIChydHgg dGVzdCwgbWFjaGluZV9tb2RlIG1vZGUsIHJ0eCBsYWJlbCwNCiAgICBJdCB3aWxsIGJlIHBvdGVu dGlhbGx5IGNvbnZlcnRlZCBpbnRvIGFuIHVuc2lnbmVkIHZhcmlhbnQgYmFzZWQgb24NCiAgICBV TlNJR05FRFAgdG8gc2VsZWN0IGEgcHJvcGVyIGp1bXAgaW5zdHJ1Y3Rpb24uDQogICAgDQotICAg UFJPQiBpcyB0aGUgcHJvYmFiaWxpdHkgb2YganVtcGluZyB0byBMQUJFTC4gICovDQorICAgUFJP QiBpcyB0aGUgcHJvYmFiaWxpdHkgb2YganVtcGluZyB0byBMQUJFTC4gIElmIHRoZSBjb21wYXJp c29uIGlzIGFnYWluc3QNCisgICB6ZXJvIHRoZW4gVkFMIGNvbnRhaW5zIHRoZSBleHByZXNzaW9u IGZyb20gd2hpY2ggdGhlIG5vbi16ZXJvIFJUTCBpcw0KKyAgIGRlcml2ZWQuICAqLw0KIA0KIHZv aWQNCiBlbWl0X2NtcF9hbmRfanVtcF9pbnNucyAocnR4IHgsIHJ0eCB5LCBlbnVtIHJ0eF9jb2Rl IGNvbXBhcmlzb24sIHJ0eCBzaXplLA0KLQkJCSBtYWNoaW5lX21vZGUgbW9kZSwgaW50IHVuc2ln bmVkcCwgcnR4IGxhYmVsLA0KKwkJCSBtYWNoaW5lX21vZGUgbW9kZSwgaW50IHVuc2lnbmVkcCwg dHJlZSB2YWwsIHJ0eCBsYWJlbCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZmlsZV9w cm9iYWJpbGl0eSBwcm9iKQ0KIHsNCiAgIHJ0eCBvcDAgPSB4LCBvcDEgPSB5Ow0KQEAgLTQ2OTMs MTAgKzQ3NjAsMzQgQEAgZW1pdF9jbXBfYW5kX2p1bXBfaW5zbnMgKHJ0eCB4LCBydHggeSwgZW51 bSBydHhfY29kZSBjb21wYXJpc29uLCBydHggc2l6ZSwNCiANCiAgIHByZXBhcmVfY21wX2luc24g KG9wMCwgb3AxLCBjb21wYXJpc29uLCBzaXplLCB1bnNpZ25lZHAsIE9QVEFCX0xJQl9XSURFTiwN CiAJCSAgICAmdGVzdCwgJm1vZGUpOw0KLSAgZW1pdF9jbXBfYW5kX2p1bXBfaW5zbl8xICh0ZXN0 LCBtb2RlLCBsYWJlbCwgcHJvYik7DQorDQorICAvKiBDaGVjayBpZiB3ZSdyZSBjb21wYXJpbmcg YSB0cnV0aCB0eXBlIHdpdGggMCwgYW5kIGlmIHNvIGNoZWNrIGlmDQorICAgICB0aGUgdGFyZ2V0 IHN1cHBvcnRzIHRicmFuY2guICAqLw0KKyAgbWFjaGluZV9tb2RlIHRtb2RlID0gbW9kZTsNCisg IGRpcmVjdF9vcHRhYiBvcHRhYjsNCisgIGlmIChvcDEgPT0gQ09OU1QwX1JUWCAoR0VUX01PREUg KG9wMSkpDQorICAgICAgJiYgdmFsaWRhdGVfdGVzdF9hbmRfYnJhbmNoICh2YWwsICZ0ZXN0LCAm dG1vZGUsDQorCQkJCSAgICZvcHRhYikgIT0gQ09ERV9GT1Jfbm90aGluZykNCisgICAgew0KKyAg ICAgIGVtaXRfY21wX2FuZF9qdW1wX2luc25fMSAodGVzdCwgdG1vZGUsIGxhYmVsLCBvcHRhYiwg cHJvYiwgdHJ1ZSk7DQorICAgICAgcmV0dXJuOw0KKyAgICB9DQorDQorICBlbWl0X2NtcF9hbmRf anVtcF9pbnNuXzEgKHRlc3QsIG1vZGUsIGxhYmVsLCBjYnJhbmNoX29wdGFiLCBwcm9iLCBmYWxz ZSk7DQogfQ0KIA0KLQ0KDQorLyogT3ZlcmxvYWRlZCB2ZXJzaW9uIG9mIGVtaXRfY21wX2FuZF9q dW1wX2luc25zIGluIHdoaWNoIFZBTCBpcyB1bmtub3duLiAgKi8NCisNCit2b2lkDQorZW1pdF9j bXBfYW5kX2p1bXBfaW5zbnMgKHJ0eCB4LCBydHggeSwgZW51bSBydHhfY29kZSBjb21wYXJpc29u LCBydHggc2l6ZSwNCisJCQkgbWFjaGluZV9tb2RlIG1vZGUsIGludCB1bnNpZ25lZHAsIHJ0eCBs YWJlbCwNCisJCQkgcHJvZmlsZV9wcm9iYWJpbGl0eSBwcm9iKQ0KK3sNCisgIGVtaXRfY21wX2Fu ZF9qdW1wX2luc25zICh4LCB5LCBjb21wYXJpc29uLCBzaXplLCBtb2RlLCB1bnNpZ25lZHAsIE5V TEwsDQorCQkJICAgbGFiZWwsIHByb2IpOw0KK30NCisNCisNCiAvKiBFbWl0IGEgbGlicmFyeSBj YWxsIGNvbXBhcmlzb24gYmV0d2VlbiBmbG9hdGluZyBwb2ludCBYIGFuZCBZLg0KICAgIENPTVBB UklTT04gaXMgdGhlIHJ0bCBvcGVyYXRvciB0byBjb21wYXJlIHdpdGggKEVRLCBORSwgR1QsIGV0 Yy4pLiAgKi8NCiANCmRpZmYgLS1naXQgYS9nY2Mvb3B0YWJzLmRlZiBiL2djYy9vcHRhYnMuZGVm DQppbmRleCBhNmRiMjM0MmJlZDZiYWYxM2VjYmQ4NDExMmM4NDMyYzY5NzJlNmZlLi4zMTk5YjA1 ZTkwZDZiOWI5YzZmYjNjMDM1M2RiM2RiMDIzMjFlOTY0IDEwMDY0NA0KLS0tIGEvZ2NjL29wdGFi cy5kZWYNCisrKyBiL2djYy9vcHRhYnMuZGVmDQpAQCAtMjIwLDYgKzIyMCw4IEBAIE9QVEFCX0Qg KHJlbG9hZF9pbl9vcHRhYiwgInJlbG9hZF9pbiRhIikNCiBPUFRBQl9EIChyZWxvYWRfb3V0X29w dGFiLCAicmVsb2FkX291dCRhIikNCiANCiBPUFRBQl9EQyhjYnJhbmNoX29wdGFiLCAiY2JyYW5j aCRhNCIsIENPTVBBUkUpDQorT1BUQUJfRCAodGJyYW5jaF9lcV9vcHRhYiwgInRicmFuY2hfZXEk YTQiKQ0KK09QVEFCX0QgKHRicmFuY2hfbmVfb3B0YWIsICJ0YnJhbmNoX25lJGE0IikNCiBPUFRB Ql9EIChhZGRjY19vcHRhYiwgImFkZCRhY2MiKQ0KIE9QVEFCX0QgKG5lZ2NjX29wdGFiLCAibmVn JGFjYyIpDQogT1BUQUJfRCAobm90Y2Nfb3B0YWIsICJub3QkYWNjIikNCmRpZmYgLS1naXQgYS9n Y2Mvb3B0YWJzLmggYi9nY2Mvb3B0YWJzLmgNCmluZGV4IGNmZDdjNzQyZDJkMjFiMDUzOWY1MjI3 YzIyYTk0ZjMyYzc5M2Q2ZjcuLmNkNTU2MDRiYzNkNDUyZDdlMjhjNTUzMGJiNDc5M2Q0ODE3NjZm NGYgMTAwNjQ0DQotLS0gYS9nY2Mvb3B0YWJzLmgNCisrKyBiL2djYy9vcHRhYnMuaA0KQEAgLTI2 OCw2ICsyNjgsMTAgQEAgZXh0ZXJuIHZvaWQgZW1pdF9jbXBfYW5kX2p1bXBfaW5zbnMgKHJ0eCwg cnR4LCBlbnVtIHJ0eF9jb2RlLCBydHgsDQogCQkJCSAgICAgbWFjaGluZV9tb2RlLCBpbnQsIHJ0 eCwNCiAJCQkJICAgICBwcm9maWxlX3Byb2JhYmlsaXR5IHByb2INCiAJCQkJCT0gcHJvZmlsZV9w cm9iYWJpbGl0eTo6dW5pbml0aWFsaXplZCAoKSk7DQorZXh0ZXJuIHZvaWQgZW1pdF9jbXBfYW5k X2p1bXBfaW5zbnMgKHJ0eCwgcnR4LCBlbnVtIHJ0eF9jb2RlLCBydHgsDQorCQkJCSAgICAgbWFj aGluZV9tb2RlLCBpbnQsIHRyZWUsIHJ0eCwNCisJCQkJICAgICBwcm9maWxlX3Byb2JhYmlsaXR5 IHByb2INCisJCQkJCT0gcHJvZmlsZV9wcm9iYWJpbGl0eTo6dW5pbml0aWFsaXplZCAoKSk7DQog DQogLyogR2VuZXJhdGUgY29kZSB0byBpbmRpcmVjdGx5IGp1bXAgdG8gYSBsb2NhdGlvbiBnaXZl biBpbiB0aGUgcnR4IExPQy4gICovDQogZXh0ZXJuIHZvaWQgZW1pdF9pbmRpcmVjdF9qdW1wIChy dHgpOw0KZGlmZiAtLWdpdCBhL2djYy90cmVlLmggYi9nY2MvdHJlZS5oDQppbmRleCBhODYzZDJl NTBlNWVjYWZhM2Y1ZGE0ZGRhOThkOTYzNzI2MWQwN2E5Li5hYmVkYWE4MGEzOTgzZWJiNmY5YWM3 MzNiMmVhYThkMDM5Njg4ZjBhIDEwMDY0NA0KLS0tIGEvZ2NjL3RyZWUuaA0KKysrIGIvZ2NjL3Ry ZWUuaA0KQEAgLTQ3MjYsNiArNDcyNiw3IEBAIGV4dGVybiB0cmVlIHNpZ25lZF9vcl91bnNpZ25l ZF90eXBlX2ZvciAoaW50LCB0cmVlKTsNCiBleHRlcm4gdHJlZSBzaWduZWRfdHlwZV9mb3IgKHRy ZWUpOw0KIGV4dGVybiB0cmVlIHVuc2lnbmVkX3R5cGVfZm9yICh0cmVlKTsNCiBleHRlcm4gYm9v bCBpc190cnV0aF90eXBlX2ZvciAodHJlZSwgdHJlZSk7DQorZXh0ZXJuIGJvb2wgdHJlZV96ZXJv X29uZV92YWx1ZWRfcCAodHJlZSk7DQogZXh0ZXJuIHRyZWUgdHJ1dGhfdHlwZV9mb3IgKHRyZWUp Ow0KIGV4dGVybiB0cmVlIGJ1aWxkX3BvaW50ZXJfdHlwZV9mb3JfbW9kZSAodHJlZSwgbWFjaGlu ZV9tb2RlLCBib29sKTsNCiBleHRlcm4gdHJlZSBidWlsZF9wb2ludGVyX3R5cGUgKHRyZWUpOw0K