From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25061 invoked by alias); 22 Feb 2011 22:50:57 -0000 Received: (qmail 25051 invoked by uid 22791); 22 Feb 2011 22:50:56 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,SPF_HELO_PASS,TW_BJ,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.44.51) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 22 Feb 2011 22:50:50 +0000 Received: from kpbe17.cbf.corp.google.com (kpbe17.cbf.corp.google.com [172.25.105.81]) by smtp-out.google.com with ESMTP id p1MMomGG015512 for ; Tue, 22 Feb 2011 14:50:48 -0800 Received: from vxd7 (vxd7.prod.google.com [10.241.33.199]) by kpbe17.cbf.corp.google.com with ESMTP id p1MMoBSc002034 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Tue, 22 Feb 2011 14:50:34 -0800 Received: by vxd7 with SMTP id 7so3081987vxd.20 for ; Tue, 22 Feb 2011 14:50:11 -0800 (PST) MIME-Version: 1.0 Received: by 10.52.164.99 with SMTP id yp3mr4935536vdb.294.1298415010956; Tue, 22 Feb 2011 14:50:10 -0800 (PST) Received: by 10.220.43.145 with HTTP; Tue, 22 Feb 2011 14:50:10 -0800 (PST) In-Reply-To: <83zkpstoxn.fsf@gnu.org> References: <20110218235945.997602461AA@ruffy.mtv.corp.google.com> <83zkpstoxn.fsf@gnu.org> Date: Tue, 22 Feb 2011 23:04:00 -0000 Message-ID: Subject: Re: [patch, doc RFA]: New python function lookup_global_symbol From: Doug Evans To: Eli Zaretskii Cc: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=bcaec53f91677fc77b049ce6cdff X-System-Of-Record: true 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: 2011-02/txt/msg00630.txt.bz2 --bcaec53f91677fc77b049ce6cdff Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 1595 On Sat, Feb 19, 2011 at 12:21 AM, Eli Zaretskii wrote: >> Date: Fri, 18 Feb 2011 15:59:45 -0800 (PST) >> From: dje@google.com (Doug Evans) >> >> --- NEWS =A0 =A0 =A015 Feb 2011 21:17:52 -0000 =A0 =A0 =A01.426 >> +++ NEWS =A0 =A0 =A018 Feb 2011 23:48:45 -0000 >> @@ -38,6 +38,8 @@ >> >> =A0* Python scripting >> >> + =A0** New function gdb.lookup_global_symbol looks up a global symbol. >> + > > This part is okay. > >> -@code{gdb.Block} object. =A0The optional @var{domain} argument restricts >> +@code{gdb.Block} object. =A0If elided, the block for the current frame > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0^^^^^^ > Please use "omitted" instead, it will be understood by more readers > whose first language is not English. =A0We use "omitted" in this context > elsewhere in the manual. > >> +@defun lookup_symbol name [domain] > > @defun renders its arguments in @code and @var, but you want the > brackets in the normal roman typeface. =A0So this should be > > =A0@defun lookup_symbol name @r{[}domain@r{]} > >> +This function searches for a global symbol by name. >> +The search scope can be restricted to by the domain argument. >> + >> +@var{name} is the name of the symbol. =A0It must be a string. >> +The optional @var{domain} argument restricts the search to the domain t= ype. >> +The @var{domain} argument must be a domain constant defined in the @cod= e{gdb} >> +module and described later in this chapter. > > Should we tell what happens if the symbol is not found? > > Okay with those changes. > > Thanks. Thanks. Here is what I checked in. --bcaec53f91677fc77b049ce6cdff Content-Type: text/plain; charset=US-ASCII; name="gdb-110222-lookup-global-symbol.patch.txt" Content-Disposition: attachment; filename="gdb-110222-lookup-global-symbol.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gkheqx460 Content-length: 10736 MjAxMS0wMi0xOCAgRG91ZyBFdmFucyAgPGRqZUBnb29nbGUuY29tPgoKCUFk ZCBnZGIubG9va3VwX2dsb2JhbF9zeW1ib2wgcHl0aG9uIGZ1bmN0aW9uLgoJ KiBORVdTOiBBZGQgZW50cnkuCgkqIHB5dGhvbi9weS1zeW1ib2wuYyAoZ2Ri cHlfbG9va3VwX2dsb2JhbF9zeW1ib2wpOiBOZXcgZnVuY3Rpb24uCgkqIHB5 dGhvbi9weXRob24taW50ZXJuYWwuaCAoZ2RicHlfbG9va3VwX2dsb2JhbF9z eW1ib2wpOiBEZWNsYXJlIGl0LgoJKiBweXRob24vcHl0aG9uLmMgKEdkYk1l dGhvZHMpOiBBZGQgZW50cnkgZm9yIGxvb2t1cF9nbG9iYWxfc3ltYm9sLgoK CWRvYy8KCSogZ2RiLnRleGluZm8gKFN5bWJvbHMgSW4gUHl0aG9uKTogRG9j dW1lbnQgbG9va3VwX2dsb2JhbF9zeW1ib2wuCglDbGFyaWZ5IGJlaGF2aW91 ciBvZiBsb29rdXBfc3ltYm9sIHdoZW4gYGJsb2NrJyBhcmd1bWVudCBpcyBv bWl0dGVkLAoJYWRkIGRlc2NyaXB0aW9uIG9mIHJlc3VsdCwgZml4IEBkZWZ1 biBmb3JtYXR0aW5nLgoKCXRlc3RzdWl0ZS8KCSogZ2RiLnB5dGhvbi9weS1z eW1ib2wuZXhwOiBUZXN0IGxvb2t1cF9nbG9iYWxfc3ltYm9sLgoKSW5kZXg6 IE5FV1MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9z cmMvc3JjL2dkYi9ORVdTLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQyNgpk aWZmIC11IC1wIC1yMS40MjYgTkVXUwotLS0gTkVXUwkxNSBGZWIgMjAxMSAy MToxNzo1MiAtMDAwMAkxLjQyNgorKysgTkVXUwkyMiBGZWIgMjAxMSAyMjoz ODozNCAtMDAwMApAQCAtMzgsNiArMzgsOCBAQAogCiAqIFB5dGhvbiBzY3Jp cHRpbmcKIAorICAqKiBOZXcgZnVuY3Rpb24gZ2RiLmxvb2t1cF9nbG9iYWxf c3ltYm9sIGxvb2tzIHVwIGEgZ2xvYmFsIHN5bWJvbC4KKwogICAqKiBHREIg dmFsdWVzIGluIFB5dGhvbiBhcmUgbm93IGNhbGxhYmxlIGlmIHRoZSB2YWx1 ZSByZXByZXNlbnRzIGEKICAgICAgZnVuY3Rpb24uICBGb3IgZXhhbXBsZSwg aWYgJ3NvbWVfdmFsdWUnIHJlcHJlc2VudHMgYSBmdW5jdGlvbiB0aGF0CiAg ICAgIHRha2VzIHR3byBpbnRlZ2VyIHBhcmFtZXRlcnMgYW5kIHJldHVybnMg YSB2YWx1ZSwgeW91IGNhbiBjYWxsCkluZGV4OiBkb2MvZ2RiLnRleGluZm8K PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3Jj L2dkYi9kb2MvZ2RiLnRleGluZm8sdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu ODAxCmRpZmYgLXUgLXAgLXIxLjgwMSBnZGIudGV4aW5mbwotLS0gZG9jL2dk Yi50ZXhpbmZvCTIxIEZlYiAyMDExIDA4OjQwOjI3IC0wMDAwCTEuODAxCisr KyBkb2MvZ2RiLnRleGluZm8JMjIgRmViIDIwMTEgMjI6Mzg6MzUgLTAwMDAK QEAgLTIyODI5LDcgKzIyODI5LDcgQEAgVGhlIGZvbGxvd2luZyBzeW1ib2wt cmVsYXRlZCBmdW5jdGlvbnMgYQogbW9kdWxlOgogCiBAZmluZGV4IGdkYi5s b29rdXBfc3ltYm9sCi1AZGVmdW4gbG9va3VwX3N5bWJvbCBuYW1lIFtibG9j a10gW2RvbWFpbl0KK0BkZWZ1biBsb29rdXBfc3ltYm9sIG5hbWUgQHJ7W31i bG9ja0Bye119IEBye1t9ZG9tYWluQHJ7XX0KIFRoaXMgZnVuY3Rpb24gc2Vh cmNoZXMgZm9yIGEgc3ltYm9sIGJ5IG5hbWUuICBUaGUgc2VhcmNoIHNjb3Bl IGNhbiBiZQogcmVzdHJpY3RlZCB0byB0aGUgcGFyYW1ldGVycyBkZWZpbmVk IGluIHRoZSBvcHRpb25hbCBkb21haW4gYW5kIGJsb2NrCiBhcmd1bWVudHMu CkBAIC0yMjgzNywxMCArMjI4MzcsMzMgQEAgYXJndW1lbnRzLgogQHZhcntu YW1lfSBpcyB0aGUgbmFtZSBvZiB0aGUgc3ltYm9sLiAgSXQgbXVzdCBiZSBh IHN0cmluZy4gIFRoZQogb3B0aW9uYWwgQHZhcntibG9ja30gYXJndW1lbnQg cmVzdHJpY3RzIHRoZSBzZWFyY2ggdG8gc3ltYm9scyB2aXNpYmxlCiBpbiB0 aGF0IEB2YXJ7YmxvY2t9LiAgVGhlIEB2YXJ7YmxvY2t9IGFyZ3VtZW50IG11 c3QgYmUgYQotQGNvZGV7Z2RiLkJsb2NrfSBvYmplY3QuICBUaGUgb3B0aW9u YWwgQHZhcntkb21haW59IGFyZ3VtZW50IHJlc3RyaWN0cworQGNvZGV7Z2Ri LkJsb2NrfSBvYmplY3QuICBJZiBvbWl0dGVkLCB0aGUgYmxvY2sgZm9yIHRo ZSBjdXJyZW50IGZyYW1lCitpcyB1c2VkLiAgVGhlIG9wdGlvbmFsIEB2YXJ7 ZG9tYWlufSBhcmd1bWVudCByZXN0cmljdHMKIHRoZSBzZWFyY2ggdG8gdGhl IGRvbWFpbiB0eXBlLiAgVGhlIEB2YXJ7ZG9tYWlufSBhcmd1bWVudCBtdXN0 IGJlIGEKIGRvbWFpbiBjb25zdGFudCBkZWZpbmVkIGluIHRoZSBAY29kZXtn ZGJ9IG1vZHVsZSBhbmQgZGVzY3JpYmVkIGxhdGVyCiBpbiB0aGlzIGNoYXB0 ZXIuCisKK1RoZSByZXN1bHQgaXMgYSB0dXBsZSBvZiB0d28gZWxlbWVudHMu CitUaGUgZmlyc3QgZWxlbWVudCBpcyBhIEBjb2Rle2dkYi5TeW1ib2x9IG9i amVjdCBvciBAY29kZXtOb25lfSBpZiB0aGUgc3ltYm9sCitpcyBub3QgZm91 bmQuCitJZiB0aGUgc3ltYm9sIGlzIGZvdW5kLCB0aGUgc2Vjb25kIGVsZW1l bnQgaXMgQGNvZGV7VHJ1ZX0gaWYgdGhlIHN5bWJvbAoraXMgYSBmaWVsZCBv ZiBhIG1ldGhvZCdzIG9iamVjdCAoZS5nLiwgQGNvZGV7dGhpc30gaW4gQGNv ZGV7QysrfSksCitvdGhlcndpc2UgaXQgaXMgQGNvZGV7RmFsc2V9LgorSWYg dGhlIHN5bWJvbCBpcyBub3QgZm91bmQsIHRoZSBzZWNvbmQgZWxlbWVudCBp cyBAY29kZXtGYWxzZX0uCitAZW5kIGRlZnVuCisKK0BmaW5kZXggZ2RiLmxv b2t1cF9nbG9iYWxfc3ltYm9sCitAZGVmdW4gbG9va3VwX2dsb2JhbF9zeW1i b2wgbmFtZSBAcntbfWRvbWFpbkBye119CitUaGlzIGZ1bmN0aW9uIHNlYXJj aGVzIGZvciBhIGdsb2JhbCBzeW1ib2wgYnkgbmFtZS4KK1RoZSBzZWFyY2gg c2NvcGUgY2FuIGJlIHJlc3RyaWN0ZWQgdG8gYnkgdGhlIGRvbWFpbiBhcmd1 bWVudC4KKworQHZhcntuYW1lfSBpcyB0aGUgbmFtZSBvZiB0aGUgc3ltYm9s LiAgSXQgbXVzdCBiZSBhIHN0cmluZy4KK1RoZSBvcHRpb25hbCBAdmFye2Rv bWFpbn0gYXJndW1lbnQgcmVzdHJpY3RzIHRoZSBzZWFyY2ggdG8gdGhlIGRv bWFpbiB0eXBlLgorVGhlIEB2YXJ7ZG9tYWlufSBhcmd1bWVudCBtdXN0IGJl IGEgZG9tYWluIGNvbnN0YW50IGRlZmluZWQgaW4gdGhlIEBjb2Rle2dkYn0K K21vZHVsZSBhbmQgZGVzY3JpYmVkIGxhdGVyIGluIHRoaXMgY2hhcHRlci4K KworVGhlIHJlc3VsdCBpcyBhIEBjb2Rle2dkYi5TeW1ib2x9IG9iamVjdCBv ciBAY29kZXtOb25lfSBpZiB0aGUgc3ltYm9sCitpcyBub3QgZm91bmQuCiBA ZW5kIGRlZnVuCiAKIEEgQGNvZGV7Z2RiLlN5bWJvbH0gb2JqZWN0IGhhcyB0 aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6CkluZGV4OiBweXRob24vcHktc3lt Ym9sLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9z cmMvc3JjL2dkYi9weXRob24vcHktc3ltYm9sLmMsdgpyZXRyaWV2aW5nIHJl dmlzaW9uIDEuMwpkaWZmIC11IC1wIC1yMS4zIHB5LXN5bWJvbC5jCi0tLSBw eXRob24vcHktc3ltYm9sLmMJNiBKYW4gMjAxMSAwMDo1NzowNCAtMDAwMAkx LjMKKysrIHB5dGhvbi9weS1zeW1ib2wuYwkyMiBGZWIgMjAxMSAyMjozODoz NSAtMDAwMApAQCAtMjM2LDYgKzIzNiw3IEBAIHN5bXB5X2RlYWxsb2MgKFB5 T2JqZWN0ICpvYmopCiAgICBBIHR1cGxlIHdpdGggMiBlbGVtZW50cyBpcyBh bHdheXMgcmV0dXJuZWQuICBUaGUgZmlyc3QgaXMgdGhlIHN5bWJvbAogICAg b2JqZWN0IG9yIE5vbmUsIHRoZSBzZWNvbmQgaXMgYSBib29sZWFuIHdpdGgg dGhlIHZhbHVlIG9mCiAgICBpc19hX2ZpZWxkX29mX3RoaXMgKHNlZSBjb21t ZW50IGluIGxvb2t1cF9zeW1ib2xfaW5fbGFuZ3VhZ2UpLiAgKi8KKwogUHlP YmplY3QgKgogZ2RicHlfbG9va3VwX3N5bWJvbCAoUHlPYmplY3QgKnNlbGYs IFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3cpCiB7CkBAIC0yOTQsNiAr Mjk1LDM5IEBAIGdkYnB5X2xvb2t1cF9zeW1ib2wgKFB5T2JqZWN0ICpzZWxm LCBQeU8KICAgcmV0dXJuIHJldF90dXBsZTsKIH0KIAorLyogSW1wbGVtZW50 YXRpb24gb2YKKyAgIGdkYi5sb29rdXBfZ2xvYmFsX3N5bWJvbCAobmFtZSBb LCBkb21haW5dKSAtPiBzeW1ib2wgb3IgTm9uZS4gICovCisKK1B5T2JqZWN0 ICoKK2dkYnB5X2xvb2t1cF9nbG9iYWxfc3ltYm9sIChQeU9iamVjdCAqc2Vs ZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprdykKK3sKKyAgaW50IGRv bWFpbiA9IFZBUl9ET01BSU47CisgIGNvbnN0IGNoYXIgKm5hbWU7CisgIHN0 YXRpYyBjaGFyICprZXl3b3Jkc1tdID0geyAibmFtZSIsICJkb21haW4iLCBO VUxMIH07CisgIHN0cnVjdCBzeW1ib2wgKnN5bWJvbDsKKyAgUHlPYmplY3Qg KnN5bV9vYmo7CisKKyAgaWYgKCEgUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdv cmRzIChhcmdzLCBrdywgInN8aSIsIGtleXdvcmRzLCAmbmFtZSwKKwkJCQkg ICAgICZkb21haW4pKQorICAgIHJldHVybiBOVUxMOworCisgIHN5bWJvbCA9 IGxvb2t1cF9zeW1ib2xfZ2xvYmFsIChuYW1lLCBOVUxMLCBkb21haW4pOwor CisgIGlmIChzeW1ib2wpCisgICAgeworICAgICAgc3ltX29iaiA9IHN5bWJv bF90b19zeW1ib2xfb2JqZWN0IChzeW1ib2wpOworICAgICAgaWYgKCFzeW1f b2JqKQorCXJldHVybiBOVUxMOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAg ICAgIHN5bV9vYmogPSBQeV9Ob25lOworICAgICAgUHlfSU5DUkVGIChQeV9O b25lKTsKKyAgICB9CisKKyAgcmV0dXJuIHN5bV9vYmo7Cit9CisKIC8qIFRo aXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gYW4gb2JqZmlsZSBpcyBhYm91 dCB0byBiZSBmcmVlZC4KICAgIEludmFsaWRhdGUgdGhlIHN5bWJvbCBhcyBm dXJ0aGVyIGFjdGlvbnMgb24gdGhlIHN5bWJvbCB3b3VsZCByZXN1bHQKICAg IGluIGJhZCBkYXRhLiAgQWxsIGFjY2VzcyB0byBvYmotPnN5bWJvbCBzaG91 bGQgYmUgZ2F0ZWQgYnkKSW5kZXg6IHB5dGhvbi9weXRob24taW50ZXJuYWwu aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9z cmMvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaCx2CnJldHJpZXZpbmcg cmV2aXNpb24gMS40MgpkaWZmIC11IC1wIC1yMS40MiBweXRob24taW50ZXJu YWwuaAotLS0gcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCTQgRmViIDIwMTEg MjE6NTQ6MTYgLTAwMDAJMS40MgorKysgcHl0aG9uL3B5dGhvbi1pbnRlcm5h bC5oCTIyIEZlYiAyMDExIDIyOjM4OjM1IC0wMDAwCkBAIC0xMzYsNiArMTM2 LDggQEAgUHlPYmplY3QgKmdkYnB5X2hpc3RvcnkgKFB5T2JqZWN0ICpzZWxm LAogUHlPYmplY3QgKmdkYnB5X2JyZWFrcG9pbnRzIChQeU9iamVjdCAqLCBQ eU9iamVjdCAqKTsKIFB5T2JqZWN0ICpnZGJweV9mcmFtZV9zdG9wX3JlYXNv bl9zdHJpbmcgKFB5T2JqZWN0ICosIFB5T2JqZWN0ICopOwogUHlPYmplY3Qg KmdkYnB5X2xvb2t1cF9zeW1ib2wgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVj dCAqYXJncywgUHlPYmplY3QgKmt3KTsKK1B5T2JqZWN0ICpnZGJweV9sb29r dXBfZ2xvYmFsX3N5bWJvbCAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICph cmdzLAorCQkJCSAgICAgIFB5T2JqZWN0ICprdyk7CiBQeU9iamVjdCAqZ2Ri cHlfbmV3ZXN0X2ZyYW1lIChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFy Z3MpOwogUHlPYmplY3QgKmdkYnB5X3NlbGVjdGVkX2ZyYW1lIChQeU9iamVj dCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpOwogUHlPYmplY3QgKmdkYnB5X2Js b2NrX2Zvcl9wYyAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKTsK SW5kZXg6IHB5dGhvbi9weXRob24uYwo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL3B5dGhvbi9weXRob24uYyx2 CnJldHJpZXZpbmcgcmV2aXNpb24gMS41OQpkaWZmIC11IC1wIC1yMS41OSBw eXRob24uYwotLS0gcHl0aG9uL3B5dGhvbi5jCTQgRmViIDIwMTEgMjE6NTQ6 MTYgLTAwMDAJMS41OQorKysgcHl0aG9uL3B5dGhvbi5jCTIyIEZlYiAyMDEx IDIyOjM4OjM1IC0wMDAwCkBAIC0xMTQ1LDYgKzExNDUsMTAgQEAgUmV0dXJu IGEgVHlwZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbgogUmV0dXJuIGEg dHVwbGUgd2l0aCB0aGUgc3ltYm9sIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdp dmVuIG5hbWUgKG9yIE5vbmUpIGFuZFxuXAogYSBib29sZWFuIGluZGljYXRp bmcgaWYgbmFtZSBpcyBhIGZpZWxkIG9mIHRoZSBjdXJyZW50IGltcGxpZWQg YXJndW1lbnRcblwKIGB0aGlzJyAod2hlbiB0aGUgY3VycmVudCBsYW5ndWFn ZSBpcyBvYmplY3Qtb3JpZW50ZWQpLiIgfSwKKyAgeyAibG9va3VwX2dsb2Jh bF9zeW1ib2wiLCAoUHlDRnVuY3Rpb24pIGdkYnB5X2xvb2t1cF9nbG9iYWxf c3ltYm9sLAorICAgIE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsCisg ICAgImxvb2t1cF9nbG9iYWxfc3ltYm9sIChuYW1lIFssIGRvbWFpbl0pIC0+ IHN5bWJvbFxuXAorUmV0dXJuIHRoZSBzeW1ib2wgY29ycmVzcG9uZGluZyB0 byB0aGUgZ2l2ZW4gbmFtZSAob3IgTm9uZSkuIiB9LAogICB7ICJibG9ja19m b3JfcGMiLCBnZGJweV9ibG9ja19mb3JfcGMsIE1FVEhfVkFSQVJHUywKICAg ICAiUmV0dXJuIHRoZSBibG9jayBjb250YWluaW5nIHRoZSBnaXZlbiBwYyB2 YWx1ZSwgb3IgTm9uZS4iIH0sCiAgIHsgInNvbGliX25hbWUiLCBnZGJweV9z b2xpYl9uYW1lLCBNRVRIX1ZBUkFSR1MsCkluZGV4OiB0ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weS1zeW1ib2wuZXhwCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K UkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktc3ltYm9sLmV4cCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40CmRp ZmYgLXUgLXAgLXIxLjQgcHktc3ltYm9sLmV4cAotLS0gdGVzdHN1aXRlL2dk Yi5weXRob24vcHktc3ltYm9sLmV4cAkxIEphbiAyMDExIDE1OjMzOjQ5IC0w MDAwCTEuNAorKysgdGVzdHN1aXRlL2dkYi5weXRob24vcHktc3ltYm9sLmV4 cAkyMiBGZWIgMjAxMSAyMjozODozNSAtMDAwMApAQCAtMzksNiArMzksMTMg QEAgZ2RiX2xvYWQgJHtiaW5maWxlfQogIyBTa2lwIGFsbCB0ZXN0cyBpZiBQ eXRob24gc2NyaXB0aW5nIGlzIG5vdCBlbmFibGVkLgogaWYgeyBbc2tpcF9w eXRob25fdGVzdHNdIH0geyBjb250aW51ZSB9CiAKKyMgVGVzdCBsb29raW5n IHVwIGEgZ2xvYmFsIHN5bWJvbCBiZWZvcmUgd2UgcnVudG9fbWFpbiBhcyB0 aGlzIGlzIHRoZQorIyBwb2ludCB3aGVyZSB3ZSBkb24ndCBoYXZlIGEgY3Vy cmVudCBmcmFtZSwgYW5kIHdlIGRvbid0IHdhbnQgdG8KKyMgcmVxdWlyZSBv bmUuCitnZGJfcHlfdGVzdF9zaWxlbnRfY21kICJweXRob24gbWFpbl9mdW5j ID0gZ2RiLmxvb2t1cF9nbG9iYWxfc3ltYm9sKFwibWFpblwiKSIgIkxvb2t1 cCBtYWluIiAxCitnZGJfdGVzdCAicHl0aG9uIHByaW50IG1haW5fZnVuYy5p c19mdW5jdGlvbiIgIlRydWUiICJUZXN0IG1haW5fZnVuYy5pc19mdW5jdGlv biIKK2dkYl90ZXN0ICJweXRob24gcHJpbnQgZ2RiLmxvb2t1cF9nbG9iYWxf c3ltYm9sKFwianVua1wiKSIgIk5vbmUiICJUZXN0IGxvb2t1cF9nbG9iYWxf c3ltYm9sKFwianVua1wiKSIKKwogaWYgIVtydW50b19tYWluXSB0aGVuIHsK ICAgICBmYWlsICJDYW4ndCBydW4gdG8gbWFpbiIKICAgICByZXR1cm4gMAo= --bcaec53f91677fc77b049ce6cdff--