Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tutGq-00DTKO-HB for pgsql-hackers@arkaria.postgresql.org; Wed, 19 Mar 2025 13:15:44 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tutGo-004R16-OF for pgsql-hackers@arkaria.postgresql.org; Wed, 19 Mar 2025 13:15:42 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tutGo-004R0q-A7 for pgsql-hackers@lists.postgresql.org; Wed, 19 Mar 2025 13:15:42 +0000 Received: from oss.nttdata.com ([49.212.34.109]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1tutGi-003lFs-2L for pgsql-hackers@postgresql.org; Wed, 19 Mar 2025 13:15:41 +0000 Received: from oss.nttdata.com (localhost [127.0.0.1]) by oss.nttdata.com (Postfix) with ESMTPA id C4C4661413; Wed, 19 Mar 2025 22:15:32 +0900 (JST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at oss.nttdata.com MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_0d4e1e2dd5ef961b9eedd0d5f4b95b7d" Content-Transfer-Encoding: 7bit Date: Wed, 19 Mar 2025 22:15:32 +0900 From: torikoshia To: Jelte Fennema-Nio Cc: andres@anarazel.de, tgl@sss.pgh.pa.us, pgsql-hackers@postgresql.org, rjuju123@gmail.com, Bruce Momjian Subject: Re: RFC: Allow EXPLAIN to Output Page Fault Information In-Reply-To: References: <3861403.1735576764@sss.pgh.pa.us> <1f22794321b745549d54359d343e37b8@oss.nttdata.com> <2c9d6eaf26df17bec13bb03bf1e9bcbb@oss.nttdata.com> <2035079.1739124342@sss.pgh.pa.us> <30ce8c5be7d1f67d53276540c29fa1c7@oss.nttdata.com> User-Agent: Roundcube Webmail/1.4.11 Message-ID: <7e182802a184ff5c9b54e575f1e3d8a2@oss.nttdata.com> X-Sender: torikoshia@oss.nttdata.com List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_0d4e1e2dd5ef961b9eedd0d5f4b95b7d Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed Hi, On 2025-03-18 08:52, Jelte Fennema-Nio wrote: > On Mon, 10 Feb 2025 at 14:23, torikoshia > wrote: >> Thanks for reviewing the patch and comments! >> Fixed issues you pointed out and attached v2 patch. > > This patch needs a rebase, because it's failing to compile currently. > So I marked this as "Waiting on Author" in the commitfest app. Thanks! I've attached an updated patch. BTW based on your discussion, I thought this patch could not be merged anytime soon. Does that align with your understanding? - With bgworker-based AIO, this patch could mislead users into underestimating the actual storage I/O load, which is undesirable. - With io_uring-based AIO, this patch could provide meaningful values, but it may take some time before io_uring sees widespread adoption. -- Regards, -- Atsushi Torikoshi Seconded from NTT DATA GROUP CORPORATION to SRA OSS K.K. --=_0d4e1e2dd5ef961b9eedd0d5f4b95b7d Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v3-0001-Add-storage-I-O-tracking-to-BUFFERS-option.patch Content-Disposition: attachment; filename=v3-0001-Add-storage-I-O-tracking-to-BUFFERS-option.patch; size=36325 RnJvbSA1Yzg4OTgwNGViYzE0NTE3M2U3YzljZjI1MTljN2E5MWVkZTA1YmNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBdHN1c2hpIFRvcmlrb3NoaSA8dG9yaWtvc2hpYUBvc3MubnR0 ZGF0YS5jb20+CkRhdGU6IFdlZCwgMTkgTWFyIDIwMjUgMjI6MDc6MTkgKzA5MDAKU3ViamVjdDog W1BBVENIIHYzXSBBZGQgc3RvcmFnZSBJL08gdHJhY2tpbmcgdG8gJ0JVRkZFUlMnIG9wdGlvbgoK VGhlICdCVUZGRVJTJyBvcHRpb24gY3VycmVudGx5IGluZGljYXRlcyB3aGV0aGVyIGEgYmxvY2sg aGl0IHRoZSBzaGFyZWQKYnVmZmVyLCBidXQgZG9lcyBub3QgZGlzdGluZ3Vpc2ggYmV0d2VlbiBh IGNhY2hlIGhpdCBpbiB0aGUgT1MgY2FjaGUgb3IKYSBzdG9yYWdlIEkvTyBvcGVyYXRpb24uCldo aWxlIHNoYXJlZCBidWZmZXJzIGFuZCBPUyBjYWNoZSBvZmZlciBzaW1pbGFyIHBlcmZvcm1hbmNl LCBzdG9yYWdlCkkvTyBpcyBzaWduaWZpY2FudGx5IHNsb3dlciBpbiBjb21wYXJpc29uLiAgQnkg bWVhc3VyaW5nIHRoZSBudW1iZXJzIG9mCiBzdG9yYWdlIEkvTyByZWFkIGFuZCB3cml0ZSwgd2Ug Y2FuIGJldHRlciBpZGVudGlmeSBpZiBzdG9yYWdlIEkvTyBpcyBhCiBib3R0bGVuZWNrIGluIHBl cmZvcm1hbmNlLgoKQWRkZWQgdHJhY2tpbmcgb2Ygc3RvcmFnZSBJL08gdXNhZ2UgYnkgY2FsbGlu ZyBnZXRydXNhZ2UoMikgYXQgYm90aCB0aGUKcGxhbm5pbmcgYW5kIGV4ZWN1dGlvbiBwaGFzZSBz dGFydCBhbmQgZW5kIHBvaW50cy4KCkEgbW9yZSBncmFudWxhciBhcHByb2FjaCBhcyB3ZWxsIGFz IGN1cnJlbnQgQlVGRkVSUyBvcHRpb24odHJhY2tpbmcgYXQKZWFjaCBwbGFuIG5vZGUpIHdhcyBj b25zaWRlcmVkIGJ1dCBmb3VuZCB0byBiZSBpbXByYWN0aWNhbCBkdWUgdG8gdGhlCmhpZ2ggcGVy Zm9ybWFuY2UgY29zdCBvZiBmcmVxdWVudCBnZXRydXNhZ2UoKSBjYWxscy4KClRPRE86CkkgYmVs aWV2ZSB0aGlzIGluZm9ybWF0aW9uIGlzIG1haW5seSB1c2VmdWwgd2hlbiB1c2VkIGluIGF1dG9f ZXhwbGFpbi4KSSdsbCBpbXBsZW1lbnQgaXQgbGF0ZXIuCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9l eHBsYWluLnNnbWwgICAgICAgICB8ICAyNSArKysrLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9icmlu L2JyaW4uYyAgICAgICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0 LmMgICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jICAgfCAg IDggKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYyAgICAgICAgfCAxMTAgKysrKysr KysrKysrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYyAgICAg ICAgfCAgIDggKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhY3V1bXBhcmFsbGVsLmMgfCAgIDgg Ky0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jICAgfCAgMzUgKysrKysrLS0K IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYyAgICAgfCAgNjIgKysrKysrKysrKysr KystCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9leHBsYWluLmggICAgICAgIHwgICAxICsKIHNyYy9p bmNsdWRlL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5oICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvZXhl Y3V0b3IvaW5zdHJ1bWVudC5oICAgICB8ICAxOSArKysrLQogc3JjL2luY2x1ZGUvcG9ydC93aW4z Mi9zeXMvcmVzb3VyY2UuaCB8ICAgMiArCiBzcmMvcG9ydC93aW4zMmdldHJ1c2FnZS5jICAgICAg ICAgICAgIHwgICA0ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXhwbGFpbi5vdXQgfCAg MzcgKysrKysrKystCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgIHwgICAx ICsKIDE2IGZpbGVzIGNoYW5nZWQsIDI5NiBpbnNlcnRpb25zKCspLCA0MiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2V4cGxhaW4uc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvZXhwbGFpbi5zZ21sCmluZGV4IDllZDEwNjFiN2YuLjVhNjZiMTBhZmUgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv ZXhwbGFpbi5zZ21sCkBAIC0xOTgsMTMgKzE5OCwyNCBAQCBST0xMQkFDSzsKICAgICAgIHByZXZp b3VzbHkgdW5tb2RpZmllZCBibG9ja3MgdGhhdCB3ZXJlIGNoYW5nZWQgYnkgdGhpcyBxdWVyeTsg d2hpbGUgdGhlCiAgICAgICBudW1iZXIgb2YgYmxvY2tzIDxlbXBoYXNpcz53cml0dGVuPC9lbXBo YXNpcz4gaW5kaWNhdGVzIHRoZSBudW1iZXIgb2YKICAgICAgIHByZXZpb3VzbHktZGlydGllZCBi bG9ja3MgZXZpY3RlZCBmcm9tIGNhY2hlIGJ5IHRoaXMgYmFja2VuZCBkdXJpbmcKLSAgICAgIHF1 ZXJ5IHByb2Nlc3NpbmcuCi0gICAgICBUaGUgbnVtYmVyIG9mIGJsb2NrcyBzaG93biBmb3IgYW4K LSAgICAgIHVwcGVyLWxldmVsIG5vZGUgaW5jbHVkZXMgdGhvc2UgdXNlZCBieSBhbGwgaXRzIGNo aWxkIG5vZGVzLiAgSW4gdGV4dAotICAgICAgZm9ybWF0LCBvbmx5IG5vbi16ZXJvIHZhbHVlcyBh cmUgcHJpbnRlZC4gIEJ1ZmZlcnMgaW5mb3JtYXRpb24gaXMKLSAgICAgIGluY2x1ZGVkIGJ5IGRl ZmF1bHQgd2hlbiA8bGl0ZXJhbD5BTkFMWVpFPC9saXRlcmFsPiBpcyB1c2VkIGJ1dAotICAgICAg b3RoZXJ3aXNlIGlzIG5vdCBpbmNsdWRlZCBieSBkZWZhdWx0LCBidXQgY2FuIGJlIGVuYWJsZWQg dXNpbmcgdGhpcwotICAgICAgb3B0aW9uLgorICAgICAgcXVlcnkgcHJvY2Vzc2luZy4gSW4gdGV4 dCBmb3JtYXQsIG9ubHkgbm9uLXplcm8gdmFsdWVzIGFyZSBwcmludGVkLgorICAgICAgSWYgcG9z c2libGUsIHRoaXMgb3B0aW9uIGFsc28gZGlzcGxheXMgdGhlIG51bWJlciBvZiByZWFkIGFuZCB3 cml0ZQorICAgICAgb3BlcmF0aW9ucyBwZXJmb3JtZWQgb24gc3RvcmFnZSBkdXJpbmcgdGhlIHBs YW5uaW5nIGFuZCBleGVjdXRpb24gcGhhc2VzLAorICAgICAgc2hvd24gYXQgdGhlIGVuZCBvZiB0 aGUgcGxhbi4gVGhlc2UgdmFsdWVzIGFyZSBvYnRhaW5lZCBmcm9tIHRoZQorICAgICAgPGZ1bmN0 aW9uPmdldHJ1c2FnZSgpPC9mdW5jdGlvbj4gc3lzdGVtIGNhbGwuIE5vdGUgdGhhdCBvbiBwbGF0 Zm9ybXMgdGhhdAorICAgICAgZG8gbm90IHN1cHBvcnQgPGZ1bmN0aW9uPmdldHJ1c2FnZSgpPC9m dW5jdGlvbj4sIHN1Y2ggYXMgV2luZG93cywgbm8gb3V0cHV0CisgICAgICB3aWxsIGJlIHNob3du LCBldmVuIGlmIHJlYWRzIG9yIHdyaXRlcyBhY3R1YWxseSBvY2N1ci4gQWRkaXRpb25hbGx5LCBl dmVuCisgICAgICBvbiBwbGF0Zm9ybXMgd2hlcmUgPGZ1bmN0aW9uPmdldHJ1c2FnZSgpPC9mdW5j dGlvbj4gaXMgc3VwcG9ydGVkLCBpZiB0aGUKKyAgICAgIGtlcm5lbCBpcyBidWlsdCB3aXRob3V0 IHRoZSBuZWNlc3Nhcnkgb3B0aW9ucyB0byB0cmFjayBzdG9yYWdlIHJlYWQgYW5kCisgICAgICB3 cml0ZSBvcGVyYXRpb25zLCBubyBvdXRwdXQgd2lsbCBiZSBzaG93bi4KKyAgICAgIFRoZSB0aW1p bmcgYW5kIHVuaXQgb2YgbWVhc3VyZW1lbnQgZm9yIHJlYWQgYW5kIHdyaXRlIG9wZXJhdGlvbnMg bWF5IHZhcnkKKyAgICAgIGRlcGVuZGluZyBvbiB0aGUgcGxhdGZvcm0uIEZvciBleGFtcGxlLCBv biBMaW51eCwgYSByZWFkIGlzIGNvdW50ZWQgb25seQorICAgICAgaWYgdGhpcyBwcm9jZXNzIGNh dXNlZCBkYXRhIHRvIGJlIGZldGNoZWQgZnJvbSB0aGUgc3RvcmFnZSBsYXllciwgYW5kIGEKKyAg ICAgIHdyaXRlIGlzIGNvdW50ZWQgYXQgdGhlIHBhZ2UtZGlydHlpbmcgdGltZS4gT24gTGludXgs IHRoZSB1bml0IG9mCisgICAgICBtZWFzdXJlbWVudCBmb3IgcmVhZCBhbmQgd3JpdGUgb3BlcmF0 aW9ucyBpcyA1MTIgS0IuCisgICAgICBCdWZmZXJzIGluZm9ybWF0aW9uIGlzIGluY2x1ZGVkIGJ5 IGRlZmF1bHQgd2hlbiA8bGl0ZXJhbD5BTkFMWVpFPC9saXRlcmFsPgorICAgICAgaXMgdXNlZCBi dXQgb3RoZXJ3aXNlIGlzIG5vdCBpbmNsdWRlZCBieSBkZWZhdWx0LCBidXQgY2FuIGJlIGVuYWJs ZWQgdXNpbmcKKyAgICAgIHRoaXMgb3B0aW9uLgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRl bT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2Jy aW4vYnJpbi5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCmluZGV4IDczN2FkNjM4 ODAuLmZkYWJjZjUwNmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW4u YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMKQEAgLTI1NTgsNyArMjU1OCw3 IEBAIF9icmluX2VuZF9wYXJhbGxlbChCcmluTGVhZGVyICpicmlubGVhZGVyLCBCcmluQnVpbGRT dGF0ZSAqc3RhdGUpCiAJICogb3Igd2UgbWlnaHQgZ2V0IGluY29tcGxldGUgZGF0YS4pCiAJICov CiAJZm9yIChpID0gMDsgaSA8IGJyaW5sZWFkZXItPnBjeHQtPm53b3JrZXJzX2xhdW5jaGVkOyBp KyspCi0JCUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KCZicmlubGVhZGVyLT5idWZmZXJ1c2FnZVtp XSwgJmJyaW5sZWFkZXItPndhbHVzYWdlW2ldKTsKKwkJSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnko JmJyaW5sZWFkZXItPmJ1ZmZlcnVzYWdlW2ldLCBOVUxMLCAmYnJpbmxlYWRlci0+d2FsdXNhZ2Vb aV0pOwogCiAJLyogRnJlZSBsYXN0IHJlZmVyZW5jZSB0byBNVkNDIHNuYXBzaG90LCBpZiBvbmUg d2FzIHVzZWQgKi8KIAlpZiAoSXNNVkNDU25hcHNob3QoYnJpbmxlYWRlci0+c25hcHNob3QpKQpA QCAtMjkyMCw3ICsyOTIwLDcgQEAgX2JyaW5fcGFyYWxsZWxfYnVpbGRfbWFpbihkc21fc2VnbWVu dCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJdHVwbGVzb3J0X2F0dGFjaF9zaGFyZWQoc2hhcmVkc29y dCwgc2VnKTsKIAogCS8qIFByZXBhcmUgdG8gdHJhY2sgYnVmZmVyIHVzYWdlIGR1cmluZyBwYXJh bGxlbCBleGVjdXRpb24gKi8KLQlJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeSgpOworCUluc3RyU3Rh cnRQYXJhbGxlbFF1ZXJ5KE5VTEwpOwogCiAJLyoKIAkgKiBNaWdodCBhcyB3ZWxsIHVzZSByZWxp YWJsZSBmaWd1cmUgd2hlbiBkb2xpbmcgb3V0IG1haW50ZW5hbmNlX3dvcmtfbWVtCkBAIC0yOTM1 LDggKzI5MzUsOCBAQCBfYnJpbl9wYXJhbGxlbF9idWlsZF9tYWluKGRzbV9zZWdtZW50ICpzZWcs IHNobV90b2MgKnRvYykKIAkvKiBSZXBvcnQgV0FML2J1ZmZlciB1c2FnZSBkdXJpbmcgcGFyYWxs ZWwgZXhlY3V0aW9uICovCiAJYnVmZmVydXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsIFBBUkFM TEVMX0tFWV9CVUZGRVJfVVNBR0UsIGZhbHNlKTsKIAl3YWx1c2FnZSA9IHNobV90b2NfbG9va3Vw KHRvYywgUEFSQUxMRUxfS0VZX1dBTF9VU0FHRSwgZmFsc2UpOwotCUluc3RyRW5kUGFyYWxsZWxR dWVyeSgmYnVmZmVydXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLAotCQkJCQkJICAmd2FsdXNh Z2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdKTsKKwlJbnN0ckVuZFBhcmFsbGVsUXVlcnkoJmJ1ZmZl cnVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwgTlVMTCwKKwkJCQkJCSAgJndhbHVzYWdlW1Bh cmFsbGVsV29ya2VyTnVtYmVyXSwgTlVMTCk7CiAKIAlpbmRleF9jbG9zZShpbmRleFJlbCwgaW5k ZXhMb2NrbW9kZSk7CiAJdGFibGVfY2xvc2UoaGVhcFJlbCwgaGVhcExvY2ttb2RlKTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvZ2luL2dpbmluc2VydC5jCmluZGV4IGIyZjg5Y2FkODguLmQ3NjhmMmRjMTcgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMKKysrIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYwpAQCAtMTA4NCw3ICsxMDg0LDcgQEAgX2dpbl9lbmRf cGFyYWxsZWwoR2luTGVhZGVyICpnaW5sZWFkZXIsIEdpbkJ1aWxkU3RhdGUgKnN0YXRlKQogCSAq IG9yIHdlIG1pZ2h0IGdldCBpbmNvbXBsZXRlIGRhdGEuKQogCSAqLwogCWZvciAoaSA9IDA7IGkg PCBnaW5sZWFkZXItPnBjeHQtPm53b3JrZXJzX2xhdW5jaGVkOyBpKyspCi0JCUluc3RyQWNjdW1Q YXJhbGxlbFF1ZXJ5KCZnaW5sZWFkZXItPmJ1ZmZlcnVzYWdlW2ldLCAmZ2lubGVhZGVyLT53YWx1 c2FnZVtpXSk7CisJCUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KCZnaW5sZWFkZXItPmJ1ZmZlcnVz YWdlW2ldLCBOVUxMLCAmZ2lubGVhZGVyLT53YWx1c2FnZVtpXSk7CiAKIAkvKiBGcmVlIGxhc3Qg cmVmZXJlbmNlIHRvIE1WQ0Mgc25hcHNob3QsIGlmIG9uZSB3YXMgdXNlZCAqLwogCWlmIChJc01W Q0NTbmFwc2hvdChnaW5sZWFkZXItPnNuYXBzaG90KSkKQEAgLTIxMzUsNyArMjEzNSw3IEBAIF9n aW5fcGFyYWxsZWxfYnVpbGRfbWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJ dHVwbGVzb3J0X2F0dGFjaF9zaGFyZWQoc2hhcmVkc29ydCwgc2VnKTsKIAogCS8qIFByZXBhcmUg dG8gdHJhY2sgYnVmZmVyIHVzYWdlIGR1cmluZyBwYXJhbGxlbCBleGVjdXRpb24gKi8KLQlJbnN0 clN0YXJ0UGFyYWxsZWxRdWVyeSgpOworCUluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KE5VTEwpOwog CiAJLyoKIAkgKiBNaWdodCBhcyB3ZWxsIHVzZSByZWxpYWJsZSBmaWd1cmUgd2hlbiBkb2xpbmcg b3V0IG1haW50ZW5hbmNlX3dvcmtfbWVtCkBAIC0yMTUwLDggKzIxNTAsOCBAQCBfZ2luX3BhcmFs bGVsX2J1aWxkX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQogCS8qIFJlcG9y dCBXQUwvYnVmZmVyIHVzYWdlIGR1cmluZyBwYXJhbGxlbCBleGVjdXRpb24gKi8KIAlidWZmZXJ1 c2FnZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX0JVRkZFUl9VU0FHRSwgZmFs c2UpOwogCXdhbHVzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlfV0FMX1VT QUdFLCBmYWxzZSk7Ci0JSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KCZidWZmZXJ1c2FnZVtQYXJhbGxl bFdvcmtlck51bWJlcl0sCi0JCQkJCQkgICZ3YWx1c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0p OworCUluc3RyRW5kUGFyYWxsZWxRdWVyeSgmYnVmZmVydXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1i ZXJdLCBOVUxMLAorCQkJCQkJICAmd2FsdXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLCBOVUxM KTsKIAogCWluZGV4X2Nsb3NlKGluZGV4UmVsLCBpbmRleExvY2ttb2RlKTsKIAl0YWJsZV9jbG9z ZShoZWFwUmVsLCBoZWFwTG9ja21vZGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L25idHJlZS9uYnRzb3J0LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYwpp bmRleCAzNzk0Y2M5MjRhLi5jNjZlNzQyOTA5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvbmJ0cmVlL25idHNvcnQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNv cnQuYwpAQCAtMTYxOCw3ICsxNjE4LDcgQEAgX2J0X2VuZF9wYXJhbGxlbChCVExlYWRlciAqYnRs ZWFkZXIpCiAJICogb3Igd2UgbWlnaHQgZ2V0IGluY29tcGxldGUgZGF0YS4pCiAJICovCiAJZm9y IChpID0gMDsgaSA8IGJ0bGVhZGVyLT5wY3h0LT5ud29ya2Vyc19sYXVuY2hlZDsgaSsrKQotCQlJ bnN0ckFjY3VtUGFyYWxsZWxRdWVyeSgmYnRsZWFkZXItPmJ1ZmZlcnVzYWdlW2ldLCAmYnRsZWFk ZXItPndhbHVzYWdlW2ldKTsKKwkJSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoJmJ0bGVhZGVyLT5i dWZmZXJ1c2FnZVtpXSwgTlVMTCwgJmJ0bGVhZGVyLT53YWx1c2FnZVtpXSk7CiAKIAkvKiBGcmVl IGxhc3QgcmVmZXJlbmNlIHRvIE1WQ0Mgc25hcHNob3QsIGlmIG9uZSB3YXMgdXNlZCAqLwogCWlm IChJc01WQ0NTbmFwc2hvdChidGxlYWRlci0+c25hcHNob3QpKQpAQCAtMTgyNiw3ICsxODI2LDcg QEAgX2J0X3BhcmFsbGVsX2J1aWxkX21haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9j KQogCX0KIAogCS8qIFByZXBhcmUgdG8gdHJhY2sgYnVmZmVyIHVzYWdlIGR1cmluZyBwYXJhbGxl bCBleGVjdXRpb24gKi8KLQlJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeSgpOworCUluc3RyU3RhcnRQ YXJhbGxlbFF1ZXJ5KE5VTEwpOwogCiAJLyogUGVyZm9ybSBzb3J0aW5nIG9mIHNwb29sLCBhbmQg cG9zc2libHkgYSBzcG9vbDIgKi8KIAlzb3J0bWVtID0gbWFpbnRlbmFuY2Vfd29ya19tZW0gLyBi dHNoYXJlZC0+c2NhbnR1cGxlc29ydHN0YXRlczsKQEAgLTE4MzYsOCArMTgzNiw4IEBAIF9idF9w YXJhbGxlbF9idWlsZF9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAkvKiBS ZXBvcnQgV0FML2J1ZmZlciB1c2FnZSBkdXJpbmcgcGFyYWxsZWwgZXhlY3V0aW9uICovCiAJYnVm ZmVydXNhZ2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsIFBBUkFMTEVMX0tFWV9CVUZGRVJfVVNBR0Us IGZhbHNlKTsKIAl3YWx1c2FnZSA9IHNobV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX1dB TF9VU0FHRSwgZmFsc2UpOwotCUluc3RyRW5kUGFyYWxsZWxRdWVyeSgmYnVmZmVydXNhZ2VbUGFy YWxsZWxXb3JrZXJOdW1iZXJdLAotCQkJCQkJICAmd2FsdXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1i ZXJdKTsKKwlJbnN0ckVuZFBhcmFsbGVsUXVlcnkoJmJ1ZmZlcnVzYWdlW1BhcmFsbGVsV29ya2Vy TnVtYmVyXSwgTlVMTCwKKwkJCQkJCSAgJndhbHVzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSwg TlVMTCk7CiAKICNpZmRlZiBCVFJFRV9CVUlMRF9TVEFUUwogCWlmIChsb2dfYnRyZWVfYnVpbGRf c3RhdHMpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKaW5kZXggMzNhMTZkMmQ4ZS4uZDE2ODMzZjMxZSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2V4cGxhaW4uYwpAQCAtMTQ0LDYgKzE0NCw4IEBAIHN0YXRpYyB2b2lkIHNo b3dfZm9yZWlnbnNjYW5faW5mbyhGb3JlaWduU2NhblN0YXRlICpmc3N0YXRlLCBFeHBsYWluU3Rh dGUgKmVzKTsKIHN0YXRpYyBjb25zdCBjaGFyICpleHBsYWluX2dldF9pbmRleF9uYW1lKE9pZCBp bmRleElkKTsKIHN0YXRpYyBib29sIHBlZWtfYnVmZmVyX3VzYWdlKEV4cGxhaW5TdGF0ZSAqZXMs IGNvbnN0IEJ1ZmZlclVzYWdlICp1c2FnZSk7CiBzdGF0aWMgdm9pZCBzaG93X2J1ZmZlcl91c2Fn ZShFeHBsYWluU3RhdGUgKmVzLCBjb25zdCBCdWZmZXJVc2FnZSAqdXNhZ2UpOworc3RhdGljIGJv b2wgcGVla19zdG9yYWdlaW9fdXNhZ2UoRXhwbGFpblN0YXRlICplcywgY29uc3QgU3RvcmFnZUlP VXNhZ2UgKnVzYWdlKTsKK3N0YXRpYyB2b2lkIHNob3dfc3RvcmFnZWlvX3VzYWdlKEV4cGxhaW5T dGF0ZSAqZXMsIGNvbnN0IFN0b3JhZ2VJT1VzYWdlICp1c2FnZSk7CiBzdGF0aWMgdm9pZCBzaG93 X3dhbF91c2FnZShFeHBsYWluU3RhdGUgKmVzLCBjb25zdCBXYWxVc2FnZSAqdXNhZ2UpOwogc3Rh dGljIHZvaWQgc2hvd19tZW1vcnlfY291bnRlcnMoRXhwbGFpblN0YXRlICplcywKIAkJCQkJCQkJ IGNvbnN0IE1lbW9yeUNvbnRleHRDb3VudGVycyAqbWVtX2NvdW50ZXJzKTsKQEAgLTMyNSw2ICsz MjcsOCBAQCBzdGFuZGFyZF9FeHBsYWluT25lUXVlcnkoUXVlcnkgKnF1ZXJ5LCBpbnQgY3Vyc29y T3B0aW9ucywKIAkJCQlwbGFuZHVyYXRpb247CiAJQnVmZmVyVXNhZ2UgYnVmdXNhZ2Vfc3RhcnQs CiAJCQkJYnVmdXNhZ2U7CisJU3RvcmFnZUlPVXNhZ2Ugc3RvcmFnZWlvLAorCQkJCXN0b3JhZ2Vp b19zdGFydDsKIAlNZW1vcnlDb250ZXh0Q291bnRlcnMgbWVtX2NvdW50ZXJzOwogCU1lbW9yeUNv bnRleHQgcGxhbm5lcl9jdHggPSBOVUxMOwogCU1lbW9yeUNvbnRleHQgc2F2ZWRfY3R4ID0gTlVM TDsKQEAgLTM0Niw3ICszNTAsMTAgQEAgc3RhbmRhcmRfRXhwbGFpbk9uZVF1ZXJ5KFF1ZXJ5ICpx dWVyeSwgaW50IGN1cnNvck9wdGlvbnMsCiAJfQogCiAJaWYgKGVzLT5idWZmZXJzKQorCXsKIAkJ YnVmdXNhZ2Vfc3RhcnQgPSBwZ0J1ZmZlclVzYWdlOworCQlHZXRTdG9yYWdlSU9Vc2FnZSgmc3Rv cmFnZWlvX3N0YXJ0KTsKKwl9CiAJSU5TVFJfVElNRV9TRVRfQ1VSUkVOVChwbGFuc3RhcnQpOwog CiAJLyogcGxhbiB0aGUgcXVlcnkgKi8KQEAgLTM2NiwxMiArMzczLDE3IEBAIHN0YW5kYXJkX0V4 cGxhaW5PbmVRdWVyeShRdWVyeSAqcXVlcnksIGludCBjdXJzb3JPcHRpb25zLAogCXsKIAkJbWVt c2V0KCZidWZ1c2FnZSwgMCwgc2l6ZW9mKEJ1ZmZlclVzYWdlKSk7CiAJCUJ1ZmZlclVzYWdlQWNj dW1EaWZmKCZidWZ1c2FnZSwgJnBnQnVmZmVyVXNhZ2UsICZidWZ1c2FnZV9zdGFydCk7CisKKwkJ R2V0U3RvcmFnZUlPVXNhZ2UoJnN0b3JhZ2Vpbyk7CisJCXN0b3JhZ2Vpby5pbmJsb2NrIC09IHN0 b3JhZ2Vpb19zdGFydC5pbmJsb2NrOworCQlzdG9yYWdlaW8ub3V0YmxvY2sgLT0gc3RvcmFnZWlv X3N0YXJ0Lm91dGJsb2NrOwogCX0KIAogCS8qIHJ1biBpdCAoaWYgbmVlZGVkKSBhbmQgcHJvZHVj ZSBvdXRwdXQgKi8KIAlFeHBsYWluT25lUGxhbihwbGFuLCBOVUxMLCBOVUxMLCAtMSwgaW50bywg ZXMsIHF1ZXJ5U3RyaW5nLCBwYXJhbXMsCiAJCQkJICAgcXVlcnlFbnYsCiAJCQkJICAgJnBsYW5k dXJhdGlvbiwgKGVzLT5idWZmZXJzID8gJmJ1ZnVzYWdlIDogTlVMTCksCisJCQkJICAgKGVzLT5i dWZmZXJzID8gJnN0b3JhZ2VpbyA6IE5VTEwpLAogCQkJCSAgIGVzLT5tZW1vcnkgPyAmbWVtX2Nv dW50ZXJzIDogTlVMTCk7CiB9CiAKQEAgLTQ5Nyw3ICs1MDksNyBAQCBFeHBsYWluT25lUGxhbihQ bGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsIENhY2hlZFBsYW4gKmNwbGFuLAogCQkJICAgSW50b0Ns YXVzZSAqaW50bywgRXhwbGFpblN0YXRlICplcywKIAkJCSAgIGNvbnN0IGNoYXIgKnF1ZXJ5U3Ry aW5nLCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKIAkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5 RW52LCBjb25zdCBpbnN0cl90aW1lICpwbGFuZHVyYXRpb24sCi0JCQkgICBjb25zdCBCdWZmZXJV c2FnZSAqYnVmdXNhZ2UsCisJCQkgICBjb25zdCBCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIGNvbnN0 IFN0b3JhZ2VJT1VzYWdlICpwbGFuc3RvcmFnZWlvLAogCQkJICAgY29uc3QgTWVtb3J5Q29udGV4 dENvdW50ZXJzICptZW1fY291bnRlcnMpCiB7CiAJRGVzdFJlY2VpdmVyICpkZXN0OwpAQCAtNTA3 LDYgKzUxOSw3IEBAIEV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgQ2Fj aGVkUGxhbiAqY3BsYW4sCiAJaW50CQkJZWZsYWdzOwogCWludAkJCWluc3RydW1lbnRfb3B0aW9u ID0gMDsKIAlTZXJpYWxpemVNZXRyaWNzIHNlcmlhbGl6ZU1ldHJpY3MgPSB7MH07CisJU3RvcmFn ZUlPVXNhZ2Ugc3RvcmFnZWlvX3N0YXJ0OwogCiAJQXNzZXJ0KHBsYW5uZWRzdG10LT5jb21tYW5k VHlwZSAhPSBDTURfVVRJTElUWSk7CiAKQEAgLTUxNiw3ICs1MjksMTkgQEAgRXhwbGFpbk9uZVBs YW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBDYWNoZWRQbGFuICpjcGxhbiwKIAkJaW5zdHJ1 bWVudF9vcHRpb24gfD0gSU5TVFJVTUVOVF9ST1dTOwogCiAJaWYgKGVzLT5idWZmZXJzKQorCXsK KwkJR2V0U3RvcmFnZUlPVXNhZ2UoJnN0b3JhZ2Vpb19zdGFydCk7CisKKwkJLyoKKwkJICogSW5p dGlhbGl6ZSBnbG9iYWwgdmFyaWFibGUgY291bnRlcnMgZm9yIHBhcmFsbGVsIHF1ZXJ5IHdvcmtl cnMuCisJCSAqIEV2ZW4gaWYgdGhlIHF1ZXJ5IGlzIGNhbmNlbGxlZCBvbiB0aGUgd2F5LCB0aGUg RVhQTEFJTiBleGVjdXRpb24KKwkJICogYWx3YXlzIHBhc3NlcyBoZXJlLCBzbyBpdCBjYW4gYmUg aW5pdGlhbGl6ZWQgaGVyZS4KKwkJICovCisJCXBnU3RvcmFnZUlPVXNhZ2VQYXJhbGxlbC5pbmJs b2NrID0gMDsKKwkJcGdTdG9yYWdlSU9Vc2FnZVBhcmFsbGVsLm91dGJsb2NrID0gMDsKKwogCQlp bnN0cnVtZW50X29wdGlvbiB8PSBJTlNUUlVNRU5UX0JVRkZFUlM7CisJfQogCWlmIChlcy0+d2Fs KQogCQlpbnN0cnVtZW50X29wdGlvbiB8PSBJTlNUUlVNRU5UX1dBTDsKIApAQCAtNjA5LDggKzYz NCw5IEBAIEV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgQ2FjaGVkUGxh biAqY3BsYW4sCiAJLyogQ3JlYXRlIHRleHR1YWwgZHVtcCBvZiBwbGFuIHRyZWUgKi8KIAlFeHBs YWluUHJpbnRQbGFuKGVzLCBxdWVyeURlc2MpOwogCi0JLyogU2hvdyBidWZmZXIgYW5kL29yIG1l bW9yeSB1c2FnZSBpbiBwbGFubmluZyAqLwotCWlmIChwZWVrX2J1ZmZlcl91c2FnZShlcywgYnVm dXNhZ2UpIHx8IG1lbV9jb3VudGVycykKKwkvKiBTaG93IGJ1ZmZlciwgc3RvcmFnZSBJL08sIGFu ZC9vciBtZW1vcnkgdXNhZ2UgaW4gcGxhbm5pbmcgKi8KKwlpZiAocGVla19idWZmZXJfdXNhZ2Uo ZXMsIGJ1ZnVzYWdlKSB8fCBwZWVrX3N0b3JhZ2Vpb191c2FnZShlcywgcGxhbnN0b3JhZ2Vpbykg fHwKKwkJbWVtX2NvdW50ZXJzKQogCXsKIAkJRXhwbGFpbk9wZW5Hcm91cCgiUGxhbm5pbmciLCAi UGxhbm5pbmciLCB0cnVlLCBlcyk7CiAKQEAgLTYyMiw4ICs2NDgsMTAgQEAgRXhwbGFpbk9uZVBs YW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBDYWNoZWRQbGFuICpjcGxhbiwKIAkJfQogCiAJ CWlmIChidWZ1c2FnZSkKKwkJewogCQkJc2hvd19idWZmZXJfdXNhZ2UoZXMsIGJ1ZnVzYWdlKTsK LQorCQkJc2hvd19zdG9yYWdlaW9fdXNhZ2UoZXMsIHBsYW5zdG9yYWdlaW8pOworCQl9CiAJCWlm IChtZW1fY291bnRlcnMpCiAJCQlzaG93X21lbW9yeV9jb3VudGVycyhlcywgbWVtX2NvdW50ZXJz KTsKIApAQCAtNjgwLDYgKzcwOCwzNSBAQCBFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxh bm5lZHN0bXQsIENhY2hlZFBsYW4gKmNwbGFuLAogCiAJdG90YWx0aW1lICs9IGVsYXBzZWRfdGlt ZSgmc3RhcnR0aW1lKTsKIAorCS8qIFNob3cgc3RvcmFnZSBJL08gdXNhZ2UgaW4gZXhlY3V0aW9u ICovCisJaWYgKGVzLT5idWZmZXJzKQorCXsKKwkJU3RvcmFnZUlPVXNhZ2Ugc3RvcmFnZWlvID0g ezB9OworCQlTdG9yYWdlSU9Vc2FnZSBzdG9yYWdlaW9fZW5kOworCisJCUdldFN0b3JhZ2VJT1Vz YWdlKCZzdG9yYWdlaW9fZW5kKTsKKwkJU3RvcmFnZUlPVXNhZ2VBY2N1bURpZmYoJnN0b3JhZ2Vp bywgJnN0b3JhZ2Vpb19lbmQsICZzdG9yYWdlaW9fc3RhcnQpOworCQlTdG9yYWdlSU9Vc2FnZUFk ZCgmc3RvcmFnZWlvLCAmcGdTdG9yYWdlSU9Vc2FnZVBhcmFsbGVsKTsKKworCQlpZiAocGVla19z dG9yYWdlaW9fdXNhZ2UoZXMsICZzdG9yYWdlaW8pKQorCQl7CisJCQlFeHBsYWluT3Blbkdyb3Vw KCJFeGVjdXRpb24iLCAiRXhlY3V0aW9uIiwgdHJ1ZSwgZXMpOworCisJCQlpZiAoZXMtPmZvcm1h dCA9PSBFWFBMQUlOX0ZPUk1BVF9URVhUKQorCQkJeworCQkJCUV4cGxhaW5JbmRlbnRUZXh0KGVz KTsKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGVzLT5zdHIsICJFeGVjdXRpb246XG4iKTsK KwkJCQllcy0+aW5kZW50Kys7CisJCQl9CisJCQlzaG93X3N0b3JhZ2Vpb191c2FnZShlcywgJnN0 b3JhZ2Vpbyk7CisKKwkJCWlmIChlcy0+Zm9ybWF0ID09IEVYUExBSU5fRk9STUFUX1RFWFQpCisJ CQkJZXMtPmluZGVudC0tOworCisJCQlFeHBsYWluQ2xvc2VHcm91cCgiRXhlY3V0aW9uIiwgIkV4 ZWN1dGlvbiIsIHRydWUsIGVzKTsKKwkJfQorCX0KKwogCS8qCiAJICogV2Ugb25seSByZXBvcnQg ZXhlY3V0aW9uIHRpbWUgaWYgd2UgYWN0dWFsbHkgcmFuIHRoZSBxdWVyeSAodGhhdCBpcywKIAkg KiB0aGUgdXNlciBzcGVjaWZpZWQgQU5BTFlaRSksIGFuZCBpZiBzdW1tYXJ5IHJlcG9ydGluZyBp cyBlbmFibGVkICh0aGUKQEAgLTQyNzAsNiArNDMyNyw1MSBAQCBzaG93X2J1ZmZlcl91c2FnZShF eHBsYWluU3RhdGUgKmVzLCBjb25zdCBCdWZmZXJVc2FnZSAqdXNhZ2UpCiAJfQogfQogCisvKgor ICogUmV0dXJuIHdoZXRoZXIgc2hvd19zdG9yYWdlaW9fdXNhZ2Ugd291bGQgaGF2ZSBhbnl0aGlu ZyB0byBwcmludCwgaWYgZ2l2ZW4KKyAqIHRoZSBzYW1lICd1c2FnZScgZGF0YS4gIE5vdGUgdGhh dCB3aGVuIHRoZSBmb3JtYXQgaXMgYW55dGhpbmcgb3RoZXIgdGhhbgorICogdGV4dCwgd2UgcHJp bnQgZXZlbiBpZiB0aGUgY291bnRlcnMgYXJlIGFsbCB6ZXJvZXMuCisgKi8KK3N0YXRpYyBib29s CitwZWVrX3N0b3JhZ2Vpb191c2FnZShFeHBsYWluU3RhdGUgKmVzLCBjb25zdCBTdG9yYWdlSU9V c2FnZSAqdXNhZ2UpCit7CisJaWYgKHVzYWdlID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKwor CWlmIChlcy0+Zm9ybWF0ICE9IEVYUExBSU5fRk9STUFUX1RFWFQpCisJCXJldHVybiB0cnVlOwor CisJcmV0dXJuIHVzYWdlLT5pbmJsb2NrID4gMCB8fCB1c2FnZS0+b3V0YmxvY2sgPiAwOworfQor CisvKgorICogU2hvdyBzdG9yYWdlIEkvTyB1c2FnZS4KKyAqLworc3RhdGljIHZvaWQKK3Nob3df c3RvcmFnZWlvX3VzYWdlKEV4cGxhaW5TdGF0ZSAqZXMsIGNvbnN0IFN0b3JhZ2VJT1VzYWdlICp1 c2FnZSkKK3sKKwlpZiAoZXMtPmZvcm1hdCA9PSBFWFBMQUlOX0ZPUk1BVF9URVhUKQorCXsKKwkJ LyogU2hvdyBvbmx5IHBvc2l0aXZlIGNvdW50ZXIgdmFsdWVzLiAqLworCQlpZiAodXNhZ2UtPmlu YmxvY2sgPD0gMCAmJiB1c2FnZS0+b3V0YmxvY2sgPD0gMCkKKwkJCXJldHVybjsKKworCQlFeHBs YWluSW5kZW50VGV4dChlcyk7CisJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoZXMtPnN0ciwgIlN0 b3JhZ2UgSS9POiIpOworCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIsICIgcmVhZD0lbGQgdGlt ZXMiLCAobG9uZykgdXNhZ2UtPmluYmxvY2spOworCQlhcHBlbmRTdHJpbmdJbmZvKGVzLT5zdHIs ICIgd3JpdGU9JWxkIHRpbWVzIiwgKGxvbmcpIHVzYWdlLT5vdXRibG9jayk7CisKKwkJYXBwZW5k U3RyaW5nSW5mb0NoYXIoZXMtPnN0ciwgJ1xuJyk7CisJfQorCWVsc2UKKwl7CisJCUV4cGxhaW5Q cm9wZXJ0eUludGVnZXIoIlN0b3JhZ2UgSS9PIFJlYWQiLCBOVUxMLAorCQkJCQkJCSAgIHVzYWdl LT5pbmJsb2NrLCBlcyk7CisJCUV4cGxhaW5Qcm9wZXJ0eUludGVnZXIoIlN0b3JhZ2UgSS9PIFJl YWQiLCBOVUxMLAorCQkJCQkJCSAgIHVzYWdlLT5vdXRibG9jaywgZXMpOworCX0KK30KKwogLyoK ICAqIFNob3cgV0FMIHVzYWdlIGRldGFpbHMuCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3ByZXBhcmUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwppbmRl eCBiZjdkMmIyMzA5Li5kMWU3M2EwNzkzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9wcmVwYXJlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCkBAIC01ODMs NiArNTgzLDggQEAgRXhwbGFpbkV4ZWN1dGVRdWVyeShFeGVjdXRlU3RtdCAqZXhlY3N0bXQsIElu dG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJaW5zdHJfdGltZQlwbGFuZHVyYXRp b247CiAJQnVmZmVyVXNhZ2UgYnVmdXNhZ2Vfc3RhcnQsCiAJCQkJYnVmdXNhZ2U7CisJU3RvcmFn ZUlPVXNhZ2Ugc3RvcmFnZWlvLAorCQkJCXN0b3JhZ2Vpb19zdGFydDsKIAlNZW1vcnlDb250ZXh0 Q291bnRlcnMgbWVtX2NvdW50ZXJzOwogCU1lbW9yeUNvbnRleHQgcGxhbm5lcl9jdHggPSBOVUxM OwogCU1lbW9yeUNvbnRleHQgc2F2ZWRfY3R4ID0gTlVMTDsKQEAgLTU5OSw3ICs2MDEsMTEgQEAg RXhwbGFpbkV4ZWN1dGVRdWVyeShFeGVjdXRlU3RtdCAqZXhlY3N0bXQsIEludG9DbGF1c2UgKmlu dG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJfQogCiAJaWYgKGVzLT5idWZmZXJzKQorCXsKIAkJYnVm dXNhZ2Vfc3RhcnQgPSBwZ0J1ZmZlclVzYWdlOworCQlHZXRTdG9yYWdlSU9Vc2FnZSgmc3RvcmFn ZWlvX3N0YXJ0KTsKKwl9CisKIAlJTlNUUl9USU1FX1NFVF9DVVJSRU5UKHBsYW5zdGFydCk7CiAK IAkvKiBMb29rIGl0IHVwIGluIHRoZSBoYXNoIHRhYmxlICovCkBAIC02NDksNiArNjU1LDcgQEAg RXhwbGFpbkV4ZWN1dGVRdWVyeShFeGVjdXRlU3RtdCAqZXhlY3N0bXQsIEludG9DbGF1c2UgKmlu dG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJewogCQltZW1zZXQoJmJ1ZnVzYWdlLCAwLCBzaXplb2Yo QnVmZmVyVXNhZ2UpKTsKIAkJQnVmZmVyVXNhZ2VBY2N1bURpZmYoJmJ1ZnVzYWdlLCAmcGdCdWZm ZXJVc2FnZSwgJmJ1ZnVzYWdlX3N0YXJ0KTsKKwkJR2V0U3RvcmFnZUlPVXNhZ2UoJnN0b3JhZ2Vp byk7CiAJfQogCiAJcGxhbl9saXN0ID0gY3BsYW4tPnN0bXRfbGlzdDsKQEAgLTY2Miw2ICs2Njks NyBAQCBFeHBsYWluRXhlY3V0ZVF1ZXJ5KEV4ZWN1dGVTdG10ICpleGVjc3RtdCwgSW50b0NsYXVz ZSAqaW50bywgRXhwbGFpblN0YXRlICplcywKIAkJCUV4cGxhaW5PbmVQbGFuKHBzdG10LCBjcGxh biwgZW50cnktPnBsYW5zb3VyY2UsIHF1ZXJ5X2luZGV4LAogCQkJCQkJICAgaW50bywgZXMsIHF1 ZXJ5X3N0cmluZywgcGFyYW1MSSwgcHN0YXRlLT5wX3F1ZXJ5RW52LAogCQkJCQkJICAgJnBsYW5k dXJhdGlvbiwgKGVzLT5idWZmZXJzID8gJmJ1ZnVzYWdlIDogTlVMTCksCisJCQkJCQkgICAoZXMt PmJ1ZmZlcnMgPyAmc3RvcmFnZWlvIDogTlVMTCksCiAJCQkJCQkgICBlcy0+bWVtb3J5ID8gJm1l bV9jb3VudGVycyA6IE5VTEwpOwogCQllbHNlCiAJCQlFeHBsYWluT25lVXRpbGl0eShwc3RtdC0+ dXRpbGl0eVN0bXQsIGludG8sIGVzLCBwc3RhdGUsIHBhcmFtTEkpOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3ZhY3V1bXBhcmFsbGVsLmMKaW5kZXggMmI5ZDU0OGNkZS4uZjc3MTI0ZjhjNSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFjdXVtcGFyYWxsZWwuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy92YWN1dW1wYXJhbGxlbC5jCkBAIC03MzcsNyArNzM3LDcgQEAgcGFyYWxsZWxf dmFjdXVtX3Byb2Nlc3NfYWxsX2luZGV4ZXMoUGFyYWxsZWxWYWN1dW1TdGF0ZSAqcHZzLCBpbnQg bnVtX2luZGV4X3NjYW4KIAkJV2FpdEZvclBhcmFsbGVsV29ya2Vyc1RvRmluaXNoKHB2cy0+cGN4 dCk7CiAKIAkJZm9yIChpbnQgaSA9IDA7IGkgPCBwdnMtPnBjeHQtPm53b3JrZXJzX2xhdW5jaGVk OyBpKyspCi0JCQlJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeSgmcHZzLT5idWZmZXJfdXNhZ2VbaV0s ICZwdnMtPndhbF91c2FnZVtpXSk7CisJCQlJbnN0ckFjY3VtUGFyYWxsZWxRdWVyeSgmcHZzLT5i dWZmZXJfdXNhZ2VbaV0sIE5VTEwsICZwdnMtPndhbF91c2FnZVtpXSk7CiAJfQogCiAJLyoKQEAg LTEwODMsNyArMTA4Myw3IEBAIHBhcmFsbGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcs IHNobV90b2MgKnRvYykKIAllcnJvcl9jb250ZXh0X3N0YWNrID0gJmVycmNhbGxiYWNrOwogCiAJ LyogUHJlcGFyZSB0byB0cmFjayBidWZmZXIgdXNhZ2UgZHVyaW5nIHBhcmFsbGVsIGV4ZWN1dGlv biAqLwotCUluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KCk7CisJSW5zdHJTdGFydFBhcmFsbGVsUXVl cnkoTlVMTCk7CiAKIAkvKiBQcm9jZXNzIGluZGV4ZXMgdG8gcGVyZm9ybSB2YWN1dW0vY2xlYW51 cCAqLwogCXBhcmFsbGVsX3ZhY3V1bV9wcm9jZXNzX3NhZmVfaW5kZXhlcygmcHZzKTsKQEAgLTEw OTEsOCArMTA5MSw4IEBAIHBhcmFsbGVsX3ZhY3V1bV9tYWluKGRzbV9zZWdtZW50ICpzZWcsIHNo bV90b2MgKnRvYykKIAkvKiBSZXBvcnQgYnVmZmVyL1dBTCB1c2FnZSBkdXJpbmcgcGFyYWxsZWwg ZXhlY3V0aW9uICovCiAJYnVmZmVyX3VzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExF TF9WQUNVVU1fS0VZX0JVRkZFUl9VU0FHRSwgZmFsc2UpOwogCXdhbF91c2FnZSA9IHNobV90b2Nf bG9va3VwKHRvYywgUEFSQUxMRUxfVkFDVVVNX0tFWV9XQUxfVVNBR0UsIGZhbHNlKTsKLQlJbnN0 ckVuZFBhcmFsbGVsUXVlcnkoJmJ1ZmZlcl91c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sCi0J CQkJCQkgICZ3YWxfdXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdKTsKKwlJbnN0ckVuZFBhcmFs bGVsUXVlcnkoJmJ1ZmZlcl91c2FnZVtQYXJhbGxlbFdvcmtlck51bWJlcl0sIE5VTEwsCisJCQkJ CQkgICZ3YWxfdXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLCBOVUxMKTsKIAogCS8qIFJlcG9y dCBhbnkgcmVtYWluaW5nIGNvc3QtYmFzZWQgdmFjdXVtIGRlbGF5IHRpbWUgKi8KIAlpZiAodHJh Y2tfY29zdF9kZWxheV90aW1pbmcpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjUGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCmluZGV4 IGU5MzM3YTk3ZDEuLjE3MjhlMWNkZDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNQYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5j CkBAIC02NSw2ICs2NSw3IEBACiAjZGVmaW5lIFBBUkFMTEVMX0tFWV9RVUVSWV9URVhUCQlVSU5U NjRDT05TVCgweEUwMDAwMDAwMDAwMDAwMDgpCiAjZGVmaW5lIFBBUkFMTEVMX0tFWV9KSVRfSU5T VFJVTUVOVEFUSU9OIFVJTlQ2NENPTlNUKDB4RTAwMDAwMDAwMDAwMDAwOSkKICNkZWZpbmUgUEFS QUxMRUxfS0VZX1dBTF9VU0FHRQkJCVVJTlQ2NENPTlNUKDB4RTAwMDAwMDAwMDAwMDAwQSkKKyNk ZWZpbmUgUEFSQUxMRUxfS0VZX1NUT1JBR0VJT19VU0FHRQlVSU5UNjRDT05TVCgweEUwMDAwMDAw MDAwMDAwMEIpCiAKICNkZWZpbmUgUEFSQUxMRUxfVFVQTEVfUVVFVUVfU0laRQkJNjU1MzYKIApA QCAtNjA4LDYgKzYwOSw3IEBAIEV4ZWNJbml0UGFyYWxsZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0 YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAljaGFyCSAgICpwc3RtdF9zcGFjZTsKIAljaGFyCSAgICpw YXJhbWxpc3RpbmZvX3NwYWNlOwogCUJ1ZmZlclVzYWdlICpidWZ1c2FnZV9zcGFjZTsKKwlTdG9y YWdlSU9Vc2FnZSAqc3RvcmFnZWlvdXNhZ2Vfc3BhY2U7CiAJV2FsVXNhZ2UgICAqd2FsdXNhZ2Vf c3BhY2U7CiAJU2hhcmVkRXhlY3V0b3JJbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnRhdGlvbiA9 IE5VTEw7CiAJU2hhcmVkSml0SW5zdHJ1bWVudGF0aW9uICpqaXRfaW5zdHJ1bWVudGF0aW9uID0g TlVMTDsKQEAgLTY4OSw2ICs2OTEsMTMgQEAgRXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRl ICpwbGFuc3RhdGUsIEVTdGF0ZSAqZXN0YXRlLAogCQkJCQkJICAgbXVsX3NpemUoc2l6ZW9mKFdh bFVzYWdlKSwgcGN4dC0+bndvcmtlcnMpKTsKIAlzaG1fdG9jX2VzdGltYXRlX2tleXMoJnBjeHQt PmVzdGltYXRvciwgMSk7CiAKKwkvKgorCSAqIFNhbWUgdGhpbmcgZm9yIFN0b3JhZ2VJT1VzYWdl LgorCSAqLworCXNobV90b2NfZXN0aW1hdGVfY2h1bmsoJnBjeHQtPmVzdGltYXRvciwKKwkJCQkJ CSAgIG11bF9zaXplKHNpemVvZihTdG9yYWdlSU9Vc2FnZSksIHBjeHQtPm53b3JrZXJzKSk7CisJ c2htX3RvY19lc3RpbWF0ZV9rZXlzKCZwY3h0LT5lc3RpbWF0b3IsIDEpOworCiAJLyogRXN0aW1h dGUgc3BhY2UgZm9yIHR1cGxlIHF1ZXVlcy4gKi8KIAlzaG1fdG9jX2VzdGltYXRlX2NodW5rKCZw Y3h0LT5lc3RpbWF0b3IsCiAJCQkJCQkgICBtdWxfc2l6ZShQQVJBTExFTF9UVVBMRV9RVUVVRV9T SVpFLCBwY3h0LT5ud29ya2VycykpOwpAQCAtNzg0LDYgKzc5MywxMiBAQCBFeGVjSW5pdFBhcmFs bGVsUGxhbihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJc2htX3RvY19p bnNlcnQocGN4dC0+dG9jLCBQQVJBTExFTF9LRVlfV0FMX1VTQUdFLCB3YWx1c2FnZV9zcGFjZSk7 CiAJcGVpLT53YWxfdXNhZ2UgPSB3YWx1c2FnZV9zcGFjZTsKIAorCS8qIFNhbWUgZm9yIFN0b3Jh Z2VJT1VzYWdlLiAqLworCXN0b3JhZ2Vpb3VzYWdlX3NwYWNlID0gc2htX3RvY19hbGxvY2F0ZShw Y3h0LT50b2MsCisJCQkJCQkJCQkJCW11bF9zaXplKHNpemVvZihTdG9yYWdlSU9Vc2FnZSksIHBj eHQtPm53b3JrZXJzKSk7CisJc2htX3RvY19pbnNlcnQocGN4dC0+dG9jLCBQQVJBTExFTF9LRVlf U1RPUkFHRUlPX1VTQUdFLCBzdG9yYWdlaW91c2FnZV9zcGFjZSk7CisJcGVpLT5zdG9yYWdlaW9f dXNhZ2UgPSBzdG9yYWdlaW91c2FnZV9zcGFjZTsKKwogCS8qIFNldCB1cCB0aGUgdHVwbGUgcXVl dWVzIHRoYXQgdGhlIHdvcmtlcnMgd2lsbCB3cml0ZSBpbnRvLiAqLwogCXBlaS0+dHF1ZXVlID0g RXhlY1BhcmFsbGVsU2V0dXBUdXBsZVF1ZXVlcyhwY3h0LCBmYWxzZSk7CiAKQEAgLTExODksMTEg KzEyMDQsMTEgQEAgRXhlY1BhcmFsbGVsRmluaXNoKFBhcmFsbGVsRXhlY3V0b3JJbmZvICpwZWkp CiAJV2FpdEZvclBhcmFsbGVsV29ya2Vyc1RvRmluaXNoKHBlaS0+cGN4dCk7CiAKIAkvKgotCSAq IE5leHQsIGFjY3VtdWxhdGUgYnVmZmVyL1dBTCB1c2FnZS4gIChUaGlzIG11c3Qgd2FpdCBmb3Ig dGhlIHdvcmtlcnMgdG8KLQkgKiBmaW5pc2gsIG9yIHdlIG1pZ2h0IGdldCBpbmNvbXBsZXRlIGRh dGEuKQorCSAqIE5leHQsIGFjY3VtdWxhdGUgYnVmZmVyLCBXQUwsIGFuZCBTdG9yYWdlIEkvTyB1 c2FnZS4gKFRoaXMgbXVzdCB3YWl0CisJICogZm9yIHRoZSB3b3JrZXJzIHRvIGZpbmlzaCwgb3Ig d2UgbWlnaHQgZ2V0IGluY29tcGxldGUgZGF0YS4pCiAJICovCiAJZm9yIChpID0gMDsgaSA8IG53 b3JrZXJzOyBpKyspCi0JCUluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KCZwZWktPmJ1ZmZlcl91c2Fn ZVtpXSwgJnBlaS0+d2FsX3VzYWdlW2ldKTsKKwkJSW5zdHJBY2N1bVBhcmFsbGVsUXVlcnkoJnBl aS0+YnVmZmVyX3VzYWdlW2ldLCAmcGVpLT5zdG9yYWdlaW9fdXNhZ2VbaV0sICZwZWktPndhbF91 c2FnZVtpXSk7CiAKIAlwZWktPmZpbmlzaGVkID0gdHJ1ZTsKIH0KQEAgLTE0MzYsNiArMTQ1MSw4 IEBAIFBhcmFsbGVsUXVlcnlNYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIHsK IAlGaXhlZFBhcmFsbGVsRXhlY3V0b3JTdGF0ZSAqZnBlczsKIAlCdWZmZXJVc2FnZSAqYnVmZmVy X3VzYWdlOworCVN0b3JhZ2VJT1VzYWdlICpzdG9yYWdlaW9fdXNhZ2U7CisJU3RvcmFnZUlPVXNh Z2Ugc3RvcmFnZWlvX3VzYWdlX3N0YXJ0ID0gezB9OwogCVdhbFVzYWdlICAgKndhbF91c2FnZTsK IAlEZXN0UmVjZWl2ZXIgKnJlY2VpdmVyOwogCVF1ZXJ5RGVzYyAgKnF1ZXJ5RGVzYzsKQEAgLTE0 OTAsMTMgKzE1MDcsMTQgQEAgUGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2ht X3RvYyAqdG9jKQogCUV4ZWNTZXRUdXBsZUJvdW5kKGZwZXMtPnR1cGxlc19uZWVkZWQsIHF1ZXJ5 RGVzYy0+cGxhbnN0YXRlKTsKIAogCS8qCi0JICogUHJlcGFyZSB0byB0cmFjayBidWZmZXIvV0FM IHVzYWdlIGR1cmluZyBxdWVyeSBleGVjdXRpb24uCisJICogUHJlcGFyZSB0byB0cmFjayBidWZm ZXIsIFdBTCwgYW5kIFN0b3JhZ2VJL08gdXNhZ2UgZHVyaW5nIHF1ZXJ5CisJICogZXhlY3V0aW9u LgogCSAqCiAJICogV2UgZG8gdGhpcyBhZnRlciBzdGFydGluZyB1cCB0aGUgZXhlY3V0b3IgdG8g bWF0Y2ggd2hhdCBoYXBwZW5zIGluIHRoZQogCSAqIGxlYWRlciwgd2hpY2ggYWxzbyBkb2Vzbid0 IGNvdW50IGJ1ZmZlciBhY2Nlc3NlcyBhbmQgV0FMIGFjdGl2aXR5IHRoYXQKIAkgKiBvY2N1ciBk dXJpbmcgZXhlY3V0b3Igc3RhcnR1cC4KIAkgKi8KLQlJbnN0clN0YXJ0UGFyYWxsZWxRdWVyeSgp OworCUluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KCZzdG9yYWdlaW9fdXNhZ2Vfc3RhcnQpOwogCiAJ LyoKIAkgKiBSdW4gdGhlIHBsYW4uICBJZiB3ZSBzcGVjaWZpZWQgYSB0dXBsZSBib3VuZCwgYmUg Y2FyZWZ1bCBub3QgdG8gZGVtYW5kCkBAIC0xNTA5LDExICsxNTI3LDE0IEBAIFBhcmFsbGVsUXVl cnlNYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAkvKiBTaHV0IGRvd24gdGhl IGV4ZWN1dG9yICovCiAJRXhlY3V0b3JGaW5pc2gocXVlcnlEZXNjKTsKIAotCS8qIFJlcG9ydCBi dWZmZXIvV0FMIHVzYWdlIGR1cmluZyBwYXJhbGxlbCBleGVjdXRpb24uICovCisJLyogUmVwb3J0 IGJ1ZmZlciwgV0FMLCBhbmQgc3RvcmFnZUlPIHVzYWdlIGR1cmluZyBwYXJhbGxlbCBleGVjdXRp b24uICovCiAJYnVmZmVyX3VzYWdlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlf QlVGRkVSX1VTQUdFLCBmYWxzZSk7CisJc3RvcmFnZWlvX3VzYWdlID0gc2htX3RvY19sb29rdXAo dG9jLCBQQVJBTExFTF9LRVlfU1RPUkFHRUlPX1VTQUdFLCBmYWxzZSk7CiAJd2FsX3VzYWdlID0g c2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlfV0FMX1VTQUdFLCBmYWxzZSk7CiAJSW5z dHJFbmRQYXJhbGxlbFF1ZXJ5KCZidWZmZXJfdXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLAot CQkJCQkJICAmd2FsX3VzYWdlW1BhcmFsbGVsV29ya2VyTnVtYmVyXSk7CisJCQkJCQkgICZzdG9y YWdlaW9fdXNhZ2VbUGFyYWxsZWxXb3JrZXJOdW1iZXJdLAorCQkJCQkJICAmd2FsX3VzYWdlW1Bh cmFsbGVsV29ya2VyTnVtYmVyXSwKKwkJCQkJCSAgJnN0b3JhZ2Vpb191c2FnZV9zdGFydCk7CiAK IAkvKiBSZXBvcnQgaW5zdHJ1bWVudGF0aW9uIGRhdGEgaWYgYW55IGluc3RydW1lbnRhdGlvbiBv cHRpb25zIGFyZSBzZXQuICovCiAJaWYgKGluc3RydW1lbnRhdGlvbiAhPSBOVUxMKQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvaW5zdHJ1bWVudC5jIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvaW5zdHJ1bWVudC5jCmluZGV4IDU2ZTYzNWY0NzAuLjVmYTMzYjk3ZGEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2luc3RydW1lbnQuYworKysgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9pbnN0cnVtZW50LmMKQEAgLTEzLDE2ICsxMywyMSBAQAogICovCiAjaW5jbHVkZSAi cG9zdGdyZXMuaCIKIAorI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgogI2luY2x1ZGUgPHVuaXN0 ZC5oPgogCiAjaW5jbHVkZSAiZXhlY3V0b3IvaW5zdHJ1bWVudC5oIgogCiBCdWZmZXJVc2FnZSBw Z0J1ZmZlclVzYWdlOwogc3RhdGljIEJ1ZmZlclVzYWdlIHNhdmVfcGdCdWZmZXJVc2FnZTsKKwor LyogT25seSBjb3VudCBwYXJhbGxlbCB3b3JrZXJzJyB1c2FnZSAqLworU3RvcmFnZUlPVXNhZ2Ug cGdTdG9yYWdlSU9Vc2FnZVBhcmFsbGVsOwogV2FsVXNhZ2UJcGdXYWxVc2FnZTsKIHN0YXRpYyBX YWxVc2FnZSBzYXZlX3BnV2FsVXNhZ2U7CiAKIHN0YXRpYyB2b2lkIEJ1ZmZlclVzYWdlQWRkKEJ1 ZmZlclVzYWdlICpkc3QsIGNvbnN0IEJ1ZmZlclVzYWdlICphZGQpOwordm9pZAkJU3RvcmFnZUlP VXNhZ2VBZGQoU3RvcmFnZUlPVXNhZ2UgKmRzdCwgY29uc3QgU3RvcmFnZUlPVXNhZ2UgKmFkZCk7 CiBzdGF0aWMgdm9pZCBXYWxVc2FnZUFkZChXYWxVc2FnZSAqZHN0LCBXYWxVc2FnZSAqYWRkKTsK IAogCkBAIC0xOTcsMjcgKzIwMiw0NiBAQCBJbnN0ckFnZ05vZGUoSW5zdHJ1bWVudGF0aW9uICpk c3QsIEluc3RydW1lbnRhdGlvbiAqYWRkKQogCiAvKiBub3RlIGN1cnJlbnQgdmFsdWVzIGR1cmlu ZyBwYXJhbGxlbCBleGVjdXRvciBzdGFydHVwICovCiB2b2lkCi1JbnN0clN0YXJ0UGFyYWxsZWxR dWVyeSh2b2lkKQorSW5zdHJTdGFydFBhcmFsbGVsUXVlcnkoU3RvcmFnZUlPVXNhZ2UgKnN0b3Jh Z2Vpb3VzYWdlKQogewogCXNhdmVfcGdCdWZmZXJVc2FnZSA9IHBnQnVmZmVyVXNhZ2U7CiAJc2F2 ZV9wZ1dhbFVzYWdlID0gcGdXYWxVc2FnZTsKKworCWlmIChzdG9yYWdlaW91c2FnZSAhPSBOVUxM KQorCQlHZXRTdG9yYWdlSU9Vc2FnZShzdG9yYWdlaW91c2FnZSk7CiB9CiAKIC8qIHJlcG9ydCB1 c2FnZSBhZnRlciBwYXJhbGxlbCBleGVjdXRvciBzaHV0ZG93biAqLwogdm9pZAotSW5zdHJFbmRQ YXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdlKQor SW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgU3RvcmFnZUlPVXNh Z2UgKnN0b3JhZ2Vpb3VzYWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2UsIFN0b3JhZ2VJT1VzYWdlICpz dG9yYWdlaW91c2FnZV9zdGFydCkKIHsKIAltZW1zZXQoYnVmdXNhZ2UsIDAsIHNpemVvZihCdWZm ZXJVc2FnZSkpOwogCUJ1ZmZlclVzYWdlQWNjdW1EaWZmKGJ1ZnVzYWdlLCAmcGdCdWZmZXJVc2Fn ZSwgJnNhdmVfcGdCdWZmZXJVc2FnZSk7CisKKwlpZiAoc3RvcmFnZWlvdXNhZ2UgIT0gTlVMTCAm JiBzdG9yYWdlaW91c2FnZV9zdGFydCAhPSBOVUxMKQorCXsKKwkJc3RydWN0IFN0b3JhZ2VJT1Vz YWdlIHN0b3JhZ2Vpb3VzYWdlX2VuZDsKKworCQlHZXRTdG9yYWdlSU9Vc2FnZSgmc3RvcmFnZWlv dXNhZ2VfZW5kKTsKKworCQltZW1zZXQoc3RvcmFnZWlvdXNhZ2UsIDAsIHNpemVvZihTdG9yYWdl SU9Vc2FnZSkpOworCQlTdG9yYWdlSU9Vc2FnZUFjY3VtRGlmZihzdG9yYWdlaW91c2FnZSwgJnN0 b3JhZ2Vpb3VzYWdlX2VuZCwgc3RvcmFnZWlvdXNhZ2Vfc3RhcnQpOworCisJCWVyZXBvcnQoREVC VUcxLAorCQkJCShlcnJtc2coIlBhcmFsbGVsIHdvcmtlcidzIHN0b3JhZ2UgSS9PIHRpbWVzOiBp bmJsb2NrOiVsZCBvdXRibG9jazolbGQiLAorCQkJCQkJc3RvcmFnZWlvdXNhZ2UtPmluYmxvY2ss IHN0b3JhZ2Vpb3VzYWdlLT5vdXRibG9jaykpKTsKKwl9CiAJbWVtc2V0KHdhbHVzYWdlLCAwLCBz aXplb2YoV2FsVXNhZ2UpKTsKIAlXYWxVc2FnZUFjY3VtRGlmZih3YWx1c2FnZSwgJnBnV2FsVXNh Z2UsICZzYXZlX3BnV2FsVXNhZ2UpOwogfQogCiAvKiBhY2N1bXVsYXRlIHdvcmsgZG9uZSBieSB3 b3JrZXJzIGluIGxlYWRlcidzIHN0YXRzICovCiB2b2lkCi1JbnN0ckFjY3VtUGFyYWxsZWxRdWVy eShCdWZmZXJVc2FnZSAqYnVmdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSkKK0luc3RyQWNjdW1Q YXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgU3RvcmFnZUlPVXNhZ2UgKnN0b3Jh Z2Vpb3VzYWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2UpCiB7CiAJQnVmZmVyVXNhZ2VBZGQoJnBnQnVm ZmVyVXNhZ2UsIGJ1ZnVzYWdlKTsKKwlpZiAoc3RvcmFnZWlvdXNhZ2UgIT0gTlVMTCkKKwkJU3Rv cmFnZUlPVXNhZ2VBZGQoJnBnU3RvcmFnZUlPVXNhZ2VQYXJhbGxlbCwgc3RvcmFnZWlvdXNhZ2Up OwogCVdhbFVzYWdlQWRkKCZwZ1dhbFVzYWdlLCB3YWx1c2FnZSk7CiB9CiAKQEAgLTI3Myw2ICsy OTcsMzggQEAgQnVmZmVyVXNhZ2VBY2N1bURpZmYoQnVmZmVyVXNhZ2UgKmRzdCwKIAkJCQkJCSAg YWRkLT50ZW1wX2Jsa193cml0ZV90aW1lLCBzdWItPnRlbXBfYmxrX3dyaXRlX3RpbWUpOwogfQog CisvKiBoZWxwZXIgZnVuY3Rpb25zIGZvciBTdG9yYWdlSU9Vc2FnZSB1c2FnZSBhY2N1bXVsYXRp b24gKi8KK3ZvaWQKK1N0b3JhZ2VJT1VzYWdlQWRkKFN0b3JhZ2VJT1VzYWdlICpkc3QsIGNvbnN0 IFN0b3JhZ2VJT1VzYWdlICphZGQpCit7CisJZHN0LT5pbmJsb2NrICs9IGFkZC0+aW5ibG9jazsK Kwlkc3QtPm91dGJsb2NrICs9IGFkZC0+b3V0YmxvY2s7Cit9CisKKy8qIGRzdCArPSBhZGQgLSBz dWIgKi8KK3ZvaWQKK1N0b3JhZ2VJT1VzYWdlQWNjdW1EaWZmKFN0b3JhZ2VJT1VzYWdlICpkc3Qs IGNvbnN0IFN0b3JhZ2VJT1VzYWdlICphZGQsIGNvbnN0IFN0b3JhZ2VJT1VzYWdlICpzdWIpCit7 CisJZHN0LT5pbmJsb2NrICs9IGFkZC0+aW5ibG9jayAtIHN1Yi0+aW5ibG9jazsKKwlkc3QtPm91 dGJsb2NrICs9IGFkZC0+b3V0YmxvY2sgLSBzdWItPm91dGJsb2NrOworfQorCisvKiBDYXB0dXJl cyB0aGUgY3VycmVudCBzdG9yYWdlIEkvTyB1c2FnZSBzdGF0aXN0aWNzICovCit2b2lkCitHZXRT dG9yYWdlSU9Vc2FnZShTdG9yYWdlSU9Vc2FnZSAqdXNhZ2UpCit7CisJc3RydWN0IHJ1c2FnZSBy dXNhZ2U7CisKKwlpZiAoZ2V0cnVzYWdlKFJVU0FHRV9TRUxGLCAmcnVzYWdlKSkKKwl7CisJCWVy ZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9TWVNURU1fRVJST1IpLAorCQkJCSBl cnJtc2coImdldHJ1c2FnZSgpIGZhaWxlZDogJW0iKSkpOworCX0KKwl1c2FnZS0+aW5ibG9jayA9 IHJ1c2FnZS5ydV9pbmJsb2NrOworCXVzYWdlLT5vdXRibG9jayA9IHJ1c2FnZS5ydV9vdWJsb2Nr OworfQorCiAvKiBoZWxwZXIgZnVuY3Rpb25zIGZvciBXQUwgdXNhZ2UgYWNjdW11bGF0aW9uICov CiBzdGF0aWMgdm9pZAogV2FsVXNhZ2VBZGQoV2FsVXNhZ2UgKmRzdCwgV2FsVXNhZ2UgKmFkZCkK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4uaCBiL3NyYy9pbmNsdWRl L2NvbW1hbmRzL2V4cGxhaW4uaAppbmRleCAzODc4MzllYjVkLi4wYmVjZGUzMzE5IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9leHBsYWluLmgKKysrIGIvc3JjL2luY2x1ZGUvY29t bWFuZHMvZXhwbGFpbi5oCkBAIC03MCw2ICs3MCw3IEBAIGV4dGVybiB2b2lkIEV4cGxhaW5PbmVQ bGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgQ2FjaGVkUGxhbiAqY3BsYW4sCiAJCQkJCQkg ICBQYXJhbUxpc3RJbmZvIHBhcmFtcywgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsCiAJCQkJ CQkgICBjb25zdCBpbnN0cl90aW1lICpwbGFuZHVyYXRpb24sCiAJCQkJCQkgICBjb25zdCBCdWZm ZXJVc2FnZSAqYnVmdXNhZ2UsCisJCQkJCQkgICBjb25zdCBTdG9yYWdlSU9Vc2FnZSAqcGxhbnN0 b3JhZ2VpbywKIAkJCQkJCSAgIGNvbnN0IE1lbW9yeUNvbnRleHRDb3VudGVycyAqbWVtX2NvdW50 ZXJzKTsKIAogZXh0ZXJuIHZvaWQgRXhwbGFpblByaW50UGxhbihzdHJ1Y3QgRXhwbGFpblN0YXRl ICplcywgUXVlcnlEZXNjICpxdWVyeURlc2MpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhl Y3V0b3IvZXhlY1BhcmFsbGVsLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjUGFyYWxsZWwu aAppbmRleCA1ZTcxMDZjMzk3Li41YzhiYzc2YzUzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9l eGVjdXRvci9leGVjUGFyYWxsZWwuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjUGFy YWxsZWwuaApAQCAtMjYsNiArMjYsOCBAQCB0eXBlZGVmIHN0cnVjdCBQYXJhbGxlbEV4ZWN1dG9y SW5mbwogCVBsYW5TdGF0ZSAgKnBsYW5zdGF0ZTsJCS8qIHBsYW4gc3VidHJlZSB3ZSdyZSBydW5u aW5nIGluIHBhcmFsbGVsICovCiAJUGFyYWxsZWxDb250ZXh0ICpwY3h0OwkJLyogcGFyYWxsZWwg Y29udGV4dCB3ZSdyZSB1c2luZyAqLwogCUJ1ZmZlclVzYWdlICpidWZmZXJfdXNhZ2U7CS8qIHBv aW50cyB0byBidWZ1c2FnZSBhcmVhIGluIERTTSAqLworCVN0b3JhZ2VJT1VzYWdlICpzdG9yYWdl aW9fdXNhZ2U7CS8qIHBvaW50cyB0byBzdG9yYWdlaW8gdXNhZ2UgYXJlYSBpbgorCQkJCQkJCQkJ CSAqIERTTSAqLwogCVdhbFVzYWdlICAgKndhbF91c2FnZTsJCS8qIHdhbHVzYWdlIGFyZWEgaW4g RFNNICovCiAJU2hhcmVkRXhlY3V0b3JJbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnRhdGlvbjsg Lyogb3B0aW9uYWwgKi8KIAlzdHJ1Y3QgU2hhcmVkSml0SW5zdHJ1bWVudGF0aW9uICpqaXRfaW5z dHJ1bWVudGF0aW9uOwkvKiBvcHRpb25hbCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhl Y3V0b3IvaW5zdHJ1bWVudC5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvaW5zdHJ1bWVudC5oCmlu ZGV4IDAzNjUzYWI2YzYuLmUwOWMyZjg5NDMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1 dG9yL2luc3RydW1lbnQuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9pbnN0cnVtZW50LmgK QEAgLTQxLDYgKzQxLDE0IEBAIHR5cGVkZWYgc3RydWN0IEJ1ZmZlclVzYWdlCiAJaW5zdHJfdGlt ZQl0ZW1wX2Jsa193cml0ZV90aW1lOwkvKiB0aW1lIHNwZW50IHdyaXRpbmcgdGVtcCBibG9ja3Mg Ki8KIH0gQnVmZmVyVXNhZ2U7CiAKK3R5cGVkZWYgc3RydWN0IFN0b3JhZ2VJT1VzYWdlCit7CisJ bG9uZwkJaW5ibG9jazsJCS8qICMgb2YgdGltZXMgdGhlIGZpbGUgc3lzdGVtIGhhZCB0byBwZXJm b3JtCisJCQkJCQkJCSAqIGlucHV0ICovCisJbG9uZwkJb3V0YmxvY2s7CQkvKiAjIG9mIHRpbWVz IHRoZSBmaWxlIHN5c3RlbSBoYWQgdG8gcGVyZm9ybQorCQkJCQkJCQkgKiBvdXRwdXQgKi8KK30g U3RvcmFnZUlPVXNhZ2U7CisKIC8qCiAgKiBXYWxVc2FnZSB0cmFja3Mgb25seSBXQUwgYWN0aXZp dHkgbGlrZSBXQUwgcmVjb3JkcyBnZW5lcmF0aW9uIHRoYXQKICAqIGNhbiBiZSBtZWFzdXJlZCBw ZXIgcXVlcnkgYW5kIGlzIGRpc3BsYXllZCBieSBFWFBMQUlOIGNvbW1hbmQsCkBAIC0xMDAsNiAr MTA4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgV29ya2VySW5zdHJ1bWVudGF0aW9uCiB9IFdvcmtlcklu c3RydW1lbnRhdGlvbjsKIAogZXh0ZXJuIFBHRExMSU1QT1JUIEJ1ZmZlclVzYWdlIHBnQnVmZmVy VXNhZ2U7CitleHRlcm4gUEdETExJTVBPUlQgU3RvcmFnZUlPVXNhZ2UgcGdTdG9yYWdlSU9Vc2Fn ZVBhcmFsbGVsOwogZXh0ZXJuIFBHRExMSU1QT1JUIFdhbFVzYWdlIHBnV2FsVXNhZ2U7CiAKIGV4 dGVybiBJbnN0cnVtZW50YXRpb24gKkluc3RyQWxsb2MoaW50IG4sIGludCBpbnN0cnVtZW50X29w dGlvbnMsCkBAIC0xMTAsMTEgKzExOSwxNSBAQCBleHRlcm4gdm9pZCBJbnN0clN0b3BOb2RlKElu c3RydW1lbnRhdGlvbiAqaW5zdHIsIGRvdWJsZSBuVHVwbGVzKTsKIGV4dGVybiB2b2lkIEluc3Ry VXBkYXRlVHVwbGVDb3VudChJbnN0cnVtZW50YXRpb24gKmluc3RyLCBkb3VibGUgblR1cGxlcyk7 CiBleHRlcm4gdm9pZCBJbnN0ckVuZExvb3AoSW5zdHJ1bWVudGF0aW9uICppbnN0cik7CiBleHRl cm4gdm9pZCBJbnN0ckFnZ05vZGUoSW5zdHJ1bWVudGF0aW9uICpkc3QsIEluc3RydW1lbnRhdGlv biAqYWRkKTsKLWV4dGVybiB2b2lkIEluc3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KHZvaWQpOwotZXh0 ZXJuIHZvaWQgSW5zdHJFbmRQYXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgV2Fs VXNhZ2UgKndhbHVzYWdlKTsKLWV4dGVybiB2b2lkIEluc3RyQWNjdW1QYXJhbGxlbFF1ZXJ5KEJ1 ZmZlclVzYWdlICpidWZ1c2FnZSwgV2FsVXNhZ2UgKndhbHVzYWdlKTsKK2V4dGVybiB2b2lkIElu c3RyU3RhcnRQYXJhbGxlbFF1ZXJ5KFN0b3JhZ2VJT1VzYWdlICpzdG9yYWdlaW91c2FnZSk7Citl eHRlcm4gdm9pZCBJbnN0ckVuZFBhcmFsbGVsUXVlcnkoQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLCBT dG9yYWdlSU9Vc2FnZSAqc3RvcmFnZWlvdXNhZ2UsIFdhbFVzYWdlICp3YWx1c2FnZSwgU3RvcmFn ZUlPVXNhZ2UgKnN0b3JhZ2Vpb3VzYWdlX3N0YXJ0KTsKK2V4dGVybiB2b2lkIEluc3RyQWNjdW1Q YXJhbGxlbFF1ZXJ5KEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwgU3RvcmFnZUlPVXNhZ2UgKnN0b3Jh Z2Vpb3VzYWdlLCBXYWxVc2FnZSAqd2FsdXNhZ2UpOwogZXh0ZXJuIHZvaWQgQnVmZmVyVXNhZ2VB Y2N1bURpZmYoQnVmZmVyVXNhZ2UgKmRzdCwKIAkJCQkJCQkJIGNvbnN0IEJ1ZmZlclVzYWdlICph ZGQsIGNvbnN0IEJ1ZmZlclVzYWdlICpzdWIpOworZXh0ZXJuIHZvaWQgU3RvcmFnZUlPVXNhZ2VB Y2N1bURpZmYoU3RvcmFnZUlPVXNhZ2UgKmRzdCwKKwkJCQkJCQkJCWNvbnN0IFN0b3JhZ2VJT1Vz YWdlICphZGQsIGNvbnN0IFN0b3JhZ2VJT1VzYWdlICpzdWIpOworZXh0ZXJuIHZvaWQgU3RvcmFn ZUlPVXNhZ2VBZGQoU3RvcmFnZUlPVXNhZ2UgKmRzdCwgY29uc3QgU3RvcmFnZUlPVXNhZ2UgKmFk ZCk7CitleHRlcm4gdm9pZCBHZXRTdG9yYWdlSU9Vc2FnZShTdG9yYWdlSU9Vc2FnZSAqdXNhZ2Up OwogZXh0ZXJuIHZvaWQgV2FsVXNhZ2VBY2N1bURpZmYoV2FsVXNhZ2UgKmRzdCwgY29uc3QgV2Fs VXNhZ2UgKmFkZCwKIAkJCQkJCQkgIGNvbnN0IFdhbFVzYWdlICpzdWIpOwogCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9wb3J0L3dpbjMyL3N5cy9yZXNvdXJjZS5oIGIvc3JjL2luY2x1ZGUvcG9y dC93aW4zMi9zeXMvcmVzb3VyY2UuaAppbmRleCBhMTRmZWViNTg0Li4yNzBkYzM3Yzg0IDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9wb3J0L3dpbjMyL3N5cy9yZXNvdXJjZS5oCisrKyBiL3NyYy9p bmNsdWRlL3BvcnQvd2luMzIvc3lzL3Jlc291cmNlLmgKQEAgLTEzLDYgKzEzLDggQEAgc3RydWN0 IHJ1c2FnZQogewogCXN0cnVjdCB0aW1ldmFsIHJ1X3V0aW1lOwkvKiB1c2VyIHRpbWUgdXNlZCAq LwogCXN0cnVjdCB0aW1ldmFsIHJ1X3N0aW1lOwkvKiBzeXN0ZW0gdGltZSB1c2VkICovCisJbG9u ZwkJcnVfaW5ibG9jazsJCS8qIEN1cnJlbnRseSBhbHdheXMgMCBmb3IgV2luZG93cyAqLworCWxv bmcJCXJ1X291YmxvY2s7CQkvKiBDdXJyZW50bHkgYWx3YXlzIDAgZm9yIFdpbmRvd3MgKi8KIH07 CiAKIGV4dGVybiBpbnQJZ2V0cnVzYWdlKGludCB3aG8sIHN0cnVjdCBydXNhZ2UgKnJ1c2FnZSk7 CmRpZmYgLS1naXQgYS9zcmMvcG9ydC93aW4zMmdldHJ1c2FnZS5jIGIvc3JjL3BvcnQvd2luMzJn ZXRydXNhZ2UuYwppbmRleCA2YTE5N2M5NDM3Li4yN2YwZWEwNTJhIDEwMDY0NAotLS0gYS9zcmMv cG9ydC93aW4zMmdldHJ1c2FnZS5jCisrKyBiL3NyYy9wb3J0L3dpbjMyZ2V0cnVzYWdlLmMKQEAg LTU3LDUgKzU3LDkgQEAgZ2V0cnVzYWdlKGludCB3aG8sIHN0cnVjdCBydXNhZ2UgKnJ1c2FnZSkK IAlydXNhZ2UtPnJ1X3V0aW1lLnR2X3NlYyA9IGxpLlF1YWRQYXJ0IC8gMTAwMDAwMEw7CiAJcnVz YWdlLT5ydV91dGltZS50dl91c2VjID0gbGkuUXVhZFBhcnQgJSAxMDAwMDAwTDsKIAorCS8qIEN1 cnJlbnRseSBhbHdheXMgMCBmb3IgV2luZG93cyAqLworCXJ1c2FnZS0+cnVfaW5ibG9jayA9IDA7 CisJcnVzYWdlLT5ydV9vdWJsb2NrID0gMDsKKwogCXJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9leHBsYWluLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvZXhwbGFpbi5vdXQKaW5kZXggMzQwNzQ3YThmNy4uZjYzNTUyNWVlNSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9leHBsYWluLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2V4cGxhaW4ub3V0CkBAIC0xMjcsMTAgKzEyNywxNiBAQCBzZWxl Y3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUsIGJ1ZmZlcnMsIGZvcm1hdCB4bWwp IHNlbGVjdCAqIGZyb20gaW50OAogICAgICAgIDxMb2NhbC1Xcml0dGVuLUJsb2Nrcz5OPC9Mb2Nh bC1Xcml0dGVuLUJsb2Nrcz4gICsKICAgICAgICA8VGVtcC1SZWFkLUJsb2Nrcz5OPC9UZW1wLVJl YWQtQmxvY2tzPiAgICAgICAgICArCiAgICAgICAgPFRlbXAtV3JpdHRlbi1CbG9ja3M+TjwvVGVt cC1Xcml0dGVuLUJsb2Nrcz4gICAgKworICAgICAgIDxTdG9yYWdlLUktTy1SZWFkPk48L1N0b3Jh Z2UtSS1PLVJlYWQ+ICAgICAgICAgICsKKyAgICAgICA8U3RvcmFnZS1JLU8tUmVhZD5OPC9TdG9y YWdlLUktTy1SZWFkPiAgICAgICAgICArCiAgICAgIDwvUGxhbm5pbmc+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKwogICAgICA8UGxhbm5pbmctVGltZT5OLk48L1BsYW5u aW5nLVRpbWU+ICAgICAgICAgICAgICAgICsKICAgICAgPFRyaWdnZXJzPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgIDwvVHJpZ2dlcnM+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICA8RXhlY3V0aW9uPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICA8U3RvcmFnZS1JLU8tUmVhZD5O PC9TdG9yYWdlLUktTy1SZWFkPiAgICAgICAgICArCisgICAgICAgPFN0b3JhZ2UtSS1PLVJlYWQ+ TjwvU3RvcmFnZS1JLU8tUmVhZD4gICAgICAgICAgKworICAgICA8L0V4ZWN1dGlvbj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgICAgPEV4ZWN1dGlvbi1UaW1lPk4u TjwvRXhlY3V0aW9uLVRpbWU+ICAgICAgICAgICAgICArCiAgICA8L1F1ZXJ5PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwogIDwvZXhwbGFpbj4KQEAgLTE3NSw2 ICsxODEsOCBAQCBzZWxlY3QgZXhwbGFpbl9maWx0ZXIoJ2V4cGxhaW4gKGFuYWx5emUsIHNlcmlh bGl6ZSwgYnVmZmVycywgZm9ybWF0IHlhbWwpIHNlbGVjdAogICAgICBMb2NhbCBXcml0dGVuIEJs b2NrczogTiAgKwogICAgICBUZW1wIFJlYWQgQmxvY2tzOiBOICAgICAgKwogICAgICBUZW1wIFdy aXR0ZW4gQmxvY2tzOiBOICAgKworICAgICBTdG9yYWdlIEkvTyBSZWFkOiBOICAgICAgKworICAg ICBTdG9yYWdlIEkvTyBSZWFkOiBOICAgICAgKwogICAgUGxhbm5pbmcgVGltZTogTi5OICAgICAg ICAgKwogICAgVHJpZ2dlcnM6ICAgICAgICAgICAgICAgICAgKwogICAgU2VyaWFsaXphdGlvbjog ICAgICAgICAgICAgKwpAQCAtMTkxLDYgKzE5OSw5IEBAIHNlbGVjdCBleHBsYWluX2ZpbHRlcign ZXhwbGFpbiAoYW5hbHl6ZSwgc2VyaWFsaXplLCBidWZmZXJzLCBmb3JtYXQgeWFtbCkgc2VsZWN0 CiAgICAgIExvY2FsIFdyaXR0ZW4gQmxvY2tzOiBOICArCiAgICAgIFRlbXAgUmVhZCBCbG9ja3M6 IE4gICAgICArCiAgICAgIFRlbXAgV3JpdHRlbiBCbG9ja3M6IE4gICArCisgICBFeGVjdXRpb246 ICAgICAgICAgICAgICAgICArCisgICAgIFN0b3JhZ2UgSS9PIFJlYWQ6IE4gICAgICArCisgICAg IFN0b3JhZ2UgSS9PIFJlYWQ6IE4gICAgICArCiAgICBFeGVjdXRpb24gVGltZTogTi5OCiAoMSBy b3cpCiAKQEAgLTIzNyw3ICsyNDgsMTMgQEAgc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBsYWlu IChidWZmZXJzLCBmb3JtYXQganNvbikgc2VsZWN0ICogZnJvbSBpbnQ4X3RibCBpOCcKICAgICAg ICAiTG9jYWwgRGlydGllZCBCbG9ja3MiOiBOLCAgKwogICAgICAgICJMb2NhbCBXcml0dGVuIEJs b2NrcyI6IE4sICArCiAgICAgICAgIlRlbXAgUmVhZCBCbG9ja3MiOiBOLCAgICAgICsKLSAgICAg ICAiVGVtcCBXcml0dGVuIEJsb2NrcyI6IE4gICAgKworICAgICAgICJUZW1wIFdyaXR0ZW4gQmxv Y2tzIjogTiwgICArCisgICAgICAgIlN0b3JhZ2UgSS9PIFJlYWQiOiBOLCAgICAgICsKKyAgICAg ICAiU3RvcmFnZSBJL08gUmVhZCI6IE4gICAgICAgKworICAgICB9LCAgICAgICAgICAgICAgICAg ICAgICAgICAgICArCisgICAgICJFeGVjdXRpb24iOiB7ICAgICAgICAgICAgICAgICsKKyAgICAg ICAiU3RvcmFnZSBJL08gUmVhZCI6IE4sICAgICAgKworICAgICAgICJTdG9yYWdlIEkvTyBSZWFk IjogTiAgICAgICArCiAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgIH0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwogIF0KQEAgLTMzNSwxMSArMzUyLDE3IEBA IHNlbGVjdCBleHBsYWluX2ZpbHRlcignZXhwbGFpbiAoYW5hbHl6ZSwgYnVmZmVycywgZm9ybWF0 IGpzb24pIHNlbGVjdCAqIGZyb20gaW50CiAgICAgICAgIkxvY2FsIEkvTyBSZWFkIFRpbWUiOiBO Lk4sICArCiAgICAgICAgIkxvY2FsIEkvTyBXcml0ZSBUaW1lIjogTi5OLCArCiAgICAgICAgIlRl bXAgSS9PIFJlYWQgVGltZSI6IE4uTiwgICArCi0gICAgICAgIlRlbXAgSS9PIFdyaXRlIFRpbWUi OiBOLk4gICArCisgICAgICAgIlRlbXAgSS9PIFdyaXRlIFRpbWUiOiBOLk4sICArCisgICAgICAg IlN0b3JhZ2UgSS9PIFJlYWQiOiBOLCAgICAgICArCisgICAgICAgIlN0b3JhZ2UgSS9PIFJlYWQi OiBOICAgICAgICArCiAgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAg ICJQbGFubmluZyBUaW1lIjogTi5OLCAgICAgICAgICArCiAgICAgICJUcmlnZ2VycyI6IFsgICAg ICAgICAgICAgICAgICArCiAgICAgIF0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisg ICAgICJFeGVjdXRpb24iOiB7ICAgICAgICAgICAgICAgICArCisgICAgICAgIlN0b3JhZ2UgSS9P IFJlYWQiOiBOLCAgICAgICArCisgICAgICAgIlN0b3JhZ2UgSS9PIFJlYWQiOiBOICAgICAgICAr CisgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICJFeGVjdXRpb24g VGltZSI6IE4uTiAgICAgICAgICArCiAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArCiAgXQpAQCAtNDU5LDEyICs0ODIsMTggQEAgc2VsZWN0IGV4cGxhaW5fZmlsdGVyKCdleHBs YWluIChtZW1vcnksIGFuYWx5emUsIGZvcm1hdCBqc29uKSBzZWxlY3QgKiBmcm9tIGludDgKICAg ICAgICAiTG9jYWwgV3JpdHRlbiBCbG9ja3MiOiBOLCAgKwogICAgICAgICJUZW1wIFJlYWQgQmxv Y2tzIjogTiwgICAgICArCiAgICAgICAgIlRlbXAgV3JpdHRlbiBCbG9ja3MiOiBOLCAgICsKKyAg ICAgICAiU3RvcmFnZSBJL08gUmVhZCI6IE4sICAgICAgKworICAgICAgICJTdG9yYWdlIEkvTyBS ZWFkIjogTiwgICAgICArCiAgICAgICAgIk1lbW9yeSBVc2VkIjogTiwgICAgICAgICAgICsKICAg ICAgICAiTWVtb3J5IEFsbG9jYXRlZCI6IE4gICAgICAgKwogICAgICB9LCAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCiAgICAgICJQbGFubmluZyBUaW1lIjogTi5OLCAgICAgICAgICsKICAg ICAgIlRyaWdnZXJzIjogWyAgICAgICAgICAgICAgICAgKwogICAgICBdLCAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCisgICAgICJFeGVjdXRpb24iOiB7ICAgICAgICAgICAgICAgICsKKyAg ICAgICAiU3RvcmFnZSBJL08gUmVhZCI6IE4sICAgICAgKworICAgICAgICJTdG9yYWdlIEkvTyBS ZWFkIjogTiAgICAgICArCisgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAg ICAgIkV4ZWN1dGlvbiBUaW1lIjogTi5OICAgICAgICAgKwogICAgfSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCiAgXQpAQCAtNjc3LDYgKzcwNiw3IEBAIHNlbGVjdCBqc29uYl9wcmV0 dHkoCiAgICAgICAgICB9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArCiAgICAgICAgICAiUGxhbm5pbmciOiB7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArCiAgICAgICAgICAgICAgIkxvY2FsIEhpdCBCbG9ja3MiOiAwLCAgICAg ICAgICAgICAgICAgICAgICAgICArCisgICAgICAgICAgICAgIlN0b3JhZ2UgSS9PIFJlYWQiOiAw LCAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgICAgICAgIlRlbXAgUmVhZCBCbG9j a3MiOiAwLCAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgICAgICAgIkxvY2FsIFJl YWQgQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgICAgICAgIlNo YXJlZCBIaXQgQmxvY2tzIjogMCwgICAgICAgICAgICAgICAgICAgICAgICArCkBAIC02ODksNiAr NzE5LDkgQEAgc2VsZWN0IGpzb25iX3ByZXR0eSgKICAgICAgICAgIH0sICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgICAgICAgICJUcmlnZ2VycyI6 IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKICAgICAgICAgIF0sICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgICAgICAg ICJFeGVjdXRpb24iOiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAg ICAgICAgICAgICAiU3RvcmFnZSBJL08gUmVhZCI6IDAgICAgICAgICAgICAgICAgICAgICAgICAg ICsKKyAgICAgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsKICAgICAgICAgICJQbGFubmluZyBUaW1lIjogMC4wLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsKICAgICAgICAgICJFeGVjdXRpb24gVGltZSI6IDAuMCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICsKICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVu dC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXgg YmZhMjc2ZDJkMy4uYjRhZmM0OTA0OCAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5 cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTI2 MDgsNiArMjYwOCw3IEBAIFNTTAogU1NMRXh0ZW5zaW9uSW5mb0NvbnRleHQKIFNTTF9DVFgKIFNU QVJUVVBJTkZPCitTdG9yYWdlSU9Vc2FnZQogU1RSTEVOCiBTVgogU1lOQ0hST05JWkFUSU9OX0JB UlJJRVIKCmJhc2UtY29tbWl0OiAxOTBkYzI3OTk4ZDViN2I0YzM2ZTEyYmViZTYyZjcxNzZmNGI0 NTA3Ci0tIAoyLjQzLjAKCg== --=_0d4e1e2dd5ef961b9eedd0d5f4b95b7d--