From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id o4XHHHusKGGsUQAAWB0awg (envelope-from ) for ; Fri, 27 Aug 2021 05:12:27 -0400 Received: by simark.ca (Postfix, from userid 112) id 647EB1EE1B; Fri, 27 Aug 2021 05:12:27 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id BED041E813 for ; Fri, 27 Aug 2021 05:12:24 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 4D1CC385703A for ; Fri, 27 Aug 2021 09:12:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4D1CC385703A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1630055544; bh=/wDvo5LWZjSPms21XhXlM6gA4btwG/rjmtWnXXx7YyE=; h=To:Subject:Date:References:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=o9tIA+MqPYL4dhfbokoLG0uDFJgyqeyf0SQsxvQNtFi4b4LhimN8QazfqmrQ2SKvX BiiZtmo9fVsXgO/ssdJo3t33vzBPjJOBxpdUN5e5fFtUdmNlA3YtFUEIzX7mbfbqR3 XoNHuEupZzzUtzXuJL5T+0f/aXRNxigeccxpRJaY= Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by sourceware.org (Postfix) with ESMTPS id 79D653858001 for ; Fri, 27 Aug 2021 09:11:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 79D653858001 X-IronPort-AV: E=McAfee;i="6200,9189,10088"; a="205063489" X-IronPort-AV: E=Sophos;i="5.84,356,1620716400"; d="scan'208";a="205063489" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Aug 2021 02:11:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,356,1620716400"; d="scan'208";a="685387778" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by fmsmga006.fm.intel.com with ESMTP; 27 Aug 2021 02:11:52 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.4; Fri, 27 Aug 2021 02:11:51 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Fri, 27 Aug 2021 02:11:51 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Fri, 27 Aug 2021 02:11:51 -0700 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.49) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.10; Fri, 27 Aug 2021 02:11:50 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NApojZ3+zc0S552Of2aFBh1vh0quN6P/4JGrw5yALcjPrsA1ZU5amau/RCLW/duAfmCBfdL2u609R69FsKFmatp/jmSrCvjZhtlwQNhOrr+k+iQ43qy0AFJIb8mg4uNImyr/bliCzcn3IkD3yk+9QOOd2iIDZGVJbSMsOCzOX0vY6eRXLkUE/Wvw1BCenL507sV2CxUztYBuB0x0777ZVItAb/Wu9aa0sLOlRNrbNqbSutWCLr564H+YIYUbT69v18u1VWWx/Aoqa6tOAcRS5szh74zEIfy44pqhh0qvhua/HdTOHOLr1mRSfcfLKpI+Qy0+HnMRP73MkFxUJhzcnw== 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=Hz8DfRafkdBW2TCtlwq28GPd8qi4q3WyqqfcEe3Ywo8=; b=kCDgnsgNBoqn0aj3V1SGzubXnC0Bmrq+j+yMIR9X7Yt0hOc8bIYafxTG8Zq/ogyiEijIjxCVGX7x0q6T9vxmX1RyI2vAtZ5Zxfv6XcJCmGeCSbtijFJxbCbweqWCGr3DLTZ7VqRtk8oaVKov1K+f+dsEClslmnTB22GMMFPGhqq9H24OJMilVkMV2pdXVIUeGoR4wdS4x4qaYPIlO4ztEtOKNPKDyq9jYkVnsvk7slKDjbb/khJdchuOYAIuTakuxwoMufQw1vsW6um32ayH066NUEzBNaWCBbyydKVyhzNlEBufrPNwTtYLML+FYTWRa//y9UkeQUb0tW9a0EOXlQ== 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 CO1PR11MB4788.namprd11.prod.outlook.com (2603:10b6:303:97::11) by CO1PR11MB4820.namprd11.prod.outlook.com (2603:10b6:303:6f::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.25; Fri, 27 Aug 2021 09:11:49 +0000 Received: from CO1PR11MB4788.namprd11.prod.outlook.com ([fe80::c0b4:a808:14ed:5a39]) by CO1PR11MB4788.namprd11.prod.outlook.com ([fe80::c0b4:a808:14ed:5a39%5]) with mapi id 15.20.4457.017; Fri, 27 Aug 2021 09:11:49 +0000 To: Andrew Burgess Subject: RE: [PATCH 1/1] gdb: Fix arrays of variable length strings for FORTRAN Thread-Topic: [PATCH 1/1] gdb: Fix arrays of variable length strings for FORTRAN Thread-Index: AQHXlbN/Z/p+2KKqekqs58lyumkhyKt8i3CAgAQ5qMCAAygzAIADKq8g Date: Fri, 27 Aug 2021 09:11:49 +0000 Message-ID: References: <20210820110638.26648-1-abdul.b.ijaz@intel.com> <20210820110638.26648-2-abdul.b.ijaz@intel.com> <20210820155247.GA2581@embecosm.com> <20210825083650.GF2581@embecosm.com> In-Reply-To: <20210825083650.GF2581@embecosm.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-reaction: no-action dlp-version: 11.5.1.3 dlp-product: dlpe-windows x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a6869370-8b76-435b-530b-08d9693ab391 x-ms-traffictypediagnostic: CO1PR11MB4820: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: xoJDVfoVCRaZx93vt4VX9qSD/PAfU9V1kfPLXUYaiGVCT/T+4Srkv0lQCMZS+InhUtEJkP1ZiDv3bAXDykJBw8v69liLqEq8tcloTtXrHnXd1x2qfuJeq3HN7vwRkJcIdTSsIDvb3/328Y0j7kHUxHQZ571f8gEwau452lhgWKakKsdpRKeXvDvzsEO20IaxiT3Glhn355rdIeyQL8IrI76icWTpKvQWmz9kWeGE/GfMoR7SMQWRVLEfFels9fgifSPQ4fEIxMBX+8AwPdiWGK6Sa5nKgAT7uKhjAT+ELM6ItMsaF0XDoArf42gcc522BtnnKyBh017zRaGDGKJyNW+x3U7Sd7jJB5TKLHzT4siiKd1yba84fBLWjiLoC4Gy+oG4oK/tN2B6xEh9/56UiK1inRKdmBNSXwR+3KDVGccLPUJzHCAckLBEZs3/Q5hY/RQz+O9+IpHtmF+DeLf9ROduqLAZobUftYF5hl0ARlBcbgheBBip9WIHezHlZPgqy9GNGRAaKWFS3pDAiTLORF5pAY4K1VA0eluSQ6r6TPVueAUHcYCoj0XdOGJcmiVVdH8rWnfSRp0WbkHI63j/HmFdfVsZs/2yXvfq8t2ai1ztAJE3IORtjievXWWgYvq79wc4Jun5qQ7GwCGynSq2zqjXe//hwY54dggNO/SRER3hzCXp6mdoNWNJvefQnCJcWTBK5Y4Sfxc2931llLJMFTqXai8Jz9ZdtNnyxBn7SGXA8+CHu63NYj3ChZwnq+j3FNdGrDb4nN21J2NUMW0BVkbklp9jHK25B/h4lJYQiAOyDSgszEB9RpI3tsMRP9VqpukNOkcb21JOvb1K7OPscWWHWsqYTqCkToPyPWRC2v4= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CO1PR11MB4788.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(136003)(39860400002)(376002)(396003)(346002)(7696005)(6916009)(64756008)(66476007)(66446008)(66556008)(76116006)(6506007)(8676002)(83380400001)(8936002)(5660300002)(53546011)(55016002)(66946007)(54906003)(30864003)(86362001)(4326008)(316002)(2906002)(9686003)(478600001)(52536014)(33656002)(15974865002)(38100700002)(186003)(122000001)(38070700005)(71200400001)(2004002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WnFvWmNPY0ZublpINFQ1b2JPcGtkRkVIekgyZE5hQUVXeWExbVpFS1Bwa0pn?= =?utf-8?B?UjJZWFVXdS8rYm1HTXdSNDgwMy9RTUo5K3J2M3dGVjdEWVZKcW9aT2srdVlV?= =?utf-8?B?c2RNbTBRbG1qTDVIdVMxcGR5QStDTzZvczlNN2lNOXRzUlhuYXpMVGpiclNZ?= =?utf-8?B?dWszanFKUHl6bWkwN29sVmFMUHhwbXlFVjFpcFZidXgza1ZsVWRveFJEWVp1?= =?utf-8?B?eGRhU1FpN2MxWTBuMWk1Szc5YTZLNnpTK1NSZlN4MEZVQ3BXMHRvWGsrRjNk?= =?utf-8?B?SDhVT1Z1Q0xrTXM2dTNEbGRDSTRTRlJxbzB3aVlXQUI1VXBydXpFTlAxSGtt?= =?utf-8?B?RmtpRVRxb3VqMm0yeGxxZjQ4R1dvaFlpRjdGZkJHZ3ZYaituang5b1F6Ni9K?= =?utf-8?B?clEyKzZ1MFdPcDJTN2VMNk1DVmhCSUpkd3pERUdWbmdoRHd6cHRDbjNCM1hO?= =?utf-8?B?d2F1OFV5RnlUR2U0ZFVvRnN2TmtTTDlGSUxVS0lTN2s5V3c2TVdURk1IRURE?= =?utf-8?B?U3RzaERBNzE5b3lCZ2xIdjJhM0t3NHJjWlU3YUNTdFBYTkdiQytPN1lyM3R2?= =?utf-8?B?UTJLZlcwSnJVejEyTlh5aFIvdXRpeGxYb1BleU5hUVhUZWhXS1cxVUJjbCtl?= =?utf-8?B?bTdGUjYwZE9rZU1zZDhUTjZ3Z041QjhnaUhtaGh4eDU5cGp3d0FNY3BQQ2dm?= =?utf-8?B?eTNQcDAwRzRIWS9HYlNmeThEK2JrQlpPa0FjTTVuMFl4YUlZbHFmeTgxYzRN?= =?utf-8?B?K0dVOCtCWDNNeXNUbklBYTd2V1FZSFBJRjFxQi95dHRONlpwWTJsRG5IellF?= =?utf-8?B?WEFnSmp2dFFxOG83OWZpQThvaFRWb1U0a0ExeWh5clpuK2p1aHVyNEJ3elZU?= =?utf-8?B?NkVXSytESE5ldVdaaFk3Uk41MkpFUmk5bEM1WGlNWTY3a0pjV0ZBTXhZOC9V?= =?utf-8?B?dVRFYk9Ib1Y1QldENTJZYUIwTklpUmlHd3EvWW5nQXhzQjZ0bzFMcEdmeXdm?= =?utf-8?B?eXNqeGpDdWRqUk94UHRSVlI2ZVVDUTRYK3VCRHl5ZE9PeGJwVThwQUNJSWFp?= =?utf-8?B?L0lZbnRWK3RQR285R1FvcFpvcjFtZXZuMXliQnBaTVR3ckE0cThsSFI5S3Fo?= =?utf-8?B?V2h2QmdVYUJDL2FtWWVOY3ZoN1lWREhLOHdORld6RGY3R2dmcXNkVjh2Rllv?= =?utf-8?B?U3BHMDJ2UTRxSmZIajlnM0VqQXNSdUtZa3BVaVA1K2pyaU9ZV0tmVU9Rd3RD?= =?utf-8?B?cGdoTkEraWYrRU5TT2J1TXhzbHNlY1AvK0FBTnJVVG92RFRMMUxmV2lxLzVX?= =?utf-8?B?L2o0akxYdFVpYjBzR3MxQTg5cVk5U2k4a281aWxjcXpwU2ZDQjZGUEFPci8w?= =?utf-8?B?V1Vod3lodjRYZkpJQi9FTFlGMjhqN09RUFh6Z0s3WHZLK2VadlMzK2EvdW9p?= =?utf-8?B?RnlRVHUrT05WQ1NzNjlwYUF1ZU9QaXYxbk12elMwMEkzRFZLTnFGc2t6Tndz?= =?utf-8?B?N1VQWEhnREh2OGd4Mk4rMG8zQzFLdGFaOVd1L3IvVDJaaThTYjNzT09ndDZP?= =?utf-8?B?K3NBWU5vdEQ2S25VNlFNbzBLb2w5bE9ZQWFTa0xTZFpxNnRqOVZsZFdQclJn?= =?utf-8?B?TTR1SWZOMzduM0pMczFNQXF5aXFoUmVTNTNDeC8xa0hZa2I0c2ZQZlh4ck80?= =?utf-8?B?akdGZ3lVdGR4bi9ZQzc3cEVhRXJ2TWhNVWdXeEpmNHFuT1BINEg4QW9iOElZ?= =?utf-8?B?dDFUcENwQkpuNWlzTERvVDRCTFozZUJNdkh3alhTTzdIMkJmS2Y4c2Z2MEI0?= =?utf-8?B?UW9FYnRXWVFIOHU2eDFDUHRTdnlMTWZ2d0dkSGNqazlNSXlCZk01ZVZORENm?= =?utf-8?Q?aALoj/10C6j3K?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4788.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a6869370-8b76-435b-530b-08d9693ab391 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Aug 2021 09:11:49.0534 (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: rxVEh/o9I3F7Z0q8a8iWyrYpCu8lTOByPea3sujlRvUzprZ2gQ2G/YYduMiXMESIEn/FvCjUBYOj4QIGyLgihQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB4820 X-OriginatorOrg: intel.com Content-Transfer-Encoding: base64 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: , From: "Ijaz, Abdul B via Gdb-patches" Reply-To: "Ijaz, Abdul B" Cc: "abdul.b.ijaz" , "gdb-patches@sourceware.org" Errors-To: gdb-patches-bounces+public-inbox=simark.ca@sourceware.org Sender: "Gdb-patches" VGhhbmtzIEFuZHJldyBmb3IgdGhlIGZlZWRiYWNrLg0KDQo+IFlvdSBzaG91bGQgZGVmaW5pdGVs eSBtZW50aW9uIHRoaXMgaW4gdGhlIGNvbW1pdCBtZXNzYWdlIEkgdGhpbmssIGlkZWFsbHksIGp1 c3QgbWVudGlvbiB3aGljaCB0ZXN0IHNob3dlZCB0aGUgcmVncmVzc2lvbiBhbmQgd2h5IChlLmcu IHByaW50aW5nIGEgRm9ydHJhbiB2YXJpYWJsZSB3aGlsZSB0aGUgbGFuZ3VhZ2UgaXMgZm9yY2Vk IHRvIEMpLg0KDQpTdXJlIFdpbGwgZG8uDQoNCj4gSSBub3RpY2VkIHlvdSBkcm9wcGVkIGByZXNv bHZlX3BgIGZyb20gdGhlIGVuZCBvZiB0aGUgYXJndW1lbnQgbGlzdCBoZXJlLiAgSXMgdGhpcyBp bnRlbnRpb25hbD8NCg0KVGhhbmtzIGZvciBwb2ludGluZyBpdCBvdXQuIE5vIGl0IHdhcyBub3Qg aW50ZW50aW9uYWwsIEkgdGhpbmsgY2hhbmdlIGludHJvZHVjZSB3aGlsZSBmaXhpbmcgY29uZmxp Y3RzLiBXaWxsIHJldmVydCBpdC4gDQoNCj4gSSB0aGluayB3ZSBzaG91bGQgZG8gX3NvbWV0aGlu Z18gd2l0aCB0aGUgc3RyaWRlLCBnaXZlbiBob3cgY2xvc2VseSByZWxhdGVkIGFycmF5cyBhbmQg c3RyaW5ncyBzZWVtIHRvIGJlLCBtYXliZSBqdXN0IHRoaXMgd291bGQgZG86DQoNCj4gIHByb3Ag PSB0eXBlLT5keW5fcHJvcCAoRFlOX1BST1BfQllURV9TVFJJREUpOw0KPiAgaWYgKHByb3AgIT0g bnVsbHB0ciAmJiB0eXBlLT5jb2RlICgpID09IFRZUEVfQ09ERV9TVFJJTkcpDQo+ICAgIHsNCj4g ICAgICBwcm9wID0gbnVsbHB0cjsNCj4gICAgICB3YXJuaW5nIChfKCJieXRlIHN0cmlkZSBwcm9w ZXJ0eSBpZ25vcmVkIG9uIHN0cmluZyB0eXBlIikpOw0KPiAgICB9DQoNCldpbGwgYWRkIGl0IGFu ZCB3aWxsIGhvcGVmdWxseSB0cnkgdG8gdGVzdCBhbmQgdGhlbiBwdXNoIHRoZSBjaGFuZ2VzIGZv ciByZXZpZXcgdG9kYXkuDQoNClRoYW5rcyAmIEJlc3QgUmVnYXJkcywNCkFiZHVsIEJhc2l0DQoN Ci0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBBbmRyZXcgQnVyZ2VzcyA8YW5kcmV3 LmJ1cmdlc3NAZW1iZWNvc20uY29tPiANClNlbnQ6IFdlZG5lc2RheSwgQXVndXN0IDI1LCAyMDIx IDEwOjM3IEFNDQpUbzogSWpheiwgQWJkdWwgQiA8YWJkdWwuYi5pamF6QGludGVsLmNvbT4NCkNj OiBhYmR1bC5iLmlqYXogPGFiaWphekBlY3NtdHAuaXVsLmludGVsLmNvbT47IGdkYi1wYXRjaGVz QHNvdXJjZXdhcmUub3JnDQpTdWJqZWN0OiBSZTogW1BBVENIIDEvMV0gZ2RiOiBGaXggYXJyYXlz IG9mIHZhcmlhYmxlIGxlbmd0aCBzdHJpbmdzIGZvciBGT1JUUkFODQoNCiogSWpheiwgQWJkdWwg QiA8YWJkdWwuYi5pamF6QGludGVsLmNvbT4gWzIwMjEtMDgtMjMgMDg6NDc6NDYgKzAwMDBdOg0K DQo+ID4gR0RCIGlzIG5vdCBhYmxlIHRvIHByaW50IGFycmF5cyBvZiBGT1JUUkFOIHZhcmlhYmxl IGxlbmd0aCBzdHJpbmdzIA0KPiA+IHdoZW4gZHdhcmYgaW5mbyBjb250YWlucyBEV19BVF9zdHJp bmdfbGVuZ3RoIG9ubHkgcmVnYXJkaW5nIHRoZSANCj4gPiBzdHJpbmcgbGVuZ3RoIGluZm9ybWF0 aW9uLiAgU28gaGFuZGluZyBvZiBkeW5hbWljIGFycmF5IGlzIHVwZGF0ZWQgDQo+ID4gdG8gaGFu ZGxlIHN1Y2ggY2FzZXMuDQo+IA0KPiBUaGFua3MgZm9yIHdvcmtpbmcgb24gdGhpcy4gIEkgaGF2 ZSBzb21lIGZlZWRiYWNrLCBzZWUgYmVsb3cuLi4NCj4gPj4gVGhhbmtzIEFuZHJldyBmb3IgdGhl IGZlZWRiYWNrLiBJIGFkZGVkIG15IHJlc3BvbnNlIGJlbG93LiBDYW4geW91IHBsZWFzZSByZXZp ZXcgaWYgaXQgbG9va3MgZmluZSB0byB5b3Ugc28gSSB3aWxsIHVwZGF0ZSBpdCBhY2NvcmRpbmds eS4gDQo+IA0KPiA+IA0KPiA+IFN1cHBvc2Ugd2UgaGF2ZQ0KPiA+IA0KPiA+IHN1YnJvdXRpbmUg dmxhX2FycmF5IChhcnIxLCBhcnIyKQ0KPiA+ICAgY2hhcmFjdGVyIChsZW49Kik6OiBhcnIxICg6 KQ0KPiA+ICAgY2hhcmFjdGVyIChsZW49NSk6OiBhcnIyICg6KQ0KPiA+IA0KPiA+ICAgcHJpbnQg KiwgYXJyMSAhIGJyZWFrLWhlcmUNCj4gPiAgIHByaW50ICosIGFycjINCj4gPiBlbmQgc3Vicm91 dGluZSB2bGFfYXJyYXkNCj4gPiANCj4gPiBUaGUgInByaW50IGFycjEiIGFuZCAicHJpbnQgYXJy MiIgY29tbWFuZCBhdCB0aGUgImJyZWFrLWhlcmUiIGxpbmUgDQo+ID4gZ2l2ZXMgdGhlIGZvbGxv d2luZyBvdXRwdXQ6DQo+ID4gDQo+ID4gKGdkYikgcHJpbnQgYXJyMQ0KPiA+ICQxID0gKDxlcnJv ciByZWFkaW5nIHZhcmlhYmxlPg0KPiA+IChnZGIpIHByaW50IGFycjINCj4gPiAkMiA9ICgnYWJj ZGUnLCAnYWJjZGUnLCAnYWJjZGUnKQ0KPiA+IChnZGIpIHB0eXBlIGFycjENCj4gPiB0eXBlID0g Y2hhcmFjdGVyKigqKSAoNSkNCj4gPiAoZ2RiKSBwdHlwZSBhcnIyDQo+ID4gdHlwZSA9IGNoYXJh Y3Rlcio1ICgzKQ0KPiA+IA0KPiA+IFNvIEdEQiBpcyBhYmxlIHRvIHByaW50IHRoZSBhcnJheSBv ZiBzdHJpbmcgd2l0aCBzdGF0aWMgbGVuZ3RoIGJ1dCANCj4gPiBmb3IgdmFyaWFibGUgbGVuZ3Ro IGl0IGZhaWwgdG8gZG8gc28uICBGb3IgdGhpcyBjYXNlIG5vdyBpbXByb3ZlIA0KPiA+IGhhbmRs aW5nIG9mIHRoZSBUWVBFX0NPREVfU1RSSU5HIGNvZGUgaW4gZHluYW1pYyBhcnJheSBsZW5ndGgg DQo+ID4gcmVzb2x2aW5nIGZ1bmN0aW9uIHRvIHNldCB0aGUgc3RhdGljIGxlbmd0aCBvZiBzdHJp bmdzIGFzIHdlbGwgd2hlbiANCj4gPiBvbmx5IERXX0FUX3N0cmluZ19sZW5ndGggaXMgZ2l2ZW4g aW4gdGhlIGR3YXJmIGluZm8uDQo+ID4gDQo+ID4gRHdhcmYgaW5mbyB1c2luZyBJbnRlbMKuIEZv cnRyYW4gQ29tcGlsZXIgZm9yIHN1Y2ggY2FzZSBjb250YWlucyBmb2xsb3dpbmc6DQo+ID4gIDwx PjxmZD46IEFiYnJldiBOdW1iZXI6IDEyIChEV19UQUdfc3RyaW5nX3R5cGUpDQo+ID4gICAgIDxm ZT4gICBEV19BVF9uYW1lICAgICAgICA6IChpbmRpcmVjdCBzdHJpbmcsIG9mZnNldDogMHhkMik6 IC5zdHIuQVJSMQ0KPiA+ICAgICA8MTAyPiAgIERXX0FUX3N0cmluZ19sZW5ndGg6IDMgYnl0ZSBi bG9jazogOTcgMjMgOCAJKERXX09QX3B1c2hfb2JqZWN0X2FkZHJlc3M7IERXX09QX3BsdXNfdWNv bnN0OiA4KQ0KPiANCj4gSSBkb24ndCB0aGluayB0aGUgZXh0cmEgaW5kZW50YXRpb24gYmVmb3Jl ICJEV19BVF9zdHJpbmdfbGVuZ3RoIiBpcyBjb3JyZWN0IGhlcmUsIHRoaXMgYXR0cmlidXRlIGlz IGEgY2hpbGQgb2YgdGhlIERXX1RBR19zdHJpbmdfdHlwZSwgcmlnaHQ/ICBOb3QgYSBjaGlsZCBv ZiB0aGUgRFdfQVRfbmFtZS4NCj4gDQo+ID4+IFRoaXMgaXMgb3V0cHV0IG9mIHJlYWRlbGYgYWxz byB0aGVyZSBpcyBubyBleHRyYSBpbmRlbnRhdGlvbiBiZWZvcmUgDQo+ID4+ICJEV19BVF9zdHJp bmdfbGVuZ3RoIi4gRFdfQVRfbmFtZSBoYXMgMiBkaWdpdHMgaW4gZnJvbnQgPGZlPiB3aGlsZSAN Cj4gPj4gRFdfQVRfc3RyaW5nX2xlbmd0IGhhcyAzICI8MTAyPiIgc28gdGhpcyBpcyAxIG1vcmUg dG8gcmlnaHQuIFllcyANCj4gPj4gIkRXX0FUX3N0cmluZ19sZW5ndGgiIGlzIGEgY2hpbGQgb2Yg dGhlIERXX1RBR19zdHJpbmdfdHlwZS4NCg0KQWgsIE9LIHRoYXQgbWFrZXMgc2Vuc2UuICBObyBu ZWVkIHRvIGNoYW5nZSBhbnl0aGluZyB0aGVuLg0KDQo+IA0KPiANCj4gPiANCj4gPiBBZnRlciBm aXhpbmcgaXQgYW5kIGNvbXBpbGluZyB1c2luZyBJbnRlbMKuIEZvcnRyYW4gQ29tcGlsZXIgbm93 IGdkYiANCj4gPiBzaG93cw0KPiA+IGZvbGxvd2luZzoNCj4gPiANCj4gPiAoZ2RiKSBwIGFycjEN Cj4gPiAkMSA9ICgnYWJkZGVmZ2hpaicsICdhYmRkZWZnaGlqJywgJ2FiZGRlZmdoaWonLCAnYWJk ZGVmZ2hpaicsDQo+ID4gJ2FiZGRlZmdoaWonKQ0KPiA+IChnZGIpIHAgYXJyMg0KPiA+ICQyID0g KCdhYmNkZScsICdhYmNkZScsICdhYmNkZScpDQo+ID4gKGdkYikgcHR5cGUgYXJyMQ0KPiA+IHR5 cGUgPSBjaGFyYWN0ZXIqMTAgKDUpDQo+ID4gKGdkYikgcHR5cGUgYXJyMg0KPiA+IHR5cGUgPSBj aGFyYWN0ZXIqNSAoMykNCj4gPiANCj4gPiBnZGIvQ2hhbmdlTG9nOg0KPiA+IDIwMjEtMDgtMjAg IEFiZHVsIEJhc2l0IElqYXogIDxhYmR1bC5iLmlqYXpAaW50ZWwuY29tPg0KPiA+IA0KPiA+IAkq IGdkYnR5cGVzLmMgKHJlc29sdmVfZHluYW1pY19hcnJheV9vcl9zdHJpbmcpOiBJbXByb3ZlIGhh bmRsaW5nDQo+ID4gCW9mIFRZUEVfQ09ERV9TVFJJTkcgY29kZSB0byB1c2UgcmV0dXJuIHZhbHVl IG9mIGNyZWF0ZV9zdHJpbmdfdHlwZQ0KPiA+IAlvdXRjb21lIGZvciB0aGlzIGNhc2UuDQo+ID4g CSogYy12YWxwcmludC5jIChjX3ZhbHVlX3ByaW50X2lubmVyKTogSGFuZGxlIFN0cmluZyB0eXBl IGNvZGUNCj4gPiAJaW4gdGhlIHNhbWUgd2F5IGFzIHRoZSBBcnJheSB0eXBlIGNvZGUuDQo+ID4g DQo+ID4gZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQo+ID4gMjAyMS0wOC0yMCAgQWJkdWwgQmFz aXQgSWpheiAgPGFiZHVsLmIuaWphekBpbnRlbC5jb20+DQo+ID4gDQo+ID4gCSogZ2RiLmZvcnRy YW4vdmxhLWFycmF5LmY5MDogTmV3IGZpZS4NCj4gPiAJKiBnZGIuZm9ydHJhbi92bGEtYXJyYXku ZXhwOiBOZXcgZmllLg0KPiA+IA0KPiA+IDIwMjEtMDgtMjAgQWJkdWwgQmFzaXQgSWpheiA8YWJk dWwuYi5pamF6QGludGVsLmNvbT4NCj4gPiAtLS0NCj4gPiAgZ2RiL2MtdmFscHJpbnQuYyAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDEgKw0KPiA+ICBnZGIvZ2RidHlwZXMuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAxMiArKysrLS0NCj4gPiAgZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi92bGEtYXJyYXkuZXhwIHwgNTcNCj4gPiArKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4g IGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWFycmF5LmY5MCB8IDQ0ICsrKysrKysrKysr KysrKysrKysNCj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAxMTAgaW5zZXJ0aW9ucygrKSwgNCBkZWxl dGlvbnMoLSkgIGNyZWF0ZSBtb2RlDQo+ID4gMTAwNjQ0IGdkYi90ZXN0c3VpdGUvZ2RiLmZvcnRy YW4vdmxhLWFycmF5LmV4cA0KPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtYXJyYXkuZjkwDQo+ID4gDQo+ID4gZGlmZiAtLWdpdCBhL2dkYi9jLXZh bHByaW50LmMgYi9nZGIvYy12YWxwcmludC5jIGluZGV4DQo+ID4gOWM4Mjg2OTUyNWYuLmU1YThl MTIyNjc2IDEwMDY0NA0KPiA+IC0tLSBhL2dkYi9jLXZhbHByaW50LmMNCj4gPiArKysgYi9nZGIv Yy12YWxwcmludC5jDQo+ID4gQEAgLTQyNiw2ICs0MjYsNyBAQCBjX3ZhbHVlX3ByaW50X2lubmVy IChzdHJ1Y3QgdmFsdWUgKnZhbCwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2Us DQo+ID4gICAgc3dpdGNoICh0eXBlLT5jb2RlICgpKQ0KPiA+ICAgICAgew0KPiA+ICAgICAgY2Fz ZSBUWVBFX0NPREVfQVJSQVk6DQo+ID4gKyAgICBjYXNlIFRZUEVfQ09ERV9TVFJJTkc6DQo+ID4g ICAgICAgIGNfdmFsdWVfcHJpbnRfYXJyYXkgKHZhbCwgc3RyZWFtLCByZWN1cnNlLCBvcHRpb25z KTsNCj4gPiAgICAgICAgYnJlYWs7DQo+IA0KPiBJIGRvbid0IHVuZGVyc3RhbmQgd2hhdCBwYXJ0 IHRoaXMgY2hhbmdlIHBsYXlzIGluIHRoaXMgcGF0Y2guICBJIGNhbiBzZWUgYmVsb3cgaG93IHlv dSdyZSBub3cgY3JlYXRpbmcgdmFsdWVzIHdpdGggVFlQRV9DT0RFX1NUUklORyBpbnN0ZWFkIG9m IFRZUEVfQ09ERV9BUlJBWSwgYnV0IHRoZW4gSSdkIGV4cGVjdCB0aGVzZSB0byBiZSBjb3ZlcmVk IGJ5IHRoZSBleGlzdGluZyBoYW5kbGluZyBvZiBUWVBFX0NPREVfU1RSSU5HIGluIGZfbGFuZ3Vh Z2U6OnZhbHVlX3ByaW50X2lubmVyLg0KPiANCj4gT2YgY291cnNlLCBpZiB5b3UgZm9yY2VkIHRo ZSBsYW5ndWFnZSB0byBDIHdoaWxlIGluc2lkZSB0aGUgRm9ydHJhbiBmcmFtZSBhbmQgdHJpZWQg dG8gcHJpbnQgdGhlIHN0cmluZyB2YWx1ZSB0aGVuIEkgZ3Vlc3MgbWF5YmUgeW91J2QgaGl0IHRo aXMgY2FzZSwgYnV0IEkgZG9uJ3QgdGhpbmsgeW91ciB0ZXN0IGRvZXMgdGhpcywgYW5kIGlmIHRo YXQgaXMgdGhlIGNhc2UgeW91J3JlIGNvdmVyaW5nIGhlcmUgaXQgbWlnaHQgYmUgd29ydGggc3Bs aXR0aW5nIHRoaXMgaW50byBhIHNlcGFyYXRlIGNvbW1pdCB0byBtYWtlIHRoZSBzcGxpdCBjcnlz dGFsIGNsZWFyLg0KPiANCj4gPj4gQWN0dWFsbHkgdGhpcyBwYXJ0IHdhcyBvbmx5IG1vZGlmaWVk IHNpbmNlIGFmdGVyIGZpeGlnIHRoZSBpc3N1ZSANCj4gPj4gdGVzdCAiZ2RiLmZvcnRyYW4vbWl4 ZWQtbGFuZy1zdGFjay5leHAiIGhhcyBzaG93biByZWdyZXNzaW9uIGZvciANCj4gPj4gZXhhY3Rs eSB0aGUgc2FtZSBzY2VuYXJpbyB5b3UgbWVudGlvbmVkICJmb3JjZWQgdGhlIGxhbmd1YWdlIHRv IEMgDQo+ID4+IHdoaWxlIGluc2lkZSB0aGUgRm9ydHJhbiBmcmFtZSIgc28gdGhhdCBpcyB3aHkg aXQgd2FzIHVwZGF0ZWQgaW4gDQo+ID4+IHRoZSBzYW1lIHBhdGNoIGFuZCB0aGlzIGNoYW5nZSBp cyBjb3ZlciBieSB0aGlzIHRlc3QgDQo+ID4+ICJnZGIuZm9ydHJhbi9taXhlZC1sYW5nLXN0YWNr LmV4cCIgYWxyZWFkeS4gIFNvIHBsZWFzZSBsZXQgbWUga25vdyANCj4gPj4gc2hhbGwgd2UgbW92 ZSBpdCB0byBzZXBhcmF0ZSBwYXRjaC4NCg0KWW91IHNob3VsZCBkZWZpbml0ZWx5IG1lbnRpb24g dGhpcyBpbiB0aGUgY29tbWl0IG1lc3NhZ2UgSSB0aGluaywgaWRlYWxseSwganVzdCBtZW50aW9u IHdoaWNoIHRlc3Qgc2hvd2VkIHRoZSByZWdyZXNzaW9uIGFuZCB3aHkgKGUuZy4gcHJpbnRpbmcg YSBGb3J0cmFuIHZhcmlhYmxlIHdoaWxlIHRoZSBsYW5ndWFnZSBpcyBmb3JjZWQgdG8gQykuDQoN Cj4gDQo+IA0KPiANCj4gPiAgDQo+ID4gZGlmZiAtLWdpdCBhL2dkYi9nZGJ0eXBlcy5jIGIvZ2Ri L2dkYnR5cGVzLmMgaW5kZXggDQo+ID4gNzRhZDVkNmY3ZmUuLjE0NDRjNWZlYjZjIDEwMDY0NA0K PiA+IC0tLSBhL2dkYi9nZGJ0eXBlcy5jDQo+ID4gKysrIGIvZ2RiL2dkYnR5cGVzLmMNCj4gPiBA QCAtMjMxMiw4ICsyMzEyLDkgQEAgcmVzb2x2ZV9keW5hbWljX2FycmF5X29yX3N0cmluZyAoc3Ry dWN0IHR5cGUgKnR5cGUsDQo+ID4gICAgcmFuZ2VfdHlwZSA9IHJlc29sdmVfZHluYW1pY19yYW5n ZSAocmFuZ2VfdHlwZSwgYWRkcl9zdGFjaywgDQo+ID4gcmVzb2x2ZV9wKTsNCj4gPiAgDQo+ID4g ICAgYXJ5X2RpbSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpKTsNCj4g PiAtICBpZiAoYXJ5X2RpbSAhPSBOVUxMICYmIGFyeV9kaW0tPmNvZGUgKCkgPT0gVFlQRV9DT0RF X0FSUkFZKQ0KPiA+IC0gICAgZWx0X3R5cGUgPSByZXNvbHZlX2R5bmFtaWNfYXJyYXlfb3Jfc3Ry aW5nIChhcnlfZGltLCBhZGRyX3N0YWNrLCByZXNvbHZlX3ApOw0KPiA+ICsgIGlmIChhcnlfZGlt ICE9IE5VTEwgJiYgKGFyeV9kaW0tPmNvZGUgKCkgPT0gVFlQRV9DT0RFX0FSUkFZDQo+ID4gKyAg ICAgIHx8IGFyeV9kaW0tPmNvZGUgKCkgPT0gVFlQRV9DT0RFX1NUUklORykpDQo+IA0KPiA+PiBX aWxsIHVwZGF0ZSB0aGUgaW5kZW50YXRpb24gbGlrZSB5b3UgcG9pbnRlZCBvdXQgaW4gc2Vjb25k IGVtYWlsLg0KPiANCj4gDQo+ID4gKyAgICBlbHRfdHlwZSA9IHJlc29sdmVfZHluYW1pY19hcnJh eV9vcl9zdHJpbmcgKGFyeV9kaW0sIA0KPiA+ICsgYWRkcl9zdGFjayk7DQoNCkkgbm90aWNlZCB5 b3UgZHJvcHBlZCBgcmVzb2x2ZV9wYCBmcm9tIHRoZSBlbmQgb2YgdGhlIGFyZ3VtZW50IGxpc3Qg aGVyZS4gIElzIHRoaXMgaW50ZW50aW9uYWw/DQoNCj4gPiAgICBlbHNlDQo+ID4gICAgICBlbHRf dHlwZSA9IFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpOw0KPiA+ICANCj4gPiBAQCAtMjMzNyw4ICsy MzM4LDExIEBAIHJlc29sdmVfZHluYW1pY19hcnJheV9vcl9zdHJpbmcgKHN0cnVjdCB0eXBlICp0 eXBlLA0KPiA+ICAgIGVsc2UNCj4gPiAgICAgIGJpdF9zdHJpZGUgPSBUWVBFX0ZJRUxEX0JJVFNJ WkUgKHR5cGUsIDApOw0KPiA+ICANCj4gPiAtICByZXR1cm4gY3JlYXRlX2FycmF5X3R5cGVfd2l0 aF9zdHJpZGUgKHR5cGUsIGVsdF90eXBlLCByYW5nZV90eXBlLCBOVUxMLA0KPiA+IC0JCQkJCWJp dF9zdHJpZGUpOw0KPiA+ICsgIGlmICh0eXBlLT5jb2RlICgpID09IFRZUEVfQ09ERV9TVFJJTkcp DQo+ID4gKyAgICByZXR1cm4gY3JlYXRlX3N0cmluZ190eXBlICh0eXBlLCBlbHRfdHlwZSwgcmFu Z2VfdHlwZSk7DQo+IA0KPiBJIHdvbmRlciBpZiB3ZSBzaG91bGQgYmUgZG9pbmcgYW55dGhpbmcg d2l0aCB0aGUgYml0X3N0cmlkZSBoZXJlPyAgSSdtIG5vdCBzdXJlIGlmIGl0IG1ha2VzIHNlbnNl IGZvciB0aGUgYml0X3N0cmlkZSB0byBiZSBhbnl0aGluZyBvdGhlciB0aGFuIHplcm8sIGJ1dCBh dCB0aGUgdmVyeSBsZWFzdCBpdCBmZWVscyBsaWtlIHdlIHNob3VsZCB0aHJvdyBhbiBlcnJvciBp ZiB0aGUgc3RyaWRlIGlzIG5vdCB6ZXJvIC4uLi4NCj4gDQo+ID4+IFJlZ2FyZGluZyBiaXRfc3Ry aWRlIGl0IGlzIG5vdCBuZWVkZWQgZm9yIHN0cmluZyB0eXBlLiAgU28gc2hhbGwgd2UgDQo+ID4+ IGNhbiBwdXQgYSBjaGVjayB0byB0cnkgcmVhZGluZyBpdCBvbmx5IGZvciBhcnJheSB0eXBlIG9u bHkgc2luY2UgaXQgDQo+ID4+IHdpbGwgbm90IGJlIG5lZWRlZCBmb3Igc3RyaW5nIHR5cGUgaW5z dGVhZCBvZiB0aHJvd2luZyBlcnJvci4NCg0KSSB0aGluayB3ZSBzaG91bGQgZG8gX3NvbWV0aGlu Z18gd2l0aCB0aGUgc3RyaWRlLCBnaXZlbiBob3cgY2xvc2VseSByZWxhdGVkIGFycmF5cyBhbmQg c3RyaW5ncyBzZWVtIHRvIGJlLCBtYXliZSBqdXN0IHRoaXMgd291bGQgZG86DQoNCiAgcHJvcCA9 IHR5cGUtPmR5bl9wcm9wIChEWU5fUFJPUF9CWVRFX1NUUklERSk7DQogIGlmIChwcm9wICE9IG51 bGxwdHIgJiYgdHlwZS0+Y29kZSAoKSA9PSBUWVBFX0NPREVfU1RSSU5HKQ0KICAgIHsNCiAgICAg IHByb3AgPSBudWxscHRyOw0KICAgICAgd2FybmluZyAoXygiYnl0ZSBzdHJpZGUgcHJvcGVydHkg aWdub3JlZCBvbiBzdHJpbmcgdHlwZSIpKTsNCiAgICB9DQoNCmlmIHRoaXMgZXZlciBkb2VzIGNy b3AgdXAgd2UgY2FuIGZpZ3VyZSBvdXQgd2hhdCdzIGdvaW5nIG9uIHRoZW4uDQoNClRoYW5rcywN CkFuZHJldw0KDQo+IA0KPiANCj4gPiArICBlbHNlDQo+ID4gKyAgICByZXR1cm4gY3JlYXRlX2Fy cmF5X3R5cGVfd2l0aF9zdHJpZGUgKHR5cGUsIGVsdF90eXBlLCByYW5nZV90eXBlLCBOVUxMLA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0X3N0cmlkZSk7 DQo+ID4gIH0NCj4gPiAgDQo+ID4gIC8qIFJlc29sdmUgZHluYW1pYyBib3VuZHMgb2YgbWVtYmVy cyBvZiB0aGUgdW5pb24gVFlQRSB0byBzdGF0aWMgDQo+ID4gZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWFycmF5LmV4cA0KPiA+IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi92bGEtYXJyYXkuZXhwDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRl eCAwMDAwMDAwMDAwMC4uYTkyMjM1NzZiYmQNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtYXJyYXkuZXhwDQo+ID4gQEAgLTAsMCArMSw1 NyBAQA0KPiA+ICsjIENvcHlyaWdodCAyMDIxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j Lg0KPiA+ICsNCj4gPiArIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIA0KPiA+ICttb2RpZnkgIyBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIA0KPiA+ICtwdWJsaXNoZWQgYnkg IyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIA0KPiA+ ICt0aGUgTGljZW5zZSwgb3IgIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0K PiA+ICsjDQo+ID4gKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsICMgDQo+ID4gK2J1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mICMgDQo+ID4gK01FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgIyBHTlUg DQo+ID4gK0dlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCj4gPiArIw0K PiA+ICsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIA0KPiA+ICsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90 LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0KPiA+ICsNCj4gPiArc3RhbmRh cmRfdGVzdGZpbGUgIi5mOTAiDQo+ID4gK2xvYWRfbGliICJmb3J0cmFuLmV4cCINCj4gPiArDQo+ ID4gK2lmIHtbc2tpcF9mb3J0cmFuX3Rlc3RzXX0geyByZXR1cm4gLTEgfQ0KPiA+ICsNCj4gPiAr aWYgeyBbcHJlcGFyZV9mb3JfdGVzdGluZyAiZmFpbGVkIHRvIHByZXBhcmUiICR7dGVzdGZpbGV9 ICR7c3JjZmlsZX0gXA0KPiA+ICsgICAgIHtkZWJ1ZyBmOTAgcXVpZXR9XSB9IHsNCj4gPiArICAg IHJldHVybiAtMQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICtpZiAhW2ZvcnRyYW5fcnVudG9fbWFpbl0g ew0KPiA+ICsgICAgdW50ZXN0ZWQgImNvdWxkIG5vdCBydW4gdG8gbWFpbiINCj4gPiArICAgIHJl dHVybiAtMQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICsjIFRyeSB0byBhY2Nlc3MgdmxhIHN0cmluZyAv IHZsYSBzdHJpbmcgYXJyYXkgLyBzdHJpbmcgYXJyYXkgdmFsdWVzDQo+IA0KPiBGdWxsIHN0b3Ag YXQgdGhlIGVuZCBvZiB0aGUgY29tbWVudC4NCj4gPj4gV2lsbCBkbw0KPiANCj4gVGhhbmtzICYg QmVzdCBSZWdhcmRzLA0KPiBBYmR1bCBCYXNpdA0KPiANCj4gDQo+ID4gK2dkYl9icmVha3BvaW50 IFtnZGJfZ2V0X2xpbmVfbnVtYmVyICJhcnJfdmxhMS1wcmludCJdIA0KPiA+ICtnZGJfY29udGlu dWVfdG9fYnJlYWtwb2ludCAiYXJyX3ZsYTEtcHJpbnQiDQo+ID4gKw0KPiA+ICsjIEdGb3J0cmFu IGRvZXMgbm90IGVtaXQgRFdfVEFHX3N0cmluZ190eXBlIGZvciBhcnJheSBvZiB2YXJpYWJsZSAN Cj4gPiArbGVuZ3RoICMgc3RyaW5nLg0KPiA+ICtpZiBbdGVzdF9jb21waWxlcl9pbmZvICJnY2Mq Il0geyBzZXR1cF94ZmFpbCAqLSotKiBnY2MvMTAxODI2IH0gDQo+ID4gK2dkYl90ZXN0ICJwcmlu dCBhcnJfdmxhMSIgIFwNCj4gPiArICAgICIgPSBcXFwoJ3ZsYWFyeXZsYWFyeScsICd2bGFhcnl2 bGFhcnknLCAndmxhYXJ5dmxhYXJ5JywgJ3ZsYWFyeXZsYWFyeScsICd2bGFhcnl2bGFhcnknXFxc KSIgIFwNCj4gPiArICAgICJwcmludCB2bGEgc3RyaW5nIGFycmF5Ig0KPiA+ICsNCj4gPiAraWYg W3Rlc3RfY29tcGlsZXJfaW5mbyAiZ2NjKiJdIHsgc2V0dXBfeGZhaWwgKi0qLSogZ2NjLzEwMTgy NiB9IA0KPiA+ICtnZGJfdGVzdCAicHR5cGUgYXJyX3ZsYTEiICBcDQo+ID4gKyAgICAidHlwZSA9 IGNoYXJhY3RlclxcKjEyIFxcKDVcXCkiICBcDQo+ID4gKyAgICAicHJpbnQgdmFyaWFibGUgbGVu Z3RoIHN0cmluZyBhcnJheSB0eXBlIg0KPiA+ICtnZGJfdGVzdCAicHJpbnQgYXJyX3ZsYTIiICBc DQo+ID4gKyAgICAiID0gJ3ZsYWFyeSciICBcDQo+ID4gKyAgICAicHJpbnQgdmFyaWFibGUgbGVu Z3RoIHN0cmluZyINCj4gPiArZ2RiX3Rlc3QgInB0eXBlIGFycl92bGEyIiAgXA0KPiA+ICsgICAg InR5cGUgPSBjaGFyYWN0ZXJcXCo2IiAgXA0KPiA+ICsgICAgInByaW50IHZhcmlhYmxlIGxlbmd0 aCBzdHJpbmcgdHlwZSINCj4gPiArZ2RiX3Rlc3QgInByaW50IGFycjIiICBcDQo+ID4gKyAgICAi ID0gXFxcKCd2bGFhcnl2bGEnLCAndmxhYXJ5dmxhJywgJ3ZsYWFyeXZsYSdcXFwpIiAgXA0KPiA+ ICsgICAgInByaW50IHN0cmluZyBhcnJheSINCj4gPiArZ2RiX3Rlc3QgInB0eXBlIGFycjIiICBc DQo+ID4gKyAgICAidHlwZSA9IGNoYXJhY3RlclxcKjkgXFwoM1xcKSIgIFwNCj4gPiArICAgICJw cmludCBzdHJpbmcgYXJyYXkgdHlwZSINCj4gPiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtYXJyYXkuZjkwDQo+ID4gYi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS1hcnJheS5mOTANCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+IGluZGV4IDAwMDAw MDAwMDAwLi42MTJlODRmZTIxMw0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1hcnJheS5mOTANCj4gPiBAQCAtMCwwICsxLDQ0IEBADQo+ ID4gKyEgQ29weXJpZ2h0IDIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuDQo+ID4g KyENCj4gPiArISBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIA0KPiA+ICttb2RpZnkgISBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIA0KPiA+ICtwdWJsaXNoZWQgYnkgISB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIA0KPiA+ICt0aGUg TGljZW5zZSwgb3IgISAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KPiA+ICsh DQo+ID4gKyEgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsICEgDQo+ID4gK2J1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mICEgDQo+ID4gK01FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgISBHTlUgDQo+ID4g K0dlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCj4gPiArIQ0KPiA+ICsh IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlICEgDQo+ID4gK2Fsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0KPiA+ICsNCj4gPiArc3Vicm91dGluZSB2 bGFfYXJyYXlfZnVuYyAoYXJyX3ZsYTEsIGFycl92bGEyLCBhcnIyKQ0KPiA+ICsgIGNoYXJhY3Rl ciAobGVuPSopOjogYXJyX3ZsYTEgKDopDQo+ID4gKyAgY2hhcmFjdGVyIChsZW49Kik6OiBhcnJf dmxhMg0KPiA+ICsgIGNoYXJhY3RlciAobGVuPTkpOjogYXJyMiAoOikNCj4gPiArDQo+ID4gKyAg cHJpbnQgKiwgYXJyX3ZsYTEgICAgISBhcnJfdmxhMS1wcmludA0KPiA+ICsgIHByaW50ICosIGFy cl92bGEyDQo+ID4gKyAgcHJpbnQgKiwgYXJyMg0KPiA+ICtlbmQgc3Vicm91dGluZSB2bGFfYXJy YXlfZnVuYw0KPiA+ICsNCj4gPiArcHJvZ3JhbSB2bGFfYXJyYXlfbWFpbg0KPiA+ICtpbnRlcmZh Y2UNCj4gPiArICBzdWJyb3V0aW5lIHZsYV9hcnJheV9mdW5jIChhcnJfdmxhMSwgYXJyX3ZsYTIs IGFycjIpDQo+ID4gKyAgICBjaGFyYWN0ZXIgKGxlbj0qKTo6IGFycl92bGExICg6KQ0KPiA+ICsg ICAgY2hhcmFjdGVyIChsZW49Kik6OiBhcnJfdmxhMg0KPiA+ICsgICAgY2hhcmFjdGVyIChsZW49 OSk6OiBhcnIyICg6KQ0KPiA+ICsgIGVuZCBzdWJyb3V0aW5lIHZsYV9hcnJheV9mdW5jDQo+ID4g K2VuZCBpbnRlcmZhY2UNCj4gPiArICBjaGFyYWN0ZXIgKGxlbj05KSA6OiBhcnIxICgzKQ0KPiA+ ICsgIGNoYXJhY3RlciAobGVuPTYpIDo6IGFycjINCj4gPiArICBjaGFyYWN0ZXIgKGxlbj0xMikg OjogYXJyMyAoNSkNCj4gPiArDQo+ID4gKyAgYXJyMSA9ICd2bGFhcnl2bGEnDQo+ID4gKyAgYXJy MiA9ICd2bGFhcnknDQo+ID4gKyAgYXJyMyA9ICd2bGFhcnl2bGFhcnknDQo+ID4gKw0KPiA+ICsg IGNhbGwgdmxhX2FycmF5X2Z1bmMgKGFycjMsIGFycjIsIGFycjEpDQo+ID4gKw0KPiA+ICtlbmQg cHJvZ3JhbSB2bGFfYXJyYXlfbWFpbg0KPiA+IC0tDQo+ID4gMi4zMS4xDQo+ID4NCj4gIA0KPiBJ bnRlbCBEZXV0c2NobGFuZCBHbWJIDQo+IFJlZ2lzdGVyZWQgQWRkcmVzczogQW0gQ2FtcGVvbiAx MCwgODU1NzkgTmV1YmliZXJnLCBHZXJtYW55DQo+IFRlbDogKzQ5IDg5IDk5IDg4NTMtMCwgd3d3 LmludGVsLmRlIDxodHRwOi8vd3d3LmludGVsLmRlPiBNYW5hZ2luZyANCj4gRGlyZWN0b3JzOiBD aHJpc3RpbiBFaXNlbnNjaG1pZCwgU2hhcm9uIEhlY2ssIFRpZmZhbnkgRG9vbiBTaWx2YSANCj4g Q2hhaXJwZXJzb24gb2YgdGhlIFN1cGVydmlzb3J5IEJvYXJkOiBOaWNvbGUgTGF1IFJlZ2lzdGVy ZWQgT2ZmaWNlOiANCj4gTXVuaWNoIENvbW1lcmNpYWwgUmVnaXN0ZXI6IEFtdHNnZXJpY2h0IE11 ZW5jaGVuIEhSQiAxODY5MjgNCkludGVsIERldXRzY2hsYW5kIEdtYkgKUmVnaXN0ZXJlZCBBZGRy ZXNzOiBBbSBDYW1wZW9uIDEwLCA4NTU3OSBOZXViaWJlcmcsIEdlcm1hbnkKVGVsOiArNDkgODkg OTkgODg1My0wLCB3d3cuaW50ZWwuZGUgPGh0dHA6Ly93d3cuaW50ZWwuZGU+Ck1hbmFnaW5nIERp cmVjdG9yczogQ2hyaXN0aW4gRWlzZW5zY2htaWQsIFNoYXJvbiBIZWNrLCBUaWZmYW55IERvb24g U2lsdmEgIApDaGFpcnBlcnNvbiBvZiB0aGUgU3VwZXJ2aXNvcnkgQm9hcmQ6IE5pY29sZSBMYXUK UmVnaXN0ZXJlZCBPZmZpY2U6IE11bmljaApDb21tZXJjaWFsIFJlZ2lzdGVyOiBBbXRzZ2VyaWNo dCBNdWVuY2hlbiBIUkIgMTg2OTI4Cg==