From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60075.outbound.protection.outlook.com [40.107.6.75]) by sourceware.org (Postfix) with ESMTPS id 9B54A3857809 for ; Mon, 17 May 2021 10:35:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 9B54A3857809 Received: from AM7PR03CA0015.eurprd03.prod.outlook.com (2603:10a6:20b:130::25) by VE1PR08MB5822.eurprd08.prod.outlook.com (2603:10a6:800:1a7::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.26; Mon, 17 May 2021 10:35:32 +0000 Received: from AM5EUR03FT010.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:130:cafe::a0) by AM7PR03CA0015.outlook.office365.com (2603:10a6:20b:130::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.25 via Frontend Transport; Mon, 17 May 2021 10:35:32 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; 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 AM5EUR03FT010.mail.protection.outlook.com (10.152.16.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.25 via Frontend Transport; Mon, 17 May 2021 10:35:32 +0000 Received: ("Tessian outbound e566ed09e411:v91"); Mon, 17 May 2021 10:35:31 +0000 X-CR-MTA-TID: 64aa7808 Received: from a3822688b7b7.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 81F9AA29-350F-4901-B2A5-699C7B368F0A.1; Mon, 17 May 2021 10:35:26 +0000 Received: from EUR02-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id a3822688b7b7.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 17 May 2021 10:35:26 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=idWfGrLq/2BdGL1Sshz7loMkJQ9Cv4NLb1OxgZkEF1FEXU3QdmKCzLxOTG4MA2KiMgQzB1u7Qvn0P9HN2ynj9MY52zhL06/7w3FEdHIaFhxiA1zM7q+WWA0INfP9okvwTz67baGl9xuUKZBz1ubNDiJSAeiEO0vzTsap7b2wRyPH1jlrVap88Giqn5N43Z28AqywKmvFar+k29fc0ES6+y+lFtigHSJWRzlt2zrKZqhnC206G+TlTyv72l4k+wIPIMb3pMnXWYvAnOQMCWIGmVefMcNmeZxjwHRAZP4UPZ2dPyqZayO9JGFYk4jl04JSwAzFRjo7YhM1YfFM1xiUdw== 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-SenderADCheck; bh=AHMtTURttL2PcbPxXcDjvKh0PjJrw8W6vzIQwlMU4A8=; b=X0sgWpwT3HfQRBHR5pZDJnDTSW1Ens+q5PfgYTjxYX3rEkJ1jy4Rgcm/qVWZbEoJmzNUdmuW+k9RlV4EPBj5MQ4Mx5hIK7EtmIftdIAhXfM7/VIFf/lZO2ZhKYvSVtBCYokl2ufQHb3AjG4x4ubFMNoZOsYA0CMGFFvesR+67W/iN9EG04hQS1DdI5nDPKKCH9f7m86mIGjsHk4/TBwOrP5ecgrJdGwggla//yPZZVBbipLtD+8ObClDn2HZ5625OkMgUtNkSiJbAraZ5PRpwBQgybZkZhdEEdQQ/v6h/muk5BVoleOIIcoBqw2pFKgx7FYeqEwBSpp62Ghjli11ew== 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 PAXPR08MB6926.eurprd08.prod.outlook.com (2603:10a6:102:138::24) by PAXPR08MB6911.eurprd08.prod.outlook.com (2603:10a6:102:130::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.25; Mon, 17 May 2021 10:35:24 +0000 Received: from PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::95ab:14a5:b91f:5d7a]) by PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::95ab:14a5:b91f:5d7a%6]) with mapi id 15.20.4129.031; Mon, 17 May 2021 10:35:24 +0000 From: Kyrylo Tkachov To: Christophe Lyon , Andre Simoes Dias Vieira CC: "gcc-patches@gcc.gnu.org" Subject: RE: [PATCH 6/9] arm: Auto-vectorization for MVE: vcmp Thread-Topic: [PATCH 6/9] arm: Auto-vectorization for MVE: vcmp Thread-Index: AQHXPcq1i/4LzqjwwE+3aKYsKvfxz6rTNfmAgAAkvYCAAZnyAIASn6xA Date: Mon, 17 May 2021 10:35:24 +0000 Message-ID: References: <1619791790-628-1-git-send-email-christophe.lyon@linaro.org> <1619791790-628-6-git-send-email-christophe.lyon@linaro.org> <117f3487-779c-3727-56e5-074637f779cc@arm.com> In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: E40C2386523F264FAC946ADBE73A2BC2.0 x-checkrecipientchecked: true Authentication-Results-Original: linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=none action=none header.from=arm.com; x-originating-ip: [86.31.103.53] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: b614893c-c089-43b6-e50e-08d9191f7f6e x-ms-traffictypediagnostic: PAXPR08MB6911:|VE1PR08MB5822: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: tAI9jnzMfWJ1/uamXIe8XPPIrw8o+rC+YrZ8WBP/FHuyE+Mj+N5pPn+LMhiHNCyNMHcox5WgSDCCmgYUz8ekqpX04Su6NNe/+F7ihArXzDatwTUjlxdsy7kvbB20qfTLbs0IzBnggfxYaEhb/uMETvjbi7VPmPar/2sXbAHHqYXwCU0RJ++J+C7gqgFit6PcPg/tkWLM01gW9usAi8sOLdTwxYOY+pFGE7vB/migVPYLcKRmI5s69tmZTKraNHeSYuTlZsgHBxvu/3km6gdIn2EpYrqnVqPa4Imkb+5HCmaQgcD/LBFoDtht4tSjEHQSamhip9aXxg8EE5GTvuVBNsKrXbFITiswa8icee0hpZlhj/ONK0U4mgQhIe8Yw9BR76WCHLt15nS+miQZAmVvBXz1d53UnipzyI692ceIBfBoSk9boByvs2TIPNi7R0xShEfhT0cn7c8VcTev6ajifbGpcYy8AzZo1KCd3kfzcvh1nP9WM8NZcHTT98zGYkNAYD7TsSk4q3GWyrsmRuJkykjkwiQlmQa1YyubPRxEtS3hnGqvbroqA9wFpj9e4zsmA7jMiwNEHr4SN434WlHW6HitxIEfz3qZdosBfLlkXLg= 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:(4636009)(39850400004)(346002)(396003)(366004)(376002)(136003)(5660300002)(8676002)(2906002)(55236004)(52536014)(7696005)(110136005)(478600001)(8936002)(26005)(122000001)(66476007)(6506007)(4326008)(76116006)(83380400001)(186003)(66556008)(9686003)(38100700002)(66946007)(64756008)(86362001)(53546011)(66446008)(33656002)(6636002)(316002)(71200400001)(55016002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?eVR6N0ZaWW1KWEJUVFlEdEZPZlI5ZjIzN1VzeEtnZ2JBUi9ZQU5veW9Kc3BM?= =?utf-8?B?RVMxcXVoWDlIcGYzaTg4ME14Y2VKZHR1Mm1jUi85MjA1cGJnY2hEYkNwV2ww?= =?utf-8?B?L2pCSHFmdUpWMndYa1k5SkRLcDkyeThEM0ZsMG1xeFpTaXQ4dThRTXh2ZVd0?= =?utf-8?B?MmQyNitUY0xaNFdhcm1VbmJQK3Q1ME9MQXVaK2UrdGszRURzdnJjMjkvZGh2?= =?utf-8?B?bllpWHBGTE5uT2czUUl1Qm5PNVNveHNxZTFhV05JNHJ4aWZrbmRldGJ0UTd3?= =?utf-8?B?RndiU2Y0UVd5NTBlQTI4SHh4eTg2U092YXdMemVtWWxIeUpoNDhyRUtrQ0l2?= =?utf-8?B?NUd6cEU2UnNMRHZ1M2hTaDExTlJ5ZHFBMkJpWjNaQnpFakVLNGJpSG9GQStO?= =?utf-8?B?dGFsSWtYQnVCNTFHRUhGZDM3bGI2ZjUxeHcxV1JiaTViQlBucC9XYXRSdWxE?= =?utf-8?B?M0VtSnFUQWlEbHVQbW9HNWhoS250MUtNclAydDR0TFVXQjhIRnRrSTNNaHJ0?= =?utf-8?B?NEdUbXJjeFZYb1h6TDNlSVZsTURRcU9KaTV2YTJEbW1wWkt4Z3hQQ2ZYc2Fl?= =?utf-8?B?cTdlNFNYclZRNUp4cnZMc2gyN2VreHF6V0xCQmp2RWlqc3M5djNxS2pDRk1m?= =?utf-8?B?V0xBa3p4Yk1vN0lZamRLL1QwK003a2xEb1Uzd0FvVGpOY1lGY2IvaHpsMUZ1?= =?utf-8?B?dzduVHk0bjRsNWRnMzRRU3N5SWx5YlhpM0ZoTE1NTXVzQTh3aGJmT253cXhV?= =?utf-8?B?R3JTdU9Lc2dMNW8vcHdiTUJYeVlaVmtqcFJZU09PRnF5bmpmSW83Q2VEdFlI?= =?utf-8?B?QnVxQkhCNUVJL2ZVUGpmSXhmUHc2c3R4YitZZGxMMUhEQUhLdGtLMjNxeWNE?= =?utf-8?B?clRLaWV3U3cyb1p6QWRCclU3YSt3V0t0Y3A4Ukg2VTluVmNNSzJuSWprRTFS?= =?utf-8?B?TVRubGlaeld3clF0c0JDUThjbThHS2lCU2NnQWZXYnhDdHZINUZhWXNXdU9Q?= =?utf-8?B?c0FtV1FHc0Z6YlQzd3N2U1NkNXdGazk0a2FBZXp3UzM0cFZtcFhEb2hUdVo1?= =?utf-8?B?dlc3R1RQSTRSL0R1MTlGWXlOZ2xUT0ZIcS9JU3NYd3RhRURSbXl3bGozb2Fj?= =?utf-8?B?SUR5UFliTDVqQmpQMTZsVkEvQ0ppT3o0WmRBQXBTeUpwaXI5dmFvalArRjhR?= =?utf-8?B?WWtQTklacTl1YmNxNGk1bnJxSnRDYnhjSjZ0aTNYUU9YTDFVZjhXTmJkQnpr?= =?utf-8?B?Q3pJVzBIcWN6eFNpdWU2VzNIakh1ckplV0VNb3I2ZWhoQ2xyM0ZtL1NKMU5X?= =?utf-8?B?SlNTSlhlT1lKWVJ2MXROZE9qay80REU2akE3RHNlYmgzRUVnWHZDMTJ6Ynla?= =?utf-8?B?eWhwNFlwdkVxbUJMUmRTWThJZisvVVQwNis2OUFTV1djMjhJaEZzcWtQd3hU?= =?utf-8?B?T0JJQ1A4bTUreEZFaE1UTmdxQmlsWEw5Sis0R2crWTlVUjVMOGJGS3FCNzFo?= =?utf-8?B?MjExbldRdUV3YWtYS0VtMmNEbUdNeEo4Wk1qTU8wL2RPT2tJcU0xVkQxaExL?= =?utf-8?B?RUtLclBtaEpxaGNYNHVCT2tVYXlBWWFaQ0dIZzV1TjQraEJMa2xpeVpXa1NV?= =?utf-8?B?eTFVdXIvSno0TjZWNnFuYXg3V2dzRS9GZDZRNTRRN00zZnVaa3NGZTZvdEpx?= =?utf-8?B?NXV4REtrZ3V5QnJOTjFrVWlWT1hsdnk4Qmh0SzdOMGl1T0pmQUNYRndhaTAv?= =?utf-8?Q?9JCW9u6N+T6/VvpRdA=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6911 Original-Authentication-Results: linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT010.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 28cd3c17-fd75-419b-f3c2-08d9191f7acf X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JVFuMLD975i/jJkshmoUqid8ePz40XuwTbVKH60APdPjHdUnatNdDXWK6cAHa0ujwhFEshnVoKtQ+iH7qiy6WZq791URMZMa7huQbWbp6jn6OL8cRSPim2bvsfem3uMucRXubjK3FgrFXuDhEmKWTfaARsSfZ2kf5M87Vg8CCIgh9XbdDIOzo9e2VK68eeD6Sc+3VIZ7TZUD4WQuCGRxAmE9PZYOmQygtziaWLyULDgoipufwKLBeSnu2FkXl638BKKdi0A06Rz24XjvjE2mmZ+/s1XjUby/vW0ffO64bFNlXxPh+w8uklwdWta2OpHIp62sM86sKrp2iCFOA+ggM3qUA1m1kYiZNPQkovA6uklyzHaULpGdZMiBRB6zlKfqOyFJMCCWc61mk9EPD5wHnezk8yuI8CI6a+IRQ+LDBelFGxrH4lGeLT5xMibWYwYmwMeYQeeS03HeX6O2ioG99//43Jejv2z/Gr1UU52lcFrIxcyq/dCMS7v0PqXfFbU8M51UaomXCfsSz81YJbnlbHtIowwXk2CK1a4YxHU8mggPgHOG8Sb/r86c0sFbddTP3sxo1Y5fjAilAFhvZsBh8r08oXjZHf39SFN0Ql2udByVdXutLvkoFvn/x4mKAGDbgWu+mnvKvTUpKXWM/uXLlw== 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)(39850400004)(136003)(346002)(396003)(376002)(36840700001)(46966006)(6506007)(53546011)(52536014)(8936002)(5660300002)(478600001)(9686003)(2906002)(70586007)(70206006)(7696005)(55016002)(4326008)(316002)(33656002)(81166007)(36860700001)(83380400001)(82740400003)(110136005)(55236004)(86362001)(356005)(186003)(82310400003)(6636002)(47076005)(26005)(336012)(8676002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 10:35:32.1730 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b614893c-c089-43b6-e50e-08d9191f7f6e 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: AM5EUR03FT010.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5822 X-Spam-Status: No, score=-7.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.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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: Mon, 17 May 2021 10:35:39 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogR2NjLXBhdGNoZXMgPGdj Yy1wYXRjaGVzLWJvdW5jZXNAZ2NjLmdudS5vcmc+IE9uIEJlaGFsZiBPZg0KPiBDaHJpc3RvcGhl IEx5b24gdmlhIEdjYy1wYXRjaGVzDQo+IFNlbnQ6IDA1IE1heSAyMDIxIDE1OjA4DQo+IFRvOiBB bmRyZSBTaW1vZXMgRGlhcyBWaWVpcmEgPEFuZHJlLlNpbW9lc0RpYXNWaWVpcmFAYXJtLmNvbT4N Cj4gQ2M6IGdjYyBQYXRjaGVzIDxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz4NCj4gU3ViamVjdDog UmU6IFtQQVRDSCA2LzldIGFybTogQXV0by12ZWN0b3JpemF0aW9uIGZvciBNVkU6IHZjbXANCj4g DQo+IE9uIFR1ZSwgNCBNYXkgMjAyMSBhdCAxNTo0MSwgQ2hyaXN0b3BoZSBMeW9uIDxjaHJpc3Rv cGhlLmx5b25AbGluYXJvLm9yZz4NCj4gd3JvdGU6DQo+ID4NCj4gPiBPbiBUdWUsIDQgTWF5IDIw MjEgYXQgMTM6MjksIEFuZHJlIFZpZWlyYSAobGlzdHMpDQo+ID4gPGFuZHJlLnNpbW9lc2RpYXN2 aWVpcmFAYXJtLmNvbT4gd3JvdGU6DQo+ID4gPg0KPiA+ID4gSGkgQ2hyaXN0b3BoZSwNCj4gPiA+ DQo+ID4gPiBPbiAzMC8wNC8yMDIxIDE1OjA5LCBDaHJpc3RvcGhlIEx5b24gdmlhIEdjYy1wYXRj aGVzIHdyb3RlOg0KPiA+ID4gPiBTaW5jZSBNVkUgaGFzIGEgZGlmZmVyZW50IHNldCBvZiB2ZWN0 b3IgY29tcGFyaXNvbiBvcGVyYXRvcnMgZnJvbQ0KPiA+ID4gPiBOZW9uLCB3ZSBoYXZlIHRvIHVw ZGF0ZSB0aGUgZXhwYW5zaW9uIHRvIHRha2UgaW50byBhY2NvdW50IHRoZSBuZXcNCj4gPiA+ID4g b25lcywgZm9yIGluc3RhbmNlICdORScgZm9yIHdoaWNoIE1WRSBkb2VzIG5vdCByZXF1aXJlIHRv IHVzZSAnRVEnDQo+ID4gPiA+IHdpdGggdGhlIGludmVydGVkIGNvbmRpdGlvbi4NCj4gPiA+ID4N Cj4gPiA+ID4gQ29udmVyc2VseSwgTmVvbiBzdXBwb3J0cyBjb21wYXJpc29ucyB3aXRoICMwLCBN VkUgZG9lcyBub3QuDQo+ID4gPiA+DQo+ID4gPiA+IEZvcjoNCj4gPiA+ID4gdHlwZWRlZiBsb25n IGludCB2czMyIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSkpOw0KPiA+ID4gPiB2czMy IGNtcF9lcV92czMyX3JlZyAodnMzMiBhLCB2czMyIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQ0KPiA+ ID4gPg0KPiA+ID4gPiB3ZSBub3cgZ2VuZXJhdGU6DQo+ID4gPiA+IGNtcF9lcV92czMyX3JlZzoN Cj4gPiA+ID4gICAgICAgdmxkci42NCBkNCwgLkwxMjMgICAgICAgQCA4ICAgICBbYz04IGw9NF0g ICptdmVfbW92djRzaS84DQo+ID4gPiA+ICAgICAgIHZsZHIuNjQgZDUsIC5MMTIzKzgNCj4gPiA+ ID4gICAgICAgdmxkci42NCBkNiwgLkwxMjMrMTYgICAgQCA5ICAgICBbYz04IGw9NF0gICptdmVf bW92djRzaS84DQo+ID4gPiA+ICAgICAgIHZsZHIuNjQgZDcsIC5MMTIzKzI0DQo+ID4gPiA+ICAg ICAgIHZjbXAuaTMyICBlcSwgcTAsIHExICAgIEAgNyAgICAgW2M9MTYgbD00XSAgbXZlX3ZjbXBl cXFfdjRzaQ0KPiA+ID4gPiAgICAgICB2cHNlbCBxMCwgcTMsIHEyICAgICAgICBAIDE1ICAgIFtj PTggbD00XSAgbXZlX3Zwc2VscV9zdjRzaQ0KPiA+ID4gPiAgICAgICBieCAgICAgIGxyICAgICAg QCAyNiAgICBbYz04IGw9NF0gICp0aHVtYjJfcmV0dXJuDQo+ID4gPiA+IC5MMTI0Og0KPiA+ID4g PiAgICAgICAuYWxpZ24gIDMNCj4gPiA+ID4gLkwxMjM6DQo+ID4gPiA+ICAgICAgIC53b3JkICAg MA0KPiA+ID4gPiAgICAgICAud29yZCAgIDANCj4gPiA+ID4gICAgICAgLndvcmQgICAwDQo+ID4g PiA+ICAgICAgIC53b3JkICAgMA0KPiA+ID4gPiAgICAgICAud29yZCAgIDENCj4gPiA+ID4gICAg ICAgLndvcmQgICAxDQo+ID4gPiA+ICAgICAgIC53b3JkICAgMQ0KPiA+ID4gPiAgICAgICAud29y ZCAgIDENCj4gPiA+ID4NCj4gPiA+ID4gRm9yIHNvbWUgcmVhc29uIGVtaXRfbW92ZV9pbnNuICh6 ZXJvLCBDT05TVDBfUlRYIChjbXBfbW9kZSkpDQo+IHByb2R1Y2VzDQo+ID4gPiA+IGEgcGFpciBv ZiB2bGRyIGluc3RlYWQgb2Ygdm1vdi5pMzIsIHFYLCAjMA0KPiA+ID4gSSB0aGluayBpZGVhbGx5 IHdlIHdvdWxkIGV2ZW4gd2FudDoNCj4gPiA+IHZwdGUgIGVxLCBxMCwgcTENCj4gPiA+IHZtb3Z0 LmkzMiBxMCwgIzANCj4gPiA+IHZtb3ZlLmkzMiBxMCwgIzENCj4gPiA+DQo+ID4gPiBCdXQgd2Ug ZG9uJ3QgaGF2ZSBhIHdheSB0byBnZW5lcmF0ZSBWUFQgYmxvY2tzIHdpdGggbXVsdGlwbGUNCj4g PiA+IGluc3RydWN0aW9ucyB5ZXQgdW5mb3J0dW5hdGVseSBzbyBJIGd1ZXNzIFZQU0VMIHdpbGwg aGF2ZSB0byBkbyBmb3Igbm93Lg0KPiA+DQo+ID4gVEJILCAgSSBsb29rZWQgYXQgd2hhdCBMTFZN IGdlbmVyYXRlcyBjdXJyZW50bHkgOy0pDQo+ID4NCj4gDQo+IEhlcmUgaXMgYW4gdXBkYXRlZCB2 ZXJzaW9uLCB3aGljaCBhZGRzDQo+ICYmICghPElzX2Zsb2F0X21vZGU+IHx8IGZsYWdfdW5zYWZl X21hdGhfb3B0aW1pemF0aW9ucykNCj4gdG8gdmNvbmRfbWFza18NCj4gDQo+IFRoaXMgY29uZGl0 aW9uIHdhcyBub3QgcHJlc2VudCBpbiB0aGUgbmVvbi5tZCB2ZXJzaW9uIEkgbW92ZSB0byB2ZWMt DQo+IGNvbW1vbi5tZCwNCj4gYnV0IHNpbmNlIHRoZSBWRFFXIGl0ZXJhdG9yIGluY2x1ZGVzIFYy U0YgYW5kIFY0U0YsIGl0IHNob3VsZCB0YWtlDQo+IGZsb2F0LXBvaW50IGZsYWdzIGludG8gYWNj b3VudC4NCj4gDQoNCi0gICAgICBlbWl0X2luc24gKGdlbl9uZW9uX3ZjIChjb2RlLCBjbXBfbW9k ZSwgdGFyZ2V0LCBvcDAsIG9wMSkpOw0KKyAgICBjYXNlIE5FOg0KKyAgICAgIGlmIChUQVJHRVRf SEFWRV9NVkUpIHsNCisJcnR4IHZwcl9wMDsNCg0KR05VIHN0eWxlIHdhbnRzIHRoZSAneycgb24g dGhlIG5ldyBsaW5lLiBUaGlzIGFwcGVhcnMgYSBmZXcgb3RoZXIgdGltZXMgaW4gdGhlIHBhdGNo Lg0KDQorCWlmICh2Y29uZF9tdmUpDQorCSAgdnByX3AwID0gdGFyZ2V0Ow0KKwllbHNlDQorCSAg dnByX3AwID0gZ2VuX3JlZ19ydHggKEhJbW9kZSk7DQorDQorCXN3aXRjaCAoY21wX21vZGUpDQor CSAgew0KKwkgIGNhc2UgRV9WMTZRSW1vZGU6DQorCSAgY2FzZSBFX1Y4SEltb2RlOg0KKwkgIGNh c2UgRV9WNFNJbW9kZToNCisJICAgIGVtaXRfaW5zbiAoZ2VuX212ZV92Y21wcSAoY29kZSwgY21w X21vZGUsIHZwcl9wMCwgb3AwLCBmb3JjZV9yZWcgKGNtcF9tb2RlLCBvcDEpKSk7DQorCSAgICBi cmVhazsNCisJICBjYXNlIEVfVjhIRm1vZGU6DQorCSAgY2FzZSBFX1Y0U0Ztb2RlOg0KKwkgICAg aWYgKFRBUkdFVF9IQVZFX01WRV9GTE9BVCkNCisJICAgICAgZW1pdF9pbnNuIChnZW5fbXZlX3Zj bXBxX2YgKGNvZGUsIGNtcF9tb2RlLCB2cHJfcDAsIG9wMCwgZm9yY2VfcmVnIChjbXBfbW9kZSwg b3AxKSkpOw0KKwkgICAgZWxzZQ0KKwkgICAgICBnY2NfdW5yZWFjaGFibGUgKCk7DQorCSAgICBi cmVhazsNCisJICBkZWZhdWx0Og0KKwkgICAgZ2NjX3VucmVhY2hhYmxlICgpOw0KKwkgIH0NCg0K SG1tLCBJIHRoaW5rIHdlIGNhbiBqdXN0IGNoZWNrIEdFVF9NT0RFX0NMQVNTIChjbXBfbW9kZSkg Zm9yIE1PREVfVkVDVE9SX0lOVCBvciBNT0RFX1ZFQ1RPUl9GTE9BVCBoZXJlIHJhdGhlciB0aGFu IGhhdmUgdGhpcyBzd2l0Y2ggc3RhdGVtZW50Lg0KDQorDQorCS8qIElmIHdlIGFyZSBub3QgZXhw YW5kaW5nIGEgdmNvbmQsIGJ1aWxkIHRoZSByZXN1bHQgaGVyZS4gICovDQorCWlmICghdmNvbmRf bXZlKSB7DQorCSAgcnR4IHplcm8gPSBnZW5fcmVnX3J0eCAoY21wX3Jlc3VsdF9tb2RlKTsNCisJ ICBydHggb25lID0gZ2VuX3JlZ19ydHggKGNtcF9yZXN1bHRfbW9kZSk7DQorCSAgZW1pdF9tb3Zl X2luc24gKHplcm8sIENPTlNUMF9SVFggKGNtcF9yZXN1bHRfbW9kZSkpOw0KKwkgIGVtaXRfbW92 ZV9pbnNuIChvbmUsIENPTlNUMV9SVFggKGNtcF9yZXN1bHRfbW9kZSkpOw0KKwkgIGVtaXRfaW5z biAoZ2VuX212ZV92cHNlbHEgKFZQU0VMUV9TLCBjbXBfcmVzdWx0X21vZGUsIHRhcmdldCwgb25l LCB6ZXJvLCB2cHJfcDApKTsNCisJfQ0KKyAgICAgIH0NCisgICAgICBlbHNlDQoNCi4uLg0KICAg Ym9vbCBpbnZlcnRlZCA9IGFybV9leHBhbmRfdmVjdG9yX2NvbXBhcmUgKG1hc2ssIEdFVF9DT0RF IChvcGVyYW5kc1szXSksDQotCQkJCQkgICAgIG9wZXJhbmRzWzRdLCBvcGVyYW5kc1s1XSwgdHJ1 ZSk7DQorCQkJCQkgICAgIG9wZXJhbmRzWzRdLCBvcGVyYW5kc1s1XSwgdHJ1ZSwgdmNvbmRfbXZl KTsNCiAgIGlmIChpbnZlcnRlZCkNCiAgICAgc3RkOjpzd2FwIChvcGVyYW5kc1sxXSwgb3BlcmFu ZHNbMl0pOw0KKyAgaWYgKFRBUkdFVF9ORU9OKQ0KICAgZW1pdF9pbnNuIChnZW5fbmVvbl92YnNs IChHRVRfTU9ERSAob3BlcmFuZHNbMF0pLCBvcGVyYW5kc1swXSwNCiAJCQkgICAgbWFzaywgb3Bl cmFuZHNbMV0sIG9wZXJhbmRzWzJdKSk7DQorICBlbHNlDQorICAgIHsNCisgICAgICBtYWNoaW5l X21vZGUgY21wX21vZGUgPSBHRVRfTU9ERSAob3BlcmFuZHNbNF0pOw0KKyAgICAgIHJ0eCB2cHJf cDAgPSBtYXNrOw0KKyAgICAgIHJ0eCB6ZXJvID0gZ2VuX3JlZ19ydHggKGNtcF9tb2RlKTsNCisg ICAgICBydHggb25lID0gZ2VuX3JlZ19ydHggKGNtcF9tb2RlKTsNCisgICAgICBlbWl0X21vdmVf aW5zbiAoemVybywgQ09OU1QwX1JUWCAoY21wX21vZGUpKTsNCisgICAgICBlbWl0X21vdmVfaW5z biAob25lLCBDT05TVDFfUlRYIChjbXBfbW9kZSkpOw0KKyAgICAgIHN3aXRjaCAoY21wX21vZGUp DQorCXsNCisJY2FzZSBFX1YxNlFJbW9kZToNCisJY2FzZSBFX1Y4SEltb2RlOg0KKwljYXNlIEVf VjRTSW1vZGU6DQorCSAgZW1pdF9pbnNuIChnZW5fbXZlX3Zwc2VscSAoVlBTRUxRX1MsIGNtcF9y ZXN1bHRfbW9kZSwgb3BlcmFuZHNbMF0sIG9uZSwgemVybywgdnByX3AwKSk7DQorCSAgYnJlYWs7 DQorCWNhc2UgRV9WOEhGbW9kZToNCisJY2FzZSBFX1Y0U0Ztb2RlOg0KKwkgIGlmIChUQVJHRVRf SEFWRV9NVkVfRkxPQVQpDQorCSAgICBlbWl0X2luc24gKGdlbl9tdmVfdnBzZWxxX2YgKGNtcF9t b2RlLCBvcGVyYW5kc1swXSwgb25lLCB6ZXJvLCB2cHJfcDApKTsNCisJICBicmVhazsNCisJZGVm YXVsdDoNCisJICBnY2NfdW5yZWFjaGFibGUgKCk7DQorCX0NCg0KU2ltaWxhcmx5IGhlcmUuDQpP ayB3aXRoIHRob3NlIGNoYW5nZXMuDQpUaGFua3MsDQpLeXJpbGwNCg==