From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2062.outbound.protection.outlook.com [40.107.20.62]) by sourceware.org (Postfix) with ESMTPS id 941533857C60 for ; Thu, 11 Nov 2021 10:38:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 941533857C60 Received: from AS9PR06CA0243.eurprd06.prod.outlook.com (2603:10a6:20b:45f::6) by HE1PR08MB2779.eurprd08.prod.outlook.com (2603:10a6:7:35::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.16; Thu, 11 Nov 2021 10:38:05 +0000 Received: from VE1EUR03FT025.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:45f:cafe::23) by AS9PR06CA0243.outlook.office365.com (2603:10a6:20b:45f::6) 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:38:05 +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 VE1EUR03FT025.mail.protection.outlook.com (10.152.18.74) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14 via Frontend Transport; Thu, 11 Nov 2021 10:38:04 +0000 Received: ("Tessian outbound 6ebd41198c5d:v108"); Thu, 11 Nov 2021 10:38:04 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 07ec3ec04f126962 X-CR-MTA-TID: 64aa7808 Received: from a3a5644a1171.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 6FDE047B-C186-4CD7-A32A-EBDA5D67ACE1.1; Thu, 11 Nov 2021 10:37:55 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id a3a5644a1171.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 11 Nov 2021 10:37:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LMKUnlHIKM6el9zyjTwljzBvYYC478MH3iaWYs93GZRzGvujgQv1naY1OOY7YrxlcTSKoIpoTd3qajcyb2kTDfsCUEucJgAj6KcODTA2+x361Ziw77pS/Csu9TBVmVKk+GS7U3dnoNkMq4RyWryj4kLL0fbAqKiVdbD2YRzT1aBX1kd6skN4+D1XQVkHZRzOX4H+3pBigBnu54aRY2hxmT10/JRtQti10u4PHk/nvii8n/YeGZ3XuRnbkQAB/qPkhV74b+RpPRGzfIrwnT5S0n8tFyoiIMhuFhPzcusi+9InUUFhnRtesxoKwLz7PduN+bRb11NTmWyRUzDtbD9j4Q== 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=It+NQx7UNpkzm4hDw39IaHsOwGAw78aUiduP8m3ErV0=; b=YZd2et8Pb2xGuBrBhB2x+L4iXW4QQuG7RWl5gryrBtNMkCF53gRnhi+YEF6UFuu0GeXmiynGUn2JkNHgy0AmcJsTsosNijQ6MmVw8XB1U5/Pb36E8QYBsM/W+bbIjadP+2oWFQadjTXzVu2T485cf85UtmmE1TIsPmbLtqX9D/Wco509/9OTRnT1/XPuZAmivZHjBwIK4INCu1y9RGLSTp7NIgjFx/i7IqtYBr/K4hsf/TVpTXfqORBiX6/aXq+LIEPnNp2nj6H51RRM3sjIS052cf21nNqZcBFl4ejYTNVEs+ObApzhB6D2cTrG5+W09cIg9PkcOej5VweqvrbZfw== 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 DB8PR08MB5467.eurprd08.prod.outlook.com (2603:10a6:10:11b::11) 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:37:48 +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:37:48 +0000 From: Jonathan Wright To: "gcc-patches@gcc.gnu.org" CC: Richard Sandiford , Kyrylo Tkachov Subject: [PATCH] aarch64: Use type-qualified builtins for vget_low/high intrinsics Thread-Topic: [PATCH] aarch64: Use type-qualified builtins for vget_low/high intrinsics Thread-Index: AQHX1ugF0PNlUwHvNUuen46E/qgGuw== Date: Thu, 11 Nov 2021 10:37:44 +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: 28b3aabc-5cf0-e25e-37a0-55d5e030a495 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: 149dff34-0c0e-4080-b2d3-08d9a4ff581d x-ms-traffictypediagnostic: DB8PR08MB5467:|HE1PR08MB2779: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:459;OLM:459; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: lAY8tvNUtBsJUzRKdcxF5i+6mg1EQZjcfvKokihEzRWW44GM87N+OyyS5RH4CZYceBvxLmbXuCqOSU+QrYDheFA34OjK8cRtOgliuXoD/tvu6gZBrcNlXsHS9znXZzCk0qDpnW7L0M9ogG33mzMb6RCUoUmOvpgw0msePuf10QlJSHf0Xi8Bjt7737Yb2RumKlk7pAqvcBVcvQJZmvmYmGbgovsxPm8h9I102IuyLOu9rfEpxqIqP05S3oyjLAB2IKrM5WdkHS5PIl9LRjQki2Z8Fcft2JDUUrn72dTEmtZZqE+jLhH8aKYlEV/UWTmSaZuZeHjn/2nlV8lnYU/Fn7rGN8Z2/pXLaLMJ4CO4mJiw3X3szH7IFxHFQ9G8ni4sxE/9T75zX/SPrNjv1hCrgpfy+1dB6iK8GiTQvigqaIH0MezTlUNczdJNsFwH/9/Qrsy4/dXBXGVyp3xRiXgaNrMAiJxWz7m+KxxURMBYQFVocKWYf4mF96+LqRtAn/K1VniyB8LmzeC3myZSTreKXKjU4gGnPNNSMOz2FS8gJJx9LKJn+DqrllRJa2vb17zxBW91snVOAimksPxCYuyQ8QjhLEvQ0w2SYOdgcgjXH1JqUTm23jQCyXQ9b1Je7A0X/1+CLJvTwSMwXA/HoS3uAkYv9VbF4ow4jioclQFvKHWbr0YzY87WfEiQR2N1xVnsgBp12xG0aVEuJBDk+v3laQ== 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)(99936003)(66446008)(122000001)(186003)(64756008)(54906003)(6916009)(26005)(66556008)(38070700005)(316002)(6506007)(2906002)(7696005)(86362001)(38100700002)(4001150100001)(4744005)(66946007)(8676002)(52536014)(66476007)(8936002)(508600001)(71200400001)(76116006)(91956017)(6666004)(33656002)(5660300002)(9686003)(55016002)(4326008); DIR:OUT; SFP:1101; Content-Type: multipart/mixed; boundary="_002_DB9PR08MB6959D0950513B70F0A777005EB949DB9PR08MB6959eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB5467 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: VE1EUR03FT025.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: ef62e9b6-0bb7-4c6b-e39e-08d9a4ff4e1a X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: iRUgmpzUBHbLUlPr14x0hWBYMVFluTA0HUd1kArzSFCgNPXExG4OT4CdJ6vSo6iOdvtwrv2xZeeVcPWhPxuNNhS9Ni5q8A+nTfhOR4zgvuotWNgxHSotZpLaPTnIWQaldI9Ozhl2tJQjzt+lrlLGC0Ml3qAY+RUvcA+O4Bl/UNKgBvI19/gHSWDPf3z43uid4IkP7Z/sGTU6Q5cA2gFtqS09O1glhaoQw3At+HdPu2kRWWseLKr37NE9/e6gqZkaBXV4HAQMP4iPdo9TxTdPmU1YU0Ast3Xs3UtV4eKlU7Tlsk7U9DGf52ZEvTCtz8Kivtr4jUnIBwAfe6g+sEFixaFIt0sl/6BTR4MmCzpeVC4uFB8YvKyE2ZBK0Yqa81PZq5fYx/thGY9gG96wisGMz+/3Po2AJEyt9Pibv4iI3kvUXgasP9xptr3vhPmAKWE0EmLmEjBB+LFvHVc3XQpVgrTGIbC0WoqeLzP8a54t0n4Mq0bAJ6TWbzi/4tunUMmlUNA5C8nsuMofDWOZRetproZwsk92V/RWO9QRRLKuN8SD7okmdswJ5AjTHJICfFodMnvXGgPu4kX0P0CYbbJFx7XByoqzpgMqrv9EOQ0z26DMRHvWQLlelzU5WcHxlF3zrczXqSX0vlXVyLI/mpgmOsbM7VczOr5FVzye/YX1TEhrwU1LwTkZm6aPK5n18QIh5A8R10cOUaN+42ZDmRq13g== 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)(36840700001)(46966006)(6916009)(8936002)(8676002)(55016002)(4326008)(47076005)(6506007)(54906003)(36860700001)(70586007)(52536014)(356005)(86362001)(70206006)(33656002)(4001150100001)(508600001)(7696005)(9686003)(316002)(336012)(2906002)(186003)(81166007)(6666004)(235185007)(26005)(99936003)(5660300002)(82310400003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2021 10:38:04.9393 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 149dff34-0c0e-4080-b2d3-08d9a4ff581d 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: VE1EUR03FT025.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR08MB2779 X-Spam-Status: No, score=-6.0 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:38:11 -0000 --_002_DB9PR08MB6959D0950513B70F0A777005EB949DB9PR08MB6959eurp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi,=0A= =0A= This patch declares unsigned and polynomial type-qualified builtins for=0A= vget_low_*/vget_high_* Neon intrinsics. Using these builtins removes=0A= the need for many casts in arm_neon.h.=0A= =0A= Bootstrapped and regression tested 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-10 =A0Jonathan Wright =A0=0A= =0A= * config/aarch64/aarch64-builtins.c (TYPES_UNOPP): Define.=0A= * config/aarch64/aarch64-simd-builtins.def: Declare type-=0A= qualified builtins for vget_low/high.=0A= * config/aarch64/arm_neon.h (vget_low_p8): Use type-qualified=0A= builtin and remove casts.=0A= (vget_low_p16): Likewise.=0A= (vget_low_p64): Likewise.=0A= (vget_low_u8): Likewise.=0A= (vget_low_u16): Likewise.=0A= (vget_low_u32): Likewise.=0A= (vget_low_u64): Likewise.=0A= (vget_high_p8): Likewise.=0A= (vget_high_p16): Likewise.=0A= (vget_high_p64): Likewise.=0A= (vget_high_u8): Likewise.=0A= (vget_high_u16): Likewise.=0A= (vget_high_u32): Likewise.=0A= (vget_high_u64): Likewise.=0A= * config/aarch64/iterators.md (VQ_P): New mode iterator.=0A= --_002_DB9PR08MB6959D0950513B70F0A777005EB949DB9PR08MB6959eurp_ Content-Type: application/octet-stream; name="rb15060.patch" Content-Description: rb15060.patch Content-Disposition: attachment; filename="rb15060.patch"; size=6496; creation-date="Thu, 11 Nov 2021 10:37:41 GMT"; modification-date="Thu, 11 Nov 2021 10:37:41 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LWJ1aWx0aW5zLmMgYi9nY2Mv Y29uZmlnL2FhcmNoNjQvYWFyY2g2NC1idWlsdGlucy5jCmluZGV4IDdhYmY4NzQ3YjY5NTkxODE1 MDY4NzA5YWY0MjU5OGM0N2Q3MzI2OWUuLjNlZGMyZjU1ZTU3MWMxYTM0YTI0YWRkODQyYzQ3YjEz MGQ5MDBjZjYgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LWJ1aWx0aW5z LmMKKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtYnVpbHRpbnMuYwpAQCAtMjA0LDYg KzIwNCwxMCBAQCBhYXJjaDY0X3R5cGVzX3Vub3B1X3F1YWxpZmllcnNbU0lNRF9NQVhfQlVJTFRJ Tl9BUkdTXQogICA9IHsgcXVhbGlmaWVyX3Vuc2lnbmVkLCBxdWFsaWZpZXJfdW5zaWduZWQgfTsK ICNkZWZpbmUgVFlQRVNfVU5PUFUgKGFhcmNoNjRfdHlwZXNfdW5vcHVfcXVhbGlmaWVycykKIHN0 YXRpYyBlbnVtIGFhcmNoNjRfdHlwZV9xdWFsaWZpZXJzCithYXJjaDY0X3R5cGVzX3Vub3BwX3F1 YWxpZmllcnNbU0lNRF9NQVhfQlVJTFRJTl9BUkdTXQorICA9IHsgcXVhbGlmaWVyX3BvbHksIHF1 YWxpZmllcl9wb2x5IH07CisjZGVmaW5lIFRZUEVTX1VOT1BQIChhYXJjaDY0X3R5cGVzX3Vub3Bw X3F1YWxpZmllcnMpCitzdGF0aWMgZW51bSBhYXJjaDY0X3R5cGVfcXVhbGlmaWVycwogYWFyY2g2 NF90eXBlc191bm9wdXNfcXVhbGlmaWVyc1tTSU1EX01BWF9CVUlMVElOX0FSR1NdCiAgID0geyBx dWFsaWZpZXJfdW5zaWduZWQsIHF1YWxpZmllcl9ub25lIH07CiAjZGVmaW5lIFRZUEVTX1VOT1BV UyAoYWFyY2g2NF90eXBlc191bm9wdXNfcXVhbGlmaWVycykKZGlmZiAtLWdpdCBhL2djYy9jb25m aWcvYWFyY2g2NC9hYXJjaDY0LXNpbWQtYnVpbHRpbnMuZGVmIGIvZ2NjL2NvbmZpZy9hYXJjaDY0 L2FhcmNoNjQtc2ltZC1idWlsdGlucy5kZWYKaW5kZXggYWI1ZjNhMDk4ZjIwNDdkMGYxYmE5MzNm NDQxODYwOTY3ODEwMmMzZC4uMDhkNmJiZTYzNTQyNDIxNzY4N2E0Mjk3MDljNjk2YzMyODJmZWVh MCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtc2ltZC1idWlsdGlucy5k ZWYKKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtc2ltZC1idWlsdGlucy5kZWYKQEAg LTYyLDggKzYyLDEyIEBACiAKICAgLyogSW1wbGVtZW50ZWQgYnkgYWFyY2g2NF9nZXRfbG93PG1v ZGU+LiAgKi8KICAgQlVJTFRJTl9WUU1PViAoVU5PUCwgZ2V0X2xvdywgMCwgQVVUT19GUCkKKyAg QlVJTFRJTl9WUV9JIChVTk9QVSwgZ2V0X2xvdywgMCwgTk9ORSkKKyAgQlVJTFRJTl9WUV9QIChV Tk9QUCwgZ2V0X2xvdywgMCwgTk9ORSkKICAgLyogSW1wbGVtZW50ZWQgYnkgYWFyY2g2NF9nZXRf aGlnaDxtb2RlPi4gICovCiAgIEJVSUxUSU5fVlFNT1YgKFVOT1AsIGdldF9oaWdoLCAwLCBBVVRP X0ZQKQorICBCVUlMVElOX1ZRX0kgKFVOT1BVLCBnZXRfaGlnaCwgMCwgTk9ORSkKKyAgQlVJTFRJ Tl9WUV9QIChVTk9QUCwgZ2V0X2hpZ2gsIDAsIE5PTkUpCiAKICAgLyogSW1wbGVtZW50ZWQgYnkg YWFyY2g2NF88c3VyPnE8cj5zaGw8bW9kZT4uICAqLwogICBCVUlMVElOX1ZTRFFfSSAoQklOT1As IHNxc2hsLCAwLCBOT05FKQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FybV9uZW9u LmggYi9nY2MvY29uZmlnL2FhcmNoNjQvYXJtX25lb24uaAppbmRleCBjMzc0ZTkwZjMxNTQ2ODg2 YTUxOWJhMjcwMTEzY2NlZGQ0Y2E3YWJmLi42MTM3ZDUzMjk3ODYzYWFhZDBjYWQzMWM3ZWI2ZWVm MjRiYzQzMTZhIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FhcmNoNjQvYXJtX25lb24uaAorKysg Yi9nY2MvY29uZmlnL2FhcmNoNjQvYXJtX25lb24uaApAQCAtNTc5OSwyMSArNTc5OSwyMSBAQCBf X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHg4X3QKIF9fYXR0cmlidXRlX18gKChf X2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKIHZnZXRf bG93X3A4IChwb2x5OHgxNl90IF9fYSkKIHsKLSAgcmV0dXJuIChwb2x5OHg4X3QpIF9fYnVpbHRp bl9hYXJjaDY0X2dldF9sb3d2MTZxaSAoKGludDh4MTZfdCkgX19hKTsKKyAgcmV0dXJuIF9fYnVp bHRpbl9hYXJjaDY0X2dldF9sb3d2MTZxaV9wcCAoX19hKTsKIH0KIAogX19leHRlbnNpb25fXyBl eHRlcm4gX19pbmxpbmUgcG9seTE2eDRfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogdmdldF9sb3dfcDE2IChwb2x5 MTZ4OF90IF9fYSkKIHsKLSAgcmV0dXJuIChwb2x5MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9n ZXRfbG93djhoaSAoKGludDE2eDhfdCkgX19hKTsKKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0 X2dldF9sb3d2OGhpX3BwIChfX2EpOwogfQogCiBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu ZSBwb2x5NjR4MV90CiBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lu bGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiB2Z2V0X2xvd19wNjQgKHBvbHk2NHgyX3QgX19hKQog ewotICByZXR1cm4gKHBvbHk2NHgxX3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9sb3d2MmRpICgo aW50NjR4Ml90KSBfX2EpOworICByZXR1cm4gKHBvbHk2NHgxX3QpIF9fYnVpbHRpbl9hYXJjaDY0 X2dldF9sb3d2MmRpX3BwIChfX2EpOwogfQogCiBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGlu ZSBpbnQ4eDhfdApAQCAtNTg0OCwyOCArNTg0OCwyOCBAQCBfX2V4dGVuc2lvbl9fIGV4dGVybiBf X2lubGluZSB1aW50OHg4X3QKIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKIHZnZXRfbG93X3U4ICh1aW50OHgxNl90IF9f YSkKIHsKLSAgcmV0dXJuICh1aW50OHg4X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9sb3d2MTZx aSAoKGludDh4MTZfdCkgX19hKTsKKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9sb3d2 MTZxaV91dSAoX19hKTsKIH0KIAogX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgdWludDE2 eDRfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywg X19hcnRpZmljaWFsX18pKQogdmdldF9sb3dfdTE2ICh1aW50MTZ4OF90IF9fYSkKIHsKLSAgcmV0 dXJuICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfbG93djhoaSAoKGludDE2eDhf dCkgX19hKTsKKyAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9sb3d2OGhpX3V1IChfX2Ep OwogfQogCiBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50MzJ4Ml90CiBfX2F0dHJp YnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxf XykpCiB2Z2V0X2xvd191MzIgKHVpbnQzMng0X3QgX19hKQogewotICByZXR1cm4gKHVpbnQzMngy X3QpIF9fYnVpbHRpbl9hYXJjaDY0X2dldF9sb3d2NHNpICgoaW50MzJ4NF90KSBfX2EpOworICBy ZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZ2V0X2xvd3Y0c2lfdXUgKF9fYSk7CiB9CiAKIF9fZXh0 ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2NHgxX3QKIF9fYXR0cmlidXRlX18gKChfX2Fs d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKIHZnZXRfbG93 X3U2NCAodWludDY0eDJfdCBfX2EpCiB7Ci0gIHJldHVybiAodWludDY0eDFfdCkge19fYnVpbHRp bl9hYXJjaDY0X2dldF9sb3d2MmRpICgoaW50NjR4Ml90KSBfX2EpfTsKKyAgcmV0dXJuICh1aW50 NjR4MV90KSB7X19idWlsdGluX2FhcmNoNjRfZ2V0X2xvd3YyZGlfdXUgKF9fYSl9OwogfQogCiBf X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDE2eDRfdApAQCAtNTg5NywyMSArNTg5 NywyMSBAQCBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBwb2x5OHg4X3QKIF9fYXR0cmli dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f KSkKIHZnZXRfaGlnaF9wOCAocG9seTh4MTZfdCBfX2EpCiB7Ci0gIHJldHVybiAocG9seTh4OF90 KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfaGlnaHYxNnFpICgoaW50OHgxNl90KSBfX2EpOworICBy ZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZ2V0X2hpZ2h2MTZxaV9wcCAoX19hKTsKIH0KIAogX19l eHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgcG9seTE2eDRfdAogX19hdHRyaWJ1dGVfXyAoKF9f YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogdmdldF9o aWdoX3AxNiAocG9seTE2eDhfdCBfX2EpCiB7Ci0gIHJldHVybiAocG9seTE2eDRfdCkgX19idWls dGluX2FhcmNoNjRfZ2V0X2hpZ2h2OGhpICgoaW50MTZ4OF90KSBfX2EpOworICByZXR1cm4gX19i dWlsdGluX2FhcmNoNjRfZ2V0X2hpZ2h2OGhpX3BwIChfX2EpOwogfQogCiBfX2V4dGVuc2lvbl9f IGV4dGVybiBfX2lubGluZSBwb2x5NjR4MV90CiBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiB2Z2V0X2hpZ2hfcDY0IChw b2x5NjR4Ml90IF9fYSkKIHsKLSAgcmV0dXJuIChwb2x5NjR4MV90KSBfX2J1aWx0aW5fYWFyY2g2 NF9nZXRfaGlnaHYyZGkgKChpbnQ2NHgyX3QpIF9fYSk7CisgIHJldHVybiAocG9seTY0eDFfdCkg X19idWlsdGluX2FhcmNoNjRfZ2V0X2hpZ2h2MmRpX3BwIChfX2EpOwogfQogCiBfX2V4dGVuc2lv bl9fIGV4dGVybiBfX2lubGluZSBpbnQ4eDhfdApAQCAtNTk0NiwyOCArNTk0NiwyOCBAQCBfX2V4 dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSB1aW50OHg4X3QKIF9fYXR0cmlidXRlX18gKChfX2Fs d2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKIHZnZXRfaGln aF91OCAodWludDh4MTZfdCBfX2EpCiB7Ci0gIHJldHVybiAodWludDh4OF90KSBfX2J1aWx0aW5f YWFyY2g2NF9nZXRfaGlnaHYxNnFpICgoaW50OHgxNl90KSBfX2EpOworICByZXR1cm4gX19idWls dGluX2FhcmNoNjRfZ2V0X2hpZ2h2MTZxaV91dSAoX19hKTsKIH0KIAogX19leHRlbnNpb25fXyBl eHRlcm4gX19pbmxpbmUgdWludDE2eDRfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGlu ZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogdmdldF9oaWdoX3UxNiAodWlu dDE2eDhfdCBfX2EpCiB7Ci0gIHJldHVybiAodWludDE2eDRfdCkgX19idWlsdGluX2FhcmNoNjRf Z2V0X2hpZ2h2OGhpICgoaW50MTZ4OF90KSBfX2EpOworICByZXR1cm4gX19idWlsdGluX2FhcmNo NjRfZ2V0X2hpZ2h2OGhpX3V1IChfX2EpOwogfQogCiBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu bGluZSB1aW50MzJ4Ml90CiBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251 X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiB2Z2V0X2hpZ2hfdTMyICh1aW50MzJ4NF90IF9f YSkKIHsKLSAgcmV0dXJuICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfaGlnaHY0 c2kgKChpbnQzMng0X3QpIF9fYSk7CisgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9nZXRfaGln aHY0c2lfdXUgKF9fYSk7CiB9CiAKIF9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIHVpbnQ2 NHgxX3QKIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s IF9fYXJ0aWZpY2lhbF9fKSkKIHZnZXRfaGlnaF91NjQgKHVpbnQ2NHgyX3QgX19hKQogewotICBy ZXR1cm4gKHVpbnQ2NHgxX3QpIHtfX2J1aWx0aW5fYWFyY2g2NF9nZXRfaGlnaHYyZGkgKChpbnQ2 NHgyX3QpIF9fYSl9OworICByZXR1cm4gKHVpbnQ2NHgxX3QpIHtfX2J1aWx0aW5fYWFyY2g2NF9n ZXRfaGlnaHYyZGlfdXUgKF9fYSl9OwogfQogCiAKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFy Y2g2NC9pdGVyYXRvcnMubWQgYi9nY2MvY29uZmlnL2FhcmNoNjQvaXRlcmF0b3JzLm1kCmluZGV4 IDE1OThlMTk3NTFmZjUxMTJhMDcyMTE4YTYyOTc1NTI3MmY0OGU4M2IuLmFlMzJkNmIxNzU2ZDFk ZDc4YzI4ODQ0OTg3YzU2MzQyNGE3MjY2MTcgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYWFyY2g2 NC9pdGVyYXRvcnMubWQKKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2l0ZXJhdG9ycy5tZApAQCAt MTIyLDYgKzEyMiw5IEBACiA7OyBRdWFkIGludGVnZXIgdmVjdG9yIG1vZGVzLgogKGRlZmluZV9t b2RlX2l0ZXJhdG9yIFZRX0kgW1YxNlFJIFY4SEkgVjRTSSBWMkRJXSkKIAorOzsgUXVhZCB2ZWN0 b3IgcG9seW5vbWlhbCBtb2Rlcy4KKyhkZWZpbmVfbW9kZV9pdGVyYXRvciBWUV9QIFtWMTZRSSBW OEhJIFYyREldKQorCiA7OyBWUSB3aXRob3V0IDIgZWxlbWVudCBtb2Rlcy4KIChkZWZpbmVfbW9k ZV9pdGVyYXRvciBWUV9OTzJFIFtWMTZRSSBWOEhJIFY0U0kgVjhIRiBWNFNGIFY4QkZdKQogCg== --_002_DB9PR08MB6959D0950513B70F0A777005EB949DB9PR08MB6959eurp_--