From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH v4 05/34] libxc/libxl/python/xenstat: Use new XEN_VERSION_OP hypercall Date: Wed, 16 Mar 2016 21:08:19 -0400 Message-ID: <20160317010817.GC5173@localhost.localdomain> References: <1458064616-23101-1-git-send-email-konrad.wilk@oracle.com> <1458064616-23101-6-git-send-email-konrad.wilk@oracle.com> <20160316181157.GB22103@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1agMQL-000534-Vl for xen-devel@lists.xenproject.org; Thu, 17 Mar 2016 01:08:26 +0000 Received: by mail-qg0-f65.google.com with SMTP id y89so4038299qge.0 for ; Wed, 16 Mar 2016 18:08:23 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20160316181157.GB22103@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Wei Liu Cc: George Dunlap , andrew.cooper3@citrix.com, Stefano Stabellini , Ian Jackson , mpohlack@amazon.de, ross.lagerwall@citrix.com, Julien Grall , sasha.levin@oracle.com, David Scott , xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBNYXIgMTYsIDIwMTYgYXQgMDY6MTE6NTdQTSArMDAwMCwgV2VpIExpdSB3cm90ZToK PiBPbiBUdWUsIE1hciAxNSwgMjAxNiBhdCAwMTo1NjoyN1BNIC0wNDAwLCBLb25yYWQgUnplc3p1 dGVrIFdpbGsgd3JvdGU6Cj4gWy4uLl0KPiA+IGRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Z19z YXZlX3Jlc3RvcmUuaCBiL3Rvb2xzL2xpYnhjL3hnX3NhdmVfcmVzdG9yZS5oCj4gPiBpbmRleCAz MDMwODFkLi4yNjYzOTY5IDEwMDY0NAo+ID4gLS0tIGEvdG9vbHMvbGlieGMveGdfc2F2ZV9yZXN0 b3JlLmgKPiA+ICsrKyBiL3Rvb2xzL2xpYnhjL3hnX3NhdmVfcmVzdG9yZS5oCj4gPiBAQCAtNTcs MTAgKzU3LDEyIEBAIHN0YXRpYyBpbmxpbmUgaW50IGdldF9wbGF0Zm9ybV9pbmZvKHhjX2ludGVy ZmFjZSAqeGNoLCB1aW50MzJfdCBkb20sCj4gPiAgICAgIHhlbl9jYXBhYmlsaXRpZXNfaW5mb190 IHhlbl9jYXBzID0gIiI7Cj4gPiAgICAgIHhlbl9wbGF0Zm9ybV9wYXJhbWV0ZXJzX3QgeGVuX3Bh cmFtczsKPiA+ICAKPiA+IC0gICAgaWYgKHhjX3ZlcnNpb24oeGNoLCBYRU5WRVJfcGxhdGZvcm1f cGFyYW1ldGVycywgJnhlbl9wYXJhbXMpICE9IDApCj4gPiArICAgIGlmICh4Y192ZXJzaW9uKHhj aCwgWEVOX1ZFUlNJT05fT1BfcGxhdGZvcm1fcGFyYW1ldGVycywgJnhlbl9wYXJhbXMsCj4gPiAr ICAgICAgICAgICAgICAgICAgIHNpemVvZih4ZW5fcGFyYW1zKSkgPCAwKQo+ID4gICAgICAgICAg cmV0dXJuIDA7Cj4gPiAgCj4gPiAtICAgIGlmICh4Y192ZXJzaW9uKHhjaCwgWEVOVkVSX2NhcGFi aWxpdGllcywgJnhlbl9jYXBzKSAhPSAwKQo+ID4gKyAgICBpZiAoeGNfdmVyc2lvbih4Y2gsIFhF Tl9WRVJTSU9OX09QX2NhcGFiaWxpdGllcywgeGVuX2NhcHMsCj4gPiArICAgICAgICAgICAgICAg ICAgIHNpemVvZih4ZW5fY2FwcykpIDwgMCkKPiA+ICAgICAgICAgIHJldHVybiAwOwo+ID4gIAo+ ID4gICAgICBpZiAoeGNfbWF4aW11bV9yYW1fcGFnZSh4Y2gsIG1heF9tZm4pKQo+ID4gZGlmZiAt LWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsLmMgYi90b29scy9saWJ4bC9saWJ4bC5jCj4gPiBpbmRl eCA5M2UyMjhkLi5kYzY2MGI3IDEwMDY0NAo+ID4gLS0tIGEvdG9vbHMvbGlieGwvbGlieGwuYwo+ ID4gKysrIGIvdG9vbHMvbGlieGwvbGlieGwuYwo+ID4gQEAgLTUxOTEsNTAgKzUxOTEsNzMgQEAg bGlieGxfbnVtYWluZm8gKmxpYnhsX2dldF9udW1haW5mbyhsaWJ4bF9jdHggKmN0eCwgaW50ICpu cikKPiA+ICAgICAgcmV0dXJuIHJldDsKPiA+ICB9Cj4gPiAgCj4gPiArCj4gPiArc3RhdGljIGlu dCB4Y192ZXJzaW9uX3dyYXBwZXIobGlieGxfY3R4ICpjdHgsIHVuc2lnbmVkIGludCBjbWQsIGNo YXIgKmJ1Ziwgc3NpemVfdCBsZW4sIGNoYXIgKipkc3QpCj4gPiArewo+IAo+IFRoaXMgZnVuY3Rp b24gc2hvdWxkIGFjY2VwdCBsaWJ4bF9fZ2MgKmdjIGluc3RlYWQgb2YgbGlieGxfY3R4Lgo+IAo+ IFByZWZlcmFibHkgaXMgc2hvdWxkIGJlIHJlbmFtZWQgdG8KPiAKPiBsaWJ4bF9feGNfdmVyc2lv bl93cmFwcGVyCj4gCj4gPiArICAgIEdDX0lOSVQoY3R4KTsKPiA+ICsgICAgaW50IHI7Cj4gPiAr Cj4gPiArICAgIHIgPSB4Y192ZXJzaW9uKGN0eC0+eGNoLCBjbWQsIGJ1ZiwgbGVuKTsKPiAKPiBU aGVuIGhlcmUgQ1RYLT54Y2gKPiAKPiA+ICsgICAgaWYgKCByID09IC1FUEVSTSApCj4gPiArICAg ICAgICBidWZbMF0gPSAnXDAnOwo+ID4gKyAgICBlbHNlIGlmICggciA8IDAgKQo+ID4gKyAgICB7 Cj4gPiArICAgICAgICBHQ19GUkVFOwo+ID4gKyAgICAgICAgcmV0dXJuIHI7Cj4gPiArICAgIH0K PiA+ICsgICAgKmRzdCA9IGxpYnhsX19zdHJkdXAoTk9HQywgYnVmKTsKPiA+ICsgICAgR0NfRlJF RTsKPiAKPiBUaGVuIGdldCByaWQgb2YgYWxsIEdDXyogbWFjcm9zLgo+IAo+ID4gKyAgICByZXR1 cm4gMDsKPiA+ICt9Cj4gPiArCj4gPiAgY29uc3QgbGlieGxfdmVyc2lvbl9pbmZvKiBsaWJ4bF9n ZXRfdmVyc2lvbl9pbmZvKGxpYnhsX2N0eCAqY3R4KQo+IFsuLi5dCgpXb3VsZCB0aGlzIGJlIHRv IHlvdXIgbGlraW5nPwoKCk5vdGUgdGhhdCB0aGUgT2NhbWwgYW5kIHhlbnN0YXQgYXJlIHVzaW5n IHJlYWwgdGFicyBpbnN0ZWFkIG9mIGZvdXIKc3BhY2VzIHNvIHRoZXkgbG9vayBvZGQuCgoKRnJv bSAzNmYzOTM4OGMyNjIxMjNhMGJkY2RkZmZkZjU2NWEwMzJkN2NhMmNiIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNs ZS5jb20+CkRhdGU6IFRodSwgMTAgTWFyIDIwMTYgMTY6MTE6NTkgLTA1MDAKU3ViamVjdDogW1BB VENIIHY0IDA2LzM1XSBsaWJ4Yy9saWJ4bC9weXRob24veGVuc3RhdC9vY2FtbDogVXNlIG5ldwog WEVOX1ZFUlNJT05fT1AgaHlwZXJjYWxsCgpXZSBjaGFuZ2UgdGhlIHhlbl92ZXJzaW9uIGxpYnhj IGNvZGUgdG8gdXNlIHRoZSBuZXcgaHlwZXJjYWxsLgpXaGljaCBvZiBjb3Vyc2UgbWVhbnMgZXZl cnkgdXNlciBpbiB0aGUgY29kZSBiYXNlIGhhcyB0bwpiZSBjaGFuZ2VkIG92ZXIuCgpJdCBpcyBp bXBvcnRhbnQgdG8gbm90ZSB0aGF0IHRoZSB4Y192ZXJzaW9uX29wIGhhcyBhIGRpZmZlcmVudApy ZXR1cm4gc2VtYW50aWMgdGhhbiB0aGUgcHJldmlvdXMgb25lLiBJdCByZXR1cm5zIG5lZ2F0aXZl CnZhbHVlcyBvbiBlcnJvciAobGlrZSB0aGUgb2xkIG9uZSksIGJ1dCBpdCBhbHNvIHJldHVybnMK YW4gcG9zaXRpdmUgdmFsdWUgb24gc3VjY2VzcyAodW5saWtlIHRoZSBvbGQgb25lKS4gVGhlIHBv c2l0aXZlCnZhbHVlIGlzIHRoZSBudW1iZXIgb2YgYnl0ZXMgY29waWVkIGluLgoKTm90ZSB0aGF0 IGJvdGggT2NhbWwgYW5kIHhlbnN0YXQgdXNlIHRhYnMgaW5zdGVhZCBvZiBmb3VyCnNwYWNlcyBz byB0aGV5IGxvb2sgcXVpdGUgb2RkLgoKU2lnbmVkLW9mZi1ieTogS29ucmFkIFJ6ZXN6dXRlayBX aWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3IENvb3BlciA8 YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KVGVzdGVkLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRy ZXcuY29vcGVyM0BjaXRyaXguY29tPiBbZm9yIHRoZSBPY2FtbCBzdHVic10KQWNrZWQtYnk6IEdl b3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4gW3hlbmN0eCBiaXRzXQot LS0KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzogU3RlZmFu byBTdGFiZWxsaW5pIDxzdGVmYW5vLnN0YWJlbGxpbmlAZXUuY2l0cml4LmNvbT4KQ2M6IEp1bGll biBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRy aXguY29tPgpDYzogRGF2aWQgU2NvdHQgPGRhdmVAcmVjb2lsLm9yZz4KQ2M6IEdlb3JnZSBEdW5s YXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4KCnYyOiBVc2UgeGNfdmVyc2lvbl9vcF92 YWxfdCBpbnN0ZWFkIG9mIHVpbnQzMiBvciBzdWNoCnYzOiBNYWtlIHN1cmUgdG8gY2hlY2sgcmV0 IDwgMCBpbnN0ZWFkIG9mIHJldCAoYXMgaXQgcmV0dXJucyB0aGUgc2l6ZSkgLQogICAgaW4gT2Nh bWwgY29kZS4gRm91bmQgYnkgQW5kcmV3Lgp2NDogVXBkYXRlIGNvbW1lbnQgZm9yIHhjX3ZlcnNp b24gdG8gbWVudGlvbiB0aGUgcmV0dXJuIHRoZSBzaXplCnY1OiBXZWkncyByZXZpZXcKLS0tCiB0 b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaCAgICAgICAgICB8IDMyICsrKysrKysrKysrKyst CiB0b29scy9saWJ4Yy94Y19jb3JlLmMgICAgICAgICAgICAgICAgICB8IDM1ICsrKysrKystLS0t LS0tLQogdG9vbHMvbGlieGMveGNfZG9tX2Jvb3QuYyAgICAgICAgICAgICAgfCAxMiArKysrKy0K IHRvb2xzL2xpYnhjL3hjX2RvbWFpbi5jICAgICAgICAgICAgICAgIHwgIDMgKy0KIHRvb2xzL2xp YnhjL3hjX3ByaXZhdGUuYyAgICAgICAgICAgICAgIHwgNTMgKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0KIHRvb2xzL2xpYnhjL3hjX3ByaXZhdGUuaCAgICAgICAgICAgICAgIHwgIDcgKy0tCiB0b29s cy9saWJ4Yy94Y19yZXN1bWUuYyAgICAgICAgICAgICAgICB8ICAzICstCiB0b29scy9saWJ4Yy94 Y19zcl9zYXZlLmMgICAgICAgICAgICAgICB8ICA5ICsrLS0KIHRvb2xzL2xpYnhjL3hnX3NhdmVf cmVzdG9yZS5oICAgICAgICAgIHwgIDYgKystCiB0b29scy9saWJ4bC9saWJ4bC5jICAgICAgICAg ICAgICAgICAgICB8IDc5ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIHRvb2xz L29jYW1sL2xpYnMveGMveGVuY3RybF9zdHVicy5jICAgIHwgMzkgKysrKysrKy0tLS0tLS0tLS0K IHRvb2xzL3B5dGhvbi94ZW4vbG93bGV2ZWwveGMveGMuYyAgICAgIHwgMzAgKysrKysrKy0tLS0t LQogdG9vbHMveGVuc3RhdC9saWJ4ZW5zdGF0L3NyYy94ZW5zdGF0LmMgfCAxMiArKystLS0KIHRv b2xzL3hlbnRyYWNlL3hlbmN0eC5jICAgICAgICAgICAgICAgIHwgIDMgKy0KIDE0IGZpbGVzIGNo YW5nZWQsIDE3NyBpbnNlcnRpb25zKCspLCAxNDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv dG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0 cmwuaAppbmRleCAxNTBkNzI3Li4wNWNhNDQwIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy9pbmNs dWRlL3hlbmN0cmwuaAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaApAQCAtMTQ3 Nyw3ICsxNDc3LDM3IEBAIGludCB4Y190YnVmX3NldF9ldnRfbWFzayh4Y19pbnRlcmZhY2UgKnhj aCwgdWludDMyX3QgbWFzayk7CiBpbnQgeGNfZG9tY3RsKHhjX2ludGVyZmFjZSAqeGNoLCBzdHJ1 Y3QgeGVuX2RvbWN0bCAqZG9tY3RsKTsKIGludCB4Y19zeXNjdGwoeGNfaW50ZXJmYWNlICp4Y2gs IHN0cnVjdCB4ZW5fc3lzY3RsICpzeXNjdGwpOwogCi1pbnQgeGNfdmVyc2lvbih4Y19pbnRlcmZh Y2UgKnhjaCwgaW50IGNtZCwgdm9pZCAqYXJnKTsKKy8qKgorICogVGhpcyBmdW5jdGlvbiByZXR1 cm5zIHRoZSBzaXplIG9mIGJ1ZmZlciB0byBiZSBhbGxvY2F0ZWQgZm9yCisgKiB0aGUgY21kLiBU aGUgY21kIGFyZSBYRU5fVkVSU0lPTl9PUF8qLgorICovCitzc2l6ZV90IHhjX3ZlcnNpb25fbGVu KHhjX2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgY21kKTsKKworLyoqCisgKiBUaGlzIGZ1 bmN0aW9uIHJldHJpZXZlcyB0aGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgdmVyc2lvbl9vcCBoeXBl cmNhbGwuCisgKiBUaGUgbGVuIGlzIHRoZSBzaXplIG9mIHRoZSBhcmcgYnVmZmVyLiBJZiBhcmcg aXMgTlVMTCwgd2lsbCBub3QKKyAqIHBlcmZvcm0gaHlwZXJjYWxsIC0gaW5zdGVhZCB3aWxsIGp1 c3QgcmV0dXJuIHRoZSBzaXplIG9mIGFyZworICogYnVmZmVyIHRoYXQgaXMgbmVlZGVkLgorICoK KyAqIE5vdGUgdGhhdCBwcmlvciB0byBYZW4gNC43IHRoaXMgd291bGQgcmV0dXJuIDAgZm9yIHN1 Y2Nlc3MgYW5kCisgKiBuZWdhdGl2ZSB2YWx1ZSAoLTEpIGZvciBlcnJvciAod2l0aCB0aGUgZXJy b3IgaW4gZXJybm8pLiBJbiBYZW4gNC43CisgKiBhbmQgbGF0ZXIgZm9yIHN1Y2Nlc3MgaXQgd2ls bCByZXR1cm4gYW4gcG9zaXRpdmUgdmFsdWUgd2hpY2ggaXMgdGhlCisgKiBudW1iZXIgb2YgYnl0 ZXMgY29waWVkIGluIGFyZy4KKyAqCisgKiBJdCBjYW4gYWxzbyByZXR1cm4gLTEgd2l0aCB2YXJp b3VzIGVycm5vIHZhbHVlczoKKyAqICAtIEVQRVJNIC0gbm90IHBlcm1pdHRlZC4KKyAqICAtIEVO T0JVRlMgLSB0aGUgbGVuIHdhcyB0byBzaG9ydCwgb3V0cHV0IGluIGFyZyB0cnVuY2F0ZWQuCisg KiAgLSBFTk9TWVMgLSBub3QgaW1wbGVtZW50ZWQuCisgKgorICogQHBhcm0geGNoIGEgaGFuZGxl IHRvIGFuIG9wZW4gaHlwZXJ2aXNvciBpbnRlcmZhY2UKKyAqIEBwYXJtIGNtZCBYRU5fVkVSU0lP Tl9PUF8qIHZhbHVlCisgKiBAcGFyYW0gYXJnIFBvaW50ZXIgdG8geGVuX3ZlcnNpb25fb3BfYnVm X3Qgb3IgeGVuX3ZlcnNpb25fb3BfdmFsX3QKKyAqIEBwYXJhbSBsZW4gU2l6ZSBvZiBhcmcKKyAq IEByZXR1cm4gc2l6ZSBvZiBieXRlcyBjb3BpZWQgaW4gYXJnIG9uIHN1Y2Nlc3MsIC0xIG9uIGZh aWx1cmUgKGFuZAorICogZXJybm8gd2lsbCBjb250YWluIHRoZSBlcnJvcikKKyAqCisgKi8KK2lu dCB4Y192ZXJzaW9uKHhjX2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgY21kLCB2b2lkICph cmcsIHNpemVfdCBsZW4pOwogCiBpbnQgeGNfZmxhc2tfb3AoeGNfaW50ZXJmYWNlICp4Y2gsIHhl bl9mbGFza19vcF90ICpvcCk7CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX2NvcmUuYyBi L3Rvb2xzL2xpYnhjL3hjX2NvcmUuYwppbmRleCBkNzkyNTY2Li41OGIwM2Q2IDEwMDY0NAotLS0g YS90b29scy9saWJ4Yy94Y19jb3JlLmMKKysrIGIvdG9vbHMvbGlieGMveGNfY29yZS5jCkBAIC0y NzAsNDIgKzI3MCw0MyBAQCBlbGZub3RlX2ZpbGxfeGVuX3ZlcnNpb24oeGNfaW50ZXJmYWNlICp4 Y2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKnhlbl92ZXJzaW9uKQogewogICAgIGludCBy YzsKKyAgICB4ZW5fdmVyc2lvbl9vcF92YWxfdCB2YWwgPSAwOwogICAgIG1lbXNldCh4ZW5fdmVy c2lvbiwgMCwgc2l6ZW9mKCp4ZW5fdmVyc2lvbikpOwogCi0gICAgcmMgPSB4Y192ZXJzaW9uKHhj aCwgWEVOVkVSX3ZlcnNpb24sIE5VTEwpOworICAgIHJjID0geGNfdmVyc2lvbih4Y2gsIFhFTl9W RVJTSU9OX09QX3ZlcnNpb24sICZ2YWwsIHNpemVvZih2YWwpKTsKICAgICBpZiAoIHJjIDwgMCAp CiAgICAgICAgIHJldHVybiByYzsKLSAgICB4ZW5fdmVyc2lvbi0+bWFqb3JfdmVyc2lvbiA9IHJj ID4+IDE2OwotICAgIHhlbl92ZXJzaW9uLT5taW5vcl92ZXJzaW9uID0gcmMgJiAoKDEgPDwgMTYp IC0gMSk7CisgICAgeGVuX3ZlcnNpb24tPm1ham9yX3ZlcnNpb24gPSB2YWwgPj4gMTY7CisgICAg eGVuX3ZlcnNpb24tPm1pbm9yX3ZlcnNpb24gPSB2YWwgJiAoKDEgPDwgMTYpIC0gMSk7CiAKLSAg ICByYyA9IHhjX3ZlcnNpb24oeGNoLCBYRU5WRVJfZXh0cmF2ZXJzaW9uLAotICAgICAgICAgICAg ICAgICAgICAmeGVuX3ZlcnNpb24tPmV4dHJhX3ZlcnNpb24pOworICAgIHJjID0geGNfdmVyc2lv bih4Y2gsIFhFTl9WRVJTSU9OX09QX2V4dHJhdmVyc2lvbiwKKyAgICAgICAgICAgICAgICAgICAg eGVuX3ZlcnNpb24tPmV4dHJhX3ZlcnNpb24sCisgICAgICAgICAgICAgICAgICAgIHNpemVvZih4 ZW5fdmVyc2lvbi0+ZXh0cmFfdmVyc2lvbikpOwogICAgIGlmICggcmMgPCAwICkKICAgICAgICAg cmV0dXJuIHJjOwogCi0gICAgcmMgPSB4Y192ZXJzaW9uKHhjaCwgWEVOVkVSX2NvbXBpbGVfaW5m bywKLSAgICAgICAgICAgICAgICAgICAgJnhlbl92ZXJzaW9uLT5jb21waWxlX2luZm8pOworICAg IHJjID0geGNfdmVyc2lvbih4Y2gsIFhFTl9WRVJTSU9OX09QX2NhcGFiaWxpdGllcywKKyAgICAg ICAgICAgICAgICAgICAgeGVuX3ZlcnNpb24tPmNhcGFiaWxpdGllcywKKyAgICAgICAgICAgICAg ICAgICAgc2l6ZW9mKHhlbl92ZXJzaW9uLT5jYXBhYmlsaXRpZXMpKTsKICAgICBpZiAoIHJjIDwg MCApCiAgICAgICAgIHJldHVybiByYzsKIAotICAgIHJjID0geGNfdmVyc2lvbih4Y2gsCi0gICAg ICAgICAgICAgICAgICAgIFhFTlZFUl9jYXBhYmlsaXRpZXMsICZ4ZW5fdmVyc2lvbi0+Y2FwYWJp bGl0aWVzKTsKKyAgICByYyA9IHhjX3ZlcnNpb24oeGNoLCBYRU5fVkVSU0lPTl9PUF9jaGFuZ2Vz ZXQsIHhlbl92ZXJzaW9uLT5jaGFuZ2VzZXQsCisgICAgICAgICAgICAgICAgICAgIHNpemVvZih4 ZW5fdmVyc2lvbi0+Y2hhbmdlc2V0KSk7CiAgICAgaWYgKCByYyA8IDAgKQogICAgICAgICByZXR1 cm4gcmM7CiAKLSAgICByYyA9IHhjX3ZlcnNpb24oeGNoLCBYRU5WRVJfY2hhbmdlc2V0LCAmeGVu X3ZlcnNpb24tPmNoYW5nZXNldCk7CisgICAgcmMgPSB4Y192ZXJzaW9uKHhjaCwgWEVOX1ZFUlNJ T05fT1BfcGxhdGZvcm1fcGFyYW1ldGVycywKKyAgICAgICAgICAgICAgICAgICAgJnhlbl92ZXJz aW9uLT5wbGF0Zm9ybV9wYXJhbWV0ZXJzLAorICAgICAgICAgICAgICAgICAgICBzaXplb2YoeGVu X3ZlcnNpb24tPnBsYXRmb3JtX3BhcmFtZXRlcnMpKTsKICAgICBpZiAoIHJjIDwgMCApCiAgICAg ICAgIHJldHVybiByYzsKIAotICAgIHJjID0geGNfdmVyc2lvbih4Y2gsIFhFTlZFUl9wbGF0Zm9y bV9wYXJhbWV0ZXJzLAotICAgICAgICAgICAgICAgICAgICAmeGVuX3ZlcnNpb24tPnBsYXRmb3Jt X3BhcmFtZXRlcnMpOworICAgIHZhbCA9IDA7CisgICAgcmMgPSB4Y192ZXJzaW9uKHhjaCwgWEVO X1ZFUlNJT05fT1BfcGFnZXNpemUsICZ2YWwsIHNpemVvZih2YWwpKTsKICAgICBpZiAoIHJjIDwg MCApCiAgICAgICAgIHJldHVybiByYzsKLQotICAgIHJjID0geGNfdmVyc2lvbih4Y2gsIFhFTlZF Ul9wYWdlc2l6ZSwgTlVMTCk7Ci0gICAgaWYgKCByYyA8IDAgKQotICAgICAgICByZXR1cm4gcmM7 Ci0gICAgeGVuX3ZlcnNpb24tPnBhZ2VzaXplID0gcmM7CisgICAgeGVuX3ZlcnNpb24tPnBhZ2Vz aXplID0gdmFsOwogCiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94 Y19kb21fYm9vdC5jIGIvdG9vbHMvbGlieGMveGNfZG9tX2Jvb3QuYwppbmRleCA3OTEwNDFiLi4z ZjY1MDk1IDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19kb21fYm9vdC5jCisrKyBiL3Rvb2xz L2xpYnhjL3hjX2RvbV9ib290LmMKQEAgLTExMiwxMSArMTEyLDE5IEBAIGludCB4Y19kb21fY29t cGF0X2NoZWNrKHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSkKIAogaW50IHhjX2RvbV9ib290X3hl bl9pbml0KHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSwgeGNfaW50ZXJmYWNlICp4Y2gsIGRvbWlk X3QgZG9taWQpCiB7CisgICAgeGVuX3ZlcnNpb25fb3BfdmFsX3QgdmFsID0gMDsKKworICAgIGlm ICggeGNfdmVyc2lvbih4Y2gsIFhFTl9WRVJTSU9OX09QX3ZlcnNpb24sICZ2YWwsIHNpemVvZih2 YWwpKSA8IDAgKQorICAgIHsKKyAgICAgICAgeGNfZG9tX3BhbmljKHhjaCwgWENfSU5URVJOQUxf RVJST1IsICJjYW4ndCBnZXQgWGVuIHZlcnNpb24hIik7CisgICAgICAgIHJldHVybiAtMTsKKyAg ICB9CisgICAgZG9tLT54ZW5fdmVyc2lvbiA9IHZhbDsKICAgICBkb20tPnhjaCA9IHhjaDsKICAg ICBkb20tPmd1ZXN0X2RvbWlkID0gZG9taWQ7CiAKLSAgICBkb20tPnhlbl92ZXJzaW9uID0geGNf dmVyc2lvbih4Y2gsIFhFTlZFUl92ZXJzaW9uLCBOVUxMKTsKLSAgICBpZiAoIHhjX3ZlcnNpb24o eGNoLCBYRU5WRVJfY2FwYWJpbGl0aWVzLCAmZG9tLT54ZW5fY2FwcykgPCAwICkKKyAgICBpZiAo IHhjX3ZlcnNpb24oeGNoLCBYRU5fVkVSU0lPTl9PUF9jYXBhYmlsaXRpZXMsIGRvbS0+eGVuX2Nh cHMsCisgICAgICAgICAgICAgICAgICAgIHNpemVvZihkb20tPnhlbl9jYXBzKSkgPCAwICkKICAg ICB7CiAgICAgICAgIHhjX2RvbV9wYW5pYyh4Y2gsIFhDX0lOVEVSTkFMX0VSUk9SLCAiY2FuJ3Qg Z2V0IHhlbiBjYXBhYmlsaXRpZXMiKTsKICAgICAgICAgcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEv dG9vbHMvbGlieGMveGNfZG9tYWluLmMgYi90b29scy9saWJ4Yy94Y19kb21haW4uYwppbmRleCAw NTAyMTZlLi5jMjE0NzAwIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19kb21haW4uYworKysg Yi90b29scy9saWJ4Yy94Y19kb21haW4uYwpAQCAtMjA4NCw3ICsyMDg0LDggQEAgaW50IHhjX21h cF9kb21haW5fbWVtaW5mbyh4Y19pbnRlcmZhY2UgKnhjaCwgaW50IGRvbWlkLAogICAgIF9kaS5n dWVzdF93aWR0aCA9IG1pbmZvLT5ndWVzdF93aWR0aDsKIAogICAgIC8qIEdldCBwYWdlIHRhYmxl IGxldmVscyAoc2VlIGdldF9wbGF0Zm9ybV9pbmZvKCkgaW4geGdfc2F2ZV9yZXN0b3JlLmggKi8K LSAgICBpZiAoIHhjX3ZlcnNpb24oeGNoLCBYRU5WRVJfY2FwYWJpbGl0aWVzLCAmeGVuX2NhcHMp ICkKKyAgICBpZiAoIHhjX3ZlcnNpb24oeGNoLCBYRU5fVkVSU0lPTl9PUF9jYXBhYmlsaXRpZXMs IHhlbl9jYXBzLAorICAgICAgICAgICAgICAgICAgICBzaXplb2YoeGVuX2NhcHMpKSA8IDAgKQog ICAgIHsKICAgICAgICAgUEVSUk9SKCJDb3VsZCBub3QgZ2V0IFhlbiBjYXBhYmlsaXRpZXMgKGZv ciBwYWdlIHRhYmxlIGxldmVscykiKTsKICAgICAgICAgcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEv dG9vbHMvbGlieGMveGNfcHJpdmF0ZS5jIGIvdG9vbHMvbGlieGMveGNfcHJpdmF0ZS5jCmluZGV4 IGM0MWU0MzMuLjYzMWFkOTEgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX3ByaXZhdGUuYwor KysgYi90b29scy9saWJ4Yy94Y19wcml2YXRlLmMKQEAgLTQ1Nyw1OCArNDU3LDIzIEBAIGludCB4 Y19zeXNjdGwoeGNfaW50ZXJmYWNlICp4Y2gsIHN0cnVjdCB4ZW5fc3lzY3RsICpzeXNjdGwpCiAg ICAgcmV0dXJuIGRvX3N5c2N0bCh4Y2gsIHN5c2N0bCk7CiB9CiAKLWludCB4Y192ZXJzaW9uKHhj X2ludGVyZmFjZSAqeGNoLCBpbnQgY21kLCB2b2lkICphcmcpCitzc2l6ZV90IHhjX3ZlcnNpb25f bGVuKHhjX2ludGVyZmFjZSAqeGNoLCB1bnNpZ25lZCBpbnQgY21kKQogewotICAgIERFQ0xBUkVf SFlQRVJDQUxMX0JPVU5DRShhcmcsIDAsIFhDX0hZUEVSQ0FMTF9CVUZGRVJfQk9VTkNFX09VVCk7 IC8qIFNpemUgdW5rbm93biB1bnRpbCBjbWQgZGVjb2RlZCAqLwotICAgIHNpemVfdCBzejsKLSAg ICBpbnQgcmM7Ci0KLSAgICBzd2l0Y2ggKCBjbWQgKQotICAgIHsKLSAgICBjYXNlIFhFTlZFUl92 ZXJzaW9uOgotICAgICAgICBzeiA9IDA7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgWEVOVkVS X2V4dHJhdmVyc2lvbjoKLSAgICAgICAgc3ogPSBzaXplb2YoeGVuX2V4dHJhdmVyc2lvbl90KTsK LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBYRU5WRVJfY29tcGlsZV9pbmZvOgotICAgICAgICBz eiA9IHNpemVvZih4ZW5fY29tcGlsZV9pbmZvX3QpOwotICAgICAgICBicmVhazsKLSAgICBjYXNl IFhFTlZFUl9jYXBhYmlsaXRpZXM6Ci0gICAgICAgIHN6ID0gc2l6ZW9mKHhlbl9jYXBhYmlsaXRp ZXNfaW5mb190KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBYRU5WRVJfY2hhbmdlc2V0Ogot ICAgICAgICBzeiA9IHNpemVvZih4ZW5fY2hhbmdlc2V0X2luZm9fdCk7Ci0gICAgICAgIGJyZWFr OwotICAgIGNhc2UgWEVOVkVSX3BsYXRmb3JtX3BhcmFtZXRlcnM6Ci0gICAgICAgIHN6ID0gc2l6 ZW9mKHhlbl9wbGF0Zm9ybV9wYXJhbWV0ZXJzX3QpOwotICAgICAgICBicmVhazsKLSAgICBjYXNl IFhFTlZFUl9nZXRfZmVhdHVyZXM6Ci0gICAgICAgIHN6ID0gc2l6ZW9mKHhlbl9mZWF0dXJlX2lu Zm9fdCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgWEVOVkVSX3BhZ2VzaXplOgotICAgICAg ICBzeiA9IDA7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgWEVOVkVSX2d1ZXN0X2hhbmRsZToK LSAgICAgICAgc3ogPSBzaXplb2YoeGVuX2RvbWFpbl9oYW5kbGVfdCk7Ci0gICAgICAgIGJyZWFr OwotICAgIGNhc2UgWEVOVkVSX2NvbW1hbmRsaW5lOgotICAgICAgICBzeiA9IHNpemVvZih4ZW5f Y29tbWFuZGxpbmVfdCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEVS Uk9SKCJ4Y192ZXJzaW9uOiB1bmtub3duIGNvbW1hbmQgJWRcbiIsIGNtZCk7Ci0gICAgICAgIHJl dHVybiAtRUlOVkFMOwotICAgIH0KKyAgICByZXR1cm4gZG9fdmVyc2lvbl9vcCh4Y2gsIGNtZCwg TlVMTCwgMCk7Cit9CiAKLSAgICBIWVBFUkNBTExfQk9VTkNFX1NFVF9TSVpFKGFyZywgc3opOwor aW50IHhjX3ZlcnNpb24oeGNfaW50ZXJmYWNlICp4Y2gsIHVuc2lnbmVkIGludCBjbWQsIHZvaWQg KmFyZywgc2l6ZV90IHN6KQoreworICAgIERFQ0xBUkVfSFlQRVJDQUxMX0JPVU5DRShhcmcsIHN6 LCBYQ19IWVBFUkNBTExfQlVGRkVSX0JPVU5DRV9PVVQpOworICAgIGludCByYzsKIAotICAgIGlm ICggKHN6ICE9IDApICYmIHhjX2h5cGVyY2FsbF9ib3VuY2VfcHJlKHhjaCwgYXJnKSApCisgICAg aWYgKCB4Y19oeXBlcmNhbGxfYm91bmNlX3ByZSh4Y2gsIGFyZykgKQogICAgIHsKICAgICAgICAg UEVSUk9SKCJDb3VsZCBub3QgYm91bmNlIGJ1ZmZlciBmb3IgdmVyc2lvbiBoeXBlcmNhbGwiKTsK ICAgICAgICAgcmV0dXJuIC1FTk9NRU07CiAgICAgfQogCi0gICAgcmMgPSBkb194ZW5fdmVyc2lv bih4Y2gsIGNtZCwgSFlQRVJDQUxMX0JVRkZFUihhcmcpKTsKKyAgICByYyA9IGRvX3ZlcnNpb25f b3AoeGNoLCBjbWQsIEhZUEVSQ0FMTF9CVUZGRVIoYXJnKSwgc3opOwogCiAgICAgaWYgKCBzeiAh PSAwICkKICAgICAgICAgeGNfaHlwZXJjYWxsX2JvdW5jZV9wb3N0KHhjaCwgYXJnKTsKZGlmZiAt LWdpdCBhL3Rvb2xzL2xpYnhjL3hjX3ByaXZhdGUuaCBiL3Rvb2xzL2xpYnhjL3hjX3ByaXZhdGUu aAppbmRleCBhYThkYWYxLi41YmU4ZmRkIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19wcml2 YXRlLmgKKysrIGIvdG9vbHMvbGlieGMveGNfcHJpdmF0ZS5oCkBAIC0yMTQsMTEgKzIxNCwxMiBA QCB2b2lkIHhjX19oeXBlcmNhbGxfYnVmZmVyX2NhY2hlX3JlbGVhc2UoeGNfaW50ZXJmYWNlICp4 Y2gpOwogICogSHlwZXJjYWxsIGludGVyZmFjZXMuCiAgKi8KIAotc3RhdGljIGlubGluZSBpbnQg ZG9feGVuX3ZlcnNpb24oeGNfaW50ZXJmYWNlICp4Y2gsIGludCBjbWQsIHhjX2h5cGVyY2FsbF9i dWZmZXJfdCAqZGVzdCkKK3N0YXRpYyBpbmxpbmUgbG9uZyBkb192ZXJzaW9uX29wKHhjX2ludGVy ZmFjZSAqeGNoLCBpbnQgY21kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeGNf aHlwZXJjYWxsX2J1ZmZlcl90ICpkZXN0LCBzc2l6ZV90IGxlbikKIHsKICAgICBERUNMQVJFX0hZ UEVSQ0FMTF9CVUZGRVJfQVJHVU1FTlQoZGVzdCk7Ci0gICAgcmV0dXJuIHhlbmNhbGwyKHhjaC0+ eGNhbGwsIF9fSFlQRVJWSVNPUl94ZW5fdmVyc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgY21k LCBIWVBFUkNBTExfQlVGRkVSX0FTX0FSRyhkZXN0KSk7CisgICAgcmV0dXJuIHhlbmNhbGwzKHhj aC0+eGNhbGwsIF9fSFlQRVJWSVNPUl92ZXJzaW9uX29wLAorICAgICAgICAgICAgICAgICAgICBj bWQsIEhZUEVSQ0FMTF9CVUZGRVJfQVNfQVJHKGRlc3QpLCBsZW4pOwogfQogCiBzdGF0aWMgaW5s aW5lIGludCBkb19waHlzZGV2X29wKHhjX2ludGVyZmFjZSAqeGNoLCBpbnQgY21kLCB2b2lkICpv cCwgc2l6ZV90IGxlbikKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX3Jlc3VtZS5jIGIvdG9v bHMvbGlieGMveGNfcmVzdW1lLmMKaW5kZXggZTY5MmI4MS4uN2RmYzNkYSAxMDA2NDQKLS0tIGEv dG9vbHMvbGlieGMveGNfcmVzdW1lLmMKKysrIGIvdG9vbHMvbGlieGMveGNfcmVzdW1lLmMKQEAg LTU2LDcgKzU2LDggQEAgc3RhdGljIGludCBtb2RpZnlfcmV0dXJuY29kZSh4Y19pbnRlcmZhY2Ug KnhjaCwgdWludDMyX3QgZG9taWQpCiAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICAv KiBIVk0gZ3Vlc3RzIGhhdmUgaG9zdCBhZGRyZXNzIHdpZHRoLiAqLwotICAgICAgICBpZiAoIHhj X3ZlcnNpb24oeGNoLCBYRU5WRVJfY2FwYWJpbGl0aWVzLCAmY2FwcykgIT0gMCApCisgICAgICAg IGlmICggeGNfdmVyc2lvbih4Y2gsIFhFTl9WRVJTSU9OX09QX2NhcGFiaWxpdGllcywgY2FwcywK KyAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihjYXBzKSkgPCAwICkKICAgICAgICAgewog ICAgICAgICAgICAgUEVSUk9SKCJDb3VsZCBub3QgZ2V0IFhlbiBjYXBhYmlsaXRpZXMiKTsKICAg ICAgICAgICAgIHJldHVybiAtMTsKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX3NyX3NhdmUu YyBiL3Rvb2xzL2xpYnhjL3hjX3NyX3NhdmUuYwppbmRleCBlMjU4YjdjLi42ZGFhZmM0IDEwMDY0 NAotLS0gYS90b29scy9saWJ4Yy94Y19zcl9zYXZlLmMKKysrIGIvdG9vbHMvbGlieGMveGNfc3Jf c2F2ZS5jCkBAIC05LDcgKzksNyBAQAogc3RhdGljIGludCB3cml0ZV9oZWFkZXJzKHN0cnVjdCB4 Y19zcl9jb250ZXh0ICpjdHgsIHVpbnQxNl90IGd1ZXN0X3R5cGUpCiB7CiAgICAgeGNfaW50ZXJm YWNlICp4Y2ggPSBjdHgtPnhjaDsKLSAgICBpbnQzMl90IHhlbl92ZXJzaW9uID0geGNfdmVyc2lv bih4Y2gsIFhFTlZFUl92ZXJzaW9uLCBOVUxMKTsKKyAgICB4ZW5fdmVyc2lvbl9vcF92YWxfdCB4 ZW5fdmVyc2lvbjsKICAgICBzdHJ1Y3QgeGNfc3JfaWhkciBpaGRyID0KICAgICAgICAgewogICAg ICAgICAgICAgLm1hcmtlciAgPSBJSERSX01BUktFUiwKQEAgLTIxLDE1ICsyMSwxNiBAQCBzdGF0 aWMgaW50IHdyaXRlX2hlYWRlcnMoc3RydWN0IHhjX3NyX2NvbnRleHQgKmN0eCwgdWludDE2X3Qg Z3Vlc3RfdHlwZSkKICAgICAgICAgewogICAgICAgICAgICAgLnR5cGUgICAgICAgPSBndWVzdF90 eXBlLAogICAgICAgICAgICAgLnBhZ2Vfc2hpZnQgPSBYQ19QQUdFX1NISUZULAotICAgICAgICAg ICAgLnhlbl9tYWpvciAgPSAoeGVuX3ZlcnNpb24gPj4gMTYpICYgMHhmZmZmLAotICAgICAgICAg ICAgLnhlbl9taW5vciAgPSAoeGVuX3ZlcnNpb24pICAgICAgICYgMHhmZmZmLAogICAgICAgICB9 OwogCi0gICAgaWYgKCB4ZW5fdmVyc2lvbiA8IDAgKQorICAgIGlmICggeGNfdmVyc2lvbih4Y2gs IFhFTl9WRVJTSU9OX09QX3ZlcnNpb24sICZ4ZW5fdmVyc2lvbiwKKyAgICAgICAgICAgICAgICAg ICAgc2l6ZW9mKHhlbl92ZXJzaW9uKSkgPCAwICkKICAgICB7CiAgICAgICAgIFBFUlJPUigiVW5h YmxlIHRvIG9idGFpbiBYZW4gVmVyc2lvbiIpOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQor ICAgIGRoZHIueGVuX21ham9yID0gKHhlbl92ZXJzaW9uID4+IDE2KSAmIDB4ZmZmZjsKKyAgICBk aGRyLnhlbl9taW5vciA9ICh4ZW5fdmVyc2lvbikgICAgICAgJiAweGZmZmY7CiAKICAgICBpZiAo IHdyaXRlX2V4YWN0KGN0eC0+ZmQsICZpaGRyLCBzaXplb2YoaWhkcikpICkKICAgICB7CmRpZmYg LS1naXQgYS90b29scy9saWJ4Yy94Z19zYXZlX3Jlc3RvcmUuaCBiL3Rvb2xzL2xpYnhjL3hnX3Nh dmVfcmVzdG9yZS5oCmluZGV4IDMwMzA4MWQuLjI2NjM5NjkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xp YnhjL3hnX3NhdmVfcmVzdG9yZS5oCisrKyBiL3Rvb2xzL2xpYnhjL3hnX3NhdmVfcmVzdG9yZS5o CkBAIC01NywxMCArNTcsMTIgQEAgc3RhdGljIGlubGluZSBpbnQgZ2V0X3BsYXRmb3JtX2luZm8o eGNfaW50ZXJmYWNlICp4Y2gsIHVpbnQzMl90IGRvbSwKICAgICB4ZW5fY2FwYWJpbGl0aWVzX2lu Zm9fdCB4ZW5fY2FwcyA9ICIiOwogICAgIHhlbl9wbGF0Zm9ybV9wYXJhbWV0ZXJzX3QgeGVuX3Bh cmFtczsKIAotICAgIGlmICh4Y192ZXJzaW9uKHhjaCwgWEVOVkVSX3BsYXRmb3JtX3BhcmFtZXRl cnMsICZ4ZW5fcGFyYW1zKSAhPSAwKQorICAgIGlmICh4Y192ZXJzaW9uKHhjaCwgWEVOX1ZFUlNJ T05fT1BfcGxhdGZvcm1fcGFyYW1ldGVycywgJnhlbl9wYXJhbXMsCisgICAgICAgICAgICAgICAg ICAgc2l6ZW9mKHhlbl9wYXJhbXMpKSA8IDApCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaWYg KHhjX3ZlcnNpb24oeGNoLCBYRU5WRVJfY2FwYWJpbGl0aWVzLCAmeGVuX2NhcHMpICE9IDApCisg ICAgaWYgKHhjX3ZlcnNpb24oeGNoLCBYRU5fVkVSU0lPTl9PUF9jYXBhYmlsaXRpZXMsIHhlbl9j YXBzLAorICAgICAgICAgICAgICAgICAgIHNpemVvZih4ZW5fY2FwcykpIDwgMCkKICAgICAgICAg cmV0dXJuIDA7CiAKICAgICBpZiAoeGNfbWF4aW11bV9yYW1fcGFnZSh4Y2gsIG1heF9tZm4pKQpk aWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGwuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsLmMKaW5k ZXggOTNlMjI4ZC4uZTZiMTkxZCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGwuYworKysg Yi90b29scy9saWJ4bC9saWJ4bC5jCkBAIC01MTkxLDUwICs1MTkxLDczIEBAIGxpYnhsX251bWFp bmZvICpsaWJ4bF9nZXRfbnVtYWluZm8obGlieGxfY3R4ICpjdHgsIGludCAqbnIpCiAgICAgcmV0 dXJuIHJldDsKIH0KIAorCitzdGF0aWMgaW50IGxpYnhsX194Y192ZXJzaW9uX3dyYXBwZXIobGli eGxfX2djICpnYywgdW5zaWduZWQgaW50IGNtZCwgY2hhciAqYnVmLCBzc2l6ZV90IGxlbiwgY2hh ciAqKmRzdCkKK3sKKyAgICBpbnQgcjsKKworICAgIHIgPSB4Y192ZXJzaW9uKENUWC0+eGNoLCBj bWQsIGJ1ZiwgbGVuKTsKKyAgICBpZiAoIHIgPT0gLUVQRVJNICkKKyAgICB7CisgICAgICAgIGJ1 ZlswXSA9ICdcMCc7CisgICAgfQorICAgIGVsc2UgaWYgKCByIDwgMCApCisgICAgeworICAgICAg ICByZXR1cm4gcjsKKyAgICB9CisgICAgKmRzdCA9IGxpYnhsX19zdHJkdXAoTk9HQywgYnVmKTsK KyAgICByZXR1cm4gMDsKK30KKwogY29uc3QgbGlieGxfdmVyc2lvbl9pbmZvKiBsaWJ4bF9nZXRf dmVyc2lvbl9pbmZvKGxpYnhsX2N0eCAqY3R4KQogewogICAgIEdDX0lOSVQoY3R4KTsKLSAgICB1 bmlvbiB7Ci0gICAgICAgIHhlbl9leHRyYXZlcnNpb25fdCB4ZW5fZXh0cmE7Ci0gICAgICAgIHhl bl9jb21waWxlX2luZm9fdCB4ZW5fY2M7Ci0gICAgICAgIHhlbl9jaGFuZ2VzZXRfaW5mb190IHhl bl9jaGdzZXQ7Ci0gICAgICAgIHhlbl9jYXBhYmlsaXRpZXNfaW5mb190IHhlbl9jYXBzOwotICAg ICAgICB4ZW5fcGxhdGZvcm1fcGFyYW1ldGVyc190IHBfcGFybXM7Ci0gICAgICAgIHhlbl9jb21t YW5kbGluZV90IHhlbl9jb21tYW5kbGluZTsKLSAgICB9IHU7Ci0gICAgbG9uZyB4ZW5fdmVyc2lv bjsKKyAgICBjaGFyICpidWY7CisgICAgeGVuX3ZlcnNpb25fb3BfdmFsX3QgdmFsID0gMDsKICAg ICBsaWJ4bF92ZXJzaW9uX2luZm8gKmluZm8gPSAmY3R4LT52ZXJzaW9uX2luZm87CiAKICAgICBp ZiAoaW5mby0+eGVuX3ZlcnNpb25fZXh0cmEgIT0gTlVMTCkKICAgICAgICAgZ290byBvdXQ7CiAK LSAgICB4ZW5fdmVyc2lvbiA9IHhjX3ZlcnNpb24oY3R4LT54Y2gsIFhFTlZFUl92ZXJzaW9uLCBO VUxMKTsKLSAgICBpbmZvLT54ZW5fdmVyc2lvbl9tYWpvciA9IHhlbl92ZXJzaW9uID4+IDE2Owot ICAgIGluZm8tPnhlbl92ZXJzaW9uX21pbm9yID0geGVuX3ZlcnNpb24gJiAweEZGOworICAgIGlm ICh4Y192ZXJzaW9uKENUWC0+eGNoLCBYRU5fVkVSU0lPTl9PUF9wYWdlc2l6ZSwgJnZhbCwgc2l6 ZW9mKHZhbCkpIDwgMCkKKyAgICAgICAgZ290byBvdXQ7CisKKyAgICBpbmZvLT5wYWdlc2l6ZSA9 IHZhbDsKKyAgICAvKiA0SyBidWZmZXIuICovCisgICAgYnVmID0gbGlieGxfX3phbGxvYyhnYywg aW5mby0+cGFnZXNpemUpOwogCi0gICAgeGNfdmVyc2lvbihjdHgtPnhjaCwgWEVOVkVSX2V4dHJh dmVyc2lvbiwgJnUueGVuX2V4dHJhKTsKLSAgICBpbmZvLT54ZW5fdmVyc2lvbl9leHRyYSA9IGxp YnhsX19zdHJkdXAoTk9HQywgdS54ZW5fZXh0cmEpOworICAgIHZhbCA9IDA7CisgICAgaWYgKHhj X3ZlcnNpb24oQ1RYLT54Y2gsIFhFTl9WRVJTSU9OX09QX3ZlcnNpb24sICZ2YWwsIHNpemVvZih2 YWwpKSA8IDApCisgICAgICAgIGdvdG8gb3V0OworICAgIGluZm8tPnhlbl92ZXJzaW9uX21ham9y ID0gdmFsID4+IDE2OworICAgIGluZm8tPnhlbl92ZXJzaW9uX21pbm9yID0gdmFsICYgMHhGRjsK IAotICAgIHhjX3ZlcnNpb24oY3R4LT54Y2gsIFhFTlZFUl9jb21waWxlX2luZm8sICZ1Lnhlbl9j Yyk7Ci0gICAgaW5mby0+Y29tcGlsZXIgPSBsaWJ4bF9fc3RyZHVwKE5PR0MsIHUueGVuX2NjLmNv bXBpbGVyKTsKLSAgICBpbmZvLT5jb21waWxlX2J5ID0gbGlieGxfX3N0cmR1cChOT0dDLCB1Lnhl bl9jYy5jb21waWxlX2J5KTsKLSAgICBpbmZvLT5jb21waWxlX2RvbWFpbiA9IGxpYnhsX19zdHJk dXAoTk9HQywgdS54ZW5fY2MuY29tcGlsZV9kb21haW4pOwotICAgIGluZm8tPmNvbXBpbGVfZGF0 ZSA9IGxpYnhsX19zdHJkdXAoTk9HQywgdS54ZW5fY2MuY29tcGlsZV9kYXRlKTsKKyAgICBpZiAo bGlieGxfX3hjX3ZlcnNpb25fd3JhcHBlcihnYywgWEVOX1ZFUlNJT05fT1BfZXh0cmF2ZXJzaW9u LCBidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+cGFnZXNpemUs ICZpbmZvLT54ZW5fdmVyc2lvbl9leHRyYSkgPCAwKQorICAgICAgICBnb3RvIG91dDsKIAotICAg IHhjX3ZlcnNpb24oY3R4LT54Y2gsIFhFTlZFUl9jYXBhYmlsaXRpZXMsICZ1Lnhlbl9jYXBzKTsK LSAgICBpbmZvLT5jYXBhYmlsaXRpZXMgPSBsaWJ4bF9fc3RyZHVwKE5PR0MsIHUueGVuX2NhcHMp OworICAgIGluZm8tPmNvbXBpbGVyID0gbGlieGxfX3N0cmR1cChOT0dDLCAiIik7CisgICAgaW5m by0+Y29tcGlsZV9ieSA9IGxpYnhsX19zdHJkdXAoTk9HQywgIiIpOworICAgIGluZm8tPmNvbXBp bGVfZG9tYWluID0gbGlieGxfX3N0cmR1cChOT0dDLCAiIik7CisgICAgaW5mby0+Y29tcGlsZV9k YXRlID0gbGlieGxfX3N0cmR1cChOT0dDLCAiIik7CiAKLSAgICB4Y192ZXJzaW9uKGN0eC0+eGNo LCBYRU5WRVJfY2hhbmdlc2V0LCAmdS54ZW5fY2hnc2V0KTsKLSAgICBpbmZvLT5jaGFuZ2VzZXQg PSBsaWJ4bF9fc3RyZHVwKE5PR0MsIHUueGVuX2NoZ3NldCk7CisgICAgaWYgKGxpYnhsX194Y192 ZXJzaW9uX3dyYXBwZXIoZ2MsIFhFTl9WRVJTSU9OX09QX2NhcGFiaWxpdGllcywgYnVmLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8tPnBhZ2VzaXplLCAmaW5mby0+Y2Fw YWJpbGl0aWVzKSA8IDApCisgICAgICAgIGdvdG8gb3V0OwogCi0gICAgeGNfdmVyc2lvbihjdHgt PnhjaCwgWEVOVkVSX3BsYXRmb3JtX3BhcmFtZXRlcnMsICZ1LnBfcGFybXMpOwotICAgIGluZm8t PnZpcnRfc3RhcnQgPSB1LnBfcGFybXMudmlydF9zdGFydDsKKyAgICBpZiAobGlieGxfX3hjX3Zl cnNpb25fd3JhcHBlcihnYywgWEVOX1ZFUlNJT05fT1BfY2hhbmdlc2V0LCBidWYsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+cGFnZXNpemUsICZpbmZvLT5jaGFuZ2Vz ZXQpIDwgMCkKKyAgICAgICAgZ290byBvdXQ7CiAKLSAgICBpbmZvLT5wYWdlc2l6ZSA9IHhjX3Zl cnNpb24oY3R4LT54Y2gsIFhFTlZFUl9wYWdlc2l6ZSwgTlVMTCk7CisgICAgdmFsID0gMDsKKyAg ICBpZiAoeGNfdmVyc2lvbihDVFgtPnhjaCwgWEVOX1ZFUlNJT05fT1BfcGxhdGZvcm1fcGFyYW1l dGVycywgJnZhbCwKKyAgICAgICAgICAgICAgICAgICBzaXplb2YodmFsKSkgPCAwKQorICAgICAg ICBnb3RvIG91dDsKIAotICAgIHhjX3ZlcnNpb24oY3R4LT54Y2gsIFhFTlZFUl9jb21tYW5kbGlu ZSwgJnUueGVuX2NvbW1hbmRsaW5lKTsKLSAgICBpbmZvLT5jb21tYW5kbGluZSA9IGxpYnhsX19z dHJkdXAoTk9HQywgdS54ZW5fY29tbWFuZGxpbmUpOworICAgIGluZm8tPnZpcnRfc3RhcnQgPSB2 YWw7CiAKKyAgICAodm9pZClsaWJ4bF9feGNfdmVyc2lvbl93cmFwcGVyKGdjLCBYRU5fVkVSU0lP Tl9PUF9jb21tYW5kbGluZSwgYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW5mby0+cGFnZXNpemUsICZpbmZvLT5jb21tYW5kbGluZSk7CiAgb3V0OgogICAgIEdDX0ZS RUU7CiAgICAgcmV0dXJuIGluZm87CmRpZmYgLS1naXQgYS90b29scy9vY2FtbC9saWJzL3hjL3hl bmN0cmxfc3R1YnMuYyBiL3Rvb2xzL29jYW1sL2xpYnMveGMveGVuY3RybF9zdHVicy5jCmluZGV4 IDc0OTI4ZTkuLjQ0ZGNjYzkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL29jYW1sL2xpYnMveGMveGVuY3Ry bF9zdHVicy5jCisrKyBiL3Rvb2xzL29jYW1sL2xpYnMveGMveGVuY3RybF9zdHVicy5jCkBAIC04 NTMsMjEgKzg1MywyMSBAQCBDQU1McHJpbSB2YWx1ZSBzdHViX3hjX3ZlcnNpb25fdmVyc2lvbih2 YWx1ZSB4Y2gpCiAJQ0FNTHBhcmFtMSh4Y2gpOwogCUNBTUxsb2NhbDEocmVzdWx0KTsKIAl4ZW5f ZXh0cmF2ZXJzaW9uX3QgZXh0cmE7Ci0JbG9uZyBwYWNrZWQ7CisJeGVuX3ZlcnNpb25fb3BfdmFs X3QgcGFja2VkOwogCWludCByZXR2YWw7CiAKIAljYW1sX2VudGVyX2Jsb2NraW5nX3NlY3Rpb24o KTsKLQlwYWNrZWQgPSB4Y192ZXJzaW9uKF9IKHhjaCksIFhFTlZFUl92ZXJzaW9uLCBOVUxMKTsK KwlyZXR2YWwgPSB4Y192ZXJzaW9uKF9IKHhjaCksIFhFTl9WRVJTSU9OX09QX3ZlcnNpb24sICZw YWNrZWQsIHNpemVvZihwYWNrZWQpKTsKIAljYW1sX2xlYXZlX2Jsb2NraW5nX3NlY3Rpb24oKTsK IAotCWlmIChwYWNrZWQgPCAwKQorCWlmIChyZXR2YWwgPCAwKQogCQlmYWlsd2l0aF94YyhfSCh4 Y2gpKTsKIAogCWNhbWxfZW50ZXJfYmxvY2tpbmdfc2VjdGlvbigpOwotCXJldHZhbCA9IHhjX3Zl cnNpb24oX0goeGNoKSwgWEVOVkVSX2V4dHJhdmVyc2lvbiwgJmV4dHJhKTsKKwlyZXR2YWwgPSB4 Y192ZXJzaW9uKF9IKHhjaCksIFhFTl9WRVJTSU9OX09QX2V4dHJhdmVyc2lvbiwgJmV4dHJhLCBz aXplb2YoZXh0cmEpKTsKIAljYW1sX2xlYXZlX2Jsb2NraW5nX3NlY3Rpb24oKTsKIAotCWlmIChy ZXR2YWwpCisJaWYgKHJldHZhbCA8IDApCiAJCWZhaWx3aXRoX3hjKF9IKHhjaCkpOwogCiAJcmVz dWx0ID0gY2FtbF9hbGxvY190dXBsZSgzKTsKQEAgLTg4NCwzNyArODg0LDI4IEBAIENBTUxwcmlt IHZhbHVlIHN0dWJfeGNfdmVyc2lvbl9jb21waWxlX2luZm8odmFsdWUgeGNoKQogewogCUNBTUxw YXJhbTEoeGNoKTsKIAlDQU1MbG9jYWwxKHJlc3VsdCk7Ci0JeGVuX2NvbXBpbGVfaW5mb190IGNp OwotCWludCByZXR2YWw7Ci0KLQljYW1sX2VudGVyX2Jsb2NraW5nX3NlY3Rpb24oKTsKLQlyZXR2 YWwgPSB4Y192ZXJzaW9uKF9IKHhjaCksIFhFTlZFUl9jb21waWxlX2luZm8sICZjaSk7Ci0JY2Ft bF9sZWF2ZV9ibG9ja2luZ19zZWN0aW9uKCk7Ci0KLQlpZiAocmV0dmFsKQotCQlmYWlsd2l0aF94 YyhfSCh4Y2gpKTsKIAogCXJlc3VsdCA9IGNhbWxfYWxsb2NfdHVwbGUoNCk7CiAKLQlTdG9yZV9m aWVsZChyZXN1bHQsIDAsIGNhbWxfY29weV9zdHJpbmcoY2kuY29tcGlsZXIpKTsKLQlTdG9yZV9m aWVsZChyZXN1bHQsIDEsIGNhbWxfY29weV9zdHJpbmcoY2kuY29tcGlsZV9ieSkpOwotCVN0b3Jl X2ZpZWxkKHJlc3VsdCwgMiwgY2FtbF9jb3B5X3N0cmluZyhjaS5jb21waWxlX2RvbWFpbikpOwot CVN0b3JlX2ZpZWxkKHJlc3VsdCwgMywgY2FtbF9jb3B5X3N0cmluZyhjaS5jb21waWxlX2RhdGUp KTsKKwlTdG9yZV9maWVsZChyZXN1bHQsIDAsIGNhbWxfY29weV9zdHJpbmcoIiIpKTsKKwlTdG9y ZV9maWVsZChyZXN1bHQsIDEsIGNhbWxfY29weV9zdHJpbmcoIiIpKTsKKwlTdG9yZV9maWVsZChy ZXN1bHQsIDIsIGNhbWxfY29weV9zdHJpbmcoIiIpKTsKKwlTdG9yZV9maWVsZChyZXN1bHQsIDMs IGNhbWxfY29weV9zdHJpbmcoIiIpKTsKIAogCUNBTUxyZXR1cm4ocmVzdWx0KTsKIH0KIAogCi1z dGF0aWMgdmFsdWUgeGNfdmVyc2lvbl9zaW5nbGVfc3RyaW5nKHZhbHVlIHhjaCwgaW50IGNvZGUs IHZvaWQgKmluZm8pCitzdGF0aWMgdmFsdWUgeGNfdmVyc2lvbl9zaW5nbGVfc3RyaW5nKHZhbHVl IHhjaCwgaW50IGNvZGUsIHZvaWQgKmluZm8sIHNzaXplX3QgbGVuKQogewogCUNBTUxwYXJhbTEo eGNoKTsKIAlpbnQgcmV0dmFsOwogCiAJY2FtbF9lbnRlcl9ibG9ja2luZ19zZWN0aW9uKCk7Ci0J cmV0dmFsID0geGNfdmVyc2lvbihfSCh4Y2gpLCBjb2RlLCBpbmZvKTsKKwlyZXR2YWwgPSB4Y192 ZXJzaW9uKF9IKHhjaCksIGNvZGUsIGluZm8sIGxlbik7CiAJY2FtbF9sZWF2ZV9ibG9ja2luZ19z ZWN0aW9uKCk7CiAKLQlpZiAocmV0dmFsKQorCWlmIChyZXR2YWwgPCAwKQogCQlmYWlsd2l0aF94 YyhfSCh4Y2gpKTsKIAogCUNBTUxyZXR1cm4oY2FtbF9jb3B5X3N0cmluZygoY2hhciAqKWluZm8p KTsKQEAgLTkyNSw3ICs5MTYsOCBAQCBDQU1McHJpbSB2YWx1ZSBzdHViX3hjX3ZlcnNpb25fY2hh bmdlc2V0KHZhbHVlIHhjaCkKIHsKIAl4ZW5fY2hhbmdlc2V0X2luZm9fdCBjaTsKIAotCXJldHVy biB4Y192ZXJzaW9uX3NpbmdsZV9zdHJpbmcoeGNoLCBYRU5WRVJfY2hhbmdlc2V0LCAmY2kpOwor CXJldHVybiB4Y192ZXJzaW9uX3NpbmdsZV9zdHJpbmcoeGNoLCBYRU5fVkVSU0lPTl9PUF9jaGFu Z2VzZXQsCisJCQkJCSZjaSwgc2l6ZW9mKGNpKSk7CiB9CiAKIApAQCAtOTMzLDcgKzkyNSw4IEBA IENBTUxwcmltIHZhbHVlIHN0dWJfeGNfdmVyc2lvbl9jYXBhYmlsaXRpZXModmFsdWUgeGNoKQog ewogCXhlbl9jYXBhYmlsaXRpZXNfaW5mb190IGNpOwogCi0JcmV0dXJuIHhjX3ZlcnNpb25fc2lu Z2xlX3N0cmluZyh4Y2gsIFhFTlZFUl9jYXBhYmlsaXRpZXMsICZjaSk7CisJcmV0dXJuIHhjX3Zl cnNpb25fc2luZ2xlX3N0cmluZyh4Y2gsIFhFTl9WRVJTSU9OX09QX2NhcGFiaWxpdGllcywKKwkJ CQkJJmNpLCBzaXplb2YoY2kpKTsKIH0KIAogCmRpZmYgLS1naXQgYS90b29scy9weXRob24veGVu L2xvd2xldmVsL3hjL3hjLmMgYi90b29scy9weXRob24veGVuL2xvd2xldmVsL3hjL3hjLmMKaW5k ZXggYzQwYTRlOS4uZDIwMjljNyAxMDA2NDQKLS0tIGEvdG9vbHMvcHl0aG9uL3hlbi9sb3dsZXZl bC94Yy94Yy5jCisrKyBiL3Rvb2xzL3B5dGhvbi94ZW4vbG93bGV2ZWwveGMveGMuYwpAQCAtMTIw NCwzNCArMTIwNCw0MCBAQCBzdGF0aWMgUHlPYmplY3QgKnB5eGNfeGVuaW5mbyhYY09iamVjdCAq c2VsZikKICAgICB4ZW5fY2FwYWJpbGl0aWVzX2luZm9fdCB4ZW5fY2FwczsKICAgICB4ZW5fcGxh dGZvcm1fcGFyYW1ldGVyc190IHBfcGFybXM7CiAgICAgeGVuX2NvbW1hbmRsaW5lX3QgeGVuX2Nv bW1hbmRsaW5lOwotICAgIGxvbmcgeGVuX3ZlcnNpb247Ci0gICAgbG9uZyB4ZW5fcGFnZXNpemU7 CisgICAgeGVuX3ZlcnNpb25fb3BfdmFsX3QgeGVuX3ZlcnNpb247CisgICAgeGVuX3ZlcnNpb25f b3BfdmFsX3QgeGVuX3BhZ2VzaXplOwogICAgIGNoYXIgc3RyWzEyOF07CiAKLSAgICB4ZW5fdmVy c2lvbiA9IHhjX3ZlcnNpb24oc2VsZi0+eGNfaGFuZGxlLCBYRU5WRVJfdmVyc2lvbiwgTlVMTCk7 Ci0KLSAgICBpZiAoIHhjX3ZlcnNpb24oc2VsZi0+eGNfaGFuZGxlLCBYRU5WRVJfZXh0cmF2ZXJz aW9uLCAmeGVuX2V4dHJhKSAhPSAwICkKKyAgICBpZiAoIHhjX3ZlcnNpb24oc2VsZi0+eGNfaGFu ZGxlLCBYRU5fVkVSU0lPTl9PUF92ZXJzaW9uLCAmeGVuX3ZlcnNpb24sCisgICAgICAgICAgICAg ICAgICAgIHNpemVvZih4ZW5fdmVyc2lvbikpIDwgMCApCiAgICAgICAgIHJldHVybiBweXhjX2Vy cm9yX3RvX2V4Y2VwdGlvbihzZWxmLT54Y19oYW5kbGUpOwogCi0gICAgaWYgKCB4Y192ZXJzaW9u KHNlbGYtPnhjX2hhbmRsZSwgWEVOVkVSX2NvbXBpbGVfaW5mbywgJnhlbl9jYykgIT0gMCApCisg ICAgaWYgKCB4Y192ZXJzaW9uKHNlbGYtPnhjX2hhbmRsZSwgWEVOX1ZFUlNJT05fT1BfZXh0cmF2 ZXJzaW9uLCAmeGVuX2V4dHJhLAorICAgICAgICAgICAgICAgICAgICBzaXplb2YoeGVuX2V4dHJh KSkgPCAwICkKICAgICAgICAgcmV0dXJuIHB5eGNfZXJyb3JfdG9fZXhjZXB0aW9uKHNlbGYtPnhj X2hhbmRsZSk7CiAKLSAgICBpZiAoIHhjX3ZlcnNpb24oc2VsZi0+eGNfaGFuZGxlLCBYRU5WRVJf Y2hhbmdlc2V0LCAmeGVuX2NoZ3NldCkgIT0gMCApCisgICAgbWVtc2V0KCZ4ZW5fY2MsIDAsIHNp emVvZih4ZW5fY2MpKTsKKworICAgIGlmICggeGNfdmVyc2lvbihzZWxmLT54Y19oYW5kbGUsIFhF Tl9WRVJTSU9OX09QX2NoYW5nZXNldCwgJnhlbl9jaGdzZXQsCisgICAgICAgICAgICAgICAgICAg IHNpemVvZih4ZW5fY2hnc2V0KSkgPCAwICkKICAgICAgICAgcmV0dXJuIHB5eGNfZXJyb3JfdG9f ZXhjZXB0aW9uKHNlbGYtPnhjX2hhbmRsZSk7CiAKLSAgICBpZiAoIHhjX3ZlcnNpb24oc2VsZi0+ eGNfaGFuZGxlLCBYRU5WRVJfY2FwYWJpbGl0aWVzLCAmeGVuX2NhcHMpICE9IDAgKQorICAgIGlm ICggeGNfdmVyc2lvbihzZWxmLT54Y19oYW5kbGUsIFhFTl9WRVJTSU9OX09QX2NhcGFiaWxpdGll cywgJnhlbl9jYXBzLAorICAgICAgICAgICAgICAgICAgICBzaXplb2YoeGVuX2NhcHMpKSA8IDAg KQogICAgICAgICByZXR1cm4gcHl4Y19lcnJvcl90b19leGNlcHRpb24oc2VsZi0+eGNfaGFuZGxl KTsKIAotICAgIGlmICggeGNfdmVyc2lvbihzZWxmLT54Y19oYW5kbGUsIFhFTlZFUl9wbGF0Zm9y bV9wYXJhbWV0ZXJzLCAmcF9wYXJtcykgIT0gMCApCisgICAgaWYgKCB4Y192ZXJzaW9uKHNlbGYt PnhjX2hhbmRsZSwgWEVOX1ZFUlNJT05fT1BfcGxhdGZvcm1fcGFyYW1ldGVycywKKyAgICAgICAg ICAgICAgICAgICAgJnBfcGFybXMsIHNpemVvZihwX3Bhcm1zKSkgPCAwICkKICAgICAgICAgcmV0 dXJuIHB5eGNfZXJyb3JfdG9fZXhjZXB0aW9uKHNlbGYtPnhjX2hhbmRsZSk7CiAKLSAgICBpZiAo IHhjX3ZlcnNpb24oc2VsZi0+eGNfaGFuZGxlLCBYRU5WRVJfY29tbWFuZGxpbmUsICZ4ZW5fY29t bWFuZGxpbmUpICE9IDAgKQorICAgIGlmICggeGNfdmVyc2lvbihzZWxmLT54Y19oYW5kbGUsIFhF Tl9WRVJTSU9OX09QX2NvbW1hbmRsaW5lLAorICAgICAgICAgICAgICAgICAgICAmeGVuX2NvbW1h bmRsaW5lLCBzaXplb2YoeGVuX2NvbW1hbmRsaW5lKSkgPCAwICkKICAgICAgICAgcmV0dXJuIHB5 eGNfZXJyb3JfdG9fZXhjZXB0aW9uKHNlbGYtPnhjX2hhbmRsZSk7CiAKICAgICBzbnByaW50Zihz dHIsIHNpemVvZihzdHIpLCAidmlydF9zdGFydD0weCUiUFJJX3hlbl91bG9uZywgcF9wYXJtcy52 aXJ0X3N0YXJ0KTsKIAotICAgIHhlbl9wYWdlc2l6ZSA9IHhjX3ZlcnNpb24oc2VsZi0+eGNfaGFu ZGxlLCBYRU5WRVJfcGFnZXNpemUsIE5VTEwpOwotICAgIGlmICh4ZW5fcGFnZXNpemUgPCAwICkK KyAgICBpZiAoIHhjX3ZlcnNpb24oc2VsZi0+eGNfaGFuZGxlLCBYRU5fVkVSU0lPTl9PUF9wYWdl c2l6ZSwgJnhlbl9wYWdlc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHhlbl9wYWdl c2l6ZSkpIDwgMCApCiAgICAgICAgIHJldHVybiBweXhjX2Vycm9yX3RvX2V4Y2VwdGlvbihzZWxm LT54Y19oYW5kbGUpOwogCiAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIntzOmksczppLHM6cyxz OnMsczppLHM6cyxzOnMsczpzLHM6cyxzOnMsczpzLHM6c30iLApkaWZmIC0tZ2l0IGEvdG9vbHMv eGVuc3RhdC9saWJ4ZW5zdGF0L3NyYy94ZW5zdGF0LmMgYi90b29scy94ZW5zdGF0L2xpYnhlbnN0 YXQvc3JjL3hlbnN0YXQuYwppbmRleCAzNDk1ZjNmLi5hNTdkNWUxIDEwMDY0NAotLS0gYS90b29s cy94ZW5zdGF0L2xpYnhlbnN0YXQvc3JjL3hlbnN0YXQuYworKysgYi90b29scy94ZW5zdGF0L2xp YnhlbnN0YXQvc3JjL3hlbnN0YXQuYwpAQCAtNjIxLDIwICs2MjEsMTggQEAgdW5zaWduZWQgbG9u ZyBsb25nIHhlbnN0YXRfbmV0d29ya190ZHJvcCh4ZW5zdGF0X25ldHdvcmsgKiBuZXR3b3JrKQog LyogQ29sbGVjdCBYZW4gdmVyc2lvbiBpbmZvcm1hdGlvbiAqLwogc3RhdGljIGludCB4ZW5zdGF0 X2NvbGxlY3RfeGVuX3ZlcnNpb24oeGVuc3RhdF9ub2RlICogbm9kZSkKIHsKLQlsb25nIHZudW0g PSAwOworCXhlbl92ZXJzaW9uX29wX3ZhbF90IHZudW0gPSAwOwogCXhlbl9leHRyYXZlcnNpb25f dCB2ZXJzaW9uOwogCiAJLyogQ29sbGVjdCBYZW4gdmVyc2lvbiBpbmZvcm1hdGlvbiBpZiBub3Qg YWxyZWFkeSBjb2xsZWN0ZWQgKi8KIAlpZiAobm9kZS0+aGFuZGxlLT54ZW5fdmVyc2lvblswXSA9 PSAnXDAnKSB7CiAJCS8qIEdldCB0aGUgWGVuIHZlcnNpb24gbnVtYmVyIGFuZCBleHRyYXZlcnNp b24gc3RyaW5nICovCi0JCXZudW0gPSB4Y192ZXJzaW9uKG5vZGUtPmhhbmRsZS0+eGNfaGFuZGxl LAotCQkJWEVOVkVSX3ZlcnNpb24sIE5VTEwpOwotCi0JCWlmICh2bnVtIDwgMCkKKwkJaWYgKHhj X3ZlcnNpb24obm9kZS0+aGFuZGxlLT54Y19oYW5kbGUsCisJCQkgICAgICAgWEVOX1ZFUlNJT05f T1BfdmVyc2lvbiwgJnZudW0sIHNpemVvZih2bnVtKSkgPCAwKQogCQkJcmV0dXJuIDA7CiAKLQkJ aWYgKHhjX3ZlcnNpb24obm9kZS0+aGFuZGxlLT54Y19oYW5kbGUsIFhFTlZFUl9leHRyYXZlcnNp b24sCi0JCQkmdmVyc2lvbikgPCAwKQorCQlpZiAoeGNfdmVyc2lvbihub2RlLT5oYW5kbGUtPnhj X2hhbmRsZSwgWEVOX1ZFUlNJT05fT1BfZXh0cmF2ZXJzaW9uLAorCQkJICAgICAgICZ2ZXJzaW9u LCBzaXplb2YodmVyc2lvbikpIDwgMCkKIAkJCXJldHVybiAwOwogCQkvKiBGb3JtYXQgdGhlIHZl cnNpb24gaW5mb3JtYXRpb24gYXMgYSBzdHJpbmcgYW5kIHN0b3JlIGl0ICovCiAJCXNucHJpbnRm KG5vZGUtPmhhbmRsZS0+eGVuX3ZlcnNpb24sIFZFUlNJT05fU0laRSwgIiVsZC4lbGQlcyIsCmRp ZmYgLS1naXQgYS90b29scy94ZW50cmFjZS94ZW5jdHguYyBiL3Rvb2xzL3hlbnRyYWNlL3hlbmN0 eC5jCmluZGV4IGU2NDcxNzkuLjE0ZDJmOGIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hlbnRyYWNlL3hl bmN0eC5jCisrKyBiL3Rvb2xzL3hlbnRyYWNlL3hlbmN0eC5jCkBAIC0xMDAwLDcgKzEwMDAsOCBA QCBzdGF0aWMgdm9pZCBkdW1wX2N0eChpbnQgdmNwdSkKICAgICAgICAgICAgIGd1ZXN0X3dvcmRf c2l6ZSA9IChjcHVjdHgubXNyX2VmZXIgJiAweDQwMCkgPyA4IDoKICAgICAgICAgICAgICAgICBn dWVzdF9wcm90ZWN0ZWRfbW9kZSA/IDQgOiAyOwogICAgICAgICAgICAgLyogSFZNIGd1ZXN0IGNv bnRleHQgcmVjb3JkcyBhcmUgYWx3YXlzIGhvc3Qtc2l6ZWQgKi8KLSAgICAgICAgICAgIGlmICh4 Y192ZXJzaW9uKHhlbmN0eC54Y19oYW5kbGUsIFhFTlZFUl9jYXBhYmlsaXRpZXMsICZ4ZW5fY2Fw cykgIT0gMCkgeworICAgICAgICAgICAgaWYgKHhjX3ZlcnNpb24oeGVuY3R4LnhjX2hhbmRsZSwg WEVOX1ZFUlNJT05fT1BfY2FwYWJpbGl0aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg Jnhlbl9jYXBzLCBzaXplb2YoeGVuX2NhcHMpKSA8IDApIHsKICAgICAgICAgICAgICAgICBwZXJy b3IoInhjX3ZlcnNpb24iKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9 Ci0tIAoyLjUuMAoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=