From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web09.22057.1658939866481075074 for ; Wed, 27 Jul 2022 09:37:46 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=e80RwqgO; spf=pass (domain: intel.com, ip: 192.55.52.93, 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=1658939866; x=1690475866; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=4ZTAcsrT/q9785Xygk6Mtl4WPVBE32zxCQ3gSC3H1J8=; b=e80RwqgOnxBGyj02mFHv1CVUFAD4oR647TBmRyqGF+IVygBf22ir+q0Y UvdmDncpdZsBcWb8LGwGSaLfi84C52nJS27FripxXQgHZfqUSRLVRzRZS FVojugguFoZZxatgM3krWuOlrm3uuX5PnITGecM6fQglyy8XO6bJsjG8D ZJkwPDmIFyImW1kzWHDsswRuYG1wHFiQxuMJKS12ytOydulYEGBxjNQ9x d4P5cwFXDd+bBADCOWbecM3rW59+M3H3P9SQ0XbceUiKti6qyiBXQ849u 8s6aja/NWbe1O+Jm7fVnN1neBZgBDthu0yCq7ePD7vMsp94F/T1onXpvI A==; X-IronPort-AV: E=McAfee;i="6400,9594,10421"; a="285830326" X-IronPort-AV: E=Sophos;i="5.93,196,1654585200"; d="scan'208";a="285830326" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Jul 2022 09:37:45 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,196,1654585200"; d="scan'208";a="726989844" Received: from orsmsx604.amr.corp.intel.com ([10.22.229.17]) by orsmga004.jf.intel.com with ESMTP; 27 Jul 2022 09:37:45 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX604.amr.corp.intel.com (10.22.229.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.28; Wed, 27 Jul 2022 09:37:45 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) 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.2375.28; Wed, 27 Jul 2022 09:37:44 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) 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.2375.28 via Frontend Transport; Wed, 27 Jul 2022 09:37:44 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169) 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.2375.28; Wed, 27 Jul 2022 09:37:44 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bVbhs4P5E0vkP9MeBQ391Bte4L58CyUuDSVup1EL//iGuMEHQh1EqldAgg5vbeyz1O8zxhkljmYOhxKcCItmpD3NyNyYKdm5/7dCGyYIVotsST9jdgIMavDBvu2IU30O7VNGXhXqvLmRMdyfnv2VBfzAHelL8xJpFugIifeoKI8+FMfQBM2c9sbAyPnjrNlp7w0sBVRQ5AEEDYQNpHFUl+PffOBLDvw/pZ2lkNyywPZ1tS3gbkMM1waZuYoX8oz9MbgkEUVRZ5/ShPbKVcTuBnVc/OfKPK5sHC5oySxsNvpyvo1kKyYBKj1CvQLs8zip7qXEkIs4Liw2aJ+VXU1kzA== 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=4ZTAcsrT/q9785Xygk6Mtl4WPVBE32zxCQ3gSC3H1J8=; b=Ciaoqw7CgmdZEcegkfwRcby+UfpThTif/IJVNuiQjHrvrYlryVeBAWcAxWaFydZtJtk78pWwPBl3xjVrNhSC4Y8AKatQ4IYaxpcNV1gFHGkQlPB0/8eVEnScbjFdYjkxTKoCtrPCSaiddVNdtXm7SQWBcmB+MXLD9FZK8YUuYfQS9Qa3mioULNNcCAh5wlfK+zDgP9LqqSELnPeIDYyzyOjv8CDA3oBQhvFibk1/evxiUx40ZasTmKV0MfBpwrxJYs/73iKulS/qvXa3zuz3dkyhjjp/NyGFv6EuKZDJj9hHpC7YiRX0euA+mXTnq/3aKGy6qW0eYL5vX4bUSTR7mQ== 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 CY5PR11MB6318.namprd11.prod.outlook.com (2603:10b6:930:3e::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5482.6; Wed, 27 Jul 2022 16:37:42 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::99d7:f73:c72c:12f3]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::99d7:f73:c72c:12f3%8]) with mapi id 15.20.5458.024; Wed, 27 Jul 2022 16:37:42 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "Yao, Jiewen" , "Zhang, Qi1" , "Kinney, Michael D" CC: "Wang, Jian J" Subject: Re: [edk2-devel] [PATCH] SecurityPkg: Add retry mechanism for tpm command Thread-Topic: [edk2-devel] [PATCH] SecurityPkg: Add retry mechanism for tpm command Thread-Index: AQHYoa0JfRfKcLhnFkONkr5dobIMBq2SH1uAgABLHTA= Date: Wed, 27 Jul 2022 16:37:42 +0000 Message-ID: References: <20220727113532.843-1-qi1.zhang@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.500.17 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0c4be42e-d3f6-4724-342d-08da6fee5396 x-ms-traffictypediagnostic: CY5PR11MB6318:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: woIYHGE8qU0shVgFe7/Dow3xjvgKjxg9EMLkxZdy4A9MtxTbtWUKQ8NgggJbGanYqIf3F5tTXcyfJzSM+Zac3P7L39jWyNa/rDlBlOtBpfQR3DTWBx5aaDTI1ts6SLlOdLbEy/leTyldWxTF/ieHdD4WquIvwDeFUBuunbNqDRDkv6NT3sS5oqD/7LuPuP5+KM40qt1oLhOo2pXJBddaM5x8q9741vyyEuTd/aAMTqCSAZBNKWj2eA41Dl6kevAJD8z73hsAEzPFvjQNKjKMZjGaTKZm+ESqWzO3WomwqJNGqTCRT0/KT1htFrhN7DMxLdkbFFjl/q/dS0Y5OA+YB5bKkrXo0lY1BEq9cWGFpeiYjSnDRuai8LlDMZMCU9N4rUvCZDso0ywi/Clbs/qjpBNoskO4RrL9vS8VDuVK908zVWFU53jcSAQsOfGk4LhHftyuX8n03LrP4p4jDlDHqg2cS/2U6spSvdFJOjE2E7cKjPWLxYalQz7QNdcoYm3X8AVZ/hkjf5/6d3HCRCp8OwBlGlS6BkjLmozomcCKr1p2ROWGs8EKDFTSppR5TkUkuX5QvLmwXpsgALVz57J58NLvmfSkhAcBAol+zUgUdcuwHNBrnEuI2Cq4RIz7bUHAEqDzKrxRoGggmn+S2UxgjJskPQuLBewXTTMmjBRpHd66H74a2oDngEJiZG3+H4EvFv9C5XCtOH7urczeb0KdiI97ypW45ifFDas+KC5W+JlrAgQ0epfDofHNjvg6zUeJiSZt1de8Wdmu9SfNQlux52ok9pjUy343ZYiDYL6bOxxACuICRVxuMDWQY0LX5AzBaLxHpQWOThvtaryQZe/UkxCQw1Tu2YkyTEynU7o4pGkzKzcv6UklxEh+UaYd9CS1 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:(13230016)(136003)(366004)(376002)(39860400002)(396003)(346002)(52536014)(7696005)(6506007)(478600001)(316002)(110136005)(19627235002)(86362001)(15650500001)(2906002)(41300700001)(8936002)(5660300002)(53546011)(9686003)(26005)(107886003)(33656002)(55016003)(38070700005)(82960400001)(186003)(71200400001)(8676002)(76116006)(66446008)(64756008)(4326008)(66476007)(122000001)(38100700002)(966005)(66946007)(66556008)(83380400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aHZyQ3Q1Rkl6YUdHUWR0NmE0OHlrY1lhTEc4UjlqUFBBWmRxY2IxZStDTGZt?= =?utf-8?B?VTJYOXF2S2N6dVZ5Uk03WEZKSWpZbFVpTHhJZnUzQURuU2d2Sk5DcVBHMWVl?= =?utf-8?B?NGtEVnRYQ3BqNmM0YjNxMVR5Q2t6VG1oaGpnUStLMFBqMjMraHdKL0Vzajdk?= =?utf-8?B?V2dsZE41a0ltRWFEc1I2RVhvM2NtcnZFNlFoZmtnUyt3cFRyaEo5Syt5VzFZ?= =?utf-8?B?OWppSmpYcGhlS3Z4eFhtUHdubG5iR2wrVjBtbGhkN0FsanZiOWYxRlNMVnVu?= =?utf-8?B?QitaOFJWbDk1VmlvRkp3S3ZmWkttY3hzQkw3cG95SjJQeDE4S1dGWVNnV1Ix?= =?utf-8?B?enNjVVdsZm1qMUtLRVRvT3ZPeW1MVW1uVnNXa2hwMVVsMEhGUDRqTWh2UHBh?= =?utf-8?B?UkZveEsxWk5wQmpMdHErTVhBK2tBZVRiMm8yT2wrMGtaWmhYYWt1RkJEODJU?= =?utf-8?B?KytoR2pQZTlINGtPWW9BdnlIYzJZdVFhanpxUGJRSGllbnNmZ2FTczdjcG1x?= =?utf-8?B?aVptdzA0c3pHMlFRdFJXVm9jVzgzOVJHY3BKTjUvZ3RXemUzS01Rd1Q5K2Fy?= =?utf-8?B?amRTeDh0d0tlTGp1b3VSVTRPL2tvS1JSZWpMMU5lWno1WGFjOCtUTU1KemlO?= =?utf-8?B?VkxlY3Y0S2FybGQ1ZjkwMFJBRmw4cFIrQTBZczRYNW1SMkJGcktZUG9Xd2kz?= =?utf-8?B?cDRVUm44aExPQURTa2RRWGxoV0k2QUZZdHlTOXZ0RlhjOHhMZTBEN1hoK2NX?= =?utf-8?B?aTh5RW90VU5WSTl4VzF5ZEZPVllEUzg0Nng5ZWQwKzllMnY5U1c0TktUYjBr?= =?utf-8?B?UU1ZUG0zRzNqLzJHdjVXbG5BdUtKVE0ybkJlVDMzTnpjeE9hdmpuL3NBVVV6?= =?utf-8?B?UzY1dzVacFpISlV3R0dnSVBhMk9TaEpQcUd4UFd6MDNvR1VUeWR0TmRyZ1Rn?= =?utf-8?B?ejZEK0FOZi9IaFFKcXBsODBWN29CWnRqOFBGMnUxMWZqb0J0TUFvVEtxcUtH?= =?utf-8?B?cWdockJVU3EvdEdqeEZwamxRRHFOY1c3SkFaNTVSNFVjZzBkc2JHcC9jcnpX?= =?utf-8?B?NG02bGh4WmVWS1FLMFA3N1MveHlMWmpMd1ExQUsyaXY3UDMvQUY2a2h1a3ox?= =?utf-8?B?ajh4TTlRUk84RzhCZUFKbUFyL2dtYzV3ZlFoNy90MllUNnFuUTBDQmttTUZK?= =?utf-8?B?M3ZOOHByTGRLSm8xOHFKL0s3emI1R1BUSm1haGlJTFRkZFVsbVlBc2JHUk5W?= =?utf-8?B?SUhKRnpTM280aFJjSFRVL2hXZ003WmlQRW0wL3p6K1R1aG04K1d3TEgrSWpm?= =?utf-8?B?UEQyQ2V5aTdEb3NTM0hEV1p4Sk8xMVNtWjN1U0tic09HU0RDQnB6UXhWWU03?= =?utf-8?B?Q1NHSElXMEhiYXZDY0N4bENKMG41SG01RUovbkw2ZUxLb1lWbUxDbGFnb0Fz?= =?utf-8?B?bXlLeTJLUFlqYm5nUS8xbXlldjBpS3BpenBaNFRLc0d3a0wvelZRL1g0alVJ?= =?utf-8?B?bU40VUlReDVvOHpzN3FMUU8zYktyZmREeUtvZEV6RmNSQmVjOUxzZEVKVGt0?= =?utf-8?B?M1J0MUdBd2tMUVcxZS9JaFJiNzhESGtMRGlucWZXM3JpRnBOVVJzYk13aVEr?= =?utf-8?B?L2I4dURGWUhOZXJUY2R0ZkdOdndmRkRaR2x2THdYb2NKeXo5WVBwRDVsRlMy?= =?utf-8?B?cWo3NTlPUXB6UVV5elpxU0pCWUxGWlhvWnBCek1IL29oRzFGWlJ4dDVGaW9q?= =?utf-8?B?dmpwYmNBbERmSHBQWG1QWXJRUFNuOFdEdlFHZmhYSWhkcXA3c0Y4MDNaMGlS?= =?utf-8?B?Y0lvajkxdHdoOFlFcGFaU0ZQWW1ldGhCSCtDaFRTWk44akNpSjR1WXlkN2dB?= =?utf-8?B?VFVNZkU1cFNQdDN1N0haMU1QNFNUM1JvSjVZaEVwUjdUS1g4a1Y0cDVsdGhZ?= =?utf-8?B?RURZZ0lOamxucW1ISG5ZZ2xkYU5GTkY3NUd6N0IrRDlYaDJYdXBhTXdFeUlB?= =?utf-8?B?VWpuVGdrUlFIbXhXQTArUDdLL1BjY1FwV2xmaHhRQWo3dXkzSjdDMTNqQlMz?= =?utf-8?B?SkRwQzFQdldmUzdPd1RDZy9RV0Z6TTZQdk5TajFnb0UvdEo0WkpSNzJjWUs5?= =?utf-8?B?OUlwMk9PVi9QSXFmOEQ4dEdBY0xkTGdVdmlsOFN2aWRnUVNHVjRiYmlPRmVD?= =?utf-8?B?T3c9PQ==?= 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: 0c4be42e-d3f6-4724-342d-08da6fee5396 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jul 2022 16:37:42.1130 (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: oJTxgOfYhX38DtoNef6baEcTp+JDu9hkItg360yZIWb54sM1paJcOKYkAWyj/0rKQoRw/1dCdnvEJIAeqngu1M3H6YztLIZULq2WazKo3C4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR11MB6318 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 V2h5IGlzIDMgdGhlIGNvcnJlY3QgcmV0cnkgY291bnQ/DQoNCkRvIHdlIG5lZWQgdGhpcyB0byBi ZSBjb25maWd1cmFibGU/DQoNCklzIGEgZGVsYXkgcmVxdWlyZWQgYmV0d2VlbiByZXRyaWVzPw0K DQpXaGF0IHNwZWNpZmljIHN0YXRlIGlzIGEgRFRQTSBnZXR0aW5nIGludG8gdGhhdA0KcmVxdWly ZXMgdGhpcyByZXRyeSBtZWNoYW5pc20/ICBDYW4gdGhhdCBzdGF0ZSBiZQ0KZGV0ZWN0ZWQ/DQoN ClRoYW5rcywNCg0KTWlrZQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206 IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9m IFlhbywgSmlld2VuDQo+IFNlbnQ6IFdlZG5lc2RheSwgSnVseSAyNywgMjAyMiA1OjA3IEFNDQo+ IFRvOiBaaGFuZywgUWkxIDxxaTEuemhhbmdAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMu aW8NCj4gQ2M6IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiBTdWJqZWN0 OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSF0gU2VjdXJpdHlQa2c6IEFkZCByZXRyeSBtZWNoYW5p c20gZm9yIHRwbSBjb21tYW5kDQo+IA0KPiBUaGFua3MuIFBsZWFzZSBhZGQgQnVnemlsbGEgSUQg YW5kIGFkZCB0ZXN0ZWQtYnkgdGFnIGJ5IHRoZSBwZW9wbGUgd2hvIHBlcmZvcm1lZCB0aGUgdGVz dC4NCj4gDQo+IEZvciB0aGUgY29kZSwgcmV2aWV3ZWQtYnk6IEppZXdlbiBZYW8gPEppZXdlbi55 YW9AaW50ZWwuY29tPg0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZy b206IFpoYW5nLCBRaTEgPHFpMS56aGFuZ0BpbnRlbC5jb20+DQo+ID4gU2VudDogV2VkbmVzZGF5 LCBKdWx5IDI3LCAyMDIyIDc6MzYgUE0NCj4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4g PiBDYzogWmhhbmcsIFFpMSA8cWkxLnpoYW5nQGludGVsLmNvbT47IFlhbywgSmlld2VuIDxqaWV3 ZW4ueWFvQGludGVsLmNvbT47DQo+ID4gV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5j b20+DQo+ID4gU3ViamVjdDogW1BBVENIXSBTZWN1cml0eVBrZzogQWRkIHJldHJ5IG1lY2hhbmlz bSBmb3IgdHBtIGNvbW1hbmQNCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IFFpIFpoYW5nIDxxaTEu emhhbmdAaW50ZWwuY29tPg0KPiA+IENjOiBKaWV3ZW4gWWFvIDxqaWV3ZW4ueWFvQGludGVsLmNv bT4NCj4gPiBDYzogSmlhbiBKIFdhbmcgPGppYW4uai53YW5nQGludGVsLmNvbT4NCj4gPiAtLS0N Cj4gPiAgLi4uL0xpYnJhcnkvVHBtMkRldmljZUxpYkRUcG0vVHBtMlB0cC5jICAgICAgIHwgMTA3 ICsrKysrKysrKysrLS0tLS0tLQ0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgNjggaW5zZXJ0aW9ucygr KSwgMzkgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvU2VjdXJpdHlQa2cvTGli cmFyeS9UcG0yRGV2aWNlTGliRFRwbS9UcG0yUHRwLmMNCj4gPiBiL1NlY3VyaXR5UGtnL0xpYnJh cnkvVHBtMkRldmljZUxpYkRUcG0vVHBtMlB0cC5jDQo+ID4gaW5kZXggMWQ5OWJlYWExMC4uNmI1 OTk0ZmRlMiAxMDA2NDQNCj4gPiAtLS0gYS9TZWN1cml0eVBrZy9MaWJyYXJ5L1RwbTJEZXZpY2VM aWJEVHBtL1RwbTJQdHAuYw0KPiA+ICsrKyBiL1NlY3VyaXR5UGtnL0xpYnJhcnkvVHBtMkRldmlj ZUxpYkRUcG0vVHBtMlB0cC5jDQo+ID4gQEAgLTMzLDYgKzMzLDExIEBAIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+ID4gIC8vDQo+ID4NCj4gPiAgI2RlZmlu ZSBUUE1DTURCVUZMRU5HVEggIDB4NTAwDQo+ID4NCj4gPg0KPiA+DQo+ID4gKy8vDQo+ID4NCj4g PiArLy8gTWF4IHJldHJ5IGNvdW50DQo+ID4NCj4gPiArLy8NCj4gPg0KPiA+ICsjZGVmaW5lIFJF VFJZX0NOVF9NQVggIDMNCj4gPg0KPiA+ICsNCj4gPg0KPiA+ICAvKioNCj4gPg0KPiA+ICAgIENo ZWNrIHdoZXRoZXIgVFBNIFBUUCByZWdpc3RlciBleGlzdC4NCj4gPg0KPiA+DQo+ID4NCj4gPiBA QCAtMTUzLDYgKzE1OCw3IEBAIFB0cENyYlRwbUNvbW1hbmQgKA0KPiA+ICAgIFVJTlQzMiAgICAg IFRwbU91dFNpemU7DQo+ID4NCj4gPiAgICBVSU5UMTYgICAgICBEYXRhMTY7DQo+ID4NCj4gPiAg ICBVSU5UMzIgICAgICBEYXRhMzI7DQo+ID4NCj4gPiArICBVSU5UOCAgICAgICBSZXRyeUNudDsN Cj4gPg0KPiA+DQo+ID4NCj4gPiAgICBERUJVR19DT0RFX0JFR0lOICgpOw0KPiA+DQo+ID4gICAg VUlOVE4gIERlYnVnU2l6ZTsNCj4gPg0KPiA+IEBAIC0xNzksNTMgKzE4NSw3NiBAQCBQdHBDcmJU cG1Db21tYW5kICgNCj4gPiAgICBERUJVR19DT0RFX0VORCAoKTsNCj4gPg0KPiA+ICAgIFRwbU91 dFNpemUgPSAwOw0KPiA+DQo+ID4NCj4gPg0KPiA+IC0gIC8vDQo+ID4NCj4gPiAtICAvLyBTVEVQ IDA6DQo+ID4NCj4gPiAtICAvLyBpZiBDYXBDUmJJZGVsQnlQYXNzID09IDAsIGVuZm9yY2UgSWRs ZSBzdGF0ZSBiZWZvcmUgc2VuZGluZyBjb21tYW5kDQo+ID4NCj4gPiAtICAvLw0KPiA+DQo+ID4g LSAgaWYgKChHZXRDYWNoZWRJZGxlQnlQYXNzICgpID09IDApICYmICgoTW1pb1JlYWQzMiAoKFVJ TlROKSZDcmJSZWctDQo+ID4gPkNyYkNvbnRyb2xTdGF0dXMpICYgUFRQX0NSQl9DT05UUk9MX0FS RUFfU1RBVFVTX1RQTV9JRExFKSA9PSAwKSkgew0KPiA+DQo+ID4gKyAgUmV0cnlDbnQgPSAwOw0K PiA+DQo+ID4gKyAgd2hpbGUgKFRSVUUpIHsNCj4gPg0KPiA+ICsgICAgLy8NCj4gPg0KPiA+ICsg ICAgLy8gU1RFUCAwOg0KPiA+DQo+ID4gKyAgICAvLyBpZiBDYXBDUmJJZGVsQnlQYXNzID09IDAs IGVuZm9yY2UgSWRsZSBzdGF0ZSBiZWZvcmUgc2VuZGluZyBjb21tYW5kDQo+ID4NCj4gPiArICAg IC8vDQo+ID4NCj4gPiArICAgIGlmICgoR2V0Q2FjaGVkSWRsZUJ5UGFzcyAoKSA9PSAwKSAmJiAo KE1taW9SZWFkMzIgKChVSU5UTikmQ3JiUmVnLQ0KPiA+ID5DcmJDb250cm9sU3RhdHVzKSAmIFBU UF9DUkJfQ09OVFJPTF9BUkVBX1NUQVRVU19UUE1fSURMRSkgPT0gMCkpIHsNCj4gPg0KPiA+ICsg ICAgICBTdGF0dXMgPSBQdHBDcmJXYWl0UmVnaXN0ZXJCaXRzICgNCj4gPg0KPiA+ICsgICAgICAg ICAgICAgICAgICZDcmJSZWctPkNyYkNvbnRyb2xTdGF0dXMsDQo+ID4NCj4gPiArICAgICAgICAg ICAgICAgICBQVFBfQ1JCX0NPTlRST0xfQVJFQV9TVEFUVVNfVFBNX0lETEUsDQo+ID4NCj4gPiAr ICAgICAgICAgICAgICAgICAwLA0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgUFRQX1RJTUVP VVRfQw0KPiA+DQo+ID4gKyAgICAgICAgICAgICAgICAgKTsNCj4gPg0KPiA+ICsgICAgICBpZiAo RUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4NCj4gPiArICAgICAgICBSZXRyeUNudCsrOw0KPiA+ DQo+ID4gKyAgICAgICAgaWYgKFJldHJ5Q250IDwgUkVUUllfQ05UX01BWCkgew0KPiA+DQo+ID4g KyAgICAgICAgICBNbWlvV3JpdGUzMiAoKFVJTlROKSZDcmJSZWctPkNyYkNvbnRyb2xSZXF1ZXN0 LA0KPiA+IFBUUF9DUkJfQ09OVFJPTF9BUkVBX1JFUVVFU1RfR09fSURMRSk7DQo+ID4NCj4gPiAr ICAgICAgICAgIGNvbnRpbnVlOw0KPiA+DQo+ID4gKyAgICAgICAgfSBlbHNlIHsNCj4gPg0KPiA+ ICsgICAgICAgICAgLy8NCj4gPg0KPiA+ICsgICAgICAgICAgLy8gVHJ5IHRvIGdvSWRsZSB0byBy ZWNvdmVyIFRQTQ0KPiA+DQo+ID4gKyAgICAgICAgICAvLw0KPiA+DQo+ID4gKyAgICAgICAgICBT dGF0dXMgPSBFRklfREVWSUNFX0VSUk9SOw0KPiA+DQo+ID4gKyAgICAgICAgICBnb3RvIEdvSWRs ZV9FeGl0Ow0KPiA+DQo+ID4gKyAgICAgICAgfQ0KPiA+DQo+ID4gKyAgICAgIH0NCj4gPg0KPiA+ ICsgICAgfQ0KPiA+DQo+ID4gKw0KPiA+DQo+ID4gKyAgICAvLw0KPiA+DQo+ID4gKyAgICAvLyBT VEVQIDE6DQo+ID4NCj4gPiArICAgIC8vIFJlYWR5IGlzIGFueSB0aW1lIHRoZSBUUE0gaXMgcmVh ZHkgdG8gcmVjZWl2ZSBhIGNvbW1hbmQsIGZvbGxvd2luZyBhDQo+ID4gd3JpdGUNCj4gPg0KPiA+ ICsgICAgLy8gb2YgMSBieSBzb2Z0d2FyZSB0byBSZXF1ZXN0LmNtZFJlYWR5LCBhcyBpbmRpY2F0 ZWQgYnkgdGhlIFN0YXR1cyBmaWVsZA0KPiA+DQo+ID4gKyAgICAvLyBiZWluZyBjbGVhcmVkIHRv IDAuDQo+ID4NCj4gPiArICAgIC8vDQo+ID4NCj4gPiArICAgIE1taW9Xcml0ZTMyICgoVUlOVE4p JkNyYlJlZy0+Q3JiQ29udHJvbFJlcXVlc3QsDQo+ID4gUFRQX0NSQl9DT05UUk9MX0FSRUFfUkVR VUVTVF9DT01NQU5EX1JFQURZKTsNCj4gPg0KPiA+ICAgICAgU3RhdHVzID0gUHRwQ3JiV2FpdFJl Z2lzdGVyQml0cyAoDQo+ID4NCj4gPiAtICAgICAgICAgICAgICAgJkNyYlJlZy0+Q3JiQ29udHJv bFN0YXR1cywNCj4gPg0KPiA+IC0gICAgICAgICAgICAgICBQVFBfQ1JCX0NPTlRST0xfQVJFQV9T VEFUVVNfVFBNX0lETEUsDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgJkNyYlJlZy0+Q3JiQ29u dHJvbFJlcXVlc3QsDQo+ID4NCj4gPiAgICAgICAgICAgICAgICAgMCwNCj4gPg0KPiA+ICsgICAg ICAgICAgICAgICBQVFBfQ1JCX0NPTlRST0xfQVJFQV9SRVFVRVNUX0NPTU1BTkRfUkVBRFksDQo+ ID4NCj4gPiAgICAgICAgICAgICAgICAgUFRQX1RJTUVPVVRfQw0KPiA+DQo+ID4gICAgICAgICAg ICAgICAgICk7DQo+ID4NCj4gPiAgICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPg0K PiA+IC0gICAgICAvLw0KPiA+DQo+ID4gLSAgICAgIC8vIFRyeSB0byBnb0lkbGUgdG8gcmVjb3Zl ciBUUE0NCj4gPg0KPiA+IC0gICAgICAvLw0KPiA+DQo+ID4gLSAgICAgIFN0YXR1cyA9IEVGSV9E RVZJQ0VfRVJST1I7DQo+ID4NCj4gPiAtICAgICAgZ290byBHb0lkbGVfRXhpdDsNCj4gPg0KPiA+ ICsgICAgICBSZXRyeUNudCsrOw0KPiA+DQo+ID4gKyAgICAgIGlmIChSZXRyeUNudCA8IFJFVFJZ X0NOVF9NQVgpIHsNCj4gPg0KPiA+ICsgICAgICAgIE1taW9Xcml0ZTMyICgoVUlOVE4pJkNyYlJl Zy0+Q3JiQ29udHJvbFJlcXVlc3QsDQo+ID4gUFRQX0NSQl9DT05UUk9MX0FSRUFfUkVRVUVTVF9H T19JRExFKTsNCj4gPg0KPiA+ICsgICAgICAgIGNvbnRpbnVlOw0KPiA+DQo+ID4gKyAgICAgIH0g ZWxzZSB7DQo+ID4NCj4gPiArICAgICAgICBTdGF0dXMgPSBFRklfREVWSUNFX0VSUk9SOw0KPiA+ DQo+ID4gKyAgICAgICAgZ290byBHb0lkbGVfRXhpdDsNCj4gPg0KPiA+ICsgICAgICB9DQo+ID4N Cj4gPiAgICAgIH0NCj4gPg0KPiA+IC0gIH0NCj4gPg0KPiA+DQo+ID4NCj4gPiAtICAvLw0KPiA+ DQo+ID4gLSAgLy8gU1RFUCAxOg0KPiA+DQo+ID4gLSAgLy8gUmVhZHkgaXMgYW55IHRpbWUgdGhl IFRQTSBpcyByZWFkeSB0byByZWNlaXZlIGEgY29tbWFuZCwgZm9sbG93aW5nIGEgd3JpdGUNCj4g Pg0KPiA+IC0gIC8vIG9mIDEgYnkgc29mdHdhcmUgdG8gUmVxdWVzdC5jbWRSZWFkeSwgYXMgaW5k aWNhdGVkIGJ5IHRoZSBTdGF0dXMgZmllbGQNCj4gPg0KPiA+IC0gIC8vIGJlaW5nIGNsZWFyZWQg dG8gMC4NCj4gPg0KPiA+IC0gIC8vDQo+ID4NCj4gPiAtICBNbWlvV3JpdGUzMiAoKFVJTlROKSZD cmJSZWctPkNyYkNvbnRyb2xSZXF1ZXN0LA0KPiA+IFBUUF9DUkJfQ09OVFJPTF9BUkVBX1JFUVVF U1RfQ09NTUFORF9SRUFEWSk7DQo+ID4NCj4gPiAtICBTdGF0dXMgPSBQdHBDcmJXYWl0UmVnaXN0 ZXJCaXRzICgNCj4gPg0KPiA+IC0gICAgICAgICAgICAgJkNyYlJlZy0+Q3JiQ29udHJvbFJlcXVl c3QsDQo+ID4NCj4gPiAtICAgICAgICAgICAgIDAsDQo+ID4NCj4gPiAtICAgICAgICAgICAgIFBU UF9DUkJfQ09OVFJPTF9BUkVBX1JFUVVFU1RfQ09NTUFORF9SRUFEWSwNCj4gPg0KPiA+IC0gICAg ICAgICAgICAgUFRQX1RJTUVPVVRfQw0KPiA+DQo+ID4gLSAgICAgICAgICAgICApOw0KPiA+DQo+ ID4gLSAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+DQo+ID4gLSAgICBTdGF0dXMgPSBF RklfREVWSUNFX0VSUk9SOw0KPiA+DQo+ID4gLSAgICBnb3RvIEdvSWRsZV9FeGl0Ow0KPiA+DQo+ ID4gLSAgfQ0KPiA+DQo+ID4gKyAgICBTdGF0dXMgPSBQdHBDcmJXYWl0UmVnaXN0ZXJCaXRzICgN Cj4gPg0KPiA+ICsgICAgICAgICAgICAgICAmQ3JiUmVnLT5DcmJDb250cm9sU3RhdHVzLA0KPiA+ DQo+ID4gKyAgICAgICAgICAgICAgIDAsDQo+ID4NCj4gPiArICAgICAgICAgICAgICAgUFRQX0NS Ql9DT05UUk9MX0FSRUFfU1RBVFVTX1RQTV9JRExFLA0KPiA+DQo+ID4gKyAgICAgICAgICAgICAg IFBUUF9USU1FT1VUX0MNCj4gPg0KPiA+ICsgICAgICAgICAgICAgICApOw0KPiA+DQo+ID4gKyAg ICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4NCj4gPiArICAgICAgUmV0cnlDbnQrKzsN Cj4gPg0KPiA+ICsgICAgICBpZiAoUmV0cnlDbnQgPCBSRVRSWV9DTlRfTUFYKSB7DQo+ID4NCj4g PiArICAgICAgICBNbWlvV3JpdGUzMiAoKFVJTlROKSZDcmJSZWctPkNyYkNvbnRyb2xSZXF1ZXN0 LA0KPiA+IFBUUF9DUkJfQ09OVFJPTF9BUkVBX1JFUVVFU1RfR09fSURMRSk7DQo+ID4NCj4gPiAr ICAgICAgICBjb250aW51ZTsNCj4gPg0KPiA+ICsgICAgICB9IGVsc2Ugew0KPiA+DQo+ID4gKyAg ICAgICAgU3RhdHVzID0gRUZJX0RFVklDRV9FUlJPUjsNCj4gPg0KPiA+ICsgICAgICAgIGdvdG8g R29JZGxlX0V4aXQ7DQo+ID4NCj4gPiArICAgICAgfQ0KPiA+DQo+ID4gKyAgICB9DQo+ID4NCj4g Pg0KPiA+DQo+ID4gLSAgU3RhdHVzID0gUHRwQ3JiV2FpdFJlZ2lzdGVyQml0cyAoDQo+ID4NCj4g PiAtICAgICAgICAgICAgICZDcmJSZWctPkNyYkNvbnRyb2xTdGF0dXMsDQo+ID4NCj4gPiAtICAg ICAgICAgICAgIDAsDQo+ID4NCj4gPiAtICAgICAgICAgICAgIFBUUF9DUkJfQ09OVFJPTF9BUkVB X1NUQVRVU19UUE1fSURMRSwNCj4gPg0KPiA+IC0gICAgICAgICAgICAgUFRQX1RJTUVPVVRfQw0K PiA+DQo+ID4gLSAgICAgICAgICAgICApOw0KPiA+DQo+ID4gLSAgaWYgKEVGSV9FUlJPUiAoU3Rh dHVzKSkgew0KPiA+DQo+ID4gLSAgICBTdGF0dXMgPSBFRklfREVWSUNFX0VSUk9SOw0KPiA+DQo+ ID4gLSAgICBnb3RvIEdvSWRsZV9FeGl0Ow0KPiA+DQo+ID4gKyAgICBicmVhazsNCj4gPg0KPiA+ ICAgIH0NCj4gPg0KPiA+DQo+ID4NCj4gPiAgICAvLw0KPiA+DQo+ID4gLS0NCj4gPiAyLjI2LjIu d2luZG93cy4xDQo+IA0KPiANCj4gDQo+IA0KPiANCg0K