From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70050.outbound.protection.outlook.com [40.107.7.50]) by sourceware.org (Postfix) with ESMTPS id A28B6384B13C for ; Thu, 24 Sep 2020 10:26:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org A28B6384B13C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=Kyrylo.Tkachov@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=nv+EEgWVthFk7pvRhgDENk7L7OhDieeElp7keNcX/zI=; b=OMdHzaFPA+Pta9Wf0fenv2vYt7oilIOiM0YjIT9lr5t/XrkNuce2Lyv9lg+a1+d45IAyRs73m2f0gGydIh29sqQRPUsGA8GSa8rjW3wgc+aL6ROfqMc7Ueym/YAvfDyAGIIhk/8whU0XJPWSHcqWPKei6UefVEtPA/11vw8qgLg= Received: from AM6PR02CA0009.eurprd02.prod.outlook.com (2603:10a6:20b:6e::22) by DBAPR08MB5783.eurprd08.prod.outlook.com (2603:10a6:10:1a3::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3391.14; Thu, 24 Sep 2020 10:26:11 +0000 Received: from AM5EUR03FT033.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:6e:cafe::b2) by AM6PR02CA0009.outlook.office365.com (2603:10a6:20b:6e::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3412.20 via Frontend Transport; Thu, 24 Sep 2020 10:26:11 +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=bestguesspass 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 AM5EUR03FT033.mail.protection.outlook.com (10.152.16.99) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3412.21 via Frontend Transport; Thu, 24 Sep 2020 10:26:11 +0000 Received: ("Tessian outbound bac899b43a54:v64"); Thu, 24 Sep 2020 10:26:11 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 5ee3829bada8fd89 X-CR-MTA-TID: 64aa7808 Received: from ab84cd9b9694.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 6D061908-5C65-4BC7-8FF4-00E542FCDA27.1; Thu, 24 Sep 2020 10:25:54 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id ab84cd9b9694.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 24 Sep 2020 10:25:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=b8T0Qzc2KmvyVoZDvn9Dmo4bcWcMAVXo0zu4mGx2SUSczSHG7HD2f3rNjv7wgn+vs5YonZx6L5iPlepPygcu7KNW0OmiKVJnSRB5AtFVdLz9M+UjawJxp/CCgYlOTYBtGg7PmWfbi2UmbE7vLobwyEn1UmulVX1cocs04fzAvPKs7Xl/saQYY8CArXt+tZ8l00NU3LgVybWYAfgURV4IHS2GgDWIi18cVSWZuT428UFedtGE/hFoMT/9GJWzGm7swBqVul1JAsz/e6hW1da9lA8YRNP9ewEMRB9qH1b82v+dxc+efK/Vr+m/yUQZT25kEhxUY15O+IYrQTQDlv9c1A== 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=nv+EEgWVthFk7pvRhgDENk7L7OhDieeElp7keNcX/zI=; b=NMCLgkLfvPGlc3Iim+WdUxGwcUEWH4A4i2tn8kWIU6rwfMdVu4D5w7Q/z44s0BUPxRKn+Wj6nXoSN+L+QtVOGav5/rmZrtZBx65wct+Di++z2up5og38+pjtpjki3x91PaXVolvtcAMblIhNY61dayrFY5yenQME80TGduShAIoI6YOI57hjGbMsMYHvqgrYbrTQqLljwW/1zUeJ7iIv+EoMxLA87J5VtQxvy0A0UN0I7q9rug0E9YKSrxxK2xha03xQzMAdANukNifG2tL4gDXNVDTObF1wbIQNP9hf1ExTNbATWXQibD3/Valqnr7c88TRo85ramcCbZW3hDUh4A== 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=nv+EEgWVthFk7pvRhgDENk7L7OhDieeElp7keNcX/zI=; b=OMdHzaFPA+Pta9Wf0fenv2vYt7oilIOiM0YjIT9lr5t/XrkNuce2Lyv9lg+a1+d45IAyRs73m2f0gGydIh29sqQRPUsGA8GSa8rjW3wgc+aL6ROfqMc7Ueym/YAvfDyAGIIhk/8whU0XJPWSHcqWPKei6UefVEtPA/11vw8qgLg= Received: from DB7PR08MB3002.eurprd08.prod.outlook.com (2603:10a6:5:20::25) by DB8PR08MB4939.eurprd08.prod.outlook.com (2603:10a6:10:38::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3391.15; Thu, 24 Sep 2020 10:25:51 +0000 Received: from DB7PR08MB3002.eurprd08.prod.outlook.com ([fe80::9ce1:1ded:d7a5:af85]) by DB7PR08MB3002.eurprd08.prod.outlook.com ([fe80::9ce1:1ded:d7a5:af85%7]) with mapi id 15.20.3391.027; Thu, 24 Sep 2020 10:25:51 +0000 From: Kyrylo Tkachov To: "gcc-patches@gcc.gnu.org" Subject: [PATCH][GCC 8] AArch64: Update Armv8.4-a's FP16 FML intrinsics Thread-Topic: [PATCH][GCC 8] AArch64: Update Armv8.4-a's FP16 FML intrinsics Thread-Index: AdaSXK/ckG7f9s4MQHef9yDq/AX9Vw== Date: Thu, 24 Sep 2020 10:25:51 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ts-tracking-id: 1F7CF0A72334D242ADF0106ABBE68FD0.0 x-checkrecipientchecked: true Authentication-Results-Original: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; x-originating-ip: [80.5.218.175] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 13097400-c8f3-4d42-e2d4-08d860744263 x-ms-traffictypediagnostic: DB8PR08MB4939:|DBAPR08MB5783: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:2150;OLM:2150; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: zpqhsUPbhoFFYmUIvM2lKJU1CvCFJB0easBd+3XpFTFhjwHDV6BylyGHibeTGr6jDfj3qiJnzkBQB0GZkX47FcLrB6lopaGBsKplsH0TU5c/Z/lVPyKAiqm7ik+IIwv4V5H9JdvmRidvnL5D7Kj/05YhUTXpYF1ioTGN3+6YRUofk/ZocayViTZU8eTzWGAYG2YpyEOSwO2/xP5BMvCLWPEw0tjiQDyIjBYaFBo+GUuVUK4VSyIwUYW3pXpm7ILVJDNhByK7LWlWs0gr4hbZ8SkPBOUSCojKbnjvu4EwSgtUZBDQ35XmwGM61+J7q9Tk80gb1su0n2kwmJe8GdTD5g== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR08MB3002.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(39860400002)(366004)(136003)(376002)(346002)(83380400001)(478600001)(2906002)(8936002)(71200400001)(5660300002)(6916009)(55016002)(316002)(15650500001)(186003)(9686003)(66556008)(33656002)(66446008)(99936003)(6506007)(66616009)(7696005)(66476007)(64756008)(8676002)(26005)(66946007)(86362001)(76116006)(52536014); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: azjhD/qV/ypfboKc+mczlILZ2nIioiIWO9G/xu9NO/uOM7q+zaJb3nTm139VFicjL5bxLa/wSb5bO398DGqiOro5BhMoNyzLxdUrPOtLE/qh/AQbJk3kx1qQ6Ro8nijx5hZNNtlBl3pO/3Rek3Nv98ecRU7rF8wqjiKhpzdI5pEYBoPfRM+Yp6gBkxTT99/McB1c9oXvpzJ5YKCb83TWSt75U4O3CIz8Jqm9A7yLxQznSPQiK3MijlU068/kpdYrkl2UY1B/2Ef3MnpwakjZfHmb58Rx2o8uef1tRTm0gW2X20jhMMALyoxybQfcvYyYMFMg2kUaKExuhbh8eoS/VUN01IX889usPuUTMxnMASC41Yb+3VEQvCzPyfOtNcbrskR9Xu73DwukT4trl1A6yFwAtzI8EpLgqhc4UcIiHpW2t4/H4ZWXahXyWghHumPy4TSTg59Z0BGgeyCb59UNOfYL4xNRmKZxRf6dkGe5WuAWn2XGPCfbaZJKGPWKuymGSX0OSO68KlSPfJts8RMnf08dP1Ctmcy8ANtKhmEwoHUy0yh9Td5TzPvK/EmgNPxvtmdYm399lV7UYbTspPrrJS6wGF390mCX+U1FeOIRB2xIjX3IJGaXdYYhZBaZ2+ZMs3XPDOMww/DQYU7mDzZUYA== x-ms-exchange-transport-forked: True Content-Type: multipart/mixed; boundary="_002_DB7PR08MB300224BDE47863329C129E3693390DB7PR08MB3002eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB4939 Original-Authentication-Results: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT033.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 15bbc5c2-9b04-4350-d2c3-08d860743619 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VyFbM68Z3KQ1thNm9gI5NLyFjouOrENVmOB0lHR3Dy1qkfCGHhcgMjMJTgqmuPuxIla1Et5beQlN4t1fe8IonM9xvJ5abK+3ZjME85YGcuo3EbzXhswaE9SAxEK9t2JvXqCp7GfB32ibRkrtbE382fzB5coq0IVuHP3ygLOlQBT56a+3a93wg4xlcQbizRkWA+n1MeEYKytyFwT75rTGbx3u0Jvqzkk87RJ1VfKGBKth/oqhqW5T6cle5GRTxHsau2qzWpsLF23gBNqcaE+DPju/I6fY3pOIEz4MGkSkD+lYZPCSGkQ3o+FV41YTxnQYAYOZDJLemsY01Tmj7x8vbVolpL82jfPScEQp4Hdo3IsK6++XSoyxUbvIuL4lgulCYVAADolzNEO/lfunD1AGBhIBp44rzjozLsLqdordyiC4j6Lv/5AD+bfs8qGVN7WB 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)(136003)(346002)(39860400002)(396003)(376002)(46966005)(83380400001)(70586007)(52536014)(81166007)(82310400003)(186003)(47076004)(9686003)(6506007)(8676002)(5660300002)(15650500001)(70206006)(336012)(7696005)(26005)(86362001)(235185007)(36906005)(55016002)(82740400003)(356005)(316002)(8936002)(33656002)(6916009)(478600001)(99936003)(66616009)(2906002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Sep 2020 10:26:11.8450 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 13097400-c8f3-4d42-e2d4-08d860744263 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: AM5EUR03FT033.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR08MB5783 X-Spam-Status: No, score=-9.4 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: Thu, 24 Sep 2020 10:26:15 -0000 --_002_DB7PR08MB300224BDE47863329C129E3693390DB7PR08MB3002eurp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi all, I'd like to backport this fix from Tamar to the GCC 8 branch to avoid havin= g incorrectly-named intrinsics. Tested on aarch64-none-elf. Committing to the branch. This patch updates the Armv8.4-a FP16 FML intrinsics's suffixes from u32 to= f16 to be more consistent with the naming convention for intrinsics. The specifications for these intrinsics have not been published yet so we d= o not need to maintain the old names. The patch was created with the following script: grep -lIE "(vfml[as].+)_u32" -r gcc/ | grep -iEv ".+Changelog.*" \ | xargs sed -i -E -e "s/(vfml[as].+)_u32/\1_f16/g" gcc/ PR target/71233 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32, vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32, vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32, vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32, vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32, vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32, vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32): Rename ... (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16, vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16, vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16, vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16, vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16, vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16, vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16, vfmlslq_laneq_high_f16): ... To this. gcc/testsuite/ PR target/71233 * gcc.target/aarch64/fp16_fmul_high.h (test_vfmlal_high_u32, test_vfmlalq_high_u32, test_vfmlsl_high_u32, test_vfmlslq_high_u32): Rename ... (test_vfmlal_high_f16, test_vfmlalq_high_f16, test_vfmlsl_high_f16, test_vfmlslq_high_f16): ... To this. * gcc.target/aarch64/fp16_fmul_lane_high.h (test_vfmlal_lane_high_u32, tets_vfmlsl_lane_high_u32, test_vfmlal_laneq_high_u32, test_vfmlsl_laneq_high_u32, test_vfmlalq_lane_high_u32, test_vfmlslq_lane_high_u32, test_vfmlalq_laneq_high_u32, test_vfmlslq_laneq_high_u32): Rename ... (test_vfmlal_lane_high_f16, tets_vfmlsl_lane_high_f16, test_vfmlal_laneq_high_f16, test_vfmlsl_laneq_high_f16, test_vfmlalq_lane_high_f16, test_vfmlslq_lane_high_f16, test_vfmlalq_laneq_high_f16, test_vfmlslq_laneq_high_f16): ... To this. * gcc.target/aarch64/fp16_fmul_lane_low.h (test_vfmlal_lane_low_u32, test_vfmlsl_lane_low_u32, test_vfmlal_laneq_low_u32, test_vfmlsl_laneq_low_u32, test_vfmlalq_lane_low_u32, test_vfmlslq_lane_low_u32, test_vfmlalq_laneq_low_u32, test_vfmlslq_laneq_low_u32): Rename ... (test_vfmlal_lane_low_f16, test_vfmlsl_lane_low_f16, test_vfmlal_laneq_low_f16, test_vfmlsl_laneq_low_f16, test_vfmlalq_lane_low_f16, test_vfmlslq_lane_low_f16, test_vfmlalq_laneq_low_f16, test_vfmlslq_laneq_low_f16): ... To this. * gcc.target/aarch64/fp16_fmul_low.h (test_vfmlal_low_u32, test_vfmlalq_low_u32, test_vfmlsl_low_u32, test_vfmlslq_low_u32): Rename ... (test_vfmlal_low_f16, test_vfmlalq_low_f16, test_vfmlsl_low_f16, test_vfmlslq_low_f16): ... To This. * lib/target-supports.exp (check_effective_target_arm_fp16fml_neon_ok_nocache): Update test. (cherry picked from commit 9d04c986b6faed878dbcc86d2f9392a721a3936e) --_002_DB7PR08MB300224BDE47863329C129E3693390DB7PR08MB3002eurp_ Content-Type: application/octet-stream; name="fmla-rename.patch" Content-Description: fmla-rename.patch Content-Disposition: attachment; filename="fmla-rename.patch"; size=18319; creation-date="Thu, 24 Sep 2020 10:23:03 GMT"; modification-date="Thu, 24 Sep 2020 10:13:07 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hcm1fbmVvbi5oIGIvZ2NjL2NvbmZpZy9h YXJjaDY0L2FybV9uZW9uLmgKaW5kZXggODkzMmE3YjBlNjdkMmY1Y2VkMjIxMTM4ZDQyMzQwZWQ5 MjFmZDFkMy4uZTM0ZGVlYzcyOWM0OTIxOTQzNzFkNTRiYmNiNzQ0NjJmZWYyNjg1MiAxMDA2NDQK LS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FybV9uZW9uLmgKKysrIGIvZ2NjL2NvbmZpZy9hYXJj aDY0L2FybV9uZW9uLmgKQEAgLTMzODEwLDYzICszMzgxMCw2MyBAQCB2YmNheHFfczY0IChpbnQ2 NHgyX3QgX19hLCBpbnQ2NHgyX3QgX19iLCBpbnQ2NHgyX3QgX19jKQogCiBfX2V4dGVuc2lvbl9f IGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotdmZtbGFsX2xvd191MzIg KGZsb2F0MzJ4Ml90IF9fciwgZmxvYXQxNng0X3QgX19hLCBmbG9hdDE2eDRfdCBfX2IpCit2Zm1s YWxfbG93X2YxNiAoZmxvYXQzMngyX3QgX19yLCBmbG9hdDE2eDRfdCBfX2EsIGZsb2F0MTZ4NF90 IF9fYikKIHsKICAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZtbGFsX2xvd3Yyc2YgKF9fciwg X19hLCBfX2IpOwogfQogCiBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJf dAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19h cnRpZmljaWFsX18pKQotdmZtbHNsX2xvd191MzIgKGZsb2F0MzJ4Ml90IF9fciwgZmxvYXQxNng0 X3QgX19hLCBmbG9hdDE2eDRfdCBfX2IpCit2Zm1sc2xfbG93X2YxNiAoZmxvYXQzMngyX3QgX19y LCBmbG9hdDE2eDRfdCBfX2EsIGZsb2F0MTZ4NF90IF9fYikKIHsKICAgcmV0dXJuIF9fYnVpbHRp bl9hYXJjaDY0X2ZtbHNsX2xvd3Yyc2YgKF9fciwgX19hLCBfX2IpOwogfQogCiBfX2V4dGVuc2lv bl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlz X2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotdmZtbGFscV9sb3df dTMyIChmbG9hdDMyeDRfdCBfX3IsIGZsb2F0MTZ4OF90IF9fYSwgZmxvYXQxNng4X3QgX19iKQor dmZtbGFscV9sb3dfZjE2IChmbG9hdDMyeDRfdCBfX3IsIGZsb2F0MTZ4OF90IF9fYSwgZmxvYXQx Nng4X3QgX19iKQogewogICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZm1sYWxxX2xvd3Y0c2Yg KF9fciwgX19hLCBfX2IpOwogfQogCiBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9h dDMyeDRfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf XywgX19hcnRpZmljaWFsX18pKQotdmZtbHNscV9sb3dfdTMyIChmbG9hdDMyeDRfdCBfX3IsIGZs b2F0MTZ4OF90IF9fYSwgZmxvYXQxNng4X3QgX19iKQordmZtbHNscV9sb3dfZjE2IChmbG9hdDMy eDRfdCBfX3IsIGZsb2F0MTZ4OF90IF9fYSwgZmxvYXQxNng4X3QgX19iKQogewogICByZXR1cm4g X19idWlsdGluX2FhcmNoNjRfZm1sc2xxX2xvd3Y0c2YgKF9fciwgX19hLCBfX2IpOwogfQogCiBf X2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDJfdAogX19hdHRyaWJ1dGVfXyAo KF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotdmZt bGFsX2hpZ2hfdTMyIChmbG9hdDMyeDJfdCBfX3IsIGZsb2F0MTZ4NF90IF9fYSwgZmxvYXQxNng0 X3QgX19iKQordmZtbGFsX2hpZ2hfZjE2IChmbG9hdDMyeDJfdCBfX3IsIGZsb2F0MTZ4NF90IF9f YSwgZmxvYXQxNng0X3QgX19iKQogewogICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZm1sYWxf aGlnaHYyc2YgKF9fciwgX19hLCBfX2IpOwogfQogCiBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lu bGluZSBmbG9hdDMyeDJfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2du dV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotdmZtbHNsX2hpZ2hfdTMyIChmbG9hdDMyeDJf dCBfX3IsIGZsb2F0MTZ4NF90IF9fYSwgZmxvYXQxNng0X3QgX19iKQordmZtbHNsX2hpZ2hfZjE2 IChmbG9hdDMyeDJfdCBfX3IsIGZsb2F0MTZ4NF90IF9fYSwgZmxvYXQxNng0X3QgX19iKQogewog ICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZm1sc2xfaGlnaHYyc2YgKF9fciwgX19hLCBfX2Ip OwogfQogCiBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdAogX19hdHRy aWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFs X18pKQotdmZtbGFscV9oaWdoX3UzMiAoZmxvYXQzMng0X3QgX19yLCBmbG9hdDE2eDhfdCBfX2Es IGZsb2F0MTZ4OF90IF9fYikKK3ZmbWxhbHFfaGlnaF9mMTYgKGZsb2F0MzJ4NF90IF9fciwgZmxv YXQxNng4X3QgX19hLCBmbG9hdDE2eDhfdCBfX2IpCiB7CiAgIHJldHVybiBfX2J1aWx0aW5fYWFy Y2g2NF9mbWxhbHFfaGlnaHY0c2YgKF9fciwgX19hLCBfX2IpOwogfQogCiBfX2V4dGVuc2lvbl9f IGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lu bGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotdmZtbHNscV9oaWdoX3Uz MiAoZmxvYXQzMng0X3QgX19yLCBmbG9hdDE2eDhfdCBfX2EsIGZsb2F0MTZ4OF90IF9fYikKK3Zm bWxzbHFfaGlnaF9mMTYgKGZsb2F0MzJ4NF90IF9fciwgZmxvYXQxNng4X3QgX19hLCBmbG9hdDE2 eDhfdCBfX2IpCiB7CiAgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mbWxzbHFfaGlnaHY0c2Yg KF9fciwgX19hLCBfX2IpOwogfQogCiBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9h dDMyeDJfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf XywgX19hcnRpZmljaWFsX18pKQotdmZtbGFsX2xhbmVfbG93X3UzMiAoZmxvYXQzMngyX3QgX19y LCBmbG9hdDE2eDRfdCBfX2EsIGZsb2F0MTZ4NF90IF9fYiwKK3ZmbWxhbF9sYW5lX2xvd19mMTYg KGZsb2F0MzJ4Ml90IF9fciwgZmxvYXQxNng0X3QgX19hLCBmbG9hdDE2eDRfdCBfX2IsCiAJCSAg ICAgY29uc3QgaW50IF9fbGFuZSkKIHsKICAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZtbGFs X2xhbmVfbG93djJzZiAoX19yLCBfX2EsIF9fYiwgX19sYW5lKTsKQEAgLTMzODc0LDcgKzMzODc0 LDcgQEAgdmZtbGFsX2xhbmVfbG93X3UzMiAoZmxvYXQzMngyX3QgX19yLCBmbG9hdDE2eDRfdCBf X2EsIGZsb2F0MTZ4NF90IF9fYiwKIAogX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxv YXQzMngyX3QKIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5l X18sIF9fYXJ0aWZpY2lhbF9fKSkKLXZmbWxzbF9sYW5lX2xvd191MzIgKGZsb2F0MzJ4Ml90IF9f ciwgZmxvYXQxNng0X3QgX19hLCBmbG9hdDE2eDRfdCBfX2IsCit2Zm1sc2xfbGFuZV9sb3dfZjE2 IChmbG9hdDMyeDJfdCBfX3IsIGZsb2F0MTZ4NF90IF9fYSwgZmxvYXQxNng0X3QgX19iLAogCQkg ICAgIGNvbnN0IGludCBfX2xhbmUpCiB7CiAgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mbWxz bF9sYW5lX2xvd3Yyc2YgKF9fciwgX19hLCBfX2IsIF9fbGFuZSk7CkBAIC0zMzg4Miw3ICszMzg4 Miw3IEBAIHZmbWxzbF9sYW5lX2xvd191MzIgKGZsb2F0MzJ4Ml90IF9fciwgZmxvYXQxNng0X3Qg X19hLCBmbG9hdDE2eDRfdCBfX2IsCiAKIF9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZs b2F0MzJ4Ml90CiBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGlu ZV9fLCBfX2FydGlmaWNpYWxfXykpCi12Zm1sYWxfbGFuZXFfbG93X3UzMiAoZmxvYXQzMngyX3Qg X19yLCBmbG9hdDE2eDRfdCBfX2EsIGZsb2F0MTZ4OF90IF9fYiwKK3ZmbWxhbF9sYW5lcV9sb3df ZjE2IChmbG9hdDMyeDJfdCBfX3IsIGZsb2F0MTZ4NF90IF9fYSwgZmxvYXQxNng4X3QgX19iLAog CQkgICAgICBjb25zdCBpbnQgX19sYW5lKQogewogICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf Zm1sYWxfbGFuZXFfbG93djJzZiAoX19yLCBfX2EsIF9fYiwgX19sYW5lKTsKQEAgLTMzODkwLDcg KzMzODkwLDcgQEAgdmZtbGFsX2xhbmVxX2xvd191MzIgKGZsb2F0MzJ4Ml90IF9fciwgZmxvYXQx Nng0X3QgX19hLCBmbG9hdDE2eDhfdCBfX2IsCiAKIF9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5s aW5lIGZsb2F0MzJ4Ml90CiBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251 X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi12Zm1sc2xfbGFuZXFfbG93X3UzMiAoZmxvYXQz MngyX3QgX19yLCBmbG9hdDE2eDRfdCBfX2EsIGZsb2F0MTZ4OF90IF9fYiwKK3ZmbWxzbF9sYW5l cV9sb3dfZjE2IChmbG9hdDMyeDJfdCBfX3IsIGZsb2F0MTZ4NF90IF9fYSwgZmxvYXQxNng4X3Qg X19iLAogCQkgICAgICBjb25zdCBpbnQgX19sYW5lKQogewogICByZXR1cm4gX19idWlsdGluX2Fh cmNoNjRfZm1sc2xfbGFuZXFfbG93djJzZiAoX19yLCBfX2EsIF9fYiwgX19sYW5lKTsKQEAgLTMz ODk4LDcgKzMzODk4LDcgQEAgdmZtbHNsX2xhbmVxX2xvd191MzIgKGZsb2F0MzJ4Ml90IF9fciwg ZmxvYXQxNng0X3QgX19hLCBmbG9hdDE2eDhfdCBfX2IsCiAKIF9fZXh0ZW5zaW9uX18gZXh0ZXJu IF9faW5saW5lIGZsb2F0MzJ4NF90CiBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18s IF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi12Zm1sYWxxX2xhbmVfbG93X3UzMiAo ZmxvYXQzMng0X3QgX19yLCBmbG9hdDE2eDhfdCBfX2EsIGZsb2F0MTZ4NF90IF9fYiwKK3ZmbWxh bHFfbGFuZV9sb3dfZjE2IChmbG9hdDMyeDRfdCBfX3IsIGZsb2F0MTZ4OF90IF9fYSwgZmxvYXQx Nng0X3QgX19iLAogCQkgICAgICBjb25zdCBpbnQgX19sYW5lKQogewogICByZXR1cm4gX19idWls dGluX2FhcmNoNjRfZm1sYWxxX2xhbmVfbG93djRzZiAoX19yLCBfX2EsIF9fYiwgX19sYW5lKTsK QEAgLTMzOTA2LDcgKzMzOTA2LDcgQEAgdmZtbGFscV9sYW5lX2xvd191MzIgKGZsb2F0MzJ4NF90 IF9fciwgZmxvYXQxNng4X3QgX19hLCBmbG9hdDE2eDRfdCBfX2IsCiAKIF9fZXh0ZW5zaW9uX18g ZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4NF90CiBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi12Zm1sc2xxX2xhbmVfbG93 X3UzMiAoZmxvYXQzMng0X3QgX19yLCBmbG9hdDE2eDhfdCBfX2EsIGZsb2F0MTZ4NF90IF9fYiwK K3ZmbWxzbHFfbGFuZV9sb3dfZjE2IChmbG9hdDMyeDRfdCBfX3IsIGZsb2F0MTZ4OF90IF9fYSwg ZmxvYXQxNng0X3QgX19iLAogCQkgICAgICBjb25zdCBpbnQgX19sYW5lKQogewogICByZXR1cm4g X19idWlsdGluX2FhcmNoNjRfZm1sc2xxX2xhbmVfbG93djRzZiAoX19yLCBfX2EsIF9fYiwgX19s YW5lKTsKQEAgLTMzOTE0LDcgKzMzOTE0LDcgQEAgdmZtbHNscV9sYW5lX2xvd191MzIgKGZsb2F0 MzJ4NF90IF9fciwgZmxvYXQxNng4X3QgX19hLCBmbG9hdDE2eDRfdCBfX2IsCiAKIF9fZXh0ZW5z aW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4NF90CiBfX2F0dHJpYnV0ZV9fICgoX19hbHdh eXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi12Zm1sYWxxX2xh bmVxX2xvd191MzIgKGZsb2F0MzJ4NF90IF9fciwgZmxvYXQxNng4X3QgX19hLCBmbG9hdDE2eDhf dCBfX2IsCit2Zm1sYWxxX2xhbmVxX2xvd19mMTYgKGZsb2F0MzJ4NF90IF9fciwgZmxvYXQxNng4 X3QgX19hLCBmbG9hdDE2eDhfdCBfX2IsCiAJCSAgICAgICBjb25zdCBpbnQgX19sYW5lKQogewog ICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZm1sYWxxX2xhbmVxX2xvd3Y0c2YgKF9fciwgX19h LCBfX2IsIF9fbGFuZSk7CkBAIC0zMzkyMiw3ICszMzkyMiw3IEBAIHZmbWxhbHFfbGFuZXFfbG93 X3UzMiAoZmxvYXQzMng0X3QgX19yLCBmbG9hdDE2eDhfdCBfX2EsIGZsb2F0MTZ4OF90IF9fYiwK IAogX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QKIF9fYXR0cmlidXRl X18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkK LXZmbWxzbHFfbGFuZXFfbG93X3UzMiAoZmxvYXQzMng0X3QgX19yLCBmbG9hdDE2eDhfdCBfX2Es IGZsb2F0MTZ4OF90IF9fYiwKK3ZmbWxzbHFfbGFuZXFfbG93X2YxNiAoZmxvYXQzMng0X3QgX19y LCBmbG9hdDE2eDhfdCBfX2EsIGZsb2F0MTZ4OF90IF9fYiwKIAkJICAgICAgY29uc3QgaW50IF9f bGFuZSkKIHsKICAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZtbHNscV9sYW5lcV9sb3d2NHNm IChfX3IsIF9fYSwgX19iLCBfX2xhbmUpOwpAQCAtMzM5MzAsNyArMzM5MzAsNyBAQCB2Zm1sc2xx X2xhbmVxX2xvd191MzIgKGZsb2F0MzJ4NF90IF9fciwgZmxvYXQxNng4X3QgX19hLCBmbG9hdDE2 eDhfdCBfX2IsCiAKIF9fZXh0ZW5zaW9uX18gZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4Ml90CiBf X2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5saW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlm aWNpYWxfXykpCi12Zm1sYWxfbGFuZV9oaWdoX3UzMiAoZmxvYXQzMngyX3QgX19yLCBmbG9hdDE2 eDRfdCBfX2EsIGZsb2F0MTZ4NF90IF9fYiwKK3ZmbWxhbF9sYW5lX2hpZ2hfZjE2IChmbG9hdDMy eDJfdCBfX3IsIGZsb2F0MTZ4NF90IF9fYSwgZmxvYXQxNng0X3QgX19iLAogCQkgICAgIGNvbnN0 IGludCBfX2xhbmUpCiB7CiAgIHJldHVybiBfX2J1aWx0aW5fYWFyY2g2NF9mbWxhbF9sYW5lX2hp Z2h2MnNmIChfX3IsIF9fYSwgX19iLCBfX2xhbmUpOwpAQCAtMzM5MzgsNyArMzM5MzgsNyBAQCB2 Zm1sYWxfbGFuZV9oaWdoX3UzMiAoZmxvYXQzMngyX3QgX19yLCBmbG9hdDE2eDRfdCBfX2EsIGZs b2F0MTZ4NF90IF9fYiwKIAogX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMngy X3QKIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9f YXJ0aWZpY2lhbF9fKSkKLXZmbWxzbF9sYW5lX2hpZ2hfdTMyIChmbG9hdDMyeDJfdCBfX3IsIGZs b2F0MTZ4NF90IF9fYSwgZmxvYXQxNng0X3QgX19iLAordmZtbHNsX2xhbmVfaGlnaF9mMTYgKGZs b2F0MzJ4Ml90IF9fciwgZmxvYXQxNng0X3QgX19hLCBmbG9hdDE2eDRfdCBfX2IsCiAJCSAgICAg Y29uc3QgaW50IF9fbGFuZSkKIHsKICAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZtbHNsX2xh bmVfaGlnaHYyc2YgKF9fciwgX19hLCBfX2IsIF9fbGFuZSk7CkBAIC0zMzk0Niw3ICszMzk0Niw3 IEBAIHZmbWxzbF9sYW5lX2hpZ2hfdTMyIChmbG9hdDMyeDJfdCBfX3IsIGZsb2F0MTZ4NF90IF9f YSwgZmxvYXQxNng0X3QgX19iLAogCiBfX2V4dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9h dDMyeDJfdAogX19hdHRyaWJ1dGVfXyAoKF9fYWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVf XywgX19hcnRpZmljaWFsX18pKQotdmZtbGFsX2xhbmVxX2hpZ2hfdTMyIChmbG9hdDMyeDJfdCBf X3IsIGZsb2F0MTZ4NF90IF9fYSwgZmxvYXQxNng4X3QgX19iLAordmZtbGFsX2xhbmVxX2hpZ2hf ZjE2IChmbG9hdDMyeDJfdCBfX3IsIGZsb2F0MTZ4NF90IF9fYSwgZmxvYXQxNng4X3QgX19iLAog CQkgICAgICBjb25zdCBpbnQgX19sYW5lKQogewogICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf Zm1sYWxfbGFuZXFfaGlnaHYyc2YgKF9fciwgX19hLCBfX2IsIF9fbGFuZSk7CkBAIC0zMzk1NCw3 ICszMzk1NCw3IEBAIHZmbWxhbF9sYW5lcV9oaWdoX3UzMiAoZmxvYXQzMngyX3QgX19yLCBmbG9h dDE2eDRfdCBfX2EsIGZsb2F0MTZ4OF90IF9fYiwKIAogX19leHRlbnNpb25fXyBleHRlcm4gX19p bmxpbmUgZmxvYXQzMngyX3QKIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19n bnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKLXZmbWxzbF9sYW5lcV9oaWdoX3UzMiAoZmxv YXQzMngyX3QgX19yLCBmbG9hdDE2eDRfdCBfX2EsIGZsb2F0MTZ4OF90IF9fYiwKK3ZmbWxzbF9s YW5lcV9oaWdoX2YxNiAoZmxvYXQzMngyX3QgX19yLCBmbG9hdDE2eDRfdCBfX2EsIGZsb2F0MTZ4 OF90IF9fYiwKIAkJICAgICAgY29uc3QgaW50IF9fbGFuZSkKIHsKICAgcmV0dXJuIF9fYnVpbHRp bl9hYXJjaDY0X2ZtbHNsX2xhbmVxX2hpZ2h2MnNmIChfX3IsIF9fYSwgX19iLCBfX2xhbmUpOwpA QCAtMzM5NjIsNyArMzM5NjIsNyBAQCB2Zm1sc2xfbGFuZXFfaGlnaF91MzIgKGZsb2F0MzJ4Ml90 IF9fciwgZmxvYXQxNng0X3QgX19hLCBmbG9hdDE2eDhfdCBfX2IsCiAKIF9fZXh0ZW5zaW9uX18g ZXh0ZXJuIF9faW5saW5lIGZsb2F0MzJ4NF90CiBfX2F0dHJpYnV0ZV9fICgoX19hbHdheXNfaW5s aW5lX18sIF9fZ251X2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCi12Zm1sYWxxX2xhbmVfaGln aF91MzIgKGZsb2F0MzJ4NF90IF9fciwgZmxvYXQxNng4X3QgX19hLCBmbG9hdDE2eDRfdCBfX2Is Cit2Zm1sYWxxX2xhbmVfaGlnaF9mMTYgKGZsb2F0MzJ4NF90IF9fciwgZmxvYXQxNng4X3QgX19h LCBmbG9hdDE2eDRfdCBfX2IsCiAJCSAgICAgIGNvbnN0IGludCBfX2xhbmUpCiB7CiAgIHJldHVy biBfX2J1aWx0aW5fYWFyY2g2NF9mbWxhbHFfbGFuZV9oaWdodjRzZiAoX19yLCBfX2EsIF9fYiwg X19sYW5lKTsKQEAgLTMzOTcwLDcgKzMzOTcwLDcgQEAgdmZtbGFscV9sYW5lX2hpZ2hfdTMyIChm bG9hdDMyeDRfdCBfX3IsIGZsb2F0MTZ4OF90IF9fYSwgZmxvYXQxNng0X3QgX19iLAogCiBfX2V4 dGVuc2lvbl9fIGV4dGVybiBfX2lubGluZSBmbG9hdDMyeDRfdAogX19hdHRyaWJ1dGVfXyAoKF9f YWx3YXlzX2lubGluZV9fLCBfX2dudV9pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQotdmZtbHNs cV9sYW5lX2hpZ2hfdTMyIChmbG9hdDMyeDRfdCBfX3IsIGZsb2F0MTZ4OF90IF9fYSwgZmxvYXQx Nng0X3QgX19iLAordmZtbHNscV9sYW5lX2hpZ2hfZjE2IChmbG9hdDMyeDRfdCBfX3IsIGZsb2F0 MTZ4OF90IF9fYSwgZmxvYXQxNng0X3QgX19iLAogCQkgICAgICBjb25zdCBpbnQgX19sYW5lKQog ewogICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRfZm1sc2xxX2xhbmVfaGlnaHY0c2YgKF9fciwg X19hLCBfX2IsIF9fbGFuZSk7CkBAIC0zMzk3OCw3ICszMzk3OCw3IEBAIHZmbWxzbHFfbGFuZV9o aWdoX3UzMiAoZmxvYXQzMng0X3QgX19yLCBmbG9hdDE2eDhfdCBfX2EsIGZsb2F0MTZ4NF90IF9f YiwKIAogX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQzMng0X3QKIF9fYXR0cmli dXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9f KSkKLXZmbWxhbHFfbGFuZXFfaGlnaF91MzIgKGZsb2F0MzJ4NF90IF9fciwgZmxvYXQxNng4X3Qg X19hLCBmbG9hdDE2eDhfdCBfX2IsCit2Zm1sYWxxX2xhbmVxX2hpZ2hfZjE2IChmbG9hdDMyeDRf dCBfX3IsIGZsb2F0MTZ4OF90IF9fYSwgZmxvYXQxNng4X3QgX19iLAogCQkgICAgICAgY29uc3Qg aW50IF9fbGFuZSkKIHsKICAgcmV0dXJuIF9fYnVpbHRpbl9hYXJjaDY0X2ZtbGFscV9sYW5lcV9o aWdodjRzZiAoX19yLCBfX2EsIF9fYiwgX19sYW5lKTsKQEAgLTMzOTg2LDcgKzMzOTg2LDcgQEAg dmZtbGFscV9sYW5lcV9oaWdoX3UzMiAoZmxvYXQzMng0X3QgX19yLCBmbG9hdDE2eDhfdCBfX2Es IGZsb2F0MTZ4OF90IF9fYiwKIAogX19leHRlbnNpb25fXyBleHRlcm4gX19pbmxpbmUgZmxvYXQz Mng0X3QKIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXywgX19nbnVfaW5saW5lX18s IF9fYXJ0aWZpY2lhbF9fKSkKLXZmbWxzbHFfbGFuZXFfaGlnaF91MzIgKGZsb2F0MzJ4NF90IF9f ciwgZmxvYXQxNng4X3QgX19hLCBmbG9hdDE2eDhfdCBfX2IsCit2Zm1sc2xxX2xhbmVxX2hpZ2hf ZjE2IChmbG9hdDMyeDRfdCBfX3IsIGZsb2F0MTZ4OF90IF9fYSwgZmxvYXQxNng4X3QgX19iLAog CQkgICAgICBjb25zdCBpbnQgX19sYW5lKQogewogICByZXR1cm4gX19idWlsdGluX2FhcmNoNjRf Zm1sc2xxX2xhbmVxX2hpZ2h2NHNmIChfX3IsIF9fYSwgX19iLCBfX2xhbmUpOwpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvZnAxNl9mbXVsX2hpZ2guaCBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2ZwMTZfZm11bF9oaWdoLmgKaW5kZXggOWM4 NmJkMTkxNTNjYzA4ODhmN2IyOGYzNmQxNDFiOWZlMDhmNTM1ZS4uZGVmODUwMzhhNzIwODcyNWVj YjFkYjA4ODhhMWNjNjUxYWFhNDkzNCAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2FhcmNoNjQvZnAxNl9mbXVsX2hpZ2guaAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvYWFyY2g2NC9mcDE2X2ZtdWxfaGlnaC5oCkBAIC0xLDI1ICsxLDI1IEBACiAjaW5jbHVkZSAi YXJtX25lb24uaCIKIAogZmxvYXQzMngyX3QKLXRlc3RfdmZtbGFsX2hpZ2hfdTMyIChmbG9hdDMy eDJfdCByLCBmbG9hdDE2eDRfdCBhLCBmbG9hdDE2eDRfdCBiKQordGVzdF92Zm1sYWxfaGlnaF9m MTYgKGZsb2F0MzJ4Ml90IHIsIGZsb2F0MTZ4NF90IGEsIGZsb2F0MTZ4NF90IGIpCiB7Ci0gIHJl dHVybiB2Zm1sYWxfaGlnaF91MzIgKHIsIGEsIGIpOworICByZXR1cm4gdmZtbGFsX2hpZ2hfZjE2 IChyLCBhLCBiKTsKIH0KIAogZmxvYXQzMng0X3QKLXRlc3RfdmZtbGFscV9oaWdoX3UzMiAoZmxv YXQzMng0X3QgciwgZmxvYXQxNng4X3QgYSwgZmxvYXQxNng4X3QgYikKK3Rlc3RfdmZtbGFscV9o aWdoX2YxNiAoZmxvYXQzMng0X3QgciwgZmxvYXQxNng4X3QgYSwgZmxvYXQxNng4X3QgYikKIHsK LSAgcmV0dXJuIHZmbWxhbHFfaGlnaF91MzIgKHIsIGEsIGIpOworICByZXR1cm4gdmZtbGFscV9o aWdoX2YxNiAociwgYSwgYik7CiB9CiAKIGZsb2F0MzJ4Ml90Ci10ZXN0X3ZmbWxzbF9oaWdoX3Uz MiAoZmxvYXQzMngyX3QgciwgZmxvYXQxNng0X3QgYSwgZmxvYXQxNng0X3QgYikKK3Rlc3RfdmZt bHNsX2hpZ2hfZjE2IChmbG9hdDMyeDJfdCByLCBmbG9hdDE2eDRfdCBhLCBmbG9hdDE2eDRfdCBi KQogewotICByZXR1cm4gdmZtbHNsX2hpZ2hfdTMyIChyLCBhLCBiKTsKKyAgcmV0dXJuIHZmbWxz bF9oaWdoX2YxNiAociwgYSwgYik7CiB9CiAKIGZsb2F0MzJ4NF90Ci10ZXN0X3ZmbWxzbHFfaGln aF91MzIgKGZsb2F0MzJ4NF90IHIsIGZsb2F0MTZ4OF90IGEsIGZsb2F0MTZ4OF90IGIpCit0ZXN0 X3ZmbWxzbHFfaGlnaF9mMTYgKGZsb2F0MzJ4NF90IHIsIGZsb2F0MTZ4OF90IGEsIGZsb2F0MTZ4 OF90IGIpCiB7Ci0gIHJldHVybiB2Zm1sc2xxX2hpZ2hfdTMyIChyLCBhLCBiKTsKKyAgcmV0dXJu IHZmbWxzbHFfaGlnaF9mMTYgKHIsIGEsIGIpOwogfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2FhcmNoNjQvZnAxNl9mbXVsX2xhbmVfaGlnaC5oIGIvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2FhcmNoNjQvZnAxNl9mbXVsX2xhbmVfaGlnaC5oCmluZGV4IDEwMzkzNDc4 NjVlMGJjNzlkZmUzNTFmZDUyZjM2OTY0ZTdjNDExODguLmEwYjk1ZjhiODFlNDc5OWE2MDc1YjBm MGZjYTY4MzRmNzNkZTBkYzggMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9h YXJjaDY0L2ZwMTZfZm11bF9sYW5lX2hpZ2guaAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvYWFyY2g2NC9mcDE2X2ZtdWxfbGFuZV9oaWdoLmgKQEAgLTEsNDkgKzEsNDkgQEAKICNpbmNs dWRlICJhcm1fbmVvbi5oIgogCiBmbG9hdDMyeDJfdAotdGVzdF92Zm1sYWxfbGFuZV9oaWdoX3Uz MiAoZmxvYXQzMngyX3QgciwgZmxvYXQxNng0X3QgYSwgZmxvYXQxNng0X3QgYikKK3Rlc3RfdmZt bGFsX2xhbmVfaGlnaF9mMTYgKGZsb2F0MzJ4Ml90IHIsIGZsb2F0MTZ4NF90IGEsIGZsb2F0MTZ4 NF90IGIpCiB7Ci0gIHJldHVybiB2Zm1sYWxfbGFuZV9oaWdoX3UzMiAociwgYSwgYiwgMCk7Cisg IHJldHVybiB2Zm1sYWxfbGFuZV9oaWdoX2YxNiAociwgYSwgYiwgMCk7CiB9CiAKIGZsb2F0MzJ4 Ml90Ci10ZXRzX3ZmbWxzbF9sYW5lX2hpZ2hfdTMyICAoZmxvYXQzMngyX3QgciwgZmxvYXQxNng0 X3QgYSwgZmxvYXQxNng0X3QgYikKK3RldHNfdmZtbHNsX2xhbmVfaGlnaF9mMTYgIChmbG9hdDMy eDJfdCByLCBmbG9hdDE2eDRfdCBhLCBmbG9hdDE2eDRfdCBiKQogewotICByZXR1cm4gdmZtbHNs X2xhbmVfaGlnaF91MzIgKHIsIGEsIGIsIDApOworICByZXR1cm4gdmZtbHNsX2xhbmVfaGlnaF9m MTYgKHIsIGEsIGIsIDApOwogfQogCiBmbG9hdDMyeDJfdAotdGVzdF92Zm1sYWxfbGFuZXFfaGln aF91MzIgKGZsb2F0MzJ4Ml90IHIsIGZsb2F0MTZ4NF90IGEsIGZsb2F0MTZ4OF90IGIpCit0ZXN0 X3ZmbWxhbF9sYW5lcV9oaWdoX2YxNiAoZmxvYXQzMngyX3QgciwgZmxvYXQxNng0X3QgYSwgZmxv YXQxNng4X3QgYikKIHsKLSAgcmV0dXJuIHZmbWxhbF9sYW5lcV9oaWdoX3UzMiAociwgYSwgYiwg Nik7CisgIHJldHVybiB2Zm1sYWxfbGFuZXFfaGlnaF9mMTYgKHIsIGEsIGIsIDYpOwogfQogCiBm bG9hdDMyeDJfdAotdGVzdF92Zm1sc2xfbGFuZXFfaGlnaF91MzIgKGZsb2F0MzJ4Ml90IHIsIGZs b2F0MTZ4NF90IGEsIGZsb2F0MTZ4OF90IGIpCit0ZXN0X3ZmbWxzbF9sYW5lcV9oaWdoX2YxNiAo ZmxvYXQzMngyX3QgciwgZmxvYXQxNng0X3QgYSwgZmxvYXQxNng4X3QgYikKIHsKLSAgcmV0dXJu IHZmbWxzbF9sYW5lcV9oaWdoX3UzMiAociwgYSwgYiwgNik7CisgIHJldHVybiB2Zm1sc2xfbGFu ZXFfaGlnaF9mMTYgKHIsIGEsIGIsIDYpOwogfQogCiBmbG9hdDMyeDRfdAotdGVzdF92Zm1sYWxx X2xhbmVfaGlnaF91MzIgKGZsb2F0MzJ4NF90IHIsIGZsb2F0MTZ4OF90IGEsIGZsb2F0MTZ4NF90 IGIpCit0ZXN0X3ZmbWxhbHFfbGFuZV9oaWdoX2YxNiAoZmxvYXQzMng0X3QgciwgZmxvYXQxNng4 X3QgYSwgZmxvYXQxNng0X3QgYikKIHsKLSAgcmV0dXJuIHZmbWxhbHFfbGFuZV9oaWdoX3UzMiAo ciwgYSwgYiwgMSk7CisgIHJldHVybiB2Zm1sYWxxX2xhbmVfaGlnaF9mMTYgKHIsIGEsIGIsIDEp OwogfQogCiBmbG9hdDMyeDRfdAotdGVzdF92Zm1sc2xxX2xhbmVfaGlnaF91MzIgKGZsb2F0MzJ4 NF90IHIsIGZsb2F0MTZ4OF90IGEsIGZsb2F0MTZ4NF90IGIpCit0ZXN0X3ZmbWxzbHFfbGFuZV9o aWdoX2YxNiAoZmxvYXQzMng0X3QgciwgZmxvYXQxNng4X3QgYSwgZmxvYXQxNng0X3QgYikKIHsK LSAgcmV0dXJuIHZmbWxzbHFfbGFuZV9oaWdoX3UzMiAociwgYSwgYiwgMSk7CisgIHJldHVybiB2 Zm1sc2xxX2xhbmVfaGlnaF9mMTYgKHIsIGEsIGIsIDEpOwogfQogCiBmbG9hdDMyeDRfdAotdGVz dF92Zm1sYWxxX2xhbmVxX2hpZ2hfdTMyICAoZmxvYXQzMng0X3QgciwgZmxvYXQxNng4X3QgYSwg ZmxvYXQxNng4X3QgYikKK3Rlc3RfdmZtbGFscV9sYW5lcV9oaWdoX2YxNiAgKGZsb2F0MzJ4NF90 IHIsIGZsb2F0MTZ4OF90IGEsIGZsb2F0MTZ4OF90IGIpCiB7Ci0gIHJldHVybiB2Zm1sYWxxX2xh bmVxX2hpZ2hfdTMyIChyLCBhLCBiLCA3KTsKKyAgcmV0dXJuIHZmbWxhbHFfbGFuZXFfaGlnaF9m MTYgKHIsIGEsIGIsIDcpOwogfQogCiBmbG9hdDMyeDRfdAotdGVzdF92Zm1sc2xxX2xhbmVxX2hp Z2hfdTMyIChmbG9hdDMyeDRfdCByLCBmbG9hdDE2eDhfdCBhLCBmbG9hdDE2eDhfdCBiKQordGVz dF92Zm1sc2xxX2xhbmVxX2hpZ2hfZjE2IChmbG9hdDMyeDRfdCByLCBmbG9hdDE2eDhfdCBhLCBm bG9hdDE2eDhfdCBiKQogewotICByZXR1cm4gdmZtbHNscV9sYW5lcV9oaWdoX3UzMiAociwgYSwg YiwgNyk7CisgIHJldHVybiB2Zm1sc2xxX2xhbmVxX2hpZ2hfZjE2IChyLCBhLCBiLCA3KTsKIH0K ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2ZwMTZfZm11bF9s YW5lX2xvdy5oIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvZnAxNl9mbXVsX2xh bmVfbG93LmgKaW5kZXggYjY4OTc0MWJkYjAwNmU4OWYxNGYyOWI4MDNiYTZkMzhhNjJiMzg3ZS4u YmY0OTgyOWM0YmVjOTQxOTcwZWFmNGUzMmNhYmY2NTcxOWJlOWVhYSAxMDA2NDQKLS0tIGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvZnAxNl9mbXVsX2xhbmVfbG93LmgKKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvZnAxNl9mbXVsX2xhbmVfbG93LmgKQEAg LTEsNDkgKzEsNDkgQEAKICNpbmNsdWRlICJhcm1fbmVvbi5oIgogCiBmbG9hdDMyeDJfdAotdGVz dF92Zm1sYWxfbGFuZV9sb3dfdTMyIChmbG9hdDMyeDJfdCByLCBmbG9hdDE2eDRfdCBhLCBmbG9h dDE2eDRfdCBiKQordGVzdF92Zm1sYWxfbGFuZV9sb3dfZjE2IChmbG9hdDMyeDJfdCByLCBmbG9h dDE2eDRfdCBhLCBmbG9hdDE2eDRfdCBiKQogewotICByZXR1cm4gdmZtbGFsX2xhbmVfbG93X3Uz MiAociwgYSwgYiwgMCk7CisgIHJldHVybiB2Zm1sYWxfbGFuZV9sb3dfZjE2IChyLCBhLCBiLCAw KTsKIH0KIAogZmxvYXQzMngyX3QKLXRlc3RfdmZtbHNsX2xhbmVfbG93X3UzMiAoZmxvYXQzMngy X3QgciwgZmxvYXQxNng0X3QgYSwgZmxvYXQxNng0X3QgYikKK3Rlc3RfdmZtbHNsX2xhbmVfbG93 X2YxNiAoZmxvYXQzMngyX3QgciwgZmxvYXQxNng0X3QgYSwgZmxvYXQxNng0X3QgYikKIHsKLSAg cmV0dXJuIHZmbWxzbF9sYW5lX2xvd191MzIgKHIsIGEsIGIsIDApOworICByZXR1cm4gdmZtbHNs X2xhbmVfbG93X2YxNiAociwgYSwgYiwgMCk7CiB9CiAKIGZsb2F0MzJ4Ml90Ci10ZXN0X3ZmbWxh bF9sYW5lcV9sb3dfdTMyIChmbG9hdDMyeDJfdCByLCBmbG9hdDE2eDRfdCBhLCBmbG9hdDE2eDhf dCBiKQordGVzdF92Zm1sYWxfbGFuZXFfbG93X2YxNiAoZmxvYXQzMngyX3QgciwgZmxvYXQxNng0 X3QgYSwgZmxvYXQxNng4X3QgYikKIHsKLSAgcmV0dXJuIHZmbWxhbF9sYW5lcV9sb3dfdTMyIChy LCBhLCBiLCA2KTsKKyAgcmV0dXJuIHZmbWxhbF9sYW5lcV9sb3dfZjE2IChyLCBhLCBiLCA2KTsK IH0KIAogZmxvYXQzMngyX3QKLXRlc3RfdmZtbHNsX2xhbmVxX2xvd191MzIgKGZsb2F0MzJ4Ml90 IHIsIGZsb2F0MTZ4NF90IGEsIGZsb2F0MTZ4OF90IGIpCit0ZXN0X3ZmbWxzbF9sYW5lcV9sb3df ZjE2IChmbG9hdDMyeDJfdCByLCBmbG9hdDE2eDRfdCBhLCBmbG9hdDE2eDhfdCBiKQogewotICBy ZXR1cm4gdmZtbHNsX2xhbmVxX2xvd191MzIgKHIsIGEsIGIsIDYpOworICByZXR1cm4gdmZtbHNs X2xhbmVxX2xvd19mMTYgKHIsIGEsIGIsIDYpOwogfQogCiBmbG9hdDMyeDRfdAotdGVzdF92Zm1s YWxxX2xhbmVfbG93X3UzMiAoZmxvYXQzMng0X3QgciwgZmxvYXQxNng4X3QgYSwgZmxvYXQxNng0 X3QgYikKK3Rlc3RfdmZtbGFscV9sYW5lX2xvd19mMTYgKGZsb2F0MzJ4NF90IHIsIGZsb2F0MTZ4 OF90IGEsIGZsb2F0MTZ4NF90IGIpCiB7Ci0gIHJldHVybiB2Zm1sYWxxX2xhbmVfbG93X3UzMiAo ciwgYSwgYiwgMSk7CisgIHJldHVybiB2Zm1sYWxxX2xhbmVfbG93X2YxNiAociwgYSwgYiwgMSk7 CiB9CiAKIGZsb2F0MzJ4NF90Ci10ZXN0X3ZmbWxzbHFfbGFuZV9sb3dfdTMyIChmbG9hdDMyeDRf dCByLCBmbG9hdDE2eDhfdCBhLCBmbG9hdDE2eDRfdCBiKQordGVzdF92Zm1sc2xxX2xhbmVfbG93 X2YxNiAoZmxvYXQzMng0X3QgciwgZmxvYXQxNng4X3QgYSwgZmxvYXQxNng0X3QgYikKIHsKLSAg cmV0dXJuIHZmbWxzbHFfbGFuZV9sb3dfdTMyIChyLCBhLCBiLCAxKTsKKyAgcmV0dXJuIHZmbWxz bHFfbGFuZV9sb3dfZjE2IChyLCBhLCBiLCAxKTsKIH0KIAogZmxvYXQzMng0X3QKLXRlc3RfdmZt bGFscV9sYW5lcV9sb3dfdTMyIChmbG9hdDMyeDRfdCByLCBmbG9hdDE2eDhfdCBhLCBmbG9hdDE2 eDhfdCBiKQordGVzdF92Zm1sYWxxX2xhbmVxX2xvd19mMTYgKGZsb2F0MzJ4NF90IHIsIGZsb2F0 MTZ4OF90IGEsIGZsb2F0MTZ4OF90IGIpCiB7Ci0gIHJldHVybiB2Zm1sYWxxX2xhbmVxX2xvd191 MzIgKHIsIGEsIGIsIDcpOworICByZXR1cm4gdmZtbGFscV9sYW5lcV9sb3dfZjE2IChyLCBhLCBi LCA3KTsKIH0KIAogZmxvYXQzMng0X3QKLXRlc3RfdmZtbHNscV9sYW5lcV9sb3dfdTMyIChmbG9h dDMyeDRfdCByLCBmbG9hdDE2eDhfdCBhLCBmbG9hdDE2eDhfdCBiKQordGVzdF92Zm1sc2xxX2xh bmVxX2xvd19mMTYgKGZsb2F0MzJ4NF90IHIsIGZsb2F0MTZ4OF90IGEsIGZsb2F0MTZ4OF90IGIp CiB7Ci0gIHJldHVybiB2Zm1sc2xxX2xhbmVxX2xvd191MzIgKHIsIGEsIGIsIDcpOworICByZXR1 cm4gdmZtbHNscV9sYW5lcV9sb3dfZjE2IChyLCBhLCBiLCA3KTsKIH0KZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2ZwMTZfZm11bF9sb3cuaCBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2ZwMTZfZm11bF9sb3cuaAppbmRleCA3NzhjYTFjMjQ1 YzczNDNiMzgyNzJlNTg2YTU0OTI3YzdjZDUwYmVlLi5iMDM5YjU0OGI1ODA5ZjkyYTZlZjBmOTFm NmFiNDc1YjJiMDM4NjZjIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFy Y2g2NC9mcDE2X2ZtdWxfbG93LmgKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNo NjQvZnAxNl9mbXVsX2xvdy5oCkBAIC0xLDI1ICsxLDI1IEBACiAjaW5jbHVkZSAiYXJtX25lb24u aCIKIAogZmxvYXQzMngyX3QKLXRlc3RfdmZtbGFsX2xvd191MzIgKGZsb2F0MzJ4Ml90IHIsIGZs b2F0MTZ4NF90IGEsIGZsb2F0MTZ4NF90IGIpCit0ZXN0X3ZmbWxhbF9sb3dfZjE2IChmbG9hdDMy eDJfdCByLCBmbG9hdDE2eDRfdCBhLCBmbG9hdDE2eDRfdCBiKQogewotICByZXR1cm4gdmZtbGFs X2xvd191MzIgKHIsIGEsIGIpOworICByZXR1cm4gdmZtbGFsX2xvd19mMTYgKHIsIGEsIGIpOwog fQogCiBmbG9hdDMyeDRfdAotdGVzdF92Zm1sYWxxX2xvd191MzIgKGZsb2F0MzJ4NF90IHIsIGZs b2F0MTZ4OF90IGEsIGZsb2F0MTZ4OF90IGIpCit0ZXN0X3ZmbWxhbHFfbG93X2YxNiAoZmxvYXQz Mng0X3QgciwgZmxvYXQxNng4X3QgYSwgZmxvYXQxNng4X3QgYikKIHsKLSAgcmV0dXJuIHZmbWxh bHFfbG93X3UzMiAociwgYSwgYik7CisgIHJldHVybiB2Zm1sYWxxX2xvd19mMTYgKHIsIGEsIGIp OwogfQogCiBmbG9hdDMyeDJfdAotdGVzdF92Zm1sc2xfbG93X3UzMiAoZmxvYXQzMngyX3Qgciwg ZmxvYXQxNng0X3QgYSwgZmxvYXQxNng0X3QgYikKK3Rlc3RfdmZtbHNsX2xvd19mMTYgKGZsb2F0 MzJ4Ml90IHIsIGZsb2F0MTZ4NF90IGEsIGZsb2F0MTZ4NF90IGIpCiB7Ci0gIHJldHVybiB2Zm1s c2xfbG93X3UzMiAociwgYSwgYik7CisgIHJldHVybiB2Zm1sc2xfbG93X2YxNiAociwgYSwgYik7 CiB9CiAKIGZsb2F0MzJ4NF90Ci10ZXN0X3ZmbWxzbHFfbG93X3UzMiAoZmxvYXQzMng0X3Qgciwg ZmxvYXQxNng4X3QgYSwgZmxvYXQxNng4X3QgYikKK3Rlc3RfdmZtbHNscV9sb3dfZjE2IChmbG9h dDMyeDRfdCByLCBmbG9hdDE2eDhfdCBhLCBmbG9hdDE2eDhfdCBiKQogewotICByZXR1cm4gdmZt bHNscV9sb3dfdTMyIChyLCBhLCBiKTsKKyAgcmV0dXJuIHZmbWxzbHFfbG93X2YxNiAociwgYSwg Yik7CiB9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2xpYi90YXJnZXQtc3VwcG9ydHMuZXhw IGIvZ2NjL3Rlc3RzdWl0ZS9saWIvdGFyZ2V0LXN1cHBvcnRzLmV4cAppbmRleCBhMmY1OThmYjYy MGEwY2NjOTgwNDI0M2Y5YzBkN2JhNTY4OTQwODAxLi5iMzc3MGY4YjBjODdlYzBiMDdhYTM4MTc2 MzAyZDdlMTYxMWRiZDc3IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2xpYi90YXJnZXQtc3Vw cG9ydHMuZXhwCisrKyBiL2djYy90ZXN0c3VpdGUvbGliL3RhcmdldC1zdXBwb3J0cy5leHAKQEAg LTQ1NTYsNyArNDU1Niw3IEBAIHByb2MgY2hlY2tfZWZmZWN0aXZlX3RhcmdldF9hcm1fZnAxNmZt bF9uZW9uX29rX25vY2FjaGUgeyB9IHsKIAkJZmxvYXQzMngyX3QKIAkJZm9vIChmbG9hdDMyeDJf dCByLCBmbG9hdDE2eDRfdCBhLCBmbG9hdDE2eDRfdCBiKQogCQl7Ci0JCSAgcmV0dXJuIHZmbWxh bF9oaWdoX3UzMiAociwgYSwgYik7CisJCSAgcmV0dXJuIHZmbWxhbF9oaWdoX2YxNiAociwgYSwg Yik7CiAJCX0KICAgICAgICAgfSAiJGZsYWdzIC1tYXJjaD1hcm12OC4yLWErZnAxNmZtbCJdIH0g ewogICAgICAgICAgICAgc2V0IGV0X2FybV9mcDE2Zm1sX25lb25fZmxhZ3MgIiRmbGFncyAtbWFy Y2g9YXJtdjguMi1hK2ZwMTZmbWwiCg== --_002_DB7PR08MB300224BDE47863329C129E3693390DB7PR08MB3002eurp_--