From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v4 6/6] drm/i915: Determine the stolen memory base address on gen2 Date: Fri, 10 Jan 2014 17:11:47 +0200 Message-ID: <87iotrx45o.fsf@intel.com> References: <1389108522-20110-1-git-send-email-ville.syrjala@linux.intel.com> <1389360690-16795-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 42821FBC1F for ; Fri, 10 Jan 2014 07:15:45 -0800 (PST) In-Reply-To: <1389360690-16795-1-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAxMCBKYW4gMjAxNCwgdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20gd3JvdGU6 Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K Pgo+IFRoZXJlIGlzbid0IGFuIGV4cGxpY2l0IHN0b2xlbiBtZW1vcnkgYmFzZSByZWdpc3RlciBv biBnZW4yLgo+IFNvbWUgb2xkIGNvbW1lbnQgaW4gdGhlIGk5MTUgY29kZSBzdWdnZXN0cyB3ZSBz aG91bGQgZ2V0IGl0IHZpYQo+IG1heF9sb3dfcGZuX21hcHBlZCwgYnV0IHRoYXQncyBjbGVhcmx5 IGEgYmFkIGlkZWEgb24gbXkgTUdNLgo+Cj4gVGhlIGU4MjAgbWFwIGluIHNhaWQgbWFjaGluZSBs b29rcyBsaWtlIHRoaXM6Cj4gWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAw MDAwMDAwMDAwMC0weDAwMDAwMDAwMDAwOWY3ZmZdIHVzYWJsZQo+IFsgICAgMC4wMDAwMDBdIEJJ T1MtZTgyMDogW21lbSAweDAwMDAwMDAwMDAwOWY4MDAtMHgwMDAwMDAwMDAwMDlmZmZmXSByZXNl cnZlZAo+IFsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwMDAwY2UwMDAt MHgwMDAwMDAwMDAwMGNmZmZmXSByZXNlcnZlZAo+IFsgICAgMC4wMDAwMDBdIEJJT1MtZTgyMDog W21lbSAweDAwMDAwMDAwMDAwZGMwMDAtMHgwMDAwMDAwMDAwMGZmZmZmXSByZXNlcnZlZAo+IFsg ICAgMC4wMDAwMDBdIEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwMDAxMDAwMDAtMHgwMDAwMDAw MDFmNmVmZmZmXSB1c2FibGUKPiBbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAw MDAwMDFmNmYwMDAwLTB4MDAwMDAwMDAxZjZmN2ZmZl0gQUNQSSBkYXRhCj4gWyAgICAwLjAwMDAw MF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDAxZjZmODAwMC0weDAwMDAwMDAwMWY2ZmZmZmZd IEFDUEkgTlZTCj4gWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDAxZjcw MDAwMC0weDAwMDAwMDAwMWZmZmZmZmZdIHJlc2VydmVkCj4gWyAgICAwLjAwMDAwMF0gQklPUy1l ODIwOiBbbWVtIDB4MDAwMDAwMDBmZWMxMDAwMC0weDAwMDAwMDAwZmVjMWZmZmZdIHJlc2VydmVk Cj4gWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDBmZmIwMDAwMC0weDAw MDAwMDAwZmZiZmZmZmZdIHJlc2VydmVkCj4gWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVt IDB4MDAwMDAwMDBmZmYwMDAwMC0weDAwMDAwMDAwZmZmZmZmZmZdIHJlc2VydmVkCj4KPiBUaGF0 IG1ha2VzIG1heF9sb3dfcGZuX21hcHBlZCA9IDFmNmYwMDAwLCBzbyBhc3N1bWluZyBvdXIgc3Rv bGVuIG1lbW9yeQo+IHdvdWxkIHN0YXJ0IHRoZXJlIHdvdWxkIHBsYWNlIGl0IG9uIHRvcCBvZiBz b21lIEFDUEkgbWVtb3J5IHJlZ2lvbnMuCj4gU28gbm90IGEgZ29vZCBpZGVhIGFzIGFscmVhZHkg c3RhdGVkLgo+Cj4gVGhlIDlNQiByZWdpb24gYWZ0ZXIgdGhlIEFDUEkgcmVnaW9ucyBhdCAweDFm NzAwMDAwIGhvd2V2ZXIgbG9va3MKPiBwcm9taXNpbmcgZ2l2ZW4gdGhhdCB0aGUgbWFjaW5lIHJl cG9ydHMgdGhlIHN0b2xlbiBtZW1vcnkgc2l6ZSB0byBiZQo+IDhNQi4gTG9va2luZyBhdCB0aGUg UEdUQkxfQ1RMIHJlZ2lzdGVyLCB0aGUgR1RUIGVudHJpZXMgYXJlIGF0IG9mZnNldAo+IDB4MWZl ZTAwMDAwLCBhbmQgZ2l2ZW4gdGhhdCB0aGUgR1RUIGVudHJpZXMgb2NjdXB5IDEyOEtCLCBpdCBs b29rcyBsaWtlCj4gdGhlIHN0b2xlbiBtZW1vcnkgY291bGQgc3RhcnQgYXQgMHgxZjcwMDAwMCBh bmQgdGhlIEdUVCBlbnRyaWVzIHdvdWxkCj4gb2NjdXB5IHRoZSBsYXN0IDEyOEtCIG9mIHRoZSBz dG9sZW4gbWVtb3J5Lgo+Cj4gQWZ0ZXIgc29tZSBtb3JlIGRpZ2dpbmcgdGhyb3VnaCBjaGlwc2V0 IGRvY3VtZW50YXRpb24sIEkndmUgZGV0ZXJtaW5lZAo+IHRoZSBCSU9TIGZpcnN0IGFsbG9jYXRl cyBzcGFjZSBmb3Igc29tZXRoaW5nIGNhbGxlZCBUU0VHIChzb21ldGhpbmcgdG8KPiBkbyB3aXRo IFNNTSkgZnJvbSB0aGUgdG9wIG9mIG1lbW9yeSwgYW5kIHRoZW4gaXQgYWxsb2NhdGVzIHRoZSBn cmFwaGljcwo+IHN0b2xlbiBtZW1vcnkgYmVsb3cgdGhhdC4gQWNjb3JkaW5kIHRvIHRoZSBjaGlw c2V0IGRvY3VtZW50YXRpb24gVFNFRwo+IGhhcyBhIGZpeGVkIHNpemUgb2YgMU1CIG9uIDg1NS4g U28gdGhhdCBleHBsYWlucyB0aGUgdG9wIDFNQiBpbiB0aGUKPiBlODIwIHJlZ2lvbi4gQW5kIGl0 IGFsc28gY29uZmlybXMgdGhhdCB0aGUgR1RUIGVudHJpZXMgYXJlIGluIGZhY3QgYXQKPiB0aGUg ZW5kIG9mIHRoZSB0aGUgc3RvbGVuIG1lbW9yeSByZWdpb24uCj4KPiBEZXJpdmUgdGhlIHN0b2xl biBtZW1vcnkgYmFzZSBhZGRyZXNzIG9uIGdlbjIgdGhlIHNhbWUgYXMgdGhlIEJJT1MgZG9lcwo+ IChUT00tVFNFR19TSVpFLXN0b2xlbl9zaXplKS4gVGhlcmUgYXJlIGEgZmV3IGRpZmZlcmVuY2Vz IGJldHdlZW4gdGhlCj4gcmVnaXN0ZXJzIG9uIHZhcmlvdXMgZ2VuMiBjaGlwc2V0cywgc28gYSBm ZXcgZGlmZmVyZW50IGNvZGVwYXRocyBhcmUKPiByZXF1aXJlZC4KPgo+IDg2NUcgaXMgYWdhaW4g Yml0IG1vcmUgc3BlY2lhbCBzaW5jZSBpdCBzZWVtcyB0byBzdXBwb3J0IGVub3VnaCBtZW1vcnkK PiB0byBoaXQgNEdCIGFkZHJlc3Mgc3BhY2UgaXNzdWVzLiBUaGlzIG1lYW5zIHRoZSBQQ0kgYWxs b2NhdGlvbnMgd2lsbAo+IGFsc28gYWZmZWN0IHRoZSBsb2NhdGlvbiBvZiB0aGUgc3RvbGVuIG1l bW9yeS4gRm9ydHVuYXRlbHkgdGhlcmUKPiBhcHBlYXJzIHRvIGJlIHRoZSBUT1VEIHJlZ2lzdGVy IHdoaWNoIG1heSBnaXZlIHVzIHRoZSBjb3JyZWN0IGFuc3dlcgo+IGRpcmVjdGx5LiBCdXQgdGhl IGNoaXBzZXQgZG9jcyBhcmUgYSBiaXQgdW5jbGVhciwgc28gSSdtIG5vdCAxMDAlCj4gc3VyZSB0 aGF0IHRoZSBncmFwaGljcyBzdG9sZW4gbWVtb3J5IGlzIGFsd2F5cyB0aGUgbGFzdCB0aGluZyB0 aGUKPiBCSU9TIHN0ZWFscy4gU29tZW9uZSB3b3VsZCBuZWVkIHRvIHZlcmlmeSBpdCBvbiBhIHJl YWwgc3lzdGVtLgo+Cj4gSSB0ZXN0ZWQgdGhpcyBvbiB0aGUgbXkgODMwIGFuZCA4NTUgbWFjaGlu ZXMsIGFuZCBzbyBmYXIgZXZlcnl0aGluZwo+IGxvb2tzIHBlYWNoeS4KPgo+IHYyOiBSZXdyaXRl IHRvIHVzZSB0aGUgVE9NLVRTRUdfU0laRS1zdG9sZW5fc2l6ZSBhbmQgVE9VRCBtZXRob2RzCj4g djM6IEZpeCBUU0VHIHNpemUgZm9yIDgzMAo+IHY0OiBBZGQgbWlzc2luZyAnZWxzZScgKENocmlz KQo+Cj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVu LmMgfCA5MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCj4gIDEgZmlsZSBjaGFu Z2VkLCA4MSBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX3N0b2xlbi5jCj4gaW5kZXggN2IyZmUzZS4uMTY5YTU1ZCAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCj4gQEAgLTMwLDYgKzMwLDkgQEAKPiAg I2luY2x1ZGUgPGRybS9pOTE1X2RybS5oPgo+ICAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKPiAgCj4g KyNkZWZpbmUgS0IoeCkgKCh4KSAqIDEwMjQpCj4gKyNkZWZpbmUgTUIoeCkgKEtCKHgpICogMTAy NCkKCkJpa2VzaGVkLCBob3cgYWJvdXQgbWFraW5nIHRob3NlIEtpQiBhbmQgTWlCIGFuZCBtb3Zp bmcgdG8gaW50ZWxfZHJ2LmgKbmV4dCB0byBLSHogYW5kIE1Iej8KCkJSLApKYW5pLgoKCj4gKwo+ ICAvKgo+ICAgKiBUaGUgQklPUyB0eXBpY2FsbHkgcmVzZXJ2ZXMgc29tZSBvZiB0aGUgc3lzdGVt J3MgbWVtb3J5IGZvciB0aGUgZXhjbHVzaXZlCj4gICAqIHVzZSBvZiB0aGUgaW50ZWdyYXRlZCBn cmFwaGljcy4gVGhpcyBtZW1vcnkgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZSBmb3IKPiBAQCAtNTEs MjQgKzU0LDkxIEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGk5MTVfc3RvbGVuX3RvX3BoeXNpY2Fs KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkvKiBBbG1vc3QgdW5pdmVyc2FsbHkgd2UgY2Fu IGZpbmQgdGhlIEdyYXBoaWNzIEJhc2Ugb2YgU3RvbGVuIE1lbW9yeQo+ICAJICogYXQgb2Zmc2V0 IDB4NWMgaW4gdGhlIGlnZnggY29uZmlndXJhdGlvbiBzcGFjZS4gT24gYSBmZXcgKGRlc2t0b3Ap Cj4gIAkgKiBtYWNoaW5lcyB0aGlzIGlzIGFsc28gbWlycm9yZWQgaW4gdGhlIGJyaWRnZSBkZXZp Y2UgYXQgZGlmZmVyZW50Cj4gLQkgKiBsb2NhdGlvbnMsIG9yIGluIHRoZSBNQ0hCQVIuIE9uIGdl bjIsIHRoZSBsYXlvdXQgaXMgYWdhaW4gc2xpZ2h0bHkKPiAtCSAqIGRpZmZlcmVudCB3aXRoIHRo ZSBHcmFwaGljcyBTZWdtZW50IGltbWVkaWF0ZWx5IGZvbGxvd2luZyBUb3Agb2YKPiAtCSAqIE1l bW9yeSAob3IgVG9wIG9mIFVzYWJsZSBEUkFNKS4gTm90ZSBpdCBhcHBlYXJzIHRoYXQgVE9VRCBp cyBvbmx5Cj4gLQkgKiByZXBvcnRlZCBieSA4NjVnLCBzbyB3ZSBqdXN0IHVzZSB0aGUgdG9wIG9m IG1lbW9yeSBhcyBkZXRlcm1pbmVkCj4gLQkgKiBieSB0aGUgZTgyMCBwcm9iZS4KPiArCSAqIGxv Y2F0aW9ucywgb3IgaW4gdGhlIE1DSEJBUi4KPiArCSAqCj4gKwkgKiBPbiA4NjUgd2UganVzdCBj aGVjayB0aGUgVE9VRCByZWdpc3Rlci4KPiArCSAqCj4gKwkgKiBPbiA4MzAvODQ1Lzg1eCB0aGUg c3RvbGVuIG1lbW9yeSBiYXNlIGlzbid0IGF2YWlsYWJsZSBpbiBhbnkKPiArCSAqIHJlZ2lzdGVy LiBXZSBuZWVkIHRvIGNhbGN1bGF0ZSBpdCBhcyBUT00tVFNFR19TSVpFLXN0b2xlbl9zaXplLgo+ ICAJICoKPiAtCSAqIFhYWCBIb3dldmVyIGdlbjIgcmVxdWlyZXMgYW4gdW5hdmFpbGFibGUgc3lt Ym9sLgo+ICAJICovCj4gIAliYXNlID0gMDsKPiAgCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+ PSAzKSB7Cj4gIAkJLyogUmVhZCBHcmFwaGljcyBCYXNlIG9mIFN0b2xlbiBNZW1vcnkgZGlyZWN0 bHkgKi8KPiAgCQlwY2lfcmVhZF9jb25maWdfZHdvcmQoZGV2LT5wZGV2LCAweDVjLCAmYmFzZSk7 Cj4gIAkJYmFzZSAmPSB+KCgxPDwyMCkgLSAxKTsKPiAtCX0gZWxzZSB7IC8qIEdFTjIgKi8KPiAt I2lmIDAKPiAtCQkvKiBTdG9sZW4gaXMgaW1tZWRpYXRlbHkgYWJvdmUgVG9wIG9mIE1lbW9yeSAq Lwo+IC0JCWJhc2UgPSBtYXhfbG93X3Bmbl9tYXBwZWQgPDwgUEFHRV9TSElGVDsKPiAtI2VuZGlm Cj4gKwl9IGVsc2UgaWYgKElTX0k4NjVHKGRldikpIHsKPiArCQl1MTYgdG91ZCA9IDA7Cj4gKwo+ ICsJCS8qCj4gKwkJICogRklYTUUgaXMgdGhlIGdyYXBoaWNzIHN0b2xlbiBtZW1vcnkgcmVnaW9u Cj4gKwkJICogYWx3YXlzIGF0IFRPVUQ/IEllLiBpcyBpdCBhbHdheXMgdGhlIGxhc3QKPiArCQkg KiBvbmUgdG8gYmUgYWxsb2NhdGVkIGJ5IHRoZSBCSU9TPwo+ICsJCSAqLwo+ICsJCXBjaV9idXNf cmVhZF9jb25maWdfd29yZChkZXYtPnBkZXYtPmJ1cywgUENJX0RFVkZOKDAsIDApLAo+ICsJCQkJ CSBJODY1X1RPVUQsICZ0b3VkKTsKPiArCj4gKwkJYmFzZSA9IHRvdWQgPDwgMTY7Cj4gKwl9IGVs c2UgaWYgKElTX0k4NVgoZGV2KSkgewo+ICsJCXUzMiB0c2VnX3NpemUgPSAwOwo+ICsJCXUzMiB0 b207Cj4gKwkJdTggdG1wOwo+ICsKPiArCQlwY2lfYnVzX3JlYWRfY29uZmlnX2J5dGUoZGV2LT5w ZGV2LT5idXMsIFBDSV9ERVZGTigwLCAwKSwKPiArCQkJCQkgSTg1WF9FU01SQU1DLCAmdG1wKTsK PiArCj4gKwkJaWYgKHRtcCAmIFRTRUdfRU5BQkxFKQo+ICsJCQl0c2VnX3NpemUgPSBNQigxKTsK PiArCj4gKwkJcGNpX2J1c19yZWFkX2NvbmZpZ19ieXRlKGRldi0+cGRldi0+YnVzLCBQQ0lfREVW Rk4oMCwgMSksCj4gKwkJCQkJIEk4NVhfRFJCMywgJnRtcCk7Cj4gKwkJdG9tID0gdG1wICogTUIo MzIpOwo+ICsKPiArCQliYXNlID0gdG9tIC0gdHNlZ19zaXplIC0gZGV2X3ByaXYtPmd0dC5zdG9s ZW5fc2l6ZTsKPiArCX0gZWxzZSBpZiAoSVNfODQ1RyhkZXYpKSB7Cj4gKwkJdTMyIHRzZWdfc2l6 ZSA9IDA7Cj4gKwkJdTMyIHRvbTsKPiArCQl1OCB0bXA7Cj4gKwo+ICsJCXBjaV9idXNfcmVhZF9j b25maWdfYnl0ZShkZXYtPnBkZXYtPmJ1cywgUENJX0RFVkZOKDAsIDApLAo+ICsJCQkJCSBJODQ1 X0VTTVJBTUMsICZ0bXApOwo+ICsKPiArCQlpZiAodG1wICYgVFNFR19FTkFCTEUpIHsKPiArCQkJ c3dpdGNoICh0bXAgJiBJODQ1X1RTRUdfU0laRV9NQVNLKSB7Cj4gKwkJCWNhc2UgSTg0NV9UU0VH X1NJWkVfNTEySzoKPiArCQkJCXRzZWdfc2l6ZSA9IEtCKDUxMik7Cj4gKwkJCQlicmVhazsKPiAr CQkJY2FzZSBJODQ1X1RTRUdfU0laRV8xTToKPiArCQkJCXRzZWdfc2l6ZSA9IE1CKDEpOwo+ICsJ CQkJYnJlYWs7Cj4gKwkJCX0KPiArCQl9Cj4gKwo+ICsJCXBjaV9idXNfcmVhZF9jb25maWdfYnl0 ZShkZXYtPnBkZXYtPmJ1cywgUENJX0RFVkZOKDAsIDApLAo+ICsJCQkJCSBJODMwX0RSQjMsICZ0 bXApOwo+ICsJCXRvbSA9IHRtcCAqIE1CKDMyKTsKPiArCj4gKwkJYmFzZSA9IHRvbSAtIHRzZWdf c2l6ZSAtIGRldl9wcml2LT5ndHQuc3RvbGVuX3NpemU7Cj4gKwl9IGVsc2UgaWYgKElTX0k4MzAo ZGV2KSkgewo+ICsJCXUzMiB0c2VnX3NpemUgPSAwOwo+ICsJCXUzMiB0b207Cj4gKwkJdTggdG1w Owo+ICsKPiArCQlwY2lfYnVzX3JlYWRfY29uZmlnX2J5dGUoZGV2LT5wZGV2LT5idXMsIFBDSV9E RVZGTigwLCAwKSwKPiArCQkJCQkgSTgzMF9FU01SQU1DLCAmdG1wKTsKPiArCj4gKwkJaWYgKHRt cCAmIFRTRUdfRU5BQkxFKSB7Cj4gKwkJCWlmICh0bXAgJiBJODMwX1RTRUdfU0laRV8xTSkKPiAr CQkJCXRzZWdfc2l6ZSA9IE1CKDEpOwo+ICsJCQllbHNlCj4gKwkJCQl0c2VnX3NpemUgPSBLQig1 MTIpOwo+ICsJCX0KPiArCj4gKwkJcGNpX2J1c19yZWFkX2NvbmZpZ19ieXRlKGRldi0+cGRldi0+ YnVzLCBQQ0lfREVWRk4oMCwgMCksCj4gKwkJCQkJIEk4MzBfRFJCMywgJnRtcCk7Cj4gKwkJdG9t ID0gdG1wICogTUIoMzIpOwo+ICsKPiArCQliYXNlID0gdG9tIC0gdHNlZ19zaXplIC0gZGV2X3By aXYtPmd0dC5zdG9sZW5fc2l6ZTsKPiAgCX0KPiAgCj4gIAlpZiAoYmFzZSA9PSAwKQo+IC0tIAo+ IDEuOC4zLjIKPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4CgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2Vu dGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==