From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9432 invoked by alias); 2 May 2008 18:07:15 -0000 Received: (qmail 9236 invoked by uid 22791); 2 May 2008 18:07:14 -0000 X-Spam-Check-By: sourceware.org Received: from main.gmane.org (HELO ciao.gmane.org) (80.91.229.2) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 02 May 2008 18:06:45 +0000 Received: from list by ciao.gmane.org with local (Exim 4.43) id 1JrzeY-0000Ko-3M for gdb-patches@sources.redhat.com; Fri, 02 May 2008 18:06:38 +0000 Received: from 78.158.192.230 ([78.158.192.230]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 02 May 2008 18:06:38 +0000 Received: from vladimir by 78.158.192.230 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 02 May 2008 18:06:38 +0000 To: gdb-patches@sources.redhat.com From: Vladimir Prus Subject: Re: [RFC][patch 0/9] Python support in GDB Date: Fri, 02 May 2008 18:30:00 -0000 Message-ID: References: <20080429155212.444237503@br.ibm.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="nextPart2187759.dxjnVspun8" Content-Transfer-Encoding: 7Bit User-Agent: KNode/0.10.5 X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2008-05/txt/msg00108.txt.bz2 --nextPart2187759.dxjnVspun8 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8Bit Content-length: 1282 Thiago Jung Bauermann wrote: > Hi everybody, > > This patch series adds Python scripting support to GDB, and exposes > some of its subsystems hopefully in a "pythonic" way. These patches > correspond to the contents of the git repository at gitorious.org, > rebased to apply cleanly on top of CVS HEAD as of 04/27. The attached two patches are rebased MI ones. The first is cleanup, and I'll commit it shortly. The second one is the real one. Since both patches touch just MI code, this is RFC, not RFA. The second patch has a couple fixmes that I'll address later, and needs doc that I'll also write as the other Python patches are in. Here's an example session: (gdb) -var-set-type-visualizer std::vector.* VectorVisualizer ^done .... ~"11\t std::vector v;\n" .... ~"12\t v.push_back (7);\n" ^done (gdb) -var-create V * v ^done,name="V",numchild="1",value="{...}",type="std::vector >",thread-id="1" (gdb) -var-list-children V ^done,numchild="0" (gdb) next &"next\n" ~"13\t v[0] = 11;\n" ^done (gdb) -var-update --all-values V ^done,changelist=[{name="V",value="{...}",in_scope="true",type_changed="false",children=[{name="V.0",exp="0",numchild="0",value="7",type="int",thread-id="1"}]}] (gdb) The .gdbinit I use is also attached. - Volodya --nextPart2187759.dxjnVspun8 Content-Type: application/mbox; name="0001-Refactor-varobj_update-interface.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Refactor-varobj_update-interface.patch" Content-length: 16369 RnJvbSBkYjQyMzE5ODVhODMyNGIzOWFlYjY2Y2FlMzdiYWE4YWE1YjU0MDUx IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBWbGFkaW1pciBQcnVz IDx2bGFkaW1pckBjb2Rlc291cmNlcnkuY29tPgpEYXRlOiBGcmksIDIgTWF5 IDIwMDggMjA6Mjc6NDYgKzA0MDAKU3ViamVjdDogW1JGQV0gUmVmYWN0b3Ig dmFyb2JqX3VwZGF0ZSBpbnRlcmZhY2UuClRvOiBnZGItcGF0Y2hlc0Bzb3Vy Y2VzLnJlZGhhdC5jb20KWC1LTWFpbC1UcmFuc3BvcnQ6IENvZGVTb3VyY2Vy eQpYLUtNYWlsLUlkZW50aXR5OiA5MDE4Njc5MjAKCgkqIHZhcm9iai5jICh2 YXJvYmpfdXBkYXRlKTogUmVwb3J0IGNoYW5nZXMgYXMgdmVjdG9yLiAgQWxz bwoJcmV0dXJuIG5vdCBqdXN0IGEgbGlzdCBvZiB2YXJvYmosIGJ1dCBhIGxp c3Qgb2Ygc3BlY2lhbCBzdHJ1Y3R1cmVzCgl0aGF0IHRlbGwgd2hhdCBleGFj dGx5IGhhcyBjaGFuZ2VkLgoJKiB2YXJvYmouaCAoZW51bSB2YXJvYmpfdXBk YXRlX2Vycm9yKTogUmVuYW1lIHRvCgl2YXJvYmpfc2NvcGVfc3RhdHVzLgoJ KHN0cnVjdCB2YXJvYmpfdXBkYXRlX3Jlc3VsdF90KTogTmV3LgoJKHZhcm9i al91cGRhdGUpOiBBZGp1c3QgcHJvdG90eXBlLgoJKiBtaS9taS1jbWQtdmFy LmM6IEFkanVzdCBmb3IgY2hhbmdlcy4KCglbdGVzdHN1aXRlXQoJKiBnZGIu bWkvbWktdmFyLWNtZC5leHA6IEFkanVzdCBmb3IgdGhlIGZhY3QgdGhhdCB0 eXBlX2NoYW5nZWQgZmllbGQgaXMKCW5vdyBwcmludGVkLgoJKiBnZGIubWkv bWkyLXZhci1jbWQuZXhwOiBMaWtld2lzZS4KLS0tCiBnZGIvbWkvbWktY21k LXZhci5jICAgICAgICAgICAgICAgICAgfCAgIDc4ICsrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLS0tLQogZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWkt dmFyLWNtZC5leHAgIHwgICAgMiArLQogZ2RiL3Rlc3RzdWl0ZS9nZGIubWkv bWkyLXZhci1jbWQuZXhwIHwgICAgMiArLQogZ2RiL3Zhcm9iai5jICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICA3OSArKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiBnZGIvdmFyb2JqLmggICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDI2ICsrKysrKysrLS0tCiA1IGZpbGVzIGNoYW5nZWQs IDgzIGluc2VydGlvbnMoKyksIDEwNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9nZGIvbWkvbWktY21kLXZhci5jIGIvZ2RiL21pL21pLWNtZC12YXIu YwppbmRleCAyZjAwOWZhLi41MGY3YWRkIDEwMDY0NAotLS0gYS9nZGIvbWkv bWktY21kLXZhci5jCisrKyBiL2dkYi9taS9taS1jbWQtdmFyLmMKQEAgLTY1 NCw2MiArNjU0LDUyIEBAIHN0YXRpYyB2b2lkCiB2YXJvYmpfdXBkYXRlX29u ZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHByaW50X3ZhbHVlcyBwcmlu dF92YWx1ZXMsCiAJCSAgIGludCBleHBsaWNpdCkKIHsKLSAgc3RydWN0IHZh cm9iaiAqKmNoYW5nZWxpc3Q7CiAgIHN0cnVjdCB2YXJvYmogKipjYzsKICAg c3RydWN0IGNsZWFudXAgKmNsZWFudXAgPSBOVUxMOwotICBpbnQgbmM7Ci0K LSAgbmMgPSB2YXJvYmpfdXBkYXRlICgmdmFyLCAmY2hhbmdlbGlzdCwgZXhw bGljaXQpOwotCi0gIC8qIG5jID49IDAgIHJlcHJlc2VudHMgdGhlIG51bWJl ciBvZiBjaGFuZ2VzIHJlcG9ydGVkIGludG8gY2hhbmdlbGlzdC4KLSAgICAg bmMgPCAwICAgbWVhbnMgdGhhdCBhbiBlcnJvciBvY2N1cmVkIG9yIHRoZSB0 aGUgdmFyaWFibGUgaGFzIAotICAgICAgICAgICAgICBjaGFuZ2VkIHR5cGUg KFRZUEVfQ0hBTkdFRCkuICAqLworICBWRUMgKHZhcm9ial91cGRhdGVfcmVz dWx0KSAqY2hhbmdlczsKKyAgdmFyb2JqX3VwZGF0ZV9yZXN1bHQgKnI7Cisg IGludCBpOworICAKKyAgY2hhbmdlcyA9IHZhcm9ial91cGRhdGUgKCZ2YXIs IGV4cGxpY2l0KTsKICAgCi0gIGlmIChuYyA9PSAwKQotICAgIHJldHVybjsK LSAgZWxzZSBpZiAobmMgPCAwKQorICBmb3IgKGkgPSAwOyBWRUNfaXRlcmF0 ZSAodmFyb2JqX3VwZGF0ZV9yZXN1bHQsIGNoYW5nZXMsIGksIHIpOyArK2kp CiAgICAgewogICAgICAgaWYgKG1pX3ZlcnNpb24gKHVpb3V0KSA+IDEpCiAg ICAgICAgIGNsZWFudXAgPSBtYWtlX2NsZWFudXBfdWlfb3V0X3R1cGxlX2Jl Z2luX2VuZCAodWlvdXQsIE5VTEwpOwotICAgICAgdWlfb3V0X2ZpZWxkX3N0 cmluZyAodWlvdXQsICJuYW1lIiwgdmFyb2JqX2dldF9vYmpuYW1lKHZhcikp OworICAgICAgdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsICJuYW1lIiwg dmFyb2JqX2dldF9vYmpuYW1lIChyLT52YXJvYmopKTsKIAotICAgICAgc3dp dGNoIChuYykKLSAgICAgIHsKLSAgICAgICAgY2FzZSBOT1RfSU5fU0NPUEU6 CisgICAgICBzd2l0Y2ggKHItPnN0YXR1cykKKwl7CisJY2FzZSBWQVJPQkpf SU5fU0NPUEU6CisJICBpZiAobWlfcHJpbnRfdmFsdWVfcCAodmFyb2JqX2dl dF9nZGJfdHlwZSAoci0+dmFyb2JqKSwgcHJpbnRfdmFsdWVzKSkKKwkgICAg dWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsICJ2YWx1ZSIsIHZhcm9ial9n ZXRfdmFsdWUgKHItPnZhcm9iaikpOworCSAgdWlfb3V0X2ZpZWxkX3N0cmlu ZyAodWlvdXQsICJpbl9zY29wZSIsICJ0cnVlIik7CisJICBicmVhazsKKyAg ICAgICAgY2FzZSBWQVJPQkpfTk9UX0lOX1NDT1BFOgogICAgICAgICAgIHVp X291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAiaW5fc2NvcGUiLCAiZmFsc2Ui KTsKIAkgIGJyZWFrOwotICAgICAgICBjYXNlIElOVkFMSUQ6CisgICAgICAg IGNhc2UgVkFST0JKX0lOVkFMSUQ6CiAgICAgICAgICAgdWlfb3V0X2ZpZWxk X3N0cmluZyAodWlvdXQsICJpbl9zY29wZSIsICJpbnZhbGlkIik7CiAgCSAg YnJlYWs7Ci0gICAgICAgIGNhc2UgVFlQRV9DSEFOR0VEOgotCSAgdWlfb3V0 X2ZpZWxkX3N0cmluZyAodWlvdXQsICJpbl9zY29wZSIsICJ0cnVlIik7Ci0J ICB1aV9vdXRfZmllbGRfc3RyaW5nICh1aW91dCwgInR5cGVfY2hhbmdlZCIs ICJ0cnVlIik7Ci0gICAgICAgICAgdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlv dXQsICJuZXdfdHlwZSIsIHZhcm9ial9nZXRfdHlwZSh2YXIpKTsKLSAgICAg ICAgICB1aV9vdXRfZmllbGRfaW50ICh1aW91dCwgIm5ld19udW1fY2hpbGRy ZW4iLCAKLQkJCSAgICB2YXJvYmpfZ2V0X251bV9jaGlsZHJlbih2YXIpKTsK LQkgIGlmIChtaV9wcmludF92YWx1ZV9wICh2YXJvYmpfZ2V0X2dkYl90eXBl ICh2YXIpLCBwcmludF92YWx1ZXMpKQotCSAgICB1aV9vdXRfZmllbGRfc3Ry aW5nICh1aW91dCwgInZhbHVlIiwgdmFyb2JqX2dldF92YWx1ZSAodmFyKSk7 Ci0JICBicmVhazsKLSAgICAgIH0KLSAgICAgIGlmIChtaV92ZXJzaW9uICh1 aW91dCkgPiAxKQotICAgICAgICBkb19jbGVhbnVwcyAoY2xlYW51cCk7Ci0g ICAgfQotICBlbHNlCi0gICAgewotICAgICAgY2MgPSBjaGFuZ2VsaXN0Owot ICAgICAgd2hpbGUgKCpjYyAhPSBOVUxMKQorCX0KKworICAgICAgaWYgKHIt PnN0YXR1cyAhPSBWQVJPQkpfSU5WQUxJRCkKIAl7Ci0JICBpZiAobWlfdmVy c2lvbiAodWlvdXQpID4gMSkKLQkgICAgY2xlYW51cCA9IG1ha2VfY2xlYW51 cF91aV9vdXRfdHVwbGVfYmVnaW5fZW5kICh1aW91dCwgTlVMTCk7Ci0JICB1 aV9vdXRfZmllbGRfc3RyaW5nICh1aW91dCwgIm5hbWUiLCB2YXJvYmpfZ2V0 X29iam5hbWUgKCpjYykpOwotCSAgaWYgKG1pX3ByaW50X3ZhbHVlX3AgKHZh cm9ial9nZXRfZ2RiX3R5cGUgKCpjYyksIHByaW50X3ZhbHVlcykpCi0JICAg IHVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAidmFsdWUiLCB2YXJvYmpf Z2V0X3ZhbHVlICgqY2MpKTsKLQkgIHVpX291dF9maWVsZF9zdHJpbmcgKHVp b3V0LCAiaW5fc2NvcGUiLCAidHJ1ZSIpOwotCSAgdWlfb3V0X2ZpZWxkX3N0 cmluZyAodWlvdXQsICJ0eXBlX2NoYW5nZWQiLCAiZmFsc2UiKTsKLQkgIGlm IChtaV92ZXJzaW9uICh1aW91dCkgPiAxKQotCSAgICBkb19jbGVhbnVwcyAo Y2xlYW51cCk7Ci0JICBjYysrOworCSAgaWYgKHItPnR5cGVfY2hhbmdlZCkK KwkgICAgdWlfb3V0X2ZpZWxkX3N0cmluZyAodWlvdXQsICJ0eXBlX2NoYW5n ZWQiLCAidHJ1ZSIpOworCSAgZWxzZQorCSAgICB1aV9vdXRfZmllbGRfc3Ry aW5nICh1aW91dCwgInR5cGVfY2hhbmdlZCIsICJmYWxzZSIpOwogCX0KLSAg ICAgIHhmcmVlIChjaGFuZ2VsaXN0KTsKKworICAgICAgaWYgKHItPnR5cGVf Y2hhbmdlZCkKKwl7CisgICAgICAgICAgdWlfb3V0X2ZpZWxkX3N0cmluZyAo dWlvdXQsICJuZXdfdHlwZSIsIHZhcm9ial9nZXRfdHlwZSAoci0+dmFyb2Jq KSk7CisgICAgICAgICAgdWlfb3V0X2ZpZWxkX2ludCAodWlvdXQsICJuZXdf bnVtX2NoaWxkcmVuIiwgCisJCQkgICAgdmFyb2JqX2dldF9udW1fY2hpbGRy ZW4gKHItPnZhcm9iaikpOworCX0KKyAgCisgICAgICBpZiAobWlfdmVyc2lv biAodWlvdXQpID4gMSkKKwlkb19jbGVhbnVwcyAoY2xlYW51cCk7CiAgICAg fQorICBWRUNfZnJlZSAodmFyb2JqX3VwZGF0ZV9yZXN1bHQsIGNoYW5nZXMp OwogfQpkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmFy LWNtZC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12YXItY21kLmV4 cAppbmRleCAyNzMzMWNlLi5mNDdjMWQ1IDEwMDY0NAotLS0gYS9nZGIvdGVz dHN1aXRlL2dkYi5taS9taS12YXItY21kLmV4cAorKysgYi9nZGIvdGVzdHN1 aXRlL2dkYi5taS9taS12YXItY21kLmV4cApAQCAtNDU4LDcgKzQ1OCw3IEBA IG1pX25leHRfdG8gImRvX2xvY2Fsc190ZXN0cyIgIiIJInZhci1jbWQuYyIg XAogIyBUZXN0OiBjX3ZhcmlhYmxlLTIuMTUKICMgRGVzYzogY2hlY2sgZm9y IG91dCBvZiBzY29wZSBzdWJyb3V0aW5lMSBsb2NhbHMKIG1pX2dkYl90ZXN0 ICItdmFyLXVwZGF0ZSAqIiBcCi0JIlxcXmRvbmUsY2hhbmdlbGlzdD1cXFxb XHtuYW1lPVwibFwiLGluX3Njb3BlPVwiZmFsc2VcIlx9LFx7bmFtZT1cImlc Iixpbl9zY29wZT1cImZhbHNlXCJcfVxcXF0iIFwKKwkiXFxeZG9uZSxjaGFu Z2VsaXN0PVxcXFtce25hbWU9XCJsXCIsaW5fc2NvcGU9XCJmYWxzZVwiXCx0 eXBlX2NoYW5nZWQ9XCJmYWxzZVwifSxce25hbWU9XCJpXCIsaW5fc2NvcGU9 XCJmYWxzZVwiLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJcfVxcXF0iIFwKIAki dXBkYXRlIGFsbCB2YXJzOiBhbGwgbm93IG91dCBvZiBzY29wZSIKIAogIyBE b25lIHdpdGggbG9jYWxzL2dsb2JhbHMgdGVzdHMuIEVyYXNlIGFsbCB2YXJp YWJsZXMKZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12 YXItY21kLmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL21pMi12YXItY21k LmV4cAppbmRleCBkOTgwOTE3Li4yNDc3NzIxIDEwMDY0NAotLS0gYS9nZGIv dGVzdHN1aXRlL2dkYi5taS9taTItdmFyLWNtZC5leHAKKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIubWkvbWkyLXZhci1jbWQuZXhwCkBAIC00MjEsNyArNDIx LDcgQEAgbWlfbmV4dF90byAiZG9fbG9jYWxzX3Rlc3RzIiAiIgkidmFyLWNt ZC5jIiBcCiAjIFRlc3Q6IGNfdmFyaWFibGUtMi4xNQogIyBEZXNjOiBjaGVj ayBmb3Igb3V0IG9mIHNjb3BlIHN1YnJvdXRpbmUxIGxvY2FscwogbWlfZ2Ri X3Rlc3QgIi12YXItdXBkYXRlICoiIFwKLQkiXFxeZG9uZSxjaGFuZ2VsaXN0 PVxcXFtce25hbWU9XCJsXCIsaW5fc2NvcGU9XCJmYWxzZVwiXH0sXHtuYW1l PVwiaVwiLGluX3Njb3BlPVwiZmFsc2VcIlx9XFxcXSIgXAorCSJcXF5kb25l LGNoYW5nZWxpc3Q9XFxcW1x7bmFtZT1cImxcIixpbl9zY29wZT1cImZhbHNl XCJcLHR5cGVfY2hhbmdlZD1cImZhbHNlXCJ9LFx7bmFtZT1cImlcIixpbl9z Y29wZT1cImZhbHNlXCIsdHlwZV9jaGFuZ2VkPVwiZmFsc2VcIlx9XFxcXSIg XAogCSJ1cGRhdGUgYWxsIHZhcnM6IGFsbCBub3cgb3V0IG9mIHNjb3BlIgog CiAjIERvbmUgd2l0aCBsb2NhbHMvZ2xvYmFscyB0ZXN0cy4gRXJhc2UgYWxs IHZhcmlhYmxlcwpkaWZmIC0tZ2l0IGEvZ2RiL3Zhcm9iai5jIGIvZ2RiL3Zh cm9iai5jCmluZGV4IGYzZDNiNWEuLjBiNDM0ZWUgMTAwNjQ0Ci0tLSBhL2dk Yi92YXJvYmouYworKysgYi9nZGIvdmFyb2JqLmMKQEAgLTExMjAsOSArMTEy MCw2IEBAIGluc3RhbGxfbmV3X3ZhbHVlIChzdHJ1Y3QgdmFyb2JqICp2YXIs IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIGludCBpbml0aWFsKQogICAgZXhwcmVz c2lvbiB0byBzZWUgaWYgaXQncyBjaGFuZ2VkLiAgVGhlbiBnbyBhbGwgdGhl IHdheQogICAgdGhyb3VnaCBpdHMgY2hpbGRyZW4sIHJlY29uc3RydWN0aW5n IHRoZW0gYW5kIG5vdGluZyBpZiB0aGV5J3ZlCiAgICBjaGFuZ2VkLgotICAg UmV0dXJuIHZhbHVlOiAKLSAgICA8IDAgZm9yIGVycm9yIHZhbHVlcywgc2Vl IHZhcm9iai5oLgotICAgIE90aGVyd2lzZSBpdCBpcyB0aGUgbnVtYmVyIG9m IGNoaWxkcmVuICsgcGFyZW50IGNoYW5nZWQuCiAKICAgIFRoZSBFWFBMSUNJ VCBwYXJhbWV0ZXIgc3BlY2lmaWVzIGlmIHRoaXMgY2FsbCBpcyByZXN1bHQK ICAgIG9mIE1JIHJlcXVlc3QgdG8gdXBkYXRlIHRoaXMgc3BlY2lmaWMgdmFy aWFibGUsIG9yIApAQCAtMTEzMyw5ICsxMTMwLDcgQEAgaW5zdGFsbF9uZXdf dmFsdWUgKHN0cnVjdCB2YXJvYmogKnZhciwgc3RydWN0IHZhbHVlICp2YWx1 ZSwgaW50IGluaXRpYWwpCiAgICByZXR1cm5zIFRZUEVfQ0hBTkdFRCwgdGhl biBpdCBoYXMgZG9uZSB0aGlzIGFuZCBWQVJQIHdpbGwgYmUgbW9kaWZpZWQK ICAgIHRvIHBvaW50IHRvIHRoZSBuZXcgdmFyb2JqLiAgKi8KIAotaW50Ci12 YXJvYmpfdXBkYXRlIChzdHJ1Y3QgdmFyb2JqICoqdmFycCwgc3RydWN0IHZh cm9iaiAqKipjaGFuZ2VsaXN0LAotCSAgICAgICBpbnQgZXhwbGljaXQpCitW RUModmFyb2JqX3VwZGF0ZV9yZXN1bHQpICp2YXJvYmpfdXBkYXRlIChzdHJ1 Y3QgdmFyb2JqICoqdmFycCwgaW50IGV4cGxpY2l0KQogewogICBpbnQgY2hh bmdlZCA9IDA7CiAgIGludCB0eXBlX2NoYW5nZWQgPSAwOwpAQCAtMTE0Niw1 MiArMTE0MSw1MCBAQCB2YXJvYmpfdXBkYXRlIChzdHJ1Y3QgdmFyb2JqICoq dmFycCwgc3RydWN0IHZhcm9iaiAqKipjaGFuZ2VsaXN0LAogICBzdHJ1Y3Qg dmFyb2JqICoqdGVtcGxpc3QgPSBOVUxMOwogICBzdHJ1Y3QgdmFsdWUgKm5l dzsKICAgVkVDICh2YXJvYmpfcCkgKnN0YWNrID0gTlVMTDsKLSAgVkVDICh2 YXJvYmpfcCkgKnJlc3VsdCA9IE5VTEw7CisgIFZFQyAodmFyb2JqX3VwZGF0 ZV9yZXN1bHQpICpyZXN1bHQgPSBOVUxMOwogICBzdHJ1Y3QgZnJhbWVfaW5m byAqZmk7CiAKLSAgLyogc2FuaXR5IGNoZWNrOiBoYXZlIHdlIGJlZW4gcGFz c2VkIGEgcG9pbnRlcj8gICovCi0gIGdkYl9hc3NlcnQgKGNoYW5nZWxpc3Qp OwotCiAgIC8qIEZyb3plbiBtZWFucyBmcm96ZW4gLS0gd2UgZG9uJ3QgY2hl Y2sgZm9yIGFueSBjaGFuZ2UgaW4KICAgICAgdGhpcyB2YXJvYmosIGluY2x1 ZGluZyBpdHMgZ29pbmcgb3V0IG9mIHNjb3BlLCBvcgogICAgICBjaGFuZ2lu ZyB0eXBlLiAgT25lIHVzZSBjYXNlIGZvciBmcm96ZW4gdmFyb2JqcyBpcwog ICAgICByZXRhaW5pbmcgcHJldmlvdXNseSBldmFsdWF0ZWQgZXhwcmVzc2lv bnMsIGFuZCB3ZSBkb24ndAogICAgICB3YW50IHRoZW0gdG8gYmUgcmVldmFs dWF0ZWQgYXQgYWxsLiAgKi8KICAgaWYgKCFleHBsaWNpdCAmJiAoKnZhcnAp LT5mcm96ZW4pCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHJlc3VsdDsK IAogICBpZiAoISgqdmFycCktPnJvb3QtPmlzX3ZhbGlkKQotICAgIHJldHVy biBJTlZBTElEOworICAgIHsKKyAgICAgIHZhcm9ial91cGRhdGVfcmVzdWx0 IHIgPSB7KnZhcnB9OworICAgICAgci5zdGF0dXMgPSBWQVJPQkpfSU5WQUxJ RDsKKyAgICAgIFZFQ19zYWZlX3B1c2ggKHZhcm9ial91cGRhdGVfcmVzdWx0 LCByZXN1bHQsICZyKTsKKyAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQog CiAgIGlmICgoKnZhcnApLT5yb290LT5yb290dmFyID09ICp2YXJwKQogICAg IHsKKyAgICAgIHZhcm9ial91cGRhdGVfcmVzdWx0IHIgPSB7KnZhcnB9Owor ICAgICAgci5zdGF0dXMgPSBWQVJPQkpfSU5fU0NPUEU7CisKICAgICAgIC8q IFVwZGF0ZSB0aGUgcm9vdCB2YXJpYWJsZS4gdmFsdWVfb2Zfcm9vdCBjYW4g cmV0dXJuIE5VTEwKIAkgaWYgdGhlIHZhcmlhYmxlIGlzIG5vIGxvbmdlciBh cm91bmQsIGkuZS4gd2Ugc3RlcHBlZCBvdXQgb2YKIAkgdGhlIGZyYW1lIGlu IHdoaWNoIGEgbG9jYWwgZXhpc3RlZC4gV2UgYXJlIGxldHRpbmcgdGhlIAog CSB2YWx1ZV9vZl9yb290IHZhcmlhYmxlIGRpc3Bvc2Ugb2YgdGhlIHZhcm9i aiBpZiB0aGUgdHlwZQogCSBoYXMgY2hhbmdlZC4gICovCiAgICAgICBuZXcg PSB2YWx1ZV9vZl9yb290ICh2YXJwLCAmdHlwZV9jaGFuZ2VkKTsKLSAgICAg IAotICAgICAgLyogSWYgdGhpcyBpcyBhIGZsb2F0aW5nIHZhcm9iaiwgYW5k IGl0cyB0eXBlIGhhcyBjaGFuZ2VkLAotCSB0aGVtIG5vdGUgdGhhdCBpdCdz IGNoYW5nZWQuICAqLwotICAgICAgaWYgKHR5cGVfY2hhbmdlZCkKLQlWRUNf c2FmZV9wdXNoICh2YXJvYmpfcCwgcmVzdWx0LCAqdmFycCk7Ci0gICAgICAK LSAgICAgICAgaWYgKGluc3RhbGxfbmV3X3ZhbHVlICgoKnZhcnApLCBuZXcs IHR5cGVfY2hhbmdlZCkpCi0JICB7Ci0JICAgIC8qIElmIHR5cGVfY2hhbmdl ZCBpcyAxLCBpbnN0YWxsX25ld192YWx1ZSB3aWxsIG5ldmVyIHJldHVybgot CSAgICAgICBub24temVybywgc28gd2UnbGwgbmV2ZXIgcmVwb3J0IHRoZSBz YW1lIHZhcmlhYmxlIHR3aWNlLiAgKi8KLQkgICAgZ2RiX2Fzc2VydCAoIXR5 cGVfY2hhbmdlZCk7Ci0JICAgIFZFQ19zYWZlX3B1c2ggKHZhcm9ial9wLCBy ZXN1bHQsICp2YXJwKTsKLQkgIH0KKyAgICAgIHIudmFyb2JqID0gKnZhcnA7 CisKKyAgICAgIHIudHlwZV9jaGFuZ2VkID0gdHlwZV9jaGFuZ2VkOworICAg ICAgaWYgKGluc3RhbGxfbmV3X3ZhbHVlICgoKnZhcnApLCBuZXcsIHR5cGVf Y2hhbmdlZCkpCisJci5jaGFuZ2VkID0gMTsKIAogICAgICAgaWYgKG5ldyA9 PSBOVUxMKQotCXsKLQkgIC8qIFRoaXMgbWVhbnMgdGhlIHZhcm9iaiBpdHNl bGYgaXMgb3V0IG9mIHNjb3BlLgotCSAgICAgUmVwb3J0IGl0LiAgKi8KLQkg IFZFQ19mcmVlICh2YXJvYmpfcCwgcmVzdWx0KTsKLQkgIHJldHVybiBOT1Rf SU5fU0NPUEU7Ci0JfQorCXIuc3RhdHVzID0gVkFST0JKX05PVF9JTl9TQ09Q RTsKKworICAgICAgaWYgKHIudHlwZV9jaGFuZ2VkIHx8IHIuY2hhbmdlZCkK KwlWRUNfc2FmZV9wdXNoICh2YXJvYmpfdXBkYXRlX3Jlc3VsdCwgcmVzdWx0 LCAmcik7CisKKyAgICAgIGlmIChyLnN0YXR1cyA9PSBWQVJPQkpfTk9UX0lO X1NDT1BFKQorCXJldHVybiByZXN1bHQ7CiAgICAgfQogCiAgIFZFQ19zYWZl X3B1c2ggKHZhcm9ial9wLCBzdGFjaywgKnZhcnApOwpAQCAtMTIyMSwzMiAr MTIxNCwxNiBAQCB2YXJvYmpfdXBkYXRlIChzdHJ1Y3QgdmFyb2JqICoqdmFy cCwgc3RydWN0IHZhcm9iaiAqKipjaGFuZ2VsaXN0LAogCSAgaWYgKGluc3Rh bGxfbmV3X3ZhbHVlICh2LCBuZXcsIDAgLyogdHlwZSBub3QgY2hhbmdlZCAq LykpCiAJICAgIHsKIAkgICAgICAvKiBOb3RlIHRoYXQgaXQncyBjaGFuZ2Vk ICovCi0JICAgICAgVkVDX3NhZmVfcHVzaCAodmFyb2JqX3AsIHJlc3VsdCwg dik7CisJICAgICAgdmFyb2JqX3VwZGF0ZV9yZXN1bHQgciA9IHt2fTsKKwkg ICAgICByLmNoYW5nZWQgPSAxOworCSAgICAgIFZFQ19zYWZlX3B1c2ggKHZh cm9ial91cGRhdGVfcmVzdWx0LCByZXN1bHQsICZyKTsKIAkgICAgICB2LT51 cGRhdGVkID0gMDsKIAkgICAgfQogCX0KICAgICB9CiAKLSAgLyogQWxsb2Mg KGNoYW5nZWQgKyAxKSBsaXN0IGVudHJpZXMuICAqLwotICBjaGFuZ2VkID0g VkVDX2xlbmd0aCAodmFyb2JqX3AsIHJlc3VsdCk7Ci0gICpjaGFuZ2VsaXN0 ID0geG1hbGxvYyAoKGNoYW5nZWQgKyAxKSAqIHNpemVvZiAoc3RydWN0IHZh cm9iaiAqKSk7Ci0gIGN2ID0gKmNoYW5nZWxpc3Q7Ci0KLSAgZm9yIChpID0g MDsgaSA8IGNoYW5nZWQ7ICsraSkKLSAgICB7Ci0gICAgICAqY3YgPSBWRUNf aW5kZXggKHZhcm9ial9wLCByZXN1bHQsIGkpOwotICAgICAgZ2RiX2Fzc2Vy dCAoKmN2ICE9IE5VTEwpOwotICAgICAgKytjdjsKLSAgICB9Ci0gICpjdiA9 IDA7Ci0KICAgVkVDX2ZyZWUgKHZhcm9ial9wLCBzdGFjayk7Ci0gIFZFQ19m cmVlICh2YXJvYmpfcCwgcmVzdWx0KTsKLQotICBpZiAodHlwZV9jaGFuZ2Vk KQotICAgIHJldHVybiBUWVBFX0NIQU5HRUQ7Ci0gIGVsc2UKLSAgICByZXR1 cm4gY2hhbmdlZDsKKyAgcmV0dXJuIHJlc3VsdDsKIH0KIAwKIApkaWZmIC0t Z2l0IGEvZ2RiL3Zhcm9iai5oIGIvZ2RiL3Zhcm9iai5oCmluZGV4IDRmYzdk MWUuLjllY2VmMGYgMTAwNjQ0Ci0tLSBhL2dkYi92YXJvYmouaAorKysgYi9n ZGIvdmFyb2JqLmgKQEAgLTM5LDEyICszOSwxNCBAQCBlbnVtIHZhcm9ial90 eXBlCiAgICAgVVNFX1NFTEVDVEVEX0ZSQU1FICAgICAgICAgIC8qIEFsd2F5 cyByZWV2YWx1YXRlIGluIHNlbGVjdGVkIGZyYW1lICovCiAgIH07CiAKLS8q IEVycm9yIHJldHVybiB2YWx1ZXMgZm9yIHZhcm9ial91cGRhdGUgZnVuY3Rp b24uICAqLwotZW51bSB2YXJvYmpfdXBkYXRlX2Vycm9yCisvKiBFbnVtZXJh dG9yIGRlc2NyaWJpbmcgaWYgYSB2YXJpYWJsZSBvYmplY3QgaXMgaW4gc2Nv cGUuICAqLworZW51bSB2YXJvYmpfc2NvcGVfc3RhdHVzCiAgIHsKLSAgICBO T1RfSU5fU0NPUEUgPSAtMSwgICAgICAgICAgLyogdmFyb2JqIG5vdCBpbiBz Y29wZSwgY2FuIG5vdCBiZSB1cGRhdGVkLiAgKi8KLSAgICBUWVBFX0NIQU5H RUQgPSAtMiwgICAgICAgICAgLyogdmFyb2JqIHR5cGUgaGFzIGNoYW5nZWQu ICAqLwotICAgIElOVkFMSUQgPSAtMywgICAgICAgICAgICAgICAvKiB2YXJv YmogaXMgbm90IHZhbGlkIGFueW1vcmUuICAqLworICAgIFZBUk9CSl9JTl9T Q09QRSA9IDAsICAgICAgICAvKiBWYXJvYmogaXMgc2NvcGUsIHZhbHVlIGF2 YWlsYWJsZS4gICovCisgICAgVkFST0JKX05PVF9JTl9TQ09QRSA9IDEsICAg IC8qIFZhcm9iaiBpcyBub3QgaW4gc2NvcGUsIHZhbHVlIG5vdCBhdmFpbGFi bGUsIAorCQkJCSAgIGJ1dCB2YXJvYmogY2FuIGJlY29tZSBpbiBzY29wZSBs YXRlci4gICovCisgICAgVkFST0JKX0lOVkFMSUQgPSAyLCAgICAgICAgIC8q IFZhcm9iaiBubyBsb25nZXIgaGFzIGFueSB2YWx1ZSwgYW5kIG5ldmVyCisJ CQkJICAgd2lsbC4gICovCiAgIH07CiAKIC8qIFN0cmluZyByZXByZXNlbnRh dGlvbnMgb2YgZ2RiJ3MgZm9ybWF0IGNvZGVzIChkZWZpbmVkIGluIHZhcm9i ai5jKSAqLwpAQCAtNjUsNiArNjcsMTYgQEAgc3RydWN0IHZhcm9iajsKIHR5 cGVkZWYgc3RydWN0IHZhcm9iaiAqdmFyb2JqX3A7CiBERUZfVkVDX1AgKHZh cm9ial9wKTsKIAordHlwZWRlZiBzdHJ1Y3QgdmFyb2JqX3VwZGF0ZV9yZXN1 bHRfdAoreworICBzdHJ1Y3QgdmFyb2JqICp2YXJvYmo7CisgIGludCB0eXBl X2NoYW5nZWQ7CisgIGludCBjaGFuZ2VkOworICBlbnVtIHZhcm9ial9zY29w ZV9zdGF0dXMgc3RhdHVzOworfSB2YXJvYmpfdXBkYXRlX3Jlc3VsdDsKKwor REVGX1ZFQ19PICh2YXJvYmpfdXBkYXRlX3Jlc3VsdCk7CisKIC8qIEFQSSBm dW5jdGlvbnMgKi8KIAogZXh0ZXJuIHN0cnVjdCB2YXJvYmogKnZhcm9ial9j cmVhdGUgKGNoYXIgKm9iam5hbWUsCkBAIC0xMjAsOCArMTMyLDggQEAgZXh0 ZXJuIGludCB2YXJvYmpfc2V0X3ZhbHVlIChzdHJ1Y3QgdmFyb2JqICp2YXIs IGNoYXIgKmV4cHJlc3Npb24pOwogCiBleHRlcm4gaW50IHZhcm9ial9saXN0 IChzdHJ1Y3QgdmFyb2JqICoqKnJvb3RsaXN0KTsKIAotZXh0ZXJuIGludCB2 YXJvYmpfdXBkYXRlIChzdHJ1Y3QgdmFyb2JqICoqdmFycCwgc3RydWN0IHZh cm9iaiAqKipjaGFuZ2VsaXN0LAotCQkJICBpbnQgZXhwbGljaXQpOworZXh0 ZXJuIFZFQyh2YXJvYmpfdXBkYXRlX3Jlc3VsdCkgKnZhcm9ial91cGRhdGUg KHN0cnVjdCB2YXJvYmogKip2YXJwLCAKKwkJCQkJCSBpbnQgZXhwbGljaXQp OwogCiBleHRlcm4gdm9pZCB2YXJvYmpfaW52YWxpZGF0ZSAodm9pZCk7CiAK LS0gCjEuNS4zLjUKCg== --nextPart2187759.dxjnVspun8 Content-Type: application/mbox; name="0002-Implement-Python-based-computation-of-varobj-childre.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0002-Implement-Python-based-computation-of-varobj-childre.patch" Content-length: 39772 RnJvbSA4YTY2MGFjYjAzZjI0NDExNjkzOGRkOWY2MzQ2Y2VmZmIzZWM4ZjVi IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBWbGFkaW1pciBQcnVz IDx2bGFkaW1pckBjb2Rlc291cmNlcnkuY29tPgpEYXRlOiBGcmksIDIgTWF5 IDIwMDggMjE6MjY6MzUgKzA0MDAKU3ViamVjdDogW1JGQV0gSW1wbGVtZW50 IFB5dGhvbi1iYXNlZCBjb21wdXRhdGlvbiBvZiB2YXJvYmogY2hpbGRyZW4u ClRvOiBnZGItcGF0Y2hlc0Bzb3VyY2VzLnJlZGhhdC5jb20KWC1LTWFpbC1U cmFuc3BvcnQ6IENvZGVTb3VyY2VyeQpYLUtNYWlsLUlkZW50aXR5OiA5MDE4 Njc5MjAKCgkqIG1pL21pLWNtZC12YXIuYyAobWlfY21kX3Zhcl9zZXRfdHlw ZV92aXN1YWxpemVyKQoJKG1pX2NtZF92YXJfY2xlYXJfdHlwZV92aXN1YWxp emVycywgbWlfY21kX3Zhcl9zZXRfdmlzdWFsaXplcik6IE5ldy4KCSh2YXJv YmpfdXBkYXRlX29uZSk6IExpc3QgY2hpbGRyZW4sIGlmIHRoZXkgaGF2ZSBj aGFuZ2VkLgoJKiBtaS1jbWRzLmMgKG1pX2NtZHMpOiBSZWdpc3RlciB2YXIt c2V0LXR5cGUtdmlzdWFsaXplciwKCXZhci1jbGVhci10eXBlLXZpc3VhbGl6 ZXJzIGFuZCB2YXItc2V0LXZpc3VhbGl6ZXIuCgkqIG1pLWNtZHMuaCAobWlf Y21kX3Zhcl9zZXRfdHlwZV92aXN1YWxpemVyKQoJKG1pX2NtZF92YXJfY2xl YXJfdHlwZV92aXN1YWxpemVycywgbWlfY21kX3Zhcl9zZXRfdmlzdWFsaXpl cik6IE5ldy4KCSogcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oIChtYWtlX2Ns ZWFudXBfcHlfZGVjcmVmKTogRGVjbGFyZS4KCSogcHl0aG9uL3B5dGhvbi5j IChweV9kZWNyZWYsIG1ha2VfY2xlYW51cF9weV9kZWNyZWYpOiBOZXcuCgkq IHZhcm9iai5jIChzdHJ1Y3QgdmFyb2JqKTogTmV3IGZpZWxkcyBjaGlsZHJl bl9yZXF1ZXN0ZWQsCgl2YWx1ZV9mb3JtYXR0ZXIgYW5kIGNoaWxkcmVuX2xp c3Rlci4KCShzdHJ1Y3QgdHlwZV92aXN1YWxpemVyKTogTmV3LgoJKGNyZWF0 ZV9jaGlsZF93aXRoX3ZhbHVlLCBpbnN0YWxsX2RlZmF1bHRfdmlzdWFsaXpl cik6IE5ldy4KCSh2YWx1ZV9nZXRfcHJpbnRfdmFsdWUpOiBOZXcgcGFyYW1l dGVyIHZhbHVlX2Zvcm1hdHRlci4KCSh2YXJvYmpfYWRkX2NoaWxkKTogTmV3 LgoJKHR5cGVfdmlzdWFsaXplcnMpOiBOZXcgdmFyaWFibGUuCgkodmFyb2Jq X2NyZWF0ZSk6IENhbGwgaW5zdGFsbF9kZWZhdWx0X3Zpc3VhbGl6ZXIKCSh2 YXJvYmpfc2V0X2Rpc3BsYXlfZm9ybWF0KTogQWRqdXN0IGNhbGwgdG8gdmFs dWVfZ2V0X3ByaW50X3ZhbHVlLgoJKHZhcm9ial9zZXRfdmlzdWFsaXplciwg dmFyb2JqX3NldF90eXBlX3Zpc3VhbGl6ZXIpCgkodmFyb2JqX2NsZWFyX3R5 cGVfdmlzdWFsaXplcnMsIHVwZGF0ZV9keW5hbWljX3Zhcm9ial9jaGlsZHJl bikKCSh2YXJvYmpfbGlzdF9jaGlsZHJlbik6IFNldCBjaGlsZHJlbl9yZXF1 ZXN0ZWQuICBDYWxsCgl1cGRhdGVfZHluYW1pY192YXJvYmpfY2hpbGRyZW4g aWYgbmVjZXNzYXJ5LiAgQ2FsbAoJaW5zdGFsbF9kZWZhdWx0X3Zpc3VhbGl6 ZXIgb24gY2hpbGRyZW4uCgkoaW5zdGFsbF9uZXdfdmFsdWUpOiBBbHdheXMg ZmV0Y2ggZHluYW1pYyB2YXJvYmpzLgoJKHZhcm9ial91cGRhdGUpOiBSZXdv cmsgbm90IHRvIHRyeSB0byBnZXQgdmFsdWUgb2YgY2hpbGRyZW4gZm9yCgl3 aGljaCBQeXRob24gY29kZSBoYXMgYWxyZWFkeSBjb21wdXRlZCB0aGUgdmFs dWUuCgkoY3JlYXRlX2NoaWxkKTogVXNlIGNyZWF0ZV9jaGlsZF93aXRoX3Zh bHVlLgoJKG5ld192YXJpYWJsZSk6IFplcm8gbmV3IGZpZWxkcy4KCShmcmVl X3ZhcmlhYmxlKTogRnJlZSBQeXRob24gb2JqZWN0cy4KCSh2YWx1ZV9nZXRf cHJpbnRfdmFsdWUpOiBDYWxsIFB5dGhvbiB2aXN1YWxpemVyLCBpcyBuZWNl c3NhcnkuCgkoY192YWx1ZV9vZl92YXJpYWJsZSk6IERpcmVjdGx5IHJldHVy biBQeXRob24tcHJvZHVjZWQgc3RyaW5nCgl2YWx1ZS4KCSogdmFyb2JqLmgg KHN0cnVjdCB2YXJvYmpfdXBkYXRlX3Jlc3VsdF90KTogTmV3IGZpZWxkCgl2 YWx1ZV9pbnN0YWxsZWQuCgkodmFyb2JqX3NldF90eXBlX3Zpc3VhbGl6ZXIs IHZhcm9ial9jbGVhcl90eXBlX3Zpc3VhbGl6ZXJzKQoJKHZhcm9ial9zZXRf dmlzdWFsaXplcik6IE5ldy4KCSogTWFrZWZpbGUuaW46IFVwZGF0ZSBkZXBl bmRlbmNpZXMuCi0tLQogZ2RiL01ha2VmaWxlLmluICAgICAgICAgICAgICB8 ICAgIDIgKy0KIGdkYi9taS9taS1jbWQtdmFyLmMgICAgICAgICAgfCAgIDYw ICsrKysrKwogZ2RiL21pL21pLWNtZHMuYyAgICAgICAgICAgICB8ICAgIDQg KwogZ2RiL21pL21pLWNtZHMuaCAgICAgICAgICAgICB8ICAgIDMgKwogZ2Ri L3B5dGhvbi9weXRob24taW50ZXJuYWwuaCB8ICAgIDIgKwogZ2RiL3B5dGhv bi9weXRob24uYyAgICAgICAgICB8ICAgMTUgKysKIGdkYi92YXJvYmouYyAg ICAgICAgICAgICAgICAgfCAgNDYwICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tLQogZ2RiL3Zhcm9iai5oICAgICAgICAgICAg ICAgICB8ICAgMTQgKysKIDggZmlsZXMgY2hhbmdlZCwgNTI3IGluc2VydGlv bnMoKyksIDMzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dkYi9NYWtl ZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5pbgppbmRleCA2MTUzMTg2Li40ZmJm Y2I5IDEwMDY0NAotLS0gYS9nZGIvTWFrZWZpbGUuaW4KKysrIGIvZ2RiL01h a2VmaWxlLmluCkBAIC0yOTc5LDcgKzI5NzksNyBAQCB2YWx1ZS5vOiB2YWx1 ZS5jICQoZGVmc19oKSAkKGdkYl9zdHJpbmdfaCkgJChzeW10YWJfaCkgJChn ZGJ0eXBlc19oKSBcCiB2YXJvYmoubzogdmFyb2JqLmMgJChkZWZzX2gpICQo ZXhjZXB0aW9uc19oKSAkKHZhbHVlX2gpICQoZXhwcmVzc2lvbl9oKSBcCiAJ JChmcmFtZV9oKSAkKGxhbmd1YWdlX2gpICQod3JhcHBlcl9oKSAkKGdkYmNt ZF9oKSAkKGJsb2NrX2gpIFwKIAkkKGdkYl9hc3NlcnRfaCkgJChnZGJfc3Ry aW5nX2gpICQodmFyb2JqX2gpICQodmVjX2gpICQoZ2RidGhyZWFkX2gpIFwK LQkkKGluZmVyaW9yX2gpCisJJChpbmZlcmlvcl9oKSAkKHB5dGhvbl9oKSAk KHB5dGhvbl9pbnRlcm5hbF9oKQogdmF4YnNkLW5hdC5vOiB2YXhic2QtbmF0 LmMgJChkZWZzX2gpICQoaW5mZXJpb3JfaCkgJChyZWdjYWNoZV9oKSAkKHRh cmdldF9oKSBcCiAJJCh2YXhfdGRlcF9oKSAkKGluZl9wdHJhY2VfaCkgJChi c2Rfa3ZtX2gpCiB2YXgtbmF0Lm86IHZheC1uYXQuYyAkKGRlZnNfaCkgJChp bmZlcmlvcl9oKSAkKGdkYl9hc3NlcnRfaCkgJCh2YXhfdGRlcF9oKSBcCmRp ZmYgLS1naXQgYS9nZGIvbWkvbWktY21kLXZhci5jIGIvZ2RiL21pL21pLWNt ZC12YXIuYwppbmRleCA1MGY3YWRkLi5mMmViY2RmIDEwMDY0NAotLS0gYS9n ZGIvbWkvbWktY21kLXZhci5jCisrKyBiL2dkYi9taS9taS1jbWQtdmFyLmMK QEAgLTI1MSw2ICsyNTEsNDYgQEAgbWlfY21kX3Zhcl9zZXRfZm9ybWF0IChj aGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCiB9CiAKIGVu dW0gbWlfY21kX3Jlc3VsdAorbWlfY21kX3Zhcl9zZXRfdHlwZV92aXN1YWxp emVyIChjaGFyICpjb21tYW5kLCBjaGFyICoqYXJndiwgaW50IGFyZ2MpCit7 CisgIGlmIChhcmdjICE9IDIpCisgICAgZXJyb3IgKCJVc2FnZTogVFlQRSBW SVNVQUxJWkVSX0NMQVNTLiIpOworCisgIHZhcm9ial9zZXRfdHlwZV92aXN1 YWxpemVyIChhcmd2WzBdLCBhcmd2WzFdKTsKKworICByZXR1cm4gTUlfQ01E X0RPTkU7Cit9CisKK2VudW0gbWlfY21kX3Jlc3VsdAorbWlfY21kX3Zhcl9j bGVhcl90eXBlX3Zpc3VhbGl6ZXJzIChjaGFyICpjb21tYW5kLCBjaGFyICoq YXJndiwgaW50IGFyZ2MpCit7CisgIGlmIChhcmdjICE9IDApCisgICAgZXJy b3IgKCJObyBwYXJhbWV0ZXJzIGFsbG93ZWQuIik7CisKKyAgdmFyb2JqX2Ns ZWFyX3R5cGVfdmlzdWFsaXplcnMgKCk7CisKKyAgcmV0dXJuIE1JX0NNRF9E T05FOworfQorCitlbnVtIG1pX2NtZF9yZXN1bHQKK21pX2NtZF92YXJfc2V0 X3Zpc3VhbGl6ZXIgKGNoYXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQg YXJnYykKK3sKKyAgc3RydWN0IHZhcm9iaiAqdmFyOworCisgIGlmIChhcmdj ICE9IDIpCisgICAgZXJyb3IgKCJVc2FnZTogTkFNRSBWSVNVQUxJWkVSX0NM QVNTLiIpOworCisgIHZhciA9IHZhcm9ial9nZXRfaGFuZGxlIChhcmd2WzBd KTsKKworICBpZiAodmFyID09IE5VTEwpCisgICAgZXJyb3IgKCJWYXJpYWJs ZSBvYmplY3Qgbm90IGZvdW5kIik7CisKKyAgdmFyb2JqX3NldF92aXN1YWxp emVyICh2YXIsIGFyZ3ZbMV0pOworCisgIHJldHVybiBNSV9DTURfRE9ORTsK K30KKworZW51bSBtaV9jbWRfcmVzdWx0CiBtaV9jbWRfdmFyX3NldF9mcm96 ZW4gKGNoYXIgKmNvbW1hbmQsIGNoYXIgKiphcmd2LCBpbnQgYXJnYykKIHsK ICAgc3RydWN0IHZhcm9iaiAqdmFyOwpAQCAtNjk3LDYgKzczNywyNiBAQCB2 YXJvYmpfdXBkYXRlX29uZSAoc3RydWN0IHZhcm9iaiAqdmFyLCBlbnVtIHBy aW50X3ZhbHVlcyBwcmludF92YWx1ZXMsCiAgICAgICAgICAgdWlfb3V0X2Zp ZWxkX2ludCAodWlvdXQsICJuZXdfbnVtX2NoaWxkcmVuIiwgCiAJCQkgICAg dmFyb2JqX2dldF9udW1fY2hpbGRyZW4gKHItPnZhcm9iaikpOwogCX0KKwor ICAgICAgaWYgKHItPmNoaWxkcmVuX2NoYW5nZWQpCisJeworCSAgaW50IGl4 OworCSAgc3RydWN0IHZhcm9iaiAqY2hpbGQ7CisJICBzdHJ1Y3QgY2xlYW51 cCAqY2xlYW51cCA9CisJICAgIG1ha2VfY2xlYW51cF91aV9vdXRfbGlzdF9i ZWdpbl9lbmQgKHVpb3V0LCAiY2hpbGRyZW4iKTsKKworCSAgVkVDICh2YXJv YmpfcCkqIGNoaWxkcmVuID0gdmFyb2JqX2xpc3RfY2hpbGRyZW4gKHItPnZh cm9iaik7CisKKwkgIGZvciAoaXggPSAwOyBWRUNfaXRlcmF0ZSAodmFyb2Jq X3AsIGNoaWxkcmVuLCBpeCwgY2hpbGQpOyArK2l4KQorCSAgICB7CisJICAg ICAgc3RydWN0IGNsZWFudXAgKmNsZWFudXBfY2hpbGQ7CisJICAgICAgY2xl YW51cF9jaGlsZCA9IG1ha2VfY2xlYW51cF91aV9vdXRfdHVwbGVfYmVnaW5f ZW5kICh1aW91dCwgTlVMTCk7CisJICAgICAgcHJpbnRfdmFyb2JqIChjaGls ZCwgcHJpbnRfdmFsdWVzLCAxIC8qIHByaW50IGV4cHJlc3Npb24gKi8pOwor CSAgICAgIGRvX2NsZWFudXBzIChjbGVhbnVwX2NoaWxkKTsKKwkgICAgfQor CisJICBkb19jbGVhbnVwcyAoY2xlYW51cCk7CisJfQogICAKICAgICAgIGlm IChtaV92ZXJzaW9uICh1aW91dCkgPiAxKQogCWRvX2NsZWFudXBzIChjbGVh bnVwKTsKZGlmZiAtLWdpdCBhL2dkYi9taS9taS1jbWRzLmMgYi9nZGIvbWkv bWktY21kcy5jCmluZGV4IGU5NDY0OGIuLjI0ODhlNDAgMTAwNjQ0Ci0tLSBh L2dkYi9taS9taS1jbWRzLmMKKysrIGIvZ2RiL21pL21pLWNtZHMuYwpAQCAt MTU5LDYgKzE1OSwxMCBAQCBzdHJ1Y3QgbWlfY21kIG1pX2NtZHNbXSA9CiAg IHsgInZhci1saXN0LWNoaWxkcmVuIiwgeyBOVUxMLCAwIH0sIG1pX2NtZF92 YXJfbGlzdF9jaGlsZHJlbn0sCiAgIHsgInZhci1zZXQtZm9ybWF0IiwgeyBO VUxMLCAwIH0sIG1pX2NtZF92YXJfc2V0X2Zvcm1hdH0sCiAgIHsgInZhci1z ZXQtZnJvemVuIiwgeyBOVUxMLCAwIH0sIG1pX2NtZF92YXJfc2V0X2Zyb3pl bn0sCisgIHsgInZhci1zZXQtdHlwZS12aXN1YWxpemVyIiwgeyBOVUxMLCAw IH0sIG1pX2NtZF92YXJfc2V0X3R5cGVfdmlzdWFsaXplcn0sCisgIHsgInZh ci1jbGVhci10eXBlLXZpc3VhbGl6ZXJzIiwgeyBOVUxMLCAwIH0sIAorICAg IG1pX2NtZF92YXJfY2xlYXJfdHlwZV92aXN1YWxpemVyc30sCisgIHsgInZh ci1zZXQtdmlzdWFsaXplciIsIHsgTlVMTCwgMCB9LCBtaV9jbWRfdmFyX3Nl dF92aXN1YWxpemVyfSwKICAgeyAidmFyLXNob3ctYXR0cmlidXRlcyIsIHsg TlVMTCwgMCB9LCBtaV9jbWRfdmFyX3Nob3dfYXR0cmlidXRlc30sCiAgIHsg InZhci1zaG93LWZvcm1hdCIsIHsgTlVMTCwgMCB9LCBtaV9jbWRfdmFyX3No b3dfZm9ybWF0fSwKICAgeyAidmFyLXVwZGF0ZSIsIHsgTlVMTCwgMCB9LCBt aV9jbWRfdmFyX3VwZGF0ZX0sCmRpZmYgLS1naXQgYS9nZGIvbWkvbWktY21k cy5oIGIvZ2RiL21pL21pLWNtZHMuaAppbmRleCAwODdiNWU0Li45Yjc5MDc3 IDEwMDY0NAotLS0gYS9nZGIvbWkvbWktY21kcy5oCisrKyBiL2dkYi9taS9t aS1jbWRzLmgKQEAgLTExMCw2ICsxMTAsOSBAQCBleHRlcm4gbWlfY21kX2Fy Z3ZfZnR5cGUgbWlfY21kX3Zhcl9pbmZvX3R5cGU7CiBleHRlcm4gbWlfY21k X2FyZ3ZfZnR5cGUgbWlfY21kX3Zhcl9saXN0X2NoaWxkcmVuOwogZXh0ZXJu IG1pX2NtZF9hcmd2X2Z0eXBlIG1pX2NtZF92YXJfc2V0X2Zvcm1hdDsKIGV4 dGVybiBtaV9jbWRfYXJndl9mdHlwZSBtaV9jbWRfdmFyX3NldF9mcm96ZW47 CitleHRlcm4gbWlfY21kX2FyZ3ZfZnR5cGUgbWlfY21kX3Zhcl9zZXRfdHlw ZV92aXN1YWxpemVyOworZXh0ZXJuIG1pX2NtZF9hcmd2X2Z0eXBlIG1pX2Nt ZF92YXJfY2xlYXJfdHlwZV92aXN1YWxpemVyczsKK2V4dGVybiBtaV9jbWRf YXJndl9mdHlwZSBtaV9jbWRfdmFyX3NldF92aXN1YWxpemVyOwogZXh0ZXJu IG1pX2NtZF9hcmd2X2Z0eXBlIG1pX2NtZF92YXJfc2hvd19hdHRyaWJ1dGVz OwogZXh0ZXJuIG1pX2NtZF9hcmd2X2Z0eXBlIG1pX2NtZF92YXJfc2hvd19m b3JtYXQ7CiBleHRlcm4gbWlfY21kX2FyZ3ZfZnR5cGUgbWlfY21kX3Zhcl91 cGRhdGU7CmRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5h bC5oIGIvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAppbmRleCA1ZmQ2 ODBiLi5mZDg0MWVkIDEwMDY0NAotLS0gYS9nZGIvcHl0aG9uL3B5dGhvbi1p bnRlcm5hbC5oCisrKyBiL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgK QEAgLTc4LDQgKzc4LDYgQEAgdm9pZCBnZGJweV9pbml0aWFsaXplX2Jsb2Nr cyAodm9pZCk7CiB2b2lkIGdkYnB5X2JyZWFrcG9pbnRfY3JlYXRlZCAoaW50 KTsKIHZvaWQgZ2RicHlfYnJlYWtwb2ludF9kZWxldGVkIChpbnQpOwogCitz dHJ1Y3QgY2xlYW51cCAqbWFrZV9jbGVhbnVwX3B5X2RlY3JlZiAoUHlPYmpl Y3QgKnB5KTsKKwogI2VuZGlmIC8qIEdEQl9QWVRIT05fSU5URVJOQUxfSCAq LwpkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRob24uYyBiL2dkYi9weXRo b24vcHl0aG9uLmMKaW5kZXggNzc3MmE0Mi4uYzYxODgzZiAxMDA2NDQKLS0t IGEvZ2RiL3B5dGhvbi9weXRob24uYworKysgYi9nZGIvcHl0aG9uL3B5dGhv bi5jCkBAIC01NTMsNiArNTUzLDIxIEBAIGdkYnB5X3N3aXRjaF90b190aHJl YWQgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKICAgUHlfUkVU VVJOX05PTkU7CiB9CiAKK3N0YXRpYyB2b2lkCitweV9kZWNyZWYgKHZvaWQg KnApCit7CisgIFB5T2JqZWN0ICpweSA9IHA7CisgIGlmIChweSkKKyAgICB7 CisgICAgICBQeV9ERUNSRUYgKHB5KTsKKyAgICB9Cit9CisKK3N0cnVjdCBj bGVhbnVwICptYWtlX2NsZWFudXBfcHlfZGVjcmVmIChQeU9iamVjdCAqcHkp Cit7CisgIHJldHVybiBtYWtlX2NsZWFudXAgKHB5X2RlY3JlZiwgKHZvaWQg KilweSk7Cit9CisKIAwKIAogdm9pZApkaWZmIC0tZ2l0IGEvZ2RiL3Zhcm9i ai5jIGIvZ2RiL3Zhcm9iai5jCmluZGV4IDBiNDM0ZWUuLjM0ZjEzYWMgMTAw NjQ0Ci0tLSBhL2dkYi92YXJvYmouYworKysgYi9nZGIvdmFyb2JqLmMKQEAg LTI4LDEyICsyOCwyMCBAQAogCiAjaW5jbHVkZSAiZ2RiX2Fzc2VydC5oIgog I2luY2x1ZGUgImdkYl9zdHJpbmcuaCIKKyNpbmNsdWRlICJnZGJfcmVnZXgu aCIKIAogI2luY2x1ZGUgInZhcm9iai5oIgogI2luY2x1ZGUgInZlYy5oIgog I2luY2x1ZGUgImdkYnRocmVhZC5oIgogI2luY2x1ZGUgImluZmVyaW9yLmgi CiAKKyNpZiBIQVZFX1BZVEhPTgorI2luY2x1ZGUgInB5dGhvbi9weXRob24u aCIKKyNpbmNsdWRlICJweXRob24vcHl0aG9uLWludGVybmFsLmgiCisjZWxz ZQordHlwZWRlZiBpbnQgUHlPYmplY3Q7CisjZW5kaWYKKwogLyogTm9uLXpl cm8gaWYgd2Ugd2FudCB0byBzZWUgdHJhY2Ugb2YgdmFyb2JqIGxldmVsIHN0 dWZmLiAgKi8KIAogaW50IHZhcm9iamRlYnVnID0gMDsKQEAgLTEzNyw2ICsx NDUsMTIgQEAgc3RydWN0IHZhcm9iagogICAvKiBDaGlsZHJlbiBvZiB0aGlz IG9iamVjdC4gICovCiAgIFZFQyAodmFyb2JqX3ApICpjaGlsZHJlbjsKIAor ICAvKiBXaGV0aGVyIHRoZSBjaGlsZHJlbiBvZiB0aGlzIHZhcm9iaiB3ZXJl IHJlcXVlc3RlZC4gIFRoaXMgZmllbGQgaXMKKyAgICAgdXNlZCB0byBkZWNp ZGUgaWYgZHluYW1pYyB2YXJvYmogc2hvdWxkIHJlY29tcHV0ZSB0aGVpciBj aGlsZHJlbi4KKyAgICAgSW4gdGhlIGV2ZW50IHRoYXQgdGhlIGZyb250ZW5k IG5ldmVyIGFza2VkIGZvciB0aGUgY2hpbGRyZW4sIHdlCisgICAgIGNhbiBh dm9pZCB0aGF0LiAgKi8KKyAgaW50IGNoaWxkcmVuX3JlcXVlc3RlZDsKKwog ICAvKiBEZXNjcmlwdGlvbiBvZiB0aGUgcm9vdCB2YXJpYWJsZS4gUG9pbnRz IHRvIHJvb3QgdmFyaWFibGUgZm9yIGNoaWxkcmVuLiAqLwogICBzdHJ1Y3Qg dmFyb2JqX3Jvb3QgKnJvb3Q7CiAKQEAgLTE1OCw2ICsxNzIsMTYgQEAgc3Ry dWN0IHZhcm9iagogICAgICBub3QgZmV0Y2hlZCBpZiBlaXRoZXIgdGhlIHZh cmlhYmxlIGlzIGZyb3plbiwgb3IgYW55IHBhcmVudHMgaXMKICAgICAgZnJv emVuLiAgKi8KICAgaW50IG5vdF9mZXRjaGVkOworCisgIC8qIEEgUHl0aG9u IG9iamVjdCB1c2VkIHRvIGNvbXB1dGUgdGhlIHN0cmluZyB2YWx1ZSBvZiB2 YXJvYmouICBNdXN0CisgICAgIGJlIGEgY2FsbGFibGUsIGFjY2VwdGluZyBh IHNpbmdsZSBwYXJhbWV0ZXIgLS0gR2RiLlZhbHVlIGluc3RhbmNlLiAKKyAg ICAgTXVzdCByZXR1cm4gYSBzdHJpbmcuICAqLworICBQeU9iamVjdCAqdmFs dWVfZm9ybWF0dGVyOworICAvKiBBIFB5dGhvbiBvYmplY3QgdXNlZCB0byBj b21wdXRlIHRoZSBsaXN0IG9mIGNoaWxkcmVuLiAgTXVzdCBiZQorICAgICBh IGNhbGxhYmxlLCBhY2NlcHRpbmcgYSBzaW5nbGUgcGFyYW1ldGVyIC0tIEdk Yi5WYWx1ZSBpbnN0YW5jZS4KKyAgICAgU2hvdWxkIHJldHVybiBhIHNlcXVl bmNlIG9mIEdkYi5WYWx1ZSBpbnN0YW5jZXMuICBNYXkgcmV0dXJuCisgICAg IGVtcHR5IHNlcXVlbmNlLCBidXQgbWF5IG5vdCByZXR1cm4gTm9uZSwgb3Ig bm9uLXNlcXVlbmNlLiAgKi8KKyAgUHlPYmplY3QgKmNoaWxkcmVuX2xpc3Rl cjsKIH07CiAKIHN0cnVjdCBjcHN0YWNrCkBAIC0xNzQsNiArMTk4LDE0IEBA IHN0cnVjdCB2bGlzdAogICBzdHJ1Y3Qgdmxpc3QgKm5leHQ7CiB9OwogCit0 eXBlZGVmIHN0cnVjdCB0eXBlX3Zpc3VhbGl6ZXIKK3sKKyAgY2hhciAqdHlw ZV9yZWdleHA7CisgIGNoYXIgKnZpc3VhbGl6ZXI7Cit9IHR5cGVfdmlzdWFs aXplcjsKKworREVGX1ZFQ19PICh0eXBlX3Zpc3VhbGl6ZXIpOworCiAvKiBQ cml2YXRlIGZ1bmN0aW9uIHByb3RvdHlwZXMgKi8KIAogLyogSGVscGVyIGZ1 bmN0aW9ucyBmb3IgdGhlIGFib3ZlIHN1YmNvbW1hbmRzLiAqLwpAQCAtMTg5 LDYgKzIyMSwxMCBAQCBzdGF0aWMgdm9pZCB1bmluc3RhbGxfdmFyaWFibGUg KHN0cnVjdCB2YXJvYmogKik7CiAKIHN0YXRpYyBzdHJ1Y3QgdmFyb2JqICpj cmVhdGVfY2hpbGQgKHN0cnVjdCB2YXJvYmogKiwgaW50LCBjaGFyICopOwog CitzdGF0aWMgc3RydWN0IHZhcm9iaiAqCitjcmVhdGVfY2hpbGRfd2l0aF92 YWx1ZSAoc3RydWN0IHZhcm9iaiAqcGFyZW50LCBpbnQgaW5kZXgsIGNvbnN0 IGNoYXIgKm5hbWUsCisJCQkgc3RydWN0IHZhbHVlICp2YWx1ZSk7CisKIC8q IFV0aWxpdHkgcm91dGluZXMgKi8KIAogc3RhdGljIHN0cnVjdCB2YXJvYmog Km5ld192YXJpYWJsZSAodm9pZCk7CkBAIC0yMTQsNiArMjUwLDggQEAgc3Rh dGljIGNoYXIgKmNwcG9wIChzdHJ1Y3QgY3BzdGFjayAqKnBzdGFjayk7CiBz dGF0aWMgaW50IGluc3RhbGxfbmV3X3ZhbHVlIChzdHJ1Y3QgdmFyb2JqICp2 YXIsIHN0cnVjdCB2YWx1ZSAqdmFsdWUsIAogCQkJICAgICAgaW50IGluaXRp YWwpOwogCitzdGF0aWMgdm9pZCBpbnN0YWxsX2RlZmF1bHRfdmlzdWFsaXpl ciAoc3RydWN0IHZhcm9iaiAqdmFyKTsKKwogLyogTGFuZ3VhZ2Utc3BlY2lm aWMgcm91dGluZXMuICovCiAKIHN0YXRpYyBlbnVtIHZhcm9ial9sYW5ndWFn ZXMgdmFyaWFibGVfbGFuZ3VhZ2UgKHN0cnVjdCB2YXJvYmogKnZhcik7CkBA IC0yMzIsMTIgKzI3MCwxNiBAQCBzdGF0aWMgY2hhciAqbXlfdmFsdWVfb2Zf dmFyaWFibGUgKHN0cnVjdCB2YXJvYmogKnZhciwKIAkJCQkgICBlbnVtIHZh cm9ial9kaXNwbGF5X2Zvcm1hdHMgZm9ybWF0KTsKIAogc3RhdGljIGNoYXIg KnZhbHVlX2dldF9wcmludF92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwK LQkJCQkgICAgZW51bSB2YXJvYmpfZGlzcGxheV9mb3JtYXRzIGZvcm1hdCk7 CisJCQkJICAgIGVudW0gdmFyb2JqX2Rpc3BsYXlfZm9ybWF0cyBmb3JtYXQs CisJCQkJICAgIFB5T2JqZWN0ICp2YWx1ZV9mb3JtYXR0ZXIpOwogCiBzdGF0 aWMgaW50IHZhcm9ial92YWx1ZV9pc19jaGFuZ2VhYmxlX3AgKHN0cnVjdCB2 YXJvYmogKnZhcik7CiAKIHN0YXRpYyBpbnQgaXNfcm9vdF9wIChzdHJ1Y3Qg dmFyb2JqICp2YXIpOwogCitzdGF0aWMgc3RydWN0IHZhcm9iaiAqCit2YXJv YmpfYWRkX2NoaWxkIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGNvbnN0IGNoYXIg Km5hbWUsIHN0cnVjdCB2YWx1ZSAqdmFsdWUpOworCiAvKiBDIGltcGxlbWVu dGF0aW9uICovCiAKIHN0YXRpYyBpbnQgY19udW1iZXJfb2ZfY2hpbGRyZW4g KHN0cnVjdCB2YXJvYmogKnZhcik7CkBAIC00MDUsNiArNDQ3LDggQEAgc3Rh dGljIGludCByb290Y291bnQgPSAwOwkvKiBudW1iZXIgb2Ygcm9vdCB2YXJv YmpzIGluIHRoZSBsaXN0ICovCiAvKiBQb2ludGVyIHRvIHRoZSB2YXJvYmog aGFzaCB0YWJsZSAoYnVpbHQgYXQgcnVuIHRpbWUpICovCiBzdGF0aWMgc3Ry dWN0IHZsaXN0ICoqdmFyb2JqX3RhYmxlOwogCitzdGF0aWMgVkVDICh0eXBl X3Zpc3VhbGl6ZXIpICp0eXBlX3Zpc3VhbGl6ZXJzID0gTlVMTDsKKwogLyog SXMgdGhlIHZhcmlhYmxlIFggb25lIG9mIG91ciAiZmFrZSIgY2hpbGRyZW4/ ICovCiAjZGVmaW5lIENQTFVTX0ZBS0VfQ0hJTEQoeCkgXAogKCh4KSAhPSBO VUxMICYmICh4KS0+dHlwZSA9PSBOVUxMICYmICh4KS0+dmFsdWUgPT0gTlVM TCkKQEAgLTU2NSw2ICs2MDksNyBAQCB2YXJvYmpfY3JlYXRlIChjaGFyICpv YmpuYW1lLAogICAgIH0KIAogICBkaXNjYXJkX2NsZWFudXBzIChvbGRfY2hh aW4pOworICBpbnN0YWxsX2RlZmF1bHRfdmlzdWFsaXplciAodmFyKTsKICAg cmV0dXJuIHZhcjsKIH0KIApAQCAtNjk0LDEyICs3MzksMTAzIEBAIHZhcm9i al9zZXRfZGlzcGxheV9mb3JtYXQgKHN0cnVjdCB2YXJvYmogKnZhciwKICAg ICAgICYmIHZhci0+dmFsdWUgJiYgIXZhbHVlX2xhenkgKHZhci0+dmFsdWUp KQogICAgIHsKICAgICAgIGZyZWUgKHZhci0+cHJpbnRfdmFsdWUpOwotICAg ICAgdmFyLT5wcmludF92YWx1ZSA9IHZhbHVlX2dldF9wcmludF92YWx1ZSAo dmFyLT52YWx1ZSwgdmFyLT5mb3JtYXQpOworICAgICAgdmFyLT5wcmludF92 YWx1ZSA9IHZhbHVlX2dldF9wcmludF92YWx1ZSAodmFyLT52YWx1ZSwgdmFy LT5mb3JtYXQsCisJCQkJCQl2YXItPnZhbHVlX2Zvcm1hdHRlcik7CiAgICAg fQogCiAgIHJldHVybiB2YXItPmZvcm1hdDsKIH0KIAordm9pZCAKK3Zhcm9i al9zZXRfdmlzdWFsaXplciAoc3RydWN0IHZhcm9iaiAqdmFyLCBjb25zdCBj aGFyICp2aXN1YWxpemVyKQoreworI2lmIEhBVkVfUFlUSE9OCisgIFB5T2Jq ZWN0ICpweXRob25fbWFpbjsKKyAgUHlPYmplY3QgKmdsb2JhbDsKKyAgUHlP YmplY3QgKnZjbGFzczsKKyAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87CisK KyAgLyogSWYgdGhlcmUgYXJlIGFueSBjaGlsZHJlbiBub3csIHdpcGUgdGhl bS4gICovCisgIHZhcm9ial9kZWxldGUgKHZhciwgTlVMTCwgMSAvKiBjaGls ZHJlbiBvbmx5ICovKTsKKworICBpZiAoc3RyY21wICh2aXN1YWxpemVyLCAi bm9uZSIpID09IDApCisgICAgeworICAgICAgUHlfWERFQ1JFRiAodmFyLT52 YWx1ZV9mb3JtYXR0ZXIpOworICAgICAgUHlfWERFQ1JFRiAodmFyLT5jaGls ZHJlbl9saXN0ZXIpOworCisgICAgICB2YXItPnZhbHVlX2Zvcm1hdHRlciA9 IDA7CisgICAgICB2YXItPmNoaWxkcmVuX2xpc3RlciA9IDA7CisgICAgIAor ICAgICAgaW5zdGFsbF9uZXdfdmFsdWUgKHZhciwgdmFyLT52YWx1ZSwgMSk7 CisgICAgICByZXR1cm47CisgICAgfQorICBlbHNlIGlmIChzdHJjbXAgKHZp c3VhbGl6ZXIsICJkZWZhdWx0IikgPT0gMCkKKyAgICB7CisgICAgICBpbnN0 YWxsX2RlZmF1bHRfdmlzdWFsaXplciAgKHZhcik7CisgICAgICByZXR1cm47 CisgICAgfQorICAgIAorICBweXRob25fbWFpbiA9IFB5SW1wb3J0X0ltcG9y dE1vZHVsZSAoIl9fbWFpbl9fIik7CisgIGJhY2tfdG8gPSBtYWtlX2NsZWFu dXBfcHlfZGVjcmVmIChweXRob25fbWFpbik7CisKKyAgZ2xvYmFsID0gUHlN b2R1bGVfR2V0RGljdCAocHl0aG9uX21haW4pOworICAvKiBUT0RPOiBhbGxv dyB0byByZXNldCB0aGluZ3MgYnkgcGFzc2luZyBlbXB0eSBzdHJpbmcuICAq LworICB2Y2xhc3MgPSBQeURpY3RfR2V0SXRlbVN0cmluZyAoZ2xvYmFsLCB2 aXN1YWxpemVyKTsKKworICBpZiAoIXZjbGFzcykKKyAgICBlcnJvciAoIlRo ZSBzcGVjaWZpZWQgdmlzdWFsaXplciBjbGFzcyBjYW5ub3QgYmUgZm91bmQi KTsKKyAgZWxzZQorICAgIHsKKyAgICAgIFB5T2JqZWN0ICp0dXBsZTsKKyAg ICAgIFB5T2JqZWN0ICpkaWN0OworICAgICAgUHlPYmplY3QgKmluc3RhbmNl OworCisgICAgICB0dXBsZSA9IFB5VHVwbGVfTmV3ICgwKTsKKyAgICAgIG1h a2VfY2xlYW51cF9weV9kZWNyZWYgKHR1cGxlKTsKKyAgICAgIGRpY3QgPSBQ eURpY3RfTmV3ICgpOworICAgICAgbWFrZV9jbGVhbnVwX3B5X2RlY3JlZiAo ZGljdCk7CisgICAgICBpbnN0YW5jZSA9IFB5T2JqZWN0X0NhbGwgKHZjbGFz cywgdHVwbGUsIGRpY3QpOworICAgICAgbWFrZV9jbGVhbnVwX3B5X2RlY3Jl ZiAoaW5zdGFuY2UpOworCisgICAgICBpZiAoIWluc3RhbmNlKQorCXsKKwkg IFB5RXJyX1ByaW50ICgpOworCSAgZXJyb3IgKCJGYWlsZWQgdG8gaW5zdGFu dGlhdGUgdGhlIHZpc3VhbGl6ZXIiKTsKKwl9CisKKyAgICAgIFB5X1hERUNS RUYgKHZhci0+dmFsdWVfZm9ybWF0dGVyKTsKKyAgICAgIFB5X1hERUNSRUYg KHZhci0+Y2hpbGRyZW5fbGlzdGVyKTsKKworICAgICAgdmFyLT52YWx1ZV9m b3JtYXR0ZXIgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nIChpbnN0YW5jZSwg InRvX3N0cmluZyIpOworICAgICAgdmFyLT5jaGlsZHJlbl9saXN0ZXIgPSBQ eU9iamVjdF9HZXRBdHRyU3RyaW5nIChpbnN0YW5jZSwgImNoaWxkcmVuIik7 CisgICAgIAorICAgICAgaW5zdGFsbF9uZXdfdmFsdWUgKHZhciwgdmFyLT52 YWx1ZSwgMSk7CisgICAgfQorICBkb19jbGVhbnVwcyAoYmFja190byk7Cisj ZWxzZQorICBlcnJvciAoIlB5dGhvbiBzdXBwb3J0IHJlcXVpcmVkIik7Cisj ZW5kaWYKK30KKwordm9pZCAKK3Zhcm9ial9zZXRfdHlwZV92aXN1YWxpemVy IChjb25zdCBjaGFyICp0eXBlX3JlZ2V4cCwgY29uc3QgY2hhciAqdmlzdWFs aXplcikKK3sKKyNpZiBIQVZFX1BZVEhPTgorICB0eXBlX3Zpc3VhbGl6ZXIg dDsKKyAgdC50eXBlX3JlZ2V4cCA9IHhzdHJkdXAgKHR5cGVfcmVnZXhwKTsK KyAgdC52aXN1YWxpemVyID0geHN0cmR1cCAodmlzdWFsaXplcik7CisgIFZF Q19zYWZlX3B1c2ggKHR5cGVfdmlzdWFsaXplciwgdHlwZV92aXN1YWxpemVy cywgJnQpOworI2Vsc2UKKyAgZXJyb3IgKCJQeXRob24gc3VwcG9ydCByZXF1 aXJlZCIpOworI2VuZGlmCit9CisKK3ZvaWQgCit2YXJvYmpfY2xlYXJfdHlw ZV92aXN1YWxpemVycyAoKQoreworICBWRUNfZnJlZSAodHlwZV92aXN1YWxp emVyLCB0eXBlX3Zpc3VhbGl6ZXJzKTsKK30KKwogZW51bSB2YXJvYmpfZGlz cGxheV9mb3JtYXRzCiB2YXJvYmpfZ2V0X2Rpc3BsYXlfZm9ybWF0IChzdHJ1 Y3QgdmFyb2JqICp2YXIpCiB7CkBAIC03NDgsNiArODg0LDEwMiBAQCB2YXJv YmpfZ2V0X251bV9jaGlsZHJlbiAoc3RydWN0IHZhcm9iaiAqdmFyKQogICBy ZXR1cm4gdmFyLT5udW1fY2hpbGRyZW47CiB9CiAKK3N0YXRpYworaW50IHVw ZGF0ZV9keW5hbWljX3Zhcm9ial9jaGlsZHJlbiAoc3RydWN0IHZhcm9iaiAq dmFyLAorCQkJCSAgICBWRUMgKHZhcm9ial9wKSAqKmNoYW5nZWQsCisJCQkJ ICAgIFZFQyAodmFyb2JqX3ApICoqbmV3X2FuZF91bmNoYWdlZCkKKworewor I2lmIEhBVkVfUFlUSE9OCisgIC8qIEZJWE1FOiB3ZSAqbWlnaHQqIHdhbnQg dG8gcHJvdmlkZSB0aGlzIGZ1bmN0aW9uYWxpdHkgYXMKKyAgICAgYSBzdGFu ZGFsb25lIGZ1bmN0aW9uLCBzbyB0aGF0IG90aGVyIGludGVyZXN0ZWQgcGFy dGllcworICAgICB0aGFuIHZhcm9iaiBjb2RlIGNhbiBiZW5lZml0IGZvciB0 aGlzLiAgKi8KKyAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87CisgIFB5T2Jq ZWN0ICpweV92YWx1ZTsKKyAgUHlPYmplY3QgKnR1cGxlOworICBQeU9iamVj dCAqY2hpbGRyZW47CisgIGludCBuLCBpOworICBpbnQgY2hpbGRyZW5fY2hh bmdlZCA9IDA7CisgICAgCisgIHR1cGxlID0gUHlUdXBsZV9OZXcgKDEpOwor ICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwX3B5X2RlY3JlZiAodHVwbGUpOwor ICAvKiBTdGVhbHMgdGhlIHJlZmVyZW5jZS4gICovCisgIFB5VHVwbGVfU2V0 SXRlbSAodHVwbGUsIDAsIGdkYl9vd25lZF92YWx1ZV90b192YWx1ZV9vYmpl Y3QgKHZhci0+dmFsdWUpKTsKKyAgY2hpbGRyZW4gPSBQeU9iamVjdF9DYWxs ICh2YXItPmNoaWxkcmVuX2xpc3RlciwgdHVwbGUsIFB5X05vbmUpOworICBt YWtlX2NsZWFudXBfcHlfZGVjcmVmIChjaGlsZHJlbik7CisgICAgICAKKyAg aWYgKCFjaGlsZHJlbikKKyAgICB7CisgICAgICAvKiBGSVhNRTogbmVlZCBh IHdheSB0byB0cmFuc2xhdGUgcHl0aG9uIGV4Y2VwdGlvbnMKKwkgaW50byBn ZGIgZXhjZXB0aW9ucy4gKi8KKyAgICAgIFB5RXJyX1ByaW50ICgpOworICAg ICAgZXJyb3IgKCJOdWxsIHZhbHVlIHJldHVybmVkIGZvciBjaGlsZHJlbiIp OworICAgIH0KKyAgCisgIGlmICghUHlTZXF1ZW5jZV9DaGVjayAoY2hpbGRy ZW4pKQorICAgIGVycm9yICgiUmV0dXJuZWQgdmFsdWUgaXMgYSBzZXF1ZW5j ZSIpOworICAKKyAgbiA9IFB5U2VxdWVuY2VfU2l6ZSAoY2hpbGRyZW4pOwor ICAKKyAgZm9yIChpID0gMDsgaSA8IG47ICsraSkKKyAgICB7CisgICAgICBQ eU9iamVjdCAqaXRlbSA9IFB5U2VxdWVuY2VfR2V0SXRlbSAoY2hpbGRyZW4s IGkpOworICAgICAgUHlPYmplY3QgKnB5X3Y7CisgICAgICBzdHJ1Y3QgdmFs dWUgKnY7CisgICAgICBjaGFyICpuYW1lOworICAgICAgCisgICAgICBpZiAo IVB5QXJnX1BhcnNlVHVwbGUgKGl0ZW0sICJzTyIsICZuYW1lLCAmcHlfdikp CisJZXJyb3IgKCJJbnZhbGlkIGl0ZW0gZnJvbSB0aGUgY2hpbGQgbGlzdCIp OworICAgICAgCisgICAgICBpZiAoIVB5T2JqZWN0X0lzSW5zdGFuY2UgKHB5 X3YsIChQeU9iamVjdCAqKSZ2YWx1ZV9vYmplY3RfdHlwZSkpCisJZXJyb3Ig KCJjaGlsZCBsaXN0IGhhcyBvYmplY3Qgb2YgaW52YWxpZCB0eXBlIik7Cisg ICAgICAKKyAgICAgIHYgPSB2YWx1ZV9vYmplY3RfdG9fdmFsdWUgKHB5X3Yp OworCisgICAgICAvKiBUT0RPOiBUaGlzIGFzc3VtZSB0aGUgbmFtZSBvZiB0 aGUgaS10aCBjaGlsZCBuZXZlciBjaGFuZ2VzLiAgKi8KKworICAgICAgLyog Tm93IHNlZSB3aGF0IHRvIGRvIGhlcmUuICAqLworICAgICAgaWYgKFZFQ19s ZW5ndGggKHZhcm9ial9wLCB2YXItPmNoaWxkcmVuKSA8IGkgKyAxKQorCXsK KwkgIC8qIFRoZXJlJ3Mgbm8gY2hpbGQgeWV0LiAgKi8KKwkgIHN0cnVjdCB2 YXJvYmogKmNoaWxkID0gdmFyb2JqX2FkZF9jaGlsZCAodmFyLCBuYW1lLCB2 KTsKKwkgIGlmIChuZXdfYW5kX3VuY2hhZ2VkKQorCSAgICBWRUNfc2FmZV9w dXNoICh2YXJvYmpfcCwgKm5ld19hbmRfdW5jaGFnZWQsIGNoaWxkKTsKKwkg IGNoaWxkcmVuX2NoYW5nZWQgPSAxOworCX0KKyAgICAgIGVsc2UgCisJewor CSAgdmFyb2JqX3AgZXhpc3RpbmcgPSBWRUNfaW5kZXggKHZhcm9ial9wLCB2 YXItPmNoaWxkcmVuLCBpKTsKKwkgIGlmIChpbnN0YWxsX25ld192YWx1ZSAo ZXhpc3RpbmcsIHYsIDApICYmIGNoYW5nZWQpCisJICAgIHsKKwkgICAgICBp ZiAoY2hhbmdlZCkKKwkJVkVDX3NhZmVfcHVzaCAodmFyb2JqX3AsICpjaGFu Z2VkLCBleGlzdGluZyk7CisJICAgIH0KKwkgIGVsc2UKKwkgICAgeworCSAg ICAgIGlmIChuZXdfYW5kX3VuY2hhZ2VkKQorCQlWRUNfc2FmZV9wdXNoICh2 YXJvYmpfcCwgKm5ld19hbmRfdW5jaGFnZWQsIGV4aXN0aW5nKTsKKwkgICAg fQorCX0KKyAgICB9CisgIGlmIChuIDwgVkVDX2xlbmd0aCAodmFyb2JqX3As IHZhci0+Y2hpbGRyZW4pKQorICAgIHsKKyAgICAgIGludCBpOworICAgICAg Y2hpbGRyZW5fY2hhbmdlZCA9IDE7CisgICAgICBmb3IgKGkgPSBuOyBpIDwg VkVDX2xlbmd0aCAodmFyb2JqX3AsIHZhci0+Y2hpbGRyZW4pOyArK2kpCisJ dmFyb2JqX2RlbGV0ZSAoVkVDX2luZGV4ICh2YXJvYmpfcCwgdmFyLT5jaGls ZHJlbiwgaSksIE5VTEwsIDApOworICAgIH0KKyAgVkVDX3RydW5jYXRlICh2 YXJvYmpfcCwgdmFyLT5jaGlsZHJlbiwgbik7CisgCisgIGRvX2NsZWFudXBz IChiYWNrX3RvKTsKKworICByZXR1cm4gY2hpbGRyZW5fY2hhbmdlZDsKKyNl bHNlCisgIGdkYl9hc3NlcnQgKDAgJiYgInNob3VsZCBuZXZlciBiZSBjYWxs ZWQgaWYgUHl0aG9uIGlzIG5vdCBlbmFibGVkIik7CisjZW5kaWYKK30KKwor CiAvKiBDcmVhdGVzIGEgbGlzdCBvZiB0aGUgaW1tZWRpYXRlIGNoaWxkcmVu IG9mIGEgdmFyaWFibGUgb2JqZWN0OwogICAgdGhlIHJldHVybiBjb2RlIGlz IHRoZSBudW1iZXIgb2Ygc3VjaCBjaGlsZHJlbiBvciAtMSBvbiBlcnJvciAq LwogCkBAIC03NTgsNiArOTkwLDE3IEBAIHZhcm9ial9saXN0X2NoaWxkcmVu IChzdHJ1Y3QgdmFyb2JqICp2YXIpCiAgIGNoYXIgKm5hbWU7CiAgIGludCBp OwogCisgIHZhci0+Y2hpbGRyZW5fcmVxdWVzdGVkID0gMTsKKworICBpZiAo dmFyLT5jaGlsZHJlbl9saXN0ZXIpCisgICAgeworICAgICAgLyogVGhpcywg aW4gdGhlb3J5LCBjYW4gcmVzdWx0IGluIHRoZSBudW1iZXIgb2YgY2hpbGRy ZW4gY2hhbmdpbmcgd2l0aG91dAorCSBmcm9udGVuZCBub3RpY2luZy4gIEJ1 dCB3ZWxsLCBjYWxsaW5nIC12YXItbGlzdC1jaGlsZHJlbiBvbiB0aGUgc2Ft ZQorCSB2YXJvYmogdHdpY2UgaXMgbm90IHNvbWV0aGluZyBhIHNhbmUgZnJv bnRlbmQgd291bGQgZG8uICAqLworICAgICAgdXBkYXRlX2R5bmFtaWNfdmFy b2JqX2NoaWxkcmVuICh2YXIsIE5VTEwsIE5VTEwpOworICAgICAgcmV0dXJu IHZhci0+Y2hpbGRyZW47ICAgICAgCisgICAgfQorCiAgIGlmICh2YXItPm51 bV9jaGlsZHJlbiA9PSAtMSkKICAgICB2YXItPm51bV9jaGlsZHJlbiA9IG51 bWJlcl9vZl9jaGlsZHJlbiAodmFyKTsKIApAQCAtNzgyLDEyICsxMDI1LDI0 IEBAIHZhcm9ial9saXN0X2NoaWxkcmVuIChzdHJ1Y3QgdmFyb2JqICp2YXIp CiAJICBuYW1lID0gbmFtZV9vZl9jaGlsZCAodmFyLCBpKTsKIAkgIGV4aXN0 aW5nID0gY3JlYXRlX2NoaWxkICh2YXIsIGksIG5hbWUpOwogCSAgVkVDX3Jl cGxhY2UgKHZhcm9ial9wLCB2YXItPmNoaWxkcmVuLCBpLCBleGlzdGluZyk7 CisJICBpbnN0YWxsX2RlZmF1bHRfdmlzdWFsaXplciAoZXhpc3RpbmcpOwog CX0KICAgICB9CiAKICAgcmV0dXJuIHZhci0+Y2hpbGRyZW47CiB9CiAKK3N0 YXRpYyBzdHJ1Y3QgdmFyb2JqICoKK3Zhcm9ial9hZGRfY2hpbGQgKHN0cnVj dCB2YXJvYmogKnZhciwgY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHZhbHVl ICp2YWx1ZSkKK3sKKyAgdmFyb2JqX3AgdiA9IGNyZWF0ZV9jaGlsZF93aXRo X3ZhbHVlICh2YXIsIAorCQkJCQlWRUNfbGVuZ3RoICh2YXJvYmpfcCwgdmFy LT5jaGlsZHJlbiksIAorCQkJCQluYW1lLCB2YWx1ZSk7CisgIFZFQ19zYWZl X3B1c2ggKHZhcm9ial9wLCB2YXItPmNoaWxkcmVuLCB2KTsKKyAgaW5zdGFs bF9kZWZhdWx0X3Zpc3VhbGl6ZXIgKHYpOworICByZXR1cm4gdjsKK30KKwog LyogT2J0YWluIHRoZSB0eXBlIG9mIGFuIG9iamVjdCBWYXJpYWJsZSBhcyBh IHN0cmluZyBzaW1pbGFyIHRvIHRoZSBvbmUgZ2RiCiAgICBwcmludHMgb24g dGhlIGNvbnNvbGUgKi8KIApAQCAtOTk0LDYgKzEyNDksMTMgQEAgaW5zdGFs bF9uZXdfdmFsdWUgKHN0cnVjdCB2YXJvYmogKnZhciwgc3RydWN0IHZhbHVl ICp2YWx1ZSwgaW50IGluaXRpYWwpCiAgICAgIGEgdHlwZS4gKi8KICAgZ2Ri X2Fzc2VydCAodmFyLT50eXBlIHx8IENQTFVTX0ZBS0VfQ0hJTEQgKHZhcikp OwogICBjaGFuZ2VhYmxlID0gdmFyb2JqX3ZhbHVlX2lzX2NoYW5nZWFibGVf cCAodmFyKTsKKworICAvKiBJZiB0aGUgdHlwZSBoYXMgY3VzdG9tIHZpc3Vh bGl6ZXIsIHdlIGNvbnNpZGVyIGl0IHRvIGJlIGFsd2F5cworICAgICBjaGFu Z2VhYmxlLiBGSVhNRTogbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBiZWhhdmlv dXIgd2lsbCBub3QKKyAgICAgbWVzcyB1cCByZWFkLXNlbnNpdGl2ZSB2YWx1 ZXMuICAqLworICBpZiAodmFyLT52YWx1ZV9mb3JtYXR0ZXIgfHwgdmFyLT5j aGlsZHJlbl9saXN0ZXIpCisgICAgY2hhbmdlYWJsZSA9IDE7CisKICAgbmVl ZF90b19mZXRjaCA9IGNoYW5nZWFibGU7CiAKICAgLyogV2UgYXJlIG5vdCBp bnRlcmVzdGVkIGluIHRoZSBhZGRyZXNzIG9mIHJlZmVyZW5jZXMsIGFuZCBn aXZlbgpAQCAtMTA1MCw3ICsxMzEyLDggQEAgaW5zdGFsbF9uZXdfdmFsdWUg KHN0cnVjdCB2YXJvYmogKnZhciwgc3RydWN0IHZhbHVlICp2YWx1ZSwgaW50 IGluaXRpYWwpCiAgICAgIGxhenkgLS0gaWYgaXQgaXMsIHRoZSBjb2RlIGFi b3ZlIGhhcyBkZWNpZGVkIHRoYXQgdGhlIHZhbHVlCiAgICAgIHNob3VsZCBu b3QgYmUgZmV0Y2hlZC4gICovCiAgIGlmICh2YWx1ZSAmJiAhdmFsdWVfbGF6 eSAodmFsdWUpKQotICAgICAgcHJpbnRfdmFsdWUgPSB2YWx1ZV9nZXRfcHJp bnRfdmFsdWUgKHZhbHVlLCB2YXItPmZvcm1hdCk7CisgICAgcHJpbnRfdmFs dWUgPSB2YWx1ZV9nZXRfcHJpbnRfdmFsdWUgKHZhbHVlLCB2YXItPmZvcm1h dCwgCisJCQkJCSB2YXItPnZhbHVlX2Zvcm1hdHRlcik7CiAKICAgLyogSWYg dGhlIHR5cGUgaXMgY2hhbmdlYWJsZSwgY29tcGFyZSB0aGUgb2xkIGFuZCB0 aGUgbmV3IHZhbHVlcy4KICAgICAgSWYgdGhpcyBpcyB0aGUgaW5pdGlhbCBh c3NpZ25tZW50LCB3ZSBkb24ndCBoYXZlIGFueSBvbGQgdmFsdWUKQEAgLTEx MTUsNiArMTM3OCwyNiBAQCBpbnN0YWxsX25ld192YWx1ZSAoc3RydWN0IHZh cm9iaiAqdmFyLCBzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBpbnQgaW5pdGlhbCkK ICAgcmV0dXJuIGNoYW5nZWQ7CiB9CiAKK3ZvaWQgaW5zdGFsbF9kZWZhdWx0 X3Zpc3VhbGl6ZXIgKHN0cnVjdCB2YXJvYmogKnZhcikKK3sKKyAgY2hhciAq dHlwZSA9IHZhcm9ial9nZXRfdHlwZSAodmFyKTsKKworICBpZiAodHlwZSkK KyAgICB7CisgICAgICB0eXBlX3Zpc3VhbGl6ZXIgKnY7CisgICAgICBpbnQg aTsKKyAgICAgIGZvciAoaSA9IDA7IFZFQ19pdGVyYXRlICh0eXBlX3Zpc3Vh bGl6ZXIsIHR5cGVfdmlzdWFsaXplcnMsIGksIHYpOyArK2kpCisJeworCSAg aWYgKHJlX2NvbXAgKHYtPnR5cGVfcmVnZXhwKSA9PSBOVUxMICYmIHJlX2V4 ZWMgKHR5cGUpID09IDEpCisJICAgIHsKKwkgICAgICB2YXJvYmpfc2V0X3Zp c3VhbGl6ZXIgKHZhciwgdi0+dmlzdWFsaXplcik7CisJICAgICAgYnJlYWs7 CisJICAgIH0KKwl9CisgICAgICB4ZnJlZSAodHlwZSk7CisgICAgfQorfQor CiAvKiBVcGRhdGUgdGhlIHZhbHVlcyBmb3IgYSB2YXJpYWJsZSBhbmQgaXRz IGNoaWxkcmVuLiAgVGhpcyBpcyBhCiAgICB0d28tcHJvbmdlZCBhdHRhY2su ICBGaXJzdCwgcmUtcGFyc2UgdGhlIHZhbHVlIGZvciB0aGUgcm9vdCdzCiAg ICBleHByZXNzaW9uIHRvIHNlZSBpZiBpdCdzIGNoYW5nZWQuICBUaGVuIGdv IGFsbCB0aGUgd2F5CkBAIC0xMTQwLDcgKzE0MjMsNyBAQCBWRUModmFyb2Jq X3VwZGF0ZV9yZXN1bHQpICp2YXJvYmpfdXBkYXRlIChzdHJ1Y3QgdmFyb2Jq ICoqdmFycCwgaW50IGV4cGxpY2l0KQogICBzdHJ1Y3QgdmFyb2JqICoqY3Y7 CiAgIHN0cnVjdCB2YXJvYmogKip0ZW1wbGlzdCA9IE5VTEw7CiAgIHN0cnVj dCB2YWx1ZSAqbmV3OwotICBWRUMgKHZhcm9ial9wKSAqc3RhY2sgPSBOVUxM OworICBWRUMgKHZhcm9ial91cGRhdGVfcmVzdWx0KSAqc3RhY2sgPSBOVUxM OwogICBWRUMgKHZhcm9ial91cGRhdGVfcmVzdWx0KSAqcmVzdWx0ID0gTlVM TDsKICAgc3RydWN0IGZyYW1lX2luZm8gKmZpOwogCkBAIC0xMTc5LDIwICsx NDYyLDgwIEBAIFZFQyh2YXJvYmpfdXBkYXRlX3Jlc3VsdCkgKnZhcm9ial91 cGRhdGUgKHN0cnVjdCB2YXJvYmogKip2YXJwLCBpbnQgZXhwbGljaXQpCiAK ICAgICAgIGlmIChuZXcgPT0gTlVMTCkKIAlyLnN0YXR1cyA9IFZBUk9CSl9O T1RfSU5fU0NPUEU7CisgICAgICByLnZhbHVlX2luc3RhbGxlZCA9IDE7CiAK LSAgICAgIGlmIChyLnR5cGVfY2hhbmdlZCB8fCByLmNoYW5nZWQpCi0JVkVD X3NhZmVfcHVzaCAodmFyb2JqX3VwZGF0ZV9yZXN1bHQsIHJlc3VsdCwgJnIp OworICAgICAgaWYgKHIudHlwZV9jaGFuZ2VkKQorCWluc3RhbGxfZGVmYXVs dF92aXN1YWxpemVyICgqdmFycCk7CiAKICAgICAgIGlmIChyLnN0YXR1cyA9 PSBWQVJPQkpfTk9UX0lOX1NDT1BFKQotCXJldHVybiByZXN1bHQ7CisJewor CSAgVkVDX3NhZmVfcHVzaCAodmFyb2JqX3VwZGF0ZV9yZXN1bHQsIHJlc3Vs dCwgJnIpOworCSAgcmV0dXJuIHJlc3VsdDsKKwl9CisgICAgICAgICAgICAK KyAgICAgIFZFQ19zYWZlX3B1c2ggKHZhcm9ial91cGRhdGVfcmVzdWx0LCBz dGFjaywgJnIpOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIHZhcm9i al91cGRhdGVfcmVzdWx0IHIgPSB7KnZhcnB9OworICAgICAgVkVDX3NhZmVf cHVzaCAodmFyb2JqX3VwZGF0ZV9yZXN1bHQsIHN0YWNrLCAmcik7CiAgICAg fQotCi0gIFZFQ19zYWZlX3B1c2ggKHZhcm9ial9wLCBzdGFjaywgKnZhcnAp OwogCiAgIC8qIFdhbGsgdGhyb3VnaCB0aGUgY2hpbGRyZW4sIHJlY29uc3Ry dWN0aW5nIHRoZW0gYWxsLiAgKi8KLSAgd2hpbGUgKCFWRUNfZW1wdHkgKHZh cm9ial9wLCBzdGFjaykpCisgIHdoaWxlICghVkVDX2VtcHR5ICh2YXJvYmpf dXBkYXRlX3Jlc3VsdCwgc3RhY2spKQogICAgIHsKLSAgICAgIHYgPSBWRUNf cG9wICh2YXJvYmpfcCwgc3RhY2spOworICAgICAgdmFyb2JqX3VwZGF0ZV9y ZXN1bHQgciA9ICooVkVDX2xhc3QgKHZhcm9ial91cGRhdGVfcmVzdWx0LCBz dGFjaykpOworICAgICAgc3RydWN0IHZhcm9iaiAqdiA9IHIudmFyb2JqOwor CisgICAgICBWRUNfcG9wICh2YXJvYmpfdXBkYXRlX3Jlc3VsdCwgc3RhY2sp OworCisgICAgICAvKiBVcGRhdGUgdGhpcyB2YXJpYWJsZSwgdW5sZXNzIGl0 J3MgYSByb290LCB3aGljaCBpcyBhbHJlYWR5CisJIHVwZGF0ZWQuICAqLwor ICAgICAgaWYgKCFyLnZhbHVlX2luc3RhbGxlZCkKKwl7CSAgCisJICBuZXcg PSB2YWx1ZV9vZl9jaGlsZCAodi0+cGFyZW50LCB2LT5pbmRleCk7CisJICBp ZiAoaW5zdGFsbF9uZXdfdmFsdWUgKHYsIG5ldywgMCAvKiB0eXBlIG5vdCBj aGFuZ2VkICovKSkKKwkgICAgeworCSAgICAgIHIuY2hhbmdlZCA9IDE7CisJ ICAgICAgdi0+dXBkYXRlZCA9IDA7CisJICAgIH0KKwl9CisKKyAgICAgIC8q IFdlIHByb2JhYmx5IHNob3VsZCBub3QgZ2V0IGNoaWxkcmVuIG9mIGEgdmFy b2JqIHRoYXQgaGFzIAorCSBjaGlsZHJlbl9saXN0ZXIsIGJ1dCBmb3Igd2hp Y2ggLXZhci1saXN0LWNoaWxkcmVuIHdhcyBuZXZlcgorCSBpbnZva2VkLiAg UHJlc3VtYWJseSwgc3VjaCB2YXJvYmogaXMgbm90IHlldCBleHBhbmRlZCBp biB0aGUKKwkgVUksIHNvIHdlIG5lZWQgbm90IGJvdGhlciBnZXR0aW5nIGl0 LiAgKi8KKyAgICAgIGlmICh2LT5jaGlsZHJlbl9saXN0ZXIpCisJeworCSAg VkVDICh2YXJvYmpfcCkgKmNoYW5nZWQgPSAwLCAqbmV3X2FuZF91bmNoYWdl ZCA9IDA7CisJICBpbnQgaTsKKwkgIHZhcm9ial9wIHRtcDsKKworCSAgaWYg KCF2LT5jaGlsZHJlbl9yZXF1ZXN0ZWQpCisJICAgIGNvbnRpbnVlOworCisJ ICBpZiAodi0+ZnJvemVuKQorCSAgICBjb250aW51ZTsKKworCSAgaWYgKHVw ZGF0ZV9keW5hbWljX3Zhcm9ial9jaGlsZHJlbiAodiwgJmNoYW5nZWQsICZu ZXdfYW5kX3VuY2hhZ2VkKSkKKwkgICAgci5jaGlsZHJlbl9jaGFuZ2VkID0g MTsKKwkgIGZvciAoaSA9IDA7IFZFQ19pdGVyYXRlICh2YXJvYmpfcCwgY2hh bmdlZCwgaSwgdG1wKTsgKytpKQorCSAgICB7CisJICAgICAgdmFyb2JqX3Vw ZGF0ZV9yZXN1bHQgciA9IHt0bXB9OworCSAgICAgIHIuY2hhbmdlZCA9IDE7 CisJICAgICAgci52YWx1ZV9pbnN0YWxsZWQgPSAxOworCSAgICAgIFZFQ19z YWZlX3B1c2ggKHZhcm9ial91cGRhdGVfcmVzdWx0LCBzdGFjaywgJnIpOwor CSAgICB9CisJICBmb3IgKGkgPSAwOyBWRUNfaXRlcmF0ZSAodmFyb2JqX3As IG5ld19hbmRfdW5jaGFnZWQsIGksIHRtcCk7ICsraSkKKwkgICAgeworCSAg ICAgIHZhcm9ial91cGRhdGVfcmVzdWx0IHIgPSB7dG1wfTsKKwkgICAgICBy LnZhbHVlX2luc3RhbGxlZCA9IDE7CisJICAgICAgVkVDX3NhZmVfcHVzaCAo dmFyb2JqX3VwZGF0ZV9yZXN1bHQsIHN0YWNrLCAmcik7CisJICAgIH0KKwkg IGlmIChyLmNoYW5nZWQgfHwgci5jaGlsZHJlbl9jaGFuZ2VkKQorCSAgICBW RUNfc2FmZV9wdXNoICh2YXJvYmpfdXBkYXRlX3Jlc3VsdCwgcmVzdWx0LCAm cik7CisJICBjb250aW51ZTsKKwl9CiAKICAgICAgIC8qIFB1c2ggYW55IGNo aWxkcmVuLiAgVXNlIHJldmVyc2Ugb3JkZXIgc28gdGhhdCB0aGUgZmlyc3QK IAkgY2hpbGQgaXMgcG9wcGVkIGZyb20gdGhlIHdvcmsgc3RhY2sgZmlyc3Qs IGFuZCBzbwpAQCAtMTIwMywyNiArMTU0NiwxOCBAQCBWRUModmFyb2JqX3Vw ZGF0ZV9yZXN1bHQpICp2YXJvYmpfdXBkYXRlIChzdHJ1Y3QgdmFyb2JqICoq dmFycCwgaW50IGV4cGxpY2l0KQogCSAgdmFyb2JqX3AgYyA9IFZFQ19pbmRl eCAodmFyb2JqX3AsIHYtPmNoaWxkcmVuLCBpKTsKIAkgIC8qIENoaWxkIG1h eSBiZSBOVUxMIGlmIGV4cGxpY2l0bHkgZGVsZXRlZCBieSAtdmFyLWRlbGV0 ZS4gICovCiAJICBpZiAoYyAhPSBOVUxMICYmICFjLT5mcm96ZW4pCi0JICAg IFZFQ19zYWZlX3B1c2ggKHZhcm9ial9wLCBzdGFjaywgYyk7Ci0JfQotCi0g ICAgICAvKiBVcGRhdGUgdGhpcyB2YXJpYWJsZSwgdW5sZXNzIGl0J3MgYSBy b290LCB3aGljaCBpcyBhbHJlYWR5Ci0JIHVwZGF0ZWQuICAqLwotICAgICAg aWYgKHYtPnJvb3QtPnJvb3R2YXIgIT0gdikKLQl7CSAgCi0JICBuZXcgPSB2 YWx1ZV9vZl9jaGlsZCAodi0+cGFyZW50LCB2LT5pbmRleCk7Ci0JICBpZiAo aW5zdGFsbF9uZXdfdmFsdWUgKHYsIG5ldywgMCAvKiB0eXBlIG5vdCBjaGFu Z2VkICovKSkKIAkgICAgewotCSAgICAgIC8qIE5vdGUgdGhhdCBpdCdzIGNo YW5nZWQgKi8KLQkgICAgICB2YXJvYmpfdXBkYXRlX3Jlc3VsdCByID0ge3Z9 OwotCSAgICAgIHIuY2hhbmdlZCA9IDE7Ci0JICAgICAgVkVDX3NhZmVfcHVz aCAodmFyb2JqX3VwZGF0ZV9yZXN1bHQsIHJlc3VsdCwgJnIpOwotCSAgICAg IHYtPnVwZGF0ZWQgPSAwOworCSAgICAgIHZhcm9ial91cGRhdGVfcmVzdWx0 IHIgPSB7Y307CisJICAgICAgVkVDX3NhZmVfcHVzaCAodmFyb2JqX3VwZGF0 ZV9yZXN1bHQsIHN0YWNrLCAmcik7CiAJICAgIH0KIAl9CisKKyAgICAgIGlm IChyLmNoYW5nZWQgfHwgci50eXBlX2NoYW5nZWQpCisJVkVDX3NhZmVfcHVz aCAodmFyb2JqX3VwZGF0ZV9yZXN1bHQsIHJlc3VsdCwgJnIpOwogICAgIH0K IAotICBWRUNfZnJlZSAodmFyb2JqX3AsIHN0YWNrKTsKKyAgVkVDX2ZyZWUg KHZhcm9ial91cGRhdGVfcmVzdWx0LCBzdGFjayk7CisKICAgcmV0dXJuIHJl c3VsdDsKIH0KIAwKQEAgLTE0MjEsMTYgKzE3NTYsMjMgQEAgdW5pbnN0YWxs X3ZhcmlhYmxlIChzdHJ1Y3QgdmFyb2JqICp2YXIpCiBzdGF0aWMgc3RydWN0 IHZhcm9iaiAqCiBjcmVhdGVfY2hpbGQgKHN0cnVjdCB2YXJvYmogKnBhcmVu dCwgaW50IGluZGV4LCBjaGFyICpuYW1lKQogeworICByZXR1cm4gY3JlYXRl X2NoaWxkX3dpdGhfdmFsdWUgKHBhcmVudCwgaW5kZXgsIG5hbWUsIAorCQkJ CSAgdmFsdWVfb2ZfY2hpbGQgKHBhcmVudCwgaW5kZXgpKTsKK30KKworc3Rh dGljIHN0cnVjdCB2YXJvYmogKgorY3JlYXRlX2NoaWxkX3dpdGhfdmFsdWUg KHN0cnVjdCB2YXJvYmogKnBhcmVudCwgaW50IGluZGV4LCBjb25zdCBjaGFy ICpuYW1lLAorCQkJIHN0cnVjdCB2YWx1ZSAqdmFsdWUpCit7CiAgIHN0cnVj dCB2YXJvYmogKmNoaWxkOwogICBjaGFyICpjaGlsZHNfbmFtZTsKLSAgc3Ry dWN0IHZhbHVlICp2YWx1ZTsKIAogICBjaGlsZCA9IG5ld192YXJpYWJsZSAo KTsKIAogICAvKiBuYW1lIGlzIGFsbG9jYXRlZCBieSBuYW1lX29mX2NoaWxk ICovCi0gIGNoaWxkLT5uYW1lID0gbmFtZTsKKyAgLyogRklYTUU6IHhzdHJk dXAgc2hvdWxkIG5vdCBiZSBoZXJlLiAgKi8KKyAgY2hpbGQtPm5hbWUgPSB4 c3RyZHVwIChuYW1lKTsKICAgY2hpbGQtPmluZGV4ID0gaW5kZXg7Ci0gIHZh bHVlID0gdmFsdWVfb2ZfY2hpbGQgKHBhcmVudCwgaW5kZXgpOwogICBjaGls ZC0+cGFyZW50ID0gcGFyZW50OwogICBjaGlsZC0+cm9vdCA9IHBhcmVudC0+ cm9vdDsKICAgY2hpbGRzX25hbWUgPSB4c3RycHJpbnRmICgiJXMuJXMiLCBw YXJlbnQtPm9ial9uYW1lLCBuYW1lKTsKQEAgLTE0NzksNiArMTgyMSw5IEBA IG5ld192YXJpYWJsZSAodm9pZCkKICAgdmFyLT5wcmludF92YWx1ZSA9IE5V TEw7CiAgIHZhci0+ZnJvemVuID0gMDsKICAgdmFyLT5ub3RfZmV0Y2hlZCA9 IDA7CisgIHZhci0+Y2hpbGRyZW5fcmVxdWVzdGVkID0gMDsKKyAgdmFyLT52 YWx1ZV9mb3JtYXR0ZXIgPSAwOworICB2YXItPmNoaWxkcmVuX2xpc3RlciA9 IDA7CiAKICAgcmV0dXJuIHZhcjsKIH0KQEAgLTE1MTEsNiArMTg1NiwxMSBA QCBmcmVlX3ZhcmlhYmxlIChzdHJ1Y3QgdmFyb2JqICp2YXIpCiAgICAgICB4 ZnJlZSAodmFyLT5yb290KTsKICAgICB9CiAKKyNpZiBIQVZFX1BZVEhPTgor ICBQeV9YREVDUkVGICh2YXItPnZhbHVlX2Zvcm1hdHRlcik7CisgIFB5X1hE RUNSRUYgKHZhci0+Y2hpbGRyZW5fbGlzdGVyKTsKKyNlbmRpZgorCiAgIHhm cmVlICh2YXItPm5hbWUpOwogICB4ZnJlZSAodmFyLT5vYmpfbmFtZSk7CiAg IHhmcmVlICh2YXItPnByaW50X3ZhbHVlKTsKQEAgLTE3ODUsNyArMjEzNSw4 IEBAIG15X3ZhbHVlX29mX3ZhcmlhYmxlIChzdHJ1Y3QgdmFyb2JqICp2YXIs IGVudW0gdmFyb2JqX2Rpc3BsYXlfZm9ybWF0cyBmb3JtYXQpCiB9CiAKIHN0 YXRpYyBjaGFyICoKLXZhbHVlX2dldF9wcmludF92YWx1ZSAoc3RydWN0IHZh bHVlICp2YWx1ZSwgZW51bSB2YXJvYmpfZGlzcGxheV9mb3JtYXRzIGZvcm1h dCkKK3ZhbHVlX2dldF9wcmludF92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWx1 ZSwgZW51bSB2YXJvYmpfZGlzcGxheV9mb3JtYXRzIGZvcm1hdCwKKwkJICAg ICAgIFB5T2JqZWN0ICp2YWx1ZV9mb3JtYXR0ZXIpCiB7CiAgIGxvbmcgZHVt bXk7CiAgIHN0cnVjdCB1aV9maWxlICpzdGI7CkBAIC0xNzk1LDYgKzIxNDYs NDUgQEAgdmFsdWVfZ2V0X3ByaW50X3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZh bHVlLCBlbnVtIHZhcm9ial9kaXNwbGF5X2Zvcm1hdHMgZm9ybWF0KQogICBp ZiAodmFsdWUgPT0gTlVMTCkKICAgICByZXR1cm4gTlVMTDsKIAorI2lmIEhB VkVfUFlUSE9OCisgIGlmICh2YWx1ZV9mb3JtYXR0ZXIpCisgICAgeworICAg ICAgLyogRklYTUU6IHdlICptaWdodCogd2FudCB0byBwcm92aWRlIHRoaXMg ZnVuY3Rpb25hbGl0eSBhcworCSBhIHN0YW5kYWxvbmUgZnVuY3Rpb24sIHNv IHRoYXQgb3RoZXIgaW50ZXJlc3RlZCBwYXJ0aWVzCisJIHRoYW4gdmFyb2Jq IGNvZGUgY2FuIGJlbmVmaXQgZm9yIHRoaXMuICAqLworICAgICAgc3RydWN0 IGNsZWFudXAgKmJhY2tfdG87CisgICAgICBQeU9iamVjdCAqcHlfdmFsdWU7 CisgICAgICBQeU9iamVjdCAqdHVwbGU7CisgICAgICBQeU9iamVjdCAqcHlf czsKKyAgICAgIGNoYXIgKnM7CisKKyAgICAgIHB5X3ZhbHVlID0gZ2RiX293 bmVkX3ZhbHVlX3RvX3ZhbHVlX29iamVjdCAodmFsdWUpOworICAgICAgdHVw bGUgPSBQeVR1cGxlX05ldyAoMSk7CisgICAgICBiYWNrX3RvID0gbWFrZV9j bGVhbnVwX3B5X2RlY3JlZiAodHVwbGUpOworICAgICAgLyogU3RlYWxzIHRo ZSByZWZlcmVuY2UuICAqLworICAgICAgUHlUdXBsZV9TZXRJdGVtICh0dXBs ZSwgMCwgcHlfdmFsdWUpOworICAgICAgcHlfcyA9IFB5T2JqZWN0X0NhbGwg KHZhbHVlX2Zvcm1hdHRlciwgdHVwbGUsIFB5X05vbmUpOworICAgICAgbWFr ZV9jbGVhbnVwX3B5X2RlY3JlZiAocHlfcyk7CisKKyAgICAgIGlmICghcHlf cykKKwl7CisJICAvKiBGSVhNRTogbmVlZCBhIHdheSB0byB0cmFuc2xhdGUg cHl0aG9uIGV4Y2VwdGlvbnMKKwkgICAgIGludG8gZ2RiIGV4Y2VwdGlvbnMu ICovCisJICBQeUVycl9QcmludCAoKTsKKwkgIGVycm9yICgiTnVsbCB2YWx1 ZSByZXR1cm5lZCBmb3Igc3RyaW5nIik7CisJfQorICAgICAgCisgICAgICBp ZiAoIVB5U3RyaW5nX0NoZWNrIChweV9zKSkKKwllcnJvciAoIlJldHVybmVk IHZhbHVlIGlzIG5vdCBhIHN0cmluZyIpOworICAgICAgCisgICAgICBzID0g UHlTdHJpbmdfQXNTdHJpbmcgKHB5X3MpOworICAgICAgZ2RiX2Fzc2VydCAo cyk7CisgICAgICAKKyAgICAgIGRvX2NsZWFudXBzIChiYWNrX3RvKTsKKyAg ICAgIHJldHVybiB4c3RyZHVwIChzKTsJCQkJICAgICAgIAorICAgIH0KKyNl bmRpZgorCiAgIHN0YiA9IG1lbV9maWxlb3BlbiAoKTsKICAgb2xkX2NoYWlu ID0gbWFrZV9jbGVhbnVwX3VpX2ZpbGVfZGVsZXRlIChzdGIpOwogCkBAIC0x ODg5LDcgKzIyNzksNyBAQCB2YXJvYmpfZmxvYXRpbmdfcCAoc3RydWN0IHZh cm9iaiAqdmFyKQogICAgdmFsdWUgaXMgbm90IGtub3duLiAgCiAKICAgIElm IFdBU19QVFIgaXMgbm90IE5VTEwsIHNldCAqV0FTX1BUUiB0byAwIG9yIDEK LSAgIGRlcGVuZGluZyBvbiB3aGV0aGVyIHBvaW50ZXIgd2FzIGRlZmVyZW5j ZWQKKyAgIGRlcGVuZGluZyBvbiB3aGV0aGVyIHBvaW50ZXIgd2FzIGRlcmVm ZXJlbmNlZAogICAgaW4gdGhpcyBmdW5jdGlvbi4gICovCiBzdGF0aWMgdm9p ZAogYWRqdXN0X3ZhbHVlX2Zvcl9jaGlsZF9hY2Nlc3MgKHN0cnVjdCB2YWx1 ZSAqKnZhbHVlLApAQCAtMjI1OSw2ICsyNjQ5LDExIEBAIGNfdmFsdWVfb2Zf dmFyaWFibGUgKHN0cnVjdCB2YXJvYmogKnZhciwgZW51bSB2YXJvYmpfZGlz cGxheV9mb3JtYXRzIGZvcm1hdCkKICAgICAgY2F0Y2ggdGhhdCBjYXNlIGV4 cGxpY2l0bHkuICAqLwogICBzdHJ1Y3QgdHlwZSAqdHlwZSA9IGdldF90eXBl ICh2YXIpOwogCisgIC8qIElmIHdlIGhhdmUgYSBjdXN0b20gZm9ybWF0dGVy LCByZXR1cm4gd2hhdGV2ZXIgc3RyaW5nIGl0IGhhcworICAgICBwcm9kdWNl ZC4gICovCisgIGlmICh2YXItPnZhbHVlX2Zvcm1hdHRlciAmJiB2YXItPnBy aW50X3ZhbHVlKQorICAgIHJldHVybiB4c3RyZHVwICh2YXItPnByaW50X3Zh bHVlKTsKKyAgCiAgIC8qIFN0cmlwIHRvcC1sZXZlbCByZWZlcmVuY2VzLiAq LwogICB3aGlsZSAoVFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfUkVG KQogICAgIHR5cGUgPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBF ICh0eXBlKSk7CkBAIC0yMzAzLDcgKzI2OTgsOCBAQCBjX3ZhbHVlX29mX3Zh cmlhYmxlIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGVudW0gdmFyb2JqX2Rpc3Bs YXlfZm9ybWF0cyBmb3JtYXQpCiAJICAgIGlmIChmb3JtYXQgPT0gdmFyLT5m b3JtYXQpCiAJICAgICAgcmV0dXJuIHhzdHJkdXAgKHZhci0+cHJpbnRfdmFs dWUpOwogCSAgICBlbHNlCi0JICAgICAgcmV0dXJuIHZhbHVlX2dldF9wcmlu dF92YWx1ZSAodmFyLT52YWx1ZSwgZm9ybWF0KTsKKwkgICAgICByZXR1cm4g dmFsdWVfZ2V0X3ByaW50X3ZhbHVlICh2YXItPnZhbHVlLCBmb3JtYXQsIAor CQkJCQkgICAgdmFyLT52YWx1ZV9mb3JtYXR0ZXIpOwogCSAgfQogICAgICAg fQogICAgIH0KZGlmZiAtLWdpdCBhL2dkYi92YXJvYmouaCBiL2dkYi92YXJv YmouaAppbmRleCA5ZWNlZjBmLi5kNzlmYmQ2IDEwMDY0NAotLS0gYS9nZGIv dmFyb2JqLmgKKysrIGIvZ2RiL3Zhcm9iai5oCkBAIC03Miw3ICs3MiwxMiBA QCB0eXBlZGVmIHN0cnVjdCB2YXJvYmpfdXBkYXRlX3Jlc3VsdF90CiAgIHN0 cnVjdCB2YXJvYmogKnZhcm9iajsKICAgaW50IHR5cGVfY2hhbmdlZDsKICAg aW50IGNoYW5nZWQ7CisgIGludCBjaGlsZHJlbl9jaGFuZ2VkOwogICBlbnVt IHZhcm9ial9zY29wZV9zdGF0dXMgc3RhdHVzOworICAvKiBUaGlzIHZhcmlh YmxlIGlzIHVzZWQgaW50ZXJuYWxseSBieSB2YXJvYmpfdXBkYXRlIHRvIGlu ZGljYXRlIGlmIHRoZQorICAgICBuZXcgdmFsdWUgb2YgdmFyb2JqIGlzIGFs cmVhZHkgY29tcHV0ZWQgYW5kIGluc3RhbGxlZCwgb3IgaGFzIHRvCisgICAg IGJlIHlldCBpbnN0YWxsZWQuICBEb24ndCB1c2UgdGhpcyBvdXRzaWRlIHZh cm9iai5jICovCisgIGludCB2YWx1ZV9pbnN0YWxsZWQ7ICAKIH0gdmFyb2Jq X3VwZGF0ZV9yZXN1bHQ7CiAKIERFRl9WRUNfTyAodmFyb2JqX3VwZGF0ZV9y ZXN1bHQpOwpAQCAtMTQxLDQgKzE0NiwxMyBAQCBleHRlcm4gaW50IHZhcm9i al9lZGl0YWJsZV9wIChzdHJ1Y3QgdmFyb2JqICp2YXIpOwogCiBleHRlcm4g aW50IHZhcm9ial9mbG9hdGluZ19wIChzdHJ1Y3QgdmFyb2JqICp2YXIpOwog CitleHRlcm4gdm9pZCAKK3Zhcm9ial9zZXRfdHlwZV92aXN1YWxpemVyIChj b25zdCBjaGFyICp0eXBlX3JlZ2V4cCwgY29uc3QgY2hhciAqdmlzdWFsaXpl cik7CisKK2V4dGVybiB2b2lkIAordmFyb2JqX2NsZWFyX3R5cGVfdmlzdWFs aXplcnMgKCk7CisKK2V4dGVybiB2b2lkIAordmFyb2JqX3NldF92aXN1YWxp emVyIChzdHJ1Y3QgdmFyb2JqICp2YXIsIGNvbnN0IGNoYXIgKnZpc3VhbGl6 ZXIpOworCiAjZW5kaWYgLyogVkFST0JKX0ggKi8KLS0gCjEuNS4zLjUKCg== --nextPart2187759.dxjnVspun8 Content-Type: text/x-java; name=".gdbinit" Content-Transfer-Encoding: 8Bit Content-Disposition: attachment; filename=".gdbinit" Content-length: 740 python class StringVisualizer: def to_string (self, v): # FIXME: catch any exceptions accessing bogus memory data = v.get_element ("_M_dataplus") return str (data.get_element ("_M_p")) class VectorVisualizer: def children (self, v): result = [] impl = v.get_element ('_M_impl') start = impl.get_element ('_M_start') finish = impl.get_element ('_M_finish') current = start index = 0 while not current.equals(finish): result.append((str(index), current.dereference())) current = current.increment(1) index = index + 1 return result end #interpreter-exec mi2 "-var-set-type-visualizer string StringVisualizer" --nextPart2187759.dxjnVspun8--