From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak Rawat Subject: [PATCH i-g-t 5/5] tests/kms_atomic: Add a new test case for FB_DAMAGE_CLIPS plane property Date: Wed, 5 Sep 2018 17:03:50 -0700 Message-ID: <20180906000350.2478-6-drawat@vmware.com> References: <20180906000350.2478-1-drawat@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180906000350.2478-1-drawat@vmware.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: igt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, linux-graphics-maintainer@vmware.com, thellstrom@vmware.com, syeh@vmware.com Cc: Daniel Vetter , dri-devel@lists.freedesktop.org, =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= , Deepak Rawat , Lukasz Spintzyk List-Id: dri-devel@lists.freedesktop.org U29tZSBzaW1wbGUgdGVzdCBjYXNlcyB0byB1c2UgRkJfREFNQUdFX0NMSVBTIHBsYW5lIHByb3Bl cnR5LgoKU2lnbmVkLW9mZi1ieTogRGVlcGFrIFJhd2F0IDxkcmF3YXRAdm13YXJlLmNvbT4KQ2M6 IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmll bC52ZXR0ZXJAZmZ3bGwuY2g+CkNjOiBMdWthc3ogU3BpbnR6eWsgPGx1a2Fzei5zcGludHp5a0Bk aXNwbGF5bGluay5jb20+CkNjOiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+CQpDYzog RGFuaWVsIFN0b25lIDxkYW5pZWxAZm9vaXNoYmFyLm9yZz4KQ2M6IE5vcmFsZiBUcsO4bm5lcyA8 bm9yYWxmQHRyb25uZXMub3JnPgpDYzogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAZ21haWwuY29tPgot LS0KIGxpYi9pZ3Rfa21zLmMgICAgICB8ICAgMSArCiBsaWIvaWd0X2ttcy5oICAgICAgfCAgIDEg KwogdGVzdHMva21zX2F0b21pYy5jIHwgMjYwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAyNjIgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL2xpYi9pZ3Rfa21zLmMgYi9saWIvaWd0X2ttcy5jCmluZGV4IDllOTQxNGNmLi40 NmNkNTBlMSAxMDA2NDQKLS0tIGEvbGliL2lndF9rbXMuYworKysgYi9saWIvaWd0X2ttcy5jCkBA IC0xNzUsNiArMTc1LDcgQEAgY29uc3QgY2hhciAqIGNvbnN0IGlndF9wbGFuZV9wcm9wX25hbWVz W0lHVF9OVU1fUExBTkVfUFJPUFNdID0gewogCVtJR1RfUExBTkVfSU5fRk9STUFUU10gPSAiSU5f Rk9STUFUUyIsCiAJW0lHVF9QTEFORV9DT0xPUl9FTkNPRElOR10gPSAiQ09MT1JfRU5DT0RJTkci LAogCVtJR1RfUExBTkVfQ09MT1JfUkFOR0VdID0gIkNPTE9SX1JBTkdFIiwKKwlbSUdUX1BMQU5F X0ZCX0RBTUFHRV9DTElQU10gPSAiRkJfREFNQUdFX0NMSVBTIiwKIH07CiAKIGNvbnN0IGNoYXIg KiBjb25zdCBpZ3RfY3J0Y19wcm9wX25hbWVzW0lHVF9OVU1fQ1JUQ19QUk9QU10gPSB7CmRpZmYg LS1naXQgYS9saWIvaWd0X2ttcy5oIGIvbGliL2lndF9rbXMuaAppbmRleCBiZDBjMGYwOS4uODkz YjdjZjUgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3Rfa21zLmgKKysrIGIvbGliL2lndF9rbXMuaApAQCAt MjY3LDYgKzI2Nyw3IEBAIGVudW0gaWd0X2F0b21pY19wbGFuZV9wcm9wZXJ0aWVzIHsKICAgICAg ICBJR1RfUExBTkVfSU5fRk9STUFUUywKICAgICAgICBJR1RfUExBTkVfQ09MT1JfRU5DT0RJTkcs CiAgICAgICAgSUdUX1BMQU5FX0NPTE9SX1JBTkdFLAorICAgICAgIElHVF9QTEFORV9GQl9EQU1B R0VfQ0xJUFMsCiAgICAgICAgSUdUX05VTV9QTEFORV9QUk9QUwogfTsKIApkaWZmIC0tZ2l0IGEv dGVzdHMva21zX2F0b21pYy5jIGIvdGVzdHMva21zX2F0b21pYy5jCmluZGV4IDcyNzE0ZTEyLi40 YWJjMGFkNSAxMDA2NDQKLS0tIGEvdGVzdHMva21zX2F0b21pYy5jCisrKyBiL3Rlc3RzL2ttc19h dG9taWMuYwpAQCAtNTYsNiArNTYsMjQgQEAKIAogSUdUX1RFU1RfREVTQ1JJUFRJT04oIlRlc3Qg YXRvbWljIG1vZGVzZXR0aW5nIEFQSSIpOwogCisvKiBzaWduZWQzMiBkcm1fbW9kZV9yZWN0IGRl Y2xhcmVkIGhlcmUgZm9yIHVzZSB3aXRoIGRybSBkYW1hZ2UgZm9yIHBhZ2UtZmxpcCAqLworc3Ry dWN0IGRhbWFnZV9yZWN0IHsKKwlpbnQgeDE7CisJaW50IHkxOworCWludCB4MjsKKwlpbnQgeTI7 Cit9OworCitzdGF0aWMgaW5saW5lIGludCBkYW1hZ2VfcmVjdF93aWR0aChzdHJ1Y3QgZGFtYWdl X3JlY3QgKnIpCit7CisJcmV0dXJuIHItPngyIC0gci0+eDE7Cit9CisKK3N0YXRpYyBpbmxpbmUg aW50IGRhbWFnZV9yZWN0X2hlaWdodChzdHJ1Y3QgZGFtYWdlX3JlY3QgKnIpCit7CisJcmV0dXJu IHItPnkyIC0gci0+eTE7Cit9CisKIGVudW0ga21zX2F0b21pY19jaGVja19yZWxheCB7CiAJQVRP TUlDX1JFTEFYX05PTkUgPSAwLAogCUNSVENfUkVMQVhfTU9ERSA9ICgxIDw8IDApLApAQCAtODQw LDYgKzg1OCwyNDAgQEAgc3RhdGljIHZvaWQgYXRvbWljX2ludmFsaWRfcGFyYW1zKGlndF9waXBl X3QgKnBpcGUsCiAJZG9faW9jdGxfZXJyKGRpc3BsYXktPmRybV9mZCwgRFJNX0lPQ1RMX01PREVf QVRPTUlDLCAmaW9jLCBFRkFVTFQpOwogfQogCitzdGF0aWMgdm9pZCBhdG9taWNfcGxhbmVfZGFt YWdlKGlndF9waXBlX3QgKnBpcGUsIGlndF9wbGFuZV90ICpwbGFuZSwgc3RydWN0IGlndF9mYiAq ZmIpCit7CisJc3RydWN0IGRhbWFnZV9yZWN0ICpkYW1hZ2U7CisJc3RydWN0IGlndF9mYiBmYl8x OworCXN0cnVjdCBpZ3RfZmIgZmJfMjsKKwljYWlyb190ICpjcl8xOworCWNhaXJvX3QgKmNyXzI7 CisKKwlkYW1hZ2UgPSBtYWxsb2Moc2l6ZW9mKCpkYW1hZ2UpICogMik7CisJaWd0X2Fzc2VydChk YW1hZ2UpOworCisJLyogQ29sb3IgZmIgd2l0aCB3aGl0ZSByZWN0IGF0IGNlbnRlciAqLworCWln dF9jcmVhdGVfY29sb3JfZmIocGlwZS0+ZGlzcGxheS0+ZHJtX2ZkLCBmYi0+d2lkdGgsIGZiLT5o ZWlnaHQsCisJCQkgICAgZmItPmRybV9mb3JtYXQsIEk5MTVfVElMSU5HX05PTkUsIDAuMiwgMC4y LCAwLjIsCisJCQkgICAgJmZiXzEpOworCWNyXzEgPSBpZ3RfZ2V0X2NhaXJvX2N0eChwaXBlLT5k aXNwbGF5LT5kcm1fZmQsICZmYl8xKTsKKwlpZ3RfcGFpbnRfY29sb3IoY3JfMSwgZmItPndpZHRo LzQsIGZiLT5oZWlnaHQvNCwgZmItPndpZHRoLzIsCisJCQlmYi0+aGVpZ2h0LzIsIDEuMCwgMS4w LCAxLjApOworCWlndF9wdXRfY2Fpcm9fY3R4KHBpcGUtPmRpc3BsYXktPmRybV9mZCwgJmZiXzEs IGNyXzEpOworCisJLyoKKwkgKiBGbGlwIHRoZSBwcmltYXJ5IHBsYW5lIHRvIG5ldyBjb2xvciBm YiB1c2luZyBhdG9taWMgQVBJIGFuZCBjaGVjayB0aGUKKwkgKiBzdGF0ZS4KKwkgKi8KKwlpZ3Rf cGxhbmVfc2V0X2ZiKHBsYW5lLCAmZmJfMSk7CisJY3J0Y19jb21taXQocGlwZSwgcGxhbmUsIENP TU1JVF9BVE9NSUMsIEFUT01JQ19SRUxBWF9OT05FKTsKKworCS8qCisJICogQ2hhbmdlIHRoZSBj b2xvciBvZiB0b3AgbGVmdCBjbGlwIGZyb20gY2VudGVyIGFuZCBpc3N1ZSBwbGFuZSB1cGRhdGUK KwkgKiB3aXRoIGRhbWFnZSBhbmQgdmVyaWZ5IHRoZSBzdGF0ZS4KKwkgKi8KKwlkYW1hZ2VbMF0u eDEgPSAwOworCWRhbWFnZVswXS55MSA9IDA7CisJZGFtYWdlWzBdLngyID0gZmItPndpZHRoLzI7 CisJZGFtYWdlWzBdLnkyID0gZmItPmhlaWdodC8yOworCisJY3JfMSA9IGlndF9nZXRfY2Fpcm9f Y3R4KHBpcGUtPmRpc3BsYXktPmRybV9mZCwgJmZiXzEpOworCWlndF9wYWludF9jb2xvcihjcl8x LCBkYW1hZ2VbMF0ueDEsIGRhbWFnZVswXS55MSwKKwkJCWRhbWFnZV9yZWN0X3dpZHRoKCZkYW1h Z2VbMF0pLAorCQkJZGFtYWdlX3JlY3RfaGVpZ2h0KCZkYW1hZ2VbMF0pLCAxLjAsIDAsIDApOwor CWlndF9wdXRfY2Fpcm9fY3R4KHBpcGUtPmRpc3BsYXktPmRybV9mZCwgJmZiXzEsIGNyXzEpOwor CisJaWd0X3BsYW5lX3NldF9mYihwbGFuZSwgJmZiXzEpOworCWlndF9wbGFuZV9yZXBsYWNlX3By b3BfYmxvYihwbGFuZSwgSUdUX1BMQU5FX0ZCX0RBTUFHRV9DTElQUywgZGFtYWdlLAorCQkJCSAg ICBzaXplb2YoKmRhbWFnZSkpOworCWNydGNfY29tbWl0KHBpcGUsIHBsYW5lLCBDT01NSVRfQVRP TUlDLCBBVE9NSUNfUkVMQVhfTk9ORSk7CisKKwkvKgorCSAqIENoYW5nZSB0aGUgY29sb3Igb2Yg dG9wIGxlZnQgYW5kIGJvdHRvbSByaWdodCBjbGlwIGZyb20gY2VudGVyIGFuZAorCSAqIGlzc3Vl IHBsYW5lIHVwZGF0ZSB3aXRoIGRhbWFnZSBhbmQgdmVyaWZ5IHRoZSBzdGF0ZS4KKwkgKi8KKwlk YW1hZ2VbMF0ueDEgPSAwOworCWRhbWFnZVswXS55MSA9IDA7CisJZGFtYWdlWzBdLngyID0gZmIt PndpZHRoLzI7CisJZGFtYWdlWzBdLnkyID0gZmItPmhlaWdodC8yOworCisJZGFtYWdlWzFdLngx ID0gZmItPndpZHRoLzI7CisJZGFtYWdlWzFdLnkxID0gZmItPmhlaWdodC8yOworCWRhbWFnZVsx XS54MiA9IGZiLT53aWR0aDsKKwlkYW1hZ2VbMV0ueTIgPSBmYi0+aGVpZ2h0OworCisJY3JfMSA9 IGlndF9nZXRfY2Fpcm9fY3R4KHBpcGUtPmRpc3BsYXktPmRybV9mZCwgJmZiXzEpOworCWlndF9w YWludF9jb2xvcihjcl8xLCBkYW1hZ2VbMF0ueDEsIGRhbWFnZVswXS55MSwKKwkJCWRhbWFnZV9y ZWN0X3dpZHRoKCZkYW1hZ2VbMF0pLAorCQkJZGFtYWdlX3JlY3RfaGVpZ2h0KCZkYW1hZ2VbMF0p LCAxLjAsIDAsIDEuMCk7CisJaWd0X3BhaW50X2NvbG9yKGNyXzEsIGRhbWFnZVsxXS54MSwgZGFt YWdlWzFdLnkxLAorCQkJZGFtYWdlX3JlY3Rfd2lkdGgoJmRhbWFnZVsxXSksCisJCQlkYW1hZ2Vf cmVjdF9oZWlnaHQoJmRhbWFnZVsxXSksIDAsIDAsIDEuMCk7CisJaWd0X3B1dF9jYWlyb19jdHgo cGlwZS0+ZGlzcGxheS0+ZHJtX2ZkLCAmZmJfMSwgY3JfMSk7CisKKwlpZ3RfcGxhbmVfc2V0X2Zi KHBsYW5lLCAmZmJfMSk7CisJaWd0X3BsYW5lX3JlcGxhY2VfcHJvcF9ibG9iKHBsYW5lLCBJR1Rf UExBTkVfRkJfREFNQUdFX0NMSVBTLCBkYW1hZ2UsCisJCQkJICAgIHNpemVvZigqZGFtYWdlKSAq IDIpOworCWNydGNfY29tbWl0KHBpcGUsIHBsYW5lLCBDT01NSVRfQVRPTUlDLCBBVE9NSUNfUkVM QVhfTk9ORSk7CisKKwkvKgorCSAqIElzc3VlIGEgcGxhbmUgdXBkYXRlIHdpdGggZGFtYWdlIG9u IGEgc2VwZXJhdGUgZmIgd2l0aCBkYW1hZ2UgdG8KKwkgKiB1cHBlciByaWdodCBjbGlwIGZyb20g Y2VudGVyLgorCSAqLworCWlndF9jcmVhdGVfY29sb3JfZmIocGlwZS0+ZGlzcGxheS0+ZHJtX2Zk LCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQsCisJCQkgICAgZmItPmRybV9mb3JtYXQsIEk5MTVfVElM SU5HX05PTkUsIDAuMiwgMC4yLCAwLjIsCisJCQkgICAgJmZiXzIpOworCisJZGFtYWdlWzBdLngx ID0gZmItPndpZHRoLzI7CisJZGFtYWdlWzBdLnkxID0gMDsKKwlkYW1hZ2VbMF0ueDIgPSBmYi0+ d2lkdGg7CisJZGFtYWdlWzBdLnkyID0gZmItPmhlaWdodC8yOworCisJY3JfMiA9IGlndF9nZXRf Y2Fpcm9fY3R4KHBpcGUtPmRpc3BsYXktPmRybV9mZCwgJmZiXzIpOworCWNyXzEgPSBpZ3RfZ2V0 X2NhaXJvX2N0eChwaXBlLT5kaXNwbGF5LT5kcm1fZmQsICZmYl8xKTsKKwljYWlyb19zZXRfc291 cmNlX3N1cmZhY2UoY3JfMiwgZmJfMS5jYWlyb19zdXJmYWNlLCAwLCAwKTsKKwljYWlyb19wYWlu dChjcl8yKTsKKwlpZ3RfcGFpbnRfY29sb3IoY3JfMiwgZGFtYWdlWzBdLngxLCBkYW1hZ2VbMF0u eTEsCisJCQlkYW1hZ2VfcmVjdF93aWR0aCgmZGFtYWdlWzBdKSwKKwkJCWRhbWFnZV9yZWN0X2hl aWdodCgmZGFtYWdlWzBdKSwgMCwgMS4wLCAwKTsKKwlpZ3RfcHV0X2NhaXJvX2N0eChwaXBlLT5k aXNwbGF5LT5kcm1fZmQsICZmYl8xLCBjcl8xKTsKKwlpZ3RfcHV0X2NhaXJvX2N0eChwaXBlLT5k aXNwbGF5LT5kcm1fZmQsICZmYl8yLCBjcl8yKTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKHBsYW5lLCAm ZmJfMik7CisJaWd0X3BsYW5lX3JlcGxhY2VfcHJvcF9ibG9iKHBsYW5lLCBJR1RfUExBTkVfRkJf REFNQUdFX0NMSVBTLCBkYW1hZ2UsCisJCQkJICAgIHNpemVvZigqZGFtYWdlKSk7CisJY3J0Y19j b21taXQocGlwZSwgcGxhbmUsIENPTU1JVF9BVE9NSUMsIEFUT01JQ19SRUxBWF9OT05FKTsKKwor CS8qCisJICogSXNzdWUgcGxhbmUgdXBkYXRlIHdpdGggZGFtYWdlIHdpdGggYSBjbGlwIG91dHNp ZGUgb2YgcGxhbmUgc3JjLgorCSAqIE5PVEU6IFRoaXMgd2lsbCByZXN1bHQgaW4gbm8gdXBkYXRl IG9uIHBsYW5lIGFzIGRhbWFnZSBpcyBvdXRzaWRlLCBzbworCSAqIHdpbGwgc2VlIG5vIGNoYW5n ZSBvbiB0aGUgc2NyZWVuLgorCSAqLworCS8qIFJlc3ppZSBmYl8xIHRvIGJlIGJpZ2dlciB0aGFu IHBsYW5lICovCisJaWd0X3JlbW92ZV9mYihwaXBlLT5kaXNwbGF5LT5kcm1fZmQsICZmYl8xKTsK KwlpZ3RfY3JlYXRlX2NvbG9yX2ZiKHBpcGUtPmRpc3BsYXktPmRybV9mZCwgZmItPndpZHRoICog MiwgZmItPmhlaWdodCwKKwkJCSAgICBmYi0+ZHJtX2Zvcm1hdCwgSTkxNV9USUxJTkdfTk9ORSwg MC4yLCAwLjIsIDAuMiwKKwkJCSAgICAmZmJfMSk7CisKKwlkYW1hZ2VbMF0ueDEgPSBmYi0+d2lk dGg7CisJZGFtYWdlWzBdLnkxID0gMDsKKwlkYW1hZ2VbMF0ueDIgPSBmYi0+d2lkdGggKyBmYi0+ d2lkdGgvMjsKKwlkYW1hZ2VbMF0ueTIgPSBmYi0+aGVpZ2h0LzI7CisKKwljcl8xID0gaWd0X2dl dF9jYWlyb19jdHgocGlwZS0+ZGlzcGxheS0+ZHJtX2ZkLCAmZmJfMSk7CisJY3JfMiA9IGlndF9n ZXRfY2Fpcm9fY3R4KHBpcGUtPmRpc3BsYXktPmRybV9mZCwgJmZiXzIpOworCWNhaXJvX3NldF9z b3VyY2Vfc3VyZmFjZShjcl8xLCBmYl8yLmNhaXJvX3N1cmZhY2UsIDAsIDApOworCWNhaXJvX3Bh aW50KGNyXzEpOworCWlndF9wYWludF9jb2xvcihjcl8xLCBkYW1hZ2VbMF0ueDEsIGRhbWFnZVsw XS55MSwKKwkJCWRhbWFnZV9yZWN0X3dpZHRoKCZkYW1hZ2VbMF0pLAorCQkJZGFtYWdlX3JlY3Rf aGVpZ2h0KCZkYW1hZ2VbMF0pLCAwLCAxLjAsIDApOworCWlndF9wdXRfY2Fpcm9fY3R4KHBpcGUt PmRpc3BsYXktPmRybV9mZCwgJmZiXzIsIGNyXzIpOworCWlndF9wdXRfY2Fpcm9fY3R4KHBpcGUt PmRpc3BsYXktPmRybV9mZCwgJmZiXzEsIGNyXzEpOworCWlndF9wbGFuZV9zZXRfZmIocGxhbmUs ICZmYl8xKTsKKwlpZ3RfcGxhbmVfc2V0X3NpemUocGxhbmUsIGZiLT53aWR0aCwgZmItPmhlaWdo dCk7CisJaWd0X2ZiX3NldF9wb3NpdGlvbigmZmJfMSwgcGxhbmUsIDAsIDApOworCWlndF9mYl9z ZXRfc2l6ZSgmZmJfMSwgcGxhbmUsIGZiLT53aWR0aCwgZmItPmhlaWdodCk7CisJaWd0X3BsYW5l X3JlcGxhY2VfcHJvcF9ibG9iKHBsYW5lLCBJR1RfUExBTkVfRkJfREFNQUdFX0NMSVBTLCBkYW1h Z2UsCisJCQkJICAgIHNpemVvZigqZGFtYWdlKSk7CisJY3J0Y19jb21taXQocGlwZSwgcGxhbmUs IENPTU1JVF9BVE9NSUMsIEFUT01JQ19SRUxBWF9OT05FKTsKKworCS8qCisJICogSXNzdWUgYSBw bGFuZSB1cGRhdGUgd2l0aCBkYW1hZ2Ugd2l0aCBhIGNsaXAgdGhhdCBvdmVybGFwIHdpdGggcGxh bmUKKwkgKiBzcmMgKFRvcCByaWdodCBmcm9tIGNlbnRlciBleHRlbmRpbmcgb3V0c2lkZSBzcmMg aW4gYmVsb3cgY2FzZSkuCisJICogTk9URTogSGVyZSBkcm0gY29yZSBzaG91bGQgdGFrZSBjYXJl IG9mIGludGVyc2VjdGluZyB0aGUgY2xpcCB0bworCSAqIHBsYW5lIHNyYy4KKwkgKi8KKwlkYW1h Z2VbMF0ueDEgPSBmYi0+d2lkdGgvMjsKKwlkYW1hZ2VbMF0ueTEgPSAwOworCWRhbWFnZVswXS54 MiA9IGZiLT53aWR0aC8yICsgZmItPndpZHRoOworCWRhbWFnZVswXS55MiA9IGZiLT5oZWlnaHQv MjsKKworCWNyXzEgPSBpZ3RfZ2V0X2NhaXJvX2N0eChwaXBlLT5kaXNwbGF5LT5kcm1fZmQsICZm Yl8xKTsKKwlpZ3RfcGFpbnRfY29sb3IoY3JfMSwgZGFtYWdlWzBdLngxLCBkYW1hZ2VbMF0ueTEs CisJCQlkYW1hZ2VfcmVjdF93aWR0aCgmZGFtYWdlWzBdKSwKKwkJCWRhbWFnZV9yZWN0X2hlaWdo dCgmZGFtYWdlWzBdKSwgMS4wLCAxLjAsIDApOworCWlndF9wdXRfY2Fpcm9fY3R4KHBpcGUtPmRp c3BsYXktPmRybV9mZCwgJmZiXzEsIGNyXzEpOworCWlndF9wbGFuZV9zZXRfZmIocGxhbmUsICZm Yl8xKTsKKwlpZ3RfcGxhbmVfc2V0X3NpemUocGxhbmUsIGZiLT53aWR0aCwgZmItPmhlaWdodCk7 CisJaWd0X2ZiX3NldF9wb3NpdGlvbigmZmJfMSwgcGxhbmUsIDAsIDApOworCWlndF9mYl9zZXRf c2l6ZSgmZmJfMSwgcGxhbmUsIGZiLT53aWR0aCwgZmItPmhlaWdodCk7CisJaWd0X3BsYW5lX3Jl cGxhY2VfcHJvcF9ibG9iKHBsYW5lLCBJR1RfUExBTkVfRkJfREFNQUdFX0NMSVBTLCBkYW1hZ2Us CisJCQkJICAgIHNpemVvZigqZGFtYWdlKSk7CisJY3J0Y19jb21taXQocGlwZSwgcGxhbmUsIENP TU1JVF9BVE9NSUMsIEFUT01JQ19SRUxBWF9OT05FKTsKKworCS8qCisJICogSXNzdWUgYSBwbGFu ZSB1cGRhdGUgd2l0aCBkYW1hZ2Ugd2l0aCB0d28gY2xpcHMgb25lIGluc2lkZSBwbGFuZSBzcmMK KwkgKiBhbmQgb25lIG91dHNpZGUKKwkgKiBOT1RFOiBUaGlzIHdpbGwgcmVzdWx0IGluIHBsYW5l IHVwZGF0ZSB3aXRoIGNsaXAgaW5zaWRlIHBsYW5lIHNyYy4KKwkgKi8KKwlkYW1hZ2VbMF0ueDEg PSAwOworCWRhbWFnZVswXS55MSA9IGZiLT5oZWlnaHQvMjsKKwlkYW1hZ2VbMF0ueDIgPSBmYi0+ d2lkdGgvMjsKKwlkYW1hZ2VbMF0ueTIgPSBmYi0+aGVpZ2h0OworCisJZGFtYWdlWzFdLngxID0g ZmItPndpZHRoICsgZmItPndpZHRoLzI7CisJZGFtYWdlWzFdLnkxID0gZmItPmhlaWdodC8yOwor CWRhbWFnZVsxXS54MiA9IGZiLT53aWR0aCAqIDI7CisJZGFtYWdlWzFdLnkyID0gZmItPmhlaWdo dDsKKworCWNyXzEgPSBpZ3RfZ2V0X2NhaXJvX2N0eChwaXBlLT5kaXNwbGF5LT5kcm1fZmQsICZm Yl8xKTsKKwlpZ3RfcGFpbnRfY29sb3IoY3JfMSwgZGFtYWdlWzBdLngxLCBkYW1hZ2VbMF0ueTEs CisJCQlkYW1hZ2VfcmVjdF93aWR0aCgmZGFtYWdlWzBdKSwKKwkJCWRhbWFnZV9yZWN0X2hlaWdo dCgmZGFtYWdlWzBdKSwgMCwgMS4wLCAxLjApOworCWlndF9wYWludF9jb2xvcihjcl8xLCBkYW1h Z2VbMV0ueDEsIGRhbWFnZVsxXS55MSwKKwkJCWRhbWFnZV9yZWN0X3dpZHRoKCZkYW1hZ2VbMV0p LAorCQkJZGFtYWdlX3JlY3RfaGVpZ2h0KCZkYW1hZ2VbMV0pLCAwLCAxLjAsIDApOworCWlndF9w dXRfY2Fpcm9fY3R4KHBpcGUtPmRpc3BsYXktPmRybV9mZCwgJmZiXzEsIGNyXzEpOworCWlndF9w bGFuZV9zZXRfZmIocGxhbmUsICZmYl8xKTsKKwlpZ3RfcGxhbmVfc2V0X3NpemUocGxhbmUsIGZi LT53aWR0aCwgZmItPmhlaWdodCk7CisJaWd0X2ZiX3NldF9wb3NpdGlvbigmZmJfMSwgcGxhbmUs IDAsIDApOworCWlndF9mYl9zZXRfc2l6ZSgmZmJfMSwgcGxhbmUsIGZiLT53aWR0aCwgZmItPmhl aWdodCk7CisJaWd0X3BsYW5lX3JlcGxhY2VfcHJvcF9ibG9iKHBsYW5lLCBJR1RfUExBTkVfRkJf REFNQUdFX0NMSVBTLCBkYW1hZ2UsCisJCQkJICAgIHNpemVvZigqZGFtYWdlKSAqIDIpOworCWNy dGNfY29tbWl0KHBpcGUsIHBsYW5lLCBDT01NSVRfQVRPTUlDLCBBVE9NSUNfUkVMQVhfTk9ORSk7 CisKKwkvKgorCSAqIElzc3VlIGEgcGxhbmUgdXBkYXRlIHdpdGggb3ZlcmxhcHBpbmcgZGFtYWdl IGNsaXBzLiBXaGl0ZSByZWN0IGluCisJICogY2VudGVyIG92ZXJsYXAgcGFydGlhbGx5IHdpdGgg dG9wIGxlZnQgcmVkIHJlY3QuCisJICogTk9URTogRHJtIGNvcmUgZG9lcyBub3QgZXJyb3IgZm9y IG92ZXJsYXBwaW5nIGRhbWFnZSBjbGlwcyBzbyBpZiBhbnkKKwkgKiBkcml2ZXIgZG9lcyBub3Qg c3VwcG9ydCBvdmVybGFwcGluZyBzaG91bGQgaGF2ZSB0aGVpciBvd24KKwkgKiB2YWxpZGF0aW9u cy4KKwkgKi8KKwlkYW1hZ2VbMF0ueDEgPSAwOworCWRhbWFnZVswXS55MSA9IDA7CisJZGFtYWdl WzBdLngyID0gZmItPndpZHRoLzI7CisJZGFtYWdlWzBdLnkyID0gZmItPmhlaWdodC8yOworCisJ ZGFtYWdlWzFdLngxID0gZmItPndpZHRoLzQ7CisJZGFtYWdlWzFdLnkxID0gZmItPmhlaWdodC80 OworCWRhbWFnZVsxXS54MiA9IGZiLT53aWR0aC80ICsgZmItPndpZHRoLzI7CisJZGFtYWdlWzFd LnkyID0gZmItPmhlaWdodC80ICsgZmItPmhlaWdodC8yOworCisJY3JfMSA9IGlndF9nZXRfY2Fp cm9fY3R4KHBpcGUtPmRpc3BsYXktPmRybV9mZCwgJmZiXzEpOworCWlndF9wYWludF9jb2xvcihj cl8xLCBkYW1hZ2VbMF0ueDEsIGRhbWFnZVswXS55MSwKKwkJCWRhbWFnZV9yZWN0X3dpZHRoKCZk YW1hZ2VbMF0pLAorCQkJZGFtYWdlX3JlY3RfaGVpZ2h0KCZkYW1hZ2VbMF0pLCAxLjAsIDAsIDAp OworCWlndF9wYWludF9jb2xvcihjcl8xLCBkYW1hZ2VbMV0ueDEsIGRhbWFnZVsxXS55MSwKKwkJ CWRhbWFnZV9yZWN0X3dpZHRoKCZkYW1hZ2VbMV0pLAorCQkJZGFtYWdlX3JlY3RfaGVpZ2h0KCZk YW1hZ2VbMV0pLCAxLjAsIDEuMCwgMS4wKTsKKwlpZ3RfcHV0X2NhaXJvX2N0eChwaXBlLT5kaXNw bGF5LT5kcm1fZmQsICZmYl8xLCBjcl8xKTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKHBsYW5lLCAmZmJf MSk7CisJaWd0X3BsYW5lX3NldF9zaXplKHBsYW5lLCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQpOwor CWlndF9mYl9zZXRfcG9zaXRpb24oJmZiXzEsIHBsYW5lLCAwLCAwKTsKKwlpZ3RfZmJfc2V0X3Np emUoJmZiXzEsIHBsYW5lLCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQpOworCWlndF9wbGFuZV9yZXBs YWNlX3Byb3BfYmxvYihwbGFuZSwgSUdUX1BMQU5FX0ZCX0RBTUFHRV9DTElQUywgZGFtYWdlLAor CQkJCSAgICBzaXplb2YoKmRhbWFnZSkgKiAyKTsKKwljcnRjX2NvbW1pdChwaXBlLCBwbGFuZSwg Q09NTUlUX0FUT01JQywgQVRPTUlDX1JFTEFYX05PTkUpOworCisJLyogUmVzdG9yZSB0aGUgcHJp bWFyeSBwbGFuZSAqLworCWlndF9wbGFuZV9zZXRfZmIocGxhbmUsIGZiKTsKKwlwbGFuZV9jb21t aXQocGxhbmUsIENPTU1JVF9BVE9NSUMsIEFUT01JQ19SRUxBWF9OT05FKTsKKworCS8qIFJlbW92 ZSB0aGUgZmIgY3JlYXRlZCBmb3IgdGhpcyB0ZXN0ICovCisJaWd0X3JlbW92ZV9mYihwaXBlLT5k aXNwbGF5LT5kcm1fZmQsICZmYl8xKTsKKwlpZ3RfcmVtb3ZlX2ZiKHBpcGUtPmRpc3BsYXktPmRy bV9mZCwgJmZiXzIpOworCisJZnJlZShkYW1hZ2UpOworfQorCiBzdGF0aWMgdm9pZCBhdG9taWNf c2V0dXAoaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwgZW51bSBwaXBlIHBpcGUsIGlndF9vdXRwdXRf dCAqb3V0cHV0LCBpZ3RfcGxhbmVfdCAqcHJpbWFyeSwgc3RydWN0IGlndF9mYiAqZmIpCiB7CiAJ aWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBpcGUpOwpAQCAtOTU2LDYgKzEyMDgsMTQgQEAg aWd0X21haW4KIAkJYXRvbWljX2ludmFsaWRfcGFyYW1zKHBpcGVfb2JqLCBwcmltYXJ5LCBvdXRw dXQsICZmYik7CiAJfQogCisJaWd0X3N1YnRlc3QoImF0b21pY19wbGFuZV9kYW1hZ2UiKSB7CisJ CWlndF9yZXF1aXJlKGlndF9wbGFuZV9oYXNfcHJvcChwcmltYXJ5LCBJR1RfUExBTkVfRkJfREFN QUdFX0NMSVBTKSk7CisKKwkJYXRvbWljX3NldHVwKCZkaXNwbGF5LCBwaXBlLCBvdXRwdXQsIHBy aW1hcnksICZmYik7CisKKwkJYXRvbWljX3BsYW5lX2RhbWFnZShwaXBlX29iaiwgcHJpbWFyeSwg JmZiKTsKKwl9CisKIAlpZ3RfZml4dHVyZSB7CiAJCWF0b21pY19jbGVhcigmZGlzcGxheSwgcGlw ZSwgcHJpbWFyeSwgb3V0cHV0KTsKIAkJaWd0X3JlbW92ZV9mYihkaXNwbGF5LmRybV9mZCwgJmZi KTsKLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==