From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web10.3921.1675907201341148589 for ; Wed, 08 Feb 2023 17:46:41 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=G54xgJCy; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: chasel.chiu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1675907201; x=1707443201; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=j1LEKXB352qZ5EguSB+otfJrr4gFnqGirs2NJmPKoi8=; b=G54xgJCy8sUZqi5xjSkxlgkolpls7EHXr3y6VmIblQk+DvLeREd0m86i a+LV2U/jQOgYxnHQ6asIM/t/WvnCEWwe8WmYpP2c3Br0OzL2S35THnCym /6BYNi7MaJWOaIiuKZN85MB3/AXRuS4+V61HIYXjQCMBRtnx7F3gqLZC/ yBpkTO68IawRwQZVQAMp9lBFoSDcYxQr1wSYxrePwPhh//yGxrkGQO+ky p3PPTYlnLWzA1JugtOyDtHFPCDugwXuTBQtBrrnk6IUei06Nk/eTk3iOD mfRBGxNcAS/OLKEGnzNHqaMebeh70sKE46Uhk6UBXzLXmJTMQ9T6VBhU4 Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10615"; a="313618721" X-IronPort-AV: E=Sophos;i="5.97,281,1669104000"; d="scan'208";a="313618721" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Feb 2023 17:46:40 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10615"; a="791422847" X-IronPort-AV: E=Sophos;i="5.97,281,1669104000"; d="scan'208";a="791422847" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga004.jf.intel.com with ESMTP; 08 Feb 2023 17:46:40 -0800 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Wed, 8 Feb 2023 17:46:40 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Wed, 8 Feb 2023 17:46:40 -0800 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.109) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Wed, 8 Feb 2023 17:46:39 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=haCSVN5UJ1HsvjZxpvL1gYUMmJNmjrnSS0/3FGq1wfCRYmwRWf0nuWv0+uJCf1BQShak1qIRR3H4lXnGWny3WI7qptF/rcjSMfM/L838lsnKlmJzlCzltgAK8Z9hxRJtAyLa51r+LFRSU1s3KYXGA0Rg8H0REHM0pqYA2bSH7SYcp2Ix7PFrqXGbXhZ6wENy77G9RlO7Vr8xqf/GYWwb5F6jzoQ06bfsb4WFyqfHC0Jqjq05ZmjnoAlERIAiPAcXGrlrMQEOC+aSgr73hkh5n6YzJAIvLUN3CrIVw6FYzZ3RJZdj+cXco+uAg0XzfFhN/atOcH/YuC6KmAc8g9x/zw== 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=j1LEKXB352qZ5EguSB+otfJrr4gFnqGirs2NJmPKoi8=; b=Ej7WqfHgQjg5KkF6bdMbCVPLsRXorM16vWuzs62Qtf3Cx+Nk1rQGYqpdiJOKpyHkOo3DWfjvO13wD8xIMPf6yeT8tsL6nWa2eVbSkSfpJR4mQW1ur7l3ISfR+LgVHh6hQ3+1tMJp/jNYOFcHZy53IDL9hhu/xQ6jnI1vV+8xYvCft470s9wVZZRo/s8doAwzzs3CwQ/R5T6H030/54XM6NbmgOP96yfBRMuAFhrXEZH+tusNdeevrCTI0IlO+bod/3osDk0M9tSl9Pt+aplu0NhVWPBBYenGK+GW/9G9nLGMN6356wE8A9aLzQo2xywF/6ty5MKpHzOmUowdmDzPTA== 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 BN9PR11MB5483.namprd11.prod.outlook.com (2603:10b6:408:104::10) by SA1PR11MB7064.namprd11.prod.outlook.com (2603:10b6:806:2b7::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.19; Thu, 9 Feb 2023 01:46:31 +0000 Received: from BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::ee18:f0d6:8983:5a24]) by BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::ee18:f0d6:8983:5a24%3]) with mapi id 15.20.6086.017; Thu, 9 Feb 2023 01:46:31 +0000 From: "Chiu, Chasel" To: "Oram, Isaac W" , "devel@edk2.groups.io" , "mikuback@linux.microsoft.com" CC: "S, Ashraf Ali" , "Chaganty, Rangasai V" , "Ni, Ray" , "Kubacki, Michael" Subject: Re: [edk2-devel] [edk2-platforms: PATCH v4] IntelSiliconPkg/SpiFvbServiceSmm: Rewrite VariableStore header. Thread-Topic: [edk2-devel] [edk2-platforms: PATCH v4] IntelSiliconPkg/SpiFvbServiceSmm: Rewrite VariableStore header. Thread-Index: AQHZPAst7z1p7jL+Sk2sd1iXsYrt2a7FxiqAgAAQcICAAAHtoA== Date: Thu, 9 Feb 2023 01:46:31 +0000 Message-ID: References: <20230208221723.917-1-chasel.chiu@intel.com> <379f9b9e-de97-ffd5-c313-6246604d9c95@linux.microsoft.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: BN9PR11MB5483:EE_|SA1PR11MB7064:EE_ x-ms-office365-filtering-correlation-id: 599863bb-5bcd-45d3-1f29-08db0a3f77f2 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: XqNS1TtRI1z8YBJAMZm3v0e/7MWaYw0HdL4hoH1u3o5Zx5Z5DZkHl4AT2Gxg4LxEfZeugKJcFtsWNgmwfeDILsr9BsIH6Qn187dCb7/v21bQrMntp0y1cYh14V0/hTN6WSgyR4Me/9s/nlerwzOqarTtudYpGxwXIqy8egGWocD1p5NoiuLWEDLgZ2ZGN4yoy5Jk91ow8dadQa9Dm/txWtqLFACAsfxhQRYV3H/FHOfva3RFHaFZn4POQ185E3PobbODJdj4B2tsZ+6so8OEFHjvwsGhhQegboTD31F9XqCJdgE1mPE1HZKIBYhFJ8neyd4IWD1dUcOxreFZFBmkYd9cUNoLV54ytjReXB8qZ6W4W2wffLSmetaXFKjWq0oTlNLIVajWt05He0cCmrpZihsuaHnMxUe62osM+yAK0U1B43gvbosNDmS/sRU40lBYQAJBN1bIdvuwxxxkbqZa490phkls/qJcwfY83fwMJvC/zubnkzY0iPee/HHW8T35geoWRD21PhZA7XsoTg1WNdRRLah8jbuECFWFZ3f5bz5z5ipoqs2B5fVHyEs3N36LlLqZqOo8GQYmnqgockRSD6Vo6hWEqSctYWoX1lFvLEHm8s6IzxxWR0YsOD63E6Y+HaiYj97IvyXjC6WCb20dsCx43a1QD30VdXlpE1kPA/vzkBAxNKEZatKtDYYTkJlB5vtM+cI5U4Pyb9Qn8mqd9Y3sOre6bEJ1KMl+tkMngoZupRV3zdwwJMvy3rKeBD6C9V6Vmxw12OmGPGQ2mfwlgQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5483.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(376002)(39860400002)(346002)(396003)(366004)(136003)(451199018)(30864003)(66899018)(2906002)(52536014)(86362001)(122000001)(26005)(8936002)(38070700005)(5660300002)(55016003)(186003)(71200400001)(7696005)(966005)(82960400001)(478600001)(53546011)(6506007)(83380400001)(33656002)(9686003)(38100700002)(41300700001)(19627235002)(316002)(66946007)(4326008)(8676002)(64756008)(66446008)(66476007)(66556008)(54906003)(110136005)(76116006);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Sm9HbUZndmN4ekw1QmlJSTdEMnRya1BlZElXNzVsWmJNK1g4YzcyRWN1NzZa?= =?utf-8?B?TVVyMHh2dTVvZjZjYmtCRjJqQmZFaW9WazFqN0tFOUIrYUhuQzdScjhZbHhQ?= =?utf-8?B?ZGRLUjgwdEZEWmpucCt2eVNtM01Qd2hRQUQ1dmZndmhrQVBVYklhSjhwTzls?= =?utf-8?B?cHI4cEM0TVE0dkRFOXd3TllDZHdpZUZyYkRGb3RGY3pHYjlHalNEVjUrV1dC?= =?utf-8?B?Nzdrait1MXRnZjdmRkNTMUdJN21Tc2I0YUR2bWhLZGo3aWRJTVVFZnVsdVpM?= =?utf-8?B?b3BnZTFYaTl1Y0c2cE1udXNGMXpnVU1ZOGRUSlhHU3ZpdVB6dnEvaWNsNUJS?= =?utf-8?B?enNEV0RadU9rL2MwZ2JISGRqM1cydjdSNDI2WnBYZXFnYzVvVmtyRk9pazRH?= =?utf-8?B?bmxPdjF1OUp4QzViMnBCMFBzNi9NNTBNS2NzM2VIRmRYcTA0Q1JKVG5Cai93?= =?utf-8?B?MVZtK1BrbmtWSnhhWlpoTVpzSTNJdDVIM0JpeVpqU0Njc0ZMRlZlNjFTS1l2?= =?utf-8?B?ekdtcEZCaGczRWxNVEpzT1R2OFd3WWtMMVJzNUhMbm9tR1loQnZXMmViS3d4?= =?utf-8?B?bzR2SXpjTXNCZDRnZzV2elY5UEFGb1RwWklhbzNOZVY4QkdoM05kTmlQRDZu?= =?utf-8?B?c1BTTk9Oam9PZDZrMlBkYWd1RDQ1U3lUMUxLUVp3NExhMkwrdVdkbGtaYzZr?= =?utf-8?B?RG9UdnFFTlJKTy9TMlNVNEp5blF3N2VNK0d6VnY4N2RQTnlZN1BwbnliRnY4?= =?utf-8?B?WkJPeVc1bktIS2RSa1VCeUdzaTFuREthT2xFbTE1MC9PNWpncEJiaCs3TmtN?= =?utf-8?B?aUVaSXF0b1NHWnh0M3JDRUR5TXBnR1cyUkxzVEtOaUkxUG52eUFEMU5sS2Ev?= =?utf-8?B?c09GSU5HT3NKVlJ5ak5xSCtudWZURi9VclRKSjNzK3FMc0t5MTNrdjhrVzFN?= =?utf-8?B?Sm1ibGw3NU1VbGpqTW00UXk5NVcvMkR4R0p4c1QxWjhnWisyTURoVmNhTkpk?= =?utf-8?B?cHJGS0lSc2VSYkUwTkhWcmNCNUhIcEdUZTBPSzdBc1pCS0VzaGowc1dDb0dl?= =?utf-8?B?ZkpLbmJYU0FpQ3RCTHRhS0wrZXJVSnNxK1l4NWdxZm9KbkdYVkMxb3FGUDg4?= =?utf-8?B?aFVuWkRINzBuYnlxMHBueGlHbklEWmRiTHEvWFZWSDJQMmtlaGdkZ3VUcVAr?= =?utf-8?B?TUZJUFppcTBrTkNUMjU4NmEydmxLOW10aUxYbXQzWnlsSUdza0hDVjR4d3BK?= =?utf-8?B?UDkzTzYxUzZUNFhqa1NreDJ3OEZCWTlMUTRuMlhFRnIzQk1xVDFwc0R0RkhO?= =?utf-8?B?NXViZVMrQTBJNEtQRkNpQm43OEdUUnVPVldGNlF2MnBocG9GMmlHQTZHc0Qz?= =?utf-8?B?K2dlMjFGVW4ybm9hTWdwanVURHQ3cEIyV1Jpa3k2MmhhbXVOd0gxVHlxWHFk?= =?utf-8?B?WC80TjVKS1hYSU8yeElaTkR1TGFJenp1SWVQamM3bUxQeWRteWx5U3ZIeEsr?= =?utf-8?B?OEtlQkZVNU1JZmtTQkNmUDVSRnZaamU1YzNLK2FXK2VoT0hhbmNGRlVnTnZW?= =?utf-8?B?aDJSVkpqT21xTXRQWUZpaDl0NVMyM3RGcW9DTnA2QWluYXZMeGM1WnpWaU1L?= =?utf-8?B?UXV4M2JYV1FwY3IwUFp5MklsZG9KVWZ3WThwOGJQTUtmMmlHejlKaUZacVVX?= =?utf-8?B?NVg0bGhWSmRFQzNGUFZyaWYyeldieVhpTjNtaHBPdlp5dkNGeEd4ak5rOUIz?= =?utf-8?B?cXY5S0VZY2Q0QkFOUzAxbHI2OU04WExWZE1xL0NqU3hUbVB1bFo4bjd4Rysv?= =?utf-8?B?L1VQT0IzTE9oUWhFZHlmQzNZRGp6OFZJSmI0L3UwbitqVVVYNWxNNUMzTzJv?= =?utf-8?B?amUwNWxaRndZK3VXRXRoQkN3NGh6R3c1RXBhMDlidWtzVGhMalJVeXY0Z1I2?= =?utf-8?B?Y2NwN2grNWdCZG52YllZUWNXUHEvVGFHdlhRNVRiVDFuVXlDUCt1L2ZueUdD?= =?utf-8?B?UHBYNU5jTi95YzczcmNCVVNBM2hIRm93TVZzVDd2TFcyMXNwYXFlRjBnUmlH?= =?utf-8?B?MWZKTzFwaHpvQ2t1TGRZR3M5d0REVkVuNWN3SjNVRDFoLys1UWJtd3NMZGU1?= =?utf-8?Q?EQU/lwoT86GVFCJNzqmZmEL9X?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5483.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 599863bb-5bcd-45d3-1f29-08db0a3f77f2 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Feb 2023 01:46:31.4474 (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: i4TPtZwpeX9ngVaneEUGA1+Vsg6Ut9w0artytEUBqSqag97TGVF+W/9izLxPdE1D1S6vuwewJSRUNN5bWIpLog== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB7064 Return-Path: chasel.chiu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 DQpUaGFua3MgSXNhYWMhDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTog T3JhbSwgSXNhYWMgVyA8aXNhYWMudy5vcmFtQGludGVsLmNvbT4NCj4gU2VudDogV2VkbmVzZGF5 LCBGZWJydWFyeSA4LCAyMDIzIDU6MzkgUE0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBt aWt1YmFja0BsaW51eC5taWNyb3NvZnQuY29tOyBDaGl1LCBDaGFzZWwNCj4gPGNoYXNlbC5jaGl1 QGludGVsLmNvbT4NCj4gQ2M6IFMsIEFzaHJhZiBBbGkgPGFzaHJhZi5hbGkuc0BpbnRlbC5jb20+ OyBDaGFnYW50eSwgUmFuZ2FzYWkgVg0KPiA8cmFuZ2FzYWkudi5jaGFnYW50eUBpbnRlbC5jb20+ OyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsgS3ViYWNraSwNCj4gTWljaGFlbCA8bWljaGFl bC5rdWJhY2tpQG1pY3Jvc29mdC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW2Vk azItcGxhdGZvcm1zOiBQQVRDSCB2NF0NCj4gSW50ZWxTaWxpY29uUGtnL1NwaUZ2YlNlcnZpY2VT bW06IFJld3JpdGUgVmFyaWFibGVTdG9yZSBoZWFkZXIuDQo+IA0KPiBSZXZpZXdlZC1ieTogSXNh YWMgT3JhbSA8aXNhYWMudy5vcmFtQGludGVsLmNvbT4NCj4gDQo+IEF0IHNvbWUgcG9pbnQsIHdl IHNob3VsZCB3b3JrIHRvIGNvbW1lbnQgdGhlIHJlbGF0ZWQgZmxvd3MgYmV0dGVyIHNvIHRoYXQN Cj4gY29kZSBpcyBjbGVhciBvbiB0aGUgZGlmZmVyZW50IHJlc3BvbnNpYmlsaXRpZXMgZm9yIHRo ZSBkaWZmZXJlbnQgcGF0aHMgdGhyb3VnaCBmaXJzdA0KPiBib290cywgbm9ybWFsIHNjZW5hcmlv cywgcmVjbGFpbXMsIGFuZCBlcnJvciByZW1lZGlhdGlvbi4gIEZvciBub3cgdGhvdWdoLCB0aGlz DQo+IGlzIGZpbmUuDQo+IA0KPiBSZWdhcmRzLA0KPiBJc2FhYw0KPiANCj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIu Z3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgTWljaGFlbA0KPiBLdWJhY2tpDQo+IFNlbnQ6IFdlZG5l c2RheSwgRmVicnVhcnkgOCwgMjAyMyA0OjQxIFBNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5p bzsgQ2hpdSwgQ2hhc2VsIDxjaGFzZWwuY2hpdUBpbnRlbC5jb20+DQo+IENjOiBTLCBBc2hyYWYg QWxpIDxhc2hyYWYuYWxpLnNAaW50ZWwuY29tPjsgT3JhbSwgSXNhYWMgVw0KPiA8aXNhYWMudy5v cmFtQGludGVsLmNvbT47IENoYWdhbnR5LCBSYW5nYXNhaSBWDQo+IDxyYW5nYXNhaS52LmNoYWdh bnR5QGludGVsLmNvbT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBLdWJhY2tpLA0KPiBN aWNoYWVsIDxtaWNoYWVsLmt1YmFja2lAbWljcm9zb2Z0LmNvbT4NCj4gU3ViamVjdDogUmU6IFtl ZGsyLWRldmVsXSBbZWRrMi1wbGF0Zm9ybXM6IFBBVENIIHY0XQ0KPiBJbnRlbFNpbGljb25Qa2cv U3BpRnZiU2VydmljZVNtbTogUmV3cml0ZSBWYXJpYWJsZVN0b3JlIGhlYWRlci4NCj4gDQo+IFJl dmlld2VkLWJ5OiBNaWNoYWVsIEt1YmFja2kgPG1pY2hhZWwua3ViYWNraUBtaWNyb3NvZnQuY29t Pg0KPiANCj4gT24gdGhlIGZvbGxvd2luZyBsaW5lcywgSSByZWNvbW1lbmQgbW92aW5nIHRoZSBh c3NpZ25tZW50IHVudGlsIGFmdGVyIHRoZSBpZg0KPiBibG9jay4gSXQgc2VlbXMgdW5uZWNlc3Nh cnkgdG8gYXNzaWduIGEgcG90ZW50aWFsbHkgaW52YWxpZCB2YWx1ZSB0byBhIGxvY2FsDQo+IHZh cmlhYmxlIGJlZm9yZSBjaGVja2luZyB0aGUgdmFsaWRhdGlvbiByZXN1bHQuDQo+IA0KPiAgICBT dGF0dXMgPSBTYWZlVWludDY0VG9VaW50MzIgKEJhc2VBZGRyZXNzLA0KPiAmbVBsYXRmb3JtRnZC YXNlQWRkcmVzc1swXS5GdkJhc2UpOw0KPiAgICBOdlN0b3JhZ2VCYXNlQWRkcmVzcyA9IG1QbGF0 Zm9ybUZ2QmFzZUFkZHJlc3NbMF0uRnZCYXNlOw0KPiAgICBpZiAoRUZJX0VSUk9SIChTdGF0dXMp KSB7DQo+ICAgICAgQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gICAgICBERUJVRyAoKERF QlVHX0VSUk9SLCAiWyVhXSAtIDY0LWJpdCB2YXJpYWJsZSBzdG9yYWdlIGJhc2UgYWRkcmVzcyBu b3QNCj4gc3VwcG9ydGVkLlxuIiwgX19GVU5DVElPTl9fKSk7DQo+ICAgICAgcmV0dXJuOw0KPiAg ICB9DQo+IA0KPiAtLS0NCj4gDQo+IChzaW1pbGFyIGZvciBOdlN0b3JhZ2VGdlNpemUpDQo+IA0K PiBUaGFua3MsDQo+IE1pY2hhZWwNCj4gDQo+IE9uIDIvOC8yMDIzIDU6MTcgUE0sIENoaXUsIENo YXNlbCB3cm90ZToNCj4gPiBXaGVuIGludmFsaWQgVmFyaWFibGVTdG9yZSBGViBoZWFkZXIgZGV0 ZWN0ZWQsIGN1cnJlbnQgU3BpRnZiU2VydmljZQ0KPiA+IHdpbGwgZXJhc2UgYm90aCBGViBhbmQg VmFyaWFibGVTdG9yZSBoZWFkZXJzIGZyb20gZmxhc2gsIGhvd2V2ZXIsIGl0DQo+ID4gd2lsbCBv bmx5IHJld3JpdGUgRlYgaGVhZGVyIGJhY2sgYW5kIGNhdXNlIGludmFsaWQgVmFyaWFibGVTdG9y ZQ0KPiA+IGhlYWRlci4NCj4gPg0KPiA+IFRoaXMgcGF0Y2ggYWRkaW5nIHRoZSBzdXBwb3J0IGZv ciByZXdyaXRpbmcgYm90aCBGViBoZWFkZXIgYW5kDQo+ID4gVmFyaWFibGVTdG9yZSBoZWFkZXIg d2hlbiBWYXJpYWJsZVN0b3JlIGNvcnJ1cHRpb24gaGFwcGVuZWQuDQo+ID4gVGhlIENvcnJ1cHRl ZCB2YXJpYWJsZSBjb250ZW50IHNob3VsZCBiZSB0YWtlbiBjYXJlIGJ5DQo+ID4gRmF1bHRUb2xl cmFudFdyaXRlIGRyaXZlciBsYXRlci4NCj4gPg0KPiA+IFBsYXRmb3JtIGhhcyB0byBzZXQgUGNk Rmxhc2hWYXJpYWJsZVN0b3JlVHlwZSB0byBpbmZvcm0gU3BpRnZiU2VydmljZQ0KPiA+IHdoaWNo IFZhcmlhYmxlU3RvcmVUeXBlIHNob3VsZCBiZSByZXdyaXR0ZW4uDQo+ID4NCj4gPiBDYzogQXNo cmFmIEFsaSBTIDxhc2hyYWYuYWxpLnNAaW50ZWwuY29tPg0KPiA+IENjOiBJc2FhYyBPcmFtIDxp c2FhYy53Lm9yYW1AaW50ZWwuY29tPg0KPiA+IENjOiBSYW5nYXNhaSBWIENoYWdhbnR5IDxyYW5n YXNhaS52LmNoYWdhbnR5QGludGVsLmNvbT4NCj4gPiBDYzogUmF5IE5pIDxyYXkubmlAaW50ZWwu Y29tPg0KPiA+IENjOiBNaWNoYWVsIEt1YmFja2kgPG1pY2hhZWwua3ViYWNraUBtaWNyb3NvZnQu Y29tPg0KPiA+IFNpZ25lZC1vZmYtYnk6IENoYXNlbCBDaGl1IDxjaGFzZWwuY2hpdUBpbnRlbC5j b20+DQo+ID4gLS0tDQo+ID4gICBTaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0dXJl L0ZsYXNoL1NwaUZ2YlNlcnZpY2UvU3BpRnZiU2VydmljZU1tLmMNCj4gfCA2OQ0KPiArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0NCj4gLS0tDQo+ID4NCj4gU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9G bGFzaC9TcGlGdmJTZXJ2aWNlL1NwaUZ2YlNlcnZpY2VTbW0uaW5mDQo+IHwgIDMgKysrDQo+ID4g ICBTaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9JbnRlbFNpbGljb25Qa2cuZGVjICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCArKysrKysrKw0KPiA+ICAgMyBmaWxlcyBjaGFu Z2VkLCA3NSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdp dA0KPiA+IGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9GbGFzaC9TcGlG dmJTZXJ2aWNlL1NwaUZ2YlNlcnYNCj4gPiBpY2VNbS5jDQo+ID4gYi9TaWxpY29uL0ludGVsL0lu dGVsU2lsaWNvblBrZy9GZWF0dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2UvU3BpRnZiU2Vydg0KPiA+ IGljZU1tLmMNCj4gPiBpbmRleCA2YjRiY2RjZmUzLi4wNTJiZTk3ODcyIDEwMDY0NA0KPiA+IC0t LQ0KPiA+IGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9GbGFzaC9TcGlG dmJTZXJ2aWNlL1NwaUZ2YlNlcnYNCj4gPiBpY2VNbS5jDQo+ID4gKysrIGIvU2lsaWNvbi9JbnRl bC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9GbGFzaC9TcGlGdmJTZXJ2aWNlL1NwaUZ2Yg0KPiA+ ICsrKyBTZXJ2aWNlTW0uYw0KPiA+IEBAIC0xMiw2ICsxMiw3IEBADQo+ID4gICAjaW5jbHVkZSA8 TGlicmFyeS9NbVNlcnZpY2VzVGFibGVMaWIuaD4NCj4gPg0KPiA+ICAgI2luY2x1ZGUgPExpYnJh cnkvVWVmaURyaXZlckVudHJ5UG9pbnQuaD4NCj4gPg0KPiA+ICAgI2luY2x1ZGUgPFByb3RvY29s L1NtbUZpcm13YXJlVm9sdW1lQmxvY2suaD4NCj4gPg0KPiA+ICsjaW5jbHVkZSA8R3VpZC9WYXJp YWJsZUZvcm1hdC5oPg0KPiA+DQo+ID4NCj4gPg0KPiA+ICAgLyoqDQo+ID4NCj4gPiAgICAgVGhl IGZ1bmN0aW9uIGluc3RhbGxzIEVGSV9GSVJNV0FSRV9WT0xVTUVfQkxPQ0sgcHJvdG9jb2wNCj4g Pg0KPiA+IEBAIC0xMTMsNyArMTE0LDEyIEBAIEZ2YkluaXRpYWxpemUgKA0KPiA+ICAgICBVSU5U MzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1heExiYVNpemU7DQo+ID4NCj4gPiAg ICAgVUlOVDMyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeXRlc1dyaXR0ZW47DQo+ ID4NCj4gPiAgICAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCeXRlc0Vy YXNlZDsNCj4gPg0KPiA+ICsgIEVGSV9QSFlTSUNBTF9BRERSRVNTICAgICAgICAgICAgICAgICAg TnZTdG9yYWdlQmFzZUFkZHJlc3M7DQo+ID4NCj4gPiAgICAgVUlOVDY0ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOdlN0b3JhZ2VGdlNpemU7DQo+ID4NCj4gPiArICBVSU5UMzIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4cGVjdGVkQnl0ZXNXcml0dGVuOw0KPiA+DQo+ ID4gKyAgVkFSSUFCTEVfU1RPUkVfSEVBREVSICAgICAgICAgICAgICAgICAqVmFyaWFibGVTdG9y ZUhlYWRlcjsNCj4gPg0KPiA+ICsgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVmFyaWFibGVTdG9yZVR5cGU7DQo+ID4NCj4gPiArICBVSU5UOCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICpOdlN0b3JlQnVmZmVyOw0KPiA+DQo+ID4NCj4gPg0KPiA+ICAgICBT dGF0dXMgPSBHZXRWYXJpYWJsZUZsYXNoTnZTdG9yYWdlSW5mbyAoJkJhc2VBZGRyZXNzLA0KPiA+ ICZOdlN0b3JhZ2VGdlNpemUpOw0KPiA+DQo+ID4gICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykp IHsNCj4gPg0KPiA+IEBAIC0xMjQsMTIgKzEzMCwxNCBAQCBGdmJJbml0aWFsaXplICgNCj4gPg0K PiA+DQo+ID4gICAgIC8vIFN0YXkgd2l0aGluIHRoZSBjdXJyZW50IFVJTlQzMiBzaXplIGFzc3Vt cHRpb25zIGluIHRoZSB2YXJpYWJsZSBzdGFjay4NCj4gPg0KPiA+ICAgICBTdGF0dXMgPSBTYWZl VWludDY0VG9VaW50MzIgKEJhc2VBZGRyZXNzLA0KPiA+ICZtUGxhdGZvcm1GdkJhc2VBZGRyZXNz WzBdLkZ2QmFzZSk7DQo+ID4NCj4gPiArICBOdlN0b3JhZ2VCYXNlQWRkcmVzcyA9IG1QbGF0Zm9y bUZ2QmFzZUFkZHJlc3NbMF0uRnZCYXNlOw0KPiA+DQo+ID4gICAgIGlmIChFRklfRVJST1IgKFN0 YXR1cykpIHsNCj4gPg0KPiA+ICAgICAgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7DQo+ID4N Cj4gPiAgICAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiWyVhXSAtIDY0LWJpdCB2YXJpYWJsZSBz dG9yYWdlIGJhc2UNCj4gPiBhZGRyZXNzIG5vdCBzdXBwb3J0ZWQuXG4iLCBfX0ZVTkNUSU9OX18p KTsNCj4gPg0KPiA+ICAgICAgIHJldHVybjsNCj4gPg0KPiA+ICAgICB9DQo+ID4NCj4gPiAgICAg U3RhdHVzID0gU2FmZVVpbnQ2NFRvVWludDMyIChOdlN0b3JhZ2VGdlNpemUsDQo+ID4gJm1QbGF0 Zm9ybUZ2QmFzZUFkZHJlc3NbMF0uRnZTaXplKTsNCj4gPg0KPiA+ICsgIE52U3RvcmFnZUZ2U2l6 ZSA9IG1QbGF0Zm9ybUZ2QmFzZUFkZHJlc3NbMF0uRnZTaXplOw0KPiA+DQo+ID4gICAgIGlmIChF RklfRVJST1IgKFN0YXR1cykpIHsNCj4gPg0KPiA+ICAgICAgIEFTU0VSVF9FRklfRVJST1IgKFN0 YXR1cyk7DQo+ID4NCj4gPiAgICAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiWyVhXSAtIDY0LWJp dCB2YXJpYWJsZSBzdG9yYWdlIHNpemUgbm90DQo+ID4gc3VwcG9ydGVkLlxuIiwgX19GVU5DVElP Tl9fKSk7DQo+ID4NCj4gPiBAQCAtMTg2LDggKzE5NCw1OSBAQCBGdmJJbml0aWFsaXplICgNCj4g PiAgICAgICAgICAgICB9DQo+ID4NCj4gPiAgICAgICAgICAgICBjb250aW51ZTsNCj4gPg0KPiA+ ICAgICAgICAgICB9DQo+ID4NCj4gPiAtICAgICAgICBCeXRlc1dyaXR0ZW4gPSBGdkhlYWRlci0+ SGVhZGVyTGVuZ3RoOw0KPiA+DQo+ID4gLSAgICAgICAgU3RhdHVzID0gU3BpRmxhc2hXcml0ZSAo KFVJTlROKUJhc2VBZGRyZXNzLCAmQnl0ZXNXcml0dGVuLA0KPiAoVUlOVDgqKUZ2SGVhZGVyKTsN Cj4gPg0KPiA+ICsNCj4gPg0KPiA+ICsgICAgICAgIEJ5dGVzV3JpdHRlbiAgICAgICAgID0gRnZI ZWFkZXItPkhlYWRlckxlbmd0aDsNCj4gPg0KPiA+ICsgICAgICAgIEV4cGVjdGVkQnl0ZXNXcml0 dGVuID0gQnl0ZXNXcml0dGVuOw0KPiA+DQo+ID4gKyAgICAgICAgaWYgKEJhc2VBZGRyZXNzICE9 IE52U3RvcmFnZUJhc2VBZGRyZXNzKSB7DQo+ID4NCj4gPiArICAgICAgICAgIFN0YXR1cyA9IFNw aUZsYXNoV3JpdGUgKChVSU5UTilCYXNlQWRkcmVzcywgJkJ5dGVzV3JpdHRlbiwNCj4gPiArIChV SU5UOCAqKUZ2SGVhZGVyKTsNCj4gPg0KPiA+ICsgICAgICAgIH0gZWxzZSB7DQo+ID4NCj4gPiAr ICAgICAgICAgIC8vDQo+ID4NCj4gPiArICAgICAgICAgIC8vIFRoaXMgaXMgVmFyaWFibGUgU3Rv cmUsIHJld3JpdGUgYm90aA0KPiBFRklfRklSTVdBUkVfVk9MVU1FX0hFQURFUiBhbmQgVkFSSUFC TEVfU1RPUkVfSEVBREVSLg0KPiA+DQo+ID4gKyAgICAgICAgICAvLyBUaGUgY29ycnVwdGVkIFZh cmlhYmxlIGNvbnRlbnQgc2hvdWxkIGJlIHRha2VuIGNhcmUgYnkNCj4gRmF1bHRUb2xlcmFudFdy aXRlIGRyaXZlciBsYXRlci4NCj4gPg0KPiA+ICsgICAgICAgICAgLy8NCj4gPg0KPiA+ICsgICAg ICAgICAgTnZTdG9yZUJ1ZmZlciA9IE5VTEw7DQo+ID4NCj4gPiArICAgICAgICAgIE52U3RvcmVC dWZmZXIgPSBBbGxvY2F0ZVplcm9Qb29sIChzaXplb2YNCj4gPiArIChWQVJJQUJMRV9TVE9SRV9I RUFERVIpICsgRnZIZWFkZXItPkhlYWRlckxlbmd0aCk7DQo+ID4NCj4gPiArICAgICAgICAgIGlm IChOdlN0b3JlQnVmZmVyICE9IE5VTEwpIHsNCj4gPg0KPiA+ICsgICAgICAgICAgICAvLw0KPiA+ DQo+ID4gKyAgICAgICAgICAgIC8vIENvbWJpbmUgRlYgaGVhZGVyIGFuZCBWYXJpYWJsZVN0b3Jl IGhlYWRlciBpbnRvIHRoZSBidWZmZXIuDQo+ID4NCj4gPiArICAgICAgICAgICAgLy8NCj4gPg0K PiA+ICsgICAgICAgICAgICBDb3B5TWVtIChOdlN0b3JlQnVmZmVyLCBGdkhlYWRlciwNCj4gPiAr IEZ2SGVhZGVyLT5IZWFkZXJMZW5ndGgpOw0KPiA+DQo+ID4gKyAgICAgICAgICAgIFZhcmlhYmxl U3RvcmVIZWFkZXIgPSAoVkFSSUFCTEVfU1RPUkVfSEVBREVSDQo+ID4gKyAqKShOdlN0b3JlQnVm ZmVyICsgRnZIZWFkZXItPkhlYWRlckxlbmd0aCk7DQo+ID4NCj4gPiArICAgICAgICAgICAgVmFy aWFibGVTdG9yZVR5cGUgICA9IFBjZEdldDggKFBjZEZsYXNoVmFyaWFibGVTdG9yZVR5cGUpOw0K PiA+DQo+ID4gKyAgICAgICAgICAgIHN3aXRjaCAoVmFyaWFibGVTdG9yZVR5cGUpIHsNCj4gPg0K PiA+ICsgICAgICAgICAgICAgIGNhc2UgMDoNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgREVC VUcgKChERUJVR19FUlJPUiwgIlR5cGU6IGdFZmlWYXJpYWJsZUd1aWRcbiIpKTsNCj4gPg0KPiA+ ICsgICAgICAgICAgICAgICAgQ29weUd1aWQgKCZWYXJpYWJsZVN0b3JlSGVhZGVyLT5TaWduYXR1 cmUsDQo+ID4gKyAmZ0VmaVZhcmlhYmxlR3VpZCk7DQo+ID4NCj4gPiArICAgICAgICAgICAgICAg IGJyZWFrOw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgY2FzZSAxOg0KPiA+DQo+ID4gKyAgICAg ICAgICAgICAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiVHlwZToNCj4gPiArIGdFZmlBdXRoZW50 aWNhdGVkVmFyaWFibGVHdWlkXG4iKSk7DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgIENvcHlH dWlkICgmVmFyaWFibGVTdG9yZUhlYWRlci0+U2lnbmF0dXJlLA0KPiA+ICsgJmdFZmlBdXRoZW50 aWNhdGVkVmFyaWFibGVHdWlkKTsNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICAgYnJlYWs7DQo+ ID4NCj4gPiArICAgICAgICAgICAgICBkZWZhdWx0Og0KPiA+DQo+ID4gKyAgICAgICAgICAgICAg ICBicmVhazsNCj4gPg0KPiA+ICsgICAgICAgICAgICB9DQo+ID4NCj4gPiArDQo+ID4NCj4gPiAr ICAgICAgICAgICAgLy8NCj4gPg0KPiA+ICsgICAgICAgICAgICAvLyBJbml0aWFsaXplIGNvbW1v biBWYXJpYWJsZVN0b3JlIGhlYWRlciBmaWVsZHMNCj4gPg0KPiA+ICsgICAgICAgICAgICAvLw0K PiA+DQo+ID4gKyAgICAgICAgICAgIFZhcmlhYmxlU3RvcmVIZWFkZXItPlNpemUgICAgICA9IChV SU5UMzIpIChOdlN0b3JhZ2VGdlNpemUgLSBGdkhlYWRlci0NCj4gPkhlYWRlckxlbmd0aCk7DQo+ ID4NCj4gPiArICAgICAgICAgICAgVmFyaWFibGVTdG9yZUhlYWRlci0+Rm9ybWF0ICAgID0gVkFS SUFCTEVfU1RPUkVfRk9STUFUVEVEOw0KPiA+DQo+ID4gKyAgICAgICAgICAgIFZhcmlhYmxlU3Rv cmVIZWFkZXItPlN0YXRlICAgICA9IFZBUklBQkxFX1NUT1JFX0hFQUxUSFk7DQo+ID4NCj4gPiAr ICAgICAgICAgICAgVmFyaWFibGVTdG9yZUhlYWRlci0+UmVzZXJ2ZWQgID0gMDsNCj4gPg0KPiA+ ICsgICAgICAgICAgICBWYXJpYWJsZVN0b3JlSGVhZGVyLT5SZXNlcnZlZDEgPSAwOw0KPiA+DQo+ ID4gKw0KPiA+DQo+ID4gKyAgICAgICAgICAgIC8vDQo+ID4NCj4gPiArICAgICAgICAgICAgLy8g V3JpdGUgYnVmZmVyIHRvIGZsYXNoDQo+ID4NCj4gPiArICAgICAgICAgICAgLy8NCj4gPg0KPiA+ ICsgICAgICAgICAgICBCeXRlc1dyaXR0ZW4gICAgICAgICA9IEZ2SGVhZGVyLT5IZWFkZXJMZW5n dGggKyBzaXplb2YNCj4gKFZBUklBQkxFX1NUT1JFX0hFQURFUik7DQo+ID4NCj4gPiArICAgICAg ICAgICAgRXhwZWN0ZWRCeXRlc1dyaXR0ZW4gPSBCeXRlc1dyaXR0ZW47DQo+ID4NCj4gPiArICAg ICAgICAgICAgU3RhdHVzICAgICAgICAgICAgICAgPSBTcGlGbGFzaFdyaXRlICgoVUlOVE4pQmFz ZUFkZHJlc3MsICZCeXRlc1dyaXR0ZW4sDQo+IE52U3RvcmVCdWZmZXIpOw0KPiA+DQo+ID4gKyAg ICAgICAgICAgIEZyZWVQb29sIChOdlN0b3JlQnVmZmVyKTsNCj4gPg0KPiA+ICsgICAgICAgICAg fSBlbHNlIHsNCj4gPg0KPiA+ICsgICAgICAgICAgICBTdGF0dXMgPSBFRklfT1VUX09GX1JFU09V UkNFUzsNCj4gPg0KPiA+ICsgICAgICAgICAgfQ0KPiA+DQo+ID4gKyAgICAgICAgfQ0KPiA+DQo+ ID4gKw0KPiA+DQo+ID4gICAgICAgICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPg0K PiA+ICAgICAgICAgICAgIERFQlVHICgoREVCVUdfV0FSTiwgIkVSUk9SIC0gU3BpRmxhc2hXcml0 ZSBFcnJvciAgJXJcbiIsDQo+ID4gU3RhdHVzKSk7DQo+ID4NCj4gPiAgICAgICAgICAgICBpZiAo RnZIZWFkZXIgIT0gTlVMTCkgew0KPiA+DQo+ID4gQEAgLTE5NSw5ICsyNTQsOSBAQCBGdmJJbml0 aWFsaXplICgNCj4gPiAgICAgICAgICAgICB9DQo+ID4NCj4gPiAgICAgICAgICAgICBjb250aW51 ZTsNCj4gPg0KPiA+ICAgICAgICAgICB9DQo+ID4NCj4gPiAtICAgICAgICBpZiAoQnl0ZXNXcml0 dGVuICE9IEZ2SGVhZGVyLT5IZWFkZXJMZW5ndGgpIHsNCj4gPg0KPiA+IC0gICAgICAgICAgREVC VUcgKChERUJVR19XQVJOLCAiRVJST1IgLSBCeXRlc1dyaXR0ZW4gIT0gSGVhZGVyTGVuZ3RoXG4i KSk7DQo+ID4NCj4gPiAtICAgICAgICAgIERFQlVHICgoREVCVUdfSU5GTywgIiBCeXRlc1dyaXR0 ZW4gPSAweCVYXG4gSGVhZGVyTGVuZ3RoID0NCj4gMHglWFxuIiwgQnl0ZXNXcml0dGVuLCBGdkhl YWRlci0+SGVhZGVyTGVuZ3RoKSk7DQo+ID4NCj4gPiArICAgICAgICBpZiAoQnl0ZXNXcml0dGVu ICE9IEV4cGVjdGVkQnl0ZXNXcml0dGVuKSB7DQo+ID4NCj4gPiArICAgICAgICAgIERFQlVHICgo REVCVUdfV0FSTiwgIkVSUk9SIC0gQnl0ZXNXcml0dGVuICE9DQo+ID4gKyBFeHBlY3RlZEJ5dGVz V3JpdHRlblxuIikpOw0KPiA+DQo+ID4gKyAgICAgICAgICBERUJVRyAoKERFQlVHX0lORk8sICIg Qnl0ZXNXcml0dGVuID0gMHglWFxuDQo+ID4gKyBFeHBlY3RlZEJ5dGVzV3JpdHRlbiA9IDB4JVhc biIsIEJ5dGVzV3JpdHRlbiwNCj4gPiArIEV4cGVjdGVkQnl0ZXNXcml0dGVuKSk7DQo+ID4NCj4g PiAgICAgICAgICAgICBpZiAoRnZIZWFkZXIgIT0gTlVMTCkgew0KPiA+DQo+ID4gICAgICAgICAg ICAgICBGcmVlUG9vbCAoRnZIZWFkZXIpOw0KPiA+DQo+ID4gICAgICAgICAgICAgfQ0KPiA+DQo+ ID4gZGlmZiAtLWdpdA0KPiA+IGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVy ZS9GbGFzaC9TcGlGdmJTZXJ2aWNlL1NwaUZ2YlNlcnYNCj4gPiBpY2VTbW0uaW5mDQo+ID4gYi9T aWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBrZy9GZWF0dXJlL0ZsYXNoL1NwaUZ2YlNlcnZpY2Uv U3BpRnZiU2Vydg0KPiA+IGljZVNtbS5pbmYNCj4gPiBpbmRleCAwY2ZhM2Y5MDliLi43MzA0OWVj ZWIyIDEwMDY0NA0KPiA+IC0tLQ0KPiA+IGEvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cv RmVhdHVyZS9GbGFzaC9TcGlGdmJTZXJ2aWNlL1NwaUZ2YlNlcnYNCj4gPiBpY2VTbW0uaW5mDQo+ ID4gKysrIGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9GbGFzaC9TcGlG dmJTZXJ2aWNlL1NwaUZ2Yg0KPiA+ICsrKyBTZXJ2aWNlU21tLmluZg0KPiA+IEBAIC00NSw2ICs0 NSw3IEBADQo+ID4gICBbUGNkXQ0KPiA+DQo+ID4gICAgIGdJbnRlbFNpbGljb25Qa2dUb2tlblNw YWNlR3VpZC5QY2RGbGFzaE1pY3JvY29kZUZ2QmFzZSAgICAgICAgICMjDQo+IENPTlNVTUVTDQo+ ID4NCj4gPiAgICAgZ0ludGVsU2lsaWNvblBrZ1Rva2VuU3BhY2VHdWlkLlBjZEZsYXNoTWljcm9j b2RlRnZTaXplICAgICAgICAgIyMNCj4gQ09OU1VNRVMNCj4gPg0KPiA+ICsgIGdJbnRlbFNpbGlj b25Qa2dUb2tlblNwYWNlR3VpZC5QY2RGbGFzaFZhcmlhYmxlU3RvcmVUeXBlICAgICAgICMjDQo+ IFNPTUVUSU1FU19DT05TVU1FUw0KPiA+DQo+ID4NCj4gPg0KPiA+ICAgW1NvdXJjZXNdDQo+ID4N Cj4gPiAgICAgRnZiSW5mby5jDQo+ID4NCj4gPiBAQCAtNjEsNiArNjIsOCBAQA0KPiA+ICAgW0d1 aWRzXQ0KPiA+DQo+ID4gICAgIGdFZmlGaXJtd2FyZUZpbGVTeXN0ZW0yR3VpZCAgICAgICAgICAg ICAgICAgICAjIyBDT05TVU1FUw0KPiA+DQo+ID4gICAgIGdFZmlTeXN0ZW1OdkRhdGFGdkd1aWQg ICAgICAgICAgICAgICAgICAgICAgICAjIyBDT05TVU1FUw0KPiA+DQo+ID4gKyAgZ0VmaVZhcmlh YmxlR3VpZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjIFNPTUVUSU1FU19DT05TVU1F Uw0KPiA+DQo+ID4gKyAgZ0VmaUF1dGhlbnRpY2F0ZWRWYXJpYWJsZUd1aWQgICAgICAgICAgICAg ICAgICMjIFNPTUVUSU1FU19DT05TVU1FUw0KPiA+DQo+ID4NCj4gPg0KPiA+ICAgW0RlcGV4XQ0K PiA+DQo+ID4gICAgIFRSVUUNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9TaWxpY29uL0ludGVsL0lu dGVsU2lsaWNvblBrZy9JbnRlbFNpbGljb25Qa2cuZGVjDQo+ID4gYi9TaWxpY29uL0ludGVsL0lu dGVsU2lsaWNvblBrZy9JbnRlbFNpbGljb25Qa2cuZGVjDQo+ID4gaW5kZXggNDg1Y2IzZTgwYS4u NjNkYWU3NTZhZCAxMDA2NDQNCj4gPiAtLS0gYS9TaWxpY29uL0ludGVsL0ludGVsU2lsaWNvblBr Zy9JbnRlbFNpbGljb25Qa2cuZGVjDQo+ID4gKysrIGIvU2lsaWNvbi9JbnRlbC9JbnRlbFNpbGlj b25Qa2cvSW50ZWxTaWxpY29uUGtnLmRlYw0KPiA+IEBAIC0xODYsMyArMTg2LDExIEBADQo+ID4g ICAgICMgQFByb21wdCBWVGQgYWJvcnQgRE1BIG1vZGUgc3VwcG9ydC4NCj4gPg0KPiA+DQo+ID4N Cj4gZ0ludGVsU2lsaWNvblBrZ1Rva2VuU3BhY2VHdWlkLlBjZFZUZFN1cHBvcnRBYm9ydERtYU1v ZGV8RkFMU0V8Qk9PTEUNCj4gQU4NCj4gPiB8MHgwMDAwMDAwQw0KPiA+DQo+ID4NCj4gPg0KPiA+ ICsgICMjIERlZmluZSBGbGFzaCBWYXJpYWJsZSBTdG9yZSB0eXBlLjxCUj48QlI+DQo+ID4NCj4g PiArICAjICBXaGVuIEZsYXNoIFZhcmlhYmxlIFN0b3JlIGNvcnJ1cHRpb24gaGFwcGVuZWQsIHRo ZSBTcGlGdmJTZXJ2aWNlDQo+ID4gKyB3aWxsIHJlY3JlYXRlIFZhcmlhYmxlIFN0b3JlDQo+ID4N Cj4gPiArICAjICB3aXRoIHZhbGlkIGhlYWRlciBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSB0aGlz IFBDRCB2YWx1ZS48QlI+DQo+ID4NCj4gPiArICAjICAwOiBWYXJpYWJsZSBTdG9yZSBpcyBnRWZp VmFyaWFibGVHdWlkIHR5cGUuPEJSPg0KPiA+DQo+ID4gKyAgIyAgMTogVmFyaWFibGUgU3RvcmUg aXMgZ0VmaUF1dGhlbnRpY2F0ZWRWYXJpYWJsZUd1aWQgdHlwZS48QlI+DQo+ID4NCj4gPiArICAj ICBPdGhlciB2YWx1ZTogcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuPEJSPg0KPiA+DQo+ID4gKyAg IyBAUHJvbXB0IEZsYXNoIFZhcmlhYmxlIFN0b3JlIHR5cGUuDQo+ID4NCj4gPiArDQo+ID4gKyBn SW50ZWxTaWxpY29uUGtnVG9rZW5TcGFjZUd1aWQuUGNkRmxhc2hWYXJpYWJsZVN0b3JlVHlwZXww eDAwfFVJTlQ4fA0KPiA+ICsgMHgwMDAwMDAwRQ0KPiA+DQo+IA0KPiANCj4gDQo+IA0KDQo=