From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 01/12] drm: Inline drm_color_lut_extract() Date: Fri, 8 Nov 2019 15:36:57 +0200 Message-ID: <20191108133657.GG1208@intel.com> References: <20191107151725.10507-1-ville.syrjala@linux.intel.com> <20191107151725.10507-2-ville.syrjala@linux.intel.com> <20191107174014.GQ23790@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20191107174014.GQ23790@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBOb3YgMDcsIDIwMTkgYXQgMDY6NDA6MTRQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUaHUsIE5vdiAwNywgMjAxOSBhdCAwNToxNzoxNFBNICswMjAwLCBWaWxsZSBT eXJqYWxhIHdyb3RlOgo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KPiA+IAo+ID4gVGhpcyB0aGluZyBjYW4gZ2V0IGNhbGxlZCBzZXZlcmFs IHRob3VzYW5kIHRpbWVzIHBlciBMVVQKPiA+IHNvIHNlZW1zIGxpa2Ugd2Ugd2FudCB0byBpbmxp bmUgaXQgdG86Cj4gPiAtIGF2b2lkIHRoZSBmdW5jdGlvbiBjYWxsIG92ZXJoZWFkCj4gPiAtIGFs bG93IGNvbnN0YW50IGZvbGRpbmcKPiA+IAo+ID4gQSBxdWljayBzeW50aGV0aWMgdGVzdCAody9v IGFueSBoYXJkd2FyZSBpbnRlcmFjdGlvbikgd2l0aAo+ID4gYSByaWRpY3Vsb3VzbHkgbGFyZ2Ug TFVUIHNpemUgc2hvd3MgYWJvdXQgNTAlIHJlZHVjdGlvbiBpbgo+ID4gcnVudGltZSBvbiBteSBI U1cgYW5kIEJTVyBib3hlcy4gU2xpZ2h0bHkgbGVzcyB3aXRoIG1vcmUKPiA+IHJlYXNvbmFibGUg TFVUIHNpemUgYnV0IHN0aWxsIGVhc2lseSBtZWFzdXJhYmxlIGluIHRlbnMKPiA+IG9mIG1pY3Jv c2Vjb25kcy4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1f Y29sb3JfbWdtdC5jIHwgMjQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiAgaW5jbHVkZS9k cm0vZHJtX2NvbG9yX21nbXQuaCAgICAgfCAyMyArKysrKysrKysrKysrKysrKysrKysrLQo+IAo+ IFlvdSBmb3Jnb3QgdG8gYWRkIHRoZSBpbmNsdWRlIHN0YW56YSBpbiB0aGUga2VybmVsZG9jIC5y c3QgZmlsZXMsIHdoaWNoCj4gbWVhbnMgdGhpcyBpcyBub3cgbG9zdCBmcm9tIHRoZSBvdXRwdXQu IFBsZWFzZSBmaXguCgpBeWUuIEEgYml0IGZ1bm55IHRoYXQgd2UgYWxyZWFkeSBoYXZlIGEgYnVu Y2ggb2Ygb3RoZXIga2VybmVsZG9jcwppbiB0aGF0IGhlYWRlciBidXQgaXQncyBub3QgaW5jbHVk ZWQgaW4gdGhlIC5yc3QuCgo+IC1EYW5pZWwKPiAKPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDIyIGlu c2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9jb2xvcl9tZ210LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NvbG9yX21n bXQuYwo+ID4gaW5kZXggNGNlNWM2ZDhkZTk5Li4xOWM1ZjYzNTk5MmEgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NvbG9yX21nbXQuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9jb2xvcl9tZ210LmMKPiA+IEBAIC0xMDgsMzAgKzEwOCw2IEBACj4gPiAgICogCXN0 YW5kYXJkIGVudW0gdmFsdWVzIHN1cHBvcnRlZCBieSB0aGUgRFJNIHBsYW5lLgo+ID4gICAqLwo+ ID4gIAo+ID4gLS8qKgo+ID4gLSAqIGRybV9jb2xvcl9sdXRfZXh0cmFjdCAtIGNsYW1wIGFuZCBy b3VuZCBMVVQgZW50cmllcwo+ID4gLSAqIEB1c2VyX2lucHV0OiBpbnB1dCB2YWx1ZQo+ID4gLSAq IEBiaXRfcHJlY2lzaW9uOiBudW1iZXIgb2YgYml0cyB0aGUgaHcgTFVUIHN1cHBvcnRzCj4gPiAt ICoKPiA+IC0gKiBFeHRyYWN0IGEgZGVnYW1tYS9nYW1tYSBMVVQgdmFsdWUgcHJvdmlkZWQgYnkg dXNlciAoaW4gdGhlIGZvcm0gb2YKPiA+IC0gKiAmZHJtX2NvbG9yX2x1dCBlbnRyaWVzKSBhbmQg cm91bmQgaXQgdG8gdGhlIHByZWNpc2lvbiBzdXBwb3J0ZWQgYnkgdGhlCj4gPiAtICogaGFyZHdh cmUuCj4gPiAtICovCj4gPiAtdWludDMyX3QgZHJtX2NvbG9yX2x1dF9leHRyYWN0KHVpbnQzMl90 IHVzZXJfaW5wdXQsIHVpbnQzMl90IGJpdF9wcmVjaXNpb24pCj4gPiAtewo+ID4gLQl1aW50MzJf dCB2YWwgPSB1c2VyX2lucHV0Owo+ID4gLQl1aW50MzJfdCBtYXggPSAweGZmZmYgPj4gKDE2IC0g Yml0X3ByZWNpc2lvbik7Cj4gPiAtCj4gPiAtCS8qIFJvdW5kIG9ubHkgaWYgd2UncmUgbm90IHVz aW5nIGZ1bGwgcHJlY2lzaW9uLiAqLwo+ID4gLQlpZiAoYml0X3ByZWNpc2lvbiA8IDE2KSB7Cj4g PiAtCQl2YWwgKz0gMVVMIDw8ICgxNiAtIGJpdF9wcmVjaXNpb24gLSAxKTsKPiA+IC0JCXZhbCA+ Pj0gMTYgLSBiaXRfcHJlY2lzaW9uOwo+ID4gLQl9Cj4gPiAtCj4gPiAtCXJldHVybiBjbGFtcF92 YWwodmFsLCAwLCBtYXgpOwo+ID4gLX0KPiA+IC1FWFBPUlRfU1lNQk9MKGRybV9jb2xvcl9sdXRf ZXh0cmFjdCk7Cj4gPiAtCj4gPiAgLyoqCj4gPiAgICogZHJtX2NydGNfZW5hYmxlX2NvbG9yX21n bXQgLSBlbmFibGUgY29sb3IgbWFuYWdlbWVudCBwcm9wZXJ0aWVzCj4gPiAgICogQGNydGM6IERS TSBDUlRDCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NvbG9yX21nbXQuaCBiL2lu Y2x1ZGUvZHJtL2RybV9jb2xvcl9tZ210LmgKPiA+IGluZGV4IGQxYzY2MmQ5MmFiNy4uMDY5YjIx ZDYxODcxIDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2NvbG9yX21nbXQuaAo+ID4g KysrIGIvaW5jbHVkZS9kcm0vZHJtX2NvbG9yX21nbXQuaAo+ID4gQEAgLTI5LDcgKzI5LDI4IEBA Cj4gPiAgc3RydWN0IGRybV9jcnRjOwo+ID4gIHN0cnVjdCBkcm1fcGxhbmU7Cj4gPiAgCj4gPiAt dWludDMyX3QgZHJtX2NvbG9yX2x1dF9leHRyYWN0KHVpbnQzMl90IHVzZXJfaW5wdXQsIHVpbnQz Ml90IGJpdF9wcmVjaXNpb24pOwo+ID4gKy8qKgo+ID4gKyAqIGRybV9jb2xvcl9sdXRfZXh0cmFj dCAtIGNsYW1wIGFuZCByb3VuZCBMVVQgZW50cmllcwo+ID4gKyAqIEB1c2VyX2lucHV0OiBpbnB1 dCB2YWx1ZQo+ID4gKyAqIEBiaXRfcHJlY2lzaW9uOiBudW1iZXIgb2YgYml0cyB0aGUgaHcgTFVU IHN1cHBvcnRzCj4gPiArICoKPiA+ICsgKiBFeHRyYWN0IGEgZGVnYW1tYS9nYW1tYSBMVVQgdmFs dWUgcHJvdmlkZWQgYnkgdXNlciAoaW4gdGhlIGZvcm0gb2YKPiA+ICsgKiAmZHJtX2NvbG9yX2x1 dCBlbnRyaWVzKSBhbmQgcm91bmQgaXQgdG8gdGhlIHByZWNpc2lvbiBzdXBwb3J0ZWQgYnkgdGhl Cj4gPiArICogaGFyZHdhcmUuCj4gPiArICovCj4gPiArc3RhdGljIGlubGluZSB1MzIgZHJtX2Nv bG9yX2x1dF9leHRyYWN0KHUzMiB1c2VyX2lucHV0LCBpbnQgYml0X3ByZWNpc2lvbikKPiA+ICt7 Cj4gPiArCXUzMiB2YWwgPSB1c2VyX2lucHV0Owo+ID4gKwl1MzIgbWF4ID0gMHhmZmZmID4+ICgx NiAtIGJpdF9wcmVjaXNpb24pOwo+ID4gKwo+ID4gKwkvKiBSb3VuZCBvbmx5IGlmIHdlJ3JlIG5v dCB1c2luZyBmdWxsIHByZWNpc2lvbi4gKi8KPiA+ICsJaWYgKGJpdF9wcmVjaXNpb24gPCAxNikg ewo+ID4gKwkJdmFsICs9IDFVTCA8PCAoMTYgLSBiaXRfcHJlY2lzaW9uIC0gMSk7Cj4gPiArCQl2 YWwgPj49IDE2IC0gYml0X3ByZWNpc2lvbjsKPiA+ICsJfQo+ID4gKwo+ID4gKwlyZXR1cm4gY2xh bXBfdmFsKHZhbCwgMCwgbWF4KTsKPiA+ICt9Cj4gPiAgCj4gPiAgdm9pZCBkcm1fY3J0Y19lbmFi bGVfY29sb3JfbWdtdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiAgCQkJCXVpbnQgZGVnYW1t YV9sdXRfc2l6ZSwKPiA+IC0tIAo+ID4gMi4yMy4wCj4gPiAKPiA+IF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0 Cj4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+IAo+IC0tIAo+IERhbmll bCBWZXR0ZXIKPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiBodHRwOi8v YmxvZy5mZndsbC5jaAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng= 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=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 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 3AE5AC5DF60 for ; Fri, 8 Nov 2019 13:37:06 +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 1A2F621848 for ; Fri, 8 Nov 2019 13:37:06 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1A2F621848 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2D9B86F98C; Fri, 8 Nov 2019 13:37:04 +0000 (UTC) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5427E6F98C; Fri, 8 Nov 2019 13:37:02 +0000 (UTC) X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Nov 2019 05:37:01 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,281,1569308400"; d="scan'208";a="232725327" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by FMSMGA003.fm.intel.com with SMTP; 08 Nov 2019 05:36:58 -0800 Received: by stinkbox (sSMTP sendmail emulation); Fri, 08 Nov 2019 15:36:57 +0200 Date: Fri, 8 Nov 2019 15:36:57 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Daniel Vetter Subject: Re: [Intel-gfx] [PATCH 01/12] drm: Inline drm_color_lut_extract() Message-ID: <20191108133657.GG1208@intel.com> References: <20191107151725.10507-1-ville.syrjala@linux.intel.com> <20191107151725.10507-2-ville.syrjala@linux.intel.com> <20191107174014.GQ23790@phenom.ffwll.local> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20191107174014.GQ23790@phenom.ffwll.local> User-Agent: Mutt/1.10.1 (2018-07-13) X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Message-ID: <20191108133657._LOJ_2ysnizHIiGPIPpXPhKtHEdgNOxqRKFoA5vYC9U@z> T24gVGh1LCBOb3YgMDcsIDIwMTkgYXQgMDY6NDA6MTRQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUaHUsIE5vdiAwNywgMjAxOSBhdCAwNToxNzoxNFBNICswMjAwLCBWaWxsZSBT eXJqYWxhIHdyb3RlOgo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KPiA+IAo+ID4gVGhpcyB0aGluZyBjYW4gZ2V0IGNhbGxlZCBzZXZlcmFs IHRob3VzYW5kIHRpbWVzIHBlciBMVVQKPiA+IHNvIHNlZW1zIGxpa2Ugd2Ugd2FudCB0byBpbmxp bmUgaXQgdG86Cj4gPiAtIGF2b2lkIHRoZSBmdW5jdGlvbiBjYWxsIG92ZXJoZWFkCj4gPiAtIGFs bG93IGNvbnN0YW50IGZvbGRpbmcKPiA+IAo+ID4gQSBxdWljayBzeW50aGV0aWMgdGVzdCAody9v IGFueSBoYXJkd2FyZSBpbnRlcmFjdGlvbikgd2l0aAo+ID4gYSByaWRpY3Vsb3VzbHkgbGFyZ2Ug TFVUIHNpemUgc2hvd3MgYWJvdXQgNTAlIHJlZHVjdGlvbiBpbgo+ID4gcnVudGltZSBvbiBteSBI U1cgYW5kIEJTVyBib3hlcy4gU2xpZ2h0bHkgbGVzcyB3aXRoIG1vcmUKPiA+IHJlYXNvbmFibGUg TFVUIHNpemUgYnV0IHN0aWxsIGVhc2lseSBtZWFzdXJhYmxlIGluIHRlbnMKPiA+IG9mIG1pY3Jv c2Vjb25kcy4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1f Y29sb3JfbWdtdC5jIHwgMjQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiAgaW5jbHVkZS9k cm0vZHJtX2NvbG9yX21nbXQuaCAgICAgfCAyMyArKysrKysrKysrKysrKysrKysrKysrLQo+IAo+ IFlvdSBmb3Jnb3QgdG8gYWRkIHRoZSBpbmNsdWRlIHN0YW56YSBpbiB0aGUga2VybmVsZG9jIC5y c3QgZmlsZXMsIHdoaWNoCj4gbWVhbnMgdGhpcyBpcyBub3cgbG9zdCBmcm9tIHRoZSBvdXRwdXQu IFBsZWFzZSBmaXguCgpBeWUuIEEgYml0IGZ1bm55IHRoYXQgd2UgYWxyZWFkeSBoYXZlIGEgYnVu Y2ggb2Ygb3RoZXIga2VybmVsZG9jcwppbiB0aGF0IGhlYWRlciBidXQgaXQncyBub3QgaW5jbHVk ZWQgaW4gdGhlIC5yc3QuCgo+IC1EYW5pZWwKPiAKPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDIyIGlu c2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9jb2xvcl9tZ210LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NvbG9yX21n bXQuYwo+ID4gaW5kZXggNGNlNWM2ZDhkZTk5Li4xOWM1ZjYzNTk5MmEgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NvbG9yX21nbXQuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9jb2xvcl9tZ210LmMKPiA+IEBAIC0xMDgsMzAgKzEwOCw2IEBACj4gPiAgICogCXN0 YW5kYXJkIGVudW0gdmFsdWVzIHN1cHBvcnRlZCBieSB0aGUgRFJNIHBsYW5lLgo+ID4gICAqLwo+ ID4gIAo+ID4gLS8qKgo+ID4gLSAqIGRybV9jb2xvcl9sdXRfZXh0cmFjdCAtIGNsYW1wIGFuZCBy b3VuZCBMVVQgZW50cmllcwo+ID4gLSAqIEB1c2VyX2lucHV0OiBpbnB1dCB2YWx1ZQo+ID4gLSAq IEBiaXRfcHJlY2lzaW9uOiBudW1iZXIgb2YgYml0cyB0aGUgaHcgTFVUIHN1cHBvcnRzCj4gPiAt ICoKPiA+IC0gKiBFeHRyYWN0IGEgZGVnYW1tYS9nYW1tYSBMVVQgdmFsdWUgcHJvdmlkZWQgYnkg dXNlciAoaW4gdGhlIGZvcm0gb2YKPiA+IC0gKiAmZHJtX2NvbG9yX2x1dCBlbnRyaWVzKSBhbmQg cm91bmQgaXQgdG8gdGhlIHByZWNpc2lvbiBzdXBwb3J0ZWQgYnkgdGhlCj4gPiAtICogaGFyZHdh cmUuCj4gPiAtICovCj4gPiAtdWludDMyX3QgZHJtX2NvbG9yX2x1dF9leHRyYWN0KHVpbnQzMl90 IHVzZXJfaW5wdXQsIHVpbnQzMl90IGJpdF9wcmVjaXNpb24pCj4gPiAtewo+ID4gLQl1aW50MzJf dCB2YWwgPSB1c2VyX2lucHV0Owo+ID4gLQl1aW50MzJfdCBtYXggPSAweGZmZmYgPj4gKDE2IC0g Yml0X3ByZWNpc2lvbik7Cj4gPiAtCj4gPiAtCS8qIFJvdW5kIG9ubHkgaWYgd2UncmUgbm90IHVz aW5nIGZ1bGwgcHJlY2lzaW9uLiAqLwo+ID4gLQlpZiAoYml0X3ByZWNpc2lvbiA8IDE2KSB7Cj4g PiAtCQl2YWwgKz0gMVVMIDw8ICgxNiAtIGJpdF9wcmVjaXNpb24gLSAxKTsKPiA+IC0JCXZhbCA+ Pj0gMTYgLSBiaXRfcHJlY2lzaW9uOwo+ID4gLQl9Cj4gPiAtCj4gPiAtCXJldHVybiBjbGFtcF92 YWwodmFsLCAwLCBtYXgpOwo+ID4gLX0KPiA+IC1FWFBPUlRfU1lNQk9MKGRybV9jb2xvcl9sdXRf ZXh0cmFjdCk7Cj4gPiAtCj4gPiAgLyoqCj4gPiAgICogZHJtX2NydGNfZW5hYmxlX2NvbG9yX21n bXQgLSBlbmFibGUgY29sb3IgbWFuYWdlbWVudCBwcm9wZXJ0aWVzCj4gPiAgICogQGNydGM6IERS TSBDUlRDCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2NvbG9yX21nbXQuaCBiL2lu Y2x1ZGUvZHJtL2RybV9jb2xvcl9tZ210LmgKPiA+IGluZGV4IGQxYzY2MmQ5MmFiNy4uMDY5YjIx ZDYxODcxIDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2NvbG9yX21nbXQuaAo+ID4g KysrIGIvaW5jbHVkZS9kcm0vZHJtX2NvbG9yX21nbXQuaAo+ID4gQEAgLTI5LDcgKzI5LDI4IEBA Cj4gPiAgc3RydWN0IGRybV9jcnRjOwo+ID4gIHN0cnVjdCBkcm1fcGxhbmU7Cj4gPiAgCj4gPiAt dWludDMyX3QgZHJtX2NvbG9yX2x1dF9leHRyYWN0KHVpbnQzMl90IHVzZXJfaW5wdXQsIHVpbnQz Ml90IGJpdF9wcmVjaXNpb24pOwo+ID4gKy8qKgo+ID4gKyAqIGRybV9jb2xvcl9sdXRfZXh0cmFj dCAtIGNsYW1wIGFuZCByb3VuZCBMVVQgZW50cmllcwo+ID4gKyAqIEB1c2VyX2lucHV0OiBpbnB1 dCB2YWx1ZQo+ID4gKyAqIEBiaXRfcHJlY2lzaW9uOiBudW1iZXIgb2YgYml0cyB0aGUgaHcgTFVU IHN1cHBvcnRzCj4gPiArICoKPiA+ICsgKiBFeHRyYWN0IGEgZGVnYW1tYS9nYW1tYSBMVVQgdmFs dWUgcHJvdmlkZWQgYnkgdXNlciAoaW4gdGhlIGZvcm0gb2YKPiA+ICsgKiAmZHJtX2NvbG9yX2x1 dCBlbnRyaWVzKSBhbmQgcm91bmQgaXQgdG8gdGhlIHByZWNpc2lvbiBzdXBwb3J0ZWQgYnkgdGhl Cj4gPiArICogaGFyZHdhcmUuCj4gPiArICovCj4gPiArc3RhdGljIGlubGluZSB1MzIgZHJtX2Nv bG9yX2x1dF9leHRyYWN0KHUzMiB1c2VyX2lucHV0LCBpbnQgYml0X3ByZWNpc2lvbikKPiA+ICt7 Cj4gPiArCXUzMiB2YWwgPSB1c2VyX2lucHV0Owo+ID4gKwl1MzIgbWF4ID0gMHhmZmZmID4+ICgx NiAtIGJpdF9wcmVjaXNpb24pOwo+ID4gKwo+ID4gKwkvKiBSb3VuZCBvbmx5IGlmIHdlJ3JlIG5v dCB1c2luZyBmdWxsIHByZWNpc2lvbi4gKi8KPiA+ICsJaWYgKGJpdF9wcmVjaXNpb24gPCAxNikg ewo+ID4gKwkJdmFsICs9IDFVTCA8PCAoMTYgLSBiaXRfcHJlY2lzaW9uIC0gMSk7Cj4gPiArCQl2 YWwgPj49IDE2IC0gYml0X3ByZWNpc2lvbjsKPiA+ICsJfQo+ID4gKwo+ID4gKwlyZXR1cm4gY2xh bXBfdmFsKHZhbCwgMCwgbWF4KTsKPiA+ICt9Cj4gPiAgCj4gPiAgdm9pZCBkcm1fY3J0Y19lbmFi bGVfY29sb3JfbWdtdChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiAgCQkJCXVpbnQgZGVnYW1t YV9sdXRfc2l6ZSwKPiA+IC0tIAo+ID4gMi4yMy4wCj4gPiAKPiA+IF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0 Cj4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+IAo+IC0tIAo+IERhbmll bCBWZXR0ZXIKPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiBodHRwOi8v YmxvZy5mZndsbC5jaAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=