From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 827 invoked by alias); 11 Sep 2009 11:43:27 -0000 Received: (qmail 816 invoked by uid 22791); 11 Sep 2009 11:43:26 -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-yx0-f179.google.com (HELO mail-yx0-f179.google.com) (209.85.210.179) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 11 Sep 2009 11:43:21 +0000 Received: by yxe9 with SMTP id 9so1323552yxe.26 for ; Fri, 11 Sep 2009 04:43:20 -0700 (PDT) MIME-Version: 1.0 Received: by 10.150.103.5 with SMTP id a5mr4755801ybc.22.1252669400040; Fri, 11 Sep 2009 04:43:20 -0700 (PDT) In-Reply-To: <8ba6bed40903081910t695c9d93jc34ba1c5d2793a2e@mail.gmail.com> References: <8ba6bed40903051731s41c9183aha18af51113f3c0ea@mail.gmail.com> <20090306173345.GI3744@adacore.com> <200903061913.43419.pedro@codesourcery.com> <8ba6bed40903070407q3e91f0ffs6fc67b2b9c329081@mail.gmail.com> <8ba6bed40903080716k3fbeb56t5605aef1864b26a3@mail.gmail.com> <8ba6bed40903081910t695c9d93jc34ba1c5d2793a2e@mail.gmail.com> Date: Fri, 11 Sep 2009 11:43:00 -0000 Message-ID: <8ba6bed40909110443v61597c4ci7effd224ce26f937@mail.gmail.com> Subject: Re: gdb.objc/objcdecode.exp test error.. From: Matt Rice To: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=000e0cd48af69c46ad04734bd2b7 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-09/txt/msg00315.txt.bz2 --000e0cd48af69c46ad04734bd2b7 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 6168 On Sun, Mar 8, 2009 at 7:10 PM, Matt Rice wrote: > > well hmm these only partially fix the issue, still trying to figure > out how to compile a shared library > in the testsuite, Alright so, i've finally gotten around to figuring that out. Apologies for my lack of brevity. Attached are testsuite patches which test this, and an additional way to provoke the issue I've currently decided to just focus on the assertion failure which is evident in the current testsuite and further explored in my tests, and also asked about by Pierre Muller in [1]. The assert was added at [2], this changed the handling in breakpoint_re_set_one of the return value of decode_line_1 from being iterated over to asserting that there is only a single value returned. to quote the gdb manual at [3]: It is also possible to specify just a method name: break create end quote. basically the effect of this is that it is possible to create an ambiguous expression[5] which is extrapolated into more ambiguous expressions, e.g. 'create' becomes 'create' and also '-[Foo create]' and both 'create' and '-[Foo create]' can also become '-[Foo(bar) create]' and it is possible for all 3 to exist at the same time. As Vladimir mentioned on irc this is somewhat non-conventional, e.g. The c++ language support doesn't do anything like it, e.g. break create will not expand to Foo::create(void) and it seems that we have similar behaviour to this already available in rbreak, but none the less, the behaviour is documented and works _until_ it hits ambiguity. e.g. if 'break create' were to match only '-[Bar create]' and '-[Baz create]', the 2 resulting breakpoints would not be ambiguous nor trigger the assertion. Regardless of the above there is a language feature of Objective-C with which it is possible to also trigger this assertion, The feature is called categories, and they are a way in which to add methods, or override methods, This situation seems much more akin to the situation in which breakpoint_re_set_one was intended to handle. These are tested via the -bar methods in the added .m files. after loading the Category in libobjcdecode3.so via dlopen, [obj bar]; will call a new implementation, but the symbol was not overridden via normal c-style linkage, the symbols are unique, so both method implementations exist, only the objects dispatch table has been updated, therefore decode_line_1 returns 2 symbols matching the 'bar' method. With the criteria that whichever implementation was loaded last is the one which is used. because it is rather common for people to cache function pointers to methods in order to avoid the overhead involved with the dispatch table lookups, it is a uncommon but possible source of problems to have a stale cached implementation, so its a good thing we can set a breakpoint on all implementations of a specific method.. the patch for [5] at [6], will sort of kinda of fix part of these issues, i've attached a rehashing of it it will avoid the assertion failures, but it will also fail to recognize when a category has been loaded and thus fail the "bar category implementation" tests, so i suppose its better than the current behaviour. While the bug listed, mentions going another way about solving said bug report, it is my opinion that the current assertion failures cannot be fixed in such a way, only by either removing the assertion, or avoiding the ambiguity, though we could always keep the assertion and split it into 2 stages or something, an ambiguous stage and a non-ambiguous stage with the assertion. but there is some weirdness about re-enabling the iteration, for instance it seems it would cause them to share conditions, i'm not sure this is wanted in the method/function case, but it probably is in the method/category method case. [1]: http://sourceware.org/ml/gdb-patches/2008-03/msg00473.html [2]: http://sourceware.org/ml/gdb-patches/2007-09/msg00306.html [3]: info -f gdb --node='Method Names in Commands' [4]: info -f gdb --node='Ambiguous Expressions' [5]: http://sourceware.org/bugzilla/show_bug.cgi?id=8343 [6]: http://sourceware.org/bugzilla/show_bug.cgi?id=8535 P.S. the new tests are somewhat duplicated by the original tests I had done, and the ones from Adam Fedor. I'm guessing that the requirements of the new ones will probably work on a more limited set of platforms i suppose, due to the dlopen requirements. Let me know if you want me to roll these all into a single test, or if i should keep the old ones around. And with regard to 8343, this seems as good a place as any to discuss it, given that we have up to 2 layers of ambiguity, maybe we need in the breakpoint structure to differentiate between breakpoints which were set by the user, and breakpoints which were derived from breakpoints which are set by the user. Then we can only ask the user about symbols which can be derived from user-specified breakpoints, i'm not sure if this would require a different return value from decode_line_1 or if this should be handled in the 'break_command_really'. that way we could avoid asking about '-[Foo(bar) create]' twice when re_setting both 'create' and '-[Foo create]'. (when using multiple-symbols ask), also seems like something that could be used for something akin to a 'pending rbreak'. P.P.S: these aren't 7.0 regressions they've been around since at least 6.8 in 7.0 we can ignore the assertions specifying 'N', and go about our debugging where before we would get stuck in a loop with PR #8343 before we got to the assertions. 2009-09-10 Matt Rice * lib/gdb.exp (gdb_continue_to_breakpoint): Fail on internal-error instead of falling back to timeout. * gdb.objc/objcdecode.exp: Set the multiple symbols found behaviour to ask for the original test. Add tests for the multiple symbols found behaviour of all. * gdb.objc/ambiguous.exp: New tests for ObjC ambiguous expressions across shared libraries. * gdb.objc/ambiguous.m: Ditto. * gdb.objc/objcdecode2.m: Ditto. * gdb.objc/objcdecode2.h: Ditto. * gdb.objc/objcdecode3.m: Ditto. --000e0cd48af69c46ad04734bd2b7 Content-Type: application/octet-stream; name="0001--lib-gdb.exp-gdb_continue_to_breakpoint.patch" Content-Disposition: attachment; filename="0001--lib-gdb.exp-gdb_continue_to_breakpoint.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fzgozlb30 Content-length: 15242 RnJvbSA2MmVkZDk1ZTU4ZmRkMjQwYzZmYTg1YTEyYTRkM2ZiYzdiMWFjYjAw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0IFJpY2UgPHJh dG1pY2VAZ21haWwuY29tPgpEYXRlOiBGcmksIDExIFNlcCAyMDA5IDAxOjM0 OjQ3IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAxLzJdICAgICAgICAgKiBsaWIv Z2RiLmV4cCAoZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQpOiBGYWlsIG9u IGludGVybmFsLWVycm9yCiAgICAgICAgIGluc3RlYWQgb2YgZmFsbGluZyBi YWNrIHRvIHRpbWVvdXQuCiAgICAgICAgICogZ2RiLm9iamMvb2JqY2RlY29k ZS5leHA6IFNldCB0aGUgbXVsdGlwbGUgc3ltYm9scyBmb3VuZCBiZWhhdmlv dXIKICAgICAgICAgdG8gYXNrIGZvciB0aGUgb3JpZ2luYWwgdGVzdC4gQWRk IHRlc3RzIGZvciB0aGUgbXVsdGlwbGUgc3ltYm9scwogICAgICAgICBmb3Vu ZCBiZWhhdmlvdXIgb2YgYWxsLgogICAgICAgICAqIGdkYi5vYmpjL2FtYmln dW91cy5leHA6IE5ldyB0ZXN0cyBmb3IgT2JqQyBhbWJpZ3VvdXMgZXhwcmVz c2lvbnMKICAgICAgICAgYWNyb3NzIHNoYXJlZCBsaWJyYXJpZXMuCiAgICAg ICAgICogZ2RiLm9iamMvYW1iaWd1b3VzLm06IERpdHRvLgogICAgICAgICAq IGdkYi5vYmpjL29iamNkZWNvZGUyLm06IERpdHRvLgogICAgICAgICAqIGdk Yi5vYmpjL29iamNkZWNvZGUyLmg6IERpdHRvLgogICAgICAgICAqIGdkYi5v YmpjL29iamNkZWNvZGUzLm06IERpdHRvLgoKLS0tCiBnZGIvdGVzdHN1aXRl L2dkYi5vYmpjL2FtYmlndW91cy5leHAgIHwgIDE0OSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIGdkYi90ZXN0c3VpdGUvZ2RiLm9iamMv YW1iaWd1b3VzLm0gICAgfCAgIDM1ICsrKysrKysrCiBnZGIvdGVzdHN1aXRl L2dkYi5vYmpjL29iamNkZWNvZGUuZXhwIHwgICA1NSArKysrKysrKysrKyst CiBnZGIvdGVzdHN1aXRlL2dkYi5vYmpjL29iamNkZWNvZGUyLmggIHwgICAg OSArKwogZ2RiL3Rlc3RzdWl0ZS9nZGIub2JqYy9vYmpjZGVjb2RlMi5tICB8 ICAgMjAgKysrKysKIGdkYi90ZXN0c3VpdGUvZ2RiLm9iamMvb2JqY2RlY29k ZTMubSAgfCAgIDE5ICsrKysKIGdkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAg ICAgICAgICAgICAgfCAgICA1ICsKIDcgZmlsZXMgY2hhbmdlZCwgMjkwIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIub2JqYy9hbWJpZ3VvdXMuZXhwCiBjcmVh dGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIub2JqYy9hbWJpZ3Vv dXMubQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLm9i amMvb2JqY2RlY29kZTIuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0 c3VpdGUvZ2RiLm9iamMvb2JqY2RlY29kZTIubQogY3JlYXRlIG1vZGUgMTAw NjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLm9iamMvb2JqY2RlY29kZTMubQoKZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLm9iamMvYW1iaWd1b3VzLmV4 cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLm9iamMvYW1iaWd1b3VzLmV4cApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzFjMGQyCi0tLSAv ZGV2L251bGwKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIub2JqYy9hbWJpZ3Vv dXMuZXhwCkBAIC0wLDAgKzEsMTQ5IEBACisjIENvcHlyaWdodCAyMDA5IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisjIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LgorCisjIFRoaXMgZmlsZSB0ZXN0cyBicmVha3BvaW50cyBvbiBhbWJpZ3Vv dXMgZXhwcmVzc2lvbnMgaW4gQyBhbmQgT2JqLUMgc3ltYm9scworIyBBbmQg dGhlaXIgYWZmZWN0cyBhY3Jvc3Mgc2hhcmVkIGxpYnJhcmllcy4KKworIyBU aGlzIGZpbGUgd2FzIHdyaXR0ZW4gYnkgTWF0dCBSaWNlIChyYXRtaWNlQGdt YWlsLmNvbSkKKworaWYgJHRyYWNlbGV2ZWwgdGhlbiB7CisJc3RyYWNlICR0 cmFjZWxldmVsCit9CisKK3Byb2MgZG9fb2JqY190ZXN0cyB7fSB7CisgICAg Z2xvYmFsIHBybXNfaWQKKyAgICBnbG9iYWwgYnVnX2lkCisgICAgZ2xvYmFs IHN1YmRpcgorICAgIGdsb2JhbCBvYmpkaXIKKyAgICBnbG9iYWwgc3JjZGly CisgICAgZ2xvYmFsIGJpbmZpbGUKKyAgICBnbG9iYWwgZ2RiX3Byb21wdAor CisgICAgc2V0IHBybXNfaWQgMAorICAgIHNldCBidWdfaWQgMAorCisgICAg IyBTdGFydCB3aXRoIGEgZnJlc2ggZ2RiLgorCisgICAgZ2RiX2V4aXQKKyAg ICBnZGJfc3RhcnQKKyAgICBnZGJfcmVpbml0aWFsaXplX2RpciAkc3JjZGly LyRzdWJkaXIKKyAgICBnZGJfbG9hZCAkYmluZmlsZQorCit9CisKK3NldCB0 ZXN0ZmlsZSAib2JqY2RlY29kZTIiCitzZXQgc3JjZmlsZSAke3Rlc3RmaWxl fS5tCitzZXQgYmluZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9L2xpYiR7dGVz dGZpbGV9LnNvCitzZXQgbGliX2ZsYWdzIFtsaXN0IGRlYnVnIGFkZGl0aW9u YWxfZmxhZ3M9W2xpc3QgLWcgLWZQSUMgLUkke3NyY2Rpcn0vJHtzdWJkaXJ9 XSBdCisKK2lmIHtbZ2RiX2NvbXBpbGVfc2hsaWIgIiR7c3JjZGlyfS8ke3N1 YmRpcn0vJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iICRsaWJfZmxhZ3NdICE9 ICIiIH0geworICByZXR1cm4gLTEKK30KKworc2V0IHRlc3RmaWxlICJvYmpj ZGVjb2RlMyIKK3NldCBzcmNmaWxlICR7dGVzdGZpbGV9Lm0KK3NldCBiaW5m aWxlICR7b2JqZGlyfS8ke3N1YmRpcn0vbGliJHt0ZXN0ZmlsZX0uc28KK3Nl dCBkZWNvZGUzX2JpbmZpbGUgJGJpbmZpbGUKKworaWYge1tnZGJfY29tcGls ZV9zaGxpYiAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3NyY2ZpbGV9IiAiJHti aW5maWxlfSIgJGxpYl9mbGFnc10gIT0gIiIgfSB7CisgIHJldHVybiAtMQor fQorCisKK3NldCB0ZXN0ZmlsZSAiYW1iaWd1b3VzIgorc2V0IHNyY2ZpbGUg JHt0ZXN0ZmlsZX0ubQorc2V0IGJpbmZpbGUgJHtvYmpkaXJ9LyR7c3ViZGly fS8ke3Rlc3RmaWxlfQorc2V0IGFtYmlnX29wdHMgW2xpc3QgZGVidWcgYWRk aXRpb25hbF9mbGFncz1bbGlzdCAtZworIC1EU0hMSUJfTkFNRT1cIiRkZWNv ZGUzX2JpbmZpbGVcIgorIC1MJHtvYmpkaXJ9LyR7c3ViZGlyfSAKKyAtV2ws LXJwYXRoLCR7b2JqZGlyfS8ke3N1YmRpcn0gCisgLWxkbCAtbG9iamNkZWNv ZGUyIAorIC1JJHtzcmNkaXJ9LyR7c3ViZGlyfV0gXQorCitpZiB7W2dkYl9j b21waWxlX29iamMgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSIg IiR7YmluZmlsZX0iIGV4ZWN1dGFibGUgJGFtYmlnX29wdHNdICE9ICIiIH0g eworICByZXR1cm4gLTEKK30KKworZG9fb2JqY190ZXN0cworCitzZXQgbmFt ZSAiYW1iaWd1b3VzIGV4cHJlc3Npb24gYWZ0ZXIgc2hsaWIgbG9hZCIKK2dk Yl90ZXN0X211bHRpcGxlICJicmVhayBmb28iICRuYW1lIFwKK3sKKyAgICAt cmUgIkJyZWFrcG9pbnQgXFswLTlcXSsgYXQgMHhcWzAtOWEtZlxdKzogZmls ZSAuKlxyXG4kZ2RiX3Byb21wdCAkIiB7IHBhc3MgJG5hbWUgfQorICAgLXJl ICIuKiRnZGJfcHJvbXB0ICQiIHsgZmFpbCAkbmFtZSB9Cit9CisKK2dkYl9y dW5fY21kCitnZGJfdGVzdF9tdWx0aXBsZSAiIiAkbmFtZSBcCit7CisgICAg LXJlICJCcmVha3BvaW50IFxbMC05XF0rLCBmb28gXFxcKFxcXCkgYXQgLipc clxuJGdkYl9wcm9tcHQgJCIgeworICAgICAgICBwYXNzICRuYW1lCisgICAg fQorICAgIC1yZSAiXFxcWzBcXFxdIGNhbmNlbFxyXG5cXFxbMVxcXF0gYWxs XHJcblxcXFsyXFxcXSAtLkRlY29kZSBmb28uIGF0IC4qXHJcblxcXFszXFxc XSBmb28gYXQgLipcclxuPiAkIiB7CisgICAgICAgIHNlbmRfZ2RiICIwXG4i CisgICAgICAgIGtmYWlsICJnZGIvMTIzOCIgJG5hbWUKKyAgICAgICAgIyBn ZGIgaXMgaW4gYSBiYWQgc3RhdGUgaGVyZS4KKyAgICAgICAgIyBJdCB3b3Vs ZCBiZSBkaWZmaWN1bHQgdG8gZG8gYW55IG1vcmUgdGVzdHMgYWZ0ZXIgdGhp cy4KKyAgICB9Cit9CisKK2dkYl90ZXN0X211bHRpcGxlICJicmVhayBmb28i ICRuYW1lIFwKK3sKKyAgLXJlICJCcmVha3BvaW50IFxbMC05XF0rIGF0IDB4 XFswLTlhLWZcXSs6IGZpbGUgLipcclxuQnJlYWtwb2ludCBcWzAtOVxdKyBh dCAweFxbMC05YS1mXF0rOiBmaWxlIC4qXHJcbiRnZGJfcHJvbXB0ICQiIHsg cGFzcyAkbmFtZSB9CisgIC1yZSAiLiokZ2RiX3Byb21wdCAkIiAgIHsga2Zh aWwgJG5hbWUgfQorfQorZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImZv byBjbGFzcyBpbXBsZW1lbnRhdGlvbiIKK2dkYl9leGl0CisKK2RvX29iamNf dGVzdHMKKworc2VuZF9nZGIgInNldCBicmVha3BvaW50IHBlbmRpbmcgb25c biIKKworc2V0IG5hbWUgInNldHRpbmcgcGVuZGluZyBicmVha3BvaW50Igor Z2RiX3Rlc3RfbXVsdGlwbGUgImJyZWFrIC1cW0RlY29kZVNobGliIGJhclxd IiAkbmFtZSB7CisgICAtcmUgIi4qJGdkYl9wcm9tcHQgJCIgeyBwYXNzICRu YW1lIH0KK30KKworc2V0IG5hbWUgIm11bHRpcGx5IGRlZmluZWQgbWV0aG9k IHZpYSBjYXRlZ29yeSBpbXBsZW1lbnRhdGlvbiIKK2dkYl90ZXN0X211bHRp cGxlICJydW4iICRuYW1lIFwKK3sKKyAgICAtcmUgIkJyZWFrcG9pbnQgXFsw LTlcXSssIC1cXFxbRGVjb2RlU2hsaWIgYmFyXFxcXSBcXFwoLipcXFwpIGF0 IC4qXHJcbiRnZGJfcHJvbXB0ICQiIHsKKyAgICAgICAgcGFzcyAkbmFtZQor ICAgIH0KKyAgIC1yZSAiLiokZ2RiX3Byb21wdCAkIiB7IGZhaWwgJG5hbWUg fQorfQorZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgImJhciBjYXRlZ29y eSBpbXBsZW1lbnRhdGlvbiIKKworZ2RiX2V4aXQKKworIyBpJ20gbm90IHN1 cmUgd2h5IHRoaXMgcmVhY3RzIGRpZmZlcmVudGx5IHRoYW4gdGhlIGFib3Zl IHRlc3RzCisjIHVzaW5nIHBlbmRpbmcgYnJlYWtwb2ludHMgYnV0IGl0IGRv ZXM6IHRoZXJlZm9yZSBpJ3ZlIGFkZGVkIGl0LCBldmVuIHRob3VnaCB0aGV5 IGFwcGVhciBxdWl0ZSBzaW1pbGFyLgorZG9fb2JqY190ZXN0cworCitpZiAh W3J1bnRvX21haW5dIHsKKyAgZmFpbCAidW5hYmxlIHRvIHJ1biB0byBtYWlu IgorfQorCitnZGJfdGVzdF9tdWx0aXBsZSAiYnJlYWsgYmFyIiAkbmFtZSB7 CisgIC1yZSAiQnJlYWtwb2ludCBcWzAtOVxdKyBhdCAweFxbMC05YS1mXF0r OiBmaWxlIC4qXHJcbiRnZGJfcHJvbXB0ICQiIHsKKwkgcGFzcyAkbmFtZQor ICAgfQorICAtcmUgIi4qJGdkYl9wcm9tcHQgJCIgICB7IGZhaWwgJG5hbWUg fQorfQorCitnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAiYmFyIGNsYXNz IGltcGxlbWVudGF0aW9uIgorZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQg ImJhciBjYXRlZ29yeSBpbXBsZW1lbnRhdGlvbiIKKworcmV0dXJuIDAKZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLm9iamMvYW1iaWd1b3VzLm0g Yi9nZGIvdGVzdHN1aXRlL2dkYi5vYmpjL2FtYmlndW91cy5tCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiNTk5MTkKLS0tIC9kZXYv bnVsbAorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5vYmpjL2FtYmlndW91cy5t CkBAIC0wLDAgKzEsMzUgQEAKKyNpbmNsdWRlIDxvYmpjZGVjb2RlMi5oPgor I2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisKKyNp ZmRlZiBfX1dJTjMyX18KKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjZGVmaW5l IGRsb3BlbihuYW1lLCBtb2RlKSBMb2FkTGlicmFyeSAobmFtZSkKKyNkZWZp bmUgZGxlcnJvcigpICJhbiBlcnJvciBvY2N1cnJlZCIKKyNlbHNlCisjaW5j bHVkZSA8ZGxmY24uaD4KKyNlbmRpZgorCit2b2lkIGZvbygpCit7CisgIHBy aW50ZigiZnVuY3Rpb24gaW1wbGVtZW50YXRpb25cbiIpOworfQorCitpbnQg bWFpbigpCit7CisgIHZvaWQgKmhhbmRsZTsKKyAgaWQgb2JqID0gW0RlY29k ZVNobGliIG5ld107CisKKyAgZm9vKCk7CisgIFtvYmogZm9vXTsKKworICBb b2JqIGJhcl07IC8qIGNsYXNzIGltcGxlbWVudGF0aW9uICovCisKKyAgaGFu ZGxlID0gZGxvcGVuKFNITElCX05BTUUsIFJUTERfTEFaWSk7CisgIGlmICgh aGFuZGxlKQorICAgIGZwcmludGYoc3RkZXJyLCAiZXJyb3IgY2FsbGluZyBk bG9wZW46ICVzXG4iLCBkbGVycm9yKCkpOworCisgIFtvYmogZm9vXTsgLyog Y2F0ZWdvcnkgaW1wbGVtZW50YXRpb24gKi8KKworICByZXR1cm4gMDsKK30K ZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLm9iamMvb2JqY2RlY29k ZS5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5vYmpjL29iamNkZWNvZGUuZXhw CmluZGV4IGI3NTFmYjkuLjU1NmFhY2MgMTAwNjQ0Ci0tLSBhL2dkYi90ZXN0 c3VpdGUvZ2RiLm9iamMvb2JqY2RlY29kZS5leHAKKysrIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIub2JqYy9vYmpjZGVjb2RlLmV4cApAQCAtNTksNyArNTksOCBA QCBkb19vYmpjX3Rlc3RzCiAjCiAjIEJyZWFrIG9uIG11bHRpcGx5IGRlZmlu ZWQgbWV0aG9kIChQUiBvYmpjLzEyMzYpCiAjCi1zZXQgbmFtZSAiYnJlYWsg b24gbXVsdGlwbHkgZGVmaW5lZCBtZXRob2QiCitzZXQgbmFtZSAiYnJlYWsg b24gbXVsdGlwbHkgZGVmaW5lZCBtZXRob2QgdXNpbmcgbXVsdGlwbGUtc3lt Ym9scyBhc2siCitnZGJfdGVzdCAic2V0IG11bHRpcGxlLXN5bWJvbHMgYXNr IiAiIgogZ2RiX3Rlc3RfbXVsdGlwbGUgImJyZWFrIG11bHRpcGxlRGVmIiAk bmFtZSBcCiB7CiAgICAgLXJlICJcXFxbMFxcXF0gY2FuY2VsXHJcblxcXFsx XFxcXSBhbGxcclxuXFxcWzJcXFxdIC0uRGVjb2RlIG11bHRpcGxlRGVmLiBh dCAuKlxyXG5cXFxbM1xcXF0gbXVsdGlwbGVEZWYgYXQgLipcclxuPiAkIiB7 CkBAIC03MCw3ICs3MSw3IEBAIGdkYl90ZXN0X211bHRpcGxlICJicmVhayBt dWx0aXBsZURlZiIgJG5hbWUgXAogICAgIC1yZSAiLiokZ2RiX3Byb21wdCAk IiAgIHsga2ZhaWwgImdkYi8xMjM2IiAkbmFtZSB9CiB9CiAKLXNldCBuYW1l ICJjb250aW51ZSBhZnRlciBicmVhayBvbiBtdWx0aXBseSBkZWZpbmVkIHN5 bWJvbCIKK3NldCBuYW1lICJydW4gYWZ0ZXIgc2V0dGluZyBicmVha3BvaW50 cyBvbiBtdWx0aXBseSBkZWZpbmVkIHN5bWJvbCIKIGdkYl9ydW5fY21kCiBn ZGJfdGVzdF9tdWx0aXBsZSAiIiAkbmFtZSBcCiB7CkBAIC04NCwzICs4NSw1 MyBAQCBnZGJfdGVzdF9tdWx0aXBsZSAiIiAkbmFtZSBcCiAJIyBJdCB3b3Vs ZCBiZSBkaWZmaWN1bHQgdG8gZG8gYW55IG1vcmUgdGVzdHMgYWZ0ZXIgdGhp cy4KICAgICB9CiB9CisKK2RvX29iamNfdGVzdHMKK2lmICFbcnVudG9fbWFp bl0geyBmYWlsICJDYW4ndCBydW4gdG8gbWFpbiIgfQorCitzZXQgbmFtZSAi YnJlYWsgb24gbXVsdGlwbHkgZGVmaW5lZCBzeW1ib2wgd2l0aCBtdWx0aXBs ZS1zeW1ib2xzIGFsbCBhZnRlciBtYWluIgorZ2RiX3Rlc3QgInNldCBtdWx0 aXBsZS1zeW1ib2xzIGFsbCBhZnRlciBtYWluIiAiIgorZ2RiX3Rlc3RfbXVs dGlwbGUgImJyZWFrIG11bHRpcGxlRGVmIiAkbmFtZSBcCit7CisgIC1yZSAi QnJlYWtwb2ludCBcWzAtOVxdKyBhdCAweFxbMC05YS1mXF0rOiBmaWxlIC4q XHJcbkJyZWFrcG9pbnQgXFswLTlcXSsgYXQgMHhcWzAtOWEtZlxdKzogZmls ZSAuKlxyXG4kZ2RiX3Byb21wdCAkIiB7IHBhc3MgJG5hbWUgfQorICAtcmUg Ii4qJGdkYl9wcm9tcHQgJCIgICB7IGZhaWwgJG5hbWUgfQorfQorCitzZXQg bmFtZSAiY2FuIGhpdCBtdWx0aXBseSBkZWZpbmVkIGJyZWFrcG9pbnQgb24g ZnVuY3Rpb24gYWZ0ZXIgbWFpbiIKK2dkYl9jb250aW51ZV90b19icmVha3Bv aW50ICJmdW5jdGlvbiBtdWx0aXBsZURlZiIKKworc2V0IG5hbWUgImNhbiBo aXQgbXVsdGlwbHkgZGVmaW5lZCBicmVha3BvaW50IG9uIG9iamMgbWV0aG9k IGFmdGVyIG1haW4iCitnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAibWV0 aG9kIG11bHRpcGxlRGVmIgorZ2RiX2V4aXQKKworZG9fb2JqY190ZXN0cwor CitzZXQgbmFtZSAiYnJlYWsgb24gbXVsdGlwbHkgZGVmaW5lZCBzeW1ib2wg d2l0aCBtdWx0aXBsZS1zeW1ib2xzIGFsbCBiZWZvcmUgbWFpbiIKK2dkYl90 ZXN0X211bHRpcGxlICJicmVhayBtdWx0aXBsZURlZiIgJG5hbWUgXAorewor ICAtcmUgIkJyZWFrcG9pbnQgXFswLTlcXSsgYXQgMHhcWzAtOWEtZlxdKzog ZmlsZSAuKlxyXG5CcmVha3BvaW50IFxbMC05XF0rIGF0IDB4XFswLTlhLWZc XSs6IGZpbGUgLipcclxuJGdkYl9wcm9tcHQgJCIgeyBwYXNzICRuYW1lIH0K KyAgLXJlICIuKiRnZGJfcHJvbXB0ICQiICAgeyBrZmFpbCAkbmFtZSB9Cit9 CisKK3NldCBuYW1lICJjYW4gaGl0IG11bHRpcGx5IGRlZmluZWQgYnJlYWtw b2ludCBvbiBmdW5jdGlvbiBiZWZvcmUgbWFpbiIKK2dkYl9ydW5fY21kCitn ZGJfdGVzdF9tdWx0aXBsZSAiIiAkbmFtZSBcCit7CisgICAtcmUgIkJyZWFr cG9pbnQgXFswLTlcXSssIG11bHRpcGxlRGVmIFxcXChcXFwpIGF0IC4qXHJc biRnZGJfcHJvbXB0ICQiIHsKKwlwYXNzICRuYW1lCisgICAgfQorICAgLXJl ICIuKiRnZGJfcHJvbXB0ICQiIHsgZmFpbCAkbmFtZSB9Cit9CisKK3NldCBu YW1lICJjYW4gaGl0IG11bHRpcGx5IGRlZmluZWQgYnJlYWtwb2ludCBvbiBt ZXRob2QgYmVmb3JlIG1haW4iCitnZGJfdGVzdF9tdWx0aXBsZSAiY29udGlu dWUiICRuYW1lIFwKK3sKKyAgIC1yZSAiQnJlYWtwb2ludCBcWzAtOVxdKywg LVxcXFtEZWNvZGUgbXVsdGlwbGVEZWZcXFxdIFxcXCguKlxcXCkgYXQgLipc clxuJGdkYl9wcm9tcHQgJCIgeworICAgICAgIHBhc3MgJG5hbWUKKyAgICB9 CisgICAtcmUgIi4qJGdkYl9wcm9tcHQgJCIgeyBmYWlsICRuYW1lIH0KK30K KworZ2RiX2V4aXQKK3JldHVybiAwCisKZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLm9iamMvb2JqY2RlY29kZTIuaCBiL2dkYi90ZXN0c3VpdGUv Z2RiLm9iamMvb2JqY2RlY29kZTIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5kOWMzYmI4Ci0tLSAvZGV2L251bGwKKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9nZGIub2JqYy9vYmpjZGVjb2RlMi5oCkBAIC0wLDAgKzEs OSBAQAorI2luY2x1ZGUgPG9iamMvT2JqZWN0Lmg+CisKK0BpbnRlcmZhY2Ug RGVjb2RlU2hsaWI6IE9iamVjdAoreworfQorLSBmb287CistIGJhcjsKKy0g KGNvbnN0IGNoYXIgKikgbXlEZXNjcmlwdGlvbjsKK0BlbmQKZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLm9iamMvb2JqY2RlY29kZTIubSBiL2dk Yi90ZXN0c3VpdGUvZ2RiLm9iamMvb2JqY2RlY29kZTIubQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODYwYzU0Ci0tLSAvZGV2L251 bGwKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIub2JqYy9vYmpjZGVjb2RlMi5t CkBAIC0wLDAgKzEsMjAgQEAKKyNpbmNsdWRlIDxvYmpjZGVjb2RlMi5oPgor I2luY2x1ZGUgPHN0ZGlvLmg+CisKK0BpbXBsZW1lbnRhdGlvbiBEZWNvZGVT aGxpYgorCistIGZvbyAKK3sKKyAgcHJpbnRmKCJmb28gY2xhc3MgaW1wbGVt ZW50YXRpb25cbiIpOworfQorCistIGJhciAKK3sKKyAgcHJpbnRmKCJiYXIg Y2xhc3MgaW1wbGVtZW50YXRpb25cbiIpOworfQorCistIChjb25zdCBjaGFy ICopIG15RGVzY3JpcHRpb24KK3sKKyAgcmV0dXJuICJEZWNvZGVTaGxpYiBn ZGIgdGVzdCBvYmplY3QiOworfQorQGVuZApkaWZmIC0tZ2l0IGEvZ2RiL3Rl c3RzdWl0ZS9nZGIub2JqYy9vYmpjZGVjb2RlMy5tIGIvZ2RiL3Rlc3RzdWl0 ZS9nZGIub2JqYy9vYmpjZGVjb2RlMy5tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjk3ZjZlNGYKLS0tIC9kZXYvbnVsbAorKysgYi9n ZGIvdGVzdHN1aXRlL2dkYi5vYmpjL29iamNkZWNvZGUzLm0KQEAgLTAsMCAr MSwxOSBAQAorI2luY2x1ZGUgPG9iamNkZWNvZGUyLmg+CisjaW5jbHVkZSA8 c3RkaW8uaD4KKworQGludGVyZmFjZSBEZWNvZGVTaGxpYihDYXRlZ29yeUlu U2hsaWIpCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBEZWNvZGVTaGxpYihD YXRlZ29yeUluU2hsaWIpCisKKy0gZm9vIAoreworICBwcmludGYoImZvbyBj YXRlZ29yeSBpbXBsZW1lbnRhdGlvblxuIik7Cit9CisKKy0gYmFyIAorewor ICBwcmludGYoImJhciBjYXRlZ29yeSBpbXBsZW1lbnRhdGlvblxuIik7Cit9 CisKK0BlbmQKZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5l eHAgYi9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCmluZGV4IDBjOTNhNzMu LjRmMzM0ODYgMTAwNjQ0Ci0tLSBhL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5l eHAKKysrIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cApAQCAtNDc0LDYg KzQ3NCwxMSBAQCBwcm9jIGdkYl9jb250aW51ZV90b19icmVha3BvaW50IHtu YW1lIHtsb2NhdGlvbl9wYXR0ZXJuIC4qfX0gewogCS1yZSAiLiokZ2RiX3By b21wdCAkIiB7CiAJICAgIGZhaWwgJGZ1bGxfbmFtZQogCX0KKyAgICAgICAg LXJlICIuKkEgcHJvYmxlbSBpbnRlcm5hbCB0byBHREIgaGFzIGJlZW4gZGV0 ZWN0ZWQiIHsKKyAgICAgICAgICAgICBmYWlsICIkZnVsbF9uYW1lIChHREIg aW50ZXJuYWwgZXJyb3IpIgorICAgICAgICAgICAgIGdkYl9pbnRlcm5hbF9l cnJvcl9yZXN5bmMKKwl9CisKIAl0aW1lb3V0IHsgCiAJICAgIGZhaWwgIiRm dWxsX25hbWUgKHRpbWVvdXQpIgogCX0KLS0gCjEuNi4yLjUKCg== --000e0cd48af69c46ad04734bd2b7 Content-Type: application/octet-stream; name="0002-Add-enable_ambiguous-argument-to-decode_line_1.patch" Content-Disposition: attachment; filename="0002-Add-enable_ambiguous-argument-to-decode_line_1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fzgum5er1 Content-length: 8256 RnJvbSA1YThiYmFkZjNkYzliZjcwMTU0NWMzNTkyOTExMzUxOTMyODEwZWNl IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0IFJpY2UgPHJh dG1pY2VAZ21haWwuY29tPgpEYXRlOiBGcmksIDExIFNlcCAyMDA5IDAxOjU0 OjUwIC0wNzAwClN1YmplY3Q6IFtQQVRDSCAyLzJdIEFkZCBlbmFibGVfYW1i aWd1b3VzIGFyZ3VtZW50IHRvIGRlY29kZV9saW5lXzEuCgotLS0KIGdkYi9i cmVha3BvaW50LmMgICB8ICAgMTQgKysrKysrKy0tLS0tLS0KIGdkYi9jbGkv Y2xpLWNtZHMuYyB8ICAgIDggKysrKy0tLS0KIGdkYi9saW5lc3BlYy5jICAg ICB8ICAgMTcgKysrKysrKysrLS0tLS0tLS0KIGdkYi9saW5lc3BlYy5oICAg ICB8ICAgIDMgKystCiBnZGIvc3ltdGFiLmMgICAgICAgfCAgICAyICstCiBn ZGIvdHJhY2Vwb2ludC5jICAgfCAgICAyICstCiA2IGZpbGVzIGNoYW5nZWQs IDI0IGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2dkYi9icmVha3BvaW50LmMgYi9nZGIvYnJlYWtwb2ludC5jCmluZGV4 IDlmNTA4NzIuLmQyNDJkNDMgMTAwNjQ0Ci0tLSBhL2dkYi9icmVha3BvaW50 LmMKKysrIGIvZ2RiL2JyZWFrcG9pbnQuYwpAQCAtNTc5MywxMCArNTc5Mywx MCBAQCBwYXJzZV9icmVha3BvaW50X3NhbHMgKGNoYXIgKiphZGRyZXNzLAog IAkJICAmJiAoKCphZGRyZXNzKVsxXSAhPSAnWycpKSkpCiAJKnNhbHMgPSBk ZWNvZGVfbGluZV8xIChhZGRyZXNzLCAxLCBkZWZhdWx0X2JyZWFrcG9pbnRf c3ltdGFiLAogCQkJICAgICAgIGRlZmF1bHRfYnJlYWtwb2ludF9saW5lLCBh ZGRyX3N0cmluZywgCi0JCQkgICAgICAgbm90X2ZvdW5kX3B0cik7CisJCQkg ICAgICAgbm90X2ZvdW5kX3B0ciwgMSk7CiAgICAgICBlbHNlCiAJKnNhbHMg PSBkZWNvZGVfbGluZV8xIChhZGRyZXNzLCAxLCAoc3RydWN0IHN5bXRhYiAq KSBOVUxMLCAwLAotCQkgICAgICAgICAgICAgICBhZGRyX3N0cmluZywgbm90 X2ZvdW5kX3B0cik7CisJCSAgICAgICAgICAgICAgIGFkZHJfc3RyaW5nLCBu b3RfZm91bmRfcHRyLCAxKTsKICAgICB9CiAgIC8qIEZvciBhbnkgU0FMIHRo YXQgZGlkbid0IGhhdmUgYSBjYW5vbmljYWwgc3RyaW5nLCBmaWxsIG9uZSBp bi4gKi8KICAgaWYgKHNhbHMtPm5lbHRzID4gMCAmJiAqYWRkcl9zdHJpbmcg PT0gTlVMTCkKQEAgLTY2OTcsMTAgKzY2OTcsMTAgQEAgdW50aWxfYnJlYWtf Y29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHksIGludCBhbnl3aGVy ZSkKIAogICBpZiAoZGVmYXVsdF9icmVha3BvaW50X3ZhbGlkKQogICAgIHNh bHMgPSBkZWNvZGVfbGluZV8xICgmYXJnLCAxLCBkZWZhdWx0X2JyZWFrcG9p bnRfc3ltdGFiLAotCQkJICBkZWZhdWx0X2JyZWFrcG9pbnRfbGluZSwgKGNo YXIgKioqKSBOVUxMLCBOVUxMKTsKKwkJCSAgZGVmYXVsdF9icmVha3BvaW50 X2xpbmUsIChjaGFyICoqKikgTlVMTCwgTlVMTCwgMSk7CiAgIGVsc2UKICAg ICBzYWxzID0gZGVjb2RlX2xpbmVfMSAoJmFyZywgMSwgKHN0cnVjdCBzeW10 YWIgKikgTlVMTCwgCi0JCQkgIDAsIChjaGFyICoqKikgTlVMTCwgTlVMTCk7 CisJCQkgIDAsIChjaGFyICoqKikgTlVMTCwgTlVMTCwgMSk7CiAKICAgaWYg KHNhbHMubmVsdHMgIT0gMSkKICAgICBlcnJvciAoXygiQ291bGRuJ3QgZ2V0 IGluZm9ybWF0aW9uIG9uIHNwZWNpZmllZCBsaW5lLiIpKTsKQEAgLTc5MDMs NyArNzkwMyw3IEBAIGJyZWFrcG9pbnRfcmVfc2V0X29uZSAodm9pZCAqYmlu dCkKICAgICAgIFRSWV9DQVRDSCAoZSwgUkVUVVJOX01BU0tfRVJST1IpCiAJ ewogCSAgc2FscyA9IGRlY29kZV9saW5lXzEgKCZzLCAxLCAoc3RydWN0IHN5 bXRhYiAqKSBOVUxMLCAwLCAoY2hhciAqKiopIE5VTEwsCi0JCQkJbm90X2Zv dW5kX3B0cik7CisJCQkJbm90X2ZvdW5kX3B0ciwgMCk7CiAJfQogICAgICAg aWYgKGUucmVhc29uIDwgMCkKIAl7CkBAIC04NDI3LDEwICs4NDI3LDEwIEBA IGRlY29kZV9saW5lX3NwZWNfMSAoY2hhciAqc3RyaW5nLCBpbnQgZnVuZmly c3RsaW5lKQogICAgIHNhbHMgPSBkZWNvZGVfbGluZV8xICgmc3RyaW5nLCBm dW5maXJzdGxpbmUsCiAJCQkgIGRlZmF1bHRfYnJlYWtwb2ludF9zeW10YWIs CiAJCQkgIGRlZmF1bHRfYnJlYWtwb2ludF9saW5lLAotCQkJICAoY2hhciAq KiopIE5VTEwsIE5VTEwpOworCQkJICAoY2hhciAqKiopIE5VTEwsIE5VTEws IDEpOwogICBlbHNlCiAgICAgc2FscyA9IGRlY29kZV9saW5lXzEgKCZzdHJp bmcsIGZ1bmZpcnN0bGluZSwKLQkJCSAgKHN0cnVjdCBzeW10YWIgKikgTlVM TCwgMCwgKGNoYXIgKioqKSBOVUxMLCBOVUxMKTsKKwkJCSAgKHN0cnVjdCBz eW10YWIgKikgTlVMTCwgMCwgKGNoYXIgKioqKSBOVUxMLCBOVUxMLCAxKTsK ICAgaWYgKCpzdHJpbmcpCiAgICAgZXJyb3IgKF8oIkp1bmsgYXQgZW5kIG9m IGxpbmUgc3BlY2lmaWNhdGlvbjogJXMiKSwgc3RyaW5nKTsKICAgcmV0dXJu IHNhbHM7CmRpZmYgLS1naXQgYS9nZGIvY2xpL2NsaS1jbWRzLmMgYi9nZGIv Y2xpL2NsaS1jbWRzLmMKaW5kZXggY2U3YzJhNi4uMWYwMzMwNSAxMDA2NDQK LS0tIGEvZ2RiL2NsaS9jbGktY21kcy5jCisrKyBiL2dkYi9jbGkvY2xpLWNt ZHMuYwpAQCAtNjUwLDcgKzY1MCw3IEBAIGVkaXRfY29tbWFuZCAoY2hhciAq YXJnLCBpbnQgZnJvbV90dHkpCiAgICAgICAvKiBOb3cgc2hvdWxkIG9ubHkg YmUgb25lIGFyZ3VtZW50IC0tIGRlY29kZSBpdCBpbiBTQUwuICAqLwogCiAg ICAgICBhcmcxID0gYXJnOwotICAgICAgc2FscyA9IGRlY29kZV9saW5lXzEg KCZhcmcxLCAwLCAwLCAwLCAwLCAwKTsKKyAgICAgIHNhbHMgPSBkZWNvZGVf bGluZV8xICgmYXJnMSwgMCwgMCwgMCwgMCwgMCwgMSk7CiAKICAgICAgIGlm ICghIHNhbHMubmVsdHMpCiAJewpAQCAtNzc3LDcgKzc3Nyw3IEBAIGxpc3Rf Y29tbWFuZCAoY2hhciAqYXJnLCBpbnQgZnJvbV90dHkpCiAgICAgZHVtbXlf YmVnID0gMTsKICAgZWxzZQogICAgIHsKLSAgICAgIHNhbHMgPSBkZWNvZGVf bGluZV8xICgmYXJnMSwgMCwgMCwgMCwgMCwgMCk7CisgICAgICBzYWxzID0g ZGVjb2RlX2xpbmVfMSAoJmFyZzEsIDAsIDAsIDAsIDAsIDAsIDEpOwogCiAg ICAgICBpZiAoIXNhbHMubmVsdHMpCiAJcmV0dXJuOwkJCS8qICBDKysgICov CkBAIC04MTAsOSArODEwLDkgQEAgbGlzdF9jb21tYW5kIChjaGFyICphcmcs IGludCBmcm9tX3R0eSkKICAgICAgIGVsc2UKIAl7CiAJICBpZiAoZHVtbXlf YmVnKQotCSAgICBzYWxzX2VuZCA9IGRlY29kZV9saW5lXzEgKCZhcmcxLCAw LCAwLCAwLCAwLCAwKTsKKwkgICAgc2Fsc19lbmQgPSBkZWNvZGVfbGluZV8x ICgmYXJnMSwgMCwgMCwgMCwgMCwgMCwgMSk7CiAJICBlbHNlCi0JICAgIHNh bHNfZW5kID0gZGVjb2RlX2xpbmVfMSAoJmFyZzEsIDAsIHNhbC5zeW10YWIs IHNhbC5saW5lLCAwLCAwKTsKKwkgICAgc2Fsc19lbmQgPSBkZWNvZGVfbGlu ZV8xICgmYXJnMSwgMCwgc2FsLnN5bXRhYiwgc2FsLmxpbmUsIDAsIDAsIDEp OwogCSAgaWYgKHNhbHNfZW5kLm5lbHRzID09IDApCiAJICAgIHJldHVybjsK IAkgIGlmIChzYWxzX2VuZC5uZWx0cyA+IDEpCmRpZmYgLS1naXQgYS9nZGIv bGluZXNwZWMuYyBiL2dkYi9saW5lc3BlYy5jCmluZGV4IDNlOTQzYTEuLjdj YjY4NTggMTAwNjQ0Ci0tLSBhL2dkYi9saW5lc3BlYy5jCisrKyBiL2dkYi9s aW5lc3BlYy5jCkBAIC02NzksNyArNjc5LDcgQEAgU2VlIHNldC9zaG93IG11 bHRpcGxlLXN5bWJvbC4iKSk7CiAKIHN0cnVjdCBzeW10YWJzX2FuZF9saW5l cwogZGVjb2RlX2xpbmVfMSAoY2hhciAqKmFyZ3B0ciwgaW50IGZ1bmZpcnN0 bGluZSwgc3RydWN0IHN5bXRhYiAqZGVmYXVsdF9zeW10YWIsCi0JICAgICAg IGludCBkZWZhdWx0X2xpbmUsIGNoYXIgKioqY2Fub25pY2FsLCBpbnQgKm5v dF9mb3VuZF9wdHIpCisJICAgICAgIGludCBkZWZhdWx0X2xpbmUsIGNoYXIg KioqY2Fub25pY2FsLCBpbnQgKm5vdF9mb3VuZF9wdHIsIGludCBlbmFibGVf YW1iaWd1aXR5KQogewogICBjaGFyICpwOwogICBjaGFyICpxOwpAQCAtNzM4 LDEzICs3MzgsMTQgQEAgZGVjb2RlX2xpbmVfMSAoY2hhciAqKmFyZ3B0ciwg aW50IGZ1bmZpcnN0bGluZSwgc3RydWN0IHN5bXRhYiAqZGVmYXVsdF9zeW10 YWIsCiAKICAgLyogQ2hlY2sgaWYgdGhlIHN5bWJvbCBjb3VsZCBiZSBhbiBP YmplY3RpdmUtQyBzZWxlY3Rvci4gICovCiAKLSAgewotICAgIHN0cnVjdCBz eW10YWJzX2FuZF9saW5lcyB2YWx1ZXM7Ci0gICAgdmFsdWVzID0gZGVjb2Rl X29iamMgKGFyZ3B0ciwgZnVuZmlyc3RsaW5lLCBOVUxMLAotCQkJICBjYW5v bmljYWwsIHNhdmVkX2FyZyk7Ci0gICAgaWYgKHZhbHVlcy5zYWxzICE9IE5V TEwpCi0gICAgICByZXR1cm4gdmFsdWVzOwotICB9CisgIGlmIChlbmFibGVf YW1iaWd1aXR5KQorICAgIHsKKyAgICAgICBzdHJ1Y3Qgc3ltdGFic19hbmRf bGluZXMgdmFsdWVzOworICAgICAgIHZhbHVlcyA9IGRlY29kZV9vYmpjIChh cmdwdHIsIGZ1bmZpcnN0bGluZSwgTlVMTCwKKwkJCSAgICAgY2Fub25pY2Fs LCBzYXZlZF9hcmcpOworICAgICAgIGlmICh2YWx1ZXMuc2FscyAhPSBOVUxM KQorICAgICAgICAgcmV0dXJuIHZhbHVlczsKKyAgICB9CiAKICAgLyogRG9l cyBpdCBsb29rIGxpa2UgdGhlcmUgYWN0dWFsbHkgd2VyZSB0d28gcGFydHM/ ICAqLwogCmRpZmYgLS1naXQgYS9nZGIvbGluZXNwZWMuaCBiL2dkYi9saW5l c3BlYy5oCmluZGV4IDhhYzZlYTcuLmQ4MGFlZTkgMTAwNjQ0Ci0tLSBhL2dk Yi9saW5lc3BlYy5oCisrKyBiL2dkYi9saW5lc3BlYy5oCkBAIC0yMiw2ICsy Miw3IEBAIHN0cnVjdCBzeW10YWI7CiBleHRlcm4gc3RydWN0IHN5bXRhYnNf YW5kX2xpbmVzCiAJZGVjb2RlX2xpbmVfMSAoY2hhciAqKmFyZ3B0ciwgaW50 IGZ1bmZpcnN0bGluZSwKIAkJICAgICAgIHN0cnVjdCBzeW10YWIgKmRlZmF1 bHRfc3ltdGFiLCBpbnQgZGVmYXVsdF9saW5lLAotCQkgICAgICAgY2hhciAq KipjYW5vbmljYWwsIGludCAqbm90X2ZvdW5kX3B0cik7CisJCSAgICAgICBj aGFyICoqKmNhbm9uaWNhbCwgaW50ICpub3RfZm91bmRfcHRyLAorCQkgICAg ICAgaW50IGVuYWJsZV9hbWJpZ3VpdHkpOwogCiAjZW5kaWYgLyogZGVmaW5l ZCAoTElORVNQRUNfSCkgKi8KZGlmZiAtLWdpdCBhL2dkYi9zeW10YWIuYyBi L2dkYi9zeW10YWIuYwppbmRleCA4ZDlkNzJjLi5kYWU0MGQ1IDEwMDY0NAot LS0gYS9nZGIvc3ltdGFiLmMKKysrIGIvZ2RiL3N5bXRhYi5jCkBAIC00NDcx LDcgKzQ0NzEsNyBAQCBkZWNvZGVfbGluZV9zcGVjIChjaGFyICpzdHJpbmcs IGludCBmdW5maXJzdGxpbmUpCiAKICAgc2FscyA9IGRlY29kZV9saW5lXzEg KCZzdHJpbmcsIGZ1bmZpcnN0bGluZSwKIAkJCWN1cnNhbC5zeW10YWIsIGN1 cnNhbC5saW5lLAotCQkJKGNoYXIgKioqKSBOVUxMLCBOVUxMKTsKKwkJCShj aGFyICoqKikgTlVMTCwgTlVMTCwgMSk7CiAKICAgaWYgKCpzdHJpbmcpCiAg ICAgZXJyb3IgKF8oIkp1bmsgYXQgZW5kIG9mIGxpbmUgc3BlY2lmaWNhdGlv bjogJXMiKSwgc3RyaW5nKTsKZGlmZiAtLWdpdCBhL2dkYi90cmFjZXBvaW50 LmMgYi9nZGIvdHJhY2Vwb2ludC5jCmluZGV4IDBkNDM5ZWYuLmM3YjFkMmQg MTAwNjQ0Ci0tLSBhL2dkYi90cmFjZXBvaW50LmMKKysrIGIvZ2RiL3RyYWNl cG9pbnQuYwpAQCAtMTg1Miw3ICsxODUyLDcgQEAgc2NvcGVfaW5mbyAoY2hh ciAqYXJncywgaW50IGZyb21fdHR5KQogICBpZiAoYXJncyA9PSAwIHx8ICph cmdzID09IDApCiAgICAgZXJyb3IgKF8oInJlcXVpcmVzIGFuIGFyZ3VtZW50 IChmdW5jdGlvbiwgbGluZSBvciAqYWRkcikgdG8gZGVmaW5lIGEgc2NvcGUi KSk7CiAKLSAgc2FscyA9IGRlY29kZV9saW5lXzEgKCZhcmdzLCAxLCBOVUxM LCAwLCAmY2Fub25pY2FsLCBOVUxMKTsKKyAgc2FscyA9IGRlY29kZV9saW5l XzEgKCZhcmdzLCAxLCBOVUxMLCAwLCAmY2Fub25pY2FsLCBOVUxMLCAxKTsK ICAgaWYgKHNhbHMubmVsdHMgPT0gMCkKICAgICByZXR1cm47CQkvKiBwcmVz dW1hYmx5IGRlY29kZV9saW5lXzEgaGFzIGFscmVhZHkgd2FybmVkICovCiAK LS0gCjEuNi4yLjUKCg== --000e0cd48af69c46ad04734bd2b7--