From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 91779 invoked by alias); 28 Nov 2016 09:24:16 -0000 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org Received: (qmail 91536 invoked by uid 89); 28 Nov 2016 09:24:05 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.4 required=5.0 tests=AWL,BAYES_60,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_NONE,RP_MATCHES_RCVD autolearn=no version=3.3.2 spammy=discover, belonging, 8:sc, inf X-HELO: mail.marco.de Received: from mail.marco.de (HELO mail.marco.de) (93.104.246.50) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 28 Nov 2016 09:23:55 +0000 Received: from mailbox.marco.de (mailbox [10.1.2.4]) by mail.marco.de (Postfix) with ESMTP id 9023D762145; Mon, 28 Nov 2016 10:23:52 +0100 (CET) Received: from [10.1.1.28] (rhea.dachau.marco.de [10.1.1.28]) (Authenticated sender: leo) by mailbox.marco.de (Postfix) with ESMTPSA; Mon, 28 Nov 2016 10:23:52 +0100 (CET) Subject: Re: [bug?] [patch] target remote and multiprocess+ To: Luis Machado , GDB References: <5832E93B.9060507@marco.de> <58355990.3000002@marco.de> From: Matthias Pfaller Message-ID: <583BF7A8.80800@marco.de> Date: Mon, 28 Nov 2016 09:24:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-512; boundary="------------ms030809090308030504000208" X-IsSubscribed: yes X-SW-Source: 2016-11/txt/msg00061.txt.bz2 This is a cryptographically signed message in MIME format. --------------ms030809090308030504000208 Content-Type: multipart/mixed; boundary="------------040700080102090309050902" This is a multi-part message in MIME format. --------------040700080102090309050902 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Content-length: 4795 On 11/23/2016 04:45 PM, Luis Machado wrote: > Hi, >=20 > On 11/23/2016 02:55 AM, Matthias Pfaller wrote: >> To make sure I'm not totally wrong I did run an (unpatched) gdbserver >> (7.11.1) -multi on my host machine. Then I connected with >> extended-remote and created two inferiors. After a disconnect and a >> reconnect gdbserver responds with the following inferior/thread list: >> >> l\n\n> id=3D"p3dcf.3dcf" core=3D"1" name=3D"xterm"/>\n\n >> >> But doing a "info inferiors" will show: >> (gdb) info inferiors >> Num Description Executable >> * 1 process 15823 /usr/uti/xterm >> >> and info threads: >> (gdb) info threads >> Sending packet: $qXfer:threads:read::0,fff#03...Packet received: >> l\n\n> id=3D"p3dcf.3dcf" core=3D"1" name=3D"xterm"/>\n\n >> Id Target Id Frame >> 1 Thread 10670.10670 "xterm" >> ../../gdb/thread.c:1447: internal-error: switch_to_thread: Assertion >> `inf !=3D NULL' failed. >> A problem internal to GDB has been detected, >> further debugging may prove unreliable. >> Quit this debugging session? (y or n) >> >> (note that this is the host system's gdb 7.11.1) >> So attaching to a target with multiple running inferiors just doesn't >> work at the moment. >> >> Now I tried with gdb-7.12 and my patches applied: >> >> (gdb) set non-stop on >> (gdb) target remote localhost:29979 >> Remote debugging using localhost:29979 >> Reading /usr/uti/xterm from remote target... >> warning: File transfers from remote targets can be slow. Use "set >> sysroot" to access files locally instead. >> Reading /usr/uti/xterm from remote target... >> Reading symbols from target:/usr/uti/xterm...(no debugging symbols >> found)...done. >> Python Exception Installation error: >> gdb.execute_unwinders function is missing: >> >> Thread 1.1 "xterm" stopped. >> 0x00007ffff7ddac80 in ?? () >> Python Exception Installation error: >> gdb.execute_unwinders function is missing: >> >> Thread 2.1 "xterm" stopped. >> 0x00007ffff7ddac80 in ?? () >> (gdb) info threads >> Id Target Id Frame >> 1.1 Thread 10670.10670 "xterm" Python Exception > 'exceptions.NameError'> Installation error: gdb.execute_unwinders >> function is missing: >> 0x00007ffff7ddac80 in ?? () >> * 2.1 Thread 15823.15823 "xterm" Python Exception > 'exceptions.NameError'> Installation error: gdb.execute_unwinders >> function is missing: >> 0x00007ffff7ddac80 in ?? () >> (gdb) info inferiors >> Num Description Executable >> 1 process 10670 target:/usr/uti/xterm >> * 2 process 15823 target:/usr/uti/xterm >> >> So I think this is at least not worse than what gdb was doing before... >> Is there a chance to get this patch into gdb? >> >> Matthias >> >=20 > I think i misunderstood your initial explanation. So the patch in > questions attempts to fix the internal error plus the fact that GDB > doesn't show more than one inferior when connecting to a gdbserver that > is controlling multiple inferiors? >=20 > If so, indeed it is a bug and i still see it on master GDB. I'd send the > patch to gdb-patches so we can properly review it. >=20 > Also, did you run the gdb testsuite to make sure your patch did not > introduce regressions comparing against the unpatch gdb testsuite run? >=20 > You can run the testsuite like this: >=20 > make check-gdb (top-level) or make-gdb >=20 > You should also run the testsuite against gdbserver like this: >=20 > make check-gdb RUNTESTFLAGS=3D"--target_board native-gdbserver" A gdb-7.12 built with the attached patch gives the same FAIL lines for make check and make check-gdb RUNTESTFLAGS=3D"--target_board native-gdbserver" as a gdb-7.12 built without my patch. The patch does: * make "multiprocess+;" work with "target remote" * stop inferiors only for the event thread when a break or watch point is hit * stop new inferiors only when global break or watch points are in place This makes it possible to debug an embedded target where gdbserver is running as native thread on the target. The target has to report the threadlist as an inferiorlist with one thread per inferior. That way one can context switch break and watch points and halt only the thread to be debugged. regards, Matthias --=20 Matthias Pfaller Software Entwicklung marco Systemanalyse und Entwicklung GmbH Tel +49 8131 5161 41 Hans-B=C3=B6ckler-Str. 2, D 85221 Dachau Fax +49 8131 5161 66 http://www.marco.de/ Email leo@marco.de Gesch=C3=A4ftsf=C3=BChrer Martin Reuter HRB 171775 Amtsgericht = M=C3=BCnchen --------------040700080102090309050902 Content-Type: text/plain; charset=UTF-8; name="P.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="P.txt" Content-length: 9033 LS0tIC4uL29yaWcvZ2RiL2JyZWFrcG9pbnQuYworKysgLi9nZGIvYnJlYWtw b2ludC5jCi0tLSAuLi9vcmlnL2dkYi9pbmZjbWQuYworKysgLi9nZGIvaW5m Y21kLmMKQEAgLTI3NDEsNyArMjc0MSw3IEBACiAJICBzdHJ1Y3QgdGhyZWFk X2luZm8gKmxvd2VzdCA9IGluZmVyaW9yX3RocmVhZCAoKTsKIAkgIGludCBw aWQgPSBjdXJyZW50X2luZmVyaW9yICgpLT5waWQ7CiAKLQkgIHN0b3BfYWxs X3RocmVhZHMgKCk7CisJICBzdG9wX2FsbF90aHJlYWRzIChpbmZlcmlvcik7 CiAKIAkgIC8qIEl0J3Mgbm90IGRlZmluZWQgd2hpY2ggdGhyZWFkIHdpbGwg cmVwb3J0IHRoZSBhdHRhY2gKIAkgICAgIHN0b3AuICBGb3IgY29uc2lzdGVu Y3ksIGFsd2F5cyBzZWxlY3QgdGhlIHRocmVhZCB3aXRoCkBAIC0yOTIwLDYg KzI5MjAsMjggQEAKICAgYXR0YWNoX3Bvc3Rfd2FpdCAoYXJncywgZnJvbV90 dHksIG1vZGUpOwogfQogCisvKiBIZWxwZXIgZnVuY3Rpb24gZm9yIGFueV9n bG9iYWxfYnJlYWtwb2ludC4gIElmIEIgaXMgYSBnbG9iYWwKKyAgIGJyZWFr IG9yIGNhdGNoIHBvaW50LCByZXR1cm4gMSAod2hpY2ggd2lsbCBtYWtlCisg ICAnYnJlYWtwb2ludF9maW5kX2lmJyByZXR1cm4pLiAgT3RoZXJ3aXNlLCBy ZXR1cm4gMC4gICovCisKK3N0YXRpYyBpbnQKK2FueV9nbG9iYWxfYnJlYWtw b2ludF8xIChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwKKwkJCSAgIHZvaWQgKmRh dGEpCit7CisgIGlmIChiLT5lbmFibGVfc3RhdGUgPT0gYnBfZW5hYmxlZCAm JiBiLT50aHJlYWQgPT0gLTEpCisgICAgcmV0dXJuIDE7CisgIGVsc2UKKyAg ICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAorYW55X2dsb2JhbF9icmVh a3BvaW50ICh2b2lkKQoreworICBzdHJ1Y3QgYnJlYWtwb2ludCAqYiA9IGJy ZWFrcG9pbnRfZmluZF9pZiAoYW55X2dsb2JhbF9icmVha3BvaW50XzEsIE5V TEwpOworCisgIHJldHVybiBiICE9IE5VTEw7Cit9CisKIC8qIFdlIGhhZCBq dXN0IGZvdW5kIG91dCB0aGF0IHRoZSB0YXJnZXQgd2FzIGFscmVhZHkgYXR0 YWNoZWQgdG8gYW4KICAgIGluZmVyaW9yLiAgUFRJRCBwb2ludHMgYXQgYSB0 aHJlYWQgb2YgdGhpcyBuZXcgaW5mZXJpb3IsIHRoYXQgaXMKICAgIHRoZSBt b3N0IGxpa2VseSB0byBiZSBzdG9wcGVkIHJpZ2h0IG5vdywgYnV0IG5vdCBu ZWNlc3NhcmlseSBzby4KQEAgLTI5NDgsNyArMjk3MCw5IEBACiAgIC8qIFdo ZW4gd2UgIm5vdGljZSIgYSBuZXcgaW5mZXJpb3Igd2UgbmVlZCB0byBkbyBh bGwgdGhlIHRoaW5ncyB3ZQogICAgICB3b3VsZCBub3JtYWxseSBkbyBpZiB3 ZSBoYWQganVzdCBhdHRhY2hlZCB0byBpdC4gICovCiAKLSAgaWYgKGlzX2V4 ZWN1dGluZyAoaW5mZXJpb3JfcHRpZCkpCisgIGlmICghbGVhdmVfcnVubmlu ZyAmJgorICAgICAgYW55X2dsb2JhbF9icmVha3BvaW50ICgpICYmCisgICAg ICBpc19leGVjdXRpbmcgKGluZmVyaW9yX3B0aWQpKQogICAgIHsKICAgICAg IHN0cnVjdCBhdHRhY2hfY29tbWFuZF9jb250aW51YXRpb25fYXJncyAqYTsK ICAgICAgIHN0cnVjdCBpbmZlcmlvciAqaW5mZXJpb3IgPSBjdXJyZW50X2lu ZmVyaW9yICgpOwotLS0gLi4vb3JpZy9nZGIvaW5mZXJpb3IuYworKysgLi9n ZGIvaW5mZXJpb3IuYwpAQCAtMzIwLDEzICszMjAsMjcgQEAKIHZvaWQKIGRp c2NhcmRfYWxsX2luZmVyaW9ycyAodm9pZCkKIHsKLSAgc3RydWN0IGluZmVy aW9yICppbmY7CisgIHN0cnVjdCBpbmZlcmlvciAqaW5mLCAqaW5mbmV4dDsK IAotICBmb3IgKGluZiA9IGluZmVyaW9yX2xpc3Q7IGluZjsgaW5mID0gaW5m LT5uZXh0KQorICBmb3IgKGluZiA9IGluZmVyaW9yX2xpc3Q7IGluZjsgaW5m ID0gaW5mbmV4dCkKICAgICB7Ci0gICAgICBpZiAoaW5mLT5waWQgIT0gMCkK LQlleGl0X2luZmVyaW9yX3NpbGVudCAoaW5mLT5waWQpOworICAgICAgaW5m bmV4dCA9IGluZi0+bmV4dDsKKyAgICAgIAorICAgICAgaWYgKGluZi0+bnVt ID09IDEpCisgICAgICAgIHsKKwkgIGlmIChpbmYtPnBpZCAhPSAwKQorCSAg ICBleGl0X2luZmVyaW9yXzEgKGluZiwgMSk7CisJfQorICAgICAgZWxzZQor CWRlbGV0ZV9pbmZlcmlvciAoaW5mKTsKICAgICB9CisKKyAgaW5mZXJpb3Jf cHRpZCA9IG51bGxfcHRpZDsKKyAgaW5mZXJpb3JfbGlzdC0+cGlkID0gMDsK KyAgc2V0X2N1cnJlbnRfaW5mZXJpb3IgKGluZmVyaW9yX2xpc3QpOworICBz d2l0Y2hfdG9fdGhyZWFkIChudWxsX3B0aWQpOworCisgIGhpZ2hlc3RfaW5m ZXJpb3JfbnVtID0gaW5mZXJpb3JfbGlzdC0+bnVtOwogfQogCiBzdHJ1Y3Qg aW5mZXJpb3IgKgotLS0gLi4vb3JpZy9nZGIvaW5mcnVuLmMKKysrIC4vZ2Ri L2luZnJ1bi5jCkBAIC0yNTg0LDcgKzI1ODQsNyBAQAogCSAgLyogRmFsbGJh Y2sgdG8gc3RlcHBpbmcgb3ZlciB0aGUgYnJlYWtwb2ludCBpbi1saW5lLiAg Ki8KIAogCSAgaWYgKHRhcmdldF9pc19ub25fc3RvcF9wICgpKQotCSAgICBz dG9wX2FsbF90aHJlYWRzICgpOworCSAgICBzdG9wX2FsbF90aHJlYWRzICh0 cC0+aW5mKTsKIAogCSAgc2V0X3N0ZXBfb3Zlcl9pbmZvIChnZXRfcmVnY2Fj aGVfYXNwYWNlIChyZWdjYWNoZSksCiAJCQkgICAgICByZWdjYWNoZV9yZWFk X3BjIChyZWdjYWNoZSksIDAsIHRwLT5nbG9iYWxfbnVtKTsKQEAgLTQ0OTYs NyArNDQ5Niw3IEBACiAvKiBTZWUgaW5mcnVuLmguICAqLwogCiB2b2lkCi1z dG9wX2FsbF90aHJlYWRzICh2b2lkKQorc3RvcF9hbGxfdGhyZWFkcyAoc3Ry dWN0IGluZmVyaW9yICppbmZlcmlvcikKIHsKICAgLyogV2UgbWF5IG5lZWQg bXVsdGlwbGUgcGFzc2VzIHRvIGRpc2NvdmVyIGFsbCB0aHJlYWRzLiAgKi8K ICAgaW50IHBhc3M7CkBAIC00NTA5LDYgKzQ1MDksMTEgQEAKICAgaWYgKGRl YnVnX2luZnJ1bikKICAgICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRs b2csICJpbmZydW46IHN0b3BfYWxsX3RocmVhZHNcbiIpOwogCisgIC8qIFdp dGggZ2xvYmFsIGJyZWFrIHBvaW50cyB3ZSBoYXZlIGFsd2F5cyB0bworICAg ICBzdG9wIGFsbCB0aHJlYWRzIG9mIGFsbCBpbmZlcmlvcnMuICAqLworICBp ZiAoZ2RiYXJjaF9oYXNfZ2xvYmFsX2JyZWFrcG9pbnRzICh0YXJnZXRfZ2Ri YXJjaCAoKSkpCisgICAgaW5mZXJpb3IgPSBOVUxMOworCiAgIGVudHJ5X3B0 aWQgPSBpbmZlcmlvcl9wdGlkOwogICBvbGRfY2hhaW4gPSBtYWtlX2NsZWFu dXAgKHN3aXRjaF90b190aHJlYWRfY2xlYW51cCwgJmVudHJ5X3B0aWQpOwog CkBAIC00NTM5LDYgKzQ1NDQsOCBAQAogCSAgICAgdG8gdGVsbCB0aGUgdGFy Z2V0IHRvIHN0b3AuICAqLwogCSAgQUxMX05PTl9FWElURURfVEhSRUFEUyAo dCkKIAkgICAgeworCSAgICAgIGlmIChpbmZlcmlvciAhPSBOVUxMICYmIGlu ZmVyaW9yICE9IHQtPmluZikKKwkgICAgICAJY29udGludWU7CiAJICAgICAg aWYgKHQtPmV4ZWN1dGluZykKIAkJewogCQkgIC8qIElmIGFscmVhZHkgc3Rv cHBpbmcsIGRvbid0IHJlcXVlc3QgYSBzdG9wIGFnYWluLgpAQCAtNTQ0Miw3 ICs1NDQ5LDcgQEAKIAogICBBTExfTk9OX0VYSVRFRF9USFJFQURTICh0cCkK ICAgICB7Ci0gICAgICBpZiAodHAgPT0gZXZlbnRfdGhyZWFkKQorICAgICAg aWYgKHRwID09IGV2ZW50X3RocmVhZCB8fCB0cC0+aW5mICE9IGV2ZW50X3Ro cmVhZC0+aW5mKQogCXsKIAkgIGlmIChkZWJ1Z19pbmZydW4pCiAJICAgIGZw cmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKQEAgLTc3MDUsNyArNzcx Miw3IEBACiAgIC8qIElmIGFsbC1zdG9wLCBidXQgdGhlIHRhcmdldCBpcyBh bHdheXMgaW4gbm9uLXN0b3AgbW9kZSwgc3RvcCBhbGwKICAgICAgdGhyZWFk cyBub3cgdGhhdCB3ZSdyZSBwcmVzZW50aW5nIHRoZSBzdG9wIHRvIHRoZSB1 c2VyLiAgKi8KICAgaWYgKCFub25fc3RvcCAmJiB0YXJnZXRfaXNfbm9uX3N0 b3BfcCAoKSkKLSAgICBzdG9wX2FsbF90aHJlYWRzICgpOworICAgIHN0b3Bf YWxsX3RocmVhZHMgKE5VTEwpOwogfQogCiAvKiBMaWtlIGtlZXBfZ29pbmcs IGJ1dCBwYXNzZXMgdGhlIHNpZ25hbCB0byB0aGUgaW5mZXJpb3IsIGV2ZW4g aWYgdGhlCkBAIC03ODIxLDcgKzc4MjgsNyBAQAogCSB3ZSdyZSBhYm91dCB0 byBzdGVwIG92ZXIsIG90aGVyd2lzZSBvdGhlciB0aHJlYWRzIGNvdWxkIG1p c3MKIAkgaXQuICAqLwogICAgICAgaWYgKHN0ZXBfb3Zlcl9pbmZvX3ZhbGlk X3AgKCkgJiYgdGFyZ2V0X2lzX25vbl9zdG9wX3AgKCkpCi0Jc3RvcF9hbGxf dGhyZWFkcyAoKTsKKwlzdG9wX2FsbF90aHJlYWRzIChlY3MtPmV2ZW50X3Ro cmVhZC0+aW5mKTsKIAogICAgICAgLyogU3RvcCBzdGVwcGluZyBpZiBpbnNl cnRpbmcgYnJlYWtwb2ludHMgZmFpbHMuICAqLwogICAgICAgVFJZCi0tLSAu Li9vcmlnL2dkYi9pbmZydW4uaAorKysgLi9nZGIvaW5mcnVuLmgKQEAgLTEx MCw4ICsxMTAsMTIgQEAKIGV4dGVybiB2b2lkIHNldF9sYXN0X3RhcmdldF9z dGF0dXMgKHB0aWRfdCBwdGlkLAogCQkJCSAgICBzdHJ1Y3QgdGFyZ2V0X3dh aXRzdGF0dXMgc3RhdHVzKTsKIAotLyogU3RvcCBhbGwgdGhyZWFkcy4gIE9u bHkgcmV0dXJucyBhZnRlciBldmVyeXRoaW5nIGlzIGhhbHRlZC4gICovCi1l eHRlcm4gdm9pZCBzdG9wX2FsbF90aHJlYWRzICh2b2lkKTsKKy8qIFN0b3Ag YWxsIHRocmVhZHMgYmVsb25naW5nIHRvIGluZi4KKyAgIFdoZW4gY2FsbGVk IHdpdGggaW5mID09IE5VTEwsIHN0b3AgYWxsIHRocmVhZHMgb2YgYWxsIGlu ZmVyaW9ycy4KKyAgIFdpdGggZ2RiYXJjaF9oYXNfZ2xvYmFsX2JyZWFrcG9p bnRzICgpIGlzIHRydWUsIGFsd2F5cyBzdG9wIGFsbAorICAgdGhyZWFkcyBv ZiBhbGwgaW5mZXJpb3JzLgorICAgT25seSByZXR1cm5zIGFmdGVyIGV2ZXJ5 dGhpbmcgaXMgaGFsdGVkLiAgKi8KK2V4dGVybiB2b2lkIHN0b3BfYWxsX3Ro cmVhZHMgKHN0cnVjdCBpbmZlcmlvciAqaW5mKTsKIAogZXh0ZXJuIHZvaWQg cHJlcGFyZV9mb3JfZGV0YWNoICh2b2lkKTsKIAotLS0gLi4vb3JpZy9nZGIv cmVtb3RlLmMKKysrIC4vZ2RiL3JlbW90ZS5jCkBAIC0xNzg5LDggKzE3ODks MjQgQEAKICAgICAgIC8qIEluIHRoZSB0cmFkaXRpb25hbCBkZWJ1Z2dpbmcg c2NlbmFyaW8sIHRoZXJlJ3MgYSAxLTEgbWF0Y2gKIAkgYmV0d2VlbiBwcm9n cmFtL2FkZHJlc3Mgc3BhY2VzLiAgV2Ugc2ltcGx5IGJpbmQgdGhlIGluZmVy aW9yCiAJIHRvIHRoZSBwcm9ncmFtIHNwYWNlJ3MgYWRkcmVzcyBzcGFjZS4g ICovCi0gICAgICBpbmYgPSBjdXJyZW50X2luZmVyaW9yICgpOwotICAgICAg aW5mZXJpb3JfYXBwZWFyZWQgKGluZiwgcGlkKTsKKworICAgICAgaW5mID0g ZmluZF9pbmZlcmlvcl9pZCAocGlkKTsKKyAgICAgIGlmIChpbmYgPT0gTlVM TCkKKyAgICAgICAgeworCSAgaWYgKGN1cnJlbnRfaW5mZXJpb3IgKCkgLT5w aWQgPT0gMCkKKwkgICAgeworCSAgICAgIGluZiA9IGN1cnJlbnRfaW5mZXJp b3IgKCk7CisJICAgICAgaW5mZXJpb3JfYXBwZWFyZWQgKGluZiwgcGlkKTsK KwkgICAgfQorCSAgZWxzZQorCSAgICB7CisJICAgICAgaW5mID0gYWRkX2lu ZmVyaW9yIChwaWQpOworCSAgICAgIGluZi0+YXNwYWNlID0gY3VycmVudF9p bmZlcmlvciAoKSAtPmFzcGFjZTsKKwkgICAgICBpbmYtPnBzcGFjZSA9IGN1 cnJlbnRfcHJvZ3JhbV9zcGFjZTsKKwkgICAgICBpbmYtPmdkYmFyY2ggPSBj dXJyZW50X2luZmVyaW9yICgpIC0+Z2RiYXJjaDsKKwkgICAgICBjb3B5X2lu ZmVyaW9yX3RhcmdldF9kZXNjX2luZm8oaW5mLCBjdXJyZW50X2luZmVyaW9y ICgpKTsKKwkgICAgfQorICAgICAgICB9CiAgICAgfQogCiAgIGluZi0+YXR0 YWNoX2ZsYWcgPSBhdHRhY2hlZDsKQEAgLTE4MDEsNiArMTgxNywxMCBAQAog ICBpZiAodHJ5X29wZW5fZXhlYyAmJiBnZXRfZXhlY19maWxlICgwKSA9PSBO VUxMKQogICAgIGV4ZWNfZmlsZV9sb2NhdGVfYXR0YWNoIChwaWQsIDAsIDEp OwogCisgIHNldF9jdXJyZW50X2luZmVyaW9yIChpbmYpOworCisgIGluZmVy aW9yX3B0aWQgPSBwaWRfdG9fcHRpZCAocGlkKTsKKwogICByZXR1cm4gaW5m OwogfQogCkBAIC0xOTAyLDYgKzE5MjIsOSBAQAogCiAgICAgICAvKiBUaGlz IGlzIHJlYWxseSBhIG5ldyB0aHJlYWQuICBBZGQgaXQuICAqLwogICAgICAg cmVtb3RlX2FkZF90aHJlYWQgKGN1cnJ0aHJlYWQsIHJ1bm5pbmcsIGV4ZWN1 dGluZyk7CisgICAgICBpZiAocHRpZF9pc19waWQgKGluZmVyaW9yX3B0aWQp CisJICAmJiBwaWQgPT0gcHRpZF9nZXRfcGlkIChpbmZlcmlvcl9wdGlkKSkK KyAgICAgICAgaW5mZXJpb3JfcHRpZCA9IGN1cnJ0aHJlYWQ7CiAKICAgICAg IC8qIElmIHdlIGZvdW5kIGEgbmV3IGluZmVyaW9yLCBsZXQgdGhlIGNvbW1v biBjb2RlIGRvIHdoYXRldmVyCiAJIGl0IG5lZWRzIHRvIHdpdGggaXQgKGUu Zy4sIHJlYWQgc2hhcmVkIGxpYnJhcmllcywgaW5zZXJ0CkBAIC0zOTM3LDcg KzM5NjAsNyBAQAogICAgICB0aGUgaW5mZXJpb3JzLiAgKi8KICAgaWYgKCFu b25fc3RvcCkKICAgICB7Ci0gICAgICBzdG9wX2FsbF90aHJlYWRzICgpOwor ICAgICAgc3RvcF9hbGxfdGhyZWFkcyAoTlVMTCk7CiAKICAgICAgIC8qIElm IGFsbCB0aHJlYWRzIG9mIGFuIGluZmVyaW9yIHdlcmUgYWxyZWFkeSBzdG9w cGVkLCB3ZQogCSBoYXZlbid0IHNldHVwIHRoZSBpbmZlcmlvciB5ZXQuICAq Lwo= --------------040700080102090309050902-- --------------ms030809090308030504000208 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature Content-length: 5897 MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgMFADCABgkqhkiG 9w0BBwEAAKCCC88wggXiMIIDyqADAgECAhBrp4p9CteI1lEK+Vnk57ThMA0G CSqGSIb3DQEBCwUAMH0xCzAJBgNVBAYTAklMMRYwFAYDVQQKEw1TdGFydENv bSBMdGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0ZSBT aWduaW5nMSkwJwYDVQQDEyBTdGFydENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhv cml0eTAeFw0xNTEyMTYwMTAwMDVaFw0zMDEyMTYwMTAwMDVaMHUxCzAJBgNV BAYTAklMMRYwFAYDVQQKEw1TdGFydENvbSBMdGQuMSkwJwYDVQQLEyBTdGFy dENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEjMCEGA1UEAxMaU3RhcnRD b20gQ2xhc3MgMSBDbGllbnQgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw ggEKAoIBAQC9fdr3w6J9g/Zbgv3bW1+uHht1wLUZr5gkrLtXedg17AkefMyU GwrQdvwObhajcVmnKVxhrUwkZPXRAwZZosRHfEIi5FH7x6SV/8Sp5lZEuiMn vMFG2MzLA84J6Ws5T4NfXZ0qn4TPgnr3X2vPVS51M7Ua9nIJgn8jvTra4eyy QzxvuA/GZwKg7VQfDCmCS+kICslYYWgXOMt2xlsSslxLce0CGWRsT8EpMyt1 iDflSjXZIsE7m1uTyHaKZspMLyIyz6mySu8j8BWWHpChNNeTrFuhVfrOAyDP FJVUvKZCLKBhibTLloyy+LatoWELrjdI4a8StZY8+dIR9t4APXGzAgMBAAGj ggFkMIIBYDAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0lBBYwFAYIKwYBBQUHAwIG CCsGAQUFBwMEMBIGA1UdEwEB/wQIMAYBAf8CAQAwMgYDVR0fBCswKTAnoCWg I4YhaHR0cDovL2NybC5zdGFydHNzbC5jb20vc2ZzY2EuY3JsMGYGCCsGAQUF BwEBBFowWDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3Auc3RhcnRzc2wuY29t MDAGCCsGAQUFBzAChiRodHRwOi8vYWlhLnN0YXJ0c3NsLmNvbS9jZXJ0cy9j YS5jcnQwHQYDVR0OBBYEFCSBbDlhvkkPj7cbRivJKLUnSG1oMB8GA1UdIwQY MBaAFE4L7xqkQFulF2mHMMo0aEPQQa7yMD8GA1UdIAQ4MDYwNAYEVR0gADAs MCoGCCsGAQUFBwIBFh5odHRwOi8vd3d3LnN0YXJ0c3NsLmNvbS9wb2xpY3kw DQYJKoZIhvcNAQELBQADggIBAIvj94fsAYuErQ8BAluc4SMnIwS9NPBwAm5S H9uh2NCXTq7im61g7F1LIiNI/+wq37fUuaMbz4g7VarKQTgf8ubs0p7NZWcI e7Bvem2AWaXBsxsaRTYw5kG3DN8pd1hSEUuFoTa7DmNeFe8tiK1BrL3rbA/m 48jp4AiFXgvxprJrW7izsyetOrRHPbkW4Y07v29MdhaPv3u1JELyszXqOzjI Yo4sWlC8iDQXwgSW/ntvWy2n4LuiaozlCfXl149tKeqvwlvrla2Yklue/quW p9j9ou4T/OY0CXMuY+B8wNK0ohd2D4ShgFlMSjzAFRoHGKF81snTr2d1A7Ew 02oF6UQyCkC2aNNsK5cWOojBar5c7HplX9aHYUCZouxIeU28SONJAxnATgR4 cJ2jrpmYSz/kliUJ46S6UpVDo/ebn9c6PaM/XtDYCCaM/7XX6wc3s++sbQ7C tCn1Ax7df6ufQbwyO0V+oFa9H0KAsjHMzcwk3EV2B2NLatidKE/m7G+rB9m+ FlVgIiSp0mGlg43QO9Kh1+JqvTCIzv2bJJkmPMLQJNuKKwHNL8F4GGp6jbAV +WL+LDeGfVcq8DHS3LrD+xyYEXQBiqZEdiPVOMxLDSUCXsDO0uCWpaNQ8j6y 6S9p0xE/Ga0peVLadVHhqf9nXqKaxnr358VgfrxzUIrvOaOjMIIF5TCCBM2g AwIBAgIQIHbHM980Evwjct9SmnLqQjANBgkqhkiG9w0BAQsFADB1MQswCQYD VQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjEpMCcGA1UECxMgU3Rh cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIzAhBgNVBAMTGlN0YXJ0 Q29tIENsYXNzIDEgQ2xpZW50IENBMB4XDTE2MDYyMDEyMDEzNVoXDTE5MDky MDEyMDEzNVowNDEVMBMGA1UEAwwMbGVvQG1hcmNvLmRlMRswGQYJKoZIhvcN AQkBFgxsZW9AbWFyY28uZGUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK AoICAQDSGmyTfoERpWTylzlGjS7CTXsKVjXq8HMfxPECInX4297aDGrZdVgY cLUqYDtQV7/U7v/NLwoVpiPu3vnJZwqNz6A1iyH+pIF2+RIBg6PMOAtZHfbD JyDqOsbPfS07aW+R+ZJBaMKX5XTONtJREmnfSuimz+xRkqG5iTUs7oqh69hl +uytf4yUq7OxBF8c4n/zvDO5FY7tcELpSSHUXvafU4MfkvuLqjR9ZMGf3b3+ cEMwCJ5ahWV58JecIE9cgrp6g/ZY5nRjARNdR89xgTGF08hKGWC4lBssiVCD Qu+gAMB9z/rJJ3JWeWAj3VJeWDrDHpWleH55mUNGGORKb/yDdOKwUtju8xqJ X16xS6bCME7f7BMlhrMDGupGYlAQLRrYp8hwq+Y17Hcy541q6kn44X7OnjFX schwiDJfcJ0zh8/26JR76sPEGZV+VHBPV1nO07IQoZz20X5fTHD8PVZXkorZ oKWCbopmQEUE9dvn9nImyINCt1E2qDLRVHKXJucbdpthpN+wAwMA8N4d5jgR nfOqdZ7Gu8h1GfM0Mj01mKvfyi/1nNWHopR8vTZ+uV062iGl5YLeAJFk2kqL b/hG9EHk+F0T4reeQsMLtk1H35M7kS8PlObXc4OlSGD/oDrb+jGfAqbueMhD xfxr83o6kup1Qpi/0rVkgv5FCj2dSwIDAQABo4IBsDCCAawwDgYDVR0PAQH/ BAQDAgSwMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAJBgNVHRME AjAAMB0GA1UdDgQWBBTn0WEZECQdirz6o75Ym30HEzJfTzAfBgNVHSMEGDAW gBQkgWw5Yb5JD4+3G0YrySi1J0htaDBvBggrBgEFBQcBAQRjMGEwJAYIKwYB BQUHMAGGGGh0dHA6Ly9vY3NwLnN0YXJ0c3NsLmNvbTA5BggrBgEFBQcwAoYt aHR0cDovL2FpYS5zdGFydHNzbC5jb20vY2VydHMvc2NhLmNsaWVudDEuY3J0 MDgGA1UdHwQxMC8wLaAroCmGJ2h0dHA6Ly9jcmwuc3RhcnRzc2wuY29tL3Nj YS1jbGllbnQxLmNybDAXBgNVHREEEDAOgQxsZW9AbWFyY28uZGUwIwYDVR0S BBwwGoYYaHR0cDovL3d3dy5zdGFydHNzbC5jb20vMEcGA1UdIARAMD4wPAYL KwYBBAGBtTcBAgUwLTArBggrBgEFBQcCARYfaHR0cHM6Ly93d3cuc3RhcnRz c2wuY29tL3BvbGljeTANBgkqhkiG9w0BAQsFAAOCAQEAHev1G7qoycMr1K9q l8W+3BYh1AtFbT3SmTZLdHevy9XcWbd5x34WxjrrNC07L38bRKy7et3lXXpi bhTqfgweEUz3S7QK0oorFJ9lcN8IHc4NrH7E/JpTG6xkOP1KdlzpH4jYWQfK uOUSmw8hzaF1Jdz80ul4W5iPvRDPcKe1N5Zqjbh28rN91Cy7KszX8PoKzNa3 Rwpqix6v5XPnY02dPCkEgKntxRGfyF0Wr9oURy5XtXLTXA4gYIZW+t+9QX49 XpbJgpQHkzS8XuyMaE/0xdPywYzKVCByhzlIYwRekuENaOzuQFW6YRsYSRos 3kPEBQ+dShUt99yFAQIROUCLvzGCBOwwggToAgEBMIGJMHUxCzAJBgNVBAYT AklMMRYwFAYDVQQKEw1TdGFydENvbSBMdGQuMSkwJwYDVQQLEyBTdGFydENv bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEjMCEGA1UEAxMaU3RhcnRDb20g Q2xhc3MgMSBDbGllbnQgQ0ECECB2xzPfNBL8I3LfUppy6kIwDQYJYIZIAWUD BAIDBQCgggIzMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcN AQkFMQ8XDTE2MTEyODA5MjM1MlowTwYJKoZIhvcNAQkEMUIEQD+xC4PhG4Xz daRyRoys0qUzuSRsOd0+8m7REiU3sv4s5Y0Zj403Uat64/RIyoD0bVmi8eA2 OqI/q5GvnaklNy0wbAYJKoZIhvcNAQkPMV8wXTALBglghkgBZQMEASowCwYJ YIZIAWUDBAECMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG 9w0DAgIBQDAHBgUrDgMCBzANBggqhkiG9w0DAgIBKDCBmgYJKwYBBAGCNxAE MYGMMIGJMHUxCzAJBgNVBAYTAklMMRYwFAYDVQQKEw1TdGFydENvbSBMdGQu MSkwJwYDVQQLEyBTdGFydENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEj MCEGA1UEAxMaU3RhcnRDb20gQ2xhc3MgMSBDbGllbnQgQ0ECECB2xzPfNBL8 I3LfUppy6kIwgZwGCyqGSIb3DQEJEAILMYGMoIGJMHUxCzAJBgNVBAYTAklM MRYwFAYDVQQKEw1TdGFydENvbSBMdGQuMSkwJwYDVQQLEyBTdGFydENvbSBD ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEjMCEGA1UEAxMaU3RhcnRDb20gQ2xh c3MgMSBDbGllbnQgQ0ECECB2xzPfNBL8I3LfUppy6kIwDQYJKoZIhvcNAQEB BQAEggIAPu86nWp/cZBDxYa8Fx/plrhwEJZMqpRZLQlbBXPjBj/x5HTjXq+p zStvlS5hIl7n6CT3jX3pXGSjFtY4RfCtx7oeT1P5Ri1TWY2X6C1mf/AVFlpC 4+1GNxfZRp7hiphcHwS4TBDS8xSCj7EtZ8bbpnZXwicLNDNsbmXSle21FDzT ov1hpi4forZn3qsFQy2W7yiMvNiSuiD2s46skoQBwX3AsIXatTxGoeYuJcf2 IftcGJIwTJz5fIOCquEWiLuHSEaQDPM+31RZu8hLe6kcM9/84vm/TOPtmmof 55OLyLLnU7o2YVRsU6T4BrOHODikRbv9Az9rQ/mak3TmrTCrhVkpVma/a7fo TehvLb8DI9boKkW7vDcJUMr55I2zpb4sj8i6F9i2zLJD+/3JYOg1ggPg2ECh t0xK7LHoJ2tn+U9incbONTfnUyIbb+0NLLCP8PEIG3K4k1OLU1J1v9SFtDqT +XX1Cv+UYXXJk+A1pXhFiLTV7dlrTscqsaQSa+NBWTw3be2RbLUpB6mkQxYy znTGwrCRi6JsEMbFGMH1063dleDZAsYzX+LakqooNQCnWU/wvfJHwcKKigUU SLUS6dmsw8P3XasmjSQxwxwT+/cq/NoUpooJFKzkZLQYj/vpu6OCLwHlzrnc U1DU63LboXqenOgGwGE1J0QNwZc4vF4AAAAAAAA= --------------ms030809090308030504000208--