From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [Intel-gfx] [PATCH 1/3] drm: Add a new connector atomic property for link status Date: Fri, 2 Dec 2016 09:48:59 -0800 Message-ID: <20161202174859.GA22991@intel.com> References: <1480491033-1923-1-git-send-email-manasi.d.navare@intel.com> <20161202162635.73gudykxzif5acdj@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20161202162635.73gudykxzif5acdj@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBEZWMgMDIsIDIwMTYgYXQgMDU6MjY6MzVQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUdWUsIE5vdiAyOSwgMjAxNiBhdCAxMTozMDozMVBNIC0wODAwLCBNYW5hc2kg TmF2YXJlIHdyb3RlOgo+ID4gQXQgdGhlIHRpbWUgdXNlcnNwYWNlIGRvZXMgc2V0Y3J0Yywgd2Un dmUgYWxyZWFkeSBwcm9taXNlZCB0aGUgbW9kZQo+ID4gd291bGQgd29yay4gVGhlIHByb21pc2Ug aXMgYmFzZWQgb24gdGhlIHRoZW9yZXRpY2FsIGNhcGFiaWxpdGllcyBvZgo+ID4gdGhlIGxpbmss IGJ1dCBpdCdzIHBvc3NpYmxlIHdlIGNhbid0IHJlYWNoIHRoaXMgaW4gcHJhY3RpY2UuIFRoZSBE UAo+ID4gc3BlYyBkZXNjcmliZXMgaG93IHRoZSBsaW5rIHNob3VsZCBiZSByZWR1Y2VkLCBidXQg d2UgY2FuJ3QgcmVkdWNlCj4gPiB0aGUgbGluayBiZWxvdyB0aGUgcmVxdWlyZW1lbnRzIG9mIHRo ZSBtb2RlLiBCbGFjayBzY3JlZW4gZm9sbG93cy4KPiA+IAo+ID4gT25lIGlkZWEgd291bGQgYmUg dG8gaGF2ZSBzZXRjcnRjIHJldHVybiBhIGZhaWx1cmUuIEhvd2V2ZXIsIGl0Cj4gPiBhbHJlYWR5 IHNob3VsZCBub3QgZmFpbCBhcyB0aGUgYXRvbWljIGNoZWNrcyBoYXZlIHBhc3NlZC4gSXQgd291 bGQKPiA+IGFsc28gY29uZmxpY3Qgd2l0aCB0aGUgaWRlYSBvZiBtYWtpbmcgc2V0Y3J0YyBhc3lu Y2hyb25vdXMgaW4gdGhlCj4gPiBmdXR1cmUsIHJldHVybmluZyBiZWZvcmUgdGhlIGFjdHVhbCBt b2RlIHNldHRpbmcgYW5kIGxpbmsgdHJhaW5pbmcuCj4gPiAKPiA+IEFub3RoZXIgaWRlYSBpcyB0 byB0cmFpbiB0aGUgbGluayAidXBmcm9udCIgYXQgaG90cGx1ZyB0aW1lLCBiZWZvcmUKPiA+IHBy dW5pbmcgdGhlIG1vZGUgbGlzdCwgc28gdGhhdCB3ZSBjYW4gZG8gdGhlIHBydW5pbmcgYmFzZWQg b24KPiA+IHByYWN0aWNhbCBub3QgdGhlb3JldGljYWwgY2FwYWJpbGl0aWVzLiBIb3dldmVyLCB0 aGUgY2hhbmdlcyBmb3IgbGluawo+ID4gdHJhaW5pbmcgYXJlIHByZXR0eSBkcmFzdGljLCBhbGwg Zm9yIHRoZSBzYWtlIG9mIGVycm9yIGhhbmRsaW5nIGFuZAo+ID4gRFAgY29tcGxpYW5jZSwgd2hl biB0aGUgbW9zdCBjb21tb24gaGFwcHkgZGF5IHNjZW5hcmlvIGlzIHRoZSBjdXJyZW50Cj4gPiBh cHByb2FjaCBvZiBsaW5rIHRyYWluaW5nIGF0IG1vZGUgc2V0dGluZyB0aW1lLCB1c2luZyB0aGUg b3B0aW1hbAo+ID4gcGFyYW1ldGVycyBmb3IgdGhlIG1vZGUuIEl0IGlzIGFsc28gbm90IGNlcnRh aW4gYWxsIGhhcmR3YXJlIGNvdWxkIGRvCj4gPiB0aGlzIHdpdGhvdXQgdGhlIHBpcGUgb247IG5v dCBldmVuIGFsbCBvdXIgaGFyZHdhcmUgY2FuIGRvIHRoaXMuIFNvbWUKPiA+IG9mIHRoaXMgY2Fu IGJlIHNvbHZlZCwgYnV0IG5vdCB0cml2aWFsbHkuCj4gPiAKPiA+IEJvdGggb2YgdGhlIGFib3Zl IGlkZWFzIGFsc28gZmFpbCB0byBhZGRyZXNzIGxpbmsgZGVncmFkYXRpb24gKmR1cmluZyoKPiA+ IG9wZXJhdGlvbi4KPiA+IAo+ID4gVGhlIHNvbHV0aW9uIGlzIHRvIGFkZCBhIG5ldyAibGluay1z dGF0dXMiIGNvbm5lY3RvciBwcm9wZXJ0eSBpbiBvcmRlcgo+ID4gdG8gYWRkcmVzcyBsaW5rIHRy YWluaW5nIGZhaWx1cmUgaW4gYSB3YXkgdGhhdDoKPiA+IGEpIGNoYW5nZXMgdGhlIGN1cnJlbnQg aGFwcHkgZGF5IHNjZW5hcmlvIGFzIGxpdHRsZSBhcyBwb3NzaWJsZSwgdG8KPiA+IGF2b2lkIHJl Z3Jlc3Npb25zLCBiKSBjYW4gYmUgaW1wbGVtZW50ZWQgdGhlIHNhbWUgd2F5IGJ5IGFsbCBkcm0K PiA+IGRyaXZlcnMsIGMpIGlzIHN0aWxsIG9wdC1pbiBmb3IgdGhlIGRyaXZlcnMgYW5kIHVzZXJz cGFjZSwgYW5kIG9wdGluZwo+ID4gb3V0IGRvZXNuJ3QgcmVncmVzcyB0aGUgdXNlciBleHBlcmll bmNlLCBkKSBkb2Vzbid0IHByZXZlbnQgZHJpdmVycwo+ID4gZnJvbSBpbXBsZW1lbnRpbmcgYmV0 dGVyIG9yIGFsdGVybmF0ZSBhcHByb2FjaGVzLCBwb3NzaWJseSB3aXRob3V0Cj4gPiB1c2Vyc3Bh Y2UgaW52b2x2ZW1lbnQuIEFuZCwgb2YgY291cnNlLCBoYW5kbGVzIGFsbCB0aGUgaXNzdWVzIHBy ZXNlbnRlZC4KPiA+IEluIHRoZSB1c3VhbCBoYXBweSBkYXkgc2NlbmFyaW8sIHRoaXMgaXMgYWx3 YXlzICJnb29kIi4gSWYgc29tZXRoaW5nCj4gPiBmYWlscyBkdXJpbmcgb3IgYWZ0ZXIgYSBtb2Rl IHNldCwgdGhlIGtlcm5lbCBkcml2ZXIgY2FuIHNldCB0aGUgbGluawo+ID4gc3RhdHVzIHRvICJi YWQiIGFuZCBpc3N1ZSBhIGhvdHBsdWcgdWV2ZW50IGZvciB1c2Vyc3BhY2UgdG8gaGF2ZSBpdAo+ ID4gcmUtY2hlY2sgdGhlIHZhbGlkIG1vZGVzIHRocm91Z2ggR0VUX0NPTk5FQ1RPUiBJT0NUTCwg YW5kIHRyeSBtb2Rlc2V0Cj4gPiBhZ2Fpbi4gSWYgdGhlIHRoZW9yZXRpY2FsIGNhcGFiaWxpdGll cyBvZiB0aGUgbGluayBjYW4ndCBiZSByZWFjaGVkLAo+ID4gdGhlIG1vZGUgbGlzdCBpcyB0cmlt bWVkIGJhc2VkIG9uIHRoYXQuCj4gPiAKPiA+IHY0Ogo+ID4gKiBBZGQgY29tbWVudHMgaW4ga2Vy bmVsLWRvYyBmb3JtYXQgKERhbmllbCBWZXR0ZXIpCj4gPiAqIFVwZGF0ZSB0aGUga2VybmVsLWRv YyBmb3IgbGluay1zdGF0dXMgKFNlYW4gUGF1bCkKPiA+IHYzOgo+ID4gKiBGaXhlZCBhIGJ1aWxk IGVycm9yIChKYW5pIFNhYXJpbmVuKQo+ID4gdjI6Cj4gPiAqIFJlbW92ZWQgY29ubmVjdG9yLT5s aW5rX3N0YXR1cyAoRGFuaWVsIFZldHRlcikKPiA+ICogU2V0IGNvbm5lY3Rvci0+c3RhdGUtPmxp bmtfc3RhdHVzIGluIGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfbGlua19zdGF0dXNfcHJvcGVydHkK PiA+IChEYW5pZWwgVmV0dGVyKQo+ID4gKiBTZXQgdGhlIGNvbm5lY3Rvcl9jaGFuZ2VkIGZsYWcg dG8gdHJ1ZSBpZiBjb25uZWN0b3ItPnN0YXRlLT5saW5rX3N0YXR1cyBjaGFuZ2VkLgo+ID4gKiBS ZXNldCBsaW5rX3N0YXR1cyB0byBHT09EIGluIHVwZGF0ZV9vdXRwdXRfc3RhdGUgKERhbmllbCBW ZXR0ZXIpCj4gPiAqIE5ldmVyIGFsbG93IHVzZXJzcGFjZSB0byBzZXQgbGluayBzdGF0dXMgZnJv bSBHb29kIFRvIEJhZCAoRGFuaWVsIFZldHRlcikKPiA+IAo+ID4gQWNrZWQtYnk6IFRvbnkgQ2hl bmcgPHRvbnkuY2hlbmdAYW1kLmNvbT4KPiA+IEFja2VkLWJ5OiBIYXJyeSBXZW50bGFuZCA8aGFy cnkud2VudGxhbmRAYW1kLmNvbT4KPiA+IENjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGlu dXguaW50ZWwuY29tPgo+ID4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwu Y29tPgo+ID4gQ2M6IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t Pgo+ID4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+ID4gQ2M6 IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgo+ID4gU2lnbmVkLW9mZi1ieTogTWFu YXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgICAgICAgIHwgMTAgKysrKysrKwo+ID4gIGRyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIHwgIDggKysrKysrCj4gPiAgZHJpdmVycy9ncHUv ZHJtL2RybV9jb25uZWN0b3IuYyAgICAgfCA1NCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystCj4gPiAgaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oICAgICAgICAgfCAxOSAr KysrKysrKysrKysrCj4gPiAgaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmggICAgICAgfCAg NSArKysrCj4gPiAgaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oICAgICAgICAgfCAgNCArKysK PiA+ICA2IGZpbGVzIGNoYW5nZWQsIDk5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiA+ IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gPiBpbmRleCA4OTczN2U0Li45OTBmMDEzIDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWMuYwo+ID4gQEAgLTEwODcsNiArMTA4NywxNCBAQCBpbnQgZHJtX2F0 b21pY19jb25uZWN0b3Jfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsCj4gPiAgCQkgKiBub3c/KSBhdG9taWMgd3JpdGVzIHRvIERQTVMgcHJvcGVydHk6Cj4gPiAg CQkgKi8KPiA+ICAJCXJldHVybiAtRUlOVkFMOwo+ID4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09 IGNvbmZpZy0+bGlua19zdGF0dXNfcHJvcGVydHkpIHsKPiA+ICsJCS8qIE5ldmVyIGRvd25ncmFk ZSBmcm9tIEdPT0QgdG8gQkFEIG9uIHVzZXJzcGFjZSdzIHJlcXVlc3QgaGVyZSwKPiA+ICsJCSAq IG9ubHkgaHcgaXNzdWVzIGNhbiBkbyB0aGF0Lgo+ID4gKwkJICovCj4gPiArCQlpZiAoc3RhdGUt Pmxpbmtfc3RhdHVzID09IERSTV9MSU5LX1NUQVRVU19HT09EKQo+ID4gKwkJCXJldHVybiAwOwo+ ID4gKwkJc3RhdGUtPmxpbmtfc3RhdHVzID0gdmFsOwo+ID4gKwkJcmV0dXJuIDA7Cj4gPiAgCX0g ZWxzZSBpZiAoY29ubmVjdG9yLT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eSkgewo+ID4gIAkJ cmV0dXJuIGNvbm5lY3Rvci0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkoY29ubmVjdG9yLAo+ ID4gIAkJCQlzdGF0ZSwgcHJvcGVydHksIHZhbCk7Cj4gPiBAQCAtMTEzNSw2ICsxMTQzLDggQEAg c3RhdGljIHZvaWQgZHJtX2F0b21pY19jb25uZWN0b3JfcHJpbnRfc3RhdGUoc3RydWN0IGRybV9w cmludGVyICpwLAo+ID4gIAkJKnZhbCA9IChzdGF0ZS0+Y3J0YykgPyBzdGF0ZS0+Y3J0Yy0+YmFz ZS5pZCA6IDA7Cj4gPiAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5kcG1zX3Byb3Bl cnR5KSB7Cj4gPiAgCQkqdmFsID0gY29ubmVjdG9yLT5kcG1zOwo+ID4gKwl9IGVsc2UgaWYgKHBy b3BlcnR5ID09IGNvbmZpZy0+bGlua19zdGF0dXNfcHJvcGVydHkpIHsKPiA+ICsJCSp2YWwgPSBz dGF0ZS0+bGlua19zdGF0dXM7Cj4gPiAgCX0gZWxzZSBpZiAoY29ubmVjdG9yLT5mdW5jcy0+YXRv bWljX2dldF9wcm9wZXJ0eSkgewo+ID4gIAkJcmV0dXJuIGNvbm5lY3Rvci0+ZnVuY3MtPmF0b21p Y19nZXRfcHJvcGVydHkoY29ubmVjdG9yLAo+ID4gIAkJCQlzdGF0ZSwgcHJvcGVydHksIHZhbCk7 Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ID4gaW5kZXggNDk0NjgwYy4uOTYy ZWQ2NiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5j Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ID4gQEAgLTUx OSw2ICs1MTksMTMgQEAgc3RhdGljIGludCBoYW5kbGVfY29uZmxpY3RpbmdfZW5jb2RlcnMoc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ID4gIAkJCQkJICAgICAgIGNvbm5lY3Rvcl9z dGF0ZSk7Cj4gPiAgCQlpZiAocmV0KQo+ID4gIAkJCXJldHVybiByZXQ7Cj4gPiArCQlpZiAoY29u bmVjdG9yLT5zdGF0ZS0+Y3J0Yykgewo+ID4gKwkJCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dl dF9leGlzdGluZ19jcnRjX3N0YXRlKHN0YXRlLAo+ID4gKwkJCQkJCQkJCWNvbm5lY3Rvci0+c3Rh dGUtPmNydGMpOwo+ID4gKwkJCWlmIChjb25uZWN0b3ItPnN0YXRlLT5saW5rX3N0YXR1cyAhPQo+ ID4gKwkJCSAgICBjb25uZWN0b3Jfc3RhdGUtPmxpbmtfc3RhdHVzKQo+ID4gKwkJCQljcnRjX3N0 YXRlLT5jb25uZWN0b3JzX2NoYW5nZWQgPSB0cnVlOwo+ID4gKwkJfQo+IAo+IFNlZSBteSBwcmV2 aW91cyByZXZpZXcsIHRoaXMgbG9va3Mgc2hvdWxkIGltbyBiZSBtb3ZlZCB0byBhIG1vcmUgb2J2 aW91cwo+IHBsYWNlIHRoYW4gaGlkZGVuIGRlZXAgZG93biBpbiB0aGUgY2FsbGNoYWluLgo+IAo+ ID4gIAl9CgpZZXMgSSBoYXZlIGxvb2tlZCBhdCB5b3VyIHByZXZpb3VzIHJldmlldyBhbmQgdGhp cyBpcyBpbnNpZGUgZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfbW9kZXNldCgpCmZ1bmN0aW9uIGp1 c3QgaW5zaWRlIHRoZSBjb25uZWN0b3JzIGxvb3AuIEl0cyBub3QgaW4gdGhlIGhhbmRsZV9jb25m bGljdGluZ19lbmNvZGVycyBmdW5jdGlvbi4KSXRzIHdlaXJkIHRoYXQgaW4gdGhlIGRpZmYgaXQg aXMgc2hvd2luZyB1cCBoZXJlLiAKSWYgeW91IHB1bGwgdGhlIHBhdGNoIHlvdSB3aWxsIHNlZSB0 aGF0IGl0IGlzIHdyaXR0ZW4gYXMgZm9sbG93czoKCmZvcl9lYWNoX2Nvbm5lY3Rvcl9pbl9zdGF0 ZShzdGF0ZSwgY29ubmVjdG9yLCBjb25uZWN0b3Jfc3RhdGUsIGkpIHsKICAgICAgICAgICAgICAg IC8qCiAgICAgICAgICAgICAgICAgKiBUaGlzIG9ubHkgc2V0cyBjcnRjLT5jb25uZWN0b3JzX2No YW5nZWQgZm9yIHJvdXRpbmcgY2hhbmdlcywKICAgICAgICAgICAgICAgICAqIGRyaXZlcnMgbXVz dCBzZXQgY3J0Yy0+Y29ubmVjdG9yc19jaGFuZ2VkIHRoZW1zZWx2ZXMgd2hlbgogICAgICAgICAg ICAgICAgICogY29ubmVjdG9yIHByb3BlcnRpZXMgbmVlZCB0byBiZSB1cGRhdGVkLgogICAgICAg ICAgICAgICAgICovCiAgICAgICAgICAgICAgICByZXQgPSB1cGRhdGVfY29ubmVjdG9yX3JvdXRp bmcoc3RhdGUsIGNvbm5lY3RvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25uZWN0b3Jfc3RhdGUpOwogICAgICAgICAgICAgICAgaWYgKHJldCkKICAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKICAgICAgICAgICAgICAgIGlmIChjb25u ZWN0b3ItPnN0YXRlLT5jcnRjKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNydGNfc3RhdGUg PSBkcm1fYXRvbWljX2dldF9leGlzdGluZ19jcnRjX3N0YXRlKHN0YXRlLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25uZWN0b3ItPnN0YXRlLT5jcnRjKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNv bm5lY3Rvci0+c3RhdGUtPmxpbmtfc3RhdHVzICE9CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25uZWN0b3Jfc3RhdGUtPmxpbmtfc3RhdHVzKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNydGNfc3RhdGUtPmNvbm5lY3RvcnNfY2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAg ICAgICB9CiAgICAgICAgfQoKSXMgdGhpcyBjb3JyZWN0PwoKTWFuYXNpCj4gPiAgCj4gPiAgCS8q Cj4gPiBAQCAtMjI1OCw2ICsyMjY1LDcgQEAgc3RhdGljIGludCB1cGRhdGVfb3V0cHV0X3N0YXRl KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiA+ICAJCQkJCQkJCU5VTEwpOwo+ID4g IAkJCWlmIChyZXQpCj4gPiAgCQkJCXJldHVybiByZXQ7Cj4gPiArCQkJY29ubl9zdGF0ZS0+bGlu a19zdGF0dXMgPSBEUk1fTElOS19TVEFUVVNfR09PRDsKPiAKPiBJaXJjIGluIG91ciBkaXNjdXNz aW9uIHdlIHNhaWQgYSBzbWFsbCBjb21tZW50IGhlcmUgd291bGQgYmUgZ29vZCwgbGlrZQo+IAo+ IAkJCS8qIE1ha2Ugc3VyZSBsZWdhY3kgc2V0Q3J0YyBhbHdheXMgcmUtdHJhaW5zLiAqLwo+IAo+ IE1pZ2h0IGFsc28gYmUgZ29vZCB0byB1cGRhdGUgdGhlIGtlcm5lbC1kb2Mgb2YKPiBkcm1fYXRv bWljX2hlbHBlcl9zZXRfY29uZmlnKCkuIFNvbWV0aGluZyBsaWtlCj4gCj4gICogTk9URTogRm9y IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggb2xkIHVzZXJzcGFjZSB0aGlzIGF1dG9tYXRp Y2FsbHkKPiAgKiByZXNldHMgdGhlICJsaW5rLXN0YXR1cyIgcHJvcGVydHkgdG8gR09PRCwgdG8g Zm9yY2UgYW55IGxpbmsKPiAgKiByZS10cmFpbmluZy4gVGhlIFNFVENSVEMgaW9jdGwgZG9lcyBu b3QgZGVmaW5lIHdoZXRoZXIgYW4gdXBkYXRlIGRvZXMKPiAgKiBuZWVkIGEgZnVsbCBtb2Rlc2V0 IG9yIGp1c3QgYSBwbGFuZSB1cGRhdGUsIGhlbmNlIHdlJ3JlIGFsbG93ZWQgdG8gZG8KPiAgKiB0 aGF0LiBTZWUgYWxzbyBkcm1fbW9kZV9jb25uZWN0b3Jfc2V0X2xpbmtfc3RhdHVzX3Byb3BlcnR5 KCkuCj4gICogCj4gCj4gPiAgCQl9Cj4gPiAgCX0KPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0 b3IuYwo+ID4gaW5kZXggNWE0NTI2Mi4uODkwMjM2NyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29u bmVjdG9yLmMKPiA+IEBAIC0yNDMsNiArMjQzLDEwIEBAIGludCBkcm1fY29ubmVjdG9yX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICAJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHko JmNvbm5lY3Rvci0+YmFzZSwKPiA+ICAJCQkJICAgICAgY29uZmlnLT5kcG1zX3Byb3BlcnR5LCAw KTsKPiA+ICAKPiA+ICsJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFz ZSwKPiA+ICsJCQkJICAgY29uZmlnLT5saW5rX3N0YXR1c19wcm9wZXJ0eSwKPiA+ICsJCQkJICAg MCk7Cj4gPiArCj4gPiAgCWlmIChkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX0FU T01JQykpIHsKPiA+ICAJCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJh c2UsIGNvbmZpZy0+cHJvcF9jcnRjX2lkLCAwKTsKPiA+ICAJfQo+ID4gQEAgLTUwNiw2ICs1MTAs MTIgQEAgY29uc3QgY2hhciAqZHJtX2dldF9zdWJwaXhlbF9vcmRlcl9uYW1lKGVudW0gc3VicGl4 ZWxfb3JkZXIgb3JkZXIpCj4gPiAgfTsKPiA+ICBEUk1fRU5VTV9OQU1FX0ZOKGRybV9nZXRfZHBt c19uYW1lLCBkcm1fZHBtc19lbnVtX2xpc3QpCj4gPiAgCj4gPiArc3RhdGljIGNvbnN0IHN0cnVj dCBkcm1fcHJvcF9lbnVtX2xpc3QgZHJtX2xpbmtfc3RhdHVzX2VudW1fbGlzdFtdID0gewo+ID4g Kwl7IERSTV9NT0RFX0xJTktfU1RBVFVTX0dPT0QsICJHb29kIiB9LAo+ID4gKwl7IERSTV9NT0RF X0xJTktfU1RBVFVTX0JBRCwgIkJhZCIgfSwKPiA+ICt9Owo+ID4gK0RSTV9FTlVNX05BTUVfRk4o ZHJtX2dldF9saW5rX3N0YXR1c19uYW1lLCBkcm1fbGlua19zdGF0dXNfZW51bV9saXN0KQo+ID4g Kwo+ID4gIC8qKgo+ID4gICAqIGRybV9kaXNwbGF5X2luZm9fc2V0X2J1c19mb3JtYXRzIC0gc2V0 IHRoZSBzdXBwb3J0ZWQgYnVzIGZvcm1hdHMKPiA+ICAgKiBAaW5mbzogZGlzcGxheSBpbmZvIHRv IHN0b3JlIGJ1cyBmb3JtYXRzIGluCj4gPiBAQCAtNjI1LDcgKzYzNSwxMSBAQCBpbnQgZHJtX2Rp c3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMoc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmluZm8s Cj4gPiAgICogCXRpbGluZyBhbmQgdmlydHVhbGl6ZSBib3RoICZkcm1fY3J0YyBhbmQgJmRybV9w bGFuZSBpZiBuZWVkZWQuIERyaXZlcnMKPiA+ICAgKiAJc2hvdWxkIHVwZGF0ZSB0aGlzIHZhbHVl IHVzaW5nIGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfdGlsZV9wcm9wZXJ0eSgpLgo+ID4gICAqIAlV c2Vyc3BhY2UgY2Fubm90IGNoYW5nZSB0aGlzIHByb3BlcnR5Lgo+ID4gLSAqCj4gCj4gT25lIG1v cmUgZnJvbSBsYXN0IHJvdW5kOiBQbGVhc2UgbGVhdmUgdGhpcyB3aGl0ZXNwYWNlIGludGFjdCAu Li4KPiAKPiA+ICsgKiBsaW5rLXN0YXR1czoKPiA+ICsgKiAgICAgIENvbm5lY3RvciBsaW5rLXN0 YXR1cyBwcm9wZXJ0eSB0byBpbmRpY2F0ZSB0aGUgc3RhdHVzIG9mIGxpbmsuIFRoZSBkZWZhdWx0 Cj4gPiArICogICAgICB2YWx1ZSBvZiBsaW5rLXN0YXR1cyBpcyAiR09PRCIuIElmIHNvbWV0aGlu ZyBmYWlscyBkdXJpbmcgb3IgYWZ0ZXIgbW9kZXNldCwKPiA+ICsgKiAgICAgIHRoZSBrZXJuZWwg ZHJpdmVyIG1heSBzZXQgdGhpcyB0byAiQkFEIiBhbmQgaXNzdWUgYSBob3RwbHVnIHVldmVudC4g RHJpdmVycwo+ID4gKyAqICAgICAgc2hvdWxkIHVwZGF0ZSB0aGlzIHZhbHVlIHVzaW5nIGRybV9t b2RlX2Nvbm5lY3Rvcl9zZXRfbGlua19zdGF0dXNfcHJvcGVydHkoKS4KPiAKPiAuLi4gYW5kIGFk ZCBhbiBlbXB0eSBsaW5lIGhlcmUuCj4gCj4gPiAgICogQ29ubmVjdG9ycyBhbHNvIGhhdmUgb25l IHN0YW5kYXJkaXplZCBhdG9taWMgcHJvcGVydHk6Cj4gPiAgICoKPiA+ICAgKiBDUlRDX0lEOgo+ ID4gQEAgLTY2Niw2ICs2ODAsMTMgQEAgaW50IGRybV9jb25uZWN0b3JfY3JlYXRlX3N0YW5kYXJk X3Byb3BlcnRpZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICAJCXJldHVybiAtRU5PTUVN Owo+ID4gIAlkZXYtPm1vZGVfY29uZmlnLnRpbGVfcHJvcGVydHkgPSBwcm9wOwo+ID4gIAo+ID4g Kwlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9lbnVtKGRldiwgMCwgImxpbmstc3RhdHVzIiwK PiA+ICsJCQkJCWRybV9saW5rX3N0YXR1c19lbnVtX2xpc3QsCj4gPiArCQkJCQlBUlJBWV9TSVpF KGRybV9saW5rX3N0YXR1c19lbnVtX2xpc3QpKTsKPiA+ICsJaWYgKCFwcm9wKQo+ID4gKwkJcmV0 dXJuIC1FTk9NRU07Cj4gPiArCWRldi0+bW9kZV9jb25maWcubGlua19zdGF0dXNfcHJvcGVydHkg PSBwcm9wOwo+ID4gKwo+ID4gIAlyZXR1cm4gMDsKPiA+ICB9Cj4gPiAgCj4gPiBAQCAtOTk1LDYg KzEwMTYsMzcgQEAgaW50IGRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gIH0KPiA+ICBFWFBPUlRfU1lNQk9M KGRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eSk7Cj4gPiAgCj4gPiArLyoq Cj4gPiArICogZHJtX21vZGVfY29ubmVjdG9yX3NldF9saW5rX3N0YXR1c19wcm9wZXJ0eSAtIFNl dCBsaW5rIHN0YXR1cyBwcm9wZXJ0eSBvZiBhIGNvbm5lY3Rvcgo+ID4gKyAqIEBjb25uZWN0b3I6 IGRybSBjb25uZWN0b3IKPiA+ICsgKiBAbGlua19zdGF0dXM6IG5ldyB2YWx1ZSBvZiBsaW5rIHN0 YXR1cyBwcm9wZXJ0eSAoMDogR29vZCwgMTogQmFkKQo+ID4gKyAqCj4gPiArICogSW4gdXN1YWwg d29ya2luZyBzY2VuYXJpbywgdGhpcyBsaW5rIHN0YXR1cyBwcm9wZXJ0eSB3aWxsIGFsd2F5cyBi ZSBzZXQgdG8KPiA+ICsgKiAiR09PRCIuIElmIHNvbWV0aGluZyBmYWlscyBkdXJpbmcgb3IgYWZ0 ZXIgYSBtb2RlIHNldCwgdGhlIGtlcm5lbCBkcml2ZXIKPiA+ICsgKiBtYXkgc2V0IHRoaXMgbGlu ayBzdGF0dXMgcHJvcGVydHkgdG8gIkJBRCIuIFRoZSBjYWxsZXIgdGhlbiBuZWVkcyB0byBzZW5k IGEKPiA+ICsgKiBob3RwbHVnIHVldmVudCBmb3IgdXNlcnNwYWNlIHRvIHJlLWNoZWNrIHRoZSB2 YWxpZCBtb2RlcyB0aHJvdWdoCj4gPiArICogR0VUX0NPTk5FQ1RPUl9JT0NUTCBhbmQgcmV0cnkg bW9kZXNldC4KPiA+ICsgKgo+ID4gKyAqIE5vdGU6IERyaXZlcnMgY2Fubm90IHJlbHkgb24gdXNl cnNwYWNlIHRvIHN1cHBvcnQgdGhpcyBwcm9wZXJ0eSBhbmQKPiA+ICsgKiBpc3N1ZSBhIG1vZGVz ZXQuIEFzIHN1Y2gsIHRoZXkgbWF5IGNob29zZSB0byBoYW5kbGUgaXNzdWVzIChsaWtlCj4gPiAr ICogcmUtdHJhaW5pbmcgYSBsaW5rKSB3aXRob3V0IHVzZXJzcGFjZSdzIGludGVydmVudGlvbi4K PiA+ICsgKgo+ID4gKyAqIFRoZSByZWFzb24gZm9yIGFkZGluZyB0aGlzIHByb3BlcnR5IGlzIHRv IGhhbmRsZSBsaW5rIHRyYWluaW5nIGZhaWx1cmVzLCBidXQKPiA+ICsgKiBpdCBpcyBub3QgbGlt aXRlZCB0byBEUCBvciBsaW5rIHRyYWluaW5nLiBGb3IgZXhhbXBsZSwgaWYgd2UgaW1wbGVtZW50 Cj4gPiArICogYXN5bmNocm9ub3VzIHNldGNydGMsIHRoaXMgcHJvcGVydHkgY2FuIGJlIHVzZWQg dG8gcmVwb3J0IGFueSBmYWlsdXJlcyBpbiB0aGF0Lgo+ID4gKyAqLwo+ID4gK3ZvaWQgZHJtX21v ZGVfY29ubmVjdG9yX3NldF9saW5rX3N0YXR1c19wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLAo+IAo+IEhtLCB0aW55IG5ldyBiaWtlc2hlZDogSSdkIGRyb3AgdGhlIF9w cm9wZXJ0eSBwb3N0Zml4IGhlcmUuIFRoZSBmdW5jdGlvbgo+IG5hbWUgaXMgYWxyZWFkeSByZWFs bHkgbG9uZyBhcy1pcywgYW5kIHRoZSBmYWN0IHRoYXQgdGhlIGxpbmsgc3RhdHVzIGlzCj4gZXhw b3NlZCBhcyBhIHByb3BlcnR5IGlzIGtpbmRhIGlycmVsZXZhbnQgZm9yIGtlcm5lbCBkcml2ZXIg d3JpdGVycy4gQnV0Cj4gdXAgdG8geW91Lgo+IC1EYW5pZWwKPiAKPiA+ICsJCQkJCQkgdWludDY0 X3QgbGlua19zdGF0dXMpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29u bmVjdG9yLT5kZXY7Cj4gPiArCj4gPiArCWRybV9tb2Rlc2V0X2xvY2soJmRldi0+bW9kZV9jb25m aWcuY29ubmVjdGlvbl9tdXRleCwgTlVMTCk7Cj4gPiArCWNvbm5lY3Rvci0+c3RhdGUtPmxpbmtf c3RhdHVzID0gbGlua19zdGF0dXM7Cj4gPiArCWRybV9tb2Rlc2V0X3VubG9jaygmZGV2LT5tb2Rl X2NvbmZpZy5jb25uZWN0aW9uX211dGV4KTsKPiA+ICsKPiA+ICt9Cj4gPiArRVhQT1JUX1NZTUJP TChkcm1fbW9kZV9jb25uZWN0b3Jfc2V0X2xpbmtfc3RhdHVzX3Byb3BlcnR5KTsKPiA+ICsKPiA+ ICBpbnQgZHJtX21vZGVfY29ubmVjdG9yX3NldF9vYmpfcHJvcChzdHJ1Y3QgZHJtX21vZGVfb2Jq ZWN0ICpvYmosCj4gPiAgCQkJCSAgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKPiA+ ICAJCQkJICAgIHVpbnQ2NF90IHZhbHVlKQo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2Ry bV9jb25uZWN0b3IuaCBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+ID4gaW5kZXggMzRm OTc0MS4uNTNjNWY3MCAxMDA2NDQKPiA+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3Iu aAo+ID4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gPiBAQCAtOTAsNiArOTAs MTcgQEAgZW51bSBzdWJwaXhlbF9vcmRlciB7Cj4gPiAgfTsKPiA+ICAKPiA+ICAvKioKPiA+ICsg KiBlbnVtIGRybV9saW5rX3N0YXR1cyAtIGNvbm5lY3RvcidzIGxpbmtfc3RhdHVzIHByb3BlcnR5 IHZhbHVlCj4gPiArICoKPiA+ICsgKiBUaGlzIGVudW0gaXMgdXNlZCBhcyB0aGUgY29ubmVjdG9y J3MgbGluayBzdGF0dXMgcHJvcGVydHkgdmFsdWUuCj4gPiArICogSXQgaXMgc2V0IHRvIHRoZSB2 YWx1ZXMgZGVmaW5lZCBpbiB1YXBpLgo+ID4gKyAqLwo+ID4gK2VudW0gZHJtX2xpbmtfc3RhdHVz IHsKPiA+ICsJRFJNX0xJTktfU1RBVFVTX0dPT0QgPSBEUk1fTU9ERV9MSU5LX1NUQVRVU19HT09E LAo+ID4gKwlEUk1fTElOS19TVEFUVVNfQkFEID0gRFJNX01PREVfTElOS19TVEFUVVNfQkFELAo+ ID4gK307Cj4gPiArCj4gPiArLyoqCj4gPiAgICogc3RydWN0IGRybV9kaXNwbGF5X2luZm8gLSBy dW50aW1lIGRhdGEgYWJvdXQgdGhlIGNvbm5lY3RlZCBzaW5rCj4gPiAgICoKPiA+ICAgKiBEZXNj cmliZXMgYSBnaXZlbiBkaXNwbGF5IChlLmcuIENSVCBvciBmbGF0IHBhbmVsKSBhbmQgaXRzIGxp bWl0YXRpb25zLiBGb3IKPiA+IEBAIC0yMTMsNiArMjI0LDEyIEBAIHN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlIHsKPiA+ICAKPiA+ICAJc3RydWN0IGRybV9lbmNvZGVyICpiZXN0X2VuY29kZXI7 Cj4gPiAgCj4gPiArCS8qKgo+ID4gKwkgKiBAbGlua19zdGF0dXM6IENvbm5lY3RvciBsaW5rX3N0 YXR1cyB0byBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgbGluayBpcwo+ID4gKwkgKiBHT09EIG9yIEJB RCB0byBub3RpZnkgdXNlcnNwYWNlIGlmIHJldHJhaW5pbmcgaXMgbmVjZXNzYXJ5Lgo+ID4gKwkg Ki8KPiA+ICsJZW51bSBkcm1fbGlua19zdGF0dXMgbGlua19zdGF0dXM7Cj4gPiArCj4gPiAgCXN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPiA+ICB9Owo+ID4gIAo+ID4gQEAgLTc3Myw2 ICs3OTAsOCBAQCBpbnQgZHJtX21vZGVfY29ubmVjdG9yX3NldF9wYXRoX3Byb3BlcnR5KHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiAgaW50IGRybV9tb2RlX2Nvbm5lY3Rvcl9z ZXRfdGlsZV9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPiA+ICBp bnQgZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsCj4gPiAgCQkJCQkgICAgY29uc3Qgc3RydWN0IGVkaWQgKmVkaWQp Owo+ID4gK3ZvaWQgZHJtX21vZGVfY29ubmVjdG9yX3NldF9saW5rX3N0YXR1c19wcm9wZXJ0eShz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gKwkJCQkJCSB1aW50NjRfdCBsaW5r X3N0YXR1cyk7Cj4gPiAgCj4gPiAgLyoqCj4gPiAgICogc3RydWN0IGRybV90aWxlX2dyb3VwIC0g VGlsZSBncm91cCBtZXRhZGF0YQo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9tb2Rl X2NvbmZpZy5oIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKPiA+IGluZGV4IGJmOTk5 MWIuLjg2ZmFlZTQgMTAwNjQ0Cj4gPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcu aAo+ID4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKPiA+IEBAIC00MzEsNiAr NDMxLDExIEBAIHN0cnVjdCBkcm1fbW9kZV9jb25maWcgewo+ID4gIAkgKi8KPiA+ICAJc3RydWN0 IGRybV9wcm9wZXJ0eSAqdGlsZV9wcm9wZXJ0eTsKPiA+ICAJLyoqCj4gPiArCSAqIEBsaW5rX3N0 YXR1c19wcm9wZXJ0eTogRGVmYXVsdCBjb25uZWN0b3IgcHJvcGVydHkgZm9yIGxpbmsgc3RhdHVz Cj4gPiArCSAqIG9mIGEgY29ubmVjdG9yCj4gPiArCSAqLwo+ID4gKwlzdHJ1Y3QgZHJtX3Byb3Bl cnR5ICpsaW5rX3N0YXR1c19wcm9wZXJ0eTsKPiA+ICsJLyoqCj4gPiAgCSAqIEBwbGFuZV90eXBl X3Byb3BlcnR5OiBEZWZhdWx0IHBsYW5lIHByb3BlcnR5IHRvIGRpZmZlcmVudGlhdGUKPiA+ICAJ ICogQ1VSU09SLCBQUklNQVJZIGFuZCBPVkVSTEFZIGxlZ2FjeSB1c2VzIG9mIHBsYW5lcy4KPiA+ ICAJICovCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIGIvaW5j bHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCj4gPiBpbmRleCA3Mjg3OTBiLi4zMDljNDc4IDEwMDY0 NAo+ID4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCj4gPiArKysgYi9pbmNsdWRl L3VhcGkvZHJtL2RybV9tb2RlLmgKPiA+IEBAIC0xMjMsNiArMTIzLDEwIEBACj4gPiAgI2RlZmlu ZSBEUk1fTU9ERV9ESVJUWV9PTiAgICAgICAxCj4gPiAgI2RlZmluZSBEUk1fTU9ERV9ESVJUWV9B Tk5PVEFURSAyCj4gPiAgCj4gPiArLyogTGluayBTdGF0dXMgb3B0aW9ucyAqLwo+ID4gKyNkZWZp bmUgRFJNX01PREVfTElOS19TVEFUVVNfR09PRAkwCj4gPiArI2RlZmluZSBEUk1fTU9ERV9MSU5L X1NUQVRVU19CQUQJMQo+ID4gKwo+ID4gIHN0cnVjdCBkcm1fbW9kZV9tb2RlaW5mbyB7Cj4gPiAg CV9fdTMyIGNsb2NrOwo+ID4gIAlfX3UxNiBoZGlzcGxheTsKPiA+IC0tIAo+ID4gMS45LjEKPiA+ IAo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cj4gCj4gLS0gCj4gRGFuaWVsIFZldHRlcgo+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRl bCBDb3Jwb3JhdGlvbgo+IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4g ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=