From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v5 04/17] drm: add helper to validate ycbcr420 modes Date: Wed, 5 Jul 2017 14:45:57 +0300 Message-ID: <20170705114557.GU12629@intel.com> References: <1499177524-26292-1-git-send-email-shashank.sharma@intel.com> <1499177524-26292-5-git-send-email-shashank.sharma@intel.com> <20170704155633.GR12629@intel.com> <38fb57ac-50ca-4578-7a8d-7b34964ca760@intel.com> <20170705101622.GT12629@intel.com> <701086c0-3287-dd56-dd23-b3d7dba6956e@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <701086c0-3287-dd56-dd23-b3d7dba6956e@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Sharma, Shashank" Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKdWwgMDUsIDIwMTcgYXQgMDM6NDk6NTFQTSArMDUzMCwgU2hhcm1hLCBTaGFzaGFu ayB3cm90ZToKPiBSZWdhcmRzCj4gCj4gU2hhc2hhbmsKPiAKPiAKPiBPbiA3LzUvMjAxNyAzOjQ2 IFBNLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBXZWQsIEp1bCAwNSwgMjAxNyBhdCAw ODo0ODo0MEFNICswNTMwLCBTaGFybWEsIFNoYXNoYW5rIHdyb3RlOgo+ID4+IFJlZ2FyZHMKPiA+ Pgo+ID4+IFNoYXNoYW5rCj4gPj4KPiA+Pgo+ID4+IE9uIDcvNC8yMDE3IDk6MjYgUE0sIFZpbGxl IFN5cmrDpGzDpCB3cm90ZToKPiA+Pj4gT24gVHVlLCBKdWwgMDQsIDIwMTcgYXQgMDc6NDE6NTFQ TSArMDUzMCwgU2hhc2hhbmsgU2hhcm1hIHdyb3RlOgo+ID4+Pj4gWUNCQ1I0MjAgbW9kZXMgYXJl IHN1cHBvcnRlZCBvbmx5IG9uIEhETUkgMi4wIGNhcGFibGUgc291cmNlcy4KPiA+Pj4+IFRoaXMg cGF0Y2ggYWRkcyBhIGRybSBoZWxwZXIgdG8gdmFsaWRhdGUgWUNCQ1I0MjAtb25seSBtb2RlCj4g Pj4+PiBvbiBhIHBhcnRpY3VsYXIgY29ubmVjdG9yLiBUaGlzIGZ1bmN0aW9uIHdpbGwgaGVscCBw cnVuaW5nCj4gPj4+PiB0aGUgWUNCQ1I0MjAtb25seSBtb2RlcyBmcm9tIHRoZSBjb25uZWN0b3In cyBtb2RlbGlzdC4KPiA+Pj4+Cj4gPj4+PiBWNTogSW50cm9kdWNlZCB0aGUgcGF0Y2ggaW4gc2Vy aWVzLgo+ID4+Pj4KPiA+Pj4+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4 LmludGVsLmNvbT4KPiA+Pj4+IFNpZ25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hh bmsuc2hhcm1hQGludGVsLmNvbT4KPiA+Pj4+IC0tLQo+ID4+Pj4gICAgZHJpdmVycy9ncHUvZHJt L2RybV9lZGlkLmMgICAgICAgICB8ICAzICsrLQo+ID4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2Ry bV9tb2Rlcy5jICAgICAgICB8IDI4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+Pj4+ ICAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMgfCAgNCArKysrCj4gPj4+PiAg ICBpbmNsdWRlL2RybS9kcm1fZWRpZC5oICAgICAgICAgICAgIHwgIDEgKwo+ID4+Pj4gICAgaW5j bHVkZS9kcm0vZHJtX21vZGVzLmggICAgICAgICAgICB8ICA1ICsrKysrCj4gPj4+PiAgICA1IGZp bGVzIGNoYW5nZWQsIDQwIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiA+Pj4+Cj4gPj4+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2VkaWQuYwo+ID4+Pj4gaW5kZXggYjg3OTY2Mi4uYWQyNmM1ZSAxMDA2NDQKPiA+Pj4+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCj4gPj4+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX2VkaWQuYwo+ID4+Pj4gQEAgLTI5NDcsMTAgKzI5NDcsMTEgQEAgdTggZHJtX21h dGNoX2NlYV9tb2RlKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICp0b19tYXRjaCkKPiA+ Pj4+ICAgIH0KPiA+Pj4+ICAgIEVYUE9SVF9TWU1CT0woZHJtX21hdGNoX2NlYV9tb2RlKTsKPiA+ Pj4+ICAgIAo+ID4+Pj4gLXN0YXRpYyBib29sIGRybV92YWxpZF9jZWFfdmljKHU4IHZpYykKPiA+ Pj4+ICtib29sIGRybV92YWxpZF9jZWFfdmljKHU4IHZpYykKPiA+Pj4+ICAgIHsKPiA+Pj4+ICAg IAlyZXR1cm4gdmljID4gMCAmJiB2aWMgPCBBUlJBWV9TSVpFKGVkaWRfY2VhX21vZGVzKTsKPiA+ Pj4+ICAgIH0KPiA+Pj4+ICtFWFBPUlRfU1lNQk9MKGRybV92YWxpZF9jZWFfdmljKTsKPiA+Pj4+ ICAgIAo+ID4+Pj4gICAgLyoqCj4gPj4+PiAgICAgKiBkcm1fZ2V0X2NlYV9hc3BlY3RfcmF0aW8g LSBnZXQgdGhlIHBpY3R1cmUgYXNwZWN0IHJhdGlvIGNvcnJlc3BvbmRpbmcgdG8KPiA+Pj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVzLmMgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX21vZGVzLmMKPiA+Pj4+IGluZGV4IGYyNDkzYjkuLjNiNTNjOGUzIDEwMDY0NAo+ID4+Pj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlcy5jCj4gPj4+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vZHJtX21vZGVzLmMKPiA+Pj4+IEBAIC0xMDgzLDYgKzEwODMsMzQgQEAgZHJtX21vZGVf dmFsaWRhdGVfc2l6ZShjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPiA+Pj4+ ICAgIH0KPiA+Pj4+ICAgIEVYUE9SVF9TWU1CT0woZHJtX21vZGVfdmFsaWRhdGVfc2l6ZSk7Cj4g Pj4+PiAgICAKPiA+Pj4+ICsvKioKPiA+Pj4+ICsgKiBkcm1fbW9kZV95Y2JjcjQyMF9vbmx5IC0g YWRkICd5Y2JjcjQyMC1vbmx5JyBtb2RlcyBvbmx5IHdoZW4gYWxsb3dlZAo+ID4+Pj4gKyAqIEBt b2RlOiBtb2RlIHRvIGNoZWNrCj4gPj4+PiArICogQGNvbm5lY3RvcjogZHJtIGNvbm5lY3RvciB1 bmRlciBhY3Rpb24KPiA+Pj4+ICsgKgo+ID4+Pj4gKyAqIFRoaXMgZnVuY3Rpb24gaXMgYSBoZWxw ZXIgd2hpY2ggY2FuIGJlIHVzZWQgdG8gZmlsdGVyIG91dCBhbnkgWUNCQ1I0MjAKPiA+Pj4+ICsg KiBvbmx5IG1vZGUsIHdoZW4gdGhlIHNvdXJjZSBkb2Vzbid0IHN1cHBvcnQgaXQuCj4gPj4+PiAr ICoKPiA+Pj4+ICsgKiBSZXR1cm5zOgo+ID4+Pj4gKyAqIFRoZSBtb2RlIHN0YXR1cwo+ID4+Pj4g KyAqLwo+ID4+Pj4gK2VudW0gZHJtX21vZGVfc3RhdHVzCj4gPj4+PiArZHJtX21vZGVfdmFsaWRh dGVfeWNiY3I0MjAoY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gPj4+PiAr CQkJICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiA+Pj4+ICt7Cj4gPj4+PiAr CXU4IHZpYyA9IGRybV9tYXRjaF9jZWFfbW9kZShtb2RlKTsKPiA+Pj4+ICsJZW51bSBkcm1fbW9k ZV9zdGF0dXMgc3RhdHVzID0gTU9ERV9PSzsKPiA+Pj4+ICsJc3RydWN0IGRybV9oZG1pX2luZm8g KmhkbWkgPSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGRtaTsKPiA+Pj4+ICsKPiA+Pj4+ICsJ aWYgKGRybV92YWxpZF9jZWFfdmljKHZpYykgJiYgdGVzdF9iaXQodmljLCBoZG1pLT55NDIwX3Zk Yl9tb2RlcykpIHsKPiA+Pj4gVGhlIGRybV92YWxpZF9jZWFfdmljKCkgY2hlY2sgc2VlbXMgcmVk dW5kYW50IHRvIG1lLgo+ID4+PiBXaHkgZG8geW91IHRoaW5rIHdlIG5lZWQgaXQ/Cj4gPj4gZHJt X21hdGNoX2NlYV9tb2RlKCkgcmV0dXJucyAwIGluIGNhc2UgaWYgYSB2aWMgaXMgbm90IGZvdW5k LiBpZiB3ZSB0YWtlCj4gPj4gdGhhdCB0byB0ZXN0X2JpdCgpIGl0IHdpbGwgY2hlY2sgYml0IDAK PiA+PiBhbmQgZ2l2ZSB3cm9uZyByZXN1bHRzLgo+ID4gV2h5IHdvdWxkIGJpdCAwIGJlIHNldD8g VGhhdCB3b3VsZCBzb3VuZCBsaWtlIGEgYnVnIGluIHRoZSBtb2RlIHBhcnNpbmcuCj4gSSBrbm93 LCBhbmQgaXQgd29udCBiZSwgYnV0IGRvIHdlIHdhbnQgdG8gdGFrZSB0aGUgd3JvbmcgVklDIGFz IGlucHV0IGluIAo+IGZpcnN0IHBsYWNlID8gTWFueSBkZXRhaWxlZCBtb2RlcywgYW5kIG5vbi1j ZWEgbW9kZXMKPiB3aWxsIHJldHVybiAwIGZvciBWSUMsCgpBbGwgbm9uLWNlYSBtb2RlcyB3aWxs IHJldHVybiAwLgoKPiB3aHkgc2hvdWxkIHdlIGJvdGhlciBjaGVja2luZyB0aGVtIGluIG1hcCBh dCB0aGUgCj4gZmlyc3QgcGxhY2UgPwoKQ2hlY2tpbmcgdGhlIHZpYyBhZ2FpbnN0IHNvbWUgcmFu Z2UgaXMgcG9pbnRsZXNzIHdvcmsuIEp1c3QKY2hlY2tpbmcgdGhlIGJpdCBibGluZGx5IGlzIHRo ZSBtb3N0IG9wdGltYWwgd2F5LgoKPiAKPiAtIFNoYXNoYW5rCj4gPj4gU28gZmlyc3Qgd2UgaGF2 ZSB0byBjaGVjayB2YWxpZCB2aWMsIHRoaXMgaXMKPiA+PiBhbHNvIGFuIGFkZGl0aW9uYWwgY2hl Y2sgZm9yIFlDQkNSNDIwIG1vZGUKPiA+PiBhcyB0aGV5IG11c3QgaGF2ZSBhIHZhbGlkIHZpYwo+ ID4+PiBBbHNvIEkgZG9uJ3QgdGhpbmsgdGhpcyB3aWxsIGNvbXBpbGUgc2luY2Ugd2UgZG9uJ3Qg aGF2ZQo+ID4+PiB5NDIwX3ZkYl9tb2Rlc1tdIHlldC4KPiA+PiBBaCwgbm93IEkgcmVjYWxsIHRo ZSByZWFzb24gSSB3YW50ZWQgdG8gZ2l2ZSB5b3UsIHdoZW4geW91IGFza2VkIG1lIHRvCj4gPj4g bW92ZSB0aGlzIHBhdGNoLCBiZWZvcmUgd2UgYWRkIHljYmNyNDIwIG1vZGVzLgo+ID4+IFNvIG5v dyB0aGlzIGhhcyB0byBnbyBhZnRlciBwYXRjaCA1IHJpZ2h0ID8gSSB3b3VsZCByZS1zZXF1ZW5j ZQo+ID4+IGFjY29yZGluZ2x5Lgo+ID4+Cj4gPj4gLSBTaGFzaGFuawo+ID4+Pj4gKwkJaWYgKCFj b25uZWN0b3ItPnljYmNyXzQyMF9hbGxvd2VkKQo+ID4+Pj4gKwkJCXN0YXR1cyA9IE1PREVfTk9f NDIwOwo+ID4+Pj4gKwl9Cj4gPj4+PiArCj4gPj4+PiArCXJldHVybiBzdGF0dXM7Cj4gPj4+PiAr fQo+ID4+Pj4gK0VYUE9SVF9TWU1CT0woZHJtX21vZGVfdmFsaWRhdGVfeWNiY3I0MjApOwo+ID4+ Pj4gKwo+ID4+Pj4gICAgI2RlZmluZSBNT0RFX1NUQVRVUyhzdGF0dXMpIFtNT0RFXyAjIyBzdGF0 dXMgKyAzXSA9ICNzdGF0dXMKPiA+Pj4+ICAgIAo+ID4+Pj4gICAgc3RhdGljIGNvbnN0IGNoYXIg KiBjb25zdCBkcm1fbW9kZV9zdGF0dXNfbmFtZXNbXSA9IHsKPiA+Pj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX3Byb2JlX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9w cm9iZV9oZWxwZXIuYwo+ID4+Pj4gaW5kZXggMDBlNjgzMi4uOTA0OTY2YyAxMDA2NDQKPiA+Pj4+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMKPiA+Pj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fcHJvYmVfaGVscGVyLmMKPiA+Pj4+IEBAIC01MjgsNiArNTI4LDEw IEBAIGludCBkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+Pj4+ICAgIAkJaWYgKG1vZGUtPnN0YXR1cyA9PSBN T0RFX09LKQo+ID4+Pj4gICAgCQkJbW9kZS0+c3RhdHVzID0gZHJtX21vZGVfdmFsaWRhdGVfcGlw ZWxpbmUobW9kZSwKPiA+Pj4+ICAgIAkJCQkJCQkJICBjb25uZWN0b3IpOwo+ID4+Pj4gKwo+ID4+ Pj4gKwkJaWYgKG1vZGUtPnN0YXR1cyA9PSBNT0RFX09LKQo+ID4+Pj4gKwkJCW1vZGUtPnN0YXR1 cyA9IGRybV9tb2RlX3ZhbGlkYXRlX3ljYmNyNDIwKG1vZGUsCj4gPj4+PiArCQkJCQkJCQkgIGNv bm5lY3Rvcik7Cj4gPj4+PiAgICAJfQo+ID4+Pj4gICAgCj4gPj4+PiAgICBwcnVuZToKPiA+Pj4+ IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZWRpZC5oIGIvaW5jbHVkZS9kcm0vZHJtX2Vk aWQuaAo+ID4+Pj4gaW5kZXggODljMDA2Mi4uYjU1YjJhNyAxMDA2NDQKPiA+Pj4+IC0tLSBhL2lu Y2x1ZGUvZHJtL2RybV9lZGlkLmgKPiA+Pj4+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9lZGlkLmgK PiA+Pj4+IEBAIC00NzcsNCArNDc3LDUgQEAgdm9pZCBkcm1fZWRpZF9nZXRfbW9uaXRvcl9uYW1l KHN0cnVjdCBlZGlkICplZGlkLCBjaGFyICpuYW1lLAo+ID4+Pj4gICAgc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKmRybV9tb2RlX2ZpbmRfZG10KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPj4+ PiAgICAJCQkJCSAgIGludCBoc2l6ZSwgaW50IHZzaXplLCBpbnQgZnJlc2gsCj4gPj4+PiAgICAJ CQkJCSAgIGJvb2wgcmIpOwo+ID4+Pj4gK2Jvb2wgZHJtX3ZhbGlkX2NlYV92aWModTggdmljKTsK PiA+Pj4+ICAgICNlbmRpZiAvKiBfX0RSTV9FRElEX0hfXyAqLwo+ID4+Pj4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvZHJtL2RybV9tb2Rlcy5oIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVzLmgKPiA+Pj4+ IGluZGV4IDk0YWM3NzEuLmY4YTEyNjggMTAwNjQ0Cj4gPj4+PiAtLS0gYS9pbmNsdWRlL2RybS9k cm1fbW9kZXMuaAo+ID4+Pj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVzLmgKPiA+Pj4+IEBA IC04MCw2ICs4MCw3IEBAIHN0cnVjdCB2aWRlb21vZGU7Cj4gPj4+PiAgICAgKiBATU9ERV9PTkVf U0laRTogb25seSBvbmUgcmVzb2x1dGlvbiBpcyBzdXBwb3J0ZWQKPiA+Pj4+ICAgICAqIEBNT0RF X05PX1JFRFVDRUQ6IG1vbml0b3IgZG9lc24ndCBhY2NlcHQgcmVkdWNlZCBibGFua2luZwo+ID4+ Pj4gICAgICogQE1PREVfTk9fU1RFUkVPOiBzdGVyZW8gbW9kZXMgbm90IHN1cHBvcnRlZAo+ID4+ Pj4gKyAqIEBNT0RFX05PXzQyMDogeWNiY3IgNDIwIG1vZGVzIG5vdCBzdXBwb3J0ZWQKPiA+Pj4+ ICAgICAqIEBNT0RFX1NUQUxFOiBtb2RlIGhhcyBiZWNvbWUgc3RhbGUKPiA+Pj4+ICAgICAqIEBN T0RFX0JBRDogdW5zcGVjaWZpZWQgcmVhc29uCj4gPj4+PiAgICAgKiBATU9ERV9FUlJPUjogZXJy b3IgY29uZGl0aW9uCj4gPj4+PiBAQCAtMTI0LDYgKzEyNSw3IEBAIGVudW0gZHJtX21vZGVfc3Rh dHVzIHsKPiA+Pj4+ICAgIAlNT0RFX09ORV9TSVpFLAo+ID4+Pj4gICAgCU1PREVfTk9fUkVEVUNF RCwKPiA+Pj4+ICAgIAlNT0RFX05PX1NURVJFTywKPiA+Pj4+ICsJTU9ERV9OT180MjAsCj4gPj4+ PiAgICAJTU9ERV9TVEFMRSA9IC0zLAo+ID4+Pj4gICAgCU1PREVfQkFEID0gLTIsCj4gPj4+PiAg ICAJTU9ERV9FUlJPUiA9IC0xCj4gPj4+PiBAQCAtNDk2LDYgKzQ5OCw5IEBAIGJvb2wgZHJtX21v ZGVfZXF1YWxfbm9fY2xvY2tzX25vX3N0ZXJlbyhjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZTEsCj4gPj4+PiAgICBlbnVtIGRybV9tb2RlX3N0YXR1cyBkcm1fbW9kZV92YWxpZGF0 ZV9iYXNpYyhjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSk7Cj4gPj4+PiAgICBl bnVtIGRybV9tb2RlX3N0YXR1cyBkcm1fbW9kZV92YWxpZGF0ZV9zaXplKGNvbnN0IHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICptb2RlLAo+ID4+Pj4gICAgCQkJCQkgICAgaW50IG1heFgsIGludCBt YXhZKTsKPiA+Pj4+ICtlbnVtIGRybV9tb2RlX3N0YXR1cwo+ID4+Pj4gK2RybV9tb2RlX3ZhbGlk YXRlX3ljYmNyNDIwKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAo+ID4+Pj4g KwkJCSAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ID4+Pj4gICAgdm9pZCBk cm1fbW9kZV9wcnVuZV9pbnZhbGlkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPj4+PiAgICAJ CQkgICAgc3RydWN0IGxpc3RfaGVhZCAqbW9kZV9saXN0LCBib29sIHZlcmJvc2UpOwo+ID4+Pj4g ICAgdm9pZCBkcm1fbW9kZV9zb3J0KHN0cnVjdCBsaXN0X2hlYWQgKm1vZGVfbGlzdCk7Cj4gPj4+ PiAtLSAKPiA+Pj4+IDIuNy40CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK