From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: [PATCH v3] drm/i915/execlists: Move WA_TAIL_DWORDS to callee Date: Fri, 5 Feb 2016 19:31:01 +0000 Message-ID: <1454700661-5065-1-git-send-email-david.s.gordon@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 9BE5F720CA for ; Fri, 5 Feb 2016 11:31:11 -0800 (PST) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CgpDdXJyZW50bHkg ZW1pdC1yZXF1ZXN0IHN0YXJ0cyB3cml0aW5nIHRvIHRoZSByaW5nIGFuZCByZXNlcnZlcyBzcGFj ZQpmb3IgYSB3b3JrYXJvdW5kIHRvIGJlIGVtaXR0ZWQgbGF0ZXIgd2hpbHN0IHN1Ym1pdHRpbmcg dGhlIHJlcXVlc3QuIEl0CmlzIGVhc2llciB0byByZWFkIGlmIHRoZSBjYWxsZXIgb25seSBhbGxv Y2F0ZXMgc3VmZmljaWVudCBzcGFjZSBmb3IKaXRzIGFjY2VzcyAodGhlbiB0aGUgcmVhZGVyIGNh biBxdWlja2x5IHZlcmlmeSB0aGF0IHRoZSByaW5nIGJlZ2luCmFsbG9jYXRlcyB0aGUgZXhhY3Qg c3BhY2UgZm9yIHRoZSBudW1iZXIgb2YgZHdvcmRzIGVtaXR0ZWQpIGFuZCBjbG9zZXMKdGhlIGFj Y2VzcyB0byB0aGUgcmluZy4gRHVyaW5nIHN1Ym1pdCwgaWYgd2UgbmVlZCB0byBhZGQgdGhlIHdv cmthcm91bmQsCndlIGNhbiByZWFjcXVpcmUgcmluZyBhY2Nlc3MsIGluIHRoZSBhc3N1cmFuY2Ug dGhhdCB3ZSByZXNlcnZlZCBzcGFjZQpmb3Igb3Vyc2VsdmVzIHdoZW4gYmVnaW5uaW5nIHRoZSBy ZXF1ZXN0LgoKdjM6CiAgICBSZWluc3RhdGVkICNkZWZpbmUgZm9yIFdBX1RBSUxfRFdPUkRTIHNv IHdlIGNvdWxkIGFjY29tbW9kYXRlIEdQVXMKICAgIHRoYXQgcmVxdWlyZWQgZGlmZmVyZW50IGFt b3VudHMgb2YgcGFkZGluZywgZ2VuZXJhbGlzZWQgTk9PUCBmaWxsCiAgICBbUm9kcmlnbyBWaXZp XSwgYWRkZWQgVy9BIHNwYWNlIHRvIHJlc2VydmVkIGFtb3VudCBhbmQgdXBkYXRlZAogICAgY29k ZSBjb21tZW50cyBbRGF2ZSBHb3Jkb25dLAoKT3JpZ2luYWxseS1ieTogUm9kcmlnbyBWaXZpIDxy b2RyaWdvLnZpdmlAZ21haWwuY29tPgpSZXdyaXR0ZW4tYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNA Y2hyaXMtd2lsc29uLmNvLnVrPgpGdXJ0aGVyLXR3ZWFrZWQtYnk6IERhdmUgR29yZG9uIDxkYXZp ZC5zLmdvcmRvbkBpbnRlbC5jb20+CgpTaWduZWQtb2ZmLWJ5OiBEYXZlIEdvcmRvbiA8ZGF2aWQu cy5nb3Jkb25AaW50ZWwuY29tPgpDYzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAZ21haWwu Y29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBEYXZl IEdvcmRvbiA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgpDYzogQmVuIFdpZGF3c2t5IDxiZW5q YW1pbi53aWRhd3NreUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHJjLmMgfCA4MCArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgNDkgaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuYwppbmRleCAzYTAzNjQ2Li44YjI3OGYxIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYwpAQCAtMjI1LDYgKzIyNSwxMyBAQCBlbnVtIHsKICNkZWZpbmUgR0VOOF9DVFhfSURf U0hJRlQgMzIKICNkZWZpbmUgQ1RYX1JDU19JTkRJUkVDVF9DVFhfT0ZGU0VUX0RFRkFVTFQgIDB4 MTcKIAorLyoKKyAqIFJlc2VydmUgc3BhY2UgZm9yIDIgTk9PUHMgYXQgdGhlIGVuZCBvZiBlYWNo IHJlcXVlc3QsCisgKiB0byBiZSB1c2VkIGFzIGEgd29ya2Fyb3VuZCBmb3Igbm90IGJlaW5nIGFs bG93ZWQgdG8KKyAqIGRvIGxpdGUgcmVzdG9yZSB3aXRoIEhFQUQ9PVRBSUwgKFdhSWRsZUxpdGVS ZXN0b3JlKS4KKyAqLworI2RlZmluZSBXQV9UQUlMX0RXT1JEUyAyCisKIHN0YXRpYyBpbnQgaW50 ZWxfbHJfY29udGV4dF9waW4oc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKIAkJCQlzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpOwogc3RhdGljIHZvaWQgbHJjX3NldHVwX2hhcmR3YXJl X3N0YXR1c19wYWdlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCkBAIC00NjIsMTAgKzQ2 OSw5IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19jb250ZXh0X3VucXVldWUoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcmluZykKIAkJICovCiAJCWlmIChyZXEwLT5lbHNwX3N1Ym1pdHRlZCkgewog CQkJLyoKLQkJCSAqIEFwcGx5IHRoZSB3YSBOT09QUyB0byBwcmV2ZW50IHJpbmc6SEVBRCA9PSBy ZXE6VEFJTAotCQkJICogYXMgd2UgcmVzdWJtaXQgdGhlIHJlcXVlc3QuIFNlZSBnZW44X2VtaXRf cmVxdWVzdCgpCi0JCQkgKiBmb3Igd2hlcmUgd2UgcHJlcGFyZSB0aGUgcGFkZGluZyBhZnRlciB0 aGUgZW5kIG9mIHRoZQotCQkJICogcmVxdWVzdC4KKwkJCSAqIENvbnN1bWUgdGhlIFcvQSBOT09Q cyB0byBwcmV2ZW50IHJpbmc6SEVBRCA9PSByZXE6VEFJTCBhcworCQkJICogd2UgcmVzdWJtaXQg dGhlIHJlcXVlc3QuIFNlZSBpbnRlbF9sb2dpY2FsX3Jpbmdfc3VibWl0KCkKKwkJCSAqIHdoZXJl IHdlIHByZXBhcmUgdGhlIHBhZGRpbmcgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUgcmVxdWVzdC4KIAkJ CSAqLwogCQkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWY7CiAKQEAgLTc1MiwzMyAr NzU4LDQ3IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3dhaXRfZm9yX3NwYWNlKHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogfQogCiAvKgotICogaW50ZWxfbG9naWNhbF9yaW5n X2FkdmFuY2VfYW5kX3N1Ym1pdCgpIC0gYWR2YW5jZSB0aGUgdGFpbCBhbmQgc3VibWl0IHRoZSB3 b3JrbG9hZAotICogQHJlcXVlc3Q6IFJlcXVlc3QgdG8gYWR2YW5jZSB0aGUgbG9naWNhbCByaW5n YnVmZmVyIG9mLgorICogaW50ZWxfbG9naWNhbF9yaW5nX3N1Ym1pdCgpIC0gc3VibWl0IHRoZSB3 b3JrbG9hZCAodG8gR3VDIG9yIGV4ZWNsaXN0IHF1ZXVlKQorICogQHJlcXVlc3Q6IFJlcXVlc3Qg dG8gc3VibWl0CiAgKgotICogVGhlIHRhaWwgaXMgdXBkYXRlZCBpbiBvdXIgbG9naWNhbCByaW5n YnVmZmVyIHN0cnVjdCwgbm90IGluIHRoZSBhY3R1YWwgY29udGV4dC4gV2hhdAotICogcmVhbGx5 IGhhcHBlbnMgZHVyaW5nIHN1Ym1pc3Npb24gaXMgdGhhdCB0aGUgY29udGV4dCBhbmQgY3VycmVu dCB0YWlsIHdpbGwgYmUgcGxhY2VkCi0gKiBvbiBhIHF1ZXVlIHdhaXRpbmcgZm9yIHRoZSBFTFNQ IHRvIGJlIHJlYWR5IHRvIGFjY2VwdCBhIG5ldyBjb250ZXh0IHN1Ym1pc3Npb24uIEF0IHRoYXQK LSAqIHBvaW50LCB0aGUgdGFpbCAqaW5zaWRlKiB0aGUgY29udGV4dCBpcyB1cGRhdGVkIGFuZCB0 aGUgRUxTUCB3cml0dGVuIHRvLgorICogVGhlIHRhaWwgaXMgdXBkYXRlZCBpbiBvdXIgbG9naWNh bCByaW5nYnVmZmVyIHN0cnVjdCwgbm90IGluIHRoZSBhY3R1YWwKKyAqIGNvbnRleHQuIFdoYXQg cmVhbGx5IGhhcHBlbnMgZHVyaW5nIHN1Ym1pc3Npb24gaXMgdGhhdCB0aGUgY29udGV4dCBhbmQK KyAqIGN1cnJlbnQgdGFpbCB3aWxsIGJlIHBsYWNlZCBvbiBhIHF1ZXVlIHdhaXRpbmcgZm9yIHRo ZSBFTFNQIHRvIGJlIHJlYWR5IAorICogdG8gYWNjZXB0IGEgbmV3IGNvbnRleHQgc3VibWlzc2lv bi4gQXQgdGhhdCBwb2ludCwgdGhlIHRhaWwgKmluc2lkZSogdGhlCisgKiBjb250ZXh0IGlzIHVw ZGF0ZWQgYW5kIHRoZSBFTFNQIHdyaXR0ZW4gdG8gYnkgdGhlIHN1Ym1pdHRpbmcgYWdlbnQgaS5l LgorICogZWl0aGVyIHRoZSBkcml2ZXIgKGluIGV4ZWNsaXN0IG1vZGUpLCBvciB0aGUgR3VDIChp biBHdUMtc3VibWlzc2lvbiBtb2RlKS4KICAqLwogc3RhdGljIGludAotaW50ZWxfbG9naWNhbF9y aW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVl c3QpCitpbnRlbF9sb2dpY2FsX3Jpbmdfc3VibWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxdWVzdCkKIHsKIAlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJlcXVl c3QtPnJpbmdidWY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gcmVxdWVz dC0+aTkxNTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXF1ZXN0LT5yaW5n OwogCi0JaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2UocmluZ2J1Zik7CiAJcmVxdWVzdC0+dGFp bCA9IHJpbmdidWYtPnRhaWw7CiAKIAkvKgotCSAqIEhlcmUgd2UgYWRkIHR3byBleHRyYSBOT09Q cyBhcyBwYWRkaW5nIHRvIGF2b2lkCi0JICogbGl0ZSByZXN0b3JlIG9mIGEgY29udGV4dCB3aXRo IEhFQUQ9PVRBSUwuCi0JICoKLQkgKiBDYWxsZXIgbXVzdCByZXNlcnZlIFdBX1RBSUxfRFdPUkRT IGZvciB1cyEKKwkgKiBGaWxsIGluIGEgZmV3IE5PT1BzIGFmdGVyIHRoZSBlbmQgb2YgdGhlIHJl cXVlc3QgcHJvcGVyLAorCSAqIGFzIGEgYnVmZmVyIGJldHdlZW4gcmVxdWVzdHMgdG8gYmUgdXNl ZCBhcyBhIHdvcmthcm91bmQKKwkgKiBmb3Igbm90IGJlaW5nIGFsbG93ZWQgdG8gZG8gbGl0ZSBy ZXN0b3JlIHdpdGggSEVBRD09VEFJTC4KKwkgKiAoV2FJZGxlTGl0ZVJlc3RvcmUpLiBUaGVzZSB3 b3JkcyBtYXkgYmUgY29uc3VtZWQgYnkgdGhlCisJICogc3VibWlzc2lvbiBtZWNoYW5pc20gaWYg YSBjb250ZXh0IGlzICpyZSpzdWJtaXR0ZWQgd2hpbGUKKwkgKiAoYXBwYXJlbnRseSkgc3RpbGwg YWN0aXZlOyBvdGhlcndpc2UsIHRoZXkgd2lsbCBiZSBsZWZ0CisJICogYXMgYSBoYXJtbGVzcyBw cmVhbWJsZSB0byB0aGUgbmV4dCByZXF1ZXN0LgogCSAqLwotCWludGVsX2xvZ2ljYWxfcmluZ19l bWl0KHJpbmdidWYsIE1JX05PT1ApOwotCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYs IE1JX05PT1ApOwotCWludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlKHJpbmdidWYpOworCWlmIChX QV9UQUlMX0RXT1JEUyA+IDApIHsKKwkJaW50IHJldCwgaTsKKworCQkvKiBTYWZlIGJlY2F1c2Ug d2UgcmVzZXJ2ZWQgdGhlIHNwYWNlIGVhcmxpZXIgKi8KKwkJcmV0ID0gaW50ZWxfbG9naWNhbF9y aW5nX2JlZ2luKHJlcXVlc3QsIFdBX1RBSUxfRFdPUkRTKTsKKwkJaWYgKFdBUk5fT04ocmV0ICE9 IDApKQorCQkJcmV0dXJuIHJldDsKKworCQlmb3IgKGkgPSAwOyBpIDwgV0FfVEFJTF9EV09SRFM7 ICsraSkKKwkJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIE1JX05PT1ApOworCisJ CWludGVsX2xvZ2ljYWxfcmluZ19hZHZhbmNlKHJpbmdidWYpOworCX0KIAogCWlmIChpbnRlbF9y aW5nX3N0b3BwZWQoZW5naW5lKSkKIAkJcmV0dXJuIDA7CkBAIC05MDcsNyArOTI3LDggQEAgaW50 IGludGVsX2xvZ2ljYWxfcmluZ19yZXNlcnZlX3NwYWNlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxdWVzdCkKIAkgKiBhZGRpbmcgYW55IGNvbW1hbmRzIHRvIGl0IHRoZW4gdGhlcmUg bWlnaHQgbm90IGFjdHVhbGx5IGJlCiAJICogc3VmZmljaWVudCByb29tIGZvciB0aGUgc3VibWlz c2lvbiBjb21tYW5kcy4KIAkgKi8KLQlpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX3Jlc2VydmUo cmVxdWVzdC0+cmluZ2J1ZiwgTUlOX1NQQUNFX0ZPUl9BRERfUkVRVUVTVCk7CisJaW50ZWxfcmlu Z19yZXNlcnZlZF9zcGFjZV9yZXNlcnZlKHJlcXVlc3QtPnJpbmdidWYsCisJCQlNSU5fU1BBQ0Vf Rk9SX0FERF9SRVFVRVNUICsgV0FfVEFJTF9EV09SRFMpOwogCiAJcmV0dXJuIGludGVsX2xvZ2lj YWxfcmluZ19iZWdpbihyZXF1ZXN0LCAwKTsKIH0KQEAgLTE4NzUsMTMgKzE4OTYsNiBAQCBzdGF0 aWMgdm9pZCBieHRfYV9zZXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgdTMy IHNlcW5vKQogCWludGVsX2ZsdXNoX3N0YXR1c19wYWdlKHJpbmcsIEk5MTVfR0VNX0hXU19JTkRF WCk7CiB9CiAKLS8qCi0gKiBSZXNlcnZlIHNwYWNlIGZvciAyIE5PT1BzIGF0IHRoZSBlbmQgb2Yg ZWFjaCByZXF1ZXN0IHRvIGJlCi0gKiB1c2VkIGFzIGEgd29ya2Fyb3VuZCBmb3Igbm90IGJlaW5n IGFsbG93ZWQgdG8gZG8gbGl0ZQotICogcmVzdG9yZSB3aXRoIEhFQUQ9PVRBSUwgKFdhSWRsZUxp dGVSZXN0b3JlKS4KLSAqLwotI2RlZmluZSBXQV9UQUlMX0RXT1JEUyAyCi0KIHN0YXRpYyBpbmxp bmUgdTMyIGh3c19zZXFub19hZGRyZXNzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK IHsKIAlyZXR1cm4gZW5naW5lLT5zdGF0dXNfcGFnZS5nZnhfYWRkciArIEk5MTVfR0VNX0hXU19J TkRFWF9BRERSOwpAQCAtMTg5Miw3ICsxOTA2LDcgQEAgc3RhdGljIGludCBnZW44X2VtaXRfcmVx dWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCiAJc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJpbmdidWYgPSByZXF1ZXN0LT5yaW5nYnVmOwogCWludCByZXQ7CiAKLQly ZXQgPSBpbnRlbF9sb2dpY2FsX3JpbmdfYmVnaW4ocmVxdWVzdCwgNiArIFdBX1RBSUxfRFdPUkRT KTsKKwlyZXQgPSBpbnRlbF9sb2dpY2FsX3JpbmdfYmVnaW4ocmVxdWVzdCwgNik7CiAJaWYgKHJl dCkKIAkJcmV0dXJuIHJldDsKIApAQCAtMTkwOCw3ICsxOTIyLDkgQEAgc3RhdGljIGludCBnZW44 X2VtaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCiAJaW50 ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8o cmVxdWVzdCkpOwogCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIE1JX1VTRVJfSU5U RVJSVVBUKTsKIAlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9OT09QKTsKLQly ZXR1cm4gaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChyZXF1ZXN0KTsKKwlp bnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZShyaW5nYnVmKTsKKworCXJldHVybiBpbnRlbF9sb2dp Y2FsX3Jpbmdfc3VibWl0KHJlcXVlc3QpOwogfQogCiBzdGF0aWMgaW50IGdlbjhfZW1pdF9yZXF1 ZXN0X3JlbmRlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCkBAIC0xOTE2 LDcgKzE5MzIsNyBAQCBzdGF0aWMgaW50IGdlbjhfZW1pdF9yZXF1ZXN0X3JlbmRlcihzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCiAJc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmdidWYgPSByZXF1ZXN0LT5yaW5nYnVmOwogCWludCByZXQ7CiAKLQlyZXQgPSBpbnRlbF9s b2dpY2FsX3JpbmdfYmVnaW4ocmVxdWVzdCwgNiArIFdBX1RBSUxfRFdPUkRTKTsKKwlyZXQgPSBp bnRlbF9sb2dpY2FsX3JpbmdfYmVnaW4ocmVxdWVzdCwgNik7CiAJaWYgKHJldCkKIAkJcmV0dXJu IHJldDsKIApAQCAtMTkzMyw3ICsxOTQ5LDkgQEAgc3RhdGljIGludCBnZW44X2VtaXRfcmVxdWVz dF9yZW5kZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQogCWludGVsX2xv Z2ljYWxfcmluZ19lbWl0KHJpbmdidWYsIDApOwogCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0KHJp bmdidWYsIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKHJlcXVlc3QpKTsKIAlpbnRlbF9sb2dp Y2FsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9VU0VSX0lOVEVSUlVQVCk7Ci0JcmV0dXJuIGludGVs X2xvZ2ljYWxfcmluZ19hZHZhbmNlX2FuZF9zdWJtaXQocmVxdWVzdCk7CisJaW50ZWxfbG9naWNh bF9yaW5nX2FkdmFuY2UocmluZ2J1Zik7CisKKwlyZXR1cm4gaW50ZWxfbG9naWNhbF9yaW5nX3N1 Ym1pdChyZXF1ZXN0KTsKIH0KIAogc3RhdGljIGludCBpbnRlbF9scl9jb250ZXh0X3JlbmRlcl9z dGF0ZV9pbml0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQotLSAKMS45LjEKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==