From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=pass header.i=@citrix.com header.s=securemail header.b=eIdArE+1; spf=pass (domain: citrix.com, ip: 216.71.145.142, mailfrom: anthony.perard@citrix.com) Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com [216.71.145.142]) by groups.io with SMTP; Fri, 13 Sep 2019 07:51:08 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1568386268; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=MvZAqnUeNYGp3dUJM1f4tBOK3u+vLW3v45E5PKUzDSQ=; b=eIdArE+1XSGW4TXDAgZKk4VeJRd0OQDcC7d/iQzu858ta6kleYLMoO0z s6ggi3/4SgQdHxQoPNpyQSD9Cd4oE5klZsxU2Z1QLCgP+F+BjCyCKZb3J 2KyissdZekYd5kC3xYym8rYHo62wiv4DkCHC6QT6F8pbR2hSD060F+eHn g=; Authentication-Results: esa1.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=anthony.perard@citrix.com; spf=Pass smtp.mailfrom=anthony.perard@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa1.hc3370-68.iphmx.com: no sender authenticity information available from domain of anthony.perard@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa1.hc3370-68.iphmx.com: domain of anthony.perard@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa1.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: Kkw8joFoPfJcyD06wlGUtDNzcZybS1NWu35zlpTd2l6qS2xWUlwyJC1djiW51SaGCekGGp5C2Z /rG3VU+jfd0wNRA1PTD8hBPuCgWSDaYVA9mkhbWYcCN4PSXpLtKmqgl8b7WWhACnzwdfj6hOuE 9/q2hGRl+0HXEVoOjX7V+K8lLbjJImSLqoz6/Lk+LZleMBZWzj2U934Y1+/SZfKp5LwvAs93f0 MajbpmgOLcm5ZL81/oXiaGro86McIZd4LVz0W/V8XoMl5kr6ySqpz4wiaez75u1cOMYlukCpo2 LGU= X-SBRS: 2.7 X-MesageID: 5595144 X-Ironport-Server: esa1.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.64,501,1559534400"; d="scan'208";a="5595144" From: "Anthony PERARD" To: CC: Ard Biesheuvel , Julien Grall , Jordan Justen , , Anthony Perard , Laszlo Ersek Subject: [PATCH 03/11] OvmfPkg/XenBusDxe: Rework watch events reception Date: Fri, 13 Sep 2019 15:50:52 +0100 Message-ID: <20190913145100.303433-4-anthony.perard@citrix.com> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20190913145100.303433-1-anthony.perard@citrix.com> References: <20190913145100.303433-1-anthony.perard@citrix.com> MIME-Version: 1.0 Return-Path: anthony.perard@citrix.com Content-Transfer-Encoding: base64 Content-Type: text/plain VGhpcyBwYXRjaCByZXdvcmsgdGhlIHJlY2VwdGlvbiBvZiB4ZW5zdG9yZSB3YXRjaCBldmVudCB0 byBhdm9pZAphbGxvY2F0aW9uLgoKSW5zdGVhZCBvZiBxdWV1aW5nIHdhdGNoIGV2ZW50cywgd2Ug c2ltcGx5IG1hcmsgYSBYRU5TVE9SRV9XQVRDSCBhcwoidHJpZ2dlcmVkIi4gV2UgZG9uJ3QgbmVl ZCB0byBrbm93IGhvdyBtYW55IHRpbWUgd2UgcmVjZWl2ZWQgdGhlCmV2ZW50LCBvbmx5IHRoYXQg aXQgaGFwcGVuZWQuIFRoYXQgYXZvaWQgdG8gYWxsb2NhdGUgYQpYRU5TVE9SRV9NRVNTQUdFIGZv ciBldmVyeSB3YXRjaCBldmVudHMuCgpSZWY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9y Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MApTaWduZWQtb2ZmLWJ5OiBBbnRob255IFBFUkFSRCA8YW50 aG9ueS5wZXJhcmRAY2l0cml4LmNvbT4KLS0tCiBPdm1mUGtnL1hlbkJ1c0R4ZS9YZW5TdG9yZS5j IHwgMTI1ICsrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMzUgaW5zZXJ0aW9ucygrKSwgOTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvT3ZtZlBr Zy9YZW5CdXNEeGUvWGVuU3RvcmUuYyBiL092bWZQa2cvWGVuQnVzRHhlL1hlblN0b3JlLmMKaW5k ZXggNzI3NjQxYTBmZS4uNWNjOTAwMTkwYSAxMDA2NDQKLS0tIGEvT3ZtZlBrZy9YZW5CdXNEeGUv WGVuU3RvcmUuYworKysgYi9Pdm1mUGtnL1hlbkJ1c0R4ZS9YZW5TdG9yZS5jCkBAIC02NSw2ICs2 NSw4IEBAIHN0cnVjdCBfWEVOU1RPUkVfV0FUQ0gKIA0KICAgLyogUGF0aCBiZWluZyB3YXRjaGVk LiAqLw0KICAgQ0hBUjggICAgICAgKk5vZGU7DQorDQorICBCT09MRUFOICAgICBUcmlnZ2VyZWQ7 DQogfTsNCiANCiAjZGVmaW5lIFhFTlNUT1JFX1dBVENIX0ZST01fTElOSyhsKSBcDQpAQCAtODYs MTMgKzg4LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgIHN0cnVjdCB7DQogICAgICAgQ0hBUjgg KkJvZHk7DQogICAgIH0gUmVwbHk7DQotDQotICAgIC8qIFF1ZXVlZCB3YXRjaCBldmVudHMuICov DQotICAgIHN0cnVjdCB7DQotICAgICAgWEVOU1RPUkVfV0FUQ0ggKkhhbmRsZTsNCi0gICAgICBD T05TVCBDSEFSOCAqKlZlY3RvcjsNCi0gICAgICBVSU5UMzIgVmVjdG9yU2l6ZTsNCi0gICAgfSBX YXRjaDsNCiAgIH0gdTsNCiB9IFhFTlNUT1JFX01FU1NBR0U7DQogI2RlZmluZSBYRU5TVE9SRV9N RVNTQUdFX0ZST01fTElOSyhyKSBcDQpAQCAtMTMzLDE0ICsxMjgsNiBAQCB0eXBlZGVmIHN0cnVj dCB7CiAgIC8qKiBMb2NrIHByb3RlY3RpbmcgdGhlIHJlZ2lzdGVyZWQgd2F0Y2hlcyBsaXN0LiAq Lw0KICAgRUZJX0xPQ0sgUmVnaXN0ZXJlZFdhdGNoZXNMb2NrOw0KIA0KLSAgLyoqDQotICAgKiBM aXN0IG9mIHBlbmRpbmcgd2F0Y2ggY2FsbGJhY2sgZXZlbnRzLg0KLSAgICovDQotICBMSVNUX0VO VFJZIFdhdGNoRXZlbnRzOw0KLQ0KLSAgLyoqIExvY2sgcHJvdGVjdGluZyB0aGUgd2F0Y2ggY2Fs YmFjayBsaXN0LiAqLw0KLSAgRUZJX0xPQ0sgV2F0Y2hFdmVudHNMb2NrOw0KLQ0KICAgLyoqDQog ICAgKiBUaGUgZXZlbnQgY2hhbm5lbCBmb3IgY29tbXVuaWNhdGluZyB3aXRoIHRoZQ0KICAgICog WGVuU3RvcmUgc2VydmljZS4NCkBAIC02MzAsMjkgKzYxNywzMiBAQCBYZW5TdG9yZVByb2Nlc3NN ZXNzYWdlICgKICAgQm9keVtNZXNzYWdlLT5IZWFkZXIubGVuXSA9ICdcMCc7DQogDQogICBpZiAo TWVzc2FnZS0+SGVhZGVyLnR5cGUgPT0gWFNfV0FUQ0hfRVZFTlQpIHsNCi0gICAgVk9JRCAqQ29u dmVydGVkVG9rZW47DQorICAgIENPTlNUIENIQVI4ICAgICpXYXRjaEV2ZW50UGF0aDsNCisgICAg Q09OU1QgQ0hBUjggICAgKldhdGNoRXZlbnRUb2tlbjsNCisgICAgVk9JRCAgICAgICAgICAgKkNv bnZlcnRlZFRva2VuOw0KKyAgICBYRU5TVE9SRV9XQVRDSCAqV2F0Y2g7DQogDQotICAgIE1lc3Nh Z2UtPnUuV2F0Y2guVmVjdG9yID0gU3BsaXQoQm9keSwgTWVzc2FnZS0+SGVhZGVyLmxlbiwNCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmTWVzc2FnZS0+dS5XYXRjaC5WZWN0 b3JTaXplKTsNCisgICAgLy8NCisgICAgLy8gUGFyc2UgV0FUQ0hfRVZFTlQgbWVzc2FnZXMNCisg ICAgLy8gICA8cGF0aD5cMDx0b2tlbj5cMA0KKyAgICAvLw0KKyAgICBXYXRjaEV2ZW50UGF0aCA9 IEJvZHk7DQorICAgIFdhdGNoRXZlbnRUb2tlbiA9IFdhdGNoRXZlbnRQYXRoICsgQXNjaWlTdHJT aXplIChXYXRjaEV2ZW50UGF0aCk7DQogDQotICAgIENvbnZlcnRlZFRva2VuID0NCi0gICAgICAo Vk9JRCAqKSBBc2NpaVN0ckhleFRvVWludG4gKE1lc3NhZ2UtPnUuV2F0Y2guVmVjdG9yW1hTX1dB VENIX1RPS0VOXSk7DQorICAgIENvbnZlcnRlZFRva2VuID0gKFZPSUQgKikgQXNjaWlTdHJIZXhU b1VpbnRuIChXYXRjaEV2ZW50VG9rZW4pOw0KIA0KICAgICBFZmlBY3F1aXJlTG9jayAoJnhzLlJl Z2lzdGVyZWRXYXRjaGVzTG9jayk7DQotICAgIE1lc3NhZ2UtPnUuV2F0Y2guSGFuZGxlID0gWGVu U3RvcmVGaW5kV2F0Y2ggKENvbnZlcnRlZFRva2VuKTsNCi0gICAgREVCVUcgKChFRklfRF9JTkZP LCAiWGVuU3RvcmU6IFdhdGNoIGV2ZW50ICVhXG4iLA0KLSAgICAgICAgICAgIE1lc3NhZ2UtPnUu V2F0Y2guVmVjdG9yW1hTX1dBVENIX1RPS0VOXSkpOw0KLSAgICBpZiAoTWVzc2FnZS0+dS5XYXRj aC5IYW5kbGUgIT0gTlVMTCkgew0KLSAgICAgIEVmaUFjcXVpcmVMb2NrICgmeHMuV2F0Y2hFdmVu dHNMb2NrKTsNCi0gICAgICBJbnNlcnRIZWFkTGlzdCAoJnhzLldhdGNoRXZlbnRzLCAmTWVzc2Fn ZS0+TGluayk7DQotICAgICAgRWZpUmVsZWFzZUxvY2sgKCZ4cy5XYXRjaEV2ZW50c0xvY2spOw0K KyAgICBXYXRjaCA9IFhlblN0b3JlRmluZFdhdGNoIChDb252ZXJ0ZWRUb2tlbik7DQorICAgIERF QlVHICgoREVCVUdfSU5GTywgIlhlblN0b3JlOiBXYXRjaCBldmVudCAlYVxuIiwgV2F0Y2hFdmVu dFRva2VuKSk7DQorICAgIGlmIChXYXRjaCAhPSBOVUxMKSB7DQorICAgICAgV2F0Y2gtPlRyaWdn ZXJlZCA9IFRSVUU7DQogICAgIH0gZWxzZSB7DQogICAgICAgREVCVUcgKChFRklfRF9XQVJOLCAi WGVuU3RvcmU6IFdhdGNoIGhhbmRsZSAlYSBub3QgZm91bmRcbiIsDQotICAgICAgICAgICAgICBN ZXNzYWdlLT51LldhdGNoLlZlY3RvcltYU19XQVRDSF9UT0tFTl0pKTsNCi0gICAgICBGcmVlUG9v bCgoVk9JRCopTWVzc2FnZS0+dS5XYXRjaC5WZWN0b3IpOw0KLSAgICAgIEZyZWVQb29sKE1lc3Nh Z2UpOw0KKyAgICAgICAgICAgICAgV2F0Y2hFdmVudFRva2VuKSk7DQogICAgIH0NCiAgICAgRWZp UmVsZWFzZUxvY2sgKCZ4cy5SZWdpc3RlcmVkV2F0Y2hlc0xvY2spOw0KKyAgICBGcmVlUG9vbCAo TWVzc2FnZSk7DQorICAgIEZyZWVQb29sIChCb2R5KTsNCiAgIH0gZWxzZSB7DQogICAgIE1lc3Nh Z2UtPnUuUmVwbHkuQm9keSA9IEJvZHk7DQogICAgIEVmaUFjcXVpcmVMb2NrICgmeHMuUmVwbHlM b2NrKTsNCkBAIC05MzYsNDAgKzkyNiwyOSBAQCBYZW5TdG9yZVVud2F0Y2ggKAogU1RBVElDDQog WEVOU1RPUkVfU1RBVFVTDQogWGVuU3RvcmVXYWl0V2F0Y2ggKA0KLSAgVk9JRCAqVG9rZW4NCisg IElOIFZPSUQgKlRva2VuDQogICApDQogew0KLSAgWEVOU1RPUkVfTUVTU0FHRSAqTWVzc2FnZTsN Ci0gIExJU1RfRU5UUlkgKkVudHJ5ID0gTlVMTDsNCi0gIExJU1RfRU5UUlkgKkxhc3QgPSBOVUxM Ow0KKyAgWEVOU1RPUkVfV0FUQ0ggICpXYXRjaDsNCiAgIFhFTlNUT1JFX1NUQVRVUyBTdGF0dXM7 DQogDQorICBFZmlBY3F1aXJlTG9jayAoJnhzLlJlZ2lzdGVyZWRXYXRjaGVzTG9jayk7DQorICBX YXRjaCA9IFhlblN0b3JlRmluZFdhdGNoIChUb2tlbik7DQorICBFZmlSZWxlYXNlTG9jayAoJnhz LlJlZ2lzdGVyZWRXYXRjaGVzTG9jayk7DQorICBpZiAoV2F0Y2ggPT0gTlVMTCkgew0KKyAgICBy ZXR1cm4gWEVOU1RPUkVfU1RBVFVTX0VJTlZBTDsNCisgIH0NCisNCiAgIHdoaWxlIChUUlVFKSB7 DQotICAgIEVmaUFjcXVpcmVMb2NrICgmeHMuV2F0Y2hFdmVudHNMb2NrKTsNCi0gICAgaWYgKElz TGlzdEVtcHR5ICgmeHMuV2F0Y2hFdmVudHMpIHx8DQotICAgICAgICBMYXN0ID09IEdldEZpcnN0 Tm9kZSAoJnhzLldhdGNoRXZlbnRzKSkgew0KLSAgICAgIEVmaVJlbGVhc2VMb2NrICgmeHMuV2F0 Y2hFdmVudHNMb2NrKTsNCi0gICAgICBTdGF0dXMgPSBYZW5TdG9yZVByb2Nlc3NNZXNzYWdlICgp Ow0KLSAgICAgIGlmIChTdGF0dXMgIT0gWEVOU1RPUkVfU1RBVFVTX1NVQ0NFU1MgJiYgU3RhdHVz ICE9IFhFTlNUT1JFX1NUQVRVU19FQUdBSU4pIHsNCi0gICAgICAgIHJldHVybiBTdGF0dXM7DQot ICAgICAgfQ0KLSAgICAgIGNvbnRpbnVlOw0KKyAgICBpZiAoV2F0Y2gtPlRyaWdnZXJlZCkgew0K KyAgICAgIFdhdGNoLT5UcmlnZ2VyZWQgPSBGQUxTRTsNCisgICAgICByZXR1cm4gWEVOU1RPUkVf U1RBVFVTX1NVQ0NFU1M7DQogICAgIH0NCiANCi0gICAgZm9yIChFbnRyeSA9IEdldEZpcnN0Tm9k ZSAoJnhzLldhdGNoRXZlbnRzKTsNCi0gICAgICAgICBFbnRyeSAhPSBMYXN0ICYmICFJc051bGwg KCZ4cy5XYXRjaEV2ZW50cywgRW50cnkpOw0KLSAgICAgICAgIEVudHJ5ID0gR2V0TmV4dE5vZGUg KCZ4cy5XYXRjaEV2ZW50cywgRW50cnkpKSB7DQotICAgICAgTWVzc2FnZSA9IFhFTlNUT1JFX01F U1NBR0VfRlJPTV9MSU5LIChFbnRyeSk7DQotICAgICAgaWYgKE1lc3NhZ2UtPnUuV2F0Y2guSGFu ZGxlID09IFRva2VuKSB7DQotICAgICAgICBSZW1vdmVFbnRyeUxpc3QgKEVudHJ5KTsNCi0gICAg ICAgIEVmaVJlbGVhc2VMb2NrICgmeHMuV2F0Y2hFdmVudHNMb2NrKTsNCi0gICAgICAgIEZyZWVQ b29sKChWT0lEKilNZXNzYWdlLT51LldhdGNoLlZlY3Rvcik7DQotICAgICAgICBGcmVlUG9vbChN ZXNzYWdlKTsNCi0gICAgICAgIHJldHVybiBYRU5TVE9SRV9TVEFUVVNfU1VDQ0VTUzsNCi0gICAg ICB9DQorICAgIFN0YXR1cyA9IFhlblN0b3JlUHJvY2Vzc01lc3NhZ2UgKCk7DQorICAgIGlmIChT dGF0dXMgIT0gWEVOU1RPUkVfU1RBVFVTX1NVQ0NFU1MgJiYgU3RhdHVzICE9IFhFTlNUT1JFX1NU QVRVU19FQUdBSU4pIHsNCisgICAgICByZXR1cm4gU3RhdHVzOw0KICAgICB9DQotICAgIExhc3Qg PSBHZXRGaXJzdE5vZGUgKCZ4cy5XYXRjaEV2ZW50cyk7DQotICAgIEVmaVJlbGVhc2VMb2NrICgm eHMuV2F0Y2hFdmVudHNMb2NrKTsNCiAgIH0NCiB9DQogDQpAQCAtMTA1MiwxMiArMTAzMSwxMCBA QCBYZW5TdG9yZUluaXQgKAogICAgICAgICAgIHhzLlhlblN0b3JlLCB4cy5FdmVudENoYW5uZWwp KTsNCiANCiAgIEluaXRpYWxpemVMaXN0SGVhZCAoJnhzLlJlcGx5TGlzdCk7DQotICBJbml0aWFs aXplTGlzdEhlYWQgKCZ4cy5XYXRjaEV2ZW50cyk7DQogICBJbml0aWFsaXplTGlzdEhlYWQgKCZ4 cy5SZWdpc3RlcmVkV2F0Y2hlcyk7DQogDQogICBFZmlJbml0aWFsaXplTG9jayAoJnhzLlJlcGx5 TG9jaywgVFBMX05PVElGWSk7DQogICBFZmlJbml0aWFsaXplTG9jayAoJnhzLlJlZ2lzdGVyZWRX YXRjaGVzTG9jaywgVFBMX05PVElGWSk7DQotICBFZmlJbml0aWFsaXplTG9jayAoJnhzLldhdGNo RXZlbnRzTG9jaywgVFBMX05PVElGWSk7DQogDQogICAvKiBJbml0aWFsaXplIHRoZSBzaGFyZWQg bWVtb3J5IHJpbmdzIHRvIHRhbGsgdG8geGVuc3RvcmVkICovDQogICBTdGF0dXMgPSBYZW5TdG9y ZUluaXRDb21tcyAoJnhzKTsNCkBAIC0xMDg4LDIzICsxMDY1LDYgQEAgWGVuU3RvcmVEZWluaXQg KAogICAgIH0NCiAgIH0NCiANCi0gIC8vDQotICAvLyBFbXB0eWluZyB0aGUgbGlzdCBXYXRjaEV2 ZW50cywgYnV0IHRoaXMgbGlzdCBzaG91bGQgYWxyZWFkeSBiZSBlbXB0eSBhZnRlcg0KLSAgLy8g aGF2aW5nIGNsZWFudXAgdGhlIGxpc3QgUmVnaXN0ZXJlZFdhdGNoZXMuDQotICAvLw0KLSAgaWYg KCFJc0xpc3RFbXB0eSAoJnhzLldhdGNoRXZlbnRzKSkgew0KLSAgICBMSVNUX0VOVFJZICpFbnRy eTsNCi0gICAgREVCVUcgKChERUJVR19XQVJOLCAiWGVuU3RvcmU6IFdhdGNoRXZlbnRzIGlzIG5v dCBlbXB0eSwgY2xlYW5pbmcgdXAuLi5cbiIpKTsNCi0gICAgRW50cnkgPSBHZXRGaXJzdE5vZGUg KCZ4cy5XYXRjaEV2ZW50cyk7DQotICAgIHdoaWxlICghSXNOdWxsICgmeHMuV2F0Y2hFdmVudHMs IEVudHJ5KSkgew0KLSAgICAgIFhFTlNUT1JFX01FU1NBR0UgKk1lc3NhZ2UgPSBYRU5TVE9SRV9N RVNTQUdFX0ZST01fTElOSyAoRW50cnkpOw0KLSAgICAgIEVudHJ5ID0gR2V0TmV4dE5vZGUgKCZ4 cy5XYXRjaEV2ZW50cywgRW50cnkpOw0KLSAgICAgIFJlbW92ZUVudHJ5TGlzdCAoJk1lc3NhZ2Ut PkxpbmspOw0KLSAgICAgIEZyZWVQb29sICgoVk9JRCopTWVzc2FnZS0+dS5XYXRjaC5WZWN0b3Ip Ow0KLSAgICAgIEZyZWVQb29sIChNZXNzYWdlKTsNCi0gICAgfQ0KLSAgfQ0KLQ0KICAgaWYgKCFJ c0xpc3RFbXB0eSAoJnhzLlJlcGx5TGlzdCkpIHsNCiAgICAgWEVOU1RPUkVfTUVTU0FHRSAqTWVz c2FnZTsNCiAgICAgTElTVF9FTlRSWSAqRW50cnk7DQpAQCAtMTM4Miw3ICsxMzQyLDYgQEAgWGVu U3RvcmVVbnJlZ2lzdGVyV2F0Y2ggKAogICApDQogew0KICAgQ0hBUjggVG9rZW5bc2l6ZW9mIChX YXRjaCkgKiAyICsgMV07DQotICBMSVNUX0VOVFJZICpFbnRyeTsNCiANCiAgIEFTU0VSVCAoV2F0 Y2gtPlNpZ25hdHVyZSA9PSBYRU5TVE9SRV9XQVRDSF9TSUdOQVRVUkUpOw0KIA0KQEAgLTEzOTcs MjAgKzEzNTYsNiBAQCBYZW5TdG9yZVVucmVnaXN0ZXJXYXRjaCAoCiAgIEFzY2lpU1ByaW50IChU b2tlbiwgc2l6ZW9mIChUb2tlbiksICIlcCIsIChWT0lEICopIFdhdGNoKTsNCiAgIFhlblN0b3Jl VW53YXRjaCAoV2F0Y2gtPk5vZGUsIFRva2VuKTsNCiANCi0gIC8qIENhbmNlbCBwZW5kaW5nIHdh dGNoIGV2ZW50cy4gKi8NCi0gIEVmaUFjcXVpcmVMb2NrICgmeHMuV2F0Y2hFdmVudHNMb2NrKTsN Ci0gIEVudHJ5ID0gR2V0Rmlyc3ROb2RlICgmeHMuV2F0Y2hFdmVudHMpOw0KLSAgd2hpbGUgKCFJ c051bGwgKCZ4cy5XYXRjaEV2ZW50cywgRW50cnkpKSB7DQotICAgIFhFTlNUT1JFX01FU1NBR0Ug Kk1lc3NhZ2UgPSBYRU5TVE9SRV9NRVNTQUdFX0ZST01fTElOSyAoRW50cnkpOw0KLSAgICBFbnRy eSA9IEdldE5leHROb2RlICgmeHMuV2F0Y2hFdmVudHMsIEVudHJ5KTsNCi0gICAgaWYgKE1lc3Nh Z2UtPnUuV2F0Y2guSGFuZGxlID09IFdhdGNoKSB7DQotICAgICAgUmVtb3ZlRW50cnlMaXN0ICgm TWVzc2FnZS0+TGluayk7DQotICAgICAgRnJlZVBvb2wgKChWT0lEKilNZXNzYWdlLT51LldhdGNo LlZlY3Rvcik7DQotICAgICAgRnJlZVBvb2wgKE1lc3NhZ2UpOw0KLSAgICB9DQotICB9DQotICBF ZmlSZWxlYXNlTG9jayAoJnhzLldhdGNoRXZlbnRzTG9jayk7DQotDQogICBGcmVlUG9vbCAoV2F0 Y2gtPk5vZGUpOw0KICAgRnJlZVBvb2wgKFdhdGNoKTsNCiB9DQotLSAKQW50aG9ueSBQRVJBUkQK Cg==