From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 624CEC352A3 for ; Tue, 11 Feb 2020 08:07:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A0DE12082F for ; Tue, 11 Feb 2020 08:07:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727901AbgBKIH5 (ORCPT ); Tue, 11 Feb 2020 03:07:57 -0500 Received: from mga04.intel.com ([192.55.52.120]:44088 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727618AbgBKIH5 (ORCPT ); Tue, 11 Feb 2020 03:07:57 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Feb 2020 00:07:56 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,428,1574150400"; d="scan'208";a="266164751" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga002.fm.intel.com with ESMTP; 11 Feb 2020 00:07:56 -0800 Received: from BGSMSX108.gar.corp.intel.com (10.223.4.192) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 11 Feb 2020 00:07:55 -0800 Received: from bgsmsx110.gar.corp.intel.com ([169.254.11.221]) by BGSMSX108.gar.corp.intel.com ([169.254.8.91]) with mapi id 14.03.0439.000; Tue, 11 Feb 2020 13:37:52 +0530 From: "Kishore, Ajay" To: Matias Karhumaa CC: "linux-bluetooth@vger.kernel.org" Subject: RE: [PATCH v2 4/6] obexd: Add parser for conversation element Thread-Topic: [PATCH v2 4/6] obexd: Add parser for conversation element Thread-Index: AQHVx8+54oVNQJKC7U+odIA6HoSS9qgV1CUQ Date: Tue, 11 Feb 2020 08:07:51 +0000 Message-ID: References: <1577163782-28759-1-git-send-email-ajay.kishore@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYzk4NmMwNTQtYWRhNi00YmRlLThkZjctMDEwN2FhN2U5Zjk4IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiUURZTGs0bGJQa1wvQllcL1dzTHVDQkdlN0ZZeHFIVHQ0MzJSYTZxeE1cLzE1N1J6Q0U1UWJZZkJyTW1WTHNaMGhqZCJ9 x-originating-ip: [10.223.10.10] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org SGkgTWF0aWFzLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1hdGlh cyBLYXJodW1hYSA8bWF0aWFzLmthcmh1bWFhQGdtYWlsLmNvbT4NCj4gU2VudDogRnJpZGF5LCBK YW51YXJ5IDEwLCAyMDIwIDk6MzQgUE0NCj4gVG86IEtpc2hvcmUsIEFqYXkgPGFqYXkua2lzaG9y ZUBpbnRlbC5jb20+DQo+IENjOiBsaW51eC1ibHVldG9vdGhAdmdlci5rZXJuZWwub3JnDQo+IFN1 YmplY3Q6IFJlOiBbUEFUQ0ggdjIgNC82XSBvYmV4ZDogQWRkIHBhcnNlciBmb3IgY29udmVyc2F0 aW9uIGVsZW1lbnQNCj4gDQo+IEhpIEFqYXksDQo+IA0KPiB0aSAyNC4gam91bHVrLiAyMDE5IGts byA3LjI3IEFqYXkgS2lzaG9yZSAoYWpheS5raXNob3JlQGludGVsLmNvbSkga2lyam9pdHRpOg0K PiA+DQo+ID4gQ2hhbmdlcyBtYWRlIHRvIGRlZmluZSBjb252byBwYXJzZXIgZnVuY3Rpb24gdG8g aXRlcmF0ZSB0aHJvdWdoIGFsbA0KPiA+IHN1cHBvcnRlZCBjb252ZXJzYXRpb24gZWxlbWVudHMg YW5kIHBhcnNlIHRoZWlyIHZhbHVlcy4NCj4gPg0KPiA+IENvLWF1dGhvcmVkLWJ5OiBCaGFyYXQg Qmh1c2FuIFBhbmRhIDxiaGFyYXQuYi5wYW5kYUBpbnRlbC5jb20+DQo+ID4gU2lnbmVkLW9mZi1i eTogQWpheSBLaXNob3JlIDxhamF5Lmtpc2hvcmVAaW50ZWwuY29tPg0KPiBTaWduZWQtb2YtYnkg aXNuJ3QgbmVjZXNzYXJ5IGZvciBCbHVleiBwYXRjaGVzLg0KUmVtb3ZlZCBTaWduZWQtb2YtYnkg aW4gbGF0ZXN0IHBhdGNoZXMgYW5kIHB1c2hlZCB0aGF0Lg0KPiANCj4gPiAtLS0NCj4gPiAgb2Jl eGQvY2xpZW50L21hcC5jIHwgNDI3DQo+ID4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0NCj4gPiAgb2JleGQvc3JjL21hcF9hcC5oIHwgIDQwICsr LS0tDQo+ID4gIDIgZmlsZXMgY2hhbmdlZCwgNDQ2IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9u cygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL29iZXhkL2NsaWVudC9tYXAuYyBiL29iZXhkL2Ns aWVudC9tYXAuYyBpbmRleA0KPiA+IGYyZjJiNzMuLjk3NTdiOTkgMTAwNjQ0DQo+ID4gLS0tIGEv b2JleGQvY2xpZW50L21hcC5jDQo+ID4gKysrIGIvb2JleGQvY2xpZW50L21hcC5jDQo+ID4gQEAg LTEzOSwxMiArMTM5LDM1IEBAIHN0cnVjdCBtYXBfbXNnIHsNCj4gPiAgICAgICAgIEdEQnVzUGVu ZGluZ1Byb3BlcnR5U2V0IHBlbmRpbmc7ICB9Ow0KPiA+DQo+ID4gK3N0cnVjdCBtYXBfY29udm8g ew0KPiA+ICsgICAgICAgc3RydWN0IG1hcF9kYXRhICpkYXRhOw0KPiA+ICsgICAgICAgY2hhciAq cGF0aDsNCj4gPiArICAgICAgIHVpbnQ2NF90IGlkOw0KPiA+ICsgICAgICAgY2hhciAqY29udm9f bmFtZTsNCj4gPiArICAgICAgIGNoYXIgKmNvbnZvX2xhc3RfYWN0aXZpdHk7DQo+ID4gKyAgICAg ICBjaGFyICpyZWFkX3N0YXR1czsNCj4gPiArICAgICAgIGNoYXIgKnN1bW1hcnk7DQo+ID4gKyAg ICAgICBjaGFyICp1Y2k7DQo+ID4gKyAgICAgICBjaGFyICpkaXNwbGF5X25hbWU7DQo+ID4gKyAg ICAgICB1aW50OF90IGNoYXRfc3RhdGU7DQo+ID4gKyAgICAgICBjaGFyICpsYXN0X2FjdGl2aXR5 Ow0KPiA+ICsgICAgICAgY2hhciAqeF9idF91aWQ7DQo+ID4gKyAgICAgICBjaGFyICpuYW1lOw0K PiA+ICsgICAgICAgdWludDhfdCBwcmVzZW5jZV9hdmFpbGFiaWxpdHk7DQo+ID4gKyAgICAgICBj aGFyICpwcmVzZW5jZV90ZXh0Ow0KPiA+ICsgICAgICAgaW50OF90IHByaW9yaXR5Ow0KPiA+ICsg ICAgICAgY2hhciAqZm9sZGVyOw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiAgc3RydWN0IG1hcF9wYXJz ZXIgew0KPiA+ICAgICAgICAgc3RydWN0IHBlbmRpbmdfcmVxdWVzdCAqcmVxdWVzdDsNCj4gPiAg ICAgICAgIERCdXNNZXNzYWdlSXRlciAqaXRlcjsNCj4gPiAgfTsNCj4gPg0KPiA+ICBzdGF0aWMg REJ1c0Nvbm5lY3Rpb24gKmNvbm4gPSBOVUxMOw0KPiA+ICtEQnVzTWVzc2FnZUl0ZXIgY29udm9f ZW50cnksICpjb252b19pdGVyOyBzdHJ1Y3QgbWFwX2NvbnZvDQo+ID4gKypjb252ZXJzYXRpb247 IHN0YXRpYyBib29sIGNvbnZvX2VsZW1lbnRfZW5kID0gRkFMU0U7DQo+ID4NCj4gPiAgc3RhdGlj IHN0cnVjdCBwZW5kaW5nX3JlcXVlc3QgKnBlbmRpbmdfcmVxdWVzdF9uZXcoc3RydWN0IG1hcF9k YXRhICptYXAsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBEQnVzTWVzc2FnZQ0KPiA+ICptZXNzYWdlKSBAQCAtODM3LDYgKzg2MCw4 IEBAIHN0YXRpYyB2b2lkIHBhcnNlX3R5cGUoc3RydWN0IG1hcF9tc2cNCj4gKm1zZywgY29uc3Qg Y2hhciAqdmFsdWUpDQo+ID4gICAgICAgICAgICAgICAgIHR5cGUgPSAiZW1haWwiOw0KPiA+ICAg ICAgICAgZWxzZSBpZiAoc3RyY2FzZWNtcCh2YWx1ZSwgIk1NUyIpID09IDApDQo+ID4gICAgICAg ICAgICAgICAgIHR5cGUgPSAibW1zIjsNCj4gPiArICAgICAgIGVsc2UgaWYgKHN0cmNhc2VjbXAo dmFsdWUsICJJTSIpID09IDApDQo+ID4gKyAgICAgICAgICAgICAgIHR5cGUgPSAiSU0iOw0KPiA+ DQo+ID4gICAgICAgICBpZiAoZ19zdHJjbXAwKG1zZy0+dHlwZSwgdHlwZSkgPT0gMCkNCj4gPiAg ICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+IEBAIC0xMDc0LDYgKzEwOTksMjg1IEBAIHN0YXRp YyB2b2lkIHBhcnNlX3Byb3RlY3RlZChzdHJ1Y3QgbWFwX21zZw0KPiAqbXNnLCBjb25zdCBjaGFy ICp2YWx1ZSkNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNQVBfTVNHX0lOVEVSRkFDRSwNCj4gPiAiUHJvdGVjdGVkIik7ICB9DQo+ID4NCj4gPiAr c3RhdGljIHZvaWQgbWFwX2NvbnZvX2ZyZWUodm9pZCAqZGF0YSkgew0KPiA+ICsgICAgICAgc3Ry dWN0IG1hcF9jb252byAqY29udm8gPSBkYXRhOw0KPiA+ICsNCj4gPiArICAgICAgIGdfZnJlZShj b252by0+cGF0aCk7DQo+ID4gKyAgICAgICBnX2ZyZWUoY29udm8tPmNvbnZvX25hbWUpOw0KPiA+ ICsgICAgICAgZ19mcmVlKGNvbnZvLT5mb2xkZXIpOw0KPiA+ICsgICAgICAgZ19mcmVlKGNvbnZv LT5jb252b19sYXN0X2FjdGl2aXR5KTsNCj4gPiArICAgICAgIGdfZnJlZShjb252by0+cmVhZF9z dGF0dXMpOw0KPiA+ICsgICAgICAgZ19mcmVlKGNvbnZvLT5zdW1tYXJ5KTsNCj4gPiArICAgICAg IGdfZnJlZShjb252by0+dWNpKTsNCj4gPiArICAgICAgIGdfZnJlZShjb252by0+ZGlzcGxheV9u YW1lKTsNCj4gPiArICAgICAgIGdfZnJlZShjb252by0+bGFzdF9hY3Rpdml0eSk7DQo+ID4gKyAg ICAgICBnX2ZyZWUoY29udm8tPnhfYnRfdWlkKTsNCj4gPiArICAgICAgIGdfZnJlZShjb252by0+ bmFtZSk7DQo+ID4gKyAgICAgICBnX2ZyZWUoY29udm8tPnByZXNlbmNlX3RleHQpOw0KPiA+ICsg ICAgICAgZ19mcmVlKGNvbnZvKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGdib29sZWFu IGNvbnZvX25hbWVfZXhpc3RzKGNvbnN0IEdEQnVzUHJvcGVydHlUYWJsZSAqcHJvcGVydHksDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZvaWQNCj4gPiArKmRhdGEpIHsNCj4gPiArICAgICAgIHN0cnVjdCBtYXBfY29u dm8gKmNvbnZvID0gZGF0YTsNCj4gPiArDQo+ID4gKyAgICAgICByZXR1cm4gY29udm8tPmNvbnZv X25hbWUgIT0gTlVMTDsgfQ0KPiA+ICsNCj4gPiArc3RhdGljIGdib29sZWFuIGdldF9jb252b19u YW1lKGNvbnN0IEdEQnVzUHJvcGVydHlUYWJsZSAqcHJvcGVydHksDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERCdXNNZXNzYWdlSXRlciAqaXRlciwgdm9pZA0K PiA+ICsqZGF0YSkgew0KPiA+ICsgICAgICAgc3RydWN0IG1hcF9jb252byAqY29udm8gPSBkYXRh Ow0KPiA+ICsNCj4gPiArICAgICAgIGRidXNfbWVzc2FnZV9pdGVyX2FwcGVuZF9iYXNpYyhpdGVy LCBEQlVTX1RZUEVfU1RSSU5HLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICZjb252by0+Y29udm9fbmFtZSk7DQo+ID4gKw0KPiA+ICsgICAgICAg cmV0dXJuIFRSVUU7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBnYm9vbGVhbiBzdW1tYXJ5 X2V4aXN0cyhjb25zdCBHREJ1c1Byb3BlcnR5VGFibGUgKnByb3BlcnR5LA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 b2lkDQo+ID4gKypkYXRhKSB7DQo+ID4gKyAgICAgICBzdHJ1Y3QgbWFwX2NvbnZvICpjb252byA9 IGRhdGE7DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0dXJuIGNvbnZvLT5zdW1tYXJ5ICE9IE5VTEw7 IH0NCj4gPiArDQo+ID4gK3N0YXRpYyBnYm9vbGVhbiBnZXRfc3VtbWFyeShjb25zdCBHREJ1c1By b3BlcnR5VGFibGUgKnByb3BlcnR5LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBEQnVzTWVzc2FnZUl0ZXIgKml0ZXIsIHZvaWQNCj4gPiArKmRhdGEpIHsNCj4g PiArICAgICAgIHN0cnVjdCBtYXBfY29udm8gKmNvbnZvID0gZGF0YTsNCj4gPiArDQo+ID4gKyAg ICAgICBkYnVzX21lc3NhZ2VfaXRlcl9hcHBlbmRfYmFzaWMoaXRlciwgREJVU19UWVBFX1NUUklO RywNCj4gPiArDQo+ID4gKyAmY29udm8tPnN1bW1hcnkpOw0KPiA+ICsNCj4gPiArICAgICAgIHJl dHVybiBUUlVFOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgZ2Jvb2xlYW4gdWNpX2V4aXN0 cyhjb25zdCBHREJ1c1Byb3BlcnR5VGFibGUgKnByb3BlcnR5LCB2b2lkDQo+ID4gKypkYXRhKSB7 DQo+ID4gKyAgICAgICBzdHJ1Y3QgbWFwX2NvbnZvICpjb252byA9IGRhdGE7DQo+ID4gKw0KPiA+ ICsgICAgICAgcmV0dXJuIGNvbnZvLT51Y2kgIT0gTlVMTDsNCj4gPiArfQ0KPiA+ICsNCj4gPiAr c3RhdGljIGdib29sZWFuIGdldF91Y2koY29uc3QgR0RCdXNQcm9wZXJ0eVRhYmxlICpwcm9wZXJ0 eSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREJ1c01lc3Nh Z2VJdGVyICppdGVyLCB2b2lkDQo+ID4gKypkYXRhKSB7DQo+ID4gKyAgICAgICBzdHJ1Y3QgbWFw X2NvbnZvICpjb252byA9IGRhdGE7DQo+ID4gKw0KPiA+ICsgICAgICAgZGJ1c19tZXNzYWdlX2l0 ZXJfYXBwZW5kX2Jhc2ljKGl0ZXIsIERCVVNfVFlQRV9TVFJJTkcsDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29udm8tPnVjaSk7 DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0dXJuIFRSVUU7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0 YXRpYyBnYm9vbGVhbiBkaXNwbGF5X25hbWVfZXhpc3RzKGNvbnN0IEdEQnVzUHJvcGVydHlUYWJs ZSAqcHJvcGVydHksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQNCj4gPiArKmRhdGEpIHsNCj4gPiArICAgICAg IHN0cnVjdCBtYXBfY29udm8gKmNvbnZvID0gZGF0YTsNCj4gPiArDQo+ID4gKyAgICAgICByZXR1 cm4gY29udm8tPmRpc3BsYXlfbmFtZSAhPSBOVUxMOyB9DQo+ID4gKw0KPiA+ICtzdGF0aWMgZ2Jv b2xlYW4gZ2V0X2Rpc3BsYXlfbmFtZShjb25zdCBHREJ1c1Byb3BlcnR5VGFibGUgKnByb3BlcnR5 LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQnVzTWVzc2Fn ZUl0ZXIgKml0ZXIsIHZvaWQNCj4gPiArKmRhdGEpIHsNCj4gPiArICAgICAgIHN0cnVjdCBtYXBf Y29udm8gKmNvbnZvID0gZGF0YTsNCj4gPiArDQo+ID4gKyAgICAgICBkYnVzX21lc3NhZ2VfaXRl cl9hcHBlbmRfYmFzaWMoaXRlciwgREJVU19UWVBFX1NUUklORywNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29udm8tPmRpc3BsYXlfbmFtZSk7 DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0dXJuIFRSVUU7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0 YXRpYyBnYm9vbGVhbiB4X2J0X3VpZF9leGlzdHMoY29uc3QgR0RCdXNQcm9wZXJ0eVRhYmxlICpw cm9wZXJ0eSwNCj4gPiArdm9pZCAqZGF0YSkgew0KPiA+ICsgICAgICAgc3RydWN0IG1hcF9jb252 byAqY29udm8gPSBkYXRhOw0KPiA+ICsNCj4gPiArICAgICAgIHJldHVybiBjb252by0+eF9idF91 aWQgIT0gTlVMTDsgfQ0KPiA+ICsNCj4gPiArc3RhdGljIGdib29sZWFuIGdldF94X2J0X3VpZChj b25zdCBHREJ1c1Byb3BlcnR5VGFibGUgKnByb3BlcnR5LA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBEQnVzTWVzc2FnZUl0ZXIgKml0ZXIsIHZvaWQNCj4gPiAr KmRhdGEpIHsNCj4gPiArICAgICAgIHN0cnVjdCBtYXBfY29udm8gKmNvbnZvID0gZGF0YTsNCj4g PiArDQo+ID4gKyAgICAgICBkYnVzX21lc3NhZ2VfaXRlcl9hcHBlbmRfYmFzaWMoaXRlciwgREJV U19UWVBFX1VJTlQ2NCwNCj4gPiArDQo+ID4gKyAmY29udm8tPnhfYnRfdWlkKTsNCj4gPiArDQo+ ID4gKyAgICAgICByZXR1cm4gVFJVRTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0 IEdEQnVzUHJvcGVydHlUYWJsZSBtYXBfY29udm9fcHJvcGVydGllc1tdID0gew0KPiA+ICsgICAg ICAgeyAiQ29udm9OYW1lIiwgInMiLCBnZXRfY29udm9fbmFtZSwgTlVMTCwgY29udm9fbmFtZV9l eGlzdHMgfSwNCj4gPiArICAgICAgIHsgIlN1bW1hcnkiLCAicyIsIGdldF9zdW1tYXJ5LCBOVUxM LCBzdW1tYXJ5X2V4aXN0cyB9LA0KPiA+ICsgICAgICAgeyAiVWNpIiwgInMiLCBnZXRfdWNpLCBO VUxMLCB1Y2lfZXhpc3RzIH0sDQo+ID4gKyAgICAgICB7ICJEaXNwbGF5TmFtZSIsICJzIiwgZ2V0 X2Rpc3BsYXlfbmFtZSwgTlVMTCwgZGlzcGxheV9uYW1lX2V4aXN0cyB9LA0KPiA+ICsgICAgICAg eyAiWEJ0VWlkIiwgInMiLCBnZXRfeF9idF91aWQsIE5VTEwsIHhfYnRfdWlkX2V4aXN0c30sDQo+ ID4gKyAgICAgICB7IH0NCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIHBhcnNlX2Nv bnZvX25hbWUoc3RydWN0IG1hcF9jb252byAqY29udm8sIGNvbnN0IGNoYXINCj4gPiArKnZhbHVl KSB7DQo+ID4gKyAgICAgICBpZiAoZ19zdHJjbXAwKGNvbnZvLT5jb252b19uYW1lLCB2YWx1ZSkg PT0gMCkNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICsgICAgICAgZ19mcmVlKGNv bnZvLT5jb252b19uYW1lKTsNCj4gPiArICAgICAgIGNvbnZvLT5jb252b19uYW1lID0gZ19zdHJk dXAodmFsdWUpOw0KPiA+ICsNCj4gPiArICAgICAgIGdfZGJ1c19lbWl0X3Byb3BlcnR5X2NoYW5n ZWQoY29ubiwgY29udm8tPnBhdGgsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBNQVBfQ09OVl9JTlRFUkZBQ0UsICJDb252b05hbWUiKTsgfQ0KPiA+ICsNCj4gPiArc3RhdGlj IHZvaWQgcGFyc2VfY29udm9fbGFzdF9hY3Rpdml0eShzdHJ1Y3QgbWFwX2NvbnZvICpjb252bywN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXINCj4gPiArKnZhbHVlKSB7DQo+ID4gKyAgICAgICBpZiAoZ19zdHJjbXAw KGNvbnZvLT5jb252b19sYXN0X2FjdGl2aXR5LCB2YWx1ZSkgPT0gMCkNCj4gPiArICAgICAgICAg ICAgICAgcmV0dXJuOw0KPiA+ICsNCj4gPiArICAgICAgIGdfZnJlZShjb252by0+Y29udm9fbGFz dF9hY3Rpdml0eSk7DQo+ID4gKyAgICAgICBjb252by0+Y29udm9fbGFzdF9hY3Rpdml0eSA9IGdf c3RyZHVwKHZhbHVlKTsNCj4gPiArDQo+ID4gKyAgICAgICBnX2RidXNfZW1pdF9wcm9wZXJ0eV9j aGFuZ2VkKGNvbm4sIGNvbnZvLT5wYXRoLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTUFQX0NPTlZfSU5URVJGQUNFLA0KPiA+ICsiQ29udm9MYXN0QWN0aXZpdHkiKTsgfQ0K PiA+ICsNCj4gPiArc3RhdGljIHZvaWQgcGFyc2VfcmVhZF9zdGF0dXMoc3RydWN0IG1hcF9jb252 byAqY29udm8sIGNvbnN0IGNoYXINCj4gPiArKnZhbHVlKSB7DQo+ID4gKyAgICAgICBpZiAoZ19z dHJjbXAwKGNvbnZvLT5yZWFkX3N0YXR1cywgdmFsdWUpID09IDApDQo+ID4gKyAgICAgICAgICAg ICAgIHJldHVybjsNCj4gPiArDQo+ID4gKyAgICAgICBnX2ZyZWUoY29udm8tPnJlYWRfc3RhdHVz KTsNCj4gPiArICAgICAgIGNvbnZvLT5yZWFkX3N0YXR1cyA9IGdfc3RyZHVwKHZhbHVlKTsNCj4g PiArDQo+ID4gKyAgICAgICBnX2RidXNfZW1pdF9wcm9wZXJ0eV9jaGFuZ2VkKGNvbm4sIGNvbnZv LT5wYXRoLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFQX0NPTlZfSU5U RVJGQUNFLCAiUmVhZFN0YXR1cyIpOyB9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9pZCBwYXJzZV9z dW1tYXJ5KHN0cnVjdCBtYXBfY29udm8gKmNvbnZvLCBjb25zdCBjaGFyICp2YWx1ZSkNCj4gPiAr ew0KPiA+ICsgICAgICAgaWYgKGdfc3RyY21wMChjb252by0+c3VtbWFyeSwgdmFsdWUpID09IDAp DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybjsNCj4gPiArDQo+ID4gKyAgICAgICBnX2ZyZWUo Y29udm8tPnN1bW1hcnkpOw0KPiA+ICsgICAgICAgY29udm8tPnN1bW1hcnkgPSBnX3N0cmR1cCh2 YWx1ZSk7DQo+ID4gKw0KPiA+ICsgICAgICAgZ19kYnVzX2VtaXRfcHJvcGVydHlfY2hhbmdlZChj b25uLCBjb252by0+cGF0aCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTUFQX0NPTlZfSU5URVJGQUNFLA0KPiA+ICsiU3VtbWFyeSIpOyB9DQo+ID4gKw0KPiA+ ICtzdGF0aWMgdm9pZCBwYXJzZV91Y2koc3RydWN0IG1hcF9jb252byAqY29udm8sIGNvbnN0IGNo YXIgKnZhbHVlKSB7DQo+ID4gKyAgICAgICBpZiAoZ19zdHJjbXAwKGNvbnZvLT51Y2ksIHZhbHVl KSA9PSAwKQ0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm47DQo+ID4gKw0KPiA+ICsgICAgICAg Z19mcmVlKGNvbnZvLT51Y2kpOw0KPiA+ICsgICAgICAgY29udm8tPnVjaSA9IGdfc3RyZHVwKHZh bHVlKTsNCj4gPiArDQo+ID4gKyAgICAgICBnX2RidXNfZW1pdF9wcm9wZXJ0eV9jaGFuZ2VkKGNv bm4sIGNvbnZvLT5wYXRoLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNQVBfQ09OVl9JTlRFUkZBQ0UsICJVY2kiKTsgfQ0KPiA+ICsNCj4gPiArc3RhdGljIHZv aWQgcGFyc2VfZGlzcGxheV9uYW1lKHN0cnVjdCBtYXBfY29udm8gKmNvbnZvLCBjb25zdCBjaGFy DQo+ID4gKyp2YWx1ZSkgew0KPiA+ICsgICAgICAgaWYgKGdfc3RyY21wMChjb252by0+ZGlzcGxh eV9uYW1lLCB2YWx1ZSkgPT0gMCkNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICsN Cj4gPiArICAgICAgIGdfZnJlZShjb252by0+ZGlzcGxheV9uYW1lKTsNCj4gPiArICAgICAgIGNv bnZvLT5kaXNwbGF5X25hbWUgPSBnX3N0cmR1cCh2YWx1ZSk7DQo+ID4gKw0KPiA+ICsgICAgICAg Z19kYnVzX2VtaXRfcHJvcGVydHlfY2hhbmdlZChjb25uLCBjb252by0+cGF0aCwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFQX0NPTlZfSU5URVJGQUNFLA0K PiA+ICsiRGlzcGxheU5hbWUiKTsgfQ0KPiA+ICsNCj4gPiArc3RhdGljIHZvaWQgcGFyc2VfY2hh dF9zdGF0ZShzdHJ1Y3QgbWFwX2NvbnZvICpjb252bywgY29uc3QgY2hhcg0KPiA+ICsqdmFsdWUp IHsNCj4gPiArICAgICAgIHVpbnQ4X3QgY2hhdF9zdGF0ZSA9IGdfYXNjaWlfc3RydG9sbCh2YWx1 ZSwgTlVMTCwgMTApOw0KPiA+ICsNCj4gPiArICAgICAgIGlmIChjb252by0+Y2hhdF9zdGF0ZSA9 PSBjaGF0X3N0YXRlKQ0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm47DQo+ID4gKw0KPiA+ICsg ICAgICAgY29udm8tPmNoYXRfc3RhdGUgPSBjaGF0X3N0YXRlOw0KPiA+ICsNCj4gPiArICAgICAg IGdfZGJ1c19lbWl0X3Byb3BlcnR5X2NoYW5nZWQoY29ubiwgY29udm8tPnBhdGgsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BUF9DT05WX0lOVEVSRkFDRSwN Cj4gPiArIkNoYXRTdGF0ZSIpOyB9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9pZCBwYXJzZV9sYXN0 X2FjdGl2aXR5KHN0cnVjdCBtYXBfY29udm8gKmNvbnZvLCBjb25zdCBjaGFyDQo+ID4gKyp2YWx1 ZSkgew0KPiA+ICsgICAgICAgaWYgKGdfc3RyY21wMChjb252by0+bGFzdF9hY3Rpdml0eSwgdmFs dWUpID09IDApDQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybjsNCj4gPiArDQo+ID4gKyAgICAg ICBnX2ZyZWUoY29udm8tPmxhc3RfYWN0aXZpdHkpOw0KPiA+ICsgICAgICAgY29udm8tPmxhc3Rf YWN0aXZpdHkgPSBnX3N0cmR1cCh2YWx1ZSk7DQo+ID4gKw0KPiA+ICsgICAgICAgZ19kYnVzX2Vt aXRfcHJvcGVydHlfY2hhbmdlZChjb25uLCBjb252by0+cGF0aCwNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFQX0NPTlZfSU5URVJGQUNFLA0KPiA+ICsiTGFz dEFjdGl2aXR5Iik7IH0NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIHBhcnNlX3hfYnRfdWlkKHN0 cnVjdCBtYXBfY29udm8gKmNvbnZvLCBjb25zdCBjaGFyDQo+ID4gKyp2YWx1ZSkgew0KPiA+ICsg ICAgICAgaWYgKGdfc3RyY21wMChjb252by0+eF9idF91aWQsIHZhbHVlKSA9PSAwKQ0KPiA+ICsg ICAgICAgICAgICAgICByZXR1cm47DQo+ID4gKw0KPiA+ICsgICAgICAgZ19mcmVlKGNvbnZvLT54 X2J0X3VpZCk7DQo+ID4gKyAgICAgICBjb252by0+eF9idF91aWQgPSBnX3N0cmR1cCh2YWx1ZSk7 DQo+ID4gKyAgICAgICBnX2RidXNfZW1pdF9wcm9wZXJ0eV9jaGFuZ2VkKGNvbm4sIGNvbnZvLT5w YXRoLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQVBfQ09O Vl9JTlRFUkZBQ0UsDQo+ID4gKyJYX0JUX1VJRCIpOyB9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9p ZCBwYXJzZV9uYW1lKHN0cnVjdCBtYXBfY29udm8gKmNvbnZvLCBjb25zdCBjaGFyICp2YWx1ZSkg ew0KPiA+ICsgICAgICAgaWYgKGdfc3RyY21wMChjb252by0+bmFtZSwgdmFsdWUpID09IDApDQo+ ID4gKyAgICAgICAgICAgICAgIHJldHVybjsNCj4gPiArDQo+ID4gKyAgICAgICBnX2ZyZWUoY29u dm8tPm5hbWUpOw0KPiA+ICsgICAgICAgY29udm8tPm5hbWUgPSBnX3N0cmR1cCh2YWx1ZSk7DQo+ ID4gKw0KPiA+ICsgICAgICAgZ19kYnVzX2VtaXRfcHJvcGVydHlfY2hhbmdlZChjb25uLCBjb252 by0+cGF0aCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFQ X0NPTlZfSU5URVJGQUNFLCAiTmFtZSIpOyB9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9pZCBwYXJz ZV9wcmVzZW5jZV9hdmFpbGFiaWxpdHkoc3RydWN0IG1hcF9jb252byAqY29udm8sDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBjaGFyDQo+ID4gKyp2YWx1ZSkgew0KPiA+ICsgICAgICAgdWludDhfdCBwcmVzZW5jZV9hdmFp bGFiaWxpdHkgPSBnX2FzY2lpX3N0cnRvbGwodmFsdWUsIE5VTEwsDQo+ID4gKzEwKTsNCj4gPiAr DQo+ID4gKyAgICAgICBpZiAoY29udm8tPnByZXNlbmNlX2F2YWlsYWJpbGl0eSA9PSBwcmVzZW5j ZV9hdmFpbGFiaWxpdHkpDQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybjsNCj4gPiArDQo+ID4g KyAgICAgICBjb252by0+cHJlc2VuY2VfYXZhaWxhYmlsaXR5ID0gcHJlc2VuY2VfYXZhaWxhYmls aXR5Ow0KPiA+ICsgICAgICAgZ19kYnVzX2VtaXRfcHJvcGVydHlfY2hhbmdlZChjb25uLCBjb252 by0+cGF0aCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFQ X0NPTlZfSU5URVJGQUNFLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiUHJlc2VuY2VBdmFpbGFiaWxpdHkiKTsgfQ0KPiA+ICsNCj4gPiArc3RhdGljIHZvaWQg cGFyc2VfcHJlc2VuY2VfdGV4dChzdHJ1Y3QgbWFwX2NvbnZvICpjb252bywgY29uc3QgY2hhcg0K PiA+ICsqdmFsdWUpIHsNCj4gPiArICAgICAgIGlmIChnX3N0cmNtcDAoY29udm8tPnByZXNlbmNl X3RleHQsIHZhbHVlKSA9PSAwKQ0KPiA+ICsgICAgICAgICAgICAgICByZXR1cm47DQo+ID4gKw0K PiA+ICsgICAgICAgZ19mcmVlKGNvbnZvLT5wcmVzZW5jZV90ZXh0KTsNCj4gPiArICAgICAgIGNv bnZvLT5wcmVzZW5jZV90ZXh0ID0gZ19zdHJkdXAodmFsdWUpOw0KPiA+ICsNCj4gPiArICAgICAg IGdfZGJ1c19lbWl0X3Byb3BlcnR5X2NoYW5nZWQoY29ubiwgY29udm8tPnBhdGgsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BUF9DT05WX0lOVEVSRkFDRSwN Cj4gPiArIlByZXNlbmNlVGV4dCIpOyB9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9pZCBwYXJzZV9j b252b19wcmlvcml0eShzdHJ1Y3QgbWFwX2NvbnZvICpjb252bywgY29uc3QgY2hhcg0KPiA+ICsq dmFsdWUpIHsNCj4gPiArICAgICAgIGludDhfdCBwcmlvcml0eSA9IGdfYXNjaWlfc3RydG9sbCh2 YWx1ZSwgTlVMTCwgMTApOw0KPiA+ICsNCj4gPiArICAgICAgIGlmIChjb252by0+cHJpb3JpdHkg PT0gcHJpb3JpdHkpDQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybjsNCj4gPiArDQo+ID4gKyAg ICAgICBjb252by0+cHJpb3JpdHkgPSBwcmlvcml0eTsNCj4gPiArICAgICAgIGdfZGJ1c19lbWl0 X3Byb3BlcnR5X2NoYW5nZWQoY29ubiwgY29udm8tPnBhdGgsDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBNQVBfQ09OVl9JTlRFUkZBQ0UsICJQcmlvcml0eSIpOyB9DQo+ID4g Kw0KPiA+ICBzdGF0aWMgc3RydWN0IG1hcF9tc2dfcGFyc2VyIHsNCj4gPiAgICAgICAgIGNvbnN0 IGNoYXIgKm5hbWU7DQo+ID4gICAgICAgICB2b2lkICgqZnVuYykgKHN0cnVjdCBtYXBfbXNnICpt c2csIGNvbnN0IGNoYXIgKnZhbHVlKTsgQEANCj4gPiAtMTA5Nyw2ICsxNDAxLDU1IEBAIHN0YXRp YyBzdHJ1Y3QgbWFwX21zZ19wYXJzZXIgew0KPiA+ICAgICAgICAgICAgICAgICB7IH0NCj4gPiAg fTsNCj4gPg0KPiA+ICtzdGF0aWMgc3RydWN0IG1hcF9jb252b19wYXJzZXIgew0KPiA+ICsgICAg ICAgY29uc3QgY2hhciAqbmFtZTsNCj4gPiArICAgICAgIHZvaWQgKCpmdW5jKShzdHJ1Y3QgbWFw X2NvbnZvICpjb252bywgY29uc3QgY2hhciAqdmFsdWUpOyB9DQo+ID4gK2NvbnZvX3BhcnNlcnNb XSA9IHsNCj4gPiArICAgICAgICAgICAgICAgeyAibmFtZSIsIHBhcnNlX2NvbnZvX25hbWUgfSwN Cj4gPiArICAgICAgICAgICAgICAgeyAibGFzdF9hY3Rpdml0eSIsIHBhcnNlX2NvbnZvX2xhc3Rf YWN0aXZpdHkgfSwNCj4gPiArICAgICAgICAgICAgICAgeyAicmVhZF9zdGF0dXMiLCBwYXJzZV9y ZWFkX3N0YXR1cyB9LA0KPiA+ICsgICAgICAgICAgICAgICB7ICJzdW1tYXJ5IiwgcGFyc2Vfc3Vt bWFyeSB9LA0KPiA+ICsgICAgICAgICAgICAgICB7ICJ4X2J0X3VjaSIsIHBhcnNlX3VjaSB9LA0K PiA+ICsgICAgICAgICAgICAgICB7ICJkaXNwbGF5X25hbWUiLCBwYXJzZV9kaXNwbGF5X25hbWUg fSwNCj4gPiArICAgICAgICAgICAgICAgeyAiY2hhdF9zdGF0ZSIsIHBhcnNlX2NoYXRfc3RhdGUg fSwNCj4gPiArICAgICAgICAgICAgICAgeyAibGFzdF9hY3Rpdml0eSIsIHBhcnNlX2xhc3RfYWN0 aXZpdHkgfSwNCj4gPiArICAgICAgICAgICAgICAgeyAieF9idF91aWQiLCBwYXJzZV94X2J0X3Vp ZCB9LA0KPiA+ICsgICAgICAgICAgICAgICB7ICJuYW1lIiwgcGFyc2VfbmFtZSB9LA0KPiA+ICsg ICAgICAgICAgICAgICB7ICJwcmVzZW5jZV9hdmFpbGFiaWxpdHkiLCBwYXJzZV9wcmVzZW5jZV9h dmFpbGFiaWxpdHkgfSwNCj4gPiArICAgICAgICAgICAgICAgeyAicHJlc2VuY2VfdGV4dCIsIHBh cnNlX3ByZXNlbmNlX3RleHQgfSwNCj4gPiArICAgICAgICAgICAgICAgeyAicHJpb3JpdHkiLCBw YXJzZV9jb252b19wcmlvcml0eSB9LA0KPiA+ICsgICAgICAgICAgICAgICB7IH0NCj4gPiArfTsN Cj4gPiArDQo+ID4gK3N0YXRpYyBzdHJ1Y3QgbWFwX2NvbnZvICptYXBfY29udm9fY3JlYXRlKHN0 cnVjdCBtYXBfZGF0YSAqZGF0YSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1aW50NjRfdCBpZCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpmb2xkZXIsDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqdHlw ZSkgew0KPiA+ICsgICAgICAgc3RydWN0IG1hcF9jb252byAqY29udm87DQo+ID4gKw0KPiA+ICsg ICAgICAgY29udm8gPSBnX25ldzAoc3RydWN0IG1hcF9jb252bywgMSk7DQo+ID4gKyAgICAgICBj b252by0+ZGF0YSA9IGRhdGE7DQo+ID4gKyAgICAgICBjb252by0+aWQgPSBpZDsNCj4gPiArDQo+ ID4gKyAgICAgICBjb252by0+cGF0aCA9IGdfc3RyZHVwX3ByaW50ZigiJXMvbWVzc2FnZSUiIFBS SXU2NCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JjX3Nl c3Npb25fZ2V0X3BhdGgoZGF0YS0+c2Vzc2lvbiksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnZvLT5pZCk7DQo+ID4gKw0KPiA+ICsgICAgICAgY29udm8t PmZvbGRlciA9IGdfc3RyZHVwKGZvbGRlcik7DQo+ID4gKw0KPiA+ICsgICAgICAgaWYgKCFnX2Ri dXNfcmVnaXN0ZXJfaW50ZXJmYWNlKGNvbm4sIGNvbnZvLT5wYXRoLA0KPiBNQVBfQ09OVl9JTlRF UkZBQ0UsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbWFwX21zZ19tZXRob2RzLCBOVUxMLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1hcF9jb252b19wcm9wZXJ0aWVzLA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnZvLCBtYXBfY29udm9f ZnJlZSkpIHsNCj4gPiArICAgICAgICAgICAgICAgbWFwX2NvbnZvX2ZyZWUoY29udm8pOw0KPiA+ ICsgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsNCj4gPiArICAgICAgIH0NCj4gPiArICAgICAg IGdfaGFzaF90YWJsZV9pbnNlcnQoZGF0YS0+bWVzc2FnZXMsICZjb252by0+aWQsIGNvbnZvKTsN Cj4gPiArDQo+ID4gKyAgICAgICByZXR1cm4gY29udm87DQo+ID4gK30NCj4gPiArDQo+ID4gIHN0 YXRpYyB2b2lkIG1zZ19lbGVtZW50KEdNYXJrdXBQYXJzZUNvbnRleHQgKmN0eHQsIGNvbnN0IGNo YXIgKmVsZW1lbnQsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICoqbmFtZXMsIGNvbnN0IGNoYXIgKip2YWx1ZXMsDQo+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBncG9pbnRlciB1c2VyX2RhdGEsIEdFcnJvciAqKmdlcnIpIEBADQo+ID4g LTExNTAsNiArMTUwMyw3MiBAQCBzdGF0aWMgdm9pZCBtc2dfZWxlbWVudChHTWFya3VwUGFyc2VD b250ZXh0ICpjdHh0LA0KPiBjb25zdCBjaGFyICplbGVtZW50LA0KPiA+ICAgICAgICAgZGJ1c19t ZXNzYWdlX2l0ZXJfY2xvc2VfY29udGFpbmVyKGl0ZXIsICZlbnRyeSk7ICB9DQo+ID4NCj4gPiAr c3RhdGljIHZvaWQgc3RhcnRfY29udm9fZWxlbWVudChHTWFya3VwUGFyc2VDb250ZXh0ICpjdHh0 LCBjb25zdCBjaGFyDQo+ICplbGVtZW50LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgY2hhciAqKm5hbWVzLCBjb25zdCBjaGFyICoqdmFsdWVzLA0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgdXNlcl9kYXRhLCBHRXJyb3IgKipn ZXJyKSB7DQo+ID4gKyAgICAgICBzdHJ1Y3QgbWFwX3BhcnNlciAqcGFyc2VyID0gdXNlcl9kYXRh Ow0KPiA+ICsgICAgICAgc3RydWN0IG1hcF9kYXRhICpkYXRhID0gcGFyc2VyLT5yZXF1ZXN0LT5t YXA7DQo+ID4gKyAgICAgICB1aW50MzJfdCBpZCA9IDA7DQo+ID4gKyAgICAgICBjb25zdCBjaGFy ICprZXk7DQo+ID4gKyAgICAgICBpbnQgaTsNCj4gPiArICAgICAgIERCdXNNZXNzYWdlSXRlciAq aXRlciA9IHBhcnNlci0+aXRlcjsNCj4gPiArDQo+ID4gKyAgICAgICBmb3IgKGkgPSAwLCBrZXkg PSBuYW1lc1tpXTsga2V5OyBrZXkgPSBuYW1lc1srK2ldKSB7DQo+ID4gKyAgICAgICAgICAgICAg IGlmIChzdHJjYXNlY21wKGtleSwgImlkIikgPT0gMCkgew0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIGlkID0gc3RydG91bGwodmFsdWVzW2ldLCBOVUxMLCAzMik7DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKyAgICAgICAgICAgICAgIH0NCj4gPiArICAgICAg IH0NCj4gPiArDQo+ID4gKyAgICAgICBpZiAoaWQgPT0gMCkNCj4gPiArICAgICAgICAgICAgICAg cmV0dXJuOw0KPiA+ICsNCj4gPiArICAgICAgIGNvbnZlcnNhdGlvbiA9IGdfaGFzaF90YWJsZV9s b29rdXAoZGF0YS0+bWVzc2FnZXMsICZpZCk7DQo+ID4gKyAgICAgICBpZiAoY29udmVyc2F0aW9u ID09IE5VTEwpIHsNCj4gPiArICAgICAgICAgICAgICAgY29udmVyc2F0aW9uID0gbWFwX2NvbnZv X2NyZWF0ZShkYXRhLCBpZCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGFyc2VyLT5yZXF1ZXN0LT5mb2xkZXIsIE5VTEwpOw0KPiA+ICsgICAgICAgICAgICAg ICBpZiAoY29udmVyc2F0aW9uID09IE5VTEwpDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIGRidXNfbWVzc2FnZV9p dGVyX29wZW5fY29udGFpbmVyKGl0ZXIsIERCVVNfVFlQRV9ESUNUX0VOVFJZLA0KPiBOVUxMLA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmY29udm9fZW50cnkpOw0KPiA+ICsgICAgICAgZGJ1c19tZXNzYWdlX2l0ZXJf YXBwZW5kX2Jhc2ljKCZjb252b19lbnRyeSwNCj4gREJVU19UWVBFX09CSkVDVF9QQVRILA0KPiA+ ICsNCj4gPiArICZjb252ZXJzYXRpb24tPnBhdGgpOw0KPiA+ICsNCj4gPiArICAgICAgIGZvciAo aSA9IDAsIGtleSA9IG5hbWVzW2ldOyBrZXk7IGtleSA9IG5hbWVzWysraV0pIHsNCj4gPiArICAg ICAgICAgICAgICAgc3RydWN0IG1hcF9jb252b19wYXJzZXIgKnBhcnNlcjsNCj4gPiArDQo+ID4g KyAgICAgICAgICAgICAgIGZvciAocGFyc2VyID0gY29udm9fcGFyc2VyczsgcGFyc2VyICYmIHBh cnNlci0+bmFtZTsgcGFyc2VyKyspIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBpZiAo c3RyY2FzZWNtcChrZXksIHBhcnNlci0+bmFtZSkgPT0gMCkgew0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlc1tpXSkNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGFyc2VyLT5mdW5jKGNvbnZlcnNhdGlvbiwgdmFsdWVzW2ld KTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ IENvbXBpbGVyIGdpdmVzIG1lIHdhcm5pbmcgaGVyZS4gUGxlYXNlIGVpdGhlciBmaXggdGhlIGlu ZGVudGF0aW9uIG9yIGFkZCBicmFjZXMNCj4gZm9yIGlmIHN0YXRlbWVudC4NCkZpeGVkIGl0IGlu IHRoZSBsYXRlc3QgcGF0Y2guDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgfQ0KPiA+ICsg ICAgICAgICAgICAgICB9DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgZ19kYnVz X2dldF9wcm9wZXJ0aWVzKGNvbm4sIGNvbnZlcnNhdGlvbi0+cGF0aCwNCj4gTUFQX0NPTlZfSU5U RVJGQUNFLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAmY29udm9fZW50cnkpOw0KPiA+ICsgICAgICAgZGJ1c19tZXNz YWdlX2l0ZXJfY2xvc2VfY29udGFpbmVyKGl0ZXIsICZjb252b19lbnRyeSk7IH0NCj4gPiArDQo+ ID4gK3N0YXRpYyB2b2lkIGVuZF9jb252b19lbGVtZW50KEdNYXJrdXBQYXJzZUNvbnRleHQgKmN0 eHQsIGNvbnN0IGNoYXINCj4gKmVsZW1lbnQsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdwb2ludGVyIHVzZXJfZGF0YSwgR0Vycm9yDQo+ID4gKyoqZ2Vycikg ew0KPiA+ICsgICAgICAgaWYgKHN0cmNhc2VjbXAoIk1BUC1jb252by1saXN0aW5nIiwgZWxlbWVu dCkgPT0gMCkNCj4gPiArICAgICAgICAgICAgICAgY29udm9fZWxlbWVudF9lbmQgPSBUUlVFOyB9 DQo+ID4gKw0KPiA+ICtzdGF0aWMgY29uc3QgR01hcmt1cFBhcnNlciBjb252b19wYXJzZXIgPSB7 DQo+ID4gKyAgICAgICBzdGFydF9jb252b19lbGVtZW50LA0KPiA+ICsgICAgICAgZW5kX2NvbnZv X2VsZW1lbnQsDQo+ID4gKyAgICAgICBOVUxMLA0KPiA+ICsgICAgICAgTlVMTCwNCj4gPiArICAg ICAgIE5VTEwNCj4gPiArfTsNCj4gPiArDQo+ID4gIHN0YXRpYyBjb25zdCBHTWFya3VwUGFyc2Vy IG1zZ19wYXJzZXIgPSB7DQo+ID4gICAgICAgICBtc2dfZWxlbWVudCwNCj4gPiAgICAgICAgIE5V TEwsDQo+ID4gQEAgLTEyNjgsOSArMTY4NywxNSBAQCBzdGF0aWMgdm9pZCBjb252ZXJzYXRpb25f bGlzdGluZ19jYihzdHJ1Y3QNCj4gb2JjX3Nlc3Npb24gKnNlc3Npb24sDQo+ID4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERCVVNfRElDVF9FTlRSWV9FTkRfQ0hBUl9B U19TVFJJTkcNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREJV U19ESUNUX0VOVFJZX0VORF9DSEFSX0FTX1NUUklORywNCj4gPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJmFycmF5KTsNCj4gPiAtDQo+ID4gKyAgICAgICBwYXJzZXIg PSBnX25ldyhzdHJ1Y3QgbWFwX3BhcnNlciwgMSk7DQo+ID4gKyAgICAgICBwYXJzZXItPnJlcXVl c3QgPSByZXF1ZXN0Ow0KPiA+ICsgICAgICAgcGFyc2VyLT5pdGVyID0gJmFycmF5Ow0KPiA+ICsg ICAgICAgY3R4dCA9IGdfbWFya3VwX3BhcnNlX2NvbnRleHRfbmV3KCZjb252b19wYXJzZXIsIDAs IHBhcnNlciwgTlVMTCk7DQo+ID4gKyAgICAgICBnX21hcmt1cF9wYXJzZV9jb250ZXh0X3BhcnNl KGN0eHQsIGNvbnRlbnRzLCBzaXplLCBOVUxMKTsNCj4gPiArICAgICAgIGdfbWFya3VwX3BhcnNl X2NvbnRleHRfZnJlZShjdHh0KTsNCj4gPiAgICAgICAgIGRidXNfbWVzc2FnZV9pdGVyX2Nsb3Nl X2NvbnRhaW5lcigmaXRlciwgJmFycmF5KTsNCj4gPiAgICAgICAgIGdfZnJlZShjb250ZW50cyk7 DQo+ID4gKyAgICAgICBnX2ZyZWUocGFyc2VyKTsNCj4gPg0KPiA+ICBkb25lOg0KPiA+ICAgICAg ICAgaWYgKGNvbnZvX2VsZW1lbnRfZW5kKQ0KPiA+IGRpZmYgLS1naXQgYS9vYmV4ZC9zcmMvbWFw X2FwLmggYi9vYmV4ZC9zcmMvbWFwX2FwLmggaW5kZXgNCj4gPiAzNzczODU5Li5kNjU3N2ZkIDEw MDY0NA0KPiA+IC0tLSBhL29iZXhkL3NyYy9tYXBfYXAuaA0KPiA+ICsrKyBiL29iZXhkL3NyYy9t YXBfYXAuaA0KPiA+IEBAIC0zMCwyNSArMzAsMjUgQEAgZW51bSBtYXBfYXBfdGFnIHsNCj4gPiAg ICAgICAgIE1BUF9BUF9GSUxURVJQRVJJT0RFTkQgICAgICAgICAgPSAweDA1LCAgICAgICAgIC8q IGNoYXIgKiAgICAgICAqLw0KPiA+ICAgICAgICAgTUFQX0FQX0ZJTFRFUlJFQURTVEFUVVMgICAg ICAgICA9IDB4MDYsICAgICAgICAgLyogdWludDhfdCAgICAgICovDQo+ID4gICAgICAgICBNQVBf QVBfRklMVEVSUkVDSVBJRU5UICAgICAgICAgID0gMHgwNywgICAgICAgICAvKiBjaGFyICogICAg ICAgKi8NCj4gPiAtICAgICAgIE1BUF9BUF9GSUxURVJPUklHSU5BVE9SICAgICAgICAgPSAweDA4 LCAgICAgICAgIC8qIGNoYXIgKiAgICAgICAqLw0KPiA+IC0gICAgICAgTUFQX0FQX0ZJTFRFUkxB U1RBQ1RJVklUWUJFR0lOICA9IDB4MDgsICAgICAgICAgLyogY2hhciAqICAgICAgICovDQo+ID4g LSAgICAgICBNQVBfQVBfRklMVEVSTEFTVEFDVElWSVRZRU5EICAgID0gMHgwOSwgICAgICAgICAv KiBjaGFyICogICAgICAgKi8NCj4gPiAtICAgICAgIE1BUF9BUF9GSUxURVJQUklPUklUWSAgICAg ICAgICAgPSAweDA5LCAgICAgICAgIC8qIHVpbnQ4X3QgICAgICAqLw0KPiA+IC0gICAgICAgTUFQ X0FQX0FUVEFDSE1FTlQgICAgICAgICAgICAgICA9IDB4MEEsICAgICAgICAgLyogdWludDhfdCAg ICAgICovDQo+ID4gLSAgICAgICBNQVBfQVBfVFJBTlNQQVJFTlQgICAgICAgICAgICAgID0gMHgw QiwgICAgICAgICAvKiB1aW50OF90ICAgICAgKi8NCj4gPiAtICAgICAgIE1BUF9BUF9SRVRSWSAg ICAgICAgICAgICAgICAgICAgPSAweDBDLCAgICAgICAgIC8qIHVpbnQ4X3QgICAgICAqLw0KPiA+ IC0gICAgICAgTUFQX0FQX05FV01FU1NBR0UgICAgICAgICAgICAgICA9IDB4MEQsICAgICAgICAg LyogdWludDhfdCAgICAgICovDQo+ID4gLSAgICAgICBNQVBfQVBfTk9USUZJQ0FUSU9OU1RBVFVT ICAgICAgID0gMHgwRSwgICAgICAgICAvKiB1aW50OF90ICAgICAgKi8NCj4gPiAtICAgICAgIE1B UF9BUF9NQVNJTlNUQU5DRUlEICAgICAgICAgICAgPSAweDBGLCAgICAgICAgIC8qIHVpbnQ4X3Qg ICAgICAqLw0KPiA+IC0gICAgICAgTUFQX0FQX1BBUkFNRVRFUk1BU0sgICAgICAgICAgICA9IDB4 MTAsICAgICAgICAgLyogdWludDMyX3QgICAgICovDQo+ID4gLSAgICAgICBNQVBfQVBfRk9MREVS TElTVElOR1NJWkUgICAgICAgID0gMHgxMSwgICAgICAgICAvKiB1aW50MTZfdCAgICAgKi8NCj4g PiAtICAgICAgIE1BUF9BUF9NRVNTQUdFU0xJU1RJTkdTSVpFICAgICAgPSAweDEyLCAgICAgICAg IC8qIHVpbnQxNl90ICAgICAqLw0KPiA+IC0gICAgICAgTUFQX0FQX1NVQkpFQ1RMRU5HVEggICAg ICAgICAgICA9IDB4MTMsICAgICAgICAgLyogdWludDhfdCAgICAgICovDQo+ID4gLSAgICAgICBN QVBfQVBfQ0hBUlNFVCAgICAgICAgICAgICAgICAgID0gMHgxNCwgICAgICAgICAvKiB1aW50OF90 ICAgICAgKi8NCj4gPiAtICAgICAgIE1BUF9BUF9GUkFDVElPTlJFUVVFU1QgICAgICAgICAgPSAw eDE1LCAgICAgICAgIC8qIHVpbnQ4X3QgICAgICAqLw0KPiA+IC0gICAgICAgTUFQX0FQX0ZSQUNU SU9OREVMSVZFUiAgICAgICAgICA9IDB4MTYsICAgICAgICAgLyogdWludDhfdCAgICAgICovDQo+ ID4gLSAgICAgICBNQVBfQVBfU1RBVFVTSU5ESUNBVE9SICAgICAgICAgID0gMHgxNywgICAgICAg ICAvKiB1aW50OF90ICAgICAgKi8NCj4gPiAtICAgICAgIE1BUF9BUF9TVEFUVVNWQUxVRSAgICAg ICAgICAgICAgPSAweDE4LCAgICAgICAgIC8qIHVpbnQ4X3QgICAgICAqLw0KPiA+IC0gICAgICAg TUFQX0FQX01TRVRJTUUgICAgICAgICAgICAgICAgICA9IDB4MTksICAgICAgICAgLyogY2hhciAq ICAgICAgICovDQo+ID4gKyAgICAgICBNQVBfQVBfRklMVEVSTEFTVEFDVElWSVRZQkVHSU4gID0g MHgwOCwgICAgICAgICAvKiBjaGFyICogICAgICAgKi8NCj4gPiArICAgICAgIE1BUF9BUF9GSUxU RVJMQVNUQUNUSVZJVFlFTkQgICAgPSAweDA5LCAgICAgICAgIC8qIGNoYXIgKiAgICAgICAqLw0K PiA+ICsgICAgICAgTUFQX0FQX0ZJTFRFUk9SSUdJTkFUT1IgICAgICAgICA9IDB4MEEsICAgICAg ICAgLyogY2hhciAqICAgICAgICovDQo+ID4gKyAgICAgICBNQVBfQVBfRklMVEVSUFJJT1JJVFkg ICAgICAgICAgID0gMHgwQiwgICAgICAgICAvKiB1aW50OF90ICAgICAgKi8NCj4gPiArICAgICAg IE1BUF9BUF9BVFRBQ0hNRU5UICAgICAgICAgICAgICAgPSAweDBDLCAgICAgICAgIC8qIHVpbnQ4 X3QgICAgICAqLw0KPiA+ICsgICAgICAgTUFQX0FQX1RSQU5TUEFSRU5UICAgICAgICAgICAgICA9 IDB4MEQsICAgICAgICAgLyogdWludDhfdCAgICAgICovDQo+ID4gKyAgICAgICBNQVBfQVBfUkVU UlkgICAgICAgICAgICAgICAgICAgID0gMHgwRSwgICAgICAgICAvKiB1aW50OF90ICAgICAgKi8N Cj4gPiArICAgICAgIE1BUF9BUF9ORVdNRVNTQUdFICAgICAgICAgICAgICAgPSAweDBGLCAgICAg ICAgIC8qIHVpbnQ4X3QgICAgICAqLw0KPiA+ICsgICAgICAgTUFQX0FQX05PVElGSUNBVElPTlNU QVRVUyAgICAgICA9IDB4MTAsICAgICAgICAgLyogdWludDhfdCAgICAgICovDQo+ID4gKyAgICAg ICBNQVBfQVBfTUFTSU5TVEFOQ0VJRCAgICAgICAgICAgID0gMHgxMSwgICAgICAgICAvKiB1aW50 OF90ICAgICAgKi8NCj4gPiArICAgICAgIE1BUF9BUF9QQVJBTUVURVJNQVNLICAgICAgICAgICAg PSAweDEyLCAgICAgICAgIC8qIHVpbnQzMl90ICAgICAqLw0KPiA+ICsgICAgICAgTUFQX0FQX0ZP TERFUkxJU1RJTkdTSVpFICAgICAgICA9IDB4MTMsICAgICAgICAgLyogdWludDE2X3QgICAgICov DQo+ID4gKyAgICAgICBNQVBfQVBfTUVTU0FHRVNMSVNUSU5HU0laRSAgICAgID0gMHgxNCwgICAg ICAgICAvKiB1aW50MTZfdCAgICAgKi8NCj4gPiArICAgICAgIE1BUF9BUF9TVUJKRUNUTEVOR1RI ICAgICAgICAgICAgPSAweDE1LCAgICAgICAgIC8qIHVpbnQ4X3QgICAgICAqLw0KPiA+ICsgICAg ICAgTUFQX0FQX0NIQVJTRVQgICAgICAgICAgICAgICAgICA9IDB4MTYsICAgICAgICAgLyogdWlu dDhfdCAgICAgICovDQo+ID4gKyAgICAgICBNQVBfQVBfRlJBQ1RJT05SRVFVRVNUICAgICAgICAg ID0gMHgxNywgICAgICAgICAvKiB1aW50OF90ICAgICAgKi8NCj4gPiArICAgICAgIE1BUF9BUF9G UkFDVElPTkRFTElWRVIgICAgICAgICAgPSAweDE4LCAgICAgICAgIC8qIHVpbnQ4X3QgICAgICAq Lw0KPiA+ICsgICAgICAgTUFQX0FQX1NUQVRVU0lORElDQVRPUiAgICAgICAgICA9IDB4MTksICAg ICAgICAgLyogdWludDhfdCAgICAgICovDQo+ID4gKyAgICAgICBNQVBfQVBfU1RBVFVTVkFMVUUg ICAgICAgICAgICAgID0gMHgxQSwgICAgICAgICAvKiB1aW50OF90ICAgICAgKi8NCj4gPiArICAg ICAgIE1BUF9BUF9NU0VUSU1FICAgICAgICAgICAgICAgICAgPSAweDFCLCAgICAgICAgIC8qIGNo YXIgKiAgICAgICAqLw0KPiA+ICAgICAgICAgTUFQX0FQX0NPTlZFUlNBVElPTklEICAgICAgICAg ICA9IDB4MUMsICAgICAgICAgLyogdWludDMyX3QgICAgICovDQo+ID4gIH07DQo+ID4gLS0NCj4g PiAyLjcuNA0KPiA+DQo+IA0KPiBCZXN0IHJlZ2FyZHMsDQo+IE1hdGlhcyBLYXJodW1hYQ0KDQpU aGFua3MuDQpBamF5IEtpc2hvcmUNCg==