From mboxrd@z Thu Jan 1 00:00:00 1970 From: Animesh Manna Subject: [PATCH 1/6] drm/i915/gen9: Removed csr-lock and csr-state Date: Wed, 8 Jul 2015 19:54:42 +0530 Message-ID: <1436365487-19242-2-git-send-email-animesh.manna@intel.com> References: <20150707131823.GT7568@phenom.ffwll.local> <1436365487-19242-1-git-send-email-animesh.manna@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 63CAB6E617 for ; Wed, 8 Jul 2015 07:24:06 -0700 (PDT) In-Reply-To: <1436365487-19242-1-git-send-email-animesh.manna@intel.com> 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 List-Id: intel-gfx@lists.freedesktop.org djE6IEFzIHBlciByZXZpZXcgY29tbWVudHMgZnJvbSBEYW5pZWwsIHJlbW92ZWQgdGhlIGNzci1s b2NrCmFuZCBjc3Itc3RhdGUgd2hpY2ggd2FzIHVzZWQgYmVmb3JlIGluIGRtYyBmaXJtd2FyZSBs b2FkaW5nLgpQbGFubmluZyB0byBoYXZlIGEgc2luZ2xlIGFzeW5jIHRhc2sgd2hpY2ggd2lsbCBy ZXNwb25zaWJsZQpmb3IgZmlybXdhcmUgbG9hZGluZyBhbmQgcmVnaXN0ZXIgcHJvZ3JhbW1pbmcg Zm9yIGRjNS9kYzYsCnNvIHJlbW92ZWQgY3NyLWxvY2sgYW5kIGNzci1zdGF0ZSBmcm9tIGludGVs X2NzciBzdHJ1Y3R1cmUuCgpTaWduZWQtb2ZmLWJ5OiBBbmltZXNoIE1hbm5hIDxhbmltZXNoLm1h bm5hQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jICAgICAg ICAgfCAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgfCAgNiAt LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAxMCAtLS0tLS0t CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYyAgICAgICAgfCA1MiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o ICAgICAgICB8ICAzIC0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMg fCAxNyArKy0tLS0tLS0tLQogNiBmaWxlcyBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDg2IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCmluZGV4IGM1MzQ5ZmEuLjFlYmYwZTEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwpAQCAtODIwLDcgKzgyMCw2IEBAIGludCBpOTE1X2Ry aXZlcl9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiAJ c3Bpbl9sb2NrX2luaXQoJmRldl9wcml2LT5tbWlvX2ZsaXBfbG9jayk7CiAJbXV0ZXhfaW5pdCgm ZGV2X3ByaXYtPnNiX2xvY2spOwogCW11dGV4X2luaXQoJmRldl9wcml2LT5tb2Rlc2V0X3Jlc3Rv cmVfbG9jayk7Ci0JbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPmNzcl9sb2NrKTsKIAogCWludGVsX3Bt X3NldHVwKGRldik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCmluZGV4IGU0NGRjMGQuLjRkOGQy ZDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtMTAxOSwxMiArMTAxOSw2IEBAIHN0YXRp YyBpbnQgc2tsX3N1c3BlbmRfY29tcGxldGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQogewogCS8qIEVuYWJsaW5nIERDNiBpcyBub3QgYSBoYXJkIHJlcXVpcmVtZW50IHRvIGVu dGVyIHJ1bnRpbWUgRDMgKi8KIAotCS8qCi0JICogVGhpcyBpcyB0byBlbnN1cmUgdGhhdCBDU1Ig aXNuJ3QgaWRlbnRpZmllZCBhcyBsb2FkZWQgYmVmb3JlCi0JICogQ1NSLWxvYWRpbmcgcHJvZ3Jh bSBpcyBjYWxsZWQgZHVyaW5nIHJ1bnRpbWUtcmVzdW1lLgotCSAqLwotCWludGVsX2Nzcl9sb2Fk X3N0YXR1c19zZXQoZGV2X3ByaXYsIEZXX1VOSU5JVElBTElaRUQpOwotCiAJc2tsX3VuaW5pdF9j ZGNsayhkZXZfcHJpdik7CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4 IDFkYmQ5NTcuLmIzYTBmZDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtNzM3LDEyICs3 MzcsNiBAQCBzdHJ1Y3QgaW50ZWxfdW5jb3JlIHsKICNkZWZpbmUgZm9yX2VhY2hfZndfZG9tYWlu KGRvbWFpbl9fLCBkZXZfcHJpdl9fLCBpX18pIFwKIAlmb3JfZWFjaF9md19kb21haW5fbWFzayhk b21haW5fXywgRk9SQ0VXQUtFX0FMTCwgZGV2X3ByaXZfXywgaV9fKQogCi1lbnVtIGNzcl9zdGF0 ZSB7Ci0JRldfVU5JTklUSUFMSVpFRCA9IDAsCi0JRldfTE9BREVELAotCUZXX0ZBSUxFRAotfTsK LQogc3RydWN0IGludGVsX2NzciB7CiAJY29uc3QgY2hhciAqZndfcGF0aDsKIAlfX2JlMzIgKmRt Y19wYXlsb2FkOwpAQCAtNzUwLDcgKzc0NCw2IEBAIHN0cnVjdCBpbnRlbF9jc3IgewogCXVpbnQz Ml90IG1taW9fY291bnQ7CiAJdWludDMyX3QgbW1pb2FkZHJbOF07CiAJdWludDMyX3QgbW1pb2Rh dGFbOF07Ci0JZW51bSBjc3Jfc3RhdGUgc3RhdGU7CiB9OwogCiAjZGVmaW5lIERFVl9JTkZPX0ZP Ul9FQUNIX0ZMQUcoZnVuYywgc2VwKSBcCkBAIC0xNjg5LDkgKzE2ODIsNiBAQCBzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSB7CiAKIAlzdHJ1Y3QgaW50ZWxfY3NyIGNzcjsKIAotCS8qIERpc3BsYXkg Q1NSLXJlbGF0ZWQgcHJvdGVjdGlvbiAqLwotCXN0cnVjdCBtdXRleCBjc3JfbG9jazsKLQogCXN0 cnVjdCBpbnRlbF9nbWJ1cyBnbWJ1c1tHTUJVU19OVU1fUElOU107CiAKIAkvKiogZ21idXNfbXV0 ZXggcHJvdGVjdHMgYWdhaW5zdCBjb25jdXJyZW50IHVzYWdlIG9mIHRoZSBzaW5nbGUgaHcgZ21i dXMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nzci5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfY3NyLmMKaW5kZXggNmQ4YTdiZi4uNjJmZDFiMCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3NyLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfY3NyLmMKQEAgLTMyLDEzICszMiw2IEBACiAgKiBvbndhcmRzIHRvIGRy aXZlIG5ld2x5IGFkZGVkIERNQyAoRGlzcGxheSBtaWNyb2NvbnRyb2xsZXIpIGluIGRpc3BsYXkK ICAqIGVuZ2luZSB0byBzYXZlIGFuZCByZXN0b3JlIHRoZSBzdGF0ZSBvZiBkaXNwbGF5IGVuZ2lu ZSB3aGVuIGl0IGVudGVyIGludG8KICAqIGxvdy1wb3dlciBzdGF0ZSBhbmQgY29tZXMgYmFjayB0 byBub3JtYWwuCi0gKgotICogRmlybXdhcmUgbG9hZGluZyBzdGF0dXMgd2lsbCBiZSBvbmUgb2Yg dGhlIGJlbG93IHN0YXRlczogRldfVU5JTklUSUFMSVpFRCwKLSAqIEZXX0xPQURFRCwgRldfRkFJ TEVELgotICoKLSAqIE9uY2UgdGhlIGZpcm13YXJlIGlzIHdyaXR0ZW4gaW50byB0aGUgcmVnaXN0 ZXJzIHN0YXR1cyB3aWxsIGJlIG1vdmVkIGZyb20KLSAqIEZXX1VOSU5JVElBTElaRUQgdG8gRldf TE9BREVEIGFuZCBmb3IgYW55IGVycm9uZW91cyBjb25kaXRpb24gc3RhdHVzIHdpbGwKLSAqIGJl IG1vdmVkIHRvIEZXX0ZBSUxFRC4KICAqLwogCiAjZGVmaW5lIEk5MTVfQ1NSX1NLTCAiaTkxNS9z a2xfZG1jX3ZlcjEuYmluIgpAQCAtMjAwLDQwICsxOTMsNiBAQCBzdGF0aWMgY2hhciBpbnRlbF9n ZXRfc3Vic3RlcHBpbmcoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIH0KIAogLyoqCi0gKiBpbnRl bF9jc3JfbG9hZF9zdGF0dXNfZ2V0KCkgLSB0byBnZXQgZmlybXdhcmUgbG9hZGluZyBzdGF0dXMu Ci0gKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlLgotICoKLSAqIFRoaXMgZnVuY3Rpb24gaGVscHMg dG8gZ2V0IHRoZSBmaXJtd2FyZSBsb2FkaW5nIHN0YXR1cy4KLSAqCi0gKiBSZXR1cm46IEZpcm13 YXJlIGxvYWRpbmcgc3RhdHVzLgotICovCi1lbnVtIGNzcl9zdGF0ZSBpbnRlbF9jc3JfbG9hZF9z dGF0dXNfZ2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKLXsKLQllbnVtIGNz cl9zdGF0ZSBzdGF0ZTsKLQotCW11dGV4X2xvY2soJmRldl9wcml2LT5jc3JfbG9jayk7Ci0Jc3Rh dGUgPSBkZXZfcHJpdi0+Y3NyLnN0YXRlOwotCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmNzcl9s b2NrKTsKLQotCXJldHVybiBzdGF0ZTsKLX0KLQotLyoqCi0gKiBpbnRlbF9jc3JfbG9hZF9zdGF0 dXNfc2V0KCkgLSBoZWxwIHRvIHNldCBmaXJtd2FyZSBsb2FkaW5nIHN0YXR1cy4KLSAqIEBkZXZf cHJpdjogaTkxNSBkZXZpY2UuCi0gKiBAc3RhdGU6IGVudW1lcmF0aW9uIG9mIGZpcm13YXJlIGxv YWRpbmcgc3RhdHVzLgotICoKLSAqIFNldCB0aGUgZmlybXdhcmUgbG9hZGluZyBzdGF0dXMuCi0g Ki8KLXZvaWQgaW50ZWxfY3NyX2xvYWRfc3RhdHVzX3NldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCi0JCQllbnVtIGNzcl9zdGF0ZSBzdGF0ZSkKLXsKLQltdXRleF9sb2NrKCZk ZXZfcHJpdi0+Y3NyX2xvY2spOwotCWRldl9wcml2LT5jc3Iuc3RhdGUgPSBzdGF0ZTsKLQltdXRl eF91bmxvY2soJmRldl9wcml2LT5jc3JfbG9jayk7Ci19Ci0KLS8qKgogICogaW50ZWxfY3NyX2xv YWRfcHJvZ3JhbSgpIC0gd3JpdGUgdGhlIGZpcm13YXJlIGZyb20gbWVtb3J5IHRvIHJlZ2lzdGVy LgogICogQGRldjogZHJtIGRldmljZS4KICAqCkBAIC0yNTIsNyArMjExLDYgQEAgdm9pZCBpbnRl bF9jc3JfbG9hZF9wcm9ncmFtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCXJldHVybjsKIAl9 CiAKLQltdXRleF9sb2NrKCZkZXZfcHJpdi0+Y3NyX2xvY2spOwogCWZ3X3NpemUgPSBkZXZfcHJp di0+Y3NyLmRtY19md19zaXplOwogCWZvciAoaSA9IDA7IGkgPCBmd19zaXplOyBpKyspCiAJCUk5 MTVfV1JJVEUoQ1NSX1BST0dSQU1fQkFTRSArIGkgKiA0LApAQCAtMjYyLDkgKzIyMCw2IEBAIHZv aWQgaW50ZWxfY3NyX2xvYWRfcHJvZ3JhbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlJOTE1 X1dSSVRFKGRldl9wcml2LT5jc3IubW1pb2FkZHJbaV0sCiAJCQlkZXZfcHJpdi0+Y3NyLm1taW9k YXRhW2ldKTsKIAl9Ci0KLQlkZXZfcHJpdi0+Y3NyLnN0YXRlID0gRldfTE9BREVEOwotCW11dGV4 X3VubG9jaygmZGV2X3ByaXYtPmNzcl9sb2NrKTsKIH0KIAogc3RhdGljIHZvaWQgZmluaXNoX2Nz cl9sb2FkKGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncsIHZvaWQgKmNvbnRleHQpCkBAIC0zOTMs OCArMzQ4LDYgQEAgc3RhdGljIHZvaWQgZmluaXNoX2Nzcl9sb2FkKGNvbnN0IHN0cnVjdCBmaXJt d2FyZSAqZncsIHZvaWQgKmNvbnRleHQpCiBvdXQ6CiAJaWYgKGZ3X2xvYWRlZCkKIAkJaW50ZWxf cnVudGltZV9wbV9wdXQoZGV2X3ByaXYpOwotCWVsc2UKLQkJaW50ZWxfY3NyX2xvYWRfc3RhdHVz X3NldChkZXZfcHJpdiwgRldfRkFJTEVEKTsKIAogCXJlbGVhc2VfZmlybXdhcmUoZncpOwogfQpA QCAtNDE5LDcgKzM3Miw2IEBAIHZvaWQgaW50ZWxfY3NyX3Vjb2RlX2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIAkJY3NyLT5md19wYXRoID0gSTkxNV9DU1JfU0tMOwogCWVsc2UgewogCQlE Uk1fRVJST1IoIlVuZXhwZWN0ZWQ6IG5vIGtub3duIENTUiBmaXJtd2FyZSBmb3IgcGxhdGZvcm1c biIpOwotCQlpbnRlbF9jc3JfbG9hZF9zdGF0dXNfc2V0KGRldl9wcml2LCBGV19GQUlMRUQpOwog CQlyZXR1cm47CiAJfQogCkBAIC00MzgsNyArMzkwLDYgQEAgdm9pZCBpbnRlbF9jc3JfdWNvZGVf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJCWZpbmlzaF9jc3JfbG9hZCk7CiAJaWYg KHJldCkgewogCQlpOTE1X2Zpcm13YXJlX2xvYWRfZXJyb3JfcHJpbnQoY3NyLT5md19wYXRoLCBy ZXQpOwotCQlpbnRlbF9jc3JfbG9hZF9zdGF0dXNfc2V0KGRldl9wcml2LCBGV19GQUlMRUQpOwog CX0KIH0KIApAQCAtNDU2LDE0ICs0MDcsMTEgQEAgdm9pZCBpbnRlbF9jc3JfdWNvZGVfZmluaShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWlmICghSEFTX0NTUihkZXYpKQogCQlyZXR1cm47CiAK LQlpbnRlbF9jc3JfbG9hZF9zdGF0dXNfc2V0KGRldl9wcml2LCBGV19GQUlMRUQpOwogCWtmcmVl KGRldl9wcml2LT5jc3IuZG1jX3BheWxvYWQpOwogfQogCiB2b2lkIGFzc2VydF9jc3JfbG9hZGVk KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlXQVJOKGludGVsX2Nzcl9s b2FkX3N0YXR1c19nZXQoZGV2X3ByaXYpICE9IEZXX0xPQURFRCwKLQkgICAgICJDU1IgaXMgbm90 IGxvYWRlZC5cbiIpOwogCVdBUk4oIUk5MTVfUkVBRChDU1JfUFJPR1JBTV9CQVNFKSwKIAkJCQki Q1NSIHByb2dyYW0gc3RvcmFnZSBzdGFydCBpcyBOVUxMXG4iKTsKIAlXQVJOKCFJOTE1X1JFQUQo Q1NSX1NTUF9CQVNFKSwgIkNTUiBTU1AgQmFzZSBOb3QgZmluZVxuIik7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCmluZGV4IDNmMGE4OTAuLmY0MzdhOTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCkBAIC0xMTYzLDkgKzExNjMsNiBAQCB1MzIgc2tsX3BsYW5lX2N0bF9yb3RhdGlvbih1bnNp Z25lZCBpbnQgcm90YXRpb24pOwogCiAvKiBpbnRlbF9jc3IuYyAqLwogdm9pZCBpbnRlbF9jc3Jf dWNvZGVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKLWVudW0gY3NyX3N0YXRlIGludGVs X2Nzcl9sb2FkX3N0YXR1c19nZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsK LXZvaWQgaW50ZWxfY3NyX2xvYWRfc3RhdHVzX3NldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCi0JCQkJCWVudW0gY3NyX3N0YXRlIHN0YXRlKTsKIHZvaWQgaW50ZWxfY3NyX2xv YWRfcHJvZ3JhbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIHZvaWQgaW50ZWxfY3NyX3Vjb2Rl X2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIGFzc2VydF9jc3JfbG9hZGVkKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ydW50aW1lX3BtLmMKaW5kZXggMWE0NTM4NS4uMGI4MWQ2ZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3J1bnRpbWVfcG0uYwpAQCAtNjQ0LDIxICs2NDQsMTAgQEAgc3RhdGljIHZvaWQg c2tsX3NldF9wb3dlcl93ZWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAog CQkJaWYgKChHRU45X0VOQUJMRV9EQzUoZGV2KSB8fCBTS0xfRU5BQkxFX0RDNihkZXYpKSAmJgog CQkJCXBvd2VyX3dlbGwtPmRhdGEgPT0gU0tMX0RJU1BfUFdfMikgewotCQkJCWVudW0gY3NyX3N0 YXRlIHN0YXRlOwotCQkJCS8qIFRPRE86IHdhaXQgZm9yIGEgY29tcGxldGlvbiBldmVudCBvcgot CQkJCSAqIHNpbWlsYXIgaGVyZSBpbnN0ZWFkIG9mIGJ1c3kKLQkJCQkgKiB3YWl0aW5nIHVzaW5n IHdhaXRfZm9yIGZ1bmN0aW9uLgotCQkJCSAqLwotCQkJCXdhaXRfZm9yKChzdGF0ZSA9IGludGVs X2Nzcl9sb2FkX3N0YXR1c19nZXQoZGV2X3ByaXYpKSAhPQotCQkJCQkJRldfVU5JTklUSUFMSVpF RCwgMTAwMCk7Ci0JCQkJaWYgKHN0YXRlICE9IEZXX0xPQURFRCkKLQkJCQkJRFJNX0VSUk9SKCJD U1IgZmlybXdhcmUgbm90IHJlYWR5ICglZClcbiIsCi0JCQkJCQkJc3RhdGUpOworCQkJCWlmIChT S0xfRU5BQkxFX0RDNihkZXYpKQorCQkJCQlza2xfZW5hYmxlX2RjNihkZXZfcHJpdik7CiAJCQkJ ZWxzZQotCQkJCQlpZiAoU0tMX0VOQUJMRV9EQzYoZGV2KSkKLQkJCQkJCXNrbF9lbmFibGVfZGM2 KGRldl9wcml2KTsKLQkJCQkJZWxzZQotCQkJCQkJZ2VuOV9lbmFibGVfZGM1KGRldl9wcml2KTsK KwkJCQkJZ2VuOV9lbmFibGVfZGM1KGRldl9wcml2KTsKIAkJCX0KIAkJfQogCX0KLS0gCjIuMC4y CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=