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=-11.3 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_2 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 AC572C433E7 for ; Fri, 9 Oct 2020 10:34:31 +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 376DC22277 for ; Fri, 9 Oct 2020 10:34:30 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="Z0ZZm8k9" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 376DC22277 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org 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 413EB6ECB8; Fri, 9 Oct 2020 10:34:30 +0000 (UTC) Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by gabe.freedesktop.org (Postfix) with ESMTPS id 605FD6ECB2 for ; Fri, 9 Oct 2020 10:34:29 +0000 (UTC) Received: from coco.lan (ip5f5ad5d0.dynamic.kabel-deutschland.de [95.90.213.208]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 0DEF9221FC; Fri, 9 Oct 2020 10:34:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1602239669; bh=pRI4Tm1lG+Jblk58G1pSvqxmgDEZi2xS8IJzqwbJFvw=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=Z0ZZm8k90LDIkkwepgM63s827tTWfKOZRcqR7o+KzIwoiE1/gtsqyykPEtefC1BOJ aqhxaJ85cRFHWn7mghZunfQqK4WizlHdY1AlS3galp81cAdVsdFebaWYB06Z1YG2jP N7/7ovKPoZG++Py9RD5QO4Y+qb3C0vzKbhvXTkLw= Date: Fri, 9 Oct 2020 12:34:21 +0200 From: Mauro Carvalho Chehab To: Daniel Vetter Subject: Re: [PATCH v2 09/17] mm: Add unsafe_follow_pfn Message-ID: <20201009123421.67a80d72@coco.lan> In-Reply-To: <20201009075934.3509076-10-daniel.vetter@ffwll.ch> References: <20201009075934.3509076-1-daniel.vetter@ffwll.ch> <20201009075934.3509076-10-daniel.vetter@ffwll.ch> X-Mailer: Claws Mail 3.17.6 (GTK+ 2.24.32; x86_64-redhat-linux-gnu) MIME-Version: 1.0 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: linux-s390@vger.kernel.org, linux-samsung-soc@vger.kernel.org, Jan Kara , Kees Cook , kvm@vger.kernel.org, Jason Gunthorpe , John Hubbard , LKML , DRI Development , linux-mm@kvack.org, =?UTF-8?B?SsOpcsO0bWU=?= Glisse , Daniel Vetter , Dan Williams , Linus Torvalds , Andrew Morton , linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" SGksCgpFbSBGcmksICA5IE9jdCAyMDIwIDA5OjU5OjI2ICswMjAwCkRhbmllbCBWZXR0ZXIgPGRh bmllbC52ZXR0ZXJAZmZ3bGwuY2g+IGVzY3JldmV1OgoKPiBXYXkgYmFjayBpdCB3YXMgYSByZWFz b25hYmxlIGFzc3VtcHRpb25zIHRoYXQgaW9tZW0gbWFwcGluZ3MgbmV2ZXIKPiBjaGFuZ2UgdGhl IHBmbiByYW5nZSB0aGV5IHBvaW50IGF0LiBCdXQgdGhpcyBoYXMgY2hhbmdlZDoKPiAKPiAtIGdw dSBkcml2ZXJzIGR5bmFtaWNhbGx5IG1hbmFnZSB0aGVpciBtZW1vcnkgbm93YWRheXMsIGludmFs aWRhdGluZwo+IHB0ZXMgd2l0aCB1bm1hcF9tYXBwaW5nX3JhbmdlIHdoZW4gYnVmZmVycyBnZXQg bW92ZWQKPiAKPiAtIGNvbnRpZ3VvdXMgZG1hIGFsbG9jYXRpb25zIGhhdmUgbW92ZWQgZnJvbSBk ZWRpY2F0ZWQgY2FydmV0b3V0cyB0bwo+IGNtYSByZWdpb25zLiBUaGlzIG1lYW5zIGlmIHdlIG1p c3MgdGhlIHVubWFwIHRoZSBwZm4gbWlnaHQgY29udGFpbgo+IHBhZ2VjYWNoZSBvciBhbm9uIG1l bW9yeSAod2VsbCBhbnl0aGluZyBhbGxvY2F0ZWQgd2l0aCBHRlBfTU9WRUFCTEUpCj4gCj4gLSBl dmVuIC9kZXYvbWVtIG5vdyBpbnZhbGlkYXRlcyBtYXBwaW5ncyB3aGVuIHRoZSBrZXJuZWwgcmVx dWVzdHMgdGhhdAo+IGlvbWVtIHJlZ2lvbiB3aGVuIENPTkZJR19JT19TVFJJQ1RfREVWTUVNIGlz IHNldCwgc2VlIDMyMzRhYzY2NGE4Nwo+ICgiL2Rldi9tZW06IFJldm9rZSBtYXBwaW5ncyB3aGVu IGEgZHJpdmVyIGNsYWltcyB0aGUgcmVnaW9uIikKPiAKPiBBY2Nlc3NpbmcgcGZucyBvYnRhaW5l ZCBmcm9tIHB0ZXMgd2l0aG91dCBob2xkaW5nIGFsbCB0aGUgbG9ja3MgaXMKPiB0aGVyZWZvcmUg bm8gbG9uZ2VyIGEgZ29vZCBpZGVhLgo+IAo+IFVuZm9ydHVuYXRlbHkgdGhlcmUncyBzb21lIHVz ZXJzIHdoZXJlIHRoaXMgaXMgbm90IGZpeGFibGUgKGxpa2UgdjRsCj4gdXNlcnB0ciBvZiBpb21l bSBtYXBwaW5ncykgb3IgaW52b2x2ZXMgYSBwaWxlIG9mIHdvcmsgKHZmaW8gdHlwZTEKPiBpb21t dSkuIEZvciBub3cgYW5ub3RhdGUgdGhlc2UgYXMgdW5zYWZlIGFuZCBzcGxhdCBhcHByb3ByaWF0 ZWx5Lgo+IAo+IFRoaXMgcGF0Y2ggYWRkcyBhbiB1bnNhZmVfZm9sbG93X3Bmbiwgd2hpY2ggbGF0 ZXIgcGF0Y2hlcyB3aWxsIHRoZW4KPiByb2xsIG91dCB0byBhbGwgYXBwcm9wcmlhdGUgcGxhY2Vz LgoKTkFDSywgYXMgdGhpcyBicmVha3MgYW4gZXhpc3RpbmcgdXNlcnNwYWNlIEFQSSBvbiBtZWRp YS4KCldoaWxlIEkgYWdyZWUgdGhhdCB1c2luZyB0aGUgdXNlcnB0ciBvbiBtZWRpYSBpcyBzb21l dGhpbmcgdGhhdApuZXcgZHJpdmVycyBtYXkgbm90IHN1cHBvcnQsIGFzIERNQUJVRiBpcyBhIGJl dHRlciB3YXkgb2YKaGFuZGxpbmcgaXQsIGNoYW5naW5nIHRoaXMgZm9yIGV4aXN0aW5nIG9uZXMg aXMgYSBiaWcgbm8sIAphcyBpdCBtYXkgYnJlYWsgdXNlcnNhcGFjZS4KClRoZSByaWdodCBhcHBy b2FjaCBoZXJlIHdvdWxkIGJlIHRvIGJlIGFibGUgdG8gZmluZS10dW5lCnN1cHBvcnQgZm9yIGl0 IG9uIGEgcGVyLWRyaXZlciBiYXNpcywgZS4gZy4gZGlzYWJsaW5nIHN1Y2gKZmVhdHVyZSBvbmx5 IGZvciBkcml2ZXJzIHRoYXQgd291bGQgdXNlIGEgbW92YWJsZSBwYWdlLgoKVGhlIG1lZGlhIHN1 YnN5c3RlbSBoYXMgYWxyZWFkeSBhIHdheSB0byBkaXNhYmxlIFVTRVJQVFIKc3VwcG9ydCBmcm9t IFZCMi4gdGhlIHJpZ2h0IGFwcHJvYWNoIHdvdWxkIGJlIHRvIGVuc3VyZQp0aGF0IG5ld2VyIGRy aXZlcnMgd2lsbCBvbmx5IHNldCB0aGlzIGlmIHRoZXkgd29uJ3QgdXNlCm1vdmFibGUgcGFnZXMu CgpSZWdhcmRzLApNYXVybwoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5p ZWwudmV0dGVyQGludGVsLmNvbT4KPiBDYzogSmFzb24gR3VudGhvcnBlIDxqZ2dAemllcGUuY2E+ Cj4gQ2M6IEtlZXMgQ29vayA8a2Vlc2Nvb2tAY2hyb21pdW0ub3JnPgo+IENjOiBEYW4gV2lsbGlh bXMgPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4KPiBDYzogQW5kcmV3IE1vcnRvbiA8YWtwbUBs aW51eC1mb3VuZGF0aW9uLm9yZz4KPiBDYzogSm9obiBIdWJiYXJkIDxqaHViYmFyZEBudmlkaWEu Y29tPgo+IENjOiBKw6lyw7RtZSBHbGlzc2UgPGpnbGlzc2VAcmVkaGF0LmNvbT4KPiBDYzogSmFu IEthcmEgPGphY2tAc3VzZS5jej4KPiBDYzogRGFuIFdpbGxpYW1zIDxkYW4uai53aWxsaWFtc0Bp bnRlbC5jb20+Cj4gQ2M6IGxpbnV4LW1tQGt2YWNrLm9yZwo+IENjOiBsaW51eC1hcm0ta2VybmVs QGxpc3RzLmluZnJhZGVhZC5vcmcKPiBDYzogbGludXgtc2Ftc3VuZy1zb2NAdmdlci5rZXJuZWwu b3JnCj4gQ2M6IGxpbnV4LW1lZGlhQHZnZXIua2VybmVsLm9yZwo+IENjOiBrdm1Admdlci5rZXJu ZWwub3JnCj4gLS0tCj4gIGluY2x1ZGUvbGludXgvbW0uaCB8ICAyICsrCj4gIG1tL21lbW9yeS5j ICAgICAgICB8IDMyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCj4gIG1tL25vbW11 LmMgICAgICAgICB8IDE3ICsrKysrKysrKysrKysrKysrCj4gIHNlY3VyaXR5L0tjb25maWcgICB8 IDEzICsrKysrKysrKysrKysKPiAgNCBmaWxlcyBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW0uaCBiL2luY2x1 ZGUvbGludXgvbW0uaAo+IGluZGV4IDJhMTY2MzFjMWZkYS4uZWM4YzkwOTI4ZmM5IDEwMDY0NAo+ IC0tLSBhL2luY2x1ZGUvbGludXgvbW0uaAo+ICsrKyBiL2luY2x1ZGUvbGludXgvbW0uaAo+IEBA IC0xNjUzLDYgKzE2NTMsOCBAQCBpbnQgZm9sbG93X3B0ZV9wbWQoc3RydWN0IG1tX3N0cnVjdCAq bW0sIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKPiAgCQkgICBwdGVfdCAqKnB0ZXBwLCBwbWRfdCAq KnBtZHBwLCBzcGlubG9ja190ICoqcHRscCk7Cj4gIGludCBmb2xsb3dfcGZuKHN0cnVjdCB2bV9h cmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCj4gIAl1bnNpZ25lZCBsb25n ICpwZm4pOwo+ICtpbnQgdW5zYWZlX2ZvbGxvd19wZm4oc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2 bWEsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKPiArCQkgICAgICB1bnNpZ25lZCBsb25nICpwZm4p Owo+ICBpbnQgZm9sbG93X3BoeXMoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVk IGxvbmcgYWRkcmVzcywKPiAgCQl1bnNpZ25lZCBpbnQgZmxhZ3MsIHVuc2lnbmVkIGxvbmcgKnBy b3QsIHJlc291cmNlX3NpemVfdCAqcGh5cyk7Cj4gIGludCBnZW5lcmljX2FjY2Vzc19waHlzKHN0 cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHIsCj4gZGlmZiAtLWdp dCBhL21tL21lbW9yeS5jIGIvbW0vbWVtb3J5LmMKPiBpbmRleCBmN2NiYzRkZGUwZWYuLjdjN2Iy MzRmZmIyNCAxMDA2NDQKPiAtLS0gYS9tbS9tZW1vcnkuYwo+ICsrKyBiL21tL21lbW9yeS5jCj4g QEAgLTQ4MjEsNyArNDgyMSwxMiBAQCBFWFBPUlRfU1lNQk9MKGZvbGxvd19wdGVfcG1kKTsKPiAg ICogQGFkZHJlc3M6IHVzZXIgdmlydHVhbCBhZGRyZXNzCj4gICAqIEBwZm46IGxvY2F0aW9uIHRv IHN0b3JlIGZvdW5kIFBGTgo+ICAgKgo+IC0gKiBPbmx5IElPIG1hcHBpbmdzIGFuZCByYXcgUEZO IG1hcHBpbmdzIGFyZSBhbGxvd2VkLgo+ICsgKiBPbmx5IElPIG1hcHBpbmdzIGFuZCByYXcgUEZO IG1hcHBpbmdzIGFyZSBhbGxvd2VkLiBOb3RlIHRoYXQgY2FsbGVycyBtdXN0Cj4gKyAqIGVuc3Vy ZSBjb2hlcmVuY3kgd2l0aCBwdGUgdXBkYXRlcyBieSB1c2luZyBhICZtbXVfbm90aWZpZXIgdG8g Zm9sbG93IHVwZGF0ZXMuCj4gKyAqIElmIHRoaXMgaXMgbm90IGZlYXNpYmxlLCBvciB0aGUgYWNj ZXNzIHRvIHRoZSBAcGZuIGlzIG9ubHkgdmVyeSBzaG9ydCB0ZXJtLAo+ICsgKiB1c2UgZm9sbG93 X3B0ZV9wbWQoKSBpbnN0ZWFkIGFuZCBob2xkIHRoZSBwYWdldGFibGUgbG9jayBmb3IgdGhlIGR1 cmF0aW9uIG9mCj4gKyAqIHRoZSBhY2Nlc3MgaW5zdGVhZC4gQW55IGNhbGxlciBub3QgZm9sbG93 aW5nIHRoZXNlIHJlcXVpcmVtZW50cyBtdXN0IHVzZQo+ICsgKiB1bnNhZmVfZm9sbG93X3Bmbigp IGluc3RlYWQuCj4gICAqCj4gICAqIFJldHVybjogemVybyBhbmQgdGhlIHBmbiBhdCBAcGZuIG9u IHN1Y2Nlc3MsIC12ZSBvdGhlcndpc2UuCj4gICAqLwo+IEBAIC00ODQ0LDYgKzQ4NDksMzEgQEAg aW50IGZvbGxvd19wZm4oc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcg YWRkcmVzcywKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGZvbGxvd19wZm4pOwo+ICAKPiArLyoqCj4g KyAqIHVuc2FmZV9mb2xsb3dfcGZuIC0gbG9vayB1cCBQRk4gYXQgYSB1c2VyIHZpcnR1YWwgYWRk cmVzcwo+ICsgKiBAdm1hOiBtZW1vcnkgbWFwcGluZwo+ICsgKiBAYWRkcmVzczogdXNlciB2aXJ0 dWFsIGFkZHJlc3MKPiArICogQHBmbjogbG9jYXRpb24gdG8gc3RvcmUgZm91bmQgUEZOCj4gKyAq Cj4gKyAqIE9ubHkgSU8gbWFwcGluZ3MgYW5kIHJhdyBQRk4gbWFwcGluZ3MgYXJlIGFsbG93ZWQu Cj4gKyAqCj4gKyAqIFJldHVybnMgemVybyBhbmQgdGhlIHBmbiBhdCBAcGZuIG9uIHN1Y2Nlc3Ms IC12ZSBvdGhlcndpc2UuCj4gKyAqLwo+ICtpbnQgdW5zYWZlX2ZvbGxvd19wZm4oc3RydWN0IHZt X2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKPiArCXVuc2lnbmVkIGxv bmcgKnBmbikKPiArewo+ICsjaWZkZWYgQ09ORklHX1NUUklDVF9GT0xMT1dfUEZOCj4gKwlwcl9p bmZvKCJ1bnNhZmUgZm9sbG93X3BmbiB1c2FnZSByZWplY3RlZCwgc2VlIENPTkZJR19TVFJJQ1Rf Rk9MTE9XX1BGTlxuIik7Cj4gKwlyZXR1cm4gLUVJTlZBTDsKPiArI2Vsc2UKPiArCVdBUk5fT05D RSgxLCAidW5zYWZlIGZvbGxvd19wZm4gdXNhZ2VcbiIpOwo+ICsJYWRkX3RhaW50KFRBSU5UX1VT RVIsIExPQ0tERVBfU1RJTExfT0spOwo+ICsKPiArCXJldHVybiBmb2xsb3dfcGZuKHZtYSwgYWRk cmVzcywgcGZuKTsKPiArI2VuZGlmCj4gK30KPiArRVhQT1JUX1NZTUJPTCh1bnNhZmVfZm9sbG93 X3Bmbik7Cj4gKwo+ICAjaWZkZWYgQ09ORklHX0hBVkVfSU9SRU1BUF9QUk9UCj4gIGludCBmb2xs b3dfcGh5cyhzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKPiAgCQl1bnNpZ25lZCBsb25nIGFk ZHJlc3MsIHVuc2lnbmVkIGludCBmbGFncywKPiBkaWZmIC0tZ2l0IGEvbW0vbm9tbXUuYyBiL21t L25vbW11LmMKPiBpbmRleCA3NWEzMjcxNDlhZjEuLjNkYjI5MTBmMGQ2NCAxMDA2NDQKPiAtLS0g YS9tbS9ub21tdS5jCj4gKysrIGIvbW0vbm9tbXUuYwo+IEBAIC0xMzIsNiArMTMyLDIzIEBAIGlu dCBmb2xsb3dfcGZuKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFk ZHJlc3MsCj4gIH0KPiAgRVhQT1JUX1NZTUJPTChmb2xsb3dfcGZuKTsKPiAgCj4gKy8qKgo+ICsg KiB1bnNhZmVfZm9sbG93X3BmbiAtIGxvb2sgdXAgUEZOIGF0IGEgdXNlciB2aXJ0dWFsIGFkZHJl c3MKPiArICogQHZtYTogbWVtb3J5IG1hcHBpbmcKPiArICogQGFkZHJlc3M6IHVzZXIgdmlydHVh bCBhZGRyZXNzCj4gKyAqIEBwZm46IGxvY2F0aW9uIHRvIHN0b3JlIGZvdW5kIFBGTgo+ICsgKgo+ ICsgKiBPbmx5IElPIG1hcHBpbmdzIGFuZCByYXcgUEZOIG1hcHBpbmdzIGFyZSBhbGxvd2VkLgo+ ICsgKgo+ICsgKiBSZXR1cm5zIHplcm8gYW5kIHRoZSBwZm4gYXQgQHBmbiBvbiBzdWNjZXNzLCAt dmUgb3RoZXJ3aXNlLgo+ICsgKi8KPiAraW50IHVuc2FmZV9mb2xsb3dfcGZuKHN0cnVjdCB2bV9h cmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHJlc3MsCj4gKwl1bnNpZ25lZCBsb25n ICpwZm4pCj4gK3sKPiArCXJldHVybiBmb2xsb3dfcGZuKHZtYSwgYWRkcmVzcywgcGZuKTsKPiAr fQo+ICtFWFBPUlRfU1lNQk9MKHVuc2FmZV9mb2xsb3dfcGZuKTsKPiArCj4gIExJU1RfSEVBRCh2 bWFwX2FyZWFfbGlzdCk7Cj4gIAo+ICB2b2lkIHZmcmVlKGNvbnN0IHZvaWQgKmFkZHIpCj4gZGlm ZiAtLWdpdCBhL3NlY3VyaXR5L0tjb25maWcgYi9zZWN1cml0eS9LY29uZmlnCj4gaW5kZXggNzU2 MWY2Zjk5ZjFkLi40ODk0NTQwMmUxMDMgMTAwNjQ0Cj4gLS0tIGEvc2VjdXJpdHkvS2NvbmZpZwo+ ICsrKyBiL3NlY3VyaXR5L0tjb25maWcKPiBAQCAtMjMwLDYgKzIzMCwxOSBAQCBjb25maWcgU1RB VElDX1VTRVJNT0RFSEVMUEVSX1BBVEgKPiAgCSAgSWYgeW91IHdpc2ggZm9yIGFsbCB1c2VybW9k ZSBoZWxwZXIgcHJvZ3JhbXMgdG8gYmUgZGlzYWJsZWQsCj4gIAkgIHNwZWNpZnkgYW4gZW1wdHkg c3RyaW5nIGhlcmUgKGkuZS4gIiIpLgo+ICAKPiArY29uZmlnIFNUUklDVF9GT0xMT1dfUEZOCj4g Kwlib29sICJEaXNhYmxlIHVuc2FmZSB1c2Ugb2YgZm9sbG93X3BmbiIKPiArCWRlcGVuZHMgb24g TU1VCj4gKwloZWxwCj4gKwkgIFNvbWUgZnVuY3Rpb25hbGl0eSBpbiB0aGUga2VybmVsIGZvbGxv d3MgdXNlcnNwYWNlIG1hcHBpbmdzIHRvIGlvbWVtCj4gKwkgIHJhbmdlcyBpbiBhbiB1bnNhZmUg bWF0dGVyLiBFeGFtcGxlcyBpbmNsdWRlIHY0bCB1c2VycHRyIGZvciB6ZXJvLWNvcHkKPiArCSAg YnVmZmVycyBzaGFyaW5nLgo+ICsKPiArCSAgSWYgdGhpcyBvcHRpb24gaXMgc3dpdGNoZWQgb24s IHN1Y2ggYWNjZXNzIGlzIHJlamVjdGVkLiBPbmx5IGVuYWJsZQo+ICsJICB0aGlzIG9wdGlvbiB3 aGVuIHlvdSBtdXN0IHJ1biB1c2Vyc3BhY2Ugd2hpY2ggcmVxdWlyZXMgdGhpcy4KPiArCj4gKwkg IElmIGluIGRvdWJ0LCBzYXkgWS4KPiArCj4gIHNvdXJjZSAic2VjdXJpdHkvc2VsaW51eC9LY29u ZmlnIgo+ICBzb3VyY2UgInNlY3VyaXR5L3NtYWNrL0tjb25maWciCj4gIHNvdXJjZSAic2VjdXJp dHkvdG9tb3lvL0tjb25maWciCgoKClRoYW5rcywKTWF1cm8KX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==