From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2043.outbound.protection.outlook.com [40.107.21.43]) by sourceware.org (Postfix) with ESMTPS id 00FA23858D28 for ; Mon, 24 Apr 2023 10:31:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 00FA23858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iUtgawYxVJS12sVKIaIq12zJvbQzxDZQd4VhJb6QXo0=; b=pxVk40WJqSe9fcSj3J4mPcnTXlOn6sXA+JOQBpJ/YrcMmtcFel1WwVXackgR5EVADeXFkstf3sndqBVklw3+g3Gpj5RIdFRQmUeZIb+sk80kpeke3zIxovwfYewBT9vcCXG/wCeqW7t1C2KY8dc2sOV4GeB6aivokEKP0ewJHgE= Received: from FR3P281CA0020.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1c::21) by PAXPR08MB6494.eurprd08.prod.outlook.com (2603:10a6:102:154::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.33; Mon, 24 Apr 2023 10:31:35 +0000 Received: from VI1EUR03FT018.eop-EUR03.prod.protection.outlook.com (2603:10a6:d10:1c:cafe::ff) by FR3P281CA0020.outlook.office365.com (2603:10a6:d10:1c::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.19 via Frontend Transport; Mon, 24 Apr 2023 10:31:35 +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; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VI1EUR03FT018.mail.protection.outlook.com (100.127.144.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.19 via Frontend Transport; Mon, 24 Apr 2023 10:31:34 +0000 Received: ("Tessian outbound e13c2446394c:v136"); Mon, 24 Apr 2023 10:31:34 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 49841ab5c478e348 X-CR-MTA-TID: 64aa7808 Received: from e318693d6705.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 2EC02B25-1548-49CE-9C19-25DD80EAF48B.1; Mon, 24 Apr 2023 10:31:27 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id e318693d6705.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 24 Apr 2023 10:31:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LhRjtUJA6/+HHm5V/vHMZOlb20GZn+W3OJ/dlmH00FILDaIEAEhJobkzCrdg/A51WkdgDHv978I9RJZxsyf235TQnGk3m+LYJ8+jAZybtNrHchV5sU6U5v+Kjyt2sAknL2bDbxmgbxG+ke2271KC54NBRb7EUB+q0aGbR7UMbhM99zCW+1YEGQbQp+TsMmfaNyU5kb8zSrg6F08IWpmV4s/FgDry1k755VYQoYzUvcTt6wBjmSK2nsLAwnobiJ8tRnUjergY7QVRNsfjMWgUBv52sPEEqEOWsjANLAWG7o1r0HAu66/d+I3G+Pd3A9JlKzVqlqs9iJ7xKohDsn1gpg== 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=iUtgawYxVJS12sVKIaIq12zJvbQzxDZQd4VhJb6QXo0=; b=RiyZglyZF0nTMuUj7EgQSR+k2i5KwJBG5eStXtXWgXK0FV+PCvk1FhWAZfUqEgihRdzohhnJUVydTub6HOyTpEvb5KvuRb4Lqp630/7CGZnydsZ1rmM5OMACNTO6xrE9Jq/noRZMX71rcHJx+6DZR1iM6K6KqbqFGssAeuFGyj4Wcrl/u2AOrfmWHfL5wyA0Z/v1WiNPzP93zmLcS+vqZRQVG5R7GEkJLUF/jHy/LoVpIdqkXgmsoevZ2dIQtIUw3RLQ+IMLihW4hRkB7XFFrV39jJ9qZ3sJRvJC33gf3V5ZaEfIOfImWxv4cr3QrZ3tmWe5MRHuKzrTmMNrnO3Jmg== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iUtgawYxVJS12sVKIaIq12zJvbQzxDZQd4VhJb6QXo0=; b=pxVk40WJqSe9fcSj3J4mPcnTXlOn6sXA+JOQBpJ/YrcMmtcFel1WwVXackgR5EVADeXFkstf3sndqBVklw3+g3Gpj5RIdFRQmUeZIb+sk80kpeke3zIxovwfYewBT9vcCXG/wCeqW7t1C2KY8dc2sOV4GeB6aivokEKP0ewJHgE= Received: from PAXPR08MB6926.eurprd08.prod.outlook.com (2603:10a6:102:138::24) by AM8PR08MB5603.eurprd08.prod.outlook.com (2603:10a6:20b:1d4::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6319.33; Mon, 24 Apr 2023 10:31:25 +0000 Received: from PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::db73:66ba:ae70:1ff1]) by PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::db73:66ba:ae70:1ff1%3]) with mapi id 15.20.6319.033; Mon, 24 Apr 2023 10:31:25 +0000 From: Kyrylo Tkachov To: "gcc-patches@gcc.gnu.org" Subject: [PATCH][committed] aarch64: Add mulv2di3 expander for TARGET_SVE Thread-Topic: [PATCH][committed] aarch64: Add mulv2di3 expander for TARGET_SVE Thread-Index: Adl2l93C9UAdku0dQT+lgm/mEd3VCw== Date: Mon, 24 Apr 2023 10:31:25 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PAXPR08MB6926:EE_|AM8PR08MB5603:EE_|VI1EUR03FT018:EE_|PAXPR08MB6494:EE_ X-MS-Office365-Filtering-Correlation-Id: 2a262faf-e744-4d6c-01b1-08db44af1402 x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: gXtnNyONMn2Xq4GIVJ7uZmxRoaHw7Ot5R2vQtcwHC07fOgpyexfEU0E7dNqVF6uIDWuCcjKCIdYA/+dNErWvD3QmVHBedXSTh1kPegqGjI7d2yFppSjaW4M3hIWB5NHzvHxJXN0kqF56Y//h4PRAksjotEtPIp9ZEn5L8do2jMWHlRjACTf1SkO7kKZAFO65ea2p9kvYzcTc8B1TuOBYrvzOmC9UDMMIcmEVcFgkylmjEzmdAT7yaqO+FFPGx8T+bNR9Pr/zoovg42LsnGh5Q6Q3MPOrj9sVNP6c4iYFwqHO/KD2BvGORqTz2Ahp9dMLbJ+PEs2xaPqBX+mTAbP5bCJTiOmOkGF3XJ8tuDzNID/4d7r1Q7eVpmXWtiHc1CYxkbbp8SgESJyBfL5pZjqozmHtXVbWD/UhxcnzV3wrPWIqCFtg2Oal3b7VgARloZZc/idI7J1ZIJnCB/I98AaXKjKskmKR2yuOfGuKp7H0ftAMGBHcFfgFQ+CuB+woI/AXVGF0BcXuyXPGnOhmm6awhDe5NPfLjgdL0GMp+bdvV9Rvn1O5ZeJ2C+9EPomTXEWRe55Js9IUwPiv1B//7/ft17qZVicYctGcV0tq7jyErPgLiN/+Qqx26tABtB7KGoZdQ55aB88vikhlThJwbBRyeA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6926.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(396003)(376002)(346002)(136003)(39860400002)(366004)(451199021)(2906002)(7696005)(71200400001)(55016003)(9686003)(6506007)(26005)(186003)(55236004)(76116006)(66946007)(66556008)(66476007)(66446008)(64756008)(8676002)(8936002)(316002)(41300700001)(6916009)(478600001)(5660300002)(52536014)(38070700005)(99936003)(38100700002)(122000001)(86362001)(33656002)(84970400001);DIR:OUT;SFP:1101; Content-Type: multipart/mixed; boundary="_002_PAXPR08MB692665FC58DD6F6602D1430193679PAXPR08MB6926eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5603 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: VI1EUR03FT018.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: cbd05c31-2747-4790-6ef8-08db44af0e2a X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2ySO/zzOmsiyWMMIYc1rAHJOTgxF1uQm+4UAO7mEs9ORtD2DPLJy83GDi7K/9LEz0PbhL7nX/EAR6hdgIEtx6447SFLPuqaOLAmw3kwYuUWh/oarbyiBbW07jDeOJ5HtA+o+0oEKsxOoXJyq29r/270cZ+TWt7lOpBrY7XCcQMY80w0NtozeH9HzrpNEVMPzDRgCgmM54/ZmhcAFUX41Dz8bzLrghBMtroSsGKIPNG8PELArkHerFxd5KWiSJWGddg4Yb5MckYEaNDpoKxT3BJm5sp8qwzcy2YQtkOEe3Jsjc9DU1DLfYMHm5QTb0cF+6OjDkXK6PpMFMgIray6FQI7TrBT9K6STEN20mrKBj3q9x07LoPbflwdtMfajyMK37LZOiZW+E+qqO8vU3VaJbR/mSFQJWhyGDBpgV9XwLaZJLEU90EiFNs58bTRkwZDXyLm10h3j6AKo+xp3gGB2ylc7BO1s1LdP8UI+9GmZ+u/Yf9nH07H3ElERSGLmEzuv27poWNmpUKMO3o2VvlaFlaG0aDaqJe8Pfy30zOJsfP5dA3USmx6L5rJeZC1M+sYKw7B6V06CP+Bi6pkxkFW/ljyAJ/yeIBoiSL7dgNRMvRRqBwNCBPX9Hx1UZmBP78xqMBz75yuz0ozMpBqgEt2OZXOiOqz6hAGj5mF5hWl3taLZZBxO5iLyuxcjrgUMFO9L/ZS4Qo6qiAKtC8Z+w9TdzLvAEz3OJahtQQJXypJ/9nQ= 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:(13230028)(4636009)(346002)(136003)(39860400002)(376002)(396003)(451199021)(36840700001)(40470700004)(46966006)(82740400003)(99936003)(7696005)(70586007)(6916009)(70206006)(2906002)(6506007)(8936002)(55016003)(40480700001)(336012)(186003)(8676002)(41300700001)(26005)(9686003)(36860700001)(5660300002)(235185007)(40460700003)(316002)(33656002)(52536014)(47076005)(84970400001)(86362001)(81166007)(356005)(82310400005)(478600001);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2023 10:31:34.7292 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2a262faf-e744-4d6c-01b1-08db44af1402 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: VI1EUR03FT018.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6494 X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,KAM_DMARC_NONE,KAM_SHORT,LIKELY_SPAM_BODY,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --_002_PAXPR08MB692665FC58DD6F6602D1430193679PAXPR08MB6926eurp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi all, Motivated by a recent LLVM patch I saw, we can use SVE for 64-bit vector in= teger MUL (plain Advanced SIMD doesn't support it). Since the Advanced SIMD regs are just the low 128-bit part of the SVE regs = it all works transparently. It's a reasonably straightforward implementation of the mulv2di3 optab that= wires it up through the mulvnx2di3 expander and subregs the results back to the Advanced SIMD modes. There's more such tricks possible with other operations (and we could do 64= -bit multiply-add merged operations too) but for now this self-contained patch improves the mul case as without it for the testc= ases in the patch we'd have scalarised the arguments, moved them to GP regs, performed two GP MULs and moved them back to SIMD re= gs. Advertising a mulv2di3 optab from the backend should also allow for more fl= exibile vectorisation opportunities. Bootstrapped and tested on aarch64-none-linux-gnu. Pushing to trunk. Thanks, Kyrill gcc/ChangeLog: * config/aarch64/aarch64-simd.md (mulv2di3): New expander. gcc/testsuite/ChangeLog: * gcc.target/aarch64/sve-neon-modes_1.c: New test. * gcc.target/aarch64/sve-neon-modes_2.c: New test. --_002_PAXPR08MB692665FC58DD6F6602D1430193679PAXPR08MB6926eurp_ Content-Type: application/octet-stream; name="mulv2di.patch" Content-Description: mulv2di.patch Content-Disposition: attachment; filename="mulv2di.patch"; size=2822; creation-date="Mon, 24 Apr 2023 10:30:46 GMT"; modification-date="Mon, 24 Apr 2023 10:31:24 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXNpbWQubWQgYi9nY2MvY29u ZmlnL2FhcmNoNjQvYWFyY2g2NC1zaW1kLm1kCmluZGV4IDMwNDU3MTE4MTI1NzhhODkxYTM1MzQ1 YzIxMWQ1ZjkzMjI1NjE2NDMuLmIxNDUzZmQ5YzBlMTBkNjBmY2QwOTIzZjYwNWM5ZDZjZDJhMTQy OTUgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXNpbWQubWQKKysrIGIv Z2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtc2ltZC5tZApAQCAtNDMzLDYgKzQzMywyNiBAQCAo ZGVmaW5lX2luc24gIm11bDxtb2RlPjM8dmN6bGU+PHZjemJlPiIKICAgWyhzZXRfYXR0ciAidHlw ZSIgIm5lb25fbXVsXzxWZXR5cGU+PHE+IildCiApCiAKKzs7IEFkdmFuY2VkIFNJTUQgZG9lcyBu b3Qgc3VwcG9ydCB2ZWN0b3IgREltb2RlIE1VTCwgYnV0IFNWRSBkb2VzLgorOzsgTWFrZSB1c2Ug b2YgdGhlIG92ZXJsYXAgYmV0d2VlbiBaIGFuZCBWIHJlZ2lzdGVycyB0byBpbXBsZW1lbnQgdGhl IFYyREkKKzs7IG9wdGFiIGZvciBUQVJHRVRfU1ZFLiAgVGhlIG11bHZueDJkaTMgZXhwYW5kZXIg Y2FuCis7OyBoYW5kbGUgdGhlIFRBUkdFVF9TVkUyIGNhc2UgdHJhbnNwYXJlbnRseS4KKyhkZWZp bmVfZXhwYW5kICJtdWx2MmRpMyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJyZWdp c3Rlcl9vcGVyYW5kIikKKyAgICAgICAgKG11bHQ6VjJESSAobWF0Y2hfb3BlcmFuZDpWMkRJIDEg InJlZ2lzdGVyX29wZXJhbmQiKQorCQkgICAobWF0Y2hfb3BlcmFuZDpWMkRJIDIgImFhcmNoNjRf c3ZlX3ZzbV9vcGVyYW5kIikpKV0KKyAgIlRBUkdFVF9TVkUiCisgIHsKKyAgICBtYWNoaW5lX21v ZGUgc3ZlX21vZGUgPSBWTngyREltb2RlOworICAgIHJ0eCBzdmVfb3AwID0gc2ltcGxpZnlfZ2Vu X3N1YnJlZyAoc3ZlX21vZGUsIG9wZXJhbmRzWzBdLCBWMkRJbW9kZSwgMCk7CisgICAgcnR4IHN2 ZV9vcDEgPSBzaW1wbGlmeV9nZW5fc3VicmVnIChzdmVfbW9kZSwgb3BlcmFuZHNbMV0sIFYyRElt b2RlLCAwKTsKKyAgICBydHggc3ZlX29wMiA9IHNpbXBsaWZ5X2dlbl9zdWJyZWcgKHN2ZV9tb2Rl LCBvcGVyYW5kc1syXSwgVjJESW1vZGUsIDApOworCisgICAgZW1pdF9pbnNuIChnZW5fbXVsdm54 MmRpMyAoc3ZlX29wMCwgc3ZlX29wMSwgc3ZlX29wMikpOworICAgIERPTkU7CisgIH0KKykKKwog KGRlZmluZV9pbnNuICJic3dhcDxtb2RlPjIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZEUUhT RCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXciKQogICAgICAgICAoYnN3YXA6VkRRSFNEIChtYXRj aF9vcGVyYW5kOlZEUUhTRCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAidyIpKSldCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUtbmVvbi1tb2Rlc18xLmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUtbmVvbi1tb2Rlc18xLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMC4uY2U0ZjFjNzBiY2NkMDdmZGE1ODdjYzk4ZWE2YjUzZDI0NjMwMzZiZAotLS0gL2Rldi9u dWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS1uZW9uLW1vZGVz XzEuYwpAQCAtMCwwICsxLDMxIEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1v cHRpb25zICItTyAtbWFyY2g9YXJtdjguMi1hK3N2ZSIgfSAqLworLyogeyBkZy1maW5hbCB7IGNo ZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiICIiIH0gfSAqLworCit0eXBlZGVmIGxvbmcgdjJk aSAgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUgKDE2KSkpOworCisvKgorKiogZm9vOgorKioJ cHRydWUJcDAuYiwgYWxsCisqKgltdWwJejAuZCwgcDAvbSwgejAuZCwgejEuZAorKioJcmV0Cisq LworCit2MmRpCitmb28gKHYyZGkgYSwgdjJkaSBiKQoreworICByZXR1cm4gYSAqIGI7Cit9CisK Ky8qCisqKiBmb29faW1tOgorKioJbXVsCXowLmQsIHowLmQsICMxMjUKKyoqCXJldAorKi8KKwor djJkaQorZm9vX2ltbSAodjJkaSBhKQoreworICByZXR1cm4gYSAqIDEyNTsKK30KKwpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlLW5lb24tbW9kZXNfMi5j IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlLW5lb24tbW9kZXNfMi5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAuLjAyYmI5ZjM0YzM4ZjE4YmIwZTRjOTRiYWZlMDBkNTNiMDQyM2Y5YjAKLS0tIC9k ZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUtbmVvbi1t b2Rlc18yLmMKQEAgLTAsMCArMSwzMCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsg ZGctb3B0aW9ucyAiLU8gLW1hcmNoPWFybXY4LjUtYStzdmUyIiB9ICovCisvKiB7IGRnLWZpbmFs IHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgIiIgfSB9ICovCisKK3R5cGVkZWYgbG9u ZyB2MmRpICBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZSAoMTYpKSk7CisKKy8qCisqKiBmb286 CisqKgltdWwJejAuZCwgejAuZCwgejEuZAorKioJcmV0CisqLworCit2MmRpCitmb28gKHYyZGkg YSwgdjJkaSBiKQoreworICByZXR1cm4gYSAqIGI7Cit9CisKKy8qCisqKiBmb29faW1tOgorKioJ bXVsCXowLmQsIHowLmQsICMxMjUKKyoqCXJldAorKi8KKwordjJkaQorZm9vX2ltbSAodjJkaSBh KQoreworICByZXR1cm4gYSAqIDEyNTsKK30KKwo= --_002_PAXPR08MB692665FC58DD6F6602D1430193679PAXPR08MB6926eurp_--