From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by sourceware.org (Postfix) with ESMTPS id 588763857348 for ; Thu, 2 Jun 2022 15:44:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 588763857348 Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 7B6411F9C8; Thu, 2 Jun 2022 15:44:02 +0000 (UTC) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 5E66813AC8; Thu, 2 Jun 2022 15:44:02 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id U5bSFcLamGIHfQAAMHmgww (envelope-from ); Thu, 02 Jun 2022 15:44:02 +0000 Content-Type: multipart/mixed; boundary="------------xRNBOrWe94WS0K6n8MkCm0JJ" Message-ID: <59e73c8e-2ba5-c980-3369-02c3e53be21d@suse.de> Date: Thu, 2 Jun 2022 17:44:01 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.0 Subject: Re: [PATCH][gdb] Fix warning in foreach_arch selftests Content-Language: en-US To: Simon Marchi , Pedro Alves , gdb-patches@sourceware.org References: <20220601104130.GA24730@delia.home> <45511000-6883-53f4-cec6-395cd0c5b216@palves.net> <066c8609-1458-725d-1ed6-7e8fbce04c0c@simark.ca> From: Tom de Vries In-Reply-To: <066c8609-1458-725d-1ed6-7e8fbce04c0c@simark.ca> X-Spam-Status: No, score=-13.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Jun 2022 15:44:05 -0000 This is a multi-part message in MIME format. --------------xRNBOrWe94WS0K6n8MkCm0JJ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 6/1/22 21:08, Simon Marchi wrote: > Hi Tom, > > This introduces some failures for me: > > Running selftest print_one_insn::A6.^M > Self test failed: Cannot access memory at address 0x0^M Hi Simon, sorry for not catching this, I forgot to test with --enable-targets=all, I'll try to fix the default in my build scripts. I've done a new version of the existing patch (so it applies once the old one is reverted). Mainly because I realized that there's an easier way to handle the osabi none setting: ... @@ -68,6 +68,7 @@ foreach_arch_test_generator (const std::string &name, { struct gdbarch_info info; info.bfd_arch_info = bfd_scan_arch (arch); + info.osabi = GDB_OSABI_NONE; struct gdbarch *gdbarch = gdbarch_find_by_info (info); SELF_CHECK (gdbarch != NULL); function (gdbarch); ... Currently regression testing, but at least fixes the ARC regression. Thanks, - Tom --------------xRNBOrWe94WS0K6n8MkCm0JJ Content-Type: text/x-patch; charset=UTF-8; name="0001-gdb-Fix-warning-in-foreach_arch-selftests.patch" Content-Disposition: attachment; filename="0001-gdb-Fix-warning-in-foreach_arch-selftests.patch" Content-Transfer-Encoding: base64 W2dkYl0gRml4IHdhcm5pbmcgaW4gZm9yZWFjaF9hcmNoIHNlbGZ0ZXN0cwoKV2hlbiBydW5u aW5nIHRoZSBzZWxmdGVzdHMsIEkgcnVuIGludG86Ci4uLgokIGdkYiAtcSAtYmF0Y2ggLWV4 ICJtYWludCBzZWxmdGVzdCIKICAuLi4KUnVubmluZyBzZWxmdGVzdCBleGVjdXRlX2NmYV9w cm9ncmFtOjphYXJjaDY0OmlscDMyLgp3YXJuaW5nOiBBIGhhbmRsZXIgZm9yIHRoZSBPUyBB QkkgIkdOVS9MaW51eCIgaXMgbm90IGJ1aWx0IGludG8gdGhpcwpjb25maWd1cmF0aW9uIG9m IEdEQi4gIEF0dGVtcHRpbmcgdG8gY29udGludWUgd2l0aCB0aGUgZGVmYXVsdCBhYXJjaDY0 OmlscDMyCnNldHRpbmdzLgouLi4KYW5kIGxpa2V3aXNlIGZvciBleGVjdXRlX2NmYV9wcm9n cmFtOjppODA4NiBhbmQKZXhlY3V0ZV9jZmFfcHJvZ3JhbTo6aWE2NC1lbGYzMi4KClRoZSB3 YXJuaW5nIGNhbiBlYXNpbHkgYmUgcmVwcm9kdWNlZCBvdXRzaWRlIHRoZSBzZWxmdGVzdHMg YnkgZG9pbmc6Ci4uLgokIGdkYiAtcSAtYmF0Y2ggLWV4ICJzZXQgYXJjaCBhYXJjaDY0Omls cDMyIgouLi4KYW5kIGNhbiBiZSBwcmV2ZW50ZWQgYnkgZmlyc3QgZG9pbmcgInNldCBvc2Fi aSBub25lIi4KCkZpeCB0aGUgd2FybmluZyBieSBzZXR0aW5nIG9zYWJpIHRvIG5vbmUgd2hp bGUgZG9pbmcgc2VsZnRlc3RzIHRoYXQgaXRlcmF0ZQpvdmVyIGFsbCBhcmNoaXRlY3R1cmVz LgoKVGhpcyBjYXVzZXMgYSByZWdyZXNzaW9uIGluIHRoZSBwcmludF9vbmVfaW5zbiBzZWxm dGVzdHMgZm9yIHRoZSBBUkMKYXJjaGljdGVjdHVyZS4KClRoZSBwcm9ibGVtIGlzIHByZS1l eGlzdGluZywgYW5kIGNhbiBiZSBkZW1vbnN0cmF0ZWQgKGFscmVhZHkgd2l0aG91dCB0aGlz CnBhdGNoKSB1c2luZzoKLi4uCiQgZ2RiIC1xIC1iYXRjaCAtZXggInNldCBvc2FiaSBub25l IiAtZXggIm1haW50IHNlbGZ0ZXN0IHByaW50X29uZV9pbnNuOjpBNiIKUnVubmluZyBzZWxm dGVzdCBwcmludF9vbmVfaW5zbjo6QTYuClNlbGYgdGVzdCBmYWlsZWQ6IENhbm5vdCBhY2Nl c3MgbWVtb3J5IGF0IGFkZHJlc3MgMHgwClJhbiAxIHVuaXQgdGVzdHMsIDEgZmFpbGVkCiQK Li4uCgpGb3IgQVJDLCB3ZSB1c2UgdGhlIGdlbmVyaWMgY2FzZSBpbiBwcmludF9vbmVfaW5z bl90ZXN0LCBjb250YWluaW5nIHRoaXMgY29kZToKLi4uCiAgICAgICBpbnQga2luZCA9IGdk YmFyY2hfYnJlYWtwb2ludF9raW5kX2Zyb21fcGMgKGdkYmFyY2gsICZwYyk7CiAgICAgICAu Li4KICAgICAgIGluc24gPSBnZGJhcmNoX3N3X2JyZWFrcG9pbnRfZnJvbV9raW5kIChnZGJh cmNoLCBraW5kLCAmYnBsZW4pOwouLi4KClRoZSBwcm9ibGVtIGlzIHRoYXQgd2l0aCBvc2Fi aSBsaW51eCB3ZSB0cmlnZ2VyOgouLi4Kc3RhdGljIGludAphcmNfbGludXhfYnJlYWtwb2lu dF9raW5kX2Zyb21fcGMgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBDT1JFX0FERFIgKnBj cHRyKQp7CiAgcmV0dXJuIHRyYXBfc2l6ZTsKfQouLi4KYnV0IHdpdGggb3NhYmkgbm9uZToK Li4uCmFyY19icmVha3BvaW50X2tpbmRfZnJvbV9wYyAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsIENPUkVfQUREUiAqcGNwdHIpCnsKICBzaXplX3QgbGVuZ3RoX3dpdGhfbGltbSA9IGdk Yl9pbnNuX2xlbmd0aCAoZ2RiYXJjaCwgKnBjcHRyKTsKLi4uCndoaWNoIG5lZWRzIGFjY2Vz cyB0byBtZW1vcnksIGFuZCB3aWxsIGNvbnNlcXVlbnRseSBmYWlsLgoKRml4IHRoaXMgaW4g cHJpbnRfb25lX2luc25fdGVzdCwgaW4gdGhlIGRlZmF1bHQgY2FzZSwgYnkgaXRlcmF0aW5n IG92ZXIKc3VwcG9ydGVkIG9zYWJpJ3MgdG8gbWFrZXMgc3VyZSB3ZSB0cmlnZ2VyIGFyY19s aW51eF9icmVha3BvaW50X2tpbmRfZnJvbV9wYwp3aGljaCB3aWxsIGdpdmUgdXMgYSB1c2Fi bGUgaW5zdHJ1Y3Rpb24gdG8gZGlzYXNzZW1ibGUuCgpUZXN0ZWQgb24geDg2XzY0LWxpbnV4 LgoKLS0tCiBnZGIvZGlzYXNtLXNlbGZ0ZXN0cy5jIHwgNDcgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0KIGdkYi9vc2FiaS5jICAgICAgICAgICAg fCAzNSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogZ2RiL29zYWJpLmgg ICAgICAgICAgICB8ICAzICsrKwogZ2RiL3NlbGZ0ZXN0LWFyY2guYyAgICB8ICAxICsKIDQg ZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9nZGIvZGlzYXNtLXNlbGZ0ZXN0cy5jIGIvZ2RiL2Rpc2FzbS1zZWxmdGVzdHMu YwppbmRleCA5MjhkMjZmNzAxOC4uY2NiNjBhMGJjODcgMTAwNjQ0Ci0tLSBhL2dkYi9kaXNh c20tc2VsZnRlc3RzLmMKKysrIGIvZ2RiL2Rpc2FzbS1zZWxmdGVzdHMuYwpAQCAtMTAxLDEy ICsxMDEsNTMgQEAgcHJpbnRfb25lX2luc25fdGVzdCAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gpCiAgICAgICB7CiAJLyogVGVzdCBkaXNhc3NlbWJsZSBicmVha3BvaW50IGluc3RydWN0 aW9uLiAgKi8KIAlDT1JFX0FERFIgcGMgPSAwOwotCWludCBraW5kID0gZ2RiYXJjaF9icmVh a3BvaW50X2tpbmRfZnJvbV9wYyAoZ2RiYXJjaCwgJnBjKTsKKwlpbnQga2luZDsKIAlpbnQg YnBsZW47CiAKLQlpbnNuID0gZ2RiYXJjaF9zd19icmVha3BvaW50X2Zyb21fa2luZCAoZ2Ri YXJjaCwga2luZCwgJmJwbGVuKTsKLQlsZW4gPSBicGxlbjsKKwljb25zdCBjaGFyICphcmNo ID0gZ2RiYXJjaF9iZmRfYXJjaF9pbmZvIChnZGJhcmNoKS0+cHJpbnRhYmxlX25hbWU7CisK KwllbnVtIGdkYl9vc2FiaSBpdDsKKwlib29sIGZvdW5kID0gZmFsc2U7CisJZm9yIChpdCA9 IEdEQl9PU0FCSV9VTktOT1dOOyBpdCAhPSBHREJfT1NBQklfSU5WQUxJRDsKKwkgICAgIGl0 ID0gc3RhdGljX2Nhc3Q8ZW51bSBnZGJfb3NhYmk+KHN0YXRpY19jYXN0PGludD4oaXQpICsg MSkpCisJICB7CisJICAgIGlmIChpdCA9PSBHREJfT1NBQklfVU5LTk9XTikKKwkgICAgICBj b250aW51ZTsKKworCSAgICBzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGluZm87CisJICAgIGluZm8u YmZkX2FyY2hfaW5mbyA9IGJmZF9zY2FuX2FyY2ggKGFyY2gpOworCSAgICBpbmZvLm9zYWJp ID0gaXQ7CisKKwkgICAgaWYgKGl0ICE9IEdEQl9PU0FCSV9OT05FKQorCSAgICAgIHsKKwkJ aWYgKCFoYXNfZ2RiX29zYWJpX2hhbmRsZXIgKGluZm8pKQorCQkgIC8qIFVuc3VwcG9ydGVk LiAgU2tpcCB0byBwcmV2ZW50IHdhcm5pbmdzIGxpa2U6CisJCSAgICAgQSBoYW5kbGVyIGZv ciB0aGUgT1MgQUJJIDx4PiBpcyBub3QgYnVpbHQgaW50byB0aGlzCisJCSAgICAgY29uZmln dXJhdGlvbiBvZiBHREIuICBBdHRlbXB0aW5nIHRvIGNvbnRpbnVlIHdpdGggdGhlCisJCSAg ICAgZGVmYXVsdCA8eT4gc2V0dGluZ3MuICAqLworCQkgIGNvbnRpbnVlOworCSAgICAgIH0K KworCSAgICBnZGJhcmNoID0gZ2RiYXJjaF9maW5kX2J5X2luZm8gKGluZm8pOworCSAgICBT RUxGX0NIRUNLIChnZGJhcmNoICE9IE5VTEwpOworCisJICAgIHRyeQorCSAgICAgIHsKKwkJ a2luZCA9IGdkYmFyY2hfYnJlYWtwb2ludF9raW5kX2Zyb21fcGMgKGdkYmFyY2gsICZwYyk7 CisJCWluc24gPSBnZGJhcmNoX3N3X2JyZWFrcG9pbnRfZnJvbV9raW5kIChnZGJhcmNoLCBr aW5kLCAmYnBsZW4pOworCSAgICAgIH0KKwkgICAgY2F0Y2ggKC4uLikKKwkgICAgICB7CisJ CWNvbnRpbnVlOworCSAgICAgIH0KKwkgICAgZm91bmQgPSB0cnVlOworCSAgICBicmVhazsK KwkgIH0KKworCS8qIEFzc2VydCB0aGF0IHdlIGhhdmUgZm91bmQgYW4gaW5zdHJ1Y3Rpb24g dG8gZGlzYXNzZW1ibGUuICAqLworCVNFTEZfQ0hFQ0sgKGZvdW5kKTsKIAorCWxlbiA9IGJw bGVuOwogCWJyZWFrOwogICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL2dkYi9vc2FiaS5j IGIvZ2RiL29zYWJpLmMKaW5kZXggYmJkNzYzNTUzMmYuLmQ0Y2I3NTMxYzEyIDEwMDY0NAot LS0gYS9nZGIvb3NhYmkuYworKysgYi9nZGIvb3NhYmkuYwpAQCAtMzMyLDkgKzMzMiwxMCBA QCBjYW5fcnVuX2NvZGVfZm9yIChjb25zdCBzdHJ1Y3QgYmZkX2FyY2hfaW5mbyAqYSwgY29u c3Qgc3RydWN0IGJmZF9hcmNoX2luZm8gKmIpCiAgIHJldHVybiAoYSA9PSBiIHx8IGEtPmNv bXBhdGlibGUgKGEsIGIpID09IGEpOwogfQogCisvKiBSZXR1cm4gT1MgQUJJIGhhbmRsZXIg Zm9yIElORk8uICAqLwogCi12b2lkCi1nZGJhcmNoX2luaXRfb3NhYmkgKHN0cnVjdCBnZGJh cmNoX2luZm8gaW5mbywgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gpCitzdGF0aWMgc3RydWN0 IGdkYl9vc2FiaV9oYW5kbGVyICoKK2dkYmFyY2hfb3NhYmlfaGFuZGxlciAoc3RydWN0IGdk YmFyY2hfaW5mbyBpbmZvKQogewogICBzdHJ1Y3QgZ2RiX29zYWJpX2hhbmRsZXIgKmhhbmRs ZXI7CiAKQEAgLTM2NywxMiArMzY4LDI4IEBAIGdkYmFyY2hfaW5pdF9vc2FiaSAoc3RydWN0 IGdkYmFyY2hfaW5mbyBpbmZvLCBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkKIAkgSVNBIiku ICBCRkQgZG9lc24ndCBub3JtYWxseSBjb25zaWRlciAzMi1iaXQgYW5kIDY0LWJpdAogCSAi Y29tcGF0aWJsZSIgc28gaXQgZG9lc24ndCBzdWNjZWVkLiAgKi8KICAgICAgIGlmIChjYW5f cnVuX2NvZGVfZm9yIChpbmZvLmJmZF9hcmNoX2luZm8sIGhhbmRsZXItPmFyY2hfaW5mbykp Ci0JewotCSAgKCpoYW5kbGVyLT5pbml0X29zYWJpKSAoaW5mbywgZ2RiYXJjaCk7Ci0JICBy ZXR1cm47Ci0JfQorCXJldHVybiBoYW5kbGVyOwogICAgIH0KIAorICByZXR1cm4gbnVsbHB0 cjsKK30KKworLyogU2VlIG9zYWJpLmguICAqLworCitib29sCitoYXNfZ2RiX29zYWJpX2hh bmRsZXIgKHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbykKK3sKKyAgcmV0dXJuIGdkYmFyY2hf b3NhYmlfaGFuZGxlciAoaW5mbykgIT0gbnVsbHB0cjsKK30KKwordm9pZAorZ2RiYXJjaF9p bml0X29zYWJpIChzdHJ1Y3QgZ2RiYXJjaF9pbmZvIGluZm8sIHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoKQoreworICBzdHJ1Y3QgZ2RiX29zYWJpX2hhbmRsZXIgKmhhbmRsZXI7CisKKyAg Z2RiX2Fzc2VydCAoaW5mby5vc2FiaSAhPSBHREJfT1NBQklfVU5LTk9XTik7CisgIGhhbmRs ZXIgPSBnZGJhcmNoX29zYWJpX2hhbmRsZXIgKGluZm8pOworCiAgIGlmIChpbmZvLm9zYWJp ID09IEdEQl9PU0FCSV9OT05FKQogICAgIHsKICAgICAgIC8qIERvbid0IGNvbXBsYWluIGFi b3V0IG5vIE9TQUJJLiAgQXNzdW1lIHRoZSB1c2VyIGtub3dzCkBAIC0zODAsNiArMzk3LDEy IEBAIGdkYmFyY2hfaW5pdF9vc2FiaSAoc3RydWN0IGdkYmFyY2hfaW5mbyBpbmZvLCBzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaCkKICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgaWYgKGhh bmRsZXIgIT0gbnVsbHB0cikKKyAgICB7CisgICAgICAoKmhhbmRsZXItPmluaXRfb3NhYmkp IChpbmZvLCBnZGJhcmNoKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKICAgd2FybmluZwog ICAgICgiQSBoYW5kbGVyIGZvciB0aGUgT1MgQUJJIFwiJXNcIiBpcyBub3QgYnVpbHQgaW50 byB0aGlzIGNvbmZpZ3VyYXRpb25cbiIKICAgICAgIm9mIEdEQi4gIEF0dGVtcHRpbmcgdG8g Y29udGludWUgd2l0aCB0aGUgZGVmYXVsdCAlcyBzZXR0aW5ncy5cbiIsCmRpZmYgLS1naXQg YS9nZGIvb3NhYmkuaCBiL2dkYi9vc2FiaS5oCmluZGV4IGJlMDE2NzMyY2JjLi40NzhhNDE4 YWFjMiAxMDA2NDQKLS0tIGEvZ2RiL29zYWJpLmgKKysrIGIvZ2RiL29zYWJpLmgKQEAgLTc0 LDYgKzc0LDkgQEAgZW51bSBnZGJfb3NhYmkgZ2RiYXJjaF9sb29rdXBfb3NhYmkgKGJmZCAq KTsKICAgIHN0cmluZy4gICovCiBlbnVtIGdkYl9vc2FiaSBvc2FiaV9mcm9tX3RkZXNjX3N0 cmluZyAoY29uc3QgY2hhciAqdGV4dCk7CiAKKy8qIFJldHVybiB0cnVlIGlmIHRoZXJlJ3Mg YW4gT1MgQUJJIGhhbmRsZXIgZm9yIElORk8uICAqLworYm9vbCBoYXNfZ2RiX29zYWJpX2hh bmRsZXIgKHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbyk7CisKIC8qIEluaXRpYWxpemUgdGhl IGdkYmFyY2ggZm9yIHRoZSBzcGVjaWZpZWQgT1MgQUJJIHZhcmlhbnQuICAqLwogdm9pZCBn ZGJhcmNoX2luaXRfb3NhYmkgKHN0cnVjdCBnZGJhcmNoX2luZm8sIHN0cnVjdCBnZGJhcmNo ICopOwogCmRpZmYgLS1naXQgYS9nZGIvc2VsZnRlc3QtYXJjaC5jIGIvZ2RiL3NlbGZ0ZXN0 LWFyY2guYwppbmRleCBmNDM0ZGE3MThkNS4uMWZlMGIyZDU5YjQgMTAwNjQ0Ci0tLSBhL2dk Yi9zZWxmdGVzdC1hcmNoLmMKKysrIGIvZ2RiL3NlbGZ0ZXN0LWFyY2guYwpAQCAtNjgsNiAr NjgsNyBAQCBmb3JlYWNoX2FyY2hfdGVzdF9nZW5lcmF0b3IgKGNvbnN0IHN0ZDo6c3RyaW5n ICZuYW1lLAogCSAgIHsKIAkgICAgIHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbzsKIAkgICAg IGluZm8uYmZkX2FyY2hfaW5mbyA9IGJmZF9zY2FuX2FyY2ggKGFyY2gpOworCSAgICAgaW5m by5vc2FiaSA9IEdEQl9PU0FCSV9OT05FOwogCSAgICAgc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2ggPSBnZGJhcmNoX2ZpbmRfYnlfaW5mbyAoaW5mbyk7CiAJICAgICBTRUxGX0NIRUNLIChn ZGJhcmNoICE9IE5VTEwpOwogCSAgICAgZnVuY3Rpb24gKGdkYmFyY2gpOwo= --------------xRNBOrWe94WS0K6n8MkCm0JJ--