From mboxrd@z Thu Jan 1 00:00:00 1970 From: Petri Latvala Subject: [PATCH i-g-t 1/5] Add support for subtest-specific documentation Date: Thu, 10 Aug 2017 13:26:47 +0300 Message-ID: <1502360811-31640-2-git-send-email-petri.latvala@intel.com> References: <1502360811-31640-1-git-send-email-petri.latvala@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from johanna3.inet.fi (mta-out1.inet.fi [62.71.2.233]) by gabe.freedesktop.org (Postfix) with ESMTP id 57E816E381 for ; Thu, 10 Aug 2017 10:26:54 +0000 (UTC) In-Reply-To: <1502360811-31640-1-git-send-email-petri.latvala@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhlIGN1cnJlbnQgZG9jdW1lbnRhdGlvbiBmb3IgdGVzdHMgaXMgbGltaXRlZCB0byBhIHNpbmds ZSBzdHJpbmcgcGVyCnRlc3QgYmluYXJ5LiBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgZG9j dW1lbnRpbmcgaW5kaXZpZHVhbApzdWJ0ZXN0cy4KClRoZSBzeW50YXggZm9yIHN1YnRlc3QgZG9j dW1lbnRhdGlvbiBpczoKCiAgIGlndF9kb2N1bWVudF9zdWJ0ZXN0KCJGcm9iIGtub2JzIHRvIHNl ZSBpZiBvbmUgb2YgdGhlICIKICAgICAgICAgICAgICAgICAgICAgICAgImNyb3NzYmVhbXMgd2ls bCBnbyBvdXQgb2Ygc2tldyBvbiB0aGUgIgogICAgICAgICAgICAgICAgICAgICAgICAidHJlYWRs ZS5cbiIpOwogICBpZ3Rfc3VidGVzdCgia25vYi1mcm9iYmluZy1hc2tldyIpCiAgICAgdGVzdF9m cm9iKCk7CgpvciB3aXRoIGEgZm9ybWF0IHN0cmluZzoKCiAgZm9yX2V4YW1wbGVfbG9vcChlKSB7 CiAgICBpZ3RfZG9jdW1lbnRfc3VidGVzdF9mKCJGcm9iICVzIHRvIHNlZSBpZiBvbmUgb2YgdGhl ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgImNyb3NzYmVhbXMgd2lsbCBnbyBvdXQgb2Yg c2tldyBvbiB0aGUgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAidHJlYWRsZS5cbiIsIGUt PnJlYWRhYmxlX25hbWUpOwogICAgaWd0X3N1YnRlc3RfZigiJXMtZnJvYi1hc2tldyIsIGUtPm5h bWUpCiAgICAgIHRlc3RfZnJvYihlKTsKICB9CgpUaGUgZG9jdW1lbnRhdGlvbiBjYW5ub3QgYmUg ZXh0cmFjdGVkIGZyb20ganVzdCBjb21tZW50cywgYmVjYXVzZQphc3NvY2lhdGluZyB0aGVtIHdp dGggdGhlIGNvcnJlY3Qgc3VidGVzdCBuYW1lIHdpbGwgdGhlbiByZXF1aXJlIGRvaW5nCnBhdHRl cm4gbWF0Y2hpbmcgaW4gdGhlIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yLCBmb3Igc3VidGVzdHMg d2hlcmUKdGhlIG5hbWUgaXMgZ2VuZXJhdGVkIGF0IHJ1bnRpbWUgdXNpbmcgaWd0X3N1YnRlc3Rf Zi4KCnYyOiBSZWJhc2UsIGNoYW5nZSBmdW5jdGlvbiBuYW1lIGluIGNvbW1pdCBtZXNzYWdlIHRv IG1hdGNoIGNvZGUKCnYzOiBGaXggY3VycmVudCBkb2N1bWVudGF0aW9uIHN0cmluZyB0cmFja2lu ZywgYWRkIG1pc3NpbmcgdmFfZW5kIChWaW5heSkKCnY0OiBGaXggYnJhaW5mYXJ0IGluIF9faWd0 X3J1bl9zdWJ0ZXN0CgpTaWduZWQtb2ZmLWJ5OiBQZXRyaSBMYXR2YWxhIDxwZXRyaS5sYXR2YWxh QGludGVsLmNvbT4KQWNrZWQtYnk6IExlbyBMaSA8c3VucGVuZy5saUBhbWQuY29tPgpBY2tlZC1i eTogQXJrYWRpdXN6IEhpbGVyIDxhcmthZGl1c3ouaGlsZXJAaW50ZWwuY29tPgotLS0KIGxpYi9p Z3RfYXV4LmMgIHwgICA4ICsrLS0KIGxpYi9pZ3RfY29yZS5jIHwgMTQ5ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogbGliL2lndF9jb3Jl LmggfCAgIDYgKystCiAzIGZpbGVzIGNoYW5nZWQsIDEyOCBpbnNlcnRpb25zKCspLCAzNSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWIvaWd0X2F1eC5jIGIvbGliL2lndF9hdXguYwppbmRl eCBmNDI4ZjE1Li5kNTZmNDFmIDEwMDY0NAotLS0gYS9saWIvaWd0X2F1eC5jCisrKyBiL2xpYi9p Z3RfYXV4LmMKQEAgLTMxMSw3ICszMTEsNyBAQCBzdGF0aWMgdm9pZCBzaWdfaGFuZGxlcihpbnQg aSkKICAqLwogdm9pZCBpZ3RfZm9ya19zaWduYWxfaGVscGVyKHZvaWQpCiB7Ci0JaWYgKGlndF9v bmx5X2xpc3Rfc3VidGVzdHMoKSkKKwlpZiAoaWd0X29ubHlfY29sbGVjdF9kYXRhKCkpCiAJCXJl dHVybjsKIAogCS8qIFdlIHBpY2sgU0lHQ09OVCBhcyBpdCBpcyBhICJzYWZlIiBzaWduYWwgLSBp ZiB3ZSBzZW5kIFNJR0NPTlQgdG8KQEAgLTM0NCw3ICszNDQsNyBAQCB2b2lkIGlndF9mb3JrX3Np Z25hbF9oZWxwZXIodm9pZCkKICAqLwogdm9pZCBpZ3Rfc3RvcF9zaWduYWxfaGVscGVyKHZvaWQp CiB7Ci0JaWYgKGlndF9vbmx5X2xpc3Rfc3VidGVzdHMoKSkKKwlpZiAoaWd0X29ubHlfY29sbGVj dF9kYXRhKCkpCiAJCXJldHVybjsKIAogCWlndF9zdG9wX2hlbHBlcigmc2lnbmFsX2hlbHBlcik7 CkBAIC0zNzUsNyArMzc1LDcgQEAgc3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXygobm9yZXR1cm4p KSBzaHJpbmtfaGVscGVyX3Byb2Nlc3MoaW50IGZkLCBwaWRfdCBwaWQpCiAgKi8KIHZvaWQgaWd0 X2Zvcmtfc2hyaW5rX2hlbHBlcihpbnQgZHJtX2ZkKQogewotCWFzc2VydCghaWd0X29ubHlfbGlz dF9zdWJ0ZXN0cygpKTsKKwlhc3NlcnQoIWlndF9vbmx5X2NvbGxlY3RfZGF0YSgpKTsKIAlpZ3Rf cmVxdWlyZShpZ3RfZHJvcF9jYWNoZXNfaGFzKGRybV9mZCwgRFJPUF9TSFJJTktfQUxMKSk7CiAJ aWd0X2ZvcmtfaGVscGVyKCZzaHJpbmtfaGVscGVyKQogCQlzaHJpbmtfaGVscGVyX3Byb2Nlc3Mo ZHJtX2ZkLCBnZXRwcGlkKCkpOwpAQCAtNDczLDcgKzQ3Myw3IEBAIHZvaWQgaWd0X3N0b3BfaGFu Z19kZXRlY3Rvcih2b2lkKQogI2Vsc2UKIHZvaWQgaWd0X2ZvcmtfaGFuZ19kZXRlY3RvcihpbnQg ZmQpCiB7Ci0JaWYgKGlndF9vbmx5X2xpc3Rfc3VidGVzdHMoKSkKKwlpZiAoaWd0X29ubHlfY29s bGVjdF9kYXRhKCkpCiAJCXJldHVybjsKIH0KIApkaWZmIC0tZ2l0IGEvbGliL2lndF9jb3JlLmMg Yi9saWIvaWd0X2NvcmUuYwppbmRleCBjMDQ4OGU5Li5mMTI2ZWY4IDEwMDY0NAotLS0gYS9saWIv aWd0X2NvcmUuYworKysgYi9saWIvaWd0X2NvcmUuYwpAQCAtOTksNyArOTksNyBAQAogICoKICAq IFRvIGFsbG93IHRoaXMgaS1nLXQgcHJvdmlkZXMgI2lndF9maXh0dXJlIGNvZGUgYmxvY2tzIGZv ciBzZXR1cCBjb2RlIG91dHNpZGUKICAqIG9mIHN1YnRlc3RzIGFuZCBhdXRvbWF0aWNhbGx5IHNr aXBzIHRoZSBzdWJ0ZXN0IGNvZGUgYmxvY2tzIHRoZW1zZWx2ZXMuIEZvcgotICogc3BlY2lhbCBj YXNlcyBpZ3Rfb25seV9saXN0X3N1YnRlc3RzKCkgaXMgYWxzbyBwcm92aWRlZC4gRm9yIHNldHVw IGNvZGUgb25seQorICogc3BlY2lhbCBjYXNlcyBpZ3Rfb25seV9jb2xsZWN0X2RhdGEoKSBpcyBh bHNvIHByb3ZpZGVkLiBGb3Igc2V0dXAgY29kZSBvbmx5CiAgKiBzaGFyZWQgYnkgYSBncm91cCBv ZiBzdWJ0ZXN0IGVuY2Fwc3VsYXRlIHRoZSAjaWd0X2ZpeHR1cmUgYmxvY2sgYW5kIGFsbCB0aGUK ICAqIHN1YnRlc3Rlc3QgaW4gYSAjaWd0X3N1YnRlc3RfZ3JvdXAgYmxvY2suCiAgKgpAQCAtMjUz LDkgKzI1Myw5IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZXhpdF9oYW5kbGVyX2NvdW50OwogY29u c3QgY2hhciAqaWd0X2ludGVyYWN0aXZlX2RlYnVnOwogCiAvKiBzdWJ0ZXN0cyBoZWxwZXJzICov Ci1zdGF0aWMgYm9vbCBsaXN0X3N1YnRlc3RzID0gZmFsc2U7Ci1zdGF0aWMgY2hhciAqcnVuX3Np bmdsZV9zdWJ0ZXN0ID0gTlVMTDsKLXN0YXRpYyBib29sIHJ1bl9zaW5nbGVfc3VidGVzdF9mb3Vu ZCA9IGZhbHNlOworc3RhdGljIGNoYXIgKnNpbmdsZV9zdWJ0ZXN0ID0gTlVMTDsKK3N0YXRpYyBi b29sIHNpbmdsZV9zdWJ0ZXN0X2ZvdW5kID0gZmFsc2U7CitzdGF0aWMgY2hhciAqY3VycmVudF9z dWJ0ZXN0X2RvY3VtZW50YXRpb24gPSBOVUxMOwogc3RhdGljIGNvbnN0IGNoYXIgKmluX3N1YnRl c3QgPSBOVUxMOwogc3RhdGljIHN0cnVjdCB0aW1lc3BlYyBzdWJ0ZXN0X3RpbWU7CiBzdGF0aWMg Y2xvY2tpZF90IGlndF9jbG9jayA9IChjbG9ja2lkX3QpLTE7CkBAIC0yNjUsNiArMjY1LDEzIEBA IHN0YXRpYyBib29sIGluX2F0ZXhpdF9oYW5kbGVyID0gZmFsc2U7CiBzdGF0aWMgZW51bSB7CiAJ Q09OVCA9IDAsIFNLSVAsIEZBSUwKIH0gc2tpcF9zdWJ0ZXN0c19oZW5jZWZvcnRoID0gQ09OVDsK K3N0YXRpYyBlbnVtIHsKKwlFWEVDVVRFX0FMTCwKKwlFWEVDVVRFX1NJTkdMRSwKKwlMSVNUX1NV QlRFU1RTLAorCURPQ1VNRU5ULAorCURPQ1VNRU5UX1NJTkdMRQorfSBydW5tb2RlID0gRVhFQ1VU RV9BTEw7CiAKIGJvb2wgX19pZ3RfcGxhaW5fb3V0cHV0ID0gZmFsc2U7CiAKQEAgLTI3Nyw2ICsy ODQsOCBAQCBib29sIHRlc3RfY2hpbGQ7CiBlbnVtIHsKICBPUFRfTElTVF9TVUJURVNUUywKICBP UFRfUlVOX1NVQlRFU1QsCisgT1BUX0RPQ19TVUJURVNUUywKKyBPUFRfRE9DX1NJTkdMRV9TVUJU RVNULAogIE9QVF9ERVNDUklQVElPTiwKICBPUFRfREVCVUcsCiAgT1BUX0lOVEVSQUNUSVZFX0RF QlVHLApAQCAtNDY5LDcgKzQ3OCw3IEBAIGJvb2wgX19pZ3RfZml4dHVyZSh2b2lkKQogewogCWFz c2VydCghaW5fZml4dHVyZSk7CiAKLQlpZiAoaWd0X29ubHlfbGlzdF9zdWJ0ZXN0cygpKQorCWlm IChpZ3Rfb25seV9jb2xsZWN0X2RhdGEoKSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJaWYgKHNraXBf c3VidGVzdHNfaGVuY2Vmb3J0aCkKQEAgLTU2Myw3ICs1NzIsNyBAQCBzdGF0aWMgdm9pZCBsb3df bWVtX2tpbGxlcl9kaXNhYmxlKGJvb2wgZGlzYWJsZSkKIGJvb2wgaWd0X2V4aXRfY2FsbGVkOwog c3RhdGljIHZvaWQgY29tbW9uX2V4aXRfaGFuZGxlcihpbnQgc2lnKQogewotCWlmICghaWd0X29u bHlfbGlzdF9zdWJ0ZXN0cygpKSB7CisJaWYgKCFpZ3Rfb25seV9jb2xsZWN0X2RhdGEoKSkgewog CQlsb3dfbWVtX2tpbGxlcl9kaXNhYmxlKGZhbHNlKTsKIAkJa2lja19mYmNvbih0cnVlKTsKIAl9 CkBAIC01ODMsNyArNTkyLDcgQEAgc3RhdGljIHZvaWQgcHJpbnRfdmVyc2lvbih2b2lkKQogewog CXN0cnVjdCB1dHNuYW1lIHV0czsKIAotCWlmIChsaXN0X3N1YnRlc3RzKQorCWlmIChpZ3Rfb25s eV9jb2xsZWN0X2RhdGEoKSkKIAkJcmV0dXJuOwogCiAJdW5hbWUoJnV0cyk7CkBAIC01OTksNiAr NjA4LDggQEAgc3RhdGljIHZvaWQgcHJpbnRfdXNhZ2UoY29uc3QgY2hhciAqaGVscF9zdHIsIGJv b2wgb3V0cHV0X29uX3N0ZGVycikKIAogCWZwcmludGYoZiwgIlVzYWdlOiAlcyBbT1BUSU9OU11c biIsIGNvbW1hbmRfc3RyKTsKIAlmcHJpbnRmKGYsICIgIC0tbGlzdC1zdWJ0ZXN0c1xuIgorCQkg ICAiICAtLWRvY3VtZW50LWFsbC1zdWJ0ZXN0c1xuIgorCQkgICAiICAtLWRvY3VtZW50LXN1YnRl c3QgPHBhdHRlcm4+XG4iCiAJCSAgICIgIC0tcnVuLXN1YnRlc3QgPHBhdHRlcm4+XG4iCiAJCSAg ICIgIC0tZGVidWdbPWxvZy1kb21haW5dXG4iCiAJCSAgICIgIC0taW50ZXJhY3RpdmUtZGVidWdb PWRvbWFpbl1cbiIKQEAgLTcxMCw2ICs3MjEsOCBAQCBzdGF0aWMgaW50IGNvbW1vbl9pbml0KGlu dCAqYXJnYywgY2hhciAqKmFyZ3YsCiAJc3RhdGljIHN0cnVjdCBvcHRpb24gbG9uZ19vcHRpb25z W10gPSB7CiAJCXsibGlzdC1zdWJ0ZXN0cyIsIDAsIDAsIE9QVF9MSVNUX1NVQlRFU1RTfSwKIAkJ eyJydW4tc3VidGVzdCIsIDEsIDAsIE9QVF9SVU5fU1VCVEVTVH0sCisJCXsiZG9jdW1lbnQtYWxs LXN1YnRlc3RzIiwgMCwgMCwgT1BUX0RPQ19TVUJURVNUU30sCisJCXsiZG9jdW1lbnQtc3VidGVz dCIsIDEsIDAsIE9QVF9ET0NfU0lOR0xFX1NVQlRFU1R9LAogCQl7ImhlbHAtZGVzY3JpcHRpb24i LCAwLCAwLCBPUFRfREVTQ1JJUFRJT059LAogCQl7ImRlYnVnIiwgb3B0aW9uYWxfYXJndW1lbnQs IDAsIE9QVF9ERUJVR30sCiAJCXsiaW50ZXJhY3RpdmUtZGVidWciLCBvcHRpb25hbF9hcmd1bWVu dCwgMCwgT1BUX0lOVEVSQUNUSVZFX0RFQlVHfSwKQEAgLTgwMCwxMiArODEzLDI0IEBAIHN0YXRp YyBpbnQgY29tbW9uX2luaXQoaW50ICphcmdjLCBjaGFyICoqYXJndiwKIAkJCQlpZ3RfbG9nX2Rv bWFpbl9maWx0ZXIgPSBzdHJkdXAob3B0YXJnKTsKIAkJCWJyZWFrOwogCQljYXNlIE9QVF9MSVNU X1NVQlRFU1RTOgotCQkJaWYgKCFydW5fc2luZ2xlX3N1YnRlc3QpCi0JCQkJbGlzdF9zdWJ0ZXN0 cyA9IHRydWU7CisJCQlpZiAocnVubW9kZSA9PSBFWEVDVVRFX0FMTCkKKwkJCQlydW5tb2RlID0g TElTVF9TVUJURVNUUzsKIAkJCWJyZWFrOwogCQljYXNlIE9QVF9SVU5fU1VCVEVTVDoKLQkJCWlm ICghbGlzdF9zdWJ0ZXN0cykKLQkJCQlydW5fc2luZ2xlX3N1YnRlc3QgPSBzdHJkdXAob3B0YXJn KTsKKwkJCWlmIChydW5tb2RlID09IEVYRUNVVEVfQUxMKSB7CisJCQkJcnVubW9kZSA9IEVYRUNV VEVfU0lOR0xFOworCQkJCXNpbmdsZV9zdWJ0ZXN0ID0gc3RyZHVwKG9wdGFyZyk7CisJCQl9CisJ CQlicmVhazsKKwkJY2FzZSBPUFRfRE9DX1NVQlRFU1RTOgorCQkJaWYgKHJ1bm1vZGUgPT0gRVhF Q1VURV9BTEwpCisJCQkJcnVubW9kZSA9IERPQ1VNRU5UOworCQkJYnJlYWs7CisJCWNhc2UgT1BU X0RPQ19TSU5HTEVfU1VCVEVTVDoKKwkJCWlmIChydW5tb2RlID09IEVYRUNVVEVfQUxMKSB7CisJ CQkJcnVubW9kZSA9IERPQ1VNRU5UX1NJTkdMRTsKKwkJCQlzaW5nbGVfc3VidGVzdCA9IHN0cmR1 cChvcHRhcmcpOworCQkJfQogCQkJYnJlYWs7CiAJCWNhc2UgT1BUX0RFU0NSSVBUSU9OOgogCQkJ cHJpbnRfdGVzdF9kZXNjcmlwdGlvbigpOwpAQCAtODM3LDExICs4NjIsMTEgQEAgb3V0OgogCS8q IGV4aXQgaW1tZWRpYXRlbHkgaWYgdGhpcyB0ZXN0IGhhcyBubyBzdWJ0ZXN0cyBhbmQgYSBzdWJ0 ZXN0IG9yIHRoZQogCSAqIGxpc3Qgb2Ygc3VidGVzdHMgaGFzIGJlZW4gcmVxdWVzdGVkICovCiAJ aWYgKCF0ZXN0X3dpdGhfc3VidGVzdHMpIHsKLQkJaWYgKHJ1bl9zaW5nbGVfc3VidGVzdCkgewot CQkJaWd0X3dhcm4oIlVua25vd24gc3VidGVzdDogJXNcbiIsIHJ1bl9zaW5nbGVfc3VidGVzdCk7 CisJCWlmIChydW5tb2RlID09IEVYRUNVVEVfU0lOR0xFIHx8IHJ1bm1vZGUgPT0gRE9DVU1FTlRf U0lOR0xFKSB7CisJCQlpZ3Rfd2FybigiVW5rbm93biBzdWJ0ZXN0OiAlc1xuIiwgc2luZ2xlX3N1 YnRlc3QpOwogCQkJZXhpdChJR1RfRVhJVF9JTlZBTElEKTsKIAkJfQotCQlpZiAobGlzdF9zdWJ0 ZXN0cykKKwkJaWYgKHJ1bm1vZGUgPT0gTElTVF9TVUJURVNUUyB8fCBydW5tb2RlID09IERPQ1VN RU5UKQogCQkJZXhpdChJR1RfRVhJVF9JTlZBTElEKTsKIAl9CiAKQEAgLTg0OSw3ICs4NzQsNyBA QCBvdXQ6CiAJCS8qIGV4aXQgd2l0aCBubyBlcnJvciBmb3IgLWgvLS1oZWxwICovCiAJCWV4aXQo cmV0ID09IC0xID8gMCA6IElHVF9FWElUX0lOVkFMSUQpOwogCi0JaWYgKCFsaXN0X3N1YnRlc3Rz KSB7CisJaWYgKCFpZ3Rfb25seV9jb2xsZWN0X2RhdGEoKSkgewogCQlraWNrX2ZiY29uKGZhbHNl KTsKIAkJa21zZyhLRVJOX0lORk8gIltJR1RdICVzOiBleGVjdXRpbmdcbiIsIGNvbW1hbmRfc3Ry KTsKIAkJcHJpbnRfdmVyc2lvbigpOwpAQCAtOTU3LDE2ICs5ODIsMzggQEAgYm9vbCBfX2lndF9y dW5fc3VidGVzdChjb25zdCBjaGFyICpzdWJ0ZXN0X25hbWUpCiAJCQlpZ3RfZXhpdCgpOwogCQl9 CiAKLQlpZiAobGlzdF9zdWJ0ZXN0cykgeworCWlmIChydW5tb2RlID09IExJU1RfU1VCVEVTVFMp IHsKIAkJcHJpbnRmKCIlc1xuIiwgc3VidGVzdF9uYW1lKTsKIAkJcmV0dXJuIGZhbHNlOwogCX0K IAotCWlmIChydW5fc2luZ2xlX3N1YnRlc3QpIHsKLQkJaWYgKHV3aWxkbWF0KHN1YnRlc3RfbmFt ZSwgcnVuX3NpbmdsZV9zdWJ0ZXN0KSA9PSAwKQorCWlmIChydW5tb2RlID09IERPQ1VNRU5UKSB7 CisJCWlmIChjdXJyZW50X3N1YnRlc3RfZG9jdW1lbnRhdGlvbikgeworCQkJcHJpbnRmKCIlczpc blxuIiwgc3VidGVzdF9uYW1lKTsKKwkJCXByaW50ZigiJXMiLCBjdXJyZW50X3N1YnRlc3RfZG9j dW1lbnRhdGlvbik7CisJCQlmcmVlKGN1cnJlbnRfc3VidGVzdF9kb2N1bWVudGF0aW9uKTsKKwkJ CWN1cnJlbnRfc3VidGVzdF9kb2N1bWVudGF0aW9uID0gTlVMTDsKKwkJfQorCQlyZXR1cm4gZmFs c2U7CisJfQorCisJaWYgKHJ1bm1vZGUgPT0gRVhFQ1VURV9TSU5HTEUgfHwgcnVubW9kZSA9PSBE T0NVTUVOVF9TSU5HTEUpIHsKKwkJYm9vbCBzdG9wID0gcnVubW9kZSA9PSBET0NVTUVOVF9TSU5H TEU7CisKKwkJaWYgKHV3aWxkbWF0KHN1YnRlc3RfbmFtZSwgc2luZ2xlX3N1YnRlc3QpKSB7CisJ CQlzaW5nbGVfc3VidGVzdF9mb3VuZCA9IHRydWU7CisKKwkJCWlmIChydW5tb2RlID09IERPQ1VN RU5UX1NJTkdMRSAmJiBjdXJyZW50X3N1YnRlc3RfZG9jdW1lbnRhdGlvbikKKwkJCQlwcmludGYo IiVzIiwgY3VycmVudF9zdWJ0ZXN0X2RvY3VtZW50YXRpb24pOworCQl9IGVsc2UgeworCQkJc3Rv cCA9IHRydWU7CisJCX0KKworCQlmcmVlKGN1cnJlbnRfc3VidGVzdF9kb2N1bWVudGF0aW9uKTsK KwkJY3VycmVudF9zdWJ0ZXN0X2RvY3VtZW50YXRpb24gPSBOVUxMOworCisJCWlmIChzdG9wKQog CQkJcmV0dXJuIGZhbHNlOwotCQllbHNlCi0JCQlydW5fc2luZ2xlX3N1YnRlc3RfZm91bmQgPSB0 cnVlOwogCX0KIAogCWlmIChza2lwX3N1YnRlc3RzX2hlbmNlZm9ydGgpIHsKQEAgLTk4MywxMCAr MTAzMCw1MiBAQCBib29sIF9faWd0X3J1bl9zdWJ0ZXN0KGNvbnN0IGNoYXIgKnN1YnRlc3RfbmFt ZSkKIAlfaWd0X2xvZ19idWZmZXJfcmVzZXQoKTsKIAogCWdldHRpbWUoJnN1YnRlc3RfdGltZSk7 CisKIAlyZXR1cm4gKGluX3N1YnRlc3QgPSBzdWJ0ZXN0X25hbWUpOwogfQogCiAvKioKKyAqIGln dF9kb2N1bWVudF9zdWJ0ZXN0OgorICogQGRvY3VtZW50YXRpb246IGRvY3VtZW50YXRpb24gZm9y IHRoZSBuZXh0IHN1YnRlc3QKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlIGRvY3VtZW50 YXRpb24gc3RyaW5nIGZvciB0aGUgbmV4dCBvY2N1cnJpbmcgc3VidGVzdC4KKyAqLwordm9pZCBp Z3RfZG9jdW1lbnRfc3VidGVzdChjb25zdCBjaGFyICpkb2N1bWVudGF0aW9uKQoreworCWlmIChy dW5tb2RlID09IERPQ1VNRU5UIHx8IHJ1bm1vZGUgPT0gRE9DVU1FTlRfU0lOR0xFKSB7CisJCWZy ZWUoY3VycmVudF9zdWJ0ZXN0X2RvY3VtZW50YXRpb24pOworCQljdXJyZW50X3N1YnRlc3RfZG9j dW1lbnRhdGlvbiA9IHN0cmR1cChkb2N1bWVudGF0aW9uKTsKKwl9Cit9CisKKy8qKgorICogaWd0 X2RvY3VtZW50X3N1YnRlc3RfZjoKKyAqIEBkb2N1bWVudGF0aW9uOiBEb2N1bWVudGF0aW9uIGZv ciB0aGUgbmV4dCBzdWJ0ZXN0CisgKiBALi4uOiBmb3JtYXQgc3RyaW5nIGFuZCBvcHRpb25hbCBh cmd1bWVudHMKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIHNldHMgdGhlIGRvY3VtZW50YXRpb24gc3Ry aW5nIGZvciB0aGUgbmV4dCBvY2N1cnJpbmcgc3VidGVzdC4KKyAqCisgKiBMaWtlIGlndF9kb2N1 bWVudF9zdWJ0ZXN0KCksIGJ1dCBhbHNvIGFjY2VwdHMgYSBwcmludGYgZm9ybWF0CisgKiBzdHJp bmcgaW5zdGVhZCBvZiBhIHN0YXRpYyBzdHJpbmcuCisgKi8KK19fYXR0cmlidXRlX18oKGZvcm1h dChwcmludGYsIDEsIDIpKSkKK3ZvaWQgaWd0X2RvY3VtZW50X3N1YnRlc3RfZihjb25zdCBjaGFy ICpkb2N1bWVudGF0aW9uLCAuLi4pCit7CisJaW50IGVycjsKKwl2YV9saXN0IGFyZ3M7CisKKwlp ZiAocnVubW9kZSA9PSBET0NVTUVOVCB8fCBydW5tb2RlID09IERPQ1VNRU5UX1NJTkdMRSkgewor CQlmcmVlKGN1cnJlbnRfc3VidGVzdF9kb2N1bWVudGF0aW9uKTsKKwkJdmFfc3RhcnQoYXJncywg ZG9jdW1lbnRhdGlvbik7CisJCWVyciA9IHZhc3ByaW50ZigmY3VycmVudF9zdWJ0ZXN0X2RvY3Vt ZW50YXRpb24sIGRvY3VtZW50YXRpb24sIGFyZ3MpOworCQl2YV9lbmQoYXJncyk7CisJCWlmIChl cnIgPCAwKQorCQkJY3VycmVudF9zdWJ0ZXN0X2RvY3VtZW50YXRpb24gPSBOVUxMOworCX0KK30K KworCisvKioKICAqIGlndF9zdWJ0ZXN0X25hbWU6CiAgKgogICogUmV0dXJuczogVGhlIG5hbWUg b2YgdGhlIGN1cnJlbnRseSBleGVjdXRlZCBzdWJ0ZXN0IG9yIE5VTEwgaWYgY2FsbGVkIGZyb20K QEAgLTk5OCwxNCArMTA4NywxNCBAQCBjb25zdCBjaGFyICppZ3Rfc3VidGVzdF9uYW1lKHZvaWQp CiB9CiAKIC8qKgotICogaWd0X29ubHlfbGlzdF9zdWJ0ZXN0czoKKyAqIGlndF9vbmx5X2NvbGxl Y3RfZGF0YToKICAqCi0gKiBSZXR1cm5zOiBSZXR1cm5zIHRydWUgaWYgb25seSBzdWJ0ZXN0IHNo b3VsZCBiZSBsaXN0ZWQgYW5kIGFueSBzZXR1cCBjb2RlCisgKiBSZXR1cm5zOiBSZXR1cm5zIHRy dWUgaWYgdGhlIHJ1bm5pbmcgbW9kZSBpcyBvbmx5IGNvbGxlY3RpbmcgZGF0YSBhbmQgYW55IHNl dHVwIGNvZGUKICAqIG11c3QgYmUgc2tpcHBlZCwgZmFsc2Ugb3RoZXJ3aXNlLgogICovCi1ib29s IGlndF9vbmx5X2xpc3Rfc3VidGVzdHModm9pZCkKK2Jvb2wgaWd0X29ubHlfY29sbGVjdF9kYXRh KHZvaWQpCiB7Ci0JcmV0dXJuIGxpc3Rfc3VidGVzdHM7CisJcmV0dXJuIHJ1bm1vZGUgIT0gRVhF Q1VURV9BTEwgJiYgcnVubW9kZSAhPSBFWEVDVVRFX1NJTkdMRTsKIH0KIAogdm9pZCBfX2lndF9z dWJ0ZXN0X2dyb3VwX3NhdmUoaW50ICpzYXZlKQpAQCAtMTA1OSw3ICsxMTQ4LDcgQEAgdm9pZCBp Z3Rfc2tpcChjb25zdCBjaGFyICpmLCAuLi4pCiAKIAlhc3NlcnQoIXRlc3RfY2hpbGQpOwogCi0J aWYgKCFpZ3Rfb25seV9saXN0X3N1YnRlc3RzKCkpIHsKKwlpZiAoIWlndF9vbmx5X2NvbGxlY3Rf ZGF0YSgpKSB7CiAJCXZhX3N0YXJ0KGFyZ3MsIGYpOwogCQl2cHJpbnRmKGYsIGFyZ3MpOwogCQl2 YV9lbmQoYXJncyk7CkBAIC0xNDQzLDEyICsxNTMyLDEyIEBAIHZvaWQgaWd0X2V4aXQodm9pZCkK IAkJZ19rZXlfZmlsZV9mcmVlKGlndF9rZXlfZmlsZSk7CiAjZW5kaWYKIAotCWlmIChydW5fc2lu Z2xlX3N1YnRlc3QgJiYgIXJ1bl9zaW5nbGVfc3VidGVzdF9mb3VuZCkgewotCQlpZ3Rfd2Fybigi VW5rbm93biBzdWJ0ZXN0OiAlc1xuIiwgcnVuX3NpbmdsZV9zdWJ0ZXN0KTsKKwlpZiAoc2luZ2xl X3N1YnRlc3QgJiYgIXNpbmdsZV9zdWJ0ZXN0X2ZvdW5kKSB7CisJCWlndF93YXJuKCJVbmtub3du IHN1YnRlc3Q6ICVzXG4iLCBzaW5nbGVfc3VidGVzdCk7CiAJCWV4aXQoSUdUX0VYSVRfSU5WQUxJ RCk7CiAJfQogCi0JaWYgKGlndF9vbmx5X2xpc3Rfc3VidGVzdHMoKSkKKwlpZiAoaWd0X29ubHlf Y29sbGVjdF9kYXRhKCkpCiAJCWV4aXQoSUdUX0VYSVRfU1VDQ0VTUyk7CiAKIAkvKiBDYWxsaW5n IHRoaXMgd2l0aG91dCBjYWxsaW5nIG9uZSBvZiB0aGUgYWJvdmUgaXMgYSBmYWlsdXJlICovCkBA IC0yMDEyLDcgKzIxMDEsNyBAQCBib29sIGlndF9ydW5faW5fc2ltdWxhdGlvbih2b2lkKQogICov CiB2b2lkIGlndF9za2lwX29uX3NpbXVsYXRpb24odm9pZCkKIHsKLQlpZiAoaWd0X29ubHlfbGlz dF9zdWJ0ZXN0cygpKQorCWlmIChpZ3Rfb25seV9jb2xsZWN0X2RhdGEoKSkKIAkJcmV0dXJuOwog CiAJaWYgKCFpbl9maXh0dXJlICYmICFpbl9zdWJ0ZXN0KSB7CkBAIC0yMDg3LDcgKzIxNzYsNyBA QCB2b2lkIGlndF92bG9nKGNvbnN0IGNoYXIgKmRvbWFpbiwgZW51bSBpZ3RfbG9nX2xldmVsIGxl dmVsLCBjb25zdCBjaGFyICpmb3JtYXQsCiAJcHJvZ3JhbV9uYW1lID0gY29tbWFuZF9zdHI7CiAj ZW5kaWYKIAotCWlmIChsaXN0X3N1YnRlc3RzICYmIGxldmVsIDw9IElHVF9MT0dfV0FSTikKKwlp ZiAoaWd0X29ubHlfY29sbGVjdF9kYXRhKCkgJiYgbGV2ZWwgPD0gSUdUX0xPR19XQVJOKQogCQly ZXR1cm47CiAKIAlpZiAodmFzcHJpbnRmKCZsaW5lLCBmb3JtYXQsIGFyZ3MpID09IC0xKQpkaWZm IC0tZ2l0IGEvbGliL2lndF9jb3JlLmggYi9saWIvaWd0X2NvcmUuaAppbmRleCAxNjE5YTlkLi4y NzVlNDY3IDEwMDY0NAotLS0gYS9saWIvaWd0X2NvcmUuaAorKysgYi9saWIvaWd0X2NvcmUuaApA QCAtMTk3LDggKzE5NywxMiBAQCBib29sIF9faWd0X3J1bl9zdWJ0ZXN0KGNvbnN0IGNoYXIgKnN1 YnRlc3RfbmFtZSk7CiAjZGVmaW5lIGlndF9zdWJ0ZXN0X2YoZi4uLikgXAogCV9faWd0X3N1YnRl c3RfZihpZ3RfdG9rZW5jYXQoX190bXBjaGFyLCBfX0xJTkVfXyksIGYpCiAKK3ZvaWQgaWd0X2Rv Y3VtZW50X3N1YnRlc3QoY29uc3QgY2hhciAqZG9jdW1lbnRhdGlvbik7CitfX2F0dHJpYnV0ZV9f KChmb3JtYXQocHJpbnRmLCAxLCAyKSkpCit2b2lkIGlndF9kb2N1bWVudF9zdWJ0ZXN0X2YoY29u c3QgY2hhciAqZG9jdW1lbnRhdGlvbiwgLi4uKTsKKwogY29uc3QgY2hhciAqaWd0X3N1YnRlc3Rf bmFtZSh2b2lkKTsKLWJvb2wgaWd0X29ubHlfbGlzdF9zdWJ0ZXN0cyh2b2lkKTsKK2Jvb2wgaWd0 X29ubHlfY29sbGVjdF9kYXRhKHZvaWQpOwogCiB2b2lkIF9faWd0X3N1YnRlc3RfZ3JvdXBfc2F2 ZShpbnQgKik7CiB2b2lkIF9faWd0X3N1YnRlc3RfZ3JvdXBfcmVzdG9yZShpbnQpOwotLSAKMi45 LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=