From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 07/11] drm/i915: move ddb_blocks to be a watermark parameter Date: Thu, 18 Oct 2018 16:41:04 +0300 Message-ID: <20181018134104.GB9144@intel.com> References: <20181016220133.26991-1-paulo.r.zanoni@intel.com> <20181016220133.26991-8-paulo.r.zanoni@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 099256E0F1 for ; Thu, 18 Oct 2018 13:41:11 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181016220133.26991-8-paulo.r.zanoni@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBPY3QgMTYsIDIwMTggYXQgMDM6MDE6MjlQTSAtMDcwMCwgUGF1bG8gWmFub25pIHdy b3RlOgo+IFRoZSBnb2FsIG9mIHN0cnVjdCBza2xfd21fcGFyYW1zIGlzIHRvIGNhY2hlIGV2ZXJ5 IHdhdGVybWFyawo+IHBhcmFtZXRlciBzbyB0aGUgb3RoZXIgZnVuY3Rpb25zIGNhbiBqdXN0IHVz ZSB0aGVtIHdpdGhvdXQgd29ycnlpbmcKPiBhYm91dCB0aGUgYXBwcm9wcmlhdGUgcGxhY2UgdG8g ZmV0Y2ggZWFjaCBwYXJhbWV0ZXIgcmVxdWVzdGVkIGJ5IHRoZQo+IHNwZWMsIGFuZCB3aXRob3V0 IGhhdmluZyB0byByZWNvbXB1dGUgcGFyYW1ldGVycyB0aGF0IGFyZSB1c2VkIGluCj4gZGlmZmVy ZW50IHN0ZXBzIG9mIHRoZSBjYWxjdWxhdGlvbi4KPiAKPiBUaGUgZGRiX2Jsb2NrcyBwYXJhbWV0 ZXIgaXMgb25lIHRoYXQgaXMgdXNlZCBieSBib3RoIHRoZSB0aGUgcGxhbmUKPiB3YXRlcm1hcmtz IGFuZCB0aGUgdHJhbnNpdGlvbiB3YXRlcm1hcmtzLiBNb3ZlIGRkYl9ibG9ja3MgdG8gdGhlCj4g cGFyYW1ldGVyIHN0cnVjdCBzbyB3ZSBjYW4gc2ltcGxpZnkgdGhlIGNvZGUuCj4gCj4gU2lnbmVk LW9mZi1ieTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+Cj4gLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggfCAgMSArCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMgfCA0NCArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9u cygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDRiMWU4NDcxNjA5Yi4uYjMy ZDY4MGQ5YmYwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTEyNTUsNiArMTI1 NSw3IEBAIHN0cnVjdCBza2xfd21fcGFyYW1zIHsKPiAgCWJvb2wgcmNfc3VyZmFjZTsKPiAgCWJv b2wgaXNfcGxhbmFyOwo+ICAJdWludDMyX3Qgd2lkdGg7Cj4gKwl1aW50MTZfdCBkZGJfYmxvY2tz Owo+ICAJdWludDhfdCBjcHA7Cj4gIAl1aW50MzJfdCBwbGFuZV9waXhlbF9yYXRlOwo+ICAJdWlu dDMyX3QgeV9taW5fc2NhbmxpbmVzOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IGluZGV4IGYz ODhiZmE5OWE5Ny4uNDA1M2Y0YTY4NjU3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4g QEAgLTQ1MjIsMTEgKzQ1MjIsMTMgQEAgc3RhdGljIGludAo+ICBza2xfY29tcHV0ZV9wbGFuZV93 bV9wYXJhbXMoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkg ICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPiAgCQkJICAgIGNvbnN0IHN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSAqaW50ZWxfcHN0YXRlLAo+ICsJCQkgICAgY29uc3Qgc3RydWN0 IHNrbF9kZGJfYWxsb2NhdGlvbiAqZGRiLAo+ICAJCQkgICAgc3RydWN0IHNrbF93bV9wYXJhbXMg KndwLCBpbnQgcGxhbmVfaWQpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0 b19pbnRlbF9wbGFuZShpbnRlbF9wc3RhdGUtPmJhc2UucGxhbmUpOwo+ICAJY29uc3Qgc3RydWN0 IGRybV9wbGFuZV9zdGF0ZSAqcHN0YXRlID0gJmludGVsX3BzdGF0ZS0+YmFzZTsKPiAgCWNvbnN0 IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcHN0YXRlLT5mYjsKPiArCWVudW0gcGlwZSBw aXBlID0gdG9faW50ZWxfY3J0Yyhjc3RhdGUtPmJhc2UuY3J0YyktPnBpcGU7Cj4gIAl1aW50MzJf dCBpbnRlcm1fcGJwbDsKPiAgCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0KPiAg CQl0b19pbnRlbF9hdG9taWNfc3RhdGUoY3N0YXRlLT5iYXNlLnN0YXRlKTsKPiBAQCAtNDYyNCwx MyArNDYyNiwxNiBAQCBza2xfY29tcHV0ZV9wbGFuZV93bV9wYXJhbXMoY29uc3Qgc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJd3AtPmxpbmV0aW1lX3VzID0gZml4ZWQxNl90 b191MzJfcm91bmRfdXAoCj4gIAkJCQkJaW50ZWxfZ2V0X2xpbmV0aW1lX3VzKGNzdGF0ZSkpOwo+ ICAKPiArCXdwLT5kZGJfYmxvY2tzID0gcGxhbmVfaWQgPwoKVWdoLiBUaGF0ICdwbGFuZV9pZCcg cmVhbGx5IHNob3VsZCBiZSByZW5hbWVkIHRvIHNvbWV0aGluZyBlbHNlLgonY29sb3JfcGxhbmUn IHdvdWxkIGJlIHRoZSBuZXdmYW5nbGVkIG5hbWUgSSBzdGFydGVkIHRvIHVzZSBlbHNld2hlcmUu CgpQYXRjaCBsb29rcyBnb29kIHRvIG1lLgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCj4gKwkJICAgICBza2xfZGRiX2VudHJ5X3Np emUoJmRkYi0+dXZfcGxhbmVbcGlwZV1bcGxhbmUtPmlkXSkgOgo+ICsJCSAgICAgc2tsX2RkYl9l bnRyeV9zaXplKCZkZGItPnBsYW5lW3BpcGVdW3BsYW5lLT5pZF0pOwo+ICsKPiAgCXJldHVybiAw Owo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50IHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjc3RhdGUsCj4gIAkJCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKmludGVs X3BzdGF0ZSwKPiAtCQkJCXVpbnQxNl90IGRkYl9hbGxvY2F0aW9uLAo+ICAJCQkJaW50IGxldmVs LAo+ICAJCQkJY29uc3Qgc3RydWN0IHNrbF93bV9wYXJhbXMgKndwLAo+ICAJCQkJY29uc3Qgc3Ry dWN0IHNrbF93bV9sZXZlbCAqcmVzdWx0X3ByZXYsCj4gQEAgLTQ2NzQsNyArNDY3OSw3IEBAIHN0 YXRpYyBpbnQgc2tsX2NvbXB1dGVfcGxhbmVfd20oY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ICAJCSAgICAgd3AtPmRidWZfYmxvY2tfc2l6ZSA8IDEpICYmCj4gIAkJ ICAgICAod3AtPnBsYW5lX2J5dGVzX3Blcl9saW5lIC8gd3AtPmRidWZfYmxvY2tfc2l6ZSA8IDEp KSB7Cj4gIAkJCXNlbGVjdGVkX3Jlc3VsdCA9IG1ldGhvZDI7Cj4gLQkJfSBlbHNlIGlmIChkZGJf YWxsb2NhdGlvbiA+PQo+ICsJCX0gZWxzZSBpZiAod3AtPmRkYl9ibG9ja3MgPj0KPiAgCQkJIGZp eGVkMTZfdG9fdTMyX3JvdW5kX3VwKHdwLT5wbGFuZV9ibG9ja3NfcGVyX2xpbmUpKSB7Cj4gIAkJ CWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID09IDkgJiYKPiAgCQkJICAgICFJU19HRU1JTklMQUtF KGRldl9wcml2KSkKPiBAQCAtNDc0Nyw4ICs0NzUyLDggQEAgc3RhdGljIGludCBza2xfY29tcHV0 ZV9wbGFuZV93bShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAl9 Cj4gIAo+ICAJaWYgKChsZXZlbCA+IDAgJiYgcmVzX2xpbmVzID4gMzEpIHx8Cj4gLQkgICAgcmVz X2Jsb2NrcyA+PSBkZGJfYWxsb2NhdGlvbiB8fAo+IC0JICAgIG1pbl9kaXNwX2J1Zl9uZWVkZWQg Pj0gZGRiX2FsbG9jYXRpb24pIHsKPiArCSAgICByZXNfYmxvY2tzID49IHdwLT5kZGJfYmxvY2tz IHx8Cj4gKwkgICAgbWluX2Rpc3BfYnVmX25lZWRlZCA+PSB3cC0+ZGRiX2Jsb2Nrcykgewo+ICAJ CXJlc3VsdC0+cGxhbmVfZW4gPSBmYWxzZTsKPiAgCj4gIAkJLyoKPiBAQCAtNDc2Myw3ICs0NzY4 LDcgQEAgc3RhdGljIGludCBza2xfY29tcHV0ZV9wbGFuZV93bShjb25zdCBzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCURSTV9ERUJVR19LTVMoIlJlcXVlc3RlZCBkaXNw bGF5IGNvbmZpZ3VyYXRpb24gZXhjZWVkcyBzeXN0ZW0gd2F0ZXJtYXJrIGxpbWl0YXRpb25zXG4i KTsKPiAgCQkJRFJNX0RFQlVHX0tNUygiW1BMQU5FOiVkOiVzXSBibG9ja3MgcmVxdWlyZWQgPSAl dS8ldSwgbGluZXMgcmVxdWlyZWQgPSAldS8zMVxuIiwKPiAgCQkJCSAgICAgIHBsYW5lLT5iYXNl LmlkLCBwbGFuZS0+bmFtZSwKPiAtCQkJCSAgICAgIHJlc19ibG9ja3MsIGRkYl9hbGxvY2F0aW9u LCByZXNfbGluZXMpOwo+ICsJCQkJICAgICAgcmVzX2Jsb2Nrcywgd3AtPmRkYl9ibG9ja3MsIHJl c19saW5lcyk7Cj4gIAkJCXJldHVybiAtRUlOVkFMOwo+ICAJCX0KPiAgCX0KPiBAQCAtNDc4OSwy NiArNDc5NCwxNSBAQCBzdGF0aWMgaW50IHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCj4gIHN0YXRpYyBpbnQKPiAgc2tsX2Nv bXB1dGVfd21fbGV2ZWxzKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiAtCQkgICAgICBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpkZGIsCj4gIAkJICAgICAgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPiAgCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50 ZWxfcGxhbmVfc3RhdGUgKmludGVsX3BzdGF0ZSwKPiAgCQkgICAgICBjb25zdCBzdHJ1Y3Qgc2ts X3dtX3BhcmFtcyAqd21fcGFyYW1zLAo+ICAJCSAgICAgIHN0cnVjdCBza2xfcGxhbmVfd20gKndt LAo+ICAJCSAgICAgIGludCBwbGFuZV9pZCkKPiAgewo+IC0Jc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNzdGF0ZS0+YmFzZS5jcnRjKTsKPiAtCXN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lID0gaW50ZWxfcHN0YXRlLT5iYXNlLnBsYW5lOwo+IC0Jc3RydWN0IGlu dGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKPiAtCXVpbnQx Nl90IGRkYl9ibG9ja3M7Cj4gLQllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4g IAlpbnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwoZGV2X3ByaXYpOwo+IC0J ZW51bSBwbGFuZV9pZCBpbnRlbF9wbGFuZV9pZCA9IGludGVsX3BsYW5lLT5pZDsKPiAgCWludCBy ZXQ7Cj4gIAo+IC0JZGRiX2Jsb2NrcyA9IHBsYW5lX2lkID8KPiAtCQkgICAgIHNrbF9kZGJfZW50 cnlfc2l6ZSgmZGRiLT51dl9wbGFuZVtwaXBlXVtpbnRlbF9wbGFuZV9pZF0pIDoKPiAtCQkgICAg IHNrbF9kZGJfZW50cnlfc2l6ZSgmZGRiLT5wbGFuZVtwaXBlXVtpbnRlbF9wbGFuZV9pZF0pOwo+ IC0KPiAgCWZvciAobGV2ZWwgPSAwOyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxldmVsKyspIHsKPiAg CQlzdHJ1Y3Qgc2tsX3dtX2xldmVsICpyZXN1bHQgPSBwbGFuZV9pZCA/ICZ3bS0+dXZfd21bbGV2 ZWxdIDoKPiAgCQkJCQkJCSAgJndtLT53bVtsZXZlbF07Cj4gQEAgLTQ4MjMsNyArNDgxNyw2IEBA IHNrbF9jb21wdXRlX3dtX2xldmVscyhjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gIAkJcmV0ID0gc2tsX2NvbXB1dGVfcGxhbmVfd20oZGV2X3ByaXYsCj4gIAkJCQkJ ICAgY3N0YXRlLAo+ICAJCQkJCSAgIGludGVsX3BzdGF0ZSwKPiAtCQkJCQkgICBkZGJfYmxvY2tz LAo+ICAJCQkJCSAgIGxldmVsLAo+ICAJCQkJCSAgIHdtX3BhcmFtcywKPiAgCQkJCQkgICByZXN1 bHRfcHJldiwKPiBAQCAtNDg2Myw3ICs0ODU2LDYgQEAgc2tsX2NvbXB1dGVfbGluZXRpbWVfd20o c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKPiAgc3RhdGljIHZvaWQgc2tsX2NvbXB1 dGVfdHJhbnNpdGlvbl93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ICAJCQkJ ICAgICAgc3RydWN0IHNrbF93bV9wYXJhbXMgKndwLAo+ICAJCQkJICAgICAgc3RydWN0IHNrbF93 bV9sZXZlbCAqd21fbDAsCj4gLQkJCQkgICAgICB1aW50MTZfdCBkZGJfYWxsb2NhdGlvbiwKPiAg CQkJCSAgICAgIHN0cnVjdCBza2xfd21fbGV2ZWwgKnRyYW5zX3dtIC8qIG91dCAqLykKPiAgewo+ ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNzdGF0ZS0+YmFzZS5jcnRjLT5kZXY7Cj4gQEAg LTQ5MTQsNyArNDkwNiw3IEBAIHN0YXRpYyB2b2lkIHNrbF9jb21wdXRlX3RyYW5zaXRpb25fd20o c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPiAgCj4gIAlyZXNfYmxvY2tzICs9IDE7 Cj4gIAo+IC0JaWYgKHJlc19ibG9ja3MgPCBkZGJfYWxsb2NhdGlvbikgewo+ICsJaWYgKHJlc19i bG9ja3MgPCB3cC0+ZGRiX2Jsb2Nrcykgewo+ICAJCXRyYW5zX3dtLT5wbGFuZV9yZXNfYiA9IHJl c19ibG9ja3M7Cj4gIAkJdHJhbnNfd20tPnBsYW5lX2VuID0gdHJ1ZTsKPiAgCQlyZXR1cm47Cj4g QEAgLTQ5NDcsMzcgKzQ5MzksMzUgQEAgc3RhdGljIGludCBza2xfYnVpbGRfcGlwZV93bShzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ICAJCQkJCQl0b19pbnRlbF9wbGFuZV9zdGF0 ZShwc3RhdGUpOwo+ICAJCWVudW0gcGxhbmVfaWQgcGxhbmVfaWQgPSB0b19pbnRlbF9wbGFuZShw bGFuZSktPmlkOwo+ICAJCXN0cnVjdCBza2xfd21fcGFyYW1zIHdtX3BhcmFtczsKPiAtCQllbnVt IHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoY3N0YXRlLT5iYXNlLmNydGMpLT5waXBlOwo+IC0J CXVpbnQxNl90IGRkYl9ibG9ja3M7Cj4gIAo+ICAJCXdtID0gJnBpcGVfd20tPnBsYW5lc1twbGFu ZV9pZF07Cj4gLQkJZGRiX2Jsb2NrcyA9IHNrbF9kZGJfZW50cnlfc2l6ZSgmZGRiLT5wbGFuZVtw aXBlXVtwbGFuZV9pZF0pOwo+ICAKPiAgCQlyZXQgPSBza2xfY29tcHV0ZV9wbGFuZV93bV9wYXJh bXMoZGV2X3ByaXYsIGNzdGF0ZSwKPiAtCQkJCQkJICBpbnRlbF9wc3RhdGUsICZ3bV9wYXJhbXMs IDApOwo+ICsJCQkJCQkgIGludGVsX3BzdGF0ZSwgZGRiLAo+ICsJCQkJCQkgICZ3bV9wYXJhbXMs IDApOwo+ICAJCWlmIChyZXQpCj4gIAkJCXJldHVybiByZXQ7Cj4gIAo+ICAJCWlmICghd21fcGFy YW1zLnBsYW5lX3Zpc2libGUpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAtCQlyZXQgPSBza2xfY29t cHV0ZV93bV9sZXZlbHMoZGV2X3ByaXYsIGRkYiwgY3N0YXRlLAo+ICsJCXJldCA9IHNrbF9jb21w dXRlX3dtX2xldmVscyhkZXZfcHJpdiwgY3N0YXRlLAo+ICAJCQkJCSAgICBpbnRlbF9wc3RhdGUs ICZ3bV9wYXJhbXMsIHdtLCAwKTsKPiAgCQlpZiAocmV0KQo+ICAJCQlyZXR1cm4gcmV0Owo+ICAK PiAgCQlza2xfY29tcHV0ZV90cmFuc2l0aW9uX3dtKGNzdGF0ZSwgJndtX3BhcmFtcywgJndtLT53 bVswXSwKPiAtCQkJCQkgIGRkYl9ibG9ja3MsICZ3bS0+dHJhbnNfd20pOwo+ICsJCQkJCSAgJndt LT50cmFuc193bSk7Cj4gIAo+ICAJCS8qIHV2IHBsYW5lIHdhdGVybWFya3MgbXVzdCBhbHNvIGJl IHZhbGlkYXRlZCBmb3IgTlYxMi9QbGFuYXIgKi8KPiAgCQlpZiAod21fcGFyYW1zLmlzX3BsYW5h cikgewo+ICAJCQlyZXQgPSBza2xfY29tcHV0ZV9wbGFuZV93bV9wYXJhbXMoZGV2X3ByaXYsIGNz dGF0ZSwKPiAtCQkJCQkJCSAgaW50ZWxfcHN0YXRlLAo+ICsJCQkJCQkJICBpbnRlbF9wc3RhdGUs IGRkYiwKPiAgCQkJCQkJCSAgJndtX3BhcmFtcywgMSk7Cj4gIAkJCWlmIChyZXQpCj4gIAkJCQly ZXR1cm4gcmV0Owo+ICAKPiAtCQkJcmV0ID0gc2tsX2NvbXB1dGVfd21fbGV2ZWxzKGRldl9wcml2 LCBkZGIsIGNzdGF0ZSwKPiArCQkJcmV0ID0gc2tsX2NvbXB1dGVfd21fbGV2ZWxzKGRldl9wcml2 LCBjc3RhdGUsCj4gIAkJCQkJCSAgICBpbnRlbF9wc3RhdGUsICZ3bV9wYXJhbXMsCj4gIAkJCQkJ CSAgICB3bSwgMSk7Cj4gIAkJCWlmIChyZXQpCj4gLS0gCj4gMi4xNC40Cj4gCj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGlu ZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKVmlsbGUgU3ly asOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=