From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carlos Palminha Date: Tue, 19 Jan 2016 16:52:59 +0000 Subject: Re: Whats missing in my new FB DRM driver... "No connectors reported connected with modes"? Message-Id: <569E69EB.3010003@synopsys.com> List-Id: References: <5684268E.2000607@synopsys.com> <569CF78F.7050303@synopsys.com> <569CFA9B.4060108@synopsys.com> <569E5E51.8000303@synopsys.com> In-Reply-To: <569E5E51.8000303@synopsys.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: Xinliang Liu , Carlos Palminha Cc: linux-fbdev@vger.kernel.org, tomi.valkeinen@ti.com, Alexey Brodkin , laurent.pinchart@ideasonboard.com, dri-devel when i boot the kernel and connect the HDMI cable after booting i can retrieve 4 modes... :) if i boot linux with the HDMI cable inserted the kernel hangs. Possible relation with HPD? Regards, C.Palminha # modetest -M drm-arcpgu -c Connectors: id encoder status type size (mm) modes encoders 21 0 connected HDMI-A 0x0 4 20 modes: name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot) 800x600 60 800 840 968 1056 600 601 605 628 flags: phsync, pvsync; type: driver 800x600 56 800 824 896 1024 600 601 603 625 flags: phsync, pvsync; type: driver 848x480 60 848 864 976 1088 480 486 494 517 flags: phsync, pvsync; type: driver 640x480 60 640 656 752 800 480 490 492 525 flags: nhsync, nvsync; type: driver props: 1 EDID: flags: immutable blob blobs: value: 2 DPMS: flags: enum enums: On=0 Standby=1 Suspend=2 Off=3 value: 0 # On 19-01-2016 16:03, Carlos Palminha wrote: > Hi Xiang, > > Its returning 0 modes... :( > > Regards, > C.Palminha > > # modetest -M drm-arcpgu -c > Connectors: > id encoder status type size (mm) modes encoders > 21 0 disconnected HDMI-A 0x0 0 20 > props: > 1 EDID: > flags: immutable blob > blobs: > > value: > 2 DPMS: > flags: enum > enums: On=0 Standby=1 Suspend=2 Off=3 > value: 0 > > # > > On 19-01-2016 03:38, Xinliang Liu wrote: >> On 18 January 2016 at 22:45, Carlos Palminha >> wrote: >> >>> I'm also getting a message from DRM saying can't find any crtc or >>> sizes...i'm really missing something here. >>> :( >>> >>> -- log -- >>> [drm] Initialized drm 1.1.0 20060810 >>> drm-arcpgu e0017000.pgu: No connectors reported connected with modes >>> [drm] Cannot find any crtc or sizes - going 1024x768 >>> Console: switching to colour frame buffer device 128x48 >>> drm-arcpgu e0017000.pgu: fb0: frame buffer device >>> [drm] Initialized drm-arcpgu 1.0.0 20151127 on minor 0 >>> -- log --- >>> >>> Any help? >>> >>> Regards, >>> C.Palminha >>> >>> >>> On 18-01-2016 14:32, Carlos Palminha wrote: >>>> Hi Xinliang, >>>> >>>> My get_modes seems to be implemented as the rcar driver... >>>> Probably still missing some init step? >>>> >>>> Regards, >>>> C.Palminha >>>> >>>> >>>> static int arcpgu_drm_connector_get_modes(struct drm_connector >>> *connector) >>>> { >>>> struct drm_encoder_slave *slave; >>>> const struct drm_encoder_slave_funcs *sfuncs; >>>> struct arcpgu_drm_connector * con >>>> container_of(connector, struct arcpgu_drm_connector, connector); >>>> >>>> slave = con->encoder_slave; >>>> if(slave = NULL) { >>>> dev_err(connector->dev->dev, >>>> "connector_get_modes: cannot find slave encoder for connector\n"); >>>> return 0; >>>> } >>>> >>>> sfuncs = slave->slave_funcs; >>>> if(sfuncs->get_modes = NULL){ >>>> return 0; >>>> } >>>> >>>> return sfuncs-> >>> ​​ >>> get_modes(&slave->base,connector); >>>> } >>>> >>> >> >> ​so, this will call adv7511 driver's ​ >> ​ >> get_modes call back. >> I wonder if the system boot up, it can get modes or not. >> You can test it with the modetest. i.e. $ modetest -M DRM_DRIVER_NAME -c >> >> >> >> >>>> On 31-12-2015 02:19, Xinliang Liu wrote: >>>>> >>>>> >>>>> On 31 December 2015 at 02:46, Carlos Palminha >>>>> > >>> wrote: >>>>> >>>>> Hi guys, >>>>> >>>>> I'm writing a DRM driver for a framebuffer embedded hardware that >>>>> uses an i2c encoder (adv7511), following the basic steps suggested >>>>> by Laurent in "anatomy of an embedded KMS driver": >>>>> https://www.youtube.com/watch?v=Ja8fM7rTae4 >>>>> >>>>> After initiliazing all kms, crtc, encoder, i2c, connector functions >>>>> and structures i'm calling drm_fbdev_cma_init to create a fbdev. >>>>> >>>>> When booting i'm getting an error message saying "No connectors >>>>> reported connected with modes", but the driver init is ok and i can >>>>> find the /dev/dri/* and /dev/fb0 devices. >>>>> >>>>> Any clue what i might be missing during the driver load? >>>>> >>>>> >>>>> ​I think you should check on the 'get_modes'​ call back of adv7511 >>>>> driver. (Or, if possible show us the code.) >>>>> >>>>> Best, >>>>> -xinliang >>>>> >>>>> >>>>> Thanks... >>>>> >>>>> Regards, >>>>> C.Palminha >>>>> >>>>> --- boot log snippet --- >>>>> [drm] Initialized drm 1.1.0 20060810 >>>>> drm-arcpgu e0017000.pgu: No connectors reported connected with modes >>>>> [drm] Cannot find any crtc or sizes - going 1024x768 >>>>> Console: switching to colour frame buffer device 128x48 >>>>> drm-arcpgu e0017000.pgu: fb0: frame buffer device >>>>> [drm] Initialized drm-arcpgu 1.0.0 20151127 on minor 0 >>>>> --- boot log snippet --- >>>>> -- >>>>> To unsubscribe from this list: send the line "unsubscribe >>>>> linux-fbdev" in >>>>> the body of a message to majordomo@vger.kernel.org >>>>> >>>>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>>>> >>>>> >>> >> From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carlos Palminha Subject: Re: Whats missing in my new FB DRM driver... "No connectors reported connected with modes"? Date: Tue, 19 Jan 2016 16:52:59 +0000 Message-ID: <569E69EB.3010003@synopsys.com> References: <5684268E.2000607@synopsys.com> <569CF78F.7050303@synopsys.com> <569CFA9B.4060108@synopsys.com> <569E5E51.8000303@synopsys.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from smtprelay.synopsys.com (smtprelay.synopsys.com [198.182.60.111]) by gabe.freedesktop.org (Postfix) with ESMTPS id D006C6E7FC for ; Tue, 19 Jan 2016 08:53:09 -0800 (PST) In-Reply-To: <569E5E51.8000303@synopsys.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Xinliang Liu , Carlos Palminha Cc: linux-fbdev@vger.kernel.org, tomi.valkeinen@ti.com, Alexey Brodkin , laurent.pinchart@ideasonboard.com, dri-devel List-Id: dri-devel@lists.freedesktop.org d2hlbiBpIGJvb3QgdGhlIGtlcm5lbCBhbmQgY29ubmVjdCB0aGUgSERNSSBjYWJsZSBhZnRlciBi b290aW5nIGkgY2FuIHJldHJpZXZlIDQgbW9kZXMuLi4gOikKCmlmIGkgYm9vdCBsaW51eCB3aXRo IHRoZSBIRE1JIGNhYmxlIGluc2VydGVkIHRoZSBrZXJuZWwgaGFuZ3MuClBvc3NpYmxlIHJlbGF0 aW9uIHdpdGggSFBEPwoKUmVnYXJkcywKQy5QYWxtaW5oYQoKIyBtb2RldGVzdCAtTSBkcm0tYXJj cGd1IC1jCkNvbm5lY3RvcnM6CmlkICAgICAgZW5jb2RlciBzdGF0dXMgICAgICAgICAgdHlwZSAg ICBzaXplIChtbSkgICAgICAgbW9kZXMgICBlbmNvZGVycwoyMSAgICAgIDAgICAgICAgY29ubmVj dGVkICAgICAgIEhETUktQSAgMHgwICAgICAgICAgICAgIDQgICAgICAgMjAKICBtb2RlczoKICAg ICAgICBuYW1lIHJlZnJlc2ggKEh6KSBoZGlzcCBoc3MgaHNlIGh0b3QgdmRpc3AgdnNzIHZzZSB2 dG90KQogIDgwMHg2MDAgNjAgODAwIDg0MCA5NjggMTA1NiA2MDAgNjAxIDYwNSA2MjggZmxhZ3M6 IHBoc3luYywgcHZzeW5jOyB0eXBlOiBkcml2ZXIKICA4MDB4NjAwIDU2IDgwMCA4MjQgODk2IDEw MjQgNjAwIDYwMSA2MDMgNjI1IGZsYWdzOiBwaHN5bmMsIHB2c3luYzsgdHlwZTogZHJpdmVyCiAg ODQ4eDQ4MCA2MCA4NDggODY0IDk3NiAxMDg4IDQ4MCA0ODYgNDk0IDUxNyBmbGFnczogcGhzeW5j LCBwdnN5bmM7IHR5cGU6IGRyaXZlcgogIDY0MHg0ODAgNjAgNjQwIDY1NiA3NTIgODAwIDQ4MCA0 OTAgNDkyIDUyNSBmbGFnczogbmhzeW5jLCBudnN5bmM7IHR5cGU6IGRyaXZlcgogIHByb3BzOgog ICAgICAgIDEgRURJRDoKICAgICAgICAgICAgICAgIGZsYWdzOiBpbW11dGFibGUgYmxvYgogICAg ICAgICAgICAgICAgYmxvYnM6CgogICAgICAgICAgICAgICAgdmFsdWU6CiAgICAgICAgMiBEUE1T OgogICAgICAgICAgICAgICAgZmxhZ3M6IGVudW0KICAgICAgICAgICAgICAgIGVudW1zOiBPbj0w IFN0YW5kYnk9MSBTdXNwZW5kPTIgT2ZmPTMKICAgICAgICAgICAgICAgIHZhbHVlOiAwCgojCgpP biAxOS0wMS0yMDE2IDE2OjAzLCBDYXJsb3MgUGFsbWluaGEgd3JvdGU6Cj4gSGkgWGlhbmcsCj4g Cj4gSXRzIHJldHVybmluZyAwIG1vZGVzLi4uIDooCj4gCj4gUmVnYXJkcywKPiBDLlBhbG1pbmhh Cj4gCj4gIyBtb2RldGVzdCAtTSBkcm0tYXJjcGd1IC1jCj4gQ29ubmVjdG9yczoKPiBpZCAgICAg IGVuY29kZXIgc3RhdHVzICAgICAgICAgIHR5cGUgICAgc2l6ZSAobW0pICAgICAgIG1vZGVzICAg ZW5jb2RlcnMKPiAyMSAgICAgIDAgICAgICAgZGlzY29ubmVjdGVkICAgIEhETUktQSAgMHgwICAg ICAgICAgICAgIDAgICAgICAgMjAKPiAgIHByb3BzOgo+ICAgICAgICAgMSBFRElEOgo+ICAgICAg ICAgICAgICAgICBmbGFnczogaW1tdXRhYmxlIGJsb2IKPiAgICAgICAgICAgICAgICAgYmxvYnM6 Cj4gCj4gICAgICAgICAgICAgICAgIHZhbHVlOgo+ICAgICAgICAgMiBEUE1TOgo+ICAgICAgICAg ICAgICAgICBmbGFnczogZW51bQo+ICAgICAgICAgICAgICAgICBlbnVtczogT249MCBTdGFuZGJ5 PTEgU3VzcGVuZD0yIE9mZj0zCj4gICAgICAgICAgICAgICAgIHZhbHVlOiAwCj4gCj4gIwo+IAo+ IE9uIDE5LTAxLTIwMTYgMDM6MzgsIFhpbmxpYW5nIExpdSB3cm90ZToKPj4gT24gMTggSmFudWFy eSAyMDE2IGF0IDIyOjQ1LCBDYXJsb3MgUGFsbWluaGEgPENBUkxPUy5QQUxNSU5IQUBzeW5vcHN5 cy5jb20+Cj4+IHdyb3RlOgo+Pgo+Pj4gSSdtIGFsc28gZ2V0dGluZyBhIG1lc3NhZ2UgZnJvbSBE Uk0gc2F5aW5nIGNhbid0IGZpbmQgYW55IGNydGMgb3IKPj4+IHNpemVzLi4uaSdtIHJlYWxseSBt aXNzaW5nIHNvbWV0aGluZyBoZXJlLgo+Pj4gOigKPj4+Cj4+PiAtLSBsb2cgLS0KPj4+IFtkcm1d IEluaXRpYWxpemVkIGRybSAxLjEuMCAyMDA2MDgxMAo+Pj4gZHJtLWFyY3BndSBlMDAxNzAwMC5w Z3U6IE5vIGNvbm5lY3RvcnMgcmVwb3J0ZWQgY29ubmVjdGVkIHdpdGggbW9kZXMKPj4+IFtkcm1d IENhbm5vdCBmaW5kIGFueSBjcnRjIG9yIHNpemVzIC0gZ29pbmcgMTAyNHg3NjgKPj4+IENvbnNv bGU6IHN3aXRjaGluZyB0byBjb2xvdXIgZnJhbWUgYnVmZmVyIGRldmljZSAxMjh4NDgKPj4+IGRy bS1hcmNwZ3UgZTAwMTcwMDAucGd1OiBmYjA6IGZyYW1lIGJ1ZmZlciBkZXZpY2UKPj4+IFtkcm1d IEluaXRpYWxpemVkIGRybS1hcmNwZ3UgMS4wLjAgMjAxNTExMjcgb24gbWlub3IgMAo+Pj4gLS0g bG9nIC0tLQo+Pj4KPj4+IEFueSBoZWxwPwo+Pj4KPj4+IFJlZ2FyZHMsCj4+PiBDLlBhbG1pbmhh Cj4+Pgo+Pj4KPj4+IE9uIDE4LTAxLTIwMTYgMTQ6MzIsIENhcmxvcyBQYWxtaW5oYSB3cm90ZToK Pj4+PiBIaSBYaW5saWFuZywKPj4+Pgo+Pj4+IE15IGdldF9tb2RlcyBzZWVtcyB0byBiZSBpbXBs ZW1lbnRlZCBhcyB0aGUgcmNhciBkcml2ZXIuLi4KPj4+PiBQcm9iYWJseSBzdGlsbCBtaXNzaW5n IHNvbWUgaW5pdCBzdGVwPwo+Pj4+Cj4+Pj4gUmVnYXJkcywKPj4+PiBDLlBhbG1pbmhhCj4+Pj4K Pj4+Pgo+Pj4+IHN0YXRpYyBpbnQgYXJjcGd1X2RybV9jb25uZWN0b3JfZ2V0X21vZGVzKHN0cnVj dCBkcm1fY29ubmVjdG9yCj4+PiAqY29ubmVjdG9yKQo+Pj4+IHsKPj4+PiBzdHJ1Y3QgZHJtX2Vu Y29kZXJfc2xhdmUgKnNsYXZlOwo+Pj4+IGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9zbGF2ZV9m dW5jcyAqc2Z1bmNzOwo+Pj4+IHN0cnVjdCBhcmNwZ3VfZHJtX2Nvbm5lY3RvciAqIGNvbiA9Cj4+ Pj4gY29udGFpbmVyX29mKGNvbm5lY3Rvciwgc3RydWN0IGFyY3BndV9kcm1fY29ubmVjdG9yLCBj b25uZWN0b3IpOwo+Pj4+Cj4+Pj4gc2xhdmUgPSBjb24tPmVuY29kZXJfc2xhdmU7Cj4+Pj4gaWYo c2xhdmUgPT0gTlVMTCkgewo+Pj4+IGRldl9lcnIoY29ubmVjdG9yLT5kZXYtPmRldiwKPj4+PiAi Y29ubmVjdG9yX2dldF9tb2RlczogY2Fubm90IGZpbmQgc2xhdmUgZW5jb2RlciBmb3IgY29ubmVj dG9yXG4iKTsKPj4+PiByZXR1cm4gMDsKPj4+PiB9Cj4+Pj4KPj4+PiBzZnVuY3MgPSBzbGF2ZS0+ c2xhdmVfZnVuY3M7Cj4+Pj4gaWYoc2Z1bmNzLT5nZXRfbW9kZXMgPT0gTlVMTCl7Cj4+Pj4gcmV0 dXJuIDA7Cj4+Pj4gfQo+Pj4+Cj4+Pj4gcmV0dXJuIHNmdW5jcy0+Cj4+PiDigIvigIsKPj4+IGdl dF9tb2Rlcygmc2xhdmUtPmJhc2UsY29ubmVjdG9yKTsKPj4+PiB9Cj4+Pj4KPj4+Cj4+Cj4+IOKA i3NvLCB0aGlzIHdpbGwgY2FsbCBhZHY3NTExIGRyaXZlcidzIOKAiwo+PiDigIsKPj4gZ2V0X21v ZGVzIGNhbGwgYmFjay4KPj4gSSB3b25kZXIgaWYgdGhlIHN5c3RlbSBib290IHVwLCBpdCBjYW4g Z2V0IG1vZGVzIG9yIG5vdC4KPj4gWW91IGNhbiB0ZXN0IGl0IHdpdGggdGhlIG1vZGV0ZXN0LiBp LmUuICQgbW9kZXRlc3QgLU0gRFJNX0RSSVZFUl9OQU1FIC1jCj4+Cj4+Cj4+Cj4+Cj4+Pj4gT24g MzEtMTItMjAxNSAwMjoxOSwgWGlubGlhbmcgTGl1IHdyb3RlOgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBP biAzMSBEZWNlbWJlciAyMDE1IGF0IDAyOjQ2LCBDYXJsb3MgUGFsbWluaGEKPj4+Pj4gPENBUkxP Uy5QQUxNSU5IQUBzeW5vcHN5cy5jb20gPG1haWx0bzpDQVJMT1MuUEFMTUlOSEFAc3lub3BzeXMu Y29tPj4KPj4+IHdyb3RlOgo+Pj4+Pgo+Pj4+PiAgICAgSGkgZ3V5cywKPj4+Pj4KPj4+Pj4gICAg IEknbSB3cml0aW5nIGEgRFJNIGRyaXZlciBmb3IgYSBmcmFtZWJ1ZmZlciBlbWJlZGRlZCBoYXJk d2FyZSB0aGF0Cj4+Pj4+ICAgICB1c2VzIGFuIGkyYyBlbmNvZGVyIChhZHY3NTExKSwgZm9sbG93 aW5nIHRoZSBiYXNpYyBzdGVwcyBzdWdnZXN0ZWQKPj4+Pj4gICAgIGJ5IExhdXJlbnQgaW4gImFu YXRvbXkgb2YgYW4gZW1iZWRkZWQgS01TIGRyaXZlciI6Cj4+Pj4+ICAgICBodHRwczovL3d3dy55 b3V0dWJlLmNvbS93YXRjaD92PUphOGZNN3JUYWU0Cj4+Pj4+Cj4+Pj4+ICAgICBBZnRlciBpbml0 aWxpYXppbmcgYWxsIGttcywgY3J0YywgZW5jb2RlciwgaTJjLCBjb25uZWN0b3IgZnVuY3Rpb25z Cj4+Pj4+ICAgICBhbmQgc3RydWN0dXJlcyBpJ20gY2FsbGluZyBkcm1fZmJkZXZfY21hX2luaXQg dG8gY3JlYXRlIGEgZmJkZXYuCj4+Pj4+Cj4+Pj4+ICAgICBXaGVuIGJvb3RpbmcgaSdtIGdldHRp bmcgYW4gZXJyb3IgbWVzc2FnZSBzYXlpbmcgIk5vIGNvbm5lY3RvcnMKPj4+Pj4gICAgIHJlcG9y dGVkIGNvbm5lY3RlZCB3aXRoIG1vZGVzIiwgYnV0IHRoZSBkcml2ZXIgaW5pdCBpcyBvayBhbmQg aSBjYW4KPj4+Pj4gICAgIGZpbmQgdGhlIC9kZXYvZHJpLyogYW5kIC9kZXYvZmIwIGRldmljZXMu Cj4+Pj4+Cj4+Pj4+ICAgICBBbnkgY2x1ZSB3aGF0IGkgbWlnaHQgYmUgbWlzc2luZyBkdXJpbmcg dGhlIGRyaXZlciBsb2FkPwo+Pj4+Pgo+Pj4+Pgo+Pj4+PiDigItJIHRoaW5rIHlvdSBzaG91bGQg Y2hlY2sgb24gdGhlICdnZXRfbW9kZXMn4oCLIGNhbGwgYmFjayBvZiBhZHY3NTExCj4+Pj4+IGRy aXZlci4gKE9yLCBpZiBwb3NzaWJsZSBzaG93IHVzIHRoZSBjb2RlLikKPj4+Pj4KPj4+Pj4gQmVz dCwKPj4+Pj4gLXhpbmxpYW5nCj4+Pj4+Cj4+Pj4+Cj4+Pj4+ICAgICBUaGFua3MuLi4KPj4+Pj4K Pj4+Pj4gICAgIFJlZ2FyZHMsCj4+Pj4+ICAgICBDLlBhbG1pbmhhCj4+Pj4+Cj4+Pj4+ICAgICAt LS0gYm9vdCBsb2cgc25pcHBldCAtLS0KPj4+Pj4gICAgIFtkcm1dIEluaXRpYWxpemVkIGRybSAx LjEuMCAyMDA2MDgxMAo+Pj4+PiAgICAgZHJtLWFyY3BndSBlMDAxNzAwMC5wZ3U6IE5vIGNvbm5l Y3RvcnMgcmVwb3J0ZWQgY29ubmVjdGVkIHdpdGggbW9kZXMKPj4+Pj4gICAgIFtkcm1dIENhbm5v dCBmaW5kIGFueSBjcnRjIG9yIHNpemVzIC0gZ29pbmcgMTAyNHg3NjgKPj4+Pj4gICAgIENvbnNv bGU6IHN3aXRjaGluZyB0byBjb2xvdXIgZnJhbWUgYnVmZmVyIGRldmljZSAxMjh4NDgKPj4+Pj4g ICAgIGRybS1hcmNwZ3UgZTAwMTcwMDAucGd1OiBmYjA6ICBmcmFtZSBidWZmZXIgZGV2aWNlCj4+ Pj4+ICAgICBbZHJtXSBJbml0aWFsaXplZCBkcm0tYXJjcGd1IDEuMC4wIDIwMTUxMTI3IG9uIG1p bm9yIDAKPj4+Pj4gICAgIC0tLSBib290IGxvZyBzbmlwcGV0IC0tLQo+Pj4+PiAgICAgLS0KPj4+ Pj4gICAgIFRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1 YnNjcmliZQo+Pj4+PiAgICAgbGludXgtZmJkZXYiIGluCj4+Pj4+ICAgICB0aGUgYm9keSBvZiBh IG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZwo+Pj4+PiAgICAgPG1haWx0bzpt YWpvcmRvbW9Admdlci5rZXJuZWwub3JnPgo+Pj4+PiAgICAgTW9yZSBtYWpvcmRvbW8gaW5mbyBh dCBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwKPj4+Pj4KPj4+Pj4K Pj4+Cj4+Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==