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 C59916E987 for ; Tue, 25 Feb 2020 16:55:29 +0000 (UTC) From: Arkadiusz Hiler Date: Tue, 25 Feb 2020 18:55:10 +0200 Message-ID: <20200225165510.213878-1-arkadiusz.hiler@intel.com> In-Reply-To: <20200225165246.213606-1-arkadiusz.hiler@intel.com> References: <20200225165246.213606-1-arkadiusz.hiler@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 3/9] lib: Make it possible to abort the whole execution from inside of a test 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 Cc: Petri Latvala List-ID: aWd0X2Fib3J0X29uX2YoKSBpcyBpbnRyb2R1Y2VkIHdoaWNoIGRvZXMgdmVyeSBsaXR0bGUgY2xl YW51cCBhbmQgY2F1c2VzCmEgaGFyZCBleGl0KCkgb2YgdGhlIHRlc3QgYmluYXJ5IHdpdGggYSB1 bmlxdWUgZXhpdCBjb2RlCihJR1RfRVhJVF9BQk9SVCkuCgpUaGUgZXhpdCBjb2RlIGluZm9ybXMg dGhlIG1vbml0b3JpbmcgcHJvY2VzcyB0aGF0IHRoZXJlIGlzIGEgY3JpdGljYWwKaXNzdWUgd2l0 aCB0aGUgdGVzdGluZyBlbnZpcm9ubWVudCB3aGljaCBtYXkgaGF2ZSBhbiBpbXBhY3Qgb24gdGhl CnJlc3VsdHMgaWYgdGVzdGluZyBjb250aW51ZXMuCgp2MjogQWRkIGEgbWV0YV90ZXN0CgpTaWdu ZWQtb2ZmLWJ5OiBBcmthZGl1c3ogSGlsZXIgPGFya2FkaXVzei5oaWxlckBpbnRlbC5jb20+ClJl dmlld2VkLWJ5OiBQZXRyaSBMYXR2YWxhIDxwZXRyaS5sYXR2YWxhQGludGVsLmNvbT4KLS0tCiBs aWIvaWd0X2NvcmUuYyAgICAgICAgfCAgNDggKysrKysrKystCiBsaWIvaWd0X2NvcmUuaCAgICAg ICAgfCAgMjkgKysrKysrCiBsaWIvdGVzdHMvaWd0X2Fib3J0LmMgfCAyMjcgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBsaWIvdGVzdHMvbWVzb24uYnVpbGQgfCAg IDEgKwogdGVzdHMvbWV0YV90ZXN0LmMgICAgIHwgICAzICsKIDUgZmlsZXMgY2hhbmdlZCwgMzA1 IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL3Rl c3RzL2lndF9hYm9ydC5jCgpkaWZmIC0tZ2l0IGEvbGliL2lndF9jb3JlLmMgYi9saWIvaWd0X2Nv cmUuYwppbmRleCA1MTA0MTc5My4uNTg3OTRiZWYgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfY29yZS5j CisrKyBiL2xpYi9pZ3RfY29yZS5jCkBAIC01ODcsNiArNTg3LDcgQEAgc3RhdGljIHZvaWQgZnRy YWNlX2R1bXBfb25fb29wcyhib29sIGVuYWJsZSkKIH0KIAogYm9vbCBpZ3RfZXhpdF9jYWxsZWQ7 Citib29sIGlndF9pc19hYm9ydGluZzsKIHN0YXRpYyB2b2lkIGNvbW1vbl9leGl0X2hhbmRsZXIo aW50IHNpZykKIHsKIAlpZiAoIWlndF9vbmx5X2xpc3Rfc3VidGVzdHMoKSkgewpAQCAtNTk1LDcg KzU5Niw3IEBAIHN0YXRpYyB2b2lkIGNvbW1vbl9leGl0X2hhbmRsZXIoaW50IHNpZykKIAogCS8q IFdoZW4gbm90IGtpbGxlZCBieSBhIHNpZ25hbCBjaGVjayB0aGF0IGlndF9leGl0KCkgaGFzIGJl ZW4gcHJvcGVybHkKIAkgKiBjYWxsZWQuICovCi0JYXNzZXJ0KHNpZyAhPSAwIHx8IGlndF9leGl0 X2NhbGxlZCk7CisJYXNzZXJ0KHNpZyAhPSAwIHx8IGlndF9leGl0X2NhbGxlZCB8fCBpZ3RfaXNf YWJvcnRpbmcpOwogfQogCiBzdGF0aWMgdm9pZCBwcmludF9saW5lX3dyYXBwaW5nKGNvbnN0IGNo YXIgKmluZGVudCwgY29uc3QgY2hhciAqdGV4dCkKQEAgLTE5NDQsNiArMTk0NSw0OCBAQCB2b2lk IF9faWd0X2ZhaWxfYXNzZXJ0KGNvbnN0IGNoYXIgKmRvbWFpbiwgY29uc3QgY2hhciAqZmlsZSwg Y29uc3QgaW50IGxpbmUsCiAJaWd0X2ZhaWwoSUdUX0VYSVRfRkFJTFVSRSk7CiB9CiAKK3N0YXRp YyB2b2lkIGtpbGxfY2hpbGRyZW4odm9pZCkKK3sKKwlmb3IgKGludCBjID0gMDsgYyA8IG51bV90 ZXN0X2NoaWxkcmVuOyBjKyspCisJCWtpbGwodGVzdF9jaGlsZHJlbltjXSwgU0lHS0lMTCk7Cit9 CisKK3ZvaWQgX19pZ3RfYWJvcnQoY29uc3QgY2hhciAqZG9tYWluLCBjb25zdCBjaGFyICpmaWxl LCBjb25zdCBpbnQgbGluZSwKKwkJIGNvbnN0IGNoYXIgKmZ1bmMsIGNvbnN0IGNoYXIgKmV4cHJl c3Npb24sCisJCSBjb25zdCBjaGFyICpmLCAuLi4pCit7CisJdmFfbGlzdCBhcmdzOworCWludCBl cnIgPSBlcnJubzsKKworCWlndF9pc19hYm9ydGluZyA9IHRydWU7CisKKwlpZ3RfbG9nKGRvbWFp biwgSUdUX0xPR19DUklUSUNBTCwKKwkJIlRlc3QgYWJvcnQgaW4gZnVuY3Rpb24gJXMsIGZpbGUg JXM6JWk6XG4iLCBmdW5jLCBmaWxlLAorCQlsaW5lKTsKKwlpZ3RfbG9nKGRvbWFpbiwgSUdUX0xP R19DUklUSUNBTCwgImFib3J0IGNvbmRpdGlvbjogJXNcbiIsIGV4cHJlc3Npb24pOworCWlmIChl cnIpCisJCWlndF9sb2coZG9tYWluLCBJR1RfTE9HX0NSSVRJQ0FMLCAiTGFzdCBlcnJubzogJWks ICVzXG4iLCBlcnIsCisJCQlzdHJlcnJvcihlcnIpKTsKKworCWlmIChmKSB7CisJCXZhX3N0YXJ0 KGFyZ3MsIGYpOworCQlpZ3RfdmxvZyhkb21haW4sIElHVF9MT0dfQ1JJVElDQUwsIGYsIGFyZ3Mp OworCQl2YV9lbmQoYXJncyk7CisJfQorCisJLyoganVzdCB0cnkgb3VyIGJlc3QsIHdlIGFyZSBh Ym9ydGluZyB0aGUgZXhlY3V0aW9uIGFueXdheSAqLworCWtpbGxfY2hpbGRyZW4oKTsKKworCXBy aW50X2JhY2t0cmFjZSgpOworCisJaWYgKHJ1bm5pbmdfdW5kZXJfZ2RiKCkpCisJCWFib3J0KCk7 CisKKwlfaWd0X2xvZ19idWZmZXJfZHVtcCgpOworCisJZXhpdChJR1RfRVhJVF9BQk9SVCk7Cit9 CisKIC8qKgogICogaWd0X2V4aXQ6CiAgKgpAQCAtMTk5Myw4ICsyMDM2LDcgQEAgdm9pZCBpZ3Rf ZXhpdCh2b2lkKQogCQkJIGNvbW1hbmRfc3RyLCBpZ3RfZXhpdGNvZGUpOwogCWlndF9kZWJ1Zygi RXhpdGluZyB3aXRoIHN0YXR1cyBjb2RlICVkXG4iLCBpZ3RfZXhpdGNvZGUpOwogCi0JZm9yIChp bnQgYyA9IDA7IGMgPCBudW1fdGVzdF9jaGlsZHJlbjsgYysrKQotCQlraWxsKHRlc3RfY2hpbGRy ZW5bY10sIFNJR0tJTEwpOworCWtpbGxfY2hpbGRyZW4oKTsKIAlhc3NlcnQoIW51bV90ZXN0X2No aWxkcmVuKTsKIAogCWFzc2VydCh3YWl0cGlkKC0xLCAmdG1wLCBXTk9IQU5HKSA9PSAtMSAmJiBl cnJubyA9PSBFQ0hJTEQpOwpkaWZmIC0tZ2l0IGEvbGliL2lndF9jb3JlLmggYi9saWIvaWd0X2Nv cmUuaAppbmRleCBjMTdhN2JhOC4uYTc5YjQxYWYgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfY29yZS5o CisrKyBiL2xpYi9pZ3RfY29yZS5oCkBAIC0xMjMsNiArMTIzLDE0IEBAIHN0cnVjdCBfR0tleUZp bGUgKmlndF9sb2FkX2lndHJjKHZvaWQpOwogICovCiAjZGVmaW5lIElHVF9FWElUX0ZBSUxVUkUg OTgKIAorLyoqCisgKiBJR1RfRVhJVF9BQk9SVAorICoKKyAqIEV4aXQgc3RhdHVzIGluZGljYXRp bmcgYSBzZXZlcmUgdGVzdC9lbnZpcm9tZW50IGZhaWx1cmUsIGFueSBjb250aW51ZWQKKyAqIHRl c3RpbmcgcGFzdCB0aGlzIHBvaW50IGNhbiB5ZWlsZCB1bmV4cGVjdGVkIHJlYXN1bHRzIGFuZCBp cyBub3QgcmVjb21tZW5kZWQKKyAqLworI2RlZmluZSBJR1RfRVhJVF9BQk9SVCAxMTIKKwogYm9v bCBfX2lndF9maXh0dXJlKHZvaWQpOwogdm9pZCBfX2lndF9maXh0dXJlX2NvbXBsZXRlKHZvaWQp Owogdm9pZCBfX2lndF9maXh0dXJlX2VuZCh2b2lkKSBfX2F0dHJpYnV0ZV9fKChub3JldHVybikp OwpAQCAtNDk5LDYgKzUwNywxMSBAQCB2b2lkIF9faWd0X2ZhaWxfYXNzZXJ0KGNvbnN0IGNoYXIg KmRvbWFpbiwgY29uc3QgY2hhciAqZmlsZSwKIAkJICAgICAgIGNvbnN0IGludCBsaW5lLCBjb25z dCBjaGFyICpmdW5jLCBjb25zdCBjaGFyICphc3NlcnRpb24sCiAJCSAgICAgICBjb25zdCBjaGFy ICpmb3JtYXQsIC4uLikKIAlfX2F0dHJpYnV0ZV9fKChub3JldHVybikpOworX19hdHRyaWJ1dGVf XygoZm9ybWF0KHByaW50ZiwgNiwgNykpKQordm9pZCBfX2lndF9hYm9ydChjb25zdCBjaGFyICpk b21haW4sIGNvbnN0IGNoYXIgKmZpbGUsIGNvbnN0IGludCBsaW5lLAorCQkgY29uc3QgY2hhciAq ZnVuYywgY29uc3QgY2hhciAqZXhwcmVzc2lvbiwKKwkJIGNvbnN0IGNoYXIgKmYsIC4uLikKKwlf X2F0dHJpYnV0ZV9fKChub3JldHVybikpOwogdm9pZCBpZ3RfZXhpdCh2b2lkKSBfX2F0dHJpYnV0 ZV9fKChub3JldHVybikpOwogdm9pZCBpZ3RfZmF0YWxfZXJyb3Iodm9pZCkgX19hdHRyaWJ1dGVf Xygobm9yZXR1cm4pKTsKIApAQCAtMTAyNyw2ICsxMDQwLDIyIEBAIHZvaWQgaWd0X2Rlc2NyaWJl X2YoY29uc3QgY2hhciAqZm10LCAuLi4pOwogCWVsc2UgaWd0X2RlYnVnKCJUZXN0IHJlcXVpcmVt ZW50IHBhc3NlZDogISglcylcbiIsICNleHByKTsgXAogfSB3aGlsZSAoMCkKIAorCisvKioKKyAq IGlndF9hYm9ydF9vbl9mOgorICogQGV4cHI6IGNvbmRpdGlvbiB0byB0ZXN0CisgKiBALi4uOiBm b3JtYXQgc3RyaW5nIGFuZCBvcHRpb25hbCBhcmd1bWVudHMKKyAqCisgKiBBYm9ydHMgY3VycmVu dCBleGVjdXRpb24gaWYgYSBjb25kaXRpb24gaXMgbWV0LgorICoKKyAqIFNob3VsZCBiZSB1c2Vk IG9ubHkgd2hlbiB0aGVyZSBpcyBhIHNlcmlvdXMgaXNzdWUgd2l0aCB0aGUgZW52aXJvbm1lbnQg YW5kCisgKiBhbnkgZnVydGhlciB0ZXN0aW5nIG1heSBiZSBhZmZlY3RlZCBieSBpdC4KKyAqLwor I2RlZmluZSBpZ3RfYWJvcnRfb25fZihleHByLCBmLi4uKSBcCisJZG8geyBpZiAoKGV4cHIpKSBc CisJCV9faWd0X2Fib3J0KElHVF9MT0dfRE9NQUlOLCBfX0ZJTEVfXywgX19MSU5FX18sIF9fZnVu Y19fLCAjZXhwciAsIGYpOyBcCisJfSB3aGlsZSAoMCkKKwogLyogZm9yayBzdXBwb3J0IGNvZGUg Ki8KIGJvb2wgX19pZ3RfZm9yayh2b2lkKTsKIApkaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL2lndF9h Ym9ydC5jIGIvbGliL3Rlc3RzL2lndF9hYm9ydC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwLi41M2I3ZDRmZAotLS0gL2Rldi9udWxsCisrKyBiL2xpYi90ZXN0cy9pZ3RfYWJv cnQuYwpAQCAtMCwwICsxLDIyNyBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDIwIEludGVsIENv cnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2Fy ZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisg KiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcg d2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt ZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNv cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQor ICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dp bmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp cyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNo YWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg dGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElT IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwg SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC SUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO R0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBI T0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFC SUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lT RSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09G VFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgor ICoKKyAqLworCisjaW5jbHVkZSAiaWd0X2NvcmUuaCIKKyNpbmNsdWRlICJkcm10ZXN0LmgiCisK KyNpbmNsdWRlICJpZ3RfdGVzdHNfY29tbW9uLmgiCisKK2NoYXIgdGVzdFtdID0gInRlc3QiOwor Y2hhciAqZmFrZV9hcmd2W10gPSB7IHRlc3QgfTsKK2ludCBmYWtlX2FyZ2MgPSBBUlJBWV9TSVpF KGZha2VfYXJndik7CisKK3N0YXRpYyB2b2lkIGZha2Vfc2ltcGxlX3Rlc3Qodm9pZCkKK3sKKwlp Z3Rfc2ltcGxlX2luaXQoZmFrZV9hcmdjLCBmYWtlX2FyZ3YpOworCisJaWd0X2Fib3J0X29uX2Yo dHJ1ZSwgIkknbSBvdXQhXG4iKTsKKworCWV4aXQoMCk7IC8qIHVucmVhY2hhYmxlICovCit9CisK K3N0YXRpYyB2b2lkIGZha2VfZml4dHVyZV90ZXN0KHZvaWQpCit7CisJaWd0X3N1YnRlc3RfaW5p dChmYWtlX2FyZ2MsIGZha2VfYXJndik7CisKKwlpZ3RfZml4dHVyZSB7CisJCWlndF9hYm9ydF9v bl9mKHRydWUsICJJJ20gb3V0IVxuIik7CisJfQorCisJZXhpdCgwKTsgLyogdW5yZWFjaGFibGUg Ki8KK30KKworc3RhdGljIHZvaWQgZmFrZV9vdXRzaWRlX2ZpeHR1cmVfdGVzdCh2b2lkKQorewor CWlndF9zdWJ0ZXN0X2luaXQoZmFrZV9hcmdjLCBmYWtlX2FyZ3YpOworCisJaWd0X2Fib3J0X29u X2YodHJ1ZSwgIkknbSBvdXQhXG4iKTsKKworCWV4aXQoMCk7IC8qIHVucmVhY2hhYmxlICovCit9 CisKK3N0YXRpYyB2b2lkIGZha2Vfc3VidGVzdF90ZXN0KHZvaWQpCit7CisJaWd0X3N1YnRlc3Rf aW5pdChmYWtlX2FyZ2MsIGZha2VfYXJndik7CisKKwlpZ3Rfc3VidGVzdCgiQSIpCisJCTsKKwor CWlndF9zdWJ0ZXN0KCJCIikKKwkJaWd0X2Fib3J0X29uX2YodHJ1ZSwgIkknbSBvdXQhXG4iKTsK KworCWlndF9zdWJ0ZXN0KCJDIikKKwkJZXhpdCgwKTsgLyogdW5yZWFjaGFibGUgKi8KKworCWV4 aXQoMCk7IC8qIHVucmVhY2hhYmxlICovCit9CisKK3N0YXRpYyB2b2lkIGZha2VfZHluYW1pY190 ZXN0KHZvaWQpCit7CisJaWd0X3N1YnRlc3RfaW5pdChmYWtlX2FyZ2MsIGZha2VfYXJndik7CisK KwlpZ3Rfc3VidGVzdF93aXRoX2R5bmFtaWMoIkEiKSB7CisJCWlndF9keW5hbWljKCJBQSIpCisJ CQk7CisJCWlndF9keW5hbWljKCJBQiIpCisJCQlpZ3RfYWJvcnRfb25fZih0cnVlLCAiSSdtIG91 dCFcbiIpOworCisJCWlndF9keW5hbWljKCJBQyIpCisJCQlleGl0KDApOyAvKiB1bnJlYWNoYWJs ZSAqLworCisJfQorCisJaWd0X3N1YnRlc3QoIkIiKQorCQlleGl0KDApOyAvKiB1bnJlYWNoYWJs ZSAqLworCisJZXhpdCgwKTsgLyogdW5yZWFjaGFibGUgKi8KK30KKworc3RhdGljIHZvaWQgZmFr ZV9vdXRzaWRlX2R5bmFtaWNfdGVzdCh2b2lkKQoreworCWlndF9zdWJ0ZXN0X2luaXQoZmFrZV9h cmdjLCBmYWtlX2FyZ3YpOworCisJaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljKCJBIikgeworCQlp Z3RfZHluYW1pYygiQUEiKQorCQkJOworCisJCWlndF9hYm9ydF9vbl9mKHRydWUsICJJJ20gb3V0 IVxuIik7CisKKwkJaWd0X2R5bmFtaWMoIkFCIikKKwkJCWV4aXQoMCk7IC8qIHVucmVhY2hhYmxl ICovCisKKwkJaWd0X2R5bmFtaWMoIkFDIikKKwkJCWV4aXQoMCk7IC8qIHVucmVhY2hhYmxlICov CisKKwl9CisKKwlpZ3Rfc3VidGVzdCgiQiIpCisJCWV4aXQoMCk7IC8qIHVucmVhY2hhYmxlICov CisKKwlleGl0KDApOyAvKiB1bnJlYWNoYWJsZSAqLworfQorCitpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCit7CisJaW50IHN0YXR1czsKKwlwaWRfdCBwaWQ7CisKKwkvKiBtYWtlIHN1 cmUgdGhhdCB3ZSBsb2cgdGhlIG1lc3NhZ2UgYW5kIGNhbiBhYm9ydCBmcm9tIGEgc2ltcGxlIHRl c3QqLyB7CisJCXN0YXRpYyBjaGFyIGVycls0MDk2XTsKKwkJaW50IGVycmZkOworCisJCXBpZCA9 IGRvX2ZvcmtfYmdfd2l0aF9waXBlcyhmYWtlX3NpbXBsZV90ZXN0LCBOVUxMLCAmZXJyZmQpOwor CisJCXJlYWRfd2hvbGVfcGlwZShlcnJmZCwgZXJyLCBzaXplb2YoZXJyKSk7CisKKwkJaW50ZXJu YWxfYXNzZXJ0KHN0cnN0cihlcnIsICJDUklUSUNBTDogVGVzdCBhYm9ydCIpKTsKKwkJaW50ZXJu YWxfYXNzZXJ0KHN0cnN0cihlcnIsICJJJ20gb3V0ISIpKTsKKworCQlpbnRlcm5hbF9hc3NlcnQo c2FmZV93YWl0KHBpZCwgJnN0YXR1cykgIT0gLTEpOworCQlpbnRlcm5hbF9hc3NlcnRfd2V4aXRl ZChzdGF0dXMsIElHVF9FWElUX0FCT1JUKTsKKwl9CisKKwkvKiBtYWtlIHN1cmUgdGhhdCB3ZSBj YW4gYWJvcnQgZnJvbSBhIGZpeHR1cmUgKi8geworCQlwaWQgPSBkb19mb3JrX2JnX3dpdGhfcGlw ZXMoZmFrZV9maXh0dXJlX3Rlc3QsIE5VTEwsIE5VTEwpOworCQlpbnRlcm5hbF9hc3NlcnQoc2Fm ZV93YWl0KHBpZCwgJnN0YXR1cykgIT0gLTEpOworCQlpbnRlcm5hbF9hc3NlcnRfd2V4aXRlZChz dGF0dXMsIElHVF9FWElUX0FCT1JUKTsKKwl9CisKKwkvKiBtYWtlIHN1cmUgdGhhdCB3ZSBjYW4g YWJvcnQgZnJvbSBvdXRzaWRlIGZpeHR1cmUvc3VidGVzdCAqLyB7CisJCXBpZCA9IGRvX2Zvcmtf Ymdfd2l0aF9waXBlcyhmYWtlX291dHNpZGVfZml4dHVyZV90ZXN0LCBOVUxMLCBOVUxMKTsKKwkJ aW50ZXJuYWxfYXNzZXJ0KHNhZmVfd2FpdChwaWQsICZzdGF0dXMpICE9IC0xKTsKKwkJaW50ZXJu YWxfYXNzZXJ0X3dleGl0ZWQoc3RhdHVzLCBJR1RfRVhJVF9BQk9SVCk7CisJfQorCisJLyogbWFr ZSBzdXJlIHdlIGFib3J0IGR1cmluZyBCIGFuZCBkb24ndCBzZWUgQidzIGVuZC9DIHN0YXJ0ICov IHsKKwkJc3RhdGljIGNoYXIgb3V0WzQwOTZdOworCQlpbnQgb3V0ZmQ7CisKKwkJcGlkID0gZG9f Zm9ya19iZ193aXRoX3BpcGVzKGZha2Vfc3VidGVzdF90ZXN0LCAmb3V0ZmQsIE5VTEwpOworCisJ CXJlYWRfd2hvbGVfcGlwZShvdXRmZCwgb3V0LCBzaXplb2Yob3V0KSk7CisKKwkJaW50ZXJuYWxf YXNzZXJ0KHNhZmVfd2FpdChwaWQsICZzdGF0dXMpICE9IC0xKTsKKwkJaW50ZXJuYWxfYXNzZXJ0 X3dleGl0ZWQoc3RhdHVzLCBJR1RfRVhJVF9BQk9SVCk7CisKKwkJaW50ZXJuYWxfYXNzZXJ0KHN0 cnN0cihvdXQsICJTdGFydGluZyBzdWJ0ZXN0OiBBIikpOworCQlpbnRlcm5hbF9hc3NlcnQoc3Ry c3RyKG91dCwgIlN1YnRlc3QgQToiKSk7CisKKwkJaW50ZXJuYWxfYXNzZXJ0KHN0cnN0cihvdXQs ICJTdGFydGluZyBzdWJ0ZXN0OiBCIikpOworCQlpbnRlcm5hbF9hc3NlcnQoIXN0cnN0cihvdXQs ICJTdWJ0ZXN0IEI6IikpOworCisJCWludGVybmFsX2Fzc2VydCghc3Ryc3RyKG91dCwgIlN0YXJ0 aW5nIHN1YnRlc3Q6IEMiKSk7CisKKwkJY2xvc2Uob3V0ZmQpOworCX0KKworCS8qIG1ha2Ugc3Vy ZSB3ZSBhYm9ydCBkdXJpbmcgQUIgYW5kIGRvbid0IHNlZSBBQy9CICovIHsKKwkJc3RhdGljIGNo YXIgb3V0WzQwOTZdOworCQlpbnQgb3V0ZmQ7CisKKwkJcGlkID0gZG9fZm9ya19iZ193aXRoX3Bp cGVzKGZha2VfZHluYW1pY190ZXN0LCAmb3V0ZmQsIE5VTEwpOworCisJCXJlYWRfd2hvbGVfcGlw ZShvdXRmZCwgb3V0LCBzaXplb2Yob3V0KSk7CisKKwkJaW50ZXJuYWxfYXNzZXJ0KHNhZmVfd2Fp dChwaWQsICZzdGF0dXMpICE9IC0xKTsKKwkJaW50ZXJuYWxfYXNzZXJ0X3dleGl0ZWQoc3RhdHVz LCBJR1RfRVhJVF9BQk9SVCk7CisKKwkJaW50ZXJuYWxfYXNzZXJ0KHN0cnN0cihvdXQsICJTdGFy dGluZyBzdWJ0ZXN0OiBBIikpOworCQlpbnRlcm5hbF9hc3NlcnQoc3Ryc3RyKG91dCwgIlN0YXJ0 aW5nIGR5bmFtaWMgc3VidGVzdDogQUEiKSk7CisJCWludGVybmFsX2Fzc2VydChzdHJzdHIob3V0 LCAiRHluYW1pYyBzdWJ0ZXN0IEFBOiIpKTsKKworCQlpbnRlcm5hbF9hc3NlcnQoc3Ryc3RyKG91 dCwgIlN0YXJ0aW5nIGR5bmFtaWMgc3VidGVzdDogQUIiKSk7CisJCWludGVybmFsX2Fzc2VydCgh c3Ryc3RyKG91dCwgIkR5bmFtaWMgc3VidGVzdCBBQjoiKSk7CisKKwkJaW50ZXJuYWxfYXNzZXJ0 KCFzdHJzdHIob3V0LCAiU3RhcnRpbmcgc3VidGVzdDogQiIpKTsKKworCQljbG9zZShvdXRmZCk7 CisKKwl9CisKKwkvKiBtYWtlIHN1cmUgd2UgYWJvcnQgYmV0d2VlbiBBQSBhbmQgQUIgKi8gewor CQlzdGF0aWMgY2hhciBvdXRbNDA5Nl07CisJCWludCBvdXRmZDsKKworCQlwaWQgPSBkb19mb3Jr X2JnX3dpdGhfcGlwZXMoZmFrZV9vdXRzaWRlX2R5bmFtaWNfdGVzdCwgJm91dGZkLCBOVUxMKTsK KworCQlyZWFkX3dob2xlX3BpcGUob3V0ZmQsIG91dCwgc2l6ZW9mKG91dCkpOworCisJCWludGVy bmFsX2Fzc2VydChzYWZlX3dhaXQocGlkLCAmc3RhdHVzKSAhPSAtMSk7CisJCWludGVybmFsX2Fz c2VydF93ZXhpdGVkKHN0YXR1cywgSUdUX0VYSVRfQUJPUlQpOworCisJCWludGVybmFsX2Fzc2Vy dChzdHJzdHIob3V0LCAiU3RhcnRpbmcgc3VidGVzdDogQSIpKTsKKwkJaW50ZXJuYWxfYXNzZXJ0 KHN0cnN0cihvdXQsICJTdGFydGluZyBkeW5hbWljIHN1YnRlc3Q6IEFBIikpOworCQlpbnRlcm5h bF9hc3NlcnQoc3Ryc3RyKG91dCwgIkR5bmFtaWMgc3VidGVzdCBBQToiKSk7CisKKwkJaW50ZXJu YWxfYXNzZXJ0KCFzdHJzdHIob3V0LCAiU3RhcnRpbmcgZHluYW1pYyBzdWJ0ZXN0OiBBQiIpKTsK KwkJaW50ZXJuYWxfYXNzZXJ0KCFzdHJzdHIob3V0LCAiRHluYW1pYyBzdWJ0ZXN0IEFCOiIpKTsK KworCQlpbnRlcm5hbF9hc3NlcnQoIXN0cnN0cihvdXQsICJTdGFydGluZyBzdWJ0ZXN0OiBCIikp OworCisJCWNsb3NlKG91dGZkKTsKKworCX0KKworCXJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEv bGliL3Rlc3RzL21lc29uLmJ1aWxkIGIvbGliL3Rlc3RzL21lc29uLmJ1aWxkCmluZGV4IDZjZDhj YjBlLi4yMmFhMTlkYSAxMDA2NDQKLS0tIGEvbGliL3Rlc3RzL21lc29uLmJ1aWxkCisrKyBiL2xp Yi90ZXN0cy9tZXNvbi5idWlsZApAQCAtMSw1ICsxLDYgQEAKIGxpYl90ZXN0cyA9IFsKIAknaWd0 X2Fzc2VydCcsCisJJ2lndF9hYm9ydCcsCiAJJ2lndF9jYW5fZmFpbCcsCiAJJ2lndF9jYW5fZmFp bF9zaW1wbGUnLAogCSdpZ3RfY29uZmxpY3RpbmdfYXJncycsCmRpZmYgLS1naXQgYS90ZXN0cy9t ZXRhX3Rlc3QuYyBiL3Rlc3RzL21ldGFfdGVzdC5jCmluZGV4IGE2N2I0YzVlLi5jMzc2MTBjNyAx MDA2NDQKLS0tIGEvdGVzdHMvbWV0YV90ZXN0LmMKKysrIGIvdGVzdHMvbWV0YV90ZXN0LmMKQEAg LTE0OSw2ICsxNDksOSBAQCBpZ3RfbWFpbgogCWlndF9zdWJ0ZXN0KCJwaWdsaXQtdGltZW91dCIp CiAJCXRlc3RfcGlnbGl0X3RpbWVvdXQoKTsKIAorCWlndF9zdWJ0ZXN0KCJhYm9ydCIpCisJCWln dF9hYm9ydF9vbl9mKHRydWUsICJvam9qXG4iKTsKKwogCWlndF9zdWJ0ZXN0KCJnZW5lcmF0ZS1w YW5pYyIpCiAJCXRlc3RfcGFuaWMoKTsKIH0KLS0gCjIuMjQuMQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRl dkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==