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.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,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 1BDDEC63798 for ; Fri, 20 Nov 2020 09:29:50 +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 7FE862236F for ; Fri, 20 Nov 2020 09:29:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="KlHd6adf" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7FE862236F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch 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 90BA389BA3; Fri, 20 Nov 2020 09:29:48 +0000 (UTC) Received: from mail-oi1-x242.google.com (mail-oi1-x242.google.com [IPv6:2607:f8b0:4864:20::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id DA7696E88C for ; Fri, 20 Nov 2020 09:29:46 +0000 (UTC) Received: by mail-oi1-x242.google.com with SMTP id a130so1619998oif.7 for ; Fri, 20 Nov 2020 01:29:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=fPH8mrCMEezREYFMD3ZNWLYrrd6uERj/4DnYsMp+93E=; b=KlHd6adfqqq6zURrcaeaBVcby4HmEmMK32zwmLVMQaNIsUSuhURLn0xqeKgEhYZDHF RPUslFwLKSWidwTjIVUkLEcyLOvTnzJCMaR89bA0yExr1K7yCBBCH7mUs4fFsHzQhDvh hpca6vRf4IRq/9xcv3e/Q9yqpIVMv74gPxRSU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=fPH8mrCMEezREYFMD3ZNWLYrrd6uERj/4DnYsMp+93E=; b=Y9D5KWZ3jEmwg5+c5GkYzbaUus1RaA8OQhf8qpEnQwdAVKbVMwoUH1a7oFCop6jRlZ tACup/WAkiHfuUI+hGqrjFfWNa8om6l8FCenPMgPECgl3LMisGRPoy+3p7BLIjbDr52P 5aX01JwFfuw0FmC4hzmZYtrPupbH49KHUVOFGRzz3DdtxKZTfHqF8nYS6taB/dacrXFO JBGSd/YHF2MVCUjMt0Pch1z+SQ4xYNC5Fr6OKrfoMgo4TW+nLqSCfXgj1xT3lYwvURC1 My4yxvsSWoB5j7sU6JbF3+Vw5E+7MH9RkRYEdqeAmxQlpEp33tIkFjtShxvfLjSPohgi OFzw== X-Gm-Message-State: AOAM532814Gyo4lMfOt/hVRHedISkWU0Cn3/DXrLl2UJDMuHK0hxsBLm 16Mfx1/m54kczmqFTCjsCBswyr5WjcvfKXYdTfzVRw== X-Google-Smtp-Source: ABdhPJxBRgaWjMQUww6v7blQXCc/+7K4ZqWZN8B/y7DE/JOwQZL0cSxZL0ue6Toxi1WgOwMz18NdzQd/KHzufk4zRxA= X-Received: by 2002:aca:4f14:: with SMTP id d20mr5874563oib.14.1605864586236; Fri, 20 Nov 2020 01:29:46 -0800 (PST) MIME-Version: 1.0 References: <20201113152956.139663-1-maxime@cerno.tech> <20201113152956.139663-2-maxime@cerno.tech> <20201119153217.GE401619@phenom.ffwll.local> In-Reply-To: From: Daniel Vetter Date: Fri, 20 Nov 2020 10:29:35 +0100 Message-ID: Subject: Re: [PATCH 1/8] drm: Introduce an atomic_commit_setup function To: Thomas Zimmermann X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , devicetree , Tim Gover , Dave Stevenson , David Airlie , dri-devel , Rob Herring , bcm-kernel-feedback-list@broadcom.com, Maxime Ripard , Daniel Vetter , Frank Rowand , Phil Elwell , Linux ARM , linux-rpi-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" T24gRnJpLCBOb3YgMjAsIDIwMjAgYXQgOTozOSBBTSBUaG9tYXMgWmltbWVybWFubiA8dHppbW1l cm1hbm5Ac3VzZS5kZT4gd3JvdGU6Cj4KPiBIaQo+Cj4gQW0gMTkuMTEuMjAgdW0gMTY6MzIgc2No cmllYiBEYW5pZWwgVmV0dGVyOgo+ID4gT24gVGh1LCBOb3YgMTksIDIwMjAgYXQgMTA6NTk6NDJB TSArMDEwMCwgVGhvbWFzIFppbW1lcm1hbm4gd3JvdGU6Cj4gPj4gSGkKPiA+Pgo+ID4+IEFtIDEz LjExLjIwIHVtIDE2OjI5IHNjaHJpZWIgTWF4aW1lIFJpcGFyZDoKPiA+Pj4gUHJpdmF0ZSBvYmpl Y3RzIHN0b3JpbmcgYSBzdGF0ZSBzaGFyZWQgYWNyb3NzIGFsbCBDUlRDcyBuZWVkIHRvIGJlCj4g Pj4+IGNhcmVmdWxseSBoYW5kbGVkIHRvIGF2b2lkIGEgdXNlLWFmdGVyLWZyZWUgaXNzdWUuCj4g Pj4+Cj4gPj4+IFRoZSBwcm9wZXIgd2F5IHRvIGRvIHRoaXMgdG8gdHJhY2sgYWxsIHRoZSBjb21t aXRzIHVzaW5nIHRoYXQgc2hhcmVkCj4gPj4+IHN0YXRlIGFuZCB3YWl0IGZvciB0aGUgcHJldmlv dXMgY29tbWl0cyB0byBiZSBkb25lIGJlZm9yZSBnb2luZyBvbiB3aXRoCj4gPj4+IHRoZSBjdXJy ZW50IG9uZSB0byBhdm9pZCB0aGUgcmVvcmRlcmluZyBvZiBjb21taXRzIHRoYXQgY291bGQgb2Nj dXIuCj4gPj4+Cj4gPj4+IEhvd2V2ZXIsIHRoaXMgY29tbWl0IHNldHVwIG5lZWRzIHRvIGJlIGRv bmUgYWZ0ZXIKPiA+Pj4gZHJtX2F0b21pY19oZWxwZXJfc2V0dXBfY29tbWl0KCksIGJlY2F1c2Ug YmVmb3JlIHRoZSBDUlRDIGNvbW1pdAo+ID4+PiBzdHJ1Y3R1cmUgaGFzbid0IGJlZW4gYWxsb2Nh dGVkIGJlZm9yZSwgYW5kIGJlZm9yZSB0aGUgd29ya3F1ZXVlIGlzCj4gPj4+IHNjaGVkdWxlZCwg YmVjYXVzZSB3ZSB3b3VsZCBiZSBwb3RlbnRpYWxseSByZW9yZGVyZWQgYWxyZWFkeSBvdGhlcndp c2UuCj4gPj4+Cj4gPj4+IFRoYXQgbWVhbnMgdGhhdCBkcml2ZXJzIGN1cnJlbnRseSBoYXZlIHRv IHJvbGwgdGhlaXIgb3duCj4gPj4+IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdCgpIGZ1bmN0aW9u LCBldmVuIHRob3VnaCBpdCB3b3VsZCBiZSBpZGVudGljYWwKPiA+Pj4gaWYgbm90IGZvciB0aGUg Y29tbWl0IHNldHVwLgo+ID4+Pgo+ID4+PiBMZXQncyBpbnRyb2R1Y2UgYSBob29rIHRvIGRvIHNv IHRoYXQgd291bGQgYmUgY2FsbGVkIGFzIHBhcnQgb2YKPiA+Pj4gZHJtX2F0b21pY19oZWxwZXJf Y29tbWl0LCBhbGxvd2luZyB1cyB0byByZXVzZSB0aGUgYXRvbWljIGhlbHBlcnMuCj4gPj4+Cj4g Pj4+IFN1Z2dlc3RlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4K PiA+Pj4gU2lnbmVkLW9mZi1ieTogTWF4aW1lIFJpcGFyZCA8bWF4aW1lQGNlcm5vLnRlY2g+Cj4g Pj4+IC0tLQo+ID4+PiAgICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyAgICAg IHwgIDYgKysrKysrCj4gPj4+ICAgIGluY2x1ZGUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFi bGVzLmggfCAxOCArKysrKysrKysrKysrKysrKysKPiA+Pj4gICAgMiBmaWxlcyBjaGFuZ2VkLCAy NCBpbnNlcnRpb25zKCspCj4gPj4+Cj4gPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5j Cj4gPj4+IGluZGV4IGRkZDBlMzIzOTE1MC4uN2Q2OWM3ODQ0ZGZjIDEwMDY0NAo+ID4+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ID4+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ID4+PiBAQCAtMjA4Myw4ICsyMDgzLDExIEBA IGludCBkcm1fYXRvbWljX2hlbHBlcl9zZXR1cF9jb21taXQoc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlLAo+ID4+PiAgICAgc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4gPj4+ICAgICBz dHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGUsICpuZXdfcGxhbmVfc3RhdGU7 Cj4gPj4+ICAgICBzdHJ1Y3QgZHJtX2NydGNfY29tbWl0ICpjb21taXQ7Cj4gPj4+ICsgICBjb25z dCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnX2hlbHBlcl9mdW5jcyAqZnVuY3M7Cj4gPj4+ICAgICBp bnQgaSwgcmV0Owo+ID4+PiArICAgZnVuY3MgPSBzdGF0ZS0+ZGV2LT5tb2RlX2NvbmZpZy5oZWxw ZXJfcHJpdmF0ZTsKPiA+Pj4gKwo+ID4+PiAgICAgZm9yX2VhY2hfb2xkbmV3X2NydGNfaW5fc3Rh dGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLCBuZXdfY3J0Y19zdGF0ZSwgaSkgewo+ID4+ PiAgICAgICAgICAgICBjb21taXQgPSBremFsbG9jKHNpemVvZigqY29tbWl0KSwgR0ZQX0tFUk5F TCk7Cj4gPj4+ICAgICAgICAgICAgIGlmICghY29tbWl0KQo+ID4+PiBAQCAtMjE2OSw2ICsyMTcy LDkgQEAgaW50IGRybV9hdG9taWNfaGVscGVyX3NldHVwX2NvbW1pdChzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUsCj4gPj4+ICAgICAgICAgICAgIG5ld19wbGFuZV9zdGF0ZS0+Y29tbWl0 ID0gZHJtX2NydGNfY29tbWl0X2dldChjb21taXQpOwo+ID4+PiAgICAgfQo+ID4+PiArICAgaWYg KGZ1bmNzICYmIGZ1bmNzLT5hdG9taWNfY29tbWl0X3NldHVwKQo+ID4+PiArICAgICAgICAgICBy ZXR1cm4gZnVuY3MtPmF0b21pY19jb21taXRfc2V0dXAoc3RhdGUpOwo+ID4+PiArCj4gPj4+ICAg ICByZXR1cm4gMDsKPiA+Pj4gICAgfQo+ID4+PiAgICBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNf aGVscGVyX3NldHVwX2NvbW1pdCk7Cj4gPj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1f bW9kZXNldF9oZWxwZXJfdnRhYmxlcy5oIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVzZXRfaGVscGVy X3Z0YWJsZXMuaAo+ID4+PiBpbmRleCBmMmRlMDUwMDg1YmUuLjU2NDcwYmFmMDUxMyAxMDA2NDQK PiA+Pj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaAo+ID4+ PiArKysgYi9pbmNsdWRlL2RybS9kcm1fbW9kZXNldF9oZWxwZXJfdnRhYmxlcy5oCj4gPj4+IEBA IC0xMzk2LDYgKzEzOTYsMjQgQEAgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19oZWxwZXJfZnVuY3Mg ewo+ID4+PiAgICAgICogZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X3RhaWwoKS4KPiA+Pj4gICAg ICAqLwo+ID4+PiAgICAgdm9pZCAoKmF0b21pY19jb21taXRfdGFpbCkoc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlKTsKPiA+Pj4gKwo+ID4+PiArICAgLyoqCj4gPj4+ICsgICAgKiBAYXRv bWljX2NvbW1pdF9zZXR1cDoKPiA+Pj4gKyAgICAqCj4gPj4+ICsgICAgKiBUaGlzIGhvb2sgaXMg dXNlZCBieSB0aGUgZGVmYXVsdCBhdG9taWNfY29tbWl0KCkgaG9vayBpbXBsZW1lbnRlZCBpbgo+ ID4+PiArICAgICogZHJtX2F0b21pY19oZWxwZXJfY29tbWl0KCkgdG9nZXRoZXIgd2l0aCB0aGUg bm9uYmxvY2tpbmcgaGVscGVycyAoc2VlCj4gPj4+ICsgICAgKiBkcm1fYXRvbWljX2hlbHBlcl9z ZXR1cF9jb21taXQoKSkgdG8gZXh0ZW5kIHRoZSBEUk0gY29tbWl0IHNldHVwLiBJdAo+ID4+PiAr ICAgICogaXMgbm90IHVzZWQgYnkgdGhlIGF0b21pYyBoZWxwZXJzLgo+ID4+PiArICAgICoKPiA+ Pj4gKyAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGF0IHRoZSBlbmQgb2YKPiA+Pj4gKyAg ICAqIGRybV9hdG9taWNfaGVscGVyX3NldHVwX2NvbW1pdCgpLCBzbyBvbmNlIHRoZSBjb21taXQg aGFzIGJlZW4KPiA+Pj4gKyAgICAqIHByb3Blcmx5IHNldHVwIGFjcm9zcyB0aGUgZ2VuZXJpYyBE Uk0gb2JqZWN0IHN0YXRlcy4gSXQgYWxsb3dzCj4gPj4+ICsgICAgKiBkcml2ZXJzIHRvIGRvIHNv bWUgYWRkaXRpb25hbCBjb21taXQgdHJhY2tpbmcgdGhhdCBpc24ndCByZWxhdGVkIHRvIGEKPiA+ Pj4gKyAgICAqIENSVEMsIHBsYW5lIG9yIGNvbm5lY3RvciwgdHlwaWNhbGx5IGEgcHJpdmF0ZSBv YmplY3QuCj4gPj4+ICsgICAgKgo+ID4+PiArICAgICogVGhpcyBob29rIGlzIG9wdGlvbmFsLgo+ ID4+PiArICAgICovCj4gPj4+ICsgICBpbnQgKCphdG9taWNfY29tbWl0X3NldHVwKShzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ID4+Cj4gPj4gSXQgZmVlbHMgaGFja3kgYW5kIHNj cmV3ZWQtb24gdG8gbWUuIEknZCBzdWdnZXN0IHRvIGFkZCBhbgo+ID4+IGF0b21pY19jb21taXRf cHJlcGFyZSBjYWxsYmFjayB0aGF0IGlzIGNhbGxlZCBieSBkcm1fYXRvbWljX2hlbHBlciB3aGVy ZSBpdAo+ID4+IGN1cnJlbnRseSBjYWxscyBkcm1fYXRvbWljX2hlbHBlcl9zZXR1cF9jb21taXQo KS4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24KPiA+PiB3b3VsZCBpbmNsdWRlIHNldHVwX2Nv bW1pdCBhbmQgcHJlcGFyZV9wbGFuZXMuIFNvbWUgZXhhbXBsZSBjb2RlIGZvcgo+ID4+IGRybV9h dG9taWNfaGVscGVyLmMKPiA+Pgo+ID4+IHN0YXRpYyBpbnQgY29tbWl0X3ByZXBhcmUoc3RhdGUp Cj4gPj4gewo+ID4+ICAgICAgZHJtX2F0b21pY19oZWxwZXJfc2V0dXBfY29tbWl0KHN0YXRlKQo+ ID4+Cj4gPj4gICAgICBkcm1fYXRvbWljX2hlbHBlcl9wcmVwYXJlX3BsYW5lcyhzdGF0ZSkKPiA+ PiB9Cj4gPj4KPiA+PiBpbnQgZHJtX2F0b21pY19oZWxwZXJfY29tbWl0KCkKPiA+PiB7Cj4gPj4g ICAgICBpZiAoYXN5bmNfdXBkYXRlKSB7Cj4gPj4gICAgICAgICAgICAgIC4uLgo+ID4+ICAgICAg fQo+ID4+Cj4gPj4gICAgICBpZiAoZnVuY3MtPmF0b21pY19jb21taXRfcHJlcGFyZSkKPiA+PiAg ICAgICAgICAgICAgZnVuY3MtPmF0b21pY19jb21taXRfcHJlcGFyZShzdGF0ZSkKPiA+PiAgICAg IGVsc2UKPiA+PiAgICAgICAgICAgICAgY29tbWl0X3ByZXBhcmUoc3RhdGUpCj4gPj4KPiA+PiAg ICAgIC8qIHRoZSByZXN0IG9mIHRoZSBjdXJyZW50IGZ1bmN0aW9uIGJlbG93ICovCj4gPj4gICAg ICBJTklUX1dPUksoJnN0YXRlLT5jb21taXRfd29yaywgY29tbWl0X3dvcmspOwo+ID4+ICAgICAg Li4uCj4gPj4gfQo+ID4+Cj4gPj4gRHJpdmVycyB0aGF0IGltcGxlbWVudCBhdG9taWNfY29tbWl0 X3ByZXBhcmUgd291bGQgYmUgZXhwZWN0ZWQgdG8gY2FsbAo+ID4+IGRybV9hdG9taWNfaGVscGVy X3NldHVwX2NvbW1pdCgpIGFuZCBkcm1fYXRvbWljX2hlbHBlcl9wcmVwYXJlX3BsYW5lcygpIG9y Cj4gPj4gdGhlaXIgb3duIGltcGxlbWVudGF0aW9uIG9mIHRoZW0uCj4gPj4KPiA+PiBUaGUgd2hv bGUgY29uc3RydWN0IG1pbWljcyBob3cgY29tbWl0IHRhaWxzIHdvcmsuCj4gPgo+ID4gWWVhaCB3 aGF0IEkgc3VnZ2VzdGVkIGlzIGEgYml0IG11Y2ggbWlkbGF5ZXIsIGJ1dCB3ZSd2ZSBkb25lIHdo YXQgeW91Cj4gPiBzdWdnZXN0ZWQgYWJvdmUgd2l0aCBhbGwgZHJpdmVycyByb2xsaW5nIHRoZWly IG93biBhdG9taWNfY29tbWl0LiBJdAo+ID4gd2Fzbid0IHByZXR0eS4gVGhlcmUncyBzdGlsbCBk cml2ZXJzIGxpa2UgdmM0IHdoaWNoIGhhdmVuJ3Qgc3dpdGNoZWQsIGFuZAo+ID4gd2hpY2ggaGF2 ZSB0aGVpciBvd24gbG9ja2luZyBhbmQgc3luY2hyb25pemF0aW9uLgo+ID4KPiA+IEhlbmNlIHdo eSBJIHRoaW5rIHRoZSBjYWxsYmFjayBhcHByb2FjaCBoZXJlIGlzIGJldHRlciwgZ2l2ZXMgZHJp dmVycyBsZXNzCj4gPiBleGN1c2VzIHRvIHJvbGwgdGhlaXIgb3duIGFuZCBtYWtlIGEgbWVzcy4K Pgo+IEJ1dCBpdCBzb3VuZHMgbGlrZSB5b3UnbGwgcmVncmV0IHRoaXMuIEFzIHNvb24gYXMgYSBk cml2ZXIgaGFzIHRvIGRvCj4gYWRkaXRpb25hbCBzdHVmZiBhdCB0aGUgYmVnaW5uaW5nIG9mIHRo ZSBzZXR1cCBmdW5jdGlvbiwgYW5vdGhlciBoZWxwZXIKPiB3aWxsIGJlIHJlcXVpcmVkLCBhbmQg c28gb24uIE1heWJlIHJhdGhlciBnbyB3aXRoIHRoZSBjb21taXRfcHJlcGFyZQo+IGhlbHBlciBh bmQgcHVzaCBkcml2ZXIgYXV0aG9ycyB0byBub3QgdXNlIGl0LgoKRm9yIHRoZSBvdGhlciB0aGlu ZyB3ZSBhbHJlYWR5IGhhdmUgY2FsbGJhY2tzIChpdCdzIHByZXBhcmVfcGxhbmUpLgpUaGUgdXNl IGNhc2UgZm9yIHRoaXMgaXMgYWxzbyBmYWlybHkgbWluaW1hbCAoYW5kIHRoaXMgc2hvdWxkIGJl IGNsZWFyCndoZW4gdGhlIGtlcm5lbGRvYyBpcyBmdWxseSB1cGRhdGVkKS4KClRoZSB0aGluZyBp cywgYXZvaWRpbmcgdGhlIG1pZGxheWVyIG1pc3Rha2UgZG9lc24ndCBtZWFuIG5vIGNhbGxiYWNr cy4KSXQganVzdCBtZWFucyB0aGUgdG9wbW9zdCBlbnRyeSBwb2ludCBzaG91bGQgYmUgYSBkcml2 ZXIgY2FsbGJhY2sgdG9vLAphbmQgaWRlYWxseSBhbGwgdGhlIHBpZWNlcyBhcmUgc3RpbGwgZmFp cmx5IG1vZHVsYXIuIFdlIGNoZWNrIGFsbAp0aGVzZSBib3hlcy4KCllvdXIgb3B0aW9uIG90b2gg bWVhbnMgYSBidW5jaCBtb3JlIGNvZGUgaW4gdmM0IChhZnRlciBNYXhpbWUncyBzZXJpZXMKaXMg ZG9uZSkgZm9yIG5vdCBtdWNoIHJlYXNvbi4gUGx1cyBJJ20gcmVhbGx5IG5vdCBzZWVpbmcgdGhl IGNvbmNlcm4uCkFsc28sIHJ1bGUgb2YgdGh1bWIgaXMgdG8gZG8gY2xlYW4gZGVzaWduIHdoZW4g d2UgaGF2ZSAzIGNhc2VzLCBhbmQKaGFjayB0aGluZ3MgdXAgZm9yIHRoZSBmaXJzdCAyLiBXZSdy ZSBhdCAxLgoKQWxzbyBub3RlIHRoYXQgdGhlIDJuZCBwYXJ0IG9mIHRoaXMgaXMgYWxzbyBub3Qg aW4gdGhlCmF0b21pY19jb21taXRfdGFpbCBjYWxsYmFjay4gQnV0IHdlIGdldCBhd2F5IHdpdGgg dGhhdCBiZWNhdXNlIHRoZQpkcml2ZXIgaGFuZGxpbmcgY2FuIGJlIGRvbmUgYXQgdGhlIHRvcCBv ZiBhdG9taWNfY29tbWl0X3RhaWwsIGhlbmNlCnRoZXJlJ3Mgbm8gbmVlZCBmb3IgYW4gYXRvbWlj X2NvbW1pdF93YWl0X2Zvcl9kZXBlbmRlbmNpZXMuCi1EYW5pZWwKCj4KPiBCZXN0IHJlZ2FyZHMK PiBUaG9tYXMKPgo+ID4gLURhbmllbAo+ID4KPgo+IC0tCj4gVGhvbWFzIFppbW1lcm1hbm4KPiBH cmFwaGljcyBEcml2ZXIgRGV2ZWxvcGVyCj4gU1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFu eSBHbWJICj4gTWF4ZmVsZHN0ci4gNSwgOTA0MDkgTsO8cm5iZXJnLCBHZXJtYW55Cj4gKEhSQiAz NjgwOSwgQUcgTsO8cm5iZXJnKQo+IEdlc2Now6RmdHNmw7xocmVyOiBGZWxpeCBJbWVuZMO2cmZm ZXIKCgoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0 aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAo=