From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C79A0C43457 for ; Sat, 17 Oct 2020 07:06:58 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6E11220780 for ; Sat, 17 Oct 2020 07:06:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Gz2i+dm+"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="nbsNyTPB" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6E11220780 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=H24Xlbrr5sfgI2/3fL51rOMaFA1QDNQ68h058frV2wE=; b=Gz2i+dm+zy2dRpoFrwNWA4Orh +93y+QXU5l/eyP3ri5ledcrPjH1EFrLh833ujC0i0+lorJQn/6n1DdbWO/+F9Xy4DWfrNQtfILsYQ ppXF1yQIAgzf8Tp2bCn0VmBa80Pg29MX4wS56LP4cuj6TGH4NcbehBW5T7bd3ufKBez7BGdk2aabu WUX0jCzYflB1v5WQy3JZfZ72dffsjsKII5ArfAcXrh3yqZPfVQwrmT9gGdOXJjUdMHgdFfOR/Z5TX cOLBDc6m8Nz/SlOkiziaoX9dfu/qLfb6jQ0o+rIH7uUEsBLdr0dhuBwil5VEJTCg8W1OIEdKreBeQ KDp7Eoyvg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kTgIg-0001cW-1E; Sat, 17 Oct 2020 07:06:46 +0000 Received: from mail.kernel.org ([198.145.29.99]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kTgId-0001c8-Oh for linux-riscv@lists.infradead.org; Sat, 17 Oct 2020 07:06:44 +0000 Received: from localhost.localdomain (89.208.247.74.16clouds.com [89.208.247.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 40F4520758; Sat, 17 Oct 2020 07:06:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1602918403; bh=8s8w/ArUyvs9nmV4DlskUsqaLc03Im0p3X5v6JuuvgA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nbsNyTPB8WZCGCK9dKDZoLamYvUDXoor2VcfjS83S2ol8oVBgWB2QNGuuqqV2qMAR WjalGvOxTQHmaDRH9HxlzvL30WqdIc2xBpF/hqJ+9WbmpOEuvNamWpiSytw8bkrKq6 dHonManXPTeHiNzaNB/nAKZZfIyoyezAFPgCci3c= From: guoren@kernel.org To: palmerdabbelt@google.com, paul.walmsley@sifive.com, mhiramat@kernel.org, alankao@andestech.com, rostedt@goodmis.org Subject: [PATCH v4 1/9] RISC-V: Implement ptrace regs and stack API Date: Sat, 17 Oct 2020 07:06:09 +0000 Message-Id: <1602918377-23573-2-git-send-email-guoren@kernel.org> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1602918377-23573-1-git-send-email-guoren@kernel.org> References: <1602918377-23573-1-git-send-email-guoren@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201017_030643_933379_C47050E4 X-CRM114-Status: GOOD ( 21.36 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: me@packi.ch, Guo Ren , anup@brainfault.org, linux-kernel@vger.kernel.org, linux-csky@vger.kernel.org, guoren@kernel.org, zong.li@sifive.com, greentime.hu@sifive.com, linux-riscv@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org RnJvbTogUGF0cmljayBTdMOkaGxpbiA8bWVAcGFja2kuY2g+CgpOZWVkZWQgZm9yIGtwcm9iZXMg c3VwcG9ydC4gQ29waWVkIGFuZCBhZGFwdGVkIGZyb20gYXJtNjQgY29kZS4KCkd1byBSZW4gZml4 dXAgcHRfcmVncyB0eXBlIGZvciBsaW51eC01LjgtcmMxLgoKU2lnbmVkLW9mZi1ieTogUGF0cmlj ayBTdMOkaGxpbiA8bWVAcGFja2kuY2g+ClNpZ25lZC1vZmYtYnk6IEd1byBSZW4gPGd1b3JlbkBs aW51eC5hbGliYWJhLmNvbT4KUmV2aWV3ZWQtYnk6IFBla2thIEVuYmVyZyA8cGVuYmVyZ0BrZXJu ZWwub3JnPgpSZXZpZXdlZC1ieTogWm9uZyBMaSA8em9uZy5saUBzaWZpdmUuY29tPgpSZXZpZXdl ZC1ieTogTWFzYW1pIEhpcmFtYXRzdSA8bWhpcmFtYXRAa2VybmVsLm9yZz4KLS0tCiBhcmNoL3Jp c2N2L0tjb25maWcgICAgICAgICAgICAgIHwgIDEgKwogYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9w dHJhY2UuaCB8IDI5ICsrKysrKysrKysrKwogYXJjaC9yaXNjdi9rZXJuZWwvcHRyYWNlLmMgICAg ICB8IDk5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVz IGNoYW5nZWQsIDEyOSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9LY29u ZmlnIGIvYXJjaC9yaXNjdi9LY29uZmlnCmluZGV4IGI3ODIxYWMuLmU2NDI0ZDhiIDEwMDY0NAot LS0gYS9hcmNoL3Jpc2N2L0tjb25maWcKKysrIGIvYXJjaC9yaXNjdi9LY29uZmlnCkBAIC04Nyw2 ICs4Nyw3IEBAIGNvbmZpZyBSSVNDVgogCXNlbGVjdCBTUEFSU0VfSVJRCiAJc2VsZWN0IFNZU0NU TF9FWENFUFRJT05fVFJBQ0UKIAlzZWxlY3QgVEhSRUFEX0lORk9fSU5fVEFTSworCXNlbGVjdCBI QVZFX1JFR1NfQU5EX1NUQUNLX0FDQ0VTU19BUEkKIAogY29uZmlnIEFSQ0hfTU1BUF9STkRfQklU U19NSU4KIAlkZWZhdWx0IDE4IGlmIDY0QklUCmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1 ZGUvYXNtL3B0cmFjZS5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wdHJhY2UuaAppbmRleCBl ZTQ5ZjgwLi4yMzM3MmJiIDEwMDY0NAotLS0gYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3B0cmFj ZS5oCisrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcHRyYWNlLmgKQEAgLTgsNiArOCw3IEBA CiAKICNpbmNsdWRlIDx1YXBpL2FzbS9wdHJhY2UuaD4KICNpbmNsdWRlIDxhc20vY3NyLmg+Cisj aW5jbHVkZSA8bGludXgvY29tcGlsZXIuaD4KIAogI2lmbmRlZiBfX0FTU0VNQkxZX18KIApAQCAt NjAsNiArNjEsNyBAQCBzdHJ1Y3QgcHRfcmVncyB7CiAKICNkZWZpbmUgdXNlcl9tb2RlKHJlZ3Mp ICgoKHJlZ3MpLT5zdGF0dXMgJiBTUl9QUCkgPT0gMCkKIAorI2RlZmluZSBNQVhfUkVHX09GRlNF VCBvZmZzZXRvZihzdHJ1Y3QgcHRfcmVncywgb3JpZ19hMCkKIAogLyogSGVscGVycyBmb3Igd29y a2luZyB3aXRoIHRoZSBpbnN0cnVjdGlvbiBwb2ludGVyICovCiBzdGF0aWMgaW5saW5lIHVuc2ln bmVkIGxvbmcgaW5zdHJ1Y3Rpb25fcG9pbnRlcihzdHJ1Y3QgcHRfcmVncyAqcmVncykKQEAgLTg1 LDYgKzg3LDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB1c2VyX3N0YWNrX3BvaW50ZXJfc2V0KHN0 cnVjdCBwdF9yZWdzICpyZWdzLAogCXJlZ3MtPnNwID0gIHZhbDsKIH0KIAorLyogVmFsaWQgb25s eSBmb3IgS2VybmVsIG1vZGUgdHJhcHMuICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcg a2VybmVsX3N0YWNrX3BvaW50ZXIoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCit7CisJcmV0dXJuIHJl Z3MtPnNwOworfQorCiAvKiBIZWxwZXJzIGZvciB3b3JraW5nIHdpdGggdGhlIGZyYW1lIHBvaW50 ZXIgKi8KIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBmcmFtZV9wb2ludGVyKHN0cnVjdCBw dF9yZWdzICpyZWdzKQogewpAQCAtMTAxLDYgKzEwOSwyNyBAQCBzdGF0aWMgaW5saW5lIHVuc2ln bmVkIGxvbmcgcmVnc19yZXR1cm5fdmFsdWUoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiAJcmV0dXJu IHJlZ3MtPmEwOwogfQogCitleHRlcm4gaW50IHJlZ3NfcXVlcnlfcmVnaXN0ZXJfb2Zmc2V0KGNv bnN0IGNoYXIgKm5hbWUpOworZXh0ZXJuIHVuc2lnbmVkIGxvbmcgcmVnc19nZXRfa2VybmVsX3N0 YWNrX250aChzdHJ1Y3QgcHRfcmVncyAqcmVncywKKwkJCQkJICAgICAgIHVuc2lnbmVkIGludCBu KTsKKworLyoqCisgKiByZWdzX2dldF9yZWdpc3RlcigpIC0gZ2V0IHJlZ2lzdGVyIHZhbHVlIGZy b20gaXRzIG9mZnNldAorICogQHJlZ3M6CXB0X3JlZ3MgZnJvbSB3aGljaCByZWdpc3RlciB2YWx1 ZSBpcyBnb3R0ZW4KKyAqIEBvZmZzZXQ6CW9mZnNldCBvZiB0aGUgcmVnaXN0ZXIuCisgKgorICog cmVnc19nZXRfcmVnaXN0ZXIgcmV0dXJucyB0aGUgdmFsdWUgb2YgYSByZWdpc3RlciB3aG9zZSBv ZmZzZXQgZnJvbSBAcmVncy4KKyAqIFRoZSBAb2Zmc2V0IGlzIHRoZSBvZmZzZXQgb2YgdGhlIHJl Z2lzdGVyIGluIHN0cnVjdCBwdF9yZWdzLgorICogSWYgQG9mZnNldCBpcyBiaWdnZXIgdGhhbiBN QVhfUkVHX09GRlNFVCwgdGhpcyByZXR1cm5zIDAuCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWdu ZWQgbG9uZyByZWdzX2dldF9yZWdpc3RlcihzdHJ1Y3QgcHRfcmVncyAqcmVncywKKwkJCQkJICAg ICAgdW5zaWduZWQgaW50IG9mZnNldCkKK3sKKwlpZiAodW5saWtlbHkob2Zmc2V0ID4gTUFYX1JF R19PRkZTRVQpKQorCQlyZXR1cm4gMDsKKworCXJldHVybiAqKHVuc2lnbmVkIGxvbmcgKikoKHVu c2lnbmVkIGxvbmcpcmVncyArIG9mZnNldCk7Cit9CiAjZW5kaWYgLyogX19BU1NFTUJMWV9fICov CiAKICNlbmRpZiAvKiBfQVNNX1JJU0NWX1BUUkFDRV9IICovCmRpZmYgLS1naXQgYS9hcmNoL3Jp c2N2L2tlcm5lbC9wdHJhY2UuYyBiL2FyY2gvcmlzY3Yva2VybmVsL3B0cmFjZS5jCmluZGV4IDJk NjM5NWYuLjFhODUzMDUgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yva2VybmVsL3B0cmFjZS5jCisr KyBiL2FyY2gvcmlzY3Yva2VybmVsL3B0cmFjZS5jCkBAIC0xMTQsNiArMTE0LDEwNSBAQCBjb25z dCBzdHJ1Y3QgdXNlcl9yZWdzZXRfdmlldyAqdGFza191c2VyX3JlZ3NldF92aWV3KHN0cnVjdCB0 YXNrX3N0cnVjdCAqdGFzaykKIAlyZXR1cm4gJnJpc2N2X3VzZXJfbmF0aXZlX3ZpZXc7CiB9CiAK K3N0cnVjdCBwdF9yZWdzX29mZnNldCB7CisJY29uc3QgY2hhciAqbmFtZTsKKwlpbnQgb2Zmc2V0 OworfTsKKworI2RlZmluZSBSRUdfT0ZGU0VUX05BTUUocikgey5uYW1lID0gI3IsIC5vZmZzZXQg PSBvZmZzZXRvZihzdHJ1Y3QgcHRfcmVncywgcil9CisjZGVmaW5lIFJFR19PRkZTRVRfRU5EIHsu bmFtZSA9IE5VTEwsIC5vZmZzZXQgPSAwfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHB0X3JlZ3Nf b2Zmc2V0IHJlZ29mZnNldF90YWJsZVtdID0geworCVJFR19PRkZTRVRfTkFNRShlcGMpLAorCVJF R19PRkZTRVRfTkFNRShyYSksCisJUkVHX09GRlNFVF9OQU1FKHNwKSwKKwlSRUdfT0ZGU0VUX05B TUUoZ3ApLAorCVJFR19PRkZTRVRfTkFNRSh0cCksCisJUkVHX09GRlNFVF9OQU1FKHQwKSwKKwlS RUdfT0ZGU0VUX05BTUUodDEpLAorCVJFR19PRkZTRVRfTkFNRSh0MiksCisJUkVHX09GRlNFVF9O QU1FKHMwKSwKKwlSRUdfT0ZGU0VUX05BTUUoczEpLAorCVJFR19PRkZTRVRfTkFNRShhMCksCisJ UkVHX09GRlNFVF9OQU1FKGExKSwKKwlSRUdfT0ZGU0VUX05BTUUoYTIpLAorCVJFR19PRkZTRVRf TkFNRShhMyksCisJUkVHX09GRlNFVF9OQU1FKGE0KSwKKwlSRUdfT0ZGU0VUX05BTUUoYTUpLAor CVJFR19PRkZTRVRfTkFNRShhNiksCisJUkVHX09GRlNFVF9OQU1FKGE3KSwKKwlSRUdfT0ZGU0VU X05BTUUoczIpLAorCVJFR19PRkZTRVRfTkFNRShzMyksCisJUkVHX09GRlNFVF9OQU1FKHM0KSwK KwlSRUdfT0ZGU0VUX05BTUUoczUpLAorCVJFR19PRkZTRVRfTkFNRShzNiksCisJUkVHX09GRlNF VF9OQU1FKHM3KSwKKwlSRUdfT0ZGU0VUX05BTUUoczgpLAorCVJFR19PRkZTRVRfTkFNRShzOSks CisJUkVHX09GRlNFVF9OQU1FKHMxMCksCisJUkVHX09GRlNFVF9OQU1FKHMxMSksCisJUkVHX09G RlNFVF9OQU1FKHQzKSwKKwlSRUdfT0ZGU0VUX05BTUUodDQpLAorCVJFR19PRkZTRVRfTkFNRSh0 NSksCisJUkVHX09GRlNFVF9OQU1FKHQ2KSwKKwlSRUdfT0ZGU0VUX05BTUUoc3RhdHVzKSwKKwlS RUdfT0ZGU0VUX05BTUUoYmFkYWRkciksCisJUkVHX09GRlNFVF9OQU1FKGNhdXNlKSwKKwlSRUdf T0ZGU0VUX05BTUUob3JpZ19hMCksCisJUkVHX09GRlNFVF9FTkQsCit9OworCisvKioKKyAqIHJl Z3NfcXVlcnlfcmVnaXN0ZXJfb2Zmc2V0KCkgLSBxdWVyeSByZWdpc3RlciBvZmZzZXQgZnJvbSBp dHMgbmFtZQorICogQG5hbWU6CXRoZSBuYW1lIG9mIGEgcmVnaXN0ZXIKKyAqCisgKiByZWdzX3F1 ZXJ5X3JlZ2lzdGVyX29mZnNldCgpIHJldHVybnMgdGhlIG9mZnNldCBvZiBhIHJlZ2lzdGVyIGlu IHN0cnVjdAorICogcHRfcmVncyBmcm9tIGl0cyBuYW1lLiBJZiB0aGUgbmFtZSBpcyBpbnZhbGlk LCB0aGlzIHJldHVybnMgLUVJTlZBTDsKKyAqLworaW50IHJlZ3NfcXVlcnlfcmVnaXN0ZXJfb2Zm c2V0KGNvbnN0IGNoYXIgKm5hbWUpCit7CisJY29uc3Qgc3RydWN0IHB0X3JlZ3Nfb2Zmc2V0ICpy b2ZmOworCisJZm9yIChyb2ZmID0gcmVnb2Zmc2V0X3RhYmxlOyByb2ZmLT5uYW1lICE9IE5VTEw7 IHJvZmYrKykKKwkJaWYgKCFzdHJjbXAocm9mZi0+bmFtZSwgbmFtZSkpCisJCQlyZXR1cm4gcm9m Zi0+b2Zmc2V0OworCXJldHVybiAtRUlOVkFMOworfQorCisvKioKKyAqIHJlZ3Nfd2l0aGluX2tl cm5lbF9zdGFjaygpIC0gY2hlY2sgdGhlIGFkZHJlc3MgaW4gdGhlIHN0YWNrCisgKiBAcmVnczog ICAgICBwdF9yZWdzIHdoaWNoIGNvbnRhaW5zIGtlcm5lbCBzdGFjayBwb2ludGVyLgorICogQGFk ZHI6ICAgICAgYWRkcmVzcyB3aGljaCBpcyBjaGVja2VkLgorICoKKyAqIHJlZ3Nfd2l0aGluX2tl cm5lbF9zdGFjaygpIGNoZWNrcyBAYWRkciBpcyB3aXRoaW4gdGhlIGtlcm5lbCBzdGFjayBwYWdl KHMpLgorICogSWYgQGFkZHIgaXMgd2l0aGluIHRoZSBrZXJuZWwgc3RhY2ssIGl0IHJldHVybnMg dHJ1ZS4gSWYgbm90LCByZXR1cm5zIGZhbHNlLgorICovCitzdGF0aWMgYm9vbCByZWdzX3dpdGhp bl9rZXJuZWxfc3RhY2soc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVuc2lnbmVkIGxvbmcgYWRkcikK K3sKKwlyZXR1cm4gKGFkZHIgJiB+KFRIUkVBRF9TSVpFIC0gMSkpICA9PQorCQkoa2VybmVsX3N0 YWNrX3BvaW50ZXIocmVncykgJiB+KFRIUkVBRF9TSVpFIC0gMSkpOworfQorCisvKioKKyAqIHJl Z3NfZ2V0X2tlcm5lbF9zdGFja19udGgoKSAtIGdldCBOdGggZW50cnkgb2YgdGhlIHN0YWNrCisg KiBAcmVnczoJcHRfcmVncyB3aGljaCBjb250YWlucyBrZXJuZWwgc3RhY2sgcG9pbnRlci4KKyAq IEBuOgkJc3RhY2sgZW50cnkgbnVtYmVyLgorICoKKyAqIHJlZ3NfZ2V0X2tlcm5lbF9zdGFja19u dGgoKSByZXR1cm5zIEBuIHRoIGVudHJ5IG9mIHRoZSBrZXJuZWwgc3RhY2sgd2hpY2gKKyAqIGlz IHNwZWNpZmllZCBieSBAcmVncy4gSWYgdGhlIEBuIHRoIGVudHJ5IGlzIE5PVCBpbiB0aGUga2Vy bmVsIHN0YWNrLAorICogdGhpcyByZXR1cm5zIDAuCisgKi8KK3Vuc2lnbmVkIGxvbmcgcmVnc19n ZXRfa2VybmVsX3N0YWNrX250aChzdHJ1Y3QgcHRfcmVncyAqcmVncywgdW5zaWduZWQgaW50IG4p Cit7CisJdW5zaWduZWQgbG9uZyAqYWRkciA9ICh1bnNpZ25lZCBsb25nICopa2VybmVsX3N0YWNr X3BvaW50ZXIocmVncyk7CisKKwlhZGRyICs9IG47CisJaWYgKHJlZ3Nfd2l0aGluX2tlcm5lbF9z dGFjayhyZWdzLCAodW5zaWduZWQgbG9uZylhZGRyKSkKKwkJcmV0dXJuICphZGRyOworCWVsc2UK KwkJcmV0dXJuIDA7Cit9CisKIHZvaWQgcHRyYWNlX2Rpc2FibGUoc3RydWN0IHRhc2tfc3RydWN0 ICpjaGlsZCkKIHsKIAljbGVhcl90c2tfdGhyZWFkX2ZsYWcoY2hpbGQsIFRJRl9TWVNDQUxMX1RS QUNFKTsKLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtcmlzY3YgbWFpbGluZyBsaXN0CmxpbnV4LXJpc2N2QGxpc3RzLmluZnJh ZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1yaXNjdgo=