From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 84AE26E10C for ; Tue, 30 Oct 2018 16:20:54 +0000 (UTC) From: Ville Syrjala Date: Tue, 30 Oct 2018 18:20:38 +0200 Message-Id: <20181030162038.27373-5-ville.syrjala@linux.intel.com> In-Reply-To: <20181030162038.27373-1-ville.syrjala@linux.intel.com> References: <20181030162038.27373-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 5/5] lib/igt_fb: s/tiling/modifier/ where appropriate List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClJl bmFtZSB0aGUgaWd0X2ZiLnRpbGluZyB0byBpZ3RfZmIubW9kaWZpZXIgdG8gYmV0dGVyIHJlZmxl Y3QKd2hhdCBpbmZvcm1hdGlvbiBpdCBjYXJyaWVzLiBOb3cgaXQncyBjbGVhciB3aGV0aGVyIHdl J3JlIHRhbGtpbmcKYWJvdXQgYSBtb2RpZmllciBvciBhIGk5MTUgdGlsaW5nIHRoaW5nLgoKU2ln bmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4KLS0tCiBsaWIvaWd0X2ZiLmMgICAgfCAxMDIgKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBsaWIvaWd0X2ZiLmggICAgfCAgMjIgKysrKystLS0tLS0K IHRlc3RzL2ttc19jY3MuYyB8ICAgMiArLQogMyBmaWxlcyBjaGFuZ2VkLCA2MyBpbnNlcnRpb25z KCspLCA2MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWIvaWd0X2ZiLmMgYi9saWIvaWd0 X2ZiLmMKaW5kZXggY2JlNmQ1Mzk2OTBkLi42NzRmNTMzMmIwY2MgMTAwNjQ0Ci0tLSBhL2xpYi9p Z3RfZmIuYworKysgYi9saWIvaWd0X2ZiLmMKQEAgLTE2OCw3ICsxNjgsNyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGZvcm1hdF9kZXNjX3N0cnVjdCAqbG9va3VwX2RybV9mb3JtYXQodWludDMyX3Qg ZHJtX2Zvcm1hdCkKIC8qKgogICogaWd0X2dldF9mYl90aWxlX3NpemU6CiAgKiBAZmQ6IHRoZSBE Uk0gZmlsZSBkZXNjcmlwdG9yCi0gKiBAdGlsaW5nOiB0aWxpbmcgbGF5b3V0IG9mIHRoZSBmcmFt ZWJ1ZmZlciAoYXMgZnJhbWVidWZmZXIgbW9kaWZpZXIpCisgKiBAbW9kaWZpZXI6IHRpbGluZyBs YXlvdXQgb2YgdGhlIGZyYW1lYnVmZmVyIChhcyBmcmFtZWJ1ZmZlciBtb2RpZmllcikKICAqIEBm Yl9icHA6IGJpdHMgcGVyIHBpeGVsIG9mIHRoZSBmcmFtZWJ1ZmZlcgogICogQHdpZHRoX3JldDog d2lkdGggb2YgdGhlIHRpbGUgaW4gYnl0ZXMKICAqIEBoZWlnaHRfcmV0OiBoZWlnaHQgb2YgdGhl IHRpbGUgaW4gbGluZXMKQEAgLTE3NiwxMCArMTc2LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg Zm9ybWF0X2Rlc2Nfc3RydWN0ICpsb29rdXBfZHJtX2Zvcm1hdCh1aW50MzJfdCBkcm1fZm9ybWF0 KQogICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHdpZHRoIGFuZCBoZWlnaHQgb2YgYSB0aWxlIGJh c2VkIG9uIHRoZSBnaXZlbiB0aWxpbmcKICAqIGZvcm1hdC4KICAqLwotdm9pZCBpZ3RfZ2V0X2Zi X3RpbGVfc2l6ZShpbnQgZmQsIHVpbnQ2NF90IHRpbGluZywgaW50IGZiX2JwcCwKK3ZvaWQgaWd0 X2dldF9mYl90aWxlX3NpemUoaW50IGZkLCB1aW50NjRfdCBtb2RpZmllciwgaW50IGZiX2JwcCwK IAkJCSAgdW5zaWduZWQgKndpZHRoX3JldCwgdW5zaWduZWQgKmhlaWdodF9yZXQpCiB7Ci0Jc3dp dGNoICh0aWxpbmcpIHsKKwlzd2l0Y2ggKG1vZGlmaWVyKSB7CiAJY2FzZSBMT0NBTF9EUk1fRk9S TUFUX01PRF9OT05FOgogCQkqd2lkdGhfcmV0ID0gNjQ7CiAJCSpoZWlnaHRfcmV0ID0gMTsKQEAg LTI0Myw3ICsyNDMsNyBAQCBzdGF0aWMgYm9vbCBpc19jY3NfbW9kaWZpZXIodWludDY0X3QgbW9k aWZpZXIpCiAKIHN0YXRpYyB1bnNpZ25lZCBmYl9wbGFuZV93aWR0aChjb25zdCBzdHJ1Y3QgaWd0 X2ZiICpmYiwgaW50IHBsYW5lKQogewotCWlmIChpc19jY3NfbW9kaWZpZXIoZmItPnRpbGluZykg JiYgcGxhbmUgPT0gMSkKKwlpZiAoaXNfY2NzX21vZGlmaWVyKGZiLT5tb2RpZmllcikgJiYgcGxh bmUgPT0gMSkKIAkJcmV0dXJuIERJVl9ST1VORF9VUChmYi0+d2lkdGgsIDEwMjQpICogMTI4Owog CWlmIChmYi0+ZHJtX2Zvcm1hdCA9PSBEUk1fRk9STUFUX05WMTIgJiYgcGxhbmUgPT0gMSkKIAkJ cmV0dXJuIERJVl9ST1VORF9VUChmYi0+d2lkdGgsIDIpOwpAQCAtMjU1LDcgKzI1NSw3IEBAIHN0 YXRpYyB1bnNpZ25lZCBmYl9wbGFuZV9icHAoY29uc3Qgc3RydWN0IGlndF9mYiAqZmIsIGludCBw bGFuZSkKIHsKIAljb25zdCBzdHJ1Y3QgZm9ybWF0X2Rlc2Nfc3RydWN0ICpmb3JtYXQgPSBsb29r dXBfZHJtX2Zvcm1hdChmYi0+ZHJtX2Zvcm1hdCk7CiAKLQlpZiAoaXNfY2NzX21vZGlmaWVyKGZi LT50aWxpbmcpICYmIHBsYW5lID09IDEpCisJaWYgKGlzX2Njc19tb2RpZmllcihmYi0+bW9kaWZp ZXIpICYmIHBsYW5lID09IDEpCiAJCXJldHVybiA4OwogCWVsc2UKIAkJcmV0dXJuIGZvcm1hdC0+ cGxhbmVfYnBwW3BsYW5lXTsKQEAgLTI2Myw3ICsyNjMsNyBAQCBzdGF0aWMgdW5zaWduZWQgZmJf cGxhbmVfYnBwKGNvbnN0IHN0cnVjdCBpZ3RfZmIgKmZiLCBpbnQgcGxhbmUpCiAKIHN0YXRpYyB1 bnNpZ25lZCBmYl9wbGFuZV9oZWlnaHQoY29uc3Qgc3RydWN0IGlndF9mYiAqZmIsIGludCBwbGFu ZSkKIHsKLQlpZiAoaXNfY2NzX21vZGlmaWVyKGZiLT50aWxpbmcpICYmIHBsYW5lID09IDEpCisJ aWYgKGlzX2Njc19tb2RpZmllcihmYi0+bW9kaWZpZXIpICYmIHBsYW5lID09IDEpCiAJCXJldHVy biBESVZfUk9VTkRfVVAoZmItPmhlaWdodCwgNTEyKSAqIDMyOwogCWlmIChmYi0+ZHJtX2Zvcm1h dCA9PSBEUk1fRk9STUFUX05WMTIgJiYgcGxhbmUgPT0gMSkKIAkJcmV0dXJuIERJVl9ST1VORF9V UChmYi0+aGVpZ2h0LCAyKTsKQEAgLTI3NSw3ICsyNzUsNyBAQCBzdGF0aWMgaW50IGZiX251bV9w bGFuZXMoY29uc3Qgc3RydWN0IGlndF9mYiAqZmIpCiB7CiAJY29uc3Qgc3RydWN0IGZvcm1hdF9k ZXNjX3N0cnVjdCAqZm9ybWF0ID0gbG9va3VwX2RybV9mb3JtYXQoZmItPmRybV9mb3JtYXQpOwog Ci0JaWYgKGlzX2Njc19tb2RpZmllcihmYi0+dGlsaW5nKSkKKwlpZiAoaXNfY2NzX21vZGlmaWVy KGZiLT5tb2RpZmllcikpCiAJCXJldHVybiAyOwogCWVsc2UKIAkJcmV0dXJuIGZvcm1hdC0+bnVt X3BsYW5lczsKQEAgLTI5Niw3ICsyOTYsNyBAQCBzdGF0aWMgdm9pZCBmYl9pbml0KHN0cnVjdCBp Z3RfZmIgKmZiLAogCiAJZmItPndpZHRoID0gd2lkdGg7CiAJZmItPmhlaWdodCA9IGhlaWdodDsK LQlmYi0+dGlsaW5nID0gbW9kaWZpZXI7CisJZmItPm1vZGlmaWVyID0gbW9kaWZpZXI7CiAJZmIt PmRybV9mb3JtYXQgPSBkcm1fZm9ybWF0OwogCWZiLT5mZCA9IGZkOwogCWZiLT5udW1fcGxhbmVz ID0gZmJfbnVtX3BsYW5lcyhmYik7CkBAIC0zMTUsNyArMzE1LDcgQEAgc3RhdGljIHVpbnQzMl90 IGNhbGNfcGxhbmVfc3RyaWRlKHN0cnVjdCBpZ3RfZmIgKmZiLCBpbnQgcGxhbmUpCiAJdWludDMy X3QgbWluX3N0cmlkZSA9IGZiLT5wbGFuZV93aWR0aFtwbGFuZV0gKgogCQkoZmItPnBsYW5lX2Jw cFtwbGFuZV0gLyA4KTsKIAotCWlmIChmYi0+dGlsaW5nICE9IExPQ0FMX0RSTV9GT1JNQVRfTU9E X05PTkUgJiYKKwlpZiAoZmItPm1vZGlmaWVyICE9IExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUg JiYKIAkgICAgaW50ZWxfZ2VuKGludGVsX2dldF9kcm1fZGV2aWQoZmItPmZkKSkgPD0gMykgewog CQl1aW50MzJfdCBzdHJpZGU7CiAKQEAgLTMzNCw3ICszMzQsNyBAQCBzdGF0aWMgdWludDMyX3Qg Y2FsY19wbGFuZV9zdHJpZGUoc3RydWN0IGlndF9mYiAqZmIsIGludCBwbGFuZSkKIAl9IGVsc2Ug ewogCQl1bnNpZ25lZCBpbnQgdGlsZV93aWR0aCwgdGlsZV9oZWlnaHQ7CiAKLQkJaWd0X2dldF9m Yl90aWxlX3NpemUoZmItPmZkLCBmYi0+dGlsaW5nLCBmYi0+cGxhbmVfYnBwW3BsYW5lXSwKKwkJ aWd0X2dldF9mYl90aWxlX3NpemUoZmItPmZkLCBmYi0+bW9kaWZpZXIsIGZiLT5wbGFuZV9icHBb cGxhbmVdLAogCQkJCSAgICAgJnRpbGVfd2lkdGgsICZ0aWxlX2hlaWdodCk7CiAKIAkJcmV0dXJu IEFMSUdOKG1pbl9zdHJpZGUsIHRpbGVfd2lkdGgpOwpAQCAtMzQzLDcgKzM0Myw3IEBAIHN0YXRp YyB1aW50MzJfdCBjYWxjX3BsYW5lX3N0cmlkZShzdHJ1Y3QgaWd0X2ZiICpmYiwgaW50IHBsYW5l KQogCiBzdGF0aWMgdWludDY0X3QgY2FsY19wbGFuZV9zaXplKHN0cnVjdCBpZ3RfZmIgKmZiLCBp bnQgcGxhbmUpCiB7Ci0JaWYgKGZiLT50aWxpbmcgIT0gTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9O RSAmJgorCWlmIChmYi0+bW9kaWZpZXIgIT0gTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSAmJgog CSAgICBpbnRlbF9nZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChmYi0+ZmQpKSA8PSAzKSB7CiAJCXVp bnQ2NF90IG1pbl9zaXplID0gKHVpbnQ2NF90KSBmYi0+c3RyaWRlc1twbGFuZV0gKgogCQkJZmIt PnBsYW5lX2hlaWdodFtwbGFuZV07CkBAIC0zNjQsNyArMzY0LDcgQEAgc3RhdGljIHVpbnQ2NF90 IGNhbGNfcGxhbmVfc2l6ZShzdHJ1Y3QgaWd0X2ZiICpmYiwgaW50IHBsYW5lKQogCX0gZWxzZSB7 CiAJCXVuc2lnbmVkIGludCB0aWxlX3dpZHRoLCB0aWxlX2hlaWdodDsKIAotCQlpZ3RfZ2V0X2Zi X3RpbGVfc2l6ZShmYi0+ZmQsIGZiLT50aWxpbmcsIGZiLT5wbGFuZV9icHBbcGxhbmVdLAorCQlp Z3RfZ2V0X2ZiX3RpbGVfc2l6ZShmYi0+ZmQsIGZiLT5tb2RpZmllciwgZmItPnBsYW5lX2JwcFtw bGFuZV0sCiAJCQkJICAgICAmdGlsZV93aWR0aCwgJnRpbGVfaGVpZ2h0KTsKIAogCQlyZXR1cm4g KHVpbnQ2NF90KSBmYi0+c3RyaWRlc1twbGFuZV0gKgpAQCAtMzk2LDE5ICszOTYsMTkgQEAgc3Rh dGljIHVpbnQ2NF90IGNhbGNfZmJfc2l6ZShzdHJ1Y3QgaWd0X2ZiICpmYikKICAqIEB3aWR0aDog d2lkdGggb2YgdGhlIGZyYW1lYnVmZmVyIGluIHBpeGVscwogICogQGhlaWdodDogaGVpZ2h0IG9m IHRoZSBmcmFtZWJ1ZmZlciBpbiBwaXhlbHMKICAqIEBmb3JtYXQ6IGRybSBmb3VyY2MgcGl4ZWwg Zm9ybWF0IGNvZGUKLSAqIEB0aWxpbmc6IHRpbGluZyBsYXlvdXQgb2YgdGhlIGZyYW1lYnVmZmVy IChhcyBmcmFtZWJ1ZmZlciBtb2RpZmllcikKKyAqIEBtb2RpZmllcjogdGlsaW5nIGxheW91dCBv ZiB0aGUgZnJhbWVidWZmZXIgKGFzIGZyYW1lYnVmZmVyIG1vZGlmaWVyKQogICogQHNpemVfcmV0 OiByZXR1cm5lZCBzaXplIGZvciB0aGUgZnJhbWVidWZmZXIKICAqIEBzdHJpZGVfcmV0OiByZXR1 cm5lZCBzdHJpZGUgZm9yIHRoZSBmcmFtZWJ1ZmZlcgogICoKICAqIFRoaXMgZnVuY3Rpb24gcmV0 dXJucyB2YWxpZCBzdHJpZGUgYW5kIHNpemUgdmFsdWVzIGZvciBhIGZyYW1lYnVmZmVyIHdpdGgg dGhlCiAgKiBzcGVjaWZpZWQgcGFyYW1ldGVycy4KICAqLwotdm9pZCBpZ3RfY2FsY19mYl9zaXpl KGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCB1aW50MzJfdCBkcm1fZm9ybWF0LCB1aW50 NjRfdCB0aWxpbmcsCit2b2lkIGlndF9jYWxjX2ZiX3NpemUoaW50IGZkLCBpbnQgd2lkdGgsIGlu dCBoZWlnaHQsIHVpbnQzMl90IGRybV9mb3JtYXQsIHVpbnQ2NF90IG1vZGlmaWVyLAogCQkgICAg ICB1aW50NjRfdCAqc2l6ZV9yZXQsIHVuc2lnbmVkICpzdHJpZGVfcmV0KQogewogCXN0cnVjdCBp Z3RfZmIgZmI7CiAKLQlmYl9pbml0KCZmYiwgZmQsIHdpZHRoLCBoZWlnaHQsIGRybV9mb3JtYXQs IHRpbGluZywKKwlmYl9pbml0KCZmYiwgZmQsIHdpZHRoLCBoZWlnaHQsIGRybV9mb3JtYXQsIG1v ZGlmaWVyLAogCQlJR1RfQ09MT1JfWUNCQ1JfQlQ3MDksIElHVF9DT0xPUl9ZQ0JDUl9MSU1JVEVE X1JBTkdFKTsKIAogCWZiLnNpemUgPSBjYWxjX2ZiX3NpemUoJmZiKTsKQEAgLTQ3OCw3ICs0Nzgs NyBAQCBzdGF0aWMgaW50IGNyZWF0ZV9ib19mb3JfZmIoc3RydWN0IGlndF9mYiAqZmIpCiB7CiAJ aW50IGZkID0gZmItPmZkOwogCi0JaWYgKGZiLT50aWxpbmcgfHwgZmItPnNpemUgfHwgZmItPnN0 cmlkZXNbMF0gfHwgaWd0X2Zvcm1hdF9pc195dXYoZmItPmRybV9mb3JtYXQpKSB7CisJaWYgKGZi LT5tb2RpZmllciB8fCBmYi0+c2l6ZSB8fCBmYi0+c3RyaWRlc1swXSB8fCBpZ3RfZm9ybWF0X2lz X3l1dihmYi0+ZHJtX2Zvcm1hdCkpIHsKIAkJdWludDY0X3Qgc2l6ZTsKIAogCQlzaXplID0gY2Fs Y19mYl9zaXplKGZiKTsKQEAgLTQ5Niw3ICs0OTYsNyBAQCBzdGF0aWMgaW50IGNyZWF0ZV9ib19m b3JfZmIoc3RydWN0IGlndF9mYiAqZmIpCiAJCQlmYi0+Z2VtX2hhbmRsZSA9IGdlbV9jcmVhdGUo ZmQsIGZiLT5zaXplKTsKIAogCQkJZ2VtX3NldF90aWxpbmcoZmQsIGZiLT5nZW1faGFuZGxlLAot CQkJCSAgICAgICBpZ3RfZmJfbW9kX3RvX3RpbGluZyhmYi0+dGlsaW5nKSwKKwkJCQkgICAgICAg aWd0X2ZiX21vZF90b190aWxpbmcoZmItPm1vZGlmaWVyKSwKIAkJCQkgICAgICAgZmItPnN0cmlk ZXNbMF0pOwogCiAJCQlnZW1fc2V0X2RvbWFpbihmZCwgZmItPmdlbV9oYW5kbGUsCkBAIC05MDks NyArOTA5LDcgQEAgdm9pZCBpZ3RfcGFpbnRfaW1hZ2UoY2Fpcm9fdCAqY3IsIGNvbnN0IGNoYXIg KmZpbGVuYW1lLAogICogQHdpZHRoOiB3aWR0aCBvZiB0aGUgZnJhbWVidWZmZXIgaW4gcGl4ZWwK ICAqIEBoZWlnaHQ6IGhlaWdodCBvZiB0aGUgZnJhbWVidWZmZXIgaW4gcGl4ZWwKICAqIEBmb3Jt YXQ6IGRybSBmb3VyY2MgcGl4ZWwgZm9ybWF0IGNvZGUKLSAqIEB0aWxpbmc6IHRpbGluZyBsYXlv dXQgb2YgdGhlIGZyYW1lYnVmZmVyIChhcyBmcmFtZWJ1ZmZlciBtb2RpZmllcikKKyAqIEBtb2Rp ZmllcjogdGlsaW5nIGxheW91dCBvZiB0aGUgZnJhbWVidWZmZXIgKGFzIGZyYW1lYnVmZmVyIG1v ZGlmaWVyKQogICogQGZiOiBwb2ludGVyIHRvIGFuICNpZ3RfZmIgc3RydWN0dXJlCiAgKiBAYm9f c2l6ZTogc2l6ZSBvZiB0aGUgYmFja2luZyBibyAoMCBmb3IgYXV0b21hdGljIHNpemUpCiAgKiBA Ym9fc3RyaWRlOiBzdHJpZGUgb2YgdGhlIGJhY2tpbmcgYm8gKDAgZm9yIGF1dG9tYXRpYyBzdHJp ZGUpCkBAIC05MjYsNyArOTI2LDcgQEAgdm9pZCBpZ3RfcGFpbnRfaW1hZ2UoY2Fpcm9fdCAqY3Is IGNvbnN0IGNoYXIgKmZpbGVuYW1lLAogICovCiB1bnNpZ25lZCBpbnQKIGlndF9jcmVhdGVfZmJf d2l0aF9ib19zaXplKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAotCQkJICAgdWludDMy X3QgZm9ybWF0LCB1aW50NjRfdCB0aWxpbmcsCisJCQkgICB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2 NF90IG1vZGlmaWVyLAogCQkJICAgc3RydWN0IGlndF9mYiAqZmIsIHVpbnQ2NF90IGJvX3NpemUs CiAJCQkgICB1bnNpZ25lZCBib19zdHJpZGUpCiB7CkBAIC05MzUsNyArOTM1LDcgQEAgaWd0X2Ny ZWF0ZV9mYl93aXRoX2JvX3NpemUoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCiAJZW51 bSBpZ3RfY29sb3JfcmFuZ2UgY29sb3JfcmFuZ2UgPSBJR1RfQ09MT1JfWUNCQ1JfTElNSVRFRF9S QU5HRTsKIAl1aW50MzJfdCBmbGFncyA9IDA7CiAKLQlmYl9pbml0KGZiLCBmZCwgd2lkdGgsIGhl aWdodCwgZm9ybWF0LCB0aWxpbmcsCisJZmJfaW5pdChmYiwgZmQsIHdpZHRoLCBoZWlnaHQsIGZv cm1hdCwgbW9kaWZpZXIsCiAJCWNvbG9yX2VuY29kaW5nLCBjb2xvcl9yYW5nZSk7CiAKIAlmb3Ig KGludCBpID0gMDsgaSA8IGZiLT5udW1fcGxhbmVzOyBpKyspCkBAIC05NDMsOCArOTQzLDggQEAg aWd0X2NyZWF0ZV9mYl93aXRoX2JvX3NpemUoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQs CiAKIAlmYi0+c2l6ZSA9IGJvX3NpemU7CiAKLQlpZ3RfZGVidWcoIiVzKHdpZHRoPSVkLCBoZWln aHQ9JWQsIGZvcm1hdD0weCV4LCB0aWxpbmc9MHglIlBSSXg2NCIsIHNpemU9JSJQUkl1NjQiKVxu IiwKLQkJICBfX2Z1bmNfXywgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0aWxpbmcsIGJvX3NpemUp OworCWlndF9kZWJ1ZygiJXMod2lkdGg9JWQsIGhlaWdodD0lZCwgZm9ybWF0PTB4JXgsIG1vZGlm aWVyPTB4JSJQUkl4NjQiLCBzaXplPSUiUFJJdTY0IilcbiIsCisJCSAgX19mdW5jX18sIHdpZHRo LCBoZWlnaHQsIGZvcm1hdCwgbW9kaWZpZXIsIGJvX3NpemUpOwogCiAJY3JlYXRlX2JvX2Zvcl9m YihmYik7CiAJaWd0X2Fzc2VydChmYi0+Z2VtX2hhbmRsZSA+IDApOwpAQCAtOTUyLDEyICs5NTIs MTIgQEAgaWd0X2NyZWF0ZV9mYl93aXRoX2JvX3NpemUoaW50IGZkLCBpbnQgd2lkdGgsIGludCBo ZWlnaHQsCiAJaWd0X2RlYnVnKCIlcyhoYW5kbGU9JWQsIHBpdGNoPSVkKVxuIiwKIAkJICBfX2Z1 bmNfXywgZmItPmdlbV9oYW5kbGUsIGZiLT5zdHJpZGVzWzBdKTsKIAotCWlmIChmYi0+dGlsaW5n IHx8IGlndF9oYXNfZmJfbW9kaWZpZXJzKGZkKSkKKwlpZiAoZmItPm1vZGlmaWVyIHx8IGlndF9o YXNfZmJfbW9kaWZpZXJzKGZkKSkKIAkJZmxhZ3MgPSBMT0NBTF9EUk1fTU9ERV9GQl9NT0RJRklF UlM7CiAKIAlkb19vcl9kaWUoX19rbXNfYWRkZmIoZmItPmZkLCBmYi0+Z2VtX2hhbmRsZSwKIAkJ CSAgICAgIGZiLT53aWR0aCwgZmItPmhlaWdodCwKLQkJCSAgICAgIGZiLT5kcm1fZm9ybWF0LCBm Yi0+dGlsaW5nLAorCQkJICAgICAgZmItPmRybV9mb3JtYXQsIGZiLT5tb2RpZmllciwKIAkJCSAg ICAgIGZiLT5zdHJpZGVzLCBmYi0+b2Zmc2V0cywgZmItPm51bV9wbGFuZXMsIGZsYWdzLAogCQkJ ICAgICAgJmZiLT5mYl9pZCkpOwogCkBAIC05NzAsNyArOTcwLDcgQEAgaWd0X2NyZWF0ZV9mYl93 aXRoX2JvX3NpemUoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCiAgKiBAd2lkdGg6IHdp ZHRoIG9mIHRoZSBmcmFtZWJ1ZmZlciBpbiBwaXhlbAogICogQGhlaWdodDogaGVpZ2h0IG9mIHRo ZSBmcmFtZWJ1ZmZlciBpbiBwaXhlbAogICogQGZvcm1hdDogZHJtIGZvdXJjYyBwaXhlbCBmb3Jt YXQgY29kZQotICogQHRpbGluZzogdGlsaW5nIGxheW91dCBvZiB0aGUgZnJhbWVidWZmZXIKKyAq IEBtb2RpZmllcjogdGlsaW5nIGxheW91dCBvZiB0aGUgZnJhbWVidWZmZXIKICAqIEBmYjogcG9p bnRlciB0byBhbiAjaWd0X2ZiIHN0cnVjdHVyZQogICoKICAqIFRoaXMgZnVuY3Rpb24gYWxsb2Nh dGVzIGEgZ2VtIGJ1ZmZlciBvYmplY3Qgc3VpdGFibGUgdG8gYmFjayBhIGZyYW1lYnVmZmVyCkBA IC05ODQsOSArOTg0LDkgQEAgaWd0X2NyZWF0ZV9mYl93aXRoX2JvX3NpemUoaW50IGZkLCBpbnQg d2lkdGgsIGludCBoZWlnaHQsCiAgKiBUaGUga21zIGlkIG9mIHRoZSBjcmVhdGVkIGZyYW1lYnVm ZmVyLgogICovCiB1bnNpZ25lZCBpbnQgaWd0X2NyZWF0ZV9mYihpbnQgZmQsIGludCB3aWR0aCwg aW50IGhlaWdodCwgdWludDMyX3QgZm9ybWF0LAotCQkJICAgdWludDY0X3QgdGlsaW5nLCBzdHJ1 Y3QgaWd0X2ZiICpmYikKKwkJCSAgIHVpbnQ2NF90IG1vZGlmaWVyLCBzdHJ1Y3QgaWd0X2ZiICpm YikKIHsKLQlyZXR1cm4gaWd0X2NyZWF0ZV9mYl93aXRoX2JvX3NpemUoZmQsIHdpZHRoLCBoZWln aHQsIGZvcm1hdCwgdGlsaW5nLCBmYiwKKwlyZXR1cm4gaWd0X2NyZWF0ZV9mYl93aXRoX2JvX3Np emUoZmQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgbW9kaWZpZXIsIGZiLAogCQkJCQkgIDAsIDAp OwogfQogCkBAIC05OTYsNyArOTk2LDcgQEAgdW5zaWduZWQgaW50IGlndF9jcmVhdGVfZmIoaW50 IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIHVpbnQzMl90IGZvcm1hdCwKICAqIEB3aWR0aDog d2lkdGggb2YgdGhlIGZyYW1lYnVmZmVyIGluIHBpeGVsCiAgKiBAaGVpZ2h0OiBoZWlnaHQgb2Yg dGhlIGZyYW1lYnVmZmVyIGluIHBpeGVsCiAgKiBAZm9ybWF0OiBkcm0gZm91cmNjIHBpeGVsIGZv cm1hdCBjb2RlCi0gKiBAdGlsaW5nOiB0aWxpbmcgbGF5b3V0IG9mIHRoZSBmcmFtZWJ1ZmZlcgor ICogQG1vZGlmaWVyOiB0aWxpbmcgbGF5b3V0IG9mIHRoZSBmcmFtZWJ1ZmZlcgogICogQHI6IHJl ZCB2YWx1ZSB0byB1c2UgYXMgZmlsbCBjb2xvcgogICogQGc6IGdyZWVuIHZhbHVlIHRvIHVzZSBh cyBmaWxsIGNvbG9yCiAgKiBAYjogYmx1ZSB2YWx1ZSB0byB1c2UgYXMgZmlsbCBjb2xvcgpAQCAt MTAxNCwxNCArMTAxNCwxNCBAQCB1bnNpZ25lZCBpbnQgaWd0X2NyZWF0ZV9mYihpbnQgZmQsIGlu dCB3aWR0aCwgaW50IGhlaWdodCwgdWludDMyX3QgZm9ybWF0LAogICogZmFpbHVyZS4KICAqLwog dW5zaWduZWQgaW50IGlndF9jcmVhdGVfY29sb3JfZmIoaW50IGZkLCBpbnQgd2lkdGgsIGludCBo ZWlnaHQsCi0JCQkJIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgdGlsaW5nLAorCQkJCSB1aW50 MzJfdCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlmaWVyLAogCQkJCSBkb3VibGUgciwgZG91YmxlIGcs IGRvdWJsZSBiLAogCQkJCSBzdHJ1Y3QgaWd0X2ZiICpmYiAvKiBvdXQgKi8pCiB7CiAJdW5zaWdu ZWQgaW50IGZiX2lkOwogCWNhaXJvX3QgKmNyOwogCi0JZmJfaWQgPSBpZ3RfY3JlYXRlX2ZiKGZk LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHRpbGluZywgZmIpOworCWZiX2lkID0gaWd0X2NyZWF0 ZV9mYihmZCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCBtb2RpZmllciwgZmIpOwogCWlndF9hc3Nl cnQoZmJfaWQpOwogCiAJY3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChmZCwgZmIpOwpAQCAtMTAzNyw3 ICsxMDM3LDcgQEAgdW5zaWduZWQgaW50IGlndF9jcmVhdGVfY29sb3JfZmIoaW50IGZkLCBpbnQg d2lkdGgsIGludCBoZWlnaHQsCiAgKiBAd2lkdGg6IHdpZHRoIG9mIHRoZSBmcmFtZWJ1ZmZlciBp biBwaXhlbAogICogQGhlaWdodDogaGVpZ2h0IG9mIHRoZSBmcmFtZWJ1ZmZlciBpbiBwaXhlbAog ICogQGZvcm1hdDogZHJtIGZvdXJjYyBwaXhlbCBmb3JtYXQgY29kZQotICogQHRpbGluZzogdGls aW5nIGxheW91dCBvZiB0aGUgZnJhbWVidWZmZXIKKyAqIEBtb2RpZmllcjogdGlsaW5nIGxheW91 dCBvZiB0aGUgZnJhbWVidWZmZXIKICAqIEBmYjogcG9pbnRlciB0byBhbiAjaWd0X2ZiIHN0cnVj dHVyZQogICoKICAqIFRoaXMgZnVuY3Rpb24gYWxsb2NhdGVzIGEgZ2VtIGJ1ZmZlciBvYmplY3Qg c3VpdGFibGUgdG8gYmFjayBhIGZyYW1lYnVmZmVyCkBAIC0xMDUyLDEzICsxMDUyLDEzIEBAIHVu c2lnbmVkIGludCBpZ3RfY3JlYXRlX2NvbG9yX2ZiKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVp Z2h0LAogICogZmFpbHVyZS4KICAqLwogdW5zaWduZWQgaW50IGlndF9jcmVhdGVfcGF0dGVybl9m YihpbnQgZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwKLQkJCQkgICB1aW50MzJfdCBmb3JtYXQs IHVpbnQ2NF90IHRpbGluZywKKwkJCQkgICB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlm aWVyLAogCQkJCSAgIHN0cnVjdCBpZ3RfZmIgKmZiIC8qIG91dCAqLykKIHsKIAl1bnNpZ25lZCBp bnQgZmJfaWQ7CiAJY2Fpcm9fdCAqY3I7CiAKLQlmYl9pZCA9IGlndF9jcmVhdGVfZmIoZmQsIHdp ZHRoLCBoZWlnaHQsIGZvcm1hdCwgdGlsaW5nLCBmYik7CisJZmJfaWQgPSBpZ3RfY3JlYXRlX2Zi KGZkLCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIG1vZGlmaWVyLCBmYik7CiAJaWd0X2Fzc2VydChm Yl9pZCk7CiAKIAljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGZkLCBmYik7CkBAIC0xMDc0LDcgKzEw NzQsNyBAQCB1bnNpZ25lZCBpbnQgaWd0X2NyZWF0ZV9wYXR0ZXJuX2ZiKGludCBmZCwgaW50IHdp ZHRoLCBpbnQgaGVpZ2h0LAogICogQHdpZHRoOiB3aWR0aCBvZiB0aGUgZnJhbWVidWZmZXIgaW4g cGl4ZWwKICAqIEBoZWlnaHQ6IGhlaWdodCBvZiB0aGUgZnJhbWVidWZmZXIgaW4gcGl4ZWwKICAq IEBmb3JtYXQ6IGRybSBmb3VyY2MgcGl4ZWwgZm9ybWF0IGNvZGUKLSAqIEB0aWxpbmc6IHRpbGlu ZyBsYXlvdXQgb2YgdGhlIGZyYW1lYnVmZmVyCisgKiBAbW9kaWZpZXI6IHRpbGluZyBsYXlvdXQg b2YgdGhlIGZyYW1lYnVmZmVyCiAgKiBAcjogcmVkIHZhbHVlIHRvIHVzZSBhcyBmaWxsIGNvbG9y CiAgKiBAZzogZ3JlZW4gdmFsdWUgdG8gdXNlIGFzIGZpbGwgY29sb3IKICAqIEBiOiBibHVlIHZh bHVlIHRvIHVzZSBhcyBmaWxsIGNvbG9yCkBAIC0xMDkzLDE0ICsxMDkzLDE0IEBAIHVuc2lnbmVk IGludCBpZ3RfY3JlYXRlX3BhdHRlcm5fZmIoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQs CiAgKiBmYWlsdXJlLgogICovCiB1bnNpZ25lZCBpbnQgaWd0X2NyZWF0ZV9jb2xvcl9wYXR0ZXJu X2ZiKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAotCQkJCQkgdWludDMyX3QgZm9ybWF0 LCB1aW50NjRfdCB0aWxpbmcsCisJCQkJCSB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlm aWVyLAogCQkJCQkgZG91YmxlIHIsIGRvdWJsZSBnLCBkb3VibGUgYiwKIAkJCQkJIHN0cnVjdCBp Z3RfZmIgKmZiIC8qIG91dCAqLykKIHsKIAl1bnNpZ25lZCBpbnQgZmJfaWQ7CiAJY2Fpcm9fdCAq Y3I7CiAKLQlmYl9pZCA9IGlndF9jcmVhdGVfZmIoZmQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwg dGlsaW5nLCBmYik7CisJZmJfaWQgPSBpZ3RfY3JlYXRlX2ZiKGZkLCB3aWR0aCwgaGVpZ2h0LCBm b3JtYXQsIG1vZGlmaWVyLCBmYik7CiAJaWd0X2Fzc2VydChmYl9pZCk7CiAKIAljciA9IGlndF9n ZXRfY2Fpcm9fY3R4KGZkLCBmYik7CkBAIC0xMTE3LDcgKzExMTcsNyBAQCB1bnNpZ25lZCBpbnQg aWd0X2NyZWF0ZV9jb2xvcl9wYXR0ZXJuX2ZiKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0 LAogICogQHdpZHRoOiB3aWR0aCBvZiB0aGUgZnJhbWVidWZmZXIgaW4gcGl4ZWwgb3IgMAogICog QGhlaWdodDogaGVpZ2h0IG9mIHRoZSBmcmFtZWJ1ZmZlciBpbiBwaXhlbCBvciAwCiAgKiBAZm9y bWF0OiBkcm0gZm91cmNjIHBpeGVsIGZvcm1hdCBjb2RlCi0gKiBAdGlsaW5nOiB0aWxpbmcgbGF5 b3V0IG9mIHRoZSBmcmFtZWJ1ZmZlcgorICogQG1vZGlmaWVyOiB0aWxpbmcgbGF5b3V0IG9mIHRo ZSBmcmFtZWJ1ZmZlcgogICogQGZpbGVuYW1lOiBmaWxlbmFtZSBvZiB0aGUgcG5nIGltYWdlIHRv IGRyYXcKICAqIEBmYjogcG9pbnRlciB0byBhbiAjaWd0X2ZiIHN0cnVjdHVyZQogICoKQEAgLTEx MjksNyArMTEyOSw3IEBAIHVuc2lnbmVkIGludCBpZ3RfY3JlYXRlX2NvbG9yX3BhdHRlcm5fZmIo aW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCiAgKiBmYWlsdXJlLgogICovCiB1bnNpZ25l ZCBpbnQgaWd0X2NyZWF0ZV9pbWFnZV9mYihpbnQgZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwK LQkJCQkgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCB0aWxpbmcsCisJCQkJIHVpbnQzMl90IGZv cm1hdCwgdWludDY0X3QgbW9kaWZpZXIsCiAJCQkJIGNvbnN0IGNoYXIgKmZpbGVuYW1lLAogCQkJ CSBzdHJ1Y3QgaWd0X2ZiICpmYiAvKiBvdXQgKi8pCiB7CkBAIC0xMTQ1LDcgKzExNDUsNyBAQCB1 bnNpZ25lZCBpbnQgaWd0X2NyZWF0ZV9pbWFnZV9mYihpbnQgZmQsIGludCB3aWR0aCwgaW50IGhl aWdodCwKIAkJaGVpZ2h0ID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfaGVpZ2h0KGltYWdlKTsK IAljYWlyb19zdXJmYWNlX2Rlc3Ryb3koaW1hZ2UpOwogCi0JZmJfaWQgPSBpZ3RfY3JlYXRlX2Zi KGZkLCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHRpbGluZywgZmIpOworCWZiX2lkID0gaWd0X2Ny ZWF0ZV9mYihmZCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCBtb2RpZmllciwgZmIpOwogCiAJY3Ig PSBpZ3RfZ2V0X2NhaXJvX2N0eChmZCwgZmIpOwogCWlndF9wYWludF9pbWFnZShjciwgZmlsZW5h bWUsIDAsIDAsIHdpZHRoLCBoZWlnaHQpOwpAQCAtMTIyMSw3ICsxMjIxLDcgQEAgc3RhdGljIHZv aWQgc3RlcmVvX2ZiX2xheW91dF9mcm9tX21vZGUoc3RydWN0IHN0ZXJlb19mYl9sYXlvdXQgKmxh eW91dCwKICAqIEBkcm1fZmQ6IG9wZW4gaTkxNSBkcm0gZmlsZSBkZXNjcmlwdG9yCiAgKiBAbW9k ZTogQSBzdGVyZW8gM0QgbW9kZS4KICAqIEBmb3JtYXQ6IGRybSBmb3VyY2MgcGl4ZWwgZm9ybWF0 IGNvZGUKLSAqIEB0aWxpbmc6IHRpbGluZyBsYXlvdXQgb2YgdGhlIGZyYW1lYnVmZmVyCisgKiBA bW9kaWZpZXI6IHRpbGluZyBsYXlvdXQgb2YgdGhlIGZyYW1lYnVmZmVyCiAgKgogICogQ3JlYXRl IGEgZnJhbWVidWZmZXIgZm9yIHVzZSB3aXRoIHRoZSBzdGVyZW8gM0QgbW9kZSBzcGVjaWZpZWQg YnkgQG1vZGUuCiAgKgpAQCAtMTIzMCw3ICsxMjMwLDcgQEAgc3RhdGljIHZvaWQgc3RlcmVvX2Zi X2xheW91dF9mcm9tX21vZGUoc3RydWN0IHN0ZXJlb19mYl9sYXlvdXQgKmxheW91dCwKICAqIGZh aWx1cmUuCiAgKi8KIHVuc2lnbmVkIGludCBpZ3RfY3JlYXRlX3N0ZXJlb19mYihpbnQgZHJtX2Zk LCBkcm1Nb2RlTW9kZUluZm8gKm1vZGUsCi0JCQkJICB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90 IHRpbGluZykKKwkJCQkgIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgbW9kaWZpZXIpCiB7CiAJ c3RydWN0IHN0ZXJlb19mYl9sYXlvdXQgbGF5b3V0OwogCWNhaXJvX3QgKmNyOwpAQCAtMTIzOSw3 ICsxMjM5LDcgQEAgdW5zaWduZWQgaW50IGlndF9jcmVhdGVfc3RlcmVvX2ZiKGludCBkcm1fZmQs IGRybU1vZGVNb2RlSW5mbyAqbW9kZSwKIAogCXN0ZXJlb19mYl9sYXlvdXRfZnJvbV9tb2RlKCZs YXlvdXQsIG1vZGUpOwogCWZiX2lkID0gaWd0X2NyZWF0ZV9mYihkcm1fZmQsIGxheW91dC5mYl93 aWR0aCwgbGF5b3V0LmZiX2hlaWdodCwgZm9ybWF0LAotCQkJICAgICAgdGlsaW5nLCAmZmIpOwor CQkJICAgICAgbW9kaWZpZXIsICZmYik7CiAJY3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChkcm1fZmQs ICZmYik7CiAKIAlpZ3RfcGFpbnRfaW1hZ2UoY3IsICIxMDgwcC1sZWZ0LnBuZyIsCkBAIC0xMzAw LDExICsxMzAwLDExIEBAIHN0YXRpYyB2b2lkIGluaXRfYnVmKHN0cnVjdCBmYl9ibGl0X3VwbG9h ZCAqYmxpdCwKIAogCWJ1Zi0+Ym8gPSBnZW1faGFuZGxlX3RvX2xpYmRybV9ibyhibGl0LT5idWZt Z3IsIGJsaXQtPmZkLAogCQkJCQkgIG5hbWUsIGZiLT5nZW1faGFuZGxlKTsKLQlidWYtPnRpbGlu ZyA9IGlndF9mYl9tb2RfdG9fdGlsaW5nKGZiLT50aWxpbmcpOworCWJ1Zi0+dGlsaW5nID0gaWd0 X2ZiX21vZF90b190aWxpbmcoZmItPm1vZGlmaWVyKTsKIAlidWYtPnN0cmlkZSA9IGZiLT5zdHJp ZGVzWzBdOwogCWJ1Zi0+c2l6ZSA9IGZiLT5zaXplOwogCi0JaWYgKGlzX2Njc19tb2RpZmllcihm Yi0+dGlsaW5nKSkgeworCWlmIChpc19jY3NfbW9kaWZpZXIoZmItPm1vZGlmaWVyKSkgewogCQlp Z3RfYXNzZXJ0X2VxKGZiLT5zdHJpZGVzWzBdICYgMTI3LCAwKTsKIAkJaWd0X2Fzc2VydF9lcShm Yi0+c3RyaWRlc1sxXSAmIDEyNywgMCk7CiAKQEAgLTEzNDksMTQgKzEzNDksMTQgQEAgc3RhdGlj IHZvaWQgYmxpdGNvcHkoY29uc3Qgc3RydWN0IGlndF9mYiAqZHN0X2ZiLAogCQkJCQkgICBzcmNf ZmItPmdlbV9oYW5kbGUsCiAJCQkJCSAgIHNyY19mYi0+b2Zmc2V0c1tpXSwKIAkJCQkJICAgc3Jj X2ZiLT5zdHJpZGVzW2ldLAotCQkJCQkgICBpZ3RfZmJfbW9kX3RvX3RpbGluZyhzcmNfZmItPnRp bGluZyksCisJCQkJCSAgIGlndF9mYl9tb2RfdG9fdGlsaW5nKHNyY19mYi0+bW9kaWZpZXIpLAog CQkJCQkgICAwLCAwLCAvKiBzcmNfeCwgc3JjX3kgKi8KIAkJCQkJICAgZHN0X2ZiLT5wbGFuZV93 aWR0aFtpXSwgZHN0X2ZiLT5wbGFuZV9oZWlnaHRbaV0sCiAJCQkJCSAgIGRzdF9mYi0+cGxhbmVf YnBwW2ldLAogCQkJCQkgICBkc3RfZmItPmdlbV9oYW5kbGUsCiAJCQkJCSAgIGRzdF9mYi0+b2Zm c2V0c1tpXSwKIAkJCQkJICAgZHN0X2ZiLT5zdHJpZGVzW2ldLAotCQkJCQkgICBpZ3RfZmJfbW9k X3RvX3RpbGluZyhkc3RfZmItPnRpbGluZyksCisJCQkJCSAgIGlndF9mYl9tb2RfdG9fdGlsaW5n KGRzdF9mYi0+bW9kaWZpZXIpLAogCQkJCQkgICAwLCAwIC8qIGRzdF94LCBkc3RfeSAqLyk7CiAJ fQogfQpAQCAtMjA5Miw4ICsyMDkyLDggQEAgc3RhdGljIHZvaWQgY3JlYXRlX2NhaXJvX3N1cmZh Y2VfX2NvbnZlcnQoaW50IGZkLCBzdHJ1Y3QgaWd0X2ZiICpmYikKIAkJCQkJCQkgICAgICZibGl0 LT5zaGFkb3dfZmIpOwogCWlndF9hc3NlcnQoYmxpdC0+c2hhZG93X3B0cik7CiAKLQlpZiAoZmIt PnRpbGluZyA9PSBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCB8fAotCSAgICBmYi0+dGls aW5nID09IExPQ0FMX0k5MTVfRk9STUFUX01PRF9ZZl9USUxFRCkgeworCWlmIChmYi0+bW9kaWZp ZXIgPT0gTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQgfHwKKwkgICAgZmItPm1vZGlmaWVy ID09IExPQ0FMX0k5MTVfRk9STUFUX01PRF9ZZl9USUxFRCkgewogCQlzZXR1cF9saW5lYXJfbWFw cGluZygmYmxpdC0+YmFzZSk7CiAJfSBlbHNlIHsKIAkJYmxpdC0+YmFzZS5saW5lYXIuZmIuZ2Vt X2hhbmRsZSA9IDA7CkBAIC0yMTcxLDEwICsyMTcxLDEwIEBAIGNhaXJvX3N1cmZhY2VfdCAqaWd0 X2dldF9jYWlyb19zdXJmYWNlKGludCBmZCwgc3RydWN0IGlndF9mYiAqZmIpCiAJCSAgICAoKGYt PmNhaXJvX2lkID09IENBSVJPX0ZPUk1BVF9JTlZBTElEKSAmJgogCQkgICAgIChmLT5waXhtYW5f aWQgIT0gUElYTUFOX2ludmFsaWQpKSkKIAkJCWNyZWF0ZV9jYWlyb19zdXJmYWNlX19jb252ZXJ0 KGZkLCBmYik7Ci0JCWVsc2UgaWYgKGlzX2Njc19tb2RpZmllcihmYi0+dGlsaW5nKSkKKwkJZWxz ZSBpZiAoaXNfY2NzX21vZGlmaWVyKGZiLT5tb2RpZmllcikpCiAJCQljcmVhdGVfY2Fpcm9fc3Vy ZmFjZV9fcmVuZGVyY29weShmZCwgZmIpOwotCQllbHNlIGlmIChmYi0+dGlsaW5nID09IExPQ0FM X0k5MTVfRk9STUFUX01PRF9ZX1RJTEVEIHx8Ci0JCQkgZmItPnRpbGluZyA9PSBMT0NBTF9JOTE1 X0ZPUk1BVF9NT0RfWWZfVElMRUQpCisJCWVsc2UgaWYgKGZiLT5tb2RpZmllciA9PSBMT0NBTF9J OTE1X0ZPUk1BVF9NT0RfWV9USUxFRCB8fAorCQkJIGZiLT5tb2RpZmllciA9PSBMT0NBTF9JOTE1 X0ZPUk1BVF9NT0RfWWZfVElMRUQpCiAJCQljcmVhdGVfY2Fpcm9fc3VyZmFjZV9fYmxpdChmZCwg ZmIpOwogCQllbHNlCiAJCQljcmVhdGVfY2Fpcm9fc3VyZmFjZV9fZ3R0KGZkLCBmYik7CmRpZmYg LS1naXQgYS9saWIvaWd0X2ZiLmggYi9saWIvaWd0X2ZiLmgKaW5kZXggOWYwMjdkZWJhODQyLi43 ZWMzN2MwY2JjMjUgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfZmIuaAorKysgYi9saWIvaWd0X2ZiLmgK QEAgLTQ3LDcgKzQ3LDcgQEAKICAqIEBkcm1fZm9ybWF0OiBEUk0gRk9VUkNDIGNvZGUKICAqIEB3 aWR0aDogd2lkdGggaW4gcGl4ZWxzCiAgKiBAaGVpZ2h0OiBoZWlnaHQgaW4gcGl4ZWxzCi0gKiBA dGlsaW5nOiB0aWxpbmcgbW9kZSBhcyBhIERSTSBmcmFtZWJ1ZmZlciBtb2RpZmllcgorICogQG1v ZGlmaWVyOiB0aWxpbmcgbW9kZSBhcyBhIERSTSBmcmFtZWJ1ZmZlciBtb2RpZmllcgogICogQHNp emU6IHNpemUgaW4gYnl0ZXMgb2YgdGhlIHVuZGVybHlpbmcgYmFja2luZyBzdG9yYWdlCiAgKiBA Y2Fpcm9fc3VyZmFjZTogb3B0aW9uYWxseSBhdHRhY2hlZCBjYWlybyBkcmF3aW5nIHN1cmZhY2UK ICAqIEBkb21haW46IGN1cnJlbnQgZG9tYWluIGZvciBjYWNoZSBmbHVzaGluZyB0cmFja2luZyBv biBpOTE1LmtvCkBAIC03MCw3ICs3MCw3IEBAIHR5cGVkZWYgc3RydWN0IGlndF9mYiB7CiAJaW50 IGhlaWdodDsKIAllbnVtIGlndF9jb2xvcl9lbmNvZGluZyBjb2xvcl9lbmNvZGluZzsKIAllbnVt IGlndF9jb2xvcl9yYW5nZSBjb2xvcl9yYW5nZTsKLQl1aW50NjRfdCB0aWxpbmc7CisJdWludDY0 X3QgbW9kaWZpZXI7CiAJdWludDY0X3Qgc2l6ZTsKIAljYWlyb19zdXJmYWNlX3QgKmNhaXJvX3N1 cmZhY2U7CiAJdW5zaWduZWQgaW50IGRvbWFpbjsKQEAgLTEwMiwzNCArMTAyLDM0IEBAIGVudW0g aWd0X3RleHRfYWxpZ24gewogCWFsaWduX2hjZW50ZXIJPSAweDA4LAogfTsKIAotdm9pZCBpZ3Rf Z2V0X2ZiX3RpbGVfc2l6ZShpbnQgZmQsIHVpbnQ2NF90IHRpbGluZywgaW50IGZiX2JwcCwKK3Zv aWQgaWd0X2dldF9mYl90aWxlX3NpemUoaW50IGZkLCB1aW50NjRfdCBtb2RpZmllciwgaW50IGZi X2JwcCwKIAkJCSAgdW5zaWduZWQgKndpZHRoX3JldCwgdW5zaWduZWQgKmhlaWdodF9yZXQpOwot dm9pZCBpZ3RfY2FsY19mYl9zaXplKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCB1aW50 MzJfdCBmb3JtYXQsIHVpbnQ2NF90IHRpbGluZywKK3ZvaWQgaWd0X2NhbGNfZmJfc2l6ZShpbnQg ZmQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCBtb2Rp ZmllciwKIAkJICAgICAgdWludDY0X3QgKnNpemVfcmV0LCB1bnNpZ25lZCAqc3RyaWRlX3JldCk7 CiB1bnNpZ25lZCBpbnQKIGlndF9jcmVhdGVfZmJfd2l0aF9ib19zaXplKGludCBmZCwgaW50IHdp ZHRoLCBpbnQgaGVpZ2h0LAotCQkJICAgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCB0aWxpbmcs CisJCQkgICB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IG1vZGlmaWVyLAogCQkJICAgc3RydWN0 IGlndF9mYiAqZmIsIHVpbnQ2NF90IGJvX3NpemUsCiAJCQkgICB1bnNpZ25lZCBib19zdHJpZGUp OwogdW5zaWduZWQgaW50IGlndF9jcmVhdGVfZmIoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWln aHQsIHVpbnQzMl90IGZvcm1hdCwKLQkJCSAgIHVpbnQ2NF90IHRpbGluZywgc3RydWN0IGlndF9m YiAqZmIpOworCQkJICAgdWludDY0X3QgbW9kaWZpZXIsIHN0cnVjdCBpZ3RfZmIgKmZiKTsKIHVu c2lnbmVkIGludCBpZ3RfY3JlYXRlX2NvbG9yX2ZiKGludCBmZCwgaW50IHdpZHRoLCBpbnQgaGVp Z2h0LAotCQkJCSB1aW50MzJfdCBmb3JtYXQsIHVpbnQ2NF90IHRpbGluZywKKwkJCQkgdWludDMy X3QgZm9ybWF0LCB1aW50NjRfdCBtb2RpZmllciwKIAkJCQkgZG91YmxlIHIsIGRvdWJsZSBnLCBk b3VibGUgYiwKIAkJCQkgc3RydWN0IGlndF9mYiAqZmIgLyogb3V0ICovKTsKIHVuc2lnbmVkIGlu dCBpZ3RfY3JlYXRlX3BhdHRlcm5fZmIoaW50IGZkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsCi0J CQkJICAgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCB0aWxpbmcsCisJCQkJICAgdWludDMyX3Qg Zm9ybWF0LCB1aW50NjRfdCBtb2RpZmllciwKIAkJCQkgICBzdHJ1Y3QgaWd0X2ZiICpmYiAvKiBv dXQgKi8pOwogdW5zaWduZWQgaW50IGlndF9jcmVhdGVfY29sb3JfcGF0dGVybl9mYihpbnQgZmQs IGludCB3aWR0aCwgaW50IGhlaWdodCwKLQkJCQkJIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3Qg dGlsaW5nLAorCQkJCQkgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCBtb2RpZmllciwKIAkJCQkJ IGRvdWJsZSByLCBkb3VibGUgZywgZG91YmxlIGIsCiAJCQkJCSBzdHJ1Y3QgaWd0X2ZiICpmYiAv KiBvdXQgKi8pOwogdW5zaWduZWQgaW50IGlndF9jcmVhdGVfaW1hZ2VfZmIoaW50IGRybV9mZCwg IGludCB3aWR0aCwgaW50IGhlaWdodCwKLQkJCQkgdWludDMyX3QgZm9ybWF0LCB1aW50NjRfdCB0 aWxpbmcsCisJCQkJIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgbW9kaWZpZXIsCiAJCQkJIGNv bnN0IGNoYXIgKmZpbGVuYW1lLAogCQkJCSBzdHJ1Y3QgaWd0X2ZiICpmYiAvKiBvdXQgKi8pOwog dW5zaWduZWQgaW50IGlndF9jcmVhdGVfc3RlcmVvX2ZiKGludCBkcm1fZmQsIGRybU1vZGVNb2Rl SW5mbyAqbW9kZSwKLQkJCQkgIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgdGlsaW5nKTsKKwkJ CQkgIHVpbnQzMl90IGZvcm1hdCwgdWludDY0X3QgbW9kaWZpZXIpOwogdW5zaWduZWQgaW50IGln dF9mYl9jb252ZXJ0KHN0cnVjdCBpZ3RfZmIgKmRzdCwgc3RydWN0IGlndF9mYiAqc3JjLAogCQkJ ICAgIHVpbnQzMl90IGRzdF9mb3VyY2MpOwogdm9pZCBpZ3RfcmVtb3ZlX2ZiKGludCBmZCwgc3Ry dWN0IGlndF9mYiAqZmIpOwpkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2Njcy5jIGIvdGVzdHMva21z X2Njcy5jCmluZGV4IDFlZDJiNGEwOGM1ZC4uNDI1OTZhNDUyYWFhIDEwMDY0NAotLS0gYS90ZXN0 cy9rbXNfY2NzLmMKKysrIGIvdGVzdHMva21zX2Njcy5jCkBAIC0zODgsNyArMzg4LDcgQEAgc3Rh dGljIHZvaWQgZ2VuZXJhdGVfZmIoZGF0YV90ICpkYXRhLCBzdHJ1Y3QgaWd0X2ZiICpmYiwKIAlm Yi0+d2lkdGggPSBmLndpZHRoOwogCWZiLT5oZWlnaHQgPSBmLmhlaWdodDsKIAlmYi0+c3RyaWRl c1swXSA9IGYucGl0Y2hlc1swXTsKLQlmYi0+dGlsaW5nID0gZi5tb2RpZmllclswXTsKKwlmYi0+ bW9kaWZpZXIgPSBmLm1vZGlmaWVyWzBdOwogCWZiLT5zaXplID0gc2l6ZVswXTsKIAlmYi0+Y2Fp cm9fc3VyZmFjZSA9IE5VTEw7CiAJZmItPmRvbWFpbiA9IDA7Ci0tIAoyLjE4LjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBs aXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=