From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80041.outbound.protection.outlook.com [40.107.8.41]) by sourceware.org (Postfix) with ESMTPS id 58C52385E00D for ; Thu, 29 Apr 2021 15:39:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 58C52385E00D Received: from AM5PR0701CA0001.eurprd07.prod.outlook.com (2603:10a6:203:51::11) by DB7PR08MB3321.eurprd08.prod.outlook.com (2603:10a6:5:20::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.21; Thu, 29 Apr 2021 15:39:25 +0000 Received: from AM5EUR03FT016.eop-EUR03.prod.protection.outlook.com (2603:10a6:203:51:cafe::b7) by AM5PR0701CA0001.outlook.office365.com (2603:10a6:203:51::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.18 via Frontend Transport; Thu, 29 Apr 2021 15:39:25 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; sourceware.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;sourceware.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT016.mail.protection.outlook.com (10.152.16.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.27 via Frontend Transport; Thu, 29 Apr 2021 15:39:25 +0000 Received: ("Tessian outbound 1e34f83e4964:v91"); Thu, 29 Apr 2021 15:39:24 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 3205b827458e84d0 X-CR-MTA-TID: 64aa7808 Received: from 179ba61de624.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id FEB87D61-FE36-4903-97AA-55E27841E151.1; Thu, 29 Apr 2021 15:39:18 +0000 Received: from EUR03-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 179ba61de624.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 29 Apr 2021 15:39:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nEj/VL6YAv5pj8O4K2+G4yUP4MfOZDf4fohek/Dnj7fziKvn28pafkamDzHOKMOPMj/aOPQXIXth/9b5GH0qwyeKYDg3RlbTkrkNaxPdWnBEXvAwOe6/OxJJt+sPMrDKZr3MiBTLcP5Ei14/wR/3Yo58gPYcfMbMMaZztB26TjYiKhX4bIMy+wfCvHSyPCZYL6iz255ESLh3/54ZayauWCoOe4LcB/FMWRurxbR3DDDLcst+D/QpHBsV/cE8YyfXj6ArDjC77D0BYEF3PWnhgY9vQ3v5Ukpg1C5DHEA/BsIsdo51X/ZDFodw+xXjUkRVyYUEI5qQq0f1WebwP/99EQ== 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=TSmALWtLdk0hEH13BJt/oFJ3B0VnsMB/DUzcpLaAh5E=; b=R7QULugVRmlb35bNoT8liD9spliHcC4SU7zTMzykdakinNjtkstjAg/C7Kl4gzW+zl5QPm7N0McNPAZkeGzkgsDuk/Kyh65gY1Hx9dkd5RKN78uIt6VfKFRgmrZ+pqbmTkWnOOLYfG8v+9f/nEx1uKDQgX/jLVDwfCm3AkjrNiYTqzBiugOg2vrPGp9r2NGDqPali9a9XUgcKXV5DfiZV9nSXaD3cKY1WVd6JNSafZMWMxW0QrYFhMdajamvbMMTpCiP7XnrTC/B0XapE/kf4BiekPqQoV6UAqYl8A3RlE1+staJsN0pRDtZ3KoZQaMhbsuvGNFfZqN4bwuzBRg7Ag== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from DB9PR08MB6474.eurprd08.prod.outlook.com (2603:10a6:10:255::17) by DB6PR08MB2791.eurprd08.prod.outlook.com (2603:10a6:6:17::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.23; Thu, 29 Apr 2021 15:39:16 +0000 Received: from DB9PR08MB6474.eurprd08.prod.outlook.com ([fe80::c902:d364:288f:4ce9]) by DB9PR08MB6474.eurprd08.prod.outlook.com ([fe80::c902:d364:288f:4ce9%7]) with mapi id 15.20.4065.032; Thu, 29 Apr 2021 15:39:16 +0000 From: Vaseeharan Vinayagamoorthy To: Andrew Burgess , Simon Marchi CC: Michael Weghorn , "gdb-patches@sourceware.org" Subject: Re: [PATCH v5 2/2] gdb: do autoload before notifying Python side in new_objfile event Thread-Topic: [PATCH v5 2/2] gdb: do autoload before notifying Python side in new_objfile event Thread-Index: AQHXOqwDnmy0lA2eqkG/Ogdm1OXPdKrIDE2AgAOqvIA= Date: Thu, 29 Apr 2021 15:39:16 +0000 Message-ID: <26D3B8ED-13C6-4FFF-850E-1F0D8EC92BBE@arm.com> References: <20210426145340.493597-1-simon.marchi@polymtl.ca> <20210426145340.493597-3-simon.marchi@polymtl.ca> <20210427083923.GY2610@embecosm.com> In-Reply-To: <20210427083923.GY2610@embecosm.com> Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/16.48.21041102 Authentication-Results-Original: embecosm.com; dkim=none (message not signed) header.d=none; embecosm.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [2.26.170.223] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: af7f4297-8e3b-4dd4-5522-08d90b24f7df x-ms-traffictypediagnostic: DB6PR08MB2791:|DB7PR08MB3321: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 6htePrlYCZrxeJWDQUILWQmrtFQVbPp6hudmmAaLqqtlpKTgPA34X4zBVbogXPkZs9GoXDyotFez4rSCjazmL4qbCzOtyruhLikz0vPZuU/fKHWdQ0Z0VrcFJwlARyNb9hWBMLU3tlniPUDNM/rZGtX/djf/lRwemsVs2heKh+Rkx50I/Z4QqM50q9kj14P15lNt4AeNeWJkOREq9FMJxBHREbBGC7Qz394l++qZhiHGBdC5PQjU7Hs8+Wrby53V6hBQZN4APt14Lo5yxtY072nA4BI6sRVt5GpCDqwXh2XfwC2U5+ahR1JNLLmkEjr+0lWWVE5lAAw1AMLEMPOtDBH9sAymOZwanxpm7o/F/9Ki+nqItSLQl/xlCU6l+M1IBvFDqG9XMbl+ACVwpJviwgSm2oaEuOwd+Ajgj4zl9/fXneagNOJdwCeHZC0+GuwmVgLNcG0/+CobegYVS0pxAjzH8qTrNLlcv3SdQb+88jvMYcfKcgs7+7/rgt09gy3M1WI75NHTgfHxKDMi8Ezjta+0o9qj+davYotAr/ufSqXoPbr9nUfAV8ZATaWtTsoeRDP+t3c/hIflpSNLcB5Gz5GO7S1Ew0HrtQ3OwMNItO6VuIGwYBpwCaFZxNGONAfwMtEo1HWm2EFj762re5ltm2Ap6SMsw4AXtDBhhK/7iGiloUuKsTKED/LdOXKyS+40XjdvstpGYfMmi7gXMmj1k+EpSJEIGZLSpb9OUMIzrArFn+71sJ1aWpDH+3oyHBVI X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9PR08MB6474.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39840400004)(346002)(136003)(366004)(396003)(376002)(30864003)(316002)(36756003)(110136005)(4326008)(86362001)(66946007)(8676002)(33656002)(8936002)(66556008)(66446008)(478600001)(83380400001)(186003)(2616005)(66476007)(6506007)(64756008)(122000001)(76116006)(966005)(6512007)(38100700002)(54906003)(6486002)(91956017)(26005)(71200400001)(2906002)(5660300002)(2004002)(45980500001)(579004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?MjJNNUd5RlV5WjlSUDVMemlsRExGNHVtZDlySUIvb0xUd1ZMWmpsNVlnbWZC?= =?utf-8?B?WiswNEJiTG5aM3orMjkzSkRxSTB4aVA3RlVzWGRndnBrZnFaRWhlVjdrMGxw?= =?utf-8?B?ZHFISU41b25URkMvay9hT05PUkVWRVdSRmJ6dE9DMlh2ZW93RXJxVkVkc0VQ?= =?utf-8?B?aEJVMzBIWUZ5d2NOUkVYbXpZYStPYVc2STJKR1VNQmFEMUQ5djB0NG5vQ296?= =?utf-8?B?NDR6N01LaW5zVTY1WEVVeTNPT1czM25tcWx3RGY1UWhUNHd3MFlFK0E0aXJ4?= =?utf-8?B?L0t6Z0NyL2tJblltNXRrdFkvdFlOQWJUaWszSGlBQ3RGTmRzOEdvUnZYRnI0?= =?utf-8?B?SmN3UWdxR3JBbE1tV1UxWUFnMWpMdUt6RTZvYSt2NlBwbXl4eW1qMy9RMm1C?= =?utf-8?B?N0xNbkIzWnFuRGRIY3VySTBQRHdkZUNXZHBSSE1iY2dWdWtNOEk1TEU2emVM?= =?utf-8?B?LzFzWk5sYlZwQ0JpNzRubGlKVW5XQmZTY09BUGhsUnlOOE9LM2I0dCtEdXBq?= =?utf-8?B?WkVSbXRMQ3FBZWU5cWZYeG4xYW13SXgyNDhzd1hTdzBaRHlmaSs5amVNMWps?= =?utf-8?B?algwUjVsd1I3dXR1Um9YdzNTVzhDNmVxWlovckNudW94T0c1M1J2WUJiS2Z1?= =?utf-8?B?bHhJeUZDV3pPc2xqNHl2M0lta1dQN1FLWVd6L1RXY0x0R1IyVzNwYm90dWxa?= =?utf-8?B?ZWZWSXMwQ1AvWU95WTFpZkFDdStua01lUU8yK2VReGhBNzQzaEd6dk1GZmtL?= =?utf-8?B?bkNNb0Y3RWNnNnN3Ynhscm0zY3Ezc2dvQnpGdFVSdG96cFlIaU9GNE5wc3Ji?= =?utf-8?B?YnhNRW80MEZRZTd1R3FRNGtDNkV5VHR1SWhkbktoZ2hGZHdwcXplMms2NlJr?= =?utf-8?B?ampJd21KNXAxaTNyVGxNbHZXYjhUU2RsYUZGSWR2TEhmY1YyTmxRandieHNz?= =?utf-8?B?V3Rxcnd5N1RLWDFqcmUzY2pLQzB6UEVjVHUrdlZXeHUwRDVuNm5vb3RmV2Mw?= =?utf-8?B?WU9qTEtOVWtNdDNqWk1PNHpuNFFJZGF6T052TktEZ2Flazh4dVNDelJDQVkz?= =?utf-8?B?ZUhraXV5MkJackI4L2xoT2pvRG5ENS9FNlB0TnNwc0RpQ2IydzZXOFV5Y0c0?= =?utf-8?B?dXJvdndVTEZNaVhqLzRrMzN0ajNqYXVmdEloTEI1TGxzZzAyeU9TRXZGN2tE?= =?utf-8?B?RFh3VE9rNGVmNnhpK0JxQmo2Z2g0QUEraEZrdUxNQzBTZ01GZ2ZWeCt3VjdY?= =?utf-8?B?aEdkZ015SXZKRzMvYVIraHNZVFRXb1YyYVN5eTdCZ0xFbVdEOWIxNXJoMHpx?= =?utf-8?B?QmtPOWs4Smx6em82N245YTQ0VlFET1hhS2VSKzBoYXlIVkdvOUdTWW5TVDBY?= =?utf-8?B?elp4SFV6SURzOGNTMHo2bGZCcWcwWkIwQ08vN1VkQzIyMlZJUEUvN1oxbHky?= =?utf-8?B?UmQvTHpRNElDZmNEd2lEZUZsaFFmTTl4ZzRoY1JNRllCWWFidmdKRTBFc1Zl?= =?utf-8?B?ZGVkZWNZNnB3dGhraGZNSlV5UG1Pank0SVpSc2FRbGxWM3ZxZ2pBRitiTFVG?= =?utf-8?B?WENGRTBiMHovQnN4UXFXMDNRKzc1MzdsTURMUmJBRGpwMW9Ba0hkL3NoTk9H?= =?utf-8?B?Y1lESk56aFhBeXJnR3FOUk43Tk54M293WTh6T1RGcTI4TDdJajdra0sybmti?= =?utf-8?B?QS9HR3NndFZPQ09SR2xxVDVpcU8xSVYrVFBOS0hDcDVnallJMi9ubDR3aTRp?= =?utf-8?Q?nXnm3xP6UkfBPQ5WvsNP0dsnNSjNS26Tlbz4bTl?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <67C40A371E3C1B45A7EDBCE00195DB4F@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR08MB2791 Original-Authentication-Results: embecosm.com; dkim=none (message not signed) header.d=none; embecosm.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT016.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 8ee2b5b3-7179-4899-2e7b-08d90b24f25f X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DCbgCiPe5AH9sBs59dhBURlI4t+ehskf79ySiqX5y1ifz5trOLQJuaLcYwPnJOAW6b8TjyHM2Jf0cMkAjDw+3/ooaJ3hfdQoQP65QK/6S8/d8rAM+E7wD+Jh/OKD8qL6qO4fMh+KU7WdRZ0y9mHoqxk+g0WJHLOImoDO8dEiX5kMa6YVe2/Bsq2xixc9dTykkAQo4ARFQoNtxur0W1i8xqi2diCXPqbdI75cyNyzLXrTWiAzms9HSHwlIq84hekeBDgo7c+8uA8bOjPUaaDqq08f9/VQx4M2rDiAR6JdGsIijpDALkLGZZ5zcHcgLHh8rrJB3JqGh8lC/OmUdYa09MRrVS+xHXN+e9Xf5SA4EFUmZaSkINA9/G4W4qOxd6JGE+BV3MlZjvUjjYMeYj6hgjeyn9QMwnSIFSZJHRTqwek8SSUcqTHPcw3BFv+h6VxXVseex+hRPKBbC3i7CEK5iIQZfvD9HsM1w4dwMcAIkqfKZI48xMztiCtSZvuC384S7hOWoZkvhgz6IY4Y8l6kxXlyM0ZDJMRO/DFXYrQ+cmPgb7JdHuSy5VqZI5RodhYLTPpB94UGe41+JzmQKENrN/osk8b5iJ0BpTukfUb9d4smSnPmUd0JTlig15yiz0Z5XLgPApXtUuK3SN1L8ar5nRGVTZixlVgenzUik0dHWbx0FrcOp5+fcPs4+qG8M8T7H642X2Fgr4pXxM+onaPZIcRmBSWJafrByxAaYkojsv6lmLlInNI+CyFCVZij2oWzJMy2mkCOs/VE/erh1rewG2ZqA9M2LYtAuHEaXv2yCyY= 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)(39840400004)(396003)(376002)(46966006)(36840700001)(336012)(83380400001)(5660300002)(26005)(4326008)(478600001)(110136005)(6506007)(82310400003)(6512007)(70586007)(186003)(70206006)(8936002)(86362001)(47076005)(36860700001)(8676002)(966005)(6486002)(36756003)(30864003)(81166007)(2906002)(356005)(54906003)(316002)(33656002)(34020700004)(2616005)(2004002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2021 15:39:25.4203 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: af7f4297-8e3b-4dd4-5522-08d90b24f7df 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: AM5EUR03FT016.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR08MB3321 X-Spam-Status: No, score=-13.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_SHORT, 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: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Apr 2021 15:39:32 -0000 QWZ0ZXIgdGhpcyBjb21taXQsIEkgYW0gc2VlaW5nIHRoZXNlIGVycm9ycy4NCg0KSW4gZmlsZSBp bmNsdWRlZCBmcm9tIHNyYy9iaW51dGlscy1nZGItLWdkYi9nZGIvYXV0by1sb2FkLmM6MjI6MDoN CnNyYy9iaW51dGlscy1nZGItLWdkYi9nZGIvYXV0by1sb2FkLmg6Mjg6MTQ6IGVycm9yOiBleHBl Y3RlZCDigJh74oCZIGJlZm9yZSDigJg6OuKAmSB0b2tlbg0KbmFtZXNwYWNlIGdkYjo6b2JzZXJ2 ZXJzIHsNCiAgICAgICAgICAgICAgXg0Kc3JjL2JpbnV0aWxzLWdkYi0tZ2RiL2dkYi9hdXRvLWxv YWQuaDoyODoxNDogZXJyb3I6IOKAmG9ic2VydmVyc+KAmSBpbiBuYW1lc3BhY2Ug4oCYOjrigJkg ZG9lcyBub3QgbmFtZSBhIHR5cGUNCnNyYy9iaW51dGlscy1nZGItLWdkYi9nZGIvYXV0by1sb2Fk Lmg6NDk6ODogZXJyb3I6IOKAmG9ic2VydmVyc+KAmSBpbiBuYW1lc3BhY2Ug4oCYZ2Ri4oCZIGRv ZXMgbm90IG5hbWUgYSB0eXBlDQpleHRlcm4gZ2RiOjpvYnNlcnZlcnM6OnRva2VuIGF1dG9fbG9h ZF9uZXdfb2JqZmlsZV9vYnNlcnZlcl90b2tlbjsNCiAgICAgICAgXg0KSW4gZmlsZSBpbmNsdWRl ZCBmcm9tIC91c3IvaW5jbHVkZS9jKysvNC44LjIvc2V0OjYwOjAsDQogICAgICAgICAgICAgICAg IGZyb20gc3JjL2JpbnV0aWxzLWdkYi0tZ2RiL2dkYi9zeW10YWIuaDoyNiwNCiAgICAgICAgICAg ICAgICAgZnJvbSBzcmMvYmludXRpbHMtZ2RiLS1nZGIvZ2RiL2luZnJ1bi5oOjIxLA0KICAgICAg ICAgICAgICAgICBmcm9tIHNyYy9iaW51dGlscy1nZGItLWdkYi9nZGIvdGFyZ2V0Lmg6NDIsDQog ICAgICAgICAgICAgICAgIGZyb20gc3JjL2JpbnV0aWxzLWdkYi0tZ2RiL2dkYi9wcm9nc3BhY2Uu aDoyNCwNCiAgICAgICAgICAgICAgICAgZnJvbSBzcmMvYmludXRpbHMtZ2RiLS1nZGIvZ2RiL2F1 dG8tbG9hZC5jOjIzOg0KL3Vzci9pbmNsdWRlL2MrKy80LjguMi9iaXRzL3N0bF90cmVlLmg6IElu IGNvbnN0cnVjdG9yIOKAmGdkYjo6c3RkOjpfUmJfdHJlZV9ub2RlPF9WYWw+OjpfUmJfdHJlZV9u b2RlKF9BcmdzJiYgLi4uKeKAmToNCi91c3IvaW5jbHVkZS9jKysvNC44LjIvYml0cy9zdGxfdHJl ZS5oOjE0MDoxOTogZXJyb3I6IOKAmGZvcndhcmTigJkgaXMgbm90IGEgbWVtYmVyIG9mIOKAmGdk Yjo6c3Rk4oCZDQogICAgX01fdmFsdWVfZmllbGQoc3RkOjpmb3J3YXJkPF9BcmdzPihfX2FyZ3Mp Li4uKSB7IH0NCg0KVGhlIGJ1aWxkL2hvc3QvdGFyZ2V0IHNldHVwIGlzOg0KQnVpbGQ6IHg4Nl82 NCAoTGludXgpLCB1c2luZyBHQ0MgNC44Lg0KSG9zdDogIHg4Nl82NCAoTGludXgpDQpUYXJnZXQ6 IGFybS1ub25lLWVhYmkgLyBhYXJjaDY0X2JlLW5vbmUtZWxmIC8gYWFyY2g2NC1ub25lLWVsZg0K DQoNClJlZ2FyZHMNClZhc2VlDQoNCu+7v09uIDI3LzA0LzIwMjEsIDA5OjM5LCAiR2RiLXBhdGNo ZXMgb24gYmVoYWxmIG9mIEFuZHJldyBCdXJnZXNzIiA8Z2RiLXBhdGNoZXMtYm91bmNlc0Bzb3Vy Y2V3YXJlLm9yZyBvbiBiZWhhbGYgb2YgYW5kcmV3LmJ1cmdlc3NAZW1iZWNvc20uY29tPiB3cm90 ZToNCg0KICAgICogU2ltb24gTWFyY2hpIHZpYSBHZGItcGF0Y2hlcyA8Z2RiLXBhdGNoZXNAc291 cmNld2FyZS5vcmc+IFsyMDIxLTA0LTI2IDEwOjUzOjQwIC0wNDAwXToNCg0KICAgID4gRnJvbTog TWljaGFlbCBXZWdob3JuIDxtLndlZ2hvcm5AcG9zdGVvLmRlPg0KICAgID4gDQogICAgPiBXaXRo b3V0IGFueSBleHBsaWNpdCBkZXBlbmRlbmNpZXMgc3BlY2lmaWVkLCB0aGUgb2JzZXJ2ZXJzIGF0 dGFjaGVkDQogICAgPiB0byB0aGUgJ2dkYjo6b2JzZXJ2ZXJzOjpuZXdfb2JqZmlsZScgb2JzZXJ2 YWJsZSBhcmUgYWx3YXlzIG5vdGlmaWVkDQogICAgPiBpbiB0aGUgb3JkZXIgaW4gd2hpY2ggdGhl eSBoYXZlIGJlZW4gYXR0YWNoZWQuDQogICAgPiANCiAgICA+IFRoZSBuZXdfb2JqZmlsZSBvYnNl cnZlciBjYWxsYmFjayB0byBhdXRvLWxvYWQgc2NyaXB0cyBpcyBhdHRhY2hlZCBpbg0KICAgID4g J19pbml0aWFsaXplX2F1dG9fbG9hZCcuDQogICAgPiBUaGUgbmV3X29iamZpbGUgb2JzZXJ2ZXIg Y2FsbGJhY2sgdGhhdCBwcm9wYWdhdGVzIHRoZSBuZXdfb2JqZmlsZSBldmVudA0KICAgID4gdG8g dGhlIFB5dGhvbiBzaWRlIGlzIGF0dGFjaGVkIGluICdnZGJweV9pbml0aWFsaXplX2luZmVyaW9y Jywgd2hpY2ggaXMNCiAgICA+IGNhbGxlZCB2aWEgJ19pbml0aWFsaXplX3B5dGhvbicuDQogICAg PiBXaXRoICdfaW5pdGlhbGl6ZV9weXRob24nIGhhcHBlbmluZyBiZWZvcmUgJ19pbml0aWFsaXpl X2F1dG9fbG9hZCcsDQogICAgPiB0aGUgY29uc2VxdWVuY2Ugd2FzIHRoYXQgdGhlIG5ld19vYmpm aWxlIGV2ZW50IHdhcyBlbWl0dGVkIG9uIHRoZSBQeXRob24NCiAgICA+IHNpZGUgYmVmb3JlIGF1 dG9sb2FkZWQgc2NyaXB0cyBoYWQgYmVlbiBleGVjdXRlZCB3aGVuIGEgbmV3IG9iamZpbGUgd2Fz DQogICAgPiBsb2FkZWQuDQogICAgPiBBcyBhIHJlc3VsdCwgdHJ5aW5nIHRvIGFjY2VzcyB0aGUg b2JqZmlsZSdzIHByZXR0eSBwcmludGVycyAoZGVmaW5lZCBpbg0KICAgID4gdGhlIGF1dG9sb2Fk ZWQgc2NyaXB0KSBmcm9tIGEgaGFuZGxlciBmb3IgdGhlIFB5dGhvbi1zaWRlDQogICAgPiAnbmV3 X29iamZpbGUnIGV2ZW50IHdvdWxkIGZhaWwuIFRob3NlIHdvdWxkIG9ubHkgYmUgaW5pdGlhbGl6 ZWQgbGF0ZXIgb24NCiAgICA+ICh3aGVuIHRoZSAnYXV0b19sb2FkX25ld19vYmpmaWxlJyBjYWxs YmFjayB3YXMgY2FsbGVkKS4NCiAgICA+IA0KICAgID4gVG8gbWFrZSBzdXJlIHRoYXQgdGhlIG9i amZpbGUgcGFzc2VkIHRvIHRoZSBQeXRob24gZXZlbnQgaGFuZGxlcg0KICAgID4gaXMgcHJvcGVy bHkgaW5pdGlhbGl6ZWQgKGluY2x1ZGluZyBpdHMgJ3ByZXR0eV9wcmludGVycycgbWVtYmVyKSwN CiAgICA+IG1ha2Ugc3VyZSB0aGF0IHRoZSAnYXV0b19sb2FkX25ld19vYmpmaWxlJyBvYnNlcnZl ciBpcyBub3RpZmllZA0KICAgID4gYmVmb3JlIHRoZSAncHl0aG9uX25ld19vYmpmaWxlJyBvbmUg dGhhdCBwcm9wYWdhdGVzIHRoZSBldmVudA0KICAgID4gdG8gdGhlIFB5dGhvbiBzaWRlLg0KICAg ID4gDQogICAgPiBUbyBkbyB0aGlzLCBtYWtlIHVzZSBvZiB0aGUgbWVjaGFuaXNtIHRvIGV4cGxp Y2l0bHkgc3BlY2lmeQ0KICAgID4gZGVwZW5kZW5jaWVzIGJldHdlZW4gb2JzZXJ2ZXJzIChpbnRy b2R1Y2VkIGluIGEgcHJlcGFyYXRvcnkgY29tbWl0KS4NCiAgICA+IA0KICAgID4gQWRkIGEgY29y cmVzcG9uZGluZyB0ZXN0Y2FzZSB0aGF0IGludm9sdmVzIGEgdGVzdCBsaWJyYXJ5IHdpdGggYW4g YXV0b2xvYWRlZA0KICAgID4gUHl0aG9uIHNjcmlwdCBhbmQgYSBoYW5kbGVyIGZvciB0aGUgUHl0 aG9uICduZXdfb2JqZmlsZScgZXZlbnQuDQogICAgPiANCiAgICA+IChUaGUgcmVhbCB3b3JsZCB1 c2UgY2FzZSB3aGVyZSBJIGNhbWUgYWNyb3NzIHRoaXMgaXNzdWUgd2FzIGluIGFuIGF0dGVtcHQN CiAgICA+IHRvIGV4dGVuZCBoYW5kbGluZyBmb3IgR0RCIHByZXR0eSBwcmludGVycyBmb3IgZHlu YW1pY2FsbHkgbG9hZGVkDQogICAgPiBvYmpmaWxlcyBpbiB0aGUgUXQgQ3JlYXRvciBJREUsIHMu IFsxXSBhbmQgWzJdIGZvciBtb3JlIGJhY2tncm91bmQuKQ0KICAgID4gDQogICAgPiBbMV0gaHR0 cHM6Ly9idWdyZXBvcnRzLnF0LmlvL2Jyb3dzZS9RVENSRUFUT1JCVUctMjUzMzkNCiAgICA+IFsy XSBodHRwczovL2NvZGVyZXZpZXcucXQtcHJvamVjdC5vcmcvYy9xdC1jcmVhdG9yL3F0LWNyZWF0 b3IvKy8zMzM4NTcvMQ0KICAgID4gDQogICAgPiBUZXN0ZWQgb24geDg2XzY0LWxpbnV4IChEZWJp YW4gdGVzdGluZykuDQogICAgPiANCiAgICA+IGdkYi9DaGFuZ2VMb2c6DQogICAgPiANCiAgICA+ ICAgICAgICAgKiBnZGIvYXV0by1sb2FkLmMgKF9pbml0aWFsaXplX2F1dG9fbG9hZCk6ICdTcGVj aWZ5IHRva2VuDQogICAgPiAgICAgICAgIHdoZW4gYXR0YWNoaW5nIHRoZSAnYXV0b19sb2FkX25l d19vYmpmaWxlJyBvYnNlcnZlciwgc28NCiAgICA+ICAgICAgICAgb3RoZXIgb2JzZXJ2ZXJzIGNh biBzcGVjaWZ5IGl0IGFzIGEgZGVwZW5kZW5jeS4NCiAgICA+IA0KICAgID4gICAgICAgICAqIGdk Yi9hdXRvLWxvYWQuaCAoc3RydWN0IHRva2VuKTogRGVjbGFyZQ0KICAgID4gICAgICAgICAnYXV0 b19sb2FkX25ld19vYmpmaWxlX29ic2VydmVyX3Rva2VuJyBhcyB0b2tlbiB0byBiZSB1c2VkDQog ICAgPiAgICAgICAgIGZvciB0aGUgJ2F1dG9fbG9hZF9uZXdfb2JqZmlsZScgb2JzZXJ2ZXIuDQog ICAgPiAgICAgICAgICogZ2RiL3B5dGhvbi9weS1pbmZlcmlvci5jIChnZGJweV9pbml0aWFsaXpl X2luZmVyaW9yKTogTWFrZQ0KICAgID4gICAgICAgICAncHl0aG9uX25ld19vYmpmaWxlJyBvYnNl cnZlciBkZXBlbmQgb24gJ2F1dG9fbG9hZF9uZXdfb2JqZmlsZScNCiAgICA+ICAgICAgICAgb2Jz ZXJ2ZXIsIHNvIGl0IGdldHMgbm90aWZpZWQgYWZ0ZXIgdGhlIGxhdHRlci4NCiAgICA+IA0KICAg ID4gZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQogICAgPiANCiAgICA+ICAgICAgICAgKiBnZGIu cHl0aG9uL2xpYnB5LWF1dG9sb2FkZWQtcHJldHR5LXByaW50ZXJzLWluLW5ld29iamZpbGUtZXZl bnQuc28tZ2RiLnB5OiBOZXcgdGVzdC4NCiAgICA+ICAgICAgICAgKiBnZGIucHl0aG9uL3B5LWF1 dG9sb2FkZWQtcHJldHR5LXByaW50ZXJzLWluLW5ld29iamZpbGUtZXZlbnQtbGliLmNjOiBOZXcg dGVzdC4NCiAgICA+ICAgICAgICAgKiBnZGIucHl0aG9uL3B5LWF1dG9sb2FkZWQtcHJldHR5LXBy aW50ZXJzLWluLW5ld29iamZpbGUtZXZlbnQtbGliLmg6IE5ldyB0ZXN0Lg0KICAgID4gICAgICAg ICAqIGdkYi5weXRob24vcHktYXV0b2xvYWRlZC1wcmV0dHktcHJpbnRlcnMtaW4tbmV3b2JqZmls ZS1ldmVudC1tYWluLmNjOiBOZXcgdGVzdC4NCiAgICA+ICAgICAgICAgKiBnZGIucHl0aG9uL3B5 LWF1dG9sb2FkZWQtcHJldHR5LXByaW50ZXJzLWluLW5ld29iamZpbGUtZXZlbnQuZXhwOiBOZXcg dGVzdC4NCiAgICA+ICAgICAgICAgKiBnZGIucHl0aG9uL3B5LWF1dG9sb2FkZWQtcHJldHR5LXBy aW50ZXJzLWluLW5ld29iamZpbGUtZXZlbnQucHk6IE5ldyB0ZXN0Lg0KICAgID4gDQogICAgPiBD aGFuZ2UtSWQ6IEk4Mjc1YjNmNGMzYmVjMzJlNTZkZDc4OTJmOWE1OWQ4OTU0NGVkZjg5DQogICAg PiAtLS0NCiAgICA+ICBnZGIvYXV0by1sb2FkLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgOSArLQ0KICAgID4gIGdkYi9hdXRvLWxvYWQuaCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICA4ICsrDQogICAgPiAgZ2RiL3B5dGhvbi9weS1pbmZlcmlvci5jICAgICAgICAg ICAgICAgICAgICAgIHwgIDcgKy0NCiAgICA+ICAuLi50dHktcHJpbnRlcnMtaW4tbmV3b2JqZmls ZS1ldmVudC5zby1nZGIucHkgfCA0MyArKysrKysrKysrDQogICAgPiAgLi4ucHJldHR5LXByaW50 ZXJzLWluLW5ld29iamZpbGUtZXZlbnQtbGliLmNjIHwgMjggKysrKysrDQogICAgPiAgLi4uLXBy ZXR0eS1wcmludGVycy1pbi1uZXdvYmpmaWxlLWV2ZW50LWxpYi5oIHwgMzEgKysrKysrKw0KICAg ID4gIC4uLnJldHR5LXByaW50ZXJzLWluLW5ld29iamZpbGUtZXZlbnQtbWFpbi5jYyB8IDI3ICsr KysrKw0KICAgID4gIC4uLmVkLXByZXR0eS1wcmludGVycy1pbi1uZXdvYmpmaWxlLWV2ZW50LmV4 cCB8IDg1ICsrKysrKysrKysrKysrKysrKysNCiAgICA+ICAuLi5kZWQtcHJldHR5LXByaW50ZXJz LWluLW5ld29iamZpbGUtZXZlbnQucHkgfCA1MCArKysrKysrKysrKw0KICAgID4gIDkgZmlsZXMg Y2hhbmdlZCwgMjg1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQogICAgPiAgY3JlYXRl IG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9saWJweS1hdXRvbG9hZGVkLXBy ZXR0eS1wcmludGVycy1pbi1uZXdvYmpmaWxlLWV2ZW50LnNvLWdkYi5weQ0KICAgID4gIGNyZWF0 ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktYXV0b2xvYWRlZC1wcmV0 dHktcHJpbnRlcnMtaW4tbmV3b2JqZmlsZS1ldmVudC1saWIuY2MNCiAgICA+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWF1dG9sb2FkZWQtcHJldHR5LXBy aW50ZXJzLWluLW5ld29iamZpbGUtZXZlbnQtbGliLmgNCiAgICA+ICBjcmVhdGUgbW9kZSAxMDA2 NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWF1dG9sb2FkZWQtcHJldHR5LXByaW50ZXJz LWluLW5ld29iamZpbGUtZXZlbnQtbWFpbi5jYw0KICAgID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBn ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktYXV0b2xvYWRlZC1wcmV0dHktcHJpbnRlcnMtaW4t bmV3b2JqZmlsZS1ldmVudC5leHANCiAgICA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5LWF1dG9sb2FkZWQtcHJldHR5LXByaW50ZXJzLWluLW5ld29iamZp bGUtZXZlbnQucHkNCiAgICA+IA0KICAgID4gZGlmZiAtLWdpdCBhL2dkYi9hdXRvLWxvYWQuYyBi L2dkYi9hdXRvLWxvYWQuYw0KICAgID4gaW5kZXggMjM5ZWZhMzQ2MDY0Li5kMWFlNmRlYWNlZTcg MTAwNjQ0DQogICAgPiAtLS0gYS9nZGIvYXV0by1sb2FkLmMNCiAgICA+ICsrKyBiL2dkYi9hdXRv LWxvYWQuYw0KICAgID4gQEAgLTE0OTQsNiArMTQ5NCwxMCBAQCBmb3VuZCBhbmQvb3IgbG9hZGVk LiIpLA0KICAgID4gICAgcmV0dXJuICZyZXR2YWw7DQogICAgPiAgfQ0KICAgID4gIA0KICAgID4g Ky8qIFNlZSBhdXRvLWxvYWQuaC4gICovDQogICAgPiArDQogICAgPiArZ2RiOjpvYnNlcnZlcnM6 OnRva2VuIGF1dG9fbG9hZF9uZXdfb2JqZmlsZV9vYnNlcnZlcl90b2tlbjsNCiAgICA+ICsNCiAg ICA+ICB2b2lkIF9pbml0aWFsaXplX2F1dG9fbG9hZCAoKTsNCiAgICA+ICB2b2lkDQogICAgPiAg X2luaXRpYWxpemVfYXV0b19sb2FkICgpDQogICAgPiBAQCAtMTUwMyw4ICsxNTA3LDkgQEAgX2lu aXRpYWxpemVfYXV0b19sb2FkICgpDQogICAgPiAgICBjaGFyICpndWlsZV9uYW1lX2hlbHA7DQog ICAgPiAgICBjb25zdCBjaGFyICpzdWZmaXg7DQogICAgPiAgDQogICAgPiAtICBnZGI6Om9ic2Vy dmVyczo6bmV3X29iamZpbGUuYXR0YWNoIChhdXRvX2xvYWRfbmV3X29iamZpbGUsICJhdXRvLWxv YWQiKTsNCiAgICA+IC0NCiAgICA+ICsgIGdkYjo6b2JzZXJ2ZXJzOjpuZXdfb2JqZmlsZS5hdHRh Y2ggKGF1dG9fbG9hZF9uZXdfb2JqZmlsZSwNCiAgICA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGF1dG9fbG9hZF9uZXdfb2JqZmlsZV9vYnNlcnZlcl90b2tlbiwNCiAg ICA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdXRvLWxvYWQiKTsN CiAgICA+ICAgIGFkZF9zZXRzaG93X2Jvb2xlYW5fY21kICgiZ2RiLXNjcmlwdHMiLCBjbGFzc19z dXBwb3J0LA0KICAgID4gIAkJCSAgICZhdXRvX2xvYWRfZ2RiX3NjcmlwdHMsIF8oIlwNCiAgICA+ ICBFbmFibGUgb3IgZGlzYWJsZSBhdXRvLWxvYWRpbmcgb2YgY2FubmVkIHNlcXVlbmNlcyBvZiBj b21tYW5kcyBzY3JpcHRzLiIpLCBfKCJcDQogICAgPiBkaWZmIC0tZ2l0IGEvZ2RiL2F1dG8tbG9h ZC5oIGIvZ2RiL2F1dG8tbG9hZC5oDQogICAgPiBpbmRleCBmNzI2MTI2YzU1NDEuLjQzNzJlYzRm NGRkNyAxMDA2NDQNCiAgICA+IC0tLSBhL2dkYi9hdXRvLWxvYWQuaA0KICAgID4gKysrIGIvZ2Ri L2F1dG8tbG9hZC5oDQogICAgPiBAQCAtMjUsNiArMjUsMTAgQEAgc3RydWN0IHByb2dyYW1fc3Bh Y2U7DQogICAgPiAgc3RydWN0IGF1dG9fbG9hZF9wc3BhY2VfaW5mbzsNCiAgICA+ICBzdHJ1Y3Qg ZXh0ZW5zaW9uX2xhbmd1YWdlX2RlZm47DQogICAgPiAgDQogICAgPiArbmFtZXNwYWNlIGdkYjo6 b2JzZXJ2ZXJzIHsNCiAgICA+ICtzdHJ1Y3QgdG9rZW47DQogICAgPiArfQ0KICAgID4gKw0KDQog ICAgSSB3b25kZXIgaWYgd2Ugc2hvdWxkIG1vdmUgdGhlIGRlY2xhcmF0aW9uIG9mIGdkYjo6b2Jz ZXJ2ZXJzOjp0b2tlbg0KICAgIG91dCBvZiBvYnNlcnZhYmxlLmggaW50byBvYnNlcnZhYmxlLXRv a2VuLmgsIHRoZW4gaXQgd291bGQgYmUgY2hlYXANCiAgICBlbm91Z2ggdG8ganVzdCBpbmNsdWRl IG9ic2VydmFibGUtdG9rZW4uaCBpbnRvIG90aGVyIGhlYWRlciBmaWxlcz8NCg0KICAgIE90aGVy d2lzZSwgYWxsIGxvb2tzIGdvb2QuDQoNCiAgICBUaGFua3MsDQogICAgQW5kcmV3DQoNCiAgICA+ ICAvKiBWYWx1ZSBvZiB0aGUgJ3NldCBkZWJ1ZyBhdXRvLWxvYWQnIGNvbmZpZ3VyYXRpb24gdmFy aWFibGUuICAqLw0KICAgID4gIA0KICAgID4gIGV4dGVybiBib29sIGRlYnVnX2F1dG9fbG9hZDsN CiAgICA+IEBAIC00MCw2ICs0NCwxMCBAQCBleHRlcm4gYm9vbCBhdXRvX2xvYWRfbG9jYWxfZ2Ri aW5pdDsNCiAgICA+ICBleHRlcm4gY2hhciAqYXV0b19sb2FkX2xvY2FsX2dkYmluaXRfcGF0aG5h bWU7DQogICAgPiAgZXh0ZXJuIGJvb2wgYXV0b19sb2FkX2xvY2FsX2dkYmluaXRfbG9hZGVkOw0K ICAgID4gIA0KICAgID4gKy8qIFRva2VuIHVzZWQgZm9yIHRoZSBhdXRvX2xvYWRfbmV3X29iamZp bGUgb2JzZXJ2ZXIsIHNvIG90aGVyIG9ic2VydmVycyBjYW4NCiAgICA+ICsgICBzcGVjaWZ5IGl0 IGFzIGEgZGVwZW5kZW5jeS4gKi8NCiAgICA+ICtleHRlcm4gZ2RiOjpvYnNlcnZlcnM6OnRva2Vu IGF1dG9fbG9hZF9uZXdfb2JqZmlsZV9vYnNlcnZlcl90b2tlbjsNCiAgICA+ICsNCiAgICA+ICBl eHRlcm4gc3RydWN0IGF1dG9fbG9hZF9wc3BhY2VfaW5mbyAqDQogICAgPiAgICBnZXRfYXV0b19s b2FkX3BzcGFjZV9kYXRhX2Zvcl9sb2FkaW5nIChzdHJ1Y3QgcHJvZ3JhbV9zcGFjZSAqcHNwYWNl KTsNCiAgICA+ICBleHRlcm4gdm9pZCBhdXRvX2xvYWRfb2JqZmlsZV9zY3JpcHQgKHN0cnVjdCBv YmpmaWxlICpvYmpmaWxlLA0KICAgID4gZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktaW5mZXJp b3IuYyBiL2dkYi9weXRob24vcHktaW5mZXJpb3IuYw0KICAgID4gaW5kZXggYzI4NjFjY2I3MzVj Li5mZWJkMmE3M2VjZTMgMTAwNjQ0DQogICAgPiAtLS0gYS9nZGIvcHl0aG9uL3B5LWluZmVyaW9y LmMNCiAgICA+ICsrKyBiL2dkYi9weXRob24vcHktaW5mZXJpb3IuYw0KICAgID4gQEAgLTE4LDYg KzE4LDcgQEANCiAgICA+ICAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2Vl IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovDQogICAgPiAgDQogICAgPiAgI2lu Y2x1ZGUgImRlZnMuaCINCiAgICA+ICsjaW5jbHVkZSAiYXV0by1sb2FkLmgiDQogICAgPiAgI2lu Y2x1ZGUgImdkYmNvcmUuaCINCiAgICA+ICAjaW5jbHVkZSAiZ2RidGhyZWFkLmgiDQogICAgPiAg I2luY2x1ZGUgImluZmVyaW9yLmgiDQogICAgPiBAQCAtOTE3LDcgKzkxOCwxMSBAQCBnZGJweV9p bml0aWFsaXplX2luZmVyaW9yICh2b2lkKQ0KICAgID4gICAgZ2RiOjpvYnNlcnZlcnM6OnJlZ2lz dGVyX2NoYW5nZWQuYXR0YWNoIChweXRob25fb25fcmVnaXN0ZXJfY2hhbmdlLA0KICAgID4gIAkJ CQkJICAgInB5LWluZmVyaW9yIik7DQogICAgPiAgICBnZGI6Om9ic2VydmVyczo6aW5mZXJpb3Jf ZXhpdC5hdHRhY2ggKHB5dGhvbl9pbmZlcmlvcl9leGl0LCAicHktaW5mZXJpb3IiKTsNCiAgICA+ IC0gIGdkYjo6b2JzZXJ2ZXJzOjpuZXdfb2JqZmlsZS5hdHRhY2ggKHB5dGhvbl9uZXdfb2JqZmls ZSwgInB5LWluZmVyaW9yIik7DQogICAgPiArICAvKiBOZWVkIHRvIHJ1biBhZnRlciBhdXRvLWxv YWQncyBuZXdfb2JqZmlsZSBvYnNlcnZlciwgc28gdGhhdA0KICAgID4gKyAgICAgYXV0by1sb2Fk ZWQgcHJldHR5LXByaW50ZXJzIGFyZSBhdmFpbGFibGUuICAqLw0KICAgID4gKyAgZ2RiOjpvYnNl cnZlcnM6Om5ld19vYmpmaWxlLmF0dGFjaA0KICAgID4gKyAgICAocHl0aG9uX25ld19vYmpmaWxl LCAicHktaW5mZXJpb3IiLA0KICAgID4gKyAgICAgeyAmYXV0b19sb2FkX25ld19vYmpmaWxlX29i c2VydmVyX3Rva2VuIH0pOw0KICAgID4gICAgZ2RiOjpvYnNlcnZlcnM6OmluZmVyaW9yX2FkZGVk LmF0dGFjaCAocHl0aG9uX25ld19pbmZlcmlvciwgInB5LWluZmVyaW9yIik7DQogICAgPiAgICBn ZGI6Om9ic2VydmVyczo6aW5mZXJpb3JfcmVtb3ZlZC5hdHRhY2ggKHB5dGhvbl9pbmZlcmlvcl9k ZWxldGVkLA0KICAgID4gIAkJCQkJICAgInB5LWluZmVyaW9yIik7DQogICAgPiBkaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL2xpYnB5LWF1dG9sb2FkZWQtcHJldHR5LXByaW50 ZXJzLWluLW5ld29iamZpbGUtZXZlbnQuc28tZ2RiLnB5IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0 aG9uL2xpYnB5LWF1dG9sb2FkZWQtcHJldHR5LXByaW50ZXJzLWluLW5ld29iamZpbGUtZXZlbnQu c28tZ2RiLnB5DQogICAgPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KICAgID4gaW5kZXggMDAwMDAw MDAwMDAwLi5hZWIzOWE2YzQ4M2ENCiAgICA+IC0tLSAvZGV2L251bGwNCiAgICA+ICsrKyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9saWJweS1hdXRvbG9hZGVkLXByZXR0eS1wcmludGVycy1p bi1uZXdvYmpmaWxlLWV2ZW50LnNvLWdkYi5weQ0KICAgID4gQEAgLTAsMCArMSw0MyBAQA0KICAg ID4gKyMgQ29weXJpZ2h0IChDKSAyMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0K ICAgID4gKw0KICAgID4gKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiAgICA+ICsjIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQogICAg PiArIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRo ZSBMaWNlbnNlLCBvcg0KICAgID4gKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4NCiAgICA+ICsjDQogICAgPiArIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiAgICA+ICsjIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQogICAgPiArIyBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg dGhlDQogICAgPiArIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz Lg0KICAgID4gKyMNCiAgICA+ICsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQogICAgPiArIyBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4NCiAg ICA+ICsNCiAgICA+ICsjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHREIgdGVzdHN1aXRlLiBJ dCB0ZXN0cyB0aGF0IHB5dGhvbiBwcmV0dHkNCiAgICA+ICsjIHByaW50ZXJzIGRlZmluZWQgaW4g YSBweXRob24gc2NyaXB0IHRoYXQgaXMgYXV0b2xvYWRlZCBoYXZlIGJlZW4NCiAgICA+ICsjIHJl Z2lzdGVyZWQgd2hlbiBhIGN1c3RvbSBldmVudCBoYW5kbGVyIGZvciB0aGUgbmV3X29iamZpbGUg ZXZlbnQNCiAgICA+ICsjIGlzIGNhbGxlZC4NCiAgICA+ICsNCiAgICA+ICtpbXBvcnQgZ2RiLnBy aW50aW5nDQogICAgPiArDQogICAgPiArDQogICAgPiArY2xhc3MgTXlDbGFzc1Rlc3RMaWJQcmlu dGVyKG9iamVjdCk6DQogICAgPiArICAgICJQcmludCBhIE15Q2xhc3NUZXN0TGliIg0KICAgID4g Kw0KICAgID4gKyAgICBkZWYgX19pbml0X18oc2VsZiwgdmFsKToNCiAgICA+ICsgICAgICAgIHNl bGYudmFsID0gdmFsDQogICAgPiArDQogICAgPiArICAgIGRlZiB0b19zdHJpbmcoc2VsZik6DQog ICAgPiArICAgICAgICByZXR1cm4gIk15Q2xhc3NUZXN0TGliIG9iamVjdCwgaWQ6IHt9Ii5mb3Jt YXQoc2VsZi52YWxbImlkIl0pDQogICAgPiArDQogICAgPiArICAgIGRlZiBkaXNwbGF5X2hpbnQo c2VsZik6DQogICAgPiArICAgICAgICByZXR1cm4gInN0cmluZyINCiAgICA+ICsNCiAgICA+ICsN CiAgICA+ICtkZWYgYnVpbGRfcHJldHR5X3ByaW50ZXIoKToNCiAgICA+ICsgICAgcHAgPSBnZGIu cHJpbnRpbmcuUmVnZXhwQ29sbGVjdGlvblByZXR0eVByaW50ZXIoIm15X2xpYnJhcnkiKQ0KICAg ID4gKyAgICBwcC5hZGRfcHJpbnRlcigiTXlDbGFzc1Rlc3RMaWIiLCAiXk15Q2xhc3NUZXN0TGli JCIsIE15Q2xhc3NUZXN0TGliUHJpbnRlcikNCiAgICA+ICsgICAgcmV0dXJuIHBwDQogICAgPiAr DQogICAgPiArDQogICAgPiArZ2RiLnByaW50aW5nLnJlZ2lzdGVyX3ByZXR0eV9wcmludGVyKGdk Yi5jdXJyZW50X29iamZpbGUoKSwgYnVpbGRfcHJldHR5X3ByaW50ZXIoKSkNCiAgICA+IGRpZmYg LS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktYXV0b2xvYWRlZC1wcmV0dHktcHJp bnRlcnMtaW4tbmV3b2JqZmlsZS1ldmVudC1saWIuY2MgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktYXV0b2xvYWRlZC1wcmV0dHktcHJpbnRlcnMtaW4tbmV3b2JqZmlsZS1ldmVudC1saWIu Y2MNCiAgICA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQogICAgPiBpbmRleCAwMDAwMDAwMDAwMDAu LjdmMTNjZDJiNzQxZQ0KICAgID4gLS0tIC9kZXYvbnVsbA0KICAgID4gKysrIGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5LWF1dG9sb2FkZWQtcHJldHR5LXByaW50ZXJzLWluLW5ld29iamZp bGUtZXZlbnQtbGliLmNjDQogICAgPiBAQCAtMCwwICsxLDI4IEBADQogICAgPiArLyogVGhpcyB0 ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4NCiAgICA+ICsNCiAgICA+ ICsgICBDb3B5cmlnaHQgMjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCiAgICA+ ICsNCiAgICA+ICsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KICAgID4gKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQogICAgPiAr ICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3INCiAgICA+ICsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u Lg0KICAgID4gKw0KICAgID4gKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KICAgID4gKyAgIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQogICAgPiArICAg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQ0KICAgID4gKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp bHMuDQogICAgPiArDQogICAgPiArICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiAgICA+ICsgICBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4g ICovDQogICAgPiArDQogICAgPiArI2luY2x1ZGUgInB5LWF1dG9sb2FkZWQtcHJldHR5LXByaW50 ZXJzLWluLW5ld29iamZpbGUtZXZlbnQtbGliLmgiDQogICAgPiArDQogICAgPiArTXlDbGFzc1Rl c3RMaWI6Ok15Q2xhc3NUZXN0TGliIChpbnQgdGhlSWQpDQogICAgPiArew0KICAgID4gKyAgaWQg PSB0aGVJZDsNCiAgICA+ICt9DQogICAgPiArDQogICAgPiAraW50IE15Q2xhc3NUZXN0TGliOjpn ZXRJZCAoKQ0KICAgID4gK3sNCiAgICA+ICsgIHJldHVybiBpZDsNCiAgICA+ICt9DQogICAgPiBk aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWF1dG9sb2FkZWQtcHJldHR5 LXByaW50ZXJzLWluLW5ld29iamZpbGUtZXZlbnQtbGliLmggYi9nZGIvdGVzdHN1aXRlL2dkYi5w eXRob24vcHktYXV0b2xvYWRlZC1wcmV0dHktcHJpbnRlcnMtaW4tbmV3b2JqZmlsZS1ldmVudC1s aWIuaA0KICAgID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCiAgICA+IGluZGV4IDAwMDAwMDAwMDAw MC4uMzcxNGVjZDJlZjA4DQogICAgPiAtLS0gL2Rldi9udWxsDQogICAgPiArKysgYi9nZGIvdGVz dHN1aXRlL2dkYi5weXRob24vcHktYXV0b2xvYWRlZC1wcmV0dHktcHJpbnRlcnMtaW4tbmV3b2Jq ZmlsZS1ldmVudC1saWIuaA0KICAgID4gQEAgLTAsMCArMSwzMSBAQA0KICAgID4gKy8qIFRoaXMg dGVzdGNhc2UgaXMgcGFydCBvZiBHREIsIHRoZSBHTlUgZGVidWdnZXIuDQogICAgPiArDQogICAg PiArICAgQ29weXJpZ2h0IDIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuDQogICAg PiArDQogICAgPiArICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiAgICA+ICsgICBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KICAgID4g KyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhl IExpY2Vuc2UsIG9yDQogICAgPiArICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4NCiAgICA+ICsNCiAgICA+ICsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiAgICA+ICsgICBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KICAgID4gKyAg IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUNCiAgICA+ICsgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLg0KICAgID4gKw0KICAgID4gKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQogICAgPiArICAgYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u ICAqLw0KICAgID4gKw0KICAgID4gKyNpZm5kZWYgVEVTVExJQlJBUllfSA0KICAgID4gKyNkZWZp bmUgVEVTVExJQlJBUllfSA0KICAgID4gKw0KICAgID4gK2NsYXNzIE15Q2xhc3NUZXN0TGliDQog ICAgPiArew0KICAgID4gK3B1YmxpYzoNCiAgICA+ICsgIGV4cGxpY2l0IE15Q2xhc3NUZXN0TGli IChpbnQgdGhlSWQpOw0KICAgID4gKyAgaW50IGdldElkICgpOw0KICAgID4gKw0KICAgID4gK3By aXZhdGU6DQogICAgPiArICBpbnQgaWQ7DQogICAgPiArfTsNCiAgICA+ICsNCiAgICA+ICsjZW5k aWYgLyogVEVTVExJQlJBUllfSCAqLw0KICAgID4gZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUv Z2RiLnB5dGhvbi9weS1hdXRvbG9hZGVkLXByZXR0eS1wcmludGVycy1pbi1uZXdvYmpmaWxlLWV2 ZW50LW1haW4uY2MgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktYXV0b2xvYWRlZC1wcmV0 dHktcHJpbnRlcnMtaW4tbmV3b2JqZmlsZS1ldmVudC1tYWluLmNjDQogICAgPiBuZXcgZmlsZSBt b2RlIDEwMDY0NA0KICAgID4gaW5kZXggMDAwMDAwMDAwMDAwLi4yY2M4OWEzYmVmZDUNCiAgICA+ IC0tLSAvZGV2L251bGwNCiAgICA+ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1h dXRvbG9hZGVkLXByZXR0eS1wcmludGVycy1pbi1uZXdvYmpmaWxlLWV2ZW50LW1haW4uY2MNCiAg ICA+IEBAIC0wLDAgKzEsMjcgQEANCiAgICA+ICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2Yg R0RCLCB0aGUgR05VIGRlYnVnZ2VyLg0KICAgID4gKw0KICAgID4gKyAgIENvcHlyaWdodCAyMDIx IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KICAgID4gKw0KICAgID4gKyAgIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3Ig bW9kaWZ5DQogICAgPiArICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiAgICA+ICsgICB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcg0KICAgID4g KyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQogICAgPiArDQogICAgPiAr ICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsDQogICAgPiArICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiAgICA+ICsgICBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQogICAgPiArICAgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiAgICA+ICsNCiAgICA+ ICsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQ0KICAgID4gKyAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8NCiAgICA+ICsNCiAgICA+ ICsjaW5jbHVkZSAicHktYXV0b2xvYWRlZC1wcmV0dHktcHJpbnRlcnMtaW4tbmV3b2JqZmlsZS1l dmVudC1saWIuaCINCiAgICA+ICsNCiAgICA+ICtib29sIGFsbF9nb29kID0gZmFsc2U7DQogICAg PiArDQogICAgPiAraW50DQogICAgPiArbWFpbiAoKQ0KICAgID4gK3sNCiAgICA+ICsgIE15Q2xh c3NUZXN0TGliIHRlc3QgKDEpOw0KICAgID4gKyAgcmV0dXJuIDA7IC8qIGJyZWFrIHRvIGluc3Bl Y3QgKi8NCiAgICA+ICt9DQogICAgPiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0 aG9uL3B5LWF1dG9sb2FkZWQtcHJldHR5LXByaW50ZXJzLWluLW5ld29iamZpbGUtZXZlbnQuZXhw IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWF1dG9sb2FkZWQtcHJldHR5LXByaW50ZXJz LWluLW5ld29iamZpbGUtZXZlbnQuZXhwDQogICAgPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KICAg ID4gaW5kZXggMDAwMDAwMDAwMDAwLi40NDQ0NjYxMDllOGYNCiAgICA+IC0tLSAvZGV2L251bGwN CiAgICA+ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1hdXRvbG9hZGVkLXByZXR0 eS1wcmludGVycy1pbi1uZXdvYmpmaWxlLWV2ZW50LmV4cA0KICAgID4gQEAgLTAsMCArMSw4NSBA QA0KICAgID4gKyMgQ29weXJpZ2h0IChDKSAyMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLg0KICAgID4gKw0KICAgID4gKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiAgICA+ICsjIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 DQogICAgPiArIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcg0KICAgID4gKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4NCiAgICA+ICsjDQogICAgPiArIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiAgICA+ICsjIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQogICAg PiArIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlDQogICAgPiArIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLg0KICAgID4gKyMNCiAgICA+ICsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQogICAgPiArIyBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4NCiAgICA+ICsNCiAgICA+ICsjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHREIgdGVzdHN1 aXRlLiAgSXQgdGVzdHMgdGhhdCBQeXRob24gcHJldHR5LXByaW50ZXJzDQogICAgPiArIyBkZWZp bmVkIGluIGEgUHl0aG9uIHNjcmlwdCB0aGF0IGlzIGF1dG9sb2FkZWQgYXJlIHJlZ2lzdGVyZWQg d2hlbiBhbiBldmVudA0KICAgID4gKyMgaGFuZGxlciBmb3IgdGhlIG5ld19vYmpmaWxlIGV2ZW50 IGlzIGNhbGxlZC4NCiAgICA+ICsNCiAgICA+ICtsb2FkX2xpYiBnZGItcHl0aG9uLmV4cA0KICAg ID4gKw0KICAgID4gK3N0YW5kYXJkX3Rlc3RmaWxlIC1tYWluLmNjDQogICAgPiArDQogICAgPiAr c2V0IHNyY2ZpbGVfbGliICIke3Rlc3RmaWxlfS1saWIuY2MiDQogICAgPiArc2V0IHB5dGhvbl9l dmVudF9oYW5kbGVyX2ZpbGUgIiR7c3JjZGlyfS8ke3N1YmRpcn0vJHt0ZXN0ZmlsZX0ucHkiDQog ICAgPiArc2V0IGxpYm5hbWUgImxpYiR7dGVzdGZpbGV9Ig0KICAgID4gK3NldCBweXRob25fYXV0 b2xvYWRfZmlsZSAiJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke2xpYm5hbWV9LnNvLWdkYi5weSINCiAg ICA+ICtzZXQgYmluZmlsZV9saWIgW3N0YW5kYXJkX291dHB1dF9maWxlICIke2xpYm5hbWV9LnNv Il0NCiAgICA+ICsNCiAgICA+ICsjIFN0YXJ0IEdEQiBmaXJzdCAtIG5lZWRlZCBmb3Igc2tpcF9w eXRob25fdGVzdHMuDQogICAgPiArY2xlYW5fcmVzdGFydA0KICAgID4gKw0KICAgID4gKyMgU2tp cCBhbGwgdGVzdHMgaWYgUHl0aG9uIHNjcmlwdGluZyBpcyBub3QgZW5hYmxlZC4NCiAgICA+ICtp ZiB7IFtza2lwX3B5dGhvbl90ZXN0c10gfSB7IGNvbnRpbnVlIH0NCiAgICA+ICsNCiAgICA+ICsj IENvbXBpbGUgbGlicmFyeS4NCiAgICA+ICtpZiB7IFtnZGJfY29tcGlsZV9zaGxpYiAke3NyY2Rp cn0vJHtzdWJkaXJ9LyR7c3JjZmlsZV9saWJ9ICR7YmluZmlsZV9saWJ9IFwNCiAgICA+ICsgICAg ICB7ZGVidWcgYysrfV0gIT0gIiIgfSB7DQogICAgPiArICAgIHJldHVybiAtMQ0KICAgID4gK30N CiAgICA+ICsNCiAgICA+ICsjIENvbXBpbGUgbWFpbiBwcm9ncmFtLg0KICAgID4gK2lmIHsgW2dk Yl9jb21waWxlICR7c3JjZGlyfS8ke3N1YmRpcn0vJHtzcmNmaWxlfSBcDQogICAgPiArICAgICAg JHtiaW5maWxlfSBcDQogICAgPiArICAgICAgZXhlY3V0YWJsZSBcDQogICAgPiArICAgICAgW2xp c3QgZGVidWcgYysrIHNobGliPSRiaW5maWxlX2xpYl1dICE9ICIiIH0gew0KICAgID4gKyAgICBy ZXR1cm4gLTENCiAgICA+ICt9DQogICAgPiArDQogICAgPiArIyBNYWtlIHRoZSAtZ2RiLnB5IHNj cmlwdCBhdmFpbGFibGUgdG8gZ2RiLCBpdCBpcyBhdXRvbWF0aWNhbGx5IGxvYWRlZCBieQ0KICAg ID4gKyMgZ2RiIGlmIGl0IGlzIHB1dCBpbiB0aGUgc2FtZSBkaXJlY3RvcnkgYXMgdGhlIGxpYnJh cnkuDQogICAgPiArc2V0IHJlbW90ZV9weXRob25fYXV0b2xvYWRfZmlsZSBcDQogICAgPiArICAg IFtnZGJfcmVtb3RlX2Rvd25sb2FkIGhvc3QgJHB5dGhvbl9hdXRvbG9hZF9maWxlXQ0KICAgID4g Kw0KICAgID4gK2dkYl90ZXN0X25vX291dHB1dCBcDQogICAgPiArICAgICJzZXQgYXV0by1sb2Fk IHNhZmUtcGF0aCAke3JlbW90ZV9weXRob25fYXV0b2xvYWRfZmlsZX0iIFwNCiAgICA+ICsgICAg InNldCBhdXRvLWxvYWQgc2FmZS1wYXRoIg0KICAgID4gKw0KICAgID4gKyMgTG9hZCB0aGUgUHl0 aG9uIGZpbGUgdGhhdCBkZWZpbmVzIGEgaGFuZGxlciBmb3IgdGhlIG5ld19vYmpmaWxlIGV2ZW50 LA0KICAgID4gKyMgd2hpY2ggd2lsbCBnZW5lcmF0ZSB0aGUgb3V0cHV0IHRvIGNoZWNrIGxhdGVy DQogICAgPiArIyAocHJpbnRzIGluZm9ybWF0aW9uIG9uIGF2YWlsYWJsZSBwcmV0dHktcHJpbnRl cnMgZm9yIG9iamZpbGUpLg0KICAgID4gK3NldCByZW1vdGVfcHl0aG9uX2V2ZW50X2hhbmRsZXJf ZmlsZVwNCiAgICA+ICsgICAgW2dkYl9yZW1vdGVfZG93bmxvYWQgaG9zdCAkcHl0aG9uX2V2ZW50 X2hhbmRsZXJfZmlsZV0NCiAgICA+ICtnZGJfdGVzdF9ub19vdXRwdXQgInNvdXJjZSAke3JlbW90 ZV9weXRob25fZXZlbnRfaGFuZGxlcl9maWxlfSIgImxvYWQgcHl0aG9uIGZpbGUiDQogICAgPiAr DQogICAgPiArZ2RiX2xvYWQgJHtiaW5maWxlfQ0KICAgID4gKw0KICAgID4gK2dkYl90ZXN0X25v X291dHB1dCAic2V0IHByaW50IHByZXR0eSBvbiINCiAgICA+ICsNCiAgICA+ICsjIENoZWNrIHRo YXQgdGhlIGhhbmRsZXIgcHJpbnRzIG91dHB1dCB3aGVuIHRlc3QgbGlicmFyeSBpcyBsb2FkZWQN CiAgICA+ICsjIGFuZCB0aGF0IHRoZSBwcmV0dHktcHJpbnRlciBmcm9tIHRoZSBhdXRvLWxvYWRl ZCBQeXRob24gZmlsZSBoYXMgYmVlbg0KICAgID4gKyMgcmVnaXN0ZXJlZC4NCiAgICA+ICtpZiB7 ICFbcnVudG9fbWFpbl0gfSB7DQogICAgPiArICAgIGZhaWwgImZhaWxlZCB0byBydW4gdG8gbWFp biINCiAgICA+ICsgICAgcmV0dXJuDQogICAgPiArfQ0KICAgID4gKw0KICAgID4gKyMgQ2hlY2sg dGhhdCB0aGUgbmV3X29iamZpbGUgaGFuZGxlciBzYXcgdGhlIHByZXR0eS1wcmludGVyLg0KICAg ID4gK2dkYl90ZXN0ICJwcmludCBhbGxfZ29vZCIgIiA9IHRydWUiDQogICAgPiArDQogICAgPiAr IyBDaGVjayB0aGF0IHRoZSBwcmV0dHktcHJpbnRlciBhY3R1YWxseSB3b3Jrcy4NCiAgICA+ICtn ZGJfdGVzdCAiaW5mbyBwcmV0dHktcHJpbnRlciIgIm15X2xpYnJhcnkuKk15Q2xhc3NUZXN0TGli LioiDQogICAgPiArZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgImJyZWFrIHRv IGluc3BlY3QiXQ0KICAgID4gK2dkYl90ZXN0ICJjb250aW51ZSIgIkJyZWFrcG9pbnQgJGRlY2lt YWwsIG1haW4gLioiDQogICAgPiArZ2RiX3Rlc3QgInByaW50IHRlc3QiICJNeUNsYXNzVGVzdExp YiBvYmplY3QsIGlkOiAxLioiDQogICAgPiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu cHl0aG9uL3B5LWF1dG9sb2FkZWQtcHJldHR5LXByaW50ZXJzLWluLW5ld29iamZpbGUtZXZlbnQu cHkgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktYXV0b2xvYWRlZC1wcmV0dHktcHJpbnRl cnMtaW4tbmV3b2JqZmlsZS1ldmVudC5weQ0KICAgID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCiAg ICA+IGluZGV4IDAwMDAwMDAwMDAwMC4uODVkNjBmYzUxYzMxDQogICAgPiAtLS0gL2Rldi9udWxs DQogICAgPiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktYXV0b2xvYWRlZC1wcmV0 dHktcHJpbnRlcnMtaW4tbmV3b2JqZmlsZS1ldmVudC5weQ0KICAgID4gQEAgLTAsMCArMSw1MCBA QA0KICAgID4gKyMgQ29weXJpZ2h0IChDKSAyMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLg0KICAgID4gKw0KICAgID4gKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiAgICA+ICsjIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 DQogICAgPiArIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAz IG9mIHRoZSBMaWNlbnNlLCBvcg0KICAgID4gKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4NCiAgICA+ICsjDQogICAgPiArIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiAgICA+ICsjIGJ1dCBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQogICAg PiArIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlDQogICAgPiArIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLg0KICAgID4gKyMNCiAgICA+ICsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQogICAgPiArIyBhbG9uZyB3aXRo IHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4NCiAgICA+ICsNCiAgICA+ICsjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHREIgdGVzdHN1 aXRlLiBJdCB0ZXN0cyB0aGF0IHB5dGhvbiBwcmV0dHkNCiAgICA+ICsjIHByaW50ZXJzIGRlZmlu ZWQgaW4gYSBweXRob24gc2NyaXB0IHRoYXQgaXMgYXV0b2xvYWRlZCBoYXZlIGJlZW4NCiAgICA+ ICsjIHJlZ2lzdGVyZWQgd2hlbiBhIGN1c3RvbSBldmVudCBoYW5kbGVyIGZvciB0aGUgbmV3X29i amZpbGUgZXZlbnQNCiAgICA+ICsjIGlzIGNhbGxlZC4NCiAgICA+ICsNCiAgICA+ICtpbXBvcnQg Z2RiDQogICAgPiAraW1wb3J0IG9zDQogICAgPiArDQogICAgPiArDQogICAgPiArZGVmIG5ld19v YmpmaWxlX2hhbmRsZXIoZXZlbnQpOg0KICAgID4gKyAgICBhc3NlcnQgaXNpbnN0YW5jZShldmVu dCwgZ2RiLk5ld09iakZpbGVFdmVudCkNCiAgICA+ICsgICAgb2JqZmlsZSA9IGV2ZW50Lm5ld19v YmpmaWxlDQogICAgPiArDQogICAgPiArICAgICMgT25seSBvYnNlcnZlIHRoZSBjdXN0b20gdGVz dCBsaWJyYXJ5Lg0KICAgID4gKyAgICBsaWJuYW1lID0gImxpYnB5LWF1dG9sb2FkZWQtcHJldHR5 LXByaW50ZXJzLWluLW5ld29iamZpbGUtZXZlbnQiDQogICAgPiArICAgIGlmIGxpYm5hbWUgaW4g b3MucGF0aC5iYXNlbmFtZShvYmpmaWxlLmZpbGVuYW1lKToNCiAgICA+ICsgICAgICAgICMgSWYg ZXZlcnl0aGluZyB3ZW50IHdlbGwgYW5kIHRoZSBwcmV0dHktcHJpbnRlciBhdXRvLWxvYWQgaGFw cGVuZWQNCiAgICA+ICsgICAgICAgICMgYmVmb3JlIG5vdGlmeWluZyB0aGUgUHl0aG9uIGxpc3Rl bmVycywgd2UgZXhwZWN0IHRvIHNlZSBvbmUgcHJldHR5DQogICAgPiArICAgICAgICAjIHByaW50 ZXIsIGFuZCBpdCBtdXN0IGJlIG91cnMuDQogICAgPiArICAgICAgICBhbGxfZ29vZCA9ICgNCiAg ICA+ICsgICAgICAgICAgICBsZW4ob2JqZmlsZS5wcmV0dHlfcHJpbnRlcnMpID09IDENCiAgICA+ ICsgICAgICAgICAgICBhbmQgb2JqZmlsZS5wcmV0dHlfcHJpbnRlcnNbMF0ubmFtZSA9PSAibXlf bGlicmFyeSINCiAgICA+ICsgICAgICAgICkNCiAgICA+ICsNCiAgICA+ICsgICAgICAgIGlmIGFs bF9nb29kOg0KICAgID4gKyAgICAgICAgICAgIGdkYi5wYXJzZV9hbmRfZXZhbCgiYWxsX2dvb2Qg PSB0cnVlIikNCiAgICA+ICsgICAgICAgIGVsc2U6DQogICAgPiArICAgICAgICAgICAgcHJpbnQo Ik9vcHMsIG5vdCBhbGwgZ29vZDoiKQ0KICAgID4gKyAgICAgICAgICAgIHByaW50KCJwcmV0dHkg cHJpbnRlciBjb3VudDoge30iLmZvcm1hdChsZW4ob2JqZmlsZS5wcmV0dHlfcHJpbnRlcnMpKSkN CiAgICA+ICsNCiAgICA+ICsgICAgICAgICAgICBmb3IgcHAgaW4gb2JqZmlsZS5wcmV0dHlfcHJp bnRlcnM6DQogICAgPiArICAgICAgICAgICAgICAgIHByaW50KCIgIC0ge30iLmZvcm1hdChwcC5u YW1lKSkNCiAgICA+ICsNCiAgICA+ICsNCiAgICA+ICtnZGIuZXZlbnRzLm5ld19vYmpmaWxlLmNv bm5lY3QobmV3X29iamZpbGVfaGFuZGxlcikNCiAgICA+IC0tIA0KICAgID4gMi4zMC4xDQogICAg PiANCg0K