From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=216.205.24.162; helo=us-smtp-delivery-162.mimecast.com; envelope-from=sunguk-bin@hp.com; receiver=edk2-devel@lists.01.org Received: from us-smtp-delivery-162.mimecast.com (us-smtp-delivery-162.mimecast.com [216.205.24.162]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 65CAD2097F578 for ; Mon, 12 Nov 2018 18:13:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hp.com; s=mimecast20180716; t=1542075234; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=reWLstMaflJxap4leDLVUeCS4avn4h2BLA7zO9Zg7SE=; b=Xf1ju6iraqg8BVk/+CmVr6k1tKSpIonc3vqRR0QXtourVgRNTC9JL+VqHDGLmx5N64kkgH6HtN6oQWY0T0lXdi5Iy7NfWMajNODuAwftPHIIi99MTy5RSDrSq208QWZ3qOoMRYzugFcJ4Ah2lu+vPfgF4yZWysvDysW6QGHvaDU= Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03lp0016.outbound.protection.outlook.com [216.32.181.16]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-277-fQqgnmxzMYSHc2Y5_c_Pfg-1; Mon, 12 Nov 2018 21:13:51 -0500 Received: from AT5PR8401MB0897.NAMPRD84.PROD.OUTLOOK.COM (10.169.6.143) by AT5PR8401MB0995.NAMPRD84.PROD.OUTLOOK.COM (10.169.7.135) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1294.20; Tue, 13 Nov 2018 02:13:49 +0000 Received: from AT5PR8401MB0897.NAMPRD84.PROD.OUTLOOK.COM ([fe80::de9:810a:78a5:b04]) by AT5PR8401MB0897.NAMPRD84.PROD.OUTLOOK.COM ([fe80::de9:810a:78a5:b04%2]) with mapi id 15.20.1294.045; Tue, 13 Nov 2018 02:13:48 +0000 From: =?utf-8?B?QmluLCBTdW5nLVVrICjruYjshLHsmrEp?= To: "Cohen, Eugene" , "Kinney, Michael D" , "Yao, Jiewen" , "edk2-devel@lists.01.org" , "Zhang, Chao B" CC: "Chae, Matthew" Thread-Topic: [RFC] TPM non-MMIO Access Thread-Index: AdR4eHIvXr9RSadIS3utDDz6q0OUJgABNhiwAAEyJOAAa5JakAADxFJAABQAyhAABc6gUAAF1W3AAAxOxAA= Date: Tue, 13 Nov 2018 02:13:48 +0000 Message-ID: References: <74D8A39837DF1E4DA445A8C0B3885C503F3DF9C6@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503F3E3705@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: ko-KR, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [15.89.167.131] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AT5PR8401MB0995; 6:s0aEY7+S7Ks6YR/LpVDEBsZ7eQOZjriIBDjI/2ASeV0jH/toI72p30dp4S89MZkxbRq18JETinKKbn2edqrJ4g0iuz6awedbc8P+N7+P0QCz3jkH9yYnOgcDI6N1VRhceel9ltFgUkDkKo7iMCl6UGZ6/9IknLPXMDHVObbq+SmN27jHS8wZZMH+tfXvLe5uWQBEI62+zaJn4l6CTJLKlFtkBcy8RQuAg2+c74y/AvFPwf2AaloMxXsRvH4oK6a6acDluZBWunzmGL1sLqKV3iXHLxRqEricsO2LpIh42qNvA173MJNASJ/PXcXrGycMdlS9MkrM8+h8SmkBC/fzscvwO2Mi7s4T+ytICoIy1+uApAYLNCYCMpydtCF/U+Q6tT2S9zYGJSYfc5Z7/DYXSc6nPdx+kctuol7fi26ySSayH0GuGiyjOPUP+udthIJx2BXjNMjZDKoX75/wRPZ1jA==; 5:bjdh4vkcJaMvLh8Ft0JxcZ1JEytEfZoChcxlS2ol8ODewE1PL9n6kZefgXwZoB0tMC2nv5nC/N7wz0nVcw4gDbwy6JpKbK5m6R23agr5XEj09xDtPFUho+g5SjdPhiqVwt5tzaJxd5EOwY68iuIzI5lcn47jFtrWwHzs1Pp4yqI=; 7:e60o7JhIY1hK2eLLaMDLu1NuEwgyJLyHTJkAhr4ZVm4T+BhCWw3oSRRIwWAGnmsPB3NUA0dyq6h5oxP/aBpmlkjzbU9e/uqVppSro/Ls935/feN12Tzss2yoD7IQQMUZDjgD/C7tGLZLf67Mi2yP0w== x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR; x-forefront-antispam-report: SFV:SKI; SCL:-1; SFV:NSPM; SFS:(10019020)(346002)(39860400002)(376002)(366004)(136003)(396003)(6602003)(51914003)(199004)(189003)(13464003)(11346002)(71200400001)(71190400001)(76176011)(256004)(14444005)(99286004)(7696005)(229853002)(486006)(19627235002)(110136005)(53936002)(476003)(6246003)(55016002)(6306002)(54896002)(561944003)(53546011)(6506007)(446003)(26005)(93886005)(2900100001)(186003)(316002)(9686003)(236005)(33656002)(6436002)(102836004)(68736007)(790700001)(3846002)(6116002)(106356001)(25786009)(4326008)(7736002)(606006)(966005)(74316002)(14454004)(8936002)(2501003)(97736004)(85182001)(86362001)(88812002)(478600001)(66066001)(105586002)(8676002)(81166006)(81156014)(2906002)(5660300001)(777600001); DIR:OUT; SFP:1102; SCL:1; SRVR:AT5PR8401MB0995; H:AT5PR8401MB0897.NAMPRD84.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; x-ms-office365-filtering-correlation-id: 82dc51ea-e002-4488-1759-08d6490da619 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390060)(7020095)(4652040)(8989299)(5600074)(711020)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:AT5PR8401MB0995; x-ms-traffictypediagnostic: AT5PR8401MB0995: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(228905959029699)(73583498263828)(162533806227266)(788757137089)(21748063052155)(28532068793085)(190501279198761)(227612066756510)(159968658992688); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(10201501046)(3231406)(944501410)(52105112)(148016)(149066)(150057)(6041310)(20161123560045)(20161123558120)(20161123564045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051)(76991095); SRVR:AT5PR8401MB0995; BCL:0; PCL:0; RULEID:; SRVR:AT5PR8401MB0995; x-forefront-prvs: 085551F5A8 x-microsoft-antispam-message-info: YkBENZ7Y7tHBJgMHwH2De2s14FA2wlY7cO9azUxbgxTkMVhnD8I9bLjR3vwqdE4TEbHwl8tIDBUiP+FR/ZxRsnuqcoZtFpxwHsS32p347Bvn42Dbds/B69x80w+aFJvvGNKQtOeAvWMTj/0xPK0eZ+cvhxiTBGh3AeSNqtY2N5cYO+8+e0Bkuxl3CVFv8wWtQa+eK8uW//GJO3LWtlHGeaf9sOBfkiRVOtm3n4yxjsiVzWkqjJITGGvyTIvNUUwrOpJh2WRANY/jM+mYIpMOlwvAJFGj/1FtTJl7vGt4awROvNLjKxOVpRrMxKPUdvDRbrXJlA/bCi9BeuWaUic4pTLnH24DmAcgyK6oY9eg2+0= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: hp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 82dc51ea-e002-4488-1759-08d6490da619 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Nov 2018 02:13:48.8587 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: ca7981a2-785a-463d-b82a-3db87dfc3ce6 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AT5PR8401MB0995 X-MC-Unique: fQqgnmxzMYSHc2Y5_c_Pfg-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [RFC] TPM non-MMIO Access X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Nov 2018 02:13:56 -0000 Content-Language: ko-KR Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 TWlrZSwNCkkgdGVzdGVkIFRQTSBjb21tYW5kIGxpYnJhcnkgd2l0aCB0aGlzIGFwcHJvYWNoIGFu ZCBpdCB3b3Jrcy4NCg0KQXMgZmFyIGFzIEkgdW5kZXJzdGFuZCwgVElTIChUUE0gSW50ZXJmYWNl IFNwZWMpIGhhcyBvbmx5IDEgcmVnaXN0ZXIgc2V0IGZvciBGSUZPIGludGVyZmFjZS4NCkFuZCBQ VFAoUGxhdGZvcm0gVFBNIFByb2ZpbGUpIGhhcyBhbm90aGVyIHJlZ2lzdGVyIHNldCBjYWxsZWQg Q1JCIGludGVyZmFjZS4NCkJvdGggaW50ZXJmYWNlIGRvIG5vdCBkaXN0aW5ndWlzaCB0aGUgaGFy ZHdhcmUgcHJvdG9jb2wgKExQQyBvciBTUEkpIGFuZCBUUE0gZHJpdmVyIHdpbGwgdXNlIG9uZSBv ZiB0d28gaW50ZXJmYWNlcy4NCg0KKioqKiBJ4oCZbSBub3Qgc3VyZSB0aGlzIGFuZCB0aGlzIGlz IGp1c3QgbXkgdW5kZXJzdGFuZGluZywgaWYgc29tZXRoaW5nIHdyb25nLCBKaWV3biBvciBvdGhl ciBleHBlcnRzIGxldCBtZSBrbm93LiAqKioqKg0KT25seSDigJxQQyBDbGllbnTigJ0gVElTIGFu ZCBQVFAgc3BlY2lmaWNhdGlvbiBkb2N1bWVudHMgd2VyZSBmb3VuZCBhbmQgTU1JTyBhY2Nlc3Mg aXMgb25seSBmb3IgUEMgKGl0IGhhcyBJTyBjb250cm9sbGVyIGh1YiBsaWtlIHNvdXRoYnJpZGdl KS4NCldoZW4gd2UgYWNjZXNzIHRocm91Z2ggTU1JTyB0aGVuIElPIGNvbnRyb2xsZXIgaHViIHRy YW5zbGF0ZSBpdCB0byBMUEMgb3IgU1BJLg0KSW4gY2FzZSBvZiBlbWJlZGRlZCBkZXZpY2UsIHRo ZXJlIGlzIG5vIElPIGNvbnRyb2xsZXIgaHViIHNvIGl0IGRpcmVjdGx5IGNvbnRyb2wgTFBDIG9y IFNQSS4NCioqKiogRW5kIG9mIGFzc3VtcHRpb24gKioqKg0KDQpUaGFua3MsDQpCaW4NCg0KDQpG cm9tOiBDb2hlbiwgRXVnZW5lDQpTZW50OiBUdWVzZGF5LCBOb3ZlbWJlciAxMywgMjAxOCA1OjI0 IEFNDQpUbzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsg WWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgQmluLCBTdW5nLVVrICjruYjshLHs mrEpIDxzdW5ndWstYmluQGhwLmNvbT47IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnOyBaaGFuZywg Q2hhbyBCIDxjaGFvLmIuemhhbmdAaW50ZWwuY29tPg0KQ2M6IENoYWUsIE1hdHRoZXcgPG1hdHRo ZXcuY2hhZUBocC5jb20+DQpTdWJqZWN0OiBSRTogW1JGQ10gVFBNIG5vbi1NTUlPIEFjY2Vzcw0K DQpNaWtlLCB0aGFua3MuDQoNCg0KICAqICAgRG8gd2Uga25vdyBmb3Igc3VyZSB3aXRoIGEgY2hh bmdlIGxpa2UgdGhpcyB0aGF0DQogICogICBNTUlPIGFuZCBub24tTU1JTyBUUE1zIHN1cHBvcnQg dGhlIHNhbWUgcmVnaXN0ZXJzDQogICogICBhbmQgcmVxdWlyZSB0aGUgZXhhY3Qgc2FtZSBzZXF1 ZW5jZSBvZiByZWdpc3Rlcg0KICAqICAgYWNjZXNzIHRvIGZ1bmN0aW9uIGNvcnJlY3RseT8NCg0K SSdtIGNoZWNraW5nIHdpdGggb3VyIFRQTSBleHBlcnRzIC0gSSB3YXMgdW5kZXIgdGhlIGltcHJl c3Npb24gdGhhdCB0aGUgaW50ZXJmYWNlIHdhcyB0aGUgc2FtZSByZWdhcmRsZXNzIG9mIHRyYW5z cG9ydC4gIEJpbiBhbmQgSmlld2VuLCBwbGVhc2Ugb2ZmZXIgeW91ciBndWlkYW5jZS4NCg0KDQog ICogICBBbHNvLCBzb21lIG9mIHRoZSBub24tTU1JTyBidXMgdHlwZXMgaGF2ZSBtdWNoDQogICog ICBkaWZmZXJlbnQgcGVyZm9ybWFuY2UgY2hhcmFjdGVyaXN0aWNzLCB3aGljaCBtYXkNCiAgKiAg IHJlcXVpcmUgc2xpZ2h0bHkgZGlmZmVyZW50IGludGVyYWN0aW9ucyBmb3IgYmVzdA0KICAqICAg cGVyZm9ybWFuY2UuDQoNCkFncmVlZC4gIFRoYXQgYmVpbmcgc2FpZCBkdXBsaWNhdGluZyBtb3N0 IG9mIHRoZSBsb2dpYyBpbiB0aGUgZGV2aWNlIGxpYiBtYXkgYmUgZXhjZXNzaXZlIC0gb24gcXVp Y2sgZ2xhbmNlIGl0IGxvb2tzIGxpa2UgdGhlcmUgaXMgYSBsb3Qgb2YgbG9naWMgdGhhdCB3ZSBt aWdodCB3YW50IHRvIGtlZXAgaW4gYm90aCBjYXNlcy4NCg0KVGhhbmtzLA0KDQpFdWdlbmUNCg0K RnJvbTogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPG1haWx0 bzptaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4+DQpTZW50OiBNb25kYXksIE5vdmVtYmVyIDEy LCAyMDE4IDk6NDUgQU0NClRvOiBDb2hlbiwgRXVnZW5lIDxldWdlbmVAaHAuY29tPG1haWx0bzpl dWdlbmVAaHAuY29tPj47IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbTxtYWlsdG86 amlld2VuLnlhb0BpbnRlbC5jb20+PjsgQmluLCBTdW5nLVVrICjruYjshLHsmrEpIDxzdW5ndWst YmluQGhwLmNvbTxtYWlsdG86c3VuZ3VrLWJpbkBocC5jb20+PjsgZWRrMi1kZXZlbEBsaXN0cy4w MS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPjsgWmhhbmcsIENoYW8gQiA8Y2hh by5iLnpoYW5nQGludGVsLmNvbTxtYWlsdG86Y2hhby5iLnpoYW5nQGludGVsLmNvbT4+OyBLaW5u ZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb208bWFpbHRvOm1pY2hhZWwu ZC5raW5uZXlAaW50ZWwuY29tPj4NCkNjOiBDaGFlLCBNYXR0aGV3IDxtYXR0aGV3LmNoYWVAaHAu Y29tPG1haWx0bzptYXR0aGV3LmNoYWVAaHAuY29tPj4NClN1YmplY3Q6IFJFOiBbUkZDXSBUUE0g bm9uLU1NSU8gQWNjZXNzDQoNCkV1Z2VuZSwNCg0KSSB1bmRlcnN0YW5kIHRoZSBpbnRlbnQuDQoN CkRvIHdlIGtub3cgZm9yIHN1cmUgd2l0aCBhIGNoYW5nZSBsaWtlIHRoaXMgdGhhdA0KTU1JTyBh bmQgbm9uLU1NSU8gVFBNcyBzdXBwb3J0IHRoZSBzYW1lIHJlZ2lzdGVycw0KYW5kIHJlcXVpcmUg dGhlIGV4YWN0IHNhbWUgc2VxdWVuY2Ugb2YgcmVnaXN0ZXINCmFjY2VzcyB0byBmdW5jdGlvbiBj b3JyZWN0bHk/IElmIG5vdCwgdGhlbiB0aGUNCnZhbHVlIG9mIGFkZGluZyB0aGlzIG5ldyBsaWIg Y2xhc3MgaXMgc21hbGwuDQoNCkFsc28sIHNvbWUgb2YgdGhlIG5vbi1NTUlPIGJ1cyB0eXBlcyBo YXZlIG11Y2gNCmRpZmZlcmVudCBwZXJmb3JtYW5jZSBjaGFyYWN0ZXJpc3RpY3MsIHdoaWNoIG1h eQ0KcmVxdWlyZSBzbGlnaHRseSBkaWZmZXJlbnQgaW50ZXJhY3Rpb25zIGZvciBiZXN0DQpwZXJm b3JtYW5jZS4NCg0KTWlrZQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206 IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLQ0KPiBib3VuY2VzQGxpc3RzLjAxLm9yZzxt YWlsdG86Ym91bmNlc0BsaXN0cy4wMS5vcmc+XSBPbiBCZWhhbGYgT2YgQ29oZW4sIEV1Z2VuZQ0K PiBTZW50OiBNb25kYXksIE5vdmVtYmVyIDEyLCAyMDE4IDU6NTkgQU0NCj4gVG86IFlhbywgSmll d2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbTxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb20+Pjsg QmluLCBTdW5nLVVrDQo+ICjruYjshLHsmrEpIDxzdW5ndWstYmluQGhwLmNvbTxtYWlsdG86c3Vu Z3VrLWJpbkBocC5jb20+PjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2 ZWxAbGlzdHMuMDEub3JnPjsNCj4gWmhhbmcsIENoYW8gQiA8Y2hhby5iLnpoYW5nQGludGVsLmNv bTxtYWlsdG86Y2hhby5iLnpoYW5nQGludGVsLmNvbT4+DQo+IENjOiBDaGFlLCBNYXR0aGV3IDxt YXR0aGV3LmNoYWVAaHAuY29tPG1haWx0bzptYXR0aGV3LmNoYWVAaHAuY29tPj4NCj4gU3ViamVj dDogUmU6IFtlZGsyXSBbUkZDXSBUUE0gbm9uLU1NSU8gQWNjZXNzDQo+DQo+IEppZXdlbiwNCj4N Cj4gV2UgZG9uJ3QgaGF2ZSBhIHBhdGNoIHlldCDigJMgd2Ugd2FudGVkIHRvIGNoZWNrIHdpdGgg eW91DQo+IGZpcnN0IGJlZm9yZSBnb2luZyB0b28gZmFyLg0KPg0KPg0KPiDDmCBPciBqdXN0IGEg c2ltcGxlIHJlcGxhY2UtYWxsIGZvciBNbWlvUmVhZC9Xcml0ZS0NCj4gPlRwbU1taW9SZWFkL1dy aXRlLg0KPg0KPiBZZXMsIGJhc2ljYWxseSDigJMgd2l0aCBhIGxpYnJhcnkgY2xhc3MgdG8gc3Vw cG9ydCBpdC4NCj4NCj4gV2Ugc2hvdWxkIG5vdCBjYWxsIGl0ICJUcG1NbWlvUmVhZDgiIHNpbmNl IG9uIHNvbWUNCj4gcGF0aHMgaXQgaXMgbm90IE1NSU8gYXQgYWxsLiBXZSBzaG91bGQgY2FsbCBp dA0KPiBUcG1SZWFkOCAob3Igc29tZXRoaW5nIGxpa2UgdGhhdCkgYW5kIHRoZW4gdGhlIE1NSU8N Cj4gaW5zdGFuY2Ugb2YgdGhlIGxpYnJhcnkgY2xhc3Mgd291bGQgY2FsbCBNbWlvDQo+IGZ1bmN0 aW9ucy4NCj4NCj4gVGhhbmtzLA0KPg0KPiBFdWdlbmUNCj4NCj4gRnJvbTogWWFvLCBKaWV3ZW4g PGppZXdlbi55YW9AaW50ZWwuY29tPG1haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbT4+DQo+IFNl bnQ6IFN1bmRheSwgTm92ZW1iZXIgMTEsIDIwMTggOTozMyBQTQ0KPiBUbzogQmluLCBTdW5nLVVr ICjruYjshLHsmrEpIDxzdW5ndWstYmluQGhwLmNvbTxtYWlsdG86c3VuZ3VrLWJpbkBocC5jb20+ PjsgQ29oZW4sDQo+IEV1Z2VuZSA8ZXVnZW5lQGhwLmNvbTxtYWlsdG86ZXVnZW5lQGhwLmNvbT4+ OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+ OyBaaGFuZywNCj4gQ2hhbyBCIDxjaGFvLmIuemhhbmdAaW50ZWwuY29tPG1haWx0bzpjaGFvLmIu emhhbmdAaW50ZWwuY29tPj4NCj4gQ2M6IENoYWUsIE1hdHRoZXcgPG1hdHRoZXcuY2hhZUBocC5j b208bWFpbHRvOm1hdHRoZXcuY2hhZUBocC5jb20+Pg0KPiBTdWJqZWN0OiBSRTogW1JGQ10gVFBN IG5vbi1NTUlPIEFjY2Vzcw0KPg0KPiBPSy4gVGhhbmtzIGZvciB0aGUgY2xhcmlmaWNhdGlvbi4N Cj4NCj4gSWYgcG9zc2libGUsIHdvdWxkIHlvdSBwbGVhc2UgcG9zdCB5b3VyIHBhdGNoIHRvDQo+ IHNvbWV3aGVyZT8NCj4NCj4gRG8geW91IHJlcXVlc3QgdG8gY2hhbmdlIGFueSBvdGhlciBsb2dp YyBpbiBleGlzdGluZw0KPiBUcG0yRGV2aWNlTGliID8NCj4gT3IganVzdCBhIHNpbXBsZSByZXBs YWNlLWFsbCBmb3IgTW1pb1JlYWQvV3JpdGUtDQo+ID5UcG1NbWlvUmVhZC9Xcml0ZS4NCj4NCj4g VGhhbmsgeW91DQo+IFlhbyBKaWV3ZW4NCj4NCj4gRnJvbTogQmluLCBTdW5nLVVrICjruYjshLHs mrEpIFttYWlsdG86c3VuZ3VrLWJpbkBocC5jb21dDQo+IFNlbnQ6IE1vbmRheSwgTm92ZW1iZXIg MTIsIDIwMTggMTI6MTcgUE0NCj4gVG86IFlhbywgSmlld2VuDQo+IDxqaWV3ZW4ueWFvQGludGVs LmNvbTxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb208bWFpbHRvOmppZXdlbi55YW9AaW50ZWwu Y29tJTNjbWFpbHRvOmppZXdlbi55YW9AaW50ZWwuY29tPj4+Ow0KPiBDb2hlbiwgRXVnZW5lIDxl dWdlbmVAaHAuY29tPG1haWx0bzpldWdlbmVAaHAuY29tPG1haWx0bzpldWdlbmVAaHAuY29tJTNj bWFpbHRvOmV1Z2VuZUBocC5jb20+Pj47DQo+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0 bzplZGsyLTxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmclM2NtYWlsdG86ZWRrMi0+DQo+ IGRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZGV2ZWxAbGlzdHMuMDEub3JnPj47IFpoYW5nLCBD aGFvIEINCj4gPGNoYW8uYi56aGFuZ0BpbnRlbC5jb208bWFpbHRvOmNoYW8uYi56aGFuZ0BpbnRl bC5jb208bWFpbHRvOmNoYW8uYi56aGFuZ0BpbnRlbC5jb20lM2NtYWlsdG86Y2hhby5iLnpoYW5n QGludGVsLmNvbT4+Pg0KPiBDYzogQ2hhZSwgTWF0dGhldw0KPiA8bWF0dGhldy5jaGFlQGhwLmNv bTxtYWlsdG86bWF0dGhldy5jaGFlQGhwLmNvbTxtYWlsdG86bWF0dGhldy5jaGFlQGhwLmNvbSUz Y21haWx0bzptYXR0aGV3LmNoYWVAaHAuY29tPj4+DQo+IFN1YmplY3Q6IFJFOiBbUkZDXSBUUE0g bm9uLU1NSU8gQWNjZXNzDQo+DQo+IEhpIEppZXdlbg0KPg0KPiBXaGF0IEV1Z2VuZSBwcm9wb3Nl cyBpcyBub3QgdG8gbWFrZSB0aG9zZSBhbm90aGVyIFRQTQ0KPiBkZXZpY2UgbGlicmFyeSBpbnN0 YW5jZXMuDQo+IEluc3RlYWQsIHdlIHByb3Bvc2UgbmV3IOKAnFRwbUlvTGli4oCdIHdoaWNoIGNh biBoYW5kbGUNCj4gYm90aCBNTUlPIGFuZCBub24tTU1JTyBkZXZpY2UuDQo+DQo+IMOoIEN1cnJl bnRseSBUcG0xMlRpcy5jLCBUcG0yVGlzLmMgYW5kIFRwbTJQdHAuYyB1c2VzDQo+IElvTGliIChD UFUgSU8pLCBhbmQgd2hhdCB3ZSBwcm9wb3NlIGlzIHRvIHJlcGxhY2UgaXQNCj4gd2l0aCBUcG1J b0xpYi4NCj4NCj4gRm9yIGV4YW1wbGUsIFRwbUlvTGliIGNhbiBwcm92aWRlIFRwbU1taW9SZWFk KCkgYW5kDQo+IFRwbTEyVGlzLmMsIFRwbTJUaXMuYyBhbmQgVHBtMlB0cC5jIGNhbiB1c2UNCj4g VHBtTW1pb1JlYWQoKSBpbnN0ZWFkIG9mIE1taW9SZWFkKCkuDQo+DQo+IC0gVHBtSW9MaWIgZm9y IFBDIChkZWZhdWx0IGluIFNlY3VyaXR5UGtnKQ0KPiBVSU5UOCBUcG1NbWlvUmVhZDggKFVJTlRO IEFkZHJlc3MgKQ0KPiB7DQo+IHJldHVybiBNbWlvUmVhZDgoQWRkcmVzcyk7DQo+IH0NCj4NCj4N Cj4gLSBUcG1Jb0xpYiBmb3IgU1BJICh2ZW5kb3IgY3JlYXRlcyBuZXcNCj4gaW5zdGFuY2UpDQo+ IFVJTlQ4IFRwbU1taW9SZWFkOCAoVUlOVE4gQWRkcmVzcyApDQo+IHsNCj4gVUlOVDggRGF0YSwg U3BpQ3M7DQo+IFNwaUNzID0gKEFkZHJlc3MgJiAweEZGMDAwMCkgPj4gMTY7DQo+IFRwbUFkZHJl c3MgPSBBZGRyZXNzICYgMHhGRkZGOw0KPg0KPiAvKiBWZW5kb3Igc3BlY2lmaWMgU1BJIGNvbnRy b2wgZm9yIFRQTQ0KPiAqLw0KPiDigKYNCj4gU3BpV3JpdGUoU3BpQ3MsIFRwbUFkZHJlc3MpOw0K PiDigKYNCj4gU3BpUmVhZChTcGlDcywgVHBtQWRkcmVzcywgJkRhdGEpOw0KPiByZXR1cm4gRGF0 YTsNCj4gfQ0KPg0KPiBUaGlzIHByb3Bvc2FsIGNhbWUgZnJvbSBjb2RlIG1haW50YW5hbmNlLA0K PiB3aGVuIHdlIG5lZWQgdG8gdXBkYXRlIFNlY3VyaXR5UGtnLCB0aGVuIGluIHRoaXMgY2FzZQ0K PiBpdOKAmXMgbW9yZSBlYXN5IHRvIHVwZGF0ZSB0aGFuIG1ha2luZyBhbm90aGVyDQo+IFRwbTJE ZXZpY2VMaWJEVHBtIGluc3RhbmNlLg0KPg0KPiBUaGFua3MsDQo+IEJpbg0KPg0KPiBGcm9tOiBZ YW8sIEppZXdlbg0KPiA8amlld2VuLnlhb0BpbnRlbC5jb208bWFpbHRvOmppZXdlbi55YW9AaW50 ZWwuY29tPG1haWx0bzpqaWV3ZW4ueWFvQGludGVsLmNvbSUzY21haWx0bzpqaWV3ZW4ueWFvQGlu dGVsLmNvbT4+Pg0KPiBTZW50OiBTYXR1cmRheSwgTm92ZW1iZXIgMTAsIDIwMTggODoxOCBBTQ0K PiBUbzogQ29oZW4sIEV1Z2VuZQ0KPiA8ZXVnZW5lQGhwLmNvbTxtYWlsdG86ZXVnZW5lQGhwLmNv bTxtYWlsdG86ZXVnZW5lQGhwLmNvbSUzY21haWx0bzpldWdlbmVAaHAuY29tPj4+OyBlZGsyLQ0K PiBkZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMuMDEub3JnPG1haWx0 bzpkZXZlbEBsaXN0cy4wMS5vcmclM2NtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc+PjsN Cj4gWmhhbmcsIENoYW8gQg0KPiA8Y2hhby5iLnpoYW5nQGludGVsLmNvbTxtYWlsdG86Y2hhby5i LnpoYW5nQGludGVsLmNvbTxtYWlsdG86Y2hhby5iLnpoYW5nQGludGVsLmNvbSUzY21haWx0bzpj aGFvLmIuemhhbmdAaW50ZWwuY29tPj4+DQo+IENjOiBCaW4sIFN1bmctVWsgKOu5iOyEseyasSkg PHN1bmd1ay0NCj4gYmluQGhwLmNvbTxtYWlsdG86c3VuZ3VrLWJpbkBocC5jb208bWFpbHRvOmJp bkBocC5jb20lM2NtYWlsdG86c3VuZ3VrLWJpbkBocC5jb20+Pj47IENoYWUsIE1hdHRoZXcNCj4g PG1hdHRoZXcuY2hhZUBocC5jb208bWFpbHRvOm1hdHRoZXcuY2hhZUBocC5jb208bWFpbHRvOm1h dHRoZXcuY2hhZUBocC5jb20lM2NtYWlsdG86bWF0dGhldy5jaGFlQGhwLmNvbT4+Pg0KPiBTdWJq ZWN0OiBSRTogW1JGQ10gVFBNIG5vbi1NTUlPIEFjY2Vzcw0KPg0KPiBIaSBFdWdlbmUNCj4gVGhl IFRwbUlvTGliIHByb3Bvc2FsIGlzIHNpbWlsYXIgdG8gdGhlIGV4aXN0aW5nDQo+IFRwbURldmlj ZUxpYi4NCj4gV2UgaGF2ZSBJMkMgVFBNIGluc3RhbmNlIGFzIGV4YW1wbGUuIFlvdSBtYXkgY3Jl YXRlDQo+IFRwbTEyRGV2aWNlTGliWFhYU3BpLg0KPg0KPiBQbGVhc2UgbGV0IHVzIGtub3cgaWYg dGhlcmUgaXMgYW55IGdhcCB0byBzdXBwb3J0IHlvdXINCj4gbm9uLU1NSU8gZGV2aWNlLg0KPg0K PiBUaGFuayB5b3UNCj4gWWFvIEppZXdlbg0KPg0KPg0KPiBGcm9tOiBZYW8sIEppZXdlbg0KPiBT ZW50OiBTYXR1cmRheSwgTm92ZW1iZXIgMTAsIDIwMTggNzoxMiBBTQ0KPiBUbzogJ0NvaGVuLCBF dWdlbmUnDQo+IDxldWdlbmVAaHAuY29tPG1haWx0bzpldWdlbmVAaHAuY29tPG1haWx0bzpldWdl bmVAaHAuY29tJTNjbWFpbHRvOmV1Z2VuZUBocC5jb20+Pj47IGVkazItDQo+IGRldmVsQGxpc3Rz LjAxLm9yZzxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmRldmVsQGxpc3Rz LjAxLm9yZyUzY21haWx0bzplZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4+Ow0KPiBaaGFuZywgQ2hh byBCDQo+IDxjaGFvLmIuemhhbmdAaW50ZWwuY29tPG1haWx0bzpjaGFvLmIuemhhbmdAaW50ZWwu Y29tPG1haWx0bzpjaGFvLmIuemhhbmdAaW50ZWwuY29tJTNjbWFpbHRvOmNoYW8uYi56aGFuZ0Bp bnRlbC5jb20+Pj4NCj4gQ2M6IEJpbiwgU3VuZy1VayAo67mI7ISx7JqxKSA8c3VuZ3VrLQ0KPiBi aW5AaHAuY29tPG1haWx0bzpzdW5ndWstYmluQGhwLmNvbTxtYWlsdG86YmluQGhwLmNvbSUzY21h aWx0bzpzdW5ndWstYmluQGhwLmNvbT4+PjsgQ2hhZSwgTWF0dGhldw0KPiA8bWF0dGhldy5jaGFl QGhwLmNvbTxtYWlsdG86bWF0dGhldy5jaGFlQGhwLmNvbTxtYWlsdG86bWF0dGhldy5jaGFlQGhw LmNvbSUzY21haWx0bzptYXR0aGV3LmNoYWVAaHAuY29tPj4+DQo+IFN1YmplY3Q6IFJFOiBbUkZD XSBUUE0gbm9uLU1NSU8gQWNjZXNzDQo+DQo+IEhpIEV1Z2VuZQ0KPiBDb21wbGV0ZSBhZ3JlZS4N Cj4NCj4NCj4gMSkgcGxlYXNlIGlnbm9yZSBUcG1Db21tTGliLiBJdCBpcyBkZXByZWNhdGVkLiDi mLoNCj4NCj4NCj4gMikgd2UgZGlkIG5vdGljZSB0aGVyZSBpcyBub24tTU1JTyBUUE0gZGV2aWNl DQo+IGJlZm9yZSBhbmQgYWJzdHJhY3QgdGhlIGRldmljZSBhY2Nlc3MgdmlhIFRwbTJEZXZpY2VM aWINCj4gYW5kIFRwbTEyRGV2aWNlTGliIGxpYnJhcnkgY2xhc3MuIFRoZSBUcG0yRGV2aWNlTGli RFRwbQ0KPiBhbmQgVHBtMTJEZXZpY2VMaWJEVHBtIGFyZSB0aGUgbGlicmFyeSBpbnN0YW5jZSBm b3INCj4gTU1JTyBUSVMgYWNjZXNzLg0KPg0KPiBXZSBkbyBoYXZlIG90aGVyIGluc3RhbmNlIHN1 Y2ggYXMNCj4gUXVhcmtQbGF0Zm9ybVBrZ1xMaWJyYXJ5XFRwbTEyRGV2aWNlTGliQXRtZWxJMmMg b3INCj4gUXVhcmtQbGF0Zm9ybVBrZ1xMaWJyYXJ5XFRwbTEyRGV2aWNlTGliSW5maW5lb25JMmMu DQo+DQo+DQo+IDMpIFRjZzJDb25maWcgaXMgYWxzbyBhIFRQTSBkZXZpY2Ugb3JpZW50ZWQNCj4g ZHJpdmVyLiBJdCBpcyBvcHRpb25hbC4NCj4gWW91IG1heSB3YW50IHRvIHRha2UgYSBsb29rIGF0 DQo+IFF1YXJrUGxhdGZvcm1Qa2dcUXVhcmsuZHNjIHRvIHNlZSBkaWZmZXJlbnQgVFBNIGRldmlj ZQ0KPiBpcyBjaG9zZW4uDQo+DQo+ICMNCj4gIyBUUE0gMS4yIEhhcmR3YXJlLiBPcHRpb25zIGFy ZSBbTk9ORSwgTFBDLA0KPiBBVE1FTF9JMkMsIElORklORU9OX0kyQ10NCj4gIw0KPiBERUZJTkUg VFBNXzEyX0hBUkRXQVJFID0gTk9ORQ0KPg0KPiBUaGFuayB5b3UNCj4gWWFvIEppZXdlbg0KPg0K PiBGcm9tOiBDb2hlbiwgRXVnZW5lIFttYWlsdG86ZXVnZW5lQGhwLmNvbV0NCj4gU2VudDogU2F0 dXJkYXksIE5vdmVtYmVyIDEwLCAyMDE4IDY6MzggQU0NCj4gVG86IGVkazItZGV2ZWxAbGlzdHMu MDEub3JnPG1haWx0bzplZGsyLTxtYWlsdG86ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmclM2NtYWls dG86ZWRrMi0+DQo+IGRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZGV2ZWxAbGlzdHMuMDEub3Jn Pj47IFpoYW5nLCBDaGFvIEINCj4gPGNoYW8uYi56aGFuZ0BpbnRlbC5jb208bWFpbHRvOmNoYW8u Yi56aGFuZ0BpbnRlbC5jb208bWFpbHRvOmNoYW8uYi56aGFuZ0BpbnRlbC5jb20lM2NtYWlsdG86 Y2hhby5iLnpoYW5nQGludGVsLmNvbT4+Pg0KPiA7IFlhbywgSmlld2VuDQo+IDxqaWV3ZW4ueWFv QGludGVsLmNvbTxtYWlsdG86amlld2VuLnlhb0BpbnRlbC5jb208bWFpbHRvOmppZXdlbi55YW9A aW50ZWwuY29tJTNjbWFpbHRvOmppZXdlbi55YW9AaW50ZWwuY29tPj4+DQo+IENjOiBCaW4sIFN1 bmctVWsgKOu5iOyEseyasSkgPHN1bmd1ay0NCj4gYmluQGhwLmNvbTxtYWlsdG86c3VuZ3VrLWJp bkBocC5jb208bWFpbHRvOmJpbkBocC5jb20lM2NtYWlsdG86c3VuZ3VrLWJpbkBocC5jb20+Pj47 IENoYWUsIE1hdHRoZXcNCj4gPG1hdHRoZXcuY2hhZUBocC5jb208bWFpbHRvOm1hdHRoZXcuY2hh ZUBocC5jb208bWFpbHRvOm1hdHRoZXcuY2hhZUBocC5jb20lM2NtYWlsdG86bWF0dGhldy5jaGFl QGhwLmNvbT4+Pg0KPiBTdWJqZWN0OiBbUkZDXSBUUE0gbm9uLU1NSU8gQWNjZXNzDQo+DQo+IERl YXIgU2VjdXJpdHlQa2cgbWFpbnRhaW5lcnMsDQo+DQo+IFdlIGFyZSB0cnlpbmcgdG8gdXNlIHRo ZSBTZWN1cml0eVBrZyBUUE0gc3VwcG9ydA0KPiAoVGNnMkNvbmZpZywgVHBtMkRldmljZUxpYkRU cG0sIGV0YykgYW5kIHNlZSB0aGF0DQo+IGFjY2VzcyB0byB0aGUgVFBNIGFyZSB1c2luZyB0aGUg TU1JTyByb3V0aW5lcyBzdWNoIGFzDQo+IE1taW9SZWFkOCgpLg0KPg0KPiBOb3QgYWxsIHBsYXRm b3JtcyBzdXBwb3J0IG1lbW9yeS1tYXBwZWQgYWNjZXNzIHRvIHRoZQ0KPiBUUE0gc28gd2Ugd291 bGQgbGlrZSB0byBwcm9wb3NlIHRoYXQgd2UgY3JlYXRlIGENCj4gbGlicmFyeSB0byBhYnN0cmFj dCB0aGUgVFBNIGFjY2VzcywgY2FsbGVkIHRoZQ0KPiBUcG1Jb0xpYi4gT25lIGluc3RhbmNlIG9m IHRoZSBsaWJyYXJ5IHdvdWxkIHByb3ZpZGUNCj4gdGhlIE1taW8gKFRwbUlvTGliTW1pbykgbWV0 aG9kIGJ1dCBvdGhlcnMgY2FuIHVzZQ0KPiBwcm90b2NvbHMgbGlrZSBTUEkgKFRwbUlvTGliU3Bp KS4NCj4NCj4gQmVmb3JlIHN0YXJ0aW5nIHRoaXMgd29yayBJIHdhbnRlZCB0byBjaGVjayBpZiB5 b3UNCj4gYWdyZWUgd2l0aCB0aGUgYXBwcm9hY2ggb2YgcmVwbGFjaW5nIHRoZSBNbWlvIGNhbGxz DQo+IHdpdGggbmV3IFRwbUlvTGliIG9uZXMuIFdlIGNhbiB1cHN0cmVhbSB0aGUgbGlicmFyeQ0K PiBoZWFkZXIgYW5kIG1taW8gbGlicmFyeSBpbnN0YW5jZSAob3IgeW91IGNvdWxkIGRvIHRoZQ0K PiB3b3JrIGlmIHlvdSB0aGluayBpdCB3b3VsZCBiZSBlYXNpZXIgZm9yIHlvdSkuDQo+DQo+IEkg Y291bnRlZCB1cCB0aGUgbnVtYmVyIG9mIGluc3RhbmNlcyBvZiB1bmlxdWUgTU1JTw0KPiBjYWxs cyBpbiB0aGUgVFBNIGxpYnJhcmllcyBhbmQgZ290DQo+DQo+IExpYnJhcnkvVHBtQ29tbUxpYi9U aXNQYy5jOjcNCj4gTGlicmFyeS9UcG0yRGV2aWNlTGliRFRwbS9UcG0yVGlzLmM6MTMNCj4gTGli cmFyeS9UcG0yRGV2aWNlTGliRFRwbS9UcG0yUHRwLmM6MjkNCj4gTGlicmFyeS9UcG0xMkRldmlj ZUxpYkRUcG0vVHBtMTJUaXMuYzoxNg0KPg0KPiBQbGVhc2UgbGV0IG1lIGtub3cgaWYgdGhpcyB3 b3JrcyBmb3IgeW91IGFuZCBob3cgeW91J2QNCj4gbGlrZSB0byBzdHJ1Y3R1cmUgdGhlIGNoYW5n ZS4NCj4NCj4gVGhhbmtzLA0KPg0KPiBFdWdlbmUNCj4NCj4NCj4NCj4NCj4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gZWRrMi1kZXZlbCBtYWlsaW5n IGxpc3QNCj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMu MDEub3JnPg0KPiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2 ZWw8aHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsPg0KFrom