From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2064.outbound.protection.outlook.com [40.107.21.64]) by sourceware.org (Postfix) with ESMTPS id D67123858409 for ; Fri, 20 Jan 2023 17:51:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D67123858409 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=A7KDwVL7ezNdXzepNDUD0czdGXv711PgQhGNjzl5Ebo=; b=bXAzSQxtv+YuMEsTU+Q7riKpbUeuA4FYqbWxZFGtHyeaOc025UE8bQm2mAqOM1XbKHh00rH5aUREHrKpYcaMMM12KO0gFOtrI6Z+ZihJKleYKTb/HRuAkwwFhim50WORj+JE17AovvY7HzkGh4NITJFiDsAxkn5Q9XfYg3JbfIE= Received: from AM7PR02CA0011.eurprd02.prod.outlook.com (2603:10a6:20b:100::21) by AS2PR08MB8363.eurprd08.prod.outlook.com (2603:10a6:20b:546::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Fri, 20 Jan 2023 17:51:42 +0000 Received: from AM7EUR03FT003.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:100:cafe::85) by AM7PR02CA0011.outlook.office365.com (2603:10a6:20b:100::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.27 via Frontend Transport; Fri, 20 Jan 2023 17:51:42 +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 AM7EUR03FT003.mail.protection.outlook.com (100.127.140.227) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6023.16 via Frontend Transport; Fri, 20 Jan 2023 17:51:42 +0000 Received: ("Tessian outbound 6e565e48ed4a:v132"); Fri, 20 Jan 2023 17:51:42 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: fc60a121726f0525 X-CR-MTA-TID: 64aa7808 Received: from e138aa4574a5.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id C3896153-35E0-4BFA-BDCC-BF57956B6AB8.1; Fri, 20 Jan 2023 17:51:35 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id e138aa4574a5.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 20 Jan 2023 17:51:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ik7JXuaNR55cr8ByqJeODflQq1uqp2PzzWAndIBASN480W21sJAhMZhZQahSJKmSNSNEQA953VB4zCGvAtQWNZfkv3ae2Y1LyTnz4IhGw41yA7WWAbJkDKG4o7N+YK77qQRHoI/8DvJN4rPDtFn2paQvLxNpeLp5mtDkCnE683nvoXf89o/iNW02SECmFSP7IHRKi1FMUcydjTSBmmDGwkG163xrTONwdRhxevqvWf8Bq5ymKZ58gBDWZV6Gs0NDg/LKuy8E8cX0RuGmx3gy4ZLqhfIZsQBWsFJk9Z6XXTmtOcjKZNswkGkP6zHJrDk/Q+cViOQ33onQllc+7BJk5g== 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=A7KDwVL7ezNdXzepNDUD0czdGXv711PgQhGNjzl5Ebo=; b=Zm7xNQx6EyI40wII2y1poRL/O+EDmOcg8i/r2STDd6ggRZYj2uGrKX0wNtiNNSy27pOtANLb/1uvGgk5UZ5sRJUN3Fcl2YxM3t+3vHHnuAnmawBLX6cM8hdPG8V6LLiuGR/JlLpt8PTt8ht96BwXfN5D6ZWXLAT9dMIcfNWiCliDeid1R5GnYeT9f41xGOPA1cKmYPBSsCtSB5CoV2C0lRWoGuFGLZOoJiCPlZgHjxKKhIZZEY5IdVV5B6jmCIRUzSjiA0MunsrupkgsN9L7ppbLsjs6MMGUVy4A13VPj1nOWS7AhJ98bMQ1xcbBc8+9yqDpQZYtpsl/c9RU61pwig== 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=A7KDwVL7ezNdXzepNDUD0czdGXv711PgQhGNjzl5Ebo=; b=bXAzSQxtv+YuMEsTU+Q7riKpbUeuA4FYqbWxZFGtHyeaOc025UE8bQm2mAqOM1XbKHh00rH5aUREHrKpYcaMMM12KO0gFOtrI6Z+ZihJKleYKTb/HRuAkwwFhim50WORj+JE17AovvY7HzkGh4NITJFiDsAxkn5Q9XfYg3JbfIE= Received: from PAXPR08MB6926.eurprd08.prod.outlook.com (2603:10a6:102:138::24) by AS8PR08MB6438.eurprd08.prod.outlook.com (2603:10a6:20b:33e::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.27; Fri, 20 Jan 2023 17:51:33 +0000 Received: from PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::a7d2:445d:606d:7046]) by PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::a7d2:445d:606d:7046%2]) with mapi id 15.20.6002.024; Fri, 20 Jan 2023 17:51:33 +0000 From: Kyrylo Tkachov To: Andrea Corallo , "gcc-patches@gcc.gnu.org" CC: Richard Earnshaw , Andrea Corallo Subject: RE: [PATCH 05/23] arm: improve tests for vmullbq* Thread-Topic: [PATCH 05/23] arm: improve tests for vmullbq* Thread-Index: AQHZLO32cFKUkOcaTkuZRLgCQhcXda6nlaMw Date: Fri, 20 Jan 2023 17:51:33 +0000 Message-ID: References: <20230120163948.752531-1-andrea.corallo@arm.com> <20230120163948.752531-6-andrea.corallo@arm.com> In-Reply-To: <20230120163948.752531-6-andrea.corallo@arm.com> Accept-Language: en-GB, 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: PAXPR08MB6926:EE_|AS8PR08MB6438:EE_|AM7EUR03FT003:EE_|AS2PR08MB8363:EE_ X-MS-Office365-Filtering-Correlation-Id: a9a3c623-1ab9-4c14-b600-08dafb0efd82 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: 9rKLb+YQdg0Bx7TMJnXH/QZaIXR1FyeP5HandzxtMef4aWNObXgTw42nRjwPfgg3b5AzfGffkrVIsbxJoCtR6v+w0AnVkIHaOfOVvXSwf0PVgyfsyS25XN59KQclu4ovYWbMh4/DwJkIH700fxO2cLYrP77WH1wsPYvY4FKFiXuRIUds9IBldm8hJvb7R6oP61b4jKTb+T01qTIHbPAqXNpL12ztR0oATAaM3Nr1fkPKL+5PwRqGiw74nypTaKv5rtRdM73SI8ziNTzAWCTE6UjJNbqX6oSavYZI0iW4tzfmuK46a5dFmyuYmP0T5o6xJjlhOKb06/f9gtCafI9B12WoZKkUZdXw+LmD6Wuso23PV8pUjzmGDzSTRECF06Fn+uKFKA7/gzdzZs8QgMfWKKe1njWtvgDxlMi2nfrTYzwhXCOeIgEDX5bMHNOAfo4KkLHkli/d1nCpgDxa6+g2jc8aaI9Vr9ASlClYM1JoRNfKatm1zd24Dv9RhwwQCc5EplhHkJYg2PJnHh25F3vjy5jGD223v/MWvHYllJZHgX95bQ+Jh9a/vWkN420vyXSoDrNMrNf1D4u5GLI1YQwk2XkcUbpOxKRVd9CCkDQIV2LWq3tx+QBdbTdk8J8p8pmKJHJBZfVMdYKIABgdMa26sqnOyn2ieyz18Q80vubAM6uMPpesU7dlDfsHDJLGYqY4hFPjIuYTi6jDkv09UHhPplh8l4I79Cw/ZCZyw2eBi/D1+5aodc99OfclTcKPscN/wP8KuDThx++OHHTrR3N5Sw== 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:(13230022)(4636009)(346002)(396003)(39860400002)(376002)(366004)(136003)(451199015)(30864003)(52536014)(8676002)(76116006)(66556008)(5660300002)(8936002)(66446008)(66476007)(64756008)(4326008)(66946007)(316002)(84970400001)(478600001)(110136005)(54906003)(2906002)(7696005)(53546011)(9686003)(26005)(6506007)(186003)(71200400001)(86362001)(38070700005)(83380400001)(55016003)(41300700001)(38100700002)(33656002)(122000001)(579004)(559001);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6438 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: AM7EUR03FT003.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 241d1c83-4214-4cc9-68e0-08dafb0ef7bb X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: atlErGzmJDR4yafMH3S5Rj89mVDf3hAETHpU7w4tO3ZgPlPL7Bwu8mZjaZKA3XTkH26IDcK177PV2gTEp2VoKfUg+1TbemNCky/Pi6iLgfr8UgEBl/2nkcgUktm3hKR6seSbIiylcBO1fVpB/jbKuHYZS2N19TAW2OQO0XTiSzwLXzQYvxmLhsdBZa0zckEdjWOjOCaqdoK7hijW8am8RpqEBQif+bwBeOWi1BPDdDF6FATYY7V68UDuwqaKfB2enAAjHWd4rnv43nT8l8UPLFDckPLtjbnmFy9zsIHmJFXV5Swq7Uj6PIcJImXL9hBE1SBrCSEul+qMZX+AhnjToJoWplvuPp/XkS8f86n7cewju2RO09qbS1oQBOFlHVxvLNzONPJPnmMqoBVlMbVb6+mUEgSorxUM9nbuPF1Xdhdd+OQ8O5t+pBjUR8jU1RrMRBmu+gkcZHWZ7MfPD/kzYi+V/s8OMsUNwS/zInv0Br1kkdd15jHAbRpBZpKV1fzNgYZ2g+ixdO5VDYV8/mbTQHvPwg69uQU2hS7cuPB+lDy+1cmpDnO0F1vWeaAkNaFGIWacDjl7Lu1DjCfGP4vBP+jAi1gIGU+jbHo9vULUylF3opHAakDpbESheBDJsBTGFnAzwFM+X/Rs6JOu+qIMOOHoUMStSoGjNGYUbNr2XRpbQEAizBVXtZtqcQZ/Vc2fkUdRKQleQpZR6s5WD3CpE2psT7S6Vtw8Zxx7bQnsamhioaOAKiJHijPltq/Bv2Q4UpeiJLbUKcJAqD0LtHYcfw== 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:(13230022)(4636009)(346002)(39860400002)(396003)(376002)(136003)(451199015)(36840700001)(46966006)(40470700004)(7696005)(478600001)(2906002)(84970400001)(186003)(26005)(30864003)(9686003)(316002)(53546011)(33656002)(6506007)(36860700001)(54906003)(8676002)(5660300002)(110136005)(4326008)(40460700003)(41300700001)(336012)(70206006)(47076005)(70586007)(82740400003)(8936002)(83380400001)(82310400005)(40480700001)(52536014)(86362001)(356005)(55016003)(81166007)(579004);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 17:51:42.6881 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a9a3c623-1ab9-4c14-b600-08dafb0efd82 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: AM7EUR03FT003.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8363 X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,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: DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQW5kcmVhIENvcmFsbG8g PGFuZHJlYS5jb3JhbGxvQGFybS5jb20+DQo+IFNlbnQ6IEZyaWRheSwgSmFudWFyeSAyMCwgMjAy MyA0OjQwIFBNDQo+IFRvOiBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZw0KPiBDYzogS3lyeWxvIFRr YWNob3YgPEt5cnlsby5Ua2FjaG92QGFybS5jb20+OyBSaWNoYXJkIEVhcm5zaGF3DQo+IDxSaWNo YXJkLkVhcm5zaGF3QGFybS5jb20+OyBBbmRyZWEgQ29yYWxsbyA8QW5kcmVhLkNvcmFsbG9AYXJt LmNvbT4NCj4gU3ViamVjdDogW1BBVENIIDA1LzIzXSBhcm06IGltcHJvdmUgdGVzdHMgZm9yIHZt dWxsYnEqDQo+IA0KPiBnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoNCj4gDQo+IAkqIGdjYy50YXJn ZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZtdWxsYnFfaW50X21fczE2LmM6IEltcHJvdmUgdGVzdC4N Cg0KT2sgYXMgYmVmb3JlLiBGb3IgZnVydGhlciBwYXRjaGVzIGluIHRoZSBzZXJpZXMgdGhhdCBk byBhIHNpbWlsYXIgdGhpbmcgcGxlYXNlIGFzc3VtZSB0aGF0IEknZCBsaWtlIGEgbW9yZSBkZXNj cmlwdGl2ZSBlbnRyeSBoZXJlIPCfmIoNClRoYW5rcywNCkt5cmlsbA0KDQo+IAkqIGdjYy50YXJn ZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZtdWxsYnFfaW50X21fczMyLmM6IExpa2V3aXNlLg0KPiAJ KiBnY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF9tX3M4LmM6IExpa2V3 aXNlLg0KPiAJKiBnY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF9tX3Ux Ni5jOiBMaWtld2lzZS4NCj4gCSogZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxi cV9pbnRfbV91MzIuYzogTGlrZXdpc2UuDQo+IAkqIGdjYy50YXJnZXQvYXJtL212ZS9pbnRyaW5z aWNzL3ZtdWxsYnFfaW50X21fdTguYzogTGlrZXdpc2UuDQo+IAkqIGdjYy50YXJnZXQvYXJtL212 ZS9pbnRyaW5zaWNzL3ZtdWxsYnFfaW50X3MxNi5jOiBMaWtld2lzZS4NCj4gCSogZ2NjLnRhcmdl dC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfczMyLmM6IExpa2V3aXNlLg0KPiAJKiBn Y2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF9zOC5jOiBMaWtld2lzZS4N Cj4gCSogZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfdTE2LmM6IExp a2V3aXNlLg0KPiAJKiBnY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF91 MzIuYzogTGlrZXdpc2UuDQo+IAkqIGdjYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZtdWxs YnFfaW50X3U4LmM6IExpa2V3aXNlLg0KPiAJKiBnY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2lj cy92bXVsbGJxX2ludF94X3MxNi5jOiBMaWtld2lzZS4NCj4gCSogZ2NjLnRhcmdldC9hcm0vbXZl L2ludHJpbnNpY3Mvdm11bGxicV9pbnRfeF9zMzIuYzogTGlrZXdpc2UuDQo+IAkqIGdjYy50YXJn ZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZtdWxsYnFfaW50X3hfczguYzogTGlrZXdpc2UuDQo+IAkq IGdjYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZtdWxsYnFfaW50X3hfdTE2LmM6IExpa2V3 aXNlLg0KPiAJKiBnY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF94X3Uz Mi5jOiBMaWtld2lzZS4NCj4gCSogZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxi cV9pbnRfeF91OC5jOiBMaWtld2lzZS4NCj4gCSogZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNp Y3Mvdm11bGxicV9wb2x5X21fcDE2LmM6IExpa2V3aXNlLg0KPiAJKiBnY2MudGFyZ2V0L2FybS9t dmUvaW50cmluc2ljcy92bXVsbGJxX3BvbHlfbV9wOC5jOiBMaWtld2lzZS4NCj4gCSogZ2NjLnRh cmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9wb2x5X3AxNi5jOiBMaWtld2lzZS4NCj4g CSogZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9wb2x5X3A4LmM6IExpa2V3 aXNlLg0KPiAJKiBnY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX3BvbHlfeF9w MTYuYzogTGlrZXdpc2UuDQo+IAkqIGdjYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZtdWxs YnFfcG9seV94X3A4LmM6IExpa2V3aXNlLg0KPiAtLS0NCj4gIC4uLi9hcm0vbXZlL2ludHJpbnNp Y3Mvdm11bGxicV9pbnRfbV9zMTYuYyAgICB8IDM0ICsrKysrKysrKysrKysrKystLS0NCj4gIC4u Li9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfbV9zMzIuYyAgICB8IDM0ICsrKysrKysr KysrKysrKystLS0NCj4gIC4uLi9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfbV9zOC5j ICAgICB8IDM0ICsrKysrKysrKysrKysrKystLS0NCj4gIC4uLi9hcm0vbXZlL2ludHJpbnNpY3Mv dm11bGxicV9pbnRfbV91MTYuYyAgICB8IDM0ICsrKysrKysrKysrKysrKystLS0NCj4gIC4uLi9h cm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfbV91MzIuYyAgICB8IDM0ICsrKysrKysrKysr KysrKystLS0NCj4gIC4uLi9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfbV91OC5jICAg ICB8IDM0ICsrKysrKysrKysrKysrKystLS0NCj4gIC4uLi9hcm0vbXZlL2ludHJpbnNpY3Mvdm11 bGxicV9pbnRfczE2LmMgICAgICB8IDI0ICsrKysrKysrKysrLS0NCj4gIC4uLi9hcm0vbXZlL2lu dHJpbnNpY3Mvdm11bGxicV9pbnRfczMyLmMgICAgICB8IDI0ICsrKysrKysrKysrLS0NCj4gIC4u Li9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfczguYyAgICAgICB8IDI0ICsrKysrKysr KysrLS0NCj4gIC4uLi9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfdTE2LmMgICAgICB8 IDI0ICsrKysrKysrKysrLS0NCj4gIC4uLi9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRf dTMyLmMgICAgICB8IDI0ICsrKysrKysrKysrLS0NCj4gIC4uLi9hcm0vbXZlL2ludHJpbnNpY3Mv dm11bGxicV9pbnRfdTguYyAgICAgICB8IDI0ICsrKysrKysrKysrLS0NCj4gIC4uLi9hcm0vbXZl L2ludHJpbnNpY3Mvdm11bGxicV9pbnRfeF9zMTYuYyAgICB8IDMzICsrKysrKysrKysrKysrKyst LQ0KPiAgLi4uL2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF94X3MzMi5jICAgIHwgMzMg KysrKysrKysrKysrKysrKy0tDQo+ICAuLi4vYXJtL212ZS9pbnRyaW5zaWNzL3ZtdWxsYnFfaW50 X3hfczguYyAgICAgfCAzMyArKysrKysrKysrKysrKysrLS0NCj4gIC4uLi9hcm0vbXZlL2ludHJp bnNpY3Mvdm11bGxicV9pbnRfeF91MTYuYyAgICB8IDMzICsrKysrKysrKysrKysrKystLQ0KPiAg Li4uL2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF94X3UzMi5jICAgIHwgMzMgKysrKysr KysrKysrKysrKy0tDQo+ICAuLi4vYXJtL212ZS9pbnRyaW5zaWNzL3ZtdWxsYnFfaW50X3hfdTgu YyAgICAgfCAzMyArKysrKysrKysrKysrKysrLS0NCj4gIC4uLi9hcm0vbXZlL2ludHJpbnNpY3Mv dm11bGxicV9wb2x5X21fcDE2LmMgICB8IDM0ICsrKysrKysrKysrKysrKystLS0NCj4gIC4uLi9h cm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9wb2x5X21fcDguYyAgICB8IDM0ICsrKysrKysrKysr KysrKystLS0NCj4gIC4uLi9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9wb2x5X3AxNi5jICAg ICB8IDI0ICsrKysrKysrKysrLS0NCj4gIC4uLi9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9w b2x5X3A4LmMgICAgICB8IDI0ICsrKysrKysrKysrLS0NCj4gIC4uLi9hcm0vbXZlL2ludHJpbnNp Y3Mvdm11bGxicV9wb2x5X3hfcDE2LmMgICB8IDMzICsrKysrKysrKysrKysrKystLQ0KPiAgLi4u L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX3BvbHlfeF9wOC5jICAgIHwgMzMgKysrKysrKysr KysrKysrKy0tDQo+ICAyNCBmaWxlcyBjaGFuZ2VkLCA2NTYgaW5zZXJ0aW9ucygrKSwgNzIgZGVs ZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2Fy bS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF9tX3MxNi5jDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF9tX3MxNi5jDQo+IGluZGV4 IGJlOTMzMjc0ZDc3Li5hNGNjNWU1Mjc3MyAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF9tX3MxNi5jDQo+ICsrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRf bV9zMTYuYw0KPiBAQCAtMSwyMyArMSw0OSBAQA0KPiAgLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2 ZS10YXJnZXQgYXJtX3Y4XzFtX212ZV9vayB9ICovDQo+ICAvKiB7IGRnLWFkZC1vcHRpb25zIGFy bV92OF8xbV9tdmUgfSAqLw0KPiAgLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1PMiIgfSAq Lw0KPiArLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAq Lw0KPiANCj4gICNpbmNsdWRlICJhcm1fbXZlLmgiDQo+IA0KPiArI2lmZGVmIF9fY3BsdXNwbHVz DQo+ICtleHRlcm4gIkMiIHsNCj4gKyNlbmRpZg0KPiArDQo+ICsvKg0KPiArKipmb286DQo+ICsq KgkuLi4NCj4gKyoqCXZtc3IJcDAsICg/OmlwfGZwfHJbMC05XSspKD86CUAuKnwpDQo+ICsqKgku Li4NCj4gKyoqCXZwc3QoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKioJdm11bGxidC5zMTYJcVsw LTldKywgcVswLTldKywgcVswLTldKyg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqLw0KPiAgaW50 MzJ4NF90DQo+ICBmb28gKGludDMyeDRfdCBpbmFjdGl2ZSwgaW50MTZ4OF90IGEsIGludDE2eDhf dCBiLCBtdmVfcHJlZDE2X3QgcCkNCj4gIHsNCj4gICAgcmV0dXJuIHZtdWxsYnFfaW50X21fczE2 IChpbmFjdGl2ZSwgYSwgYiwgcCk7DQo+ICB9DQo+IA0KPiAtLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyICJ2cHN0IiB9IH0gKi8NCj4gLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ciAidm11bGxidC5zMTYiICB9ICB9ICovDQo+IA0KPiArLyoNCj4gKyoqZm9vMToNCj4gKyoqCS4u Lg0KPiArKioJdm1zcglwMCwgKD86aXB8ZnB8clswLTldKykoPzoJQC4qfCkNCj4gKyoqCS4uLg0K PiArKioJdnBzdCg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqKgl2bXVsbGJ0LnMxNglxWzAtOV0r LCBxWzAtOV0rLCBxWzAtOV0rKD86CUAuKnwpDQo+ICsqKgkuLi4NCj4gKyovDQo+ICBpbnQzMng0 X3QNCj4gIGZvbzEgKGludDMyeDRfdCBpbmFjdGl2ZSwgaW50MTZ4OF90IGEsIGludDE2eDhfdCBi LCBtdmVfcHJlZDE2X3QgcCkNCj4gIHsNCj4gICAgcmV0dXJuIHZtdWxsYnFfaW50X20gKGluYWN0 aXZlLCBhLCBiLCBwKTsNCj4gIH0NCj4gDQo+IC0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXIgInZwc3QiIH0gfSAqLw0KPiAtLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2bXVs bGJ0LnMxNiIgIH0gIH0gKi8NCj4gKyNpZmRlZiBfX2NwbHVzcGx1cw0KPiArfQ0KPiArI2VuZGlm DQo+ICsNCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3QgIl9fQVJNX3VuZGVm IiB9IH0gKi8NCj4gXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQo+IGRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZtdWxsYnFfaW50X21f czMyLmMNCj4gYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3Zt dWxsYnFfaW50X21fczMyLmMNCj4gaW5kZXggM2RmYzI2NzYxYmUuLmExOTU4ODQ1NjdiIDEwMDY0 NA0KPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3Zt dWxsYnFfaW50X21fczMyLmMNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9t dmUvaW50cmluc2ljcy92bXVsbGJxX2ludF9tX3MzMi5jDQo+IEBAIC0xLDIzICsxLDQ5IEBADQo+ ICAvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBhcm1fdjhfMW1fbXZlX29rIH0gKi8N Cj4gIC8qIHsgZGctYWRkLW9wdGlvbnMgYXJtX3Y4XzFtX212ZSB9ICovDQo+ICAvKiB7IGRnLWFk ZGl0aW9uYWwtb3B0aW9ucyAiLU8yIiB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVu Y3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICovDQo+IA0KPiAgI2luY2x1ZGUgImFybV9tdmUuaCIN Cj4gDQo+ICsjaWZkZWYgX19jcGx1c3BsdXMNCj4gK2V4dGVybiAiQyIgew0KPiArI2VuZGlmDQo+ ICsNCj4gKy8qDQo+ICsqKmZvbzoNCj4gKyoqCS4uLg0KPiArKioJdm1zcglwMCwgKD86aXB8ZnB8 clswLTldKykoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKioJdnBzdCg/OglALip8KQ0KPiArKioJ Li4uDQo+ICsqKgl2bXVsbGJ0LnMzMglxWzAtOV0rLCBxWzAtOV0rLCBxWzAtOV0rKD86CUAuKnwp DQo+ICsqKgkuLi4NCj4gKyovDQo+ICBpbnQ2NHgyX3QNCj4gIGZvbyAoaW50NjR4Ml90IGluYWN0 aXZlLCBpbnQzMng0X3QgYSwgaW50MzJ4NF90IGIsIG12ZV9wcmVkMTZfdCBwKQ0KPiAgew0KPiAg ICByZXR1cm4gdm11bGxicV9pbnRfbV9zMzIgKGluYWN0aXZlLCBhLCBiLCBwKTsNCj4gIH0NCj4g DQo+IC0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInZwc3QiIH0gfSAqLw0KPiAtLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2bXVsbGJ0LnMzMiIgIH0gIH0gKi8NCj4gDQo+ ICsvKg0KPiArKipmb28xOg0KPiArKioJLi4uDQo+ICsqKgl2bXNyCXAwLCAoPzppcHxmcHxyWzAt OV0rKSg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqKgl2cHN0KD86CUAuKnwpDQo+ICsqKgkuLi4N Cj4gKyoqCXZtdWxsYnQuczMyCXFbMC05XSssIHFbMC05XSssIHFbMC05XSsoPzoJQC4qfCkNCj4g KyoqCS4uLg0KPiArKi8NCj4gIGludDY0eDJfdA0KPiAgZm9vMSAoaW50NjR4Ml90IGluYWN0aXZl LCBpbnQzMng0X3QgYSwgaW50MzJ4NF90IGIsIG12ZV9wcmVkMTZfdCBwKQ0KPiAgew0KPiAgICBy ZXR1cm4gdm11bGxicV9pbnRfbSAoaW5hY3RpdmUsIGEsIGIsIHApOw0KPiAgfQ0KPiANCj4gLS8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidnBzdCIgfSB9ICovDQo+IC0vKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXIgInZtdWxsYnQuczMyIiAgfSAgfSAqLw0KPiArI2lmZGVmIF9f Y3BsdXNwbHVzDQo+ICt9DQo+ICsjZW5kaWYNCj4gKw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLW5vdCAiX19BUk1fdW5kZWYiIH0gfSAqLw0KPiBcIE5vIG5ld2xpbmUgYXQgZW5k IG9mIGZpbGUNCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZl L2ludHJpbnNpY3Mvdm11bGxicV9pbnRfbV9zOC5jDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF9tX3M4LmMNCj4gaW5kZXggZjhjNDQ5 YjI4YTAuLjNhNWQ3NzA1ZDQ1IDEwMDY0NA0KPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZtdWxsYnFfaW50X21fczguYw0KPiArKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZtdWxsYnFfaW50X21fczguYw0K PiBAQCAtMSwyMyArMSw0OSBAQA0KPiAgLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQg YXJtX3Y4XzFtX212ZV9vayB9ICovDQo+ICAvKiB7IGRnLWFkZC1vcHRpb25zIGFybV92OF8xbV9t dmUgfSAqLw0KPiAgLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1PMiIgfSAqLw0KPiArLyog eyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAqLw0KPiANCj4g ICNpbmNsdWRlICJhcm1fbXZlLmgiDQo+IA0KPiArI2lmZGVmIF9fY3BsdXNwbHVzDQo+ICtleHRl cm4gIkMiIHsNCj4gKyNlbmRpZg0KPiArDQo+ICsvKg0KPiArKipmb286DQo+ICsqKgkuLi4NCj4g KyoqCXZtc3IJcDAsICg/OmlwfGZwfHJbMC05XSspKD86CUAuKnwpDQo+ICsqKgkuLi4NCj4gKyoq CXZwc3QoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKioJdm11bGxidC5zOAlxWzAtOV0rLCBxWzAt OV0rLCBxWzAtOV0rKD86CUAuKnwpDQo+ICsqKgkuLi4NCj4gKyovDQo+ICBpbnQxNng4X3QNCj4g IGZvbyAoaW50MTZ4OF90IGluYWN0aXZlLCBpbnQ4eDE2X3QgYSwgaW50OHgxNl90IGIsIG12ZV9w cmVkMTZfdCBwKQ0KPiAgew0KPiAgICByZXR1cm4gdm11bGxicV9pbnRfbV9zOCAoaW5hY3RpdmUs IGEsIGIsIHApOw0KPiAgfQ0KPiANCj4gLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAi dnBzdCIgfSB9ICovDQo+IC0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInZtdWxsYnQu czgiICB9ICB9ICovDQo+IA0KPiArLyoNCj4gKyoqZm9vMToNCj4gKyoqCS4uLg0KPiArKioJdm1z cglwMCwgKD86aXB8ZnB8clswLTldKykoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKioJdnBzdCg/ OglALip8KQ0KPiArKioJLi4uDQo+ICsqKgl2bXVsbGJ0LnM4CXFbMC05XSssIHFbMC05XSssIHFb MC05XSsoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKi8NCj4gIGludDE2eDhfdA0KPiAgZm9vMSAo aW50MTZ4OF90IGluYWN0aXZlLCBpbnQ4eDE2X3QgYSwgaW50OHgxNl90IGIsIG12ZV9wcmVkMTZf dCBwKQ0KPiAgew0KPiAgICByZXR1cm4gdm11bGxicV9pbnRfbSAoaW5hY3RpdmUsIGEsIGIsIHAp Ow0KPiAgfQ0KPiANCj4gLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidnBzdCIgfSB9 ICovDQo+IC0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInZtdWxsYnQuczgiICB9ICB9 ICovDQo+ICsjaWZkZWYgX19jcGx1c3BsdXMNCj4gK30NCj4gKyNlbmRpZg0KPiArDQo+ICsvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICJfX0FSTV91bmRlZiIgfSB9ICovDQo+IFwg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF9tX3UxNi5jDQo+IGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF9tX3Ux Ni5jDQo+IGluZGV4IGRkNmVkNmI3MWE2Li41ZTMyN2QyNWE5YiAxMDA2NDQNCj4gLS0tIGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF9tX3Ux Ni5jDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mv dm11bGxicV9pbnRfbV91MTYuYw0KPiBAQCAtMSwyMyArMSw0OSBAQA0KPiAgLyogeyBkZy1yZXF1 aXJlLWVmZmVjdGl2ZS10YXJnZXQgYXJtX3Y4XzFtX212ZV9vayB9ICovDQo+ICAvKiB7IGRnLWFk ZC1vcHRpb25zIGFybV92OF8xbV9tdmUgfSAqLw0KPiAgLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlv bnMgIi1PMiIgfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAi KioiICIiIH0gfSAqLw0KPiANCj4gICNpbmNsdWRlICJhcm1fbXZlLmgiDQo+IA0KPiArI2lmZGVm IF9fY3BsdXNwbHVzDQo+ICtleHRlcm4gIkMiIHsNCj4gKyNlbmRpZg0KPiArDQo+ICsvKg0KPiAr Kipmb286DQo+ICsqKgkuLi4NCj4gKyoqCXZtc3IJcDAsICg/OmlwfGZwfHJbMC05XSspKD86CUAu KnwpDQo+ICsqKgkuLi4NCj4gKyoqCXZwc3QoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKioJdm11 bGxidC51MTYJcVswLTldKywgcVswLTldKywgcVswLTldKyg/OglALip8KQ0KPiArKioJLi4uDQo+ ICsqLw0KPiAgdWludDMyeDRfdA0KPiAgZm9vICh1aW50MzJ4NF90IGluYWN0aXZlLCB1aW50MTZ4 OF90IGEsIHVpbnQxNng4X3QgYiwgbXZlX3ByZWQxNl90IHApDQo+ICB7DQo+ICAgIHJldHVybiB2 bXVsbGJxX2ludF9tX3UxNiAoaW5hY3RpdmUsIGEsIGIsIHApOw0KPiAgfQ0KPiANCj4gLS8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidnBzdCIgfSB9ICovDQo+IC0vKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXIgInZtdWxsYnQudTE2IiAgfSAgfSAqLw0KPiANCj4gKy8qDQo+ICsq KmZvbzE6DQo+ICsqKgkuLi4NCj4gKyoqCXZtc3IJcDAsICg/OmlwfGZwfHJbMC05XSspKD86CUAu KnwpDQo+ICsqKgkuLi4NCj4gKyoqCXZwc3QoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKioJdm11 bGxidC51MTYJcVswLTldKywgcVswLTldKywgcVswLTldKyg/OglALip8KQ0KPiArKioJLi4uDQo+ ICsqLw0KPiAgdWludDMyeDRfdA0KPiAgZm9vMSAodWludDMyeDRfdCBpbmFjdGl2ZSwgdWludDE2 eDhfdCBhLCB1aW50MTZ4OF90IGIsIG12ZV9wcmVkMTZfdCBwKQ0KPiAgew0KPiAgICByZXR1cm4g dm11bGxicV9pbnRfbSAoaW5hY3RpdmUsIGEsIGIsIHApOw0KPiAgfQ0KPiANCj4gLS8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidnBzdCIgfSB9ICovDQo+IC0vKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXIgInZtdWxsYnQudTE2IiAgfSAgfSAqLw0KPiArI2lmZGVmIF9fY3BsdXNw bHVzDQo+ICt9DQo+ICsjZW5kaWYNCj4gKw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLW5vdCAiX19BUk1fdW5kZWYiIH0gfSAqLw0KPiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUNCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJp bnNpY3Mvdm11bGxicV9pbnRfbV91MzIuYw0KPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9h cm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfbV91MzIuYw0KPiBpbmRleCA4NWNlNzVlN2Rk OC4uZmIyZGU5OTRkZDggMTAwNjQ0DQo+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9h cm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfbV91MzIuYw0KPiArKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZtdWxsYnFfaW50X21fdTMyLmMNCj4g QEAgLTEsMjMgKzEsNDkgQEANCj4gIC8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFy bV92OF8xbV9tdmVfb2sgfSAqLw0KPiAgLyogeyBkZy1hZGQtb3B0aW9ucyBhcm1fdjhfMW1fbXZl IH0gKi8NCj4gIC8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItTzIiIH0gKi8NCj4gKy8qIHsg ZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8NCj4gDQo+ICAj aW5jbHVkZSAiYXJtX212ZS5oIg0KPiANCj4gKyNpZmRlZiBfX2NwbHVzcGx1cw0KPiArZXh0ZXJu ICJDIiB7DQo+ICsjZW5kaWYNCj4gKw0KPiArLyoNCj4gKyoqZm9vOg0KPiArKioJLi4uDQo+ICsq Kgl2bXNyCXAwLCAoPzppcHxmcHxyWzAtOV0rKSg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqKgl2 cHN0KD86CUAuKnwpDQo+ICsqKgkuLi4NCj4gKyoqCXZtdWxsYnQudTMyCXFbMC05XSssIHFbMC05 XSssIHFbMC05XSsoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKi8NCj4gIHVpbnQ2NHgyX3QNCj4g IGZvbyAodWludDY0eDJfdCBpbmFjdGl2ZSwgdWludDMyeDRfdCBhLCB1aW50MzJ4NF90IGIsIG12 ZV9wcmVkMTZfdCBwKQ0KPiAgew0KPiAgICByZXR1cm4gdm11bGxicV9pbnRfbV91MzIgKGluYWN0 aXZlLCBhLCBiLCBwKTsNCj4gIH0NCj4gDQo+IC0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXIgInZwc3QiIH0gfSAqLw0KPiAtLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2bXVs bGJ0LnUzMiIgIH0gIH0gKi8NCj4gDQo+ICsvKg0KPiArKipmb28xOg0KPiArKioJLi4uDQo+ICsq Kgl2bXNyCXAwLCAoPzppcHxmcHxyWzAtOV0rKSg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqKgl2 cHN0KD86CUAuKnwpDQo+ICsqKgkuLi4NCj4gKyoqCXZtdWxsYnQudTMyCXFbMC05XSssIHFbMC05 XSssIHFbMC05XSsoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKi8NCj4gIHVpbnQ2NHgyX3QNCj4g IGZvbzEgKHVpbnQ2NHgyX3QgaW5hY3RpdmUsIHVpbnQzMng0X3QgYSwgdWludDMyeDRfdCBiLCBt dmVfcHJlZDE2X3QgcCkNCj4gIHsNCj4gICAgcmV0dXJuIHZtdWxsYnFfaW50X20gKGluYWN0aXZl LCBhLCBiLCBwKTsNCj4gIH0NCj4gDQo+IC0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIg InZwc3QiIH0gfSAqLw0KPiAtLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2bXVsbGJ0 LnUzMiIgIH0gIH0gKi8NCj4gKyNpZmRlZiBfX2NwbHVzcGx1cw0KPiArfQ0KPiArI2VuZGlmDQo+ ICsNCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3QgIl9fQVJNX3VuZGVmIiB9 IH0gKi8NCj4gXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQo+IGRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZtdWxsYnFfaW50X21fdTgu Yw0KPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxi cV9pbnRfbV91OC5jDQo+IGluZGV4IGQxMzFhNWQ5ZmQ3Li40Y2MwNmM0ZWYyOCAxMDA2NDQNCj4g LS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJx X2ludF9tX3U4LmMNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50 cmluc2ljcy92bXVsbGJxX2ludF9tX3U4LmMNCj4gQEAgLTEsMjMgKzEsNDkgQEANCj4gIC8qIHsg ZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV92OF8xbV9tdmVfb2sgfSAqLw0KPiAgLyog eyBkZy1hZGQtb3B0aW9ucyBhcm1fdjhfMW1fbXZlIH0gKi8NCj4gIC8qIHsgZGctYWRkaXRpb25h bC1vcHRpb25zICItTzIiIH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1i b2RpZXMgIioqIiAiIiB9IH0gKi8NCj4gDQo+ICAjaW5jbHVkZSAiYXJtX212ZS5oIg0KPiANCj4g KyNpZmRlZiBfX2NwbHVzcGx1cw0KPiArZXh0ZXJuICJDIiB7DQo+ICsjZW5kaWYNCj4gKw0KPiAr LyoNCj4gKyoqZm9vOg0KPiArKioJLi4uDQo+ICsqKgl2bXNyCXAwLCAoPzppcHxmcHxyWzAtOV0r KSg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqKgl2cHN0KD86CUAuKnwpDQo+ICsqKgkuLi4NCj4g KyoqCXZtdWxsYnQudTgJcVswLTldKywgcVswLTldKywgcVswLTldKyg/OglALip8KQ0KPiArKioJ Li4uDQo+ICsqLw0KPiAgdWludDE2eDhfdA0KPiAgZm9vICh1aW50MTZ4OF90IGluYWN0aXZlLCB1 aW50OHgxNl90IGEsIHVpbnQ4eDE2X3QgYiwgbXZlX3ByZWQxNl90IHApDQo+ICB7DQo+ICAgIHJl dHVybiB2bXVsbGJxX2ludF9tX3U4IChpbmFjdGl2ZSwgYSwgYiwgcCk7DQo+ICB9DQo+IA0KPiAt LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2cHN0IiB9IH0gKi8NCj4gLS8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidm11bGxidC51OCIgIH0gIH0gKi8NCj4gDQo+ICsvKg0K PiArKipmb28xOg0KPiArKioJLi4uDQo+ICsqKgl2bXNyCXAwLCAoPzppcHxmcHxyWzAtOV0rKSg/ OglALip8KQ0KPiArKioJLi4uDQo+ICsqKgl2cHN0KD86CUAuKnwpDQo+ICsqKgkuLi4NCj4gKyoq CXZtdWxsYnQudTgJcVswLTldKywgcVswLTldKywgcVswLTldKyg/OglALip8KQ0KPiArKioJLi4u DQo+ICsqLw0KPiAgdWludDE2eDhfdA0KPiAgZm9vMSAodWludDE2eDhfdCBpbmFjdGl2ZSwgdWlu dDh4MTZfdCBhLCB1aW50OHgxNl90IGIsIG12ZV9wcmVkMTZfdCBwKQ0KPiAgew0KPiAgICByZXR1 cm4gdm11bGxicV9pbnRfbSAoaW5hY3RpdmUsIGEsIGIsIHApOw0KPiAgfQ0KPiANCj4gLS8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidnBzdCIgfSB9ICovDQo+IC0vKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXIgInZtdWxsYnQudTgiICB9ICB9ICovDQo+ICsjaWZkZWYgX19jcGx1 c3BsdXMNCj4gK30NCj4gKyNlbmRpZg0KPiArDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItbm90ICJfX0FSTV91bmRlZiIgfSB9ICovDQo+IFwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQ0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50 cmluc2ljcy92bXVsbGJxX2ludF9zMTYuYw0KPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9h cm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfczE2LmMNCj4gaW5kZXggMjJmNGQyN2Y2Y2Mu LjE2YzA5ODIzODZiIDEwMDY0NA0KPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJt L212ZS9pbnRyaW5zaWNzL3ZtdWxsYnFfaW50X3MxNi5jDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfczE2LmMNCj4gQEAgLTEs MjEgKzEsNDEgQEANCj4gIC8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV92OF8x bV9tdmVfb2sgfSAqLw0KPiAgLyogeyBkZy1hZGQtb3B0aW9ucyBhcm1fdjhfMW1fbXZlIH0gKi8N Cj4gIC8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItTzIiIH0gKi8NCj4gKy8qIHsgZGctZmlu YWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8NCj4gDQo+ICAjaW5jbHVk ZSAiYXJtX212ZS5oIg0KPiANCj4gKyNpZmRlZiBfX2NwbHVzcGx1cw0KPiArZXh0ZXJuICJDIiB7 DQo+ICsjZW5kaWYNCj4gKw0KPiArLyoNCj4gKyoqZm9vOg0KPiArKioJLi4uDQo+ICsqKgl2bXVs bGIuczE2CXFbMC05XSssIHFbMC05XSssIHFbMC05XSsoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiAr Ki8NCj4gIGludDMyeDRfdA0KPiAgZm9vIChpbnQxNng4X3QgYSwgaW50MTZ4OF90IGIpDQo+ICB7 DQo+ICAgIHJldHVybiB2bXVsbGJxX2ludF9zMTYgKGEsIGIpOw0KPiAgfQ0KPiANCj4gLS8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidm11bGxiLnMxNiIgIH0gIH0gKi8NCj4gDQo+ICsv Kg0KPiArKipmb28xOg0KPiArKioJLi4uDQo+ICsqKgl2bXVsbGIuczE2CXFbMC05XSssIHFbMC05 XSssIHFbMC05XSsoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKi8NCj4gIGludDMyeDRfdA0KPiAg Zm9vMSAoaW50MTZ4OF90IGEsIGludDE2eDhfdCBiKQ0KPiAgew0KPiAgICByZXR1cm4gdm11bGxi cV9pbnQgKGEsIGIpOw0KPiAgfQ0KPiANCj4gLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ciAidm11bGxiLnMxNiIgIH0gIH0gKi8NCj4gKyNpZmRlZiBfX2NwbHVzcGx1cw0KPiArfQ0KPiAr I2VuZGlmDQo+ICsNCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3QgIl9fQVJN X3VuZGVmIiB9IH0gKi8NCj4gXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQo+IGRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZtdWxsYnFf aW50X3MzMi5jDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2lj cy92bXVsbGJxX2ludF9zMzIuYw0KPiBpbmRleCA2ZTY3N2YyNmI4NC4uZTBhODJkNmU2NDAgMTAw NjQ0DQo+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mv dm11bGxicV9pbnRfczMyLmMNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9t dmUvaW50cmluc2ljcy92bXVsbGJxX2ludF9zMzIuYw0KPiBAQCAtMSwyMSArMSw0MSBAQA0KPiAg LyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgYXJtX3Y4XzFtX212ZV9vayB9ICovDQo+ ICAvKiB7IGRnLWFkZC1vcHRpb25zIGFybV92OF8xbV9tdmUgfSAqLw0KPiAgLyogeyBkZy1hZGRp dGlvbmFsLW9wdGlvbnMgIi1PMiIgfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0 aW9uLWJvZGllcyAiKioiICIiIH0gfSAqLw0KPiANCj4gICNpbmNsdWRlICJhcm1fbXZlLmgiDQo+ IA0KPiArI2lmZGVmIF9fY3BsdXNwbHVzDQo+ICtleHRlcm4gIkMiIHsNCj4gKyNlbmRpZg0KPiAr DQo+ICsvKg0KPiArKipmb286DQo+ICsqKgkuLi4NCj4gKyoqCXZtdWxsYi5zMzIJcVswLTldKywg cVswLTldKywgcVswLTldKyg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqLw0KPiAgaW50NjR4Ml90 DQo+ICBmb28gKGludDMyeDRfdCBhLCBpbnQzMng0X3QgYikNCj4gIHsNCj4gICAgcmV0dXJuIHZt dWxsYnFfaW50X3MzMiAoYSwgYik7DQo+ICB9DQo+IA0KPiAtLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyICJ2bXVsbGIuczMyIiAgfSAgfSAqLw0KPiANCj4gKy8qDQo+ICsqKmZvbzE6DQo+ ICsqKgkuLi4NCj4gKyoqCXZtdWxsYi5zMzIJcVswLTldKywgcVswLTldKywgcVswLTldKyg/OglA Lip8KQ0KPiArKioJLi4uDQo+ICsqLw0KPiAgaW50NjR4Ml90DQo+ICBmb28xIChpbnQzMng0X3Qg YSwgaW50MzJ4NF90IGIpDQo+ICB7DQo+ICAgIHJldHVybiB2bXVsbGJxX2ludCAoYSwgYik7DQo+ ICB9DQo+IA0KPiAtLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2bXVsbGIuczMyIiAg fSAgfSAqLw0KPiArI2lmZGVmIF9fY3BsdXNwbHVzDQo+ICt9DQo+ICsjZW5kaWYNCj4gKw0KPiAr LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAiX19BUk1fdW5kZWYiIH0gfSAqLw0K PiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfczguYw0KPiBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfczgu Yw0KPiBpbmRleCBmNDBiOGE2YzRkZC4uMDMxYTQzM2MyYmIgMTAwNjQ0DQo+IC0tLSBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfczguYw0K PiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZtdWxs YnFfaW50X3M4LmMNCj4gQEAgLTEsMjEgKzEsNDEgQEANCj4gIC8qIHsgZGctcmVxdWlyZS1lZmZl Y3RpdmUtdGFyZ2V0IGFybV92OF8xbV9tdmVfb2sgfSAqLw0KPiAgLyogeyBkZy1hZGQtb3B0aW9u cyBhcm1fdjhfMW1fbXZlIH0gKi8NCj4gIC8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItTzIi IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9 IH0gKi8NCj4gDQo+ICAjaW5jbHVkZSAiYXJtX212ZS5oIg0KPiANCj4gKyNpZmRlZiBfX2NwbHVz cGx1cw0KPiArZXh0ZXJuICJDIiB7DQo+ICsjZW5kaWYNCj4gKw0KPiArLyoNCj4gKyoqZm9vOg0K PiArKioJLi4uDQo+ICsqKgl2bXVsbGIuczgJcVswLTldKywgcVswLTldKywgcVswLTldKyg/OglA Lip8KQ0KPiArKioJLi4uDQo+ICsqLw0KPiAgaW50MTZ4OF90DQo+ICBmb28gKGludDh4MTZfdCBh LCBpbnQ4eDE2X3QgYikNCj4gIHsNCj4gICAgcmV0dXJuIHZtdWxsYnFfaW50X3M4IChhLCBiKTsN Cj4gIH0NCj4gDQo+IC0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInZtdWxsYi5zOCIg IH0gIH0gKi8NCj4gDQo+ICsvKg0KPiArKipmb28xOg0KPiArKioJLi4uDQo+ICsqKgl2bXVsbGIu czgJcVswLTldKywgcVswLTldKywgcVswLTldKyg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqLw0K PiAgaW50MTZ4OF90DQo+ICBmb28xIChpbnQ4eDE2X3QgYSwgaW50OHgxNl90IGIpDQo+ICB7DQo+ ICAgIHJldHVybiB2bXVsbGJxX2ludCAoYSwgYik7DQo+ICB9DQo+IA0KPiAtLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyICJ2bXVsbGIuczgiICB9ICB9ICovDQo+ICsjaWZkZWYgX19jcGx1 c3BsdXMNCj4gK30NCj4gKyNlbmRpZg0KPiArDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItbm90ICJfX0FSTV91bmRlZiIgfSB9ICovDQo+IFwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg ZmlsZQ0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50 cmluc2ljcy92bXVsbGJxX2ludF91MTYuYw0KPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9h cm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfdTE2LmMNCj4gaW5kZXggMzUyOWFiMjc3MmQu LjRiYjE5YmY1Y2ZmIDEwMDY0NA0KPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJt L212ZS9pbnRyaW5zaWNzL3ZtdWxsYnFfaW50X3UxNi5jDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfdTE2LmMNCj4gQEAgLTEs MjEgKzEsNDEgQEANCj4gIC8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV92OF8x bV9tdmVfb2sgfSAqLw0KPiAgLyogeyBkZy1hZGQtb3B0aW9ucyBhcm1fdjhfMW1fbXZlIH0gKi8N Cj4gIC8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItTzIiIH0gKi8NCj4gKy8qIHsgZGctZmlu YWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8NCj4gDQo+ICAjaW5jbHVk ZSAiYXJtX212ZS5oIg0KPiANCj4gKyNpZmRlZiBfX2NwbHVzcGx1cw0KPiArZXh0ZXJuICJDIiB7 DQo+ICsjZW5kaWYNCj4gKw0KPiArLyoNCj4gKyoqZm9vOg0KPiArKioJLi4uDQo+ICsqKgl2bXVs bGIudTE2CXFbMC05XSssIHFbMC05XSssIHFbMC05XSsoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiAr Ki8NCj4gIHVpbnQzMng0X3QNCj4gIGZvbyAodWludDE2eDhfdCBhLCB1aW50MTZ4OF90IGIpDQo+ ICB7DQo+ICAgIHJldHVybiB2bXVsbGJxX2ludF91MTYgKGEsIGIpOw0KPiAgfQ0KPiANCj4gLS8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidm11bGxiLnUxNiIgIH0gIH0gKi8NCj4gDQo+ ICsvKg0KPiArKipmb28xOg0KPiArKioJLi4uDQo+ICsqKgl2bXVsbGIudTE2CXFbMC05XSssIHFb MC05XSssIHFbMC05XSsoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKi8NCj4gIHVpbnQzMng0X3QN Cj4gIGZvbzEgKHVpbnQxNng4X3QgYSwgdWludDE2eDhfdCBiKQ0KPiAgew0KPiAgICByZXR1cm4g dm11bGxicV9pbnQgKGEsIGIpOw0KPiAgfQ0KPiANCj4gLS8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlciAidm11bGxiLnUxNiIgIH0gIH0gKi8NCj4gKyNpZmRlZiBfX2NwbHVzcGx1cw0KPiAr fQ0KPiArI2VuZGlmDQo+ICsNCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qg Il9fQVJNX3VuZGVmIiB9IH0gKi8NCj4gXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQo+IGRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3Zt dWxsYnFfaW50X3UzMi5jDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50 cmluc2ljcy92bXVsbGJxX2ludF91MzIuYw0KPiBpbmRleCBkODQzZDJiZjVmZS4uZDQ2MWVkOWY5 YzcgMTAwNjQ0DQo+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJp bnNpY3Mvdm11bGxicV9pbnRfdTMyLmMNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF91MzIuYw0KPiBAQCAtMSwyMSArMSw0MSBA QA0KPiAgLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgYXJtX3Y4XzFtX212ZV9vayB9 ICovDQo+ICAvKiB7IGRnLWFkZC1vcHRpb25zIGFybV92OF8xbV9tdmUgfSAqLw0KPiAgLyogeyBk Zy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1PMiIgfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IGNoZWNr LWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAqLw0KPiANCj4gICNpbmNsdWRlICJhcm1fbXZl LmgiDQo+IA0KPiArI2lmZGVmIF9fY3BsdXNwbHVzDQo+ICtleHRlcm4gIkMiIHsNCj4gKyNlbmRp Zg0KPiArDQo+ICsvKg0KPiArKipmb286DQo+ICsqKgkuLi4NCj4gKyoqCXZtdWxsYi51MzIJcVsw LTldKywgcVswLTldKywgcVswLTldKyg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqLw0KPiAgdWlu dDY0eDJfdA0KPiAgZm9vICh1aW50MzJ4NF90IGEsIHVpbnQzMng0X3QgYikNCj4gIHsNCj4gICAg cmV0dXJuIHZtdWxsYnFfaW50X3UzMiAoYSwgYik7DQo+ICB9DQo+IA0KPiAtLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyICJ2bXVsbGIudTMyIiAgfSAgfSAqLw0KPiANCj4gKy8qDQo+ICsq KmZvbzE6DQo+ICsqKgkuLi4NCj4gKyoqCXZtdWxsYi51MzIJcVswLTldKywgcVswLTldKywgcVsw LTldKyg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqLw0KPiAgdWludDY0eDJfdA0KPiAgZm9vMSAo dWludDMyeDRfdCBhLCB1aW50MzJ4NF90IGIpDQo+ICB7DQo+ICAgIHJldHVybiB2bXVsbGJxX2lu dCAoYSwgYik7DQo+ICB9DQo+IA0KPiAtLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2 bXVsbGIudTMyIiAgfSAgfSAqLw0KPiArI2lmZGVmIF9fY3BsdXNwbHVzDQo+ICt9DQo+ICsjZW5k aWYNCj4gKw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAiX19BUk1fdW5k ZWYiIH0gfSAqLw0KPiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCj4gZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRf dTguYw0KPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11 bGxicV9pbnRfdTguYw0KPiBpbmRleCA2MjY4YzQ2M2VhZC4uYzA3OTA3NzhiMmQgMTAwNjQ0DQo+ IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxi cV9pbnRfdTguYw0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRy aW5zaWNzL3ZtdWxsYnFfaW50X3U4LmMNCj4gQEAgLTEsMjEgKzEsNDEgQEANCj4gIC8qIHsgZGct cmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV92OF8xbV9tdmVfb2sgfSAqLw0KPiAgLyogeyBk Zy1hZGQtb3B0aW9ucyBhcm1fdjhfMW1fbXZlIH0gKi8NCj4gIC8qIHsgZGctYWRkaXRpb25hbC1v cHRpb25zICItTzIiIH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2Rp ZXMgIioqIiAiIiB9IH0gKi8NCj4gDQo+ICAjaW5jbHVkZSAiYXJtX212ZS5oIg0KPiANCj4gKyNp ZmRlZiBfX2NwbHVzcGx1cw0KPiArZXh0ZXJuICJDIiB7DQo+ICsjZW5kaWYNCj4gKw0KPiArLyoN Cj4gKyoqZm9vOg0KPiArKioJLi4uDQo+ICsqKgl2bXVsbGIudTgJcVswLTldKywgcVswLTldKywg cVswLTldKyg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqLw0KPiAgdWludDE2eDhfdA0KPiAgZm9v ICh1aW50OHgxNl90IGEsIHVpbnQ4eDE2X3QgYikNCj4gIHsNCj4gICAgcmV0dXJuIHZtdWxsYnFf aW50X3U4IChhLCBiKTsNCj4gIH0NCj4gDQo+IC0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXIgInZtdWxsYi51OCIgIH0gIH0gKi8NCj4gDQo+ICsvKg0KPiArKipmb28xOg0KPiArKioJLi4u DQo+ICsqKgl2bXVsbGIudTgJcVswLTldKywgcVswLTldKywgcVswLTldKyg/OglALip8KQ0KPiAr KioJLi4uDQo+ICsqLw0KPiAgdWludDE2eDhfdA0KPiAgZm9vMSAodWludDh4MTZfdCBhLCB1aW50 OHgxNl90IGIpDQo+ICB7DQo+ICAgIHJldHVybiB2bXVsbGJxX2ludCAoYSwgYik7DQo+ICB9DQo+ IA0KPiAtLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2bXVsbGIudTgiICB9ICB9ICov DQo+ICsjaWZkZWYgX19jcGx1c3BsdXMNCj4gK30NCj4gKyNlbmRpZg0KPiArDQo+ICsvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICJfX0FSTV91bmRlZiIgfSB9ICovDQo+IFwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF94X3MxNi5jDQo+IGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF94X3MxNi5j DQo+IGluZGV4IDg3ZjhlMjFhN2QwLi5lZTgzY2E2MTE1OCAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF94X3MxNi5j DQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11 bGxicV9pbnRfeF9zMTYuYw0KPiBAQCAtMSwyMiArMSw0OSBAQA0KPiAgLyogeyBkZy1yZXF1aXJl LWVmZmVjdGl2ZS10YXJnZXQgYXJtX3Y4XzFtX212ZV9vayB9ICovDQo+ICAvKiB7IGRnLWFkZC1v cHRpb25zIGFybV92OF8xbV9tdmUgfSAqLw0KPiAgLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMg Ii1PMiIgfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioi ICIiIH0gfSAqLw0KPiANCj4gICNpbmNsdWRlICJhcm1fbXZlLmgiDQo+IA0KPiArI2lmZGVmIF9f Y3BsdXNwbHVzDQo+ICtleHRlcm4gIkMiIHsNCj4gKyNlbmRpZg0KPiArDQo+ICsvKg0KPiArKipm b286DQo+ICsqKgkuLi4NCj4gKyoqCXZtc3IJcDAsICg/OmlwfGZwfHJbMC05XSspKD86CUAuKnwp DQo+ICsqKgkuLi4NCj4gKyoqCXZwc3QoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKioJdm11bGxi dC5zMTYJcVswLTldKywgcVswLTldKywgcVswLTldKyg/OglALip8KQ0KPiArKioJLi4uDQo+ICsq Lw0KPiAgaW50MzJ4NF90DQo+ICBmb28gKGludDE2eDhfdCBhLCBpbnQxNng4X3QgYiwgbXZlX3By ZWQxNl90IHApDQo+ICB7DQo+ICAgIHJldHVybiB2bXVsbGJxX2ludF94X3MxNiAoYSwgYiwgcCk7 DQo+ICB9DQo+IA0KPiAtLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2cHN0IiB9IH0g Ki8NCj4gLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidm11bGxidC5zMTYiICB9ICB9 ICovDQo+IA0KPiArLyoNCj4gKyoqZm9vMToNCj4gKyoqCS4uLg0KPiArKioJdm1zcglwMCwgKD86 aXB8ZnB8clswLTldKykoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKioJdnBzdCg/OglALip8KQ0K PiArKioJLi4uDQo+ICsqKgl2bXVsbGJ0LnMxNglxWzAtOV0rLCBxWzAtOV0rLCBxWzAtOV0rKD86 CUAuKnwpDQo+ICsqKgkuLi4NCj4gKyovDQo+ICBpbnQzMng0X3QNCj4gIGZvbzEgKGludDE2eDhf dCBhLCBpbnQxNng4X3QgYiwgbXZlX3ByZWQxNl90IHApDQo+ICB7DQo+ICAgIHJldHVybiB2bXVs bGJxX2ludF94IChhLCBiLCBwKTsNCj4gIH0NCj4gDQo+IC0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXIgInZwc3QiIH0gfSAqLw0KPiArI2lmZGVmIF9fY3BsdXNwbHVzDQo+ICt9DQo+ICsj ZW5kaWYNCj4gKw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAiX19BUk1f dW5kZWYiIH0gfSAqLw0KPiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCj4gZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9p bnRfeF9zMzIuYw0KPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNp Y3Mvdm11bGxicV9pbnRfeF9zMzIuYw0KPiBpbmRleCA1ZTU2MzcyOGE0YS4uNDJhZTMzMjRjZDkg MTAwNjQ0DQo+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNp Y3Mvdm11bGxicV9pbnRfeF9zMzIuYw0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv YXJtL212ZS9pbnRyaW5zaWNzL3ZtdWxsYnFfaW50X3hfczMyLmMNCj4gQEAgLTEsMjIgKzEsNDkg QEANCj4gIC8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV92OF8xbV9tdmVfb2sg fSAqLw0KPiAgLyogeyBkZy1hZGQtb3B0aW9ucyBhcm1fdjhfMW1fbXZlIH0gKi8NCj4gIC8qIHsg ZGctYWRkaXRpb25hbC1vcHRpb25zICItTzIiIH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBjaGVj ay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8NCj4gDQo+ICAjaW5jbHVkZSAiYXJtX212 ZS5oIg0KPiANCj4gKyNpZmRlZiBfX2NwbHVzcGx1cw0KPiArZXh0ZXJuICJDIiB7DQo+ICsjZW5k aWYNCj4gKw0KPiArLyoNCj4gKyoqZm9vOg0KPiArKioJLi4uDQo+ICsqKgl2bXNyCXAwLCAoPzpp cHxmcHxyWzAtOV0rKSg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqKgl2cHN0KD86CUAuKnwpDQo+ ICsqKgkuLi4NCj4gKyoqCXZtdWxsYnQuczMyCXFbMC05XSssIHFbMC05XSssIHFbMC05XSsoPzoJ QC4qfCkNCj4gKyoqCS4uLg0KPiArKi8NCj4gIGludDY0eDJfdA0KPiAgZm9vIChpbnQzMng0X3Qg YSwgaW50MzJ4NF90IGIsIG12ZV9wcmVkMTZfdCBwKQ0KPiAgew0KPiAgICByZXR1cm4gdm11bGxi cV9pbnRfeF9zMzIgKGEsIGIsIHApOw0KPiAgfQ0KPiANCj4gLS8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlciAidnBzdCIgfSB9ICovDQo+IC0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXIgInZtdWxsYnQuczMyIiAgfSAgfSAqLw0KPiANCj4gKy8qDQo+ICsqKmZvbzE6DQo+ICsqKgku Li4NCj4gKyoqCXZtc3IJcDAsICg/OmlwfGZwfHJbMC05XSspKD86CUAuKnwpDQo+ICsqKgkuLi4N Cj4gKyoqCXZwc3QoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKioJdm11bGxidC5zMzIJcVswLTld KywgcVswLTldKywgcVswLTldKyg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqLw0KPiAgaW50NjR4 Ml90DQo+ICBmb28xIChpbnQzMng0X3QgYSwgaW50MzJ4NF90IGIsIG12ZV9wcmVkMTZfdCBwKQ0K PiAgew0KPiAgICByZXR1cm4gdm11bGxicV9pbnRfeCAoYSwgYiwgcCk7DQo+ICB9DQo+IA0KPiAt LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2cHN0IiB9IH0gKi8NCj4gKyNpZmRlZiBf X2NwbHVzcGx1cw0KPiArfQ0KPiArI2VuZGlmDQo+ICsNCj4gKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci1ub3QgIl9fQVJNX3VuZGVmIiB9IH0gKi8NCj4gXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlDQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212 ZS9pbnRyaW5zaWNzL3ZtdWxsYnFfaW50X3hfczguYw0KPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfeF9zOC5jDQo+IGluZGV4IGIyY2E0 MTM0ZWU1Li44ZGNmOWI3MjZiMCAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF94X3M4LmMNCj4gKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF94X3M4LmMN Cj4gQEAgLTEsMjIgKzEsNDkgQEANCj4gIC8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0 IGFybV92OF8xbV9tdmVfb2sgfSAqLw0KPiAgLyogeyBkZy1hZGQtb3B0aW9ucyBhcm1fdjhfMW1f bXZlIH0gKi8NCj4gIC8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItTzIiIH0gKi8NCj4gKy8q IHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8NCj4gDQo+ ICAjaW5jbHVkZSAiYXJtX212ZS5oIg0KPiANCj4gKyNpZmRlZiBfX2NwbHVzcGx1cw0KPiArZXh0 ZXJuICJDIiB7DQo+ICsjZW5kaWYNCj4gKw0KPiArLyoNCj4gKyoqZm9vOg0KPiArKioJLi4uDQo+ ICsqKgl2bXNyCXAwLCAoPzppcHxmcHxyWzAtOV0rKSg/OglALip8KQ0KPiArKioJLi4uDQo+ICsq Kgl2cHN0KD86CUAuKnwpDQo+ICsqKgkuLi4NCj4gKyoqCXZtdWxsYnQuczgJcVswLTldKywgcVsw LTldKywgcVswLTldKyg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqLw0KPiAgaW50MTZ4OF90DQo+ ICBmb28gKGludDh4MTZfdCBhLCBpbnQ4eDE2X3QgYiwgbXZlX3ByZWQxNl90IHApDQo+ICB7DQo+ ICAgIHJldHVybiB2bXVsbGJxX2ludF94X3M4IChhLCBiLCBwKTsNCj4gIH0NCj4gDQo+IC0vKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInZwc3QiIH0gfSAqLw0KPiAtLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyICJ2bXVsbGJ0LnM4IiAgfSAgfSAqLw0KPiANCj4gKy8qDQo+ICsq KmZvbzE6DQo+ICsqKgkuLi4NCj4gKyoqCXZtc3IJcDAsICg/OmlwfGZwfHJbMC05XSspKD86CUAu KnwpDQo+ICsqKgkuLi4NCj4gKyoqCXZwc3QoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKioJdm11 bGxidC5zOAlxWzAtOV0rLCBxWzAtOV0rLCBxWzAtOV0rKD86CUAuKnwpDQo+ICsqKgkuLi4NCj4g KyovDQo+ICBpbnQxNng4X3QNCj4gIGZvbzEgKGludDh4MTZfdCBhLCBpbnQ4eDE2X3QgYiwgbXZl X3ByZWQxNl90IHApDQo+ICB7DQo+ICAgIHJldHVybiB2bXVsbGJxX2ludF94IChhLCBiLCBwKTsN Cj4gIH0NCj4gDQo+IC0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInZwc3QiIH0gfSAq Lw0KPiArI2lmZGVmIF9fY3BsdXNwbHVzDQo+ICt9DQo+ICsjZW5kaWYNCj4gKw0KPiArLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCAiX19BUk1fdW5kZWYiIH0gfSAqLw0KPiBcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUNCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfeF91MTYuYw0KPiBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfeF91MTYu Yw0KPiBpbmRleCAxNTI2OTEwMWZlNS4uMzEzMzBkYTlhOTMgMTAwNjQ0DQo+IC0tLSBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfeF91MTYu Yw0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3Zt dWxsYnFfaW50X3hfdTE2LmMNCj4gQEAgLTEsMjIgKzEsNDkgQEANCj4gIC8qIHsgZGctcmVxdWly ZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV92OF8xbV9tdmVfb2sgfSAqLw0KPiAgLyogeyBkZy1hZGQt b3B0aW9ucyBhcm1fdjhfMW1fbXZlIH0gKi8NCj4gIC8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25z ICItTzIiIH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioq IiAiIiB9IH0gKi8NCj4gDQo+ICAjaW5jbHVkZSAiYXJtX212ZS5oIg0KPiANCj4gKyNpZmRlZiBf X2NwbHVzcGx1cw0KPiArZXh0ZXJuICJDIiB7DQo+ICsjZW5kaWYNCj4gKw0KPiArLyoNCj4gKyoq Zm9vOg0KPiArKioJLi4uDQo+ICsqKgl2bXNyCXAwLCAoPzppcHxmcHxyWzAtOV0rKSg/OglALip8 KQ0KPiArKioJLi4uDQo+ICsqKgl2cHN0KD86CUAuKnwpDQo+ICsqKgkuLi4NCj4gKyoqCXZtdWxs YnQudTE2CXFbMC05XSssIHFbMC05XSssIHFbMC05XSsoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiAr Ki8NCj4gIHVpbnQzMng0X3QNCj4gIGZvbyAodWludDE2eDhfdCBhLCB1aW50MTZ4OF90IGIsIG12 ZV9wcmVkMTZfdCBwKQ0KPiAgew0KPiAgICByZXR1cm4gdm11bGxicV9pbnRfeF91MTYgKGEsIGIs IHApOw0KPiAgfQ0KPiANCj4gLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidnBzdCIg fSB9ICovDQo+IC0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInZtdWxsYnQudTE2IiAg fSAgfSAqLw0KPiANCj4gKy8qDQo+ICsqKmZvbzE6DQo+ICsqKgkuLi4NCj4gKyoqCXZtc3IJcDAs ICg/OmlwfGZwfHJbMC05XSspKD86CUAuKnwpDQo+ICsqKgkuLi4NCj4gKyoqCXZwc3QoPzoJQC4q fCkNCj4gKyoqCS4uLg0KPiArKioJdm11bGxidC51MTYJcVswLTldKywgcVswLTldKywgcVswLTld Kyg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqLw0KPiAgdWludDMyeDRfdA0KPiAgZm9vMSAodWlu dDE2eDhfdCBhLCB1aW50MTZ4OF90IGIsIG12ZV9wcmVkMTZfdCBwKQ0KPiAgew0KPiAgICByZXR1 cm4gdm11bGxicV9pbnRfeCAoYSwgYiwgcCk7DQo+ICB9DQo+IA0KPiAtLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyICJ2cHN0IiB9IH0gKi8NCj4gKyNpZmRlZiBfX2NwbHVzcGx1cw0KPiAr fQ0KPiArI2VuZGlmDQo+ICsNCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3Qg Il9fQVJNX3VuZGVmIiB9IH0gKi8NCj4gXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQo+IGRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3Zt dWxsYnFfaW50X3hfdTMyLmMNCj4gYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9p bnRyaW5zaWNzL3ZtdWxsYnFfaW50X3hfdTMyLmMNCj4gaW5kZXggN2E3ODM2MzAzZWMuLmI4ODJk NjQ0MzQ3IDEwMDY0NA0KPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9p bnRyaW5zaWNzL3ZtdWxsYnFfaW50X3hfdTMyLmMNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF94X3UzMi5jDQo+IEBAIC0xLDIy ICsxLDQ5IEBADQo+ICAvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBhcm1fdjhfMW1f bXZlX29rIH0gKi8NCj4gIC8qIHsgZGctYWRkLW9wdGlvbnMgYXJtX3Y4XzFtX212ZSB9ICovDQo+ ICAvKiB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLU8yIiB9ICovDQo+ICsvKiB7IGRnLWZpbmFs IHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICovDQo+IA0KPiAgI2luY2x1ZGUg ImFybV9tdmUuaCINCj4gDQo+ICsjaWZkZWYgX19jcGx1c3BsdXMNCj4gK2V4dGVybiAiQyIgew0K PiArI2VuZGlmDQo+ICsNCj4gKy8qDQo+ICsqKmZvbzoNCj4gKyoqCS4uLg0KPiArKioJdm1zcglw MCwgKD86aXB8ZnB8clswLTldKykoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKioJdnBzdCg/OglA Lip8KQ0KPiArKioJLi4uDQo+ICsqKgl2bXVsbGJ0LnUzMglxWzAtOV0rLCBxWzAtOV0rLCBxWzAt OV0rKD86CUAuKnwpDQo+ICsqKgkuLi4NCj4gKyovDQo+ICB1aW50NjR4Ml90DQo+ICBmb28gKHVp bnQzMng0X3QgYSwgdWludDMyeDRfdCBiLCBtdmVfcHJlZDE2X3QgcCkNCj4gIHsNCj4gICAgcmV0 dXJuIHZtdWxsYnFfaW50X3hfdTMyIChhLCBiLCBwKTsNCj4gIH0NCj4gDQo+IC0vKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXIgInZwc3QiIH0gfSAqLw0KPiAtLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyICJ2bXVsbGJ0LnUzMiIgIH0gIH0gKi8NCj4gDQo+ICsvKg0KPiArKipmb28x Og0KPiArKioJLi4uDQo+ICsqKgl2bXNyCXAwLCAoPzppcHxmcHxyWzAtOV0rKSg/OglALip8KQ0K PiArKioJLi4uDQo+ICsqKgl2cHN0KD86CUAuKnwpDQo+ICsqKgkuLi4NCj4gKyoqCXZtdWxsYnQu dTMyCXFbMC05XSssIHFbMC05XSssIHFbMC05XSsoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKi8N Cj4gIHVpbnQ2NHgyX3QNCj4gIGZvbzEgKHVpbnQzMng0X3QgYSwgdWludDMyeDRfdCBiLCBtdmVf cHJlZDE2X3QgcCkNCj4gIHsNCj4gICAgcmV0dXJuIHZtdWxsYnFfaW50X3ggKGEsIGIsIHApOw0K PiAgfQ0KPiANCj4gLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidnBzdCIgfSB9ICov DQo+ICsjaWZkZWYgX19jcGx1c3BsdXMNCj4gK30NCj4gKyNlbmRpZg0KPiArDQo+ICsvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICJfX0FSTV91bmRlZiIgfSB9ICovDQo+IFwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX2ludF94X3U4LmMNCj4gYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZtdWxsYnFfaW50X3hfdTguYw0K PiBpbmRleCBmNDIyYTNjNjZmMC4uNGI0MDIzNzRlYjcgMTAwNjQ0DQo+IC0tLSBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9pbnRfeF91OC5jDQo+ ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxi cV9pbnRfeF91OC5jDQo+IEBAIC0xLDIyICsxLDQ5IEBADQo+ICAvKiB7IGRnLXJlcXVpcmUtZWZm ZWN0aXZlLXRhcmdldCBhcm1fdjhfMW1fbXZlX29rIH0gKi8NCj4gIC8qIHsgZGctYWRkLW9wdGlv bnMgYXJtX3Y4XzFtX212ZSB9ICovDQo+ICAvKiB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLU8y IiB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIg fSB9ICovDQo+IA0KPiAgI2luY2x1ZGUgImFybV9tdmUuaCINCj4gDQo+ICsjaWZkZWYgX19jcGx1 c3BsdXMNCj4gK2V4dGVybiAiQyIgew0KPiArI2VuZGlmDQo+ICsNCj4gKy8qDQo+ICsqKmZvbzoN Cj4gKyoqCS4uLg0KPiArKioJdm1zcglwMCwgKD86aXB8ZnB8clswLTldKykoPzoJQC4qfCkNCj4g KyoqCS4uLg0KPiArKioJdnBzdCg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqKgl2bXVsbGJ0LnU4 CXFbMC05XSssIHFbMC05XSssIHFbMC05XSsoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKi8NCj4g IHVpbnQxNng4X3QNCj4gIGZvbyAodWludDh4MTZfdCBhLCB1aW50OHgxNl90IGIsIG12ZV9wcmVk MTZfdCBwKQ0KPiAgew0KPiAgICByZXR1cm4gdm11bGxicV9pbnRfeF91OCAoYSwgYiwgcCk7DQo+ ICB9DQo+IA0KPiAtLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2cHN0IiB9IH0gKi8N Cj4gLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidm11bGxidC51OCIgIH0gIH0gKi8N Cj4gDQo+ICsvKg0KPiArKipmb28xOg0KPiArKioJLi4uDQo+ICsqKgl2bXNyCXAwLCAoPzppcHxm cHxyWzAtOV0rKSg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqKgl2cHN0KD86CUAuKnwpDQo+ICsq KgkuLi4NCj4gKyoqCXZtdWxsYnQudTgJcVswLTldKywgcVswLTldKywgcVswLTldKyg/OglALip8 KQ0KPiArKioJLi4uDQo+ICsqLw0KPiAgdWludDE2eDhfdA0KPiAgZm9vMSAodWludDh4MTZfdCBh LCB1aW50OHgxNl90IGIsIG12ZV9wcmVkMTZfdCBwKQ0KPiAgew0KPiAgICByZXR1cm4gdm11bGxi cV9pbnRfeCAoYSwgYiwgcCk7DQo+ICB9DQo+IA0KPiAtLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyICJ2cHN0IiB9IH0gKi8NCj4gKyNpZmRlZiBfX2NwbHVzcGx1cw0KPiArfQ0KPiArI2Vu ZGlmDQo+ICsNCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3QgIl9fQVJNX3Vu ZGVmIiB9IH0gKi8NCj4gXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQo+IGRpZmYgLS1naXQN Cj4gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZtdWxsYnFf cG9seV9tX3AxNi5jDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50cmlu c2ljcy92bXVsbGJxX3BvbHlfbV9wMTYuYw0KPiBpbmRleCA1MjdhY2I3NGUwOS4uMmVmYjg3ZGZm MDEgMTAwNjQ0DQo+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJp bnNpY3Mvdm11bGxicV9wb2x5X21fcDE2LmMNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX3BvbHlfbV9wMTYuYw0KPiBAQCAtMSwyMyAr MSw0OSBAQA0KPiAgLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgYXJtX3Y4XzFtX212 ZV9vayB9ICovDQo+ICAvKiB7IGRnLWFkZC1vcHRpb25zIGFybV92OF8xbV9tdmUgfSAqLw0KPiAg LyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1PMiIgfSAqLw0KPiArLyogeyBkZy1maW5hbCB7 IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAqLw0KPiANCj4gICNpbmNsdWRlICJh cm1fbXZlLmgiDQo+IA0KPiArI2lmZGVmIF9fY3BsdXNwbHVzDQo+ICtleHRlcm4gIkMiIHsNCj4g KyNlbmRpZg0KPiArDQo+ICsvKg0KPiArKipmb286DQo+ICsqKgkuLi4NCj4gKyoqCXZtc3IJcDAs ICg/OmlwfGZwfHJbMC05XSspKD86CUAuKnwpDQo+ICsqKgkuLi4NCj4gKyoqCXZwc3QoPzoJQC4q fCkNCj4gKyoqCS4uLg0KPiArKioJdm11bGxidC5wMTYJcVswLTldKywgcVswLTldKywgcVswLTld Kyg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqLw0KPiAgdWludDMyeDRfdA0KPiAgZm9vICh1aW50 MzJ4NF90IGluYWN0aXZlLCB1aW50MTZ4OF90IGEsIHVpbnQxNng4X3QgYiwgbXZlX3ByZWQxNl90 IHApDQo+ICB7DQo+ICAgIHJldHVybiB2bXVsbGJxX3BvbHlfbV9wMTYgKGluYWN0aXZlLCBhLCBi LCBwKTsNCj4gIH0NCj4gDQo+IC0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInZwc3Qi IH0gfSAqLw0KPiAtLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2bXVsbGJ0LnAxNiIg IH0gIH0gKi8NCj4gDQo+ICsvKg0KPiArKipmb28xOg0KPiArKioJLi4uDQo+ICsqKgl2bXNyCXAw LCAoPzppcHxmcHxyWzAtOV0rKSg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqKgl2cHN0KD86CUAu KnwpDQo+ICsqKgkuLi4NCj4gKyoqCXZtdWxsYnQucDE2CXFbMC05XSssIHFbMC05XSssIHFbMC05 XSsoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKi8NCj4gIHVpbnQzMng0X3QNCj4gIGZvbzEgKHVp bnQzMng0X3QgaW5hY3RpdmUsIHVpbnQxNng4X3QgYSwgdWludDE2eDhfdCBiLCBtdmVfcHJlZDE2 X3QgcCkNCj4gIHsNCj4gICAgcmV0dXJuIHZtdWxsYnFfcG9seV9tIChpbmFjdGl2ZSwgYSwgYiwg cCk7DQo+ICB9DQo+IA0KPiAtLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2cHN0IiB9 IH0gKi8NCj4gLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidm11bGxidC5wMTYiICB9 ICB9ICovDQo+ICsjaWZkZWYgX19jcGx1c3BsdXMNCj4gK30NCj4gKyNlbmRpZg0KPiArDQo+ICsv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICJfX0FSTV91bmRlZiIgfSB9ICovDQo+ IFwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX3BvbHlfbV9wOC5jDQo+IGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX3BvbHlf bV9wOC5jDQo+IGluZGV4IDU0MDMzOTRlODcwLi5iNDM1ZjQ0Y2IzMiAxMDA2NDQNCj4gLS0tIGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX3BvbHlf bV9wOC5jDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNp Y3Mvdm11bGxicV9wb2x5X21fcDguYw0KPiBAQCAtMSwyMyArMSw0OSBAQA0KPiAgLyogeyBkZy1y ZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgYXJtX3Y4XzFtX212ZV9vayB9ICovDQo+ICAvKiB7IGRn LWFkZC1vcHRpb25zIGFybV92OF8xbV9tdmUgfSAqLw0KPiAgLyogeyBkZy1hZGRpdGlvbmFsLW9w dGlvbnMgIi1PMiIgfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGll cyAiKioiICIiIH0gfSAqLw0KPiANCj4gICNpbmNsdWRlICJhcm1fbXZlLmgiDQo+IA0KPiArI2lm ZGVmIF9fY3BsdXNwbHVzDQo+ICtleHRlcm4gIkMiIHsNCj4gKyNlbmRpZg0KPiArDQo+ICsvKg0K PiArKipmb286DQo+ICsqKgkuLi4NCj4gKyoqCXZtc3IJcDAsICg/OmlwfGZwfHJbMC05XSspKD86 CUAuKnwpDQo+ICsqKgkuLi4NCj4gKyoqCXZwc3QoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKioJ dm11bGxidC5wOAlxWzAtOV0rLCBxWzAtOV0rLCBxWzAtOV0rKD86CUAuKnwpDQo+ICsqKgkuLi4N Cj4gKyovDQo+ICB1aW50MTZ4OF90DQo+ICBmb28gKHVpbnQxNng4X3QgaW5hY3RpdmUsIHVpbnQ4 eDE2X3QgYSwgdWludDh4MTZfdCBiLCBtdmVfcHJlZDE2X3QgcCkNCj4gIHsNCj4gICAgcmV0dXJu IHZtdWxsYnFfcG9seV9tX3A4IChpbmFjdGl2ZSwgYSwgYiwgcCk7DQo+ICB9DQo+IA0KPiAtLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2cHN0IiB9IH0gKi8NCj4gLS8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlciAidm11bGxidC5wOCIgIH0gIH0gKi8NCj4gDQo+ICsvKg0KPiAr Kipmb28xOg0KPiArKioJLi4uDQo+ICsqKgl2bXNyCXAwLCAoPzppcHxmcHxyWzAtOV0rKSg/OglA Lip8KQ0KPiArKioJLi4uDQo+ICsqKgl2cHN0KD86CUAuKnwpDQo+ICsqKgkuLi4NCj4gKyoqCXZt dWxsYnQucDgJcVswLTldKywgcVswLTldKywgcVswLTldKyg/OglALip8KQ0KPiArKioJLi4uDQo+ ICsqLw0KPiAgdWludDE2eDhfdA0KPiAgZm9vMSAodWludDE2eDhfdCBpbmFjdGl2ZSwgdWludDh4 MTZfdCBhLCB1aW50OHgxNl90IGIsIG12ZV9wcmVkMTZfdCBwKQ0KPiAgew0KPiAgICByZXR1cm4g dm11bGxicV9wb2x5X20gKGluYWN0aXZlLCBhLCBiLCBwKTsNCj4gIH0NCj4gDQo+IC0vKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInZwc3QiIH0gfSAqLw0KPiAtLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyICJ2bXVsbGJ0LnA4IiAgfSAgfSAqLw0KPiArI2lmZGVmIF9fY3BsdXNw bHVzDQo+ICt9DQo+ICsjZW5kaWYNCj4gKw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLW5vdCAiX19BUk1fdW5kZWYiIH0gfSAqLw0KPiBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUNCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJp bnNpY3Mvdm11bGxicV9wb2x5X3AxNi5jDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2Fy bS9tdmUvaW50cmluc2ljcy92bXVsbGJxX3BvbHlfcDE2LmMNCj4gaW5kZXggZDAxZDU5OTdmZjQu LmJmZDA1MjIyMmZlIDEwMDY0NA0KPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJt L212ZS9pbnRyaW5zaWNzL3ZtdWxsYnFfcG9seV9wMTYuYw0KPiArKysgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZtdWxsYnFfcG9seV9wMTYuYw0KPiBAQCAt MSwyMSArMSw0MSBAQA0KPiAgLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgYXJtX3Y4 XzFtX212ZV9vayB9ICovDQo+ICAvKiB7IGRnLWFkZC1vcHRpb25zIGFybV92OF8xbV9tdmUgfSAq Lw0KPiAgLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1PMiIgfSAqLw0KPiArLyogeyBkZy1m aW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAqLw0KPiANCj4gICNpbmNs dWRlICJhcm1fbXZlLmgiDQo+IA0KPiArI2lmZGVmIF9fY3BsdXNwbHVzDQo+ICtleHRlcm4gIkMi IHsNCj4gKyNlbmRpZg0KPiArDQo+ICsvKg0KPiArKipmb286DQo+ICsqKgkuLi4NCj4gKyoqCXZt dWxsYi5wMTYJcVswLTldKywgcVswLTldKywgcVswLTldKyg/OglALip8KQ0KPiArKioJLi4uDQo+ ICsqLw0KPiAgdWludDMyeDRfdA0KPiAgZm9vICh1aW50MTZ4OF90IGEsIHVpbnQxNng4X3QgYikN Cj4gIHsNCj4gICAgcmV0dXJuIHZtdWxsYnFfcG9seV9wMTYgKGEsIGIpOw0KPiAgfQ0KPiANCj4g LS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidm11bGxiLnAxNiIgIH0gIH0gKi8NCj4g DQo+ICsvKg0KPiArKipmb28xOg0KPiArKioJLi4uDQo+ICsqKgl2bXVsbGIucDE2CXFbMC05XSss IHFbMC05XSssIHFbMC05XSsoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKi8NCj4gIHVpbnQzMng0 X3QNCj4gIGZvbzEgKHVpbnQxNng4X3QgYSwgdWludDE2eDhfdCBiKQ0KPiAgew0KPiAgICByZXR1 cm4gdm11bGxicV9wb2x5IChhLCBiKTsNCj4gIH0NCj4gDQo+IC0vKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXIgInZtdWxsYi5wMTYiICB9ICB9ICovDQo+ICsjaWZkZWYgX19jcGx1c3BsdXMN Cj4gK30NCj4gKyNlbmRpZg0KPiArDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt bm90ICJfX0FSTV91bmRlZiIgfSB9ICovDQo+IFwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0K PiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2lj cy92bXVsbGJxX3BvbHlfcDguYw0KPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZl L2ludHJpbnNpY3Mvdm11bGxicV9wb2x5X3A4LmMNCj4gaW5kZXggZGU5NzEzNGFkZDcuLmEyYTUz ZThhM2RjIDEwMDY0NA0KPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9p bnRyaW5zaWNzL3ZtdWxsYnFfcG9seV9wOC5jDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11bGxicV9wb2x5X3A4LmMNCj4gQEAgLTEsMjEgKzEs NDEgQEANCj4gIC8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IGFybV92OF8xbV9tdmVf b2sgfSAqLw0KPiAgLyogeyBkZy1hZGQtb3B0aW9ucyBhcm1fdjhfMW1fbXZlIH0gKi8NCj4gIC8q IHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItTzIiIH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBj aGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8NCj4gDQo+ICAjaW5jbHVkZSAiYXJt X212ZS5oIg0KPiANCj4gKyNpZmRlZiBfX2NwbHVzcGx1cw0KPiArZXh0ZXJuICJDIiB7DQo+ICsj ZW5kaWYNCj4gKw0KPiArLyoNCj4gKyoqZm9vOg0KPiArKioJLi4uDQo+ICsqKgl2bXVsbGIucDgJ cVswLTldKywgcVswLTldKywgcVswLTldKyg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqLw0KPiAg dWludDE2eDhfdA0KPiAgZm9vICh1aW50OHgxNl90IGEsIHVpbnQ4eDE2X3QgYikNCj4gIHsNCj4g ICAgcmV0dXJuIHZtdWxsYnFfcG9seV9wOCAoYSwgYik7DQo+ICB9DQo+IA0KPiAtLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2bXVsbGIucDgiICB9ICB9ICovDQo+IA0KPiArLyoNCj4g KyoqZm9vMToNCj4gKyoqCS4uLg0KPiArKioJdm11bGxiLnA4CXFbMC05XSssIHFbMC05XSssIHFb MC05XSsoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKi8NCj4gIHVpbnQxNng4X3QNCj4gIGZvbzEg KHVpbnQ4eDE2X3QgYSwgdWludDh4MTZfdCBiKQ0KPiAgew0KPiAgICByZXR1cm4gdm11bGxicV9w b2x5IChhLCBiKTsNCj4gIH0NCj4gDQo+IC0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIg InZtdWxsYi5wOCIgIH0gIH0gKi8NCj4gKyNpZmRlZiBfX2NwbHVzcGx1cw0KPiArfQ0KPiArI2Vu ZGlmDQo+ICsNCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3QgIl9fQVJNX3Vu ZGVmIiB9IH0gKi8NCj4gXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQo+IGRpZmYgLS1naXQN Cj4gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZtdWxsYnFf cG9seV94X3AxNi5jDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50cmlu c2ljcy92bXVsbGJxX3BvbHlfeF9wMTYuYw0KPiBpbmRleCBmOTRkOTA1MjQzMy4uYmVlNDVmOTU5 MzkgMTAwNjQ0DQo+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJp bnNpY3Mvdm11bGxicV9wb2x5X3hfcDE2LmMNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX3BvbHlfeF9wMTYuYw0KPiBAQCAtMSwyMiAr MSw0OSBAQA0KPiAgLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgYXJtX3Y4XzFtX212 ZV9vayB9ICovDQo+ICAvKiB7IGRnLWFkZC1vcHRpb25zIGFybV92OF8xbV9tdmUgfSAqLw0KPiAg LyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1PMiIgfSAqLw0KPiArLyogeyBkZy1maW5hbCB7 IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAqLw0KPiANCj4gICNpbmNsdWRlICJh cm1fbXZlLmgiDQo+IA0KPiArI2lmZGVmIF9fY3BsdXNwbHVzDQo+ICtleHRlcm4gIkMiIHsNCj4g KyNlbmRpZg0KPiArDQo+ICsvKg0KPiArKipmb286DQo+ICsqKgkuLi4NCj4gKyoqCXZtc3IJcDAs ICg/OmlwfGZwfHJbMC05XSspKD86CUAuKnwpDQo+ICsqKgkuLi4NCj4gKyoqCXZwc3QoPzoJQC4q fCkNCj4gKyoqCS4uLg0KPiArKioJdm11bGxidC5wMTYJcVswLTldKywgcVswLTldKywgcVswLTld Kyg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqLw0KPiAgdWludDMyeDRfdA0KPiAgZm9vICh1aW50 MTZ4OF90IGEsIHVpbnQxNng4X3QgYiwgbXZlX3ByZWQxNl90IHApDQo+ICB7DQo+ICAgIHJldHVy biB2bXVsbGJxX3BvbHlfeF9wMTYgKGEsIGIsIHApOw0KPiAgfQ0KPiANCj4gLS8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlciAidnBzdCIgfSB9ICovDQo+IC0vKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXIgInZtdWxsYnQucDE2IiAgfSAgfSAqLw0KPiANCj4gKy8qDQo+ICsqKmZvbzE6 DQo+ICsqKgkuLi4NCj4gKyoqCXZtc3IJcDAsICg/OmlwfGZwfHJbMC05XSspKD86CUAuKnwpDQo+ ICsqKgkuLi4NCj4gKyoqCXZwc3QoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKioJdm11bGxidC5w MTYJcVswLTldKywgcVswLTldKywgcVswLTldKyg/OglALip8KQ0KPiArKioJLi4uDQo+ICsqLw0K PiAgdWludDMyeDRfdA0KPiAgZm9vMSAodWludDE2eDhfdCBhLCB1aW50MTZ4OF90IGIsIG12ZV9w cmVkMTZfdCBwKQ0KPiAgew0KPiAgICByZXR1cm4gdm11bGxicV9wb2x5X3ggKGEsIGIsIHApOw0K PiAgfQ0KPiANCj4gLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidnBzdCIgfSB9ICov DQo+ICsjaWZkZWYgX19jcGx1c3BsdXMNCj4gK30NCj4gKyNlbmRpZg0KPiArDQo+ICsvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICJfX0FSTV91bmRlZiIgfSB9ICovDQo+IFwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQ0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX3BvbHlfeF9wOC5jDQo+IGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX3BvbHlfeF9wOC5j DQo+IGluZGV4IDZmZGM5NDQ5NmJjLi43Y2QxNWYzYTdmMSAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92bXVsbGJxX3BvbHlfeF9wOC5j DQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdm11 bGxicV9wb2x5X3hfcDguYw0KPiBAQCAtMSwyMiArMSw0OSBAQA0KPiAgLyogeyBkZy1yZXF1aXJl LWVmZmVjdGl2ZS10YXJnZXQgYXJtX3Y4XzFtX212ZV9vayB9ICovDQo+ICAvKiB7IGRnLWFkZC1v cHRpb25zIGFybV92OF8xbV9tdmUgfSAqLw0KPiAgLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMg Ii1PMiIgfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IGNoZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioi ICIiIH0gfSAqLw0KPiANCj4gICNpbmNsdWRlICJhcm1fbXZlLmgiDQo+IA0KPiArI2lmZGVmIF9f Y3BsdXNwbHVzDQo+ICtleHRlcm4gIkMiIHsNCj4gKyNlbmRpZg0KPiArDQo+ICsvKg0KPiArKipm b286DQo+ICsqKgkuLi4NCj4gKyoqCXZtc3IJcDAsICg/OmlwfGZwfHJbMC05XSspKD86CUAuKnwp DQo+ICsqKgkuLi4NCj4gKyoqCXZwc3QoPzoJQC4qfCkNCj4gKyoqCS4uLg0KPiArKioJdm11bGxi dC5wOAlxWzAtOV0rLCBxWzAtOV0rLCBxWzAtOV0rKD86CUAuKnwpDQo+ICsqKgkuLi4NCj4gKyov DQo+ICB1aW50MTZ4OF90DQo+ICBmb28gKHVpbnQ4eDE2X3QgYSwgdWludDh4MTZfdCBiLCBtdmVf cHJlZDE2X3QgcCkNCj4gIHsNCj4gICAgcmV0dXJuIHZtdWxsYnFfcG9seV94X3A4IChhLCBiLCBw KTsNCj4gIH0NCj4gDQo+IC0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInZwc3QiIH0g fSAqLw0KPiAtLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2bXVsbGJ0LnA4IiAgfSAg fSAqLw0KPiANCj4gKy8qDQo+ICsqKmZvbzE6DQo+ICsqKgkuLi4NCj4gKyoqCXZtc3IJcDAsICg/ OmlwfGZwfHJbMC05XSspKD86CUAuKnwpDQo+ICsqKgkuLi4NCj4gKyoqCXZwc3QoPzoJQC4qfCkN Cj4gKyoqCS4uLg0KPiArKioJdm11bGxidC5wOAlxWzAtOV0rLCBxWzAtOV0rLCBxWzAtOV0rKD86 CUAuKnwpDQo+ICsqKgkuLi4NCj4gKyovDQo+ICB1aW50MTZ4OF90DQo+ICBmb28xICh1aW50OHgx Nl90IGEsIHVpbnQ4eDE2X3QgYiwgbXZlX3ByZWQxNl90IHApDQo+ICB7DQo+ICAgIHJldHVybiB2 bXVsbGJxX3BvbHlfeCAoYSwgYiwgcCk7DQo+ICB9DQo+IA0KPiAtLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyICJ2cHN0IiB9IH0gKi8NCj4gKyNpZmRlZiBfX2NwbHVzcGx1cw0KPiArfQ0K PiArI2VuZGlmDQo+ICsNCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3QgIl9f QVJNX3VuZGVmIiB9IH0gKi8NCj4gXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlDQo+IC0tDQo+ IDIuMjUuMQ0KDQo=