From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id oIuFOW+5c2LFcwQAWB0awg (envelope-from ) for ; Thu, 05 May 2022 07:47:59 -0400 Received: by simark.ca (Postfix, from userid 112) id DFA781E058; Thu, 5 May 2022 07:47:59 -0400 (EDT) Authentication-Results: simark.ca; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=tQJRkxVM; dkim-atps=neutral X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RDNS_DYNAMIC,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 29DED1E00D for ; Thu, 5 May 2022 07:47:59 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 52859385626C for ; Thu, 5 May 2022 11:47:58 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 52859385626C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1651751278; bh=hRvJ2kQKIHreRFQBSuUXuEJUYc92C1Mfx6KAPuy+YUk=; h=Date:Subject:To:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=tQJRkxVMfg8V0g9XJH9WpzFFblePFBxPKwCVoeqBonxDV101sEBjde+U0o5DXL0Zb 5Di5OHnZJqeQD09mUFQ7gI/iAV/S0ZfnmFSpL5gizpn1OQsyVqJeqTCIXfFD1j0qb0 1Rq/o9Si4PwawAvLR5ffeIhrbQOmPjUGeFPrkkKM= Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by sourceware.org (Postfix) with ESMTPS id 6E3B63856DFF for ; Thu, 5 May 2022 11:47:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 6E3B63856DFF 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-out1.suse.de (Postfix) with ESMTPS id A6DCD219AB for ; Thu, 5 May 2022 11:47:05 +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 9646713A65 for ; Thu, 5 May 2022 11:47:05 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id t6qTIzm5c2KubQAAMHmgww (envelope-from ) for ; Thu, 05 May 2022 11:47:05 +0000 Content-Type: multipart/mixed; boundary="------------0xehCBUTYfaQKDbg09Y0GzFE" Message-ID: Date: Thu, 5 May 2022 13:47:05 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0 Subject: [PATCH, v2][gdb/testsuite] Handle pipe2 syscall in gdb.base/catch-syscall.exp Content-Language: en-US To: gdb-patches@sourceware.org References: <20220503145732.GA26729@delia.home> In-Reply-To: <20220503145732.GA26729@delia.home> 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: , From: Tom de Vries via Gdb-patches Reply-To: Tom de Vries Errors-To: gdb-patches-bounces+public-inbox=simark.ca@sourceware.org Sender: "Gdb-patches" This is a multi-part message in MIME format. --------------0xehCBUTYfaQKDbg09Y0GzFE Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 5/3/22 16:57, Tom de Vries wrote: > Hi, > > When running test-case gdb.reverse/pipe-reverse.exp on openSUSE Tumbleweed, > I run into: > ... > (gdb) continue^M > Continuing.^M > ^M > Catchpoint 2 (returned from syscall pipe2), in pipe () from /lib64/libc.so.6^M > (gdb) FAIL: gdb.base/catch-syscall.exp: without arguments: \ > syscall pipe has returned > ... > > The current glibc on Tumbleweed is 2.35, which contains commit > "linux: Implement pipe in terms of __NR_pipe2", and consequently syscall pipe2 > is used in stead of syscall pipe. > > Fix this by detecting whether syscall pipe or pipe2 is used before running the tests. > > Tested on x86_64-linux, specifically on: > - openSUSE Tumbleweed (with glibc 2.35), and > - openSUSE Leap 15.3 (with glibc 2.31). > > Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29056 > > Any comments? > I'm submitting a v2. I found out that with target board unix/-m32, pipe2 is not recognized as syscall name (which I'll fix in a follow-up patch), so I made the test robust against this, by using the syscall number instead. Thanks, - Tom --------------0xehCBUTYfaQKDbg09Y0GzFE Content-Type: text/x-patch; charset=UTF-8; name="0008-gdb-testsuite-Handle-pipe2-syscall-in-gdb.base-catch-syscall.exp.patch" Content-Disposition: attachment; filename*0="0008-gdb-testsuite-Handle-pipe2-syscall-in-gdb.base-catch-sy"; filename*1="scall.exp.patch" Content-Transfer-Encoding: base64 W2dkYi90ZXN0c3VpdGVdIEhhbmRsZSBwaXBlMiBzeXNjYWxsIGluIGdkYi5iYXNlL2NhdGNo LXN5c2NhbGwuZXhwCgpXaGVuIHJ1bm5pbmcgdGVzdC1jYXNlIGdkYi5yZXZlcnNlL3BpcGUt cmV2ZXJzZS5leHAgb24gb3BlblNVU0UgVHVtYmxld2VlZCwKSSBydW4gaW50bzoKLi4uCihn ZGIpIGNvbnRpbnVlXk0KQ29udGludWluZy5eTQpeTQpDYXRjaHBvaW50IDIgKHJldHVybmVk IGZyb20gc3lzY2FsbCBwaXBlMiksIGluIHBpcGUgKCkgZnJvbSAvbGliNjQvbGliYy5zby42 Xk0KKGdkYikgRkFJTDogZ2RiLmJhc2UvY2F0Y2gtc3lzY2FsbC5leHA6IHdpdGhvdXQgYXJn dW1lbnRzOiBcCiAgc3lzY2FsbCBwaXBlIGhhcyByZXR1cm5lZAouLi4KClRoZSBjdXJyZW50 IGdsaWJjIG9uIFR1bWJsZXdlZWQgaXMgMi4zNSwgd2hpY2ggY29udGFpbnMgY29tbWl0CiJs aW51eDogSW1wbGVtZW50IHBpcGUgaW4gdGVybXMgb2YgX19OUl9waXBlMiIsIGFuZCBjb25z ZXF1ZW50bHkgc3lzY2FsbCBwaXBlMgppcyB1c2VkIGluc3RlYWQgb2Ygc3lzY2FsbCBwaXBl LgoKRml4IHRoaXMgYnkgZGV0ZWN0aW5nIHdoZXRoZXIgc3lzY2FsbCBwaXBlIG9yIHBpcGUy IGlzIHVzZWQgYmVmb3JlIHJ1bm5pbmcgdGhlIHRlc3RzLgoKVGVzdGVkIG9uIHg4Nl82NC1s aW51eCwgc3BlY2lmaWNhbGx5IG9uOgotIG9wZW5TVVNFIFR1bWJsZXdlZWQgKHdpdGggZ2xp YmMgMi4zNSksIGFuZAotIG9wZW5TVVNFIExlYXAgMTUuMyAod2l0aCBnbGliYyAyLjMxKS4K Ck9uIG9wZW5TVVNFIFR1bWJsZXdlZWQgKyB0YXJnZXQgYm9hcmQgdW5peC8tbTMyLCB0aGlz IGV4cG9zZXM6Ci4uLgooZ2RiKSBjYXRjaCBzeXNjYWxsIHBpcGUyXk0KVW5rbm93biBzeXNj YWxsIG5hbWUgJ3BpcGUyJy5eTQouLi4Kc28gbWFrZSB0aGUgdGVzdCByb2J1c3QgYWdhaW5z dCB0aGlzIGJ5IHVzaW5nIHRoZSBzeXNjYWxsIG51bWJlciBpbnN0ZWFkLAp3aGlsZSBzdGls bCBub3RpbmcgdGhhdCB0aGUgc3lzY2FsbCBuYW1lIHBpcGUyIGlzIG5vdCByZWNvZ25pemVk OgouLi4KRkFJTDogZ2RiLmJhc2UvY2F0Y2gtc3lzY2FsbC5leHA6IGRldGVybWluZSBwaXBl IHN5c2NhbGw6IGNhdGNoIHN5c2NhbGwgcGlwZTIKLi4uCndoaWNoIHdpbGwgYmUgZml4ZWQg aW4gYSBmb2xsbG93LXVwIHBhdGNoLgoKQnVnOiBodHRwczovL3NvdXJjZXdhcmUub3JnL2J1 Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0yOTA1NgoKLS0tCiBnZGIvdGVzdHN1aXRlL2dkYi5i YXNlL2NhdGNoLXN5c2NhbGwuYyAgIHwgICAzICstCiBnZGIvdGVzdHN1aXRlL2dkYi5iYXNl L2NhdGNoLXN5c2NhbGwuZXhwIHwgMTAwICsrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0KIDIgZmlsZXMgY2hhbmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jYXRjaC1zeXNjYWxsLmMg Yi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NhdGNoLXN5c2NhbGwuYwppbmRleCAwYWI5NjMx OGQzZS4uOGMyNTJhMDZiMjAgMTAwNjQ0Ci0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv Y2F0Y2gtc3lzY2FsbC5jCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY2F0Y2gtc3lz Y2FsbC5jCkBAIC0yNCw3ICsyNCw4IEBAIGludCBjaHJvb3Rfc3lzY2FsbCA9IFNZU19jaHJv b3Q7CiBpbnQgcmVhZF9zeXNjYWxsID0gU1lTX3JlYWQ7CiAjaWZkZWYgU1lTX3BpcGUKIGlu dCBwaXBlX3N5c2NhbGwgPSBTWVNfcGlwZTsKLSNlbHNlCisjZW5kaWYKKyNpZmRlZiBTWVNf cGlwZTIKIGludCBwaXBlMl9zeXNjYWxsID0gU1lTX3BpcGUyOwogI2VuZGlmCiBpbnQgd3Jp dGVfc3lzY2FsbCA9IFNZU193cml0ZTsKZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2Ri LmJhc2UvY2F0Y2gtc3lzY2FsbC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NhdGNo LXN5c2NhbGwuZXhwCmluZGV4IGE1ZGZkMDI0MTFiLi5jYzc2YTJjZjYxZCAxMDA2NDQKLS0t IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jYXRjaC1zeXNjYWxsLmV4cAorKysgYi9nZGIv dGVzdHN1aXRlL2dkYi5iYXNlL2NhdGNoLXN5c2NhbGwuZXhwCkBAIC0xODUsNyArMTg1LDEx IEBAIHByb2MgaW5zZXJ0X2NhdGNoX3N5c2NhbGxfd2l0aF9tYW55X2FyZ3MgeyBzeXNjYWxs cyBudW1iZXJzIH0gewogICAgIHNldCBmaWx0ZXJfc3RyICIiCiAKICAgICBmb3JlYWNoIG5h bWUgJHN5c2NhbGxzIG51bWJlciAkbnVtYmVycyB7Ci0gICAgICBzZXQgZmlsdGVyX3N0ciAi JHtmaWx0ZXJfc3RyfScke25hbWV9JyBcXFxbJHtudW1iZXJ9XFxcXSAiCisJaWYgeyBbc3Ry aW5nIGlzIGludGVnZXIgJG5hbWVdIH0geworCSAgICBhcHBlbmQgZmlsdGVyX3N0ciAiJHtu YW1lfSAiCisJfSBlbHNlIHsKKwkgICAgYXBwZW5kIGZpbHRlcl9zdHIgIicke25hbWV9JyBc XFxbJHtudW1iZXJ9XFxcXSAiCisJfQogICAgIH0KIAogICAgIHNldCBmaWx0ZXJfc3RyIFsg c3RyaW5nIHRyaW1yaWdodCAkZmlsdGVyX3N0ciAiICIgXQpAQCAtNjYyLDQyICs2NjYsMTIw IEBAIHByb2MgZmlsbF9hbGxfc3lzY2FsbHNfbnVtYmVycyB7fSB7CiAgICAgZ2xvYmFsIGFs bF9zeXNjYWxsc19udW1iZXJzIGxhc3Rfc3lzY2FsbF9udW1iZXIgdW5rbm93bl9zeXNjYWxs X251bWJlciBhbGxfc3lzY2FsbHMKIAogICAgIGZvcmVhY2ggc3lzY2FsbCAkYWxsX3N5c2Nh bGxzIHsKLQlsYXBwZW5kIGFsbF9zeXNjYWxsc19udW1iZXJzIFtnZXRfaW50ZWdlcl92YWx1 ZW9mICIke3N5c2NhbGx9X3N5c2NhbGwiIC0xXQorCWlmIHsgW3N0cmluZyBpcyBpbnRlZ2Vy ICRzeXNjYWxsXSB9IHsKKwkgICAgbGFwcGVuZCBhbGxfc3lzY2FsbHNfbnVtYmVycyAkc3lz Y2FsbAorCX0gZWxzZSB7CisJICAgIGxhcHBlbmQgYWxsX3N5c2NhbGxzX251bWJlcnMgW2dl dF9pbnRlZ2VyX3ZhbHVlb2YgIiR7c3lzY2FsbH1fc3lzY2FsbCIgLTFdCisJfQogICAgIH0K IAogICAgIHNldCBsYXN0X3N5c2NhbGxfbnVtYmVyIFtnZXRfaW50ZWdlcl92YWx1ZW9mICJl eGl0X2dyb3VwX3N5c2NhbGwiIC0xXQogICAgIHNldCB1bmtub3duX3N5c2NhbGxfbnVtYmVy IFtnZXRfaW50ZWdlcl92YWx1ZW9mICJ1bmtub3duX3N5c2NhbGwiIC0xXQogfQogCi0jIFNl dCB1cCB0aGUgdmVjdG9yIGFsbF9zeXNjYWxscy4KKyMgQ2F0Y2ggc3lzY2FsbCB3aXRoIE5B TUUsIG9yIGlmIGdkYiBkb2Vzbid0IHN1cHBvcnQgdGhhdCAoeWV0KSwgdHJ5IE5SCisjIGlu c3RlYWQuCisKK3Byb2MgY2F0Y2hfc3lzY2FsbF9uYW1lX29yX25yIHsgbmFtZSBuciB9IHsK KyAgICBnbG9iYWwgZGVjaW1hbAorCisgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgImNhdGNoIHN5 c2NhbGwgJG5hbWUiICIiIHsKKwktcmUgLXdyYXAgIkNhdGNocG9pbnQgJGRlY2ltYWwgXFwo c3lzY2FsbCAnJG5hbWUnIFxcXFskbnJcXFxdXFwpIiB7CisJICAgIHBhc3MgJGdkYl90ZXN0 X25hbWUKKwl9CisJLXJlIC13cmFwICJVbmtub3duIHN5c2NhbGwgbmFtZSAnJG5hbWUnXC4i IHsKKwkgICAgZmFpbCAkZ2RiX3Rlc3RfbmFtZQorCSAgICBnZGJfdGVzdCAiY2F0Y2ggc3lz Y2FsbCAkbnIiICJDYXRjaHBvaW50ICRkZWNpbWFsIFxcKHN5c2NhbGwgJG5yXFwpIgorCX0K KyAgICB9Cit9CisKKyMgU2V0IHVwIHRoZSB2ZWN0b3IgYWxsX3N5c2NhbGxzLiAgUmV0dXJu cyAxIHVwb24gc3VjY2VzcywgMCB1cG9uIGZhaWx1cmUuCiAKIHByb2Mgc2V0dXBfYWxsX3N5 c2NhbGxzIHt9IHsKICAgICBnbG9iYWwgYWxsX3N5c2NhbGxzCiAgICAgZ2xvYmFsIGdkYl9w cm9tcHQKKyAgICBnbG9iYWwgZGVjaW1hbAogCiAgICAgIyBUaGV5IGFyZSBvcmRlcmVkIGFj Y29yZGluZyB0byB0aGUgZmlsZSwgc28gZG8gbm90IGNoYW5nZSB0aGlzLgogICAgIGxhcHBl bmQgYWxsX3N5c2NhbGxzICJjbG9zZSIKICAgICBsYXBwZW5kIGFsbF9zeXNjYWxscyAiY2hy b290IgogCisgICAgaWYgeyAhW3J1bnRvX21haW5dIH0geworCXJldHVybiAwCisgICAgfQor CiAgICAgIyBTWVNfcGlwZSBkb2Vzbid0IGV4aXN0IG9uIGFhcmNoNjQga2VybmVsLgogICAg IHNldCB0ZXN0ICJjaGVjayBTWVNfcGlwZSIKKyAgICBzZXQgaGF2ZV9TWVNfcGlwZSAwCiAg ICAgZ2RiX3Rlc3RfbXVsdGlwbGUgInAgcGlwZV9zeXNjYWxsIiAkdGVzdCB7Ci0JLXJlICIg PSAuKiRnZGJfcHJvbXB0ICQiIHsKKwktcmUgLXdyYXAgIiA9ICgkZGVjaW1hbCkiIHsKKwkg ICAgcGFzcyAkdGVzdAorCSAgICBzZXQgaGF2ZV9TWVNfcGlwZSAxCisJICAgIHNldCBTWVNf cGlwZSAkZXhwZWN0X291dCgxLHN0cmluZykKKwl9CisJLXJlIC13cmFwICJObyBzeW1ib2wg LioiIHsKKwkgICAgcGFzcyAkdGVzdAorCX0KKyAgICB9CisKKyAgICBzZXQgdGVzdCAiY2hl Y2sgU1lTX3BpcGUyIgorICAgIHNldCBoYXZlX1NZU19waXBlMiAwCisgICAgZ2RiX3Rlc3Rf bXVsdGlwbGUgInAgcGlwZTJfc3lzY2FsbCIgJHRlc3QgeworCS1yZSAtd3JhcCAiID0gKCRk ZWNpbWFsKSIgewogCSAgICBwYXNzICR0ZXN0Ci0JICAgIGxhcHBlbmQgYWxsX3N5c2NhbGxz ICJwaXBlIgorCSAgICBzZXQgaGF2ZV9TWVNfcGlwZTIgMQorCSAgICBzZXQgU1lTX3BpcGUy ICRleHBlY3Rfb3V0KDEsc3RyaW5nKQogCX0KLQktcmUgIk5vIHN5bWJvbCAuKiRnZGJfcHJv bXB0ICQiIHsKKwktcmUgLXdyYXAgIk5vIHN5bWJvbCAuKiIgewogCSAgICBwYXNzICR0ZXN0 Ci0JICAgICMgU1lTX3BpcGUgaXNuJ3QgZGVmaW5lZCwgdXNlIFNZU19waXBlMiBpbnN0ZWFk LgotCSAgICBsYXBwZW5kIGFsbF9zeXNjYWxscyAicGlwZTIiCisJfQorICAgIH0KKworICAg IGlmIHsgJGhhdmVfU1lTX3BpcGUgPT0gMCAmJiAkaGF2ZV9TWVNfcGlwZTIgPT0gMCB9IHsK KwlyZXR1cm4gMAorICAgIH0KKworICAgIHdpdGhfdGVzdF9wcmVmaXggImRldGVybWluZSBw aXBlIHN5c2NhbGwiIHsKKwlzZXQgbGluZSBbZ2RiX2dldF9saW5lX251bWJlciAicGlwZSAo ZmQpIl0KKwlnZGJfdGVzdCAiYnJlYWsgJGxpbmUiCisJZ2RiX2NvbnRpbnVlX3RvX2JyZWFr cG9pbnQgImJlZm9yZSBwaXBlIGNhbGwiCisJaWYgeyAkaGF2ZV9TWVNfcGlwZSB9IHsKKwkg ICAgY2F0Y2hfc3lzY2FsbF9uYW1lX29yX25yIHBpcGUgJFNZU19waXBlCisJfQorCWlmIHsg JGhhdmVfU1lTX3BpcGUyIH0geworCSAgICBjYXRjaF9zeXNjYWxsX25hbWVfb3JfbnIgcGlw ZTIgJFNZU19waXBlMgorCX0KKwlzZXQgb2sgMAorCWdkYl90ZXN0X211bHRpcGxlICJjb250 aW51ZSIgIiIgeworCSAgICAtcmUgLXdyYXAgIkNhdGNocG9pbnQgJGRlY2ltYWwgXFwoY2Fs bCB0byBzeXNjYWxsIChwaXBlfCRTWVNfcGlwZSlcXCkuKiIgeworCQlsYXBwZW5kIGFsbF9z eXNjYWxscyAkZXhwZWN0X291dCgxLHN0cmluZykKKwkJcGFzcyAkZ2RiX3Rlc3RfbmFtZQor CQlzZXQgb2sgMQorCSAgICB9CisJICAgIC1yZSAtd3JhcCAiQ2F0Y2hwb2ludCAkZGVjaW1h bCBcXChjYWxsIHRvIHN5c2NhbGwgKHBpcGUyfCRTWVNfcGlwZTIpXFwpLioiIHsKKwkJbGFw cGVuZCBhbGxfc3lzY2FsbHMgJGV4cGVjdF9vdXQoMSxzdHJpbmcpCisJCXBhc3MgJGdkYl90 ZXN0X25hbWUKKwkJc2V0IG9rIDEKKwkgICAgfQorCSAgICAtcmUgLXdyYXAgIiIgeworCQlm YWlsICRnZGJfdGVzdF9uYW1lCisJICAgIH0KKwl9CisJaWYgeyAhICRvayB9IHsKKwkgICAg cmV0dXJuIDAKIAl9CiAgICAgfQogCiAgICAgbGFwcGVuZCBhbGxfc3lzY2FsbHMgIndyaXRl IgogICAgIGxhcHBlbmQgYWxsX3N5c2NhbGxzICJyZWFkIgorCisgICAgcmV0dXJuIDEKIH0K IAotc2V0dXBfYWxsX3N5c2NhbGxzCitpZiB7ICFbc2V0dXBfYWxsX3N5c2NhbGxzXSB9IHsK KyAgICByZXR1cm4gLTEKK30KIAogIyBGaWxsIGFsbCB0aGUgc3lzY2FsbHMgbnVtYmVycyBi ZWZvcmUgc3RhcnRpbmcgYW55dGhpbmcuCiBmaWxsX2FsbF9zeXNjYWxsc19udW1iZXJzCg== --------------0xehCBUTYfaQKDbg09Y0GzFE--