From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [Intel-gfx] [PATCH RFC 2/5] cgroup: Add mechanism to register vendor specific DRM devices Date: Mon, 3 Dec 2018 10:58:57 -0800 Message-ID: <20181203185857.GE6859@mdroper-desk.amr.corp.intel.com> References: <20181120202141.GA2509588@devbig004.ftw2.facebook.com> <20181120223018.GB2509588@devbig004.ftw2.facebook.com> <154331198147.4538.9472338565824691695@jlahtine-desk.ger.corp.intel.com> <154339645444.5339.6291298808444340104@jlahtine-desk.ger.corp.intel.com> <20181130222228.GE31345@mdroper-desk.amr.corp.intel.com> Mime-Version: 1.0 Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Content-Type: text/plain; charset="us-ascii" To: "Ho, Kenny" Cc: "intel-gfx@lists.freedesktop.org" , "Kasiviswanathan, Harish" , "dri-devel@lists.freedesktop.org" , "y2kenny@gmail.com" , "amd-gfx@lists.freedesktop.org" , Tejun Heo , "cgroups@vger.kernel.org" T24gTW9uLCBEZWMgMDMsIDIwMTggYXQgMDY6NDY6MDFBTSArMDAwMCwgSG8sIEtlbm55IHdyb3Rl Ogo+IEhleSBNYXR0LAo+IAo+IE9uIEZyaSwgTm92IDMwLCAyMDE4IGF0IDU6MjIgUE0gTWF0dCBS b3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4gd3JvdGU6Cj4gPiBJIHRoaW5rIEpvb25h cyBpcyBkZXNjcmliaW5nIHNvbWV0aGluZyBjbG9zZXIgaW4KPiA+IGRlc2lnbiB0byB0aGUgY2dy b3VwLXYyICJjcHUiIGNvbnRyb2xsZXIsIHdoaWNoIHBhcnRpdGlvbnMgdGhlIGdlbmVyYWwKPiA+ IHRpbWUvdXNhZ2UgYWxsb2NhdGVkIHRvIHZpYSBjZ3JvdXA7IGFmYWl1LCAiY3B1IiBkb2Vzbid0 IHJlYWxseSBjYXJlCj4gPiB3aGljaCBzcGVjaWZpYyBjb3JlIHRoZSB0YXNrcyBydW4gb24sIGp1 c3QgdGhlIHJlbGF0aXZlIHdlaWdodHMgdGhhdAo+ID4gZGV0ZXJtaW5lIGhvdyBtdWNoIHRpbWUg dGhleSBnZXQgdG8gcnVuIG9uIGFueSBvZiB0aGUgY29yZXMuCj4gCj4gRGVwZW5kaW5nIG9uIHRo ZSBsZXZlbCBvZiBvcHRpbWl6YXRpb24gb25lIHdhbnRzIHRvIGRvLCBJIHRoaW5rIHBlb3BsZQo+ IGNhcmUgYWJvdXQgd2hpY2ggY3B1IGNvcmUgYSB0YXNrIHJ1bnMgb24uICBNb2Rlcm4gcHJvY2Vz c29ycyBhcmUgbm8KPiBsb25nZXIgYSBtb25vbGl0aGljICd0aGluZycuICBBdCBsZWFzdCBmb3Ig QU1ELCB0aGVyZSBhcmUgbXVsdGlwbGUKPiBjcHVzIG9uIGEgY29yZSBjb21wbGV4IChDQ1gpLCBt dWx0aXBsZSBDQ1ggb24gYSBkaWUsIGFuZCBtdWx0aXBsZSBkaWVzCj4gb24gYSBwcm9jZXNzb3Iu ICBBIHRhc2sgcnVubmluZyBvbiBjcHUgMCBhbmQgY3B1IDEgb24gZGllIDAgd2lsbAo+IGJlaGF2 ZSB2ZXJ5IGRpZmZlcmVudGx5IGZyb20gYSB0YXNrIHJ1bm5pbmcgb24gY29yZSAwcyBvbiBkaWUg MCBhbmQKPiBkaWUgMSBvbiB0aGUgc2FtZSBzb2NrZXQuCj4gKGh0dHBzOi8vZW4ud2lraWNoaXAu b3JnL3dpa2kvYW1kL21pY3JvYXJjaGl0ZWN0dXJlcy96ZW4jRGllLWRpZV9tZW1vcnlfbGF0ZW5j aWVzKQo+IAo+IEl0J3Mgbm90IGp1c3QgYW4gQU1EIHRoaW5nIGVpdGhlci4gIEhlcmUgaXMgYW4g b3BlbiBpc3N1ZSBvbiBJbnRlbCdzIGFyY2hpdGVjdHVyZToKPiBodHRwczovL2dpdGh1Yi5jb20v a3ViZXJuZXRlcy9rdWJlcm5ldGVzL2lzc3Vlcy82NzM1NQo+IAo+IGFuZCBhIHByb3Bvc2VkIHNv bHV0aW9uIHVzaW5nIGNwdSBhZmZpbml0eQo+IGh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVz L2NvbW11bml0eS9ibG9iLzYzMGFjYzQ4N2M4MGU0OTgxYTIzMmNkZDg0MDBlYjgyMDcxMTk3ODgv a2Vwcy9zaWctbm9kZS8wMDMwLXFvcy1jbGFzcy1jcHUtYWZmaW5pdHkubWQjcHJvcG9zYWwKPiAo Ynkgb25lIG9mIHlvdXIgY29sbGVhZ3Vlcy4pCgpSaWdodCwgSSBkaWRuJ3QgbWVhbiB0byBpbXBs eSB0aGF0IHRoZSB1c2UgY2FzZSB3YXNuJ3QgdmFsaWQsIEkgd2FzIGp1c3QKcmVmZXJyaW5nIHRv IGhvdyBJIGJlbGlldmUgdGhlIGNncm91cC12MiAnY3B1JyBjb250cm9sbGVyIChpLmUuLApjcHVf Y2dycF9zdWJzeXMpIGN1cnJlbnRseSBiZWhhdmVzLCBhcyBhIGNvbnRyYXN0IHRvIHRoZSBiZWhh dmlvciBvZiB0aGUKY2dyb3VwLXYxICdjcHVzZXQnIGNvbnRyb2xsZXIuICBJIGNhbiBkZWZpbml0 ZWx5IHVuZGVyc3RhbmQgeW91cgptb3RpdmF0aW9uIGZvciB3YW50aW5nIHNvbWV0aGluZyBhbG9u ZyB0aGUgbGluZXMgb2YgYSAiZ3B1c2V0Igpjb250cm9sbGVyLCBidXQgYXMgZmFyIGFzIEkga25v dywgdGhhdCBqdXN0IGlzbid0IHNvbWV0aGluZyB0aGF0J3MKcG9zc2libGUgdG8gaW1wbGVtZW50 IG9uIGEgbG90IG9mIEdQVSdzLgoKPiAKPiBUaGUgdGltZS1iYXNlZCBzaGFyaW5nIGJlbG93IGlz IGFsc28gc29tZXRoaW5nIHdlIGFyZSB0aGlua2luZyBhYm91dCwKPiBidXQgaXQncyBwZXJzb25h bGx5IG5vdCBhcyBleGNpdGluZyBhcyB0aGUgcmVzb3VyY2UtYmFzZWQgc2hhcmluZyBmb3IKPiBt ZSBiZWNhdXNlIHRoZSB0aW1lLXNoYXJlIHVzZSBjYXNlIGhhcyBhbHJlYWR5IGJlZW4gYWRkcmVz c2VkIGJ5IG91cgo+IFNSSU9WL3ZpcnR1YWxpemF0aW9uIHByb2R1Y3RzLiAgV2UgY2FuIHBvdGVu dGlhbGx5IGhhdmUgZGlmZmVyZW50Cj4gbGV2ZWwgb2YgdGltZSBzaGFyaW5nIHVzaW5nIGNncm91 cCB0aG91Z2ggKGluIGFkZGl0aW9uIHRvIFNSSU9WKSwKPiBwb3RlbnRpYWxseSB0cmFkaW5nIGVm ZmljaWVuY3kgYWdhaW5zdCBpc29sYXRpb24uICBUaGF0IHNhaWQsIEkgdGhpbmsKPiB0aGUgdGlt ZS1iYXNlZCBhcHByb2FjaCBtYXliZSBvcnRob2dvbmFsIHRvIHRoZSByZXNvdXJjZS1iYXNlZAo+ IGFwcHJvYWNoIChvcnRob2dvbmFsIGluIHRoZSBzZW5zZSB0aGF0IGJvdGggYXJlIG5lZWRlZCBk ZXBlbmRpbmcgb24KPiB0aGUgdXNhZ2UuKQoKTWFrZXMgc2Vuc2UuCgoKTWF0dAoKCj4gCj4gUmVn YXJkcywKPiBLZW5ueQo+IAo+IAo+ID4gSXQgc291bmRzIGxpa2Ugd2l0aCB5b3VyIGhhcmR3YXJl LCB5b3VyIGtlcm5lbCBkcml2ZXIgaXMgYWJsZSB0byBzcGVjaWZ5Cj4gPiBleGFjdGx5IHdoaWNo IHN1YnNldCBvZiBHUFUgRVUncyBhIHNwZWNpZmljIEdQVSBjb250ZXh0IHdpbmRzIHVwIHJ1bm5p bmcKPiA+IG9uLiAgSG93ZXZlciBJIHRoaW5rIHRoZXJlIGFyZSBhIGxvdCBvZiBwbGF0Zm9ybXMg dGhhdCBkb24ndCBhbGxvdyB0aGF0Cj4gPiBraW5kIG9mIGxvdy1sZXZlbCBjb250cm9sLiAgRS5n LiwgSSBkb24ndCB0aGluayB3ZSBjYW4gZG8gdGhhdCBvbiBJbnRlbAo+ID4gaGFyZHdhcmU7IHdl IGhhdmUgYSBoYW5kZnVsIG9mIGhpZ2gtbGV2ZWwgR1BVIGVuZ2luZXMgdGhhdCB3ZSBjYW4gc3Vi bWl0Cj4gPiBkaWZmZXJlbnQgdHlwZXMgb2YgYmF0Y2hidWZmZXJzIHRvIChyZW5kZXIsIGJsaXR0 ZXIsIG1lZGlhLCBldGMuKS4gIFdoYXQKPiA+IHdlIGNhbiBkbyBpcyB1c2UgR1BVIHByZWVtcHRp b24gdG8gbGltaXQgaG93IG11Y2ggdGltZSBzcGVjaWZpYyBHUFUKPiA+IGNvbnRleHRzIGdldCB0 byBydW4gb24gdGhlIHJlbmRlciBlbmdpbmUgYmVmb3JlIHRoZSBlbmdpbmUgaXMgcmVjbGFpbWVk Cj4gPiBmb3IgdXNlIGJ5IGEgZGlmZmVyZW50IGNvbnRleHQuCj4gPgo+ID4gVXNpbmcgYSAlZ3B1 dGltZSBhcHByb2FjaCBsaWtlIEpvb25hcyBpcyBzdWdnZXN0aW5nIGNvdWxkIGJlIGhhbmRsZWQg aW4KPiA+IGEgZHJpdmVyIGJ5IHJlc2VydmluZyBzcGVjaWZpYyBzdWJzZXRzIG9mIEVVJ3Mgb24g aGFyZHdhcmUgbGlrZSB5b3Vycwo+ID4gdGhhdCdzIGNhcGFibGUgb2YgZG9pbmcgdGhhdCwgd2hl cmVhcyBpdCBjb3VsZCBiZSBtb3N0bHkgaGFuZGxlZCBvbgo+ID4gb3RoZXIgdHlwZXMgb2YgaGFy ZHdhcmUgdmlhIEdQVSBlbmdpbmUgcHJlZW1wdGlvbi4KPiA+Cj4gPiBJIHRoaW5rIGVpdGhlciBh cHByb2FjaCAiZ3B1X2V1c2V0IiBvciAiJWdwdXRpbWUiIHNob3VsZCBtYXAgd2VsbCB0byBhCj4g PiBjZ3JvdXAgY29udHJvbGxlciBpbXBsZW1lbnRhdGlvbi4gIEdyYW50ZWQsIG5laXRoZXIgb25l IHNvbHZlcyB0aGUKPiA+IHNwZWNpZmljIHVzZSBjYXNlIEkgd2FzIHdvcmtpbmcgb24gZWFybGll ciB0aGlzIHllYXIgd2hlcmUgd2UgbmVlZAo+ID4gdW5mYWlyIChzdGFydmF0aW9uLW9rYXkpIHNj aGVkdWxpbmcgdGhhdCB3aWxsIHJ1biBjb250ZXh0cyBzdHJpY3RseQo+ID4gYWNjb3JkaW5nIHRv IHByaW9yaXR5IChpLmUuLCBsb3dlciBwcmlvcml0eSBjb250ZXh0cyB3aWxsIG5ldmVyIHJ1biBh dAo+ID4gYWxsIHVubGVzcyBhbGwgaGlnaGVyIHByaW9yaXR5IGNvbnRleHRzIGhhdmUgY29tcGxl dGVkIGFsbCBvZiB0aGVpcgo+ID4gc3VibWl0dGVkIHdvcmspLCBidXQgdGhhdCdzIGEgcHJldHR5 IHNwZWNpYWxpemVkIHVzZSBjYXNlIHRoYXQgd2UnbGwKPiA+IHByb2JhYmx5IG5lZWQgdG8gaGFu ZGxlIGluIGEgZGlmZmVyZW50IG1hbm5lciBhbnl3YXkuCj4gPgo+ID4KPiA+IE1hdHQKPiA+Cj4g Pgo+ID4gPiBSZWdhcmRzLAo+ID4gPiBLZW5ubnkKPiA+ID4KPiA+ID4KPiA+ID4gPiA+ID4gVGhh dCBjb21iaW5lZCB3aXRoIHRoZSAiR1BVIG1lbW9yeSB1c2FibGUiIHByb3BlcnR5IHNob3VsZCBi ZSBhIGdvb2QKPiA+ID4gPiA+ID4gc3RhcnRpbmcgcG9pbnQgdG8gc3RhcnQgc3ViZGl2aWRpbmcg dGhlIEdQVSByZXNvdXJjZXMgZm9yIG11bHRpcGxlCj4gPiA+ID4gPiA+IHVzZXJzLgo+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiBSZWdhcmRzLCBKb29uYXMKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4g Pgo+ID4gPiA+ID4gPiA+IFlvdXIgZmVlZGJhY2sgaXMgaGlnaGx5IGFwcHJlY2lhdGVkLgo+ID4g PiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gQmVzdCBSZWdhcmRzLAo+ID4gPiA+ID4gPiA+IEhhcmlz aAo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ IEZyb206IGFtZC1nZnggPGFtZC1nZngtYm91bmNlc0BsaXN0cy5mcmVlZGVza3RvcC5vcmc+IG9u IGJlaGFsZiBvZiBUZWp1biBIZW8gPHRqQGtlcm5lbC5vcmc+Cj4gPiA+ID4gPiA+ID4gU2VudDog VHVlc2RheSwgTm92ZW1iZXIgMjAsIDIwMTggNTozMCBQTQo+ID4gPiA+ID4gPiA+IFRvOiBIbywg S2VubnkKPiA+ID4gPiA+ID4gPiBDYzogY2dyb3Vwc0B2Z2VyLmtlcm5lbC5vcmc7IGludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IHkya2VubnlAZ21haWwuY29tOyBhbWQtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZzsgZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gPiA+ ID4gPiA+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggUkZDIDIvNV0gY2dyb3VwOiBBZGQgbWVjaGFuaXNt IHRvIHJlZ2lzdGVyIHZlbmRvciBzcGVjaWZpYyBEUk0gZGV2aWNlcwo+ID4gPiA+ID4gPiA+Cj4g PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBIZWxsbywKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4g PiA+IE9uIFR1ZSwgTm92IDIwLCAyMDE4IGF0IDEwOjIxOjE0UE0gKzAwMDAsIEhvLCBLZW5ueSB3 cm90ZToKPiA+ID4gPiA+ID4gPiA+IEJ5IHRoaXMgcmVwbHksIGFyZSB5b3Ugc3VnZ2VzdGluZyB0 aGF0IHZlbmRvciBzcGVjaWZpYyByZXNvdXJjZXMKPiA+ID4gPiA+ID4gPiA+IHdpbGwgbmV2ZXIg YmUgYWNjZXB0YWJsZSB0byBiZSBtYW5hZ2VkIHVuZGVyIGNncm91cD8gIExldCBzYXkgYSB1c2Vy Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBJIHdvdWxkbid0IHNheSBuZXZlciBidXQgd2hh dGV2ZXIgd2hpY2ggZ2V0cyBpbmNsdWRlZCBhcyBhIGNncm91cAo+ID4gPiA+ID4gPiA+IGNvbnRy b2xsZXIgc2hvdWxkIGhhdmUgY2xlYXJseSBkZWZpbmVkIHJlc291cmNlIGFic3RyYWN0aW9ucyBh bmQgdGhlCj4gPiA+ID4gPiA+ID4gY29udHJvbCBzY2hlbWVzIGFyb3VuZCB0aGVtIGluY2x1ZGlu ZyBzdXBwb3J0IGZvciBkZWxlZ2F0aW9uLiAgQUZBSUNTLAo+ID4gPiA+ID4gPiA+IGdwdSBzaWRl IHN0aWxsIHNlZW1zIHRvIGhhdmUgYSBsb25nIHdheSB0byBnbyAoYW5kIGl0J3Mgbm90IGNsZWFy Cj4gPiA+ID4gPiA+ID4gd2hldGhlciB0aGF0J3Mgc29tZXdoZXJlIGl0IHdpbGwgb3IgbmVlZHMg dG8gZW5kIHVwKS4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gd2FudCB0byBoYXZlIHNp bWlsYXIgZnVuY3Rpb25hbGl0eSBhcyB3aGF0IGNncm91cCBpcyBvZmZlcmluZyBidXQgdG8KPiA+ ID4gPiA+ID4gPiA+IG1hbmFnZSB2ZW5kb3Igc3BlY2lmaWMgcmVzb3VyY2VzLCB3aGF0IHdvdWxk IHlvdSBzdWdnZXN0IGFzIGEKPiA+ID4gPiA+ID4gPiA+IHNvbHV0aW9uPyAgV2hlbiB5b3Ugc2F5 IGtlZXBpbmcgdmVuZG9yIHNwZWNpZmljIHJlc291cmNlIHJlZ3VsYXRpb24KPiA+ID4gPiA+ID4g PiA+IGluc2lkZSBkcm0gb3Igc3BlY2lmaWMgZHJpdmVycywgZG8geW91IG1lYW4gd2Ugc2hvdWxk IHJlcGxpY2F0ZSB0aGUKPiA+ID4gPiA+ID4gPiA+IGNncm91cCBpbmZyYXN0cnVjdHVyZSB0aGVy ZSBvciBkbyB5b3UgbWVhbiBlaXRoZXIgZHJtIG9yIHNwZWNpZmljCj4gPiA+ID4gPiA+ID4gPiBk cml2ZXIgc2hvdWxkIHF1ZXJ5IGV4aXN0aW5nIGhpZXJhcmNoeSAoc3VjaCBhcyBkZXZpY2Ugb3Ig cGVyaGFwcwo+ID4gPiA+ID4gPiA+ID4gY3B1KSBmb3IgdGhlIHByb2Nlc3Mgb3JnYW5pemF0aW9u IGluZm9ybWF0aW9uPwo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IFRvIHB1dCB0aGUg cXVlc3Rpb25zIGluIG1vcmUgY29uY3JldGUgdGVybXMsIGxldCBzYXkgYSB1c2VyIHdhbnRzIHRv Cj4gPiA+ID4gPiA+ID4gPiBleHBvc2UgY2VydGFpbiBwYXJ0IG9mIGEgZ3B1IHRvIGEgcGFydGlj dWxhciBjZ3JvdXAgc2ltaWxhciB0byB0aGUKPiA+ID4gPiA+ID4gPiA+IHdheSBzZWxlY3RpdmUg Y3B1IGNvcmVzIGFyZSBleHBvc2VkIHRvIGEgY2dyb3VwIHZpYSBjcHVzZXQsIGhvdwo+ID4gPiA+ ID4gPiA+ID4gc2hvdWxkIHdlIGdvIGFib3V0IGVuYWJsaW5nIHN1Y2ggZnVuY3Rpb25hbGl0eT8K PiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IERvIHdoYXQgdGhlIGludGVsIGRyaXZlciBvciBi cGYgaXMgZG9pbmc/ICBJdCdzIG5vdCBkaWZmaWN1bHQgdG8gaG9vawo+ID4gPiA+ID4gPiA+IGlu dG8gY2dyb3VwIGZvciBpZGVudGlmaWNhdGlvbiBwdXJwb3Nlcy4KPiA+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiA+IFRoYW5rcy4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IC0tCj4gPiA+ID4g PiA+ID4gdGVqdW4KPiA+ID4gPiA+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+ID4gPiA+ID4gPiA+IGFtZC1nZnggbWFpbGluZyBsaXN0Cj4gPiA+ ID4gPiA+ID4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gPiA+ID4gPiBodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngKPiA+ID4g PiA+ID4gPgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gYW1kLWdmeCBJbmZvIFBhZ2UgLSBm cmVlZGVza3RvcC5vcmcKPiA+ID4gPiA+ID4gPiBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4g PiA+ID4gPiBUbyBzZWUgdGhlIGNvbGxlY3Rpb24gb2YgcHJpb3IgcG9zdGluZ3MgdG8gdGhlIGxp c3QsIHZpc2l0IHRoZSBhbWQtZ2Z4IEFyY2hpdmVzLi4gVXNpbmcgYW1kLWdmeDogVG8gcG9zdCBh IG1lc3NhZ2UgdG8gYWxsIHRoZSBsaXN0IG1lbWJlcnMsIHNlbmQgZW1haWwgdG8gYW1kLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcuIFlvdSBjYW4gc3Vic2NyaWJlIHRvIHRoZSBsaXN0LCBvciBj aGFuZ2UgeW91ciBleGlzdGluZyBzdWJzY3JpcHRpb24sIGluIHRoZSBzZWN0aW9ucyBiZWxvdy4K PiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCj4gPiA+ID4gPiA+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ ID4gPiA+ID4gPiA+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gPiA+ID4g PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo+ID4KPiA+IC0tCj4gPiBNYXR0IFJvcGVyCj4gPiBHcmFwaGljcyBTb2Z0d2FyZSBFbmdpbmVl cgo+ID4gSW9URyBQbGF0Zm9ybSBFbmFibGluZyAmIERldmVsb3BtZW50Cj4gPiBJbnRlbCBDb3Jw b3JhdGlvbgo+ID4gKDkxNikgMzU2LTI3OTUKCi0tIApNYXR0IFJvcGVyCkdyYXBoaWNzIFNvZnR3 YXJlIEVuZ2luZWVyCklvVEcgUGxhdGZvcm0gRW5hYmxpbmcgJiBEZXZlbG9wbWVudApJbnRlbCBD b3Jwb3JhdGlvbgooOTE2KSAzNTYtMjc5NQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWwK