From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from lb1-smtp-cloud2.xs4all.net ([194.109.24.21]:52936 "EHLO lb1-smtp-cloud2.xs4all.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752512AbdCaMUs (ORCPT ); Fri, 31 Mar 2017 08:20:48 -0400 From: Hans Verkuil To: linux-media@vger.kernel.org Cc: Daniel Vetter , Russell King , dri-devel@lists.freedesktop.org, linux-samsung-soc@vger.kernel.org, Krzysztof Kozlowski , Inki Dae , Marek Szyprowski , Javier Martinez Canillas , Benjamin Gaignard , Patrice.chotard@st.com Subject: [PATCHv6 00/10] video/exynos/sti/cec: add CEC notifier & use in drivers Date: Fri, 31 Mar 2017 14:20:26 +0200 Message-Id: <20170331122036.55706-1-hverkuil@xs4all.nl> Sender: linux-media-owner@vger.kernel.org List-ID: From: Hans Verkuil This patch series adds the CEC physical address notifier code, based on Russell's code: https://patchwork.kernel.org/patch/9277043/ It adds support for it to the exynos_hdmi drm driver, adds support for it to the CEC framework and finally adds support to the s5p-cec driver, which now can be moved out of staging. Also included is similar code for the STI platform, contributed by Benjamin Gaignard. Tested the exynos code with my Odroid U3 exynos4 devboard. Comments are welcome. I'd like to get this in for the 4.12 kernel as this is a missing piece needed to integrate CEC drivers. Regards, Hans Changes since v5: - Add cec_notifier_set_phys_addr_from_edid(). This maps to an empty function if CONFIG_MEDIA_CEC_NOTIFIER is undefined. - Dropped the first cec-edid patch. It's no longer needed after the previous change. Changes since v4: - Dropped EDID/ELD/connect/disconnect support. Instead, just report the CEC physical address (and use INVALID when disconnecting). - Since this is now completely CEC specific, move it to drivers/media and rename to cec-notifier. - Drop block_notifier. Instead just set a callback for the notifier. - Use 'hdmi-phandle' in the bindings for both exynos and sti. So no vendor prefix and 'hdmi-phandle' instead of 'hdmi-handle'. - Make struct cec_notifier opaque. Add a helper function to get the physical address from a cec_notifier struct. - Provide dummy functions in cec-notifier.h so it can be used when CONFIG_MEDIA_CEC_NOTIFIER is undefined. - Don't select the CEC notifier in the HDMI drivers. It should only be enabled by actual CEC drivers. Changes since v3: - Added the STI patches - Split the exynos4 binding patches in one for documentation and one for the dts change itself, also use the correct subject and CC to the correct mailinglists (I hope ) Changes since v2: - Split off the dts changes of the s5p-cec patch into a separate patch - Renamed HPD_NOTIFIERS to HPD_NOTIFIER to be consistent with the name of the source. Changes since v1: Renamed HDMI notifier to HPD (hotplug detect) notifier since this code is not HDMI specific, but is interesting for any video source that has to deal with hotplug detect and EDID/ELD (HDMI, DVI, VGA, DP, ....). Only the use with CEC adapters is HDMI specific, but the HPD notifier is more generic. Benjamin Gaignard (4): sti: hdmi: add CEC notifier support stih-cec.txt: document new hdmi phandle stih-cec: add CEC notifier support ARM: dts: STiH410: update sti-cec for CEC notifier support Hans Verkuil (6): media: add CEC notifier support cec: integrate CEC notifier support exynos_hdmi: add CEC notifier support ARM: dts: exynos: add HDMI controller phandle to exynos4.dtsi s5p-cec.txt: document the HDMI controller phandle s5p-cec: add cec-notifier support, move out of staging .../devicetree/bindings/media/s5p-cec.txt | 2 + .../devicetree/bindings/media/stih-cec.txt | 2 + MAINTAINERS | 4 +- arch/arm/boot/dts/exynos4.dtsi | 1 + arch/arm/boot/dts/stih407-family.dtsi | 12 -- arch/arm/boot/dts/stih410.dtsi | 13 +++ drivers/gpu/drm/exynos/exynos_hdmi.c | 19 ++- drivers/gpu/drm/sti/sti_hdmi.c | 11 ++ drivers/gpu/drm/sti/sti_hdmi.h | 3 + drivers/media/Kconfig | 4 + drivers/media/Makefile | 4 + drivers/media/cec-notifier.c | 129 +++++++++++++++++++++ drivers/media/cec/cec-core.c | 22 ++++ drivers/media/platform/Kconfig | 28 +++++ drivers/media/platform/Makefile | 2 + .../media => media/platform}/s5p-cec/Makefile | 0 .../platform}/s5p-cec/exynos_hdmi_cec.h | 0 .../platform}/s5p-cec/exynos_hdmi_cecctrl.c | 0 .../media => media/platform}/s5p-cec/regs-cec.h | 0 .../media => media/platform}/s5p-cec/s5p_cec.c | 35 +++++- .../media => media/platform}/s5p-cec/s5p_cec.h | 3 + .../st-cec => media/platform/sti/cec}/Makefile | 0 .../st-cec => media/platform/sti/cec}/stih-cec.c | 31 ++++- drivers/staging/media/Kconfig | 4 - drivers/staging/media/Makefile | 2 - drivers/staging/media/s5p-cec/Kconfig | 9 -- drivers/staging/media/s5p-cec/TODO | 7 -- drivers/staging/media/st-cec/Kconfig | 8 -- drivers/staging/media/st-cec/TODO | 7 -- include/media/cec-notifier.h | 111 ++++++++++++++++++ include/media/cec.h | 10 ++ 31 files changed, 423 insertions(+), 60 deletions(-) create mode 100644 drivers/media/cec-notifier.c rename drivers/{staging/media => media/platform}/s5p-cec/Makefile (100%) rename drivers/{staging/media => media/platform}/s5p-cec/exynos_hdmi_cec.h (100%) rename drivers/{staging/media => media/platform}/s5p-cec/exynos_hdmi_cecctrl.c (100%) rename drivers/{staging/media => media/platform}/s5p-cec/regs-cec.h (100%) rename drivers/{staging/media => media/platform}/s5p-cec/s5p_cec.c (89%) rename drivers/{staging/media => media/platform}/s5p-cec/s5p_cec.h (97%) rename drivers/{staging/media/st-cec => media/platform/sti/cec}/Makefile (100%) rename drivers/{staging/media/st-cec => media/platform/sti/cec}/stih-cec.c (93%) delete mode 100644 drivers/staging/media/s5p-cec/Kconfig delete mode 100644 drivers/staging/media/s5p-cec/TODO delete mode 100644 drivers/staging/media/st-cec/Kconfig delete mode 100644 drivers/staging/media/st-cec/TODO create mode 100644 include/media/cec-notifier.h -- 2.11.0 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans Verkuil Subject: [PATCHv6 00/10] video/exynos/sti/cec: add CEC notifier & use in drivers Date: Fri, 31 Mar 2017 14:20:26 +0200 Message-ID: <20170331122036.55706-1-hverkuil@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-media@vger.kernel.org Cc: linux-samsung-soc@vger.kernel.org, Russell King , Krzysztof Kozlowski , Patrice.chotard@st.com, Javier Martinez Canillas , dri-devel@lists.freedesktop.org, Daniel Vetter , Marek Szyprowski List-Id: linux-samsung-soc@vger.kernel.org RnJvbTogSGFucyBWZXJrdWlsIDxoYW5zLnZlcmt1aWxAY2lzY28uY29tPgoKVGhpcyBwYXRjaCBz ZXJpZXMgYWRkcyB0aGUgQ0VDIHBoeXNpY2FsIGFkZHJlc3Mgbm90aWZpZXIgY29kZSwgYmFzZWQg b24KUnVzc2VsbCdzIGNvZGU6CgpodHRwczovL3BhdGNod29yay5rZXJuZWwub3JnL3BhdGNoLzky NzcwNDMvCgpJdCBhZGRzIHN1cHBvcnQgZm9yIGl0IHRvIHRoZSBleHlub3NfaGRtaSBkcm0gZHJp dmVyLCBhZGRzIHN1cHBvcnQgZm9yCml0IHRvIHRoZSBDRUMgZnJhbWV3b3JrIGFuZCBmaW5hbGx5 IGFkZHMgc3VwcG9ydCB0byB0aGUgczVwLWNlYyBkcml2ZXIsCndoaWNoIG5vdyBjYW4gYmUgbW92 ZWQgb3V0IG9mIHN0YWdpbmcuCgpBbHNvIGluY2x1ZGVkIGlzIHNpbWlsYXIgY29kZSBmb3IgdGhl IFNUSSBwbGF0Zm9ybSwgY29udHJpYnV0ZWQgYnkKQmVuamFtaW4gR2FpZ25hcmQuCgpUZXN0ZWQg dGhlIGV4eW5vcyBjb2RlIHdpdGggbXkgT2Ryb2lkIFUzIGV4eW5vczQgZGV2Ym9hcmQuCgpDb21t ZW50cyBhcmUgd2VsY29tZS4gSSdkIGxpa2UgdG8gZ2V0IHRoaXMgaW4gZm9yIHRoZSA0LjEyIGtl cm5lbCBhcwp0aGlzIGlzIGEgbWlzc2luZyBwaWVjZSBuZWVkZWQgdG8gaW50ZWdyYXRlIENFQyBk cml2ZXJzLgoKUmVnYXJkcywKCglIYW5zCgpDaGFuZ2VzIHNpbmNlIHY1OgotIEFkZCBjZWNfbm90 aWZpZXJfc2V0X3BoeXNfYWRkcl9mcm9tX2VkaWQoKS4gVGhpcyBtYXBzIHRvIGFuIGVtcHR5CiAg ZnVuY3Rpb24gaWYgQ09ORklHX01FRElBX0NFQ19OT1RJRklFUiBpcyB1bmRlZmluZWQuCi0gRHJv cHBlZCB0aGUgZmlyc3QgY2VjLWVkaWQgcGF0Y2guIEl0J3Mgbm8gbG9uZ2VyIG5lZWRlZCBhZnRl ciB0aGUKICBwcmV2aW91cyBjaGFuZ2UuCgpDaGFuZ2VzIHNpbmNlIHY0OgotIERyb3BwZWQgRURJ RC9FTEQvY29ubmVjdC9kaXNjb25uZWN0IHN1cHBvcnQuIEluc3RlYWQsIGp1c3QgcmVwb3J0IHRo ZQogIENFQyBwaHlzaWNhbCBhZGRyZXNzIChhbmQgdXNlIElOVkFMSUQgd2hlbiBkaXNjb25uZWN0 aW5nKS4KLSBTaW5jZSB0aGlzIGlzIG5vdyBjb21wbGV0ZWx5IENFQyBzcGVjaWZpYywgbW92ZSBp dCB0byBkcml2ZXJzL21lZGlhCiAgYW5kIHJlbmFtZSB0byBjZWMtbm90aWZpZXIuCi0gRHJvcCBi bG9ja19ub3RpZmllci4gSW5zdGVhZCBqdXN0IHNldCBhIGNhbGxiYWNrIGZvciB0aGUgbm90aWZp ZXIuCi0gVXNlICdoZG1pLXBoYW5kbGUnIGluIHRoZSBiaW5kaW5ncyBmb3IgYm90aCBleHlub3Mg YW5kIHN0aS4gU28gbm8KICB2ZW5kb3IgcHJlZml4IGFuZCAnaGRtaS1waGFuZGxlJyBpbnN0ZWFk IG9mICdoZG1pLWhhbmRsZScuCi0gTWFrZSBzdHJ1Y3QgY2VjX25vdGlmaWVyIG9wYXF1ZS4gQWRk IGEgaGVscGVyIGZ1bmN0aW9uIHRvIGdldCB0aGUKICBwaHlzaWNhbCBhZGRyZXNzIGZyb20gYSBj ZWNfbm90aWZpZXIgc3RydWN0LgotIFByb3ZpZGUgZHVtbXkgZnVuY3Rpb25zIGluIGNlYy1ub3Rp Zmllci5oIHNvIGl0IGNhbiBiZSB1c2VkIHdoZW4KICBDT05GSUdfTUVESUFfQ0VDX05PVElGSUVS IGlzIHVuZGVmaW5lZC4KLSBEb24ndCBzZWxlY3QgdGhlIENFQyBub3RpZmllciBpbiB0aGUgSERN SSBkcml2ZXJzLiBJdCBzaG91bGQgb25seQogIGJlIGVuYWJsZWQgYnkgYWN0dWFsIENFQyBkcml2 ZXJzLgoKQ2hhbmdlcyBzaW5jZSB2MzoKLSBBZGRlZCB0aGUgU1RJIHBhdGNoZXMKLSBTcGxpdCB0 aGUgZXh5bm9zNCBiaW5kaW5nIHBhdGNoZXMgaW4gb25lIGZvciBkb2N1bWVudGF0aW9uIGFuZCBv bmUKICBmb3IgdGhlIGR0cyBjaGFuZ2UgaXRzZWxmLCBhbHNvIHVzZSB0aGUgY29ycmVjdCBzdWJq ZWN0IGFuZCBDQyB0bwogIHRoZSBjb3JyZWN0IG1haWxpbmdsaXN0cyAoSSBob3BlICApCgpDaGFu Z2VzIHNpbmNlIHYyOgotIFNwbGl0IG9mZiB0aGUgZHRzIGNoYW5nZXMgb2YgdGhlIHM1cC1jZWMg cGF0Y2ggaW50byBhIHNlcGFyYXRlIHBhdGNoCi0gUmVuYW1lZCBIUERfTk9USUZJRVJTIHRvIEhQ RF9OT1RJRklFUiB0byBiZSBjb25zaXN0ZW50IHdpdGggdGhlIG5hbWUKICBvZiB0aGUgc291cmNl LgoKQ2hhbmdlcyBzaW5jZSB2MToKClJlbmFtZWQgSERNSSBub3RpZmllciB0byBIUEQgKGhvdHBs dWcgZGV0ZWN0KSBub3RpZmllciBzaW5jZSB0aGlzIGNvZGUgaXMKbm90IEhETUkgc3BlY2lmaWMs IGJ1dCBpcyBpbnRlcmVzdGluZyBmb3IgYW55IHZpZGVvIHNvdXJjZSB0aGF0IGhhcyB0bwpkZWFs IHdpdGggaG90cGx1ZyBkZXRlY3QgYW5kIEVESUQvRUxEIChIRE1JLCBEVkksIFZHQSwgRFAsIC4u Li4pLgpPbmx5IHRoZSB1c2Ugd2l0aCBDRUMgYWRhcHRlcnMgaXMgSERNSSBzcGVjaWZpYywgYnV0 IHRoZSBIUEQgbm90aWZpZXIKaXMgbW9yZSBnZW5lcmljLgoKCkJlbmphbWluIEdhaWduYXJkICg0 KToKICBzdGk6IGhkbWk6IGFkZCBDRUMgbm90aWZpZXIgc3VwcG9ydAogIHN0aWgtY2VjLnR4dDog ZG9jdW1lbnQgbmV3IGhkbWkgcGhhbmRsZQogIHN0aWgtY2VjOiBhZGQgQ0VDIG5vdGlmaWVyIHN1 cHBvcnQKICBBUk06IGR0czogU1RpSDQxMDogdXBkYXRlIHN0aS1jZWMgZm9yIENFQyBub3RpZmll ciBzdXBwb3J0CgpIYW5zIFZlcmt1aWwgKDYpOgogIG1lZGlhOiBhZGQgQ0VDIG5vdGlmaWVyIHN1 cHBvcnQKICBjZWM6IGludGVncmF0ZSBDRUMgbm90aWZpZXIgc3VwcG9ydAogIGV4eW5vc19oZG1p OiBhZGQgQ0VDIG5vdGlmaWVyIHN1cHBvcnQKICBBUk06IGR0czogZXh5bm9zOiBhZGQgSERNSSBj b250cm9sbGVyIHBoYW5kbGUgdG8gZXh5bm9zNC5kdHNpCiAgczVwLWNlYy50eHQ6IGRvY3VtZW50 IHRoZSBIRE1JIGNvbnRyb2xsZXIgcGhhbmRsZQogIHM1cC1jZWM6IGFkZCBjZWMtbm90aWZpZXIg c3VwcG9ydCwgbW92ZSBvdXQgb2Ygc3RhZ2luZwoKIC4uLi9kZXZpY2V0cmVlL2JpbmRpbmdzL21l ZGlhL3M1cC1jZWMudHh0ICAgICAgICAgIHwgICAyICsKIC4uLi9kZXZpY2V0cmVlL2JpbmRpbmdz L21lZGlhL3N0aWgtY2VjLnR4dCAgICAgICAgIHwgICAyICsKIE1BSU5UQUlORVJTICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBhcmNoL2FybS9ib290L2R0 cy9leHlub3M0LmR0c2kgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBhcmNoL2FybS9ib290 L2R0cy9zdGloNDA3LWZhbWlseS5kdHNpICAgICAgICAgICAgICB8ICAxMiAtLQogYXJjaC9hcm0v Ym9vdC9kdHMvc3RpaDQxMC5kdHNpICAgICAgICAgICAgICAgICAgICAgfCAgMTMgKysrCiBkcml2 ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19oZG1pLmMgICAgICAgICAgICAgICB8ICAxOSArKy0K IGRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hkbWkuYyAgICAgICAgICAgICAgICAgICAgIHwgIDEx ICsrCiBkcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9oZG1pLmggICAgICAgICAgICAgICAgICAgICB8 ICAgMyArCiBkcml2ZXJzL21lZGlhL0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgNCArCiBkcml2ZXJzL21lZGlhL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgNCArCiBkcml2ZXJzL21lZGlhL2NlYy1ub3RpZmllci5jICAgICAgICAgICAgICAg ICAgICAgICB8IDEyOSArKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvbWVkaWEvY2VjL2Nl Yy1jb3JlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDIyICsrKysKIGRyaXZlcnMvbWVkaWEv cGxhdGZvcm0vS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgIHwgIDI4ICsrKysrCiBkcml2ZXJz L21lZGlhL3BsYXRmb3JtL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiAuLi4v bWVkaWEgPT4gbWVkaWEvcGxhdGZvcm19L3M1cC1jZWMvTWFrZWZpbGUgICAgICB8ICAgMAogLi4u L3BsYXRmb3JtfS9zNXAtY2VjL2V4eW5vc19oZG1pX2NlYy5oICAgICAgICAgICAgfCAgIDAKIC4u Li9wbGF0Zm9ybX0vczVwLWNlYy9leHlub3NfaGRtaV9jZWNjdHJsLmMgICAgICAgIHwgICAwCiAu Li4vbWVkaWEgPT4gbWVkaWEvcGxhdGZvcm19L3M1cC1jZWMvcmVncy1jZWMuaCAgICB8ICAgMAog Li4uL21lZGlhID0+IG1lZGlhL3BsYXRmb3JtfS9zNXAtY2VjL3M1cF9jZWMuYyAgICAgfCAgMzUg KysrKystCiAuLi4vbWVkaWEgPT4gbWVkaWEvcGxhdGZvcm19L3M1cC1jZWMvczVwX2NlYy5oICAg ICB8ICAgMyArCiAuLi4vc3QtY2VjID0+IG1lZGlhL3BsYXRmb3JtL3N0aS9jZWN9L01ha2VmaWxl ICAgICB8ICAgMAogLi4uL3N0LWNlYyA9PiBtZWRpYS9wbGF0Zm9ybS9zdGkvY2VjfS9zdGloLWNl Yy5jICAgfCAgMzEgKysrKy0KIGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9LY29uZmlnICAgICAgICAg ICAgICAgICAgICAgIHwgICA0IC0KIGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9NYWtlZmlsZSAgICAg ICAgICAgICAgICAgICAgIHwgICAyIC0KIGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9zNXAtY2VjL0tj b25maWcgICAgICAgICAgICAgIHwgICA5IC0tCiBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvczVwLWNl Yy9UT0RPICAgICAgICAgICAgICAgICB8ICAgNyAtLQogZHJpdmVycy9zdGFnaW5nL21lZGlhL3N0 LWNlYy9LY29uZmlnICAgICAgICAgICAgICAgfCAgIDggLS0KIGRyaXZlcnMvc3RhZ2luZy9tZWRp YS9zdC1jZWMvVE9ETyAgICAgICAgICAgICAgICAgIHwgICA3IC0tCiBpbmNsdWRlL21lZGlhL2Nl Yy1ub3RpZmllci5oICAgICAgICAgICAgICAgICAgICAgICB8IDExMSArKysrKysrKysrKysrKysr KysKIGluY2x1ZGUvbWVkaWEvY2VjLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDEwICsrCiAzMSBmaWxlcyBjaGFuZ2VkLCA0MjMgaW5zZXJ0aW9ucygrKSwgNjAgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9tZWRpYS9jZWMtbm90aWZpZXIuYwogcmVu YW1lIGRyaXZlcnMve3N0YWdpbmcvbWVkaWEgPT4gbWVkaWEvcGxhdGZvcm19L3M1cC1jZWMvTWFr ZWZpbGUgKDEwMCUpCiByZW5hbWUgZHJpdmVycy97c3RhZ2luZy9tZWRpYSA9PiBtZWRpYS9wbGF0 Zm9ybX0vczVwLWNlYy9leHlub3NfaGRtaV9jZWMuaCAoMTAwJSkKIHJlbmFtZSBkcml2ZXJzL3tz dGFnaW5nL21lZGlhID0+IG1lZGlhL3BsYXRmb3JtfS9zNXAtY2VjL2V4eW5vc19oZG1pX2NlY2N0 cmwuYyAoMTAwJSkKIHJlbmFtZSBkcml2ZXJzL3tzdGFnaW5nL21lZGlhID0+IG1lZGlhL3BsYXRm b3JtfS9zNXAtY2VjL3JlZ3MtY2VjLmggKDEwMCUpCiByZW5hbWUgZHJpdmVycy97c3RhZ2luZy9t ZWRpYSA9PiBtZWRpYS9wbGF0Zm9ybX0vczVwLWNlYy9zNXBfY2VjLmMgKDg5JSkKIHJlbmFtZSBk cml2ZXJzL3tzdGFnaW5nL21lZGlhID0+IG1lZGlhL3BsYXRmb3JtfS9zNXAtY2VjL3M1cF9jZWMu aCAoOTclKQogcmVuYW1lIGRyaXZlcnMve3N0YWdpbmcvbWVkaWEvc3QtY2VjID0+IG1lZGlhL3Bs YXRmb3JtL3N0aS9jZWN9L01ha2VmaWxlICgxMDAlKQogcmVuYW1lIGRyaXZlcnMve3N0YWdpbmcv bWVkaWEvc3QtY2VjID0+IG1lZGlhL3BsYXRmb3JtL3N0aS9jZWN9L3N0aWgtY2VjLmMgKDkzJSkK IGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvczVwLWNlYy9LY29uZmln CiBkZWxldGUgbW9kZSAxMDA2NDQgZHJpdmVycy9zdGFnaW5nL21lZGlhL3M1cC1jZWMvVE9ETwog ZGVsZXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9zdC1jZWMvS2NvbmZpZwog ZGVsZXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9zdC1jZWMvVE9ETwogY3Jl YXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbWVkaWEvY2VjLW5vdGlmaWVyLmgKCi0tIAoyLjExLjAK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=