From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=40.92.5.34; helo=nam02-sn1-obe.outbound.protection.outlook.com; envelope-from=vanjeff_919@hotmail.com; receiver=edk2-devel@lists.01.org Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-oln040092005034.outbound.protection.outlook.com [40.92.5.34]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 4499521CB2E27 for ; Wed, 3 Jan 2018 00:37:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=BwgqyFx0rZIbPy2JYnxN9sEM71VCzOHhIDyGEwxzBWs=; b=tHroWq0GLlPqHiXxkyoNq9vyzROO5Cz+aoffoqM8DAmeZkIXpdPE2m9uRhBRD91tQdO/rbrF0izCo+heHlTxoD4sLDooZ3iVNq/XllBCImVxf8kY7AzqwnFzehMCQje0EJcKfqW3fjuBaaFQI7LeE3cFVg9TJF8tXBNNEMDnGzjTNIFbxk+VgFpDrACC/mfx39rnOJ+J2iJsESx+0d0kkvyY6Mwk/olVM6ZMY7OSFzJG89PlyY5K+NG9Hm3L5hI4luId1RDAJII32gBjERJEH0W4s+hAYd0QJxjX5GspDbN8gRAx3f+7kIA9yDi866awCYgwC7SPLPkM25Mx7zxusw== Received: from SN1NAM02FT013.eop-nam02.prod.protection.outlook.com (10.152.72.54) by SN1NAM02HT131.eop-nam02.prod.protection.outlook.com (10.152.73.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.20.302.6; Wed, 3 Jan 2018 08:42:20 +0000 Received: from CO2PR19MB0137.namprd19.prod.outlook.com (10.152.72.51) by SN1NAM02FT013.mail.protection.outlook.com (10.152.72.98) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.20.345.12 via Frontend Transport; Wed, 3 Jan 2018 08:42:20 +0000 Received: from CO2PR19MB0137.namprd19.prod.outlook.com ([10.161.82.25]) by CO2PR19MB0137.namprd19.prod.outlook.com ([10.161.82.25]) with mapi id 15.20.0366.009; Wed, 3 Jan 2018 08:42:20 +0000 From: Fan Jeff To: Paulo Alcantara , "edk2-devel@lists.01.org" CC: Laszlo Ersek , Eric Dong Thread-Topic: [edk2] [RFC v4 4/6] UefiCpuPkg/CpuExceptionHandlerLib: Add helper to valid memory addresses Thread-Index: AQHTgF9DoStmU+eSLkO0udiBPqy79aNh3Di4 Date: Wed, 3 Jan 2018 08:42:19 +0000 Message-ID: References: , <32f06077006939f71560970f6abcbbb2062ea5c3.1514517573.git.paulo@paulo.ac> In-Reply-To: <32f06077006939f71560970f6abcbbb2062ea5c3.1514517573.git.paulo@paulo.ac> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-incomingtopheadermarker: OriginalChecksum:432AF98C33DDD13880902C990EF96E7710AC4560A3FB9751B964CAB37AEEB2B9; UpperCasedChecksum:90766F88CA4701674345AF30D2A6E3569FF0F3155EE91EF10225B56453605ADF; SizeAsReceived:7355; Count:47 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [oOvzAj2tbcFfa7XRx8nB+IixchsvL0rJ] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; SN1NAM02HT131; 6:cPelQ4zbeGiOEabHZ7OF9jGMWkeNPFNboNQXQh+xtxjpx2mrAwxOAeSVpawlljK+UAbv/pryE5tvo0+SwO3BFMjEXlene5C2LhMuMPG++hsGjUfpyUs2jDRo5wIPCq9Ai7y99JgE9Ra0GIgWfjYolL+eCiovhgFF3uCBpxTbredB+G8FeJ/DOBHcnkM+QiBLXw983j2pg02vEaMoDxlmyluh5Zx9T9OcLGkHQnv+ZS0FUI1HH7u6UaYKWVlxKIfOgFCXZeCB/9DDUtN2o0hphPwqorkZ4hF8nsCr5137+M7mNxmOdxdRTtwRzAcixz1r3ufBgXrWyla8D7nn05R7YefECmJPsQ+bCY0IA8YMZv8=; 5:mlkPncLwdj4zXrIfFrULeCo41ObZ2xzlstXxtb6BfWLEU8Q5E7gqusmMjPQpRatiLW1XsbARvwlkNwSWauMycSPasml7mijjdJjS/cc6zTQt4XR1BWuK39Oq8srN2VT75eGgMHuzqCU7VlfLIoUsgx6UzkREKZkekEGZ5P5Kwkk=; 24:OQlZw/jeBy/D4EN0GrDYoqAWmd8W3/Si+uhmU8IpN+xCFJVWiJrugM80VXYgyn2Pskyibb4Rn5rt/kHkvvCthb/Rnk2fRlzA9n7LPmRN8P0=; 7:A+vpxrGNzpCB5ExZ1BJQaSC7Ko51z/E+LZAjCVt83Sql6Wh5h2cJzplBmEcihpHu2q/INhJ642JsqYFFXa5F5v4ebwZ2fXCqEAVqTiMGjdDrm2PBrHmT9YpSEYKViw/u6+/RG3FgHoLYfHsMIiVlkRnNnvV4XMHVbTl+a+J10spItGciFCrS0qlGqZiCvXMyN4nX8UpoDhuQBBvemjelaa+Hm/eoc8wiVYX+L3umgsbLRp2Qa+todhbL1UgUZ6Ls x-incomingheadercount: 47 x-eopattributedmessage: 0 x-microsoft-antispam: UriScan:(222181515654134); BCL:0; PCL:0; RULEID:(201702061074)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031324274)(2017031323274)(2017031322404)(1603101448)(1601125374)(1701031045); SRVR:SN1NAM02HT131; x-ms-traffictypediagnostic: SN1NAM02HT131: x-ms-office365-filtering-correlation-id: 2283beb8-0e39-4dbd-bb72-08d55285e6ec x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(444000031); SRVR:SN1NAM02HT131; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:SN1NAM02HT131; x-forefront-prvs: 0541031FF6 x-forefront-antispam-report: SFV:NSPM; SFS:(7070007)(98901004); DIR:OUT; SFP:1901; SCL:1; SRVR:SN1NAM02HT131; H:CO2PR19MB0137.namprd19.prod.outlook.com; FPR:; SPF:None; LANG:; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: hotmail.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2283beb8-0e39-4dbd-bb72-08d55285e6ec X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Jan 2018 08:42:19.9945 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1NAM02HT131 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 Subject: =?UTF-8?B?562U5aSNOiBbUkZDIHY0IDQvNl0gVWVmaUNwdVBrZy9DcHVFeGNlcHRpb25IYW5kbGVyTGliOiBBZGQgaGVscGVyIHRvIHZhbGlkIG1lbW9yeSBhZGRyZXNzZXM=?= X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Jan 2018 08:37:19 -0000 Content-Language: zh-CN Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 UGF1bCwNCg0KKyAgLy8NCisgIC8vIENhbGN1bGF0ZSBwaHlzaWNhbCBhZGRyZXNzIG9mIFBNTDRF DQorICAvLw0KKyAgUGh5c2ljYWxBZGRyZXNzID0gKFVJTlQ2NClDcjMgJiAoKCgxVUxMIDw8IE1h eFBoeUFkZHJCaXRzKSAtIDEpIDw8IDEyKTsNCisgIFBoeXNpY2FsQWRkcmVzcyB8PSAoKChVSU5U NjQpTGluZWFyQWRkcmVzcyA+PiAzOSkgJiAweDFGRikgPDwgMzsNCisNCg0KU2hvdWxkIG5vdCBw YXNzIFZTIGJ1aWxkLCBpbnN0ZWFkIHlvdSBjb3VsZCB1c2UgTFNoaWZ0VTY0L1JTaGlmdFU2NCB0 byBkbyA2NGJpdCBzaGlmdCBvcGVyYXRpb24gYXMgYmVsb3c6DQoNCiAgUGh5c2ljYWxBZGRyZXNz ID0gKFVJTlQ2NClDcjMgJiBMU2hpZnRVNjQgKExTaGlmdFU2NCAoMSwgTWF4UGh5QWRkckJpdHMp IC0gMSwgMTIpOw0KICBQaHlzaWNhbEFkZHJlc3MgfD0gTFNoaWZ0VTY0IChSU2hpZnRVNjQoKFVJ TlQ2NClMaW5lYXJBZGRyZXNzLCAzOSkgJiAweDFGRiksIDMpOw0KDQpKZWZmDQoNCreivP7Iyzog UGF1bG8gQWxjYW50YXJhPG1haWx0bzpwYXVsb0BwYXVsby5hYz4NCreiy83KsbzkOiAyMDE3xOox MtTCMjnI1SAxMjo0MQ0KytW8/sjLOiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzxtYWlsdG86ZWRr Mi1kZXZlbEBsaXN0cy4wMS5vcmc+DQqzrcvNOiBMYXN6bG8gRXJzZWs8bWFpbHRvOmxlcnNla0By ZWRoYXQuY29tPjsgRXJpYyBEb25nPG1haWx0bzplcmljLmRvbmdAaW50ZWwuY29tPg0K1vfM4jog W2VkazJdIFtSRkMgdjQgNC82XSBVZWZpQ3B1UGtnL0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWI6IEFk ZCBoZWxwZXIgdG8gdmFsaWQgbWVtb3J5IGFkZHJlc3Nlcw0KDQpJbnRyb2R1Y2UgSXNMaW5lYXJB ZGRyZXNzVmFsaWQoKSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgdXNlZCBmb3INCnZhbGlkYXRpbmcg bWVtb3J5IGFkZHJlc3NlcyB0aGF0IHdvdWxkIGdldCBkZXJlZmVyZW5jZWQgZHVyaW5nIHN0YWNr DQp0cmFjZXMgaW4gSUEzMiBhbmQgWDY0IENQVSBleGNlcHRpb25zLg0KDQpDb250cmlidXRlZC11 bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4xDQpDYzogRXJpYyBEb25n IDxlcmljLmRvbmdAaW50ZWwuY29tPg0KQ2M6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5j b20+DQpSZXF1ZXN0ZWQtYnk6IEJyaWFuIEpvaG5zb24gPGJyaWFuLmpvaG5zb25AaHBlLmNvbT4N ClJlcXVlc3RlZC1ieTogSmlld2VuIFlhbyA8amlld2VuLnlhb0BpbnRlbC5jb20+DQpTaWduZWQt b2ZmLWJ5OiBQYXVsbyBBbGNhbnRhcmEgPHBhdWxvQHBhdWxvLmFjPg0KLS0tDQogVWVmaUNwdVBr Zy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvQ3B1RXhjZXB0aW9uQ29tbW9uLmMgfCAz ODIgKysrKysrKysrKysrKysrKysrKysNCiBVZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9u SGFuZGxlckxpYi9DcHVFeGNlcHRpb25Db21tb24uaCB8ICAxNiArDQogMiBmaWxlcyBjaGFuZ2Vk LCAzOTggaW5zZXJ0aW9ucygrKQ0KDQpkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0Nw dUV4Y2VwdGlvbkhhbmRsZXJMaWIvQ3B1RXhjZXB0aW9uQ29tbW9uLmMgYi9VZWZpQ3B1UGtnL0xp YnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9DcHVFeGNlcHRpb25Db21tb24uYw0KaW5kZXgg ODY3YzVjMDFkNi4uNTJiM2ViMTQ2MyAxMDA2NDQNCi0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9D cHVFeGNlcHRpb25IYW5kbGVyTGliL0NwdUV4Y2VwdGlvbkNvbW1vbi5jDQorKysgYi9VZWZpQ3B1 UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9DcHVFeGNlcHRpb25Db21tb24uYw0K QEAgLTE0LDYgKzE0LDkgQEANCg0KICNpbmNsdWRlICJDcHVFeGNlcHRpb25Db21tb24uaCINCg0K KyNpbmNsdWRlIDxSZWdpc3Rlci9Nc3IuaD4NCisjaW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5o Pg0KKw0KIC8vDQogLy8gRXJyb3IgY29kZSBmbGFnIGluZGljYXRpbmcgd2hldGhlciBvciBub3Qg YW4gZXJyb3IgY29kZSB3aWxsIGJlDQogLy8gcHVzaGVkIG9uIHRoZSBzdGFjayBpZiBhbiBleGNl cHRpb24gb2NjdXJzLg0KQEAgLTE5NCwzICsxOTcsMzgyIEBAIEdldFBkYkZpbGVOYW1lICgNCiAg ICAgfQ0KICAgfQ0KIH0NCisNCisvKioNCisgIENoZWNrIGlmIGEgbGluZWFyIGFkZHJlc3MgaXMg dmFsaWQgYnkgd2Fsa2luZyB0aGUgcGFnZSB0YWJsZXMgaW4gNC1sZXZlbA0KKyAgcGFnaW5nIG1v ZGUuDQorDQorICBAcGFyYW1baW5dICBDcjMgICAgICAgICAgICAgQ1IzIGNvbnRyb2wgcmVnaXN0 ZXIuDQorICBAcGFyYW1baW5dICBNYXhQaHlBZGRyQml0cyAgTUFYUEhZQUREUkJJVFMgYml0cy4N CisgIEBwYXJhbVtpbl0gIExpbmVhckFkZHJlc3MgICBMaW5lYXIgYWRkcmVzcyB0byBiZSBjaGVj a2VkLg0KKyoqLw0KK1NUQVRJQw0KK0JPT0xFQU4NCitEbzRMZXZlbFBhZ2luZ01vZGVDaGVjayAo DQorICBJTiBVSU5UTiAgICAgICAgICAgIENyMywNCisgIElOIFVJTlQ4ICAgICAgICAgICAgTWF4 UGh5QWRkckJpdHMsDQorICBJTiBVSU5UTiAgICAgICAgICAgIExpbmVhckFkZHJlc3MNCisgICkN Cit7DQorICBVSU5UNjQgUGh5c2ljYWxBZGRyZXNzOw0KKyAgVUlOVDY0ICpQbWw0VGFibGVFbnRy eTsNCisgIFVJTlQ2NCAqUGFnZURpclB0clRhYmxlRW50cnk7DQorICBVSU5UNjQgKlBhZ2VEaXJF bnRyeTsNCisgIFVJTlQ2NCAqUGFnZVRhYmxlRW50cnk7DQorDQorICAvLw0KKyAgLy8gSW4gNC1s ZXZlbCBwYWdpbmcgbW9kZSwgbGluZWFyIGFkZHJlc3NlcyBhcmUgNDggYml0cyB3aWRlDQorICAv Lw0KKyAgaWYgKChVSU5UNjQpTGluZWFyQWRkcmVzcyA+ICgxVUxMIDw8IDQ4KSAtIDEpIHsNCisg ICAgcmV0dXJuIEZBTFNFOw0KKyAgfQ0KKw0KKyAgLy8NCisgIC8vIENhbGN1bGF0ZSBwaHlzaWNh bCBhZGRyZXNzIG9mIFBNTDRFDQorICAvLw0KKyAgUGh5c2ljYWxBZGRyZXNzID0gKFVJTlQ2NClD cjMgJiAoKCgxVUxMIDw8IE1heFBoeUFkZHJCaXRzKSAtIDEpIDw8IDEyKTsNCisgIFBoeXNpY2Fs QWRkcmVzcyB8PSAoKChVSU5UNjQpTGluZWFyQWRkcmVzcyA+PiAzOSkgJiAweDFGRikgPDwgMzsN CisNCisgIEFTU0VSVCAoKFBoeXNpY2FsQWRkcmVzcyAmIChzaXplb2YgKCpQbWw0VGFibGVFbnRy eSkgLSAxKSkgPT0gMCk7DQorDQorICBQbWw0VGFibGVFbnRyeSA9IChVSU5UNjQgKikoVUlOVE4p UGh5c2ljYWxBZGRyZXNzOw0KKw0KKyAgLy8NCisgIC8vIENoZWNrIGlmIGEgUERQVEUgaXMgcHJl c2VudA0KKyAgLy8NCisgIGlmICgoKlBtbDRUYWJsZUVudHJ5ICYgQklUMCkgPT0gMCkgew0KKyAg ICByZXR1cm4gRkFMU0U7DQorICB9DQorDQorICAvLw0KKyAgLy8gQ2FsY3VsYXRlIHBoeXNpY2Fs IGFkZHJlc3Mgb2YgUERQVEUNCisgIC8vDQorICBQaHlzaWNhbEFkZHJlc3MgPSAqUG1sNFRhYmxl RW50cnkgJiAoKCgxVUxMIDw8IE1heFBoeUFkZHJCaXRzKSAtIDEpIDw8IDEyKTsNCisgIFBoeXNp Y2FsQWRkcmVzcyB8PSAoKChVSU5UNjQpTGluZWFyQWRkcmVzcyA+PiAzMCkgJiAweDFGRikgPDwg MzsNCisNCisgIEFTU0VSVCAoKFBoeXNpY2FsQWRkcmVzcyAmIChzaXplb2YgKCpQYWdlRGlyUHRy VGFibGVFbnRyeSkgLSAxKSkgPT0gMCk7DQorDQorICBQYWdlRGlyUHRyVGFibGVFbnRyeSA9IChV SU5UNjQgKikoVUlOVE4pUGh5c2ljYWxBZGRyZXNzOw0KKw0KKyAgLy8NCisgIC8vIENoZWNrIHdo ZXRoZXIgYSBQRFBURSBvciAxR2lCIHBhZ2UgZW50cnkgaXMgcHJlc2VudA0KKyAgLy8NCisgIGlm ICgoKlBhZ2VEaXJQdHJUYWJsZUVudHJ5ICYgQklUMCkgPT0gMCkgew0KKyAgICByZXR1cm4gRkFM U0U7DQorICB9DQorDQorICAvLw0KKyAgLy8gQ2hlY2sgaWYgUERQVEUgbWFwcyBhbiAxR2lCIHBh Z2UNCisgIC8vDQorICBpZiAoKCpQYWdlRGlyUHRyVGFibGVFbnRyeSAmIEJJVDcpICE9IDApIHsN CisgICAgcmV0dXJuIFRSVUU7DQorICB9DQorDQorICAvLw0KKyAgLy8gQ2FsY3VsYXRlIHBoeXNp Y2FsIGFkZHJlc3Mgb2YgUERFDQorICAvLw0KKyAgUGh5c2ljYWxBZGRyZXNzID0gKlBhZ2VEaXJQ dHJUYWJsZUVudHJ5ICYgKCgoMVVMTCA8PCBNYXhQaHlBZGRyQml0cykgLSAxKSA8PA0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyKTsNCisgIFBoeXNpY2Fs QWRkcmVzcyB8PSAoKChVSU5UNjQpTGluZWFyQWRkcmVzcyA+PiAyMSkgJiAweDFGRikgPDwgMzsN CisNCisgIEFTU0VSVCAoKFBoeXNpY2FsQWRkcmVzcyAmIChzaXplb2YgKCpQYWdlRGlyRW50cnkp IC0gMSkpID09IDApOw0KKw0KKyAgUGFnZURpckVudHJ5ID0gKFVJTlQ2NCAqKShVSU5UTilQaHlz aWNhbEFkZHJlc3M7DQorDQorICAvLw0KKyAgLy8gQ2hlY2sgd2hldGhlciBhIFBERSBvciBhIDJN aUIgcGFnZSBlbnRyeSBpcyBwcmVzZW50DQorICAvLw0KKyAgaWYgKCgqUGFnZURpckVudHJ5ICYg QklUMCkgPT0gMCkgew0KKyAgICByZXR1cm4gRkFMU0U7DQorICB9DQorDQorICAvLw0KKyAgLy8g Q2hlY2sgaWYgUERFIG1hcHMgYSAyTWlCIHBhZ2UNCisgIC8vDQorICBpZiAoKCpQYWdlRGlyRW50 cnkgJiBCSVQ3KSAhPSAwKSB7DQorICAgIHJldHVybiBUUlVFOw0KKyAgfQ0KKw0KKyAgLy8NCisg IC8vIENhbGN1bGF0ZSBwaHlzaWNhbCBhZGRyZXNzIG9mIFBURQ0KKyAgLy8NCisgIFBoeXNpY2Fs QWRkcmVzcyA9ICpQYWdlRGlyRW50cnkgJiAoKCgxVUxMIDw8IE1heFBoeUFkZHJCaXRzKSAtIDEp IDw8IDEyKTsNCisgIFBoeXNpY2FsQWRkcmVzcyB8PSAoKChVSU5UNjQpTGluZWFyQWRkcmVzcyA+ PiAxMikgJiAweDFGRikgPDwgMzsNCisNCisgIEFTU0VSVCAoKFBoeXNpY2FsQWRkcmVzcyAmIChz aXplb2YgKCpQYWdlVGFibGVFbnRyeSkgLSAxKSkgPT0gMCk7DQorDQorICBQYWdlVGFibGVFbnRy eSA9IChVSU5UNjQgKikoVUlOVE4pUGh5c2ljYWxBZGRyZXNzOw0KKw0KKyAgLy8NCisgIC8vIENo ZWNrIGlmIFBURSBtYXBzIGEgNEtpQiBwYWdlDQorICAvLw0KKyAgaWYgKCgqUGFnZVRhYmxlRW50 cnkgJiBCSVQwKSA9PSAwKSB7DQorICAgIHJldHVybiBGQUxTRTsNCisgIH0NCisNCisgIHJldHVy biBUUlVFOw0KK30NCisNCisvKioNCisgIENoZWNrIGlmIGEgbGluZWFyIGFkZHJlc3MgaXMgdmFs aWQgYnkgd2Fsa2luZyB0aGUgcGFnZSB0YWJsZXMgaW4gMzItYml0IHBhZ2luZw0KKyAgbW9kZS4N CisNCisgIEBwYXJhbVtpbl0gIENyMyAgICAgICAgICAgICBDUjMgY29udHJvbCByZWdpc3Rlci4N CisgIEBwYXJhbVtpbl0gIENyNCAgICAgICAgICAgICBDUjQgY29udHJvbCByZWdpc3Rlci4NCisg IEBwYXJhbVtpbl0gIExpbmVhckFkZHJlc3MgICBMaW5lYXIgYWRkcmVzcyB0byBiZSBjaGVja2Vk Lg0KKyoqLw0KK1NUQVRJQw0KK0JPT0xFQU4NCitEbzMyQml0UGFnaW5nTW9kZUNoZWNrICgNCisg IElOIFVJTlROICAgICAgICAgICAgQ3IzLA0KKyAgSU4gVUlOVE4gICAgICAgICAgICBDcjQsDQor ICBJTiBVSU5UTiAgICAgICAgICAgIExpbmVhckFkZHJlc3MNCisgICkNCit7DQorICBVSU5UNjQg UGh5c2ljYWxBZGRyZXNzOw0KKyAgVUlOVDMyICpQYWdlRGlyRW50cnk7DQorICBVSU5UMzIgKlBh Z2VUYWJsZUVudHJ5Ow0KKw0KKyAgaWYgKExpbmVhckFkZHJlc3MgPiBNQVhfVUlOVDMyKSB7DQor ICAgIHJldHVybiBGQUxTRTsNCisgIH0NCisNCisgIC8vDQorICAvLyBDYWxjdWxhdGUgcGh5c2lj YWwgYWRkcmVzcyBvZiBQREUNCisgIC8vDQorICBQaHlzaWNhbEFkZHJlc3MgPSAoVUlOVDMyKUNy MyAmICgoKDFVTEwgPDwgMjApIC0gMSkgPDwgMTIpOw0KKyAgUGh5c2ljYWxBZGRyZXNzIHw9ICgo KFVJTlQzMilMaW5lYXJBZGRyZXNzID4+IDIyKSAmIDB4M0ZGKSA8PCAyOw0KKw0KKyAgQVNTRVJU ICgoUGh5c2ljYWxBZGRyZXNzICYgKHNpemVvZiAoKlBhZ2VEaXJFbnRyeSkgLSAxKSkgPT0gMCk7 DQorDQorICBQYWdlRGlyRW50cnkgPSAoVUlOVDMyICopKFVJTlROKVBoeXNpY2FsQWRkcmVzczsN CisNCisgIC8vDQorICAvLyBDaGVjayB3aGV0aGVyIGEgUFRFIG9yIGEgNE1pQiBwYWdlIGlzIHBy ZXNlbnQNCisgIC8vDQorICBpZiAoKCpQYWdlRGlyRW50cnkgJiBCSVQwKSA9PSAwKSB7DQorICAg IHJldHVybiBGQUxTRTsNCisgIH0NCisNCisgIC8vDQorICAvLyBDaGVjayBpZiBQREUgbWFwcyBh IDRNaUIgcGFnZQ0KKyAgLy8NCisgIGlmICgoQ3I0ICYgQklUNCkgIT0gMCAmJiAoKlBhZ2VEaXJF bnRyeSAmIEJJVDcpICE9IDApIHsNCisgICAgcmV0dXJuIFRSVUU7DQorICB9DQorDQorICAvLw0K KyAgLy8gQ2FsY3VsYXRlIHBoeXNpY2FsIGFkZHJlc3Mgb2YgUFRFDQorICAvLw0KKyAgUGh5c2lj YWxBZGRyZXNzID0gKlBhZ2VEaXJFbnRyeSAmICgoKDFVTEwgPDwgMjApIC0gMSkgPDwgMTIpOw0K KyAgUGh5c2ljYWxBZGRyZXNzIHw9ICgoKFVJTlQzMilMaW5lYXJBZGRyZXNzID4+IDEyKSAmIDB4 M0ZGKSA8PCAyOw0KKw0KKyAgQVNTRVJUICgoUGh5c2ljYWxBZGRyZXNzICYgKHNpemVvZiAoKlBh Z2VUYWJsZUVudHJ5KSAtIDEpKSA9PSAwKTsNCisNCisgIFBhZ2VUYWJsZUVudHJ5ID0gKFVJTlQz MiAqKShVSU5UTilQaHlzaWNhbEFkZHJlc3M7DQorDQorICAvLw0KKyAgLy8gQ2hlY2sgaWYgUFRF IG1hcHMgYSA0S2lCIHBhZ2UNCisgIC8vDQorICBpZiAoKCpQYWdlVGFibGVFbnRyeSAmIEJJVDAp ID09IDApIHsNCisgICAgcmV0dXJuIEZBTFNFOw0KKyAgfQ0KKw0KKyAgcmV0dXJuIFRSVUU7DQor fQ0KKw0KKy8qKg0KKyAgQ2hlY2sgaWYgYSBsaW5lYXIgYWRkcmVzcyBpcyB2YWxpZCBieSB3YWxr aW5nIHRoZSBwYWdlIHRhYmxlcyBpbiBQQUUgcGFnaW5nDQorICBtb2RlLg0KKw0KKyAgQHBhcmFt W2luXSAgQ3IzICAgICAgICAgICAgIENSMyBjb250cm9sIHJlZ2lzdGVyLg0KKyAgQHBhcmFtW2lu XSAgTWF4UGh5QWRkckJpdHMgIE1BWFBIWUFERFJCSVRTIGJpdHMuDQorICBAcGFyYW1baW5dICBM aW5lYXJBZGRyZXNzICAgTGluZWFyIGFkZHJlc3MgdG8gYmUgY2hlY2tlZC4NCisqKi8NCitTVEFU SUMNCitCT09MRUFODQorRG9QQUVQYWdpbmdNb2RlQ2hlY2sgKA0KKyAgSU4gVUlOVE4gICAgICAg ICAgICBDcjMsDQorICBJTiBVSU5UOCAgICAgICAgICAgIE1heFBoeUFkZHJCaXRzLA0KKyAgSU4g VUlOVE4gICAgICAgICAgICBMaW5lYXJBZGRyZXNzDQorICApDQorew0KKyAgVUlOVDY0IFBoeXNp Y2FsQWRkcmVzczsNCisgIFVJTlQ2NCAqUGFnZURpclB0clRhYmxlRW50cnk7DQorICBVSU5UNjQg KlBhZ2VEaXJFbnRyeTsNCisgIFVJTlQ2NCAqUGFnZVRhYmxlRW50cnk7DQorDQorICBpZiAoTGlu ZWFyQWRkcmVzcyA+IE1BWF9VSU5UMzIpIHsNCisgICAgcmV0dXJuIEZBTFNFOw0KKyAgfQ0KKw0K KyAgLy8NCisgIC8vIENhbGN1bGF0ZSBwaHlzaWNhbCBhZGRyZXNzIG9mIFBEUFRFDQorICAvLw0K KyAgUGh5c2ljYWxBZGRyZXNzID0gKFVJTlQzMilDcjMgPj4gNTsNCisNCisgIC8vDQorICAvLyBT ZWxlY3QgUERQVEUgcmVnaXN0ZXINCisgIC8vDQorICBQaHlzaWNhbEFkZHJlc3MgKz0NCisgICAg KChVSU5UMzIpTGluZWFyQWRkcmVzcyA+PiAzMCkgKiBzaXplb2YgKCpQYWdlRGlyUHRyVGFibGVF bnRyeSk7DQorDQorICBQYWdlRGlyUHRyVGFibGVFbnRyeSA9IChVSU5UNjQgKikoVUlOVE4pUGh5 c2ljYWxBZGRyZXNzOw0KKw0KKyAgLy8NCisgIC8vIENoZWNrIGlmIFBERSBpcyBwcmVzZW50DQor ICAvLw0KKyAgaWYgKCgqUGFnZURpclB0clRhYmxlRW50cnkgJiBCSVQwKSA9PSAwKSB7DQorICAg IHJldHVybiBGQUxTRTsNCisgIH0NCisNCisgIFBoeXNpY2FsQWRkcmVzcyA9ICpQYWdlRGlyUHRy VGFibGVFbnRyeSAmICgoKDFVTEwgPDwgTWF4UGh5QWRkckJpdHMpIC0gMSkgPDwNCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMik7DQorICBQaHlzaWNhbEFk ZHJlc3MgfD0gKChMaW5lYXJBZGRyZXNzID4+IDIxKSAmIDB4MUZGKSA8PCAzOw0KKyAgQVNTRVJU ICgoUGh5c2ljYWxBZGRyZXNzICYgKHNpemVvZiAoKlBhZ2VEaXJFbnRyeSkgLSAxKSkgPT0gMCk7 DQorDQorICBQYWdlRGlyRW50cnkgPSAoVUlOVDY0ICopKFVJTlROKVBoeXNpY2FsQWRkcmVzczsN CisNCisgIC8vDQorICAvLyBDaGVjayB3aGV0aGVyIGEgUFRFIG9yIGEgMk1pQiBwYWdlIGlzIHBy ZXNlbnQNCisgIC8vDQorICBpZiAoKCpQYWdlRGlyRW50cnkgJiBCSVQwKSA9PSAwKSB7DQorICAg IHJldHVybiBGQUxTRTsNCisgIH0NCisNCisgIC8vDQorICAvLyBDaGVjayBpZiBQREUgbWFwcyBh IDJNaUIgcGFnZQ0KKyAgLy8NCisgIGlmICgoKlBhZ2VEaXJFbnRyeSAmIEJJVDcpICE9IDApIHsN CisgICAgcmV0dXJuIFRSVUU7DQorICB9DQorDQorICAvLw0KKyAgLy8gQ2FsY3VsYXRlIHBoeXNp Y2FsIGFkZHJlc3Mgb2YgUFRFDQorICAvLw0KKyAgUGh5c2ljYWxBZGRyZXNzID0gKlBhZ2VEaXJF bnRyeSAmICgoKDFVTEwgPDwgTWF4UGh5QWRkckJpdHMpIC0gMSkgPDwgMTIpOw0KKyAgUGh5c2lj YWxBZGRyZXNzIHw9ICgoTGluZWFyQWRkcmVzcyA+PiAxMikgJiAweDFGRikgPDwgMzsNCisgIEFT U0VSVCAoKFBoeXNpY2FsQWRkcmVzcyAmIChzaXplb2YgKCpQYWdlVGFibGVFbnRyeSkgLSAxKSkg PT0gMCk7DQorDQorICBQYWdlVGFibGVFbnRyeSA9IChVSU5UNjQgKikoVUlOVE4pUGh5c2ljYWxB ZGRyZXNzOw0KKw0KKyAgLy8NCisgIC8vIENoZWNrIGlmIFBURSBtYXBzIGEgNEtpQiBwYWdlDQor ICAvLw0KKyAgaWYgKCgqUGFnZVRhYmxlRW50cnkgJiBCSVQwKSA9PSAwKSB7DQorICAgIHJldHVy biBGQUxTRTsNCisgIH0NCisNCisgIHJldHVybiBUUlVFOw0KK30NCisNCisvKioNCisgIENoZWNr IGlmIGEgbGluZWFyIGFkZHJlc3MgaXMgdmFsaWQuDQorDQorICBAcGFyYW1baW5dICBDcjAgICAg ICAgICAgICBDUjAgY29udHJvbCByZWdpc3Rlci4NCisgIEBwYXJhbVtpbl0gIENyMyAgICAgICAg ICAgIENSMyBjb250cm9sIHJlZ2lzdGVyLg0KKyAgQHBhcmFtW2luXSAgQ3I0ICAgICAgICAgICAg Q1I0IGNvbnRyb2wgcmVnaXN0ZXIuDQorICBAcGFyYW1baW5dICBMaW5lYXJBZGRyZXNzICBMaW5l YXIgYWRkcmVzcyB0byBiZSBjaGVja2VkLg0KKyoqLw0KK0JPT0xFQU4NCitJc0xpbmVhckFkZHJl c3NWYWxpZCAoDQorICBJTiAgVUlOVE4gICAgICAgICAgICAgIENyMCwNCisgIElOICBVSU5UTiAg ICAgICAgICAgICAgQ3IzLA0KKyAgSU4gIFVJTlROICAgICAgICAgICAgICBDcjQsDQorICBJTiAg VUlOVE4gICAgICAgICAgICAgIExpbmVhckFkZHJlc3MNCisgICkNCit7DQorICBVSU5UMzIgICAg ICAgICAgICAgICAgICBFYXg7DQorICBVSU5UMzIgICAgICAgICAgICAgICAgICBFZHg7DQorICBV SU5UOCAgICAgICAgICAgICAgICAgICBNYXhQaHlBZGRyQml0czsNCisgIE1TUl9JQTMyX0VGRVJf UkVHSVNURVIgIE1zcjsNCisgIEJPT0xFQU4gICAgICAgICAgICAgICAgIEFkZHJlc3NWYWxpZDsN CisNCisgIC8vDQorICAvLyBDaGVjayBmb3IgdmFsaWQgaW5wdXQgcGFyYW1ldGVycw0KKyAgLy8N CisgIGlmIChDcjAgPT0gMCB8fCBDcjQgPT0gMCB8fCBMaW5lYXJBZGRyZXNzID09IDApIHsNCisg ICAgcmV0dXJuIEZBTFNFOw0KKyAgfQ0KKw0KKyAgLy8NCisgIC8vIENoZWNrIGlmIHBhZ2luZyBp cyBkaXNhYmxlZA0KKyAgLy8NCisgIGlmICgoQ3IwICYgQklUMzEpID09IDApIHsNCisgICAgLy8N CisgICAgLy8gSWYgQ1I0LlBBRSBiaXQgaXMgc2V0LCB0aGVuIHRoZSBsaW5lYXIgKG9yIHBoeXNp Y2FsKSBhZGRyZXNzIHN1cHBvcnRzDQorICAgIC8vIG9ubHkgdXAgdG8gMzYgYml0cy4NCisgICAg Ly8NCisgICAgaWYgKCgoQ3I0ICYgQklUNSkgIT0gMCAmJiAoVUlOVDY0KUxpbmVhckFkZHJlc3Mg PiAweEZGRkZGRkZGRlVMTCkgfHwNCisgICAgICAgIExpbmVhckFkZHJlc3MgPiAweEZGRkZGRkZG KSB7DQorICAgICAgcmV0dXJuIEZBTFNFOw0KKyAgICB9DQorDQorICAgIHJldHVybiBUUlVFOw0K KyAgfQ0KKw0KKyAgLy8NCisgIC8vIFBhZ2luZyBjYW4gYmUgZW5hYmxlZCBvbmx5IGlmIENSMC5Q RSBiaXQgaXMgc2V0DQorICAvLw0KKyAgaWYgKChDcjAgJiBCSVQwKSA9PSAwKSB7DQorICAgIHJl dHVybiBGQUxTRTsNCisgIH0NCisNCisgIC8vDQorICAvLyBDUjMgcmVnaXN0ZXIgY2Fubm90IGJl IHplcm8gaWYgcGFnaW5nIGlzIGVuYWJsZWQNCisgIC8vDQorICBpZiAoQ3IzID09IDApIHsNCisg ICAgcmV0dXJuIEZBTFNFOw0KKyAgfQ0KKw0KKyAgLy8NCisgIC8vIEdldCBNQVhQSFlBRERSIGJp dHMNCisgIC8vDQorICBBc21DcHVpZCAoMHg4MDAwMDAwMCwgJkVheCwgTlVMTCwgTlVMTCwgTlVM TCk7DQorICBpZiAoRWF4ID49IDB4ODAwMDAwMDgpIHsNCisgICAgQXNtQ3B1aWQgKDB4ODAwMDAw MDgsICZFYXgsIE5VTEwsIE5VTEwsIE5VTEwpOw0KKyAgICBNYXhQaHlBZGRyQml0cyA9IChVSU5U OClFYXg7DQorICB9IGVsc2Ugew0KKyAgICBBc21DcHVpZCAoMSwgTlVMTCwgTlVMTCwgTlVMTCwg JkVkeCk7DQorICAgIGlmICgoRWR4ICYgQklUNikgIT0gMCkgew0KKyAgICAgIE1heFBoeUFkZHJC aXRzID0gMzY7DQorICAgIH0gZWxzZSB7DQorICAgICAgTWF4UGh5QWRkckJpdHMgPSAzMjsNCisg ICAgfQ0KKyAgfQ0KKw0KKyAgQVNTRVJUIChNYXhQaHlBZGRyQml0cyA+IDApOw0KKw0KKyAgQWRk cmVzc1ZhbGlkID0gRkFMU0U7DQorDQorICAvLw0KKyAgLy8gY2hlY2sgaWYgQ1I0LlBBRSBiaXQg aXMgbm90IHNldA0KKyAgLy8NCisgIGlmICgoQ3I0ICYgQklUNSkgPT0gMCkgew0KKyAgICAvLw0K KyAgICAvLyBDaGVjayBpZiBsaW5lYXIgYWRkcmVzcyBpcyB2YWxpZCBpbiAzMi1iaXQgcGFnaW5n IG1vZGUNCisgICAgLy8NCisgICAgQWRkcmVzc1ZhbGlkID0gRG8zMkJpdFBhZ2luZ01vZGVDaGVj ayAoQ3IzLCBDcjQsIExpbmVhckFkZHJlc3MpOw0KKyAgfSBlbHNlIHsNCisgICAgaWYgKE1heFBo eUFkZHJCaXRzID4gNTIpIHsNCisgICAgICByZXR1cm4gRkFMU0U7DQorICAgIH0NCisNCisgICAg TXNyLlVpbnQ2NCA9IEFzbVJlYWRNc3I2NCAoTVNSX0lBMzJfRUZFUik7DQorDQorICAgIGlmIChN c3IuQml0cy5MTUUgPT0gMCkgew0KKyAgICAgIC8vDQorICAgICAgLy8gQ2hlY2sgaWYgbGluZWFy IGFkZHJlc3MgaXMgdmFsaWQgaW4gUEFFIHBhZ2luZyBtb2RlDQorICAgICAgLy8NCisgICAgICBB ZGRyZXNzVmFsaWQgPSBEb1BBRVBhZ2luZ01vZGVDaGVjayAoQ3IzLCBNYXhQaHlBZGRyQml0cywg TGluZWFyQWRkcmVzcyk7DQorICAgIH0gZWxzZSB7DQorICAgICAgLy8NCisgICAgICAvLyBDaGVj ayBpZiBsaW5lYXIgYWRkcmVzcyBpcyB2YWxpZCBpbiA0LWxldmVsIHBhZ2luZyBtb2RlDQorICAg ICAgLy8NCisgICAgICBBZGRyZXNzVmFsaWQgPSBEbzRMZXZlbFBhZ2luZ01vZGVDaGVjayAoQ3Iz LCBNYXhQaHlBZGRyQml0cywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGluZWFyQWRkcmVzcyk7DQorICAgIH0NCisgIH0NCisNCisgIHJldHVybiBBZGRy ZXNzVmFsaWQ7DQorfQ0KZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRp b25IYW5kbGVyTGliL0NwdUV4Y2VwdGlvbkNvbW1vbi5oIGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0Nw dUV4Y2VwdGlvbkhhbmRsZXJMaWIvQ3B1RXhjZXB0aW9uQ29tbW9uLmgNCmluZGV4IGVjNDZjMmQ5 ZDMuLjFiNTEwMzRjMjUgMTAwNjQ0DQotLS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi9DcHVFeGNlcHRpb25Db21tb24uaA0KKysrIGIvVWVmaUNwdVBrZy9MaWJy YXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvQ3B1RXhjZXB0aW9uQ29tbW9uLmgNCkBAIC0zMzAs NSArMzMwLDIxIEBAIEdldFBkYkZpbGVOYW1lICgNCiAgIE9VVCBDSEFSOCAgICAqKlBkYkZpbGVO YW1lDQogICApOw0KDQorLyoqDQorICBDaGVjayBpZiBhIGxpbmVhciBhZGRyZXNzIGlzIHZhbGlk Lg0KKw0KKyAgQHBhcmFtW2luXSAgQ3IwICAgICAgICAgICAgQ1IwIGNvbnRyb2wgcmVnaXN0ZXIu DQorICBAcGFyYW1baW5dICBDcjMgICAgICAgICAgICBDUjMgY29udHJvbCByZWdpc3Rlci4NCisg IEBwYXJhbVtpbl0gIENyNCAgICAgICAgICAgIENSNCBjb250cm9sIHJlZ2lzdGVyLg0KKyAgQHBh cmFtW2luXSAgTGluZWFyQWRkcmVzcyAgTGluZWFyIGFkZHJlc3MgdG8gYmUgY2hlY2tlZC4NCisq Ki8NCitCT09MRUFODQorSXNMaW5lYXJBZGRyZXNzVmFsaWQgKA0KKyAgSU4gIFVJTlROICAgICAg ICAgICAgICBDcjAsDQorICBJTiAgVUlOVE4gICAgICAgICAgICAgIENyMywNCisgIElOICBVSU5U TiAgICAgICAgICAgICAgQ3I0LA0KKyAgSU4gIFVJTlROICAgICAgICAgICAgICBMaW5lYXJBZGRy ZXNzDQorICApOw0KKw0KICNlbmRpZg0KDQotLQ0KMi4xNC4zDQoNCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQplZGsyLWRldmVsIG1haWxpbmcgbGlzdA0K ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCmh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlz dGluZm8vZWRrMi1kZXZlbA0KDQo=