From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27628 invoked by alias); 2 Oct 2009 17:37:24 -0000 Received: (qmail 27617 invoked by uid 22791); 2 Oct 2009 17:37:23 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail-bw0-f208.google.com (HELO mail-bw0-f208.google.com) (209.85.218.208) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 02 Oct 2009 17:37:17 +0000 Received: by bwz4 with SMTP id 4so1239862bwz.24 for ; Fri, 02 Oct 2009 10:37:14 -0700 (PDT) MIME-Version: 1.0 Received: by 10.103.50.28 with SMTP id c28mr1135660muk.17.1254505034142; Fri, 02 Oct 2009 10:37:14 -0700 (PDT) Date: Fri, 02 Oct 2009 17:37:00 -0000 Message-ID: <8ba6bed40910021037q16276bb7w83ec3a5f20e2cbd1@mail.gmail.com> Subject: [patch/rfc] mi interpreter-complete enh req 8058. From: Matt Rice To: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=0016e65ae212edd5540474f7369b X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-10/txt/msg00060.txt.bz2 --0016e65ae212edd5540474f7369b Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1651 Attached is a patch i've ported from Apple's gdb... it implements a tab-completion like function for MI http://sourceware.org/bugzilla/show_bug.cgi?id=8058 I figured I would post a basic port of the patch for discussion, before doing to much to it. there are some things I don't like.... There is no way to know why interp_complete is returning 0: does the interpreter have a complete_proc function, or did the complete_proc function fail. I suppose we could return 0 or -1... it only implements complete_proc for the console interpreter, why then 'interpreter-complete' if only the console interpreter implements it? it has arbitrary limits of 200 completions which has never really been a part of the gnu credo: one idea is to introduce a limit argument to the mi command, but that brings up the idea of bringing in a starting point for resuming completion, and getting multiple batches without some form of a continuation it'd have to redo the completion each batch, it seems difficult/impossible to invalidate the completion e.g. if loading/completing symbols so maybe we should forgo the batching but add the limit to the mi command? I also notice it doesn't implement the all? argument that he mentioned in the bug report. also need to add a -list-features thing... adding arguments and things obviously would break compatibility with their gdb, is this an issue? let me know if you guys have any opinions on these or any other issues.... -interpreter-complete console "b ma" ^done,completions=[c="main",c="malloc",c="malloc@plt"] (gdb) -interpreter-complete console "b ma" 1 ^done,completions=[c="backtrace",c="break",c="bt"] (gdb) --0016e65ae212edd5540474f7369b Content-Type: application/octet-stream; name="0001-Add-interpreter-complete-mi-function.patch" Content-Disposition: attachment; filename="0001-Add-interpreter-complete-mi-function.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g0b5tj0u0 Content-length: 12644 RnJvbSAzZGZmMGZmYzhmMmJlYmU1OWQ0NGE0OTZmOGU4NjRlMjM0MTUxNDU3 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0IFJpY2UgPHJh dG1pY2VAZ21haWwuY29tPgpEYXRlOiBGcmksIDIgT2N0IDIwMDkgMDg6MDY6 NTIgLTA3MDAKU3ViamVjdDogW1BBVENIXSBBZGQgaW50ZXJwcmV0ZXItY29t cGxldGUgbWkgZnVuY3Rpb24uCgoyMDA5LTEwLTAyICBNYXR0IFJpY2UgIDxy YXRtaWNlQGdtYWlsLmNvbT4KCSAgICBKYXNvbiBNb2xlbmRhICA8am1vbGVu ZGFAYXBwbGUuY29tPgoJICAgIEppbSBJbmdoYW0gIDxqaW5naGFtQGFwcGxl LmNvbT4KCglQUiBnZGIvODA1OAoJKiBjbGkvY2xpLWNtZHMuYyAoY2xpX2lu dGVycHJldGVyX2NvbXBsZXRlKTogTmV3IGZ1bmN0aW9uLgoJKGNvbXBsZXRl X2NvbW1hbmQpOiBDaGFuZ2UgdG8gdXNlIENhbGwgY2xpX2ludGVycHJldGVy X2NvbXBsZXRlLgoJKiBjbGkvY2xpLWNtZHMuaDogRGVjbGFyZSBjbGlfaW50 ZXJwcmV0ZXJfY29tcGxldGUuCgkqIGNsaS9jbGktaW50ZXJwLmMgKF9pbml0 aWFsaXplX2NsaV9pbnRlcnApOiBBZGQKCWNsaV9pbnRlcnByZXRlcl9jb21w bGV0ZSB0byBpbnRlcnBfcHJvY3MuCgkqIGludGVycHMuYyAoaW50ZXJwX2Nv bXBsZXRlKTogTmV3IGZ1bmN0aW9uLgoJKiBpbnRlcnBzLmg6IERlY2xhcmUg aW50ZXJwX2NvbXBsZXRlLCBpbnRlcnBfY29tcGxldGVfZnR5cGUgYW5kCglj b21wbGV0ZV9wcm9jLgoJKiBtaS9taS1jbWRzLmMgKG1pX2NtZHMpOiBBZGQg aW50ZXJwcmV0ZXItY29tcGxldGUgTUkgY29tbWFuZC4KCSogbWkvbWktY21k cy5oOiBEZWNsYXJlIG1pX2NtZF9pbnRlcnByZXRlcl9jb21wbGV0ZS4KCSog bWkvbWktaW50ZXJwLmMgKG1pX2NtZF9pbnRlcnByZXRlcl9jb21wbGV0ZSk6 IEFkZAoJaW50ZXJwcmV0ZXItY29tcGxldGUgTUkgY29tbWFuZCBpbXBsZW1l bnRhdGlvbi4KLS0tCiBnZGIvY2xpL2NsaS1jbWRzLmMgICB8ICAgMzcgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogZ2RiL2NsaS9j bGktY21kcy5oICAgfCAgICA0ICsrKysKIGdkYi9jbGkvY2xpLWludGVycC5j IHwgICAgNSArKysrLQogZ2RiL2ludGVycHMuYyAgICAgICAgfCAgIDEzICsr KysrKysrKysrKysKIGdkYi9pbnRlcnBzLmggICAgICAgIHwgICAgOCArKysr KysrKwogZ2RiL21pL21pLWNtZHMuYyAgICAgfCAgICAxICsKIGdkYi9taS9t aS1jbWRzLmggICAgIHwgICAgMSArCiBnZGIvbWkvbWktaW50ZXJwLmMgICB8 ICAgNDQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKIDggZmlsZXMgY2hhbmdlZCwgMTEwIGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2RiL2NsaS9jbGktY21kcy5j IGIvZ2RiL2NsaS9jbGktY21kcy5jCmluZGV4IGNlN2MyYTYuLjQ3MzRmYzUg MTAwNjQ0Ci0tLSBhL2dkYi9jbGkvY2xpLWNtZHMuYworKysgYi9nZGIvY2xp L2NsaS1jbWRzLmMKQEAgLTIzOCwxNCArMjM4LDIxIEBAIGNvbXBsZXRlX2Nv bW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQogewogICBpbnQgaTsK ICAgaW50IGFyZ3BvaW50OwotICBjaGFyICoqY29tcGxldGlvbnMsICpwb2lu dCwgKmFyZ19wcmVmaXg7CiAKICAgZG9udF9yZXBlYXQgKCk7CiAKICAgaWYg KGFyZyA9PSBOVUxMKQogICAgIGFyZyA9ICIiOwogICBhcmdwb2ludCA9IHN0 cmxlbiAoYXJnKTsKKyAgY2xpX2ludGVycHJldGVyX2NvbXBsZXRlIChOVUxM LCBhcmcsIGFyZywgYXJncG9pbnQsIC0xKTsKK30KIAoraW50CitjbGlfaW50 ZXJwcmV0ZXJfY29tcGxldGUgKHZvaWQgKmRhdGEsIGNoYXIgKmFyZywgY2hh ciAqY29tbWFuZF9idWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg IGludCBhcmdwb2ludCwgaW50IGxpbWl0KQoreworICBjaGFyICoqY29tcGxl dGlvbnMsICpwb2ludCwgKmFyZ19wcmVmaXg7CisgIHN0cnVjdCBjbGVhbnVw ICpvbGRfY2hhaW47CiAgIC8qIGNvbXBsZXRlX2xpbmUgYXNzdW1lcyB0aGF0 IGl0cyBmaXJzdCBhcmd1bWVudCBpcyBzb21ld2hlcmUgd2l0aGluLAogICAg ICBhbmQgZXhjZXB0IGZvciBmaWxlbmFtZXMgYXQgdGhlIGJlZ2lubmluZyBv ZiwgdGhlIHdvcmQgdG8gYmUgY29tcGxldGVkLgogICAgICBUaGUgZm9sbG93 aW5nIGNydWRlIGltaXRhdGlvbiBvZiByZWFkbGluZSdzIHdvcmQtYnJlYWtp bmcgdHJpZXMgdG8KQEAgLTI1NCw3ICsyNjEsNyBAQCBjb21wbGV0ZV9jb21t YW5kIChjaGFyICphcmcsIGludCBmcm9tX3R0eSkKICAgd2hpbGUgKHBvaW50 ID4gYXJnKQogICAgIHsKICAgICAgIGlmIChzdHJjaHIgKHJsX2NvbXBsZXRl cl93b3JkX2JyZWFrX2NoYXJhY3RlcnMsIHBvaW50Wy0xXSkgIT0gMCkKLSAg ICAgICAgYnJlYWs7CisJYnJlYWs7CiAgICAgICBwb2ludC0tOwogICAgIH0K IApAQCAtMjYzLDEwICsyNzAsMTIgQEAgY29tcGxldGVfY29tbWFuZCAoY2hh ciAqYXJnLCBpbnQgZnJvbV90dHkpCiAgIGFyZ19wcmVmaXhbcG9pbnQgLSBh cmddID0gMDsKIAogICBjb21wbGV0aW9ucyA9IGNvbXBsZXRlX2xpbmUgKHBv aW50LCBhcmcsIGFyZ3BvaW50KTsKKyAgb2xkX2NoYWluID0gbWFrZV9jbGVh bnVwX3VpX291dF9saXN0X2JlZ2luX2VuZCAodWlvdXQsICJjb21wbGV0aW9u cyIpOwogCiAgIGlmIChjb21wbGV0aW9ucykKICAgICB7CiAgICAgICBpbnQg aXRlbSwgc2l6ZTsKKyAgICAgIGludCBpdGVtc19wcmludGVkID0gMDsKIAog ICAgICAgZm9yIChzaXplID0gMDsgY29tcGxldGlvbnNbc2l6ZV07ICsrc2l6 ZSkKIAk7CkBAIC0yNzgsNiArMjg3LDExIEBAIGNvbXBsZXRlX2NvbW1hbmQg KGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQogICAgICAgd2hpbGUgKGl0ZW0g PCBzaXplKQogCXsKIAkgIGludCBuZXh0X2l0ZW07CisKKwkgIHVpX291dF9m aWVsZF9zdHJpbmcgKHVpb3V0LCAiYyIsIGNvbXBsZXRpb25zW2l0ZW1dKTsK KwkgIHVpX291dF90ZXh0ICh1aW91dCwgIlxuIik7CisJICBpdGVtc19wcmlu dGVkKys7CisKIAkgIHByaW50Zl91bmZpbHRlcmVkICgiJXMlc1xuIiwgYXJn X3ByZWZpeCwgY29tcGxldGlvbnNbaXRlbV0pOwogCSAgbmV4dF9pdGVtID0g aXRlbSArIDE7CiAJICB3aGlsZSAobmV4dF9pdGVtIDwgc2l6ZQpAQCAtMjg5 LDEwICszMDMsMjkgQEAgY29tcGxldGVfY29tbWFuZCAoY2hhciAqYXJnLCBp bnQgZnJvbV90dHkpCiAKIAkgIHhmcmVlIChjb21wbGV0aW9uc1tpdGVtXSk7 CiAJICBpdGVtID0gbmV4dF9pdGVtOworCisJICBpZiAobGltaXQgIT0gLTEg JiYgaXRlbXNfcHJpbnRlZCA+PSBsaW1pdCkKKwkgICAgeworCSAgICAgIGlu dCBpOworCisJICAgICAgZm9yIChpID0gaXRlbTsgaSA8IHNpemUgJiYgY29t cGxldGlvbnNbaV07IGkrKykKKwkJeworCQkgIHhmcmVlIChjb21wbGV0aW9u c1tpXSk7CisJCSAgY29tcGxldGlvbnNbaV0gPSBOVUxMOworCQl9CisKKwkg ICAgICBzaXplID0gaXRlbTsKKwkgICAgICBpZiAodWlfb3V0X2lzX21pX2xp a2VfcCAodWlvdXQpKQorCQl1aV9vdXRfZmllbGRfc3RyaW5nICh1aW91dCwg ImxpbWl0ZWQiLCAidHJ1ZSIpOworCSAgICAgIGJyZWFrOworCSAgICB9CiAJ fQogCiAgICAgICB4ZnJlZSAoY29tcGxldGlvbnMpOwogICAgIH0KKworICBk b19jbGVhbnVwcyAob2xkX2NoYWluKTsKKyAgcmV0dXJuIDE7CiB9CiAKIGlu dApkaWZmIC0tZ2l0IGEvZ2RiL2NsaS9jbGktY21kcy5oIGIvZ2RiL2NsaS9j bGktY21kcy5oCmluZGV4IDMyNjBmZTguLmExM2I2OGYgMTAwNjQ0Ci0tLSBh L2dkYi9jbGkvY2xpLWNtZHMuaAorKysgYi9nZGIvY2xpL2NsaS1jbWRzLmgK QEAgLTEyMyw2ICsxMjMsMTAgQEAgZXh0ZXJuIHZvaWQgcXVpdF9jb21tYW5k IChjaGFyICosIGludCk7CiAKIGV4dGVybiB2b2lkIHNvdXJjZV9zY3JpcHQg KGNoYXIgKiwgaW50KTsKIAorLyogRXhwb3J0ZWQgdG8gY2xpLWludGVycC5j ICovCisKK2V4dGVybiBpbnQgY2xpX2ludGVycHJldGVyX2NvbXBsZXRlICh2 b2lkICosIGNoYXIgKiwgY2hhciAqLCBpbnQsIGludCk7CisKIC8qIFVzZWQg ZXZlcnl3aGVyZSB3aGVuZXZlciBhdCBsZWFzdCBvbmUgcGFyYW1ldGVyIGlz IHJlcXVpcmVkIGFuZAogICBub25lIGlzIHNwZWNpZmllZC4gKi8KIApkaWZm IC0tZ2l0IGEvZ2RiL2NsaS9jbGktaW50ZXJwLmMgYi9nZGIvY2xpL2NsaS1p bnRlcnAuYwppbmRleCA5MTA5MmVkLi5jZTMyNjQ4IDEwMDY0NAotLS0gYS9n ZGIvY2xpL2NsaS1pbnRlcnAuYworKysgYi9nZGIvY2xpL2NsaS1pbnRlcnAu YwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIndyYXBwZXIuaCIKICNp bmNsdWRlICJldmVudC10b3AuaCIKICNpbmNsdWRlICJ1aS1vdXQuaCIKKyNp bmNsdWRlICJjbGktY21kcy5oIgogI2luY2x1ZGUgImNsaS1vdXQuaCIKICNp bmNsdWRlICJ0b3AuaCIJCS8qIGZvciAiZXhlY3V0ZV9jb21tYW5kIiAqLwog I2luY2x1ZGUgImdkYl9zdHJpbmcuaCIKQEAgLTE0Nyw3ICsxNDgsOSBAQCBf aW5pdGlhbGl6ZV9jbGlfaW50ZXJwICh2b2lkKQogICAgIGNsaV9pbnRlcnBy ZXRlcl9yZXN1bWUsCS8qIHJlc3VtZV9wcm9jICovCiAgICAgY2xpX2ludGVy cHJldGVyX3N1c3BlbmQsCS8qIHN1c3BlbmRfcHJvYyAqLwogICAgIGNsaV9p bnRlcnByZXRlcl9leGVjLAkvKiBleGVjX3Byb2MgKi8KLSAgICBjbGlfaW50 ZXJwcmV0ZXJfZGlzcGxheV9wcm9tcHRfcAkvKiBwcm9tcHRfcHJvY19wICov CisgICAgY2xpX2ludGVycHJldGVyX2Rpc3BsYXlfcHJvbXB0X3AsCS8qIHBy b21wdF9wcm9jX3AgKi8KKyAgICBOVUxMLAorICAgIGNsaV9pbnRlcnByZXRl cl9jb21wbGV0ZQkvKiBjb21wbGV0ZV9wcm9jICovCiAgIH07CiAgIHN0cnVj dCBpbnRlcnAgKmNsaV9pbnRlcnA7CiAKZGlmZiAtLWdpdCBhL2dkYi9pbnRl cnBzLmMgYi9nZGIvaW50ZXJwcy5jCmluZGV4IGRhMDVlZTIuLjQwYmEwNGUg MTAwNjQ0Ci0tLSBhL2dkYi9pbnRlcnBzLmMKKysrIGIvZ2RiL2ludGVycHMu YwpAQCAtMzI4LDYgKzMyOCwxOSBAQCBpbnRlcnBfZXhlYyAoc3RydWN0IGlu dGVycCAqaW50ZXJwLCBjb25zdCBjaGFyICpjb21tYW5kX3N0cikKICAgcmV0 dXJuIGV4Y2VwdGlvbl9ub25lOwogfQogCitpbnQKK2ludGVycF9jb21wbGV0 ZSAoc3RydWN0IGludGVycCAqaW50ZXJwLAorICAgICAgICAgICAgICAgICBj aGFyICp3b3JkLCBjaGFyICpjb21tYW5kX2J1ZmZlciwgaW50IGN1cnNvciwg aW50IGxpbWl0KQoreworICBpZiAoaW50ZXJwLT5wcm9jcy0+Y29tcGxldGVf cHJvYyAhPSBOVUxMKQorICAgIHsKKyAgICAgIHJldHVybiBpbnRlcnAtPnBy b2NzLT5jb21wbGV0ZV9wcm9jIChpbnRlcnAtPmRhdGEsIHdvcmQsIGNvbW1h bmRfYnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGN1cnNvciwgbGltaXQpOworICAgIH0KKworICByZXR1cm4g MDsKK30KKwogLyogQSBjb252ZW5pZW5jZSByb3V0aW5lIHRoYXQgbnVsbHMg b3V0IGFsbCB0aGUgY29tbW9uIGNvbW1hbmQgaG9va3MuCiAgICBVc2UgaXQg d2hlbiByZW1vdmluZyB5b3VyIGludGVycHJldGVyIGluIGl0cyBzdXNwZW5k IHByb2MuICAqLwogdm9pZApkaWZmIC0tZ2l0IGEvZ2RiL2ludGVycHMuaCBi L2dkYi9pbnRlcnBzLmgKaW5kZXggZGU3MzZjZS4uY2FiNzQ1ZSAxMDA2NDQK LS0tIGEvZ2RiL2ludGVycHMuaAorKysgYi9nZGIvaW50ZXJwcy5oCkBAIC0z Niw2ICszNiwxMCBAQCBleHRlcm4gc3RydWN0IGdkYl9leGNlcHRpb24gaW50 ZXJwX2V4ZWMgKHN0cnVjdCBpbnRlcnAgKmludGVycCwKIAkJCQkJIGNvbnN0 IGNoYXIgKmNvbW1hbmQpOwogZXh0ZXJuIGludCBpbnRlcnBfcXVpZXRfcCAo c3RydWN0IGludGVycCAqaW50ZXJwKTsKIAorZXh0ZXJuIGludCBpbnRlcnBf Y29tcGxldGUgKHN0cnVjdCBpbnRlcnAgKmludGVycCwKKwkJCSAgICBjaGFy ICp3b3JkLCBjaGFyICpjb21tYW5kX2J1ZmZlciwKKwkJCSAgICBpbnQgY3Vy c29yLCBpbnQgbGltaXQpOworCiB0eXBlZGVmIHZvaWQgKihpbnRlcnBfaW5p dF9mdHlwZSkgKGludCB0b3BfbGV2ZWwpOwogdHlwZWRlZiBpbnQgKGludGVy cF9yZXN1bWVfZnR5cGUpICh2b2lkICpkYXRhKTsKIHR5cGVkZWYgaW50IChp bnRlcnBfc3VzcGVuZF9mdHlwZSkgKHZvaWQgKmRhdGEpOwpAQCAtNDMsNiAr NDcsOSBAQCB0eXBlZGVmIGludCAoaW50ZXJwX3Byb21wdF9wX2Z0eXBlKSAo dm9pZCAqZGF0YSk7CiB0eXBlZGVmIHN0cnVjdCBnZGJfZXhjZXB0aW9uIChp bnRlcnBfZXhlY19mdHlwZSkgKHZvaWQgKmRhdGEsCiAJCQkJCQkgIGNvbnN0 IGNoYXIgKmNvbW1hbmQpOwogdHlwZWRlZiB2b2lkIChpbnRlcnBfY29tbWFu ZF9sb29wX2Z0eXBlKSAodm9pZCAqZGF0YSk7Cit0eXBlZGVmIGludCAoaW50 ZXJwX2NvbXBsZXRlX2Z0eXBlKSAodm9pZCAqZGF0YSwgY2hhciAqd29yZCwK KwkJCQkgICAgIGNoYXIgKmNvbW1hbmRfYnVmZmVyLCBpbnQgY3Vyc29yLAor CQkJCSAgICAgaW50IGxpbWl0KTsKIAogc3RydWN0IGludGVycF9wcm9jcwog ewpAQCAtNTIsNiArNTksNyBAQCBzdHJ1Y3QgaW50ZXJwX3Byb2NzCiAgIGlu dGVycF9leGVjX2Z0eXBlICpleGVjX3Byb2M7CiAgIGludGVycF9wcm9tcHRf cF9mdHlwZSAqcHJvbXB0X3Byb2NfcDsKICAgaW50ZXJwX2NvbW1hbmRfbG9v cF9mdHlwZSAqY29tbWFuZF9sb29wX3Byb2M7CisgIGludGVycF9jb21wbGV0 ZV9mdHlwZSAqY29tcGxldGVfcHJvYzsKIH07CiAKIGV4dGVybiBzdHJ1Y3Qg aW50ZXJwICppbnRlcnBfbmV3IChjb25zdCBjaGFyICpuYW1lLCB2b2lkICpk YXRhLApkaWZmIC0tZ2l0IGEvZ2RiL21pL21pLWNtZHMuYyBiL2dkYi9taS9t aS1jbWRzLmMKaW5kZXggMmM0MjViNy4uMjZmNzRmZCAxMDA2NDQKLS0tIGEv Z2RiL21pL21pLWNtZHMuYworKysgYi9nZGIvbWkvbWktY21kcy5jCkBAIC04 MSw2ICs4MSw3IEBAIHN0cnVjdCBtaV9jbWQgbWlfY21kc1tdID0KICAgeyAi aW5mZXJpb3ItdHR5LXNldCIsIHsgTlVMTCwgMCB9LCBtaV9jbWRfaW5mZXJp b3JfdHR5X3NldH0sCiAgIHsgImluZmVyaW9yLXR0eS1zaG93IiwgeyBOVUxM LCAwIH0sIG1pX2NtZF9pbmZlcmlvcl90dHlfc2hvd30sCiAgIHsgImludGVy cHJldGVyLWV4ZWMiLCB7IE5VTEwsIDAgfSwgbWlfY21kX2ludGVycHJldGVy X2V4ZWN9LAorICB7ICJpbnRlcnByZXRlci1jb21wbGV0ZSIsIHsgTlVMTCwg MCB9LCBtaV9jbWRfaW50ZXJwcmV0ZXJfY29tcGxldGV9LAogICB7ICJsaXN0 LWZlYXR1cmVzIiwgeyBOVUxMLCAwIH0sIG1pX2NtZF9saXN0X2ZlYXR1cmVz fSwKICAgeyAibGlzdC10YXJnZXQtZmVhdHVyZXMiLCB7IE5VTEwsIDAgfSwg bWlfY21kX2xpc3RfdGFyZ2V0X2ZlYXR1cmVzfSwKICAgeyAibGlzdC10aHJl YWQtZ3JvdXBzIiwgeyBOVUxMLCAwIH0sIG1pX2NtZF9saXN0X3RocmVhZF9n cm91cHMgfSwgIApkaWZmIC0tZ2l0IGEvZ2RiL21pL21pLWNtZHMuaCBiL2dk Yi9taS9taS1jbWRzLmgKaW5kZXggNDkxYzFmMi4uZDhjZmM2ZCAxMDA2NDQK LS0tIGEvZ2RiL21pL21pLWNtZHMuaAorKysgYi9nZGIvbWkvbWktY21kcy5o CkBAIC02Nyw2ICs2Nyw3IEBAIGV4dGVybiBtaV9jbWRfYXJndl9mdHlwZSBt aV9jbWRfZ2RiX2V4aXQ7CiBleHRlcm4gbWlfY21kX2FyZ3ZfZnR5cGUgbWlf Y21kX2luZmVyaW9yX3R0eV9zZXQ7CiBleHRlcm4gbWlfY21kX2FyZ3ZfZnR5 cGUgbWlfY21kX2luZmVyaW9yX3R0eV9zaG93OwogZXh0ZXJuIG1pX2NtZF9h cmd2X2Z0eXBlIG1pX2NtZF9pbnRlcnByZXRlcl9leGVjOworZXh0ZXJuIG1p X2NtZF9hcmd2X2Z0eXBlIG1pX2NtZF9pbnRlcnByZXRlcl9jb21wbGV0ZTsK IGV4dGVybiBtaV9jbWRfYXJndl9mdHlwZSBtaV9jbWRfbGlzdF9mZWF0dXJl czsKIGV4dGVybiBtaV9jbWRfYXJndl9mdHlwZSBtaV9jbWRfbGlzdF90YXJn ZXRfZmVhdHVyZXM7CiBleHRlcm4gbWlfY21kX2FyZ3ZfZnR5cGUgbWlfY21k X2xpc3RfdGhyZWFkX2dyb3VwczsKZGlmZiAtLWdpdCBhL2dkYi9taS9taS1p bnRlcnAuYyBiL2dkYi9taS9taS1pbnRlcnAuYwppbmRleCA1YWQ0YTUxLi44 MWM3NTIzIDEwMDY0NAotLS0gYS9nZGIvbWkvbWktaW50ZXJwLmMKKysrIGIv Z2RiL21pL21pLWludGVycC5jCkBAIC01MDQsNiArNTA0LDUwIEBAIG1pX3Nv bGliX3VubG9hZGVkIChzdHJ1Y3Qgc29fbGlzdCAqc29saWIpCiAgIGdkYl9m bHVzaCAobWktPmV2ZW50X2NoYW5uZWwpOwogfQogCisvKiBUaGlzIGltcGxl bWVudHMgdGhlICJpbnRlcnByZXRlciBjb21wbGV0ZSBjb21tYW5kIiB3aGlj aCB0YWtlcyBhbgorICAgaW50ZXJwcmV0ZXIsIGEgY29tbWFuZCBzdHJpbmcs IGFuZCBvcHRpb25hbGx5IGEgY3Vyc29yIHBvc2l0aW9uCisgICB3aXRoaW4g dGhlIGNvbW1hbmQsIGFuZCBjb21wbGV0ZXMgdGhlIHN0cmluZyBiYXNlZCBv biB0aGF0IGludGVycHJldGVyJ3MKKyAgIGNvbXBsZXRpb24gZnVuY3Rpb24u ICAqLworCit2b2lkCittaV9jbWRfaW50ZXJwcmV0ZXJfY29tcGxldGUgKGNo YXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJnYykKK3sKKyAgc3Ry dWN0IGludGVycCAqaW50ZXJwX3RvX3VzZTsKKyAgaW50IGN1cnNvcjsKKyAg aW50IGxpbWl0ID0gMjAwOworCisgIGlmIChhcmdjIDwgMiB8fCBhcmdjID4g MykKKyAgICB7CisgICAgICBlcnJvcigiV3JvbmcgIyBvciBhcmd1bWVudHMs IHNob3VsZCBiZSBcIiVzIGludGVycCBjb21tYW5kIDxjdXJzb3I+XCIuIiwK KwkgICAgY29tbWFuZCk7CisgICAgICByZXR1cm47CisgICAgfQorCisgIGlu dGVycF90b191c2UgPSBpbnRlcnBfbG9va3VwIChhcmd2WzBdKTsKKyAgaWYg KGludGVycF90b191c2UgPT0gTlVMTCkKKyAgICB7CisgICAgICBlcnJvcigi Q291bGQgbm90IGZpbmQgaW50ZXJwcmV0ZXIgXCIlc1wiLiIsIGFyZ3ZbMF0p OworICAgICAgcmV0dXJuOworICAgIH0KKworICBpZiAoYXJnYyA9PSAzKQor ICAgIHsKKyAgICAgIGN1cnNvciA9IGF0b2kgKGFyZ3ZbMl0pOworICAgIH0K KyAgZWxzZQorICAgIHsKKyAgICAgIGN1cnNvciA9IHN0cmxlbiAoYXJndlsx XSk7CisgICAgfQorCisgIGlmIChpbnRlcnBfY29tcGxldGUgKGludGVycF90 b191c2UsIGFyZ3ZbMV0sIGFyZ3ZbMV0sIGN1cnNvciwgbGltaXQpID09IDAp CisgICAgeworICAgICAgZXJyb3IoIlVuYWJsZSB0byBjb21wbGV0ZS4iKTsK KyAgICAgIHJldHVybjsKKyAgICB9CisgIGVsc2UKKyAgICByZXR1cm47CisK K30KIAogZXh0ZXJuIGluaXRpYWxpemVfZmlsZV9mdHlwZSBfaW5pdGlhbGl6 ZV9taV9pbnRlcnA7IC8qIC1XbWlzc2luZy1wcm90b3R5cGVzICovCiAKLS0g CjEuNi4yLjUKCg== --0016e65ae212edd5540474f7369b--