From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shashank Sharma Subject: [PATCH v2 08/11] drm/i915: handle ycbcr outputs Date: Tue, 30 May 2017 17:43:47 +0530 Message-ID: <1496146430-11430-9-git-send-email-shashank.sharma@intel.com> References: <1496146430-11430-1-git-send-email-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1496146430-11430-1-git-send-email-shashank.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org Cc: Ander Conselvan De Oliveira , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org VGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIEhETUkgeWNiY3Igb3V0cHV0cyBpbiBpOTE1IGxh eWVyLgpIRE1JIG91dHB1dCBtb2RlIGlzIGEgY29ubmVjdG9yIHByb3BlcnR5LCB0aGlzIHBhdGNo IGNoZWNrcyBpZgpzb3VyY2UgYW5kIHNpbmsgY2FuIHN1cHBvcnQgdGhlIEhETUkgb3V0cHV0IHR5 cGUgc2VsZWN0ZWQgYnkgdXNlci4KQW5kIGlmIHRoZXkgYm90aCBjYW4sIGl0IGNvbW1pdHMgdGhl IGhkbWkgb3V0cHV0IHR5cGUgaW50byBjcnRjIHN0YXRlLApmb3IgZnVydGhlciBzdGFnaW5nIGlu IGRyaXZlci4KClYyOiBTcGxpdCB0aGUgcGF0Y2ggaW50byB0d28sIGtlcHQgaGVscGVyIGZ1bmN0 aW9ucyBpbiBEUk0gbGF5ZXIKCkNjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgpD YzogQW5kZXIgQ29uc2VsdmFuIERlIE9saXZlaXJhIDxhbmRlci5jb25zZWx2YW4uZGUub2xpdmVp cmFAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBTaGFzaGFuayBTaGFybWEgPHNoYXNoYW5rLnNo YXJtYUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j IHwgICAxICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAgMyArCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgICAgfCAxMjUgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTI2IGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDdm YTIxZGYuLjU4OTA3YjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTEx ODg4LDYgKzExODg4LDcgQEAgaW50ZWxfcGlwZV9jb25maWdfY29tcGFyZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJUElQRV9DT05GX0NIRUNLX0koaGRtaV9zY3JhbWJsaW5n KTsKIAlQSVBFX0NPTkZfQ0hFQ0tfSShoZG1pX2hpZ2hfdG1kc19jbG9ja19yYXRpbyk7CiAJUElQ RV9DT05GX0NIRUNLX0koaGFzX2luZm9mcmFtZSk7CisJUElQRV9DT05GX0NIRUNLX0koaGRtaV9v dXRwdXQpOwogCiAJUElQRV9DT05GX0NIRUNLX0koaGFzX2F1ZGlvKTsKIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAppbmRleCBiZDUwMDk3Li5hNTZlMjYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaApAQCAtNzcxLDYgKzc3MSw5IEBAIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKIAogCS8q IEhETUkgSGlnaCBUTURTIGNoYXIgcmF0ZSByYXRpbyAqLwogCWJvb2wgaGRtaV9oaWdoX3RtZHNf Y2xvY2tfcmF0aW87CisKKwkvKiBIRE1JIG91dHB1dCB0eXBlICovCisJZW51bSBkcm1faGRtaV9v dXRwdXRfdHlwZSBoZG1pX291dHB1dDsKIH07CiAKIHN0cnVjdCBpbnRlbF9jcnRjIHsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hkbWkuYwppbmRleCA3MDJjYmFiLi40YjI3YjVkIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfaGRtaS5jCkBAIC0xMzAxLDcgKzEzMDEsOCBAQCBpbnRlbF9oZG1pX21vZGVfdmFs aWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAlyZXR1cm4gc3RhdHVzOwogfQog Ci1zdGF0aWMgYm9vbCBoZG1pXzEyYnBjX3Bvc3NpYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQorc3RhdGljIGJvb2wgaGRtaV8xMmJwY19wb3NzaWJsZShzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCQllbnVtIGRybV9oZG1pX291dHB1dF90eXBl IGhkbWlfb3V0KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9CiAJCXRv X2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwpAQCAtMTMxMyw2ICsxMzE0LDE2IEBA IHN0YXRpYyBib29sIGhkbWlfMTJicGNfcG9zc2libGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCiAJaWYgKEhBU19HTUNIX0RJU1BMQVkoZGV2X3ByaXYpKQogCQlyZXR1cm4g ZmFsc2U7CiAKKwlpZiAoaGRtaV9vdXQgPT0gRFJNX0hETUlfT1VUUFVUX1lDQkNSNDIyKSB7CisJ CS8qCisJCSAqIEhETUkgc3BlYyBzYXlzIFlDQkNSNDIyIGlzIDEyYnBjLCBidXQgaXRzIG5vdCBh IGRlZXAKKwkJICogY29sb3IgZm9ybWF0LiBTbyByZXNwZWN0IHRoZSBzcGVjLCBhbmQgbm90IGFs bG93IHRoaXMKKwkJICogdG8gYmUgZGVlcCBjb2xvcgorCQkgKi8KKwkJRFJNX0RFQlVHX0tNUygi Tm90IGFsbG93aW5nIGRlZXAgY29sb3IgZm9yIFlDQkNSNDIyIG91dHB1dFxuIik7CisJCXJldHVy biBmYWxzZTsKKwl9CisKIAkvKgogCSAqIEhETUkgMTJicGMgYWZmZWN0cyB0aGUgY2xvY2tzLCBz byBpdCdzIG9ubHkgcG9zc2libGUKIAkgKiB3aGVuIG5vdCBjbG9uaW5nIHdpdGggb3RoZXIgZW5j b2RlciB0eXBlcy4KQEAgLTEzMjYsNiArMTMzNywxMiBAQCBzdGF0aWMgYm9vbCBoZG1pXzEyYnBj X3Bvc3NpYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCQlpZiAoY29u bmVjdG9yX3N0YXRlLT5jcnRjICE9IGNydGNfc3RhdGUtPmJhc2UuY3J0YykKIAkJCWNvbnRpbnVl OwogCisJCWlmIChoZG1pX291dCA9PSBEUk1fSERNSV9PVVRQVVRfWUNCQ1I0MjApIHsKKwkJCWlm ICghKGluZm8tPmhkbWkueWNiY3I0MjBfZGNfbW9kZXMgJgorCQkJCQlEUk1fRURJRF9ZQ0JDUjQy MF9EQ18zNikpCisJCQkJcmV0dXJuIGZhbHNlOworCQl9CisKIAkJaWYgKChpbmZvLT5lZGlkX2hk bWlfZGNfbW9kZXMgJiBEUk1fRURJRF9IRE1JX0RDXzM2KSA9PSAwKQogCQkJcmV0dXJuIGZhbHNl OwogCX0KQEAgLTEzMzgsNiArMTM1NSw5NSBAQCBzdGF0aWMgYm9vbCBoZG1pXzEyYnBjX3Bvc3Np YmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCXJldHVybiB0cnVlOwog fQogCitzdGF0aWMgdTgKK2ludGVsX2hkbWlfZ2V0X3NyY19vdXRwdXRfc3VwcG9ydChzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGNvbm5lY3Rvci0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwl1OCBzdXBwb3J0ZWRfb3V0 cHV0cyA9IERSTV9DT0xPUl9GT1JNQVRfUkdCNDQ0OworCisJaWYgKGRldl9wcml2LT5pbmZvLmdl biA8IDcpCisJCXJldHVybiBzdXBwb3J0ZWRfb3V0cHV0czsKKworCS8qIEdlbiA3IGFuZCBhYm92 ZSBzdXBwb3J0IEhETUkgMS40YiBvdXRwdXRzICovCisJc3VwcG9ydGVkX291dHB1dHMgfD0gKERS TV9DT0xPUl9GT1JNQVRfWUNSQ0I0NDQgfAorCQkJCURSTV9DT0xPUl9GT1JNQVRfWUNSQ0I0MjIp OworCisJaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKQorCQlzdXBwb3J0ZWRfb3V0cHV0cyB8 PSBEUk1fQ09MT1JfRk9STUFUX1lDUkNCNDIwOworCisJcmV0dXJuIHN1cHBvcnRlZF9vdXRwdXRz OworfQorCitzdGF0aWMgZW51bSBkcm1faGRtaV9vdXRwdXRfdHlwZQoraW50ZWxfaGRtaV9jb21w dXRlX3ljYmNyX2NvbmZpZyhzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwK KwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY29uZmlnLAorCQkJICAgICAgIGlu dCAqY2xvY2tfMTJicGMsIGludCAqY2xvY2tfOGJwYykKK3sKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yID0gY29ubl9zdGF0ZS0+Y29ubmVjdG9yOworCXN0cnVjdCBkcm1fZGlzcGxh eV9pbmZvICppbmZvID0gJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvOworCXN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlID0gJmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCWVudW0gZHJt X2hkbWlfb3V0cHV0X3R5cGUgdHlwZSA9IGNvbm5fc3RhdGUtPmhkbWlfb3V0cHV0OworCXU4IHNy Y19vdXRwdXRfY2FwID0gaW50ZWxfaGRtaV9nZXRfc3JjX291dHB1dF9zdXBwb3J0KGNvbm5lY3Rv cik7CisKKwkvKiBJZiAgdGhpcyBzcmMvc2luayBjb21iaW5hdGlvbiBjYW4gc3VwcG9ydCBhbnkg WUNCQ1Igb3V0cHV0ICovCisJaWYgKCFkcm1fY2FuX3N1cHBvcnRfYW55X3ljYmNyX291dHB1dChp bmZvLCBzcmNfb3V0cHV0X2NhcCkpIHsKKwkJRFJNX0VSUk9SKCJObyBzdXBwb3J0ZWQgWUNCQ1Ig b3V0cHV0XG4iKTsKKwkJcmV0dXJuIERSTV9IRE1JX09VVFBVVF9JTlZBTElEOworCX0KKworCWlm ICh0eXBlID09IERSTV9IRE1JX09VVFBVVF9ZQ0JDUl9IUSkgeworCQl0eXBlID0gZHJtX2dldF9o aWdoZXN0X3F1YWxpdHlfeWNiY3Jfc3VwcG9ydGVkKGluZm8sIG1vZGUsCisJCQkJCQkJCXNyY19v dXRwdXRfY2FwKTsKKwkJaWYgKHR5cGUgPT0gRFJNX0hETUlfT1VUUFVUX0lOVkFMSUQpIHsKKwkJ CURSTV9FUlJPUigiQ2FuJ3Qgc3VwcG9ydCBtb2RlICVzIGluIFlDQkNSIGZvcm1hdFxuIiwKKwkJ CQkgIG1vZGUtPm5hbWUpOworCQkJcmV0dXJuIERSTV9IRE1JX09VVFBVVF9JTlZBTElEOworCQl9 CisJfSBlbHNlIGlmICh0eXBlID09IERSTV9IRE1JX09VVFBVVF9ZQ0JDUl9MUSkgeworCQl0eXBl ID0gZHJtX2dldF9sb3dlc3RfcXVhbGl0eV95Y2Jjcl9zdXBwb3J0ZWQoaW5mbywgbW9kZSwKKwkJ CQkJCQkJc3JjX291dHB1dF9jYXApOworCQlpZiAodHlwZSA9PSBEUk1fSERNSV9PVVRQVVRfSU5W QUxJRCkgeworCQkJRFJNX0VSUk9SKCJDYW4ndCBzdXBwb3J0IG1vZGUgJXMgaW4gWUNCQ1IgZm9y bWF0XG4iLAorCQkJCSAgbW9kZS0+bmFtZSk7CisJCQlyZXR1cm4gRFJNX0hETUlfT1VUUFVUX0lO VkFMSUQ7CisJCX0KKwl9CisKKwkvKiBJZiAgdGhpcyBzcmMvc2luayBjb21iaW5hdGlvbiBjYW4g c3VwcG9ydCB0aGlzIFlDQkNSIG91dHB1dCAqLworCWlmICghZHJtX2Nhbl9zdXBwb3J0X3RoaXNf eWNiY3Jfb3V0cHV0KGluZm8sIG1vZGUsIHR5cGUsCisJCQkJCQlzcmNfb3V0cHV0X2NhcCkpIHsK KwkJRFJNX0VSUk9SKCJvdXRwdXQgJXMgY2FuJ3QgYmUgc3VwcG9ydGVkXG4iLAorCQkJCQlkcm1f Z2V0X2hkbWlfb3V0cHV0X25hbWUodHlwZSkpOworCQlyZXR1cm4gRFJNX0hETUlfT1VUUFVUX0lO VkFMSUQ7CisJfQorCisJc3dpdGNoICh0eXBlKSB7CisJY2FzZSBEUk1fSERNSV9PVVRQVVRfWUNC Q1I0MjA6CisKKwkJLyogeWNiY3IgNDIwIFRNRFMgcmF0ZSByZXF1aXJlbWVudCBpcyBoYWxmIHRo ZSBwaXhlbCBjbG9jayAqLworCQljb25maWctPmhkbWlfb3V0cHV0ID0gRFJNX0hETUlfT1VUUFVU X1lDQkNSNDIwOworCQljb25maWctPnBvcnRfY2xvY2sgLz0gMjsKKwkJKmNsb2NrXzEyYnBjIC89 IDI7CisJCSpjbG9ja184YnBjIC89IDI7CisJCWJyZWFrOworCisJY2FzZSBEUk1fSERNSV9PVVRQ VVRfWUNCQ1I0MjI6CisJY2FzZSBEUk1fSERNSV9PVVRQVVRfWUNCQ1I0NDQ6CisJCWJyZWFrOwor CisJY2FzZSBEUk1fSERNSV9PVVRQVVRfSU5WQUxJRDoKKwlkZWZhdWx0OgorCQlEUk1fRVJST1Io IkludmFsaWQgWUNCQ1Igb3V0cHV0XG4iKTsKKwkJcmV0dXJuIERSTV9IRE1JX09VVFBVVF9JTlZB TElEOworCX0KKworCS8qIEVuY29kZXIgaXMgY2FwYWJsZSBvZiB0aGlzIG91dHB1dCwgbGV0cyBj b21taXQgdG8gQ1JUQyAqLworCWNvbmZpZy0+aGRtaV9vdXRwdXQgPSB0eXBlOworCURSTV9ERUJV R19LTVMoIkhETUkgb3V0cHV0IHR5cGUgaXMgJXNcbiIsCisJCSAgICAgIGRybV9nZXRfaGRtaV9v dXRwdXRfbmFtZSh0eXBlKSk7CisJcmV0dXJuIHR5cGU7Cit9CisKIGJvb2wgaW50ZWxfaGRtaV9j b21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgICAgICBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkgICAgICAgc3RydWN0IGRy bV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCkBAIC0xMzQ1LDcgKzE0NTEsOSBAQCBib29s IGludGVsX2hkbWlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiAJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaSgmZW5j b2Rlci0+YmFzZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVk X21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKLQlzdHJ1Y3QgZHJtX3Nj ZGMgKnNjZGMgPSAmY29ubl9zdGF0ZS0+Y29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGRtaS5zY2Rj OworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBjb25uX3N0YXRlLT5jb25uZWN0 b3I7CisJc3RydWN0IGRybV9zY2RjICpzY2RjID0gJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhk bWkuc2NkYzsKKwllbnVtIGRybV9oZG1pX291dHB1dF90eXBlIGhkbWlfb3V0ID0gY29ubl9zdGF0 ZS0+aGRtaV9vdXRwdXQ7CiAJaW50IGNsb2NrXzhicGMgPSBwaXBlX2NvbmZpZy0+YmFzZS5hZGp1 c3RlZF9tb2RlLmNydGNfY2xvY2s7CiAJaW50IGNsb2NrXzEyYnBjID0gY2xvY2tfOGJwYyAqIDMg LyAyOwogCWludCBkZXNpcmVkX2JwcDsKQEAgLTEzNzIsNiArMTQ4MCwxNyBAQCBib29sIGludGVs X2hkbWlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCWNs b2NrXzEyYnBjICo9IDI7CiAJfQogCisJLyogWUNCQ1IgSERNSSBvdXRwdXQgKi8KKwlpZiAoaGRt aV9vdXQgPiBEUk1fSERNSV9PVVRQVVRfREVGQVVMVF9SR0IpIHsKKwkJaGRtaV9vdXQgPSBpbnRl bF9oZG1pX2NvbXB1dGVfeWNiY3JfY29uZmlnKGNvbm5fc3RhdGUsCisJCQkJCQkgICBwaXBlX2Nv bmZpZywgJmNsb2NrXzEyYnBjLAorCQkJCQkJICAgJmNsb2NrXzhicGMpOworCQlpZiAoaGRtaV9v dXQgPT0gRFJNX0hETUlfT1VUUFVUX0lOVkFMSUQpIHsKKwkJCURSTV9FUlJPUigiQ2FuJ3Qgc3Vw cG9ydCBkZXNpcmVkIEhETUkgb3V0cHV0XG4iKTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCX0K KwogCWlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSAmJiAhSEFTX0RESShkZXZfcHJpdikpCiAJ CXBpcGVfY29uZmlnLT5oYXNfcGNoX2VuY29kZXIgPSB0cnVlOwogCkBAIC0xMzg2LDcgKzE1MDUs NyBAQCBib29sIGludGVsX2hkbWlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiAJICovCiAJaWYgKHBpcGVfY29uZmlnLT5waXBlX2JwcCA+IDgqMyAmJiBwaXBl X2NvbmZpZy0+aGFzX2hkbWlfc2luayAmJgogCSAgICBoZG1pX3BvcnRfY2xvY2tfdmFsaWQoaW50 ZWxfaGRtaSwgY2xvY2tfMTJicGMsIHRydWUpID09IE1PREVfT0sgJiYKLQkgICAgaGRtaV8xMmJw Y19wb3NzaWJsZShwaXBlX2NvbmZpZykpIHsKKwkgICAgaGRtaV8xMmJwY19wb3NzaWJsZShwaXBl X2NvbmZpZywgaGRtaV9vdXQpKSB7CiAJCURSTV9ERUJVR19LTVMoInBpY2tpbmcgYnBjIHRvIDEy IGZvciBIRE1JIG91dHB1dFxuIik7CiAJCWRlc2lyZWRfYnBwID0gMTIqMzsKIAotLSAKMi43LjQK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=