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=-3.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=no 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 065F6C433DB for ; Mon, 15 Feb 2021 20:47:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C782464DF4 for ; Mon, 15 Feb 2021 20:47:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229890AbhBOUr2 (ORCPT ); Mon, 15 Feb 2021 15:47:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50040 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229764AbhBOUrW (ORCPT ); Mon, 15 Feb 2021 15:47:22 -0500 Received: from mail-qt1-x831.google.com (mail-qt1-x831.google.com [IPv6:2607:f8b0:4864:20::831]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 04370C0613D6 for ; Mon, 15 Feb 2021 12:46:41 -0800 (PST) Received: by mail-qt1-x831.google.com with SMTP id c1so5747925qtc.1 for ; Mon, 15 Feb 2021 12:46:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ndufresne-ca.20150623.gappssmtp.com; s=20150623; h=message-id:subject:from:to:cc:date:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=3vnbyd+FSQ7JLkQZLcxkUBRVmalOAVC3JmRRBLUbqks=; b=esWzugW0DKNBhrEoOD3RZZJolEW7Ikdy5h5A40L1tqevvbAOT0V/axZemZNOQYOsnx ZqD3ZNUy7by/NGsHl09vQs2I9j3jVNSSq/5jppK8df5zAjh2YbuB92wVmlkE6owxZt6Z fwPkbPpOrOtuUOH/tqvvcYAUJ7p8hpPxFMCbkziFPOS2od1Xdv+xAzbaRryT395mvWIA QyyYXiKXhyZNlxJBfjOYZS5ljhuVQqbKjm+x0+mXk6Y6fxHbxD/TWeJerjITehGHcVPB pxTKBBtJtVVSfRfx3vwnolnX6XUXAf2UOCCWDeKRGFqpkPkgkyir6U39VbeZbqeRFUQ0 u1Fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=3vnbyd+FSQ7JLkQZLcxkUBRVmalOAVC3JmRRBLUbqks=; b=R2wy+VuLU7dcr3JbuQ/pas9qOzU97UTEYwlWE17w7vKYePd+AD6DEoidlfjkUz7Y0U Aif1hkh1+OCJo0v4H8IXcitQqXTDXCDt7zkSN2CGTcivuG8W5NZKGZrP/SX/QI/7KS6M dTSIX8+WP+RILvjyN34f1HNo0wedyyWVlVlbIgMxPLZynFDYlg/AJMaOX/VZXiGHRZim p1YPfj14AvPIxy/1rk+McSh/Zkni6vuk7Vv/edn2nHzTO3G/LlLqSXlGtzkf0kS/KuWG 47TBqRLPc4ClRBcVwOEr0sj1DaSsNJJXwWt4AJvdhg8ybHNJIzOnWSk4P/gUauG8mQ+U 01Yg== X-Gm-Message-State: AOAM532tBxvNukATY1qwYMaXgBHW8sL0nv9FkOCgYZ6UzB7SEaWdVxA7 Pm+uovVzRtYjZZk0g7JXJeNhHg== X-Google-Smtp-Source: ABdhPJxFh3xw6PwIlF1Y7XPVhEvBoCKjuezA7yM/mz2kCLQ8EzJp2uMSCiO+RZLY6uXhugkk3quoNg== X-Received: by 2002:ac8:1009:: with SMTP id z9mr15996768qti.347.1613422001232; Mon, 15 Feb 2021 12:46:41 -0800 (PST) Received: from nicolas-tpx395.lan (173-246-12-168.qc.cable.ebox.net. [173.246.12.168]) by smtp.gmail.com with ESMTPSA id k187sm13020361qkc.74.2021.02.15.12.46.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Feb 2021 12:46:40 -0800 (PST) Message-ID: <6e107811295b7fdd96525453ea5587ee6adc1b06.camel@ndufresne.ca> Subject: Re: DMA-buf and uncached system memory From: Nicolas Dufresne To: Christian =?ISO-8859-1?Q?K=F6nig?= , Thomas Zimmermann , linux-media , dri-devel , linaro-mm-sig@lists.linaro.org, lkml Cc: "Sharma, Shashank" Date: Mon, 15 Feb 2021 15:46:39 -0500 In-Reply-To: <80c42ce0-6df1-71ab-81ec-e46cc56840ba@amd.com> References: <91ff0bbb-ea3a-2663-3453-dea96ccd6dd8@amd.com> <302e06ad-f979-dc77-5d84-fa0923aa4632@suse.de> <80c42ce0-6df1-71ab-81ec-e46cc56840ba@amd.com> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.38.3 (3.38.3-1.fc33) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Le lundi 15 février 2021 à 13:10 +0100, Christian König a écrit : > > > Am 15.02.21 um 13:00 schrieb Thomas Zimmermann: > > Hi > > > > Am 15.02.21 um 10:49 schrieb Thomas Zimmermann: > > > Hi > > > > > > Am 15.02.21 um 09:58 schrieb Christian König: > > > > Hi guys, > > > > > > > > we are currently working an Freesync and direct scan out from system > > > > memory on AMD APUs in A+A laptops. > > > > > > > > On problem we stumbled over is that our display hardware needs to > > > > scan out from uncached system memory and we currently don't have a > > > > way to communicate that through DMA-buf. > > > > Re-reading this paragrah, it sounds more as if you want to let the > > exporter know where to move the buffer. Is this another case of the > > missing-pin-flag problem? > > No, your original interpretation was correct. Maybe my writing is a bit > unspecific. > > The real underlying issue is that our display hardware has a problem > with latency when accessing system memory. > > So the question is if that also applies to for example Intel hardware or > other devices as well or if it is just something AMD specific? I do believe that the answer is yes, Intel display have similar issue with latency, hence requires un-cached memory. > > Regards, > Christian. > > > > > Best regards > > Thomas > > > > > > > > > > For our specific use case at hand we are going to implement > > > > something driver specific, but the question is should we have > > > > something more generic for this? > > > > > > For vmap operations, we return the address as struct dma_buf_map, > > > which contains additional information about the memory buffer. In > > > vram helpers, we have the interface drm_gem_vram_offset() that > > > returns the offset of the GPU device memory. > > > > > > Would it be feasible to combine both concepts into a dma-buf > > > interface that returns the device-memory offset plus the additional > > > caching flag? > > > > > > There'd be a structure and a getter function returning the structure. > > > > > > struct dma_buf_offset { > > >      bool cached; > > >      u64 address; > > > }; > > > > > > // return offset in *off > > > int dma_buf_offset(struct dma_buf *buf, struct dma_buf_off *off); > > > > > > Whatever settings are returned by dma_buf_offset() are valid while > > > the dma_buf is pinned. > > > > > > Best regards > > > Thomas > > > > > > > > > > > After all the system memory access pattern is a PCIe extension and > > > > as such something generic. > > > > > > > > Regards, > > > > Christian. > > > > _______________________________________________ > > > > dri-devel mailing list > > > > dri-devel@lists.freedesktop.org > > > > https://lists.freedesktop.org/mailman/listinfo/dri-devel > > > > > > > > > _______________________________________________ > > > dri-devel mailing list > > > dri-devel@lists.freedesktop.org > > > https://lists.freedesktop.org/mailman/listinfo/dri-devel > > > > > > 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=-3.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=no 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 12886C433E6 for ; Mon, 15 Feb 2021 22:24:34 +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 A2EAD64DF4 for ; Mon, 15 Feb 2021 22:24:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A2EAD64DF4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ndufresne.ca 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 B1A7A6E935; Mon, 15 Feb 2021 22:24:31 +0000 (UTC) Received: from mail-qt1-x835.google.com (mail-qt1-x835.google.com [IPv6:2607:f8b0:4864:20::835]) by gabe.freedesktop.org (Postfix) with ESMTPS id F211E89EBB for ; Mon, 15 Feb 2021 20:46:41 +0000 (UTC) Received: by mail-qt1-x835.google.com with SMTP id x3so5726348qti.5 for ; Mon, 15 Feb 2021 12:46:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ndufresne-ca.20150623.gappssmtp.com; s=20150623; h=message-id:subject:from:to:cc:date:in-reply-to:references :user-agent:mime-version:content-transfer-encoding; bh=3vnbyd+FSQ7JLkQZLcxkUBRVmalOAVC3JmRRBLUbqks=; b=esWzugW0DKNBhrEoOD3RZZJolEW7Ikdy5h5A40L1tqevvbAOT0V/axZemZNOQYOsnx ZqD3ZNUy7by/NGsHl09vQs2I9j3jVNSSq/5jppK8df5zAjh2YbuB92wVmlkE6owxZt6Z fwPkbPpOrOtuUOH/tqvvcYAUJ7p8hpPxFMCbkziFPOS2od1Xdv+xAzbaRryT395mvWIA QyyYXiKXhyZNlxJBfjOYZS5ljhuVQqbKjm+x0+mXk6Y6fxHbxD/TWeJerjITehGHcVPB pxTKBBtJtVVSfRfx3vwnolnX6XUXAf2UOCCWDeKRGFqpkPkgkyir6U39VbeZbqeRFUQ0 u1Fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version:content-transfer-encoding; bh=3vnbyd+FSQ7JLkQZLcxkUBRVmalOAVC3JmRRBLUbqks=; b=kaIJpqpxkZcHZpZX6vdaYVl5XGpDje1tYUedLnpuHO0GeJcjtXOL/gHDn56c3vK10E RiGdeMt4NtSohtT+MdEDLPNYNsvG5wTCy4KmwR5R1NeDTaW0fJRyUUYSdAZ76StydgJ1 X7YJsxRwKCStSTu7QSvwOW3dH/2DcqsP5JVcQd+WJMeBFPjkECghbdbjd4THNhOXOIM8 sjb6VwJuIQXhxvDXEY5qonCnJjejXzU1+S8Cd1mhRCZIfk73vjE54IXXxsaSsa0Sdii2 Y5lwO2EFMuCjWvtLxJRPCko2k6HilOS01Zd2Llt7bCMrQ/u41aJBAA1dc8xxgG+2ZXdc 3Oqg== X-Gm-Message-State: AOAM533fyNhJeIahI2s4B+jYCozwhN+aMsBUyW74gY8Oa6BZJi/EmPBV UlyGI6Ug8EBjMjsHWVezBqbIvw== X-Google-Smtp-Source: ABdhPJxFh3xw6PwIlF1Y7XPVhEvBoCKjuezA7yM/mz2kCLQ8EzJp2uMSCiO+RZLY6uXhugkk3quoNg== X-Received: by 2002:ac8:1009:: with SMTP id z9mr15996768qti.347.1613422001232; Mon, 15 Feb 2021 12:46:41 -0800 (PST) Received: from nicolas-tpx395.lan (173-246-12-168.qc.cable.ebox.net. [173.246.12.168]) by smtp.gmail.com with ESMTPSA id k187sm13020361qkc.74.2021.02.15.12.46.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Feb 2021 12:46:40 -0800 (PST) Message-ID: <6e107811295b7fdd96525453ea5587ee6adc1b06.camel@ndufresne.ca> Subject: Re: DMA-buf and uncached system memory From: Nicolas Dufresne To: Christian =?ISO-8859-1?Q?K=F6nig?= , Thomas Zimmermann , linux-media , dri-devel , linaro-mm-sig@lists.linaro.org, lkml Date: Mon, 15 Feb 2021 15:46:39 -0500 In-Reply-To: <80c42ce0-6df1-71ab-81ec-e46cc56840ba@amd.com> References: <91ff0bbb-ea3a-2663-3453-dea96ccd6dd8@amd.com> <302e06ad-f979-dc77-5d84-fa0923aa4632@suse.de> <80c42ce0-6df1-71ab-81ec-e46cc56840ba@amd.com> User-Agent: Evolution 3.38.3 (3.38.3-1.fc33) MIME-Version: 1.0 X-Mailman-Approved-At: Mon, 15 Feb 2021 22:24:30 +0000 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: "Sharma, Shashank" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" TGUgbHVuZGkgMTUgZsOpdnJpZXIgMjAyMSDDoCAxMzoxMCArMDEwMCwgQ2hyaXN0aWFuIEvDtm5p ZyBhIMOpY3JpdMKgOgo+IAo+IAo+IEFtIDE1LjAyLjIxIHVtIDEzOjAwIHNjaHJpZWIgVGhvbWFz IFppbW1lcm1hbm46Cj4gPiBIaQo+ID4gCj4gPiBBbSAxNS4wMi4yMSB1bSAxMDo0OSBzY2hyaWVi IFRob21hcyBaaW1tZXJtYW5uOgo+ID4gPiBIaQo+ID4gPiAKPiA+ID4gQW0gMTUuMDIuMjEgdW0g MDk6NTggc2NocmllYiBDaHJpc3RpYW4gS8O2bmlnOgo+ID4gPiA+IEhpIGd1eXMsCj4gPiA+ID4g Cj4gPiA+ID4gd2UgYXJlIGN1cnJlbnRseSB3b3JraW5nIGFuIEZyZWVzeW5jIGFuZCBkaXJlY3Qg c2NhbiBvdXQgZnJvbSBzeXN0ZW0gCj4gPiA+ID4gbWVtb3J5IG9uIEFNRCBBUFVzIGluIEErQSBs YXB0b3BzLgo+ID4gPiA+IAo+ID4gPiA+IE9uIHByb2JsZW0gd2Ugc3R1bWJsZWQgb3ZlciBpcyB0 aGF0IG91ciBkaXNwbGF5IGhhcmR3YXJlIG5lZWRzIHRvIAo+ID4gPiA+IHNjYW4gb3V0IGZyb20g dW5jYWNoZWQgc3lzdGVtIG1lbW9yeSBhbmQgd2UgY3VycmVudGx5IGRvbid0IGhhdmUgYSAKPiA+ ID4gPiB3YXkgdG8gY29tbXVuaWNhdGUgdGhhdCB0aHJvdWdoIERNQS1idWYuCj4gPiAKPiA+IFJl LXJlYWRpbmcgdGhpcyBwYXJhZ3JhaCwgaXQgc291bmRzIG1vcmUgYXMgaWYgeW91IHdhbnQgdG8g bGV0IHRoZSAKPiA+IGV4cG9ydGVyIGtub3cgd2hlcmUgdG8gbW92ZSB0aGUgYnVmZmVyLiBJcyB0 aGlzIGFub3RoZXIgY2FzZSBvZiB0aGUgCj4gPiBtaXNzaW5nLXBpbi1mbGFnIHByb2JsZW0/Cj4g Cj4gTm8sIHlvdXIgb3JpZ2luYWwgaW50ZXJwcmV0YXRpb24gd2FzIGNvcnJlY3QuIE1heWJlIG15 IHdyaXRpbmcgaXMgYSBiaXQgCj4gdW5zcGVjaWZpYy4KPiAKPiBUaGUgcmVhbCB1bmRlcmx5aW5n IGlzc3VlIGlzIHRoYXQgb3VyIGRpc3BsYXkgaGFyZHdhcmUgaGFzIGEgcHJvYmxlbSAKPiB3aXRo IGxhdGVuY3kgd2hlbiBhY2Nlc3Npbmcgc3lzdGVtIG1lbW9yeS4KPiAKPiBTbyB0aGUgcXVlc3Rp b24gaXMgaWYgdGhhdCBhbHNvIGFwcGxpZXMgdG8gZm9yIGV4YW1wbGUgSW50ZWwgaGFyZHdhcmUg b3IgCj4gb3RoZXIgZGV2aWNlcyBhcyB3ZWxsIG9yIGlmIGl0IGlzIGp1c3Qgc29tZXRoaW5nIEFN RCBzcGVjaWZpYz8KCkkgZG8gYmVsaWV2ZSB0aGF0IHRoZSBhbnN3ZXIgaXMgeWVzLCBJbnRlbCBk aXNwbGF5IGhhdmUgc2ltaWxhciBpc3N1ZSB3aXRoCmxhdGVuY3ksIGhlbmNlIHJlcXVpcmVzIHVu LWNhY2hlZCBtZW1vcnkuCgo+IAo+IFJlZ2FyZHMsCj4gQ2hyaXN0aWFuLgo+IAo+ID4gCj4gPiBC ZXN0IHJlZ2FyZHMKPiA+IFRob21hcwo+ID4gCj4gPiA+ID4gCj4gPiA+ID4gRm9yIG91ciBzcGVj aWZpYyB1c2UgY2FzZSBhdCBoYW5kIHdlIGFyZSBnb2luZyB0byBpbXBsZW1lbnQgCj4gPiA+ID4g c29tZXRoaW5nIGRyaXZlciBzcGVjaWZpYywgYnV0IHRoZSBxdWVzdGlvbiBpcyBzaG91bGQgd2Ug aGF2ZSAKPiA+ID4gPiBzb21ldGhpbmcgbW9yZSBnZW5lcmljIGZvciB0aGlzPwo+ID4gPiAKPiA+ ID4gRm9yIHZtYXAgb3BlcmF0aW9ucywgd2UgcmV0dXJuIHRoZSBhZGRyZXNzIGFzIHN0cnVjdCBk bWFfYnVmX21hcCwgCj4gPiA+IHdoaWNoIGNvbnRhaW5zIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24g YWJvdXQgdGhlIG1lbW9yeSBidWZmZXIuIEluIAo+ID4gPiB2cmFtIGhlbHBlcnMsIHdlIGhhdmUg dGhlIGludGVyZmFjZSBkcm1fZ2VtX3ZyYW1fb2Zmc2V0KCkgdGhhdCAKPiA+ID4gcmV0dXJucyB0 aGUgb2Zmc2V0IG9mIHRoZSBHUFUgZGV2aWNlIG1lbW9yeS4KPiA+ID4gCj4gPiA+IFdvdWxkIGl0 IGJlIGZlYXNpYmxlIHRvIGNvbWJpbmUgYm90aCBjb25jZXB0cyBpbnRvIGEgZG1hLWJ1ZiAKPiA+ ID4gaW50ZXJmYWNlIHRoYXQgcmV0dXJucyB0aGUgZGV2aWNlLW1lbW9yeSBvZmZzZXQgcGx1cyB0 aGUgYWRkaXRpb25hbCAKPiA+ID4gY2FjaGluZyBmbGFnPwo+ID4gPiAKPiA+ID4gVGhlcmUnZCBi ZSBhIHN0cnVjdHVyZSBhbmQgYSBnZXR0ZXIgZnVuY3Rpb24gcmV0dXJuaW5nIHRoZSBzdHJ1Y3R1 cmUuCj4gPiA+IAo+ID4gPiBzdHJ1Y3QgZG1hX2J1Zl9vZmZzZXQgewo+ID4gPiDCoMKgwqDCoMKg Ym9vbCBjYWNoZWQ7Cj4gPiA+IMKgwqDCoMKgwqB1NjQgYWRkcmVzczsKPiA+ID4gfTsKPiA+ID4g Cj4gPiA+IC8vIHJldHVybiBvZmZzZXQgaW4gKm9mZgo+ID4gPiBpbnQgZG1hX2J1Zl9vZmZzZXQo c3RydWN0IGRtYV9idWYgKmJ1Ziwgc3RydWN0IGRtYV9idWZfb2ZmICpvZmYpOwo+ID4gPiAKPiA+ ID4gV2hhdGV2ZXIgc2V0dGluZ3MgYXJlIHJldHVybmVkIGJ5IGRtYV9idWZfb2Zmc2V0KCkgYXJl IHZhbGlkIHdoaWxlIAo+ID4gPiB0aGUgZG1hX2J1ZiBpcyBwaW5uZWQuCj4gPiA+IAo+ID4gPiBC ZXN0IHJlZ2FyZHMKPiA+ID4gVGhvbWFzCj4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+IEFmdGVyIGFs bCB0aGUgc3lzdGVtIG1lbW9yeSBhY2Nlc3MgcGF0dGVybiBpcyBhIFBDSWUgZXh0ZW5zaW9uIGFu ZCAKPiA+ID4gPiBhcyBzdWNoIHNvbWV0aGluZyBnZW5lcmljLgo+ID4gPiA+IAo+ID4gPiA+IFJl Z2FyZHMsCj4gPiA+ID4gQ2hyaXN0aWFuLgo+ID4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4gPiA+ID4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+ ID4gPiA+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gPiBodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo+ID4gPiAKPiA+ ID4gCj4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cj4gPiA+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+ID4gZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+ID4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo+ID4gPiAKPiA+IAo+IAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=