From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: [PATCH 5/6] [v10] drm/i915: Add format modifiers for Intel Date: Tue, 1 Aug 2017 09:58:16 -0700 Message-ID: <20170801165817.7063-5-ben@bwidawsk.net> References: <20170801165817.7063-1-ben@bwidawsk.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170801165817.7063-1-ben@bwidawsk.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel GFX , DRI Development Cc: Ben Widawsky , "Kristian H . Kristensen" List-Id: dri-devel@lists.freedesktop.org VGhpcyB3YXMgYmFzZWQgb24gYSBwYXRjaCBvcmlnaW5hbGx5IGJ5IEtyaXN0aWFuLiBJdCBoYXMg YmVlbiBtb2RpZmllZApwcmV0dHkgaGVhdmlseSB0byB1c2UgdGhlIG5ldyBjYWxsYmFja3MgZnJv bSB0aGUgcHJldmlvdXMgcGF0Y2guCgp2MjoKICAtIEFkZCBMSU5FQVIgYW5kIFlmIG1vZGlmaWVy cyB0byBsaXN0IChWaWxsZSkKICAtIENvbWJpbmUgaTh4eCBhbmQgaTk2NSBpbnRvIG9uZSBsaXN0 IG9mIGZvcm1hdHMgKFZpbGxlKQogIC0gQWxsb3cgMTAxMDEwMiBmb3JtYXRzIGZvciBZL1lmIHRp bGVkIChWaWxsZSkKCnYzOgogIC0gSGFuZGxlIGN1cnNvciBmb3JtYXRzIChWaWxsZSkKICAtIFB1 dCBoYW5kbGluZyBmb3IgTElORUFSIGluIHRoZSBtb2Rfc3VwcG9ydCBmdW5jdGlvbnMgKFZpbGxl KQoKdjQ6CiAgLSBMaXN0IGVhY2ggbW9kaWZpZXIgZXhwbGljaXRseSBpbiBzdXBwb3J0ZWQgbW9k aWZpZXJzIChWaWxsZSkKICAtIEhhbmRsZSB0aGUgQ1VSU09SIHBsYW5lIChWaWxsZSkKCnY1Ogog IC0gU3BsaXQgb3V0IGN1cnNvciBhbmQgc3ByaXRlIGhhbmRsaW5nIChWaWxsZSkKCnY2OgogIC0g QWN0dWFsbHkgdXNlIHRoZSBzcHJpdGUgZnVuY3MgKEVtaWwpCiAgLSBVc2UgdW5yZWFjaGFibGUg KEVtaWwpCgp2NzoKICAtIE9ubHkgYWxsb3cgSW50ZWwgbW9kaWZpZXJzIGFuZCBMSU5FQVIgKEJl bikKCnY4CiAgLSBGaXggc3BpdGUgYXNzZXJ0IGludHJvZHVjZWQgaW4gdjYgKERhbmllbCkKCnY5 CiAgLSBDaGFuZ2UgdmVuZG9yIGNoZWNrIGxvZ2ljIHRvIGF2b2lkIG1hZ2ljIDU2IChFbWlsKQog IC0gUmVvcmRlciBza2xfbW9kX3N1cHBvcnQgKFZpbGxlKQogIC0gbWFrZSBpbnRlbF9wbGFuZV9m dW5jcyBzdGF0aWMsIGNvdWxkIGJlIGRvbmUgYXMgb2YgdjUgKFZpbGxlKQogIC0gcmVuYW1lIGxv Y2FsIHZhcmlhYmxlIGludGVsX2Zvcm1hdF9tb2RpZmllcnMgdG8gbW9kaWZpZXJzIChWaWxsZSkK ICAgIC0gYWN0dWFsbHkgdXNlIHNwcml0ZSBtb2RpZmllcnMKICAtIHNwbGl0IG91dCBtb2RpZmll ci9mb3JtYXRzIGJ5IHBsYXRmb3JtIChWaWxsZSkKCnYxMDoKICAtIFVuZG8gdmVuZG9yIGNoZWNr IGZyb20gdjkKCkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgpDYzogS3Jpc3RpYW4gSC4gS3Jpc3RlbnNlbiA8aG9lZ3NiZXJnQGdtYWlsLmNvbT4KUmV2 aWV3ZWQtYnk6IEVtaWwgVmVsaWtvdiA8ZW1pbC5sLnZlbGlrb3ZAZ21haWwuY29tPiAodjgpClNp Z25lZC1vZmYtYnk6IEJlbiBXaWRhd3NreSA8YmVuQGJ3aWRhd3NrLm5ldD4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAxMjcgKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgICAxIC0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICB8IDE0MSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLQogMyBmaWxlcyBjaGFuZ2VkLCAyNTkgaW5zZXJ0aW9ucygr KSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4 IGI5ZGRhMDM2NzhjMC4uYWQ0OWI5OWVmMjVmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCkBAIC03Miw2ICs3MiwxMiBAQCBzdGF0aWMgY29uc3QgdWludDMyX3QgaTk2NV9wcmlt YXJ5X2Zvcm1hdHNbXSA9IHsKIAlEUk1fRk9STUFUX1hCR1IyMTAxMDEwLAogfTsKIAorc3RhdGlj IGNvbnN0IHVpbnQ2NF90IGk5eHhfZm9ybWF0X21vZGlmaWVyc1tdID0geworCUk5MTVfRk9STUFU X01PRF9YX1RJTEVELAorCURSTV9GT1JNQVRfTU9EX0xJTkVBUiwKKwlEUk1fRk9STUFUX01PRF9J TlZBTElECit9OworCiBzdGF0aWMgY29uc3QgdWludDMyX3Qgc2tsX3ByaW1hcnlfZm9ybWF0c1td ID0gewogCURSTV9GT1JNQVRfQzgsCiAJRFJNX0ZPUk1BVF9SR0I1NjUsCkBAIC04NywxMSArOTMs MjQgQEAgc3RhdGljIGNvbnN0IHVpbnQzMl90IHNrbF9wcmltYXJ5X2Zvcm1hdHNbXSA9IHsKIAlE Uk1fRk9STUFUX1ZZVVksCiB9OwogCitzdGF0aWMgY29uc3QgdWludDY0X3Qgc2tsX2Zvcm1hdF9t b2RpZmllcnNbXSA9IHsKKwlJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQsCisJSTkxNV9GT1JNQVRf TU9EX1lfVElMRUQsCisJSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQsCisJRFJNX0ZPUk1BVF9NT0Rf TElORUFSLAorCURSTV9GT1JNQVRfTU9EX0lOVkFMSUQKK307CisKIC8qIEN1cnNvciBmb3JtYXRz ICovCiBzdGF0aWMgY29uc3QgdWludDMyX3QgaW50ZWxfY3Vyc29yX2Zvcm1hdHNbXSA9IHsKIAlE Uk1fRk9STUFUX0FSR0I4ODg4LAogfTsKIAorc3RhdGljIGNvbnN0IHVpbnQ2NF90IGN1cnNvcl9m b3JtYXRfbW9kaWZpZXJzW10gPSB7CisJRFJNX0ZPUk1BVF9NT0RfTElORUFSLAorCURSTV9GT1JN QVRfTU9EX0lOVkFMSUQKK307CisKIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19jbG9ja19nZXQoc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCiAJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnKTsKIHN0YXRpYyB2b2lkIGlyb25sYWtlX3BjaF9jbG9ja19nZXQoc3RydWN0IGludGVs X2NydGMgKmNydGMsCkBAIC0xMzc5Nyw3ICsxMzgxNiw5OCBAQCB2b2lkIGludGVsX3BsYW5lX2Rl c3Ryb3koc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCiAJa2ZyZWUodG9faW50ZWxfcGxhbmUocGxh bmUpKTsKIH0KIAotY29uc3Qgc3RydWN0IGRybV9wbGFuZV9mdW5jcyBpbnRlbF9wbGFuZV9mdW5j cyA9IHsKK3N0YXRpYyBib29sIGk4eHhfbW9kX3N1cHBvcnRlZCh1aW50MzJfdCBmb3JtYXQsIHVp bnQ2NF90IG1vZGlmaWVyKQoreworCXN3aXRjaCAoZm9ybWF0KSB7CisJY2FzZSBEUk1fRk9STUFU X0M4OgorCWNhc2UgRFJNX0ZPUk1BVF9SR0I1NjU6CisJY2FzZSBEUk1fRk9STUFUX1hSR0IxNTU1 OgorCWNhc2UgRFJNX0ZPUk1BVF9YUkdCODg4ODoKKwkJcmV0dXJuIG1vZGlmaWVyID09IERSTV9G T1JNQVRfTU9EX0xJTkVBUiB8fAorCQkJbW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1hfVElM RUQ7CisJZGVmYXVsdDoKKwkJcmV0dXJuIGZhbHNlOworCX0KK30KKworc3RhdGljIGJvb2wgaTk2 NV9tb2Rfc3VwcG9ydGVkKHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgbW9kaWZpZXIpCit7CisJ c3dpdGNoIChmb3JtYXQpIHsKKwljYXNlIERSTV9GT1JNQVRfQzg6CisJY2FzZSBEUk1fRk9STUFU X1JHQjU2NToKKwljYXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6CisJY2FzZSBEUk1fRk9STUFUX1hC R1I4ODg4OgorCWNhc2UgRFJNX0ZPUk1BVF9YUkdCMjEwMTAxMDoKKwljYXNlIERSTV9GT1JNQVRf WEJHUjIxMDEwMTA6CisJCXJldHVybiBtb2RpZmllciA9PSBEUk1fRk9STUFUX01PRF9MSU5FQVIg fHwKKwkJCW1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9YX1RJTEVEOworCWRlZmF1bHQ6CisJ CXJldHVybiBmYWxzZTsKKwl9Cit9CisKK3N0YXRpYyBib29sIHNrbF9tb2Rfc3VwcG9ydGVkKHVp bnQzMl90IGZvcm1hdCwgdWludDY0X3QgbW9kaWZpZXIpCit7CisJc3dpdGNoIChmb3JtYXQpIHsK KwljYXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6CisJY2FzZSBEUk1fRk9STUFUX1hCR1I4ODg4Ogor CWNhc2UgRFJNX0ZPUk1BVF9BUkdCODg4ODoKKwljYXNlIERSTV9GT1JNQVRfQUJHUjg4ODg6CisJ Y2FzZSBEUk1fRk9STUFUX1JHQjU2NToKKwljYXNlIERSTV9GT1JNQVRfWFJHQjIxMDEwMTA6CisJ Y2FzZSBEUk1fRk9STUFUX1hCR1IyMTAxMDEwOgorCWNhc2UgRFJNX0ZPUk1BVF9ZVVlWOgorCWNh c2UgRFJNX0ZPUk1BVF9ZVllVOgorCWNhc2UgRFJNX0ZPUk1BVF9VWVZZOgorCWNhc2UgRFJNX0ZP Uk1BVF9WWVVZOgorCQlpZiAobW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEKQor CQkJcmV0dXJuIHRydWU7CisJCS8qIGZhbGwgdGhyb3VnaCAqLworCWNhc2UgRFJNX0ZPUk1BVF9D ODoKKwkJaWYgKG1vZGlmaWVyID09IERSTV9GT1JNQVRfTU9EX0xJTkVBUiB8fAorCQkgICAgbW9k aWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQgfHwKKwkJICAgIG1vZGlmaWVyID09IEk5 MTVfRk9STUFUX01PRF9ZX1RJTEVEKQorCQkJcmV0dXJuIHRydWU7CisJCS8qIGZhbGwgdGhyb3Vn aCAqLworCWRlZmF1bHQ6CisJCXJldHVybiBmYWxzZTsKKwl9Cit9CisKK3N0YXRpYyBib29sIGlu dGVsX3ByaW1hcnlfcGxhbmVfZm9ybWF0X21vZF9zdXBwb3J0ZWQoc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCisJCQkJCQkgICAgIHVpbnQzMl90IGZvcm1hdCwKKwkJCQkJCSAgICAgdWludDY0X3Qg bW9kaWZpZXIpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShwbGFuZS0+ZGV2KTsKKworCWlmIChXQVJOX09OKG1vZGlmaWVyID09IERSTV9GT1JNQVRfTU9E X0lOVkFMSUQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAoKG1vZGlmaWVyID4+IDU2KSAhPSBE Uk1fRk9STUFUX01PRF9WRU5ET1JfSU5URUwgJiYKKwkgICAgbW9kaWZpZXIgIT0gRFJNX0ZPUk1B VF9NT0RfTElORUFSKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA+PSA5KQorCQlyZXR1cm4gc2tsX21vZF9zdXBwb3J0ZWQoZm9ybWF0LCBtb2RpZmllcik7CisJ ZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA0KQorCQlyZXR1cm4gaTk2NV9tb2Rfc3Vw cG9ydGVkKGZvcm1hdCwgbW9kaWZpZXIpOworCWVsc2UKKwkJcmV0dXJuIGk4eHhfbW9kX3N1cHBv cnRlZChmb3JtYXQsIG1vZGlmaWVyKTsKKworCXVucmVhY2hhYmxlKCk7Cit9CisKK3N0YXRpYyBi b29sIGludGVsX2N1cnNvcl9wbGFuZV9mb3JtYXRfbW9kX3N1cHBvcnRlZChzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKKwkJCQkJCSAgICB1aW50MzJfdCBmb3JtYXQsCisJCQkJCQkgICAgdWludDY0 X3QgbW9kaWZpZXIpCit7CisJaWYgKFdBUk5fT04obW9kaWZpZXIgPT0gRFJNX0ZPUk1BVF9NT0Rf SU5WQUxJRCkpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiBtb2RpZmllciA9PSBEUk1fRk9S TUFUX01PRF9MSU5FQVIgJiYgZm9ybWF0ID09IERSTV9GT1JNQVRfQVJHQjg4ODg7Cit9CisKK3N0 YXRpYyBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIGludGVsX3BsYW5lX2Z1bmNzID0gewogCS51cGRh dGVfcGxhbmUgPSBkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfcGxhbmUsCiAJLmRpc2FibGVfcGxh bmUgPSBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lLAogCS5kZXN0cm95ID0gaW50ZWxf cGxhbmVfZGVzdHJveSwKQEAgLTEzODA2LDYgKzEzOTE2LDcgQEAgY29uc3Qgc3RydWN0IGRybV9w bGFuZV9mdW5jcyBpbnRlbF9wbGFuZV9mdW5jcyA9IHsKIAkuYXRvbWljX3NldF9wcm9wZXJ0eSA9 IGludGVsX3BsYW5lX2F0b21pY19zZXRfcHJvcGVydHksCiAJLmF0b21pY19kdXBsaWNhdGVfc3Rh dGUgPSBpbnRlbF9wbGFuZV9kdXBsaWNhdGVfc3RhdGUsCiAJLmF0b21pY19kZXN0cm95X3N0YXRl ID0gaW50ZWxfcGxhbmVfZGVzdHJveV9zdGF0ZSwKKwkuZm9ybWF0X21vZF9zdXBwb3J0ZWQgPSBp bnRlbF9wcmltYXJ5X3BsYW5lX2Zvcm1hdF9tb2Rfc3VwcG9ydGVkLAogfTsKIAogc3RhdGljIGlu dApAQCAtMTM5NDEsNiArMTQwNTIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9m dW5jcyBpbnRlbF9jdXJzb3JfcGxhbmVfZnVuY3MgPSB7CiAJLmF0b21pY19zZXRfcHJvcGVydHkg PSBpbnRlbF9wbGFuZV9hdG9taWNfc2V0X3Byb3BlcnR5LAogCS5hdG9taWNfZHVwbGljYXRlX3N0 YXRlID0gaW50ZWxfcGxhbmVfZHVwbGljYXRlX3N0YXRlLAogCS5hdG9taWNfZGVzdHJveV9zdGF0 ZSA9IGludGVsX3BsYW5lX2Rlc3Ryb3lfc3RhdGUsCisJLmZvcm1hdF9tb2Rfc3VwcG9ydGVkID0g aW50ZWxfY3Vyc29yX3BsYW5lX2Zvcm1hdF9tb2Rfc3VwcG9ydGVkLAogfTsKIAogc3RhdGljIHN0 cnVjdCBpbnRlbF9wbGFuZSAqCkBAIC0xMzk1MSw2ICsxNDA2Myw3IEBAIGludGVsX3ByaW1hcnlf cGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBl IHBpcGUpCiAJY29uc3QgdWludDMyX3QgKmludGVsX3ByaW1hcnlfZm9ybWF0czsKIAl1bnNpZ25l ZCBpbnQgc3VwcG9ydGVkX3JvdGF0aW9uczsKIAl1bnNpZ25lZCBpbnQgbnVtX2Zvcm1hdHM7CisJ Y29uc3QgdWludDY0X3QgKm1vZGlmaWVyczsKIAlpbnQgcmV0OwogCiAJcHJpbWFyeSA9IGt6YWxs b2Moc2l6ZW9mKCpwcmltYXJ5KSwgR0ZQX0tFUk5FTCk7CkBAIC0xMzk4OSwxOCArMTQxMDIsMjEg QEAgaW50ZWxfcHJpbWFyeV9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LCBlbnVtIHBpcGUgcGlwZSkKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KSB7 CiAJCWludGVsX3ByaW1hcnlfZm9ybWF0cyA9IHNrbF9wcmltYXJ5X2Zvcm1hdHM7CiAJCW51bV9m b3JtYXRzID0gQVJSQVlfU0laRShza2xfcHJpbWFyeV9mb3JtYXRzKTsKKwkJbW9kaWZpZXJzID0g c2tsX2Zvcm1hdF9tb2RpZmllcnM7CiAKIAkJcHJpbWFyeS0+dXBkYXRlX3BsYW5lID0gc2t5bGFr ZV91cGRhdGVfcHJpbWFyeV9wbGFuZTsKIAkJcHJpbWFyeS0+ZGlzYWJsZV9wbGFuZSA9IHNreWxh a2VfZGlzYWJsZV9wcmltYXJ5X3BsYW5lOwogCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA+PSA0KSB7CiAJCWludGVsX3ByaW1hcnlfZm9ybWF0cyA9IGk5NjVfcHJpbWFyeV9mb3JtYXRz OwogCQludW1fZm9ybWF0cyA9IEFSUkFZX1NJWkUoaTk2NV9wcmltYXJ5X2Zvcm1hdHMpOworCQlt b2RpZmllcnMgPSBpOXh4X2Zvcm1hdF9tb2RpZmllcnM7CiAKIAkJcHJpbWFyeS0+dXBkYXRlX3Bs YW5lID0gaTl4eF91cGRhdGVfcHJpbWFyeV9wbGFuZTsKIAkJcHJpbWFyeS0+ZGlzYWJsZV9wbGFu ZSA9IGk5eHhfZGlzYWJsZV9wcmltYXJ5X3BsYW5lOwogCX0gZWxzZSB7CiAJCWludGVsX3ByaW1h cnlfZm9ybWF0cyA9IGk4eHhfcHJpbWFyeV9mb3JtYXRzOwogCQludW1fZm9ybWF0cyA9IEFSUkFZ X1NJWkUoaTh4eF9wcmltYXJ5X2Zvcm1hdHMpOworCQltb2RpZmllcnMgPSBpOXh4X2Zvcm1hdF9t b2RpZmllcnM7CiAKIAkJcHJpbWFyeS0+dXBkYXRlX3BsYW5lID0gaTl4eF91cGRhdGVfcHJpbWFy eV9wbGFuZTsKIAkJcHJpbWFyeS0+ZGlzYWJsZV9wbGFuZSA9IGk5eHhfZGlzYWJsZV9wcmltYXJ5 X3BsYW5lOwpAQCAtMTQwMTAsMjEgKzE0MTI2LDIxIEBAIGludGVsX3ByaW1hcnlfcGxhbmVfY3Jl YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCiAJ CXJldCA9IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdCgmZGV2X3ByaXYtPmRybSwgJnByaW1hcnkt PmJhc2UsCiAJCQkJCSAgICAgICAwLCAmaW50ZWxfcGxhbmVfZnVuY3MsCiAJCQkJCSAgICAgICBp bnRlbF9wcmltYXJ5X2Zvcm1hdHMsIG51bV9mb3JtYXRzLAotCQkJCQkgICAgICAgTlVMTCwKKwkJ CQkJICAgICAgIG1vZGlmaWVycywKIAkJCQkJICAgICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlks CiAJCQkJCSAgICAgICAicGxhbmUgMSVjIiwgcGlwZV9uYW1lKHBpcGUpKTsKIAllbHNlIGlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDUgfHwgSVNfRzRYKGRldl9wcml2KSkKIAkJcmV0ID0gZHJt X3VuaXZlcnNhbF9wbGFuZV9pbml0KCZkZXZfcHJpdi0+ZHJtLCAmcHJpbWFyeS0+YmFzZSwKIAkJ CQkJICAgICAgIDAsICZpbnRlbF9wbGFuZV9mdW5jcywKIAkJCQkJICAgICAgIGludGVsX3ByaW1h cnlfZm9ybWF0cywgbnVtX2Zvcm1hdHMsCi0JCQkJCSAgICAgICBOVUxMLAorCQkJCQkgICAgICAg bW9kaWZpZXJzLAogCQkJCQkgICAgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSwKIAkJCQkJICAg ICAgICJwcmltYXJ5ICVjIiwgcGlwZV9uYW1lKHBpcGUpKTsKIAllbHNlCiAJCXJldCA9IGRybV91 bml2ZXJzYWxfcGxhbmVfaW5pdCgmZGV2X3ByaXYtPmRybSwgJnByaW1hcnktPmJhc2UsCiAJCQkJ CSAgICAgICAwLCAmaW50ZWxfcGxhbmVfZnVuY3MsCiAJCQkJCSAgICAgICBpbnRlbF9wcmltYXJ5 X2Zvcm1hdHMsIG51bV9mb3JtYXRzLAotCQkJCQkgICAgICAgTlVMTCwKKwkJCQkJICAgICAgIG1v ZGlmaWVycywKIAkJCQkJICAgICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlksCiAJCQkJCSAgICAg ICAicGxhbmUgJWMiLCBwbGFuZV9uYW1lKHByaW1hcnktPnBsYW5lKSk7CiAJaWYgKHJldCkKQEAg LTE0MTEwLDcgKzE0MjI2LDggQEAgaW50ZWxfY3Vyc29yX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgICAgIDAsICZpbnRlbF9jdXJzb3JfcGxh bmVfZnVuY3MsCiAJCQkJICAgICAgIGludGVsX2N1cnNvcl9mb3JtYXRzLAogCQkJCSAgICAgICBB UlJBWV9TSVpFKGludGVsX2N1cnNvcl9mb3JtYXRzKSwKLQkJCQkgICAgICAgTlVMTCwgRFJNX1BM QU5FX1RZUEVfQ1VSU09SLAorCQkJCSAgICAgICBjdXJzb3JfZm9ybWF0X21vZGlmaWVycywKKwkJ CQkgICAgICAgRFJNX1BMQU5FX1RZUEVfQ1VSU09SLAogCQkJCSAgICAgICAiY3Vyc29yICVjIiwg cGlwZV9uYW1lKHBpcGUpKTsKIAlpZiAocmV0KQogCQlnb3RvIGZhaWw7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCmluZGV4IGQxN2EzMjQzN2YwNy4uY2I3YzYwYjI2YTdmIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaApAQCAtMTMzNSw3ICsxMzM1LDYgQEAgaW50IHZsdl9nZXRfY2NrX2Nsb2Nr X2hwbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJICAgY29uc3QgY2hh ciAqbmFtZSwgdTMyIHJlZyk7CiB2b2lkIGxwdF9kaXNhYmxlX3BjaF90cmFuc2NvZGVyKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB2b2lkIGxwdF9kaXNhYmxlX2ljbGtpcChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotZXh0ZXJuIGNvbnN0IHN0cnVjdCBk cm1fcGxhbmVfZnVuY3MgaW50ZWxfcGxhbmVfZnVuY3M7CiB2b2lkIGludGVsX2luaXRfZGlzcGxh eV9ob29rcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdW5zaWduZWQgaW50 IGludGVsX2ZiX3h5X3RvX2xpbmVhcihpbnQgeCwgaW50IHksCiAJCQkJICAgY29uc3Qgc3RydWN0 IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMK aW5kZXggNjFmMThjMGNkNzZlLi5iMWNjNDgzNWI5NjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3Nwcml0ZS5jCkBAIC0zMCw2ICszMCw3IEBACiAgKiBzdXBwb3J0LgogICovCiAjaW5jbHVkZSA8 ZHJtL2RybVAuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KICNpbmNsdWRl IDxkcm0vZHJtX2NydGMuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZvdXJjYy5oPgogI2luY2x1ZGUg PGRybS9kcm1fcmVjdC5oPgpAQCAtMTA0Myw2ICsxMDQ0LDEyIEBAIHN0YXRpYyBjb25zdCB1aW50 MzJfdCBnNHhfcGxhbmVfZm9ybWF0c1tdID0gewogCURSTV9GT1JNQVRfVllVWSwKIH07CiAKK3N0 YXRpYyBjb25zdCB1aW50NjRfdCBpOXh4X3BsYW5lX2Zvcm1hdF9tb2RpZmllcnNbXSA9IHsKKwlJ OTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwKKwlEUk1fRk9STUFUX01PRF9MSU5FQVIsCisJRFJNX0ZP Uk1BVF9NT0RfSU5WQUxJRAorfTsKKwogc3RhdGljIGNvbnN0IHVpbnQzMl90IHNuYl9wbGFuZV9m b3JtYXRzW10gPSB7CiAJRFJNX0ZPUk1BVF9YQkdSODg4OCwKIAlEUk1fRk9STUFUX1hSR0I4ODg4 LApAQCAtMTA3OCw2ICsxMDg1LDEyNSBAQCBzdGF0aWMgdWludDMyX3Qgc2tsX3BsYW5lX2Zvcm1h dHNbXSA9IHsKIAlEUk1fRk9STUFUX1ZZVVksCiB9OwogCitzdGF0aWMgY29uc3QgdWludDY0X3Qg c2tsX3BsYW5lX2Zvcm1hdF9tb2RpZmllcnNbXSA9IHsKKwlJOTE1X0ZPUk1BVF9NT0RfWWZfVElM RUQsCisJSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQsCisJSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQs CisJRFJNX0ZPUk1BVF9NT0RfTElORUFSLAorCURSTV9GT1JNQVRfTU9EX0lOVkFMSUQKK307CisK K3N0YXRpYyBib29sIGc0eF9zcHJpdGVfcGxhbmVfZm9ybWF0X21vZF9zdXBwb3J0ZWQoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCisJCQkJCQkgIHVpbnQzMl90IGZvcm1hdCwKKwkJCQkJCSAgdWlu dDY0X3QgbW9kaWZpZXIpCit7CisJc3dpdGNoIChmb3JtYXQpIHsKKwljYXNlIERSTV9GT1JNQVRf WEJHUjg4ODg6CisJY2FzZSBEUk1fRk9STUFUX1hSR0I4ODg4OgorCWNhc2UgRFJNX0ZPUk1BVF9Z VVlWOgorCWNhc2UgRFJNX0ZPUk1BVF9ZVllVOgorCWNhc2UgRFJNX0ZPUk1BVF9VWVZZOgorCWNh c2UgRFJNX0ZPUk1BVF9WWVVZOgorCQlpZiAobW9kaWZpZXIgPT0gRFJNX0ZPUk1BVF9NT0RfTElO RUFSIHx8CisJCSAgICBtb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCkKKwkJCXJl dHVybiB0cnVlOworCQkvKiBmYWxsIHRocm91Z2ggKi8KKwlkZWZhdWx0OgorCQlyZXR1cm4gZmFs c2U7CisJfQorfQorCitzdGF0aWMgYm9vbCB2bHZfc3ByaXRlX3BsYW5lX2Zvcm1hdF9tb2Rfc3Vw cG9ydGVkKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkJCQkJICB1aW50MzJfdCBmb3JtYXQs CisJCQkJCQkgIHVpbnQ2NF90IG1vZGlmaWVyKQoreworCXN3aXRjaCAoZm9ybWF0KSB7CisJY2Fz ZSBEUk1fRk9STUFUX1lVWVY6CisJY2FzZSBEUk1fRk9STUFUX1lWWVU6CisJY2FzZSBEUk1fRk9S TUFUX1VZVlk6CisJY2FzZSBEUk1fRk9STUFUX1ZZVVk6CisJY2FzZSBEUk1fRk9STUFUX1JHQjU2 NToKKwljYXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6CisJY2FzZSBEUk1fRk9STUFUX0FSR0I4ODg4 OgorCWNhc2UgRFJNX0ZPUk1BVF9YQkdSMjEwMTAxMDoKKwljYXNlIERSTV9GT1JNQVRfQUJHUjIx MDEwMTA6CisJY2FzZSBEUk1fRk9STUFUX1hCR1I4ODg4OgorCWNhc2UgRFJNX0ZPUk1BVF9BQkdS ODg4ODoKKwkJaWYgKG1vZGlmaWVyID09IERSTV9GT1JNQVRfTU9EX0xJTkVBUiB8fAorCQkgICAg bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQpCisJCQlyZXR1cm4gdHJ1ZTsKKwkJ LyogZmFsbCB0aHJvdWdoICovCisJZGVmYXVsdDoKKwkJcmV0dXJuIGZhbHNlOworCX0KK30KKwor c3RhdGljIGJvb2wgc2tsX3Nwcml0ZV9wbGFuZV9mb3JtYXRfbW9kX3N1cHBvcnRlZChzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKKwkJCQkJCSAgdWludDMyX3QgZm9ybWF0LAorCQkJCQkJICB1aW50 NjRfdCBtb2RpZmllcikKK3sKKwkvKiBUaGlzIGlzIHRoZSBzYW1lIGFzIHByaW1hcnkgcGxhbmUg c2luY2UgU0tMIGhhcyB1bml2ZXJzYWwgcGxhbmVzICovCisJc3dpdGNoIChmb3JtYXQpIHsKKwlj YXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6CisJY2FzZSBEUk1fRk9STUFUX1hCR1I4ODg4OgorCWNh c2UgRFJNX0ZPUk1BVF9BUkdCODg4ODoKKwljYXNlIERSTV9GT1JNQVRfQUJHUjg4ODg6CisJY2Fz ZSBEUk1fRk9STUFUX1JHQjU2NToKKwljYXNlIERSTV9GT1JNQVRfWFJHQjIxMDEwMTA6CisJY2Fz ZSBEUk1fRk9STUFUX1hCR1IyMTAxMDEwOgorCWNhc2UgRFJNX0ZPUk1BVF9ZVVlWOgorCWNhc2Ug RFJNX0ZPUk1BVF9ZVllVOgorCWNhc2UgRFJNX0ZPUk1BVF9VWVZZOgorCWNhc2UgRFJNX0ZPUk1B VF9WWVVZOgorCQlpZiAobW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEKQorCQkJ cmV0dXJuIHRydWU7CisJCS8qIGZhbGwgdGhyb3VnaCAqLworCWNhc2UgRFJNX0ZPUk1BVF9DODoK KwkJaWYgKG1vZGlmaWVyID09IERSTV9GT1JNQVRfTU9EX0xJTkVBUiB8fAorCQkgICAgbW9kaWZp ZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQgfHwKKwkJICAgIG1vZGlmaWVyID09IEk5MTVf Rk9STUFUX01PRF9ZX1RJTEVEKQorCQkJcmV0dXJuIHRydWU7CisJCS8qIGZhbGwgdGhyb3VnaCAq LworCWRlZmF1bHQ6CisJCXJldHVybiBmYWxzZTsKKwl9Cit9CisKK3N0YXRpYyBib29sIGludGVs X3Nwcml0ZV9wbGFuZV9mb3JtYXRfbW9kX3N1cHBvcnRlZChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 aW50MzJfdCBmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdWludDY0X3QgbW9kaWZpZXIpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+ZGV2KTsKKworCWlmIChXQVJOX09OKG1vZGlm aWVyID09IERSTV9GT1JNQVRfTU9EX0lOVkFMSUQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAo KG1vZGlmaWVyID4+IDU2KSAhPSBEUk1fRk9STUFUX01PRF9WRU5ET1JfSU5URUwgJiYKKwkgICAg bW9kaWZpZXIgIT0gRFJNX0ZPUk1BVF9NT0RfTElORUFSKQorCQlyZXR1cm4gZmFsc2U7CisKKwlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQorCQlyZXR1cm4gc2tsX3Nwcml0ZV9wbGFuZV9m b3JtYXRfbW9kX3N1cHBvcnRlZChwbGFuZSwgZm9ybWF0LCBtb2RpZmllcik7CisJZWxzZSBpZiAo SVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCisJCXJl dHVybiB2bHZfc3ByaXRlX3BsYW5lX2Zvcm1hdF9tb2Rfc3VwcG9ydGVkKHBsYW5lLCBmb3JtYXQs IG1vZGlmaWVyKTsKKwllbHNlCisJCXJldHVybiBnNHhfc3ByaXRlX3BsYW5lX2Zvcm1hdF9tb2Rf c3VwcG9ydGVkKHBsYW5lLCBmb3JtYXQsIG1vZGlmaWVyKTsKKworCXVucmVhY2hhYmxlKCk7Cit9 CisKK2NvbnN0IHN0cnVjdCBkcm1fcGxhbmVfZnVuY3MgaW50ZWxfc3ByaXRlX3BsYW5lX2Z1bmNz ID0geworICAgICAgICAudXBkYXRlX3BsYW5lID0gZHJtX2F0b21pY19oZWxwZXJfdXBkYXRlX3Bs YW5lLAorICAgICAgICAuZGlzYWJsZV9wbGFuZSA9IGRybV9hdG9taWNfaGVscGVyX2Rpc2FibGVf cGxhbmUsCisgICAgICAgIC5kZXN0cm95ID0gaW50ZWxfcGxhbmVfZGVzdHJveSwKKyAgICAgICAg LnNldF9wcm9wZXJ0eSA9IGRybV9hdG9taWNfaGVscGVyX3BsYW5lX3NldF9wcm9wZXJ0eSwKKyAg ICAgICAgLmF0b21pY19nZXRfcHJvcGVydHkgPSBpbnRlbF9wbGFuZV9hdG9taWNfZ2V0X3Byb3Bl cnR5LAorICAgICAgICAuYXRvbWljX3NldF9wcm9wZXJ0eSA9IGludGVsX3BsYW5lX2F0b21pY19z ZXRfcHJvcGVydHksCisgICAgICAgIC5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gaW50ZWxfcGxh bmVfZHVwbGljYXRlX3N0YXRlLAorICAgICAgICAuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBpbnRl bF9wbGFuZV9kZXN0cm95X3N0YXRlLAorICAgICAgICAuZm9ybWF0X21vZF9zdXBwb3J0ZWQgPSBp bnRlbF9zcHJpdGVfcGxhbmVfZm9ybWF0X21vZF9zdXBwb3J0ZWQsCit9OworCiBzdHJ1Y3QgaW50 ZWxfcGxhbmUgKgogaW50ZWxfc3ByaXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJCQkgIGVudW0gcGlwZSBwaXBlLCBpbnQgcGxhbmUpCkBAIC0xMDg2 LDYgKzEyMTIsNyBAQCBpbnRlbF9zcHJpdGVfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKIAlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlID0gTlVM TDsKIAl1bnNpZ25lZCBsb25nIHBvc3NpYmxlX2NydGNzOwogCWNvbnN0IHVpbnQzMl90ICpwbGFu ZV9mb3JtYXRzOworCWNvbnN0IHVpbnQ2NF90ICptb2RpZmllcnM7CiAJdW5zaWduZWQgaW50IHN1 cHBvcnRlZF9yb3RhdGlvbnM7CiAJaW50IG51bV9wbGFuZV9mb3JtYXRzOwogCWludCByZXQ7CkBA IC0xMTEyLDYgKzEyMzksNyBAQCBpbnRlbF9zcHJpdGVfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAogCQlwbGFuZV9mb3JtYXRzID0gc2tsX3BsYW5lX2Zv cm1hdHM7CiAJCW51bV9wbGFuZV9mb3JtYXRzID0gQVJSQVlfU0laRShza2xfcGxhbmVfZm9ybWF0 cyk7CisJCW1vZGlmaWVycyA9IHNrbF9wbGFuZV9mb3JtYXRfbW9kaWZpZXJzOwogCX0gZWxzZSBp ZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsK IAkJaW50ZWxfcGxhbmUtPmNhbl9zY2FsZSA9IGZhbHNlOwogCQlpbnRlbF9wbGFuZS0+bWF4X2Rv d25zY2FsZSA9IDE7CkBAIC0xMTIxLDYgKzEyNDksNyBAQCBpbnRlbF9zcHJpdGVfcGxhbmVfY3Jl YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAogCQlwbGFuZV9mb3JtYXRz ID0gdmx2X3BsYW5lX2Zvcm1hdHM7CiAJCW51bV9wbGFuZV9mb3JtYXRzID0gQVJSQVlfU0laRSh2 bHZfcGxhbmVfZm9ybWF0cyk7CisJCW1vZGlmaWVycyA9IGk5eHhfcGxhbmVfZm9ybWF0X21vZGlm aWVyczsKIAl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNykgewogCQlpZiAoSVNf SVZZQlJJREdFKGRldl9wcml2KSkgewogCQkJaW50ZWxfcGxhbmUtPmNhbl9zY2FsZSA9IHRydWU7 CkBAIC0xMTM1LDYgKzEyNjQsNyBAQCBpbnRlbF9zcHJpdGVfcGxhbmVfY3JlYXRlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAogCQlwbGFuZV9mb3JtYXRzID0gc25iX3BsYW5l X2Zvcm1hdHM7CiAJCW51bV9wbGFuZV9mb3JtYXRzID0gQVJSQVlfU0laRShzbmJfcGxhbmVfZm9y bWF0cyk7CisJCW1vZGlmaWVycyA9IGk5eHhfcGxhbmVfZm9ybWF0X21vZGlmaWVyczsKIAl9IGVs c2UgewogCQlpbnRlbF9wbGFuZS0+Y2FuX3NjYWxlID0gdHJ1ZTsKIAkJaW50ZWxfcGxhbmUtPm1h eF9kb3duc2NhbGUgPSAxNjsKQEAgLTExNDIsNiArMTI3Miw3IEBAIGludGVsX3Nwcml0ZV9wbGFu ZV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQlpbnRlbF9wbGFu ZS0+dXBkYXRlX3BsYW5lID0gZzR4X3VwZGF0ZV9wbGFuZTsKIAkJaW50ZWxfcGxhbmUtPmRpc2Fi bGVfcGxhbmUgPSBnNHhfZGlzYWJsZV9wbGFuZTsKIAorCQltb2RpZmllcnMgPSBpOXh4X3BsYW5l X2Zvcm1hdF9tb2RpZmllcnM7CiAJCWlmIChJU19HRU42KGRldl9wcml2KSkgewogCQkJcGxhbmVf Zm9ybWF0cyA9IHNuYl9wbGFuZV9mb3JtYXRzOwogCQkJbnVtX3BsYW5lX2Zvcm1hdHMgPSBBUlJB WV9TSVpFKHNuYl9wbGFuZV9mb3JtYXRzKTsKQEAgLTExNzQsMTUgKzEzMDUsMTcgQEAgaW50ZWxf c3ByaXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAK IAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQogCQlyZXQgPSBkcm1fdW5pdmVyc2FsX3Bs YW5lX2luaXQoJmRldl9wcml2LT5kcm0sICZpbnRlbF9wbGFuZS0+YmFzZSwKLQkJCQkJICAgICAg IHBvc3NpYmxlX2NydGNzLCAmaW50ZWxfcGxhbmVfZnVuY3MsCisJCQkJCSAgICAgICBwb3NzaWJs ZV9jcnRjcywgJmludGVsX3Nwcml0ZV9wbGFuZV9mdW5jcywKIAkJCQkJICAgICAgIHBsYW5lX2Zv cm1hdHMsIG51bV9wbGFuZV9mb3JtYXRzLAotCQkJCQkgICAgICAgTlVMTCwgRFJNX1BMQU5FX1RZ UEVfT1ZFUkxBWSwKKwkJCQkJICAgICAgIG1vZGlmaWVycywKKwkJCQkJICAgICAgIERSTV9QTEFO RV9UWVBFX09WRVJMQVksCiAJCQkJCSAgICAgICAicGxhbmUgJWQlYyIsIHBsYW5lICsgMiwgcGlw ZV9uYW1lKHBpcGUpKTsKIAllbHNlCiAJCXJldCA9IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdCgm ZGV2X3ByaXYtPmRybSwgJmludGVsX3BsYW5lLT5iYXNlLAotCQkJCQkgICAgICAgcG9zc2libGVf Y3J0Y3MsICZpbnRlbF9wbGFuZV9mdW5jcywKKwkJCQkJICAgICAgIHBvc3NpYmxlX2NydGNzLCAm aW50ZWxfc3ByaXRlX3BsYW5lX2Z1bmNzLAogCQkJCQkgICAgICAgcGxhbmVfZm9ybWF0cywgbnVt X3BsYW5lX2Zvcm1hdHMsCi0JCQkJCSAgICAgICBOVUxMLCBEUk1fUExBTkVfVFlQRV9PVkVSTEFZ LAorCQkJCQkgICAgICAgbW9kaWZpZXJzLAorCQkJCQkgICAgICAgRFJNX1BMQU5FX1RZUEVfT1ZF UkxBWSwKIAkJCQkJICAgICAgICJzcHJpdGUgJWMiLCBzcHJpdGVfbmFtZShwaXBlLCBwbGFuZSkp OwogCWlmIChyZXQpCiAJCWdvdG8gZmFpbDsKLS0gCjIuMTMuMwoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==