From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.24; helo=mga09.intel.com; envelope-from=jiewen.yao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 1CE73202E59C4 for ; Fri, 27 Oct 2017 22:11:46 -0700 (PDT) Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Oct 2017 22:15:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,307,1505804400"; d="scan'208";a="168804973" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by fmsmga006.fm.intel.com with ESMTP; 27 Oct 2017 22:15:34 -0700 Received: from fmsmsx125.amr.corp.intel.com (10.18.125.40) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 27 Oct 2017 22:15:34 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by FMSMSX125.amr.corp.intel.com (10.18.125.40) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 27 Oct 2017 22:15:33 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.175]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.213]) with mapi id 14.03.0319.002; Sat, 28 Oct 2017 13:15:31 +0800 From: "Yao, Jiewen" To: Laszlo Ersek CC: "Ni, Ruiyu" , "Zeng, Star" , "edk2-devel@lists.01.org" , "Kinney, Michael D" , Ard Biesheuvel Thread-Topic: [edk2] [PATCH] IntelSiliconPkg/VTdDxe: Change EBS Event TPL to CALLBACK. Thread-Index: AQHTThcCxLYSYGW9y0GhkiqH8Xoq2aL1lmkw//+FSYCAAIfpEP//foKAgACO5jD//3tdgAACC26AAACcdoAAClfKAAARipCQ//+VBQD//tyGEIABx5eA//9r+QCAAZzOAIABWMMf Date: Sat, 28 Oct 2017 05:15:30 +0000 Message-ID: References: <1508984017-11740-1-git-send-email-jiewen.yao@intel.com> <0C09AFA07DD0434D9E2A0C6AEB0483103B9AE3FE@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AA04CE4@shsmsx102.ccr.corp.intel.com> <0C09AFA07DD0434D9E2A0C6AEB0483103B9AE45B@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AA04F32@shsmsx102.ccr.corp.intel.com> <0C09AFA07DD0434D9E2A0C6AEB0483103B9AE4D0@shsmsx102.ccr.corp.intel.com> <0C09AFA07DD0434D9E2A0C6AEB0483103B9AE57E@shsmsx102.ccr.corp.intel.com> <657e3efc-c5f3-df60-4263-07f076f07a1c@redhat.com> <74D8A39837DF1E4DA445A8C0B3885C503AA06060@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AA068EA@shsmsx102.ccr.corp.intel.com> <734D49CCEBEEF84792F5B80ED585239D5BAA8A38@SHSMSX104.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AA06A52@shsmsx102.ccr.corp.intel.com>, <76d5c170-8ea5-1fb3-dcc1-cc43eefbe780@redhat.com> In-Reply-To: <76d5c170-8ea5-1fb3-dcc1-cc43eefbe780@redhat.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: MIME-Version: 1.0 Subject: Re: [PATCH] IntelSiliconPkg/VTdDxe: Change EBS Event TPL to CALLBACK. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 28 Oct 2017 05:11:47 -0000 Content-Language: zh-CN Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 U3VyZS4gV2Ugd2lsbCBkZWZpbml0ZWx5IGdvIHRocm91Z2ggbm9ybWFsIGVkazIgcHJvY2Vzcy4N Cg0KSSBtZW50aW9uZWQgaXQgaGVyZSwganVzdCBiZWNhdXNlIEkgYW0gc2VlaW5nIGxvdHMgb2Yg ZGlzY3Vzc2lvbiBhcm91bmQgaXQuDQoNClRoZXJlIHdvbid0IGJlIGFueSBzaG9ydGN1dCB0byBj aGVjayBpbiBhIHBhdGNoLg0KDQp0aGFuayB5b3UhDQpZYW8sIEppZXdlbg0KDQoNCj4g1NogMjAx N8TqMTDUwjI4yNWjrMnPzucxMjo0MaOsTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4g 0LS1wKO6DQo+IA0KPj4gT24gMTAvMjcvMTcgMDM6NDcsIFlhbywgSmlld2VuIHdyb3RlOg0KPj4g SSB0aGluayB0aGUgZXJyb3IgbWlnaHQgYmUgUENJIGRldmljZSBzcGVjaWZpYy4NCj4+IA0KPj4g QlRXOiBXZSBhbHJlYWR5IGhhdmUgYnVnemlsbGFyIG9uIHRoYXQNCj4+IGh0dHBzOi8vYnVnemls bGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5DQo+PiANCj4+IEl0IGhhcyBiZWVu IHZhbGlkYXRlZCBieSBNaWNyb3NvZnQuIFdlIGNhbiB2YWxpZGF0ZSBtb3JlIGRldmljZSBjYXJk cw0KPj4gdG8gc2VlIGlmIHRoZXJlIGlzIGFueSBpc3N1ZS4NCj4gDQo+IENhbiB0aGlzIHdvcmsg cGxlYXNlIGJlIHBvc3RlZCB0byBlZGsyLWRldmVsIGZvciB0aGUgdXN1YWwgcmV2aWV3Pw0KPiAN Cj4gDQo+IEFsc28sIGNhbiB3ZSBtYWtlIHRoaXMgZmVhdHVyZSBkZXBlbmRlbnQgb24gYSBGZWF0 dXJlIFBDRD8gKE1heWJlIGV2ZW4NCj4gYmV0dGVyOiBhIGR5bmFtaWMgQk9PTEVBTiBQQ0QuKQ0K PiANCj4gKFBlcmhhcHMgdGhlIGNvZGUgaXMgYWxyZWFkeSB3cml0dGVuIGxpa2UgdGhhdDsgSSBj YW4ndCBlYXNpbHkgdGVsbCBmcm9tDQo+IA0KPiAgaHR0cHM6Ly9naXRodWIuY29tL01pY3Jvc29m dC9NU19VRUZJL3RyZWUvc2hhcmUvZGlzYWJsZWJtZW9uZXhpdDINCj4gDQo+IHdoaWNoIGlzIGxp bmtlZCB1bmRlcg0KPiANCj4gIGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1 Zy5jZ2k/aWQ9NzM5I2MwDQo+IA0KPiBUaGUgZ2l0aHViIHN1bW1hcnkgZm9yIHRoZSBicmFuY2gg aXM6DQo+IA0KPiAgVGhpcyBicmFuY2ggaXMgMjI1MDggY29tbWl0cyBhaGVhZCwgMyBjb21taXRz IGJlaGluZCBhYm91dA0KPiANCj4gd2hpY2ggY29uZnVzZXMgbWU7IEkgd291bGQgZXhwZWN0IGEg ZmVhdHVyZSBicmFuY2ggdG8gYmUgZm9ya2VkIGZyb20gYQ0KPiByZWNlbnQgY29tbWl0IG9uIGVk azIgbWFzdGVyLikNCj4gDQo+IA0KPiBSZWdhcmRpbmcgdGhlIFBDRCwgSSdtIE9LIGlmIHRoZSBk ZWZhdWx0IHZhbHVlIGluIHRoZSAuZGVjIGZpbGUgaXMgVFJVRTsNCj4gSSdtIGp1c3QgY29uY2Vy bmVkIHRoYXQgSSBtaWdodCBub3QgYmUgYWJsZSB0byB0ZXN0IHRoZSBjaGFuZ2Ugd2l0aCAxMDAl DQo+IGNvdmVyYWdlLiBRRU1VIHN1cHBvcnRzIFBDSSBhbmQgUENJIEV4cHJlc3MgaGllcmFyY2hp ZXMgZmxleGlibHkgWypdLA0KPiB0aGVyZSBhcmUgc2V2ZXJhbCBraW5kcyBvZiBicmlkZ2VzIGFu ZCBFeHByZXNzIHBvcnRzLiBBbmQsIGEgZ29vZCBudW1iZXINCj4gb2YgdmlydGlvIGRldmljZSB0 eXBlcyAodXNhYmxlIGFzIFBDSS9QQ0llIGVuZHBvaW50cykgZXhpc3QgYXMgd2VsbCwNCj4gc3Vw cG9ydGVkIGJ5IE9WTUYuIEFkZCB0byB0aGF0IHRoZSBQQ0kvUENJZSBleHBhbmRlciBicmlkZ2Vz ICh0aGV5DQo+IGJhc2ljYWxseSBwcm92aWRlIG11bHRpcGxlIHJvb3QgYnJpZGdlcyBvbiBhIHNp bmdsZSBob3N0IGJyaWRnZSksIGFuZA0KPiB0aGVuIFNFViAoZm9yIHdoaWNoIERNQSBpcyBub3Qg dHJhbnNwYXJlbnQ7IGl0IHJlcXVpcmVzIGFjdHVhbCBtYXBwaW5nDQo+IC0tIGRlY3J5cHRpb24g YW5kIHJlLWVuY3J5cHRpb24pLg0KPiANCj4gU28sIEknZCBsaWtlIHRvIGhhdmUgYW4gImVzY2Fw ZSBzd2l0Y2giLg0KPiANCj4gDQo+IFsqXSBUaGUgUENJIC8gUENJZSBzdXBwb3J0IGlzIGluIGZh Y3Qgc28gZmxleGlibGUgaW4gUUVNVSB0aGF0IHdlIGhhdmUNCj4gdG8gbGltaXQgb3Vyc2VsdmVz IC0tIGFuZCB1c2VycyB0b28gLS0gdmlhIGd1aWRlbGluZXMuDQo+IA0KPiAgaHR0cHM6Ly9naXQu cWVtdS5vcmcvP3A9cWVtdS5naXQ7YT1ibG9iX3BsYWluO2Y9ZG9jcy9wY2llLnR4dDtoYj1IRUFE DQo+IA0KPiBodHRwczovL2dpdC5xZW11Lm9yZy8/cD1xZW11LmdpdDthPWJsb2JfcGxhaW47Zj1k b2NzL3BjaV9leHBhbmRlcl9icmlkZ2UudHh0O2hiPUhFQUQNCj4gDQo+IGh0dHBzOi8vZ2l0LnFl bXUub3JnLz9wPXFlbXUuZ2l0O2E9YmxvYl9wbGFpbjtmPWRvY3MvcGNpZV9wY2lfYnJpZGdlLnR4 dDtoYj1IRUFEDQo+IA0KPiBUaGFuayB5b3UsDQo+IExhc3psbw0KPiANCj4+PiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPj4+IEZyb206IE5pLCBSdWl5dQ0KPj4+IFNlbnQ6IEZyaWRheSwg T2N0b2JlciAyNywgMjAxNyA4OjU0IEFNDQo+Pj4gVG86IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFv QGludGVsLmNvbT47IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+Ow0KPj4+IFplbmcs IFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPj4+ IENjOiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz47IEtpbm5leSwg TWljaGFlbCBEDQo+Pj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPj4+IFN1YmplY3Q6 IFJFOiBbZWRrMl0gW1BBVENIXSBJbnRlbFNpbGljb25Qa2cvVlRkRHhlOiBDaGFuZ2UgRUJTIEV2 ZW50IFRQTCB0bw0KPj4+IENBTExCQUNLLg0KPj4+IA0KPj4+IEppZXdlbiwNCj4+PiBJZiB0aGUg Qk1FIGJpdCBpcyBjbGVhcmVkIGluIENvbW1hbmQgcmVnaXN0ZXIsIGJ1dCBhIGRldmljZSBkcml2 ZXINCj4+PiB1c2VzIERNQSB0byB0cmFuc2ZlciBkYXRhLCB3aGF0IGtpbmQgb2YgZXJyb3Igd2ls bCBiZSBzZWVuIGJ5IFNXPw0KPj4+IA0KPj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ Pj4gRnJvbTogWWFvLCBKaWV3ZW4NCj4+PiBTZW50OiBGcmlkYXksIE9jdG9iZXIgMjcsIDIwMTcg ODozNCBBTQ0KPj4+IFRvOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPjsgWmVuZywg U3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT47DQo+Pj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcN Cj4+PiBDYzogTmksIFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+OyBBcmQgQmllc2hldXZlbCA8 YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz47DQo+Pj4gS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hh ZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPj4+IFN1YmplY3Q6IFJFOiBbZWRrMl0gW1BBVENIXSBJ bnRlbFNpbGljb25Qa2cvVlRkRHhlOiBDaGFuZ2UgRUJTIEV2ZW50IFRQTCB0bw0KPj4+IENBTExC QUNLLg0KPj4+IA0KPj4+IEdvb2QgSW5mby4gSSB0aGluayBhIGNvcnJlY3QgaW1wbGVtZW50YXRp b24gc2hvdWxkIG5vdCB1c2UgYnVzeSB3YWl0Lg0KPj4+IA0KPj4+IEl0IHNob3VsZCBhZGQgZXJy b3IgaGFuZGxpbmcgdG8gY2hlY2sgaWYgdGhlcmUgaXMgaGFyZHdhcmUgZXJyb3IgZHVyaW5nIHRo YXQuDQo+Pj4gDQo+Pj4+IC0gYnVzeSB3YWl0IChwb2xsKSB1bmlsIHRoZSB0cmFuc2ZlciBpcyBj b21wbGV0ZSwNCj4+PiANCj4+PiBUaGUgcHJvY2VzcyBvZiBidXN5IHdhaXQgc2hvdWxkIGJlIHNv bWV0aGluZyBsaWtlIGJlbG93Og0KPj4+ICB3aGlsZShUUlVFKSB7DQo+Pj4gICAgaWYgKGVycm9y KSB7DQo+Pj4gICAgICBicmVhazsNCj4+PiAgICB9DQo+Pj4gICAgR2V0RGF0YQ0KPj4+ICAgIGlm IChjb21wbGV0ZSkgew0KPj4+ICAgICAgQnJlYWsNCj4+PiAgICB9DQo+Pj4gIH0NCj4+PiANCj4+ PiBCTUUgY2xlYXIgd2lsbCB0cmlnZ2VyIGVycm9yIGJyZWFrLg0KPj4+IA0KPj4+IFRoYW5rIHlv dQ0KPj4+IFlhbyBKaWV3ZW4NCj4+PiANCj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4+Pj4gRnJvbTogTGFzemxvIEVyc2VrIFttYWlsdG86bGVyc2VrQHJlZGhhdC5jb21dDQo+Pj4+ IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDI2LCAyMDE3IDExOjA3IFBNDQo+Pj4+IFRvOiBZYW8s IEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBaZW5nLCBTdGFyDQo+Pj4+IDxzdGFyLnpl bmdAaW50ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4+Pj4gQ2M6IE5pLCBSdWl5 dSA8cnVpeXUubmlAaW50ZWwuY29tPjsgQXJkIEJpZXNoZXV2ZWwNCj4+Pj4gPGFyZC5iaWVzaGV1 dmVsQGxpbmFyby5vcmc+OyBLaW5uZXksIE1pY2hhZWwgRA0KPj4+PiA8bWljaGFlbC5kLmtpbm5l eUBpbnRlbC5jb20+DQo+Pj4+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIXSBJbnRlbFNpbGlj b25Qa2cvVlRkRHhlOiBDaGFuZ2UgRUJTIEV2ZW50DQo+Pj4+IFRQTCB0byBDQUxMQkFDSy4NCj4+ Pj4gDQo+Pj4+PiBPbiAxMC8yNi8xNyAxNTozNiwgWWFvLCBKaWV3ZW4gd3JvdGU6DQo+Pj4+PiBI aSBMYXN6bG8NCj4+Pj4+IEkgaGF2ZSBkaXNjdXNzZWQgdGhpcyB3aXRoIE1pa2UgS2lubmV5IG9m ZmxpbmUgYW5kIHNvbWUgTWljcm9zb2Z0IGVuZ2luZWVycy4NCj4+Pj4+IA0KPj4+Pj4gV2UgYmVs aWV2ZSB0aGUgaW1wYWN0IG9mIEJNRSBkaXNhYmxlIGlzIGRpZmZlcmVudCB3aXRoIHRoZSBpbXBh Y3Qgb2YgU0VWLg0KPj4+Pj4gDQo+Pj4+PiBGb3IgU0VWLCBpZiBhIERNQSBidWZmZXIgaXMgaW4g dHJhbnNpdGlvbiB3aGVuIFNFViBiaXQgY2hhbmdlLCB0aGUNCj4+Pj4+IERNQSB3aWxsIHN0aWxs DQo+Pj4+IGJlIGFjdGl2ZSwgYnV0IHRoZSBjb250ZW50IGlzIGRpZmZlcmVudC4gSXQgd2lsbCBi cmluZyB3cm9uZyBkYXRhIGZyb20NCj4+Pj4gZGV2aWNlIHBlcnNwZWN0aXZlLg0KPj4+Pj4gDQo+ Pj4+PiBGb3IgQk1FLCBpZiBhIERNQSBidWZmZXIgaXMgaW4gdHJhbnNpdGlvbiB3aGVuIEJNRSBp cyBjbGVhciwgdGhlIERNQQ0KPj4+Pj4gd2lsbCBiZQ0KPj4+PiBzdG9wcGVkIGltbWVkaWF0ZWx5 LiBUaGUgZGV2aWNlIG9ubHkgc2VlcyB0aGUgRE1BIHRyYW5zaXRpb24gaXMgYWJvcnQuDQo+Pj4+ IEJ1dCB0aGVyZSBpcyBubyB3cm9uZyBkYXRhIHRyYW5zbWl0dGVkLg0KPj4+PiANCj4+Pj4gSSBh Z3JlZSB3aXRoIHRoZSBhYm92ZSBhbmFseXNpcy4NCj4+Pj4gDQo+Pj4+PiBCZWNhdXNlIG9mIGFi b3ZlIHJlYXNvbiwgd2UgdGhpbmsgaXQgaXMgT0sgdG8gbGV0IFBDSSBidXMgZHJpdmVyIHRvDQo+ Pj4+PiBjbGVhciBCTUUgYml0DQo+Pj4+IGV2ZW4gdGhlcmUgaXMgYWN0aXZlIERNQSB0cmFuc2Fj dGlvbi4NCj4+Pj4gDQo+Pj4+IFRoZSByZWFzb24gd2h5IEkgYmVsaWV2ZSB0aGF0IHRoZSBQY2lC dXNEeGUgZHJpdmVyIHNob3VsZCBub3QgY2xlYXINCj4+Pj4gdGhlIEJNRSBiaXQgaXMgZGlmZmVy ZW50LiBJdCBpcyB1bnJlbGF0ZWQgdG8gU0VWLg0KPj4+PiANCj4+Pj4gSW1hZ2luZSBhIFBDSSBk ZXZpY2UgdGhhdCByZXF1aXJlcyBhIHNwZWNpYWwgRE1BIHRyYW5zZmVyIGJlZm9yZSBpdA0KPj4+ PiBjYW4gYmUgcXVpZXNjZWQgYXQgRXhpdEJvb3RTZXJ2aWNlcygpLiBUaGUgdmVuZG9yIG9mIHRo aXMgZGV2aWNlIHdpbGwNCj4+Pj4gaW1wbGVtZW50IGFuIEVCUyBub3RpZmljYXRpb24gZnVuY3Rp b24gbGlrZSB0aGlzOg0KPj4+PiANCj4+Pj4gLSBjaGVjayB0aGUgcHJpdmF0ZSBkYXRhIHN0cnVj dHVyZSB0byBzZWUgaWYgdGhlIGRldmljZSBuZWVkcyB0aGUNCj4+Pj4gc3BlY2lhbCBETUEgdHJh bnNmZXINCj4+Pj4gDQo+Pj4+IC0gaW5pdGlhdGUgdGhlIHNwZWNpYWwgRE1BIHRyYW5zZmVyIC0t IHdyaXRlIHNvbWUgZGF0YSB0byBhIHByZWFsbG9jYXRlZA0KPj4+PiAgYW5kIHByZS1wcm9ncmFt bWVkIG1lbW9yeSBidWZmZXIsIGFuZCB0aGVuIHB1c2ggdGhlIGRvb3JiZWxsIGluIE1NSU8NCj4+ Pj4gIG9yIGNvbmZpZyBzcGFjZSwNCj4+Pj4gDQo+Pj4+IC0gYnVzeSB3YWl0IChwb2xsKSB1bmls IHRoZSB0cmFuc2ZlciBpcyBjb21wbGV0ZSwNCj4+Pj4gDQo+Pj4+IC0gY2xlYXIgQk1FIChhcyBy ZXF1aXJlZCBieSB0aGUgRFdHIC8gc3BlYykNCj4+Pj4gDQo+Pj4+IC0gZG9uZQ0KPj4+PiANCj4+ Pj4gTm93LCBpZiBQY2lCdXNEeGUgaW50cm9kdWNlcyBpdHMgb3duIEVCUyBub3RpZmljYXRpb24g ZnVuY3Rpb24sIHdoaWNoDQo+Pj4+IGl0ZXJhdGVzIG92ZXIgYWxsIHRoZSBQY2lJbyBpbnN0YW5j ZXMsIGFuZCBjbGVhcnMgdGhlIEJNRSBiaXQgaW4gZWFjaA0KPj4+PiBjb21tYW5kIHJlZ2lzdGVy LCB0aGVuIHRoaXMgbm90aWZpY2F0aW9uIGZ1bmN0aW9uIG1heSwgb3IgbWF5IG5vdCwgYmUNCj4+ Pj4gcXVldWVkIGJlZm9yZSB0aGUgb3RoZXIgb25lIHRoYXQgSSBkZXNjcmliZWQgYWJvdmUuDQo+ Pj4+IA0KPj4+PiBJZiB0aGUgUGNpQnVzRHhlIGZ1bmN0aW9uIGlzIHF1ZXVlZCAiYWZ0ZXIiLCB0 aGVuIGV2ZXJ5dGhpbmcgaXMgZmluZS4NCj4+Pj4gSWYgaXQgaXMgcXVldWVkICJiZWZvcmUiLCB0 aGVuIHRoZSBkcml2ZXIncyBvd24gbm90aWZpY2F0aW9uIGZ1bmN0aW9uDQo+Pj4+IHdpbGwgYnJl YWsuIChJdCBtYXkgZXZlbiBoYW5nLCBpZiB0aGUgYnVzeSB3YWl0IG5ldmVyIGNvbXBsZXRlcy4p DQo+Pj4+IA0KPj4+PiANCj4+Pj4gVUVGSSBkcml2ZXJzIGZvciBQQ0kgZGV2aWNlcyBhcmUgY3Vy cmVudGx5IG5vdCBmb3JiaWRkZW4gZnJvbSBkb2luZyBhDQo+Pj4+IHF1aWNrIENvbW1vbkJ1ZmZl ciBETUEgdHJhbnNmZXIgaW4gdGhlaXIgRUJTIGNhbGxiYWNrcyAoYXMgbG9uZyBhcw0KPj4+PiB0 aGV5IGRvbid0IGFsbG9jYXRlIG9yIHJlbGVhc2UgbWVtb3J5IC0tIGJ1dCB0aGUgbWVtb3J5IGJ1 ZmZlciBhbmQgdGhlDQo+Pj4+IGNvcnJlc3BvbmRpbmcgQ29tbW9uQnVmZmVyIG1hcHBpbmcgYXJl IG5vdCBoYXJkIHRvIHNldCB1cCBpbiBhZHZhbmNlLA0KPj4+PiBmb3IgZXhhbXBsZSBpbiBEcml2 ZXJCaW5kaW5nU3RhcnQoKSkuDQo+Pj4+IA0KPj4+PiBUaGlzIG1lYW5zIHRoYXQgYW55IGF1dG9t YXRlZCBJT01NVSBkZWFjdGl2YXRpb24sIGFuZC9vciBCTUUgY2xlYXJpbmcNCj4+Pj4gaW4gUGNp QnVzRHhlLCBzaG91bGQgb2NjdXIgb25seSBhZnRlciB0aGUgaW5kaXZpZHVhbCBkcml2ZXIgY2Fs bGJhY2tzDQo+Pj4+IGhhdmUgcmV0dXJuZWQuIElmIFBjaUJ1c0R4ZSBjYW4gZ3VhcmFudGVlIHRo aXMsIHRoZW4gSSBoYXZlIG5vDQo+Pj4+IG9iamVjdGlvbnMgOikNCj4+Pj4gDQo+Pj4+IFRoYW5r cyENCj4+Pj4gTGFzemxvDQo+Pj4+IA0KPj4+Pj4gDQo+Pj4+PiBUaGFuayB5b3UNCj4+Pj4+IFlh byBKaWV3ZW4NCj4+Pj4+IA0KPj4+Pj4gDQo+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4+Pj4+PiBGcm9tOiBMYXN6bG8gRXJzZWsgW21haWx0bzpsZXJzZWtAcmVkaGF0LmNvbV0N Cj4+Pj4+PiBTZW50OiBUaHVyc2RheSwgT2N0b2JlciAyNiwgMjAxNyA5OjA3IFBNDQo+Pj4+Pj4g VG86IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBZYW8sIEppZXdlbg0KPj4+Pj4+ IDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+Pj4+Pj4g Q2M6IE5pLCBSdWl5dSA8cnVpeXUubmlAaW50ZWwuY29tPjsgQXJkIEJpZXNoZXV2ZWwNCj4+Pj4g PGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+DQo+Pj4+Pj4gU3ViamVjdDogUmU6IFtlZGsyXSBb UEFUQ0hdIEludGVsU2lsaWNvblBrZy9WVGREeGU6IENoYW5nZSBFQlMNCj4+Pj4+PiBFdmVudCBU UEwgdG8gQ0FMTEJBQ0suDQo+Pj4+Pj4gDQo+Pj4+Pj4+IE9uIDEwLzI2LzE3IDEwOjEwLCBaZW5n LCBTdGFyIHdyb3RlOg0KPj4+Pj4+PiBJcyBpdCBzZWN1cml0eSByZWFzb24gd2hlbiBJT01NVSBk aXNhYmxlZCBhbmQgQnVzIE1hc3RlciBub3QgZGlzYWJsZWQ/DQo+Pj4+Pj4gDQo+Pj4+Pj4gTm8s IEkgZG9uJ3QgdGhpbmsgdGhlcmUgaXMgYSBzZWN1cml0eSBpc3N1ZSBoZXJlLg0KPj4+Pj4+IA0K Pj4+Pj4+IEJ1dCwgbXkgcHJldmlvdXMgYXNzZXNzbWVudCBhYm91dCBWVGREeGUgd2FzIGluZGVl ZCB3cm9uZyAtLSB0aGVyZQ0KPj4+Pj4+IG1heSBiZSBhICpjb3JyZWN0bmVzcyogaXNzdWUuDQo+ Pj4+Pj4gDQo+Pj4+Pj4gTmFtZWx5LCBpZiB0aGUgSU9NTVUgaXMgZGUtYWN0aXZhdGVkIGJ5IFZU ZER4ZSBiZWZvcmUgUENJIGRyaXZlcnMNCj4+Pj4+PiBhYm9ydCBwZW5kaW5nIERNQSwgdGhlbiBs aXZlIHN5c3RlbSBSQU0gcmVmZXJlbmNlcyBpbiB0aGUgZGV2aWNlcw0KPj4+Pj4+IG1heSBiZWNv bWUgYm9ndXMuIFRoaXMgaXMgbm90IGEgc2VjdXJpdHkgaXNzdWUgKGJlY2F1c2UNCj4+Pj4+PiBk ZS1hY3RpdmF0aW5nIHRoZSBJT01NVSB3aWxsIGdyYW50IHRoZSBkZXZpY2VzIGFjY2VzcyB0byBh bGwgb2YgdGhlDQo+Pj4+Pj4gc3lzdGVtIFJBTSBhbnl3YXkpLCBpbnN0ZWFkIGl0J3MgYSBjb3Jy ZWN0bmVzcyBwcm9ibGVtOiBETUENCj4+Pj4+PiByZWFkL3dyaXRlIG1heSBub3cgYmUgZGlyZWN0 ZWQgdG8gdGhlIHdyb25nIHNwb3RzIGluIFJBTSAoaWYgdGhlIElPTU1VDQo+Pj4gbWFwcGluZ3Mg d2VyZSBub3QgMToxIHByZXZpb3VzbHkpLg0KPj4+Pj4+IA0KPj4+Pj4+IFNvLCBJIGFncmVlIHRo YXQgUENJIGRyaXZlcnMgc2hvdWxkIGdldCBhIGNoYW5jZSB0byBhYm9ydCBwZW5kaW5nDQo+Pj4+ Pj4gRE1BIGZpcnN0LCBiZWZvcmUgdGhlIElPTU1VIGRyaXZlciByZW1vdmVzIHRoZSBtYXBwaW5n cy4NCj4+Pj4+PiANCj4+Pj4+Pj4gQ291bGQgb3VyIGNvZGUgaGF2ZSBhIGNlbnRyYWwgcGxhY2Ug dG8gZGlzYWJsZSBCdXMgTWFzdGVyPyBGb3INCj4+Pj4+Pj4gZXhhbXBsZQ0KPj4+Pj4+IFBjaUJ1 c0R4ZT8NCj4+Pj4+PiANCj4+Pj4+PiBObywgSSBkb24ndCB0aGluayBQY2lCdXNEeGUgaXMgYSBn b29kIGlkZWEuIEhpZ2hlci1sZXZlbCBQQ0kNCj4+Pj4+PiBkcml2ZXJzIG1pZ2h0IHdhbnQgdG8g ZG8gb25lLXNob3QgYnVzIG1hc3RlciBETUEgb3BlcmF0aW9ucyBpbg0KPj4+Pj4+IHRoZWlyIG93 biBFQlMgY2FsbGJhY2tzLiBJZiBQY2lCdXNEeGUncyBjYWxsYmFjayByYW4gZmlyc3QsIHRoZW4N Cj4+Pj4+PiB0aGVzZSBoaWdoZXItbGV2ZWwgZHJpdmVycyB3b3VsZCBicmVhay4NCj4+Pj4+PiAN Cj4+Pj4+PiBGb3IgdGhlIFNFViBJT01NVSBkcml2ZXIsIHdlIHNvbHZlZCB0aGUgcHJvYmxlbSBp biBjb21taXQNCj4+Pj4+PiA3YWVlMzkxZmEzZDANCj4+Pj4+PiAoIk92bWZQa2cvSW9NbXVEeGU6 IHVubWFwIGFsbCBJT01NVSBtYXBwaW5ncyBhdA0KPj4+Pj4+IEV4aXRCb290U2VydmljZXMoKSIs IDIwMTctMDktMDcpLiBJIHRoaW5rIHRoZSBzYW1lIGNvdWxkIGJlIGFwcGxpZWQgdG8NCj4+PiBW VGREeGUuDQo+Pj4+Pj4gDQo+Pj4+Pj4gDQo+Pj4+Pj4gQW5vdGhlciBpZGVhIChzdWdnZXN0ZWQg LyBzdXBwb3J0ZWQgYnkgQXJkKSB3YXMgdG8gbW9kaWZ5IHRoZSBlZGsyDQo+Pj4+Pj4gRXhpdEJv b3RTZXJ2aWNlcygpIGltcGxlbWVudGF0aW9uLiBJbiBDb3JlRXhpdEJvb3RTZXJ2aWNlcygpDQo+ Pj4+Pj4gW01kZU1vZHVsZVBrZy9Db3JlL0R4ZS9EeGVNYWluL0R4ZU1haW4uY10sIHdlIGNvdWxk IHNpZ25hbCBhDQo+Pj4+Pj4gc3BlY2lhbA0KPj4+Pj4+IGVkazIgSU9NTVUgZXZlbnQgZ3JvdXAs IHJpZ2h0IGFmdGVyIHNpZ25hbGluZw0KPj4+Pj4+ICJnRWZpRXZlbnRFeGl0Qm9vdFNlcnZpY2Vz R3VpZCI6DQo+Pj4+Pj4gDQo+Pj4+Pj4gIC8vDQo+Pj4+Pj4gIC8vIE5vdGlmeSBvdGhlciBkcml2 ZXJzIHRoYXQgd2UgYXJlIGV4aXRpbmcgYm9vdCBzZXJ2aWNlcy4NCj4+Pj4+PiAgLy8NCj4+Pj4+ PiAgQ29yZU5vdGlmeVNpZ25hbExpc3QgKCZnRWZpRXZlbnRFeGl0Qm9vdFNlcnZpY2VzR3VpZCk7 DQo+Pj4+Pj4gDQo+Pj4+Pj4gIFtIRVJFXQ0KPj4+Pj4+IA0KPj4+Pj4+ICAvLw0KPj4+Pj4+ICAv LyBSZXBvcnQgdGhhdCBFeGl0Qm9vdFNlcnZpY2VzKCkgaGFzIGJlZW4gY2FsbGVkDQo+Pj4+Pj4g IC8vDQo+Pj4+Pj4gIFJFUE9SVF9TVEFUVVNfQ09ERSAoDQo+Pj4+Pj4gICAgRUZJX1BST0dSRVNT X0NPREUsDQo+Pj4+Pj4gICAgKEVGSV9TT0ZUV0FSRV9FRklfQk9PVF9TRVJWSUNFIHwNCj4+Pj4+ PiBFRklfU1dfQlNfUENfRVhJVF9CT09UX1NFUlZJQ0VTKQ0KPj4+Pj4+ICAgICk7DQo+Pj4+Pj4g DQo+Pj4+Pj4gVGhpcyB3b3VsZCBlbnN1cmUgdGhhdCB0aGUgSU9NTVUgY2FsbGJhY2sgcmFuIGxh c3QuDQo+Pj4+Pj4gDQo+Pj4+Pj4gDQo+Pj4+Pj4gWWV0IGFub3RoZXIgaWRlYSAoZnJvbSBKaWV3 ZW4gSSB0aGluaz8pIHdhcyB0byBjYXRjaCB0aGUNCj4+Pj4+PiBFRklfU1dfQlNfUENfRVhJVF9C T09UX1NFUlZJQ0VTIHN0YXR1cyBjb2RlIGluIHRoZSBJT01NVSBkcml2ZXIuIEkNCj4+Pj4+PiBk aWRuJ3QgbGlrZSB0aGUgaWRlYSBiZWNhdXNlIChJTU8pIGl0IHB1dCB0b28gbWFueSByZXF1aXJl bWVudHMgb24NCj4+Pj4+PiBwbGF0Zm9ybXMuDQo+Pj4+Pj4gDQo+Pj4+Pj4gVGhhbmtzLA0KPj4+ Pj4+IExhc3psbw0KPj4+Pj4+IA0KPj4+Pj4+IA0KPj4+Pj4+PiANCj4+Pj4+Pj4gDQo+Pj4+Pj4+ IFRoYW5rcywNCj4+Pj4+Pj4gU3Rhcg0KPj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPj4+Pj4+PiBGcm9tOiBMYXN6bG8gRXJzZWsgW21haWx0bzpsZXJzZWtAcmVkaGF0LmNvbV0N Cj4+Pj4+Pj4gU2VudDogVGh1cnNkYXksIE9jdG9iZXIgMjYsIDIwMTcgMzo1MyBQTQ0KPj4+Pj4+ PiBUbzogWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT47IFlhbywgSmlld2VuDQo+Pj4+ Pj4+IDxqaWV3ZW4ueWFvQGludGVsLmNvbT47DQo+Pj4+Pj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5v cmcNCj4+Pj4+Pj4gQ2M6IE5pLCBSdWl5dSA8cnVpeXUubmlAaW50ZWwuY29tPg0KPj4+Pj4+PiBT dWJqZWN0OiBSZTogW1BBVENIXSBJbnRlbFNpbGljb25Qa2cvVlRkRHhlOiBDaGFuZ2UgRUJTIEV2 ZW50IFRQTA0KPj4+Pj4+PiB0bw0KPj4+Pj4+IENBTExCQUNLLg0KPj4+Pj4+PiANCj4+Pj4+Pj4+ IE9uIDEwLzI2LzE3IDA4OjU0LCBaZW5nLCBTdGFyIHdyb3RlOg0KPj4+Pj4+Pj4gT2ssIHBsZWFz ZSBhZGQgbW9yZSBkZXNjcmlwdGlvbiBpbnRvIHRoZSBjb21taXQgbG9nLCBmb3IgZXhhbXBsZSwN Cj4+Pj4+Pj4+ICJQQ0kNCj4+Pj4gZGV2aWNlDQo+Pj4+Pj4gc2hvdWxkIGRpc2FibGUgQk1FIGF0 IE5PVElGWSIsIGV0Yy4NCj4+Pj4+Pj4gDQo+Pj4+Pj4+IExhc3QgdGltZSB3ZSBkaXNjdXNzZWQg dGhpcyBxdWVzdGlvbiwgdGhlIGNvbnNlbnN1cyB3YXMgdGhhdCBlZGsyDQo+Pj4+Pj4+IHNob3Vs ZA0KPj4+PiBub3QNCj4+Pj4+PiBwcmVzZW50IGFueSByZXF1aXJlbWVudCBmb3IgUENJIGRyaXZl cnMgdGhhdCBpcyBub3QgcmVxdWlyZWQgYnkgdGhlIFVFRkkNCj4+PiBzcGVjLg0KPj4+Pj4+IFVF RkkgZHJpdmVycyBmb3IgUENJIGRldmljZXMgY29tZSBmcm9tIHRoaXJkIHBhcnRpZXMgYXMgd2Vs bCwgYW5kDQo+Pj4+Pj4gdGhvc2UgZHJpdmVycw0KPj4+PiB3aWxsDQo+Pj4+Pj4gb25seSBjYXJl IGFib3V0IHRoZSBVRUZJIHNwZWMgKGFzIHRoZXkgc2hvdWxkKSwgbm90IGFib3V0IGVkazIuDQo+ Pj4+Pj4+IA0KPj4+Pj4+PiBJbiBmYWN0LCBJIHRoaW5rIHRoaXMgYWRkaXRpb25hbCByZXF1aXJl bWVudCBpcyBub3QgbmVjZXNzYXJ5Og0KPj4+Pj4+PiANCj4+Pj4+Pj4gKiBJbiB0aGUgZWFybGll ciBkaXNjdXNzaW9uIChmb3IgdGhlIFNFViBJb01tdUR4ZSBpbiBPVk1GKSwgaXQgd2FzDQo+Pj4+ Pj4+IHJlYWxseQ0KPj4+Pj4+IG5lY2Vzc2FyeSB0byBkZWxheSB0aGUgSW9NbXVEeGUgRXhpdEJv b3RTZXJ2aWNlcygpIGNhbGxiYWNrIGFmdGVyDQo+Pj4+Pj4gYWxsIHRoZSBQQ0kgZHJpdmVyIGNh bGxiYWNrcy4gVGhlIHJlYXNvbiBmb3IgdGhpcyB3YXMgdGhhdCB0aGUNCj4+Pj4+PiBJb01tdUR4 ZQ0KPj4+Pj4+PiBFeGl0Qm9vdFNlcnZpY2VzKCkgY2FsbGJhY2sgd2FzIGdvaW5nIHRvICpsb2Nr IGRvd24qIGFsbCBSQU0gZnJvbQ0KPj4+Pj4+PiBkZXZpY2VzLA0KPj4+PiBhbmQNCj4+Pj4+PiBw ZW5kaW5nIERNQSBoYWQgdG8gYmUgYWJvcnRlZCBiZWZvcmUgdGhpcyBsb2NrLWRvd24uDQo+Pj4+ Pj4+IA0KPj4+Pj4+PiAqIEluIGNvbXBhcmlzb24sIHRoZSBWVGREeGUgY2FsbGJhY2sgYXQgRUJT IGRvZXMgdGhlIG9wcG9zaXRlOiBpdA0KPj4+Pj4+PiAiZGlzYWJsZVtzXQ0KPj4+Pj4+IHRoZSBw cm90ZWN0aW9uIGFuZCBhbGxvd1tzXSBhbGwgRE1BIGFjY2VzcyIsIGluIEppZXdlbidzIHdvcmRz IGZyb20NCj4+Pj4gdXAtdGhyZWFkLg0KPj4+Pj4+IFNvLCBJTU8sIG5laXRoZXIgdGhlIFBDSSBk cml2ZXIgcmVxdWlyZW1lbnQsIG5vciB0aGlzIHBhdGNoLCBhcmUNCj4+Pj4+PiBuZWNlc3Nhcnkg LS0gdGhlcmUgaXMgbmV2ZXIgYW4gSU9NTVUgc3RhdGUgdGhhdCBjb25mbGljdHMgd2l0aCBhDQo+ Pj4+Pj4gY29ycmVjdGx5IHdyaXR0ZW4gUENJDQo+Pj4+IGRyaXZlcidzDQo+Pj4+Pj4gcGVuZGlu ZyBETUEgb3BlcmF0aW9uLg0KPj4+Pj4+PiANCj4+Pj4+Pj4gVGhhbmtzDQo+Pj4+Pj4+IExhc3ps bw0KPj4+Pj4+PiANCj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4gV2l0aCB0aGF0LCBSZXZpZXdlZC1ieTog U3RhciBaZW5nIDxzdGFyLnplbmdAaW50ZWwuY29tPg0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+PiANCj4+ Pj4+Pj4+IFRoYW5rcywNCj4+Pj4+Pj4+IFN0YXINCj4+Pj4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+Pj4+Pj4+PiBGcm9tOiBZYW8sIEppZXdlbg0KPj4+Pj4+Pj4gU2VudDogVGh1 cnNkYXksIE9jdG9iZXIgMjYsIDIwMTcgMjo1MSBQTQ0KPj4+Pj4+Pj4gVG86IFplbmcsIFN0YXIg PHN0YXIuemVuZ0BpbnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPj4+Pj4+Pj4g Q2M6IExhc3psbyBFcnNlayAobGVyc2VrQHJlZGhhdC5jb20pIDxsZXJzZWtAcmVkaGF0LmNvbT47 IE5pLA0KPj4+Pj4+Pj4gUnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNvbT4NCj4+Pj4+Pj4+IFN1Ympl Y3Q6IFJFOiBbUEFUQ0hdIEludGVsU2lsaWNvblBrZy9WVGREeGU6IENoYW5nZSBFQlMgRXZlbnQg VFBMDQo+Pj4+Pj4+PiB0bw0KPj4+Pj4+IENBTExCQUNLLg0KPj4+Pj4+Pj4gDQo+Pj4+Pj4+PiBZ ZXMsIHRoaXMgUENJIHBhdGNoIHdpbGwgYmUgc3VibWl0dGVkIHNvb24uIDopDQo+Pj4+Pj4+PiAN Cj4+Pj4+Pj4+IFRoYW5rIHlvdQ0KPj4+Pj4+Pj4gWWFvIEppZXdlbg0KPj4+Pj4+Pj4gDQo+Pj4+ Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4+Pj4+PiBGcm9tOiBaZW5nLCBT dGFyDQo+Pj4+Pj4+Pj4gU2VudDogVGh1cnNkYXksIE9jdG9iZXIgMjYsIDIwMTcgMjoxOCBQTQ0K Pj4+Pj4+Pj4+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBlZGsyLWRl dmVsQGxpc3RzLjAxLm9yZw0KPj4+Pj4+Pj4+IENjOiBMYXN6bG8gRXJzZWsgKGxlcnNla0ByZWRo YXQuY29tKSA8bGVyc2VrQHJlZGhhdC5jb20+OyBaZW5nLA0KPj4+Pj4+Pj4+IFN0YXIgPHN0YXIu emVuZ0BpbnRlbC5jb20+DQo+Pj4+Pj4+Pj4gU3ViamVjdDogUkU6IFtQQVRDSF0gSW50ZWxTaWxp Y29uUGtnL1ZUZER4ZTogQ2hhbmdlIEVCUyBFdmVudA0KPj4+Pj4+Pj4+IFRQTCB0bw0KPj4+Pj4+ IENBTExCQUNLLg0KPj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+IFNvIHRoZXJlIHdpbGwgYmUgYSBndWlk YW5jZSBmb3IgdGhpcyAiIFBDSSBkZXZpY2UgZGlzYWJsZSBCTUUgYXQNCj4+Pj4+Pj4+PiBOT1RJ RlkgIiB0byBiZSBkb2N1bWVudGVkPw0KPj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+IFRoYW5rcywNCj4+ Pj4+Pj4+PiBTdGFyDQo+Pj4+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4+ Pj4+PiBGcm9tOiBZYW8sIEppZXdlbg0KPj4+Pj4+Pj4+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVy IDI2LCAyMDE3IDI6MDMgUE0NCj4+Pj4+Pj4+PiBUbzogWmVuZywgU3RhciA8c3Rhci56ZW5nQGlu dGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+Pj4+Pj4+Pj4gQ2M6IExhc3psbyBF cnNlayAobGVyc2VrQHJlZGhhdC5jb20pIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4+Pj4+Pj4+PiBT dWJqZWN0OiBSRTogW1BBVENIXSBJbnRlbFNpbGljb25Qa2cvVlRkRHhlOiBDaGFuZ2UgRUJTIEV2 ZW50DQo+Pj4+Pj4+Pj4gVFBMIHRvDQo+Pj4+Pj4gQ0FMTEJBQ0suDQo+Pj4+Pj4+Pj4gDQo+Pj4+ Pj4+Pj4gUmlnaHQuIEluIHRoZSBmdXR1cmUsIHdlIHdpbGwgbGV0IFBDSSBkZXZpY2UgZGlzYWJs ZSBCTUUgYXQgTk9USUZZLg0KPj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+IFNvIHdlIGxldCBJT01NVSB1 c2UgQ0FMTEJBQ0ssIHRvIG1ha2Ugc3VyZSBCTUUgaXMgZGlzYWJsZWQNCj4+Pj4+Pj4+PiBiZWZv cmUgSU9NTVUgaXMgZGlzYWJsZWQuDQo+Pj4+Pj4+Pj4gDQo+Pj4+Pj4+Pj4gVGhhbmsgeW91DQo+ Pj4+Pj4+Pj4gWWFvIEppZXdlbg0KPj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+PiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPj4+Pj4+Pj4+PiBGcm9tOiBaZW5nLCBTdGFyDQo+Pj4+Pj4+Pj4+IFNl bnQ6IFRodXJzZGF5LCBPY3RvYmVyIDI2LCAyMDE3IDE6NTUgUE0NCj4+Pj4+Pj4+Pj4gVG86IFlh bywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3Jn DQo+Pj4+Pj4+Pj4+IENjOiBMYXN6bG8gRXJzZWsgKGxlcnNla0ByZWRoYXQuY29tKSA8bGVyc2Vr QHJlZGhhdC5jb20+OyBaZW5nLA0KPj4+Pj4+Pj4+PiBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29t Pg0KPj4+Pj4+Pj4+PiBTdWJqZWN0OiBSRTogW1BBVENIXSBJbnRlbFNpbGljb25Qa2cvVlRkRHhl OiBDaGFuZ2UgRUJTIEV2ZW50DQo+Pj4+Pj4+Pj4+IFRQTCB0bw0KPj4+Pj4+Pj4+IENBTExCQUNL Lg0KPj4+Pj4+Pj4+PiANCj4+Pj4+Pj4+Pj4gSSBhbSBjb25mdXNlZC4NCj4+Pj4+Pj4+Pj4gDQo+ Pj4+Pj4+Pj4+IElzIHRoaXMgcGF0Y2ggdG8gbWFrZSB0aGUgZGV2aWNlIGRyaXZlcidzIEVCUyBl dmVudA0KPj4+Pj4+Pj4+PiBub3RpZmljYXRpb24gdG8gYmUgcnVuIGJlZm9yZSBJbnRlbFZUZER4 ZSdzIEVCUyBldmVudCBub3RpZmljYXRpb24/DQo+Pj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+PiBJZiB5 ZXMsIHRoaXMgcGF0Y2ggc2VlbWluZ2x5IGNhbiBvbmx5IG1ha2Ugc3VyZSB0aGUgYmVoYXZpb3IN Cj4+Pj4+Pj4+Pj4gd2hlbiB0aGUgZGV2aWNlIGRyaXZlcidzIEVCUyBldmVudCBub3RpZmljYXRp b24gaXMgYXQgTk9USUZZLCBidXQgbm90DQo+Pj4gQ0FMTEJBQ0suDQo+Pj4+Pj4+Pj4+IA0KPj4+ Pj4+Pj4+PiANCj4+Pj4+Pj4+Pj4gVGhhbmtzLA0KPj4+Pj4+Pj4+PiBTdGFyDQo+Pj4+Pj4+Pj4+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+Pj4+Pj4+Pj4+IEZyb206IFlhbywgSmlld2Vu DQo+Pj4+Pj4+Pj4+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDI2LCAyMDE3IDE6MTYgUE0NCj4+ Pj4+Pj4+Pj4gVG86IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBlZGsyLWRldmVs QGxpc3RzLjAxLm9yZw0KPj4+Pj4+Pj4+PiBDYzogTGFzemxvIEVyc2VrIChsZXJzZWtAcmVkaGF0 LmNvbSkgPGxlcnNla0ByZWRoYXQuY29tPg0KPj4+Pj4+Pj4+PiBTdWJqZWN0OiBSRTogW1BBVENI XSBJbnRlbFNpbGljb25Qa2cvVlRkRHhlOiBDaGFuZ2UgRUJTIEV2ZW50DQo+Pj4+Pj4+Pj4+IFRQ TCB0bw0KPj4+Pj4+Pj4+IENBTExCQUNLLg0KPj4+Pj4+Pj4+PiANCj4+Pj4+Pj4+Pj4gVGhhdCBp cyBmaW5lLg0KPj4+Pj4+Pj4+PiANCj4+Pj4+Pj4+Pj4gSGVyZSwgZGlzYWJsaW5nIElPTU1VIG1l YW5zIHRvIGRpc2FibGUgdGhlIHByb3RlY3Rpb24gYW5kIGFsbG93DQo+Pj4+Pj4+Pj4+IGFsbCBE TUEgYWNjZXNzLg0KPj4+Pj4+Pj4+PiBJIGRvIG5vdCB0aGluayBpdCB3aWxsIGJyaW5nIGFueSBm dW5jdGlvbmFsIGltcGFjdC4NCj4+Pj4+Pj4+Pj4gDQo+Pj4+Pj4+Pj4+IFRoYW5rIHlvdQ0KPj4+ Pj4+Pj4+PiBZYW8gSmlld2VuDQo+Pj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+PiANCj4+Pj4+Pj4+Pj4+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+Pj4+Pj4+Pj4+PiBGcm9tOiBaZW5nLCBTdGFy DQo+Pj4+Pj4+Pj4+PiBTZW50OiBUaHVyc2RheSwgT2N0b2JlciAyNiwgMjAxNyAxMjo1OCBQTQ0K Pj4+Pj4+Pj4+Pj4gVG86IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47DQo+Pj4+ Pj4+Pj4+PiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPj4+Pj4+Pj4+Pj4gQ2M6IExhc3psbyBF cnNlayAobGVyc2VrQHJlZGhhdC5jb20pIDxsZXJzZWtAcmVkaGF0LmNvbT47DQo+Pj4+Pj4+Pj4+ PiBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPg0KPj4+Pj4+Pj4+Pj4gU3ViamVjdDog UkU6IFtQQVRDSF0gSW50ZWxTaWxpY29uUGtnL1ZUZER4ZTogQ2hhbmdlIEVCUyBFdmVudA0KPj4+ Pj4+Pj4+Pj4gVFBMIHRvDQo+Pj4+Pj4+Pj4+IENBTExCQUNLLg0KPj4+Pj4+Pj4+Pj4gDQo+Pj4+ Pj4+Pj4+PiBTb21lIGRldmljZSBkcml2ZXIgbWF5IGFsc28gaGF2ZSBleGl0IGJvb3Qgc2Vydmlj ZSBldmVudCBhdA0KPj4+Pj4+Pj4+Pj4gQ0FMTEJBQ0ssIGZvciBleGFtcGxlIEF0YVBhc3NUaHJ1 RXhpdEJvb3RTZXJ2aWNlcygpIHRoYXQgd2FzDQo+Pj4+Pj4+Pj4+PiBhZGRlZCBieQ0KPj4+Pj4+ Pj4+IExhc3psby4NCj4+Pj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+Pj4gDQo+Pj4+Pj4+Pj4+PiBUaGFu a3MsDQo+Pj4+Pj4+Pj4+PiBTdGFyDQo+Pj4+Pj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPj4+Pj4+Pj4+Pj4gRnJvbTogWWFvLCBKaWV3ZW4NCj4+Pj4+Pj4+Pj4+IFNlbnQ6IFRo dXJzZGF5LCBPY3RvYmVyIDI2LCAyMDE3IDEwOjE0IEFNDQo+Pj4+Pj4+Pj4+PiBUbzogZWRrMi1k ZXZlbEBsaXN0cy4wMS5vcmcNCj4+Pj4+Pj4+Pj4+IENjOiBaZW5nLCBTdGFyIDxzdGFyLnplbmdA aW50ZWwuY29tPg0KPj4+Pj4+Pj4+Pj4gU3ViamVjdDogW1BBVENIXSBJbnRlbFNpbGljb25Qa2cv VlRkRHhlOiBDaGFuZ2UgRUJTIEV2ZW50IFRQTA0KPj4+Pj4+Pj4+Pj4gdG8NCj4+Pj4+PiBDQUxM QkFDSy4NCj4+Pj4+Pj4+Pj4+IA0KPj4+Pj4+Pj4+Pj4gQ2hhbmdlIEV4aXRCb290U2VydmljZXMg VFBMIHRvIENBTExCQUNLLCBzbyB0aGF0IGEgZGV2aWNlIGNhbg0KPj4+Pj4+Pj4+Pj4gZGlzYWJs ZSBCTUUgYmVmb3JlIElPTU1VIGdyYW50cyBhY2Nlc3MgcmlnaHQuDQo+Pj4+Pj4+Pj4+PiANCj4+ Pj4+Pj4+Pj4+IENjOiBTdGFyIFplbmcgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+Pj4+Pj4+Pj4+ PiBDb250cmlidXRlZC11bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4x DQo+Pj4+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBKaWV3ZW4gWWFvIDxqaWV3ZW4ueWFvQGludGVs LmNvbT4NCj4+Pj4+Pj4+Pj4+IC0tLQ0KPj4+Pj4+Pj4+Pj4gSW50ZWxTaWxpY29uUGtnL0ZlYXR1 cmUvVlRkL0ludGVsVlRkRHhlL0RtYVByb3RlY3Rpb24uYyB8IDQNCj4+Pj4+Pj4+Pj4+ICsrLS0N Cj4+Pj4+Pj4+Pj4+IDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pDQo+Pj4+Pj4+Pj4+PiANCj4+Pj4+Pj4+Pj4+IGRpZmYgLS1naXQNCj4+Pj4+Pj4+Pj4+IGEv SW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvVlRkL0ludGVsVlRkRHhlL0RtYVByb3RlY3Rpb24uYw0K Pj4+Pj4+Pj4+Pj4gYi9JbnRlbFNpbGljb25Qa2cvRmVhdHVyZS9WVGQvSW50ZWxWVGREeGUvRG1h UHJvdGVjdGlvbi5jDQo+Pj4+Pj4+Pj4+PiBpbmRleCBmNWRlMDFmLi40YTRkODJlIDEwMDY0NA0K Pj4+Pj4+Pj4+Pj4gLS0tIGEvSW50ZWxTaWxpY29uUGtnL0ZlYXR1cmUvVlRkL0ludGVsVlRkRHhl L0RtYVByb3RlY3Rpb24uYw0KPj4+Pj4+Pj4+Pj4gKysrIGIvSW50ZWxTaWxpY29uUGtnL0ZlYXR1 cmUvVlRkL0ludGVsVlRkRHhlL0RtYVByb3RlY3Rpb24uYw0KPj4+Pj4+Pj4+Pj4gQEAgLTQ4Myw3 ICs0ODMsNyBAQCBJbml0aWFsaXplRG1hUHJvdGVjdGlvbiAoDQo+Pj4+Pj4+Pj4+PiANCj4+Pj4+ Pj4+Pj4+ICAgU3RhdHVzID0gZ0JTLT5DcmVhdGVFdmVudEV4ICgNCj4+Pj4+Pj4+Pj4+ICAgICAg ICAgICAgICAgICAgIEVWVF9OT1RJRllfU0lHTkFMLA0KPj4+Pj4+Pj4+Pj4gLSAgICAgICAgICAg ICAgICAgIFRQTF9OT1RJRlksDQo+Pj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgVFBMX0NB TExCQUNLLA0KPj4+Pj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgT25FeGl0Qm9vdFNlcnZpY2Vz LA0KPj4+Pj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgTlVMTCwNCj4+Pj4+Pj4+Pj4+ICAgICAg ICAgICAgICAgICAgICZnRWZpRXZlbnRFeGl0Qm9vdFNlcnZpY2VzR3VpZCwgQEAgLTQ5Miw3DQo+ Pj4+Pj4+Pj4+PiArNDkyLDcgQEAgSW5pdGlhbGl6ZURtYVByb3RlY3Rpb24gKA0KPj4+Pj4+Pj4+ Pj4gICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPj4+Pj4+Pj4+Pj4gDQo+Pj4+Pj4+Pj4+ PiAgIFN0YXR1cyA9IEVmaUNyZWF0ZUV2ZW50TGVnYWN5Qm9vdEV4ICgNCj4+Pj4+Pj4+Pj4+IC0g ICAgICAgICAgICAgVFBMX05PVElGWSwNCj4+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgVFBMX0NB TExCQUNLLA0KPj4+Pj4+Pj4+Pj4gICAgICAgICAgICAgIE9uTGVnYWN5Qm9vdCwNCj4+Pj4+Pj4+ Pj4+ICAgICAgICAgICAgICBOVUxMLA0KPj4+Pj4+Pj4+Pj4gICAgICAgICAgICAgICZMZWdhY3lC b290RXZlbnQNCj4+Pj4+Pj4+Pj4+IC0tDQo+Pj4+Pj4+Pj4+PiAyLjcuNC53aW5kb3dzLjENCj4+ Pj4+Pj4+IA0KPj4+Pj4+PiANCj4+Pj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18NCj4+Pj4+Pj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4+Pj4+ Pj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4+Pj4+Pj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcv bWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQo+Pj4+Pj4+IA0KPj4+Pj4gDQo+PiANCj4+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+PiBlZGsyLWRl dmVsIG1haWxpbmcgbGlzdA0KPj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4+IGh0dHBzOi8v bGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0KPj4gDQo+IA0KPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiBlZGsyLWRldmVs IG1haWxpbmcgbGlzdA0KPiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiBodHRwczovL2xpc3Rz LjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwNCg==