From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by mx.groups.io with SMTP id smtpd.web10.1473.1575422890221533619 for ; Tue, 03 Dec 2019 17:28:10 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.115, mailfrom: michael.d.kinney@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 03 Dec 2019 17:28:10 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,275,1571727600"; d="scan'208";a="236094961" Received: from orsmsx106.amr.corp.intel.com ([10.22.225.133]) by fmsmga004.fm.intel.com with ESMTP; 03 Dec 2019 17:28:09 -0800 Received: from orsmsx124.amr.corp.intel.com (10.22.240.120) by ORSMSX106.amr.corp.intel.com (10.22.225.133) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 3 Dec 2019 17:28:09 -0800 Received: from orsmsx113.amr.corp.intel.com ([169.254.9.200]) by ORSMSX124.amr.corp.intel.com ([169.254.2.83]) with mapi id 14.03.0439.000; Tue, 3 Dec 2019 17:28:09 -0800 From: "Michael D Kinney" To: Philippe Mathieu-Daude , "devel@edk2.groups.io" , "Kinney, Michael D" CC: Antoine Coeur , "Gao, Liming" Subject: Re: [PATCH 28/79] MdePkg/Library/Smm: Fix various typos Thread-Topic: [PATCH 28/79] MdePkg/Library/Smm: Fix various typos Thread-Index: AQHVqfVEjd6SbwfaGEeIsQqmYXLK4aepMDRg Date: Wed, 4 Dec 2019 01:28:08 +0000 Message-ID: References: <20191203161602.15969-1-philmd@redhat.com> <20191203161602.15969-29-philmd@redhat.com> In-Reply-To: <20191203161602.15969-29-philmd@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.22.254.138] MIME-Version: 1.0 Return-Path: michael.d.kinney@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UmV2aWV3ZWQtYnk6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t Pg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFBoaWxpcHBlIE1hdGhp ZXUtRGF1ZGUgPHBoaWxtZEByZWRoYXQuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBEZWNlbWJlciAz LCAyMDE5IDg6MTUgQU0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBBbnRvaW5l IENvZXVyIDxjb2V1ckBnbXguZnI+OyBLaW5uZXksIE1pY2hhZWwgRA0KPiA8bWljaGFlbC5kLmtp bm5leUBpbnRlbC5jb20+OyBHYW8sIExpbWluZw0KPiA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBQ aGlsaXBwZSBNYXRoaWV1LURhdWRlDQo+IDxwaGlsbWRAcmVkaGF0LmNvbT4NCj4gU3ViamVjdDog W1BBVENIIDI4Lzc5XSBNZGVQa2cvTGlicmFyeS9TbW06IEZpeCB2YXJpb3VzDQo+IHR5cG9zDQo+ IA0KPiBGcm9tOiBBbnRvaW5lIENvZXVyIDxjb2V1ckBnbXguZnI+DQo+IA0KPiBGaXggdmFyaW91 cyB0eXBvcyBpbiBjb21tZW50cyBhbmQgZG9jdW1lbnRhdGlvbi4NCj4gDQo+IENjOiBNaWNoYWVs IEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gQ2M6IExpbWluZyBHYW8g PGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPiBSZXZpZXdlZC1ieTogUGhpbGlwcGUgTWF0aGlldS1E YXVkZSA8cGhpbG1kQHJlZGhhdC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IFBoaWxpcHBlIE1hdGhp ZXUtRGF1ZGUNCj4gPHBoaWxtZEByZWRoYXQuY29tPg0KPiAtLS0NCj4gIE1kZVBrZy9JbmNsdWRl L0xpYnJhcnkvU21tTGliLmgNCj4gfCAgNCArLQ0KPiAgTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9T bW1NZW1MaWIuaA0KPiB8ICA0ICstDQo+ICBNZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1NtbVBlcmlv ZGljU21pTGliLmgNCj4gfCAgNiArLS0NCj4gIE1kZVBrZy9MaWJyYXJ5L1NtbU1lbUxpYi9TbW1N ZW1MaWIuYw0KPiB8ICA0ICstDQo+ICBNZGVQa2cvTGlicmFyeS9TbW1QY2lFeHByZXNzTGliL1Bj aUV4cHJlc3NMaWIuYw0KPiB8ICA0ICstDQo+ICBNZGVQa2cvTGlicmFyeS9TbW1QY2lMaWJQY2lS b290QnJpZGdlSW8vUGNpTGliLmMNCj4gfCAgNiArLS0NCj4gIE1kZVBrZy9MaWJyYXJ5L1NtbVBl cmlvZGljU21pTGliL1NtbVBlcmlvZGljU21pTGliLmMNCj4gfCA0MiArKysrKysrKysrLS0tLS0t LS0tLQ0KPiANCj4gTWRlUGtnL0xpYnJhcnkvU21tU2VydmljZXNUYWJsZUxpYi9TbW1TZXJ2aWNl c1RhYmxlTGliLg0KPiBjIHwgIDIgKy0NCj4gIDggZmlsZXMgY2hhbmdlZCwgMzYgaW5zZXJ0aW9u cygrKSwgMzYgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0luY2x1ZGUv TGlicmFyeS9TbW1MaWIuaA0KPiBiL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvU21tTGliLmgNCj4g aW5kZXggOGQ4M2RmN2ZkNzM3Li5iY2I3MDQ1YzFiNjUgMTAwNjQ0DQo+IC0tLSBhL01kZVBrZy9J bmNsdWRlL0xpYnJhcnkvU21tTGliLmgNCj4gKysrIGIvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9T bW1MaWIuaA0KPiBAQCAtNDUsNyArNDUsNyBAQCBUcmlnZ2VyUnVudGltZVNvZnR3YXJlU21pICgN Cj4gICAgaXQgd2FzIHRyaWdnZXJlZCBhdCBib290IHRpbWUsIGl0IHJldHVybnMgVFJVRS4NCj4g T3RoZXJ3aXNlLCBpdCByZXR1cm5zIEZBTFNFLg0KPiANCj4gICAgQHJldHZhbCBUUlVFICAgQSBz b2Z0d2FyZSBTTUkgdHJpZ2dlcmVkIGF0IGJvb3QgdGltZQ0KPiBoYXBwZW5lZC4NCj4gLSAgQHJl dHZhbCBGTEFTRSAgTm8gc29mdHdhcmUgU01JIGhhcHBlbmVkLCBvciB0aGUNCj4gc29mdHdhcmUg U01JIHdhcyB0cmlnZ2VyZWQgYXQgcnVuIHRpbWUuDQo+ICsgIEByZXR2YWwgRkFMU0UgIE5vIHNv ZnR3YXJlIFNNSSBoYXBwZW5lZCwgb3IgdGhlDQo+IHNvZnR3YXJlIFNNSSB3YXMgdHJpZ2dlcmVk IGF0IHJ1biB0aW1lLg0KPiANCj4gICoqLw0KPiAgQk9PTEVBTg0KPiBAQCAtNjIsNyArNjIsNyBA QCBJc0Jvb3RTZXJ2aWNlU29mdHdhcmVTbWkgKA0KPiAgICBpdCB3YXMgdHJpZ2dlcmVkIGF0IHJ1 biB0aW1lLCBpdCByZXR1cm5zIFRSVUUuDQo+IE90aGVyd2lzZSwgaXQgcmV0dXJucyBGQUxTRS4N Cj4gDQo+ICAgIEByZXR2YWwgVFJVRSAgIEEgc29mdHdhcmUgU01JIHRyaWdnZXJlZCBhdCBydW4g dGltZQ0KPiBoYXBwZW5lZC4NCj4gLSAgQHJldHZhbCBGTEFTRSAgTm8gc29mdHdhcmUgU01JIGhh cHBlbmVkIG9yIHRoZQ0KPiBzb2Z0d2FyZSBTTUkgd2FzIHRyaWdnZXJlZCBhdCBib290IHRpbWUu DQo+ICsgIEByZXR2YWwgRkFMU0UgIE5vIHNvZnR3YXJlIFNNSSBoYXBwZW5lZCBvciB0aGUNCj4g c29mdHdhcmUgU01JIHdhcyB0cmlnZ2VyZWQgYXQgYm9vdCB0aW1lLg0KPiANCj4gICoqLw0KPiAg Qk9PTEVBTg0KPiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9TbW1NZW1MaWIu aA0KPiBiL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvU21tTWVtTGliLmgNCj4gaW5kZXggNzJlZGM5 YWRjZGU3Li5kOTJjYmQ5YWFiZDIgMTAwNjQ0DQo+IC0tLSBhL01kZVBrZy9JbmNsdWRlL0xpYnJh cnkvU21tTWVtTGliLmgNCj4gKysrIGIvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9TbW1NZW1MaWIu aA0KPiBAQCAtNjcsNyArNjcsNyBAQCBTbW1Db3B5TWVtVG9TbXJhbSAoDQo+ICAgIEBwYXJhbSAg U291cmNlQnVmZmVyICAgICAgICBUaGUgcG9pbnRlciB0byB0aGUNCj4gc291cmNlIGJ1ZmZlciBv ZiB0aGUgbWVtb3J5IGNvcHkuDQo+ICAgIEBwYXJhbSAgTGVuZ3RoICAgICAgICAgICAgICBUaGUg bnVtYmVyIG9mIGJ5dGVzIHRvDQo+IGNvcHkgZnJvbSBTb3VyY2VCdWZmZXIgdG8gRGVzdGluYXRp b25CdWZmZXIuDQo+IA0KPiAtICBAcmV0dmFsIEVGSV9TRUNVUklUWV9WSU9MQVRJT04gVGhlIERl c2luYXRpb25CdWZmZXINCj4gaXMgaW52YWxpZCBwZXIgcHJvY2Vzc29yIGFyY2hpdGVjdHVyZSBv ciBvdmVybGFwIHdpdGgNCj4gU01SQU0uDQo+ICsgIEByZXR2YWwgRUZJX1NFQ1VSSVRZX1ZJT0xB VElPTiBUaGUgRGVzdGluYXRpb25CdWZmZXINCj4gaXMgaW52YWxpZCBwZXIgcHJvY2Vzc29yIGFy Y2hpdGVjdHVyZSBvciBvdmVybGFwIHdpdGgNCj4gU01SQU0uDQo+ICAgIEByZXR2YWwgRUZJX1NV Q0NFU1MgICAgICAgICAgICBNZW1vcnkgaXMgY29waWVkLg0KPiANCj4gICoqLw0KPiBAQCAtOTIs NyArOTIsNyBAQCBTbW1Db3B5TWVtRnJvbVNtcmFtICgNCj4gICAgQHBhcmFtICBTb3VyY2VCdWZm ZXIgICAgICAgIFRoZSBwb2ludGVyIHRvIHRoZQ0KPiBzb3VyY2UgYnVmZmVyIG9mIHRoZSBtZW1v cnkgY29weS4NCj4gICAgQHBhcmFtICBMZW5ndGggICAgICAgICAgICAgIFRoZSBudW1iZXIgb2Yg Ynl0ZXMgdG8NCj4gY29weSBmcm9tIFNvdXJjZUJ1ZmZlciB0byBEZXN0aW5hdGlvbkJ1ZmZlci4N Cj4gDQo+IC0gIEByZXR2YWwgRUZJX1NFQ1VSSVRZX1ZJT0xBVElPTiBUaGUgRGVzaW5hdGlvbkJ1 ZmZlcg0KPiBpcyBpbnZhbGlkIHBlciBwcm9jZXNzb3IgYXJjaGl0ZWN0dXJlIG9yIG92ZXJsYXAg d2l0aA0KPiBTTVJBTS4NCj4gKyAgQHJldHZhbCBFRklfU0VDVVJJVFlfVklPTEFUSU9OIFRoZSBE ZXN0aW5hdGlvbkJ1ZmZlcg0KPiBpcyBpbnZhbGlkIHBlciBwcm9jZXNzb3IgYXJjaGl0ZWN0dXJl IG9yIG92ZXJsYXAgd2l0aA0KPiBTTVJBTS4NCj4gICAgQHJldHZhbCBFRklfU0VDVVJJVFlfVklP TEFUSU9OIFRoZSBTb3VyY2VCdWZmZXIgaXMNCj4gaW52YWxpZCBwZXIgcHJvY2Vzc29yIGFyY2hp dGVjdHVyZSBvciBvdmVybGFwIHdpdGgNCj4gU01SQU0uDQo+ICAgIEByZXR2YWwgRUZJX1NVQ0NF U1MgICAgICAgICAgICBNZW1vcnkgaXMgY29waWVkLg0KPiANCj4gZGlmZiAtLWdpdCBhL01kZVBr Zy9JbmNsdWRlL0xpYnJhcnkvU21tUGVyaW9kaWNTbWlMaWIuaA0KPiBiL01kZVBrZy9JbmNsdWRl L0xpYnJhcnkvU21tUGVyaW9kaWNTbWlMaWIuaA0KPiBpbmRleCA2MjE1YWEyMjMyYWMuLmEzZTA4 NmQwMjUwMSAxMDA2NDQNCj4gLS0tIGEvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9TbW1QZXJpb2Rp Y1NtaUxpYi5oDQo+ICsrKyBiL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvU21tUGVyaW9kaWNTbWlM aWIuaA0KPiBAQCAtNjQsNyArNjQsNyBAQCBQZXJpb2RpY1NtaUV4aXQgKA0KPiAgICBUaGlzIGZ1 bmN0aW9uIHlpZWxkcyBjb250cm9sIGJhY2sgdG8gdGhlIFNNTQ0KPiBGb3VuZGF0aW9uLiAgV2hl biB0aGUgbmV4dA0KPiAgICBwZXJpb2RpYyBTTUkgZm9yIHRoZSBjdXJyZW50bHkgZXhlY3V0aW5n IGhhbmRsZXIgaXMNCj4gdHJpZ2dlcmVkLCB0aGUgcGVyaW9kaWMNCj4gICAgU01JIGhhbmRsZXIg d2lsbCBiZSByZXN1bWVkIGFuZCB0aGlzIGZ1bmN0aW9uIHdpbGwNCj4gcmV0dXJuLiAgVXNlIG9m IHRoaXMNCj4gLSAgZnVuY3Rpb24gcmVxdWlyZXMgYSBzZXBlcmF0ZSBzdGFjayBmb3IgdGhlIHBl cmlvZGljDQo+IFNNSSBoYW5kbGVyLiAgQSBub24gemVybw0KPiArICBmdW5jdGlvbiByZXF1aXJl cyBhIHNlcGFyYXRlIHN0YWNrIGZvciB0aGUgcGVyaW9kaWMNCj4gU01JIGhhbmRsZXIuICBBIG5v biB6ZXJvDQo+ICAgIHN0YWNrIHNpemUgbXVzdCBiZSBzcGVjaWZpZWQgaW4gUGVyaW9kaWNTbWlF bmFibGUoKQ0KPiBmb3IgdGhpcyBmdW5jdGlvbiB0byBiZQ0KPiAgICB1c2VkLg0KPiANCj4gQEAg LTExMyw3ICsxMTMsNyBAQCBWT0lEDQo+ICAgIEBwYXJhbVtpbl0gICAgIERpc3BhdGNoRnVuY3Rp b24gIEEgcG9pbnRlciB0byBhDQo+IHBlcmlvZGljIFNNSSBoYW5kbGVyIGZ1bmN0aW9uLg0KPiAg ICBAcGFyYW1baW5dICAgICBDb250ZXh0ICAgICAgICAgICBPcHRpb25hbCBjb250ZW50IHRvDQo+ IHBhc3MgaW50byBEaXNwYXRjaEZ1bmN0aW9uLg0KPiAgICBAcGFyYW1baW5dICAgICBUaWNrUGVy aW9kICAgICAgICBUaGUgcmVxdWVzdGVkIHRpY2sNCj4gcGVyaW9kIGluIDEwMG5zIHVuaXRzIHRo YXQNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbCBzaG91bGQg YmUNCj4gZ2l2aWVuIHRvIHRoZSBwZXJpb2RpYyBTTUkNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29udHJvbCBzaG91bGQgYmUNCj4gZ2l2ZW4gdG8gdGhlIHBlcmlvZGlj IFNNSQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyLiAgTXVz dCBiZQ0KPiBvbmUgb2YgdGhlIHN1cHBvcnRlZCB2YWx1ZXMNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuZWQgYnkNCj4gUGVyaW9kaWNTbWlTdXBwb3J0ZWRQaWNr UGVyaW9kKCkuDQo+ICAgIEBwYXJhbVtpbl0gICAgIENwdSAgICAgICAgICAgICAgIFNwZWNpZmll cyB0aGUgQ1BVDQo+IHRoYXQgaXMgcmVxdWlyZWQgdG8gZXhlY3V0ZQ0KPiBAQCAtMTM3LDcgKzEz Nyw3IEBAIFZPSUQNCj4gICAgQHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNFUyAgIFRoZXJlIGFy ZSBub3QgZW5vdWdoDQo+IHJlc291cmNlcyB0byBlbmFibGUgdGhlDQo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwZXJpb2RpYyBTTUkgaGFuZGxlci4NCj4gICAgQHJldHZhbCBF RklfT1VUX09GX1JFU09VUkNFUyAgIFRoZXJlIGFyZSBub3QgZW5vdWdoDQo+IHJlc291cmNlcyB0 byBhbGxvY2F0ZSB0aGUNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNr IHNwZWZpY2llZCBieQ0KPiBTdGFja1NpemUuDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdGFjayBzcGVjaWZpZWQgYnkNCj4gU3RhY2tTaXplLg0KPiAgICBAcmV0dmFsIEVG SV9TVUNDRVNTICAgICAgICAgICAgVGhlIHBlcmlvZGljIFNNSQ0KPiBoYW5kbGVyIHdhcyBlbmFi bGVkLg0KPiANCj4gICoqLw0KPiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvU21tTWVtTGli L1NtbU1lbUxpYi5jDQo+IGIvTWRlUGtnL0xpYnJhcnkvU21tTWVtTGliL1NtbU1lbUxpYi5jDQo+ IGluZGV4IDcxNjliYmRkMTBkOC4uNjNhNGZmN2E5N2YxIDEwMDY0NA0KPiAtLS0gYS9NZGVQa2cv TGlicmFyeS9TbW1NZW1MaWIvU21tTWVtTGliLmMNCj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvU21t TWVtTGliL1NtbU1lbUxpYi5jDQo+IEBAIC0yNzUsNyArMjc1LDcgQEAgU21tQ29weU1lbVRvU21y YW0gKA0KPiAgICBAcGFyYW0gIFNvdXJjZUJ1ZmZlciAgICAgICAgVGhlIHBvaW50ZXIgdG8gdGhl DQo+IHNvdXJjZSBidWZmZXIgb2YgdGhlIG1lbW9yeSBjb3B5Lg0KPiAgICBAcGFyYW0gIExlbmd0 aCAgICAgICAgICAgICAgVGhlIG51bWJlciBvZiBieXRlcyB0bw0KPiBjb3B5IGZyb20gU291cmNl QnVmZmVyIHRvIERlc3RpbmF0aW9uQnVmZmVyLg0KPiANCj4gLSAgQHJldHZhbCBFRklfU0VDVVJJ VFlfVklPTEFUSU9OIFRoZSBEZXNpbmF0aW9uQnVmZmVyDQo+IGlzIGludmFsaWQgcGVyIHByb2Nl c3NvciBhcmNoaXRlY3R1cmUgb3Igb3ZlcmxhcCB3aXRoDQo+IFNNUkFNLg0KPiArICBAcmV0dmFs IEVGSV9TRUNVUklUWV9WSU9MQVRJT04gVGhlIERlc3RpbmF0aW9uQnVmZmVyDQo+IGlzIGludmFs aWQgcGVyIHByb2Nlc3NvciBhcmNoaXRlY3R1cmUgb3Igb3ZlcmxhcCB3aXRoDQo+IFNNUkFNLg0K PiAgICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICAgTWVtb3J5IGlzIGNvcGllZC4NCj4g DQo+ICAqKi8NCj4gQEAgLTMwOCw3ICszMDgsNyBAQCBTbW1Db3B5TWVtRnJvbVNtcmFtICgNCj4g ICAgQHBhcmFtICBTb3VyY2VCdWZmZXIgICAgICAgIFRoZSBwb2ludGVyIHRvIHRoZQ0KPiBzb3Vy Y2UgYnVmZmVyIG9mIHRoZSBtZW1vcnkgY29weS4NCj4gICAgQHBhcmFtICBMZW5ndGggICAgICAg ICAgICAgIFRoZSBudW1iZXIgb2YgYnl0ZXMgdG8NCj4gY29weSBmcm9tIFNvdXJjZUJ1ZmZlciB0 byBEZXN0aW5hdGlvbkJ1ZmZlci4NCj4gDQo+IC0gIEByZXR2YWwgRUZJX1NFQ1VSSVRZX1ZJT0xB VElPTiBUaGUgRGVzaW5hdGlvbkJ1ZmZlcg0KPiBpcyBpbnZhbGlkIHBlciBwcm9jZXNzb3IgYXJj aGl0ZWN0dXJlIG9yIG92ZXJsYXAgd2l0aA0KPiBTTVJBTS4NCj4gKyAgQHJldHZhbCBFRklfU0VD VVJJVFlfVklPTEFUSU9OIFRoZSBEZXN0aW5hdGlvbkJ1ZmZlcg0KPiBpcyBpbnZhbGlkIHBlciBw cm9jZXNzb3IgYXJjaGl0ZWN0dXJlIG9yIG92ZXJsYXAgd2l0aA0KPiBTTVJBTS4NCj4gICAgQHJl dHZhbCBFRklfU0VDVVJJVFlfVklPTEFUSU9OIFRoZSBTb3VyY2VCdWZmZXIgaXMNCj4gaW52YWxp ZCBwZXIgcHJvY2Vzc29yIGFyY2hpdGVjdHVyZSBvciBvdmVybGFwIHdpdGgNCj4gU01SQU0uDQo+ ICAgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICBNZW1vcnkgaXMgY29waWVkLg0KPiAN Cj4gZGlmZiAtLWdpdA0KPiBhL01kZVBrZy9MaWJyYXJ5L1NtbVBjaUV4cHJlc3NMaWIvUGNpRXhw cmVzc0xpYi5jDQo+IGIvTWRlUGtnL0xpYnJhcnkvU21tUGNpRXhwcmVzc0xpYi9QY2lFeHByZXNz TGliLmMNCj4gaW5kZXggODBjMDE1NGY1ZmFkLi4zNWI5Zjc3NWE4MGIgMTAwNjQ0DQo+IC0tLSBh L01kZVBrZy9MaWJyYXJ5L1NtbVBjaUV4cHJlc3NMaWIvUGNpRXhwcmVzc0xpYi5jDQo+ICsrKyBi L01kZVBrZy9MaWJyYXJ5L1NtbVBjaUV4cHJlc3NMaWIvUGNpRXhwcmVzc0xpYi5jDQo+IEBAIC0x MjI2LDcgKzEyMjYsNyBAQCBQY2lFeHByZXNzQml0RmllbGRBbmRUaGVuT3IzMiAoDQo+ICAgU2l6 ZSBpbnRvIHRoZSBidWZmZXIgc3BlY2lmaWVkIGJ5IEJ1ZmZlci4gVGhpcw0KPiBmdW5jdGlvbiBv bmx5IGFsbG93cyB0aGUgUENJDQo+ICAgY29uZmlndXJhdGlvbiByZWdpc3RlcnMgZnJvbSBhIHNp bmdsZSBQQ0kgZnVuY3Rpb24gdG8NCj4gYmUgcmVhZC4gU2l6ZSBpcw0KPiAgIHJldHVybmVkLiBX aGVuIHBvc3NpYmxlIDMyLWJpdCBQQ0kgY29uZmlndXJhdGlvbiByZWFkDQo+IGN5Y2xlcyBhcmUg dXNlZCB0byByZWFkDQo+IC0gZnJvbSBTdGFydEFkcmVzcyB0byBTdGFydEFkZHJlc3MgKyBTaXpl LiBEdWUgdG8NCj4gYWxpZ25tZW50IHJlc3RyaWN0aW9ucywgOC1iaXQNCj4gKyBmcm9tIFN0YXJ0 QWRkcmVzcyB0byBTdGFydEFkZHJlc3MgKyBTaXplLiBEdWUgdG8NCj4gYWxpZ25tZW50IHJlc3Ry aWN0aW9ucywgOC1iaXQNCj4gICBhbmQgMTYtYml0IFBDSSBjb25maWd1cmF0aW9uIHJlYWQgY3lj bGVzIG1heSBiZSB1c2VkDQo+IGF0IHRoZSBiZWdpbm5pbmcgYW5kIHRoZQ0KPiAgIGVuZCBvZiB0 aGUgcmFuZ2UuDQo+IA0KPiBAQCAtMTMyOSw3ICsxMzI5LDcgQEAgUGNpRXhwcmVzc1JlYWRCdWZm ZXIgKA0KPiAgIFNpemUgZnJvbSB0aGUgYnVmZmVyIHNwZWNpZmllZCBieSBCdWZmZXIuIFRoaXMN Cj4gZnVuY3Rpb24gb25seSBhbGxvd3MgdGhlIFBDSQ0KPiAgIGNvbmZpZ3VyYXRpb24gcmVnaXN0 ZXJzIGZyb20gYSBzaW5nbGUgUENJIGZ1bmN0aW9uIHRvDQo+IGJlIHdyaXR0ZW4uIFNpemUgaXMN Cj4gICByZXR1cm5lZC4gV2hlbiBwb3NzaWJsZSAzMi1iaXQgUENJIGNvbmZpZ3VyYXRpb24NCj4g d3JpdGUgY3ljbGVzIGFyZSB1c2VkIHRvDQo+IC0gd3JpdGUgZnJvbSBTdGFydEFkcmVzcyB0byBT dGFydEFkZHJlc3MgKyBTaXplLiBEdWUgdG8NCj4gYWxpZ25tZW50IHJlc3RyaWN0aW9ucywNCj4g KyB3cml0ZSBmcm9tIFN0YXJ0QWRkcmVzcyB0byBTdGFydEFkZHJlc3MgKyBTaXplLiBEdWUNCj4g dG8gYWxpZ25tZW50IHJlc3RyaWN0aW9ucywNCj4gICA4LWJpdCBhbmQgMTYtYml0IFBDSSBjb25m aWd1cmF0aW9uIHdyaXRlIGN5Y2xlcyBtYXkNCj4gYmUgdXNlZCBhdCB0aGUgYmVnaW5uaW5nDQo+ ICAgYW5kIHRoZSBlbmQgb2YgdGhlIHJhbmdlLg0KPiANCj4gZGlmZiAtLWdpdA0KPiBhL01kZVBr Zy9MaWJyYXJ5L1NtbVBjaUxpYlBjaVJvb3RCcmlkZ2VJby9QY2lMaWIuYw0KPiBiL01kZVBrZy9M aWJyYXJ5L1NtbVBjaUxpYlBjaVJvb3RCcmlkZ2VJby9QY2lMaWIuYw0KPiBpbmRleCBjOTY2MGY0 OGQ3MDAuLjQ5ZWE5OWNlMWYwNSAxMDA2NDQNCj4gLS0tIGEvTWRlUGtnL0xpYnJhcnkvU21tUGNp TGliUGNpUm9vdEJyaWRnZUlvL1BjaUxpYi5jDQo+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L1NtbVBj aUxpYlBjaVJvb3RCcmlkZ2VJby9QY2lMaWIuYw0KPiBAQCAtMzUsNyArMzUsNyBAQA0KPiAgICAo KCgoQSkgPDwgNCkgJiAweGZmMDAwMDAwKSB8ICgoKEEpID4+IDQpICYNCj4gMHgwMDAwMDcwMCkg fCAoKChBKSA8PCAxKSAmIDB4MDAxZjAwMDApIHwNCj4gKExTaGlmdFU2NCgoQSkgJiAweGZmZiwg MzIpKSkNCj4gDQo+ICAvLw0KPiAtLy8gR2xvYmFsIHZhcmlibGUgdG8gY2FjaGUgcG9pbnRlciB0 byBQQ0kgUm9vdCBCcmlkZ2UNCj4gSS9PIHByb3RvY29sLg0KPiArLy8gR2xvYmFsIHZhcmlhYmxl IHRvIGNhY2hlIHBvaW50ZXIgdG8gUENJIFJvb3QgQnJpZGdlDQo+IEkvTyBwcm90b2NvbC4NCj4g IC8vDQo+ICBFRklfU01NX1BDSV9ST09UX0JSSURHRV9JT19QUk9UT0NPTA0KPiAqbVNtbVBjaVJv b3RCcmlkZ2VJbyA9IE5VTEw7DQo+IA0KPiBAQCAtMTIzOCw3ICsxMjM4LDcgQEAgUGNpQml0Rmll bGRBbmRUaGVuT3IzMiAoDQo+ICAgIFNpemUgaW50byB0aGUgYnVmZmVyIHNwZWNpZmllZCBieSBC dWZmZXIuIFRoaXMNCj4gZnVuY3Rpb24gb25seSBhbGxvd3MgdGhlIFBDSQ0KPiAgICBjb25maWd1 cmF0aW9uIHJlZ2lzdGVycyBmcm9tIGEgc2luZ2xlIFBDSSBmdW5jdGlvbg0KPiB0byBiZSByZWFk LiBTaXplIGlzDQo+ICAgIHJldHVybmVkLiBXaGVuIHBvc3NpYmxlIDMyLWJpdCBQQ0kgY29uZmln dXJhdGlvbg0KPiByZWFkIGN5Y2xlcyBhcmUgdXNlZCB0byByZWFkDQo+IC0gIGZyb20gU3RhcnRB ZHJlc3MgdG8gU3RhcnRBZGRyZXNzICsgU2l6ZS4gRHVlIHRvDQo+IGFsaWdubWVudCByZXN0cmlj dGlvbnMsIDgtYml0DQo+ICsgIGZyb20gU3RhcnRBZGRyZXNzIHRvIFN0YXJ0QWRkcmVzcyArIFNp emUuIER1ZSB0bw0KPiBhbGlnbm1lbnQgcmVzdHJpY3Rpb25zLCA4LWJpdA0KPiAgICBhbmQgMTYt Yml0IFBDSSBjb25maWd1cmF0aW9uIHJlYWQgY3ljbGVzIG1heSBiZSB1c2VkDQo+IGF0IHRoZSBi ZWdpbm5pbmcgYW5kIHRoZQ0KPiAgICBlbmQgb2YgdGhlIHJhbmdlLg0KPiANCj4gQEAgLTEzMzYs NyArMTMzNiw3IEBAIFBjaVJlYWRCdWZmZXIgKA0KPiAgICBTaXplIGZyb20gdGhlIGJ1ZmZlciBz cGVjaWZpZWQgYnkgQnVmZmVyLiBUaGlzDQo+IGZ1bmN0aW9uIG9ubHkgYWxsb3dzIHRoZSBQQ0kN Cj4gICAgY29uZmlndXJhdGlvbiByZWdpc3RlcnMgZnJvbSBhIHNpbmdsZSBQQ0kgZnVuY3Rpb24N Cj4gdG8gYmUgd3JpdHRlbi4gU2l6ZSBpcw0KPiAgICByZXR1cm5lZC4gV2hlbiBwb3NzaWJsZSAz Mi1iaXQgUENJIGNvbmZpZ3VyYXRpb24NCj4gd3JpdGUgY3ljbGVzIGFyZSB1c2VkIHRvDQo+IC0g IHdyaXRlIGZyb20gU3RhcnRBZHJlc3MgdG8gU3RhcnRBZGRyZXNzICsgU2l6ZS4gRHVlDQo+IHRv IGFsaWdubWVudCByZXN0cmljdGlvbnMsDQo+ICsgIHdyaXRlIGZyb20gU3RhcnRBZGRyZXNzIHRv IFN0YXJ0QWRkcmVzcyArIFNpemUuIER1ZQ0KPiB0byBhbGlnbm1lbnQgcmVzdHJpY3Rpb25zLA0K PiAgICA4LWJpdCBhbmQgMTYtYml0IFBDSSBjb25maWd1cmF0aW9uIHdyaXRlIGN5Y2xlcyBtYXkN Cj4gYmUgdXNlZCBhdCB0aGUgYmVnaW5uaW5nDQo+ICAgIGFuZCB0aGUgZW5kIG9mIHRoZSByYW5n ZS4NCj4gDQo+IGRpZmYgLS1naXQNCj4gYS9NZGVQa2cvTGlicmFyeS9TbW1QZXJpb2RpY1NtaUxp Yi9TbW1QZXJpb2RpY1NtaUxpYi5jDQo+IGIvTWRlUGtnL0xpYnJhcnkvU21tUGVyaW9kaWNTbWlM aWIvU21tUGVyaW9kaWNTbWlMaWIuYw0KPiBpbmRleCBiYTAxOTEwYjY5NmIuLjhiMWU3ODBiNzZk YiAxMDA2NDQNCj4gLS0tDQo+IGEvTWRlUGtnL0xpYnJhcnkvU21tUGVyaW9kaWNTbWlMaWIvU21t UGVyaW9kaWNTbWlMaWIuYw0KPiArKysNCj4gYi9NZGVQa2cvTGlicmFyeS9TbW1QZXJpb2RpY1Nt aUxpYi9TbW1QZXJpb2RpY1NtaUxpYi5jDQo+IEBAIC0xMDcsOCArMTA3LDggQEAgdHlwZWRlZiBz dHJ1Y3Qgew0KPiAgICBVSU5UNjQNCj4gRGlzcGF0Y2hUb3RhbFRpbWU7DQo+ICAgIC8vLw0KPiAg ICAvLy8gVGhlIHBlcmZvcm1hbmNlIGNvdW50ZXIgdmFsdWUgdGhhdCB3YXMgY2FwdHVyZWQNCj4g dGhlIGxhc3QgdGltZSB0aGF0IHRoZQ0KPiAtICAvLy8gcGVyaW9kaWMgU01JIGhhbmRsZXIgY2Fs bGVkDQo+IFBlcmlvZGNTbWlFeGVjdXRpb25UaW1lKCkuICBUaGlzIGFsbG93cyB0aGUNCj4gLSAg Ly8vIHRpbWUgdmFsdWUgcmV0dXJuZWQgYnkgUGVyaW9kY1NtaUV4ZWN1dGlvblRpbWUoKQ0KPiB0 byBiZSBhY2N1cmF0ZSBldmVuIHdoZW4NCj4gKyAgLy8vIHBlcmlvZGljIFNNSSBoYW5kbGVyIGNh bGxlZA0KPiBQZXJpb2RpY1NtaUV4ZWN1dGlvblRpbWUoKS4gIFRoaXMgYWxsb3dzIHRoZQ0KPiAr ICAvLy8gdGltZSB2YWx1ZSByZXR1cm5lZCBieQ0KPiBQZXJpb2RpY1NtaUV4ZWN1dGlvblRpbWUo KSB0byBiZSBhY2N1cmF0ZSBldmVuIHdoZW4NCj4gICAgLy8vIHRoZSBwZXJmb3JtYW5jZSBjb3Vu dGVyIHJvbGxzIG92ZXIuDQo+ICAgIC8vLw0KPiAgICBVSU5UNjQNCj4gRGlzcGF0Y2hDaGVja1Bv aW50VGltZTsNCj4gQEAgLTEyNyw3ICsxMjcsNyBAQCB0eXBlZGVmIHN0cnVjdCB7DQo+ICAgIC8v Lw0KPiAgICAvLy8gQnVmZmVyIHVzZWQgdG8gc2F2ZSB0aGUgY29udGV4dCB3aGVuIGEgcGVyaW9k aWMNCj4gU01JIGhhbmRsZXIgcmVxdWVzdHMgdG8NCj4gICAgLy8vIHlpZWxkIHVzaW5nIFBlcmlv ZGljU21pWWllbGQoKS4gIFRoaXMgY29udGV4dCBpcw0KPiB1c2VkIHRvIHJlc3VtZSB0aGUNCj4g LSAgLy8vIGV4ZWN1dGlvbiBvZiBhIHBlcmlvZGljIFNNSSBoYW5kbGVyIHRoZSBuZXh0DQo+IHRp bWUgY29udHJvbCBpcyB0cmFuc2ZlcmQNCj4gKyAgLy8vIGV4ZWN1dGlvbiBvZiBhIHBlcmlvZGlj IFNNSSBoYW5kbGVyIHRoZSBuZXh0DQo+IHRpbWUgY29udHJvbCBpcyB0cmFuc2ZlcnJlZA0KPiAg ICAvLy8gdG8gdGhlIHBlcmlvZGljIFNNSSBoYW5kbGVyIHRoYXQgeWllbGRlZC4NCj4gICAgLy8v DQo+ICAgIEJBU0VfTElCUkFSWV9KVU1QX0JVRkZFUg0KPiBZaWVsZEp1bXBCdWZmZXI7DQo+IEBA IC0xNTIsNyArMTUyLDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiAgICAgICkNCj4gDQo+ICAvLy8N Cj4gLS8vLyBQb2ludGVyIHRvIHRoZSBTTU0gUGVyaW9kaWMgVGltZXIgRGlzYXRjaCBQcm90b2Nv bA0KPiB0aGF0IHdhcyBsb2NhdGVkIGluIHRoZSBjb25zdHVjdG9yLg0KPiArLy8vIFBvaW50ZXIg dG8gdGhlIFNNTSBQZXJpb2RpYyBUaW1lciBEaXNwYXRjaA0KPiBQcm90b2NvbCB0aGF0IHdhcyBs b2NhdGVkIGluIHRoZSBjb25zdHJ1Y3Rvci4NCj4gIC8vLw0KPiAgRUZJX1NNTV9QRVJJT0RJQ19U SU1FUl9ESVNQQVRDSDJfUFJPVE9DT0wNCj4gKmdTbW1QZXJpb2RpY1RpbWVyRGlzcGF0Y2gyICAg ICAgICAgICA9IE5VTEw7DQo+IA0KPiBAQCAtNTIyLDcgKzUyMiw3IEBAIFBlcmlvZGljU21pRXhp dCAoDQo+ICAgIFRoaXMgZnVuY3Rpb24geWllbGRzIGNvbnRyb2wgYmFjayB0byB0aGUgU01NDQo+ IEZvdW5kYXRpb24uICBXaGVuIHRoZSBuZXh0DQo+ICAgIHBlcmlvZGljIFNNSSBmb3IgdGhlIGN1 cnJlbnRseSBleGVjdXRpbmcgaGFuZGxlciBpcw0KPiB0cmlnZ2VyZWQsIHRoZSBwZXJpb2RpYw0K PiAgICBTTUkgaGFuZGxlciB3aWxsIGJlIHJlc3VtZWQgYW5kIHRoaXMgZnVuY3Rpb24gd2lsbA0K PiByZXR1cm4uICBVc2Ugb2YgdGhpcw0KPiAtICBmdW5jdGlvbiByZXF1aXJlcyBhIHNlcGVyYXRl IHN0YWNrIGZvciB0aGUgcGVyaW9kaWMNCj4gU01JIGhhbmRsZXIuICBBIG5vbiB6ZXJvDQo+ICsg IGZ1bmN0aW9uIHJlcXVpcmVzIGEgc2VwYXJhdGUgc3RhY2sgZm9yIHRoZSBwZXJpb2RpYw0KPiBT TUkgaGFuZGxlci4gIEEgbm9uIHplcm8NCj4gICAgc3RhY2sgc2l6ZSBtdXN0IGJlIHNwZWNpZmll ZCBpbiBQZXJpb2RpY1NtaUVuYWJsZSgpDQo+IGZvciB0aGlzIGZ1bmN0aW9uIHRvIGJlDQo+ICAg IHVzZWQuDQo+IA0KPiBAQCAtNTcyLDcgKzU3Miw3IEBAIFBlcmlvZGljU21pWWllbGQgKA0KPiAg ICBTZXRKdW1wRmxhZyA9IFNldEp1bXAgKCZQZXJpb2RpY1NtaUxpYnJhcnlIYW5kbGVyLQ0KPiA+ WWllbGRKdW1wQnVmZmVyKTsNCj4gICAgaWYgKFNldEp1bXBGbGFnID09IDApIHsNCj4gICAgICAv Lw0KPiAtICAgIC8vIFRoZSBpbnRpYWwgY2FsbCB0byBTZXRKdW1wKCkgYWx3YXlzIHJldHVybnMg MC4NCj4gKyAgICAvLyBUaGUgaW5pdGlhbCBjYWxsIHRvIFNldEp1bXAoKSBhbHdheXMgcmV0dXJu cyAwLg0KPiAgICAgIC8vIElmIHRoaXMgaXMgdGhlIGluaXRpYWwgY2FsbCwgdGhlbiBleGl0IHRo ZQ0KPiBjdXJyZW50IHBlcmlvZGljIFNNSSBoYW5kbGVyDQo+ICAgICAgLy8NCj4gICAgICBQZXJp b2RpY1NtaUV4aXQgKCk7DQo+IEBAIC01ODgsNyArNTg4LDcgQEAgUGVyaW9kaWNTbWlZaWVsZCAo DQo+ICAgIFBlcmlvZGljU21pTGlicmFyeUhhbmRsZXItPllpZWxkRmxhZyA9IEZBTFNFOw0KPiAN Cj4gICAgLy8NCj4gLSAgLy8gUmV0dXJuIHRoZSBhbW91bnQgZWxhcHNlZCB0aW1lIHRoYXQgb2Nj dXJlZCB3aGlsZQ0KPiB5aWVsZGVkDQo+ICsgIC8vIFJldHVybiB0aGUgYW1vdW50IGVsYXBzZWQg dGltZSB0aGF0IG9jY3VycmVkDQo+IHdoaWxlIHlpZWxkZWQNCj4gICAgLy8NCj4gICAgcmV0dXJu IFBlcmlvZGljU21pTGlicmFyeUhhbmRsZXItPkVsYXBzZWRUaW1lOw0KPiAgfQ0KPiBAQCAtNjIw LDcgKzYyMCw3IEBADQo+IFBlcmlvZGljU21pRGlzcGF0Y2hGdW5jdGlvblN3aXRjaFN0YWNrICgN Cj4gICAgLy8NCj4gICAgLy8gRGlzcGF0Y2ggdGhlIHJlZ2lzdGVyZWQgaGFuZGxlciBwYXNzaW5n IGluIHRoZQ0KPiBjb250ZXh0IHRoYXQgd2FzIHJlZ2lzdGVyZWQNCj4gICAgLy8gYW5kIHRoZSBh bW91bnQgb2YgdGltZSB0aGF0IGhhcyBlbGFwc2VkIHNpbmNlIHRoZQ0KPiBwcmV2aW91cyB0aW1l IHRoaXMNCj4gLSAgLy8gcGVyaW9kaWMgU01JIGhhbmRsZXIgd2FzIGRpc3BhY3RoZWQuDQo+ICsg IC8vIHBlcmlvZGljIFNNSSBoYW5kbGVyIHdhcyBkaXNwYXRjaGVkLg0KPiAgICAvLw0KPiAgICBQ ZXJpb2RpY1NtaUxpYnJhcnlIYW5kbGVyLT5EaXNwYXRjaEZ1bmN0aW9uICgNCj4gICAgICBQZXJp b2RpY1NtaUxpYnJhcnlIYW5kbGVyLT5Db250ZXh0LA0KPiBAQCAtNjI4LDE2ICs2MjgsMTYgQEAN Cj4gUGVyaW9kaWNTbWlEaXNwYXRjaEZ1bmN0aW9uU3dpdGNoU3RhY2sgKA0KPiAgICAgICk7DQo+ IA0KPiAgICAvLw0KPiAtICAvLyBJZiB0aGlzIERpc3BhdGNoRnVuY3Rpb24oKSByZXR1cm5zLCB0 aGVuDQo+IHVuY29uZGl0aWFsbHkgY2FsbCBQZXJpb2RpY1NtaUV4aXQoKQ0KPiArICAvLyBJZiB0 aGlzIERpc3BhdGNoRnVuY3Rpb24oKSByZXR1cm5zLCB0aGVuDQo+IHVuY29uZGl0aW9uYWxseSBj YWxsIFBlcmlvZGljU21pRXhpdCgpDQo+ICAgIC8vIHRvIHBlcmZvcm0gYSBMb25nSnVtcCgpIGJh Y2sgdG8NCj4gUGVyaW9kaWNTbWlEaXNwYXRjaEZ1bmN0aW9uT25DcHUoKS4gVGhlDQo+IC0gIC8v IExvbmdKdW1wKCkgd2lsbCByZXN1bWUgZXhlY3Rpb24gb24gdGhlIG9yaWdpbmFsDQo+IHN0YWNr Lg0KPiArICAvLyBMb25nSnVtcCgpIHdpbGwgcmVzdW1lIGV4ZWN1dGlvbiBvbiB0aGUgb3JpZ2lu YWwNCj4gc3RhY2suDQo+ICAgIC8vDQo+ICAgIFBlcmlvZGljU21pRXhpdCAoKTsNCj4gIH0NCj4g DQo+ICAvKioNCj4gICAgSW50ZXJuYWwgd29ya2VyIGZ1bmN0aW9uIHRoYXQgdHJhbnNmZXJzIGNv bnRyb2wgdG8NCj4gYW4gZW5hYmxlZCBwZXJpb2RpYyBTTUkNCj4gLSAgaGFuZGxlciBvbiB0aGUg c3BlY2lmaWVkIGxvZ2lhbCBDUFUuICBUaGlzIGZ1bmN0aW9uDQo+IGRldGVybWluZXMgaWYgdGhl IHBlcmlvZGljDQo+ICsgIGhhbmRsZXIgb24gdGhlIHNwZWNpZmllZCBsb2dpY2FsIENQVS4gIFRo aXMgZnVuY3Rpb24NCj4gZGV0ZXJtaW5lcyBpZiB0aGUgcGVyaW9kaWMNCj4gICAgU01JIGhhbmRs ZXIgeWllbGRlZCBhbmQgbmVlZHMgdG8gYmUgcmVzdW1lZC4gIEl0DQo+IGFsc28gYW5kIHN3aXRj aGVzIHRvIGFuDQo+ICAgIGFsbG9jYXRlZCBzdGFjayBpZiBvbmUgd2FzIGFsbG9jYXRlZCBpbg0K PiBQZXJpb2RpY1NtaUVuYWJsZSgpLg0KPiANCj4gQEAgLTY1Miw5ICs2NTIsOSBAQCBQZXJpb2Rp Y1NtaURpc3BhdGNoRnVuY3Rpb25PbkNwdSAoDQo+ICAgICkNCj4gIHsNCj4gICAgLy8NCj4gLSAg Ly8gU2F2ZSBjb250ZXh0IGluIERpc3BhdGNoSnVtcEJ1ZmZlci4gIFRoZSBpbnRpYWwNCj4gY2Fs bCB0byBTZXRKdW1wKCkgYWx3YXlzDQo+ICsgIC8vIFNhdmUgY29udGV4dCBpbiBEaXNwYXRjaEp1 bXBCdWZmZXIuICBUaGUgaW5pdGlhbA0KPiBjYWxsIHRvIFNldEp1bXAoKSBhbHdheXMNCj4gICAg Ly8gcmV0dXJucyAwLiAgSWYgdGhpcyBpcyB0aGUgaW5pdGlhbCBjYWxsLCB0aGVuDQo+IGVpdGhl ciByZXN1bWUgZnJvbSBhIHByaW9yDQo+IC0gIC8vIGNhbGwgdG8gUGVyaW9kaWNTbWlZaWVsZCgp IG9yIGNhbGwgdGhlDQo+IERpc3BhdGNoRnVuY3Rpb24gcmVnaXN0ZXJkIGluDQo+ICsgIC8vIGNh bGwgdG8gUGVyaW9kaWNTbWlZaWVsZCgpIG9yIGNhbGwgdGhlDQo+IERpc3BhdGNoRnVuY3Rpb24g cmVnaXN0ZXJlZCBpbg0KPiAgICAvLyBQZXJpb2RpY1NtaUVuYWJsZSgpIHVzaW5nIGFuIGFsbG9j YXRlZCBzdGFjayBpZg0KPiBvbmUgd2FzIHNwZWNpZmllZC4NCj4gICAgLy8NCj4gICAgaWYgKFNl dEp1bXAgKCZQZXJpb2RpY1NtaUxpYnJhcnlIYW5kbGVyLQ0KPiA+RGlzcGF0Y2hKdW1wQnVmZmVy KSAhPSAwKSB7DQo+IEBAIC02NzksNyArNjc5LDcgQEAgUGVyaW9kaWNTbWlEaXNwYXRjaEZ1bmN0 aW9uT25DcHUgKA0KPiAgICAgIC8vDQo+ICAgICAgLy8gSWYgU3RhY2sgaXMgTlVMTCB0aGVuIGNh bGwgRGlzcGF0Y2hGdW5jdGlvbg0KPiB1c2luZyBjdXJyZW50IHN0YWNrIHBhc3NpbmcNCj4gICAg ICAvLyBpbiB0aGUgY29udGV4dCB0aGF0IHdhcyByZWdpc3RlcmVkIGFuZCB0aGUNCj4gYW1vdW50 IG9mIHRpbWUgdGhhdCBoYXMNCj4gLSAgICAvLyBlbGFwc2VkIHNpbmNlIHRoZSBwcmV2aW91cyB0 aW1lIHRoaXMgcGVyaW9kaWMNCj4gU01JIGhhbmRsZXIgd2FzIGRpc3BhY3RoZWQuDQo+ICsgICAg Ly8gZWxhcHNlZCBzaW5jZSB0aGUgcHJldmlvdXMgdGltZSB0aGlzIHBlcmlvZGljDQo+IFNNSSBo YW5kbGVyIHdhcyBkaXNwYXRjaGVkLg0KPiAgICAgIC8vDQo+ICAgICAgUGVyaW9kaWNTbWlMaWJy YXJ5SGFuZGxlci0+RGlzcGF0Y2hGdW5jdGlvbiAoDQo+ICAgICAgICBQZXJpb2RpY1NtaUxpYnJh cnlIYW5kbGVyLT5Db250ZXh0LA0KPiBAQCAtNjg3LDcgKzY4Nyw3IEBAIFBlcmlvZGljU21pRGlz cGF0Y2hGdW5jdGlvbk9uQ3B1ICgNCj4gICAgICAgICk7DQo+IA0KPiAgICAgIC8vDQo+IC0gICAg Ly8gSWYgdGhpcyBEaXNwYXRjaEZ1bmN0aW9uKCkgcmV0dXJucywgdGhlbg0KPiB1bmNvbmRpdGlh bGx5IGNhbGwgUGVyaW9kaWNTbWlFeGl0KCkNCj4gKyAgICAvLyBJZiB0aGlzIERpc3BhdGNoRnVu Y3Rpb24oKSByZXR1cm5zLCB0aGVuDQo+IHVuY29uZGl0aW9uYWxseSBjYWxsIFBlcmlvZGljU21p RXhpdCgpDQo+ICAgICAgLy8gdG8gcGVyZm9ybSBhIExvbmdKdW1wKCkgYmFjayB0byB0aGlzIGZ1 bmN0aW9uLg0KPiAgICAgIC8vDQo+ICAgICAgUGVyaW9kaWNTbWlFeGl0ICgpOw0KPiBAQCAtNzEy LDcgKzcxMiw3IEBAIFBlcmlvZGljU21pRGlzcGF0Y2hGdW5jdGlvbk9uQ3B1ICgNCj4gDQo+ICAv KioNCj4gICAgSW50ZXJuYWwgd29ya2VyIGZ1bmN0aW9uIHRoYXQgdHJhbnNmZXJzIGNvbnRyb2wg dG8NCj4gYW4gZW5hYmxlZCBwZXJpb2RpYyBTTUkNCj4gLSAgaGFuZGxlciBvbiB0aGUgc3BlY2lm aWVkIGxvZ2lhbCBDUFUuICBUaGlzIHdvcmtlcg0KPiBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZA0K PiArICBoYW5kbGVyIG9uIHRoZSBzcGVjaWZpZWQgbG9naWNhbCBDUFUuICBUaGlzIHdvcmtlcg0K PiBmdW5jdGlvbiBpcyBvbmx5IGNhbGxlZA0KPiAgICB1c2luZyB0aGUgU01NIFNlcnZpY2VzIFRh YmxlIGZ1bmN0aW9uDQo+IFNtbVN0YXJ0dXBUaGlzQXAoKSB0byBleGVjdXRlIHRoZQ0KPiAgICBw ZXJpb2RpYyBTTUkgaGFuZGxlciBvbiBhIGxvZ2ljYWwgQ1BVIHRoYXQgaXMNCj4gZGlmZmVyZW50 IHRoYW4gdGhlIG9uZSB0aGF0IGlzDQo+ICAgIHJ1bm5pbmcgdGhlIFNNTSBGb3VuZGF0aW9uLiAg V2hlbiB0aGUgcGVyaW9kaWMgU01JDQo+IGhhbmRsZXIgcmV0dXJucywgYSBsb2NrIGlzDQo+IEBA IC03MzYsNyArNzM2LDcgQEAgUGVyaW9kaWNTbWlEaXNwYXRjaEZ1bmN0aW9uV2l0aExvY2sNCj4g KA0KPiAgICBQZXJpb2RpY1NtaUxpYnJhcnlIYW5kbGVyID0NCj4gKFBFUklPRElDX1NNSV9MSUJS QVJZX0hBTkRMRVJfQ09OVEVYVCAgKilCdWZmZXI7DQo+IA0KPiAgICAvLw0KPiAtICAvLyBFeGVj dXRlIGRpc3BhdGNoIGZ1bmN0aW9uIG9uIHRoZSBjdXJyZW50bHkNCj4gZXhjdXRpbmcgbG9naWNh bCBDUFUNCj4gKyAgLy8gRXhlY3V0ZSBkaXNwYXRjaCBmdW5jdGlvbiBvbiB0aGUgY3VycmVudGx5 DQo+IGV4ZWN1dGluZyBsb2dpY2FsIENQVQ0KPiAgICAvLw0KPiAgICBQZXJpb2RpY1NtaURpc3Bh dGNoRnVuY3Rpb25PbkNwdQ0KPiAoUGVyaW9kaWNTbWlMaWJyYXJ5SGFuZGxlcik7DQo+IA0KPiBA QCAtODA1LDcgKzgwNSw3IEBAIFBlcmlvZGljU21pRGlzcGF0Y2hGdW5jdGlvbiAoDQo+ICAgICAg ICAoUGVyaW9kaWNTbWlMaWJyYXJ5SGFuZGxlci0+Q3B1ID09IGdTbXN0LQ0KPiA+Q3VycmVudGx5 RXhlY3V0aW5nQ3B1KSAgICApIHsNCj4gICAgICAvLw0KPiAgICAgIC8vIERpc3BhdGNoIG9uIHRo ZSBjdXJyZW50bHkgZXhlY3V0aW9uIENQVSBpZiB0aGUNCj4gQ1BVIHNwZWNpZmllZCBpbiBQZXJp b2RpY1NtaUVuYWJsZSgpDQo+IC0gICAgLy8gd2FzIFBFUklPRElDX1NNSV9MSUJBUlJZX0FOWV9D UFUgb3IgdGhlDQo+IGN1cnJlbnRseSBleGVjdXRpbmcgQ1BVIG1hdGNoZXMgdGhlIENQVQ0KPiAr ICAgIC8vIHdhcyBQRVJJT0RJQ19TTUlfTElCUkFSWV9BTllfQ1BVIG9yIHRoZQ0KPiBjdXJyZW50 bHkgZXhlY3V0aW5nIENQVSBtYXRjaGVzIHRoZSBDUFUNCj4gICAgICAvLyB0aGF0IHdhcyBzcGVj aWZpZWQgaW4gUGVyaW9kaWNTbWlFbmFibGUoKS4NCj4gICAgICAvLw0KPiAgICAgIFBlcmlvZGlj U21pRGlzcGF0Y2hGdW5jdGlvbk9uQ3B1DQo+IChQZXJpb2RpY1NtaUxpYnJhcnlIYW5kbGVyKTsN Cj4gQEAgLTg2Nyw3ICs4NjcsNyBAQCBQZXJpb2RpY1NtaURpc3BhdGNoRnVuY3Rpb24gKA0KPiAg ICBAcGFyYW1baW5dICAgICBEaXNwYXRjaEZ1bmN0aW9uICBBIHBvaW50ZXIgdG8gYQ0KPiBwZXJp b2RpYyBTTUkgaGFuZGxlciBmdW5jdGlvbi4NCj4gICAgQHBhcmFtW2luXSAgICAgQ29udGV4dCAg ICAgICAgICAgT3B0aW9uYWwgY29udGVudCB0bw0KPiBwYXNzIGludG8gRGlzcGF0Y2hGdW5jdGlv bi4NCj4gICAgQHBhcmFtW2luXSAgICAgVGlja1BlcmlvZCAgICAgICAgVGhlIHJlcXVlc3RlZCB0 aWNrDQo+IHBlcmlvZCBpbiAxMDBucyB1bml0cyB0aGF0DQo+IC0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnRyb2wgc2hvdWxkIGJlDQo+IGdpdmllbiB0byB0aGUgcGVyaW9k aWMgU01JDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wgc2hv dWxkIGJlDQo+IGdpdmVuIHRvIHRoZSBwZXJpb2RpYyBTTUkNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaGFuZGxlci4gIE11c3QgYmUNCj4gb25lIG9mIHRoZSBzdXBwb3J0 ZWQgdmFsdWVzDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybmVk IGJ5DQo+IFBlcmlvZGljU21pU3VwcG9ydGVkUGlja1BlcmlvZCgpLg0KPiAgICBAcGFyYW1baW5d ICAgICBDcHUgICAgICAgICAgICAgICBTcGVjaWZpZXMgdGhlIENQVQ0KPiB0aGF0IGlzIHJlcXVp cmVkIHRvIGV4ZWN1dGUNCj4gQEAgLTg5MSw3ICs4OTEsNyBAQCBQZXJpb2RpY1NtaURpc3BhdGNo RnVuY3Rpb24gKA0KPiAgICBAcmV0dmFsIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICAgVGhlcmUgYXJl IG5vdCBlbm91Z2gNCj4gcmVzb3VyY2VzIHRvIGVuYWJsZSB0aGUNCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBlcmlvZGljIFNNSSBoYW5kbGVyLg0KPiAgICBAcmV0dmFsIEVG SV9PVVRfT0ZfUkVTT1VSQ0VTICAgVGhlcmUgYXJlIG5vdCBlbm91Z2gNCj4gcmVzb3VyY2VzIHRv IGFsbG9jYXRlIHRoZQ0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2sg c3BlZmljaWVkIGJ5DQo+IFN0YWNrU2l6ZS4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0YWNrIHNwZWNpZmllZCBieQ0KPiBTdGFja1NpemUuDQo+ICAgIEByZXR2YWwgRUZJ X1NVQ0NFU1MgICAgICAgICAgICBUaGUgcGVyaW9kaWMgU01JDQo+IGhhbmRsZXIgd2FzIGVuYWJs ZWQuDQo+IA0KPiAgKiovDQo+IEBAIC0xMDc3LDcgKzEwNzcsNyBAQCBTbW1QZXJpb2RpY1NtaUxp YkNvbnN0cnVjdG9yICgNCj4gDQo+ICAgIC8vDQo+ICAgIC8vIENvdW50IHRoZSBudW1iZXIgb2Yg cGVyaW9kaWMgU01JIHRpY2sgaW50ZXJ2YWxzDQo+IHRoYXQgdGhlIFNNTSBQZXJpb2RpYyBUaW1l cg0KPiAtICAvLyBEaXBhdGNoIDIgUHJvdG9jb2wgc3VwcG9ydHMuDQo+ICsgIC8vIERpc3BhdGNo IDIgUHJvdG9jb2wgc3VwcG9ydHMuDQo+ICAgIC8vDQo+ICAgIFNtaVRpY2tJbnRlcnZhbCA9IE5V TEw7DQo+ICAgIENvdW50ID0gMDsNCj4gZGlmZiAtLWdpdA0KPiBhL01kZVBrZy9MaWJyYXJ5L1Nt bVNlcnZpY2VzVGFibGVMaWIvU21tU2VydmljZXNUYWJsZUxpDQo+IGIuYw0KPiBiL01kZVBrZy9M aWJyYXJ5L1NtbVNlcnZpY2VzVGFibGVMaWIvU21tU2VydmljZXNUYWJsZUxpDQo+IGIuYw0KPiBp bmRleCBkOTVlOWQ0NzM3OTAuLjBmNjExY2QyNWRmNyAxMDA2NDQNCj4gLS0tDQo+IGEvTWRlUGtn L0xpYnJhcnkvU21tU2VydmljZXNUYWJsZUxpYi9TbW1TZXJ2aWNlc1RhYmxlTGkNCj4gYi5jDQo+ ICsrKw0KPiBiL01kZVBrZy9MaWJyYXJ5L1NtbVNlcnZpY2VzVGFibGVMaWIvU21tU2VydmljZXNU YWJsZUxpDQo+IGIuYw0KPiBAQCAtMzYsNyArMzYsNyBAQCBTbW1TZXJ2aWNlc1RhYmxlTGliQ29u c3RydWN0b3IgKA0KPiAgICAvLw0KPiAgICAvLyBSZXRyaWV2ZSBTTU0gQmFzZTIgUHJvdG9jb2ws ICBEbyBub3QgdXNlIGdCUyBmcm9tDQo+IFVlZmlCb290U2VydmljZXNUYWJsZUxpYiBvbiBwdXJw b3NlDQo+ICAgIC8vIHRvIHByZXZlbnQgaW5jbHVzaW9uIG9mIGdCUywgZ1NULCBhbmQNCj4gZ0lt YWdlSGFuZGxlIGZyb20gU01NIERyaXZlcnMgdW5sZXNzIHRoZQ0KPiAtICAvLyBTTU0gZHJpdmVy IGV4cGxpY2l0eSBkZWNsYXJlcyB0aGF0IGRlcGVuZGVuY3kuDQo+ICsgIC8vIFNNTSBkcml2ZXIg ZXhwbGljaXRseSBkZWNsYXJlcyB0aGF0IGRlcGVuZGVuY3kuDQo+ICAgIC8vDQo+ICAgIFN0YXR1 cyA9IFN5c3RlbVRhYmxlLT5Cb290U2VydmljZXMtPkxvY2F0ZVByb3RvY29sICgNCj4gDQo+ICZn RWZpU21tQmFzZTJQcm90b2NvbEd1aWQsDQo+IC0tDQo+IDIuMjEuMA0KDQo=