From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shashank Sharma Subject: [PATCH v2 10/11] drm/i915: prepare ycbcr420 modeset Date: Tue, 30 May 2017 17:43:49 +0530 Message-ID: <1496146430-11430-11-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: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org Cc: Ander Conselvan De Oliveira List-Id: dri-devel@lists.freedesktop.org VG8gZ2V0IGEgeWNiY3I0MjAgb3V0cHV0IGZyb20gaW50ZWwgcGxhdGZvcm1zLCB0aGVyZSBhcmUg dHdvCm1ham9yIHN0ZXBzOgotIFJHQi0+WUNCQ1IgY29udmVyc2lvbiB1c2luZyBhIHBpcGUgQ1ND LgotIFByb2dyYW0gUElQRV9NSVNDIHJlZ2lzdGVyIHRvIGdlbmVyYXRlIGEgeWNiY3I0MjAgb3V0 cHV0LgotIFNjYWxpbmcgZG93biBZQ0JDUjQ0NCBzYW1wbGVzIHRvIFlDQkNSNDIwIHNhbXBsZXMg dXNpbmcgYSBwaXBlCiAgc2NhbGVyLgoKVGhpcyBwYXRjaDoKLSBEb2VzIHNjYWxlciBhbGxvY2F0 aW9uIGZvciBIRE1JIHljYmNyNDIwIG91dHB1dHMuCi0gUHJvZ3JhbXMgUElQRV9NSVNDIHJlZ2lz dGVyIGZvciB5Y2JjcjQyMCBvdXRwdXQuCi0gQWRkcyBhIG5ldyBzY2FsZXIgdXNlciAiSERNSSBv dXRwdXQiIHRvIHBsdWctaW50byBleGlzdGluZwogIHNjYWxlciBmcmFtZXdvcmsuIFRoaXMgb3V0 cHV0IHR5cGUgaXMgaWRlbnRpZmllZCB1c2luZyBiaXQKICAzMCBvZiB0aGUgc2NhbGVyIHVzZXJz IGJpdG1hcC4KCkNjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4KQ2M6IEFuZGVyIENvbnNlbHZhbiBEZSBPbGl2ZWlyYSA8YW5kZXIuY29uc2VsdmFuLmRlLm9s aXZlaXJhQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFu ay5zaGFybWFAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgg ICAgICB8ICAzICsrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgIHwgIDYg KysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAzNCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCAgICAgfCAxMCArKysrKysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1p LmMgICAgfCAxMSArKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwu YyAgIHwgIDMgKystCiA2IGZpbGVzIGNoYW5nZWQsIDY1IGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKaW5kZXggODk4ODhhZC4uMWNiM2JiNCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCkBAIC01MDI2LDYgKzUwMjYsOSBAQCBlbnVtIHsKIAogI2Rl ZmluZSBfUElQRV9NSVNDX0EJCQkweDcwMDMwCiAjZGVmaW5lIF9QSVBFX01JU0NfQgkJCTB4NzEw MzAKKyNkZWZpbmUgICBQSVBFTUlTQ19ZQ0JDUjQyMF9FTkFCTEUJKDE8PDI3KQorI2RlZmluZSAg IFBJUEVNSVNDX1lDQkNSNDIwX01PREVfQkxFTkQJKDE8PDI2KQorI2RlZmluZSAgIFBJUEVNSVND X09VVFBVVF9ZQ0JDUgkJKDE8PDExKQogI2RlZmluZSAgIFBJUEVNSVNDX0RJVEhFUl9CUENfTUFT SwkoNzw8NSkKICNkZWZpbmUgICBQSVBFTUlTQ19ESVRIRVJfOF9CUEMJCSgwPDw1KQogI2RlZmlu ZSAgIFBJUEVNSVNDX0RJVEhFUl8xMF9CUEMJKDE8PDUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0 b21pYy5jCmluZGV4IDUwZmIxZjcuLjU5MmIwZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2F0b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0 b21pYy5jCkBAIC0xODcsNiArMTg3LDEyIEBAIGludCBpbnRlbF9hdG9taWNfc2V0dXBfc2NhbGVy cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAkJCS8qIHBhbmVsIGZpdHRl ciBjYXNlOiBhc3NpZ24gYXMgYSBjcnRjIHNjYWxlciAqLwogCQkJc2NhbGVyX2lkID0gJnNjYWxl cl9zdGF0ZS0+c2NhbGVyX2lkOworCQl9IGVsc2UgaWYgKGkgPT0gU0tMX0hETUlfT1VUUFVUX0lO REVYKSB7CisJCQluYW1lID0gIkhETUktT1VUUFVUIjsKKwkJCWlkeCA9IGludGVsX2NydGMtPmJh c2UuYmFzZS5pZDsKKworCQkJLyogaGRtaSBvdXRwdXQgY2FzZTogbmVlZHMgYSBwaXBlIHNjYWxl ciAqLworCQkJc2NhbGVyX2lkID0gJnNjYWxlcl9zdGF0ZS0+c2NhbGVyX2lkOwogCQl9IGVsc2Ug ewogCQkJbmFtZSA9ICJQTEFORSI7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpp bmRleCA1OGU0NjE3Li5lNWUzYmMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j CkBAIC00NjIzLDYgKzQ2MjMsMTEgQEAgc2tsX3VwZGF0ZV9zY2FsZXIoc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsIGJvb2wgZm9yY2VfZGV0YWNoLAogCQkoc3JjX2ggIT0gZHN0 X3cgfHwgc3JjX3cgIT0gZHN0X2gpOgogCQkoc3JjX3cgIT0gZHN0X3cgfHwgc3JjX2ggIT0gZHN0 X2gpOwogCisJaWYgKGNydGNfc3RhdGUtPmhkbWlfb3V0cHV0ID09IERSTV9IRE1JX09VVFBVVF9Z Q0JDUjQyMAorCQkmJiBzY2FsZXJfdXNlciA9PSBTS0xfSERNSV9PVVRQVVRfSU5ERVgpCisJCS8q IFlDQkNSIDQ0NCAtPiA0MjAgY29udmVyc2lvbiBuZWVkcyBhIHNjYWxlciAqLworCQluZWVkX3Nj YWxpbmcgPSB0cnVlOworCiAJLyoKIAkgKiBpZiBwbGFuZSBpcyBiZWluZyBkaXNhYmxlZCBvciBz Y2FsZXIgaXMgbm8gbW9yZSByZXF1aXJlZCBvciBmb3JjZSBkZXRhY2gKIAkgKiAgLSBmcmVlIHNj YWxlciBiaW5kZWQgdG8gdGhpcyBwbGFuZS9jcnRjCkBAIC00NjcwLDYgKzQ2NzUsMjYgQEAgc2ts X3VwZGF0ZV9zY2FsZXIoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsIGJvb2wg Zm9yY2VfZGV0YWNoLAogfQogCiAvKioKKyAqIHNrbF91cGRhdGVfc2NhbGVyX2hkbWlfb3V0cHV0 IC0gU3RhZ2VzIHVwZGF0ZSB0byBzY2FsZXIgc3RhdGUgZm9yIEhETUkuCisgKiBIRE1JIFlDQkNS IDQyMCBvdXRwdXQgbmVlZHMgYSBzY2FsZXIsIGZvciBkb3duc2FtcGxpbmcuCisgKgorICogQHN0 YXRlOiBjcnRjJ3Mgc2NhbGVyIHN0YXRlCisgKgorICogUmV0dXJuCisgKiAgICAgMCAtIHNjYWxl cl91c2FnZSB1cGRhdGVkIHN1Y2Nlc3NmdWxseQorICogICAgZXJyb3IgLSByZXF1ZXN0ZWQgc2Nh bGluZyBjYW5ub3QgYmUgc3VwcG9ydGVkIG9yIG90aGVyIGVycm9yIGNvbmRpdGlvbgorICovCitp bnQgc2tsX3VwZGF0ZV9zY2FsZXJfY3J0Y19oZG1pX291dHB1dChzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqc3RhdGUpCit7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAm c3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKworCXJldHVybiBza2xfdXBkYXRlX3NjYWxlcihz dGF0ZSwgIXN0YXRlLT5iYXNlLmFjdGl2ZSwKKwkJU0tMX0hETUlfT1VUUFVUX0lOREVYLCAmc3Rh dGUtPnNjYWxlcl9zdGF0ZS5zY2FsZXJfaWQsCisJCURSTV9NT0RFX1JPVEFURV8wLCBzdGF0ZS0+ cGlwZV9zcmNfdywgc3RhdGUtPnBpcGVfc3JjX2gsCisJCW1vZGUtPmNydGNfaGRpc3BsYXksIG1v ZGUtPmNydGNfdmRpc3BsYXkpOworfQorCisvKioKICAqIHNrbF91cGRhdGVfc2NhbGVyX2NydGMg LSBTdGFnZXMgdXBkYXRlIHRvIHNjYWxlciBzdGF0ZSBmb3IgYSBnaXZlbiBjcnRjLgogICoKICAq IEBzdGF0ZTogY3J0YydzIHNjYWxlciBzdGF0ZQpAQCAtODA3MSw2ICs4MDk2LDcgQEAgc3RhdGlj IHZvaWQgaGFzd2VsbF9zZXRfcGlwZW1pc2Moc3RydWN0IGRybV9jcnRjICpjcnRjKQogewogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ZGV2KTsKIAlz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CisJZW51 bSBkcm1faGRtaV9vdXRwdXRfdHlwZSBoZG1pX291dCA9IGludGVsX2NydGMtPmNvbmZpZy0+aGRt aV9vdXRwdXQ7CiAKIAlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSB8fCBJTlRFTF9JTkZPKGRl dl9wcml2KS0+Z2VuID49IDkpIHsKIAkJdTMyIHZhbCA9IDA7CkBAIC04MDk2LDYgKzgxMjIsMTQg QEAgc3RhdGljIHZvaWQgaGFzd2VsbF9zZXRfcGlwZW1pc2Moc3RydWN0IGRybV9jcnRjICpjcnRj KQogCQlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5kaXRoZXIpCiAJCQl2YWwgfD0gUElQRU1JU0Nf RElUSEVSX0VOQUJMRSB8IFBJUEVNSVNDX0RJVEhFUl9UWVBFX1NQOwogCisJCWlmIChoZG1pX291 dCkgeworCQkJdmFsIHw9IFBJUEVNSVNDX09VVFBVVF9ZQ0JDUjsKKwkJCWlmIChoZG1pX291dCA9 PSBEUk1fSERNSV9PVVRQVVRfWUNCQ1I0MjApIHsKKwkJCQl2YWwgfD0gUElQRU1JU0NfWUNCQ1I0 MjBfRU5BQkxFIHwKKwkJCQkgICAgICAgUElQRU1JU0NfWUNCQ1I0MjBfTU9ERV9CTEVORDsKKwkJ CX0KKwkJfQorCiAJCUk5MTVfV1JJVEUoUElQRU1JU0MoaW50ZWxfY3J0Yy0+cGlwZSksIHZhbCk7 CiAJfQogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCBhNTZlMjYwLi4xMDI1NzBkIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtNDYyLDcgKzQ2Miw4IEBAIHN0cnVjdCBpbnRl bF9jcnRjX3NjYWxlcl9zdGF0ZSB7CiAJICoKIAkgKiAgICAgSWYgYSBiaXQgaXMgc2V0LCBhIHVz ZXIgaXMgdXNpbmcgYSBzY2FsZXIuCiAJICogICAgIEhlcmUgdXNlciBjYW4gYmUgYSBwbGFuZSBv ciBjcnRjIGFzIGRlZmluZWQgYmVsb3c6Ci0JICogICAgICAgYml0cyAwLTMwIC0gcGxhbmUgKGJp dCBwb3NpdGlvbiBpcyBpbmRleCBmcm9tIGRybV9wbGFuZV9pbmRleCkKKwkgKiAgICAgICBiaXRz IDAtMjkgLSBwbGFuZSAoYml0IHBvc2l0aW9uIGlzIGluZGV4IGZyb20gZHJtX3BsYW5lX2luZGV4 KQorCSAqICAgICAgIGJpdCAzMCAgICAtIGhkbWkgb3V0cHV0CiAJICogICAgICAgYml0IDMxICAg IC0gY3J0YwogCSAqCiAJICogSW5zdGVhZCBvZiBjcmVhdGluZyBhIG5ldyBpbmRleCB0byBjb3Zl ciBwbGFuZXMgYW5kIGNydGMsIHVzaW5nCkBAIC00NzUsNiArNDc2LDEyIEBAIHN0cnVjdCBpbnRl bF9jcnRjX3NjYWxlcl9zdGF0ZSB7CiAJICogYXZpbGFiaWxpdHkuCiAJICovCiAjZGVmaW5lIFNL TF9DUlRDX0lOREVYIDMxCisKKwkvKgorCSAqIEhETUkgWUNCQ1IgNDIwIG91dHB1dCBjb25zdW1l IGEgc2NhbGVyLiBTbyBhZGRpbmcgYSB1c2VyCisJICogZm9yIEhETUkgb3V0cHV0IDQyMCByZXF1 aXJlbWVudC4KKwkgKi8KKyNkZWZpbmUgU0tMX0hETUlfT1VUUFVUX0lOREVYIDMwCiAJdW5zaWdu ZWQgc2NhbGVyX3VzZXJzOwogCiAJLyogc2NhbGVyIHVzZWQgYnkgY3J0YyBmb3IgcGFuZWwgZml0 dGluZyBwdXJwb3NlICovCkBAIC0xNDg1LDYgKzE0OTIsNyBAQCB2b2lkIGludGVsX21vZGVfZnJv bV9waXBlX2NvbmZpZyhzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKIAkJCQkgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKTsKIAogaW50IHNrbF91cGRhdGVfc2NhbGVy X2NydGMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOworaW50IHNrbF91cGRh dGVfc2NhbGVyX2NydGNfaGRtaV9vdXRwdXQoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnN0YXRl KTsKIGludCBza2xfbWF4X3NjYWxlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CiAKIHN0YXRpYyBpbmxpbmUgdTMyIGludGVsX3Bs YW5lX2dndHRfb2Zmc2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUpCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKaW5kZXggNGIyN2I1ZC4uNTA1MTM0NyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hkbWkuYwpAQCAtMTM4MSw2ICsxMzgxLDcgQEAgaW50ZWxfaGRtaV9jb21w dXRlX3ljYmNyX2NvbmZpZyhzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwK IHsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gY29ubl9zdGF0ZS0+Y29ubmVj dG9yOwogCXN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICppbmZvID0gJmNvbm5lY3Rvci0+ZGlzcGxh eV9pbmZvOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhj b25uX3N0YXRlLT5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9ICZjb25m aWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKIAllbnVtIGRybV9oZG1pX291dHB1dF90eXBlIHR5cGUg PSBjb25uX3N0YXRlLT5oZG1pX291dHB1dDsKIAl1OCBzcmNfb3V0cHV0X2NhcCA9IGludGVsX2hk bWlfZ2V0X3NyY19vdXRwdXRfc3VwcG9ydChjb25uZWN0b3IpOwpAQCAtMTQyNSw2ICsxNDI2LDE2 IEBAIGludGVsX2hkbWlfY29tcHV0ZV95Y2Jjcl9jb25maWcoc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKmNvbm5fc3RhdGUsCiAJCWNvbmZpZy0+cG9ydF9jbG9jayAvPSAyOwogCQkqY2xvY2tf MTJicGMgLz0gMjsKIAkJKmNsb2NrXzhicGMgLz0gMjsKKworCQkvKiB5Y2JjciA0MjAgb3V0cHV0 IGNvbnZlcnNpb24gbmVlZHMgYSBzY2FsZXIgKi8KKwkJaWYgKHNrbF91cGRhdGVfc2NhbGVyX2Ny dGNfaGRtaV9vdXRwdXQoY29uZmlnKSkgeworCQkJRFJNX0VSUk9SKCJTY2FsZXIgYWxsb2NhdGlv biBmb3Igb3V0cHV0IGZhaWxlZFxuIik7CisJCQlyZXR1cm4gRFJNX0hETUlfT1VUUFVUX0lOVkFM SUQ7CisJCX0KKworCQkvKiBCaW5kIHRoaXMgc2NhbGVyIHRvIHBpcGUgKi8KKwkJaW50ZWxfcGNo X3BhbmVsX2ZpdHRpbmcoaW50ZWxfY3J0YywgY29uZmlnLAorCQkJCQlEUk1fTU9ERV9TQ0FMRV9G VUxMU0NSRUVOKTsKIAkJYnJlYWs7CiAKIAljYXNlIERSTV9IRE1JX09VVFBVVF9ZQ0JDUjQyMjoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCmluZGV4IGM4MTAzZjguLjQ0OTQxOTAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwpAQCAtMTEwLDcgKzExMCw4IEBAIGludGVsX3BjaF9w YW5lbF9maXR0aW5nKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAogCiAJLyogTmF0aXZl IG1vZGVzIGRvbid0IG5lZWQgZml0dGluZyAqLwogCWlmIChhZGp1c3RlZF9tb2RlLT5jcnRjX2hk aXNwbGF5ID09IHBpcGVfY29uZmlnLT5waXBlX3NyY193ICYmCi0JICAgIGFkanVzdGVkX21vZGUt PmNydGNfdmRpc3BsYXkgPT0gcGlwZV9jb25maWctPnBpcGVfc3JjX2gpCisJICAgIGFkanVzdGVk X21vZGUtPmNydGNfdmRpc3BsYXkgPT0gcGlwZV9jb25maWctPnBpcGVfc3JjX2ggJiYKKwkgICAg cGlwZV9jb25maWctPmhkbWlfb3V0cHV0ICE9IERSTV9IRE1JX09VVFBVVF9ZQ0JDUjQyMCkKIAkJ Z290byBkb25lOwogCiAJc3dpdGNoIChmaXR0aW5nX21vZGUpIHsKLS0gCjIuNy40CgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK