From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2089.outbound.protection.outlook.com [40.107.21.89]) by sourceware.org (Postfix) with ESMTPS id 4D4753858C50 for ; Thu, 4 Jan 2024 11:27:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4D4753858C50 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 4D4753858C50 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.21.89 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1704367639; cv=pass; b=oCRnVrwg23lCk7+TkdOAmulqIuS/SH6mEDSofB2BuxxauWTMBVIfmaKz/J8wGwIMVjBDtOl1rzZABgpGRPEdbC6KP5Hz7hFzNDJMis5fcllJSZ4m3RaAprjHMEyid/xwh+WeqsHW5+/7Y5RFOS4kgaQDBGrumMFIkMV90QLp+Ag= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1704367639; c=relaxed/simple; bh=lDtmmO+p2EfM/x2BHC3AREKkknsBmR3N31PxSJIgbro=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=IlqJMO6/8ZUC3AXumx70XOXFqKRSfakiJxiil4BITTA9Obp/c1yXKIvm+eYnoVQ/chI9U69j/kbd6xLLR40BCLpt7vfZq1hnP4kDhiX3Ek/tF29lthXC+l8NLopniJF85omteiuIrHbuekVS4JNeLtgAufKuuINkizrdXYJz4/0= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=oBapTBIwur6s6DY2sm1JZ0fI36Orgx0JyfnG2+2CyFAWUWyOLyzEGSSZlOnbBTmumhOCgDpnXVPHauv/s1zohrVjLX0/3Fqw52Lgr8rdD9b5+gERAMTP6oItU7PdUJnaZ3dth8EKuYfi1/0e6MKdjUGc9ULOGXo08sE6lY0AGzZftGrbHhtMeOcOUtzcy+Aov/mK/w2I3WtkmUQavL/d9Z/d8Sg49wQ9q2w6a/w2SPQUs285hWhWKYXZn9zU8MKQBjTmLxXb7d0XtFmT13x49/J2xy8QtcwGEMn891NN0YwKEMQuY1xE5uQ2TuZTfVfX32ihp0HYjXxmR3dwJOsCDw== ARC-Message-Signature: i=2; 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=lDtmmO+p2EfM/x2BHC3AREKkknsBmR3N31PxSJIgbro=; b=DKkBufpaS2GcfraxJYQJ13QJTzmPdJssS6qSVxtdUfLkWcDARttCKkNHXsC4qaNQ4vRI3KtH4XuwqXs6Z0IYL1gqZ40K8guoY2MTxhd97O44KjfXNBUuaHY3ruwqXGEFhesXhQqcXZI1hxXbrSApXA+i6ai7FV+RcLi+/xqFpHeANZ3sLjLdFMfeSaLlRIfHO6ECQw5tCfTrzBDSCXixHF+KaDGw7uiToEkaf+E0AYdNUR/yIblU6p+G0WRpM5N2P0Mx7JpXqnFmWxWc70+ZMwtBdffD4GbrqqN6fBH32eLDQ29luP9o19WdLSrspt0ornIcLy3OpL9eeAdaaHLO4g== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=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=lDtmmO+p2EfM/x2BHC3AREKkknsBmR3N31PxSJIgbro=; b=WMuRZudovs18M/bU5azt5kFbLd8wP9/ipMmbkGSlqntv/HyGPy6Sfhx+0HoS1ap2s2SebLrDmJFsEvpamvunYxLnywB2HBHFad5ghWS248t6t1gNurnlSuc8spHXv4N67eesIFUZwuT6w7NaDDQhJcop+QFH59OZMvcyCbuRjns= Received: from AM0PR03CA0028.eurprd03.prod.outlook.com (2603:10a6:208:14::41) by DB9PR08MB9803.eurprd08.prod.outlook.com (2603:10a6:10:460::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7135.25; Thu, 4 Jan 2024 11:27:11 +0000 Received: from AM3PEPF0000A79A.eurprd04.prod.outlook.com (2603:10a6:208:14:cafe::45) by AM0PR03CA0028.outlook.office365.com (2603:10a6:208:14::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.15 via Frontend Transport; Thu, 4 Jan 2024 11:27:11 +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 AM3PEPF0000A79A.mail.protection.outlook.com (10.167.16.105) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.9 via Frontend Transport; Thu, 4 Jan 2024 11:27:11 +0000 Received: ("Tessian outbound d4441390933e:v239"); Thu, 04 Jan 2024 11:27:10 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 2f3407a79078e488 X-CR-MTA-TID: 64aa7808 Received: from 429d0b4d364c.4 by 64aa7808-outbound-1.mta.getcheckrecipient.com id F0F16E52-D4DA-44BC-8403-6D234FE27288.1; Thu, 04 Jan 2024 11:26:59 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 429d0b4d364c.4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 04 Jan 2024 11:26:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BzQ7NsxOIU+RiQLRErg9Njf3ur69EXhXCyC3boOsfPzS0izA2Gwe6/V6sNFUB40D94CSYkTCG+qnGqZrO85XKLP7rMNFQU+uuYIELTQ5bh/BhxDewRhe7/71Bugu4wSusjndPllBblbERE/0rMZNin6tEjp3XKERGO2Sufjggc3HpZxhQhlNT9QEw2lQIP3TE7IjEIfDsov5Y2cIus/8UtT67wAXmQEuyUzCghDSTeV0h4ZGWevd5sDcnHSdYzu0M0QiCMxRDkf1tgeHnHUGFk6LMZFDrrfgfd6LNydC2n4beY0J9fqcA8+PjR2bnaL/I+0tZIdSUNKZCdSCOfknYQ== 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=lDtmmO+p2EfM/x2BHC3AREKkknsBmR3N31PxSJIgbro=; b=BPPjUGt/3rKzf6zTd6zedwGSoonWvpTWyhYy/koaLBCPBzv8O0RD1oc5fCjBg+v1QPMyf0PdSXI6UYn+jrq2Y5rqK/0h7TtJ08ejPyxixQkTK9G/0XgVUyDSdXk+oXuauNpZsj5819tG6vGF+5dqCxlAvsmLonpMto19CQ8BsYsyoM+dBtgVFnTpHRitya2zZmpsfJsgYtXuFlLRaWhzw7xZqfe/O9UpZvA1hv203B+np8qlgZXGz71rUf4jxaQltbTaVwN708DA2l2DR8Kqw0JWogMURdlrjL7ufzrSsaKkzjbrmsp85qIL0isG0MpSnZZ0JIrnh9HnYsOC+41w3g== 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=lDtmmO+p2EfM/x2BHC3AREKkknsBmR3N31PxSJIgbro=; b=WMuRZudovs18M/bU5azt5kFbLd8wP9/ipMmbkGSlqntv/HyGPy6Sfhx+0HoS1ap2s2SebLrDmJFsEvpamvunYxLnywB2HBHFad5ghWS248t6t1gNurnlSuc8spHXv4N67eesIFUZwuT6w7NaDDQhJcop+QFH59OZMvcyCbuRjns= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by PAWPR08MB8837.eurprd08.prod.outlook.com (2603:10a6:102:336::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7135.25; Thu, 4 Jan 2024 11:26:56 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::9679:2ab0:99c6:54a3]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::9679:2ab0:99c6:54a3%6]) with mapi id 15.20.7159.013; Thu, 4 Jan 2024 11:26:55 +0000 From: Tamar Christina To: Kyrylo Tkachov , "gcc-patches@gcc.gnu.org" CC: nd , Ramana Radhakrishnan , Richard Earnshaw , "nickc@redhat.com" Subject: RE: [PATCH 20/21]Arm: Add Advanced SIMD cbranch implementation Thread-Topic: [PATCH 20/21]Arm: Add Advanced SIMD cbranch implementation Thread-Index: AQHaOmVOQFBWW055nUSzB/IbhsgfF7DJh0FAgAABp4CAAAPI0A== Date: Thu, 4 Jan 2024 11:26:55 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: 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: VI1PR08MB5325:EE_|PAWPR08MB8837:EE_|AM3PEPF0000A79A:EE_|DB9PR08MB9803:EE_ X-MS-Office365-Filtering-Correlation-Id: ef80c6c3-0e48-4558-fffe-08dc0d1817ec x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr 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: OtcUjrsbwC6aqgcYoEI9Zt3pF/o2M/SgdrmcfAeJ7JMt7E7+3ZIEvps0XGTJthz82UgIm36M/eEv0idrpSKz38pNyGXsPdQOskS/l0xLZIeqTlt70D18qoXFCsGNfN49lGkrat04Xhj7LOPuZZFbIaisTUlRhll5kgC/IyKPUPLpDRm88wa+UP7dOnHZsHJlg9MoTmWSNnVmZ6ugunELDNDzCIJuvBg0MGvnDm/mP5W88K18RjqqOD/JNy6fJoAsYyudhiviMcwdzAMNRERsHzLnLSptH4OeTkkItnFc6Eb1smcY+6qF/xtqeSZ39Uzm8gIJ83POH7YxhN3V5mFggqm4T+0H4CkxIA9w5gG5Q0GdNE49TqilSMnOrR3Dyag5bnW5Q4o3lDgF/tG0WR3D1yhmbAcwUVWI5lkKD7vGwDT+4XYNLUC9cBPeAV1pIv/7PoWhZhsoRzlCfKMpvKGXBeeCRtpX9gz4mnZDHMcbqYIN8YMo5cb0KCrrhnpImP76ZuVa4Uh9GDYyMt6zTp2UIc03/2uNmoLLEZFkT/FT8BMC94UhlPNDj+uwV6cMUwNNpD8X33bEW04XiV8obFi9E1SIwPoExW3gILc6haM6V2zCphlWuha8hiLQj5xQcREnTz4u4IGDRGS1mTmK0DR+8g== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR08MB5325.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(396003)(366004)(39860400002)(346002)(376002)(230922051799003)(186009)(1800799012)(64100799003)(451199024)(8676002)(30864003)(4326008)(2906002)(5660300002)(53546011)(478600001)(52536014)(6506007)(9686003)(71200400001)(110136005)(316002)(66446008)(66946007)(66476007)(8936002)(54906003)(64756008)(76116006)(7696005)(66556008)(41300700001)(38070700009)(55016003)(122000001)(38100700002)(4743002)(86362001)(84970400001)(26005)(83380400001)(33656002);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB8837 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: AM3PEPF0000A79A.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: fa5ef72b-d7d3-468a-be79-08dc0d180ed2 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: J3Bu37i4gqJb1E3r61iFkMCd/7KCq5MPLjrKXx+Em5kVbxvvD5QAQbsIkBGpcrpvaEfTN/hvLse0EMvV8W0ozPWPoJ//vBTRaCVxgk5HXsEkMoskckIxEhcQz9migeaUIYxRBZpr0u9CZIcfdeTECUvFziWk9TcMYjvQT2HqGch5s+6tN282B09/cTI30BSvy/UYylaJx3CdvPVGKoHnWqk1/v9UShcv7VhdQgGgsWWEoLIPKvSPQii3x55u38rmy2+H3GSiHhqBBhy9e2vega1XGUxHURWj3JQ+E/7EsQouVPFEVOb/Nrx8XSELU3M0A0uBk1GGziJh27SpunXQ+9DYjIZ1Z5A2GJ2cZ6XFHgzohBlbF2QPrQOyYwUecdZD3lx1zURpCZ/q1pXP8qnri8Wl2Pak2T/44A90cTws6LNaKIO6+mQjcgMtru/RE8KF7GL1XGWvWMoGUK/SL+5lyfy6QBkc7umsS9RpYQy4AjsC8ENER6WZsBgVghmeyA14P7CNKFtd2kSxqQoU7nsLm9RY/rsYIhc413UuiLE2JbVr+DzuKQLXd5S+oKcuMQK2nEVjO8kwf9H6MujcsbFPiLsM5PxU4OIpCI8Rw9FE9QqaslFu/JBEpcyIkxmFmPrPhwQ2jeX89mCXMcZqoagW57YXjrDmUcOHRNH1oh53gupuVgSu9LcLmIfK+xI7ff5YkCGKAo2kMmHMnrHTJaZsH9hr4RcME+LCcoi07mC1/bTFavFVVfqHVCZDgjsCxROMUDVoMnmgOw5VgcRZhUahzQ== 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:(13230031)(4636009)(136003)(346002)(396003)(39860400002)(376002)(230922051799003)(82310400011)(1800799012)(451199024)(64100799003)(186009)(46966006)(36840700001)(40470700004)(82740400003)(47076005)(83380400001)(26005)(81166007)(356005)(4326008)(4743002)(107886003)(110136005)(2906002)(41300700001)(316002)(30864003)(8676002)(8936002)(54906003)(36860700001)(52536014)(5660300002)(336012)(478600001)(70206006)(7696005)(6506007)(70586007)(86362001)(53546011)(9686003)(33656002)(84970400001)(55016003)(40480700001)(40460700003);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jan 2024 11:27:11.0458 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ef80c6c3-0e48-4558-fffe-08dc0d1817ec 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: AM3PEPF0000A79A.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9803 X-Spam-Status: No, score=-12.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,KAM_LOTSOFHASH,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBLeXJ5bG8gVGthY2hvdiA8S3ly eWxvLlRrYWNob3ZAYXJtLmNvbT4NCj4gU2VudDogVGh1cnNkYXksIEphbnVhcnkgNCwgMjAyNCAx MToxMiBBTQ0KPiBUbzogVGFtYXIgQ2hyaXN0aW5hIDxUYW1hci5DaHJpc3RpbmFAYXJtLmNvbT47 IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnDQo+IENjOiBuZCA8bmRAYXJtLmNvbT47IFJhbWFuYSBS YWRoYWtyaXNobmFuDQo+IDxSYW1hbmEuUmFkaGFrcmlzaG5hbkBhcm0uY29tPjsgUmljaGFyZCBF YXJuc2hhdw0KPiA8UmljaGFyZC5FYXJuc2hhd0Bhcm0uY29tPjsgbmlja2NAcmVkaGF0LmNvbQ0K PiBTdWJqZWN0OiBSRTogW1BBVENIIDIwLzIxXUFybTogQWRkIEFkdmFuY2VkIFNJTUQgY2JyYW5j aCBpbXBsZW1lbnRhdGlvbg0KPiANCj4gSGkgVGFtYXIsDQo+IA0KPiA+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogVGFtYXIgQ2hyaXN0aW5hIDxUYW1hci5DaHJpc3RpbmFA YXJtLmNvbT4NCj4gPiBTZW50OiBUaHVyc2RheSwgSmFudWFyeSA0LCAyMDI0IDExOjA2IEFNDQo+ ID4gVG86IFRhbWFyIENocmlzdGluYSA8VGFtYXIuQ2hyaXN0aW5hQGFybS5jb20+OyBnY2MtcGF0 Y2hlc0BnY2MuZ251Lm9yZw0KPiA+IENjOiBuZCA8bmRAYXJtLmNvbT47IFJhbWFuYSBSYWRoYWty aXNobmFuDQo+ID4gPFJhbWFuYS5SYWRoYWtyaXNobmFuQGFybS5jb20+OyBSaWNoYXJkIEVhcm5z aGF3DQo+ID4gPFJpY2hhcmQuRWFybnNoYXdAYXJtLmNvbT47IG5pY2tjQHJlZGhhdC5jb207IEt5 cnlsbyBUa2FjaG92DQo+ID4gPEt5cnlsby5Ua2FjaG92QGFybS5jb20+DQo+ID4gU3ViamVjdDog UkU6IFtQQVRDSCAyMC8yMV1Bcm06IEFkZCBBZHZhbmNlZCBTSU1EIGNicmFuY2ggaW1wbGVtZW50 YXRpb24NCj4gPg0KPiA+IFBpbmcsDQo+ID4NCj4gPiAtLS0NCj4gPg0KPiA+IEhpIEFsbCwNCj4g Pg0KPiA+IFRoaXMgYWRkcyBhbiBpbXBsZW1lbnRhdGlvbiBmb3IgY29uZGl0aW9uYWwgYnJhbmNo IG9wdGFiIGZvciBBQXJjaDMyLg0KPiA+IFRoZSBwcmV2aW91cyB2ZXJzaW9uIG9ubHkgYWxsb3dl ZCBvcGVyYW5kIDAgYnV0IGl0IGxvb2tzIGxpa2UgY2JyYW5jaA0KPiA+IGV4cGFuc2lvbiBkb2Vz IG5vdCBjaGVjayB3aXRoIHRoZSB0YXJnZXQgYW5kIHNvIHdlIGhhdmUgdG8gaW1wbGVtZW50IGFs bC4NCj4gPg0KPiA+IEkgdGhlcmVmb3JlIGRpZCBub3QgY29tbWl0IGl0LiAgVGhpcyBpcyBhIGxh cmdlciB2ZXJzaW9uLiBJJ3ZlIGFsc28gZHJvcHBlZCB0aGUgTVZFDQo+ID4gdmVyc2lvbiBiZWNh dXNlIHRoZSBtaWQtZW5kIGNhbiByZXdyaXRlIHRoZSBjb21wYXJpc29uIGludG8gY29tcGFyaW5n IHR3bw0KPiA+IHByZWRpY2F0ZXMgd2l0aG91dCBjaGVja2luZyB3aXRoIHRoZSBiYWNrZW5kLiAg U2luY2UgTVZFIG9ubHkgaGFzIDEgcHJlZGljYXRlDQo+ID4gcmVnaXN0ZXIgdGhpcyB3b3VsZCBu ZWVkIHRvIGdvIHRocm91Z2ggbWVtb3J5IGFuZCB0d28gTVJTIGNhbGxzLiAgSXQncyB1bmxpa2Vs eQ0KPiA+IHRvIGJlIGJlbmVmaWNpYWwgYW5kIHNvIHRoYXQncyBmb3IgR0NDIDE1IHdoZW4gSSBj YW4gZml4IHRoZSBtaWRkbGUtZW5kLg0KPiA+DQo+ID4gVGhlIGNhc2VzIHdoZXJlIEFBcmNoMzIg aXMgc2tpcHBlZCBpbiB0aGUgdGVzdHN1aXRlIGFyZSBhbGwgbWlzc2VkLW9wdGltaXphdGlvbnMN Cj4gPiBkdWUgdG8gQUFyY2gzMiBtaXNzaW5nIHNvbWUgb3B0YWJzLg0KPiANCj4gRG9lcyB0aGUg dGVzdHN1aXRlIGhhdmUgdmVjdF8qIGNoZWNrcyB0aGF0IGNhbiBiZSB1c2VkIGluc3RlYWQgb2Yg dGFyZ2V0IGFybSo/DQo+IElmIHNvIGxldCdzIHVzZSB0aG9zZS4NCg0KVW5mb3J0dW5hdGVseSBu b3QsIGEgbG90IG9mIHRoZW0gY2VudGVyIGFyb3VuZCBoYW5kbGluZyBvZiBjb21wbGV4IGRvdWJs ZXMuDQpTb21lIHRlc3RzIHdvcmsgYW5kIHNvbWUgZmFpbCwgd2hpY2ggbWFrZXMgaXQgaGFyZCB0 byBkaXNhYmxlIGJhc2VkIG9uIGENCnRhcmdldCBlZmZlY3RpdmUgdGVzdC4gIFRoZXkgYXJlIHRo aW5ncyB0aGF0IGxvb2sgZWFzeSB0byBmaXggc28gSSBtYXkgZmlsZSBzb21lIHRpY2tldHMNCmZv ciB0aGVtLg0KDQpDaGVlcnMsDQpUYW1hcg0KDQo+IE90aGVyd2lzZSBpdCdzIG9rYXkgYXMgaXMu DQo+IFRoYW5rcywNCj4gS3lyaWxsDQo+IA0KPiA+DQo+ID4gRm9yIGUuZy4NCj4gPg0KPiA+IHZv aWQgZjEgKCkNCj4gPiB7DQo+ID4gICBmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKykNCj4gPiAg ICAgew0KPiA+ICAgICAgIGJbaV0gKz0gYVtpXTsNCj4gPiAgICAgICBpZiAoYVtpXSA+IDApDQo+ ID4gCWJyZWFrOw0KPiA+ICAgICB9DQo+ID4gfQ0KPiA+DQo+ID4gRm9yIDEyOC1iaXQgdmVjdG9y cyB3ZSBnZW5lcmF0ZToNCj4gPg0KPiA+ICAgICAgICAgdmNndC5zMzIgICAgICAgIHE4LCBxOSwg IzANCj4gPiAgICAgICAgIHZwbWF4LnUzMiAgICAgICBkNywgZDE2LCBkMTcNCj4gPiAgICAgICAg IHZwbWF4LnUzMiAgICAgICBkNywgZDcsIGQ3DQo+ID4gICAgICAgICB2bW92ICAgIHIzLCBzMTQg QCBpbnQNCj4gPiAgICAgICAgIGNtcCAgICAgcjMsICMwDQo+ID4NCj4gPiBhbmQgb2YgNjQtYml0 IHZlY3RvciB3ZSBjYW4gb21pdCBvbmUgdnBtYXggYXMgd2Ugc3RpbGwgbmVlZCB0byBjb21wcmVz cyB0bw0KPiA+IDMyLWJpdHMuDQo+ID4NCj4gPiBCb290c3RyYXBwZWQgUmVndGVzdGVkIG9uIGFy bS1ub25lLWxpbnV4LWdudWVhYmloZiBhbmQgbm8gaXNzdWVzLg0KPiA+DQo+ID4gT2sgZm9yIG1h c3Rlcj8NCj4gPg0KPiA+IFRoYW5rcywNCj4gPiBUYW1hcg0KPiA+DQo+ID4gZ2NjL0NoYW5nZUxv ZzoNCj4gPg0KPiA+IAkqIGNvbmZpZy9hcm0vbmVvbi5tZCAoY2JyYW5jaDxtb2RlPjQpOiBOZXcu DQo+ID4NCj4gPiBnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCj4gPg0KPiA+IAkqIGdjYy5kZy92 ZWN0L3ZlY3QtZWFybHktYnJlYWtfMi5jOiBTa2lwIEFybS4NCj4gPiAJKiBnY2MuZGcvdmVjdC92 ZWN0LWVhcmx5LWJyZWFrXzcuYzogTGlrZXdpc2UuDQo+ID4gCSogZ2NjLmRnL3ZlY3QvdmVjdC1l YXJseS1icmVha183NS5jOiBMaWtld2lzZS4NCj4gPiAJKiBnY2MuZGcvdmVjdC92ZWN0LWVhcmx5 LWJyZWFrXzc3LmM6IExpa2V3aXNlLg0KPiA+IAkqIGdjYy5kZy92ZWN0L3ZlY3QtZWFybHktYnJl YWtfODIuYzogTGlrZXdpc2UuDQo+ID4gCSogZ2NjLmRnL3ZlY3QvdmVjdC1lYXJseS1icmVha184 OC5jOiBMaWtld2lzZS4NCj4gPiAJKiBsaWIvdGFyZ2V0LXN1cHBvcnRzLmV4cCAoYWRkX29wdGlv bnNfZm9yX3ZlY3RfZWFybHlfYnJlYWssDQo+ID4gCWNoZWNrX2VmZmVjdGl2ZV90YXJnZXRfdmVj dF9lYXJseV9icmVha19odywNCj4gPiAJY2hlY2tfZWZmZWN0aXZlX3RhcmdldF92ZWN0X2Vhcmx5 X2JyZWFrKTogU3VwcG9ydCBBQXJjaDMyLg0KPiA+IAkqIGdjYy50YXJnZXQvYXJtL3ZlY3QtZWFy bHktYnJlYWstY2JyYW5jaC5jOiBOZXcgdGVzdC4NCj4gPg0KPiA+IC0tLSBpbmxpbmUgdmVyc2lv biBvZiBwYXRjaCAtLS0NCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FybS9uZW9u Lm1kIGIvZ2NjL2NvbmZpZy9hcm0vbmVvbi5tZA0KPiA+IGluZGV4DQo+ID4NCj4gZDIxMzM2OWZm YzM4ZmI4OGFkMDM1N2Q4NDhjYzdkYTVhZjczYmFiNy4uZWQ2NTlhYjczNjg2MmRhNDE2ZDFmZjYy NA0KPiAxZA0KPiA+IDBkM2U2YzZiOTZmZjEgMTAwNjQ0DQo+ID4gLS0tIGEvZ2NjL2NvbmZpZy9h cm0vbmVvbi5tZA0KPiA+ICsrKyBiL2djYy9jb25maWcvYXJtL25lb24ubWQNCj4gPiBAQCAtNDA4 LDYgKzQwOCw1NSBAQCAoZGVmaW5lX2luc24gInZlY19leHRyYWN0PG1vZGU+PFZfZWxlbV9sPiIN Cj4gPiAgICBbKHNldF9hdHRyICJ0eXBlIiAibmVvbl9zdG9yZTFfb25lX2xhbmU8cT4sbmVvbl90 b19ncDxxPiIpXQ0KPiA+ICApDQo+ID4NCj4gPiArOzsgUGF0dGVybnMgY29tcGFyaW5nIHR3byB2 ZWN0b3JzIGFuZCBjb25kaXRpb25hbGx5IGp1bXAuDQo+ID4gKzs7IEF2ZGFuY2VkIFNJTUQgbGFj a3MgYSB2ZWN0b3IgIT0gY29tcGFyaXNvbiwgYnV0IHRoaXMgaXMgYSBxdWl0ZSBjb21tb24NCj4g PiArOzsgb3BlcmF0aW9uLiAgVG8gbm90IHBheSB0aGUgcGVuYWx0eSBmb3IgaW52ZXJ0aW5nID09 IHdlIGNhbiBtYXAgb3VyIGFueQ0KPiA+ICs7OyBjb21wYXJpc29ucyB0byBhbGwgaS5lLiBhbnko fngpID0+IGFsbCh4KS4NCj4gPiArOzsNCj4gPiArOzsgSG93ZXZlciB1bmxpa2UgdGhlIEFBcmNo NjQgdmVyc2lvbiwgd2UgY2FuJ3Qgb3B0aW1pemUgdGhpcyBmdXJ0aGVyIGFzIHRoZQ0KPiA+ICs7 OyBjaGFpbiBpcyB0b28gbG9uZyBmb3IgY29tYmluZSBkdWUgdG8gdGhlc2UgYmVpbmcgdW5zcGVj cyBzbyBpdCBkb2Vzbid0IGZvbGQNCj4gPiArOzsgdGhlIG9wZXJhdGlvbiB0byBzb21ldGhpbmcg c2ltcGxlci4NCj4gPiArKGRlZmluZV9leHBhbmQgImNicmFuY2g8bW9kZT40Ig0KPiA+ICsgIFso c2V0IChwYykgKGlmX3RoZW5fZWxzZQ0KPiA+ICsJICAgICAgKG1hdGNoX29wZXJhdG9yIDAgImV4 cGFuZGFibGVfY29tcGFyaXNvbl9vcGVyYXRvciINCj4gPiArCSAgICAgICBbKG1hdGNoX29wZXJh bmQ6VkRRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIikNCj4gPiArCSAgICAgICAgKG1hdGNoX29wZXJh bmQ6VkRRSSAyICJyZWdfb3JfemVyb19vcGVyYW5kIildKQ0KPiA+ICsJICAgICAgKGxhYmVsX3Jl ZiAobWF0Y2hfb3BlcmFuZCAzICIiICIiKSkNCj4gPiArCSAgICAgIChwYykpKV0NCj4gPiArICAi VEFSR0VUX05FT04iDQo+ID4gK3sNCj4gPiArICBydHggbWFzayA9IG9wZXJhbmRzWzFdOw0KPiA+ ICsNCj4gPiArICAvKiBJZiBjb21wYXJpbmcgYWdhaW5zdCBhIG5vbi16ZXJvIHZlY3RvciB3ZSBo YXZlIHRvIGRvIGEgY29tcGFyaXNvbiBmaXJzdA0KPiA+ICsgICAgIHNvIHdlIGNhbiBoYXZlIGEg IT0gMCBjb21wYXJpc29uIHdpdGggdGhlIHJlc3VsdC4gICovDQo+ID4gKyAgaWYgKG9wZXJhbmRz WzJdICE9IENPTlNUMF9SVFggKDxNT0RFPm1vZGUpKQ0KPiA+ICsgICAgew0KPiA+ICsgICAgICBt YXNrID0gZ2VuX3JlZ19ydHggKDxNT0RFPm1vZGUpOw0KPiA+ICsgICAgICBlbWl0X2luc24gKGdl bl94b3I8bW9kZT4zIChtYXNrLCBvcGVyYW5kc1sxXSwgb3BlcmFuZHNbMl0pKTsNCj4gPiArICAg IH0NCj4gPiArDQo+ID4gKyAgLyogRm9yIDEyOC1iaXQgdmVjdG9ycyB3ZSBuZWVkIGFuIGFkZGl0 aW9uYWwgcmVkdWN0aW9ucy4gICovDQo+ID4gKyAgaWYgKGtub3duX2VxICgxMjgsIEdFVF9NT0RF X0JJVFNJWkUgKDxNT0RFPm1vZGUpKSkNCj4gPiArICAgIHsNCj4gPiArICAgICAgLyogQWx3YXlz IHJlZHVjZSB1c2luZyBhIFY0U0kuICAqLw0KPiA+ICsgICAgICBtYXNrID0gZ2VuX3JlZ19ydHgg KFYyU0ltb2RlKTsNCj4gPiArICAgICAgcnR4IGxvdyA9IGdlbl9yZWdfcnR4IChWMlNJbW9kZSk7 DQo+ID4gKyAgICAgIHJ0eCBoaWdoID0gZ2VuX3JlZ19ydHggKFYyU0ltb2RlKTsNCj4gPiArICAg ICAgcnR4IG9wMSA9IGxvd3BhcnRfc3VicmVnIChWNFNJbW9kZSwgb3BlcmFuZHNbMV0sIDxNT0RF Pm1vZGUpOw0KPiA+ICsgICAgICBlbWl0X2luc24gKGdlbl9uZW9uX3ZnZXRfbG93djRzaSAobG93 LCBvcDEpKTsNCj4gPiArICAgICAgZW1pdF9pbnNuIChnZW5fbmVvbl92Z2V0X2hpZ2h2NHNpICho aWdoLCBvcDEpKTsNCj4gPiArICAgICAgZW1pdF9pbnNuIChnZW5fbmVvbl92cHVtYXh2MnNpICht YXNrLCBsb3csIGhpZ2gpKTsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAgcnR4IG9wMSA9IGxv d3BhcnRfc3VicmVnIChWMlNJbW9kZSwgbWFzaywgR0VUX01PREUgKG1hc2spKTsNCj4gPiArICBl bWl0X2luc24gKGdlbl9uZW9uX3ZwdW1heHYyc2kgKG9wMSwgb3AxLCBvcDEpKTsNCj4gPiArDQo+ ID4gKyAgcnR4IHZhbCA9IGdlbl9yZWdfcnR4IChTSW1vZGUpOw0KPiA+ICsgIGVtaXRfbW92ZV9p bnNuICh2YWwsIGdlbl9sb3dwYXJ0IChTSW1vZGUsIG1hc2spKTsNCj4gPiArICBlbWl0X2p1bXBf aW5zbiAoZ2VuX2NicmFuY2hfY2MgKG9wZXJhbmRzWzBdLCB2YWwsIGNvbnN0MF9ydHgsDQo+IG9w ZXJhbmRzWzNdKSk7DQo+ID4gKyAgRE9ORTsNCj4gPiArfSkNCj4gPiArDQo+ID4gIDs7IFRoaXMg cGF0dGVybiBpcyByZW5hbWVkIGZyb20gInZlY19leHRyYWN0PG1vZGU+PFZfZWxlbV9sPiIgdG8N Cj4gPiAgOzsgIm5lb25fdmVjX2V4dHJhY3Q8bW9kZT48Vl9lbGVtX2w+IiBhbmQgdGhpcyBwYXR0 ZXJuIGlzIGNhbGxlZA0KPiA+ICA7OyBieSBkZWZpbmVfZXhwYW5kIGluIHZlYy1jb21tb24ubWQg ZmlsZS4NCj4gPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0LWVh cmx5LWJyZWFrXzIuYw0KPiA+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0LWVhcmx5 LWJyZWFrXzIuYw0KPiA+IGluZGV4DQo+ID4NCj4gNWMzMmJmOTQ0MDllOTc0M2U3MjQyOTk4NWFi M2JmMTNhYWI4ZjJjMS4uZGVjMGI0OTJhYjg4M2RlNmUwMjk0NGE5DQo+IDVmDQo+ID4gZDU1NGEx MDlhNjhhMzkgMTAwNjQ0DQo+ID4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0 LWVhcmx5LWJyZWFrXzIuYw0KPiA+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3QvdmVj dC1lYXJseS1icmVha18yLmMNCj4gPiBAQCAtNSw3ICs1LDcgQEANCj4gPg0KPiA+ICAvKiB7IGRn LWFkZGl0aW9uYWwtb3B0aW9ucyAiLU9mYXN0IiB9ICovDQo+ID4NCj4gPiAtLyogeyBkZy1maW5h bCB7IHNjYW4tdHJlZS1kdW1wICJMT09QIFZFQ1RPUklaRUQiICJ2ZWN0IiB9IH0gKi8NCj4gPiAr LyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJMT09QIFZFQ1RPUklaRUQiICJ2ZWN0IiB7 IHRhcmdldCB7ICEgImFybSotKi0NCj4gPiAqIiB9IH0gfSB9ICovDQo+ID4NCj4gPiAgI2luY2x1 ZGUgPGNvbXBsZXguaD4NCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5k Zy92ZWN0L3ZlY3QtZWFybHktYnJlYWtfNy5jDQo+ID4gYi9nY2MvdGVzdHN1aXRlL2djYy5kZy92 ZWN0L3ZlY3QtZWFybHktYnJlYWtfNy5jDQo+ID4gaW5kZXgNCj4gPg0KPiA4Yzg2YzUwMzRkNzUy MmIzNzMzNTQzZmIzODRhMjNjNWQ2ZWQwZmNmLi5kMjE4YTA2ODY3MTlmZWU0YzE2NzY4NGRjDQo+ IGYyDQo+ID4gNjQwMjg1MWI1MzI2MCAxMDA2NDQNCj4gPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2dj Yy5kZy92ZWN0L3ZlY3QtZWFybHktYnJlYWtfNy5jDQo+ID4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MuZGcvdmVjdC92ZWN0LWVhcmx5LWJyZWFrXzcuYw0KPiA+IEBAIC01LDcgKzUsNyBAQA0KPiA+ DQo+ID4gIC8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItT2Zhc3QiIH0gKi8NCj4gPg0KPiA+ IC0vKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgIkxPT1AgVkVDVE9SSVpFRCIgInZlY3Qi IH0gfSAqLw0KPiA+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgIkxPT1AgVkVDVE9S SVpFRCIgInZlY3QiIHsgdGFyZ2V0IHsgISAiYXJtKi0qLQ0KPiA+ICoiIH0gfSB9IH0gKi8NCj4g Pg0KPiA+ICAjaW5jbHVkZSA8Y29tcGxleC5oPg0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2NjLmRnL3ZlY3QvdmVjdC1lYXJseS1icmVha183NS5jDQo+ID4gYi9nY2MvdGVz dHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtZWFybHktYnJlYWtfNzUuYw0KPiA+IGluZGV4DQo+ID4N Cj4gZWQyN2Y4NjM1NzMwZmYwZDg4MDM1MTdjNzI2OTM2MjVhMmZlZGRlZi4uOWRjYzMzNzJhY2Q2 NTc0NThkZjhkOTRjZQ0KPiAzNg0KPiA+IGM0YmQ5NmYwMmZkNTIgMTAwNjQ0DQo+ID4gLS0tIGEv Z2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0LWVhcmx5LWJyZWFrXzc1LmMNCj4gPiArKysg Yi9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtZWFybHktYnJlYWtfNzUuYw0KPiA+IEBA IC0zLDcgKzMsNyBAQA0KPiA+ICAvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCB2ZWN0 X2ludCB9ICovDQo+ID4NCj4gPiAgLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1PMyIgfSAq Lw0KPiA+IC0vKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgIkxPT1AgVkVDVE9SSVpFRCIg InZlY3QiIHsgdGFyZ2V0IHsgISAieDg2XzY0LSotDQo+ID4gKiBpPzg2LSotKiIgfSB9IH0gfSAq Lw0KPiA+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgIkxPT1AgVkVDVE9SSVpFRCIg InZlY3QiIHsgdGFyZ2V0IHsgISAieDg2XzY0LQ0KPiA+ICotKiBpPzg2LSotKiBhcm0qLSotKiIg fSB9IH0gfSAqLw0KPiA+DQo+ID4gICNpbmNsdWRlIDxsaW1pdHMuaD4NCj4gPiAgI2luY2x1ZGUg PGFzc2VydC5oPg0KPiA+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3Zl Y3QtZWFybHktYnJlYWtfNzcuYw0KPiA+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0 LWVhcmx5LWJyZWFrXzc3LmMNCj4gPiBpbmRleA0KPiA+DQo+IDIyNTEwNmFhYjBhM2VmYzc1MzZk ZTZmNmU0NWJjNmZmMTYyMTBlYTguLjlmYTdlNjk0OGViZmI1ZjE3MjM4MzM2NTNmDQo+IGQNCj4g PiA2YWQxZmM2NWY0ZThlIDEwMDY0NA0KPiA+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3Zl Y3QvdmVjdC1lYXJseS1icmVha183Ny5jDQo+ID4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcv dmVjdC92ZWN0LWVhcmx5LWJyZWFrXzc3LmMNCj4gPiBAQCAtMyw3ICszLDcgQEANCj4gPiAgLyog eyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgdmVjdF9pbnQgfSAqLw0KPiA+DQo+ID4gIC8q IHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItTzMiIH0gKi8NCj4gPiAtLyogeyBkZy1maW5hbCB7 IHNjYW4tdHJlZS1kdW1wICJMT09QIFZFQ1RPUklaRUQiICJ2ZWN0IiB9IH0gKi8NCj4gPiArLyog eyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wICJMT09QIFZFQ1RPUklaRUQiICJ2ZWN0IiB7IHRh cmdldCB7ICEgImFybSotKi0NCj4gPiAqIiB9IH0gfSB9ICovDQo+ID4NCj4gPiAgI2luY2x1ZGUg InRyZWUtdmVjdC5oIg0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRn L3ZlY3QvdmVjdC1lYXJseS1icmVha184Mi5jDQo+ID4gYi9nY2MvdGVzdHN1aXRlL2djYy5kZy92 ZWN0L3ZlY3QtZWFybHktYnJlYWtfODIuYw0KPiA+IGluZGV4DQo+ID4NCj4gMGU5YjJkOGQzODVj NTU2MDYzYTNjNmZjYjE0MzgzMzE3YjA1NmE3OS4uN2NkMjFkMzM0ODVmM2FiYjgyM2UxOTQNCj4g M2MNCj4gPiA4N2U5NDgxYzQxZmQyYzMgMTAwNjQ0DQo+ID4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MuZGcvdmVjdC92ZWN0LWVhcmx5LWJyZWFrXzgyLmMNCj4gPiArKysgYi9nY2MvdGVzdHN1aXRl L2djYy5kZy92ZWN0L3ZlY3QtZWFybHktYnJlYWtfODIuYw0KPiA+IEBAIC01LDcgKzUsNyBAQA0K PiA+DQo+ID4gIC8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItT2Zhc3QiIH0gKi8NCj4gPg0K PiA+IC0vKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgIkxPT1AgVkVDVE9SSVpFRCIgInZl Y3QiIH0gfSAqLw0KPiA+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgIkxPT1AgVkVD VE9SSVpFRCIgInZlY3QiIHsgdGFyZ2V0IHsgISAiYXJtKi0qLQ0KPiA+ICoiIH0gfSB9IH0gKi8N Cj4gPg0KPiA+ICAjaW5jbHVkZSA8Y29tcGxleC5oPg0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3QvdmVjdC1lYXJseS1icmVha184OC5jDQo+ID4gYi9nY2Mv dGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtZWFybHktYnJlYWtfODguYw0KPiA+IGluZGV4DQo+ ID4NCj4gYjM5MmRkNDY1NTM5OTRkODEzNzYxZGE0MWM0Mjk4OWE3OWI5MDExOS4uNTllZDU3YzVm YjVmM2U4MTk3ZmMyMDANCj4gNTgNCj4gPiBlZWIwYTgxYTU1ODE1Y2MgMTAwNjQ0DQo+ID4gLS0t IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0LWVhcmx5LWJyZWFrXzg4LmMNCj4gPiAr KysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtZWFybHktYnJlYWtfODguYw0KPiA+ IEBAIC0zLDcgKzMsNyBAQA0KPiA+ICAvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCB2 ZWN0X2ludCB9ICovDQo+ID4NCj4gPiAgLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1PZmFz dCAtLXBhcmFtIHZlY3QtcGFydGlhbC12ZWN0b3ItdXNhZ2U9MiIgfSAqLw0KPiA+IC0vKiB7IGRn LWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgIkxPT1AgVkVDVE9SSVpFRCIgInZlY3QiIH0gfSAqLw0K PiA+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgIkxPT1AgVkVDVE9SSVpFRCIgInZl Y3QiIHsgdGFyZ2V0IHsgISAiYXJtKi0qLQ0KPiA+ICoiIH0gfSB9IH0gKi8NCj4gPg0KPiA+ICAj aW5jbHVkZSAidHJlZS12ZWN0LmgiDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2FybS92ZWN0LWVhcmx5LWJyZWFrLWNicmFuY2guYw0KPiA+IGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2FybS92ZWN0LWVhcmx5LWJyZWFrLWNicmFuY2guYw0KPiA+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXgNCj4gPg0KPiAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZTlhMzlkMjMxZmRmNGNiNTY1OTA5DQo+IDQ1ZQ0KPiA+ IDdjZWRmYWJkMTFkMzliNQ0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvYXJtL3ZlY3QtZWFybHktYnJlYWstY2JyYW5jaC5jDQo+ID4gQEAgLTAs MCArMSwxMzggQEANCj4gPiArLyogeyBkZy1kbyBjb21waWxlIH0gKi8NCj4gPiArLyogeyBkZy1y ZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgdmVjdF9lYXJseV9icmVhayB9ICovDQo+ID4gKy8qIHsg ZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV9uZW9uX29rIH0gKi8NCj4gPiArLyogeyBk Zy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgYXJtMzIgfSAqLw0KPiA+ICsvKiB7IGRnLW9wdGlv bnMgIi1PMyAtbWFyY2g9YXJtdjgtYStzaW1kIC1tZnB1PWF1dG8gLW1mbG9hdC1hYmk9aGFyZCAg LQ0KPiBmbm8tDQo+ID4gc2NoZWR1bGUtaW5zbnMgLWZuby1yZW9yZGVyLWJsb2NrcyAtZm5vLXNj aGVkdWxlLWluc25zMiIgfSAqLw0KPiA+ICsvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24t Ym9kaWVzICIqKiIgIiIgIiIgfSB9ICovDQo+ID4gKw0KPiA+ICsjZGVmaW5lIE4gNjQwDQo+ID4g K2ludCBhW05dID0gezB9Ow0KPiA+ICtpbnQgYltOXSA9IHswfTsNCj4gPiArDQo+ID4gKy8qDQo+ ID4gKyoqIGYxOg0KPiA+ICsqKgkuLi4NCj4gPiArKioJdmNndC5zMzIJcVswLTldKywgcVswLTld KywgIzANCj4gPiArKioJdnBtYXgudTMyCWRbMC05XSssIGRbMC05XSssIGRbMC05XSsNCj4gPiAr KioJdnBtYXgudTMyCWRbMC05XSssIGRbMC05XSssIGRbMC05XSsNCj4gPiArKioJdm1vdglyWzAt OV0rLCBzWzAtOV0rCUAgaW50DQo+ID4gKyoqCWNtcAlyWzAtOV0rLCAjMA0KPiA+ICsqKglibmUJ XC5MWzAtOV0rDQo+ID4gKyoqCS4uLg0KPiA+ICsqLw0KPiA+ICt2b2lkIGYxICgpDQo+ID4gK3sN Cj4gPiArICBmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKykNCj4gPiArICAgIHsNCj4gPiArICAg ICAgYltpXSArPSBhW2ldOw0KPiA+ICsgICAgICBpZiAoYVtpXSA+IDApDQo+ID4gKwlicmVhazsN Cj4gPiArICAgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoNCj4gPiArKiogZjI6DQo+ID4gKyoq CS4uLg0KPiA+ICsqKgl2Y2dlLnMzMglxWzAtOV0rLCBxWzAtOV0rLCAjMA0KPiA+ICsqKgl2cG1h eC51MzIJZFswLTldKywgZFswLTldKywgZFswLTldKw0KPiA+ICsqKgl2cG1heC51MzIJZFswLTld KywgZFswLTldKywgZFswLTldKw0KPiA+ICsqKgl2bW92CXJbMC05XSssIHNbMC05XSsJQCBpbnQN Cj4gPiArKioJY21wCXJbMC05XSssICMwDQo+ID4gKyoqCWJuZQlcLkxbMC05XSsNCj4gPiArKioJ Li4uDQo+ID4gKyovDQo+ID4gK3ZvaWQgZjIgKCkNCj4gPiArew0KPiA+ICsgIGZvciAoaW50IGkg PSAwOyBpIDwgTjsgaSsrKQ0KPiA+ICsgICAgew0KPiA+ICsgICAgICBiW2ldICs9IGFbaV07DQo+ ID4gKyAgICAgIGlmIChhW2ldID49IDApDQo+ID4gKwlicmVhazsNCj4gPiArICAgIH0NCj4gPiAr fQ0KPiA+ICsNCj4gPiArLyoNCj4gPiArKiogZjM6DQo+ID4gKyoqCS4uLg0KPiA+ICsqKgl2Y2Vx LmkzMglxWzAtOV0rLCBxWzAtOV0rLCAjMA0KPiA+ICsqKgl2cG1heC51MzIJZFswLTldKywgZFsw LTldKywgZFswLTldKw0KPiA+ICsqKgl2cG1heC51MzIJZFswLTldKywgZFswLTldKywgZFswLTld Kw0KPiA+ICsqKgl2bW92CXJbMC05XSssIHNbMC05XSsJQCBpbnQNCj4gPiArKioJY21wCXJbMC05 XSssICMwDQo+ID4gKyoqCWJuZQlcLkxbMC05XSsNCj4gPiArKioJLi4uDQo+ID4gKyovDQo+ID4g K3ZvaWQgZjMgKCkNCj4gPiArew0KPiA+ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgaSsrKQ0K PiA+ICsgICAgew0KPiA+ICsgICAgICBiW2ldICs9IGFbaV07DQo+ID4gKyAgICAgIGlmIChhW2ld ID09IDApDQo+ID4gKwlicmVhazsNCj4gPiArICAgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoN Cj4gPiArKiogZjQ6DQo+ID4gKyoqCS4uLg0KPiA+ICsqKgl2Y2VxLmkzMglxWzAtOV0rLCBxWzAt OV0rLCAjMA0KPiA+ICsqKgl2bXZuCXFbMC05XSssIHFbMC05XSsNCj4gPiArKioJdnBtYXgudTMy CWRbMC05XSssIGRbMC05XSssIGRbMC05XSsNCj4gPiArKioJdnBtYXgudTMyCWRbMC05XSssIGRb MC05XSssIGRbMC05XSsNCj4gPiArKioJdm1vdglyWzAtOV0rLCBzWzAtOV0rCUAgaW50DQo+ID4g KyoqCWNtcAlyWzAtOV0rLCAjMA0KPiA+ICsqKglibmUJXC5MWzAtOV0rDQo+ID4gKyoqCS4uLg0K PiA+ICsqLw0KPiA+ICt2b2lkIGY0ICgpDQo+ID4gK3sNCj4gPiArICBmb3IgKGludCBpID0gMDsg aSA8IE47IGkrKykNCj4gPiArICAgIHsNCj4gPiArICAgICAgYltpXSArPSBhW2ldOw0KPiA+ICsg ICAgICBpZiAoYVtpXSAhPSAwKQ0KPiA+ICsJYnJlYWs7DQo+ID4gKyAgICB9DQo+ID4gK30NCj4g PiArDQo+ID4gKy8qDQo+ID4gKyoqIGY1Og0KPiA+ICsqKgkuLi4NCj4gPiArKioJdmNsdC5zMzIJ cVswLTldKywgcVswLTldKywgIzANCj4gPiArKioJdnBtYXgudTMyCWRbMC05XSssIGRbMC05XSss IGRbMC05XSsNCj4gPiArKioJdnBtYXgudTMyCWRbMC05XSssIGRbMC05XSssIGRbMC05XSsNCj4g PiArKioJdm1vdglyWzAtOV0rLCBzWzAtOV0rCUAgaW50DQo+ID4gKyoqCWNtcAlyWzAtOV0rLCAj MA0KPiA+ICsqKglibmUJXC5MWzAtOV0rDQo+ID4gKyoqCS4uLg0KPiA+ICsqLw0KPiA+ICt2b2lk IGY1ICgpDQo+ID4gK3sNCj4gPiArICBmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKykNCj4gPiAr ICAgIHsNCj4gPiArICAgICAgYltpXSArPSBhW2ldOw0KPiA+ICsgICAgICBpZiAoYVtpXSA8IDAp DQo+ID4gKwlicmVhazsNCj4gPiArICAgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiArLyoNCj4gPiAr KiogZjY6DQo+ID4gKyoqCS4uLg0KPiA+ICsqKgl2Y2xlLnMzMglxWzAtOV0rLCBxWzAtOV0rLCAj MA0KPiA+ICsqKgl2cG1heC51MzIJZFswLTldKywgZFswLTldKywgZFswLTldKw0KPiA+ICsqKgl2 cG1heC51MzIJZFswLTldKywgZFswLTldKywgZFswLTldKw0KPiA+ICsqKgl2bW92CXJbMC05XSss IHNbMC05XSsJQCBpbnQNCj4gPiArKioJY21wCXJbMC05XSssICMwDQo+ID4gKyoqCWJuZQlcLkxb MC05XSsNCj4gPiArKioJLi4uDQo+ID4gKyovDQo+ID4gK3ZvaWQgZjYgKCkNCj4gPiArew0KPiA+ ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgaSsrKQ0KPiA+ICsgICAgew0KPiA+ICsgICAgICBi W2ldICs9IGFbaV07DQo+ID4gKyAgICAgIGlmIChhW2ldIDw9IDApDQo+ID4gKwlicmVhazsNCj4g PiArICAgIH0NCj4gPiArfQ0KPiA+ICsNCj4gPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9s aWIvdGFyZ2V0LXN1cHBvcnRzLmV4cCBiL2djYy90ZXN0c3VpdGUvbGliL3RhcmdldC0NCj4gPiBz dXBwb3J0cy5leHANCj4gPiBpbmRleA0KPiA+DQo+IDA1ZmM0MTc4NzdiY2Q2NTg5MzEwNjFiNzI0 NWViOGJhNWFiZDJlMDkuLjI0YTkzN2RiYjU5YjU3MjNhZjAzOGJkDQo+IDllDQo+ID4gMGI4OTM2 OTU5NWZjZjg3IDEwMDY0NA0KPiA+IC0tLSBhL2djYy90ZXN0c3VpdGUvbGliL3RhcmdldC1zdXBw b3J0cy5leHANCj4gPiArKysgYi9nY2MvdGVzdHN1aXRlL2xpYi90YXJnZXQtc3VwcG9ydHMuZXhw DQo+ID4gQEAgLTQwNTksNiArNDA1OSw3IEBAIHByb2MgY2hlY2tfZWZmZWN0aXZlX3RhcmdldF92 ZWN0X2Vhcmx5X2JyZWFrIHsgfSB7DQo+ID4gICAgICByZXR1cm4gW2NoZWNrX2NhY2hlZF9lZmZl Y3RpdmVfdGFyZ2V0X2luZGV4ZWQgdmVjdF9lYXJseV9icmVhayB7DQo+ID4gICAgICAgIGV4cHIg ew0KPiA+ICAJW2lzdGFyZ2V0IGFhcmNoNjQqLSotKl0NCj4gPiArCXx8IFtjaGVja19lZmZlY3Rp dmVfdGFyZ2V0X2FybV92OF9uZW9uX29rXQ0KPiA+ICAJfHwgW2NoZWNrX2VmZmVjdGl2ZV90YXJn ZXRfc3NlNF0NCj4gPiAgCX19XQ0KPiA+ICB9DQo+ID4gQEAgLTQwNzIsNiArNDA3Myw3IEBAIHBy b2MgY2hlY2tfZWZmZWN0aXZlX3RhcmdldF92ZWN0X2Vhcmx5X2JyZWFrX2h3IHsgfQ0KPiA+IHsN Cj4gPiAgICAgIHJldHVybiBbY2hlY2tfY2FjaGVkX2VmZmVjdGl2ZV90YXJnZXRfaW5kZXhlZCB2 ZWN0X2Vhcmx5X2JyZWFrX2h3IHsNCj4gPiAgICAgICAgZXhwciB7DQo+ID4gIAlbaXN0YXJnZXQg YWFyY2g2NCotKi0qXQ0KPiA+ICsJfHwgW2NoZWNrX2VmZmVjdGl2ZV90YXJnZXRfYXJtX3Y4X25l b25faHddDQo+ID4gIAl8fCBbY2hlY2tfc3NlNF9od19hdmFpbGFibGVdDQo+ID4gIAl9fV0NCj4g PiAgfQ0KPiA+IEBAIC00MDgxLDYgKzQwODMsMTEgQEAgcHJvYyBhZGRfb3B0aW9uc19mb3JfdmVj dF9lYXJseV9icmVhayB7IGZsYWdzIH0gew0KPiA+ICAJcmV0dXJuICIkZmxhZ3MiDQo+ID4gICAg ICB9DQo+ID4NCj4gPiArICAgIGlmIHsgW2NoZWNrX2VmZmVjdGl2ZV90YXJnZXRfYXJtX3Y4X25l b25fb2tdIH0gew0KPiA+ICsJZ2xvYmFsIGV0X2FybV92OF9uZW9uX2ZsYWdzDQo+ID4gKwlyZXR1 cm4gIiRmbGFncyAkZXRfYXJtX3Y4X25lb25fZmxhZ3MgLW1hcmNoPWFybXY4LWEiDQo+ID4gKyAg ICB9DQo+ID4gKw0KPiA+ICAgICAgaWYgeyBbY2hlY2tfZWZmZWN0aXZlX3RhcmdldF9zc2U0XSB9 IHsNCj4gPiAgCXJldHVybiAiJGZsYWdzIC1tc3NlNC4xIg0KPiA+ICAgICAgfQ0KDQo=