From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.7]) by sourceware.org (Postfix) with ESMTPS id A56273858D3C for ; Mon, 20 Nov 2023 10:26:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A56273858D3C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A56273858D3C Authentication-Results: server2.sourceware.org; arc=fail smtp.remote-ip=192.198.163.7 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1700475990; cv=fail; b=iHwwPmjf3WDJEnK9LO3Sh7Uy8WHMlbiTZB5OUkzlMQreNh7R55hsIRuPn7AVYRteTXKzujt6sWmSpZ9n6xvdqdLe2dQmbGjkSRLsi4ZowZrGx84Xh9U7MyavTLvISyWAymLFmablGyrOfWhNLQ6bB09JwBXnZByprcluYY+Ipgw= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1700475990; c=relaxed/simple; bh=/IkLlL0PjsSKS6tGbbn53989eg9P7cZIJnf8ERFmwac=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=V/PnA23y+2DTaJ5nRbf5otPizLu8HR0fJmyvfz+TI4LrwG/A6TWKkBkas2Qj50bb53dvxLdYVv9BMqkRXPSvHBWs7laDD8NLAi6Xi19vderSDyADcOd4MrqPQUpPK/+UcX6F3mlZrIBph/b4IyRhnCV4OqRByYdAW/A4F0lojaY= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1700475986; x=1732011986; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version:content-transfer-encoding; bh=/IkLlL0PjsSKS6tGbbn53989eg9P7cZIJnf8ERFmwac=; b=YokeAPZOCe2aBxA6SBp2D2dC4uoUrU2m4DA+5hTiwiKPgZUq6GddYwvM YrGrxkI34BCeOAgy5Ftv10UqGRPZo5lR6Snnu+Y4dG/yhCx0Xs7Hj12W+ potV3Ul+rFM/MCyRDKaJobW2TqU7M94/EIe3dkInP9rR/sLEOOSKMi62+ exEpa40MKRyZNkquo1Yx2h5IF9iV2iRfWloHwE7p2Na9IDCmvGbuxrQGY eh3V7L3BOTBI9p91A87y1DM85wO225au1DH/q/W6PtstlbsiEHKsYrXMe zvdGxmvKGvWfIjMT4VtW/UFFjlf0bRns4SQpJW/UiUa2RVlyRanEWyNUE w==; X-IronPort-AV: E=McAfee;i="6600,9927,10899"; a="13146487" X-IronPort-AV: E=Sophos;i="6.04,213,1695711600"; d="scan'208";a="13146487" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmvoesa101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Nov 2023 02:26:24 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10899"; a="759745863" X-IronPort-AV: E=Sophos;i="6.04,213,1695711600"; d="scan'208";a="759745863" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga007.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 20 Nov 2023 02:26:23 -0800 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 20 Nov 2023 02:26:22 -0800 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34 via Frontend Transport; Mon, 20 Nov 2023 02:26:22 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.168) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34; Mon, 20 Nov 2023 02:26:22 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mB0x8t+EzMNPdigV/Y0hIqQLKSyflv6R1E9owhWI4wVNMuLXj2TaYaY0qiyhn+sfhsvamIsauFPMMMmnVNR4AOwRwbvopwZ8BA/yaC4QonqMLcBR4K6lz0854k7uhOkchh6FQKPgyiLF82rbvIhmY0/tdAKzDEUHrfB/ElAYl97pRyXlJFWcCGQsP0wBd/NInSpm6Oc6KDvLqSXe0C2YVsIcfCf1k4MRPb7jCy0RB2cJR4QakUfdAacPYnFy504kHxeuTgfn4C/sGoH9k+C/11hk+MwePOC+YqMHC1evzVPuwNkJm6om4wsY2ZHbVVIPMLq1JX4uGv6zoVQPDXwRgg== 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=ri1zpiWGJBLyf1haiey+YDSGBh3sreO2sjEl6oSpcgQ=; b=LrU3dwC0SvBnJx6al66fYmuFscuxFivS2MLw+DahZqUDTuVZ6ZnlLpsDGlks30rC9rag3TmmtVBEGk6nVopko8ESpclpVbnZrsjYkCkbq6EXzCXlqPBSbZhPKvh3N5OqnTc1XeGzCfTWfEC6ThjdkmaDBndiH/HsTrL9W9zGwsp1cZPGJnhU8/wvsXrKpT2F3PCg2oLNmoTjRaF054X5PLWDNVoSieqV+tdBZZ3UtjSFpnboF7xUw0WRJTkft5gnPo6ZbGxb5GCpi+Y1WefiTScqdSaqvfwRtcmBlP48JB1wPRgfGkn1NXaol+n0AUgD6HpwWTdCIj0iqMuYi3il5w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from SA1PR11MB6846.namprd11.prod.outlook.com (2603:10b6:806:2b0::6) by CH0PR11MB8236.namprd11.prod.outlook.com (2603:10b6:610:184::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7002.27; Mon, 20 Nov 2023 10:26:19 +0000 Received: from SA1PR11MB6846.namprd11.prod.outlook.com ([fe80::e1b8:c6f6:9c25:75d]) by SA1PR11MB6846.namprd11.prod.outlook.com ([fe80::e1b8:c6f6:9c25:75d%3]) with mapi id 15.20.7002.026; Mon, 20 Nov 2023 10:26:19 +0000 From: "Ijaz, Abdul B" To: Guinevere Larsen , "gdb-patches@sourceware.org" CC: "lsix@lancelotsix.com" , "pedro@palves.net" Subject: RE: [PATCH v4 1/2] gdb: add annotation in 'info locals' command for variables shadowing case Thread-Topic: [PATCH v4 1/2] gdb: add annotation in 'info locals' command for variables shadowing case Thread-Index: AQHZ6xj9NA/yB9F240WTIYeQvXNMn7BGCecAgD0zkXCAACAhQA== Date: Mon, 20 Nov 2023 10:26:19 +0000 Message-ID: References: <20230919164700.19891-1-abdul.b.ijaz@intel.com> <20230919164700.19891-2-abdul.b.ijaz@intel.com> <4f25e938-4729-4b1a-50fd-ce5ae7623d3f@redhat.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SA1PR11MB6846:EE_|CH0PR11MB8236:EE_ x-ms-office365-filtering-correlation-id: 159d950a-374a-4b54-f02e-08dbe9b322ad x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: j9duTkNJLx7QMplKZXlJ61IutVrfEGgQjLnrr79w0KuNGhhw3eL8ksCk97ennOw0hEvIsSaA3zWzpNedRiO595YDBJdOZbrzdySi5BLvPz+y+slPYfLavlphO+AjCEnHf7NU9L/K9Nm7R+L5jwHEvj2g1NBQWk4jaY1PHUq1JpamCBWhhXqFycnWdyBDglQKdSGowX1CSB6Kvi5d8q5tXfmoAQLLxv8LBDqehsdfXrjJglI2D5lK3pC6jN+bNVq4Z8D+yG4TD87PyrmC8QvpJeCtJwp+SOi57ODMmdFPdZmuX6k9PVn0AgOdRJZM5pFXlCYuJEXyUEe9crgv3Z3JIT8FAR6sRSWvtvvSinGYe9RDDsIQF0FYkaVzkrU1NJYc4aUUSjWDv12p9FGKhUBEaAwA3YYMkXekTmUkngATDEO52qqUApSCO/83ks/av/S0IqgecBgVRUCx7O8qOfmezihGUwuI7uvN9QPk2FX24d35LBbxEoRD6DFQ8nqC42X/ZJo04voYlpms8IQB2F6IoqsI3lmRQV3/qejr4aL1uPcKPHuPdBJJO+aROyNItk34xEJ+sh1T5vCWxY0XjdaDmgQ+xO1ynhX9d9rDFEz47l8= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR11MB6846.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(396003)(136003)(366004)(376002)(39860400002)(230922051799003)(1800799012)(186009)(451199024)(64100799003)(2940100002)(7696005)(6506007)(53546011)(83380400001)(71200400001)(84970400001)(478600001)(55016003)(9686003)(26005)(110136005)(76116006)(66556008)(66946007)(64756008)(54906003)(66476007)(66446008)(316002)(82960400001)(86362001)(2906002)(33656002)(41300700001)(122000001)(5660300002)(66899024)(52536014)(38070700009)(38100700002)(4326008)(8676002)(8936002)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZFlCZVdET2tKeFdSMjBkMkRUdEZ5UEFjL1RteklYT0M5YnlEUW05dHRoSzVR?= =?utf-8?B?TkFaWUFrZHBqSGpjcU84OEsySUZLa1U1UUZpdGxnanM1dnY3dlJPL0taMXBw?= =?utf-8?B?WnBHVGVTa3IyQVN2MWpoWTZpT21DMW9ZVkxIWWZ0emFMY2xqcUJpMXYrbG45?= =?utf-8?B?dE5vQXp5aTVpOVA4MitDWVZaaGxNZVJkNUZWODkvNWZNTFhCdSsxV3JFeUF3?= =?utf-8?B?aU85bzRuUEp6bVg0MytCMUdFSHZLMXowZis0MHZlNWpaS1d3RWp2aHJlRnBO?= =?utf-8?B?VzQ5NkZVeCtOMWlKQVdHTFZSbCtaK2EyOVIybkN2NVNjZTUzdUN4VGFBaDJx?= =?utf-8?B?K2dqdGtHRkg3UTlSd0g2OUZ0ckNZVVlVeDhOSGFBeHZRZlp4SERPb1JnWjJh?= =?utf-8?B?RDJVdUxHM0VyWmt6WERmUUs5MUxNbWVhUURDK3E1alQzZXZFL1hlV3V5OUZG?= =?utf-8?B?Q2NoYktybzZhRXBFSEQrMkNaeVN0ZUFxSmUxVkRLdDhBVkt4dTVKK2RFYjB6?= =?utf-8?B?MFNkVU9WNXA0SDVVYi8wNE4zVDN1cGtoWEVZV2lLQ003cnEwUEhiQWNpWHZD?= =?utf-8?B?cFJ2TjNlbm53cExpZ2M2SE5zc1RSL2U5NEVtQWZydTY2RklyVjNqRmVNZ3pr?= =?utf-8?B?cWZlQVVxakk0U0ZOelFIMXVEaVNMQTNFZ1JTd011M3MrWS83eWpuR0RYWDJ1?= =?utf-8?B?ZW5vSGVuNlpGK0FIOFE5bjZnVUJyMjFDRXZZa21ORlM3WmgzaGhvVVEzakhP?= =?utf-8?B?VjJvdnRUbWdGMFB5Z09QeCtIVGg4WUVweXppY3lTTWs3ZzA2V0JuNmk1VmJ4?= =?utf-8?B?am56b0NiazRiNTNDQ0tQdGR5bDFaNjk2ZHVodzFiLzFQcStLZXRkb0p6dWZu?= =?utf-8?B?bXhKWXZGejNUNG9xSmZ1N1UwT1NMR2N4bHdSVUkvUFZaQXNyNEhpaWRML2ZX?= =?utf-8?B?b0dCanlvT0lsa1hXMWc2dGhKRU81RmpDRy83UnRwNWFtNkhyc2JhMmJsVnpj?= =?utf-8?B?OEdoUGMzZHJXcnRxTzcvaUhEeHI3aVY2VmZlQytuc3c5eTVCckgwS0M3b0pw?= =?utf-8?B?dW5nM3UyZWRWVFFrVUxvcDl4c09DRGVFK21BQ29tbmNKMy9sZ1QxNG1iOXZS?= =?utf-8?B?VGN3YWU2Mk8rRG5qbHNwdkdrUnROVHZXdlU0c29DV1VaK2hUeGpFRU1BZnNO?= =?utf-8?B?UE51bzFSSFdBbmNrYkdWZzA2aU5PSTQ4SWI0TlFqdzZKR0tLREllUEk1NGRC?= =?utf-8?B?ek9FWUMwbkNmNUwrZ1VTUFhDNHNyNjF4WXhLY0ZMQ3NXZ1REVXcrSEF4VU1R?= =?utf-8?B?ZXIwTngxcEltcGd1c1NNMGVuNGF2NWszS3NXcjBaaWgyMFpmQ3FGcmErNzlk?= =?utf-8?B?cFMzNUVnanI2cUZYeWRCSEVrT2xsQW9HTXljUG9VbEFCMXpNT0FIY1QweWdw?= =?utf-8?B?bDFRQXM1cWZGYWZBMTRCZ3daNDZYZmZyNWVqWDJ0ZGtDaklNdS9Td2pnNzVU?= =?utf-8?B?UWdKa1JLSFFtYnR0eXVLM2ZzMFFoaSs3QXdiT3BTV1BhTFlWeGJ6b3NYSitX?= =?utf-8?B?bldjam9EQUQ1R1hNcEZ3QjBxNG1ZVzdvaCtDNE11a0M5a0hsOUhJMmgxVDNX?= =?utf-8?B?a09WZisvNkt2VGpPaEpSeVBCTm55RFhhMDl4MG5uWGUveExpUXhlV2FBbmZY?= =?utf-8?B?dTF3cDc5dmEzTTRiYVo5TXhIajVEOCtnTEM2U3RtRUZvUC9XUW14TTBTZW9N?= =?utf-8?B?RkNjb1FCa1ZLRkk1NTFoclhmVjFWUnlUZFRsdndNeWpnN1NnSFVCMi94aTZZ?= =?utf-8?B?VFhDakdMR1RkQ0VtSzUvelFlV0REVW50RkZFSWRoNmYxZk8rOGhPQnRVQm1p?= =?utf-8?B?NUozUVo3RnhkL3RyNjBhSlE3RGFjVUZkUndBdVY3MUdXVlRrZVYvQ3M3ekNI?= =?utf-8?B?RFQ3aUcyTlRNdVJZVHJKeXArZXluSWVzQ3h4V2UvREhDNGhZVTM3dFlYdy9h?= =?utf-8?B?eDZPcmgzWFJhRnRUV0MxbW55QmdKc1JEbEN6WFAvQkZ3aHZIdTl0bURXYStI?= =?utf-8?B?L0xIUTVpc3V5cjRKNmZKTm1VTlIvNUh5c3o5cGgrVlVvMk1zdDBmeUVVQktZ?= =?utf-8?Q?VwpyeY6vNCAPwzRuI07Lod01c?= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA1PR11MB6846.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 159d950a-374a-4b54-f02e-08dbe9b322ad X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Nov 2023 10:26:19.2909 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: K4oNrIftYGhAthDqhbeh7c/dlEcnvxYpZ4LJRUCIYxpMrh9Dtc1uYSGpybaUeIo4pkgONCC1sepmb2fMEDUisQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR11MB8236 X-OriginatorOrg: intel.com Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-9.5 required=5.0 tests=BAYES_00,BODY_8BITS,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE 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: SGkgTGFyc2VuLA0KDQo+PiBCcmVha3BvaW50IDEsIHZhcl9yZXVzZTo6bWFpbiAoKSBhdA0KPj4g Li4vLi4vLi4vZG93bnN0cmVhbS1nZGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucnVzdC92YXJfcmV1c2Uu cnM6MTkNCj4+IDE5ICAgICAgICAgIGxldCBfeSA9IDg7ICAgICAgIC8vIHNldCBicmVha3BvaW50 IGhlcmUNCj4+IChnZGIpIGluZm8gbG9jYWwgX3gNCj4+IF94ID0gMA0KPj4gKGdkYikgRkFJTDog Z2RiLnJ1c3QvdmFyX3JldXNlLmV4cDogcHJpbnQgbG9jYWwgX3ggdmFyaWFibGUNCg0KPj4gSSBk b24ndCB0aGluayB0aGlzIGlzIHJlbGF0ZWQgdG8gdGhlIGNvbmZsaWN0LCBidXQgSSBkb24ndCBy ZWFsbHkgaGF2ZSANCj4+IHRoZSB0aW1lIHRvIGRpYWdub3NlIHdoYXQgaXMgZ29pbmcgb24NCg0K ID5JIGhhdmUgcmViYXNlZCBsb2NhbGx5IHdoZXJlIGFsc28gc2F3IHRoaXMgaW5mZXJpb3IuaCBt aW5vciBjb25mbGljdCBhbmQgZml4ZWQgaXQuIFNvIGZhciByYW4gb24gdWJ1bnR1MjIgd2hlcmUg dGVzdCByYW4gZmluZS4gTmVlZCB0byB0ZXN0IG9uY2Ugb24gRmVkb3JhIDM3IGFuZCB0aGVuIHdp bGwgcHVzaCB0aGUgcGF0Y2ggYnV0IGZyb20gdGhlIGZhaWx1cmUgaW4geW91ciBsb2dzDQoNCkkg Y2FuIGNvbmZpcm0gdGhhdCBGZWRvcmEgaXNzdWUgaXMgbm90IHJlbGF0ZWQgdG8gdGhpcyBwYXRj aCBhcyBmb3IgdGhlIFJVU1QgbGFuZ3VhZ2UgY2FzZSBpbiBGZWRvcmEgaWYgd2Ugc2V0IGJyZWFr cG9pbnRzIGF0IGxpbmUgMTggYW5kIDE5IG9mIHRoaXMgdGVzdCB0aGVuIHdlIGNhbiBzZWUgbGlu ZSAxOSBpcyBhbHdheXMgZXhlY3V0ZWQgZmlyc3Qgc28gZXZlbiB3aXRoIHZhbmlsbGEgZ2RiIG9u IEZlZG9yYSAzNyB3ZSBzZWUgdGhlIHNhbWUgYmVoYXZpb3IuICBJIGFtIG5vdCBzdXJlIGlmIHRo aXMgaXMga25vd24gaXNzdWUgaW4gR0RCIGZvciBSVVNUIGxhbmd1YWdlIG90aGVyd2lzZSAgcGxl YXNlIGxldCBtZSBrbm93IGlmIGl0IHdpbGwgYmUgZmluZSB3aXRoIHlvdSB0byByYWlzZSBhIEdE QiBCdWd6aWxsYSBhbmQgYWRkIGEga2ZhaWwgaW4gdGhpcyBwYXRjaCBhcyBpc3N1ZSBpcyBjb21w bGV0ZWx5IHVucmVsYXRlZCB0byB0aGlzIHBhdGNoLiAoTm90ZTogaXNzdWUgaXMgc28gZmFyIG9u bHkgdmFsaWQgZm9yIEZlZG9yYSBhcyBpdCBpcyBub3Qgc2VlbiBvbiBVYnVudHUpLiANCg0KRmVk b3JhIDM3IExvZ3M6DQp+fn4NClJlYWRpbmcgc3ltYm9scyBmcm9tIGdkYi90ZXN0c3VpdGUvb3V0 cHV0cy9nZGIucnVzdC92YXJfcmV1c2UvdmFyX3JldXNlLi4uDQooZ2RiKSBiIDE4DQpCcmVha3Bv aW50IDEgYXQgMHg4NjU0OiBmaWxlIGdkYi90ZXN0c3VpdGUvZ2RiLnJ1c3QvdmFyX3JldXNlLnJz LCBsaW5lIDE4Lg0KKGdkYikgYiAxOQ0KQnJlYWtwb2ludCAyIGF0IDB4ODY0YzogZmlsZSBnZGIv dGVzdHN1aXRlL2dkYi5ydXN0L3Zhcl9yZXVzZS5ycywgbGluZSAxOS4NCihnZGIpIHINClN0YXJ0 aW5nIHByb2dyYW06IGdkYi90ZXN0c3VpdGUvb3V0cHV0cy9nZGIucnVzdC92YXJfcmV1c2UvdmFy X3JldXNlDQpbVGhyZWFkIGRlYnVnZ2luZyB1c2luZyBsaWJ0aHJlYWRfZGIgZW5hYmxlZF0NClVz aW5nIGhvc3QgbGlidGhyZWFkX2RiIGxpYnJhcnkgIi9saWI2NC9saWJ0aHJlYWRfZGIuc28uMSIu DQoNCkJyZWFrcG9pbnQgMiwgdmFyX3JldXNlOjptYWluICgpIGF0IGdkYi90ZXN0c3VpdGUvZ2Ri LnJ1c3QvdmFyX3JldXNlLnJzOjE5DQoxOSAgICAgICAgICBsZXQgX3kgPSA4OyAgICAgICAvLyBz ZXQgYnJlYWtwb2ludCBoZXJlDQooZ2RiKSBpbmZvIGxvY2Fscw0KX3kgPSAwDQpfeCA9IDANCl94 ID0gNQ0KKGdkYikgYw0KQ29udGludWluZy4NCg0KQnJlYWtwb2ludCAxLCB2YXJfcmV1c2U6Om1h aW4gKCkgYXQgZ2RiL3Rlc3RzdWl0ZS9nZGIucnVzdC92YXJfcmV1c2UucnM6MTgNCjE4ICAgICAg ICAgIGxldCBfeCA9IF94ICsgNzsNCihnZGIpIGluZm8gbG9jYWxzDQpfeCA9IDUNCn5+fg0KDQpU aGFua3MgJiBCZXN0IFJlZ2FyZHMNCkFiZHVsIEJhc2l0DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2Fn ZS0tLS0tDQpGcm9tOiBJamF6LCBBYmR1bCBCIA0KU2VudDogTW9uZGF5LCBOb3ZlbWJlciAyMCwg MjAyMyA5OjI2IEFNDQpUbzogR3VpbmV2ZXJlIExhcnNlbiA8YmxhcnNlbkByZWRoYXQuY29tPjsg Z2RiLXBhdGNoZXNAc291cmNld2FyZS5vcmcNCkNjOiBsc2l4QGxhbmNlbG90c2l4LmNvbTsgcGVk cm9AcGFsdmVzLm5ldA0KU3ViamVjdDogUkU6IFtQQVRDSCB2NCAxLzJdIGdkYjogYWRkIGFubm90 YXRpb24gaW4gJ2luZm8gbG9jYWxzJyBjb21tYW5kIGZvciB2YXJpYWJsZXMgc2hhZG93aW5nIGNh c2UNCg0KSGkgTGFyc2VuLA0KDQpUaGFua3MgZm9yIHRoZSBmZWVkYmFjay4NCg0KPj4gVGhlIGxv Y2F0aW9uIGFubm90YXRpb25zIGFyZSBwcmludGVkIGZvciBzaGFkb3dlZCB2YXJpYWJsZXMgaW4g Y2FzZSANCj4+IG9mIEMvQysrL0ZvcnRyYW4vQWRhIGxhbmd1YWdlcy4gIEluIFJ1c3QsIGl0IGlz IHBvc3NpYmxlIHRvIGRlY2xhcmUgYSANCj4+IHZhcmlhYmxlIHdpdGggdGhlIHNhbWUgbmFtZSBt YW55IHRpbWVzLiAgU28gaW4gdGhpcyBjYXNlLCBqdXN0IHRoZSANCj4+IGZpcnN0IGluc3RhbmNl IG9mIHRoZSB2YXJpYWJsZSBpcyBwcmludGVkLg0KPiBUaGFua3MgZm9yIHdvcmtpbmcgb24gdGhp cyENCg0KPiBUaGlzIHBhdGNoIHNlZW1zIHRvIGhhdmUgc2xpcHBlZCB0aHJvdWdoIHRoZSBjcmFj a3MgYW5kIG5lZWRzIGEgc21hbGwgDQo+IHJlYmFzZSwgYnV0IHRoZSBjb25mbGljdCB3YXMgcHJl dHR5IHRyaXZpYWwgdG8gcmVzb2x2ZSBsb2NhbGx5IA0KPiAoaW5mZXJpb3IuaCBpcyBhbHNvIGJl aW5nIGFkZGVkIHRvIHByaW50Y21kLmMpDQoNCj4gSSBzZWUgYSBmYWlsdXJlIG9uIHRoZSBuZXds eSBhZGRlZCB0ZXN0IG9uIG15IGZlZG9yYTM3IG1hY2hpbmU6DQoNCj4gQnJlYWtwb2ludCAxLCB2 YXJfcmV1c2U6Om1haW4gKCkgYXQNCj4gLi4vLi4vLi4vZG93bnN0cmVhbS1nZGIvZ2RiL3Rlc3Rz dWl0ZS9nZGIucnVzdC92YXJfcmV1c2UucnM6MTkNCj4gMTkgICAgICAgICAgbGV0IF95ID0gODsg ICAgICAgLy8gc2V0IGJyZWFrcG9pbnQgaGVyZQ0KPiAoZ2RiKSBpbmZvIGxvY2FsIF94DQo+IF94 ID0gMA0KPiAoZ2RiKSBGQUlMOiBnZGIucnVzdC92YXJfcmV1c2UuZXhwOiBwcmludCBsb2NhbCBf eCB2YXJpYWJsZQ0KDQo+IEkgZG9uJ3QgdGhpbmsgdGhpcyBpcyByZWxhdGVkIHRvIHRoZSBjb25m bGljdCwgYnV0IEkgZG9uJ3QgcmVhbGx5IGhhdmUgDQo+IHRoZSB0aW1lIHRvIGRpYWdub3NlIHdo YXQgaXMgZ29pbmcgb24NCg0KIEkgaGF2ZSByZWJhc2VkIGxvY2FsbHkgd2hlcmUgYWxzbyBzYXcg dGhpcyBpbmZlcmlvci5oIG1pbm9yIGNvbmZsaWN0IGFuZCBmaXhlZCBpdC4gU28gZmFyIHJhbiBv biB1YnVudHUyMiB3aGVyZSB0ZXN0IHJhbiBmaW5lLiBOZWVkIHRvIHRlc3Qgb25jZSBvbiBGZWRv cmEgMzcgYW5kIHRoZW4gd2lsbCBwdXNoIHRoZSBwYXRjaCBidXQgZnJvbSB0aGUgZmFpbHVyZSBp biB5b3VyIGxvZ3MsICBpc3N1ZSBkb2VzIG5vdCBsb29rIHJlbGF0ZWQgdG8gdGhpcyBwYXRjaCBh cyB0aGUgdmFsdWUgb2YgdmFyaWFibGUgaW4gcnVzdCBsYW5ndWFnZSBpcyBzaG93biB3cm9uZyBp biBGZWRvcmEgMzcgbG9ncy4gRm9yIHJ1c3Qgd2Ugb25seSBkb27igJl0IHByaW50IHRoZSBzaGFk b3dlZCB2YXJpYWJsZXMgYnV0IGhhZCB0byByZXRyeSBvbmNlIG9uIEZlZG9yYSAzNyB0aGVuIHdp bGwgY29uZmlybSBhbmQgcHVzaCB0aGUgdjUgc2VyaWVzIGZvciByZXZpZXcuDQpVYnVudHUyMiBs b2dzOg0Kfn5+DQpCcmVha3BvaW50IDEsIHZhcl9yZXVzZTo6bWFpbiAoKSBhdCBzb3VyY2VzL2dk Yi9nZGIvdGVzdHN1aXRlL2dkYi5ydXN0L3Zhcl9yZXVzZS5yczoxOQ0KMTkgICAgICAgICAgbGV0 IF95ID0gODsgICAgICAgLy8gc2V0IGJyZWFrcG9pbnQgaGVyZQ0KKGdkYikgaW5mbyBsb2NhbCBf eA0KX3ggPSAxMg0KKGdkYikgUEFTUzogZ2RiLnJ1c3QvdmFyX3JldXNlLmV4cDogcHJpbnQgbG9j YWwgX3ggdmFyaWFibGUgdGVzdGNhc2Ugc291cmNlcy9nZGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucnVz dC92YXJfcmV1c2UuZXhwIGNvbXBsZXRlZCBpbiA3IHNlY29uZHMgfn5+DQoNClRoYW5rcyAmIEJl c3QgUmVnYXJkcw0KQWJkdWwgQmFzaXQNCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZy b206IEd1aW5ldmVyZSBMYXJzZW4gPGJsYXJzZW5AcmVkaGF0LmNvbT4NClNlbnQ6IFRodXJzZGF5 LCBPY3RvYmVyIDEyLCAyMDIzIDExOjQwIEFNDQpUbzogSWpheiwgQWJkdWwgQiA8YWJkdWwuYi5p amF6QGludGVsLmNvbT47IGdkYi1wYXRjaGVzQHNvdXJjZXdhcmUub3JnDQpDYzogbHNpeEBsYW5j ZWxvdHNpeC5jb207IHBlZHJvQHBhbHZlcy5uZXQNClN1YmplY3Q6IFJlOiBbUEFUQ0ggdjQgMS8y XSBnZGI6IGFkZCBhbm5vdGF0aW9uIGluICdpbmZvIGxvY2FscycgY29tbWFuZCBmb3IgdmFyaWFi bGVzIHNoYWRvd2luZyBjYXNlDQoNCk9uIDE5LzA5LzIwMjMgMTg6NDYsIEFiZHVsIEJhc2l0IElq YXogdmlhIEdkYi1wYXRjaGVzIHdyb3RlOg0KPiBGcm9tOiAiSWpheiwgQWJkdWwgQiIgPGFiZHVs LmIuaWphekBpbnRlbC5jb20+DQo+DQo+IEZvciBDL0MrKy9Gb3J0cmFuL0FkYSBsYW5ndWFnZXMg R0RCIHByaW50cyBzYW1lIG5hbWUgdmFyaWFibGUgbXVsdGlwbGUgDQo+IHRpbWVzIGluIGNhc2Ug b2YgdmFyaWFibGUgc2hhZG93aW5nIGFuZCBpdCBpcyBjb25mdXNpbmcgZm9yIHVzZXIgdG8gDQo+ IGlkZW50aWZ5IHdoaWNoIHZhcmlhYmxlIGJlbG9uZ3MgdG8gdGhlIGN1cnJlbnQgc2NvcGUuICBT byBmb3Igc3VjaCANCj4gY2FzZXMgYWRkIGxvY2F0aW9uIGluZm8gdG8gdGhlIGlubmVybW9zdCBs aXN0ZWQgdmFyaWFibGVzIGFuZCBmb3IgDQo+IHN1cGVyIGJsb2NrIHZhcmlhYmxlcyBhZGQgInNo YWRvd2VkIiBhbm5vdGF0aW9uIGluIHRoZSBmb3JtIG9mICI8ZmlsZS5jOmxpbmUsIHNoYWRvd2Vk PiIuDQo+DQo+IFN1cHBvc2Ugd2UgaGF2ZQ0KPg0KPiAxOmludCB4ID0gNDI7DQo+IDI6ICB7DQo+ IDM6ICAgIGludCB4ID0gOTk7DQo+IDQ6ICAgIGludCB5ID0gNTI7DQo+IDU6ICAgIHggPSA5OTsg LyogYnJlYWsgaGVyZSAqLw0KPiA2OiAgfQ0KPg0KPiBDdXJyZW50bHk6DQo+DQo+IChnZGIpIGlu Zm8gbG9jYWxzDQo+IHggPSA5OQ0KPiB4ID0gNDINCj4geSA9IDUyDQo+DQo+IEFmdGVyIGFwcGx5 aW5nIHRoaXMgcGF0Y2gsIHdlIG9idGFpbjoNCj4NCj4gKGdkYikgaW5mbyBsb2NhbHMNCj4geCA9 IDk5ICA8ZmlsZS5jOjM+DQo+IHkgPSA1Mg0KPiB4ID0gNDIgIDxmaWxlLmM6MSwgc2hhZG93ZWQ+ DQo+DQo+IFRoZSBwYXRjaCBhZGRzIHRoZSBsb2NhdGlvbiBhbm5vdGF0aW9ucyBieSBrZWVwaW5n IHRyYWNrIG9mIGlubmVyIA0KPiBibG9jayBhbmQgYWxyZWFkeSBwcmludGVkIHZhcmlhYmxlcyB0 byBpZGVudGlmeSBzaGFkb3dpbmcuICBTbywgR0RCIA0KPiBub3cgcHJpbnRzICI8ZmlsZS5jOmxp bmUsIHNoYWRvd2VkPiIgZm9yIHNoYWRvd2VkIHN1cGVyLWJsb2NrIA0KPiB2YXJpYWJsZXMgYW5k ICI8ZmlsZS5jOmxpbmU+IiBmb3IgaW5uZXJtb3N0IGRlY2xhcmF0aW9ucyBvZiBzdWNoIHZhcmlh YmxlcyBvbmx5Lg0KPg0KPiBUaGUgbG9jYXRpb24gYW5ub3RhdGlvbnMgYXJlIHByaW50ZWQgZm9y IHNoYWRvd2VkIHZhcmlhYmxlcyBpbiBjYXNlIG9mIA0KPiBDL0MrKy9Gb3J0cmFuL0FkYSBsYW5n dWFnZXMuICBJbiBSdXN0LCBpdCBpcyBwb3NzaWJsZSB0byBkZWNsYXJlIGEgDQo+IHZhcmlhYmxl IHdpdGggdGhlIHNhbWUgbmFtZSBtYW55IHRpbWVzLiAgU28gaW4gdGhpcyBjYXNlLCBqdXN0IHRo ZSANCj4gZmlyc3QgaW5zdGFuY2Ugb2YgdGhlIHZhcmlhYmxlIGlzIHByaW50ZWQuDQpUaGFua3Mg Zm9yIHdvcmtpbmcgb24gdGhpcyENCg0KVGhpcyBwYXRjaCBzZWVtcyB0byBoYXZlIHNsaXBwZWQg dGhyb3VnaCB0aGUgY3JhY2tzIGFuZCBuZWVkcyBhIHNtYWxsIHJlYmFzZSwgYnV0IHRoZSBjb25m bGljdCB3YXMgcHJldHR5IHRyaXZpYWwgdG8gcmVzb2x2ZSBsb2NhbGx5IChpbmZlcmlvci5oIGlz IGFsc28gYmVpbmcgYWRkZWQgdG8gcHJpbnRjbWQuYykNCg0KSSBzZWUgYSBmYWlsdXJlIG9uIHRo ZSBuZXdseSBhZGRlZCB0ZXN0IG9uIG15IGZlZG9yYTM3IG1hY2hpbmU6DQoNCkJyZWFrcG9pbnQg MSwgdmFyX3JldXNlOjptYWluICgpIGF0DQouLi8uLi8uLi9kb3duc3RyZWFtLWdkYi9nZGIvdGVz dHN1aXRlL2dkYi5ydXN0L3Zhcl9yZXVzZS5yczoxOQ0KMTnCoMKgwqDCoMKgwqDCoMKgwqAgbGV0 IF95ID0gODvCoMKgwqDCoMKgwqAgLy8gc2V0IGJyZWFrcG9pbnQgaGVyZQ0KKGdkYikgaW5mbyBs b2NhbCBfeA0KX3ggPSAwDQooZ2RiKSBGQUlMOiBnZGIucnVzdC92YXJfcmV1c2UuZXhwOiBwcmlu dCBsb2NhbCBfeCB2YXJpYWJsZQ0KDQpJIGRvbid0IHRoaW5rIHRoaXMgaXMgcmVsYXRlZCB0byB0 aGUgY29uZmxpY3QsIGJ1dCBJIGRvbid0IHJlYWxseSBoYXZlIHRoZSB0aW1lIHRvIGRpYWdub3Nl IHdoYXQgaXMgZ29pbmcgb24uDQoNCj4gLS0tDQo+ICAgZ2RiL2RvYy9nZGIudGV4aW5mbyAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgMTMgKysrDQo+ICAgZ2RiL3ByaW50Y21kLmMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTEgKystDQo+ICAgZ2RiL3N0YWNrLmMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQgKysrKysrKysrKystLQ0KPiAgIGdkYi9z dGFjay5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzICstDQo+ICAgZ2Ri L3Rlc3RzdWl0ZS9nZGIuYWRhL3Zhcl9zaGFkb3dpbmcuZXhwICAgICAgIHwgMzggKysrKysrKysN Cj4gICAuLi4vZ2RiLmFkYS92YXJfc2hhZG93aW5nL3Zhcl9zaGFkb3dpbmcuYWRiICAgfCAzMCAr KysrKysrDQo+ICAgZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92YXItc2hhZG93aW5nLmMgICAgICAg IHwgNDkgKysrKysrKysrKw0KPiAgIGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmFyLXNoYWRvd2lu Zy5leHAgICAgICB8IDkwICsrKysrKysrKysrKysrKysrKysNCj4gICBnZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL3Zhci1zaGFkb3dpbmcyLmMgICAgICAgfCAxNiArKysrDQo+ICAgZ2RiL3Rlc3RzdWl0 ZS9nZGIucnVzdC92YXJfcmV1c2UuZXhwICAgICAgICAgIHwgMzIgKysrKysrKw0KPiAgIGdkYi90 ZXN0c3VpdGUvZ2RiLnJ1c3QvdmFyX3JldXNlLnJzICAgICAgICAgICB8IDIwICsrKysrDQo+ICAg Z2RiL3RyYWNlcG9pbnQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0NCj4g ICBnZGIvdmFsdWUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQ0K PiAgIDEzIGZpbGVzIGNoYW5nZWQsIDM2MiBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkN Cj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3Zhcl9zaGFkb3dp bmcuZXhwDQo+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmFkYS92YXJf c2hhZG93aW5nL3Zhcl9zaGFkb3dpbmcuYWRiDQo+ICAgY3JlYXRlIG1vZGUgMTAwNzU1IGdkYi90 ZXN0c3VpdGUvZ2RiLmJhc2UvdmFyLXNoYWRvd2luZy5jDQo+ICAgY3JlYXRlIG1vZGUgMTAwNzU1 IGdkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmFyLXNoYWRvd2luZy5leHANCj4gICBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92YXItc2hhZG93aW5nMi5jDQo+ICAgY3Jl YXRlIG1vZGUgMTAwNzU1IGdkYi90ZXN0c3VpdGUvZ2RiLnJ1c3QvdmFyX3JldXNlLmV4cA0KPiAg IGNyZWF0ZSBtb2RlIDEwMDc1NSBnZGIvdGVzdHN1aXRlL2dkYi5ydXN0L3Zhcl9yZXVzZS5ycw0K Pg0KPiBkaWZmIC0tZ2l0IGEvZ2RiL2RvYy9nZGIudGV4aW5mbyBiL2dkYi9kb2MvZ2RiLnRleGlu Zm8gaW5kZXgNCj4gOWI3ZTA2ZjMxNTYuLjZhMjJiYmYyNTMxIDEwMDY0NA0KPiAtLS0gYS9nZGIv ZG9jL2dkYi50ZXhpbmZvDQo+ICsrKyBiL2dkYi9kb2MvZ2RiLnRleGluZm8NCj4gQEAgLTg4MzEs NiArODgzMSwxOSBAQCBUaGUgb3B0aW9uYWwgZmxhZyBAc2FtcHstcX0sIHdoaWNoIHN0YW5kcyBm b3IgQHNhbXB7cXVpZXR9LCBkaXNhYmxlcw0KPiAgIHByaW50aW5nIGhlYWRlciBpbmZvcm1hdGlv biBhbmQgbWVzc2FnZXMgZXhwbGFpbmluZyB3aHkgbm8gbG9jYWwgdmFyaWFibGVzDQo+ICAgaGF2 ZSBiZWVuIHByaW50ZWQuDQo+ICAgDQo+ICtAc21hbGxleGFtcGxlDQo+ICsxOiBpbnQgeCA9IDM7 DQo+ICsyOiBAew0KPiArMzogICAgICAgaW50IHggPSA0OyAvLyBicmVha3B0DQo+ICs0OiBAfQ0K PiArKGdkYikgaW5mbyBsb2NhbHMNCj4gK3ggPSA0CTxmaWxlLmM6Mz4NCj4gK3ggPSAzCTxmaWxl LmM6MSwgc2hhZG93ZWQ+DQo+ICtAZW5kIHNtYWxsZXhhbXBsZQ0KPiArDQo+ICtJZiBhIHZhcmlh YmxlIGlzIHNoYWRvd2VkLCB0aGVuIGxvY2F0aW9uIGluZm9ybWF0aW9uIGlzIHByaW50ZWQgYW5k IA0KPiArZm9yIHRoZSBvdXRlcm1vc3Qgc2NvcGUgdmFyaWFibGVzICJzaGFkb3dlZCIgc3RyaW5n IGlzIHByaW50ZWQgYXMgd2VsbC4NCj4gKw0KPiAgIEBpdGVtIGluZm8gbG9jYWxzIFstcV0gWy10 IEB2YXJ7dHlwZV9yZWdleHB9XSBbQHZhcntyZWdleHB9XQ0KPiAgIExpa2UgQGtiZHtpbmZvIGxv Y2Fsc30sIGJ1dCBvbmx5IHByaW50IHRoZSBsb2NhbCB2YXJpYWJsZXMgc2VsZWN0ZWQNCj4gICB3 aXRoIHRoZSBwcm92aWRlZCByZWdleHAocykuDQo+IGRpZmYgLS1naXQgYS9nZGIvcHJpbnRjbWQu YyBiL2dkYi9wcmludGNtZC5jIGluZGV4DQo+IDhkN2QwNDIzMWZlLi44MzAwOGU1YzNmMyAxMDA2 NDQNCj4gLS0tIGEvZ2RiL3ByaW50Y21kLmMNCj4gKysrIGIvZ2RiL3ByaW50Y21kLmMNCj4gQEAg LTU1LDYgKzU1LDcgQEANCj4gICAjaW5jbHVkZSAiZ2Ric3VwcG9ydC9nZGJfb3B0aW9uYWwuaCIN Cj4gICAjaW5jbHVkZSAiZ2Ric3VwcG9ydC9nZGItc2FmZS1jdHlwZS5oIg0KPiAgICNpbmNsdWRl ICJnZGJzdXBwb3J0L3JzcC1sb3cuaCINCj4gKyNpbmNsdWRlICJpbmNsdWRlL2xpYmliZXJ0eS5o Ig0KPiAgIA0KPiAgIC8qIENoYWluIGNvbnRhaW5pbmcgYWxsIGRlZmluZWQgbWVtb3J5LXRhZyBz dWJjb21tYW5kcy4gICovDQo+ICAgDQo+IEBAIC0yNDAxLDcgKzI0MDIsOCBAQCBjbGVhcl9kYW5n bGluZ19kaXNwbGF5X2V4cHJlc3Npb25zIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkNCj4gICB2 b2lkDQo+ICAgcHJpbnRfdmFyaWFibGVfYW5kX3ZhbHVlIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1 Y3Qgc3ltYm9sICp2YXIsDQo+ICAgCQkJICBmcmFtZV9pbmZvX3B0ciBmcmFtZSwNCj4gLQkJCSAg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IGluZGVudCkNCj4gKwkJCSAgc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwgaW50IGluZGVudCwNCj4gKwkJCSAgYm9vbCBzaGFkb3dlZCwgYm9vbCBwcmlu dGVkKQ0KPiAgIHsNCj4gICANCj4gICAgIGlmICghbmFtZSkNCj4gQEAgLTI0MTQsNiArMjQxNiw3 IEBAIHByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZSAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHN5 bWJvbCAqdmFyLA0KPiAgICAgICB7DQo+ICAgICAgICAgc3RydWN0IHZhbHVlICp2YWw7DQo+ICAg ICAgICAgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgb3B0czsNCj4gKyAgICAgIGNvbnN0IGNo YXIgKmZpbGVfbmFtZSA9IGxiYXNlbmFtZSANCj4gKyAodmFyLT5vd25lci5zeW10YWItPmZpbGVu YW1lKTsNCj4gICANCj4gICAgICAgICAvKiBSRUFEX1ZBUl9WQUxVRSBuZWVkcyBhIGJsb2NrIGlu IG9yZGVyIHRvIGRlYWwgd2l0aCBub24tbG9jYWwNCj4gICAJIHJlZmVyZW5jZXMgKGkuZS4gdG8g aGFuZGxlIG5lc3RlZCBmdW5jdGlvbnMpLiAgSW4gdGhpcyBjb250ZXh0LCB3ZSANCj4gQEAgLTI0 MjQsNiArMjQyNywxMiBAQCBwcmludF92YXJpYWJsZV9hbmRfdmFsdWUgKGNvbnN0IGNoYXIgKm5h bWUsIHN0cnVjdCBzeW1ib2wgKnZhciwNCj4gICAgICAgICBvcHRzLmRlcmVmX3JlZiA9IHRydWU7 DQo+ICAgICAgICAgY29tbW9uX3ZhbF9wcmludF9jaGVja2VkICh2YWwsIHN0cmVhbSwgaW5kZW50 LCAmb3B0cywgDQo+IGN1cnJlbnRfbGFuZ3VhZ2UpOw0KPiAgIA0KPiArICAgICAgaWYgKHNoYWRv d2VkKQ0KPiArCS8qIFByaW50IGxvY2F0aW9uIGFuZCBzaGFkb3dlZCB2YXJpYWJsZSBpbmZvcm1h dGlvbi4gICovDQo+ICsJZnByaW50Zl9zdHlsZWQgKHN0cmVhbSwgbWV0YWRhdGFfc3R5bGUuc3R5 bGUgKCksDQo+ICsJCQlfKCJcdDwlczolZCVzPiIpLCBmaWxlX25hbWUsDQo+ICsJCQl2YXItPmxp bmUgKCksIHByaW50ZWQgPyAiLCBzaGFkb3dlZCIgOiAiIik7DQo+ICsNCj4gICAgICAgICAvKiBj b21tb25fdmFsX3ByaW50IGludmFsaWRhdGVzIEZSQU1FIHdoZW4gYSBwcmV0dHkgcHJpbnRlciBj YWxscyBpbmZlcmlvcg0KPiAgIAkgZnVuY3Rpb24uICAqLw0KPiAgICAgICAgIGZyYW1lID0gTlVM TDsNCj4gZGlmZiAtLWdpdCBhL2dkYi9zdGFjay5jIGIvZ2RiL3N0YWNrLmMgaW5kZXggMGIzNWQ2 MmY4MmYuLjAxNzNlNzM0MWU5DQo+IDEwMDY0NA0KPiAtLS0gYS9nZGIvc3RhY2suYw0KPiArKysg Yi9nZGIvc3RhY2suYw0KPiBAQCAtNTYsNiArNTYsNyBAQA0KPiAgICNpbmNsdWRlICJjbGkvY2xp LW9wdGlvbi5oIg0KPiAgICNpbmNsdWRlICJjbGkvY2xpLXN0eWxlLmgiDQo+ICAgI2luY2x1ZGUg ImdkYnN1cHBvcnQvYnVpbGRhcmd2LmgiDQo+ICsjaW5jbHVkZSA8dW5vcmRlcmVkX3NldD4NCj4g ICANCj4gICAvKiBUaGUgcG9zc2libGUgY2hvaWNlcyBvZiAic2V0IHByaW50IGZyYW1lLWFyZ3Vt ZW50cyIsIGFuZCB0aGUgdmFsdWUNCj4gICAgICBvZiB0aGlzIHNldHRpbmcuICAqLw0KPiBAQCAt MjIxMSwxMCArMjIxMiwxNiBAQCBiYWNrdHJhY2VfY29tbWFuZF9jb21wbGV0ZXIgKHN0cnVjdCAN Cj4gY21kX2xpc3RfZWxlbWVudCAqaWdub3JlLA0KPiAgIA0KPiAgIHN0YXRpYyB2b2lkDQo+ICAg aXRlcmF0ZV9vdmVyX2Jsb2NrX2xvY2FscyAoY29uc3Qgc3RydWN0IGJsb2NrICpiLA0KPiAtCQkJ ICAgaXRlcmF0ZV9vdmVyX2Jsb2NrX2FyZ19sb2NhbF92YXJzX2NiIGNiKQ0KPiArCQkJICAgaXRl cmF0ZV9vdmVyX2Jsb2NrX2FyZ19sb2NhbF92YXJzX2NiIGNiLA0KPiArCQkJICAgY29uc3Qgc3Rk Ojp1bm9yZGVyZWRfc2V0PHN0ZDo6c3RyaW5nPiAqc2hhZG93ZWRfdmFycywNCj4gKwkJCSAgIHN0 ZDo6dW5vcmRlcmVkX3NldDxzdGQ6OnN0cmluZz4gJnByaW50ZWRfdmFycykNCj4gICB7DQo+ICAg ICBmb3IgKHN0cnVjdCBzeW1ib2wgKnN5bSA6IGJsb2NrX2l0ZXJhdG9yX3JhbmdlIChiKSkNCj4g ICAgICAgew0KPiArICAgICAgY29uc3QgY2hhciAqbmFtZSA9IHN5bS0+cHJpbnRfbmFtZSAoKTsN Cj4gKyAgICAgIGJvb2wgYWxyZWFkeV9wcmludGVkID0gIXByaW50ZWRfdmFycy5pbnNlcnQgKG5h bWUpLnNlY29uZDsNCj4gKyAgICAgIGJvb2wgc2hhZG93ZWQgPSBzaGFkb3dlZF92YXJzLT5maW5k IChuYW1lKSAhPSANCj4gKyBzaGFkb3dlZF92YXJzLT5lbmQgKCk7DQo+ICsNCj4gICAgICAgICBz d2l0Y2ggKHN5bS0+YWNsYXNzICgpKQ0KPiAgIAl7DQo+ICAgCWNhc2UgTE9DX0NPTlNUOg0KPiBA QCAtMjIyNyw3ICsyMjM0LDI1IEBAIGl0ZXJhdGVfb3Zlcl9ibG9ja19sb2NhbHMgKGNvbnN0IHN0 cnVjdCBibG9jayAqYiwNCj4gICAJICAgIGJyZWFrOw0KPiAgIAkgIGlmIChzeW0tPmRvbWFpbiAo KSA9PSBDT01NT05fQkxPQ0tfRE9NQUlOKQ0KPiAgIAkgICAgYnJlYWs7DQo+IC0JICBjYiAoc3lt LT5wcmludF9uYW1lICgpLCBzeW0pOw0KPiArCSAgLyogT25seSBmb3IgQy9DKysvRm9ydHJhbi9B ZGEgbGFuZ3VhZ2VzLCBpbiBjYXNlIG9mIHZhcmlhYmxlcw0KPiArCSAgICAgc2hhZG93aW5nIHBy aW50IDxmaWxlOmxpbmUsIHNoYWRvd2VkPiBhbm5vdGF0aW9uIGFmdGVyDQo+ICsJICAgICB0aGUg c3VwZXJibG9jayB2YXJpYWJsZS4gIEl0ZXJhdGlvbiBvZiBibG9jayBzdGFydHMgZnJvbSBpbm5l cg0KPiArCSAgICAgYmxvY2sgd2hpY2ggaXMgcHJpbnRlZCBvbmx5IHdpdGggbG9jYXRpb24gaW5m b3JtYXRpb24uICAqLw0KPiArCSAgaWYgKChjdXJyZW50X2xhbmd1YWdlLT5sYV9sYW5ndWFnZSA9 PSBsYW5ndWFnZV9jDQo+ICsJICAgICAgIHx8IGN1cnJlbnRfbGFuZ3VhZ2UtPmxhX2xhbmd1YWdl ID09IGxhbmd1YWdlX2NwbHVzDQo+ICsJICAgICAgIHx8IGN1cnJlbnRfbGFuZ3VhZ2UtPmxhX2xh bmd1YWdlID09IGxhbmd1YWdlX2ZvcnRyYW4NCj4gKwkgICAgICAgfHwgY3VycmVudF9sYW5ndWFn ZS0+bGFfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfYWRhKQ0KPiArCSAgICAgICYmIHNoYWRvd2VkKQ0K PiArCSAgICBjYiAobmFtZSwgc3ltLCB0cnVlLCBhbHJlYWR5X3ByaW50ZWQpOw0KPiArCSAgLyog SW4gY2FzZSBvZiBSdXN0IGxhbmd1YWdlIGl0IGlzIHBvc3NpYmxlIHRvIGRlY2xhcmUgdmFyaWFi bGUgd2l0aA0KPiArCSAgICAgc2FtZSBuYW1lIG11bHRpcGxlIHRpbWVzIGFuZCBvbmx5IGxhdGVz dCBkZWNsYXJhdGlvbiBvZiB2YXJpYWJsZQ0KPiArCSAgICAgaXMgYWNjZXNzaWJsZS4gIFNvIHBy aW50IG9ubHkgdGhlIGZpcnN0IGluc3RhbmNlIGFuZCB0aGVyZSBpcyBubw0KPiArCSAgICAgbmVl ZCBvZiBwcmludGluZyBkdXBsaWNhdGVzLiAgKi8NCj4gKwkgIGVsc2UgaWYgKGN1cnJlbnRfbGFu Z3VhZ2UtPmxhX2xhbmd1YWdlID09IGxhbmd1YWdlX3J1c3QNCj4gKwkJICAgJiYgc2hhZG93ZWQg JiYgYWxyZWFkeV9wcmludGVkKQ0KPiArCSAgICBicmVhazsNCj4gKwkgIGVsc2UNCj4gKwkgICAg Y2IgKG5hbWUsIHN5bSwgZmFsc2UsIGZhbHNlKTsNCj4gICAJICBicmVhazsNCj4gICANCj4gICAJ ZGVmYXVsdDoNCj4gQEAgLTIyNDQsOSArMjI2OSwzMSBAQCB2b2lkDQo+ICAgaXRlcmF0ZV9vdmVy X2Jsb2NrX2xvY2FsX3ZhcnMgKGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2ssDQo+ICAgCQkJICAg ICAgIGl0ZXJhdGVfb3Zlcl9ibG9ja19hcmdfbG9jYWxfdmFyc19jYiBjYikNCj4gICB7DQo+ICsg IHN0ZDo6dW5vcmRlcmVkX3NldDxzdGQ6OnN0cmluZz4gY29sbGVjdGVkX3ZhcnMsIHNoYWRvd2Vk X3ZhcnMsIA0KPiArIHByaW50ZWRfdmFyczsgIGNvbnN0IHN0cnVjdCBibG9jayAqb3JpZ19ibG9j ayA9IGJsb2NrOw0KPiArDQo+ICsgIC8qIEl0ZXJhdGUgb3ZlciBhbGwgdGhlIGxvY2FsIHZhcmlh YmxlcyBpbiBhIGJsb2NrIGFuZCBzdG9yZSB0aGUgbGlzdCBvZg0KPiArICAgICBzaGFkb3dlZCB2 YXJpYWJsZXMgdG8gbGF0ZXIgZGlzdGluZ3Vpc2ggdGhlbSBmcm9tIG90aGVyIA0KPiArdmFyaWFi bGVzLiAgKi8NCj4gKyAgd2hpbGUgKGJsb2NrICE9IG51bGxwdHIpDQo+ICsgICAgew0KPiArICAg ICAgZm9yIChzdHJ1Y3Qgc3ltYm9sICpzeW0gOiBibG9ja19pdGVyYXRvcl9yYW5nZSAoYmxvY2sp KQ0KPiArCXsNCj4gKwkgIGlmICghc3ltLT5pc19hcmd1bWVudCAoKSkNCj4gKwkgICAgew0KPiAr CSAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBzeW0tPnByaW50X25hbWUgKCk7DQo+ICsJICAgICAg aWYgKCFjb2xsZWN0ZWRfdmFycy5pbnNlcnQgKG5hbWUpLnNlY29uZCkNCj4gKwkJc2hhZG93ZWRf dmFycy5pbnNlcnQgKG5hbWUpOw0KPiArCSAgICB9DQo+ICsJfQ0KPiArICAgICAgaWYgKGJsb2Nr LT5mdW5jdGlvbiAoKSkNCj4gKwlicmVhazsNCj4gKyAgICAgIGJsb2NrID0gYmxvY2stPnN1cGVy YmxvY2sgKCk7DQo+ICsgICAgfQ0KPiArDQo+ICsgIGJsb2NrID0gb3JpZ19ibG9jazsNCj4gICAg IHdoaWxlIChibG9jaykNCj4gICAgICAgew0KPiAtICAgICAgaXRlcmF0ZV9vdmVyX2Jsb2NrX2xv Y2FscyAoYmxvY2ssIGNiKTsNCj4gKyAgICAgIGl0ZXJhdGVfb3Zlcl9ibG9ja19sb2NhbHMgKGJs b2NrLCBjYiwgJnNoYWRvd2VkX3ZhcnMsIA0KPiArIHByaW50ZWRfdmFycyk7DQo+ICAgICAgICAg LyogQWZ0ZXIgaGFuZGxpbmcgdGhlIGZ1bmN0aW9uJ3MgdG9wLWxldmVsIGJsb2NrLCBzdG9wLiAg RG9uJ3QNCj4gICAJIGNvbnRpbnVlIHRvIGl0cyBzdXBlcmJsb2NrLCB0aGUgYmxvY2sgb2YgcGVy LWZpbGUNCj4gICAJIHN5bWJvbHMuICAqLw0KPiBAQCAtMjI2OCwxNCArMjMxNSwxNiBAQCBzdHJ1 Y3QgcHJpbnRfdmFyaWFibGVfYW5kX3ZhbHVlX2RhdGENCj4gICAgIHN0cnVjdCB1aV9maWxlICpz dHJlYW07DQo+ICAgICBpbnQgdmFsdWVzX3ByaW50ZWQ7DQo+ICAgDQo+IC0gIHZvaWQgb3BlcmF0 b3IoKSAoY29uc3QgY2hhciAqcHJpbnRfbmFtZSwgc3RydWN0IHN5bWJvbCAqc3ltKTsNCj4gKyAg dm9pZCBvcGVyYXRvcigpIChjb25zdCBjaGFyICpwcmludF9uYW1lLCBzdHJ1Y3Qgc3ltYm9sICpz eW0sIGJvb2wgc2hhZG93ZWQsDQo+ICsJCSAgIGJvb2wgcHJpbnRlZCk7DQo+ICAgfTsNCj4gICAN Cj4gICAvKiBUaGUgY2FsbGJhY2sgZm9yIHRoZSBsb2NhbHMgYW5kIGFyZ3MgaXRlcmF0b3JzLiAg Ki8NCj4gICANCj4gICB2b2lkDQo+ICAgcHJpbnRfdmFyaWFibGVfYW5kX3ZhbHVlX2RhdGE6Om9w ZXJhdG9yKCkgKGNvbnN0IGNoYXIgKnByaW50X25hbWUsDQo+IC0JCQkJCSAgIHN0cnVjdCBzeW1i b2wgKnN5bSkNCj4gKwkJCQkJICAgc3RydWN0IHN5bWJvbCAqc3ltLA0KPiArCQkJCQkgICBib29s IHNoYWRvd2VkLCBib29sIHByaW50ZWQpDQo+ICAgew0KPiAgICAgZnJhbWVfaW5mb19wdHIgZnJh bWU7DQo+ICAgDQo+IEBAIC0yMjk1LDcgKzIzNDQsOCBAQCBwcmludF92YXJpYWJsZV9hbmRfdmFs dWVfZGF0YTo6b3BlcmF0b3IoKSAoY29uc3QgY2hhciAqcHJpbnRfbmFtZSwNCj4gICAgICAgICBy ZXR1cm47DQo+ICAgICAgIH0NCj4gICANCj4gLSAgcHJpbnRfdmFyaWFibGVfYW5kX3ZhbHVlIChw cmludF9uYW1lLCBzeW0sIGZyYW1lLCBzdHJlYW0sIA0KPiBudW1fdGFicyk7DQo+ICsgIHByaW50 X3ZhcmlhYmxlX2FuZF92YWx1ZSAocHJpbnRfbmFtZSwgc3ltLCBmcmFtZSwgc3RyZWFtLCBudW1f dGFicywgc2hhZG93ZWQsDQo+ICsJCQkgICAgcHJpbnRlZCk7DQo+ICAgDQo+ICAgICAvKiBwcmlu dF92YXJpYWJsZV9hbmRfdmFsdWUgaW52YWxpZGF0ZXMgRlJBTUUuICAqLw0KPiAgICAgZnJhbWUg PSBOVUxMOw0KPiBAQCAtMjQ3OCw3ICsyNTI4LDcgQEAgaXRlcmF0ZV9vdmVyX2Jsb2NrX2FyZ192 YXJzIChjb25zdCBzdHJ1Y3QgYmxvY2sgKmIsDQo+ICAgCSAgc3RydWN0IHN5bWJvbCAqc3ltMg0K PiAgIAkgICAgPSBsb29rdXBfc3ltYm9sX3NlYXJjaF9uYW1lIChzeW0tPnNlYXJjaF9uYW1lICgp LA0KPiAgIAkJCQkJIGIsIFZBUl9ET01BSU4pLnN5bWJvbDsNCj4gLQkgIGNiIChzeW0tPnByaW50 X25hbWUgKCksIHN5bTIpOw0KPiArCSAgY2IgKHN5bS0+cHJpbnRfbmFtZSAoKSwgc3ltMiwgZmFs c2UsIGZhbHNlKTsNCj4gICAJfQ0KPiAgICAgICB9DQo+ICAgfQ0KPiBkaWZmIC0tZ2l0IGEvZ2Ri L3N0YWNrLmggYi9nZGIvc3RhY2suaCBpbmRleCAxYjBjMmIzNDJhNC4uNzJkODQzYjY2ZmINCj4g MTAwNjQ0DQo+IC0tLSBhL2dkYi9zdGFjay5oDQo+ICsrKyBiL2dkYi9zdGFjay5oDQo+IEBAIC0y NCw3ICsyNCw4IEBAIGdkYjo6dW5pcXVlX3htYWxsb2NfcHRyPGNoYXI+IGZpbmRfZnJhbWVfZnVu bmFtZSAoZnJhbWVfaW5mb19wdHIgZnJhbWUsDQo+ICAgCQkJCQkJICBlbnVtIGxhbmd1YWdlICpm dW5sYW5nLA0KPiAgIAkJCQkJCSAgc3RydWN0IHN5bWJvbCAqKmZ1bmNwKTsNCj4gICANCj4gLXR5 cGVkZWYgZ2RiOjpmdW5jdGlvbl92aWV3PHZvaWQgKGNvbnN0IGNoYXIgKnByaW50X25hbWUsIHN0 cnVjdCANCj4gc3ltYm9sICpzeW0pPg0KPiArdHlwZWRlZiBnZGI6OmZ1bmN0aW9uX3ZpZXc8dm9p ZCAoY29uc3QgY2hhciAqcHJpbnRfbmFtZSwgc3RydWN0IHN5bWJvbCAqc3ltLA0KPiArCQkJCSBi b29sIHNoYWRvd2VkLCBib29sIHByaW50ZWQpPg0KPiAgICAgICAgaXRlcmF0ZV9vdmVyX2Jsb2Nr X2FyZ19sb2NhbF92YXJzX2NiOw0KPiAgIA0KPiAgIHZvaWQgaXRlcmF0ZV9vdmVyX2Jsb2NrX2Fy Z192YXJzIChjb25zdCBzdHJ1Y3QgYmxvY2sgKmJsb2NrLCBkaWZmIA0KPiAtLWdpdCBhL2dkYi90 ZXN0c3VpdGUvZ2RiLmFkYS92YXJfc2hhZG93aW5nLmV4cA0KPiBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmFkYS92YXJfc2hhZG93aW5nLmV4cA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAw MDAwMDAwMDAwMC4uZGEyNzlkYTI1OGQNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nZGIvdGVz dHN1aXRlL2dkYi5hZGEvdmFyX3NoYWRvd2luZy5leHANCj4gQEAgLTAsMCArMSwzOCBAQA0KPiAr IyBDb3B5cmlnaHQgMjAyMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCj4gKw0KPiAr IyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIA0KPiArbW9kaWZ5ICMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyANCj4gK3B1Ymxpc2hlZCBieSAjIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIA0KPiArTGljZW5zZSwgb3IgIyAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KPiArIw0KPiArIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgIyAN Cj4gK2J1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mICMgDQo+ICtNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlICMgR05VIA0KPiArR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLg0KPiArIw0KPiArIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAjIA0KPiArYWxvbmcgd2l0aCB0 aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4u DQo+ICsNCj4gK2xvYWRfbGliICJhZGEuZXhwIg0KPiArDQo+ICtyZXF1aXJlIGFsbG93X2FkYV90 ZXN0cw0KPiArDQo+ICtzdGFuZGFyZF9hZGFfdGVzdGZpbGUgdmFyX3NoYWRvd2luZw0KPiArDQo+ ICtpZiB7W2dkYl9jb21waWxlX2FkYSAiJHtzcmNmaWxlfSIgIiR7YmluZmlsZX0iIGV4ZWN1dGFi bGUgW2xpc3QgDQo+ICtkZWJ1Z11dICE9ICIiIH0gew0KPiArICByZXR1cm4gLTENCj4gK30NCj4g Kw0KPiArY2xlYW5fcmVzdGFydCAke3Rlc3RmaWxlfQ0KPiArDQo+ICtzZXQgaV9sZXZlbDEgW2dk Yl9nZXRfbGluZV9udW1iZXIgIkktTGV2ZWwxIiANCj4gKyR7dGVzdGRpcn0vdmFyX3NoYWRvd2lu Zy5hZGJdIHNldCBpX2xldmVsMiBbZ2RiX2dldF9saW5lX251bWJlciANCj4gKyJJLUxldmVsMiIg JHt0ZXN0ZGlyfS92YXJfc2hhZG93aW5nLmFkYl0gc2V0IGlfbGV2ZWwzIA0KPiArW2dkYl9nZXRf bGluZV9udW1iZXIgIkktTGV2ZWwzIiAke3Rlc3RkaXJ9L3Zhcl9zaGFkb3dpbmcuYWRiXSBzZXQg DQo+ICticF9sb2NhdGlvbiBbZ2RiX2dldF9saW5lX251bWJlciAiQlJFQUsiICR7dGVzdGRpcn0v dmFyX3NoYWRvd2luZy5hZGJdIHJ1bnRvICJ2YXJfc2hhZG93aW5nLmFkYjokYnBfbG9jYXRpb24i DQo+ICsNCj4gK2dkYl90ZXN0ICJpbmZvIGxvY2FscyIgW211bHRpX2xpbmUgXA0KPiArICAgICJp ID0gMTExXHQ8JHRlc3RmaWxlLmFkYjokaV9sZXZlbDM+IiAgXA0KPiArICAgICJpID0gMTFcdDwk dGVzdGZpbGUuYWRiOiRpX2xldmVsMiwgc2hhZG93ZWQ+IiAgXA0KPiArICAgICJpID0gMVx0PCR0 ZXN0ZmlsZS5hZGI6JGlfbGV2ZWwxLCBzaGFkb3dlZD4iICBcIF0gImluZm8gbG9jYWxzIGF0IA0K PiAraW5uZXJtb3N0IGxldmVsIg0KPiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYWRh L3Zhcl9zaGFkb3dpbmcvdmFyX3NoYWRvd2luZy5hZGINCj4gYi9nZGIvdGVzdHN1aXRlL2dkYi5h ZGEvdmFyX3NoYWRvd2luZy92YXJfc2hhZG93aW5nLmFkYg0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KPiBpbmRleCAwMDAwMDAwMDAwMC4uOTNjZWY1ZjBkNmMNCj4gLS0tIC9kZXYvbnVsbA0KPiAr KysgYi9nZGIvdGVzdHN1aXRlL2dkYi5hZGEvdmFyX3NoYWRvd2luZy92YXJfc2hhZG93aW5nLmFk Yg0KPiBAQCAtMCwwICsxLDMwIEBADQo+ICstLSAgQ29weXJpZ2h0IDIwMjMgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuDQo+ICstLQ0KPiArLS0gIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgDQo+ICttb2RpZnkNCj4gKy0t ICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCANCj4gK2J5DQo+ICstLSAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3INCj4gKy0tICAoYXQgeW91ciBvcHRp b24pIGFueSBsYXRlciB2ZXJzaW9uLg0KPiArLS0NCj4gKy0tICBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCj4gKy0tICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv Zg0KPiArLS0gIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUNCj4gKy0tICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLg0KPiArLS0NCj4gKy0tICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KPiArLS0gIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0K PiArDQo+ICt3aXRoIEFkYS5UZXh0X0lPOyB1c2UgQWRhLlRleHRfSU87DQo+ICsNCj4gK3Byb2Nl ZHVyZSBWYXJzaGFkb3cgaXMNCj4gKyAgSSA6IEludGVnZXIgOj0gMTsgIC0tIEktTGV2ZWwxDQo+ ICtiZWdpbg0KPiArICBkZWNsYXJlDQo+ICsgICAgSSA6IEludGVnZXIgOj0gMTE7IC0tIEktTGV2 ZWwyDQo+ICsgIGJlZ2luDQo+ICsgICAgZGVjbGFyZQ0KPiArICAgICAgSSA6IEludGVnZXIgOj0g MTExOyAtLSBJLUxldmVsMw0KPiArICAgIGJlZ2luDQo+ICsgICAgICBQdXRfTGluZSAoImhlbGxv Iik7ICAtLSAgQlJFQUsNCj4gKyAgICBlbmQ7DQo+ICsgIGVuZDsNCj4gK2VuZDsNCj4gZGlmZiAt LWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmFyLXNoYWRvd2luZy5jDQo+IGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS92YXItc2hhZG93aW5nLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA3NTUN Cj4gaW5kZXggMDAwMDAwMDAwMDAuLjE4OTYzNTE0YmJmDQo+IC0tLSAvZGV2L251bGwNCj4gKysr IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92YXItc2hhZG93aW5nLmMNCj4gQEAgLTAsMCArMSw0 OSBAQA0KPiArLyogQ29weXJpZ2h0IChDKSAyMDIzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLg0KPiArDQo+ICsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KPiArICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCj4gKyAgIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vu c2UsIG9yDQo+ICsgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KPiArDQo+ ICsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwNCj4gKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQo+ICsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQo+ICsgICBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KPiArDQo+ICsgICBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KPiAr ICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSANCj4gKyA8aHR0cDovL3d3 dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLw0KPiArDQo+ICsjaW5jbHVkZSA8c3RkbGliLmg+DQo+ ICsNCj4gK3ZvaWQNCj4gK3NoYWRvd2luZyAodm9pZCkNCj4gK3sNCj4gKyAgaW50IGE7ICAvKiBi cCBmb3IgZW50cnkgKi8NCj4gKyAgdW5zaWduZWQgaW50IHZhbDEgPSAxOwkJLyogdmFsMS1kMSAq Lw0KPiArICB1bnNpZ25lZCBpbnQgdmFsMiA9IDI7CQkvKiB2YWwyLWQxICovDQo+ICsgIGEgPSAx MDE7ICAvKiBicCBmb3IgbG9jYWxzIDEgKi8NCj4gKyAgew0KPiArICAgIHVuc2lnbmVkIGludCB2 YWwyID0gMzsJCS8qIHZhbDItZDIgKi8NCj4gKyAgICB1bnNpZ25lZCBpbnQgdmFsMyA9IDQ7CQkv KiB2YWwzLWQxICovDQo+ICsgICAgYSA9IDEwMjsgIC8qIGJwIGZvciBsb2NhbHMgMiAqLw0KPiAr ICAgIHsNCj4gKyAgICAgIHVuc2lnbmVkIGludCB2YWwxID0gNTsJCS8qIHZhbDEtZDIgKi8NCj4g KyAgICAgIGEgPSAxMDM7ICAvKiBicCBmb3IgbG9jYWxzIDMgKi8NCj4gKyAgICAgIHsNCj4gKwkj aW5jbHVkZSAidmFyLXNoYWRvd2luZzIuYyINCj4gKwl1bnNpZ25lZCBpbnQgdmFsMSA9IDY7CS8q IHZhbDEtZDMgKi8NCj4gKwl1bnNpZ25lZCBpbnQgdmFsMiA9IDc7CS8qIHZhbDItZDMgKi8NCj4g Kwl1bnNpZ25lZCBpbnQgdmFsMyA9IDg7CS8qIHZhbDMtZDIgKi8NCj4gKwlhID0gMTA0OyAgLyog YnAgZm9yIGxvY2FscyA0ICovDQo+ICsgICAgICB9DQo+ICsgICAgfQ0KPiArICB9DQo+ICsgIGEg PSAwOyAvKiBicCBmb3IgbG9jYWxzIDUgKi8NCj4gK30NCj4gKw0KPiAraW50DQo+ICttYWluICh2 b2lkKQ0KPiArew0KPiArICBzaGFkb3dpbmcgKCk7DQo+ICsgIHJldHVybiAwOw0KPiArfQ0KPiBk aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92YXItc2hhZG93aW5nLmV4cA0KPiBi L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvdmFyLXNoYWRvd2luZy5leHANCj4gbmV3IGZpbGUgbW9k ZSAxMDA3NTUNCj4gaW5kZXggMDAwMDAwMDAwMDAuLmM3ZTFlOWVhZTJlDQo+IC0tLSAvZGV2L251 bGwNCj4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92YXItc2hhZG93aW5nLmV4cA0KPiBA QCAtMCwwICsxLDkwIEBADQo+ICsjIENvcHlyaWdodCAyMDIzIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLg0KPiArDQo+ICsjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgDQo+ICttb2RpZnkgIyBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIA0KPiArcHVibGlzaGVkIGJ5 ICMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg DQo+ICtMaWNlbnNlLCBvciAjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQo+ ICsjDQo+ICsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLCAjIA0KPiArYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgIyANCj4gK01FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgIyBHTlUgDQo+ICtHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQo+ICsjDQo+ICsjIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl ICMgDQo+ICthbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4NCj4gKw0KPiArc3RhbmRhcmRfdGVzdGZpbGUNCj4gK2lmIFtw cmVwYXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8gcHJlcGFyZSIgJHRlc3RmaWxlICRzcmNmaWxl XSB7DQo+ICsgICAgcmV0dXJuIC0xDQo+ICt9DQo+ICsNCj4gK2lmICFbcnVudG9fbWFpbl0gew0K PiArICAgIHVudGVzdGVkICJmYWlsZWQgdG8gcnVuIHRvIG1haW4iDQo+ICsgICAgcmV0dXJuIC0x DQo+ICt9DQo+ICsNCj4gK3NldCBicF9saW5lMSBbZ2RiX2dldF9saW5lX251bWJlciAiYnAgZm9y IGxvY2FscyAxIiAke3NyY2ZpbGV9XSBzZXQNCj4gK2JwX2xpbmUyIFtnZGJfZ2V0X2xpbmVfbnVt YmVyICJicCBmb3IgbG9jYWxzIDIiICR7c3JjZmlsZX1dIHNldA0KPiArYnBfbGluZTMgW2dkYl9n ZXRfbGluZV9udW1iZXIgImJwIGZvciBsb2NhbHMgMyIgJHtzcmNmaWxlfV0gc2V0DQo+ICticF9s aW5lNCBbZ2RiX2dldF9saW5lX251bWJlciAiYnAgZm9yIGxvY2FscyA0IiAke3NyY2ZpbGV9XSBz ZXQNCj4gK2JwX2xpbmU1IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJicCBmb3IgbG9jYWxzIDUiICR7 c3JjZmlsZX1dDQo+ICsNCj4gK3NldCB2YWwxX2QxIFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2YWwx LWQxIiAke3NyY2ZpbGV9XSBzZXQgdmFsMV9kMiANCj4gK1tnZGJfZ2V0X2xpbmVfbnVtYmVyICJ2 YWwxLWQyIiAke3NyY2ZpbGV9XSBzZXQgdmFsMV9kMyANCj4gK1tnZGJfZ2V0X2xpbmVfbnVtYmVy ICJ2YWwxLWQzIiAke3NyY2ZpbGV9XSBzZXQgdmFsMl9kMSANCj4gK1tnZGJfZ2V0X2xpbmVfbnVt YmVyICJ2YWwyLWQxIiAke3NyY2ZpbGV9XSBzZXQgdmFsMl9kMiANCj4gK1tnZGJfZ2V0X2xpbmVf bnVtYmVyICJ2YWwyLWQyIiAke3NyY2ZpbGV9XSBzZXQgdmFsMl9kMyANCj4gK1tnZGJfZ2V0X2xp bmVfbnVtYmVyICJ2YWwyLWQzIiAke3NyY2ZpbGV9XSBzZXQgdmFsM19kMSANCj4gK1tnZGJfZ2V0 X2xpbmVfbnVtYmVyICJ2YWwzLWQxIiAke3NyY2ZpbGV9XSBzZXQgdmFsM19kMiANCj4gK1tnZGJf Z2V0X2xpbmVfbnVtYmVyICJ2YWwzLWQyIiAke3NyY2ZpbGV9XSBzZXQgYV9saW5lIA0KPiArW2dk Yl9nZXRfbGluZV9udW1iZXIgImJwIGZvciBlbnRyeSIgJHtzcmNmaWxlfV0NCj4gKw0KPiArZ2Ri X2JyZWFrcG9pbnQgJHNyY2ZpbGU6JGJwX2xpbmUxDQo+ICtnZGJfdGVzdCAiY29udGludWUiICIu KmJwIGZvciBsb2NhbHMgMS4qIiAiY29udGludWUgdG8gb3V0ZXJtb3N0IGxldmVsIg0KPiArZ2Ri X3Rlc3QgImluZm8gbG9jYWxzIiAgW211bHRpX2xpbmUgXA0KPiArICAgICJ2YWwxID0gMSIgIFwN Cj4gKyAgICAidmFsMiA9IDIiICBcDQo+ICsgICAgXSAiaW5mbyBsb2NhbHMgYXQgb3V0ZXJtb3N0 IGxldmVsIg0KPiArDQo+ICtnZGJfYnJlYWtwb2ludCAkc3JjZmlsZTokYnBfbGluZTINCj4gK2dk Yl90ZXN0ICJjb250aW51ZSIgIi4qYnAgZm9yIGxvY2FscyAyLioiICJjb250aW51ZSB0byBmaXJz dCBsZXZlbCINCj4gK2dkYl90ZXN0ICJpbmZvIGxvY2FscyIgIFttdWx0aV9saW5lIFwNCj4gKyAg ICAidmFsMiA9IDNcdDwkc3JjZmlsZTokdmFsMl9kMj4iICBcDQo+ICsgICAgInZhbDMgPSA0IiAg XA0KPiArICAgICJhID0gMTAxIiAgIFwNCj4gKyAgICAidmFsMSA9IDEiICBcDQo+ICsgICAgInZh bDIgPSAyXHQ8JHNyY2ZpbGU6JHZhbDJfZDEsIHNoYWRvd2VkPiIgIFwNCj4gKyAgICBdICJpbmZv IGxvY2FscyBmaXJzdCBsZXZlbCINCj4gKw0KPiArZ2RiX2JyZWFrcG9pbnQgJHNyY2ZpbGU6JGJw X2xpbmUzDQo+ICtnZGJfdGVzdCAiY29udGludWUiICIuKmJwIGZvciBsb2NhbHMgMy4qIiAiY29u dGludWUgdG8gc2Vjb25kIGxldmVsIg0KPiArZ2RiX3Rlc3QgImluZm8gbG9jYWxzIiBbbXVsdGlf bGluZSBcDQo+ICsgICAgInZhbDEgPSA1XHQ8JHNyY2ZpbGU6JHZhbDFfZDI+IiAgXA0KPiArICAg ICJ2YWwyID0gM1x0PCRzcmNmaWxlOiR2YWwyX2QyPiIgIFwNCj4gKyAgICAidmFsMyA9IDQiICBc DQo+ICsgICAgImEgPSAxMDIiICAgXA0KPiArICAgICJ2YWwxID0gMVx0PCRzcmNmaWxlOiR2YWwx X2QxLCBzaGFkb3dlZD4iICBcDQo+ICsgICAgInZhbDIgPSAyXHQ8JHNyY2ZpbGU6JHZhbDJfZDEs IHNoYWRvd2VkPiIgIFwNCj4gKyAgICBdICJpbmZvIGxvY2FscyBzZWNvbmQgbGV2ZWwiDQo+ICsN Cj4gK2dkYl9icmVha3BvaW50ICRzcmNmaWxlOiRicF9saW5lNA0KPiArZ2RiX3Rlc3QgImNvbnRp bnVlIiAiLipicCBmb3IgbG9jYWxzIDQuKiIgImNvbnRpbnVlIHRvIGlubmVybW9zdCBsZXZlbCIN Cj4gK2dkYl90ZXN0ICJpbmZvIGxvY2FscyIgW211bHRpX2xpbmUgXA0KPiArICAgICJhID0gOTk5 XHQ8JHt0ZXN0ZmlsZX0yLmM6MTY+IiBcDQo+ICsgICAgInZhbDEgPSA2XHQ8JHNyY2ZpbGU6JHZh bDFfZDM+IiAgXA0KPiArICAgICJ2YWwyID0gN1x0PCRzcmNmaWxlOiR2YWwyX2QzPiIgIFwNCj4g KyAgICAidmFsMyA9IDhcdDwkc3JjZmlsZTokdmFsM19kMj4iICBcDQo+ICsgICAgInZhbDEgPSA1 XHQ8JHNyY2ZpbGU6JHZhbDFfZDIsIHNoYWRvd2VkPiIgXA0KPiArICAgICJ2YWwyID0gM1x0PCRz cmNmaWxlOiR2YWwyX2QyLCBzaGFkb3dlZD4iIFwNCj4gKyAgICAidmFsMyA9IDRcdDwkc3JjZmls ZTokdmFsM19kMSwgc2hhZG93ZWQ+IiBcDQo+ICsgICAgImEgPSAxMDNcdDwkc3JjZmlsZTokYV9s aW5lLCBzaGFkb3dlZD4iICAgXA0KPiArICAgICJ2YWwxID0gMVx0PCRzcmNmaWxlOiR2YWwxX2Qx LCBzaGFkb3dlZD4iIFwNCj4gKyAgICAidmFsMiA9IDJcdDwkc3JjZmlsZTokdmFsMl9kMSwgc2hh ZG93ZWQ+IiBcDQo+ICsgICAgXSAiaW5mbyBsb2NhbHMgYXQgaW5uZXJtb3N0IGxldmVsIg0KPiAr DQo+ICtnZGJfYnJlYWtwb2ludCAkc3JjZmlsZTokYnBfbGluZTUNCj4gK2dkYl90ZXN0ICJjb250 aW51ZSIgIi4qYnAgZm9yIGxvY2FscyA1LioiICJjb250aW51ZSB0byBvdXRlcm1vc3QgbGV2ZWwg bGFzdCINCj4gK2dkYl90ZXN0ICJpbmZvIGxvY2FscyIgW211bHRpX2xpbmUgXA0KPiArICAgICJ2 YWwxID0gMSIgIFwNCj4gKyAgICAidmFsMiA9IDIiICBcDQo+ICsgICAgXSAiaW5mbyBsb2NhbHMg YXQgb3V0ZXJtb3N0IGxldmVsIGxhc3QiDQo+IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL3Zhci1zaGFkb3dpbmcyLmMNCj4gYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3Zhci1z aGFkb3dpbmcyLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAu LjliYzU1Zjk1YTg0DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS92YXItc2hhZG93aW5nMi5jDQo+IEBAIC0wLDAgKzEsMTYgQEANCj4gKy8qIENvcHlyaWdo dCAoQykgMjAyMyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCj4gKw0KPiArICAgVGhp cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkNCj4gKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQo+ICsgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcg0KPiArICAgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCj4gKw0KPiArICAgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQo+ICsgICBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZg0KPiArICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZQ0KPiArICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4NCj4gKw0KPiArICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCj4gKyAgIGFsb25nIHdpdGggdGhpcyBw cm9ncmFtLiAgSWYgbm90LCBzZWUgDQo+ICsgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LiAgKi8NCj4gKw0KPiAraW50IGEgPSA5OTk7DQo+IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRl L2dkYi5ydXN0L3Zhcl9yZXVzZS5leHANCj4gYi9nZGIvdGVzdHN1aXRlL2dkYi5ydXN0L3Zhcl9y ZXVzZS5leHANCj4gbmV3IGZpbGUgbW9kZSAxMDA3NTUNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjU4 Yjg1NTE4ZjU1DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucnVz dC92YXJfcmV1c2UuZXhwDQo+IEBAIC0wLDAgKzEsMzIgQEANCj4gKyMgQ29weXJpZ2h0IDIwMjMg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuDQo+ICsjDQo+ICsjIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgDQo+ICttb2Rp ZnkgIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIA0KPiArcHVibGlzaGVkIGJ5ICMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgDQo+ICtMaWNlbnNlLCBvciAjIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uDQo+ICsjDQo+ICsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAjIA0KPiArYnV0IFdJVEhPVVQg QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgIyANCj4g K01FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUgIyBHTlUgDQo+ICtHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu DQo+ICsjDQo+ICsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlICMgDQo+ICthbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElm IG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4NCj4gKw0KPiArbG9hZF9s aWIgcnVzdC1zdXBwb3J0LmV4cA0KPiArcmVxdWlyZSBhbGxvd19ydXN0X3Rlc3RzDQo+ICtyZXF1 aXJlIHtjYW5fY29tcGlsZSBydXN0fQ0KPiArDQo+ICtzdGFuZGFyZF90ZXN0ZmlsZSAucnMNCj4g K2lmIHtbcHJlcGFyZV9mb3JfdGVzdGluZyAiZmFpbGVkIHRvIHByZXBhcmUiIFwNCj4gKwkkdGVz dGZpbGUgJHNyY2ZpbGUge2RlYnVnIHJ1c3R9XX0gew0KPiArICAgIHJldHVybiAtMQ0KPiArfQ0K PiArDQo+ICtzZXQgbGluZSBbZ2RiX2dldF9saW5lX251bWJlciAic2V0IGJyZWFrcG9pbnQgaGVy ZSJdIGlmIHshW3J1bnRvIA0KPiArJHtzcmNmaWxlfTokbGluZV19IHsNCj4gKyAgICB1bnRlc3Rl ZCAiY291bGQgbm90IHJ1biB0byBicmVha3BvaW50Ig0KPiArICAgIHJldHVybiAtMQ0KPiArfQ0K PiArDQo+ICtnZGJfdGVzdCAiaW5mbyBsb2NhbCBfeCIgIl94ID0gMTIiICJwcmludCBsb2NhbCBf eCB2YXJpYWJsZSINCj4gZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnJ1c3QvdmFyX3Jl dXNlLnJzDQo+IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucnVzdC92YXJfcmV1c2UucnMNCj4gbmV3IGZp bGUgbW9kZSAxMDA3NTUNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjAzYmU3OTgxZmYxDQo+IC0tLSAv ZGV2L251bGwNCj4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucnVzdC92YXJfcmV1c2UucnMNCj4g QEAgLTAsMCArMSwyMCBAQA0KPiArLy8gQ29weXJpZ2h0IChDKSAyMDIzIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLg0KPiArDQo+ICsvLyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIA0KPiArbW9kaWZ5IC8vIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgDQo+ICtwdWJs aXNoZWQgYnkgLy8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MyBvZiB0aGUgDQo+ICtMaWNlbnNlLCBvciAvLyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLg0KPiArLy8NCj4gKy8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCAvLyANCj4gK2J1dCBXSVRIT1VUIEFOWSBXQVJS QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIC8vIA0KPiArTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSAv LyBHTlUgDQo+ICtHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQo+ICsv Lw0KPiArLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgDQo+ICsvLyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4NCj4gKw0KPiArZm4gbWFpbigp IHsNCj4gKyAgICBsZXQgX3ggPSA1Ow0KPiArICAgIGxldCBfeCA9IF94ICsgNzsNCj4gKyAgICBs ZXQgX3kgPSA4OyAgICAgICAvLyBzZXQgYnJlYWtwb2ludCBoZXJlDQo+ICt9DQo+IGRpZmYgLS1n aXQgYS9nZGIvdHJhY2Vwb2ludC5jIGIvZ2RiL3RyYWNlcG9pbnQuYyBpbmRleA0KPiAyMDUzODA0 NzZiMy4uMDI2NjliM2Q5MDkgMTAwNjQ0DQo+IC0tLSBhL2dkYi90cmFjZXBvaW50LmMNCj4gKysr IGIvZ2RiL3RyYWNlcG9pbnQuYw0KPiBAQCAtMTA0OCw3ICsxMDQ4LDggQEAgY29sbGVjdGlvbl9s aXN0OjphZGRfbG9jYWxfc3ltYm9scyAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIENPUkVfQURE UiBwYywNCj4gICAgIGludCBjb3VudCA9IDA7DQo+ICAgDQo+ICAgICBhdXRvIGRvX2NvbGxlY3Rf c3ltYm9sID0gWyZdIChjb25zdCBjaGFyICpwcmludF9uYW1lLA0KPiAtCQkJCXN0cnVjdCBzeW1i b2wgKnN5bSkNCj4gKwkJCQlzdHJ1Y3Qgc3ltYm9sICpzeW0sDQo+ICsJCQkJYm9vbCBzaGFkb3dl ZCwgYm9vbCBwcmludGVkKQ0KPiAgICAgICB7DQo+ICAgICAgICAgY29sbGVjdF9zeW1ib2wgKHN5 bSwgZ2RiYXJjaCwgZnJhbWVfcmVnbm8sDQo+ICAgCQkgICAgICBmcmFtZV9vZmZzZXQsIHBjLCB0 cmFjZV9zdHJpbmcpOyBkaWZmIC0tZ2l0IGEvZ2RiL3ZhbHVlLmggDQo+IGIvZ2RiL3ZhbHVlLmgg aW5kZXggMWQ1YTAwMThmOTIuLjg3OWZjZTU0NGMzIDEwMDY0NA0KPiAtLS0gYS9nZGIvdmFsdWUu aA0KPiArKysgYi9nZGIvdmFsdWUuaA0KPiBAQCAtMTUzNyw3ICsxNTM3LDkgQEAgZXh0ZXJuIHZv aWQgcHJpbnRfdmFyaWFibGVfYW5kX3ZhbHVlIChjb25zdCBjaGFyICpuYW1lLA0KPiAgIAkJCQkg ICAgICBzdHJ1Y3Qgc3ltYm9sICp2YXIsDQo+ICAgCQkJCSAgICAgIGZyYW1lX2luZm9fcHRyIGZy YW1lLA0KPiAgIAkJCQkgICAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLA0KPiAtCQkJCSAgICAg IGludCBpbmRlbnQpOw0KPiArCQkJCSAgICAgIGludCBpbmRlbnQsDQo+ICsJCQkJICAgICAgYm9v bCBzaGFkb3dlZCwNCj4gKwkJCQkgICAgICBib29sIHByaW50ZWQpOw0KPiAgIA0KPiAgIGV4dGVy biB2b2lkIHR5cGVkZWZfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3Qgc3ltYm9sICpu ZXdzLA0KPiAgIAkJCSAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pOw0KDQoNCi0tDQpDaGVlcnMs DQpHdWluZXZlcmUgTGFyc2VuDQpTaGUvSGVyL0hlcnMNCg0KSW50ZWwgRGV1dHNjaGxhbmQgR21i SApSZWdpc3RlcmVkIEFkZHJlc3M6IEFtIENhbXBlb24gMTAsIDg1NTc5IE5ldWJpYmVyZywgR2Vy bWFueQpUZWw6ICs0OSA4OSA5OSA4ODUzLTAsIHd3dy5pbnRlbC5kZSA8aHR0cDovL3d3dy5pbnRl bC5kZT4KTWFuYWdpbmcgRGlyZWN0b3JzOiBDaHJpc3RpbiBFaXNlbnNjaG1pZCwgU2hhcm9uIEhl Y2ssIFRpZmZhbnkgRG9vbiBTaWx2YSAgCkNoYWlycGVyc29uIG9mIHRoZSBTdXBlcnZpc29yeSBC b2FyZDogTmljb2xlIExhdQpSZWdpc3RlcmVkIE9mZmljZTogTXVuaWNoCkNvbW1lcmNpYWwgUmVn aXN0ZXI6IEFtdHNnZXJpY2h0IE11ZW5jaGVuIEhSQiAxODY5MjgK