From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web10.22299.1679066194371995084 for ; Fri, 17 Mar 2023 08:16:35 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=eYUaXD9z; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1679066194; x=1710602194; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=lj4gng/YZBAN/jR46Vf9K4BzL7e9KRQlHRNw8BgfLG0=; b=eYUaXD9zMChsznEZ/ofI6KTAJ9NKdn9YTUCMIWVAzTkNQCIFOPEbQFvY XGh3AbQC0fZVBXda1Dw0tDew/Xaz4xl5Nka3vqUMdIOfcUgaT9o9A1wfi ewlsHCYkXQ9Cw/EsRTJvL+kJG4GCyOFVkqeo6p85jh+Oqy14FhVFSVeym ccwinYD5p4nzwatJp9czy0l+5jzjgJZFzt633JZpSmudbUFYBd+pug2Wg QVHnN7RsbRC7EBGbbDcdsHhsBkvEyL0N91Aczt9Iknhn35WoeMww3xaRY QFmJ016cy29SkOUTvw+8l/797/Sl58wJZAleWNk1jH2LkRCnTsUPC2TRH A==; X-IronPort-AV: E=McAfee;i="6600,9927,10652"; a="400859335" X-IronPort-AV: E=Sophos;i="5.98,268,1673942400"; d="scan'208";a="400859335" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Mar 2023 08:16:33 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10652"; a="749284153" X-IronPort-AV: E=Sophos;i="5.98,268,1673942400"; d="scan'208";a="749284153" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmsmga004.fm.intel.com with ESMTP; 17 Mar 2023 08:16:33 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Fri, 17 Mar 2023 08:16:32 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) 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.2507.21 via Frontend Transport; Fri, 17 Mar 2023 08:16:32 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.40) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.21; Fri, 17 Mar 2023 08:16:32 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j6wkrudnaVdRXAsUBvmW6pkAqx/IbUmmkTDWpZBYC3YS9hUeQ21wLWI2jIClXqKx+9xSfNKZfeTU8ol9SeNRozaQ2wu6DFOhfEhzL7gjWhc2WLVr5AAf/dZ/Nify7DVkEtYsDEsNK9zJdBc7nlkXoxUos8dMPbhNsEHBnFBmTb1hWbGxbrPKaQCLRofwlmHStGZosNHi8N/gAvqdbjIBfIWZsGQc+5EQA/22+G8d7nVIlnLYeShHs/Ar4RRQYpTN0EQZaBeAjA+uB1E58FkZ5MRjjB7oMwbOZo6uV6lj6S4+LLlZFvp3UO6+rf45fQcN+1KGeG7KELgRJFsDw08TJw== 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=lj4gng/YZBAN/jR46Vf9K4BzL7e9KRQlHRNw8BgfLG0=; b=PfPM4EQ6hD1IiQi1y1CQwxifGDmZLVPVh2ZflCMjrbLaEMupkVL9Cobcj3zYb4InICt5WoWzH+lBm+SSsC3tyIboROeVnQ8lspuzsr4bzDuBY45vvFxMZbnMlv7qfoZzNhNFXgVGgUXQdtduZXIHpkMtNONeklil+eHC08JWcfHjkE95KnlzwGt6KY+mWfcIo8dvvyyUdkGAz3gX6QVsE8fU33hH++3mgv4QBEAkA0yh2Xlt9jOUMyOMo4f6vmMCEOXB/eqSwesO4XX9t78kxHKq6+zPlQF2warzh+VlJ+n/ayZp+nOMovW5MAwPTZ+gClkRyjHAzl7SuhDvdgMV/Q== 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 CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by DM4PR11MB6477.namprd11.prod.outlook.com (2603:10b6:8:88::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.35; Fri, 17 Mar 2023 15:16:29 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::76be:1164:2c1f:90a5]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::76be:1164:2c1f:90a5%7]) with mapi id 15.20.6178.019; Fri, 17 Mar 2023 15:16:29 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "rebecca@bsdio.com" , "Gao, Liming" , "Liu, Zhiguang" , Michael Kubacki , Sean Brogan CC: "Kinney, Michael D" Subject: Re: [edk2-devel] [PATCH 2/2] MdePkg: Update code to be more C11 compliant by using __func__ Thread-Topic: [edk2-devel] [PATCH 2/2] MdePkg: Update code to be more C11 compliant by using __func__ Thread-Index: AQHZPJ2VNe8UI+BAikOp0dPp3MMgFq7HWhmAgDJjlgCAATNkQIAEP1cAgAAchKA= Date: Fri, 17 Mar 2023 15:16:29 +0000 Message-ID: References: <20230209154507.81877-1-rebecca@quicinc.com> <20230209154507.81877-2-rebecca@quicinc.com> In-Reply-To: Accept-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: CO1PR11MB4929:EE_|DM4PR11MB6477:EE_ x-ms-office365-filtering-correlation-id: 9856ce38-24fb-45e1-7891-08db26fa958c x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: HmoufI5hHdHzgpFJLVuf8QQrR7qWvQZQjtlxePq9m+JwbAbJCMPI0gguZifNJ6DynvVLqZxEnWHdciJjKEiKdo3Ug1aIcvUjYLmr4J6Qzzp9MMl9/XxpgcHBK+2x818Eq18fQUTnAsLE0yQ3AAaSS+I/BedmA+kcBZ+XVD8LoBQCmDMy83yI9TEi2cvYguWvtguJ9YMZul87liQtSWfk0esntcupni5jgo3gIPaCpcezJNPADR+pBphUXY678lH5WVVRENI5Eus2H/BErFZR/+PfLTmP3+MNdgYtvCg3HiidOCYTD45xudW/65U3N0YfjrP5JFQI2SlPy8NfIw5bMLLuFjGlZDRov/6txRKt2Gezhudhc+oBb3cCMOVTaiDJdt6iEZUIDyPT2Ows0uJwKHH82F0gOakjjmA/HRa+35oA0fa+JcEviea1KIoVVMefVXhxQesO0ssN/LYzFokAaaPWGwdtUpfYq6gNJdweV8solOK4e4NgFslRzO65sMjDHAr+noyef1v19MsUnfs5DdYeC+aOk96ngNr1GQxjalP2PEUPA4CNUkzSakr3rdTbSTE/LF61Oq3jzIszrwedDBA/gYb2Ad1LRo55iOfFOSnf17ZIjBLNx5HZh8FgelV48PkKMshYono9ZWHdllKOM65hivviANfuHHSP8vy9r9PS6obvHmSFEC8KEQdDvBBVteoLyYDReX2fsN6M7+k8Oc8NifbcQ5o3GBQ0eM/o9DE= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(346002)(366004)(136003)(39860400002)(376002)(396003)(451199018)(8936002)(5660300002)(30864003)(4326008)(41300700001)(52536014)(82960400001)(55016003)(33656002)(86362001)(38070700005)(38100700002)(122000001)(15650500001)(2906002)(966005)(107886003)(83380400001)(478600001)(71200400001)(7696005)(186003)(26005)(66946007)(9686003)(6506007)(53546011)(316002)(76116006)(110136005)(64756008)(66446008)(66476007)(66556008)(66899018)(8676002)(19627235002)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?VmwxcVowVWFxL1ZVSFNmSkdBZW0vVUN2UFd0S2VTQ1BwdHdOSXV0TGRBeDBL?= =?utf-8?B?clpTMUtEYUpTbEZnaHM2VzJ3RHpQenFzS1lqOTZ1cElJZ2ZiSzdlSUpieG5P?= =?utf-8?B?Yk5HeURkTWdCb1FScTRDQ25RTHVsRVB6cVRFMFhTL0RuMkVoK0MvbitkaHdS?= =?utf-8?B?ZWVlZ3Y3U0RuU0VBaHlsYUFhNVp5OUFCTG5ONzJuUG9WWFpoUXZTKzdJdVpq?= =?utf-8?B?dFBaTU1ZN3dicUtNelpaL0ZxdjNONHI4WFp5clBxYit1T1ZoWlluVXB0VEN3?= =?utf-8?B?RzdEajRvOEp1UWpPQzQ4T1oxL21VT05FWGpxQ1l1S29yMlpWS1J0Zmk1ZEZO?= =?utf-8?B?TFlXZG9wcENSNFROSDZ6Vy95S2VDdTNhMG00OWxCY3k3a0NEMTJGYVpRWThC?= =?utf-8?B?L2YydEJMR1NFNUFxbzFWSm05bDlEMGVPVFlpRWd1ZU5ISWQ5VGxSMk5zUzZv?= =?utf-8?B?dVYyMFZidlBvSkMreWJSbUMwR2tyUW1xc3luZUZ1YVFtVDhJMHdFdERPb21L?= =?utf-8?B?dzVjcnljN01UWnBjbFYzeFpQNU40Z1NWNGtNY1h5UzE1L0hTbTZVRk82SE85?= =?utf-8?B?U2o5TisxQkhOeEkxeXZLYTYvRUlDVFlPNGhXL281Nm8ya09jcVNFelRTS3VN?= =?utf-8?B?VmpPdCtpc0Y0L2hqcElvajU0Z2xDNGhKQ1JqTWgzZGhadUptL0hmRXdGcEgx?= =?utf-8?B?T1ZIdk1WOXdiYVFFY1Z0UlljWkVUelFRV0ptb0xPV012aHBCKzVjc1ZJaGJL?= =?utf-8?B?cnpwUW9XNkxQZW1lUGdZemZmdUFTZmpOblArYzBwNTVhWGI5L3MwTjdtS1R2?= =?utf-8?B?ZzRZRHhaaDRkZmwwR1Y5WWc4TW9YSk9aRGxwaVJTdm1qK3I0ZTZrbXBjWmlq?= =?utf-8?B?dVA1bWNNczhWV041RXJUdm00QWQzd3JjcFE4Q3FwcHJqNUoySWpJZWJFYU5X?= =?utf-8?B?Ny9wUmpDelJsZm55UTdWRWt1TmVCVVd5WVcwdnI0dmZaY3JvYndCbTNCOEt6?= =?utf-8?B?WFBTY3hJMENUbEZDQVNFeXVWZC9vbU1uZ0xaeHozUmYyZnZKVmVuSlJvVlQy?= =?utf-8?B?NzlSUU9qejFGV0Q4Nzh0dWpVMDR5QXJmSkFJaG01YzVCaGFGU2E0QmxRZThm?= =?utf-8?B?WHgzWUdCSVZaVzV1OXBUeEpXNjFNTDlvRnRqOE5MaVdTcnlFaG1wRVpJQTE4?= =?utf-8?B?ZXZZZFZTTzVSdExoOHU2bHF4aWlyMEE1MlNwMkw1dFJpa2JobTZUbmZvYjhT?= =?utf-8?B?bG5aTnd3eWxVVzFPZDJJaHZTMWtDK3B4MURtdkg0bC9OM3U0OS9DTllhVVJQ?= =?utf-8?B?U3R5YS9UUXBzSkNGNk1DL0VGVk5UbXFwa0pDZWdCZFVQU0l1Z2FkbDBrbmtW?= =?utf-8?B?dE5BbXBrNU1oaFJSd3QrZXRCTUxFL0NndGRUenR2RXNINDkwUzdRZ1FSamJJ?= =?utf-8?B?ZkF2NzExUEpCQ2JGcG94bDJDLzZGczVLR1lwUEtlT1g0T1RDQ25kS014aTZh?= =?utf-8?B?RHJpSGE2Sml2SFl1cm8rUkdpL2N1R1hJSzRqaUFTRWI3TnQ1a2FIcUhXaThE?= =?utf-8?B?UnZ0NzJjc2dQS2RZQlJ6MlZzOEhCbVZ3SWJVaWI5YlJvdEl2RDNwaExnSEhY?= =?utf-8?B?OFZXYUNjZzR6QVB0RjFrRERGa0taNXA5NVA0V05xOWpLR1ppakk2Unh5K0R0?= =?utf-8?B?L0hldVRROUpoeW51dFJDSGxOUFc2ays5ZnQ2ajVpTmNOZWdTNWZwdGpMMnI0?= =?utf-8?B?dHdRanNzMGMyRmlGdVNmcTFzU1NOaEFBeC9TUEVsd2pTbjVwWEM2RlFvSkJG?= =?utf-8?B?N2s2Szk2aEJpbmZSUXorZU5hTlRiZDFkOFo0aGNBN3E4RzIvQVJJK2ZFeFI1?= =?utf-8?B?QjVFSjNDYm1pUHowSFRTVlFVQU5aSjJjWGF5NXZBcm1RQ1Z2N2F5aGhhTytq?= =?utf-8?B?N1JGN3VacFNlbWpPRzl2RnA1SWVkVkJpaWJndk9yeSsyTCtiT3dlWUwyVmlD?= =?utf-8?B?MXAwemR2c1FsWDlnNCt5cnlIb1NjQzRqMWZReG1iYk5jVkFJaS9qNFVCR3Jz?= =?utf-8?B?R0V1US9PVHpPQkRraUgva1g3S3NIQmJtZ0VlMDVBSlRiMnlCaHh3OXN0MVMz?= =?utf-8?B?U1Vzem13WUdUQzYrRGY2ajE0Z3k2KzcvcE5pSVhpcWhXL1NwV0Q3VUgxZnRW?= =?utf-8?B?WUE9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9856ce38-24fb-45e1-7891-08db26fa958c X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Mar 2023 15:16:29.5591 (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: /qzL3lt4iyyuNSd1zIbb8nv1eMuHHd51NJ3rAePplZbRh1aoLp3wMighfmMHI+JAnIm3Bu/HVOm3QGFcTEekF0TiuHXkiVZaAOcNPGu6ky8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB6477 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgUmViZWNjYSwNCg0KRm9yIG9sZGVyIGNvbXBpbGVycyB0aGF0IGRvIG5vdCBzdXBwb3J0IF9f ZnVuY19fLCBJIGJlbGlldmUgYSB3b3JrYXJvdW5kDQpjb3VsZCBiZSBhZGRlZCB0byBkZWZpbmUg X19mdW5jX18gdG8gX19GVU5DVElPTl9fLiAgV2UgZG8gbm90IG5lZWQgdG8gZG8NCnRoaXMgZm9y IGFueSBvZiB0aGVzZSBwYXRjaGVzLiAgSXQgY2FuIGJlIHNvbWV0aGluZyBjb25zdW1lcnMgY2Fu IGRvIGlmDQp0aGV5IHJlYWxseSB3YW50IHRvIHVzZSBhbiBvbGRlciBjb21waWxlci4NCg0KWW91 IGNhbiB0cnkgaXQgb3V0IG9uIFZTMjAxMiBsb2NhbGx5LiAgSWYgaXQgd29ya3MsIHRoZW4geW91 IGNhbiBtZW50aW9uDQp0aGF0IHdvcmthcm91bmQgaW4gdGhlIGNvbW1pdCBtZXNzYWdlLg0KDQpE byB3ZSBoYXZlIGFueSBpbmZvcm1hdGlvbiBvbiBHQ0MvQ0xBTkcgY29tcGF0aWJpbGl0eSBmb3Ig dGhpcyBmZWF0dXJlPw0KDQpNaWtlDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g RnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhh bGYgT2YgUmViZWNjYSBDcmFuDQo+IFNlbnQ6IEZyaWRheSwgTWFyY2ggMTcsIDIwMjMgNjozMiBB TQ0KPiBUbzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsg ZGV2ZWxAZWRrMi5ncm91cHMuaW87IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20u Y24+OyBMaXUsIFpoaWd1YW5nDQo+IDx6aGlndWFuZy5saXVAaW50ZWwuY29tPjsgTWljaGFlbCBL dWJhY2tpIDxtaWt1YmFja0BsaW51eC5taWNyb3NvZnQuY29tPjsgU2VhbiBCcm9nYW4gPHNlYW4u YnJvZ2FuQG1pY3Jvc29mdC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENI IDIvMl0gTWRlUGtnOiBVcGRhdGUgY29kZSB0byBiZSBtb3JlIEMxMSBjb21wbGlhbnQgYnkgdXNp bmcgX19mdW5jX18NCj4gDQo+ICgrTWljaGFlbCBLdWJhY2tpLCBTZWFuIEJyb2dhbikNCj4gDQo+ IE1pa2UsIE1pY2hhZWwsIFNlYW46DQo+IA0KPiANCj4gVGhpcyBjaGFuZ2UgaXMgZ29pbmcgdG8g YnJlYWsgYnVpbGRpbmcgZWRrMiB3aXRoIGFueXRoaW5nIG9sZGVyIHRoYW4NCj4gVmlzdWFsIFN0 dWRpbyAyMDE1LCB3aGljaCBpcyB3aGVyZSBzdXBwb3J0IGZvciBfX2Z1bmNfXyB3YXMgYWRkZWQu DQo+IA0KPiBJIGNoZWNrZWQgYW5kIGN1cnJlbnRseSBpdCBhcHBlYXJzIHRoYXQgVlMyMDEzIGJ1 aWxkcyBlZGsyIGJ1dCBWUzIwMTINCj4gaGFzIGVycm9ycy4gR2l2ZW4gdGhhdCB0aGUgc3R1YXJ0 IHRvb2xzIGRvbid0IHN1cHBvcnQgYW55dGhpbmcgb2xkZXINCj4gdGhhbiBWUzIwMTcgSSdtIHRo aW5raW5nIHRoaXMgaXMgb2theSwgYnV0IEkgd2FudCB0byBkb3VibGUgY2hlY2sgYmVmb3JlDQo+ IHB1c2hpbmcgdGhpcyBjaGFuZ2UuDQo+IA0KPiANCj4gLS0NCj4gDQo+IFJlYmVjY2EgQ3Jhbg0K PiANCj4gDQo+IE9uIDMvMTQvMjMgMjo0MCBQTSwgS2lubmV5LCBNaWNoYWVsIEQgd3JvdGU6DQo+ ID4gUmV2aWV3ZWQtYnk6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwu Y29tPg0KPiA+DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJv bTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYg T2YgUmViZWNjYSBDcmFuDQo+ID4+IFNlbnQ6IE1vbmRheSwgTWFyY2ggMTMsIDIwMjMgNzoyMCBQ TQ0KPiA+PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IEtpbm5leSwgTWljaGFlbCBEIDxtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT47IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5j b20uY24+Ow0KPiA+PiBMaXUsIFpoaWd1YW5nIDx6aGlndWFuZy5saXVAaW50ZWwuY29tPg0KPiA+ PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCAyLzJdIE1kZVBrZzogVXBkYXRlIGNv ZGUgdG8gYmUgbW9yZSBDMTEgY29tcGxpYW50IGJ5IHVzaW5nIF9fZnVuY19fDQo+ID4+DQo+ID4+ IE1pa2UsDQo+ID4+DQo+ID4+DQo+ID4+IEkgdGhpbmsgeW91ciBjb25jZXJucyB3aXRoIHRoaXMg cGF0Y2ggd2VyZSBhZGRyZXNzZWQ/DQo+ID4+DQo+ID4+IENvdWxkIHlvdSBhZGQgYSBSZXZpZXdl ZC1ieSBwbGVhc2U/DQo+ID4+DQo+ID4+DQo+ID4+IFRoYW5rcy4NCj4gPj4gUmViZWNjYQ0KPiA+ Pg0KPiA+Pg0KPiA+PiBPbiAyLzkvMjMgNjowMSBQTSwgTWljaGFlbCBEIEtpbm5leSB3cm90ZToN Cj4gPj4+IEhpIFJlYmVjY2EsDQo+ID4+Pg0KPiA+Pj4gRGlkIHRoaXMgcGFzcyBFREsgSUkgQ0k/ DQo+ID4+Pg0KPiA+Pj4gVGhpcyBjaGFuZ2UgZG9lcyBicmVhayBFQkMgY29tcGlsZXIgYnVpbGRz LiAgVGhlIGZvbGxvd2luZyBoYXMgdG8gYmUgYWRkZWQgdG8NCj4gPj4+IE1kZVBrZy9JbmNsdWRl L0ViYy9Qcm9jZXNzb3JCaW5kLmggaW4gb3JkZXIgdG8gdXNlIF9fZnVuY19fIGV2ZXJ5d2hlcmUu DQo+ID4+Pg0KPiA+Pj4gICAgICAgI2RlZmluZSBfX2Z1bmNfXyBfX0ZVTkNUSU9OX18NCj4gPj4+ DQo+ID4+PiBJIGFsc28gc2VlIF9fRlVOQ1RJT05fXyB1c2VkIGluIG1hbnkgcGFja2FnZXMuICBJ IGFtIHdvbmRlcmluZyBpZiB3ZSB3YW50DQo+ID4+PiB0byBkbyB0aGlzIGNsZWFuIHVwIGlmIGl0 IHNob3VsZCBiZSBpdHMgb3duIHBhdGNoIHNlcmllcyBhbmQgdXBkYXRlIGFsbA0KPiA+Pj4gcGFj a2FnZXMgaW4gb25jZSBzZXJpZXMuDQo+ID4+Pg0KPiA+Pj4gTWlrZQ0KPiA+Pj4NCj4gPj4+PiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBz LmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIFJlYmVjY2EgQ3Jhbg0KPiA+ Pj4+IFNlbnQ6IFRodXJzZGF5LCBGZWJydWFyeSA5LCAyMDIzIDc6NDUgQU0NCj4gPj4+PiBUbzog ZGV2ZWxAZWRrMi5ncm91cHMuaW87IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5 QGludGVsLmNvbT47IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+Ow0KPiA+ PiBMaXUsIFpoaWd1YW5nDQo+ID4+Pj4gPHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+DQo+ID4+Pj4g Q2M6IFJlYmVjY2EgQ3JhbiA8cmViZWNjYUBxdWljaW5jLmNvbT4NCj4gPj4+PiBTdWJqZWN0OiBb ZWRrMi1kZXZlbF0gW1BBVENIIDIvMl0gTWRlUGtnOiBVcGRhdGUgY29kZSB0byBiZSBtb3JlIEMx MSBjb21wbGlhbnQgYnkgdXNpbmcgX19mdW5jX18NCj4gPj4+Pg0KPiA+Pj4+IF9fRlVOQ1RJT05f XyBpcyBhIHByZS1zdGFuZGFyZCBleHRlbnNpb24gdGhhdCBnY2MgYW5kIFZpc3VhbCBDKysgYW1v bmcNCj4gPj4+PiBvdGhlcnMgc3VwcG9ydCwgd2hpbGUgX19mdW5jX18gd2FzIHN0YW5kYXJkaXpl ZCBpbiBDOTkuDQo+ID4+Pj4NCj4gPj4+PiBTaW5jZSBpdCdzIG1vcmUgc3RhbmRhcmQsIHJlcGxh Y2UgX19GVU5DVElPTl9fIHdpdGggX19mdW5jX18gdGhyb3VnaG91dA0KPiA+Pj4+IE1kZVBrZy4N Cj4gPj4+Pg0KPiA+Pj4+IFNpZ25lZC1vZmYtYnk6IFJlYmVjY2EgQ3JhbiA8cmViZWNjYUBxdWlj aW5jLmNvbT4NCj4gPj4+PiAtLS0NCj4gPj4+PiAgICBNZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1Bl cmZvcm1hbmNlTGliLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAxMiArKysrKystLS0tLS0NCj4gPj4+PiAgICBNZGVQa2cvSW5jbHVkZS9MaWJy YXJ5L1VuaXRUZXN0TGliLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAxOCArKysrKysrKystLS0tLS0NCj4gPj4gLS0tDQo+ID4+Pj4gICAg TWRlUGtnL0xpYnJhcnkvQmFzZUNhY2hlTWFpbnRlbmFuY2VMaWIvTG9vbmdBcmNoQ2FjaGUuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrLS0tDQo+ID4+Pj4gICAg TWRlUGtnL0xpYnJhcnkvQmFzZUNhY2hlTWFpbnRlbmFuY2VMaWIvUmlzY1ZDYWNoZS5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIgKysrKysrLS0tLS0tDQo+ID4+ Pj4gICAgTWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9TYWZlU3RyaW5nLmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0NCj4gPj4+PiAg ICBNZGVQa2cvTGlicmFyeS9CYXNlT3JkZXJlZENvbGxlY3Rpb25SZWRCbGFja1RyZWVMaWIvQmFz ZU9yZGVyZWRDb2xsZWN0aW9uUmVkQmxhY2tUcmVlTGliLmMgfCAgNCArKy0tDQo+ID4+Pj4gICAg TWRlUGtnL0xpYnJhcnkvRHhlUm5nTGliL0R4ZVJuZ0xpYi5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQgKysrKysrKy0tLS0tLS0NCj4g Pj4+PiAgICA3IGZpbGVzIGNoYW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygt KQ0KPiA+Pj4+DQo+ID4+Pj4gZGlmZiAtLWdpdCBhL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvUGVy Zm9ybWFuY2VMaWIuaCBiL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvUGVyZm9ybWFuY2VMaWIuaA0K PiA+Pj4+IGluZGV4IDM0ZWM5NTZiOWMwZS4uZDBmMmRmYjA3MGQ1IDEwMDY0NA0KPiA+Pj4+IC0t LSBhL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvUGVyZm9ybWFuY2VMaWIuaA0KPiA+Pj4+ICsrKyBi L01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvUGVyZm9ybWFuY2VMaWIuaA0KPiA+Pj4+IEBAIC01MjYs NyArNTI2LDcgQEAgTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudCAoDQo+ID4+Pj4gICAgI2RlZmlu ZSBQRVJGX0VWRU5UX1NJR05BTF9CRUdJTihFdmVudEd1aWQpIFwNCj4gPj4+PiAgICAgIGRvIHsg XA0KPiA+Pj4+ICAgICAgICBpZiAoTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudEVuYWJsZWQgKFBF UkZfR0VORVJBTF9UWVBFKSkgeyBcDQo+ID4+Pj4gLSAgICAgIExvZ1BlcmZvcm1hbmNlTWVhc3Vy ZW1lbnQgKCZnRWZpQ2FsbGVySWRHdWlkLCBFdmVudEd1aWQsIF9fRlVOQ1RJT05fXyAsIDAsIFBF UkZfRVZFTlRTSUdOQUxfU1RBUlRfSUQpOyBcDQo+ID4+Pj4gKyAgICAgIExvZ1BlcmZvcm1hbmNl TWVhc3VyZW1lbnQgKCZnRWZpQ2FsbGVySWRHdWlkLCBFdmVudEd1aWQsIF9fZnVuY19fICwgMCwg UEVSRl9FVkVOVFNJR05BTF9TVEFSVF9JRCk7IFwNCj4gPj4+PiAgICAgICAgfSBcDQo+ID4+Pj4g ICAgICB9IHdoaWxlIChGQUxTRSkNCj4gPj4+Pg0KPiA+Pj4+IEBAIC01NDIsNyArNTQyLDcgQEAg TG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudCAoDQo+ID4+Pj4gICAgI2RlZmluZSBQRVJGX0VWRU5U X1NJR05BTF9FTkQoRXZlbnRHdWlkKSBcDQo+ID4+Pj4gICAgICBkbyB7IFwNCj4gPj4+PiAgICAg ICAgaWYgKExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnRFbmFibGVkIChQRVJGX0dFTkVSQUxfVFlQ RSkpIHsgXA0KPiA+Pj4+IC0gICAgICBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgmZ0VmaUNh bGxlcklkR3VpZCwgRXZlbnRHdWlkLCBfX0ZVTkNUSU9OX18gLCAwLCBQRVJGX0VWRU5UU0lHTkFM X0VORF9JRCk7IFwNCj4gPj4+PiArICAgICAgTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudCAoJmdF ZmlDYWxsZXJJZEd1aWQsIEV2ZW50R3VpZCwgX19mdW5jX18gLCAwLCBQRVJGX0VWRU5UU0lHTkFM X0VORF9JRCk7IFwNCj4gPj4+PiAgICAgICAgfSBcDQo+ID4+Pj4gICAgICB9IHdoaWxlIChGQUxT RSkNCj4gPj4+Pg0KPiA+Pj4+IEBAIC01NTgsNyArNTU4LDcgQEAgTG9nUGVyZm9ybWFuY2VNZWFz dXJlbWVudCAoDQo+ID4+Pj4gICAgI2RlZmluZSBQRVJGX0NBTExCQUNLX0JFR0lOKFRyaWdnZXJH dWlkKSBcDQo+ID4+Pj4gICAgICBkbyB7IFwNCj4gPj4+PiAgICAgICAgaWYgKExvZ1BlcmZvcm1h bmNlTWVhc3VyZW1lbnRFbmFibGVkIChQRVJGX0dFTkVSQUxfVFlQRSkpIHsgXA0KPiA+Pj4+IC0g ICAgICBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgmZ0VmaUNhbGxlcklkR3VpZCwgVHJpZ2dl ckd1aWQsIF9fRlVOQ1RJT05fXyAsIDAsIFBFUkZfQ0FMTEJBQ0tfU1RBUlRfSUQpOyBcDQo+ID4+ Pj4gKyAgICAgIExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnQgKCZnRWZpQ2FsbGVySWRHdWlkLCBU cmlnZ2VyR3VpZCwgX19mdW5jX18gLCAwLCBQRVJGX0NBTExCQUNLX1NUQVJUX0lEKTsgXA0KPiA+ Pj4+ICAgICAgICB9IFwNCj4gPj4+PiAgICAgIH0gd2hpbGUgKEZBTFNFKQ0KPiA+Pj4+DQo+ID4+ Pj4gQEAgLTU3NCw3ICs1NzQsNyBAQCBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgNCj4gPj4+ PiAgICAjZGVmaW5lIFBFUkZfQ0FMTEJBQ0tfRU5EKFRyaWdnZXJHdWlkKSBcDQo+ID4+Pj4gICAg ICBkbyB7IFwNCj4gPj4+PiAgICAgICAgaWYgKExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnRFbmFi bGVkIChQRVJGX0dFTkVSQUxfVFlQRSkpIHsgXA0KPiA+Pj4+IC0gICAgICBMb2dQZXJmb3JtYW5j ZU1lYXN1cmVtZW50ICgmZ0VmaUNhbGxlcklkR3VpZCwgVHJpZ2dlckd1aWQsIF9fRlVOQ1RJT05f XyAsIDAsIFBFUkZfQ0FMTEJBQ0tfRU5EX0lEKTsgXA0KPiA+Pj4+ICsgICAgICBMb2dQZXJmb3Jt YW5jZU1lYXN1cmVtZW50ICgmZ0VmaUNhbGxlcklkR3VpZCwgVHJpZ2dlckd1aWQsIF9fZnVuY19f ICwgMCwgUEVSRl9DQUxMQkFDS19FTkRfSUQpOyBcDQo+ID4+Pj4gICAgICAgIH0gXA0KPiA+Pj4+ ICAgICAgfSB3aGlsZSAoRkFMU0UpDQo+ID4+Pj4NCj4gPj4+PiBAQCAtNTg5LDcgKzU4OSw3IEBA IExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnQgKA0KPiA+Pj4+ICAgICNkZWZpbmUgUEVSRl9GVU5D VElPTl9CRUdJTigpIFwNCj4gPj4+PiAgICAgIGRvIHsgXA0KPiA+Pj4+ICAgICAgICBpZiAoTG9n UGVyZm9ybWFuY2VNZWFzdXJlbWVudEVuYWJsZWQgKFBFUkZfR0VORVJBTF9UWVBFKSkgeyBcDQo+ ID4+Pj4gLSAgICAgIExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnQgKCZnRWZpQ2FsbGVySWRHdWlk LCBOVUxMLCBfX0ZVTkNUSU9OX18gLCAwLCBQRVJGX0ZVTkNUSU9OX1NUQVJUX0lEKTsgXA0KPiA+ Pj4+ICsgICAgICBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgmZ0VmaUNhbGxlcklkR3VpZCwg TlVMTCwgX19mdW5jX18gLCAwLCBQRVJGX0ZVTkNUSU9OX1NUQVJUX0lEKTsgXA0KPiA+Pj4+ICAg ICAgICB9IFwNCj4gPj4+PiAgICAgIH0gd2hpbGUgKEZBTFNFKQ0KPiA+Pj4+DQo+ID4+Pj4gQEAg LTYwNCw3ICs2MDQsNyBAQCBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgNCj4gPj4+PiAgICAj ZGVmaW5lIFBFUkZfRlVOQ1RJT05fRU5EKCkgXA0KPiA+Pj4+ICAgICAgZG8geyBcDQo+ID4+Pj4g ICAgICAgIGlmIChMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50RW5hYmxlZCAoUEVSRl9HRU5FUkFM X1RZUEUpKSB7IFwNCj4gPj4+PiAtICAgICAgTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudCAoJmdF ZmlDYWxsZXJJZEd1aWQsIE5VTEwsIF9fRlVOQ1RJT05fXyAsIDAsIFBFUkZfRlVOQ1RJT05fRU5E X0lEKTsgXA0KPiA+Pj4+ICsgICAgICBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgmZ0VmaUNh bGxlcklkR3VpZCwgTlVMTCwgX19mdW5jX18gLCAwLCBQRVJGX0ZVTkNUSU9OX0VORF9JRCk7IFwN Cj4gPj4+PiAgICAgICAgfSBcDQo+ID4+Pj4gICAgICB9IHdoaWxlIChGQUxTRSkNCj4gPj4+Pg0K PiA+Pj4+IGRpZmYgLS1naXQgYS9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1VuaXRUZXN0TGliLmgg Yi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1VuaXRUZXN0TGliLmgNCj4gPj4+PiBpbmRleCA3MWMy MDViMWIxNDMuLjMyMWEzMTA2MDJkNyAxMDA2NDQNCj4gPj4+PiAtLS0gYS9NZGVQa2cvSW5jbHVk ZS9MaWJyYXJ5L1VuaXRUZXN0TGliLmgNCj4gPj4+PiArKysgYi9NZGVQa2cvSW5jbHVkZS9MaWJy YXJ5L1VuaXRUZXN0TGliLmgNCj4gPj4+PiBAQCAtMzQ4LDcgKzM0OCw3IEBAIFNhdmVGcmFtZXdv cmtTdGF0ZSAoDQo+ID4+Pj4gICAgICBAcGFyYW1baW5dICBFeHByZXNzaW9uICBFeHByZXNzaW9u IHRvIGJlIGV2YWx1YXRlZCBmb3IgVFJVRS4NCj4gPj4+PiAgICAqKi8NCj4gPj4+PiAgICAjZGVm aW5lIFVUX0FTU0VSVF9UUlVFKEV4cHJlc3Npb24pICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4+Pj4gLSAgaWYoIVVu aXRUZXN0QXNzZXJ0VHJ1ZSAoKEV4cHJlc3Npb24pLCBfX0ZVTkNUSU9OX18sIERFQlVHX0xJTkVf TlVNQkVSLCBfX0ZJTEVfXywgI0V4cHJlc3Npb24pKSB7IFwNCj4gPj4+PiArICBpZighVW5pdFRl c3RBc3NlcnRUcnVlICgoRXhwcmVzc2lvbiksIF9fZnVuY19fLCBERUJVR19MSU5FX05VTUJFUiwg X19GSUxFX18sICNFeHByZXNzaW9uKSkgeyBcDQo+ID4+Pj4gICAgICAgIHJldHVybiBVTklUX1RF U1RfRVJST1JfVEVTVF9GQUlMRUQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+Pj4+ICAgICAgfQ0KPiA+Pj4+DQo+ID4+Pj4g QEAgLTM2MCw3ICszNjAsNyBAQCBTYXZlRnJhbWV3b3JrU3RhdGUgKA0KPiA+Pj4+ICAgICAgQHBh cmFtW2luXSAgRXhwcmVzc2lvbiAgRXhwcmVzc2lvbiB0byBiZSBldmFsdWF0ZWQgZm9yIEZBTFNF Lg0KPiA+Pj4+ICAgICoqLw0KPiA+Pj4+ICAgICNkZWZpbmUgVVRfQVNTRVJUX0ZBTFNFKEV4cHJl c3Npb24pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQo+ID4+Pj4gLSAgaWYoIVVuaXRUZXN0QXNzZXJ0RmFsc2UgKChFeHBy ZXNzaW9uKSwgX19GVU5DVElPTl9fLCBERUJVR19MSU5FX05VTUJFUiwgX19GSUxFX18sICNFeHBy ZXNzaW9uKSkgeyBcDQo+ID4+Pj4gKyAgaWYoIVVuaXRUZXN0QXNzZXJ0RmFsc2UgKChFeHByZXNz aW9uKSwgX19mdW5jX18sIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywgI0V4cHJlc3Npb24p KSB7IFwNCj4gPj4+PiAgICAgICAgcmV0dXJuIFVOSVRfVEVTVF9FUlJPUl9URVNUX0ZBSUxFRDsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KPiA+Pj4+ICAgICAgfQ0KPiA+Pj4+DQo+ID4+Pj4gQEAgLTM3Myw3ICszNzMsNyBAQCBT YXZlRnJhbWV3b3JrU3RhdGUgKA0KPiA+Pj4+ICAgICAgQHBhcmFtW2luXSAgVmFsdWVCICBWYWx1 ZSB0byBiZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkgKDY0LWJpdCBjb21wYXJpc29uKS4NCj4gPj4+ PiAgICAqKi8NCj4gPj4+PiAgICAjZGVmaW5lIFVUX0FTU0VSVF9FUVVBTChWYWx1ZUEsIFZhbHVl QikNCj4gPj4gXA0KPiA+Pj4+IC0gIGlmKCFVbml0VGVzdEFzc2VydEVxdWFsICgoVUlOVDY0KShW YWx1ZUEpLCAoVUlOVDY0KShWYWx1ZUIpLCBfX0ZVTkNUSU9OX18sIERFQlVHX0xJTkVfTlVNQkVS LCBfX0ZJTEVfXywNCj4gPj4gI1ZhbHVlQSwgI1ZhbHVlQikpIHsgXA0KPiA+Pj4+ICsgIGlmKCFV bml0VGVzdEFzc2VydEVxdWFsICgoVUlOVDY0KShWYWx1ZUEpLCAoVUlOVDY0KShWYWx1ZUIpLCBf X2Z1bmNfXywgREVCVUdfTElORV9OVU1CRVIsIF9fRklMRV9fLCAjVmFsdWVBLA0KPiA+PiAjVmFs dWVCKSkgeyBcDQo+ID4+Pj4gICAgICAgIHJldHVybiBVTklUX1RFU1RfRVJST1JfVEVTVF9GQUlM RUQ7DQo+ID4+IFwNCj4gPj4+PiAgICAgIH0NCj4gPj4+Pg0KPiA+Pj4+IEBAIC0zODcsNyArMzg3 LDcgQEAgU2F2ZUZyYW1ld29ya1N0YXRlICgNCj4gPj4+PiAgICAgIEBwYXJhbVtpbl0gIExlbmd0 aCAgIE51bWJlciBvZiBieXRlcyB0byBjb21wYXJlIGluIEJ1ZmZlckEgYW5kIEJ1ZmZlckIuDQo+ ID4+Pj4gICAgKiovDQo+ID4+Pj4gICAgI2RlZmluZSBVVF9BU1NFUlRfTUVNX0VRVUFMKEJ1ZmZl ckEsIEJ1ZmZlckIsIExlbmd0aCkNCj4gPj4+PiBcDQo+ID4+Pj4gLSAgaWYoIVVuaXRUZXN0QXNz ZXJ0TWVtRXF1YWwgKChWT0lEICopKFVJTlROKShCdWZmZXJBKSwgKFZPSUQgKikoVUlOVE4pKEJ1 ZmZlckIpLCAoVUlOVE4pTGVuZ3RoLCBfX0ZVTkNUSU9OX18sDQo+ID4+IERFQlVHX0xJTkVfTlVN QkVSLA0KPiA+Pj4+IF9fRklMRV9fLCAjQnVmZmVyQSwgI0J1ZmZlckIpKSB7IFwNCj4gPj4+PiAr ICBpZighVW5pdFRlc3RBc3NlcnRNZW1FcXVhbCAoKFZPSUQgKikoVUlOVE4pKEJ1ZmZlckEpLCAo Vk9JRCAqKShVSU5UTikoQnVmZmVyQiksIChVSU5UTilMZW5ndGgsIF9fZnVuY19fLA0KPiA+PiBE RUJVR19MSU5FX05VTUJFUiwNCj4gPj4+PiBfX0ZJTEVfXywgI0J1ZmZlckEsICNCdWZmZXJCKSkg eyBcDQo+ID4+Pj4gICAgICAgIHJldHVybiBVTklUX1RFU1RfRVJST1JfVEVTVF9GQUlMRUQ7DQo+ ID4+Pj4gXA0KPiA+Pj4+ICAgICAgfQ0KPiA+Pj4+DQo+ID4+Pj4gQEAgLTQwMCw3ICs0MDAsNyBA QCBTYXZlRnJhbWV3b3JrU3RhdGUgKA0KPiA+Pj4+ICAgICAgQHBhcmFtW2luXSAgVmFsdWVCICBW YWx1ZSB0byBiZSBjb21wYXJlZCBmb3IgaW5lcXVhbGl0eSAoNjQtYml0IGNvbXBhcmlzb24pLg0K PiA+Pj4+ICAgICoqLw0KPiA+Pj4+ICAgICNkZWZpbmUgVVRfQVNTRVJUX05PVF9FUVVBTChWYWx1 ZUEsIFZhbHVlQikNCj4gPj4gXA0KPiA+Pj4+IC0gIGlmKCFVbml0VGVzdEFzc2VydE5vdEVxdWFs ICgoVUlOVDY0KShWYWx1ZUEpLCAoVUlOVDY0KShWYWx1ZUIpLCBfX0ZVTkNUSU9OX18sIERFQlVH X0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywNCj4gPj4gI1ZhbHVlQSwgI1ZhbHVlQikpIHsgXA0KPiA+ Pj4+ICsgIGlmKCFVbml0VGVzdEFzc2VydE5vdEVxdWFsICgoVUlOVDY0KShWYWx1ZUEpLCAoVUlO VDY0KShWYWx1ZUIpLCBfX2Z1bmNfXywgREVCVUdfTElORV9OVU1CRVIsIF9fRklMRV9fLA0KPiA+ PiAjVmFsdWVBLCAjVmFsdWVCKSkgeyBcDQo+ID4+Pj4gICAgICAgIHJldHVybiBVTklUX1RFU1Rf RVJST1JfVEVTVF9GQUlMRUQ7DQo+ID4+IFwNCj4gPj4+PiAgICAgIH0NCj4gPj4+Pg0KPiA+Pj4+ IEBAIC00MTIsNyArNDEyLDcgQEAgU2F2ZUZyYW1ld29ya1N0YXRlICgNCj4gPj4+PiAgICAgIEBw YXJhbVtpbl0gIFN0YXR1cyAgRUZJX1NUQVRVUyB2YWx1ZSB0byBjaGVjay4NCj4gPj4+PiAgICAq Ki8NCj4gPj4+PiAgICAjZGVmaW5lIFVUX0FTU0VSVF9OT1RfRUZJX0VSUk9SKFN0YXR1cykgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN Cj4gPj4+PiAtICBpZighVW5pdFRlc3RBc3NlcnROb3RFZmlFcnJvciAoKFN0YXR1cyksIF9fRlVO Q1RJT05fXywgREVCVUdfTElORV9OVU1CRVIsIF9fRklMRV9fLCAjU3RhdHVzKSkgeyBcDQo+ID4+ Pj4gKyAgaWYoIVVuaXRUZXN0QXNzZXJ0Tm90RWZpRXJyb3IgKChTdGF0dXMpLCBfX2Z1bmNfXywg REVCVUdfTElORV9OVU1CRVIsIF9fRklMRV9fLCAjU3RhdHVzKSkgeyBcDQo+ID4+Pj4gICAgICAg IHJldHVybiBVTklUX1RFU1RfRVJST1JfVEVTVF9GQUlMRUQ7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4+Pj4gICAgICB9DQo+ ID4+Pj4NCj4gPj4+PiBAQCAtNDI1LDcgKzQyNSw3IEBAIFNhdmVGcmFtZXdvcmtTdGF0ZSAoDQo+ ID4+Pj4gICAgICBAcGFyYW1baW5dICBFeHBlY3RlZCAgRUZJX1NUQVRVUyB2YWx1ZXMgdG8gY29t cGFyZSBmb3IgZXF1YWxpdHkuDQo+ID4+Pj4gICAgKiovDQo+ID4+Pj4gICAgI2RlZmluZSBVVF9B U1NFUlRfU1RBVFVTX0VRVUFMKFN0YXR1cywgRXhwZWN0ZWQpICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4+Pj4gLSAgaWYo IVVuaXRUZXN0QXNzZXJ0U3RhdHVzRXF1YWwgKChTdGF0dXMpLCAoRXhwZWN0ZWQpLCBfX0ZVTkNU SU9OX18sIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywgI1N0YXR1cykpIHsgXA0KPiA+Pj4+ ICsgIGlmKCFVbml0VGVzdEFzc2VydFN0YXR1c0VxdWFsICgoU3RhdHVzKSwgKEV4cGVjdGVkKSwg X19mdW5jX18sIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywgI1N0YXR1cykpIHsgXA0KPiA+ Pj4+ICAgICAgICByZXR1cm4gVU5JVF9URVNUX0VSUk9SX1RFU1RfRkFJTEVEOyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXA0KPiA+Pj4+ICAgICAgfQ0KPiA+Pj4+DQo+ID4+Pj4gQEAgLTQzNyw3ICs0MzcsNyBAQCBT YXZlRnJhbWV3b3JrU3RhdGUgKA0KPiA+Pj4+ICAgICAgQHBhcmFtW2luXSAgUG9pbnRlciAgUG9p bnRlciB0byBiZSBjaGVja2VkIGFnYWluc3QgTlVMTC4NCj4gPj4+PiAgICAqKi8NCj4gPj4+PiAg ICAjZGVmaW5lIFVUX0FTU0VSVF9OT1RfTlVMTChQb2ludGVyKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4+Pj4gLSAgaWYo IVVuaXRUZXN0QXNzZXJ0Tm90TnVsbCAoKFBvaW50ZXIpLCBfX0ZVTkNUSU9OX18sIERFQlVHX0xJ TkVfTlVNQkVSLCBfX0ZJTEVfXywgI1BvaW50ZXIpKSB7IFwNCj4gPj4+PiArICBpZighVW5pdFRl c3RBc3NlcnROb3ROdWxsICgoUG9pbnRlciksIF9fZnVuY19fLCBERUJVR19MSU5FX05VTUJFUiwg X19GSUxFX18sICNQb2ludGVyKSkgeyBcDQo+ID4+Pj4gICAgICAgIHJldHVybiBVTklUX1RFU1Rf RVJST1JfVEVTVF9GQUlMRUQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KPiA+Pj4+ICAgICAgfQ0KPiA+Pj4+DQo+ID4+Pj4gQEAgLTQ4 Miw3ICs0ODIsNyBAQCBleHRlcm4gQkFTRV9MSUJSQVJZX0pVTVBfQlVGRkVSICAqZ1VuaXRUZXN0 RXhwZWN0QXNzZXJ0RmFpbHVyZUp1bXBCdWZmZXI7DQo+ID4+Pj4gICAgICAgICAgfSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc DQo+ID4+Pj4gICAgICAgICAgaWYgKCFVbml0VGVzdEV4cGVjdEFzc2VydEZhaWx1cmUgKCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4+Pj4gICAgICAgICAgICAgICAgIFVuaXRU ZXN0SnVtcFN0YXR1cywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ ID4+Pj4gLSAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJ TEVfXywgICAgICAgICAgICAgICAgXA0KPiA+Pj4+ICsgICAgICAgICAgICAgX19mdW5jX18sIERF QlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywgICAgICAgICAgICAgICAgXA0KPiA+Pj4+ICAgICAg ICAgICAgICAgICAjRnVuY3Rpb25DYWxsLCBTdGF0dXMpKSB7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KPiA+Pj4+ICAgICAgICAgICAgcmV0dXJuIFVOSVRfVEVTVF9FUlJPUl9U RVNUX0ZBSUxFRDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+Pj4+ICAgICAgICAg IH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXA0KPiA+Pj4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlQ2FjaGVN YWludGVuYW5jZUxpYi9Mb29uZ0FyY2hDYWNoZS5jDQo+ID4+IGIvTWRlUGtnL0xpYnJhcnkvQmFz ZUNhY2hlTWFpbnRlbmFuY2VMaWIvTG9vbmdBcmNoQ2FjaGUuYw0KPiA+Pj4+IGluZGV4IDRjODc3 MzI3OGMzYy4uNjE3YjBmNDIxOGI4IDEwMDY0NA0KPiA+Pj4+IC0tLSBhL01kZVBrZy9MaWJyYXJ5 L0Jhc2VDYWNoZU1haW50ZW5hbmNlTGliL0xvb25nQXJjaENhY2hlLmMNCj4gPj4+PiArKysgYi9N ZGVQa2cvTGlicmFyeS9CYXNlQ2FjaGVNYWludGVuYW5jZUxpYi9Mb29uZ0FyY2hDYWNoZS5jDQo+ ID4+Pj4gQEAgLTEwMCw3ICsxMDAsNyBAQCBXcml0ZUJhY2tJbnZhbGlkYXRlRGF0YUNhY2hlICgN Cj4gPj4+PiAgICAgIFZPSUQNCj4gPj4+PiAgICAgICkNCj4gPj4+PiAgICB7DQo+ID4+Pj4gLSAg REVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBOb3QgY3VycmVudGx5IGltcGxlbWVudGVkIG9uIExv b25nQXJjaC5cbiIsIF9fRlVOQ1RJT05fXykpOw0KPiA+Pj4+ICsgIERFQlVHICgoREVCVUdfRVJS T1IsICIlYTogTm90IGN1cnJlbnRseSBpbXBsZW1lbnRlZCBvbiBMb29uZ0FyY2guXG4iLCBfX2Z1 bmNfXykpOw0KPiA+Pj4+ICAgIH0NCj4gPj4+Pg0KPiA+Pj4+ICAgIC8qKg0KPiA+Pj4+IEBAIC0x MzYsNyArMTM2LDcgQEAgV3JpdGVCYWNrSW52YWxpZGF0ZURhdGFDYWNoZVJhbmdlICgNCj4gPj4+ PiAgICAgIElOICAgICAgVUlOVE4gIExlbmd0aA0KPiA+Pj4+ICAgICAgKQ0KPiA+Pj4+ICAgIHsN Cj4gPj4+PiAtICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6IE5vdCBjdXJyZW50bHkgaW1wbGVt ZW50ZWQgb24gTG9vbmdBcmNoLlxuIiwgX19GVU5DVElPTl9fKSk7DQo+ID4+Pj4gKyAgREVCVUcg KChERUJVR19FUlJPUiwgIiVhOiBOb3QgY3VycmVudGx5IGltcGxlbWVudGVkIG9uIExvb25nQXJj aC5cbiIsIF9fZnVuY19fKSk7DQo+ID4+Pj4gICAgICByZXR1cm4gQWRkcmVzczsNCj4gPj4+PiAg ICB9DQo+ID4+Pj4NCj4gPj4+PiBAQCAtMTkxLDcgKzE5MSw3IEBAIFdyaXRlQmFja0RhdGFDYWNo ZVJhbmdlICgNCj4gPj4+PiAgICAgIElOICAgICAgVUlOVE4gIExlbmd0aA0KPiA+Pj4+ICAgICAg KQ0KPiA+Pj4+ICAgIHsNCj4gPj4+PiAtICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6IE5vdCBj dXJyZW50bHkgaW1wbGVtZW50ZWQgb24gTG9vbmdBcmNoLlxuIiwgX19GVU5DVElPTl9fKSk7DQo+ ID4+Pj4gKyAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBOb3QgY3VycmVudGx5IGltcGxlbWVu dGVkIG9uIExvb25nQXJjaC5cbiIsIF9fZnVuY19fKSk7DQo+ID4+Pj4gICAgICByZXR1cm4gQWRk cmVzczsNCj4gPj4+PiAgICB9DQo+ID4+Pj4NCj4gPj4+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xp YnJhcnkvQmFzZUNhY2hlTWFpbnRlbmFuY2VMaWIvUmlzY1ZDYWNoZS5jDQo+ID4+IGIvTWRlUGtn L0xpYnJhcnkvQmFzZUNhY2hlTWFpbnRlbmFuY2VMaWIvUmlzY1ZDYWNoZS5jDQo+ID4+Pj4gaW5k ZXggNjdhMzM4N2ZmM2M2Li5iYjI2ZmUwMTNkOGIgMTAwNjQ0DQo+ID4+Pj4gLS0tIGEvTWRlUGtn L0xpYnJhcnkvQmFzZUNhY2hlTWFpbnRlbmFuY2VMaWIvUmlzY1ZDYWNoZS5jDQo+ID4+Pj4gKysr IGIvTWRlUGtnL0xpYnJhcnkvQmFzZUNhY2hlTWFpbnRlbmFuY2VMaWIvUmlzY1ZDYWNoZS5jDQo+ ID4+Pj4gQEAgLTc2LDcgKzc2LDcgQEAgSW52YWxpZGF0ZUluc3RydWN0aW9uQ2FjaGVSYW5nZSAo DQo+ID4+Pj4gICAgICBJTiBVSU5UTiAgTGVuZ3RoDQo+ID4+Pj4gICAgICApDQo+ID4+Pj4gICAg ew0KPiA+Pj4+IC0gIERFQlVHICgoREVCVUdfRVJST1IsICIlYTpSSVNDLVYgdW5zdXBwb3J0ZWQg ZnVuY3Rpb24uXG4iLCBfX0ZVTkNUSU9OX18pKTsNCj4gPj4+PiArICBERUJVRyAoKERFQlVHX0VS Uk9SLCAiJWE6UklTQy1WIHVuc3VwcG9ydGVkIGZ1bmN0aW9uLlxuIiwgX19mdW5jX18pKTsNCj4g Pj4+PiAgICAgIHJldHVybiBBZGRyZXNzOw0KPiA+Pj4+ICAgIH0NCj4gPj4+Pg0KPiA+Pj4+IEBA IC05Niw3ICs5Niw3IEBAIFdyaXRlQmFja0ludmFsaWRhdGVEYXRhQ2FjaGUgKA0KPiA+Pj4+ICAg ICAgVk9JRA0KPiA+Pj4+ICAgICAgKQ0KPiA+Pj4+ICAgIHsNCj4gPj4+PiAtICBERUJVRyAoKERF QlVHX0VSUk9SLCAiJWE6UklTQy1WIHVuc3VwcG9ydGVkIGZ1bmN0aW9uLlxuIiwgX19GVU5DVElP Tl9fKSk7DQo+ID4+Pj4gKyAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOlJJU0MtViB1bnN1cHBv cnRlZCBmdW5jdGlvbi5cbiIsIF9fZnVuY19fKSk7DQo+ID4+Pj4gICAgfQ0KPiA+Pj4+DQo+ID4+ Pj4gICAgLyoqDQo+ID4+Pj4gQEAgLTEzMiw3ICsxMzIsNyBAQCBXcml0ZUJhY2tJbnZhbGlkYXRl RGF0YUNhY2hlUmFuZ2UgKA0KPiA+Pj4+ICAgICAgSU4gICAgICBVSU5UTiAgTGVuZ3RoDQo+ID4+ Pj4gICAgICApDQo+ID4+Pj4gICAgew0KPiA+Pj4+IC0gIERFQlVHICgoREVCVUdfRVJST1IsICIl YTpSSVNDLVYgdW5zdXBwb3J0ZWQgZnVuY3Rpb24uXG4iLCBfX0ZVTkNUSU9OX18pKTsNCj4gPj4+ PiArICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6UklTQy1WIHVuc3VwcG9ydGVkIGZ1bmN0aW9u LlxuIiwgX19mdW5jX18pKTsNCj4gPj4+PiAgICAgIHJldHVybiBBZGRyZXNzOw0KPiA+Pj4+ICAg IH0NCj4gPj4+Pg0KPiA+Pj4+IEBAIC0xNTIsNyArMTUyLDcgQEAgV3JpdGVCYWNrRGF0YUNhY2hl ICgNCj4gPj4+PiAgICAgIFZPSUQNCj4gPj4+PiAgICAgICkNCj4gPj4+PiAgICB7DQo+ID4+Pj4g LSAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOlJJU0MtViB1bnN1cHBvcnRlZCBmdW5jdGlvbi5c biIsIF9fRlVOQ1RJT05fXykpOw0KPiA+Pj4+ICsgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTpS SVNDLVYgdW5zdXBwb3J0ZWQgZnVuY3Rpb24uXG4iLCBfX2Z1bmNfXykpOw0KPiA+Pj4+ICAgIH0N Cj4gPj4+Pg0KPiA+Pj4+ICAgIC8qKg0KPiA+Pj4+IEBAIC0xODcsNyArMTg3LDcgQEAgV3JpdGVC YWNrRGF0YUNhY2hlUmFuZ2UgKA0KPiA+Pj4+ICAgICAgSU4gICAgICBVSU5UTiAgTGVuZ3RoDQo+ ID4+Pj4gICAgICApDQo+ID4+Pj4gICAgew0KPiA+Pj4+IC0gIERFQlVHICgoREVCVUdfRVJST1Is ICIlYTpSSVNDLVYgdW5zdXBwb3J0ZWQgZnVuY3Rpb24uXG4iLCBfX0ZVTkNUSU9OX18pKTsNCj4g Pj4+PiArICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6UklTQy1WIHVuc3VwcG9ydGVkIGZ1bmN0 aW9uLlxuIiwgX19mdW5jX18pKTsNCj4gPj4+PiAgICAgIHJldHVybiBBZGRyZXNzOw0KPiA+Pj4+ ICAgIH0NCj4gPj4+Pg0KPiA+Pj4+IEBAIC0yNDUsNiArMjQ1LDYgQEAgSW52YWxpZGF0ZURhdGFD YWNoZVJhbmdlICgNCj4gPj4+PiAgICAgIElOICAgICAgVUlOVE4gIExlbmd0aA0KPiA+Pj4+ICAg ICAgKQ0KPiA+Pj4+ICAgIHsNCj4gPj4+PiAtICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6UklT Qy1WIHVuc3VwcG9ydGVkIGZ1bmN0aW9uLlxuIiwgX19GVU5DVElPTl9fKSk7DQo+ID4+Pj4gKyAg REVCVUcgKChERUJVR19FUlJPUiwgIiVhOlJJU0MtViB1bnN1cHBvcnRlZCBmdW5jdGlvbi5cbiIs IF9fZnVuY19fKSk7DQo+ID4+Pj4gICAgICByZXR1cm4gQWRkcmVzczsNCj4gPj4+PiAgICB9DQo+ ID4+Pj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvU2FmZVN0cmluZy5jIGIv TWRlUGtnL0xpYnJhcnkvQmFzZUxpYi9TYWZlU3RyaW5nLmMNCj4gPj4+PiBpbmRleCBiNzViMzMz ODE3MzIuLjk1NGQzZjhjODk4OCAxMDA2NDQNCj4gPj4+PiAtLS0gYS9NZGVQa2cvTGlicmFyeS9C YXNlTGliL1NhZmVTdHJpbmcuYw0KPiA+Pj4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIv U2FmZVN0cmluZy5jDQo+ID4+Pj4gQEAgLTE3LDcgKzE3LDcgQEANCj4gPj4+PiAgICAgICAgaWYg KCEoRXhwcmVzc2lvbikpIHsgXA0KPiA+Pj4+ICAgICAgICAgIERFQlVHICgoREVCVUdfVkVSQk9T RSwgXA0KPiA+Pj4+ICAgICAgICAgICAgIiVhKCVkKSAlYTogU0FGRV9TVFJJTkdfQ09OU1RSQUlO VF9DSEVDSyglYSkgZmFpbGVkLiAgUmV0dXJuICVyXG4iLCBcDQo+ID4+Pj4gLSAgICAgICAgX19G SUxFX18sIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZVTkNUSU9OX18sIERFQlVHX0VYUFJFU1NJT05f U1RSSU5HIChFeHByZXNzaW9uKSwgU3RhdHVzKSk7IFwNCj4gPj4+PiArICAgICAgICBfX0ZJTEVf XywgREVCVUdfTElORV9OVU1CRVIsIF9fZnVuY19fLCBERUJVR19FWFBSRVNTSU9OX1NUUklORyAo RXhwcmVzc2lvbiksIFN0YXR1cykpOyBcDQo+ID4+Pj4gICAgICAgICAgcmV0dXJuIFN0YXR1czsg XA0KPiA+Pj4+ICAgICAgICB9IFwNCj4gPj4+PiAgICAgIH0gd2hpbGUgKEZBTFNFKQ0KPiA+Pj4+ IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlT3JkZXJlZENvbGxlY3Rpb25SZWRCbGFj a1RyZWVMaWIvQmFzZU9yZGVyZWRDb2xsZWN0aW9uUmVkQmxhY2tUcmVlTGliLmMNCj4gPj4+PiBi L01kZVBrZy9MaWJyYXJ5L0Jhc2VPcmRlcmVkQ29sbGVjdGlvblJlZEJsYWNrVHJlZUxpYi9CYXNl T3JkZXJlZENvbGxlY3Rpb25SZWRCbGFja1RyZWVMaWIuYw0KPiA+Pj4+IGluZGV4IGY0NzMwMWRl ODk4Mi4uYTIzMTEzZjljOTFkIDEwMDY0NA0KPiA+Pj4+IC0tLSBhL01kZVBrZy9MaWJyYXJ5L0Jh c2VPcmRlcmVkQ29sbGVjdGlvblJlZEJsYWNrVHJlZUxpYi9CYXNlT3JkZXJlZENvbGxlY3Rpb25S ZWRCbGFja1RyZWVMaWIuYw0KPiA+Pj4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VPcmRlcmVk Q29sbGVjdGlvblJlZEJsYWNrVHJlZUxpYi9CYXNlT3JkZXJlZENvbGxlY3Rpb25SZWRCbGFja1Ry ZWVMaWIuYw0KPiA+Pj4+IEBAIC0xNDE2LDcgKzE0MTYsNyBAQCBSZWRCbGFja1RyZWVWYWxpZGF0 ZSAoDQo+ID4+Pj4gICAgICBDT05TVCBSRURfQkxBQ0tfVFJFRV9OT0RFICAqTGFzdDsNCj4gPj4+ PiAgICAgIENPTlNUIFJFRF9CTEFDS19UUkVFX05PREUgICpOb2RlOw0KPiA+Pj4+DQo+ID4+Pj4g LSAgREVCVUcgKChERUJVR19WRVJCT1NFLCAiJWE6IFRyZWU9JXBcbiIsIF9fRlVOQ1RJT05fXywg VHJlZSkpOw0KPiA+Pj4+ICsgIERFQlVHICgoREVCVUdfVkVSQk9TRSwgIiVhOiBUcmVlPSVwXG4i LCBfX2Z1bmNfXywgVHJlZSkpOw0KPiA+Pj4+DQo+ID4+Pj4gICAgICAvLw0KPiA+Pj4+ICAgICAg Ly8gcHJvcGVydHkgIzUNCj4gPj4+PiBAQCAtMTQ1OSw3ICsxNDU5LDcgQEAgUmVkQmxhY2tUcmVl VmFsaWRhdGUgKA0KPiA+Pj4+ICAgICAgREVCVUcgKCgNCj4gPj4+PiAgICAgICAgREVCVUdfVkVS Qk9TRSwNCj4gPj4+PiAgICAgICAgIiVhOiBUcmVlPSVwIEJsYWNrSGVpZ2h0PSVMZCBDb3VudD0l TGRcbiIsDQo+ID4+Pj4gLSAgICBfX0ZVTkNUSU9OX18sDQo+ID4+Pj4gKyAgICBfX2Z1bmNfXywN Cj4gPj4+PiAgICAgICAgVHJlZSwNCj4gPj4+PiAgICAgICAgKElOVDY0KUJsYWNrSGVpZ2h0LA0K PiA+Pj4+ICAgICAgICAoSU5UNjQpRm9yd2FyZENvdW50DQo+ID4+Pj4gZGlmZiAtLWdpdCBhL01k ZVBrZy9MaWJyYXJ5L0R4ZVJuZ0xpYi9EeGVSbmdMaWIuYyBiL01kZVBrZy9MaWJyYXJ5L0R4ZVJu Z0xpYi9EeGVSbmdMaWIuYw0KPiA+Pj4+IGluZGV4IDgyMTI5YWE0NDU5OC4uNDZhZWE1MTU5MjRm IDEwMDY0NA0KPiA+Pj4+IC0tLSBhL01kZVBrZy9MaWJyYXJ5L0R4ZVJuZ0xpYi9EeGVSbmdMaWIu Yw0KPiA+Pj4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0R4ZVJuZ0xpYi9EeGVSbmdMaWIuYw0KPiA+ Pj4+IEBAIC0zNyw0MyArMzcsNDMgQEAgR2VuZXJhdGVSYW5kb21OdW1iZXJWaWFOaXN0ODAwQWxn b3JpdGhtICgNCj4gPj4+PiAgICAgIFJuZ1Byb3RvY29sID0gTlVMTDsNCj4gPj4+Pg0KPiA+Pj4+ ICAgICAgaWYgKEJ1ZmZlciA9PSBOVUxMKSB7DQo+ID4+Pj4gLSAgICBERUJVRyAoKERFQlVHX0VS Uk9SLCAiJWE6IEJ1ZmZlciA9PSBOVUxMLlxuIiwgX19GVU5DVElPTl9fKSk7DQo+ID4+Pj4gKyAg ICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6IEJ1ZmZlciA9PSBOVUxMLlxuIiwgX19mdW5jX18p KTsNCj4gPj4+PiAgICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gPj4+PiAg ICAgIH0NCj4gPj4+Pg0KPiA+Pj4+ICAgICAgU3RhdHVzID0gZ0JTLT5Mb2NhdGVQcm90b2NvbCAo JmdFZmlSbmdQcm90b2NvbEd1aWQsIE5VTEwsIChWT0lEICoqKSZSbmdQcm90b2NvbCk7DQo+ID4+ Pj4gICAgICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpIHx8IChSbmdQcm90b2NvbCA9PSBOVUxMKSkg ew0KPiA+Pj4+IC0gICAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBDb3VsZCBub3QgbG9jYXRl IFJORyBwcm90b3RvY29sLCBTdGF0dXMgPSAlclxuIiwgX19GVU5DVElPTl9fLCBTdGF0dXMpKTsN Cj4gPj4+PiArICAgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTogQ291bGQgbm90IGxvY2F0ZSBS TkcgcHJvdG90b2NvbCwgU3RhdHVzID0gJXJcbiIsIF9fZnVuY19fLCBTdGF0dXMpKTsNCj4gPj4+ PiAgICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPj4+PiAgICAgIH0NCj4gPj4+Pg0KPiA+Pj4+ICAg ICAgU3RhdHVzID0gUm5nUHJvdG9jb2wtPkdldFJORyAoUm5nUHJvdG9jb2wsICZnRWZpUm5nQWxn b3JpdGhtU3A4MDA5MEN0cjI1Nkd1aWQsIEJ1ZmZlclNpemUsIEJ1ZmZlcik7DQo+ID4+Pj4gLSAg REVCVUcgKChERUJVR19JTkZPLCAiJWE6IEdldFJORyBhbGdvcml0aG0gQ1RSLTI1NiAtIFN0YXR1 cyA9ICVyXG4iLCBfX0ZVTkNUSU9OX18sIFN0YXR1cykpOw0KPiA+Pj4+ICsgIERFQlVHICgoREVC VUdfSU5GTywgIiVhOiBHZXRSTkcgYWxnb3JpdGhtIENUUi0yNTYgLSBTdGF0dXMgPSAlclxuIiwg X19mdW5jX18sIFN0YXR1cykpOw0KPiA+Pj4+ICAgICAgaWYgKCFFRklfRVJST1IgKFN0YXR1cykp IHsNCj4gPj4+PiAgICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPj4+PiAgICAgIH0NCj4gPj4+Pg0K PiA+Pj4+ICAgICAgU3RhdHVzID0gUm5nUHJvdG9jb2wtPkdldFJORyAoUm5nUHJvdG9jb2wsICZn RWZpUm5nQWxnb3JpdGhtU3A4MDA5MEhtYWMyNTZHdWlkLCBCdWZmZXJTaXplLCBCdWZmZXIpOw0K PiA+Pj4+IC0gIERFQlVHICgoREVCVUdfSU5GTywgIiVhOiBHZXRSTkcgYWxnb3JpdGhtIEhNQUMt MjU2IC0gU3RhdHVzID0gJXJcbiIsIF9fRlVOQ1RJT05fXywgU3RhdHVzKSk7DQo+ID4+Pj4gKyAg REVCVUcgKChERUJVR19JTkZPLCAiJWE6IEdldFJORyBhbGdvcml0aG0gSE1BQy0yNTYgLSBTdGF0 dXMgPSAlclxuIiwgX19mdW5jX18sIFN0YXR1cykpOw0KPiA+Pj4+ICAgICAgaWYgKCFFRklfRVJS T1IgKFN0YXR1cykpIHsNCj4gPj4+PiAgICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPj4+PiAgICAg IH0NCj4gPj4+Pg0KPiA+Pj4+ICAgICAgU3RhdHVzID0gUm5nUHJvdG9jb2wtPkdldFJORyAoUm5n UHJvdG9jb2wsICZnRWZpUm5nQWxnb3JpdGhtU3A4MDA5MEhhc2gyNTZHdWlkLCBCdWZmZXJTaXpl LCBCdWZmZXIpOw0KPiA+Pj4+IC0gIERFQlVHICgoREVCVUdfSU5GTywgIiVhOiBHZXRSTkcgYWxn b3JpdGhtIEhhc2gtMjU2IC0gU3RhdHVzID0gJXJcbiIsIF9fRlVOQ1RJT05fXywgU3RhdHVzKSk7 DQo+ID4+Pj4gKyAgREVCVUcgKChERUJVR19JTkZPLCAiJWE6IEdldFJORyBhbGdvcml0aG0gSGFz aC0yNTYgLSBTdGF0dXMgPSAlclxuIiwgX19mdW5jX18sIFN0YXR1cykpOw0KPiA+Pj4+ICAgICAg aWYgKCFFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPj4+PiAgICAgICAgcmV0dXJuIFN0YXR1czsN Cj4gPj4+PiAgICAgIH0NCj4gPj4+Pg0KPiA+Pj4+ICAgICAgLy8gSWYgYWxsIHRoZSBvdGhlciBt ZXRob2RzIGhhdmUgZmFpbGVkLCB1c2UgdGhlIGRlZmF1bHQgbWV0aG9kIGZyb20gdGhlIFJuZ1By b3RvY29sDQo+ID4+Pj4gICAgICBTdGF0dXMgPSBSbmdQcm90b2NvbC0+R2V0Uk5HIChSbmdQcm90 b2NvbCwgTlVMTCwgQnVmZmVyU2l6ZSwgQnVmZmVyKTsNCj4gPj4+PiAtICBERUJVRyAoKERFQlVH X0lORk8sICIlYTogR2V0Uk5HIGFsZ29yaXRobSBIYXNoLTI1NiAtIFN0YXR1cyA9ICVyXG4iLCBf X0ZVTkNUSU9OX18sIFN0YXR1cykpOw0KPiA+Pj4+ICsgIERFQlVHICgoREVCVUdfSU5GTywgIiVh OiBHZXRSTkcgYWxnb3JpdGhtIEhhc2gtMjU2IC0gU3RhdHVzID0gJXJcbiIsIF9fZnVuY19fLCBT dGF0dXMpKTsNCj4gPj4+PiAgICAgIGlmICghRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4+Pj4g ICAgICAgIHJldHVybiBTdGF0dXM7DQo+ID4+Pj4gICAgICB9DQo+ID4+Pj4NCj4gPj4+PiAgICAg IC8vIElmIHdlIGdldCB0byB0aGlzIHBvaW50LCB3ZSBoYXZlIGZhaWxlZA0KPiA+Pj4+IC0gIERF QlVHICgoREVCVUdfRVJST1IsICIlYTogR2V0Uk5HKCkgZmFpbGVkLCBzdGF1cyA9ICVyXG4iLCBf X0ZVTkNUSU9OX18sIFN0YXR1cykpOw0KPiA+Pj4+ICsgIERFQlVHICgoREVCVUdfRVJST1IsICIl YTogR2V0Uk5HKCkgZmFpbGVkLCBzdGF1cyA9ICVyXG4iLCBfX2Z1bmNfXywgU3RhdHVzKSk7DQo+ ID4+Pj4NCj4gPj4+PiAgICAgIHJldHVybiBTdGF0dXM7DQo+ID4+Pj4gICAgfS8vIEdlbmVyYXRl UmFuZG9tTnVtYmVyVmlhTmlzdDgwMEFsZ29yaXRobSgpDQo+ID4+Pj4gLS0NCj4gPj4+PiAyLjMw LjINCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pg0KPiA+Pj4N Cj4gPj4+DQo+ID4+Pg0KPiA+Pg0KPiA+Pg0KPiA+Pg0KPiANCj4gDQo+IA0KPiANCg0K