From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v8 07/19] drm/i915/dp: Compute DSC pipe config in atomic check Date: Tue, 6 Nov 2018 16:42:56 +0200 Message-ID: <20181106144256.GX9144@intel.com> References: <20181102213138.301-1-manasi.d.navare@intel.com> <20181102213138.301-8-manasi.d.navare@intel.com> <20181103020902.GA11271@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20181103020902.GA11271@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Manasi Navare Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBOb3YgMDIsIDIwMTggYXQgMDc6MDk6MDNQTSAtMDcwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBPbiBGcmksIE5vdiAwMiwgMjAxOCBhdCAwMjozMToyNlBNIC0wNzAwLCBNYW5hc2kg TmF2YXJlIHdyb3RlOgo+ID4gRFNDIHBhcmFtcyBsaWtlIHRoZSBlbmFibGUsIGNvbXByZXNzZWQg YnBwLCBzbGljZSBjb3VudCBhbmQKPiA+IGRzY19zcGxpdCBhcmUgYWRkZWQgdG8gdGhlIGludGVs X2NydGNfc3RhdGUuIFRoZXNlIHBhcmFtZXRlcnMKPiA+IGFyZSBzZXQgYmFzZWQgb24gdGhlIHJl cXVlc3RlZCBtb2RlIGFuZCBhdmFpbGFibGUgbGluayBwYXJhbWV0ZXJzCj4gPiBkdXJpbmcgdGhl IHBpcGUgY29uZmlndXJhdGlvbiBpbiBhdG9taWMgY2hlY2sgcGhhc2UuCj4gPiBUaGVzZSB2YWx1 ZXMgYXJlIHRoZW4gbGF0ZXIgdXNlZCB0byBwb3B1bGF0ZSB0aGUgcmVtYWluaW5nIERTQwo+ID4g YW5kIFJDIHBhcmFtZXRlcnMgYmVmb3JlIGVuYmFsaW5nIERTQyBpbiBhdG9taWMgY29tbWl0Lgo+ ID4gCj4gPiB2MTE6Cj4gPiAqIENvbnN0IGNydGNfc3RhdGUsIHJlamVjdCBEU0Mgb24gRFAgd2l0 aG91dCBGRUMgKFZpbGxlKQo+ID4gKiBEb250IHNldCBkc2Nfc3BsaXQgdG8gZmFsc2UgKFZpbGxl KQo+ID4gdjEwOgo+ID4gKiBBZGQgYSBoZWxwZXIgZm9yIGRwX2RzYyBzdXBwb3J0IChWaWxsZSkK PiA+ICogU2V0IHBpcGVfY29uZmlnIHRvIG1heCBicHAsIGxpbmsgcGFyYW1zIGZvciBEU0MgZm9y IG5vdyAoVmlsbGUpCj4gPiAqIENvbXB1dGUgYnBwIC0gdXNlIGRwIGRzYyBzdXBwb3J0IGhlbHBl ciAoVmlsbGUpCj4gPiB2OToKPiA+ICogUmViYXNlIG9uIHRvcCBvZiBkcm0tdGlwIHRoYXQgbm93 IHVzZXMgZmFzdF9uYXJyb3cgY29uZmlnCj4gPiBmb3IgZWRwIChNYW5hc2kpCj4gPiB2ODoKPiA+ ICogQ2hlY2sgZm9yIERTQyBicGMgbm90IDAgKG1hbmFzaSkKPiA+IAo+ID4gdjc6Cj4gPiAqIEZp eCBpbmRlbnRhdGlvbiBpbiBjb21wdXRlX21fbiAoTWFuYXNpKQo+ID4gCj4gPiB2NiAoRnJvbSBH YXVyYXYpOgo+ID4gKiBSZW1vdmUgZnVuY3Rpb24gY2FsbCBvZiBpbnRlbF9kcF9jb21wdXRlX2Rz Y19wYXJhbXMoKSBhbmQKPiA+IGludm9rZSBpbnRlbF9kcF9jb21wdXRlX2RzY19wYXJhbXMoKSBp biB0aGUgcGF0Y2ggd2hlcmUKPiA+IGl0IGlzIGRlZmluZWQgdG8gZml4IGNvbXBpbGF0aW9uIHdh cm5pbmcgKEdhdXJhdikKPiA+IAo+ID4gdjU6Cj4gPiBBZGQgZHJtX2RzY19jZmcgaW4gaW50ZWxf Y3J0Y19zdGF0ZSAoTWFuYXNpKQo+ID4gCj4gPiB2NDoKPiA+ICogUmViYXNlIG9uIHJlZmFjdG9y aW5nIG9mIGludGVsX2RwX2NvbXB1dGVfY29uZmlnIG9uIHRpcCAoTWFuYXNpKQo+ID4gKiBBZGQg YSBjb21tZW50IHdoeSB3ZSBuZWVkIHRvIGNoZWNrIFBTUiB3aGlsZSBlbmFibGluZyBEU0MgKEdh dXJhdikKPiA+IAo+ID4gdjM6Cj4gPiAqIENoZWNrIFBQUiA+IG1heF9jZGNsb2NrIHRvIHVzZSAy IFZEU0MgaW5zdGFuY2VzIChWaWxsZSkKPiA+IAo+ID4gdjI6Cj4gPiAqIEFkZCBpZi1lbHNlIGZv ciBlRFAvRFAgKEdhdXJhdikKPiA+IAo+ID4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBs aW51eC5pbnRlbC5jb20+Cj4gPiBDYzogVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51 eC5pbnRlbC5jb20+Cj4gPiBDYzogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50 ZWwuY29tPgo+ID4gQ2M6IEdhdXJhdiBLIFNpbmdoIDxnYXVyYXYuay5zaW5naEBpbnRlbC5jb20+ Cj4gPiBTaWduZWQtb2ZmLWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwu Y29tPgo+ID4gUmV2aWV3ZWQtYnk6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGlu dGVsLmNvbT4KPiA+IEFja2VkLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50 ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j IHwgIDIwICsrKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmggfCAg IDMgKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgfCAxNjcgKysr KysrKysrKysrKysrKysrKysrKysrLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHBfbXN0LmMgIHwgICAyICstCj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAxNjYgaW5zZXJ0aW9ucygr KSwgMjYgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPiA+IGluZGV4IGIyMTlkNTg1ODE2MC4uNDc3ZTUzYzM3MzUzIDEwMDY0NAo+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IEBAIC02NDQyLDcgKzY0NDIsNyBAQCBzdGF0 aWMgaW50IGlyb25sYWtlX2ZkaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YywKPiA+ICAKPiA+ICAJcGlwZV9jb25maWctPmZkaV9sYW5lcyA9IGxhbmU7Cj4gPiAg Cj4gPiAtCWludGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLCBsYW5l LCBmZGlfZG90Y2xvY2ssCj4gPiArCWludGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWct PnBpcGVfYnBwLCAwLCBsYW5lLCBmZGlfZG90Y2xvY2ssCj4gPiAgCQkJICAgICAgIGxpbmtfYncs ICZwaXBlX2NvbmZpZy0+ZmRpX21fbiwgZmFsc2UpOwo+ID4gIAo+ID4gIAlyZXQgPSBpcm9ubGFr ZV9jaGVja19mZGlfbGFuZXMoZGV2LCBpbnRlbF9jcnRjLT5waXBlLCBwaXBlX2NvbmZpZyk7Cj4g PiBAQCAtNjY3OSwxNyArNjY3OSwyNSBAQCBzdGF0aWMgdm9pZCBjb21wdXRlX21fbih1bnNpZ25l ZCBpbnQgbSwgdW5zaWduZWQgaW50IG4sCj4gPiAgfQo+ID4gIAo+ID4gIHZvaWQKPiA+IC1pbnRl bF9saW5rX2NvbXB1dGVfbV9uKGludCBiaXRzX3Blcl9waXhlbCwgaW50IG5sYW5lcywKPiA+ICtp bnRlbF9saW5rX2NvbXB1dGVfbV9uKGludCBiaXRzX3Blcl9waXhlbCwgdWludDE2X3QgY29tcHJl c3NlZF9icHAsCj4gPiArCQkgICAgICAgaW50IG5sYW5lcywKPiA+ICAJCSAgICAgICBpbnQgcGl4 ZWxfY2xvY2ssIGludCBsaW5rX2Nsb2NrLAo+ID4gIAkJICAgICAgIHN0cnVjdCBpbnRlbF9saW5r X21fbiAqbV9uLAo+ID4gIAkJICAgICAgIGJvb2wgY29uc3RhbnRfbikKPiA+ICB7Cj4gPiAgCW1f bi0+dHUgPSA2NDsKPiA+ICAKPiA+IC0JY29tcHV0ZV9tX24oYml0c19wZXJfcGl4ZWwgKiBwaXhl bF9jbG9jaywKPiA+IC0JCSAgICBsaW5rX2Nsb2NrICogbmxhbmVzICogOCwKPiA+IC0JCSAgICAm bV9uLT5nbWNoX20sICZtX24tPmdtY2hfbiwKPiA+IC0JCSAgICBjb25zdGFudF9uKTsKPiA+ICsJ LyogRm9yIERTQywgRGF0YSBNL04gY2FsY3VsYXRpb24gdXNlcyBjb21wcmVzc2VkIEJQUCAqLwo+ ID4gKwlpZiAoY29tcHJlc3NlZF9icHApCj4gPiArCQljb21wdXRlX21fbihjb21wcmVzc2VkX2Jw cCAqIHBpeGVsX2Nsb2NrLAo+ID4gKwkJCSAgICBsaW5rX2Nsb2NrICogbmxhbmVzICogOCwKPiA+ ICsJCQkgICAgJm1fbi0+Z21jaF9tLCAmbV9uLT5nbWNoX24sCj4gPiArCQkJICAgIGNvbnN0YW50 X24pOwo+ID4gKwllbHNlCj4gPiArCQljb21wdXRlX21fbihiaXRzX3Blcl9waXhlbCAqIHBpeGVs X2Nsb2NrLAo+ID4gKwkJCSAgICBsaW5rX2Nsb2NrICogbmxhbmVzICogOCwKPiA+ICsJCQkgICAg Jm1fbi0+Z21jaF9tLCAmbV9uLT5nbWNoX24sCj4gPiArCQkJICAgIGNvbnN0YW50X24pOwo+ID4g IAo+ID4gIAljb21wdXRlX21fbihwaXhlbF9jbG9jaywgbGlua19jbG9jaywKPiA+ICAJCSAgICAm bV9uLT5saW5rX20sICZtX24tPmxpbmtfbiwKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmgKPiA+IGluZGV4IDVkNTBkZWNiY2JiNS4uYjBiMjNlMWU5MzkyIDEwMDY0NAo+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5oCj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmgKPiA+IEBAIC00MDcsNyArNDA3LDggQEAgc3Ry dWN0IGludGVsX2xpbmtfbV9uIHsKPiA+ICAJICAgICAoX19pKSsrKSBcCj4gPiAgCQlmb3JfZWFj aF9pZihwbGFuZSkKPiA+ICAKPiA+IC12b2lkIGludGVsX2xpbmtfY29tcHV0ZV9tX24oaW50IGJw cCwgaW50IG5sYW5lcywKPiA+ICt2b2lkIGludGVsX2xpbmtfY29tcHV0ZV9tX24oaW50IGJwcCwg dWludDE2X3QgY29tcHJlc3NlZF9icHAsCj4gPiArCQkJICAgIGludCBubGFuZXMsCj4gPiAgCQkJ ICAgIGludCBwaXhlbF9jbG9jaywgaW50IGxpbmtfY2xvY2ssCj4gPiAgCQkJICAgIHN0cnVjdCBp bnRlbF9saW5rX21fbiAqbV9uLAo+ID4gIAkJCSAgICBib29sIGNvbnN0YW50X24pOwo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBpbmRleCBiMzliNGJkYThlNDAuLjU4MzI2ZmM5ZDkzNSAx MDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+IEBAIC00Nyw2ICs0Nyw4IEBACj4g PiAgCj4gPiAgLyogRFAgRFNDIHNtYWxsIGpvaW5lciBoYXMgMiBGSUZPcyBlYWNoIG9mIDY0MCB4 IDYgYnl0ZXMgKi8KPiA+ICAjZGVmaW5lIERQX0RTQ19NQVhfU01BTExfSk9JTkVSX1JBTV9CVUZG RVIJNjE0NDAKPiA+ICsjZGVmaW5lIERQX0RTQ19NSU5fU1VQUE9SVEVEX0JQQwkJOAo+ID4gKyNk ZWZpbmUgRFBfRFNDX01BWF9TVVBQT1JURURfQlBDCQkxMAo+ID4gIAo+ID4gIC8qIERQIERTQyB0 aHJvdWdocHV0IHZhbHVlcyB1c2VkIGZvciBzbGljZSBjb3VudCBjYWxjdWxhdGlvbnMgS1BpeGVs cy9zICovCj4gPiAgI2RlZmluZSBEUF9EU0NfUEVBS19QSVhFTF9SQVRFCQkJMjcyMDAwMAo+ID4g QEAgLTE4NDAsNiArMTg0MiwyOSBAQCBzdHJ1Y3QgbGlua19jb25maWdfbGltaXRzIHsKPiA+ICAJ aW50IG1pbl9icHAsIG1heF9icHA7Cj4gPiAgfTsKPiA+ICAKPiA+ICtzdGF0aWMgYm9vbCBpbnRl bF9kcF9zb3VyY2Vfc3VwcG9ydHNfZHNjKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAr CQkJCQkgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ID4gK3sK PiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRl bF9kcCk7Cj4gPiArCj4gPiArCS8qIEZJWE1FOiBGRUMgbmVlZGVkIGZvciBleHRlcm5hbCBEUCB1 bnRpbCB0aGVuIHJlamVjdCBEU0Mgb24gRFAgKi8KPiA+ICsJaWYgKCFpbnRlbF9kcF9pc19lZHAo aW50ZWxfZHApKQo+ID4gKwkJcmV0dXJuIGZhbHNlOwo+ID4gKwo+ID4gKwlyZXR1cm4gSU5URUxf R0VOKGRldl9wcml2KSA+PSAxMCAmJgo+ID4gKwkJcGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVy ICE9IFRSQU5TQ09ERVJfQTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGJvb2wgaW50ZWxfZHBf c3VwcG9ydHNfZHNjKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiArCQkJCSAgY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ID4gK3sKPiA+ICsJaWYgKCFp bnRlbF9kcF9zb3VyY2Vfc3VwcG9ydHNfZHNjKGludGVsX2RwLCBwaXBlX2NvbmZpZykgfHwKPiA+ ICsJICAgICFkcm1fZHBfc2lua19zdXBwb3J0c19kc2MoaW50ZWxfZHAtPmRzY19kcGNkKSkKPiA+ ICsJCXJldHVybiBmYWxzZTsKPiA+ICsKPiA+ICsJcmV0dXJuIHRydWU7Cj4gPiArfQo+ID4gKwo+ ID4gIHN0YXRpYyBpbnQgaW50ZWxfZHBfY29tcHV0ZV9icHAoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCwKPiA+ICAJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ID4g IHsKPiA+IEBAIC0xODYzLDYgKzE4ODgsMTUgQEAgc3RhdGljIGludCBpbnRlbF9kcF9jb21wdXRl X2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAkJfQo+ID4gIAl9Cj4gPiAgCj4g PiArCS8qIElmIERTQyBpcyBzdXBwb3J0ZWQsIHVzZSB0aGUgbWF4IHZhbHVlIHJlcG9ydGVkIGJ5 IHBhbmVsICovCj4gPiArCWlmIChpbnRlbF9kcF9zdXBwb3J0c19kc2MoaW50ZWxfZHAsIHBpcGVf Y29uZmlnKSkgewo+ID4gKwkJYnBjID0gbWluX3QodTgsCj4gPiArCQkJICAgIGRybV9kcF9kc2Nf c2lua19tYXhfY29sb3JfZGVwdGgoaW50ZWxfZHAtPmRzY19kcGNkKSwKPiA+ICsJCQkgICAgRFBf RFNDX01BWF9TVVBQT1JURURfQlBDKTsKPiA+ICsJCWlmIChicGMpCj4gPiArCQkJYnBwID0gbWlu KGJwcCwgMypicGMpOwo+IAo+IFZpbGxlLCB0aGUgcHJvYmxlbSB3aXRoIGNob3NpbmcgdGhlIG1p biBiZXR3ZWVuIGV4aXN0aW5nIGJwcCBhbmQgMyAqIGJwYyAoY29tcHV0ZWQgZnJvbSBEU0MgZHBj ZCkgaXMgdGhhdCBFRElEIGJhc2VkIGJwYwo+IG1pZ2h0IGJlIGxvd2VyIGFuZCBpbiBjYXNlIERT QyBpcyBzdXBwb3J0ZWQsIHRoZSBicGMgdmFsdWUgc2hvdWxkIGJlIGJhc2VkIG9uIHRoZSBkc2Mg Y29sb3IgZGVwdGggYW5kIHRoYXQgc2hvdWxkCj4gb3ZlcnJpZGUgdGhlIHZhbHVlIG9idGFpbmVk IGZyb20gRURJRC4gIFRoaXMgd2FzIGNvbmZpcm1lZCBmcm9tIHRoZSBWRFNDIHByb2dyYW1taW5n IGRvY3VtZW50cyBvYnRhaW5lZCBmcm9tCj4gSFcgYXJjaGl0ZWN0dXJlIGZvbGtzCj4gCj4gU28g aSB0aGluayBpdCBzaG91bGQgc3RpbGwgYmUgaWYgRFNDIHN1cHBvcnRlZCB1c2UgdGhlIGJwYyBk aXJlY3RseSBmcm9tIG1pbl90KHU4LCBkcm1fZHBfZHNjX3NpbmtfbWF4X2NvbG9yX2RlcHRoKGlu dGVsX2RwLT5kc2NfZHBjZCksRFBfRFNDX01BWF9TVVBQT1JURURfQlBDKTsKCk1heWJlCgpicGNf bWluID0gc29tZXRoaW5nOwpicGNfbWF4ID0gc29tZXRoaW5nX2Vsc2U7CmJwcCA9IGNsYW1wKGJw cCwgYnBjX21pbiozLCBicGNfbWF4KjMpOwoKRWl0aGVyIHRoYXQgb3Igd2UganVzdCByZXR1cm4g YW4gZXJyb3Igb2YgdGhlIHJlcXVlc3RlZCBicHAgaXMgYmVsb3cgdGhlCmRzYyBtaW5pbXVtLgoK PiAKPiBNYW5hc2kKPiAKPiA+ICsJfQo+ID4gKwo+ID4gIAlyZXR1cm4gYnBwOwo+ID4gIH0KPiA+ ICAKPiA+IEBAIC0xOTc0LDYgKzIwMDgsODAgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZp Z19mYXN0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAgCXJldHVybiBmYWxzZTsKPiA+ ICB9Cj4gPiAgCj4gPiArc3RhdGljIGJvb2wgaW50ZWxfZHBfZHNjX2NvbXB1dGVfY29uZmlnKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiArCQkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqcGlwZV9jb25maWcsCj4gPiArCQkJCQljb25zdCBzdHJ1Y3QgbGlua19jb25maWdfbGltaXRz ICpsaW1pdHMpCj4gPiArewo+ID4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9y dCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7Cj4gPiArCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNl LmFkanVzdGVkX21vZGU7Cj4gPiArCXUxNiBkc2NfbWF4X291dHB1dF9icHAgPSAwOwo+ID4gKwl1 OCBkc2NfZHBfc2xpY2VfY291bnQgPSAwOwo+ID4gKwo+ID4gKwlpZiAoIWludGVsX2RwX3N1cHBv cnRzX2RzYyhpbnRlbF9kcCwgcGlwZV9jb25maWcpKQo+ID4gKwkJcmV0dXJuIGZhbHNlOwo+ID4g Kwo+ID4gKwkvKiBEU0Mgbm90IHN1cHBvcnRlZCBmb3IgRFNDIHNpbmsgQlBDIDwgOCAqLwo+ID4g KwlpZiAobGltaXRzLT5tYXhfYnBwIDwgMyAqIERQX0RTQ19NSU5fU1VQUE9SVEVEX0JQQykgewo+ ID4gKwkJRFJNX0RFQlVHX0tNUygiTm8gRFNDIHN1cHBvcnQgZm9yIGxlc3MgdGhhbiA4YnBjXG4i KTsKPiA+ICsJCXJldHVybiBmYWxzZTsKPiA+ICsJfQo+ID4gKwo+ID4gKwkvKgo+ID4gKwkgKiBG b3Igbm93IGVuYWJsZSBEU0MgZm9yIG1heCBicHAsIG1heCBsaW5rIHJhdGUsIG1heCBsYW5lIGNv dW50Lgo+ID4gKwkgKiBPcHRpbWl6ZSB0aGlzIGxhdGVyIGZvciB0aGUgbWluaW11bSBwb3NzaWJs ZSBsaW5rIHJhdGUvbGFuZSBjb3VudAo+ID4gKwkgKiB3aXRoIERTQyBlbmFibGVkIGZvciB0aGUg cmVxdWVzdGVkIG1vZGUuCj4gPiArCSAqLwo+ID4gKwlwaXBlX2NvbmZpZy0+cGlwZV9icHAgPSBs aW1pdHMtPm1heF9icHA7Cj4gPiArCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gaW50ZWxfZHAt PmNvbW1vbl9yYXRlc1tsaW1pdHMtPm1heF9jbG9ja107Cj4gPiArCXBpcGVfY29uZmlnLT5sYW5l X2NvdW50ID0gbGltaXRzLT5tYXhfbGFuZV9jb3VudDsKPiA+ICsKPiA+ICsJaWYgKGludGVsX2Rw X2lzX2VkcChpbnRlbF9kcCkpIHsKPiA+ICsJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXBy ZXNzZWRfYnBwID0KPiA+ICsJCQlkcm1fZWRwX2RzY19zaW5rX291dHB1dF9icHAoaW50ZWxfZHAt PmRzY19kcGNkKSA+PiA0Owo+ID4gKwkJcGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xpY2VfY291 bnQgPQo+ID4gKwkJCWRybV9kcF9kc2Nfc2lua19tYXhfc2xpY2VfY291bnQoaW50ZWxfZHAtPmRz Y19kcGNkLAo+ID4gKwkJCQkJCQl0cnVlKTsKPiA+ICsJfSBlbHNlIHsKPiA+ICsJCWRzY19tYXhf b3V0cHV0X2JwcCA9Cj4gPiArCQkJaW50ZWxfZHBfZHNjX2dldF9vdXRwdXRfYnBwKHBpcGVfY29u ZmlnLT5wb3J0X2Nsb2NrLAo+ID4gKwkJCQkJCSAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwK PiA+ICsJCQkJCQkgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKPiA+ICsJCQkJCQkgICAg YWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSk7Cj4gPiArCQlkc2NfZHBfc2xpY2VfY291bnQg PQo+ID4gKwkJCWludGVsX2RwX2RzY19nZXRfc2xpY2VfY291bnQoaW50ZWxfZHAsCj4gPiArCQkJ CQkJICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ID4gKwkJCQkJCSAgICAgYWRqdXN0 ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSk7Cj4gPiArCQlpZiAoIShkc2NfbWF4X291dHB1dF9icHAg JiYgZHNjX2RwX3NsaWNlX2NvdW50KSkgewo+ID4gKwkJCURSTV9ERUJVR19LTVMoIkNvbXByZXNz ZWQgQlBQL1NsaWNlIENvdW50IG5vdCBzdXBwb3J0ZWRcbiIpOwo+ID4gKwkJCXJldHVybiBmYWxz ZTsKPiA+ICsJCX0KPiA+ICsJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBw ID0gZHNjX21heF9vdXRwdXRfYnBwID4+IDQ7Cj4gPiArCQlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFt cy5zbGljZV9jb3VudCA9IGRzY19kcF9zbGljZV9jb3VudDsKPiA+ICsJfQo+ID4gKwkvKgo+ID4g KwkgKiBWRFNDIGVuZ2luZSBvcGVyYXRlcyBhdCAxIFBpeGVsIHBlciBjbG9jaywgc28gaWYgcGVh ayBwaXhlbCByYXRlCj4gPiArCSAqIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11bSBDZGNsb2Nr IGFuZCBpZiBzbGljZSBjb3VudCBpcyBldmVuCj4gPiArCSAqIHRoZW4gd2UgbmVlZCB0byB1c2Ug MiBWRFNDIGluc3RhbmNlcy4KPiA+ICsJICovCj4gPiArCWlmIChhZGp1c3RlZF9tb2RlLT5jcnRj X2Nsb2NrID4gZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxKSB7Cj4gPiArCQlpZiAocGlwZV9jb25m aWctPmRzY19wYXJhbXMuc2xpY2VfY291bnQgPiAxKSB7Cj4gPiArCQkJcGlwZV9jb25maWctPmRz Y19wYXJhbXMuZHNjX3NwbGl0ID0gdHJ1ZTsKPiA+ICsJCX0gZWxzZSB7Cj4gPiArCQkJRFJNX0RF QlVHX0tNUygiQ2Fubm90IHNwbGl0IHN0cmVhbSB0byB1c2UgMiBWRFNDIGluc3RhbmNlc1xuIik7 Cj4gPiArCQkJcmV0dXJuIGZhbHNlOwo+ID4gKwkJfQo+ID4gKwl9Cj4gPiArCXBpcGVfY29uZmln LT5kc2NfcGFyYW1zLmNvbXByZXNzaW9uX2VuYWJsZSA9IHRydWU7Cj4gPiArCURSTV9ERUJVR19L TVMoIkRQIERTQyBjb21wdXRlZCB3aXRoIElucHV0IEJwcCA9ICVkICIKPiA+ICsJCSAgICAgICJD b21wcmVzc2VkIEJwcCA9ICVkIFNsaWNlIENvdW50ID0gJWRcbiIsCj4gPiArCQkgICAgICBwaXBl X2NvbmZpZy0+cGlwZV9icHAsCj4gPiArCQkgICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5j b21wcmVzc2VkX2JwcCwKPiA+ICsJCSAgICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLnNsaWNl X2NvdW50KTsKPiA+ICsKPiA+ICsJcmV0dXJuIHRydWU7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRp YyBib29sCj4gPiAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiA+ICAJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBl X2NvbmZpZykKPiA+IEBAIC0xOTgyLDYgKzIwOTAsNyBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtf Y29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gIAlzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiA+ICAJc3Ry dWN0IGxpbmtfY29uZmlnX2xpbWl0cyBsaW1pdHM7Cj4gPiAgCWludCBjb21tb25fbGVuOwo+ID4g Kwlib29sIHJldCA9IGZhbHNlOwo+ID4gIAo+ID4gIAljb21tb25fbGVuID0gaW50ZWxfZHBfY29t bW9uX2xlbl9yYXRlX2xpbWl0KGludGVsX2RwLAo+ID4gIAkJCQkJCSAgICBpbnRlbF9kcC0+bWF4 X2xpbmtfcmF0ZSk7Cj4gPiBAQCAtMTk5NSw4ICsyMTA0LDEyIEBAIGludGVsX2RwX2NvbXB1dGVf bGlua19jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCWxpbWl0cy5t aW5fbGFuZV9jb3VudCA9IDE7Cj4gPiAgCWxpbWl0cy5tYXhfbGFuZV9jb3VudCA9IGludGVsX2Rw X21heF9sYW5lX2NvdW50KGludGVsX2RwKTsKPiA+ICAKPiA+IC0JbGltaXRzLm1pbl9icHAgPSA2 ICogMzsKPiA+ICAJbGltaXRzLm1heF9icHAgPSBpbnRlbF9kcF9jb21wdXRlX2JwcChpbnRlbF9k cCwgcGlwZV9jb25maWcpOwo+ID4gKwlpZiAoaW50ZWxfZHBfc3VwcG9ydHNfZHNjKGludGVsX2Rw LCBwaXBlX2NvbmZpZykgJiYKPiA+ICsJICAgIGxpbWl0cy5tYXhfYnBwID49IERQX0RTQ19NSU5f U1VQUE9SVEVEX0JQQyozKQo+ID4gKwkJbGltaXRzLm1pbl9icHAgPSBEUF9EU0NfTUlOX1NVUFBP UlRFRF9CUEMgKiAzOwo+ID4gKwllbHNlCj4gPiArCQlsaW1pdHMubWluX2JwcCA9IDYgKiAzOwo+ ID4gIAo+ID4gIAlpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSAmJiBpbnRlbF9kcC0+ZWRw X2RwY2RbMF0gPCBEUF9FRFBfMTQpIHsKPiA+ICAJCS8qCj4gPiBAQCAtMjAyMCw3ICsyMTMzLDcg QEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPiA+ICAJCSAgICAgIGludGVsX2RwLT5jb21tb25fcmF0ZXNbbGltaXRzLm1heF9jbG9j a10sCj4gPiAgCQkgICAgICBsaW1pdHMubWF4X2JwcCwgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9j ayk7Cj4gPiAgCj4gPiAtCWlmIChpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKSB7Cj4gPiArCWlm IChpbnRlbF9kcF9pc19lZHAoaW50ZWxfZHApKQo+ID4gIAkJLyoKPiA+ICAJCSAqIE9wdGltaXpl IGZvciBmYXN0IGFuZCBuYXJyb3cuIGVEUCAxLjMgc2VjdGlvbiAzLjMgYW5kIGVEUCAxLjQKPiA+ ICAJCSAqIHNlY3Rpb24gQS4xOiAiSXQgaXMgcmVjb21tZW5kZWQgdGhhdCB0aGUgbWluaW11bSBu dW1iZXIgb2YKPiA+IEBAIC0yMDMwLDI2ICsyMTQzLDQyIEBAIGludGVsX2RwX2NvbXB1dGVfbGlu a19jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCQkgKiBOb3RlIHRo YXQgd2UgdXNlIHRoZSBtYXggY2xvY2sgYW5kIGxhbmUgY291bnQgZm9yIGVEUCAxLjMgYW5kCj4g PiAgCQkgKiBlYXJsaWVyLCBhbmQgZmFzdCB2cy4gd2lkZSBpcyBpcnJlbGV2YW50Lgo+ID4gIAkJ ICovCj4gPiAtCQlpZiAoIWludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdfZmFzdChpbnRlbF9k cCwgcGlwZV9jb25maWcsCj4gPiAtCQkJCQkJICAgICAgICZsaW1pdHMpKQo+ID4gLQkJCXJldHVy biBmYWxzZTsKPiA+IC0JfSBlbHNlIHsKPiA+ICsJCXJldCA9IGludGVsX2RwX2NvbXB1dGVfbGlu a19jb25maWdfZmFzdChpbnRlbF9kcCwgcGlwZV9jb25maWcsCj4gPiArCQkJCQkJCSZsaW1pdHMp Owo+ID4gKwllbHNlCj4gPiAgCQkvKiBPcHRpbWl6ZSBmb3Igc2xvdyBhbmQgd2lkZS4gKi8KPiA+ IC0JCWlmICghaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ193aWRlKGludGVsX2RwLCBwaXBl X2NvbmZpZywKPiA+IC0JCQkJCQkgICAgICAgJmxpbWl0cykpCj4gPiArCQlyZXQgPSBpbnRlbF9k cF9jb21wdXRlX2xpbmtfY29uZmlnX3dpZGUoaW50ZWxfZHAsIHBpcGVfY29uZmlnLAo+ID4gKwkJ CQkJCQkmbGltaXRzKTsKPiA+ICsKPiA+ICsJLyogZW5hYmxlIGNvbXByZXNzaW9uIGlmIHRoZSBt b2RlIGRvZXNuJ3QgZml0IGF2YWlsYWJsZSBCVyAqLwo+ID4gKwlpZiAoIXJldCkgewo+ID4gKwkJ aWYgKCFpbnRlbF9kcF9kc2NfY29tcHV0ZV9jb25maWcoaW50ZWxfZHAsIHBpcGVfY29uZmlnLAo+ ID4gKwkJCQkJCSAmbGltaXRzKSkKPiA+ICAJCQlyZXR1cm4gZmFsc2U7Cj4gPiAgCX0KPiA+ICAK PiA+IC0JRFJNX0RFQlVHX0tNUygiRFAgbGFuZSBjb3VudCAlZCBjbG9jayAlZCBicHAgJWRcbiIs Cj4gPiAtCQkgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwgcGlwZV9jb25maWctPnBvcnRf Y2xvY2ssCj4gPiAtCQkgICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApOwo+ID4gKwlpZiAocGlw ZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3Npb25fZW5hYmxlKSB7Cj4gPiArCQlEUk1fREVC VUdfS01TKCJEUCBsYW5lIGNvdW50ICVkIGNsb2NrICVkIElucHV0IGJwcCAlZCBDb21wcmVzc2Vk IGJwcCAlZFxuIiwKPiA+ICsJCQkgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwgcGlwZV9j b25maWctPnBvcnRfY2xvY2ssCj4gPiArCQkJICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwLAo+ ID4gKwkJCSAgICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwKTsKPiA+ ICAKPiA+IC0JRFJNX0RFQlVHX0tNUygiRFAgbGluayByYXRlIHJlcXVpcmVkICVpIGF2YWlsYWJs ZSAlaVxuIiwKPiA+IC0JCSAgICAgIGludGVsX2RwX2xpbmtfcmVxdWlyZWQoYWRqdXN0ZWRfbW9k ZS0+Y3J0Y19jbG9jaywKPiA+IC0JCQkJCSAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwKSwKPiA+ IC0JCSAgICAgIGludGVsX2RwX21heF9kYXRhX3JhdGUocGlwZV9jb25maWctPnBvcnRfY2xvY2ss Cj4gPiAtCQkJCQkgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50KSk7Cj4gPiArCQlEUk1fREVC VUdfS01TKCJEUCBsaW5rIHJhdGUgcmVxdWlyZWQgJWkgYXZhaWxhYmxlICVpXG4iLAo+ID4gKwkJ CSAgICAgIGludGVsX2RwX2xpbmtfcmVxdWlyZWQoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywK PiA+ICsJCQkJCQkgICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwKSwK PiA+ICsJCQkgICAgICBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKHBpcGVfY29uZmlnLT5wb3J0X2Ns b2NrLAo+ID4gKwkJCQkJCSAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQpKTsKPiA+ICsJfSBl bHNlIHsKPiA+ICsJCURSTV9ERUJVR19LTVMoIkRQIGxhbmUgY291bnQgJWQgY2xvY2sgJWQgYnBw ICVkXG4iLAo+ID4gKwkJCSAgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LCBwaXBlX2NvbmZp Zy0+cG9ydF9jbG9jaywKPiA+ICsJCQkgICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApOwo+ID4g IAo+ID4gKwkJRFJNX0RFQlVHX0tNUygiRFAgbGluayByYXRlIHJlcXVpcmVkICVpIGF2YWlsYWJs ZSAlaVxuIiwKPiA+ICsJCQkgICAgICBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKGFkanVzdGVkX21v ZGUtPmNydGNfY2xvY2ssCj4gPiArCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApLAo+ ID4gKwkJCSAgICAgIGludGVsX2RwX21heF9kYXRhX3JhdGUocGlwZV9jb25maWctPnBvcnRfY2xv Y2ssCj4gPiArCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCkpOwo+ID4gKwl9Cj4g PiAgCXJldHVybiB0cnVlOwo+ID4gIH0KPiA+ICAKPiA+IEBAIC0yMTMzLDcgKzIyNjIsOSBAQCBp bnRlbF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ ICAJCQlpbnRlbF9jb25uX3N0YXRlLT5icm9hZGNhc3RfcmdiID09IElOVEVMX0JST0FEQ0FTVF9S R0JfTElNSVRFRDsKPiA+ICAJfQo+ID4gIAo+ID4gLQlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKHBp cGVfY29uZmlnLT5waXBlX2JwcCwgcGlwZV9jb25maWctPmxhbmVfY291bnQsCj4gPiArCWludGVs X2xpbmtfY29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLAo+ID4gKwkJCSAgICAgICBw aXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCwKPiA+ICsJCQkgICAgICAgcGlw ZV9jb25maWctPmxhbmVfY291bnQsCj4gPiAgCQkJICAgICAgIGFkanVzdGVkX21vZGUtPmNydGNf Y2xvY2ssCj4gPiAgCQkJICAgICAgIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4gIAkJCSAg ICAgICAmcGlwZV9jb25maWctPmRwX21fbiwKPiA+IEBAIC0yMTQyLDcgKzIyNzMsNyBAQCBpbnRl bF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJ aWYgKGludGVsX2Nvbm5lY3Rvci0+cGFuZWwuZG93bmNsb2NrX21vZGUgIT0gTlVMTCAmJgo+ID4g IAkJZGV2X3ByaXYtPmRycnMudHlwZSA9PSBTRUFNTEVTU19EUlJTX1NVUFBPUlQpIHsKPiA+ICAJ CQlwaXBlX2NvbmZpZy0+aGFzX2RycnMgPSB0cnVlOwo+ID4gLQkJCWludGVsX2xpbmtfY29tcHV0 ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLAo+ID4gKwkJCWludGVsX2xpbmtfY29tcHV0ZV9t X24ocGlwZV9jb25maWctPnBpcGVfYnBwLCAwLAo+ID4gIAkJCQkJICAgICAgIHBpcGVfY29uZmln LT5sYW5lX2NvdW50LAo+ID4gIAkJCQkJICAgICAgIGludGVsX2Nvbm5lY3Rvci0+cGFuZWwuZG93 bmNsb2NrX21vZGUtPmNsb2NrLAo+ID4gIAkJCQkJICAgICAgIHBpcGVfY29uZmlnLT5wb3J0X2Ns b2NrLAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiA+IGluZGV4IDhiNzFkNjRl YmQ5ZC4uZTAyY2FlZGQ0NDNjIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHBfbXN0LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21z dC5jCj4gPiBAQCAtOTAsNyArOTAsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kcF9tc3RfY29tcHV0 ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCQl9Cj4gPiAgCX0K PiA+ICAKPiA+IC0JaW50ZWxfbGlua19jb21wdXRlX21fbihicHAsIGxhbmVfY291bnQsCj4gPiAr CWludGVsX2xpbmtfY29tcHV0ZV9tX24oYnBwLCAwLCBsYW5lX2NvdW50LAo+ID4gIAkJCSAgICAg ICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ID4gIAkJCSAgICAgICBwaXBlX2NvbmZpZy0+ cG9ydF9jbG9jaywKPiA+ICAJCQkgICAgICAgJnBpcGVfY29uZmlnLT5kcF9tX24sCj4gPiAtLSAK PiA+IDIuMTguMAo+ID4gCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=