Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lwvRE-0004oA-Ro for pgsql-hackers@arkaria.postgresql.org; Fri, 25 Jun 2021 23:40:45 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lwvRC-000752-9b for pgsql-hackers@arkaria.postgresql.org; Fri, 25 Jun 2021 23:40:42 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lwvRB-00074u-Nk for pgsql-hackers@lists.postgresql.org; Fri, 25 Jun 2021 23:40:42 +0000 Received: from mail-bn7nam10on2055.outbound.protection.outlook.com ([40.107.92.55] helo=NAM10-BN7-obe.outbound.protection.outlook.com) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lwvR6-0007pk-W5 for pgsql-hackers@postgresql.org; Fri, 25 Jun 2021 23:40:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PtQzcugyZ5hvYDdcHMOc2S3lLC0mdrYX1RkWBejm9ybwTT8fdVGsGsXNuUEiI9ORfJ++R7C7Gqlgl5TSYUuYK0tHw+XagP9uz2pwERWuRIsOMib+Jc7eArFWreY5MEaFM6M/mhkrueFOv+v7Cohuuza6vAjBepwS9MLwPhxD4jrTSLrxAUvkouRWQfrtwve5oQYSFT4LBwDbd6gcUX0X50NP17JGTbT2c2PNoVQnNAkyj8FP373rP3n6P/K/d9Dqu1/kqq7pwIY4BiIOrGhwN10Vfo7wUGsCVrKvbiC05kO1qbhVHdsFXHCxnBfn7yogopqIGw3Pp0GoLcoGA3nVxQ== 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=+WyZakfNMIsMD7XxEpsWxknZ9DkQNVCBWCdaAsLiH+E=; b=ishGP1MGy7q/AHebGdnQ8BjCl41zPC1a90qQJ1rJOw6NfACWdkRwYnQdZvAZZ8sDtCsoLNsHu1Qc9omnUUGB4qlVDxSFMGICg/4LQaS8nm2zlbOXrgq8kox+dkiQqJVp2wJDxdgv8jJjxpyYqUsYUCpy99SdEbzM1VN95kj4FWjIQlIw9rREvUCLfZXo6Ki9QRGwrsOTe16PveqJz9y3Ul1If2RPGkP2bft7tp/6++8Nv4dPaklGT/oQkxMZ8cXGUX/Tnwyp+aimkBTc/azdxqOlcvW8xQrTn0CpVefflO1RQ2K3KLKPFOl7rVyj9Uek3gc+7fdQaVUJbCOar7sBiQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vmware.com; dmarc=pass action=none header.from=vmware.com; dkim=pass header.d=vmware.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+WyZakfNMIsMD7XxEpsWxknZ9DkQNVCBWCdaAsLiH+E=; b=0USz1p1ZEfUMgilpZImQWgo/uNWuyKq5k4GOf8P7GI3WPwa0uGXlMgZ7OLtuVB2IDqqg53rY5XLxsHCL8PNWS25Ff17Q6cWmyjKPmnmZGi+ryVTgkdk/LO3h30k6b9m/jW1AcQTEA+uWVHyLJu81nvxTEPbC0S83jpI9V1SFruU= Received: from MWHPR05MB2896.namprd05.prod.outlook.com (2603:10b6:300:65::20) by CO6PR05MB7652.namprd05.prod.outlook.com (2603:10b6:5:341::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.8; Fri, 25 Jun 2021 23:40:33 +0000 Received: from MWHPR05MB2896.namprd05.prod.outlook.com ([fe80::59e1:5f08:31c6:1d3]) by MWHPR05MB2896.namprd05.prod.outlook.com ([fe80::59e1:5f08:31c6:1d3%9]) with mapi id 15.20.4264.022; Fri, 25 Jun 2021 23:40:33 +0000 From: Jacob Champion To: "michael@paquier.xyz" CC: "pgsql-hackers@postgresql.org" Subject: Re: [PATCH] Pull general SASL framework out of SCRAM Thread-Topic: [PATCH] Pull general SASL framework out of SCRAM Thread-Index: AQHXZ7cuih/hnd4520mfiSjUyUJWWashNioAgAQxYQA= Date: Fri, 25 Jun 2021 23:40:33 +0000 Message-ID: <9dc553fe86ba34bff1e0b636c493b527fc7bc030.camel@vmware.com> References: <3d2a6f5d50e741117d6baf83eb67ebf1a8a35a11.camel@vmware.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: user-agent: Evolution 3.36.5-0ubuntu1 authentication-results: paquier.xyz; dkim=none (message not signed) header.d=none;paquier.xyz; dmarc=none action=none header.from=vmware.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a18d0853-e5de-4e13-ee6c-08d93832a00e x-ms-traffictypediagnostic: CO6PR05MB7652: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: FstccqiB81rZIMnkA3PiC+AcEY1tlkBOekYNhoyOIXJw4xGoabfCceO0m5xPhakUq6a4iXbaZPALZYXcE7PJfzcGOqevfKq6UK+nxN03YArO9R7M7al99KGVE79og+bhRvk6iDy9k6aBp/w2UQ+0YffAjC1MFKVFyEytWioCLzOTI12rPUmcRGFDxpsqQVUYKCxLLPH7xuoJgJZKyagbOP2Gr5k59zDSBMhQ4+ftc7g3e51weQkT+pjiR4ZxY/5tAhvoVp39Xft3L1IhCh9Ke/Jx0bc0fjk5w1pfYmevhOoTb8GGyeYrQ/9tUAtsglV6wN0YSekYpLU+DWdp3MDpwsFOJ4RnPBTAFcG2Fu58sXbBjuCfnRcEc1xPLfmAn99Ah1T6YUg3q43mISyN1ANQLcG4QIzUt35H598i3M9YhBHE3qfKNR3GxrTBqDfA/1VoQRzpICL6gTrKPcrtZ15xddqz+cXVBXM9bFK8vVU+VxPr2Wn1GedbUMuTWlEQWGjGYNWbTW7swccIOsbPcibaE4E/yZRUK87mLniOJYOtvv0EM2JRE1X/bPoCIEvc56q2srGbLVrEfkG9dsg5VHqim/lewYxiLu30lOUmLEi5O3bjm9RXXHHbfwgQIjsZNOaNU5eeaLIVK8jAfIcDBQH1uUV75rEcDTd/ni8gURRHUrpdpKxpehkhZiEMsdwXgUzspkJbFv19mdkzDP2bo+JX+A== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR05MB2896.namprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(136003)(376002)(396003)(366004)(346002)(39860400002)(6506007)(2906002)(6916009)(99936003)(66476007)(71200400001)(66446008)(64756008)(83380400001)(86362001)(76116006)(8936002)(66556008)(66946007)(5660300002)(8676002)(66616009)(966005)(186003)(122000001)(6512007)(6486002)(478600001)(36756003)(26005)(2616005)(4326008)(38100700002)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RlBSZmtWNThLOEkrd2wyVHNBTE8zUXRYRUxQS0lNUHd2U3IwV1oxTmJIU25z?= =?utf-8?B?VlhlU0FjZzliSlNybVA3bUtZeU93TDQzYk84TiswZzR0ZEdVK2cvRndJOGtY?= =?utf-8?B?Q2ZmMi9GNHZSblZYY3JIZGZoUGNRa2kzNGJYN09UenpYLzJoa1l6MlFoVmdI?= =?utf-8?B?MXQzRThPYlJlREwrOUVvbEhCWlFlWVlxOGhpQlVEQVo5YUZldGV4eFkwaW52?= =?utf-8?B?cmZuL0ZKeHhoODJHOWFNQ1V5YXRSZlJzaFFPai85RU9Ib09zR0ZLMm1UdDNP?= =?utf-8?B?dmZSbHZIV0pUY1U2VENlOFZHUGNnQlZWbGJlWkhVaTV2eEdOR1Rmc0JCckt5?= =?utf-8?B?K1I2RmpPRml4M1k2dVJJbjZiQXFMWWhSNVRUdDNFVGg5ZXp6WThHVGdzeE5x?= =?utf-8?B?SkVJdmxhQVR1QVM3dU5aZTdpUm1RL3JuSTY5Q0FYSmI1OWl0ZTU4UENCbWNG?= =?utf-8?B?NjhqWjkra0JEbXJkYzBjRXdxOVMrNWREdmUxVm1TKzRhR1RkNEF0ZUR3RG50?= =?utf-8?B?YWhFZnFHQXoxcHdBMWx0N3NHbHB6WkVEeEZpdUwybTIxTXF1RkE3aEg4WjRU?= =?utf-8?B?V1RaUEh3VUxxRlMybkJ2VmZvWGp6S1lKV3BGOUp1Yi8rQ0svUWlmOXhMNngy?= =?utf-8?B?Rm1pM0FjbWNyYkJNWFYwd2dRaHUxeVBURE1tSTJnTjR2T3RHdXJyVHc0Yk10?= =?utf-8?B?SFduRXZ4ZVNvR0s3QjFmYm9Mc1Yydm52dzVmSmhmYlpPOVhwWEk1dkJ0c1ZP?= =?utf-8?B?bW9SelIrd3FEWTU5dTJnckkyMm1pRmxNNVcxMlZkTDNHUDlKZ3dzNHVZNlJH?= =?utf-8?B?bTc3aW1nQ1NSQ2FLNlVUSmNiQk9TRFhnd2JsNlpCZS9tUlhtR3dJakRwK1d4?= =?utf-8?B?NWtsYW9OTm9hODNzaHliZ1Qvd01ublMySjRPN244WU56aWtGV05WVFBnMFF6?= =?utf-8?B?NVRqamhzcmNSRDhoMS9FZ0gzTFIxM3VORkg0ZkRYYU1IWnZKcU5DMFJXYUNw?= =?utf-8?B?MVRnYzcvUjVEMmpSaGM4STB3dTdIcS95ODFWVEpWMnV2T0JTRWFmNFlkVjFs?= =?utf-8?B?RWhCaDVXdENTcDJRYnhoTWVicXIwQmpOLy9sLzVPN1J4N0Y3d2VvaVNJQlha?= =?utf-8?B?ZUJ6Qnp3WlVWZ0hIdmhpRXMwdVQ3dWtmRWUxTkk5dEFWUWlRWlQvS0tNbHZp?= =?utf-8?B?MHlqaXNseVNoUDRSUGlXSGd1R09GbWNtS0pORmN4YlJTSW1ZL2NCYVhwVUpv?= =?utf-8?B?NDdSaXJhbVlvdEM2Y1Y1L2thdnhiSHNBcUplYldmd3VzSXcvejFLZHJURFk4?= =?utf-8?B?Qk1mZUE2WXE1REYyRWVXekNJTW1JemNUbjBvZTNTQXBOWm5sNzdJVkdTc3ZX?= =?utf-8?B?TStyTTVwTVlSd2YvMm02TFRGci9FT3RyWVF4NittcXRsRnBJZlg5S2hLb05L?= =?utf-8?B?UEFwQWlRT09CdjJUdTFJYUVsL1AvYUFvc0Irakt2K2dxV1FSOFNtNXp4RXgz?= =?utf-8?B?QUk2RXBDQTloTGl4bzNncDBtN3dFS1hhcjlrY3d2SGhXWldUWVNBYTNUaUx1?= =?utf-8?B?YW1lTEk4aWcrUEF3d1l3SGJJUW42M3ZkL2JqWUVjc0RUUCs2dzd6M215QUsz?= =?utf-8?B?d2FQWEdHMFZtRzM2TExYTlpEL2tvWHBGa2ZCdFRVWHV1d21aeHJrbEc3RGpB?= =?utf-8?B?dkEyb2E2SjJxYWl6Wk9XK3dLdWkzaTYrQ3pMNW1ZckVsOWp6bk91cnRiaXl0?= =?utf-8?Q?/F6VEEwRMFOlX6H7PLNRu7BVxDPiI7Cntl6wQaB?= x-ms-exchange-transport-forked: True Content-Type: multipart/mixed; boundary="_002_9dc553fe86ba34bff1e0b636c493b527fc7bc030camelvmwarecom_" MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR05MB2896.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a18d0853-e5de-4e13-ee6c-08d93832a00e X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jun 2021 23:40:33.3849 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: yir94Gk7oZF8vJ9kUQww0VIyIXoMJCN4Rc3/clNtcOwfmFImYa7+c2YNBSIjFbn1U9RsSDKm0uixep7EoYA/Og== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO6PR05MB7652 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_9dc553fe86ba34bff1e0b636c493b527fc7bc030camelvmwarecom_ Content-Type: text/plain; charset="utf-8" Content-ID: <5B88868676EA6949B44A479E3DAFA6CC@namprd05.prod.outlook.com> Content-Transfer-Encoding: base64 T24gV2VkLCAyMDIxLTA2LTIzIGF0IDE2OjM4ICswOTAwLCBNaWNoYWVsIFBhcXVpZXIgd3JvdGU6 DQo+IE9uIFR1ZSwgSnVuIDIyLCAyMDIxIGF0IDEwOjM3OjI5UE0gKzAwMDAsIEphY29iIENoYW1w aW9uIHdyb3RlOg0KPiA+IEN1cnJlbnRseSwgdGhlIFNBU0wgbG9naWMgaXMgdGlnaHRseSBjb3Vw bGVkIHRvIHRoZSBTQ1JBTQ0KPiA+IGltcGxlbWVudGF0aW9uLiBUaGlzIHBhdGNoIHVudGFuZ2xl cyB0aGUgdHdvLCBieSBpbnRyb2R1Y2luZyBjYWxsYmFjaw0KPiA+IHN0cnVjdHMgZm9yIGJvdGgg dGhlIGZyb250ZW5kIGFuZCBiYWNrZW5kLg0KPiANCj4gVGhlIGFwcHJvYWNoIHRvIGRlZmluZSBh bmQgaGF2ZSBhIHNldCBjYWxsYmFja3MgZmVlbHMgbmF0dXJhbC4NCg0KR29vZCwgdGhhbmtzIQ0K DQo+ICsvKiBTdGF0dXMgY29kZXMgZm9yIG1lc3NhZ2UgZXhjaGFuZ2UgKi8NCj4gKyNkZWZpbmUg U0FTTF9FWENIQU5HRV9DT05USU5VRSAgICAgMA0KPiArI2RlZmluZSBTQVNMX0VYQ0hBTkdFX1NV Q0NFU1MgICAgICAxDQo+ICsjZGVmaW5lIFNBU0xfRVhDSEFOR0VfRkFJTFVSRSAgICAgIDINCj4g DQo+IEl0IG1heSBiZSBiZXR0ZXIgdG8gcHJlZml4IHRob3NlIHdpdGggUEdfIGFzIHRoZXkgYmVn aW4gdG8gYmUNCj4gcHVibGlzaGVkLg0KDQpBZGRlZCBpbiB2Mi4NCg0KPiArLyogQmFja2VuZCBt ZWNoYW5pc20gQVBJICovDQo+ICt0eXBlZGVmIHZvaWQgICgqcGdfYmVfc2FzbF9tZWNoYW5pc21f ZnVuYykoUG9ydCAqLCBTdHJpbmdJbmZvKTsNCj4gK3R5cGVkZWYgdm9pZCAqKCpwZ19iZV9zYXNs X2luaXRfZnVuYykoUG9ydCAqLCBjb25zdCBjaGFyICosIGNvbnN0DQo+IGNoYXIgKik7DQo+ICt0 eXBlZGVmIGludCAgICgqcGdfYmVfc2FzbF9leGNoYW5nZV9mdW5jKSh2b2lkICosIGNvbnN0IGNo YXIgKiwgaW50LA0KPiBjaGFyICoqLCBpbnQgKiwgY2hhciAqKik7DQo+ICsNCj4gK3R5cGVkZWYg c3RydWN0DQo+ICt7DQo+ICsgICBwZ19iZV9zYXNsX21lY2hhbmlzbV9mdW5jICAgZ2V0X21lY2hh bmlzbXM7DQo+ICsgICBwZ19iZV9zYXNsX2luaXRfZnVuYyAgICAgICAgaW5pdDsNCj4gKyAgIHBn X2JlX3Nhc2xfZXhjaGFuZ2VfZnVuYyAgICBleGNoYW5nZTsNCj4gK30gcGdfYmVfc2FzbF9tZWNo Ow0KPiANCj4gQWxsIHRoaXMgaXMgZ29pbmcgdG8gcmVxdWlyZSBtdWNoIG1vcmUgZG9jdW1lbnRh dGlvbiB0byBleHBsYWluIHdoYXQNCj4gaXMgdGhlIHJvbGUgb2YgdGhvc2UgY2FsbGJhY2tzIGFu ZCB3aGF0IHRoZXkgYXJlIGhlcmUgZm9yLg0KDQpZZXMsIGRlZmluaXRlbHkuIElmIHRoZSBjdXJy ZW50IGFwcHJvYWNoIHNlZW1zIGdlbmVyYWxseSB3b3JrYWJsZSwgSSdsbA0KZ2V0IHN0YXJ0ZWQg b24gdGhhdC4NCg0KPiBBbm90aGVyIHRoaW5nIHRoYXQgaXMgbm90IHRhY2tsZWQgYnkgdGhpcyBw YXRjaCBpcyB0aGUgZm9ybWF0IG9mIHRoZQ0KPiBtZXNzYWdlcyBleGNoYW5nZWQgd2hpY2ggaXMg c29tZXRoaW5nIG9ubHkgaW4gU0NSQU0gbm93LiAgUGVyaGFwcyBpdA0KPiB3b3VsZCBiZSBiZXR0 ZXIgdG8gZXh0cmFjdCB0aGUgc21hbGwtaXNoIHJvdXRpbmVzIGN1cnJlbnRseSBpbg0KPiBmZS1h dXRoLXNjcmFtLmMgYW5kIGF1dGgtc2NyYW0uYyB0aGF0IHdlIHVzZSB0byBncmFiIHZhbHVlcyBh c3NvY2lhdGVkDQo+IHRvIGFuIGF0dHJpYnV0ZSBpbiBhbiBleGNoYW5nZSBtZXNzYWdlIGFuZCBw dXQgdGhlbSBpbiBhIGNlbnRyYWwgcGxhY2UNCj4gbGlrZSBhbiBhdXRoLXNhc2wuYyBhbmQgZmUt YXV0aC1zYXNsLmMuICBUaGlzIG1vdmUgY291bGQgYWxzbyBtYWtlDQo+IHNlbnNlIGZvciB0aGUg ZXhpc2luZyBpbml0IGFuZCBjb250aW51ZSByb3V0aW5lcyBmb3IgU0FTTCBpbg0KPiBmZS1hdXRo LmMuDQoNCldlIGNhbi4gSSByZWNvbW1lbmQgd2FpdGluZyBmb3IgYW5vdGhlciBHUzIgbWVjaGFu aXNtIGltcGxlbWVudGF0aW9uLA0KdGhvdWdoLg0KDQpUaGUgYXR0cmlidXRlL3ZhbHVlIGVuY29k aW5nIGlzIG5vdCBwYXJ0IG9mIGNvcmUgU0FTTCAoc2VlIFsxXSBmb3IgdGhhdA0KUkZDKSwgYW5k IE9BVVRIQkVBUkVSIGlzIG5vdCB0ZWNobmljYWxseSBhIEdTMiBtZWNoYW5pc20gLS0gdGhvdWdo IGl0DQptYWtlcyB1c2Ugb2YgYSB2ZXN0aWdhbCBHUzIgaGVhZGVyIGJsb2NrLCBhcHBhcmVudGx5 IGluIHRoZSBob3BlcyB0aGF0DQpvbmUgZGF5IGl0IG1pZ2h0IGJlY29tZSBvbmUuIFNvIHdlIGNv dWxkIHB1bGwgb3V0IHRoZSBzaW1pbGFyaXRpZXMgbm93LA0KYnV0IEknZCBoYXRlIHRvIGV4dHJh Y3QgdGhlIHdyb25nIGFic3RyYWN0aW9ucyBhbmQgbWFrZSBzb21lb25lIGVsc2UNCnVudGFuZ2xl IGl0IGxhdGVyLg0KDQo+ICtzdGF0aWMgaW50DQo+ICtDaGVja1NDUkFNQXV0aChQb3J0ICpwb3J0 LCBjaGFyICpzaGFkb3dfcGFzcywgY2hhciAqKmxvZ2RldGFpbCkNCj4gK3sNCj4gKyAgIHJldHVy biBTQVNMX2V4Y2hhbmdlKCZwZ19iZV9zY3JhbV9tZWNoLCBwb3J0LCBzaGFkb3dfcGFzcywgbG9n ZGV0YWlsKTsNCj4gK30NCj4gSXQgbWF5IGJlIGNsZWFuZXIgdG8gbGl2ZSB3aXRob3V0IHRoaXMg dGhpbiB3cmFwcGVyLiAgSXQgaXMgYSBiaXQNCj4gc3RyYW5nZSB0byBoYXZlIGEgU0NSQU0gQVBJ IGluIGEgZmlsZSB3aGVyZSB3ZSB3YW50IG1vc3RseSBTQVNMIHRoaW5ncw0KPiAoT2theSwgdWFT Y3JhbSBkb2VzIG5vdCBjb3VudCBhcyB0aGlzIGlzIGFzc2lnbmVkIGFmdGVyIHRoZSBIQkENCj4g bG9va3VwKS4gIE1vdmluZyBhbnkgU0FTTC1yZWxhdGVkIHRoaW5ncyBpbnRvIGEgc2VwYXJhdGUg ZmlsZSBtYXkgYmUgYQ0KPiBjbGVhbmVyIG9wdGlvbiwgZXNwZWNpYWxseSBjb25zaWRlcmluZyB0 aGF0IHdlIGhhdmUgYSBiaXQgbW9yZSB0aGFuDQo+IHRoZSBleGNoYW5nZSBpdHNlbGYsIGxpa2Ug bWVzc2FnZSBoYW5kbGluZy4NCg0KSGVoLCBJIGZpZ3VyZWQgdGhhdCBhdCB+MzUwMCBsaW5lcywg eW91IGFsbCBqdXN0IHJlYWxseSB3YW50ZWQgdGhlDQpDaGVjayogaW1wbGVtZW50YXRpb25zIHRv IGxpdmUgaW4gYXV0aC5jLiA6RA0KDQpJIGNhbiBkZWZpbml0ZWx5IG1vdmUgaXQgKGludG8sIHNh eSwgYXV0aC1zYXNsLmM/KS4gSSdsbCBwcm9iYWJseSBkbw0KdGhhdCBpbiBhIHNlY29uZCBjb21t aXQsIHRob3VnaCwgc2luY2Uga2VlcGluZyBpdCBpbiBwbGFjZSBkdXJpbmcgdGhlDQpyZWZhY3Rv ciBtYWtlcyB0aGUgcmV2aWV3IGVhc2llciBJTU8uDQoNCj4gK3R5cGVkZWYgdm9pZCAqKCpwZ19z YXNsX2luaXRfZnVuYykoUEdjb25uICosIGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhcg0KPiAqKTsN Cj4gK3R5cGVkZWYgdm9pZCAgKCpwZ19zYXNsX2V4Y2hhbmdlX2Z1bmMpKHZvaWQgKiwgY2hhciAq LCBpbnQsIGNoYXIgKiosDQo+IGludCAqLCBib29sICosIGJvb2wgKik7DQo+ICt0eXBlZGVmIGJv b2wgICgqcGdfc2FzbF9jaGFubmVsX2JvdW5kX2Z1bmMpKHZvaWQgKik7DQo+ICt0eXBlZGVmIHZv aWQgICgqcGdfc2FzbF9mcmVlX2Z1bmMpKHZvaWQgKik7DQo+ICsNCj4gK3R5cGVkZWYgc3RydWN0 DQo+ICt7DQo+ICsgICBwZ19zYXNsX2luaXRfZnVuYyAgICAgICAgICAgaW5pdDsNCj4gKyAgIHBn X3Nhc2xfZXhjaGFuZ2VfZnVuYyAgICAgICBleGNoYW5nZTsNCj4gKyAgIHBnX3Nhc2xfY2hhbm5l bF9ib3VuZF9mdW5jICBjaGFubmVsX2JvdW5kOw0KPiArICAgcGdfc2FzbF9mcmVlX2Z1bmMgICAg ICAgICAgIGZyZWU7DQo+ICt9IHBnX3Nhc2xfbWVjaDsNCj4gVGhlc2Ugd291bGQgYmUgYmV0dGVy IGludG8gYSBzZXBhcmF0ZSBoZWFkZXIsIHdpdGggbW9yZQ0KPiBkb2N1bWVudGF0aW9uLg0KDQpD YW4gZG8uIERvZXMgbGlicHEtaW50LXNhc2wuaCB3b3JrIGFzIGEgZmlsZW5hbWU/IFRoaXMgc2hv dWxkIG5vdCBiZQ0KZXhwb3J0ZWQgdG8gYXBwbGljYXRpb25zLg0KDQo+IEl0IG1heSBiZSBtb3Jl IGNvbnNpc3RlbnQgd2l0aCB0aGUgYmFja2VuZCB0byBuYW1lDQo+IHRoYXQgcGdfZmVfc2FzbF9t ZWNoPw0KDQpEb25lIGluIHYyLg0KDQo+IEl0IGxvb2tzIGxpa2UgdGhlcmUgaXMgZW5vdWdoIG1h dGVyaWFsIGZvciBhIGNhbGxiYWNrIGFibGUgdG8gaGFuZGxlDQo+IGNoYW5uZWwgYmluZGluZy4g IEluIHRoZSBtYWluIHBhdGNoIGZvciBPQVVUSEJFQVJFUiwgSSBjYW4gc2VlIGZvcg0KPiBleGFt cGxlIHRoYXQgdGhlIGhhbmRsaW5nIG9mIE9BVVRIQkVBUkVSLVBMVVMgY29waWVkIGZyb20gaXRz IFNDUkFNDQo+IHNpYmxpbmcuICBUaGF0IGRvZXMgbm90IG5lZWQgdG8gYmUgdGFja2xlZCBpbiB0 aGUgc2FtZSBwYXRjaC4gIEp1c3QNCj4gbm90aW5nIGl0IG9uIHRoZSB3YXkuDQoNCk9BVVRIQkVB UkVSIGRvZXNuJ3Qgc3VwcG9ydCBjaGFubmVsIGJpbmRpbmcgLS0gdGhlcmUncyBubyBPQVVUSEJF QVJFUi0NClBMVVMsIGFuZCB0aGVyZSBwcm9iYWJseSB3b24ndCBldmVyIGJlLCBnaXZlbiB0aGUg bWVjaGFuaXNtJ3MNCnNpbXBsaWNpdHkgLS0gc28gSSdkIHJlY29tbWVuZCB0aGF0IHRoaXMgd2Fp dCBmb3IgYSBzZWNvbmQgR1MyDQptZWNoYW5pc20gaW1wbGVtZW50YXRpb24sIGFzIHdlbGwuDQoN Cj4gPiAoTm90ZSB0aGF0IG91ciBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbiBwcm92aWRlcyBhbiAi YWRkaXRpb25hbCBkYXRhIg0KPiA+IGZpZWxkIGZvciB0aGUgaW5pdGlhbCBjbGllbnQgcmVzcG9u c2UsIGJ1dCAqbm90KiBmb3IgdGhlIGF1dGhlbnRpY2F0aW9uDQo+ID4gb3V0Y29tZS4gVGhhdCBz ZWVtcyBvZGQgdG8gbWUsIGJ1dCBpdCBpcyB3aGF0IGl0IGlzLCBJIHN1cHBvc2UuKQ0KPiANCj4g WW91IGFyZSByZWZlcnJpbmcgdG8gdGhlIHByb3RvY29sIGltcGxlbWVudGF0aW9uIGFzIG9mDQo+ IEF1dGhlbnRpY2F0aW9uU0FTTEZpbmFsLCByaWdodD8NCg0KWWVzLCBidXQgSSBtaXNyZW1lbWJl cmVkLiBNeSBzdGF0ZW1lbnQgd2FzIHdyb25nIC0tIHdlIGRvIGFsbG93IGZvcg0KYWRkaXRpb25h bCBkYXRhIGluIHRoZSBhdXRoZW50aWNhdGlvbiBvdXRjb21lIGZyb20gdGhlIHNlcnZlci4NCg0K Rm9yIEF1dGhlbnRpY2F0aW9uU0FTTEZpbmFsLCB3ZSBkb24ndCBkaXN0aW5ndWlzaCBiZXR3ZWVu ICJubw0KYWRkaXRpb25hbCBkYXRhIiBhbmQgImFkZGl0aW9uYWwgZGF0YSBvZiBsZW5ndGggemVy byIsIHdoaWNoIElJUkMgaXMgYQ0KdmlvbGF0aW9uIG9mIHRoZSBTQVNMIHByb3RvY29sLiBUaGF0 IG1heSBjYXVzZSBwcm9ibGVtcyB3aXRoIGENCnRoZW9yZXRpY2FsIGZ1dHVyZSBtZWNoYW5pc20g aW1wbGVtZW50YXRpb24sIGJ1dCBJIGRvbid0IHRoaW5rIGl0DQphZmZlY3RzIFNDUkFNLiBJIGJl bGlldmUgd2UgKmRvKiBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRob3NlIGNhc2VzDQpjb3JyZWN0bHkg Zm9yIHRoZSBpbml0aWFsIGNsaWVudCByZXNwb25zZSBwYWNrZXQuDQoNClNvcnJ5IGZvciB0aGUg Y29uZnVzaW9uOyBsZXQgbWUgZG91YmxlLWNoZWNrIGFnYWluIHdoZW4gSSBoYXZlIGZyZXNoDQpl eWVzIGF0IHRoZSBzdGFydCBvZiB0aGUgd2VlaywgYmVmb3JlIHNlbmRpbmcgeW91IG9uIGEgZ29v c2UgY2hhc2UuDQoNCj4gPiBSZWdhcmRpbmcgdGhhdCBzcGVjaWZpYyBUT0RPIC0tIEkgdGhpbmsg aXQnZCBiZSBnb29kIGZvciB0aGUgZnJhbWV3b3JrDQo+ID4gdG8gZmFpbCBoYXJkIGlmIGEgbWVj aGFuaXNtIHRyaWVzIHRvIHNlbmQgZGF0YSBkdXJpbmcgYSBmYWlsdXJlDQo+ID4gb3V0Y29tZSwg YXMgaXQgcHJvYmFibHkgbWVhbnMgdGhlIG1lY2hhbmlzbSBpc24ndCBpbXBsZW1lbnRlZCB0byBz cGVjLg0KPiANCj4gQWdyZWVkLiAgVGhhdCB3b3VsZCBtZWFuIHBhdGNoaW5nIGxpYnBxIHRvIGFk ZCBtb3JlIHNhZmVndWFyZHMgaW4NCj4gcGdfU0FTTF9jb250aW51ZSgpIGlmIEkgYW0gZm9sbG93 aW5nIGNvcnJlY3RseS4NCg0KUmlnaHQuDQoNClRoYW5rcyBmb3IgdGhlIHJldmlldyENCi0tSmFj b2INCg0KWzFdIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjNTgwMQ0K --_002_9dc553fe86ba34bff1e0b636c493b527fc7bc030camelvmwarecom_ Content-Type: text/x-patch; name="v2-auth-generalize-SASL-mechanisms.patch" Content-Description: v2-auth-generalize-SASL-mechanisms.patch Content-Disposition: attachment; filename="v2-auth-generalize-SASL-mechanisms.patch"; size=19137; creation-date="Fri, 25 Jun 2021 23:40:33 GMT"; modification-date="Fri, 25 Jun 2021 23:40:33 GMT" Content-ID: <5EF133C557A47A4AB536F602D247AAC4@namprd05.prod.outlook.com> Content-Transfer-Encoding: base64 RnJvbSBhZWU5Nzk3YWNkNDU2OGZjOTBkYTZkZjA0ZWM0MTdiMGRhMDBmM2YzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8cGNoYW1waW9uQHZtd2FyZS5jb20+ CkRhdGU6IFR1ZSwgMTMgQXByIDIwMjEgMTA6MjU6NDggLTA3MDAKU3ViamVjdDogW1BBVENIIHYy IDEvN10gYXV0aDogZ2VuZXJhbGl6ZSBTQVNMIG1lY2hhbmlzbXMKClNwbGl0IHRoZSBTQVNMIGxv Z2ljIG91dCBmcm9tIHRoZSBTQ1JBTSBpbXBsZW1lbnRhdGlvbiwgc28gdGhhdCBpdCBjYW4KYmUg cmV1c2VkIGJ5IG90aGVyIG1lY2hhbmlzbXMuICBOZXcgaW1wbGVtZW50YXRpb25zIHdpbGwgaW1w bGVtZW50IGJvdGgKYSBwZ19mZV9zYXNsX21lY2ggYW5kIGEgcGdfYmVfc2FzbF9tZWNoLgotLS0K IHNyYy9iYWNrZW5kL2xpYnBxL2F1dGgtc2NyYW0uYyAgICAgICB8IDQ4ICsrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2xpYnBxL2F1dGguYyAgICAgICAgICAgICB8IDQw ICsrKysrKysrKysrKysrKy0tLS0tLS0tCiBzcmMvaW5jbHVkZS9saWJwcS9zYXNsLmggICAgICAg ICAgICAgfCAzNCArKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvbGlicHEvc2NyYW0u aCAgICAgICAgICAgIHwgMTMgKystLS0tLS0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGgt c2NyYW0uYyB8IDQwICsrKysrKysrKysrKysrKystLS0tLS0tCiBzcmMvaW50ZXJmYWNlcy9saWJw cS9mZS1hdXRoLmMgICAgICAgfCAxNiArKysrKysrLS0tCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9m ZS1hdXRoLmggICAgICAgfCAxMSArKy0tLS0tCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25u ZWN0LmMgICAgfCAgNiArLS0tCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaCAgICAg fCAxNCArKysrKysrKwogOSBmaWxlcyBjaGFuZ2VkLCAxNDkgaW5zZXJ0aW9ucygrKSwgNzMgZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvbGlicHEvc2FzbC5oCgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbGlicHEvYXV0aC1zY3JhbS5jIGIvc3JjL2JhY2tlbmQv bGlicHEvYXV0aC1zY3JhbS5jCmluZGV4IGY5ZTEwMjZhMTIuLjI5NjVlYTJkZGIgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGgtc2NyYW0uYworKysgYi9zcmMvYmFja2VuZC9saWJw cS9hdXRoLXNjcmFtLmMKQEAgLTEwMSwxMSArMTAxLDI1IEBACiAjaW5jbHVkZSAiY29tbW9uL3No YTIuaCIKICNpbmNsdWRlICJsaWJwcS9hdXRoLmgiCiAjaW5jbHVkZSAibGlicHEvY3J5cHQuaCIK KyNpbmNsdWRlICJsaWJwcS9zYXNsLmgiCiAjaW5jbHVkZSAibGlicHEvc2NyYW0uaCIKICNpbmNs dWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUg InV0aWxzL3RpbWVzdGFtcC5oIgogCitzdGF0aWMgdm9pZCAgc2NyYW1fZ2V0X21lY2hhbmlzbXMo UG9ydCAqcG9ydCwgU3RyaW5nSW5mbyBidWYpOworc3RhdGljIHZvaWQgKnNjcmFtX2luaXQoUG9y dCAqcG9ydCwgY29uc3QgY2hhciAqc2VsZWN0ZWRfbWVjaCwKKwkJCQkJCWNvbnN0IGNoYXIgKnNo YWRvd19wYXNzKTsKK3N0YXRpYyBpbnQgICBzY3JhbV9leGNoYW5nZSh2b2lkICpvcGFxLCBjb25z dCBjaGFyICppbnB1dCwgaW50IGlucHV0bGVuLAorCQkJCQkJCWNoYXIgKipvdXRwdXQsIGludCAq b3V0cHV0bGVuLCBjaGFyICoqbG9nZGV0YWlsKTsKKworLyogTWVjaGFuaXNtIGRlY2xhcmF0aW9u ICovCitjb25zdCBwZ19iZV9zYXNsX21lY2ggcGdfYmVfc2NyYW1fbWVjaCA9IHsKKwlzY3JhbV9n ZXRfbWVjaGFuaXNtcywKKwlzY3JhbV9pbml0LAorCXNjcmFtX2V4Y2hhbmdlLAorfTsKKwogLyoK ICAqIFN0YXR1cyBkYXRhIGZvciBhIFNDUkFNIGF1dGhlbnRpY2F0aW9uIGV4Y2hhbmdlLiAgVGhp cyBzaG91bGQgYmUga2VwdAogICogaW50ZXJuYWwgdG8gdGhpcyBmaWxlLgpAQCAtMTcwLDE2ICsx ODQsMTQgQEAgc3RhdGljIGNoYXIgKnNhbml0aXplX3N0cihjb25zdCBjaGFyICpzKTsKIHN0YXRp YyBjaGFyICpzY3JhbV9tb2NrX3NhbHQoY29uc3QgY2hhciAqdXNlcm5hbWUpOwogCiAvKgotICog cGdfYmVfc2NyYW1fZ2V0X21lY2hhbmlzbXMKLSAqCiAgKiBHZXQgYSBsaXN0IG9mIFNBU0wgbWVj aGFuaXNtcyB0aGF0IHRoaXMgbW9kdWxlIHN1cHBvcnRzLgogICoKICAqIEZvciB0aGUgY29udmVu aWVuY2Ugb2YgYnVpbGRpbmcgdGhlIEZFL0JFIHBhY2tldCB0aGF0IGxpc3RzIHRoZQogICogbWVj aGFuaXNtcywgdGhlIG5hbWVzIGFyZSBhcHBlbmRlZCB0byB0aGUgZ2l2ZW4gU3RyaW5nSW5mbyBi dWZmZXIsCiAgKiBzZXBhcmF0ZWQgYnkgJ1wwJyBieXRlcy4KICAqLwotdm9pZAotcGdfYmVfc2Ny YW1fZ2V0X21lY2hhbmlzbXMoUG9ydCAqcG9ydCwgU3RyaW5nSW5mbyBidWYpCitzdGF0aWMgdm9p ZAorc2NyYW1fZ2V0X21lY2hhbmlzbXMoUG9ydCAqcG9ydCwgU3RyaW5nSW5mbyBidWYpCiB7CiAJ LyoKIAkgKiBBZHZlcnRpc2UgdGhlIG1lY2hhbmlzbXMgaW4gZGVjcmVhc2luZyBvcmRlciBvZiBp bXBvcnRhbmNlLiAgU28gdGhlCkBAIC0xOTksOCArMjExLDYgQEAgcGdfYmVfc2NyYW1fZ2V0X21l Y2hhbmlzbXMoUG9ydCAqcG9ydCwgU3RyaW5nSW5mbyBidWYpCiB9CiAKIC8qCi0gKiBwZ19iZV9z Y3JhbV9pbml0Ci0gKgogICogSW5pdGlhbGl6ZSBhIG5ldyBTQ1JBTSBhdXRoZW50aWNhdGlvbiBl eGNoYW5nZSBzdGF0dXMgdHJhY2tlci4gIFRoaXMKICAqIG5lZWRzIHRvIGJlIGNhbGxlZCBiZWZv cmUgZG9pbmcgYW55IGV4Y2hhbmdlLiAgSXQgd2lsbCBiZSBmaWxsZWQgbGF0ZXIKICAqIGFmdGVy IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGV4Y2hhbmdlIHdpdGggYXV0aGVudGljYXRpb24gaW5mb3Jt YXRpb24uCkBAIC0yMTUsMTAgKzIyNSw4IEBAIHBnX2JlX3NjcmFtX2dldF9tZWNoYW5pc21zKFBv cnQgKnBvcnQsIFN0cmluZ0luZm8gYnVmKQogICogYW4gYXV0aGVudGljYXRpb24gZXhjaGFuZ2Us IGJ1dCBpdCB3aWxsIGZhaWwsIGFzIGlmIGFuIGluY29ycmVjdCBwYXNzd29yZAogICogd2FzIGdp dmVuLgogICovCi12b2lkICoKLXBnX2JlX3NjcmFtX2luaXQoUG9ydCAqcG9ydCwKLQkJCQkgY29u c3QgY2hhciAqc2VsZWN0ZWRfbWVjaCwKLQkJCQkgY29uc3QgY2hhciAqc2hhZG93X3Bhc3MpCitz dGF0aWMgdm9pZCAqCitzY3JhbV9pbml0KFBvcnQgKnBvcnQsIGNvbnN0IGNoYXIgKnNlbGVjdGVk X21lY2gsIGNvbnN0IGNoYXIgKnNoYWRvd19wYXNzKQogewogCXNjcmFtX3N0YXRlICpzdGF0ZTsK IAlib29sCQlnb3Rfc2VjcmV0OwpAQCAtMzI1LDkgKzMzMyw5IEBAIHBnX2JlX3NjcmFtX2luaXQo UG9ydCAqcG9ydCwKICAqIHN0cmluZyBhdCAqbG9nZGV0YWlsIHRoYXQgd2lsbCBiZSBzZW50IHRv IHRoZSBwb3N0bWFzdGVyIGxvZyAoYnV0IG5vdAogICogdGhlIGNsaWVudCkuCiAgKi8KLWludAot cGdfYmVfc2NyYW1fZXhjaGFuZ2Uodm9pZCAqb3BhcSwgY29uc3QgY2hhciAqaW5wdXQsIGludCBp bnB1dGxlbiwKLQkJCQkJIGNoYXIgKipvdXRwdXQsIGludCAqb3V0cHV0bGVuLCBjaGFyICoqbG9n ZGV0YWlsKQorc3RhdGljIGludAorc2NyYW1fZXhjaGFuZ2Uodm9pZCAqb3BhcSwgY29uc3QgY2hh ciAqaW5wdXQsIGludCBpbnB1dGxlbiwKKwkJCSAgIGNoYXIgKipvdXRwdXQsIGludCAqb3V0cHV0 bGVuLCBjaGFyICoqbG9nZGV0YWlsKQogewogCXNjcmFtX3N0YXRlICpzdGF0ZSA9IChzY3JhbV9z dGF0ZSAqKSBvcGFxOwogCWludAkJCXJlc3VsdDsKQEAgLTM0Niw3ICszNTQsNyBAQCBwZ19iZV9z Y3JhbV9leGNoYW5nZSh2b2lkICpvcGFxLCBjb25zdCBjaGFyICppbnB1dCwgaW50IGlucHV0bGVu LAogCiAJCSpvdXRwdXQgPSBwc3RyZHVwKCIiKTsKIAkJKm91dHB1dGxlbiA9IDA7Ci0JCXJldHVy biBTQVNMX0VYQ0hBTkdFX0NPTlRJTlVFOworCQlyZXR1cm4gUEdfU0FTTF9FWENIQU5HRV9DT05U SU5VRTsKIAl9CiAKIAkvKgpAQCAtMzc5LDcgKzM4Nyw3IEBAIHBnX2JlX3NjcmFtX2V4Y2hhbmdl KHZvaWQgKm9wYXEsIGNvbnN0IGNoYXIgKmlucHV0LCBpbnQgaW5wdXRsZW4sCiAJCQkqb3V0cHV0 ID0gYnVpbGRfc2VydmVyX2ZpcnN0X21lc3NhZ2Uoc3RhdGUpOwogCiAJCQlzdGF0ZS0+c3RhdGUg PSBTQ1JBTV9BVVRIX1NBTFRfU0VOVDsKLQkJCXJlc3VsdCA9IFNBU0xfRVhDSEFOR0VfQ09OVElO VUU7CisJCQlyZXN1bHQgPSBQR19TQVNMX0VYQ0hBTkdFX0NPTlRJTlVFOwogCQkJYnJlYWs7CiAK IAkJY2FzZSBTQ1JBTV9BVVRIX1NBTFRfU0VOVDoKQEAgLTQwOCw3ICs0MTYsNyBAQCBwZ19iZV9z Y3JhbV9leGNoYW5nZSh2b2lkICpvcGFxLCBjb25zdCBjaGFyICppbnB1dCwgaW50IGlucHV0bGVu LAogCQkJICogZXJyb3Jpbmcgb3V0IGluIGFuIGFwcGxpY2F0aW9uLXNwZWNpZmljIHdheS4gIFdl IGNob29zZSB0byBkbwogCQkJICogdGhlIGxhdHRlciwgc28gdGhhdCB0aGUgZXJyb3IgbWVzc2Fn ZSBmb3IgaW52YWxpZCBwYXNzd29yZCBpcwogCQkJICogdGhlIHNhbWUgZm9yIGFsbCBhdXRoZW50 aWNhdGlvbiBtZXRob2RzLiAgVGhlIGNhbGxlciB3aWxsIGNhbGwKLQkJCSAqIGVyZXBvcnQoKSwg d2hlbiB3ZSByZXR1cm4gU0FTTF9FWENIQU5HRV9GQUlMVVJFIHdpdGggbm8gb3V0cHV0LgorCQkJ ICogZXJlcG9ydCgpLCB3aGVuIHdlIHJldHVybiBQR19TQVNMX0VYQ0hBTkdFX0ZBSUxVUkUgd2l0 aCBubyBvdXRwdXQuCiAJCQkgKgogCQkJICogTkI6IHRoZSBvcmRlciBvZiB0aGVzZSBjaGVja3Mg aXMgaW50ZW50aW9uYWwuICBXZSBjYWxjdWxhdGUgdGhlCiAJCQkgKiBjbGllbnQgcHJvb2YgZXZl biBpbiBhIG1vY2sgYXV0aGVudGljYXRpb24sIGV2ZW4gdGhvdWdoIGl0J3MKQEAgLTQxNyw3ICs0 MjUsNyBAQCBwZ19iZV9zY3JhbV9leGNoYW5nZSh2b2lkICpvcGFxLCBjb25zdCBjaGFyICppbnB1 dCwgaW50IGlucHV0bGVuLAogCQkJICovCiAJCQlpZiAoIXZlcmlmeV9jbGllbnRfcHJvb2Yoc3Rh dGUpIHx8IHN0YXRlLT5kb29tZWQpCiAJCQl7Ci0JCQkJcmVzdWx0ID0gU0FTTF9FWENIQU5HRV9G QUlMVVJFOworCQkJCXJlc3VsdCA9IFBHX1NBU0xfRVhDSEFOR0VfRkFJTFVSRTsKIAkJCQlicmVh azsKIAkJCX0KIApAQCAtNDI1LDE2ICs0MzMsMTYgQEAgcGdfYmVfc2NyYW1fZXhjaGFuZ2Uodm9p ZCAqb3BhcSwgY29uc3QgY2hhciAqaW5wdXQsIGludCBpbnB1dGxlbiwKIAkJCSpvdXRwdXQgPSBi dWlsZF9zZXJ2ZXJfZmluYWxfbWVzc2FnZShzdGF0ZSk7CiAKIAkJCS8qIFN1Y2Nlc3MhICovCi0J CQlyZXN1bHQgPSBTQVNMX0VYQ0hBTkdFX1NVQ0NFU1M7CisJCQlyZXN1bHQgPSBQR19TQVNMX0VY Q0hBTkdFX1NVQ0NFU1M7CiAJCQlzdGF0ZS0+c3RhdGUgPSBTQ1JBTV9BVVRIX0ZJTklTSEVEOwog CQkJYnJlYWs7CiAKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJpbnZhbGlkIFNDUkFNIGV4 Y2hhbmdlIHN0YXRlIik7Ci0JCQlyZXN1bHQgPSBTQVNMX0VYQ0hBTkdFX0ZBSUxVUkU7CisJCQly ZXN1bHQgPSBQR19TQVNMX0VYQ0hBTkdFX0ZBSUxVUkU7CiAJfQogCi0JaWYgKHJlc3VsdCA9PSBT QVNMX0VYQ0hBTkdFX0ZBSUxVUkUgJiYgc3RhdGUtPmxvZ2RldGFpbCAmJiBsb2dkZXRhaWwpCisJ aWYgKHJlc3VsdCA9PSBQR19TQVNMX0VYQ0hBTkdFX0ZBSUxVUkUgJiYgc3RhdGUtPmxvZ2RldGFp bCAmJiBsb2dkZXRhaWwpCiAJCSpsb2dkZXRhaWwgPSBzdGF0ZS0+bG9nZGV0YWlsOwogCiAJaWYg KCpvdXRwdXQpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9saWJwcS9hdXRoLmMgYi9zcmMvYmFj a2VuZC9saWJwcS9hdXRoLmMKaW5kZXggOTY3YjVlZjczYy4uODJmMDQzYTM0MyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvbGlicHEvYXV0aC5jCisrKyBiL3NyYy9iYWNrZW5kL2xpYnBxL2F1dGgu YwpAQCAtMjYsMTEgKzI2LDExIEBACiAjaW5jbHVkZSAiY29tbWFuZHMvdXNlci5oIgogI2luY2x1 ZGUgImNvbW1vbi9pcC5oIgogI2luY2x1ZGUgImNvbW1vbi9tZDUuaCIKLSNpbmNsdWRlICJjb21t b24vc2NyYW0tY29tbW9uLmgiCiAjaW5jbHVkZSAibGlicHEvYXV0aC5oIgogI2luY2x1ZGUgImxp YnBxL2NyeXB0LmgiCiAjaW5jbHVkZSAibGlicHEvbGlicHEuaCIKICNpbmNsdWRlICJsaWJwcS9w cWZvcm1hdC5oIgorI2luY2x1ZGUgImxpYnBxL3Nhc2wuaCIKICNpbmNsdWRlICJsaWJwcS9zY3Jh bS5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInBvcnQvcGdfYnN3YXAuaCIK QEAgLTUxLDYgKzUxLDEzIEBAIHN0YXRpYyB2b2lkIGF1dGhfZmFpbGVkKFBvcnQgKnBvcnQsIGlu dCBzdGF0dXMsIGNoYXIgKmxvZ2RldGFpbCk7CiBzdGF0aWMgY2hhciAqcmVjdl9wYXNzd29yZF9w YWNrZXQoUG9ydCAqcG9ydCk7CiBzdGF0aWMgdm9pZCBzZXRfYXV0aG5faWQoUG9ydCAqcG9ydCwg Y29uc3QgY2hhciAqaWQpOwogCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIFNBU0wgY29tbW9uIGF1dGhlbnRpY2F0 aW9uCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqLworc3RhdGljIGludAlTQVNMX2V4Y2hhbmdlKGNvbnN0IHBnX2Jl X3Nhc2xfbWVjaCAqbWVjaCwgUG9ydCAqcG9ydCwKKwkJCQkJCSAgY2hhciAqc2hhZG93X3Bhc3Ms IGNoYXIgKipsb2dkZXRhaWwpOworCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogUGFzc3dvcmQtYmFzZWQgYXV0 aGVudGljYXRpb24gbWV0aG9kcyAocGFzc3dvcmQsIG1kNSwgYW5kIHNjcmFtLXNoYS0yNTYpCkBA IC05MTIsMTIgKzkxOSwxMyBAQCBDaGVja01ENUF1dGgoUG9ydCAqcG9ydCwgY2hhciAqc2hhZG93 X3Bhc3MsIGNoYXIgKipsb2dkZXRhaWwpCiB9CiAKIHN0YXRpYyBpbnQKLUNoZWNrU0NSQU1BdXRo KFBvcnQgKnBvcnQsIGNoYXIgKnNoYWRvd19wYXNzLCBjaGFyICoqbG9nZGV0YWlsKQorU0FTTF9l eGNoYW5nZShjb25zdCBwZ19iZV9zYXNsX21lY2ggKm1lY2gsIFBvcnQgKnBvcnQsIGNoYXIgKnNo YWRvd19wYXNzLAorCQkJICBjaGFyICoqbG9nZGV0YWlsKQogewogCVN0cmluZ0luZm9EYXRhIHNh c2xfbWVjaHM7CiAJaW50CQkJbXR5cGU7CiAJU3RyaW5nSW5mb0RhdGEgYnVmOwotCXZvaWQJICAg KnNjcmFtX29wYXEgPSBOVUxMOworCXZvaWQJICAgKm9wYXEgPSBOVUxMOwogCWNoYXIJICAgKm91 dHB1dCA9IE5VTEw7CiAJaW50CQkJb3V0cHV0bGVuID0gMDsKIAljb25zdCBjaGFyICppbnB1dDsK QEAgLTkzMSw3ICs5MzksNyBAQCBDaGVja1NDUkFNQXV0aChQb3J0ICpwb3J0LCBjaGFyICpzaGFk b3dfcGFzcywgY2hhciAqKmxvZ2RldGFpbCkKIAkgKi8KIAlpbml0U3RyaW5nSW5mbygmc2FzbF9t ZWNocyk7CiAKLQlwZ19iZV9zY3JhbV9nZXRfbWVjaGFuaXNtcyhwb3J0LCAmc2FzbF9tZWNocyk7 CisJbWVjaC0+Z2V0X21lY2hhbmlzbXMocG9ydCwgJnNhc2xfbWVjaHMpOwogCS8qIFB1dCBhbm90 aGVyICdcMCcgdG8gbWFyayB0aGF0IGxpc3QgaXMgZmluaXNoZWQuICovCiAJYXBwZW5kU3RyaW5n SW5mb0NoYXIoJnNhc2xfbWVjaHMsICdcMCcpOwogCkBAIC05OTgsNyArMTAwNiw3IEBAIENoZWNr U0NSQU1BdXRoKFBvcnQgKnBvcnQsIGNoYXIgKnNoYWRvd19wYXNzLCBjaGFyICoqbG9nZGV0YWls KQogCQkJICogVGhpcyBpcyBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gcmV2ZWFsIHRvIGFuIGF0 dGFja2VyIHdoYXQKIAkJCSAqIHVzZXJuYW1lcyBhcmUgdmFsaWQsIG5vciB3aGljaCB1c2VycyBo YXZlIGEgdmFsaWQgcGFzc3dvcmQuCiAJCQkgKi8KLQkJCXNjcmFtX29wYXEgPSBwZ19iZV9zY3Jh bV9pbml0KHBvcnQsIHNlbGVjdGVkX21lY2gsIHNoYWRvd19wYXNzKTsKKwkJCW9wYXEgPSBtZWNo LT5pbml0KHBvcnQsIHNlbGVjdGVkX21lY2gsIHNoYWRvd19wYXNzKTsKIAogCQkJaW5wdXRsZW4g PSBwcV9nZXRtc2dpbnQoJmJ1ZiwgNCk7CiAJCQlpZiAoaW5wdXRsZW4gPT0gLTEpCkBAIC0xMDIy LDEyICsxMDMwLDExIEBAIENoZWNrU0NSQU1BdXRoKFBvcnQgKnBvcnQsIGNoYXIgKnNoYWRvd19w YXNzLCBjaGFyICoqbG9nZGV0YWlsKQogCQlBc3NlcnQoaW5wdXQgPT0gTlVMTCB8fCBpbnB1dFtp bnB1dGxlbl0gPT0gJ1wwJyk7CiAKIAkJLyoKLQkJICogd2UgcGFzcyAnbG9nZGV0YWlsJyBhcyBO VUxMIHdoZW4gZG9pbmcgYSBtb2NrIGF1dGhlbnRpY2F0aW9uLAotCQkgKiBiZWNhdXNlIHdlIHNo b3VsZCBhbHJlYWR5IGhhdmUgYSBiZXR0ZXIgZXJyb3IgbWVzc2FnZSBpbiB0aGF0IGNhc2UKKwkJ ICogSGFuZCB0aGUgaW5jb21pbmcgbWVzc2FnZSB0byB0aGUgbWVjaGFuaXNtIGltcGxlbWVudGF0 aW9uLgogCQkgKi8KLQkJcmVzdWx0ID0gcGdfYmVfc2NyYW1fZXhjaGFuZ2Uoc2NyYW1fb3BhcSwg aW5wdXQsIGlucHV0bGVuLAotCQkJCQkJCQkJICAmb3V0cHV0LCAmb3V0cHV0bGVuLAotCQkJCQkJ CQkJICBsb2dkZXRhaWwpOworCQlyZXN1bHQgPSBtZWNoLT5leGNoYW5nZShvcGFxLCBpbnB1dCwg aW5wdXRsZW4sCisJCQkJCQkJCSZvdXRwdXQsICZvdXRwdXRsZW4sCisJCQkJCQkJCWxvZ2RldGFp bCk7CiAKIAkJLyogaW5wdXQgYnVmZmVyIG5vIGxvbmdlciB1c2VkICovCiAJCXBmcmVlKGJ1Zi5k YXRhKTsKQEAgLTEwMzksMTcgKzEwNDYsMTggQEAgQ2hlY2tTQ1JBTUF1dGgoUG9ydCAqcG9ydCwg Y2hhciAqc2hhZG93X3Bhc3MsIGNoYXIgKipsb2dkZXRhaWwpCiAJCQkgKi8KIAkJCWVsb2coREVC VUc0LCAic2VuZGluZyBTQVNMIGNoYWxsZW5nZSBvZiBsZW5ndGggJXUiLCBvdXRwdXRsZW4pOwog Ci0JCQlpZiAocmVzdWx0ID09IFNBU0xfRVhDSEFOR0VfU1VDQ0VTUykKKwkJCS8qIFRPRE86IFBH X1NBU0xfRVhDSEFOR0VfRkFJTFVSRSB3aXRoIG91dHB1dCBpcyBmb3JiaWRkZW4gaW4gU0FTTCAq LworCQkJaWYgKHJlc3VsdCA9PSBQR19TQVNMX0VYQ0hBTkdFX1NVQ0NFU1MpCiAJCQkJc2VuZEF1 dGhSZXF1ZXN0KHBvcnQsIEFVVEhfUkVRX1NBU0xfRklOLCBvdXRwdXQsIG91dHB1dGxlbik7CiAJ CQllbHNlCiAJCQkJc2VuZEF1dGhSZXF1ZXN0KHBvcnQsIEFVVEhfUkVRX1NBU0xfQ09OVCwgb3V0 cHV0LCBvdXRwdXRsZW4pOwogCiAJCQlwZnJlZShvdXRwdXQpOwogCQl9Ci0JfSB3aGlsZSAocmVz dWx0ID09IFNBU0xfRVhDSEFOR0VfQ09OVElOVUUpOworCX0gd2hpbGUgKHJlc3VsdCA9PSBQR19T QVNMX0VYQ0hBTkdFX0NPTlRJTlVFKTsKIAogCS8qIE9vcHMsIFNvbWV0aGluZyBiYWQgaGFwcGVu ZWQgKi8KLQlpZiAocmVzdWx0ICE9IFNBU0xfRVhDSEFOR0VfU1VDQ0VTUykKKwlpZiAocmVzdWx0 ICE9IFBHX1NBU0xfRVhDSEFOR0VfU1VDQ0VTUykKIAl7CiAJCXJldHVybiBTVEFUVVNfRVJST1I7 CiAJfQpAQCAtMTA1Nyw2ICsxMDY1LDEyIEBAIENoZWNrU0NSQU1BdXRoKFBvcnQgKnBvcnQsIGNo YXIgKnNoYWRvd19wYXNzLCBjaGFyICoqbG9nZGV0YWlsKQogCXJldHVybiBTVEFUVVNfT0s7CiB9 CiAKK3N0YXRpYyBpbnQKK0NoZWNrU0NSQU1BdXRoKFBvcnQgKnBvcnQsIGNoYXIgKnNoYWRvd19w YXNzLCBjaGFyICoqbG9nZGV0YWlsKQoreworCXJldHVybiBTQVNMX2V4Y2hhbmdlKCZwZ19iZV9z Y3JhbV9tZWNoLCBwb3J0LCBzaGFkb3dfcGFzcywgbG9nZGV0YWlsKTsKK30KKwogCiAvKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAqIEdTU0FQSSBhdXRoZW50aWNhdGlvbiBzeXN0ZW0KZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2xpYnBxL3Nhc2wuaCBiL3NyYy9pbmNsdWRlL2xpYnBxL3Nhc2wuaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4xYWZhYmY4NDNkCi0tLSAvZGV2L251bGwKKysrIGIv c3JjL2luY2x1ZGUvbGlicHEvc2FzbC5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICoKKyAqIHNhc2wuaAorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0y MDIxLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29w eXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEK KyAqCisgKiBzcmMvaW5jbHVkZS9saWJwcS9zYXNsLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqLworI2lmbmRlZiBQR19TQVNMX0gKKyNkZWZpbmUgUEdfU0FTTF9ICisKKyNpbmNsdWRlICJs aWJwcS9saWJwcS1iZS5oIgorCisvKiBTdGF0dXMgY29kZXMgZm9yIG1lc3NhZ2UgZXhjaGFuZ2Ug Ki8KKyNkZWZpbmUgUEdfU0FTTF9FWENIQU5HRV9DT05USU5VRQkJMAorI2RlZmluZSBQR19TQVNM X0VYQ0hBTkdFX1NVQ0NFU1MJCTEKKyNkZWZpbmUgUEdfU0FTTF9FWENIQU5HRV9GQUlMVVJFCQky CisKKy8qIEJhY2tlbmQgbWVjaGFuaXNtIEFQSSAqLwordHlwZWRlZiB2b2lkICAoKnBnX2JlX3Nh c2xfbWVjaGFuaXNtX2Z1bmMpKFBvcnQgKiwgU3RyaW5nSW5mbyk7Cit0eXBlZGVmIHZvaWQgKigq cGdfYmVfc2FzbF9pbml0X2Z1bmMpKFBvcnQgKiwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICop OwordHlwZWRlZiBpbnQgICAoKnBnX2JlX3Nhc2xfZXhjaGFuZ2VfZnVuYykodm9pZCAqLCBjb25z dCBjaGFyICosIGludCwgY2hhciAqKiwgaW50ICosIGNoYXIgKiopOworCit0eXBlZGVmIHN0cnVj dAoreworCXBnX2JlX3Nhc2xfbWVjaGFuaXNtX2Z1bmMJZ2V0X21lY2hhbmlzbXM7CisJcGdfYmVf c2FzbF9pbml0X2Z1bmMJCWluaXQ7CisJcGdfYmVfc2FzbF9leGNoYW5nZV9mdW5jCWV4Y2hhbmdl OworfSBwZ19iZV9zYXNsX21lY2g7CisKKyNlbmRpZiAvKiBQR19TQVNMX0ggKi8KZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2xpYnBxL3NjcmFtLmggYi9zcmMvaW5jbHVkZS9saWJwcS9zY3JhbS5o CmluZGV4IDJjODc5MTUwZGEuLjllNDU0MGJkZTMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2xp YnBxL3NjcmFtLmgKKysrIGIvc3JjL2luY2x1ZGUvbGlicHEvc2NyYW0uaApAQCAtMTUsMTcgKzE1 LDEwIEBACiAKICNpbmNsdWRlICJsaWIvc3RyaW5naW5mby5oIgogI2luY2x1ZGUgImxpYnBxL2xp YnBxLWJlLmgiCisjaW5jbHVkZSAibGlicHEvc2FzbC5oIgogCi0vKiBTdGF0dXMgY29kZXMgZm9y IG1lc3NhZ2UgZXhjaGFuZ2UgKi8KLSNkZWZpbmUgU0FTTF9FWENIQU5HRV9DT05USU5VRQkJMAot I2RlZmluZSBTQVNMX0VYQ0hBTkdFX1NVQ0NFU1MJCTEKLSNkZWZpbmUgU0FTTF9FWENIQU5HRV9G QUlMVVJFCQkyCi0KLS8qIFJvdXRpbmVzIGRlZGljYXRlZCB0byBhdXRoZW50aWNhdGlvbiAqLwot ZXh0ZXJuIHZvaWQgcGdfYmVfc2NyYW1fZ2V0X21lY2hhbmlzbXMoUG9ydCAqcG9ydCwgU3RyaW5n SW5mbyBidWYpOwotZXh0ZXJuIHZvaWQgKnBnX2JlX3NjcmFtX2luaXQoUG9ydCAqcG9ydCwgY29u c3QgY2hhciAqc2VsZWN0ZWRfbWVjaCwgY29uc3QgY2hhciAqc2hhZG93X3Bhc3MpOwotZXh0ZXJu IGludAlwZ19iZV9zY3JhbV9leGNoYW5nZSh2b2lkICpvcGFxLCBjb25zdCBjaGFyICppbnB1dCwg aW50IGlucHV0bGVuLAotCQkJCQkJCQkgY2hhciAqKm91dHB1dCwgaW50ICpvdXRwdXRsZW4sIGNo YXIgKipsb2dkZXRhaWwpOworLyogSW1wbGVtZW50YXRpb24gKi8KK2V4dGVybiBjb25zdCBwZ19i ZV9zYXNsX21lY2ggcGdfYmVfc2NyYW1fbWVjaDsKIAogLyogUm91dGluZXMgdG8gaGFuZGxlIGFu ZCBjaGVjayBTQ1JBTS1TSEEtMjU2IHNlY3JldCAqLwogZXh0ZXJuIGNoYXIgKnBnX2JlX3NjcmFt X2J1aWxkX3NlY3JldChjb25zdCBjaGFyICpwYXNzd29yZCk7CmRpZmYgLS1naXQgYS9zcmMvaW50 ZXJmYWNlcy9saWJwcS9mZS1hdXRoLXNjcmFtLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1h dXRoLXNjcmFtLmMKaW5kZXggNTg4MTM4NmUzNy4uNTE1ZWY2NmYzNyAxMDA2NDQKLS0tIGEvc3Jj L2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC1zY3JhbS5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xp YnBxL2ZlLWF1dGgtc2NyYW0uYwpAQCAtMjEsNiArMjEsMjIgQEAKICNpbmNsdWRlICJmZS1hdXRo LmgiCiAKIAorLyogVGhlIGV4cG9ydGVkIFNDUkFNIGNhbGxiYWNrIG1lY2hhbmlzbS4gKi8KK3N0 YXRpYyB2b2lkICpzY3JhbV9pbml0KFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqcGFzc3dvcmQs CisJCQkJCQljb25zdCBjaGFyICpzYXNsX21lY2hhbmlzbSk7CitzdGF0aWMgdm9pZCBzY3JhbV9l eGNoYW5nZSh2b2lkICpvcGFxLCBjaGFyICppbnB1dCwgaW50IGlucHV0bGVuLAorCQkJCQkJICAg Y2hhciAqKm91dHB1dCwgaW50ICpvdXRwdXRsZW4sCisJCQkJCQkgICBib29sICpkb25lLCBib29s ICpzdWNjZXNzKTsKK3N0YXRpYyBib29sIHNjcmFtX2NoYW5uZWxfYm91bmQodm9pZCAqb3BhcSk7 CitzdGF0aWMgdm9pZCBzY3JhbV9mcmVlKHZvaWQgKm9wYXEpOworCitjb25zdCBwZ19mZV9zYXNs X21lY2ggcGdfc2NyYW1fbWVjaCA9IHsKKwlzY3JhbV9pbml0LAorCXNjcmFtX2V4Y2hhbmdlLAor CXNjcmFtX2NoYW5uZWxfYm91bmQsCisJc2NyYW1fZnJlZSwKK307CisKIC8qCiAgKiBTdGF0dXMg b2YgZXhjaGFuZ2UgbWVzc2FnZXMgdXNlZCBmb3IgU0NSQU0gYXV0aGVudGljYXRpb24gdmlhIHRo ZQogICogU0FTTCBwcm90b2NvbC4KQEAgLTcyLDEwICs4OCwxMCBAQCBzdGF0aWMgYm9vbCBjYWxj dWxhdGVfY2xpZW50X3Byb29mKGZlX3NjcmFtX3N0YXRlICpzdGF0ZSwKIC8qCiAgKiBJbml0aWFs aXplIFNDUkFNIGV4Y2hhbmdlIHN0YXR1cy4KICAqLwotdm9pZCAqCi1wZ19mZV9zY3JhbV9pbml0 KFBHY29ubiAqY29ubiwKLQkJCQkgY29uc3QgY2hhciAqcGFzc3dvcmQsCi0JCQkJIGNvbnN0IGNo YXIgKnNhc2xfbWVjaGFuaXNtKQorc3RhdGljIHZvaWQgKgorc2NyYW1faW5pdChQR2Nvbm4gKmNv bm4sCisJCSAgIGNvbnN0IGNoYXIgKnBhc3N3b3JkLAorCQkgICBjb25zdCBjaGFyICpzYXNsX21l Y2hhbmlzbSkKIHsKIAlmZV9zY3JhbV9zdGF0ZSAqc3RhdGU7CiAJY2hhcgkgICAqcHJlcF9wYXNz d29yZDsKQEAgLTEyOCw4ICsxNDQsOCBAQCBwZ19mZV9zY3JhbV9pbml0KFBHY29ubiAqY29ubiwK ICAqIE5vdGUgdGhhdCB0aGUgY2FsbGVyIG11c3QgYWxzbyBlbnN1cmUgdGhhdCB0aGUgZXhjaGFu Z2Ugd2FzIGFjdHVhbGx5CiAgKiBzdWNjZXNzZnVsLgogICovCi1ib29sCi1wZ19mZV9zY3JhbV9j aGFubmVsX2JvdW5kKHZvaWQgKm9wYXEpCitzdGF0aWMgYm9vbAorc2NyYW1fY2hhbm5lbF9ib3Vu ZCh2b2lkICpvcGFxKQogewogCWZlX3NjcmFtX3N0YXRlICpzdGF0ZSA9IChmZV9zY3JhbV9zdGF0 ZSAqKSBvcGFxOwogCkBAIC0xNTIsOCArMTY4LDggQEAgcGdfZmVfc2NyYW1fY2hhbm5lbF9ib3Vu ZCh2b2lkICpvcGFxKQogLyoKICAqIEZyZWUgU0NSQU0gZXhjaGFuZ2Ugc3RhdHVzCiAgKi8KLXZv aWQKLXBnX2ZlX3NjcmFtX2ZyZWUodm9pZCAqb3BhcSkKK3N0YXRpYyB2b2lkCitzY3JhbV9mcmVl KHZvaWQgKm9wYXEpCiB7CiAJZmVfc2NyYW1fc3RhdGUgKnN0YXRlID0gKGZlX3NjcmFtX3N0YXRl ICopIG9wYXE7CiAKQEAgLTE4OCwxMCArMjA0LDEwIEBAIHBnX2ZlX3NjcmFtX2ZyZWUodm9pZCAq b3BhcSkKIC8qCiAgKiBFeGNoYW5nZSBhIFNDUkFNIG1lc3NhZ2Ugd2l0aCBiYWNrZW5kLgogICov Ci12b2lkCi1wZ19mZV9zY3JhbV9leGNoYW5nZSh2b2lkICpvcGFxLCBjaGFyICppbnB1dCwgaW50 IGlucHV0bGVuLAotCQkJCQkgY2hhciAqKm91dHB1dCwgaW50ICpvdXRwdXRsZW4sCi0JCQkJCSBi b29sICpkb25lLCBib29sICpzdWNjZXNzKQorc3RhdGljIHZvaWQKK3NjcmFtX2V4Y2hhbmdlKHZv aWQgKm9wYXEsIGNoYXIgKmlucHV0LCBpbnQgaW5wdXRsZW4sCisJCQkgICBjaGFyICoqb3V0cHV0 LCBpbnQgKm91dHB1dGxlbiwKKwkJCSAgIGJvb2wgKmRvbmUsIGJvb2wgKnN1Y2Nlc3MpCiB7CiAJ ZmVfc2NyYW1fc3RhdGUgKnN0YXRlID0gKGZlX3NjcmFtX3N0YXRlICopIG9wYXE7CiAJUEdjb25u CSAgICpjb25uID0gc3RhdGUtPmNvbm47CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJw cS9mZS1hdXRoLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLmMKaW5kZXggZTgwNjI2 NDdlNi4uZDVjYmFjMTA4ZSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtYXV0 aC5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGguYwpAQCAtNDgyLDcgKzQ4Miwx MCBAQCBwZ19TQVNMX2luaXQoUEdjb25uICpjb25uLCBpbnQgcGF5bG9hZGxlbikKIAkJCQkgKiBj aGFubmVsX2JpbmRpbmcgaXMgbm90IGRpc2FibGVkLgogCQkJCSAqLwogCQkJCWlmIChjb25uLT5j aGFubmVsX2JpbmRpbmdbMF0gIT0gJ2QnKQkvKiBkaXNhYmxlICovCisJCQkJewogCQkJCQlzZWxl Y3RlZF9tZWNoYW5pc20gPSBTQ1JBTV9TSEFfMjU2X1BMVVNfTkFNRTsKKwkJCQkJY29ubi0+c2Fz bCA9ICZwZ19zY3JhbV9tZWNoOworCQkJCX0KICNlbHNlCiAJCQkJLyoKIAkJCQkgKiBUaGUgY2xp ZW50IGRvZXMgbm90IHN1cHBvcnQgY2hhbm5lbCBiaW5kaW5nLiAgSWYgaXQgaXMKQEAgLTUxNiw3 ICs1MTksMTAgQEAgcGdfU0FTTF9pbml0KFBHY29ubiAqY29ubiwgaW50IHBheWxvYWRsZW4pCiAJ CX0KIAkJZWxzZSBpZiAoc3RyY21wKG1lY2hhbmlzbV9idWYuZGF0YSwgU0NSQU1fU0hBXzI1Nl9O QU1FKSA9PSAwICYmCiAJCQkJICFzZWxlY3RlZF9tZWNoYW5pc20pCisJCXsKIAkJCXNlbGVjdGVk X21lY2hhbmlzbSA9IFNDUkFNX1NIQV8yNTZfTkFNRTsKKwkJCWNvbm4tPnNhc2wgPSAmcGdfc2Ny YW1fbWVjaDsKKwkJfQogCX0KIAogCWlmICghc2VsZWN0ZWRfbWVjaGFuaXNtKQpAQCAtNTU1LDIw ICs1NjEsMjIgQEAgcGdfU0FTTF9pbml0KFBHY29ubiAqY29ubiwgaW50IHBheWxvYWRsZW4pCiAJ CWdvdG8gZXJyb3I7CiAJfQogCisJQXNzZXJ0KGNvbm4tPnNhc2wpOworCiAJLyoKIAkgKiBJbml0 aWFsaXplIHRoZSBTQVNMIHN0YXRlIGluZm9ybWF0aW9uIHdpdGggYWxsIHRoZSBpbmZvcm1hdGlv biBnYXRoZXJlZAogCSAqIGR1cmluZyB0aGUgaW5pdGlhbCBleGNoYW5nZS4KIAkgKgogCSAqIE5v dGU6IE9ubHkgdGxzLXVuaXF1ZSBpcyBzdXBwb3J0ZWQgZm9yIHRoZSBtb21lbnQuCiAJICovCi0J Y29ubi0+c2FzbF9zdGF0ZSA9IHBnX2ZlX3NjcmFtX2luaXQoY29ubiwKKwljb25uLT5zYXNsX3N0 YXRlID0gY29ubi0+c2FzbC0+aW5pdChjb25uLAogCQkJCQkJCQkJCXBhc3N3b3JkLAogCQkJCQkJ CQkJCXNlbGVjdGVkX21lY2hhbmlzbSk7CiAJaWYgKCFjb25uLT5zYXNsX3N0YXRlKQogCQlnb3Rv IG9vbV9lcnJvcjsKIAogCS8qIEdldCB0aGUgbWVjaGFuaXNtLXNwZWNpZmljIEluaXRpYWwgQ2xp ZW50IFJlc3BvbnNlLCBpZiBhbnkgKi8KLQlwZ19mZV9zY3JhbV9leGNoYW5nZShjb25uLT5zYXNs X3N0YXRlLAorCWNvbm4tPnNhc2wtPmV4Y2hhbmdlKGNvbm4tPnNhc2xfc3RhdGUsCiAJCQkJCQkg TlVMTCwgLTEsCiAJCQkJCQkgJmluaXRpYWxyZXNwb25zZSwgJmluaXRpYWxyZXNwb25zZWxlbiwK IAkJCQkJCSAmZG9uZSwgJnN1Y2Nlc3MpOwpAQCAtNjQ5LDcgKzY1Nyw3IEBAIHBnX1NBU0xfY29u dGludWUoUEdjb25uICpjb25uLCBpbnQgcGF5bG9hZGxlbiwgYm9vbCBmaW5hbCkKIAkvKiBGb3Ig c2FmZXR5IGFuZCBjb252ZW5pZW5jZSwgZW5zdXJlIHRoZSBidWZmZXIgaXMgTlVMTC10ZXJtaW5h dGVkLiAqLwogCWNoYWxsZW5nZVtwYXlsb2FkbGVuXSA9ICdcMCc7CiAKLQlwZ19mZV9zY3JhbV9l eGNoYW5nZShjb25uLT5zYXNsX3N0YXRlLAorCWNvbm4tPnNhc2wtPmV4Y2hhbmdlKGNvbm4tPnNh c2xfc3RhdGUsCiAJCQkJCQkgY2hhbGxlbmdlLCBwYXlsb2FkbGVuLAogCQkJCQkJICZvdXRwdXQs ICZvdXRwdXRsZW4sCiAJCQkJCQkgJmRvbmUsICZzdWNjZXNzKTsKQEAgLTgzMCw3ICs4MzgsNyBA QCBjaGVja19leHBlY3RlZF9hcmVxKEF1dGhSZXF1ZXN0IGFyZXEsIFBHY29ubiAqY29ubikKIAkJ CWNhc2UgQVVUSF9SRVFfU0FTTF9GSU46CiAJCQkJYnJlYWs7CiAJCQljYXNlIEFVVEhfUkVRX09L OgotCQkJCWlmICghcGdfZmVfc2NyYW1fY2hhbm5lbF9ib3VuZChjb25uLT5zYXNsX3N0YXRlKSkK KwkJCQlpZiAoIWNvbm4tPnNhc2wgfHwgIWNvbm4tPnNhc2wtPmNoYW5uZWxfYm91bmQoY29ubi0+ c2FzbF9zdGF0ZSkpCiAJCQkJewogCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmY29ubi0+ZXJy b3JNZXNzYWdlLAogCQkJCQkJCQkJCSBsaWJwcV9nZXR0ZXh0KCJjaGFubmVsIGJpbmRpbmcgcmVx dWlyZWQsIGJ1dCBzZXJ2ZXIgYXV0aGVudGljYXRlZCBjbGllbnQgd2l0aG91dCBjaGFubmVsIGJp bmRpbmdcbiIpKTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGguaCBi L3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWF1dGguaAppbmRleCA3ODc3ZGNiZDA5Li42MzkyNzQ4 MGVlIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1hdXRoLmgKKysrIGIvc3Jj L2ludGVyZmFjZXMvbGlicHEvZmUtYXV0aC5oCkBAIC0yMiwxNSArMjIsOCBAQAogZXh0ZXJuIGlu dAlwZ19mZV9zZW5kYXV0aChBdXRoUmVxdWVzdCBhcmVxLCBpbnQgcGF5bG9hZGxlbiwgUEdjb25u ICpjb25uKTsKIGV4dGVybiBjaGFyICpwZ19mZV9nZXRhdXRobmFtZShQUUV4cEJ1ZmZlciBlcnJv ck1lc3NhZ2UpOwogCi0vKiBQcm90b3R5cGVzIGZvciBmdW5jdGlvbnMgaW4gZmUtYXV0aC1zY3Jh bS5jICovCi1leHRlcm4gdm9pZCAqcGdfZmVfc2NyYW1faW5pdChQR2Nvbm4gKmNvbm4sCi0JCQkJ CQkJICBjb25zdCBjaGFyICpwYXNzd29yZCwKLQkJCQkJCQkgIGNvbnN0IGNoYXIgKnNhc2xfbWVj aGFuaXNtKTsKLWV4dGVybiBib29sIHBnX2ZlX3NjcmFtX2NoYW5uZWxfYm91bmQodm9pZCAqb3Bh cSk7Ci1leHRlcm4gdm9pZCBwZ19mZV9zY3JhbV9mcmVlKHZvaWQgKm9wYXEpOwotZXh0ZXJuIHZv aWQgcGdfZmVfc2NyYW1fZXhjaGFuZ2Uodm9pZCAqb3BhcSwgY2hhciAqaW5wdXQsIGludCBpbnB1 dGxlbiwKLQkJCQkJCQkJIGNoYXIgKipvdXRwdXQsIGludCAqb3V0cHV0bGVuLAotCQkJCQkJCQkg Ym9vbCAqZG9uZSwgYm9vbCAqc3VjY2Vzcyk7CisvKiBNZWNoYW5pc21zIGluIGZlLWF1dGgtc2Ny YW0uYyAqLworZXh0ZXJuIGNvbnN0IHBnX2ZlX3Nhc2xfbWVjaCBwZ19zY3JhbV9tZWNoOwogZXh0 ZXJuIGNoYXIgKnBnX2ZlX3NjcmFtX2J1aWxkX3NlY3JldChjb25zdCBjaGFyICpwYXNzd29yZCk7 CiAKICNlbmRpZgkJCQkJCQkvKiBGRV9BVVRIX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL2ZlLWNvbm5lY3QuYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3Qu YwppbmRleCA4MDcwMzY5OGI4Li4xMGQwMDc1ODJjIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNl cy9saWJwcS9mZS1jb25uZWN0LmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVj dC5jCkBAIC01MTcsMTEgKzUxNyw3IEBAIHBxRHJvcENvbm5lY3Rpb24oUEdjb25uICpjb25uLCBi b29sIGZsdXNoSW5wdXQpCiAjZW5kaWYKIAlpZiAoY29ubi0+c2FzbF9zdGF0ZSkKIAl7Ci0JCS8q Ci0JCSAqIFhYWDogaWYgc3VwcG9ydCBmb3IgbW9yZSBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc21z IGlzIGFkZGVkLCB0aGlzCi0JCSAqIG5lZWRzIHRvIGNhbGwgdGhlIHJpZ2h0ICdmcmVlJyBmdW5j dGlvbi4KLQkJICovCi0JCXBnX2ZlX3NjcmFtX2ZyZWUoY29ubi0+c2FzbF9zdGF0ZSk7CisJCWNv bm4tPnNhc2wtPmZyZWUoY29ubi0+c2FzbF9zdGF0ZSk7CiAJCWNvbm4tPnNhc2xfc3RhdGUgPSBO VUxMOwogCX0KIH0KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWludC5o IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmgKaW5kZXggZTgxZGMzNzkwNi4uOTll YWZmNTBhMCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmgKKysr IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmgKQEAgLTMzOSw2ICszMzksMTkgQEAg dHlwZWRlZiBzdHJ1Y3QgcGdfY29ubl9ob3N0CiAJCQkJCQkJCSAqIGZvdW5kIGluIHBhc3N3b3Jk IGZpbGUuICovCiB9IHBnX2Nvbm5faG9zdDsKIAordHlwZWRlZiB2b2lkICooKnBnX2ZlX3Nhc2xf aW5pdF9mdW5jKShQR2Nvbm4gKiwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwordHlwZWRl ZiB2b2lkICAoKnBnX2ZlX3Nhc2xfZXhjaGFuZ2VfZnVuYykodm9pZCAqLCBjaGFyICosIGludCwg Y2hhciAqKiwgaW50ICosIGJvb2wgKiwgYm9vbCAqKTsKK3R5cGVkZWYgYm9vbCAgKCpwZ19mZV9z YXNsX2NoYW5uZWxfYm91bmRfZnVuYykodm9pZCAqKTsKK3R5cGVkZWYgdm9pZCAgKCpwZ19mZV9z YXNsX2ZyZWVfZnVuYykodm9pZCAqKTsKKwordHlwZWRlZiBzdHJ1Y3QKK3sKKwlwZ19mZV9zYXNs X2luaXRfZnVuYwkJCWluaXQ7CisJcGdfZmVfc2FzbF9leGNoYW5nZV9mdW5jCQlleGNoYW5nZTsK KwlwZ19mZV9zYXNsX2NoYW5uZWxfYm91bmRfZnVuYwljaGFubmVsX2JvdW5kOworCXBnX2ZlX3Nh c2xfZnJlZV9mdW5jCQkJZnJlZTsKK30gcGdfZmVfc2FzbF9tZWNoOworCiAvKgogICogUEdjb25u IHN0b3JlcyBhbGwgdGhlIHN0YXRlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgc2luZ2xlIGNvbm5l Y3Rpb24KICAqIHRvIGEgYmFja2VuZC4KQEAgLTUwMCw2ICs1MTMsNyBAQCBzdHJ1Y3QgcGdfY29u bgogCVBHcmVzdWx0ICAgKm5leHRfcmVzdWx0OwkvKiBuZXh0IHJlc3VsdCAodXNlZCBpbiBzaW5n bGUtcm93IG1vZGUpICovCiAKIAkvKiBBc3NvcnRlZCBzdGF0ZSBmb3IgU0FTTCwgU1NMLCBHU1Ms IGV0YyAqLworCWNvbnN0IHBnX2ZlX3Nhc2xfbWVjaCAqc2FzbDsKIAl2b2lkCSAgICpzYXNsX3N0 YXRlOwogCiAJLyogU1NMIHN0cnVjdHVyZXMgKi8KLS0gCjIuMjUuMQoK --_002_9dc553fe86ba34bff1e0b636c493b527fc7bc030camelvmwarecom_--