From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2051.outbound.protection.outlook.com [40.107.20.51]) by sourceware.org (Postfix) with ESMTPS id 62ED93858430 for ; Thu, 11 Nov 2021 10:31:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 62ED93858430 Received: from DU2PR04CA0324.eurprd04.prod.outlook.com (2603:10a6:10:2b5::29) by PAXPR08MB6988.eurprd08.prod.outlook.com (2603:10a6:102:200::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.13; Thu, 11 Nov 2021 10:31:19 +0000 Received: from DB5EUR03FT035.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:2b5:cafe::1e) by DU2PR04CA0324.outlook.office365.com (2603:10a6:10:2b5::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend Transport; Thu, 11 Nov 2021 10:31:19 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT035.mail.protection.outlook.com (10.152.20.65) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.19 via Frontend Transport; Thu, 11 Nov 2021 10:31:19 +0000 Received: ("Tessian outbound 2bb1f94ba47e:v108"); Thu, 11 Nov 2021 10:31:19 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 0f22843d5a3664c5 X-CR-MTA-TID: 64aa7808 Received: from f252ac4ff1d5.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id B427AF37-9419-4910-92E2-FC10055FC645.1; Thu, 11 Nov 2021 10:31:11 +0000 Received: from EUR04-DB3-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id f252ac4ff1d5.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 11 Nov 2021 10:31:11 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e5sfOdXhURZ40K3QMyfyZfgXn3A6IqeeyJYJCKwqEhiw1acl6ShS1jRiBwNvgjRNP80RO8CN6cSd4zz/cEC7jUaNeOQAMEyHMxEuMStxYWZ71/Lwghp1cmg7akfqHut2Yjp6s/oGWu1yIB0d4KGmOrgSd/NPIx7sSHc2zqmymw/LnpmlWfHeAGWAqKSuxx8KA4/moMZln10gR51UpoDnzi7XfBsuEuWsXjTFN5SQpVOghyOsY3Z090RArGaX2Z2/x3bwNKin/YynmJMMrv4yGuSLC5haEbur8dTCB/nHqYtCAz65Bqobe71x1DWImY04xoJcHTGrEzLjld+eLRzrpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=i5dHU2kO+bxkSv0o83jup3CLHk8hkTG/DAKBReHgREs=; b=lpHAronn3L9kiw1XgmNAj58dNyAkCIJeq/K0jopQEFp8R3Cf8sl9m4iHzBLWxAAhfpYuez7Y0RWtBacNHeS2J8NGl9YwDQs6luYFddb3o/8K7ofIzAUgWMnTumvHWLB3m+m2S5HZCfu4SMaWbZ4RLeOW9uEqfNQg12D8IOZvcy3cdDa9BgrYj7wv1h8jWzRfmT2p6llrfcF7wfQ7708ALykFhLwYrvr1Hetze/gFaJGGFEDr+XBDdyGFx34tm0TUf5SfT3v6UJA0X+iuxNrhWZH86sCH+TYoIh7uF6EfE+nqt1/xal5JypP194NWqOSLmqa0u0B8K0oOKT7oWb9sRQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from DB9PR08MB6959.eurprd08.prod.outlook.com (2603:10a6:10:2bf::11) by DBBPR08MB4888.eurprd08.prod.outlook.com (2603:10a6:10:db::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Thu, 11 Nov 2021 10:31:09 +0000 Received: from DB9PR08MB6959.eurprd08.prod.outlook.com ([fe80::4c14:9d27:688c:65fc]) by DB9PR08MB6959.eurprd08.prod.outlook.com ([fe80::4c14:9d27:688c:65fc%5]) with mapi id 15.20.4690.015; Thu, 11 Nov 2021 10:31:09 +0000 From: Jonathan Wright To: "gcc-patches@gcc.gnu.org" CC: Richard Sandiford , Kyrylo Tkachov Subject: [PATCH] aarch64: Use type-qualified builtins for ADDV Neon intrinsics Thread-Topic: [PATCH] aarch64: Use type-qualified builtins for ADDV Neon intrinsics Thread-Index: AQHX1ucT1zm0aNOznEWieFudrrzLAQ== Date: Thu, 11 Nov 2021 10:31:09 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: yes X-MS-TNEF-Correlator: suggested_attachment_session_id: cf281d9e-f60e-4ed9-272e-a5444387e803 Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: bf44d0ea-0cf2-4c82-5cdc-08d9a4fe6625 x-ms-traffictypediagnostic: DBBPR08MB4888:|PAXPR08MB6988: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:6790;OLM:6790; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: HFcXVfqGJhzs1cHRwQlsH8fwHpEDJyYFIeDdFiXImtYFEkwZYLGMwLxHM2xEO4HFhZQjsSlLfH+fVK87ljm+H308kmosJM+mAt66/xUpgxHa7DJEBbpp/LGGBB7FAd6iVnp2sucQ91IEAZ6ywlnHTSJU2OPoTWNdOjNX31spKUrgonihAXNXQL53RNgAaI6i9iGytqISHYthQaX9XHimTrHFYecXOcaDyF+fc4sDnLlu1Q8LQWEdjtxnogG68U12gLu5EUIoV3iuYJSu7xE86S29LsSvNeGO7SiZzqCEyx5NyZ5ZtWkLdjA7D96BwtGo8BFxLwzJFkILUZY0VuZkE4UwfGgEF0Atc+3QylKJyEeROwB5OcgCAnkSj1187jE0I5YFR0LWeP1Qkz3O0WSjick/OjrD/yjr77e8CbJT55cZ/jWzakYxA7xsh/R7SURycHkWVqo+QuOrLSZpLDCKrOKvHcJ9rMj6J7XHfhfw77XLylYpnx8zs9j+MTCovZEV1K1fJU1QV3nniqCKsmchQCKj9h8luji9KTlSlbsvTb4l7WnFdhbTUXJuKhfaqJcG0ShOR3PwsnC3uJkrrueB+Dvna7lGMUgfe8zo40w1bgV68ySNwvOFCONze2w1d/Vq5FUNPp/u2c9qYJemLk4TiTIVTGBaTRXoRJHAOIaU+m4BeX+XPSg13xYfaBHjqZT+XsDt91oHzZaQ/OEhVXPlrA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9PR08MB6959.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(76116006)(8676002)(6506007)(86362001)(66476007)(38070700005)(64756008)(508600001)(38100700002)(8936002)(122000001)(55016002)(9686003)(71200400001)(26005)(99936003)(7696005)(5660300002)(66946007)(91956017)(54906003)(186003)(2906002)(4326008)(33656002)(4744005)(316002)(66446008)(66556008)(52536014)(6916009); DIR:OUT; SFP:1101; Content-Type: multipart/mixed; boundary="_002_DB9PR08MB69590F0187D044819D22E4B9EB949DB9PR08MB6959eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB4888 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT035.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 03a1a527-9cca-42eb-4061-08d9a4fe604d X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cCxcGYWtfrpK09OXSfXelVNjgtE+jqpFhncHQO9eKS/f3OAL11IVN2c+Y9TvqP7XQZaaeRE3u5tjTgSf92oLcceyv1gjhhCCYCOT0I5ZjExeKkJOOIVQEmga38MaKwwwpYzVONLmjGINhLg6q+Mt/3FxtIwnDLBX1KT90dH7zq2PByeeI0QWsEJka0sUn7dmEm6FPT6J6GXq2xUojLCok7Dhr9RHNAdRqzBdHC4ufd7Pc0J+kfJJbCQoYUfJUtWnH/t6ABwp8r2cX+5vk5m6uNVRGgXog2Fx2TBIKveM9z4pUSd6zCiL8dJb3eUifYD7ZortuwMKJy2YV4ob0N7hyF6RuUtUKieOEa+1F4w0BJJ8J/88gxGwOgvSLjzAjlqtRsSonu5W0pnqMI+VcmQrkXZN6NskMzuBmiIJ8V2irYR7YVHQ4EzLVErA/2V/+oWUfZFxJY+1bn38s0eJbR+Xr7Ymizo13+1FxEbc74SKA8BpR45a6xTqz1+OfMhnWobrBmD9qRIAZoTFXrVkQv6zzDv6CRsGf2aVHdT3IP/ieXnwh8cmh4b3wahm9viHd5c1SMNoOajUMd8pqRsDc712jl1jsyrtAckA6I3fF9E1q/zLHu+/xOckJGvBsLF+tHfbEK0Vcg8e8L1A2iVExLtdcTn4UwOlDqvn3BT+LCnupR9axop7vUx4bLEYnY9i/KeL3deaf7KrdtKSX3+k8BIIbw== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(46966006)(36840700001)(86362001)(52536014)(4326008)(6916009)(26005)(81166007)(54906003)(8936002)(7696005)(82310400003)(33656002)(356005)(336012)(8676002)(47076005)(99936003)(186003)(316002)(70586007)(235185007)(70206006)(5660300002)(9686003)(36860700001)(6506007)(2906002)(508600001)(55016002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2021 10:31:19.1939 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bf44d0ea-0cf2-4c82-5cdc-08d9a4fe6625 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DB5EUR03FT035.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6988 X-Spam-Status: No, score=-6.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Nov 2021 10:31:27 -0000 --_002_DB9PR08MB69590F0187D044819D22E4B9EB949DB9PR08MB6959eurp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi,=0A= =0A= This patch declares unsigned type-qualified builtins and uses them to=0A= implement the vector reduction Neon intrinsics. This removes the need=0A= for many casts in arm_neon.h.=0A= =0A= Regression tested and bootstrapped on aarch64-none-linux-gnu - no=0A= issues.=0A= =0A= Ok for master?=0A= =0A= Thanks,=0A= Jonathan=0A= =0A= ---=0A= =0A= gcc/ChangeLog:=0A= =0A= 2021-11-09 =A0Jonathan Wright =A0=0A= =0A= * config/aarch64/aarch64-simd-builtins.def: Declare unsigned=0A= builtins for vector reduction.=0A= * config/aarch64/arm_neon.h (vaddv_u8): Use type-qualified=0A= builtin and remove casts.=0A= (vaddv_u16): Likewise.=0A= (vaddv_u32): Likewise.=0A= (vaddvq_u8): Likewise.=0A= (vaddvq_u16): Likewise.=0A= (vaddvq_u32): Likewise.=0A= (vaddvq_u64): Likewise.=0A= --_002_DB9PR08MB69590F0187D044819D22E4B9EB949DB9PR08MB6959eurp_ Content-Type: application/octet-stream; name="rb15057.patch" Content-Description: rb15057.patch Content-Disposition: attachment; filename="rb15057.patch"; size=2961; creation-date="Thu, 11 Nov 2021 10:30:58 GMT"; modification-date="Thu, 11 Nov 2021 10:30:58 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXNpbWQtYnVpbHRpbnMuZGVm IGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtc2ltZC1idWlsdGlucy5kZWYKaW5kZXggN2Q2 ZGU2NzI4Y2Y3YzYzODcyZTA5ODUwYTM5NDEwMWY3YWJmMjFkNC4uMzVhMDk5ZTFmYjhkZDFhY2I5 ZTM1NTgzZDEyNjdkZjI1N2Q5NjFiMCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2Fh cmNoNjQtc2ltZC1idWlsdGlucy5kZWYKKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQt c2ltZC1idWlsdGlucy5kZWYKQEAgLTUxMyw2ICs1MTMsNyBAQAogCiAgIC8qIEltcGxlbWVudGVk IGJ5IGFhcmNoNjRfcmVkdWNfcGx1c188bW9kZT4uICAqLwogICBCVUlMVElOX1ZBTEwgKFVOT1As IHJlZHVjX3BsdXNfc2NhbF8sIDEwLCBOT05FKQorICBCVUlMVElOX1ZEUV9JIChVTk9QVSwgcmVk dWNfcGx1c19zY2FsXywgMTAsIE5PTkUpCiAKICAgLyogSW1wbGVtZW50ZWQgYnkgcmVkdWNfPG1h eG1pbl91bnM+X3NjYWxfPG1vZGU+IChwcm9kdWNpbmcgc2NhbGFyKS4gICovCiAgIEJVSUxUSU5f VkRRSUZfRjE2IChVTk9QLCByZWR1Y19zbWF4X3NjYWxfLCAxMCwgTk9ORSkKZGlmZiAtLWdpdCBh L2djYy9jb25maWcvYWFyY2g2NC9hcm1fbmVvbi5oIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FybV9u ZW9uLmgKaW5kZXggYWI0Njg5N2Q3ODRiODFiZWM5NjU0ZDg3NTU3NjQwY2E0YzFlNTY4MS4uM2Mw MzQzMmI1YjZjNmNkMGYzNDk2NzEzNjY2MTU5MjVkMzgxMjFlNSAxMDA2NDQKLS0tIGEvZ2NjL2Nv bmZpZy9hYXJjaDY0L2FybV9uZW9uLmgKKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FybV9uZW9u LmgKQEAgLTk2OTUsMjEgKzk2OTUsMjEgQEAgX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUg dWludDhfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf XywgX19hcnRpZmljaWFsX18pKQogdmFkZHZfdTggKHVpbnQ4eDhfdCBfX2EpCiB7Ci0gIHJldHVy biAodWludDhfdCkgX19idWlsdGluX2FhcmNoNjRfcmVkdWNfcGx1c19zY2FsX3Y4cWkgKChpbnQ4 eDhfdCkgX19hKTsKKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JlZHVjX3BsdXNfc2NhbF92 OHFpX3V1IChfX2EpOwogfQogCiBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZf dAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h cnRpZmljaWFsX18pKQogdmFkZHZfdTE2ICh1aW50MTZ4NF90IF9fYSkKIHsKLSAgcmV0dXJuICh1 aW50MTZfdCkgX19idWlsdGluX2FhcmNoNjRfcmVkdWNfcGx1c19zY2FsX3Y0aGkgKChpbnQxNng0 X3QpIF9fYSk7CisgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yZWR1Y19wbHVzX3NjYWxfdjRo aV91dSAoX19hKTsKIH0KIAogX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDMyX3QK IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0 aWZpY2lhbF9fKSkKIHZhZGR2X3UzMiAodWludDMyeDJfdCBfX2EpCiB7Ci0gIHJldHVybiAoaW50 MzJfdCkgX19idWlsdGluX2FhcmNoNjRfcmVkdWNfcGx1c19zY2FsX3Yyc2kgKChpbnQzMngyX3Qp IF9fYSk7CisgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yZWR1Y19wbHVzX3NjYWxfdjJzaV91 dSAoX19hKTsKIH0KIAogX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgaW50OF90CkBAIC05 NzQ0LDI4ICs5NzQ0LDI4IEBAIF9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ4X3QK IF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0 aWZpY2lhbF9fKSkKIHZhZGR2cV91OCAodWludDh4MTZfdCBfX2EpCiB7Ci0gIHJldHVybiAodWlu dDhfdCkgX19idWlsdGluX2FhcmNoNjRfcmVkdWNfcGx1c19zY2FsX3YxNnFpICgoaW50OHgxNl90 KSBfX2EpOworICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfcmVkdWNfcGx1c19zY2FsX3YxNnFp X3V1IChfX2EpOwogfQogCiBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MTZfdAog X19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRp ZmljaWFsX18pKQogdmFkZHZxX3UxNiAodWludDE2eDhfdCBfX2EpCiB7Ci0gIHJldHVybiAodWlu dDE2X3QpIF9fYnVpbHRpbl9hYXJjaDY0X3JlZHVjX3BsdXNfc2NhbF92OGhpICgoaW50MTZ4OF90 KSBfX2EpOworICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfcmVkdWNfcGx1c19zY2FsX3Y4aGlf dXUgKF9fYSk7CiB9CiAKIF9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQzMl90CiBf X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm aWNpYWxfXykpCiB2YWRkdnFfdTMyICh1aW50MzJ4NF90IF9fYSkKIHsKLSAgcmV0dXJuICh1aW50 MzJfdCkgX19idWlsdGluX2FhcmNoNjRfcmVkdWNfcGx1c19zY2FsX3Y0c2kgKChpbnQzMng0X3Qp IF9fYSk7CisgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9yZWR1Y19wbHVzX3NjYWxfdjRzaV91 dSAoX19hKTsKIH0KIAogX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDY0X3QKIF9f YXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZp Y2lhbF9fKSkKIHZhZGR2cV91NjQgKHVpbnQ2NHgyX3QgX19hKQogewotICByZXR1cm4gKHVpbnQ2 NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9yZWR1Y19wbHVzX3NjYWxfdjJkaSAoKGludDY0eDJfdCkg X19hKTsKKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X3JlZHVjX3BsdXNfc2NhbF92MmRpX3V1 IChfX2EpOwogfQogCiBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyX3QK --_002_DB9PR08MB69590F0187D044819D22E4B9EB949DB9PR08MB6959eurp_--