From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from zmcc-2-mx.zmailcloud.com (zmcc-2-mx.zmailcloud.com [52.37.197.7]) by sourceware.org (Postfix) with ESMTPS id 584923972418 for ; Wed, 28 Oct 2020 14:57:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 584923972418 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=symas.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=hyc@symas.com Received: from zmcc-2.zmailcloud.com (zmcc-2-mta-1.zmailcloud.com [146.148.52.56]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by zmcc-2-mx.zmailcloud.com (Postfix) with ESMTPS id 99121405BF; Wed, 28 Oct 2020 09:57:01 -0500 (CDT) Received: from zmcc-2.zmailcloud.com (localhost [127.0.0.1]) by zmcc-2-mta-1.zmailcloud.com (Postfix) with ESMTPS id 2744AD0046; Wed, 28 Oct 2020 09:57:01 -0500 (CDT) Received: from localhost (localhost [127.0.0.1]) by zmcc-2-mta-1.zmailcloud.com (Postfix) with ESMTP id 0E8DAC38F7; Wed, 28 Oct 2020 09:57:01 -0500 (CDT) DKIM-Filter: OpenDKIM Filter v2.10.3 zmcc-2-mta-1.zmailcloud.com 0E8DAC38F7 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=symas.com; s=37C7994C-28CA-11EA-A30F-68F90BB9D764; t=1603897021; bh=ChW4Um47Bq12PH9Fklg7/Hm5Otgcm/tzQXHPWtSQsG0=; h=To:From:Message-ID:Date:MIME-Version; b=hxlk+yvA/SNdC6RrGpox/qcv/DNJ7OPsGH9KYf6iG588OSkKCTcYpM7u+kC1Ei8Lp AU0u2P3Yczt20NBZewc5o3DkLTK/PigxT+xMBjlt7juc3GAiTr+IsgfqVmWEGvTSxg c4/DFnQYkJfhq8V+bBfssuOd7+oZ9iD5asfOmi+IlW4evP2Rprf/w6OREUUGzXqXmU VRhRehE3VLdpJMtxKQdlm7rysCzdclpqsJWsW+y1Ob1YxcGC7QItfw7GMpIYoZ34DS A1URYZ6fSnObXZ/9+hPuQNaQaRXieT1i9/CRUHO7OZJa7Kc5eTz+CIKzH6nJg+kElB bHhgPWkH14eMA== Received: from zmcc-2.zmailcloud.com ([127.0.0.1]) by localhost (zmcc-2-mta-1.zmailcloud.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id V8ql-nrwpvOv; Wed, 28 Oct 2020 09:57:00 -0500 (CDT) Received: from [192.168.1.155] (unknown [84.203.28.68]) by zmcc-2-mta-1.zmailcloud.com (Postfix) with ESMTPSA id 2C87AC0E9B; Wed, 28 Oct 2020 09:56:59 -0500 (CDT) Subject: Re: [PATCH] dependency list for static libraries To: Nick Clifton , Fangrui Song Cc: binutils@sourceware.org References: <53b8973b-40a4-2550-3307-66d7f13707d5@symas.com> <64fe82bd-9c00-b232-98d2-f46182fb16ba@symas.com> <9889c54b-4dd3-2275-6621-c2391cfd268d@redhat.com> <31f9062e-175d-06e9-695a-797c7ee11420@symas.com> <58620dc1-3bb9-aaae-b476-ebb613ecb627@redhat.com> From: Howard Chu Message-ID: Date: Wed, 28 Oct 2020 14:56:58 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0 SeaMonkey/2.53.3 MIME-Version: 1.0 In-Reply-To: <58620dc1-3bb9-aaae-b476-ebb613ecb627@redhat.com> Content-Type: multipart/mixed; boundary="------------51515E5CC2D2714C1B47ECE0" X-Spam-Status: No, score=-8.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, RAZOR2_CF_RANGE_51_100, RAZOR2_CHECK, SPF_HELO_NONE, SPF_PASS, TXREP, URIBL_RED autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Oct 2020 14:57:05 -0000 This is a multi-part message in MIME format. --------------51515E5CC2D2714C1B47ECE0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Nick Clifton wrote: > Hi Howard, > >> Sorry for the noise, this attached is the same as previous but with fixes >> to whitespace / indentation. > > Thanks - the patch looks good now, although there are still a couple of minor > issues - and one major issue: > > * The new test fails for the alpha-vms target. This is not serious however > as almost all of the ar tests fail for this target. One day I will track > down what is going wrong and either fix it, or arrange to skip these tests > for alpha-vms. > > * There are a couple of minor formatting issues. Specifically: comments should > end in a period followed by two spaces before the closing marker. /* Like this. */ > Plus function calls should have a space between the function name and the > opening parenthesis of the argument list. like (this) Whitespace fixes done, attached. > > The major issue is that I would really like for this extension to be supported > by the LLVM community as well. It would be a shame to add it to the binutils > only to have a different solution implemented there. I might have misread the > emails but I believe that Fangrui still has some misgivings about this approach. > Is that correct ? If so, then I would very much like to see them resolved > before we commit the patch. I haven't seen any further response from that side. Still seems obvious that a solution that revolves around plaintext is easier to maintain than one that requires access to the original source code+build environment and a recompile in order to modify/update. -- -- Howard Chu CTO, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc/ Chief Architect, OpenLDAP http://www.openldap.org/project/ --------------51515E5CC2D2714C1B47ECE0 Content-Type: text/x-patch; name="0001-Add-ar-support-for-dependencies.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Add-ar-support-for-dependencies.patch" RnJvbSA5MjMyZmY2NGQxYjJiOWZhODAzMWM4YmQ2Nzg1Mjk2NTY5ZThjMDIxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIb3dhcmQgQ2h1IDxoeWNAc3ltYXMuY29tPgpEYXRl OiBUaHUsIDMgU2VwIDIwMjAgMTc6MzQ6MTYgKzAxMDAKU3ViamVjdDogW1BBVENIXSBBZGQg YXIgc3VwcG9ydCBmb3IgZGVwZW5kZW5jaWVzCgpSZWNvcmQgLUwvLWwgZGVwZW5kZW5jaWVz IG9mIGEgc3RhdGljIGxpYnJhcnkgaW4gYSBfXy5MSUJERVAgZW50cnkuCk9wdGlvbnMgc2hv dWxkIGJlIHBhc3NlZCBsaXRlcmFsbHkgYXMgYSBzaW5nbGUgYXJndW1lbnQsIGUuZy4KIGFy IHJMICItTC91c3IvbG9jYWwvbGliIC1sZm9vIC1sYmFyIiBsaWJuZXcuYSBvYmoxLm8gb2Jq Mi5vCi0tLQogYmludXRpbHMvTkVXUyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNSAr KwogYmludXRpbHMvYXIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4NSArKysrKysr KysrKysrKysrKysrKysrKystLQogYmludXRpbHMvYmluZW11bC5jICAgICAgICAgICAgICAg ICAgICAgfCA1MyArKysrKysrKysrKy0tLS0tCiBiaW51dGlscy9iaW5lbXVsLmggICAgICAg ICAgICAgICAgICAgICB8IDE1ICsrKy0tCiBiaW51dGlscy9kb2MvYmludXRpbHMudGV4aSAg ICAgICAgICAgICB8IDE5ICsrKystLQogYmludXRpbHMvZW11bF9haXguYyAgICAgICAgICAg ICAgICAgICAgfCAxNiArLS0tLQogYmludXRpbHMvdGVzdHN1aXRlL2JpbnV0aWxzLWFsbC9h ci5leHAgfCA0MSArKysrKysrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDE4OSBpbnNlcnRp b25zKCspLCA0NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9iaW51dGlscy9ORVdTIGIv YmludXRpbHMvTkVXUwppbmRleCAzNWU0ZTMwM2UxLi4wMmExOWVhMDliIDEwMDY0NAotLS0g YS9iaW51dGlscy9ORVdTCisrKyBiL2JpbnV0aWxzL05FV1MKQEAgLTEsNSArMSwxMCBAQAog LSotIHRleHQgLSotCiAKKyogVGhlIGFyIHRvb2wncyBwcmV2aW91c2x5IHVudXNlZCBsIG1v ZGlmaWVyIGlzIG5vdyB1c2VkIGZvciBzcGVjaWZ5aW5nCisgIGRlcGVuZGVuY2llcyBvZiBh IHN0YXRpYyBsaWJyYXJ5LiBUaGUgYXJndW1lbnRzIG9mIHRoaXMgb3B0aW9uCisgIChvciAt LXJlY29yZC1saWJkZXBzIGxvbmcgZm9ybSBvcHRpb24pIHdpbGwgYmUgc3RvcmVkIHZlcmJh dGltIGluIHRoZQorICBfXy5MSUJERVAgbWVtYmVyIG9mIHRoZSBhcmNoaXZlLCB3aGljaCB0 aGUgbGlua2VyIG1heSByZWFkIGF0IGxpbmsgdGltZS4KKwogKiBSZWFkZWxmIGNhbiBub3cg ZGlzcGxheSB0aGUgY29udGVudHMgb2YgTFRPIHN5bWJvbCB0YWJsZSBzZWN0aW9ucyB3aGVu IGFza2VkCiAgIHRvIGRvIHNvIHZpYSB0aGUgLS1sdG8tc3ltcyBjb21tYW5kIGxpbmUgb3B0 aW9uLgogCmRpZmYgLS1naXQgYS9iaW51dGlscy9hci5jIGIvYmludXRpbHMvYXIuYwppbmRl eCA4NWIzNDJhNjUwLi42MGZjNTFlZmNmIDEwMDY0NAotLS0gYS9iaW51dGlscy9hci5jCisr KyBiL2JpbnV0aWxzL2FyLmMKQEAgLTEzOCw2ICsxMzgsMTEgQEAgc3RhdGljIGJmZF9ib29s ZWFuIGZ1bGxfcGF0aG5hbWUgPSBGQUxTRTsKIC8qIFdoZXRoZXIgdG8gY3JlYXRlIGEgInRo aW4iIGFyY2hpdmUgKHN5bWJvbCBpbmRleCBvbmx5IC0tIG5vIGZpbGVzKS4gICovCiBzdGF0 aWMgYmZkX2Jvb2xlYW4gbWFrZV90aGluX2FyY2hpdmUgPSBGQUxTRTsKIAorI2RlZmluZSBM SUJERVBTCSJfXy5MSUJERVAiCisvKiBEZXBlbmRlbmNpZXMgdG8gc3RvcmUgaW4gX18uTElC REVQIGZvciBsaW5rZXIgdG8gdXNlLiAgKi8KK2NoYXIgKkxpYmRlcHM7CitzdGF0aWMgYmZk ICogTGliZGVwc19iZmQ7CisKIHN0YXRpYyBpbnQgc2hvd192ZXJzaW9uID0gMDsKIAogc3Rh dGljIGludCBzaG93X2hlbHAgPSAwOwpAQCAtMTY2LDYgKzE3MSw3IEBAIHN0YXRpYyBzdHJ1 Y3Qgb3B0aW9uIGxvbmdfb3B0aW9uc1tdID0KICAgeyJ0YXJnZXQiLCByZXF1aXJlZF9hcmd1 bWVudCwgTlVMTCwgT1BUSU9OX1RBUkdFVH0sCiAgIHsidmVyc2lvbiIsIG5vX2FyZ3VtZW50 LCAmc2hvd192ZXJzaW9uLCAxfSwKICAgeyJvdXRwdXQiLCByZXF1aXJlZF9hcmd1bWVudCwg TlVMTCwgT1BUSU9OX09VVFBVVH0sCisgIHsicmVjb3JkLWxpYmRlcHMiLCByZXF1aXJlZF9h cmd1bWVudCwgTlVMTCwgJ2wnfSwKICAge05VTEwsIG5vX2FyZ3VtZW50LCBOVUxMLCAwfQog fTsKIApAQCAtMzI5LDYgKzMzNSw3IEBAIHVzYWdlIChpbnQgaGVscCkKICAgZnByaW50ZiAo cywgXygiIGdlbmVyaWMgbW9kaWZpZXJzOlxuIikpOwogICBmcHJpbnRmIChzLCBfKCIgIFtj XSAgICAgICAgICAtIGRvIG5vdCB3YXJuIGlmIHRoZSBsaWJyYXJ5IGhhZCB0byBiZSBjcmVh dGVkXG4iKSk7CiAgIGZwcmludGYgKHMsIF8oIiAgW3NdICAgICAgICAgIC0gY3JlYXRlIGFu IGFyY2hpdmUgaW5kZXggKGNmLiByYW5saWIpXG4iKSk7CisgIGZwcmludGYgKHMsIF8oIiAg W2wgTElCREVQU10gIC0gc3BlY2lmeSBkZXBlbmRlbmNpZXMgb2YgdGhpcyBsaWJyYXJ5XG4i KSk7CiAgIGZwcmludGYgKHMsIF8oIiAgW1NdICAgICAgICAgIC0gZG8gbm90IGJ1aWxkIGEg c3ltYm9sIHRhYmxlXG4iKSk7CiAgIGZwcmludGYgKHMsIF8oIiAgW1RdICAgICAgICAgIC0g bWFrZSBhIHRoaW4gYXJjaGl2ZVxuIikpOwogICBmcHJpbnRmIChzLCBfKCIgIFt2XSAgICAg ICAgICAtIGJlIHZlcmJvc2VcbiIpKTsKQEAgLTMzNiw2ICszNDMsNyBAQCB1c2FnZSAoaW50 IGhlbHApCiAgIGZwcmludGYgKHMsIF8oIiAgQDxmaWxlPiAgICAgIC0gcmVhZCBvcHRpb25z IGZyb20gPGZpbGU+XG4iKSk7CiAgIGZwcmludGYgKHMsIF8oIiAgLS10YXJnZXQ9QkZETkFN RSAtIHNwZWNpZnkgdGhlIHRhcmdldCBvYmplY3QgZm9ybWF0IGFzIEJGRE5BTUVcbiIpKTsK ICAgZnByaW50ZiAocywgXygiICAtLW91dHB1dD1ESVJOQU1FIC0gc3BlY2lmeSB0aGUgb3V0 cHV0IGRpcmVjdG9yeSBmb3IgZXh0cmFjdGlvbiBvcGVyYXRpb25zXG4iKSk7CisgIGZwcmlu dGYgKHMsIF8oIiAgLS1yZWNvcmQtbGliZGVwcz1MSUJERVBTIC0gc3BlY2lmeSBkZXBlbmRl bmNpZXMgb2YgdGhpcyBsaWJyYXJ5XG4iKSk7CiAjaWYgQkZEX1NVUFBPUlRTX1BMVUdJTlMK ICAgZnByaW50ZiAocywgXygiIG9wdGlvbmFsOlxuIikpOwogICBmcHJpbnRmIChzLCBfKCIg IC0tcGx1Z2luIDxwPiAtIGxvYWQgdGhlIHNwZWNpZmllZCBwbHVnaW5cbiIpKTsKQEAgLTQ4 Nyw3ICs0OTUsNyBAQCBkZWNvZGVfb3B0aW9ucyAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQog ICAgICAgYXJndiA9IG5ld19hcmd2OwogICAgIH0KIAotICB3aGlsZSAoKGMgPSBnZXRvcHRf bG9uZyAoYXJnYywgYXJndiwgImhkbXBxcnR4bGNvT1ZzU3V2YWJpTU5mUFREVSIsCisgIHdo aWxlICgoYyA9IGdldG9wdF9sb25nIChhcmdjLCBhcmd2LCAiaGRtcHFydHhsOmNvT1ZzU3V2 YWJpTU5mUFREVSIsCiAJCQkgICBsb25nX29wdGlvbnMsIE5VTEwpKSAhPSBFT0YpCiAgICAg ewogICAgICAgc3dpdGNoIChjKQpAQCAtNTM1LDYgKzU0Myw5IEBAIGRlY29kZV9vcHRpb25z IChpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICAgICAgb3BlcmF0aW9uID0gZXh0cmFj dDsKICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSAnbCc6CisgICAgICAgICAgaWYg KExpYmRlcHMgIT0gTlVMTCkKKyAgICAgICAgICAgIGZhdGFsIChfKCJMaWJkZXBzIHNwZWNp ZmllZCBtb3JlIHRoYW4gb25jZSIpKTsKKyAgICAgICAgICBMaWJkZXBzID0gb3B0YXJnOwog ICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlICdjJzoKICAgICAgICAgICBzaWxlbnRf Y3JlYXRlID0gMTsKQEAgLTg0Nyw2ICs4NTgsNTAgQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIg Kiphcmd2KQogICAgICAgaWYgKG9wZXJhdGlvbiA9PSBleHRyYWN0ICYmIGJmZF9pc190aGlu X2FyY2hpdmUgKGFyY2gpKQogCWZhdGFsIChfKCJgeCcgY2Fubm90IGJlIHVzZWQgb24gdGhp biBhcmNoaXZlcy4iKSk7CiAKKyAgICAgIGlmIChMaWJkZXBzKQorCXsKKwkgIGNoYXIgKipu ZXdfZmlsZXM7CisJICBiZmRfc2l6ZV90eXBlIHJlY2xlbiA9IHN0cmxlbiAoTGliZGVwcykr MTsKKworCSAgLyogQ3JlYXRlIGEgYmZkIHRvIGNvbnRhaW4gdGhlIGRlcGVuZGVuY2llcy4K KwkgICAgIEl0IGluaGVyaXRzIGl0cyB0eXBlIGZyb20gYXJjaCwgYnV0IHdlIG11c3QKKwkg ICAgIHNldCB0aGUgdHlwZSB0byAiYmluYXJ5IiBvdGhlcndpc2UgYmZkX2J3cml0ZSgpCisJ ICAgICB3aWxsIGZhaWwuIEFmdGVyIHdyaXRpbmcsIHdlIG11c3Qgc2V0IHRoZSB0eXBlCisJ ICAgICBiYWNrIHRvICJwbHVnaW4iIG90aGVyd2lzZSBhZGRpbmcgaXQgdG8gdGhlCisJICAg ICBhcmNoaXZlIHdpbGwgZmFpbC4gICovCisJICBMaWJkZXBzX2JmZCA9IGJmZF9jcmVhdGUg KExJQkRFUFMsIGFyY2gpOworCSAgaWYgKExpYmRlcHNfYmZkID09IE5VTEwpCisJICAgIGZh dGFsIChfKCJDYW5ub3QgY3JlYXRlIExpYmRlcHMgcmVjb3JkLiIpKTsKKworCSAgaWYgKGJm ZF9maW5kX3RhcmdldCAoImJpbmFyeSIsIExpYmRlcHNfYmZkKSA9PSBOVUxMKQorCSAgICBm YXRhbCAoXygiQ2Fubm90IHNldCBMaWJkZXBzIHJlY29yZCB0eXBlIHRvIGJpbmFyeS4iKSk7 CisKKwkgIGlmICghIGJmZF9zZXRfZm9ybWF0IChMaWJkZXBzX2JmZCwgYmZkX29iamVjdCkp CisJICAgIGZhdGFsIChfKCJDYW5ub3Qgc2V0IExpYmRlcHMgb2JqZWN0IGZvcm1hdC4iKSk7 CisKKwkgIGlmICghIGJmZF9tYWtlX3dyaXRhYmxlIChMaWJkZXBzX2JmZCkpCisJICAgIGZh dGFsIChfKCJDYW5ub3QgbWFrZSBMaWJkZXBzIG9iamVjdCB3cml0YWJsZS4iKSk7CisKKwkg IGlmIChiZmRfYndyaXRlIChMaWJkZXBzLCByZWNsZW4sIExpYmRlcHNfYmZkKSAhPSByZWNs ZW4pCisJICAgIGZhdGFsIChfKCJDYW5ub3Qgd3JpdGUgTGliZGVwcyByZWNvcmQuIikpOwor CisJICBpZiAoISBiZmRfbWFrZV9yZWFkYWJsZSAoTGliZGVwc19iZmQpKQorCSAgICBmYXRh bCAoXygiQ2Fubm90IG1ha2UgTGliZGVwcyBvYmplY3QgcmVhZGFibGUuIikpOworCisJICBp ZiAoYmZkX2ZpbmRfdGFyZ2V0ICgicGx1Z2luIiwgTGliZGVwc19iZmQpID09IE5VTEwpCisJ ICAgIGZhdGFsIChfKCJDYW5ub3QgcmVzZXQgTGliZGVwcyByZWNvcmQgdHlwZS4iKSk7CisK KwkgIC8qIEFwcGVuZCBvdXIgTGliZGVwcyByZWNvcmQgdG8gdGhlIGxpc3Qgb2YgZmlsZXMK KwkgICAgIGJlaW5nIG9wZXJhdGVkIG9uLiAgKi8KKwkgIG5ld19maWxlcyA9IHhtYWxsb2Mg KChmaWxlX2NvdW50KzIpICogc2l6ZW9mKGNoYXIgKikpOworCSAgZm9yIChpPTA7IGk8Zmls ZV9jb3VudDsgaSsrKQorCSAgICBuZXdfZmlsZXNbaV0gPSBmaWxlc1tpXTsKKwkgIG5ld19m aWxlc1tpKytdID0gTElCREVQUzsKKwkgIGZpbGVfY291bnQgPSBpOworCSAgZmlsZXMgPSBu ZXdfZmlsZXM7CisJICBmaWxlc1tpXSA9IE5VTEw7CisJfQorCiAgICAgICBzd2l0Y2ggKG9w ZXJhdGlvbikKIAl7CiAJY2FzZSBwcmludF90YWJsZToKQEAgLTE0MzIsNiArMTQ4Nyw3IEBA IHJlcGxhY2VfbWVtYmVycyAoYmZkICphcmNoLCBjaGFyICoqZmlsZXNfdG9fbW92ZSwgYmZk X2Jvb2xlYW4gcXVpY2spCiAJCQkJbm9ybWFsaXplIChiZmRfZ2V0X2ZpbGVuYW1lIChjdXJy ZW50KSwgYXJjaCkpID09IDAKIAkJICAmJiBjdXJyZW50LT5hcmVsdF9kYXRhICE9IE5VTEwp CiAJCXsKKwkJICBiZmRfYm9vbGVhbiByZXBsYWNlZDsKIAkJICBpZiAobmV3ZXJfb25seSkK IAkJICAgIHsKIAkJICAgICAgc3RydWN0IHN0YXQgZnNidWYsIGFzYnVmOwpAQCAtMTQ1Myw4 ICsxNTA5LDE4IEBAIHJlcGxhY2VfbWVtYmVycyAoYmZkICphcmNoLCBjaGFyICoqZmlsZXNf dG9fbW92ZSwgYmZkX2Jvb2xlYW4gcXVpY2spCiAKIAkJICBhZnRlcl9iZmQgPSBnZXRfcG9z X2JmZCAoJmFyY2gtPmFyY2hpdmVfbmV4dCwgcG9zX2FmdGVyLAogCQkJCQkgICBiZmRfZ2V0 X2ZpbGVuYW1lIChjdXJyZW50KSk7Ci0JCSAgaWYgKGFyX2VtdWxfcmVwbGFjZSAoYWZ0ZXJf YmZkLCAqZmlsZXNfdG9fbW92ZSwKLQkJCQkgICAgICAgdGFyZ2V0LCB2ZXJib3NlKSkKKwkJ ICBpZiAoTGliZGVwcyAmJiBGSUxFTkFNRV9DTVAgKG5vcm1hbGl6ZSAoKmZpbGVzX3RvX21v dmUsIGFyY2gpLAorCQkJCQkgICAgICAgTElCREVQUykgPT0gMCkKKwkJICAgIHsKKwkJICAg ICAgcmVwbGFjZWQgPSBhcl9lbXVsX3JlcGxhY2VfYmZkIChhZnRlcl9iZmQsIExpYmRlcHNf YmZkLAorCQkJCQkJICAgICAgdmVyYm9zZSk7CisJCSAgICB9CisJCSAgZWxzZQorCQkgICAg eworCQkgICAgICByZXBsYWNlZCA9IGFyX2VtdWxfcmVwbGFjZSAoYWZ0ZXJfYmZkLCAqZmls ZXNfdG9fbW92ZSwKKwkJCQkJCSAgdGFyZ2V0LCB2ZXJib3NlKTsKKwkJICAgIH0KKwkJICBp ZiAocmVwbGFjZWQpCiAJCSAgICB7CiAJCSAgICAgIC8qIFNuaXAgb3V0IHRoaXMgZW50cnkg ZnJvbSB0aGUgY2hhaW4uICAqLwogCQkgICAgICAqY3VycmVudF9wdHIgPSAoKmN1cnJlbnRf cHRyKS0+YXJjaGl2ZV9uZXh0OwpAQCAtMTQ3MCw5ICsxNTM2LDE2IEBAIHJlcGxhY2VfbWVt YmVycyAoYmZkICphcmNoLCBjaGFyICoqZmlsZXNfdG9fbW92ZSwgYmZkX2Jvb2xlYW4gcXVp Y2spCiAgICAgICAvKiBBZGQgdG8gdGhlIGVuZCBvZiB0aGUgYXJjaGl2ZS4gICovCiAgICAg ICBhZnRlcl9iZmQgPSBnZXRfcG9zX2JmZCAoJmFyY2gtPmFyY2hpdmVfbmV4dCwgcG9zX2Vu ZCwgTlVMTCk7CiAKLSAgICAgIGlmIChhcl9lbXVsX2FwcGVuZCAoYWZ0ZXJfYmZkLCAqZmls ZXNfdG9fbW92ZSwgdGFyZ2V0LAotCQkJICB2ZXJib3NlLCBtYWtlX3RoaW5fYXJjaGl2ZSkp Ci0JY2hhbmdlZCA9IFRSVUU7CisgICAgICBpZiAoTGliZGVwcyAmJiBGSUxFTkFNRV9DTVAg KG5vcm1hbGl6ZSAoKmZpbGVzX3RvX21vdmUsIGFyY2gpLCBMSUJERVBTKSA9PSAwKQorICAg ICAgICB7CisJICBjaGFuZ2VkIHw9IGFyX2VtdWxfYXBwZW5kX2JmZCAoYWZ0ZXJfYmZkLCBM aWJkZXBzX2JmZCwKKwkJCQkJIHZlcmJvc2UsIG1ha2VfdGhpbl9hcmNoaXZlKTsKKwl9Cisg ICAgICBlbHNlCisgICAgICAgIHsKKwkgIGNoYW5nZWQgfD0gYXJfZW11bF9hcHBlbmQgKGFm dGVyX2JmZCwgKmZpbGVzX3RvX21vdmUsIHRhcmdldCwKKwkJCQkgICAgIHZlcmJvc2UsIG1h a2VfdGhpbl9hcmNoaXZlKTsKKwl9CiAKICAgICBuZXh0X2ZpbGU6OwogCmRpZmYgLS1naXQg YS9iaW51dGlscy9iaW5lbXVsLmMgYi9iaW51dGlscy9iaW5lbXVsLmMKaW5kZXggN2M3MWI1 Yjc4Yy4uOGEwNTEyZWJkOSAxMDA2NDQKLS0tIGEvYmludXRpbHMvYmluZW11bC5jCisrKyBi L2JpbnV0aWxzL2JpbmVtdWwuYwpAQCAtNDEsOSArNDEsMjQgQEAgYXJfZW11bF9kZWZhdWx0 X3VzYWdlIChGSUxFICpmcCkKIGJmZF9ib29sZWFuCiBhcl9lbXVsX2FwcGVuZCAoYmZkICoq YWZ0ZXJfYmZkLCBjaGFyICpmaWxlX25hbWUsIGNvbnN0IGNoYXIgKnRhcmdldCwKIAkJYmZk X2Jvb2xlYW4gdmVyYm9zZSwgYmZkX2Jvb2xlYW4gZmxhdHRlbikKK3sKKyAgYmZkICpuZXdf YmZkOworCisgIG5ld19iZmQgPSBiZmRfb3BlbnIgKGZpbGVfbmFtZSwgdGFyZ2V0KTsKKyAg QVJfRU1VTF9FTEVNRU5UX0NIRUNLIChuZXdfYmZkLCBmaWxlX25hbWUpOworICBpZiAoYmlu X2R1bW15X2VtdWxhdGlvbi5hcl9hcHBlbmQpCisgICAgcmV0dXJuIGJpbl9kdW1teV9lbXVs YXRpb24uYXJfYXBwZW5kIChhZnRlcl9iZmQsIG5ld19iZmQsCisJCQkJCSAgdmVyYm9zZSwg ZmxhdHRlbik7CisKKyAgcmV0dXJuIEZBTFNFOworfQorCitiZmRfYm9vbGVhbgorYXJfZW11 bF9hcHBlbmRfYmZkIChiZmQgKiphZnRlcl9iZmQsIGJmZCAqbmV3X2JmZCwKKwkJYmZkX2Jv b2xlYW4gdmVyYm9zZSwgYmZkX2Jvb2xlYW4gZmxhdHRlbikKIHsKICAgaWYgKGJpbl9kdW1t eV9lbXVsYXRpb24uYXJfYXBwZW5kKQotICAgIHJldHVybiBiaW5fZHVtbXlfZW11bGF0aW9u LmFyX2FwcGVuZCAoYWZ0ZXJfYmZkLCBmaWxlX25hbWUsIHRhcmdldCwKKyAgICByZXR1cm4g YmluX2R1bW15X2VtdWxhdGlvbi5hcl9hcHBlbmQgKGFmdGVyX2JmZCwgbmV3X2JmZCwKIAkJ CQkJICB2ZXJib3NlLCBmbGF0dGVuKTsKIAogICByZXR1cm4gRkFMU0U7CkBAIC05MywxNCAr MTA4LDkgQEAgZG9fYXJfZW11bF9hcHBlbmQgKGJmZCAqKmFmdGVyX2JmZCwgYmZkICpuZXdf YmZkLAogfQogCiBiZmRfYm9vbGVhbgotYXJfZW11bF9kZWZhdWx0X2FwcGVuZCAoYmZkICoq YWZ0ZXJfYmZkLCBjaGFyICpmaWxlX25hbWUsCi0JCQljb25zdCBjaGFyICp0YXJnZXQsIGJm ZF9ib29sZWFuIHZlcmJvc2UsCi0JCQliZmRfYm9vbGVhbiBmbGF0dGVuKQorYXJfZW11bF9k ZWZhdWx0X2FwcGVuZCAoYmZkICoqYWZ0ZXJfYmZkLCBiZmQgKm5ld19iZmQsCisJCQliZmRf Ym9vbGVhbiB2ZXJib3NlLCBiZmRfYm9vbGVhbiBmbGF0dGVuKQogewotICBiZmQgKm5ld19i ZmQ7Ci0KLSAgbmV3X2JmZCA9IGJmZF9vcGVuciAoZmlsZV9uYW1lLCB0YXJnZXQpOwotICBB Ul9FTVVMX0VMRU1FTlRfQ0hFQ0sgKG5ld19iZmQsIGZpbGVfbmFtZSk7CiAgIHJldHVybiBk b19hcl9lbXVsX2FwcGVuZCAoYWZ0ZXJfYmZkLCBuZXdfYmZkLCB2ZXJib3NlLCBmbGF0dGVu LCBhbnlfb2spOwogfQogCkBAIC0xMDgsMjMgKzExOCwzNCBAQCBiZmRfYm9vbGVhbgogYXJf ZW11bF9yZXBsYWNlIChiZmQgKiphZnRlcl9iZmQsIGNoYXIgKmZpbGVfbmFtZSwgY29uc3Qg Y2hhciAqdGFyZ2V0LAogCQkgYmZkX2Jvb2xlYW4gdmVyYm9zZSkKIHsKKyAgYmZkICpuZXdf YmZkOworCisgIG5ld19iZmQgPSBiZmRfb3BlbnIgKGZpbGVfbmFtZSwgdGFyZ2V0KTsKKyAg QVJfRU1VTF9FTEVNRU5UX0NIRUNLIChuZXdfYmZkLCBmaWxlX25hbWUpOworCiAgIGlmIChi aW5fZHVtbXlfZW11bGF0aW9uLmFyX3JlcGxhY2UpCi0gICAgcmV0dXJuIGJpbl9kdW1teV9l bXVsYXRpb24uYXJfcmVwbGFjZSAoYWZ0ZXJfYmZkLCBmaWxlX25hbWUsCi0JCQkJCSAgIHRh cmdldCwgdmVyYm9zZSk7CisgICAgcmV0dXJuIGJpbl9kdW1teV9lbXVsYXRpb24uYXJfcmVw bGFjZSAoYWZ0ZXJfYmZkLCBuZXdfYmZkLAorCQkJCQkgICB2ZXJib3NlKTsKIAogICByZXR1 cm4gRkFMU0U7CiB9CiAKIGJmZF9ib29sZWFuCi1hcl9lbXVsX2RlZmF1bHRfcmVwbGFjZSAo YmZkICoqYWZ0ZXJfYmZkLCBjaGFyICpmaWxlX25hbWUsCi0JCQkgY29uc3QgY2hhciAqdGFy Z2V0LCBiZmRfYm9vbGVhbiB2ZXJib3NlKQorYXJfZW11bF9yZXBsYWNlX2JmZCAoYmZkICoq YWZ0ZXJfYmZkLCBiZmQgKm5ld19iZmQsCisJCSBiZmRfYm9vbGVhbiB2ZXJib3NlKQogewot ICBiZmQgKm5ld19iZmQ7CisgIGlmIChiaW5fZHVtbXlfZW11bGF0aW9uLmFyX3JlcGxhY2Up CisgICAgcmV0dXJuIGJpbl9kdW1teV9lbXVsYXRpb24uYXJfcmVwbGFjZSAoYWZ0ZXJfYmZk LCBuZXdfYmZkLAorCQkJCQkgICB2ZXJib3NlKTsKIAotICBuZXdfYmZkID0gYmZkX29wZW5y IChmaWxlX25hbWUsIHRhcmdldCk7Ci0gIEFSX0VNVUxfRUxFTUVOVF9DSEVDSyAobmV3X2Jm ZCwgZmlsZV9uYW1lKTsKKyAgcmV0dXJuIEZBTFNFOworfQogCi0gIEFSX0VNVUxfUkVQTEFD RV9QUklOVF9WRVJCT1NFICh2ZXJib3NlLCBmaWxlX25hbWUpOworYmZkX2Jvb2xlYW4KK2Fy X2VtdWxfZGVmYXVsdF9yZXBsYWNlIChiZmQgKiphZnRlcl9iZmQsIGJmZCAqbmV3X2JmZCwK KwkJCSBiZmRfYm9vbGVhbiB2ZXJib3NlKQoreworICBBUl9FTVVMX1JFUExBQ0VfUFJJTlRf VkVSQk9TRSAodmVyYm9zZSwgYmZkX2dldF9maWxlbmFtZSAobmV3X2JmZCkpOwogCiAgIG5l d19iZmQtPmFyY2hpdmVfbmV4dCA9ICphZnRlcl9iZmQ7CiAgICphZnRlcl9iZmQgPSBuZXdf YmZkOwpkaWZmIC0tZ2l0IGEvYmludXRpbHMvYmluZW11bC5oIGIvYmludXRpbHMvYmluZW11 bC5oCmluZGV4IGQ0YTE0ZWRmZWIuLjU3YjJlMjBiN2EgMTAwNjQ0Ci0tLSBhL2JpbnV0aWxz L2JpbmVtdWwuaAorKysgYi9iaW51dGlscy9iaW5lbXVsLmgKQEAgLTMwLDE1ICszMCwxOSBA QCBleHRlcm4gdm9pZCBhcl9lbXVsX3VzYWdlIChGSUxFICopOwogZXh0ZXJuIHZvaWQgYXJf ZW11bF9kZWZhdWx0X3VzYWdlIChGSUxFICopOwogZXh0ZXJuIGJmZF9ib29sZWFuIGFyX2Vt dWxfYXBwZW5kIChiZmQgKiosIGNoYXIgKiwgY29uc3QgY2hhciAqLAogCQkJCSAgIGJmZF9i b29sZWFuLCBiZmRfYm9vbGVhbik7Ci1leHRlcm4gYmZkX2Jvb2xlYW4gYXJfZW11bF9kZWZh dWx0X2FwcGVuZCAoYmZkICoqLCBjaGFyICosIGNvbnN0IGNoYXIgKiwKK2V4dGVybiBiZmRf Ym9vbGVhbiBhcl9lbXVsX2FwcGVuZF9iZmQgKGJmZCAqKiwgYmZkICosCisJCQkJICAgICAg IGJmZF9ib29sZWFuLCBiZmRfYm9vbGVhbik7CitleHRlcm4gYmZkX2Jvb2xlYW4gYXJfZW11 bF9kZWZhdWx0X2FwcGVuZCAoYmZkICoqLCBiZmQgKiwKIAkJCQkJICAgYmZkX2Jvb2xlYW4s IGJmZF9ib29sZWFuKTsKIGV4dGVybiBiZmRfYm9vbGVhbiBkb19hcl9lbXVsX2FwcGVuZCAo YmZkICoqLCBiZmQgKiwKIAkJCQkgICAgICBiZmRfYm9vbGVhbiwgYmZkX2Jvb2xlYW4sCiAJ CQkJICAgICAgYmZkX2Jvb2xlYW4gKCopKGJmZCAqKSk7CiBleHRlcm4gYmZkX2Jvb2xlYW4g YXJfZW11bF9yZXBsYWNlIChiZmQgKiosIGNoYXIgKiwgY29uc3QgY2hhciAqLAogCQkJCSAg ICBiZmRfYm9vbGVhbik7Ci1leHRlcm4gYmZkX2Jvb2xlYW4gYXJfZW11bF9kZWZhdWx0X3Jl cGxhY2UgKGJmZCAqKiwgY2hhciAqLAotCQkJCQkgICAgY29uc3QgY2hhciAqLCBiZmRfYm9v bGVhbik7CitleHRlcm4gYmZkX2Jvb2xlYW4gYXJfZW11bF9yZXBsYWNlX2JmZCAoYmZkICoq LCBiZmQgKiwKKwkJCQkJYmZkX2Jvb2xlYW4pOworZXh0ZXJuIGJmZF9ib29sZWFuIGFyX2Vt dWxfZGVmYXVsdF9yZXBsYWNlIChiZmQgKiosIGJmZCAqLAorCQkJCQkgICAgYmZkX2Jvb2xl YW4pOwogZXh0ZXJuIGJmZF9ib29sZWFuIGFyX2VtdWxfcGFyc2VfYXJnIChjaGFyICopOwog ZXh0ZXJuIGJmZF9ib29sZWFuIGFyX2VtdWxfZGVmYXVsdF9wYXJzZV9hcmcgKGNoYXIgKik7 CiAKQEAgLTYxLDkgKzY1LDggQEAgdHlwZWRlZiBzdHJ1Y3QgYmluX2VtdWxhdGlvbl94ZmVy X3N0cnVjdAogewogICAvKiBQcmludCBvdXQgdGhlIGV4dHJhIG9wdGlvbnMuICAqLwogICB2 b2lkICgqIGFyX3VzYWdlKSAoRklMRSAqZnApOwotICBiZmRfYm9vbGVhbiAoKiBhcl9hcHBl bmQpIChiZmQgKiosIGNoYXIgKiwgY29uc3QgY2hhciAqLCBiZmRfYm9vbGVhbiwKLQkJCSAg ICAgYmZkX2Jvb2xlYW4pOwotICBiZmRfYm9vbGVhbiAoKiBhcl9yZXBsYWNlKSAoYmZkICoq LCBjaGFyICosIGNvbnN0IGNoYXIgKiwgYmZkX2Jvb2xlYW4pOworICBiZmRfYm9vbGVhbiAo KiBhcl9hcHBlbmQpIChiZmQgKiosIGJmZCAqLCBiZmRfYm9vbGVhbiwgYmZkX2Jvb2xlYW4p OworICBiZmRfYm9vbGVhbiAoKiBhcl9yZXBsYWNlKSAoYmZkICoqLCBiZmQgKiwgYmZkX2Jv b2xlYW4pOwogICBiZmRfYm9vbGVhbiAoKiBhcl9wYXJzZV9hcmcpIChjaGFyICopOwogfQog YmluX2VtdWxhdGlvbl94ZmVyX3R5cGU7CmRpZmYgLS1naXQgYS9iaW51dGlscy9kb2MvYmlu dXRpbHMudGV4aSBiL2JpbnV0aWxzL2RvYy9iaW51dGlscy50ZXhpCmluZGV4IDYyMDNmZGU4 ODcuLjMyYTVhY2MzYjkgMTAwNjQ0Ci0tLSBhL2JpbnV0aWxzL2RvYy9iaW51dGlscy50ZXhp CisrKyBiL2JpbnV0aWxzL2RvYy9iaW51dGlscy50ZXhpCkBAIC0xNzAsNyArMTcwLDcgQEAg aW4gdGhlIHNlY3Rpb24gZW50aXRsZWQgYGBHTlUgRnJlZSBEb2N1bWVudGF0aW9uIExpY2Vu c2UnJy4KIEBjIG1hbiB0aXRsZSBhciBjcmVhdGUsIG1vZGlmeSwgYW5kIGV4dHJhY3QgZnJv bSBhcmNoaXZlcwogCiBAc21hbGxleGFtcGxlCi1hciBbLV1AdmFye3B9W0B2YXJ7bW9kfV0g W0BvcHRpb257LS1wbHVnaW59IEB2YXJ7bmFtZX1dIFtAb3B0aW9uey0tdGFyZ2V0fSBAdmFy e2JmZG5hbWV9XSBbQG9wdGlvbnstLW91dHB1dH0gQHZhcntkaXJuYW1lfV0gW0B2YXJ7cmVs cG9zfV0gW0B2YXJ7Y291bnR9XSBAdmFye2FyY2hpdmV9IFtAdmFye21lbWJlcn1AZG90c3t9 XQorYXIgWy1dQHZhcntwfVtAdmFye21vZH1dIFtAb3B0aW9uey0tcGx1Z2lufSBAdmFye25h bWV9XSBbQG9wdGlvbnstLXRhcmdldH0gQHZhcntiZmRuYW1lfV0gW0BvcHRpb257LS1vdXRw dXR9IEB2YXJ7ZGlybmFtZX1dIFtAb3B0aW9uey0tcmVjb3JkLWxpYmRlcHN9IEB2YXJ7bGli ZGVwc31dIFtAdmFye3JlbHBvc31dIFtAdmFye2NvdW50fV0gQHZhcnthcmNoaXZlfSBbQHZh cnttZW1iZXJ9QGRvdHN7fV0KIGFyIC1NIFsgPG1yaS1zY3JpcHQgXQogQGVuZCBzbWFsbGV4 YW1wbGUKIApAQCAtMTk2LDcgKzE5Niw5IEBAIGNoYXJhY3RlcnMgKHR5cGljYWwgb2YgZm9y bWF0cyByZWxhdGVkIHRvIGNvZmYpLgogQGNpbmRleCBsaWJyYXJpZXMKIEBjb21tYW5ke2Fy fSBpcyBjb25zaWRlcmVkIGEgYmluYXJ5IHV0aWxpdHkgYmVjYXVzZSBhcmNoaXZlcyBvZiB0 aGlzIHNvcnQKIGFyZSBtb3N0IG9mdGVuIHVzZWQgYXMgQGRmbntsaWJyYXJpZXN9IGhvbGRp bmcgY29tbW9ubHkgbmVlZGVkCi1zdWJyb3V0aW5lcy4KK3N1YnJvdXRpbmVzLiAgU2luY2Ug bGlicmFyaWVzIG9mdGVuIHdpbGwgZGVwZW5kIG9uIG90aGVyIGxpYnJhcmllcywKK0Bjb21t YW5ke2FyfSBjYW4gYWxzbyByZWNvcmQgdGhlIGRlcGVuZGVuY2llcyBvZiBhIGxpYnJhcnkg d2hlbiB0aGUKK0BvcHRpb257LS1yZWNvcmQtbGliZGVwc30gb3B0aW9uIGlzIHNwZWNpZmll ZC4KIAogQGNpbmRleCBzeW1ib2wgaW5kZXgKIEBjb21tYW5ke2FyfSBjcmVhdGVzIGFuIGlu ZGV4IHRvIHRoZSBzeW1ib2xzIGRlZmluZWQgaW4gcmVsb2NhdGFibGUKQEAgLTI1NCw3ICsy NTYsNyBAQCBwcm9ncmFtLgogCiBAc21hbGxleGFtcGxlCiBAYyBtYW4gYmVnaW4gU1lOT1BT SVMgYXIKLWFyIFtAb3B0aW9uey1YMzJfNjR9XSBbQG9wdGlvbnstfV1AdmFye3B9W0B2YXJ7 bW9kfV0gW0BvcHRpb257LS1wbHVnaW59IEB2YXJ7bmFtZX1dIFtAb3B0aW9uey0tdGFyZ2V0 fSBAdmFye2JmZG5hbWV9XSBbQG9wdGlvbnstLW91dHB1dH0gQHZhcntkaXJuYW1lfV0gW0B2 YXJ7cmVscG9zfV0gW0B2YXJ7Y291bnR9XSBAdmFye2FyY2hpdmV9IFtAdmFye21lbWJlcn1A ZG90c3t9XQorYXIgW0BvcHRpb257LVgzMl82NH1dIFtAb3B0aW9uey19XUB2YXJ7cH1bQHZh cnttb2R9XSBbQG9wdGlvbnstLXBsdWdpbn0gQHZhcntuYW1lfV0gW0BvcHRpb257LS10YXJn ZXR9IEB2YXJ7YmZkbmFtZX1dIFtAb3B0aW9uey0tb3V0cHV0fSBAdmFye2Rpcm5hbWV9XSBb QG9wdGlvbnstLXJlY29yZC1saWJkZXBzfSBAdmFye2xpYmRlcHN9XSBbQHZhcntyZWxwb3N9 XSBbQHZhcntjb3VudH1dIEB2YXJ7YXJjaGl2ZX0gW0B2YXJ7bWVtYmVyfUBkb3Rze31dCiBA YyBtYW4gZW5kCiBAZW5kIHNtYWxsZXhhbXBsZQogCkBAIC00NDgsOSArNDUwLDE0IEBAIG1l bWJlciBtdXN0IGJlIHByZXNlbnQgYXMgdGhlIEB2YXJ7cmVscG9zfSBhcmd1bWVudCwgYmVm b3JlIHRoZQogQHZhcnthcmNoaXZlfSBzcGVjaWZpY2F0aW9uLiAgKHNhbWUgYXMgQHNhbXB7 Yn0pLgogCiBAaXRlbSBsCi1UaGlzIG1vZGlmaWVyIGlzIGFjY2VwdGVkIGJ1dCBub3QgdXNl ZC4KK0BjIFRoaXMgbW9kaWZpZXIgd2FzIGFjY2VwdGVkIGJ1dCBub3QgdXNlZC4KIEBjIHdo YWZmb3IgYXIgbCBtb2RpZmllcj8/PyBwcmVzdW1hYmx5IGNvbXBhdDsgd2l0aAogQGMgd2hh dD8/Py0tLWRvY0BAY3lnbnVzLmNvbSwgMjVqYW45MQorU3BlY2lmeSBkZXBlbmRlbmNpZXMg b2YgdGhpcyBsaWJyYXJ5LiAgVGhlIGRlcGVuZGVuY2llcyBtdXN0IGltbWVkaWF0ZWx5Citm b2xsb3cgdGhpcyBvcHRpb24gY2hhcmFjdGVyLCBtdXN0IHVzZSB0aGUgc2FtZSBzeW50YXgg YXMgdGhlIGxpbmtlcgorY29tbWFuZCBsaW5lLCBhbmQgbXVzdCBiZSBzcGVjaWZpZWQgd2l0 aGluIGEgc2luZ2xlIGFyZ3VtZW50LiAgSS5lLiwgaWYKK211bHRpcGxlIGl0ZW1zIGFyZSBu ZWVkZWQsIHRoZXkgbXVzdCBiZSBxdW90ZWQgdG8gZm9ybSBhIHNpbmdsZSBjb21tYW5kCits aW5lIGFyZ3VtZW50LiAgRm9yIGV4YW1wbGUgQHNhbXB7TCAiLUwvdXNyL2xvY2FsL2xpYiAt bG15ZGVwMSAtbG15ZGVwMiJ9CiAKIEBpdGVtIE4KIFVzZXMgdGhlIEB2YXJ7Y291bnR9IHBh cmFtZXRlci4gIFRoaXMgaXMgdXNlZCBpZiB0aGVyZSBhcmUgbXVsdGlwbGUKQEAgLTU5Miw2 ICs1OTksMTAgQEAgTm90ZSAtIGFsdGhvdWdoIHRoZSBwcmVzZW5jZSBvZiB0aGlzIG9wdGlv biBkb2VzIGltcGx5IGEgQG9wdGlvbnt4fQogZXh0cmFjdGlvbiBvcGVyYXRpb24gdGhhdCBv cHRpb24gbXVzdCBzdGlsbCBiZSBpbmNsdWRlZCBvbiB0aGUgY29tbWFuZAogbGluZS4KIAor QGl0ZW0gLS1yZWNvcmQtbGliZGVwcyBAdmFye2xpYmRlcHN9CitUaGUgQG9wdGlvbnstLXJl Y29yZC1saWJkZXBzfSBvcHRpb24gaXMgaWRlbnRpY2FsIHRvIHRoZSBAb3B0aW9ue0x9IG1v ZGlmaWVyLAoranVzdCBoYW5kbGVkIGluIGxvbmcgZm9ybS4KKwogQGVuZCB0YWJsZQogQGMg bWFuIGVuZAogCmRpZmYgLS1naXQgYS9iaW51dGlscy9lbXVsX2FpeC5jIGIvYmludXRpbHMv ZW11bF9haXguYwppbmRleCBjNTRlMTA4M2U1Li43MjZjYjNiNzBjIDEwMDY0NAotLS0gYS9i aW51dGlscy9lbXVsX2FpeC5jCisrKyBiL2JpbnV0aWxzL2VtdWxfYWl4LmMKQEAgLTY3LDMw ICs2NywyMCBAQCBjaGVja19haXggKGJmZCAqdHJ5X2JmZCkKIH0KIAogc3RhdGljIGJmZF9i b29sZWFuCi1hcl9lbXVsX2FpeF9hcHBlbmQgKGJmZCAqKmFmdGVyX2JmZCwgY2hhciAqZmls ZV9uYW1lLCBjb25zdCBjaGFyICp0YXJnZXQsCithcl9lbXVsX2FpeF9hcHBlbmQgKGJmZCAq KmFmdGVyX2JmZCwgYmZkICpuZXdfYmZkLAogCQkgICAgYmZkX2Jvb2xlYW4gdmVyYm9zZSwg YmZkX2Jvb2xlYW4gZmxhdHRlbikKIHsKLSAgYmZkICpuZXdfYmZkOwotCi0gIG5ld19iZmQg PSBiZmRfb3BlbnIgKGZpbGVfbmFtZSwgdGFyZ2V0KTsKLSAgQVJfRU1VTF9FTEVNRU5UX0NI RUNLIChuZXdfYmZkLCBmaWxlX25hbWUpOwotCiAgIHJldHVybiBkb19hcl9lbXVsX2FwcGVu ZCAoYWZ0ZXJfYmZkLCBuZXdfYmZkLCB2ZXJib3NlLCBmbGF0dGVuLCBjaGVja19haXgpOwog fQogCiBzdGF0aWMgYmZkX2Jvb2xlYW4KLWFyX2VtdWxfYWl4X3JlcGxhY2UgKGJmZCAqKmFm dGVyX2JmZCwgY2hhciAqZmlsZV9uYW1lLCBjb25zdCBjaGFyICp0YXJnZXQsCithcl9lbXVs X2FpeF9yZXBsYWNlIChiZmQgKiphZnRlcl9iZmQsIGJmZCAqbmV3X2JmZCwKIAkJICAgICBi ZmRfYm9vbGVhbiB2ZXJib3NlKQogewotICBiZmQgKm5ld19iZmQ7Ci0KLSAgbmV3X2JmZCA9 IGJmZF9vcGVuciAoZmlsZV9uYW1lLCB0YXJnZXQpOwotICBBUl9FTVVMX0VMRU1FTlRfQ0hF Q0sgKG5ld19iZmQsIGZpbGVfbmFtZSk7Ci0KICAgaWYgKCFjaGVja19haXggKG5ld19iZmQp KQogICAgIHJldHVybiBGQUxTRTsKIAotICBBUl9FTVVMX1JFUExBQ0VfUFJJTlRfVkVSQk9T RSAodmVyYm9zZSwgZmlsZV9uYW1lKTsKKyAgQVJfRU1VTF9SRVBMQUNFX1BSSU5UX1ZFUkJP U0UgKHZlcmJvc2UsIGJmZF9nZXRfZmlsZW5hbWUgKG5ld19iZmQpKTsKIAogICBuZXdfYmZk LT5hcmNoaXZlX25leHQgPSAqYWZ0ZXJfYmZkOwogICAqYWZ0ZXJfYmZkID0gbmV3X2JmZDsK ZGlmZiAtLWdpdCBhL2JpbnV0aWxzL3Rlc3RzdWl0ZS9iaW51dGlscy1hbGwvYXIuZXhwIGIv YmludXRpbHMvdGVzdHN1aXRlL2JpbnV0aWxzLWFsbC9hci5leHAKaW5kZXggNWE5ZDI3YzZk MC4uMjczYTBhMzkwOSAxMDA2NDQKLS0tIGEvYmludXRpbHMvdGVzdHN1aXRlL2JpbnV0aWxz LWFsbC9hci5leHAKKysrIGIvYmludXRpbHMvdGVzdHN1aXRlL2JpbnV0aWxzLWFsbC9hci5l eHAKQEAgLTcxNSw2ICs3MTUsNDYgQEAgcHJvYyBtYW55X2ZpbGVzIHsgfSB7CiAgICAgcGFz cyAkdGVzdG5hbWUKIH0KIAorcHJvYyB0ZXN0X2FkZF9kZXBlbmRlbmNpZXMgeyB9IHsKKyAg ICBnbG9iYWwgQVIKKyAgICBnbG9iYWwgQVMKKyAgICBnbG9iYWwgc3JjZGlyCisgICAgZ2xv YmFsIHN1YmRpcgorICAgIGdsb2JhbCBvYmoKKworICAgIHNldCB0ZXN0bmFtZSAiYXIgYWRk aW5nIGxpYnJhcnkgZGVwZW5kZW5jaWVzIgorCisgICAgaWYgIVtiaW51dGlsc19hc3NlbWJs ZSAkc3JjZGlyLyRzdWJkaXIvYmludGVzdC5zIHRtcGRpci9iaW50ZXN0LiR7b2JqfV0gewor CXVucmVzb2x2ZWQgJHRlc3RuYW1lCisJcmV0dXJuCisgICAgfQorCisgICAgaWYgW2lzX3Jl bW90ZSBob3N0XSB7CisJc2V0IGFyY2hpdmUgYXJ0ZXN0LmEKKwlzZXQgb2JqZmlsZSBbcmVt b3RlX2Rvd25sb2FkIGhvc3QgdG1wZGlyL2JpbnRlc3QuJHtvYmp9XQorCXJlbW90ZV9maWxl IGhvc3QgZGVsZXRlICRhcmNoaXZlCisgICAgfSBlbHNlIHsKKwlzZXQgYXJjaGl2ZSB0bXBk aXIvYXJ0ZXN0LmEKKwlzZXQgb2JqZmlsZSB0bXBkaXIvYmludGVzdC4ke29ian0KKyAgICB9 CisKKyAgICByZW1vdGVfZmlsZSBidWlsZCBkZWxldGUgdG1wZGlyL2FydGVzdC5hCisKKyAg ICBzZXQgZ290IFtiaW51dGlsc19ydW4gJEFSICItciAtYyAkYXJjaGl2ZSAtLXJlY29yZC1s aWJkZXBzIC9mb28vYmFyICR7b2JqZmlsZX0iXQorICAgIGlmICFbc3RyaW5nIG1hdGNoICIi ICRnb3RdIHsKKwlmYWlsICR0ZXN0bmFtZQorCXJldHVybgorICAgIH0KKworICAgIHNldCBn b3QgW2JpbnV0aWxzX3J1biAkQVIgIi10ICRhcmNoaXZlIl0KKyAgICBpZiAhW3N0cmluZyBt YXRjaCAiKmJpbnRlc3QuJHtvYmp9DV9fLkxJQkRFUCoiICRnb3RdIHsKKwlmYWlsICR0ZXN0 bmFtZQorCXJldHVybgorICAgIH0KKworICAgIHBhc3MgJHRlc3RuYW1lCit9CisKICMgUnVu IHRoZSB0ZXN0cy4KIAogIyBPbmx5IHJ1biB0aGUgYmZkdGVzdCBjaGVja3MgaWYgdGhlIHBy b2dyYW1zIGV4aXN0LiAgU2luY2UgdGhlc2UKQEAgLTc0Myw2ICs3ODMsNyBAQCBtb3ZlX2Fu X2VsZW1lbnQKIGVtcHR5X2FyY2hpdmUKIGV4dHJhY3RfYW5fZWxlbWVudAogbWFueV9maWxl cwordGVzdF9hZGRfZGVwZW5kZW5jaWVzCiAKIGlmIHsgW2lzX2VsZl9mb3JtYXRdICYmIFtz dXBwb3J0c19nbnVfdW5pcXVlXSB9IHsKICAgICB1bmlxdWVfc3ltYm9sCi0tIAoyLjIwLjEK Cg== --------------51515E5CC2D2714C1B47ECE0--