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=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 4028CC636C9 for ; Wed, 21 Jul 2021 19:42:21 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E46E96113C for ; Wed, 21 Jul 2021 19:42:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E46E96113C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9790F6E86C; Wed, 21 Jul 2021 19:42:20 +0000 (UTC) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id C0C4A6E86C for ; Wed, 21 Jul 2021 19:42:19 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10052"; a="198775128" X-IronPort-AV: E=Sophos;i="5.84,258,1620716400"; d="scan'208";a="198775128" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jul 2021 12:42:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,258,1620716400"; d="scan'208";a="576794804" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by fmsmga001.fm.intel.com with ESMTP; 21 Jul 2021 12:42:18 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Wed, 21 Jul 2021 12:42:18 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Wed, 21 Jul 2021 12:42:17 -0700 Received: from orsmsx610.amr.corp.intel.com ([10.22.229.23]) by ORSMSX610.amr.corp.intel.com ([10.22.229.23]) with mapi id 15.01.2242.010; Wed, 21 Jul 2021 12:42:17 -0700 From: "Souza, Jose" To: "daniel@ffwll.ch" , "pankaj.laxminarayan.bharadiya@intel.com" Thread-Topic: [Intel-gfx] [PATCH CI 2/4] drm/i915/display/psr: Use plane damage clips to calculate damaged area Thread-Index: AQHXfXk27v2Asbsa7UKMdQiaw1z5AqtMbveAgAAEDACAABjGAIAA+OeAgAABjQCAAMZqgA== Date: Wed, 21 Jul 2021 19:42:17 +0000 Message-ID: <86a08842f511542c761454ea5ea5c26a199e1558.camel@intel.com> References: <20210104205654.238928-1-jose.souza@intel.com> <20210104205654.238928-2-jose.souza@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.22.254.132] Content-ID: <9CE5F3745618844DBB5C33E087CBDF0A@intel.com> MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH CI 2/4] drm/i915/display/psr: Use plane damage clips to calculate damaged area X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "intel-gfx@lists.freedesktop.org" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gV2VkLCAyMDIxLTA3LTIxIGF0IDA5OjU2ICswMjAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOg0K PiBPbiBXZWQsIEp1bCAyMSwgMjAyMSBhdCA5OjUwIEFNIERhbmllbCBWZXR0ZXIgPGRhbmllbEBm ZndsbC5jaD4gd3JvdGU6DQo+ID4gT24gVHVlLCBKdWwgMjAsIDIwMjEgYXQgNjo1NSBQTSBTb3V6 YSwgSm9zZSA8am9zZS5zb3V6YUBpbnRlbC5jb20+IHdyb3RlOg0KPiA+ID4gT24gVHVlLCAyMDIx LTA3LTIwIGF0IDE3OjMxICswMjAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOg0KPiA+ID4gPiBPbiBU dWUsIEp1bCAyMCwgMjAyMSBhdCA1OjE2IFBNIERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5j aD4gd3JvdGU6DQo+ID4gPiA+ID4gT24gVHVlLCBKdWwgMjAsIDIwMjEgYXQgNTowOSBQTSBEYW5p ZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+IHdyb3RlOg0KPiA+ID4gPiA+ID4gT24gTW9uLCBK YW4gNCwgMjAyMSBhdCA5OjU2IFBNIEpvc8OpIFJvYmVydG8gZGUgU291emENCj4gPiA+ID4gPiA+ IDxqb3NlLnNvdXphQGludGVsLmNvbT4gd3JvdGU6DQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ ID4gPiBOb3cgdXNpbmcgcGxhbmUgZGFtYWdlIGNsaXBzIHByb3BlcnR5IHRvIGNhbGN1YWx0ZSB0 aGUgZGFtYWdlZCBhcmVhLg0KPiA+ID4gPiA+ID4gPiBTZWxlY3RpdmUgZmV0Y2ggb25seSBzdXBw b3J0cyBvbmUgcmVnaW9uIHRvIGJlIGZldGNoZWQgc28gc29mdHdhcmUNCj4gPiA+ID4gPiA+ID4g bmVlZHMgdG8gY2FsY3VsYXRlIGEgYm91bmRpbmcgYm94IGFyb3VuZCBhbGwgZGFtYWdlIGNsaXBz Lg0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gTm93IHRoYXQgd2UgYXJlIG5vdCBjb21w bGV0ZSBmZXRjaGluZyBlYWNoIHBsYW5lLCB0aGVyZSBpcyBhbm90aGVyDQo+ID4gPiA+ID4gPiA+ IGxvb3AgbmVlZGVkIGFzIGFsbCB0aGUgcGxhbmUgYXJlYXMgdGhhdCBpbnRlcnNlY3Qgd2l0aCB0 aGUgcGlwZQ0KPiA+ID4gPiA+ID4gPiBkYW1hZ2VkIGFyZWEgbmVlZHMgdG8gYmUgZmV0Y2hlZCBm cm9tIG1lbW9yeSBzbyB0aGUgY29tcGxldGUgYmxlbmRpbmcNCj4gPiA+ID4gPiA+ID4gb2YgYWxs IHBsYW5lcyBjYW4gaGFwcGVuLg0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gdjI6DQo+ ID4gPiA+ID4gPiA+IC0gZG8gbm90IHNoaWZ0aW5nIG5ld19wbGFuZV9zdGF0ZS0+dWFwaS5kc3Qg b25seSBzcmMgaXMgaW4gMTYuMTYgZm9ybWF0DQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4g PiB2NDoNCj4gPiA+ID4gPiA+ID4gLSBzZXR0aW5nIHBsYW5lIHNlbGVjdGl2ZSBmZXRjaCBhcmVh IHVzaW5nIHRoZSB3aG9sZSBwaXBlIGRhbWFnZSBhcmVhDQo+ID4gPiA+ID4gPiA+IC0gbWFyayB0 aGUgd2hvbGUgcGxhbmUgYXJlYSBkYW1hZ2VkIGlmIHBsYW5lIHZpc2liaWxpdHkgb3IgYWxwaGEN Cj4gPiA+ID4gPiA+ID4gY2hhbmdlZA0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gdjU6 DQo+ID4gPiA+ID4gPiA+IC0gdGFraW5nIGluIGNvbnNpZGVyYXRpb24gc3JjLnkxIGluIHRoZSBk YW1hZ2UgY29vcmRpbmF0ZXMNCj4gPiA+ID4gPiA+ID4gLSBhZGRpbmcgdG8gdGhlIHBpcGUgZGFt YWdlZCBhcmVhIHBsYW5lcyB0aGF0IHdlcmUgdmlzaWJsZSBidXQgYXJlDQo+ID4gPiA+ID4gPiA+ IGludmlzaWJsZSBpbiB0aGUgbmV3IHN0YXRlDQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4g PiB2NjoNCj4gPiA+ID4gPiA+ID4gLSBjb25zaWRlciBvbGQgc3RhdGUgcGxhbmUgY29vcmRpbmF0 ZXMgd2hlbiB2aXNpYmlsaXR5IGNoYW5nZXMgb3IgaXQNCj4gPiA+ID4gPiA+ID4gbW92ZWQgdG8g Y2FsY3VsYXRlIGRhbWFnZWQgYXJlYQ0KPiA+ID4gPiA+ID4gPiAtIHJlbW92ZSBmcm9tIGRhbWFn ZWQgYXJlYSB0aGUgcG9ydGlvbiBub3QgaW4gc3JjIGNsaXANCj4gPiA+ID4gPiA+ID4gDQo+ID4g PiA+ID4gPiA+IHY3Og0KPiA+ID4gPiA+ID4gPiAtIGludGVyc2VjIGV2ZXJ5IGRhbWFnZSBjbGlw IHdpdGggc3JjIHRvIG1pbmltaXplIGRhbWFnZWQgYXJlYQ0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ ID4gPiA+ID4gdjg6DQo+ID4gPiA+ID4gPiA+IC0gYWRqdXN0IHBpcGVfZGFtYWdlZCBhcmVhIHRv IDQgbGluZXMgZ3JvdXBpbmcNCj4gPiA+ID4gPiA+ID4gLSBhZGp1c3QgY2FsY3VsYXRpb24gbm93 IHRoYXQgaXMgdW5kZXJzdG9vZCB0aGF0IHVhcGkuc3JjIGlzIHRoZQ0KPiA+ID4gPiA+ID4gPiBm cmFtZWJ1ZmZlciBjb29yZGluYXRlcyB0aGF0IHBsYW5lIHdpbGwgc3RhcnQgdG8gZmV0Y2ggZnJv bQ0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gdjk6DQo+ID4gPiA+ID4gPiA+IC0gT25s eSBhZGQgcGxhbmUgZHN0IG9yIHNyYyB0byBkYW1hZ2VkX2FyZWEgaWYgdmlzaWJsZQ0KPiA+ID4g PiA+ID4gPiAtIEVhcmx5IHNraXAgcGxhbmUgZGFtYWdlIGNhbGN1bGF0aW9uIGlmIGl0IHdhcyBu b3QgdmlzaWJsZSBpbiBvbGQgYW5kDQo+ID4gPiA+ID4gPiA+IG5ldyBzdGF0ZQ0KPiA+ID4gPiA+ ID4gPiANCj4gPiA+ID4gPiA+ID4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+DQo+ID4gPiA+ID4gPiA+IENjOiBHd2FuLWd5ZW9uZyBNdW4gPGd3YW4t Z3llb25nLm11bkBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiA+IFJldmlld2VkLWJ5OiBHd2FuLWd5 ZW9uZyBNdW4gPGd3YW4tZ3llb25nLm11bkBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiA+IFNpZ25l ZC1vZmYtYnk6IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPg0K PiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBXaHkgaXMgdGhpcyBub3QgdXNpbmcgZHJtX2F0b21p Y19oZWxwZXJfZGFtYWdlX21lcmdlZD8gSSBqdXN0IHN0dW1ibGVkDQo+ID4gPiA+ID4gPiBvdmVy IHRoaXMsIGFuZCB0aGlzIGlzIG9uZSBvZiB0aGUgb25seSB0d28gZHJpdmVycyB0aGF0IGRpcmVj dGx5IGRpZ3MNCj4gPiA+ID4gPiA+IGFyb3VuZCBpbiB0aGUgZGFtYWdlIGFyZWEsIGFuZCBzZWVt cyB0byByZWludmVudCBhIGJ1bmNoIG9mIHRoZSBzdHVmZg0KPiA+ID4gPiA+ID4gaGVyZS4NCj4g PiA+IA0KPiA+ID4gV2UgY2FuIHVzZSBkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfbWVyZ2VkKCkg YnV0IGl0IHdvdWxkIG9ubHkgc2F2ZSB1cyBvbmUgZm9yIGxvb3AuDQo+ID4gDQo+ID4gWWVzIHBs ZWFzZS4gVGhlIHRyb3VibGUgd2l0aCByb2xsaW5nIG91ciBvd24gY29waWVzIGZvciBldmVyeXRo aW5nIGlzDQo+ID4gdGhhdCBpdCBkb2VzIGFkZCB1cC4NCj4gPiANCj4gPiA+ID4gPiBBbHNvLCBk aWQgd2UgbWVyZ2UgdGhlIGlndHMgZm9yIHRoaXMgc3R1ZmY/IFRoZXkgdW5mb3J0dW5hdGVseSBu ZXZlcg0KPiA+ID4gPiA+IGxhbmRlZCwgd2hlbiB2bXdnZnggdGVhbSBkaWQgYWxsIHRoaXMgd29y aywgYnV0IGZvciBpOTE1IHdlIHJlYWxseQ0KPiA+ID4gPiA+IHNob3VsZG4ndCBldmVuIGxhbmQg bmV3IHN1cHBvcnQgd2l0aG91dCB0ZXN0cy4NCj4gPiA+ID4gDQo+ID4gPiA+IExvIGFuZCBiZWhv bGQsIHdlIG1lcmdlIHRoZSB1YXBpIGVuYWJsaW5nIHdheSBlYXJsaWVyIHRoYW4gdGhpcyBwYXRj aCBoZXJlOg0KPiA+ID4gPiANCj4gPiA+ID4gY29tbWl0IDA5M2EzYTMwMDAwOTI2YjhiZGE5ZWVm NzczZTRlZDUwNzkwNTMzNTANCj4gPiA+ID4gQXV0aG9yOiBKb3PDqSBSb2JlcnRvIGRlIFNvdXph IDxqb3NlLnNvdXphQGludGVsLmNvbT4NCj4gPiA+ID4gRGF0ZTogICBUaHUgSnVuIDI1IDE4OjAx OjQ3IDIwMjAgLTA3MDANCj4gPiA+ID4gDQo+ID4gPiA+ICAgIGRybS9pOTE1OiBBZGQgcGxhbmUg ZGFtYWdlIGNsaXBzIHByb3BlcnR5DQo+ID4gPiA+IA0KPiA+ID4gPiBBbmQgdGhlIGlndHMgYXJl IG5vd2hlcmUgbmVhciB0byBiZSBzZWVuLCBhdCBsZWFzdCB0aGUgc3R1ZmYgZnJvbQ0KPiA+ID4g PiB2bXdnZnggZGlkbid0IGxhbmQuIFBsZWFzZSBmaWxlIGEgSklSQSBpbnRlcm5hbGx5IGFuZCBw aW5nIG1lIG9uIHRoYXQNCj4gPiA+ID4gc28gdGhpcyBnZXRzIHNvcnRlZCBvdXQgYXNhcC4NCj4g PiA+IA0KPiA+ID4gSGVyZSB0aGUgSUdUOiBodHRwczovL2dpdGxhYi5mcmVlZGVza3RvcC5vcmcv ZHJtL2lndC1ncHUtdG9vbHMvLS9ibG9iL21hc3Rlci90ZXN0cy9rbXNfcHNyMl9zZi5jDQo+ID4g DQo+ID4gVGhlcmUgd2FzIHNvbWUgaWd0cyB0aGF0IHdlcmUgY3Jvc3MtZHJpdmVyLCBub3QgaW50 ZWwgc3BlY2lmaWMuIFRoZQ0KPiA+IHRoaW5nIGhlcmUgaXMgc3VwcG9zZWQgdG8gYmUgYSBjcm9z cy12ZW5kb3IgaW50ZXJmYWNlLCBzbyB3b3VsZCBiZQ0KPiA+IHJlYWxseSBnb29kIGlmIHlvdSBy ZXN1cnJlY3QgdGhvc2UgZnJvbSB2bXdnZnggZm9sa3MgYW5kIGxhbmQgdGhlbQ0KPiA+IHRvbzoN Cj4gPiANCj4gPiBodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvc2VyaWVzLzUxMDg3 Lw0KPiANCj4gQWxzbyBmcm9tIGEgdmVyeSBxdWljayBsb29rIGF0IHRoZSBrbXNfcHNyMl9zZiB0 ZXN0cyB0aGVyZSdzIHJlYWxseQ0KPiBub3QgYSB3aG9sZSBsb3Qgc3BlY2lmaWMgYWJvdXQgb3Vy IHBzcjIgaW1wbGVtZW50YXRpb24gaW4gdGhlcmUuIFRoZQ0KPiB0ZXN0IHNob3VsZCB3b3JrIG9u IGFueSBwbGFuZSB3aXRoIGEgRkJfREFNQUdFX0NMSVBTIHJlY3QgYXZhaWxhYmxlLA0KPiBzbyB0 aGVyZSdzIG5vIHJlYXNvbiB0byBtYWtlIHRoaXMgc3BlY2lmaWMgdG8gaW50ZWwsIG11Y2ggbGVz cyB0bw0KPiBwc3IyLiBJIHRoaW5rIHdlIG5lZWQgdG86DQo+IC0gbWFrZSB0aGlzIGEgZ2VuZXJp YyBrbXMgdGVzdCwgaXQgc2hvdWxkIHdvcmsNCj4gLSBtZXJnZSB3aXRoIHRoZSB0ZXN0Y2FzZXMg ZnJvbSB0aGUgZm9sa3Mgd2hvIG1lcmdlZCBGQl9EQU1BR0VfQ0xJUFMNCj4gb3JpZ2luYWxseSB0 byBtYWtlIHN1cmUgYWxsIGRyaXZlcnMgZm9sbG93IHRoZSBzYW1lIGNvbnRyYWN0Lg0KPiANCj4g S01TIHByb3BlcnRpZXMgYXJlIGdlbmVyaWMsIGludGVsLXNwZWNpZmljIHRlc3RzIGZvciB3aGVu IHRoZXJlJ3MNCj4gbm90aGluZyBpbnRlbC1zcGVjaWZpYyBpc24ndCBnb29kLiBBbHNvIGFkZGlu ZyBQYW5rYWouDQoNCkZvciBJbnRlbCB0aGUgb25seSB1c2UgdGhhdCB3ZSBoYXZlIGZvciBkYW1h Z2UgY2xpcHMgaXMgUFNSMiBzZWxlY3RpdmUgZmV0Y2gsIHdlIG5lZWRlZCB0aGlzIHRlc3QgdG8g YmUgc3BlY2lmaWMgUFNSMiB0byBjaGVjayBpZiBpOTE1IGlzIHByb3Blcmx5DQpoYW5kbGluZyBp dCBieSBjaGVja2luZyB0aGUgdXBkYXRlcyBpbiB0aGUgUFNSMiBzdGF0dXMgcmVnaXN0ZXJzIGFu ZCBhbHNvIHByb3Blcmx5IHJlbmRlcmluZyB0aGUgaW1hZ2Ugb24gdGhlIGVEUCBwYW5lbC4NCg0K TWFraW5nIHRoaXMgZ2VuZXJpYyB3aWxsIG9ubHkgcmVtb3ZlIHRoZSB0ZXN0IGNvdmVyYWdlIHRo YXQgd2UgaGF2ZSBmb3IgdGhpcyBmZWF0dXJlKHRoYXQgaXMgbm90IGV2ZW4gZW5hYmxlIGJ5IGRl ZmF1bHQgeWV0KS4NCg0KPiANCj4gQ2hlZXJzLCBEYW5pZWwNCj4gDQo+ID4gPiANCj4gPiA+ID4g DQo+ID4gPiA+IFRoYW5rcywgRGFuaWVsDQo+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiAtLS0NCj4g PiA+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMgfCAx MTMgKysrKysrKysrKysrKysrKysrKystLS0NCj4gPiA+ID4gPiA+ID4gIDEgZmlsZSBjaGFuZ2Vk LCA5OSBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkNCj4gPiA+ID4gPiA+ID4gDQo+ID4g PiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X3Bzci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYw0KPiA+ID4g PiA+ID4gPiBpbmRleCBkOWEzOTVjNDg2ZDMuLmY1Yjk1MTliMzc1NiAxMDA2NDQNCj4gPiA+ID4g PiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYw0KPiA+ ID4gPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5j DQo+ID4gPiA+ID4gPiA+IEBAIC0xMjQyLDkgKzEyNDIsMTEgQEAgc3RhdGljIHZvaWQgcHNyMl9t YW5fdHJrX2N0bF9jYWxjKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLA0KPiA+ ID4gPiA+ID4gPiAgICAgICAgIGlmIChjbGlwLT55MSA9PSAtMSkNCj4gPiA+ID4gPiA+ID4gICAg ICAgICAgICAgICAgIGdvdG8gZXhpdDsNCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ICsg ICAgICAgZHJtX1dBUk5fT04oY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYsIGNsaXAtPnkxICUg NCB8fCBjbGlwLT55MiAlIDQpOw0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICAgICAg ICAgdmFsIHw9IFBTUjJfTUFOX1RSS19DVExfU0ZfUEFSVElBTF9GUkFNRV9VUERBVEU7DQo+ID4g PiA+ID4gPiA+ICAgICAgICAgdmFsIHw9IFBTUjJfTUFOX1RSS19DVExfU1VfUkVHSU9OX1NUQVJU X0FERFIoY2xpcC0+eTEgLyA0ICsgMSk7DQo+ID4gPiA+ID4gPiA+IC0gICAgICAgdmFsIHw9IFBT UjJfTUFOX1RSS19DVExfU1VfUkVHSU9OX0VORF9BRERSKERJVl9ST1VORF9VUChjbGlwLT55Miwg NCkgKyAxKTsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICB2YWwgfD0gUFNSMl9NQU5fVFJLX0NUTF9T VV9SRUdJT05fRU5EX0FERFIoY2xpcC0+eTIgLyA0ICsgMSk7DQo+ID4gPiA+ID4gPiA+ICBleGl0 Og0KPiA+ID4gPiA+ID4gPiAgICAgICAgIGNydGNfc3RhdGUtPnBzcjJfbWFuX3RyYWNrX2N0bCA9 IHZhbDsNCj4gPiA+ID4gPiA+ID4gIH0NCj4gPiA+ID4gPiA+ID4gQEAgLTEyNjksOCArMTI3MSw4 IEBAIGludCBpbnRlbF9wc3IyX3NlbF9mZXRjaF91cGRhdGUoc3RydWN0IGludGVsX2F0b21pY19z dGF0ZSAqc3RhdGUsDQo+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGludGVsX2NydGMgKmNydGMpDQo+ID4gPiA+ID4gPiA+ICB7DQo+ID4gPiA+ID4g PiA+ICAgICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPSBpbnRlbF9h dG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsNCj4gPiA+ID4gPiA+ID4gKyAg ICAgICBzdHJ1Y3QgZHJtX3JlY3QgcGlwZV9jbGlwID0geyAueDEgPSAwLCAueTEgPSAtMSwgLngy ID0gSU5UX01BWCwgLnkyID0gLTEgfTsNCj4gPiA+ID4gPiA+ID4gICAgICAgICBzdHJ1Y3QgaW50 ZWxfcGxhbmVfc3RhdGUgKm5ld19wbGFuZV9zdGF0ZSwgKm9sZF9wbGFuZV9zdGF0ZTsNCj4gPiA+ ID4gPiA+ID4gLSAgICAgICBzdHJ1Y3QgZHJtX3JlY3QgcGlwZV9jbGlwID0geyAueTEgPSAtMSB9 Ow0KPiA+ID4gPiA+ID4gPiAgICAgICAgIHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7DQo+ID4g PiA+ID4gPiA+ICAgICAgICAgYm9vbCBmdWxsX3VwZGF0ZSA9IGZhbHNlOw0KPiA+ID4gPiA+ID4g PiAgICAgICAgIGludCBpLCByZXQ7DQo+ID4gPiA+ID4gPiA+IEBAIC0xMjgyLDEzICsxMjg0LDI1 IEBAIGludCBpbnRlbF9wc3IyX3NlbF9mZXRjaF91cGRhdGUoc3RydWN0IGludGVsX2F0b21pY19z dGF0ZSAqc3RhdGUsDQo+ID4gPiA+ID4gPiA+ICAgICAgICAgaWYgKHJldCkNCj4gPiA+ID4gPiA+ ID4gICAgICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ ID4gPiArICAgICAgIC8qDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICogQ2FsY3VsYXRlIG1pbmlt YWwgc2VsZWN0aXZlIGZldGNoIGFyZWEgb2YgZWFjaCBwbGFuZSBhbmQgY2FsY3VsYXRlDQo+ID4g PiA+ID4gPiA+ICsgICAgICAgICogdGhlIHBpcGUgZGFtYWdlZCBhcmVhLg0KPiA+ID4gPiA+ID4g PiArICAgICAgICAqIEluIHRoZSBuZXh0IGxvb3AgdGhlIHBsYW5lIHNlbGVjdGl2ZSBmZXRjaCBh cmVhIHdpbGwgYWN0dWFsbHkgYmUgc2V0DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICogdXNpbmcg d2hvbGUgcGlwZSBkYW1hZ2VkIGFyZWEuDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICovDQo+ID4g PiA+ID4gPiA+ICAgICAgICAgZm9yX2VhY2hfb2xkbmV3X2ludGVsX3BsYW5lX2luX3N0YXRlKHN0 YXRlLCBwbGFuZSwgb2xkX3BsYW5lX3N0YXRlLA0KPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfcGxhbmVfc3RhdGUsIGkpIHsNCj4g PiA+ID4gPiA+ID4gLSAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fcmVjdCAqc2VsX2ZldGNoX2Fy ZWEsIHRlbXA7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX3JlY3Qg c3JjLCBkYW1hZ2VkX2FyZWEgPSB7IC55MSA9IC0xIH07DQo+ID4gPiA+ID4gPiA+ICsgICAgICAg ICAgICAgICBzdHJ1Y3QgZHJtX21vZGVfcmVjdCAqZGFtYWdlZF9jbGlwczsNCj4gPiA+ID4gPiA+ ID4gKyAgICAgICAgICAgICAgIHUzMiBudW1fY2xpcHMsIGo7DQo+ID4gPiA+ID4gPiA+IA0KPiA+ ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgaWYgKG5ld19wbGFuZV9zdGF0ZS0+dWFwaS5jcnRj ICE9IGNydGNfc3RhdGUtPnVhcGkuY3J0YykNCj4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgY29udGludWU7DQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiArICAgICAg ICAgICAgICAgaWYgKCFuZXdfcGxhbmVfc3RhdGUtPnVhcGkudmlzaWJsZSAmJg0KPiA+ID4gPiA+ ID4gPiArICAgICAgICAgICAgICAgICAgICFvbGRfcGxhbmVfc3RhdGUtPnVhcGkudmlzaWJsZSkN Cj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQo+ID4gPiA+ ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgIC8qDQo+ID4gPiA+ID4gPiA+ ICAgICAgICAgICAgICAgICAgKiBUT0RPOiBOb3QgY2xlYXIgaG93IHRvIGhhbmRsZSBwbGFuZXMg d2l0aCBuZWdhdGl2ZSBwb3NpdGlvbiwNCj4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAq IGFsc28gcGxhbmVzIGFyZSBub3QgdXBkYXRlZCBpZiB0aGV5IGhhdmUgYSBuZWdhdGl2ZSBYDQo+ ID4gPiA+ID4gPiA+IEBAIC0xMzAwLDIzICsxMzE0LDk0IEBAIGludCBpbnRlbF9wc3IyX3NlbF9m ZXRjaF91cGRhdGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsDQo+ID4gPiA+ID4g PiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+ID4gPiA+ID4gPiAgICAgICAg ICAgICAgICAgfQ0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gLSAgICAgICAgICAgICAg IGlmICghbmV3X3BsYW5lX3N0YXRlLT51YXBpLnZpc2libGUpDQo+ID4gPiA+ID4gPiA+IC0gICAg ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAg ICAgbnVtX2NsaXBzID0gZHJtX3BsYW5lX2dldF9kYW1hZ2VfY2xpcHNfY291bnQoJm5ld19wbGFu ZV9zdGF0ZS0+dWFwaSk7DQo+ID4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiAgICAgICAgICAg ICAgICAgLyoNCj4gPiA+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAqIEZvciBub3cgZG9pbmcg YSBzZWxlY3RpdmUgZmV0Y2ggaW4gdGhlIHdob2xlIHBsYW5lIGFyZWEsDQo+ID4gPiA+ID4gPiA+ IC0gICAgICAgICAgICAgICAgKiBvcHRpbWl6YXRpb25zIHdpbGwgY29tZSBpbiB0aGUgZnV0dXJl Lg0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICogSWYgdmlzaWJpbGl0eSBvciBwbGFu ZSBtb3ZlZCwgbWFyayB0aGUgd2hvbGUgcGxhbmUgYXJlYSBhcw0KPiA+ID4gPiA+ID4gPiArICAg ICAgICAgICAgICAgICogZGFtYWdlZCBhcyBpdCBuZWVkcyB0byBiZSBjb21wbGV0ZSByZWRyYXcg aW4gdGhlIG5ldyBhbmQgb2xkDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgKiBwb3Np dGlvbi4NCj4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAqLw0KPiA+ID4gPiA+ID4gPiAt ICAgICAgICAgICAgICAgc2VsX2ZldGNoX2FyZWEgPSAmbmV3X3BsYW5lX3N0YXRlLT5wc3IyX3Nl bF9mZXRjaF9hcmVhOw0KPiA+ID4gPiA+ID4gPiAtICAgICAgICAgICAgICAgc2VsX2ZldGNoX2Fy ZWEtPnkxID0gbmV3X3BsYW5lX3N0YXRlLT51YXBpLnNyYy55MSA+PiAxNjsNCj4gPiA+ID4gPiA+ ID4gLSAgICAgICAgICAgICAgIHNlbF9mZXRjaF9hcmVhLT55MiA9IG5ld19wbGFuZV9zdGF0ZS0+ dWFwaS5zcmMueTIgPj4gMTY7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBpZiAobmV3 X3BsYW5lX3N0YXRlLT51YXBpLnZpc2libGUgIT0gb2xkX3BsYW5lX3N0YXRlLT51YXBpLnZpc2li bGUgfHwNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAhZHJtX3JlY3RfZXF1YWxz KCZuZXdfcGxhbmVfc3RhdGUtPnVhcGkuZHN0LA0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJm9sZF9wbGFuZV9zdGF0ZS0+dWFwaS5kc3QpKSB7DQo+ ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChvbGRfcGxhbmVfc3RhdGUt PnVhcGkudmlzaWJsZSkgew0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRhbWFnZWRfYXJlYS55MSA9IG9sZF9wbGFuZV9zdGF0ZS0+dWFwaS5kc3QueTE7DQo+ ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFtYWdlZF9hcmVh LnkyID0gb2xkX3BsYW5lX3N0YXRlLT51YXBpLmRzdC55MjsNCj4gPiA+ID4gPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGlwX2FyZWFfdXBkYXRlKCZwaXBlX2NsaXAsICZk YW1hZ2VkX2FyZWEpOw0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICB9DQo+ ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYg KG5ld19wbGFuZV9zdGF0ZS0+dWFwaS52aXNpYmxlKSB7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGFtYWdlZF9hcmVhLnkxID0gbmV3X3BsYW5lX3N0YXRl LT51YXBpLmRzdC55MTsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkYW1hZ2VkX2FyZWEueTIgPSBuZXdfcGxhbmVfc3RhdGUtPnVhcGkuZHN0LnkyOw0KPiA+ ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBfYXJlYV91cGRh dGUoJnBpcGVfY2xpcCwgJmRhbWFnZWRfYXJlYSk7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIH0NCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgY29u dGludWU7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG5ld19wbGFu ZV9zdGF0ZS0+dWFwaS5hbHBoYSAhPSBvbGRfcGxhbmVfc3RhdGUtPnVhcGkuYWxwaGEgfHwNCj4g PiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCFudW1fY2xpcHMgJiYNCj4g PiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19wbGFuZV9zdGF0ZS0+ dWFwaS5mYiAhPSBvbGRfcGxhbmVfc3RhdGUtPnVhcGkuZmIpKSB7DQo+ID4gPiA+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgIC8qDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAqIElmIHRoZSBwbGFuZSBkb24ndCBoYXZlIGRhbWFnZWQgYXJlYXMgYnV0IHRoZQ0K PiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgKiBmcmFtZWJ1ZmZlciBjaGFu Z2VkIG9yIGFscGhhIGNoYW5nZWQsIG1hcmsgdGhlIHdob2xlDQo+ID4gPiA+ID4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAqIHBsYW5lIGFyZWEgYXMgZGFtYWdlZC4NCj4gPiA+ID4gPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICovDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIGRhbWFnZWRfYXJlYS55MSA9IG5ld19wbGFuZV9zdGF0ZS0+dWFwaS5kc3Qu eTE7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGRhbWFnZWRfYXJlYS55 MiA9IG5ld19wbGFuZV9zdGF0ZS0+dWFwaS5kc3QueTI7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIGNsaXBfYXJlYV91cGRhdGUoJnBpcGVfY2xpcCwgJmRhbWFnZWRfYXJl YSk7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgfQ0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4g PiA+ICsgICAgICAgICAgICAgICBkcm1fcmVjdF9mcF90b19pbnQoJnNyYywgJm5ld19wbGFuZV9z dGF0ZS0+dWFwaS5zcmMpOw0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgZGFtYWdlZF9j bGlwcyA9IGRybV9wbGFuZV9nZXRfZGFtYWdlX2NsaXBzKCZuZXdfcGxhbmVfc3RhdGUtPnVhcGkp Ow0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBmb3IgKGog PSAwOyBqIDwgbnVtX2NsaXBzOyBqKyspIHsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IGRybV9yZWN0IGNsaXA7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgY2xpcC54MSA9IGRhbWFnZWRfY2xpcHNbal0u eDE7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGNsaXAueTEgPSBkYW1h Z2VkX2NsaXBzW2pdLnkxOw0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBj bGlwLngyID0gZGFtYWdlZF9jbGlwc1tqXS54MjsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgY2xpcC55MiA9IGRhbWFnZWRfY2xpcHNbal0ueTI7DQo+ID4gPiA+ID4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChkcm1fcmVjdF9pbnRlcnNlY3QoJmNsaXAsICZz cmMpKQ0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXBf YXJlYV91cGRhdGUoJmRhbWFnZWRfYXJlYSwgJmNsaXApOw0KPiA+ID4gPiA+ID4gPiArICAgICAg ICAgICAgICAgfQ0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gLSAgICAgICAgICAgICAg IHRlbXAgPSAqc2VsX2ZldGNoX2FyZWE7DQo+ID4gPiA+ID4gPiA+IC0gICAgICAgICAgICAgICB0 ZW1wLnkxICs9IG5ld19wbGFuZV9zdGF0ZS0+dWFwaS5kc3QueTE7DQo+ID4gPiA+ID4gPiA+IC0g ICAgICAgICAgICAgICB0ZW1wLnkyICs9IG5ld19wbGFuZV9zdGF0ZS0+dWFwaS5kc3QueTI7DQo+ ID4gPiA+ID4gPiA+IC0gICAgICAgICAgICAgICBjbGlwX2FyZWFfdXBkYXRlKCZwaXBlX2NsaXAs ICZ0ZW1wKTsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIGlmIChkYW1hZ2VkX2FyZWEu eTEgPT0gLTEpDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl Ow0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBkYW1hZ2Vk X2FyZWEueTEgKz0gbmV3X3BsYW5lX3N0YXRlLT51YXBpLmRzdC55MSAtIHNyYy55MTsNCj4gPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgICAgIGRhbWFnZWRfYXJlYS55MiArPSBuZXdfcGxhbmVfc3Rh dGUtPnVhcGkuZHN0LnkxIC0gc3JjLnkxOw0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAg Y2xpcF9hcmVhX3VwZGF0ZSgmcGlwZV9jbGlwLCAmZGFtYWdlZF9hcmVhKTsNCj4gPiA+ID4gPiA+ ID4gKyAgICAgICB9DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICBpZiAo ZnVsbF91cGRhdGUpDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBnb3RvIHNraXBfc2Vs X2ZldGNoX3NldF9sb29wOw0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICsgICAgICAg LyogSXQgbXVzdCBiZSBhbGlnbmVkIHRvIDQgbGluZXMgKi8NCj4gPiA+ID4gPiA+ID4gKyAgICAg ICBwaXBlX2NsaXAueTEgLT0gcGlwZV9jbGlwLnkxICUgNDsNCj4gPiA+ID4gPiA+ID4gKyAgICAg ICBpZiAocGlwZV9jbGlwLnkyICUgNCkNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIHBp cGVfY2xpcC55MiA9ICgocGlwZV9jbGlwLnkyIC8gNCkgKyAxKSAqIDQ7DQo+ID4gPiA+ID4gPiA+ ICsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAvKg0KPiA+ID4gPiA+ID4gPiArICAgICAgICAqIE5v dyB0aGF0IHdlIGhhdmUgdGhlIHBpcGUgZGFtYWdlZCBhcmVhIGNoZWNrIGlmIGl0IGludGVyc2Vj dCB3aXRoDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICogZXZlcnkgcGxhbmUsIGlmIGl0IGRvZXMg c2V0IHRoZSBwbGFuZSBzZWxlY3RpdmUgZmV0Y2ggYXJlYS4NCj4gPiA+ID4gPiA+ID4gKyAgICAg ICAgKi8NCj4gPiA+ID4gPiA+ID4gKyAgICAgICBmb3JfZWFjaF9vbGRuZXdfaW50ZWxfcGxhbmVf aW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBvbGRfcGxhbmVfc3RhdGUsDQo+ID4gPiA+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19wbGFuZV9zdGF0 ZSwgaSkgew0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgc3RydWN0IGRybV9yZWN0ICpz ZWxfZmV0Y2hfYXJlYSwgaW50ZXI7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKyAg ICAgICAgICAgICAgIGlmIChuZXdfcGxhbmVfc3RhdGUtPnVhcGkuY3J0YyAhPSBjcnRjX3N0YXRl LT51YXBpLmNydGMgfHwNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAhbmV3X3Bs YW5lX3N0YXRlLT51YXBpLnZpc2libGUpDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIGNvbnRpbnVlOw0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICsgICAgICAg ICAgICAgICBpbnRlciA9IHBpcGVfY2xpcDsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAg IGlmICghZHJtX3JlY3RfaW50ZXJzZWN0KCZpbnRlciwgJm5ld19wbGFuZV9zdGF0ZS0+dWFwaS5k c3QpKQ0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4g PiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgc2VsX2ZldGNoX2Fy ZWEgPSAmbmV3X3BsYW5lX3N0YXRlLT5wc3IyX3NlbF9mZXRjaF9hcmVhOw0KPiA+ID4gPiA+ID4g PiArICAgICAgICAgICAgICAgc2VsX2ZldGNoX2FyZWEtPnkxID0gaW50ZXIueTEgLSBuZXdfcGxh bmVfc3RhdGUtPnVhcGkuZHN0LnkxOw0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgc2Vs X2ZldGNoX2FyZWEtPnkyID0gaW50ZXIueTIgLSBuZXdfcGxhbmVfc3RhdGUtPnVhcGkuZHN0Lnkx Ow0KPiA+ID4gPiA+ID4gPiAgICAgICAgIH0NCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ ICtza2lwX3NlbF9mZXRjaF9zZXRfbG9vcDoNCj4gPiA+ID4gPiA+ID4gICAgICAgICBwc3IyX21h bl90cmtfY3RsX2NhbGMoY3J0Y19zdGF0ZSwgJnBpcGVfY2xpcCwgZnVsbF91cGRhdGUpOw0KPiA+ ID4gPiA+ID4gPiAgICAgICAgIHJldHVybiAwOw0KPiA+ID4gPiA+ID4gPiAgfQ0KPiA+ID4gPiA+ ID4gPiAtLQ0KPiA+ID4gPiA+ID4gPiAyLjMwLjANCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4g PiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4g PiA+ID4gPiA+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QNCj4gPiA+ID4gPiA+ID4gSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPiA+ID4gPiA+ID4gPiBodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA0KPiA+ID4gPiA+ID4gDQo+ID4g PiA+ID4gPiANCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gLS0NCj4gPiA+ID4gPiA+IERhbmll bCBWZXR0ZXINCj4gPiA+ID4gPiA+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlv bg0KPiA+ID4gPiA+ID4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gNCj4gPiA+ID4gPiANCj4gPiA+ID4g PiANCj4gPiA+ID4gPiANCj4gPiA+ID4gPiAtLQ0KPiA+ID4gPiA+IERhbmllbCBWZXR0ZXINCj4g PiA+ID4gPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24NCj4gPiA+ID4gPiBo dHRwOi8vYmxvZy5mZndsbC5jaA0KPiA+ID4gPiANCj4gPiA+ID4gDQo+ID4gPiA+IA0KPiA+ID4g DQo+ID4gDQo+ID4gDQo+ID4gLS0NCj4gPiBEYW5pZWwgVmV0dGVyDQo+ID4gU29mdHdhcmUgRW5n aW5lZXIsIEludGVsIENvcnBvcmF0aW9uDQo+ID4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gNCj4gDQo+ IA0KPiANCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==