From unknown Fri Sep 05 11:50:45 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#11875 <11875@debbugs.gnu.org> To: bug#11875 <11875@debbugs.gnu.org> Subject: Status: EMACS_TIME simplification Reply-To: bug#11875 <11875@debbugs.gnu.org> Date: Fri, 05 Sep 2025 18:50:45 +0000 retitle 11875 EMACS_TIME simplification reassign 11875 emacs submitter 11875 Paul Eggert severity 11875 normal tag 11875 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Sat Jul 07 16:47:13 2012 Received: (at submit) by debbugs.gnu.org; 7 Jul 2012 20:47:13 +0000 Received: from localhost ([127.0.0.1]:55216 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SnbuI-0005Zu-QO for submit@debbugs.gnu.org; Sat, 07 Jul 2012 16:47:13 -0400 Received: from eggs.gnu.org ([208.118.235.92]:42064) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SnbuC-0005Zh-D9 for submit@debbugs.gnu.org; Sat, 07 Jul 2012 16:47:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SnbpC-000189-Tt for submit@debbugs.gnu.org; Sat, 07 Jul 2012 16:41:58 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:58023) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SnbpC-000185-Q9 for submit@debbugs.gnu.org; Sat, 07 Jul 2012 16:41:54 -0400 Received: from eggs.gnu.org ([208.118.235.92]:47678) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Snbp8-00081k-32 for bug-gnu-emacs@gnu.org; Sat, 07 Jul 2012 16:41:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Snbp3-00016o-5M for bug-gnu-emacs@gnu.org; Sat, 07 Jul 2012 16:41:49 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:53994) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Snbp2-00016f-I1 for bug-gnu-emacs@gnu.org; Sat, 07 Jul 2012 16:41:45 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 1F415A60003 for ; Sat, 7 Jul 2012 13:41:43 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Nt-lIgGEH0Ul for ; Sat, 7 Jul 2012 13:41:41 -0700 (PDT) Received: from [192.168.1.4] (pool-108-23-119-2.lsanca.fios.verizon.net [108.23.119.2]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 445FFA60001 for ; Sat, 7 Jul 2012 13:41:41 -0700 (PDT) Message-ID: <4FF89F06.3030904@cs.ucla.edu> Date: Sat, 07 Jul 2012 13:41:42 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux i686; rv:13.0) Gecko/20120615 Thunderbird/13.0.1 MIME-Version: 1.0 To: bug-gnu-emacs@gnu.org Subject: EMACS_TIME simplification Content-Type: multipart/mixed; boundary="------------000705060609090203090308" X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 208.118.235.17 X-Spam-Score: -6.2 (------) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.2 (------) This is a multi-part message in MIME format. --------------000705060609090203090308 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Tags: patch Attached is a patch to the Emacs trunk bzr 108944 that simplifies EMACS_TIME calculation. It replaces macros (which typically do not work with GDB) with functions, typedefs, and enums, making time-related code easier to debug. The functional style also makes the source code easier to read and maintain. I would have appreciated having this in my recent round of changes to the time code. I plan to install this after a bit more testing but thought I'd post it for review first. --------------000705060609090203090308 Content-Type: text/plain; charset=UTF-8; name="timefun.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="timefun.txt" PT09IG1vZGlmaWVkIGZpbGUgJ2xpYi1zcmMvQ2hhbmdlTG9nJwotLS0gbGliLXNyYy9DaGFu Z2VMb2cJMjAxMi0wNy0wNyAwMDoyMDo1NiArMDAwMAorKysgbGliLXNyYy9DaGFuZ2VMb2cJ MjAxMi0wNy0wNyAwNDo1MzozOCArMDAwMApAQCAtMSwzICsxLDggQEAKKzIwMTItMDctMDcg IFBhdWwgRWdnZXJ0ICA8ZWdnZXJ0QGNzLnVjbGEuZWR1PgorCisJRU1BQ1NfVElNRSBzaW1w bGlmaWNhdGlvbi4KKwkqIHByb2ZpbGUuYyAoVFYyKTogUmVtb3ZlIG5vLWxvbmdlci1uZWVk ZWQgc3RhdGljIHZhci4KKwogMjAxMi0wNy0wNyAgSnVhbm1hIEJhcnJhbnF1ZXJvICA8bGVr a3R1QGdtYWlsLmNvbT4KIAogCSogbWFrZWZpbGUudzMyLWluICgkKEJMRCkvY3RhZ3MuJChP KSwgJChCTEQpL2V0YWdzLiQoTykpOgoKPT09IG1vZGlmaWVkIGZpbGUgJ2xpYi1zcmMvcHJv ZmlsZS5jJwotLS0gbGliLXNyYy9wcm9maWxlLmMJMjAxMi0wNi0zMCAxNTozMjo1MSArMDAw MAorKysgbGliLXNyYy9wcm9maWxlLmMJMjAxMi0wNy0wNyAwNDo1MzozOCArMDAwMApAQCAt MzYsNyArMzYsNyBAQAogI2luY2x1ZGUgPGludHByb3BzLmg+CiAjaW5jbHVkZSA8c3lzdGlt ZS5oPgogCi1zdGF0aWMgRU1BQ1NfVElNRSBUVjEsIFRWMjsKK3N0YXRpYyBFTUFDU19USU1F IFRWMTsKIHN0YXRpYyBpbnQgd2F0Y2hfbm90X3N0YXJ0ZWQgPSAxOyAvKiBmbGFnICovCiBz dGF0aWMgY2hhciB0aW1lX3N0cmluZ1tJTlRfU1RSTEVOX0JPVU5EICh1aW50bWF4X3QpICsg c2l6ZW9mICIuIgogCQkJKyBMT0cxMF9FTUFDU19USU1FX1JFU09MVVRJT05dOwpAQCAtNDYs NyArNDYsNyBAQAogc3RhdGljIHZvaWQKIHJlc2V0X3dhdGNoICh2b2lkKQogewotICBFTUFD U19HRVRfVElNRSAoVFYxKTsKKyAgVFYxID0gY3VycmVudF9lbWFjc190aW1lICgpOwogICB3 YXRjaF9ub3Rfc3RhcnRlZCA9IDA7CiB9CiAKQEAgLTU3LDE0ICs1NywxMSBAQAogc3RhdGlj IGNoYXIgKgogZ2V0X3RpbWUgKHZvaWQpCiB7Ci0gIHVpbnRtYXhfdCBzOwotICBpbnQgbnM7 CisgIEVNQUNTX1RJTUUgVFYyID0gc3ViX2VtYWNzX3RpbWUgKGN1cnJlbnRfZW1hY3NfdGlt ZSAoKSwgVFYxKTsKKyAgdWludG1heF90IHMgPSBFTUFDU19TRUNTIChUVjIpOworICBpbnQg bnMgPSBFTUFDU19OU0VDUyAoVFYyKTsKICAgaWYgKHdhdGNoX25vdF9zdGFydGVkKQogICAg IGV4aXQgKEVYSVRfRkFJTFVSRSk7ICAvKiBjYWxsIHJlc2V0X3dhdGNoIGZpcnN0ICEgKi8K LSAgRU1BQ1NfR0VUX1RJTUUgKFRWMik7Ci0gIEVNQUNTX1NVQl9USU1FIChUVjIsIFRWMiwg VFYxKTsKLSAgcyA9IEVNQUNTX1NFQ1MgKFRWMik7Ci0gIG5zID0gRU1BQ1NfTlNFQ1MgKFRW Mik7CiAgIHNwcmludGYgKHRpbWVfc3RyaW5nLCAiJSJQUkl1TUFYIi4lMCpkIiwgcywgTE9H MTBfRU1BQ1NfVElNRV9SRVNPTFVUSU9OLCBucyk7CiAgIHJldHVybiB0aW1lX3N0cmluZzsK IH0KCj09PSBtb2RpZmllZCBmaWxlICdzcmMvQ2hhbmdlTG9nJwotLS0gc3JjL0NoYW5nZUxv ZwkyMDEyLTA3LTA3IDE5OjMzOjI4ICswMDAwCisrKyBzcmMvQ2hhbmdlTG9nCTIwMTItMDct MDcgMjA6MDQ6MDIgKzAwMDAKQEAgLTEsNSArMSwzMSBAQAogMjAxMi0wNy0wNyAgUGF1bCBF Z2dlcnQgIDxlZ2dlcnRAY3MudWNsYS5lZHU+CiAKKwlFTUFDU19USU1FIHNpbXBsaWZpY2F0 aW9uLgorCVRoaXMgcmVwbGFjZXMgbWFjcm9zICh3aGljaCB0eXBpY2FsbHkgZG8gbm90IHdv cmsgaW4gR0RCKQorCXdpdGggZnVuY3Rpb25zLCB0eXBlZGVmcyBhbmQgZW51bXMsIG1ha2lu ZyB0aGUgY29kZSBlYXNpZXIgdG8gZGVidWcuCisJVGhlIGZ1bmN0aW9uYWwgc3R5bGUgYWxz byBtYWtlcyBjb2RlIGVhc2llciB0byByZWFkIGFuZCBtYWludGFpbi4KKwkqIHN5c3RpbWUu aDogSW5jbHVkZSA8c3lzL3RpbWUuaD4gb24gYWxsIGhvc3RzLCBub3QganVzdCBpZgorCVdJ TkRPV1NOVCwgc2luY2UgJ3N0cnVjdCB0aW1ldmFsJyBpcyBuZWVkZWQgaW4gZ2VuZXJhbC4K KwkoRU1BQ1NfVElNRSk6IE5vdyBhIHR5cGVkZWYsIG5vdCBhIG1hY3JvLgorCShFTUFDU19U SU1FX1JFU09MVVRJT04sIExPRzEwX0VNQUNTX1RJTUVfUkVTT0xVVElPTik6IE5vdyBjb25z dGFudHMsCisJbm90IG1hY3Jvcy4KKwkoRU1BQ1NfU0VDUywgRU1BQ1NfTlNFQ1MsIEVNQUNT X1RJTUVfU0lHTiwgRU1BQ1NfVElNRV9WQUxJRF9QKQorCShFTUFDU19USU1FX0ZST01fRE9V QkxFLCBFTUFDU19USU1FX1RPX0RPVUJMRSwgRU1BQ1NfVElNRV9FUSkKKwkoRU1BQ1NfVElN RV9ORSwgRU1BQ1NfVElNRV9HVCwgRU1BQ1NfVElNRV9HRSwgRU1BQ1NfVElNRV9MVCkKKwko RU1BQ1NfVElNRV9MRSk6IE5vdyBmdW5jdGlvbnMsIG5vdCBtYWNyb3MuCisJKEVNQUNTX1NF VF9TRUNTLCBFTUFDU19TRVRfTlNFQ1MsIEVNQUNTX1NFVF9TRUNTX05TRUNTKQorCShFTUFD U19TRVRfVVNFQ1MsIEVNQUNTX1NFVF9TRUNTX1VTRUNTKTogUmVtb3ZlIHRoZXNlIG1hY3Jv cywKKwl3aGljaCBhcmUgbm90IGZ1bmN0aW9ucy4gIEFsbCB1c2VzIHJld3JpdHRlbiB0byB1 c2U6CisJKG1ha2VfZW1hY3NfdGltZSk6IE5ldyBmdW5jdGlvbi4KKwkoRU1BQ1NfU0VDU19B RERSLCBFTUFDU19TRVRfSU5WQUxJRF9USU1FLCBFTUFDU19HRVRfVElNRSkKKwkoRU1BQ1Nf QUREX1RJTUUsIEVNQUNTX1NVQl9USU1FKTogUmVtb3ZlIHRoZXNlIG1hY3Jvcywgd2hpY2gg YXJlCisJbm90IGZ1bmN0aW9ucy4gIEFsbCB1c2VzIHJld3JpdHRlbiB0byB1c2UgdGhlIGZv bGxvd2luZywgcmVzcGVjdGl2ZWx5OgorCShlbWFjc19zZWNzX2FkZHIsIGludmFsaWRfZW1h Y3NfdGltZSwgZ2V0X2VtYWNzX3RpbWUpCisJKGFkZF9lbWFjc190aW1lLCBzdWJfZW1hY3Nf dGltZSk6IE5ldyBmdW5jdGlvbnMuCisJKiBhdGltZXIuYzogRG9uJ3QgaW5jbHVkZSA8c3lz L3RpbWUuaD4sCWFzICJzeXN0aW1lLmgiIGRvZXMgdGhpcy4KKwkqIGZpbGVpby5jIChGY29w eV9maWxlKToKKwkqIHh0ZXJtLmMgKFhUZmxhc2gpOiBHZXQgdGhlIGN1cnJlbnQgdGltZSBj bG9zZXIgdG8gd2hlbiBpdCdzIHVzZWQuCisKIAkqIGxyZWFkLmMgKGxvYWRfcGF0aF9jaGVj ayk6IE5vdyBzdGF0aWMuCiAKIAlGaXggc29tZSBtaW5vciAtLXdpdGgtbnMgcHJvYmxlbXMg Zm91bmQgYnkgc3RhdGljIGNoZWNraW5nLgoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9hbGxv Yy5jJwotLS0gc3JjL2FsbG9jLmMJMjAxMi0wNy0wNiAwNTowNzo0NCArMDAwMAorKysgc3Jj L2FsbG9jLmMJMjAxMi0wNy0wNyAwNDo1MzozOCArMDAwMApAQCAtNTM4MCw3ICs1MzgwLDcg QEAKICAgaW50IG1lc3NhZ2VfcDsKICAgTGlzcF9PYmplY3QgdG90YWxbOF07CiAgIHB0cmRp ZmZfdCBjb3VudCA9IFNQRUNQRExfSU5ERVggKCk7Ci0gIEVNQUNTX1RJTUUgdDEsIHQyLCB0 MzsKKyAgRU1BQ1NfVElNRSB0MTsKIAogICBpZiAoYWJvcnRfb25fZ2MpCiAgICAgYWJvcnQg KCk7CkBAIC01NDI5LDcgKzU0MjksNyBAQAogICAgICAgfQogICB9CiAKLSAgRU1BQ1NfR0VU X1RJTUUgKHQxKTsKKyAgdDEgPSBjdXJyZW50X2VtYWNzX3RpbWUgKCk7CiAKICAgLyogSW4g Y2FzZSB1c2VyIGNhbGxzIGRlYnVnX3ByaW50IGR1cmluZyBHQywKICAgICAgZG9uJ3QgbGV0 IHRoYXQgY2F1c2UgYSByZWN1cnNpdmUgR0MuICAqLwpAQCAtNTY4Myw4ICs1NjgzLDggQEAK ICAgLyogQWNjdW11bGF0ZSBzdGF0aXN0aWNzLiAgKi8KICAgaWYgKEZMT0FUUCAoVmdjX2Vs YXBzZWQpKQogICAgIHsKLSAgICAgIEVNQUNTX0dFVF9USU1FICh0Mik7Ci0gICAgICBFTUFD U19TVUJfVElNRSAodDMsIHQyLCB0MSk7CisgICAgICBFTUFDU19USU1FIHQyID0gY3VycmVu dF9lbWFjc190aW1lICgpOworICAgICAgRU1BQ1NfVElNRSB0MyA9IHN1Yl9lbWFjc190aW1l ICh0MiwgdDEpOwogICAgICAgVmdjX2VsYXBzZWQgPSBtYWtlX2Zsb2F0IChYRkxPQVRfREFU QSAoVmdjX2VsYXBzZWQpCiAJCQkJKyBFTUFDU19USU1FX1RPX0RPVUJMRSAodDMpKTsKICAg ICB9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL2F0aW1lci5jJwotLS0gc3JjL2F0aW1lci5j CTIwMTItMDctMDUgMDY6MzI6NDEgKzAwMDAKKysrIHNyYy9hdGltZXIuYwkyMDEyLTA3LTA3 IDA0OjUzOjM4ICswMDAwCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiYmxvY2tpbnB1 dC5oIgogI2luY2x1ZGUgImF0aW1lci5oIgogI2luY2x1ZGUgPHVuaXN0ZC5oPgotI2luY2x1 ZGUgPHN5cy90aW1lLmg+CiAKIC8qIEZyZWUtbGlzdCBvZiBhdGltZXIgc3RydWN0dXJlcy4g ICovCiAKQEAgLTkzLDEwICs5Miw3IEBACiAjaWZuZGVmIEhBVkVfU0VUSVRJTUVSCiAgIGlm IChFTUFDU19OU0VDUyAodGltZXN0YW1wKSAhPSAwCiAgICAgICAmJiBFTUFDU19TRUNTICh0 aW1lc3RhbXApIDwgVFlQRV9NQVhJTVVNICh0aW1lX3QpKQotICAgIHsKLSAgICAgIEVNQUNT X1NFVF9VU0VDUyAodGltZXN0YW1wLCAwKTsKLSAgICAgIEVNQUNTX1NFVF9TRUNTICh0aW1l c3RhbXAsIEVNQUNTX1NFQ1MgKHRpbWVzdGFtcCkgKyAxKTsKLSAgICB9CisgICAgdGltZXN0 YW1wID0gbWFrZV9lbWFjc190aW1lIChFTUFDU19TRUNTICh0aW1lc3RhbXApICsgMSwgMCk7 CiAjZW5kaWYgLyogbm90IEhBVkVfU0VUSVRJTUVSICovCiAKICAgLyogR2V0IGFuIGF0aW1l ciBzdHJ1Y3R1cmUgZnJvbSB0aGUgZnJlZS1saXN0LCBvciBhbGxvY2F0ZQpAQCAtMTI1LDEz ICsxMjEsMTEgQEAKICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBBVElNRVJfUkVMQVRJVkU6 Ci0gICAgICBFTUFDU19HRVRfVElNRSAodC0+ZXhwaXJhdGlvbik7Ci0gICAgICBFTUFDU19B RERfVElNRSAodC0+ZXhwaXJhdGlvbiwgdC0+ZXhwaXJhdGlvbiwgdGltZXN0YW1wKTsKKyAg ICAgIHQtPmV4cGlyYXRpb24gPSBhZGRfZW1hY3NfdGltZSAoY3VycmVudF9lbWFjc190aW1l ICgpLCB0aW1lc3RhbXApOwogICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEFUSU1FUl9DT05U SU5VT1VTOgotICAgICAgRU1BQ1NfR0VUX1RJTUUgKHQtPmV4cGlyYXRpb24pOwotICAgICAg RU1BQ1NfQUREX1RJTUUgKHQtPmV4cGlyYXRpb24sIHQtPmV4cGlyYXRpb24sIHRpbWVzdGFt cCk7CisgICAgICB0LT5leHBpcmF0aW9uID0gYWRkX2VtYWNzX3RpbWUgKGN1cnJlbnRfZW1h Y3NfdGltZSAoKSwgdGltZXN0YW1wKTsKICAgICAgIHQtPmludGVydmFsID0gdGltZXN0YW1w OwogICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMjg1LDMxICsyNzksMjUgQEAKIHsKICAgaWYg KGF0aW1lcnMpCiAgICAgewotICAgICAgRU1BQ1NfVElNRSBub3csIHRpbWVzdGFtcDsKICNp ZmRlZiBIQVZFX1NFVElUSU1FUgogICAgICAgc3RydWN0IGl0aW1lcnZhbCBpdDsKICNlbmRp ZgogCiAgICAgICAvKiBEZXRlcm1pbmUgcy91cyB0aWxsIHRoZSBuZXh0IHRpbWVyIGlzIHJp cGUuICAqLwotICAgICAgRU1BQ1NfR0VUX1RJTUUgKG5vdyk7CisgICAgICBFTUFDU19USU1F IG5vdyA9IGN1cnJlbnRfZW1hY3NfdGltZSAoKTsKIAogICAgICAgLyogRG9uJ3Qgc2V0IHRo ZSBpbnRlcnZhbCB0byAwOyB0aGlzIGRpc2FibGVzIHRoZSB0aW1lci4gICovCi0gICAgICBp ZiAoRU1BQ1NfVElNRV9MRSAoYXRpbWVycy0+ZXhwaXJhdGlvbiwgbm93KSkKLQl7Ci0JICBF TUFDU19TRVRfU0VDUyAodGltZXN0YW1wLCAwKTsKLQkgIEVNQUNTX1NFVF9VU0VDUyAodGlt ZXN0YW1wLCAxMDAwKTsKLQl9Ci0gICAgICBlbHNlCi0JRU1BQ1NfU1VCX1RJTUUgKHRpbWVz dGFtcCwgYXRpbWVycy0+ZXhwaXJhdGlvbiwgbm93KTsKLQorICAgICAgRU1BQ1NfVElNRSBp bnRlcnZhbCA9IChFTUFDU19USU1FX0xFIChhdGltZXJzLT5leHBpcmF0aW9uLCBub3cpCisJ CQkgICAgID8gbWFrZV9lbWFjc190aW1lICgwLCAxMDAwICogMTAwMCkKKwkJCSAgICAgOiBz dWJfZW1hY3NfdGltZSAoYXRpbWVycy0+ZXhwaXJhdGlvbiwgbm93KSk7CiAKICNpZmRlZiBI QVZFX1NFVElUSU1FUgogCiAgICAgICBtZW1zZXQgKCZpdCwgMCwgc2l6ZW9mIGl0KTsKLSAg ICAgIGl0Lml0X3ZhbHVlID0gbWFrZV90aW1ldmFsICh0aW1lc3RhbXApOworICAgICAgaXQu aXRfdmFsdWUgPSBtYWtlX3RpbWV2YWwgKGludGVydmFsKTsKICAgICAgIHNldGl0aW1lciAo SVRJTUVSX1JFQUwsICZpdCwgMCk7CiAjZWxzZSAvKiBub3QgSEFWRV9TRVRJVElNRVIgKi8K LSAgICAgIGFsYXJtIChtYXggKEVNQUNTX1NFQ1MgKHRpbWVzdGFtcCksIDEpKTsKKyAgICAg IGFsYXJtIChtYXggKEVNQUNTX1NFQ1MgKGludGVydmFsKSwgMSkpOwogI2VuZGlmIC8qIG5v dCBIQVZFX1NFVElUSU1FUiAqLwogICAgIH0KIH0KQEAgLTM0NCw3ICszMzIsNyBAQAogCiAg IHdoaWxlIChhdGltZXJzCiAJICYmIChwZW5kaW5nX2F0aW1lcnMgPSBpbnRlcnJ1cHRfaW5w dXRfYmxvY2tlZCkgPT0gMAotCSAmJiAoRU1BQ1NfR0VUX1RJTUUgKG5vdyksCisJICYmIChu b3cgPSBjdXJyZW50X2VtYWNzX3RpbWUgKCksCiAJICAgICBFTUFDU19USU1FX0xFIChhdGlt ZXJzLT5leHBpcmF0aW9uLCBub3cpKSkKICAgICB7CiAgICAgICBzdHJ1Y3QgYXRpbWVyICp0 OwpAQCAtMzU1LDcgKzM0Myw3IEBACiAKICAgICAgIGlmICh0LT50eXBlID09IEFUSU1FUl9D T05USU5VT1VTKQogCXsKLQkgIEVNQUNTX0FERF9USU1FICh0LT5leHBpcmF0aW9uLCBub3cs IHQtPmludGVydmFsKTsKKwkgIHQtPmV4cGlyYXRpb24gPSBhZGRfZW1hY3NfdGltZSAobm93 LCB0LT5pbnRlcnZhbCk7CiAJICBzY2hlZHVsZV9hdGltZXIgKHQpOwogCX0KICAgICAgIGVs c2UKCj09PSBtb2RpZmllZCBmaWxlICdzcmMvYnVmZmVyLmMnCi0tLSBzcmMvYnVmZmVyLmMJ MjAxMi0wNy0wNiAwNzozNDozNyArMDAwMAorKysgc3JjL2J1ZmZlci5jCTIwMTItMDctMDcg MDQ6NTM6MzggKzAwMDAKQEAgLTcwNSw3ICs3MDUsNyBAQAogICBCVkFSIChiLCBmaWxlbmFt ZSkgPSBRbmlsOwogICBCVkFSIChiLCBmaWxlX3RydWVuYW1lKSA9IFFuaWw7CiAgIEJWQVIg KGIsIGRpcmVjdG9yeSkgPSAoY3VycmVudF9idWZmZXIpID8gQlZBUiAoY3VycmVudF9idWZm ZXIsIGRpcmVjdG9yeSkgOiBRbmlsOwotICBFTUFDU19TRVRfU0VDU19OU0VDUyAoYi0+bW9k dGltZSwgMCwgVU5LTk9XTl9NT0RUSU1FX05TRUNTKTsKKyAgYi0+bW9kdGltZSA9IG1ha2Vf ZW1hY3NfdGltZSAoMCwgVU5LTk9XTl9NT0RUSU1FX05TRUNTKTsKICAgYi0+bW9kdGltZV9z aXplID0gLTE7CiAgIFhTRVRGQVNUSU5UIChCVkFSIChiLCBzYXZlX2xlbmd0aCksIDApOwog ICBiLT5sYXN0X3dpbmRvd19zdGFydCA9IDE7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL2Rp c3BuZXcuYycKLS0tIHNyYy9kaXNwbmV3LmMJMjAxMi0wNy0wNSAxODozNTo0OCArMDAwMAor Kysgc3JjL2Rpc3BuZXcuYwkyMDEyLTA3LTA3IDIwOjAwOjA0ICswMDAwCkBAIC0zMTkwLDcg KzMxOTAsNiBAQAogICAgIGZvcmNlX3AgPSAxOwogICBlbHNlIGlmICghZm9yY2VfcCAmJiBO VU1CRVJQIChWcmVkaXNwbGF5X3ByZWVtcHRpb25fcGVyaW9kKSkKICAgICB7Ci0gICAgICBF TUFDU19USU1FIHRtOwogICAgICAgZG91YmxlIHAgPSBYRkxPQVRJTlQgKFZyZWRpc3BsYXlf cHJlZW1wdGlvbl9wZXJpb2QpOwogCiAgICAgICBpZiAoZGV0ZWN0X2lucHV0X3BlbmRpbmdf aWdub3JlX3NxdWVlemFibGVzICgpKQpAQCAtMzE5OSw5ICszMTk4LDkgQEAKIAkgIGdvdG8g ZG9fcGF1c2U7CiAJfQogCi0gICAgICBFTUFDU19HRVRfVElNRSAodG0pOwogICAgICAgcHJl ZW1wdGlvbl9wZXJpb2QgPSBFTUFDU19USU1FX0ZST01fRE9VQkxFIChwKTsKLSAgICAgIEVN QUNTX0FERF9USU1FIChwcmVlbXB0aW9uX25leHRfY2hlY2ssIHRtLCBwcmVlbXB0aW9uX3Bl cmlvZCk7CisgICAgICBwcmVlbXB0aW9uX25leHRfY2hlY2sgPSBhZGRfZW1hY3NfdGltZSAo Y3VycmVudF9lbWFjc190aW1lICgpLAorCQkJCQkgICAgICBwcmVlbXB0aW9uX3BlcmlvZCk7 CiAgICAgfQogCiAgIGlmIChGUkFNRV9XSU5ET1dfUCAoZikpCkBAIC0zMzQzLDEyICszMzQy LDEwIEBACiAJZm9yY2VfcCA9IDE7CiAgICAgICBlbHNlIGlmICghZm9yY2VfcCAmJiBOVU1C RVJQIChWcmVkaXNwbGF5X3ByZWVtcHRpb25fcGVyaW9kKSkKIAl7Ci0JICBFTUFDU19USU1F IHRtOwogCSAgZG91YmxlIHAgPSBYRkxPQVRJTlQgKFZyZWRpc3BsYXlfcHJlZW1wdGlvbl9w ZXJpb2QpOwotCi0JICBFTUFDU19HRVRfVElNRSAodG0pOwogCSAgcHJlZW1wdGlvbl9wZXJp b2QgPSBFTUFDU19USU1FX0ZST01fRE9VQkxFIChwKTsKLQkgIEVNQUNTX0FERF9USU1FIChw cmVlbXB0aW9uX25leHRfY2hlY2ssIHRtLCBwcmVlbXB0aW9uX3BlcmlvZCk7CisJICBwcmVl bXB0aW9uX25leHRfY2hlY2sgPSBhZGRfZW1hY3NfdGltZSAoY3VycmVudF9lbWFjc190aW1l ICgpLAorCQkJCQkJICBwcmVlbXB0aW9uX3BlcmlvZCk7CiAJfQogCiAgICAgICAvKiBVcGRh dGUgVy4gICovCkBAIC0zNTk1LDExICszNTkyLDExIEBACiAjaWYgUEVSSU9ESUNfUFJFRU1Q VElPTl9DSEVDS0lORwogCSAgICBpZiAoIWZvcmNlX3ApCiAJICAgICAgewotCQlFTUFDU19U SU1FIHRtOwotCQlFTUFDU19HRVRfVElNRSAodG0pOworCQlFTUFDU19USU1FIHRtID0gY3Vy cmVudF9lbWFjc190aW1lICgpOwogCQlpZiAoRU1BQ1NfVElNRV9MVCAocHJlZW1wdGlvbl9u ZXh0X2NoZWNrLCB0bSkpCiAJCSAgewotCQkgICAgRU1BQ1NfQUREX1RJTUUgKHByZWVtcHRp b25fbmV4dF9jaGVjaywgdG0sIHByZWVtcHRpb25fcGVyaW9kKTsKKwkJICAgIHByZWVtcHRp b25fbmV4dF9jaGVjayA9IGFkZF9lbWFjc190aW1lICh0bSwKKwkJCQkJCQkgICAgcHJlZW1w dGlvbl9wZXJpb2QpOwogCQkgICAgaWYgKGRldGVjdF9pbnB1dF9wZW5kaW5nX2lnbm9yZV9z cXVlZXphYmxlcyAoKSkKIAkJICAgICAgYnJlYWs7CiAJCSAgfQpAQCAtNDcwMCwxMSArNDY5 NywxMCBAQAogI2lmIFBFUklPRElDX1BSRUVNUFRJT05fQ0hFQ0tJTkcKIAkgIGlmICghZm9y Y2VfcCkKIAkgICAgewotCSAgICAgIEVNQUNTX1RJTUUgdG07Ci0JICAgICAgRU1BQ1NfR0VU X1RJTUUgKHRtKTsKKwkgICAgICBFTUFDU19USU1FIHRtID0gY3VycmVudF9lbWFjc190aW1l ICgpOwogCSAgICAgIGlmIChFTUFDU19USU1FX0xUIChwcmVlbXB0aW9uX25leHRfY2hlY2ss IHRtKSkKIAkJewotCQkgIEVNQUNTX0FERF9USU1FIChwcmVlbXB0aW9uX25leHRfY2hlY2ss IHRtLCBwcmVlbXB0aW9uX3BlcmlvZCk7CisJCSAgcHJlZW1wdGlvbl9uZXh0X2NoZWNrID0g YWRkX2VtYWNzX3RpbWUgKHRtLCBwcmVlbXB0aW9uX3BlcmlvZCk7CiAJCSAgaWYgKGRldGVj dF9pbnB1dF9wZW5kaW5nX2lnbm9yZV9zcXVlZXphYmxlcyAoKSkKIAkJICAgIGJyZWFrOwog CQl9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL2VkaXRmbnMuYycKLS0tIHNyYy9lZGl0Zm5z LmMJMjAxMi0wNy0wNyAwMTo1Nzo0MiArMDAwMAorKysgc3JjL2VkaXRmbnMuYwkyMDEyLTA3 LTA3IDIwOjAwOjA0ICswMDAwCkBAIC0xNDA4LDEwICsxNDA4LDcgQEAKIHBpY29zZWNvbmQg Y291bnRzLiAgKi8pCiAgICh2b2lkKQogewotICBFTUFDU19USU1FIHQ7Ci0KLSAgRU1BQ1Nf R0VUX1RJTUUgKHQpOwotICByZXR1cm4gbWFrZV9saXNwX3RpbWUgKHQpOworICByZXR1cm4g bWFrZV9saXNwX3RpbWUgKGN1cnJlbnRfZW1hY3NfdGltZSAoKSk7CiB9CiAKIERFRlVOICgi Z2V0LWludGVybmFsLXJ1bi10aW1lIiwgRmdldF9pbnRlcm5hbF9ydW5fdGltZSwgU2dldF9p bnRlcm5hbF9ydW5fdGltZSwKQEAgLTE0MjgsNyArMTQyNSw2IEBACiAgIHN0cnVjdCBydXNh Z2UgdXNhZ2U7CiAgIHRpbWVfdCBzZWNzOwogICBpbnQgdXNlY3M7Ci0gIEVNQUNTX1RJTUUg dDsKIAogICBpZiAoZ2V0cnVzYWdlIChSVVNBR0VfU0VMRiwgJnVzYWdlKSA8IDApCiAgICAg LyogVGhpcyBzaG91bGRuJ3QgaGFwcGVuLiAgV2hhdCBhY3Rpb24gaXMgYXBwcm9wcmlhdGU/ ICAqLwpAQCAtMTQ0Miw4ICsxNDM4LDcgQEAKICAgICAgIHVzZWNzIC09IDEwMDAwMDA7CiAg ICAgICBzZWNzKys7CiAgICAgfQotICBFTUFDU19TRVRfU0VDU19VU0VDUyAodCwgc2Vjcywg dXNlY3MpOwotICByZXR1cm4gbWFrZV9saXNwX3RpbWUgKHQpOworICByZXR1cm4gbWFrZV9s aXNwX3RpbWUgKG1ha2VfZW1hY3NfdGltZSAoc2VjcywgdXNlY3MgKiAxMDAwKSk7CiAjZWxz ZSAvKiAhIEhBVkVfR0VUUlVTQUdFICAqLwogI2lmZGVmIFdJTkRPV1NOVAogICByZXR1cm4g dzMyX2dldF9pbnRlcm5hbF9ydW5fdGltZSAoKTsKQEAgLTE1NjAsOCArMTU1NSw3IEBACiAJ ICAvKiBSZXR1cm4gdGhlIGdyZWF0ZXN0IHJlcHJlc2VudGFibGUgdGltZSB0aGF0IGlzIG5v dCBncmVhdGVyCiAJICAgICB0aGFuIHRoZSByZXF1ZXN0ZWQgdGltZS4gICovCiAJICB0aW1l X3Qgc2VjID0gaGk7Ci0JICBFTUFDU19TRVRfU0VDU19OU0VDUyAoKnJlc3VsdCwgKHNlYyA8 PCAxNikgKyBsbywKLQkJCQl1cyAqIDEwMDAgKyBwcyAvIDEwMDApOworCSAgKnJlc3VsdCA9 IG1ha2VfZW1hY3NfdGltZSAoKHNlYyA8PCAxNikgKyBsbywgdXMgKiAxMDAwICsgcHMgLyAx MDAwKTsKIAl9CiAgICAgICBlbHNlCiAJewpAQCAtMTU4Nyw3ICsxNTgxLDcgQEAKIHsKICAg RU1BQ1NfVElNRSB0OwogICBpZiAoTklMUCAoc3BlY2lmaWVkX3RpbWUpKQotICAgIEVNQUNT X0dFVF9USU1FICh0KTsKKyAgICB0ID0gY3VycmVudF9lbWFjc190aW1lICgpOwogICBlbHNl CiAgICAgewogICAgICAgTGlzcF9PYmplY3QgaGlnaCwgbG93LCB1c2VjLCBwc2VjOwpAQCAt MTYzNSw4ICsxNjI5LDcgQEAKICAgZG91YmxlIHQ7CiAgIGlmIChOSUxQIChzcGVjaWZpZWRf dGltZSkpCiAgICAgewotICAgICAgRU1BQ1NfVElNRSBub3c7Ci0gICAgICBFTUFDU19HRVRf VElNRSAobm93KTsKKyAgICAgIEVNQUNTX1RJTUUgbm93ID0gY3VycmVudF9lbWFjc190aW1l ICgpOwogICAgICAgdCA9IEVNQUNTX1NFQ1MgKG5vdykgKyBFTUFDU19OU0VDUyAobm93KSAv IDFlOTsKICAgICB9CiAgIGVsc2UKQEAgLTE3ODAsMTEgKzE3NzMsMTIgQEAKIAogICB3aGls ZSAoMSkKICAgICB7CisgICAgICB0aW1lX3QgKnRhZGRyID0gZW1hY3Nfc2Vjc19hZGRyICgm dCk7CiAgICAgICBCTE9DS19JTlBVVDsKIAogICAgICAgc3luY2hyb25pemVfc3lzdGVtX3Rp bWVfbG9jYWxlICgpOwogCi0gICAgICB0bSA9IHV0ID8gZ210aW1lIChFTUFDU19TRUNTX0FE RFIgKHQpKSA6IGxvY2FsdGltZSAoRU1BQ1NfU0VDU19BRERSICh0KSk7CisgICAgICB0bSA9 IHV0ID8gZ210aW1lICh0YWRkcikgOiBsb2NhbHRpbWUgKHRhZGRyKTsKICAgICAgIGlmICgh IHRtKQogCXsKIAkgIFVOQkxPQ0tfSU5QVVQ7CkBAIC0yMDY1LDEwICsyMDU5LDEwIEBACiAg IExpc3BfT2JqZWN0IHpvbmVfb2Zmc2V0LCB6b25lX25hbWU7CiAKICAgem9uZV9vZmZzZXQg PSBRbmlsOwotICBFTUFDU19TRVRfU0VDU19OU0VDUyAodmFsdWUsIGxpc3Bfc2Vjb25kc19h cmd1bWVudCAoc3BlY2lmaWVkX3RpbWUpLCAwKTsKKyAgdmFsdWUgPSBtYWtlX2VtYWNzX3Rp bWUgKGxpc3Bfc2Vjb25kc19hcmd1bWVudCAoc3BlY2lmaWVkX3RpbWUpLCAwKTsKICAgem9u ZV9uYW1lID0gZm9ybWF0X3RpbWVfc3RyaW5nICgiJVoiLCBzaXplb2YgIiVaIiAtIDEsIHZh bHVlLCAwLCAmbG9jYWx0bSk7CiAgIEJMT0NLX0lOUFVUOwotICB0ID0gZ210aW1lIChFTUFD U19TRUNTX0FERFIgKHZhbHVlKSk7CisgIHQgPSBnbXRpbWUgKGVtYWNzX3NlY3NfYWRkciAo JnZhbHVlKSk7CiAgIGlmICh0KQogICAgIG9mZnNldCA9IHRtX2RpZmYgKCZsb2NhbHRtLCB0 KTsKICAgVU5CTE9DS19JTlBVVDsKCj09PSBtb2RpZmllZCBmaWxlICdzcmMvZmlsZWlvLmMn Ci0tLSBzcmMvZmlsZWlvLmMJMjAxMi0wNy0wNyAwMTo1Nzo0MiArMDAwMAorKysgc3JjL2Zp bGVpby5jCTIwMTItMDctMDcgMDQ6NTM6MzggKzAwMDAKQEAgLTE5MjUsMTIgKzE5MjUsMTIg QEAKICAgICAgIERXT1JEIGF0dHJpYnV0ZXM7CiAgICAgICBjaGFyICogZmlsZW5hbWU7CiAK LSAgICAgIEVNQUNTX0dFVF9USU1FIChub3cpOwogICAgICAgZmlsZW5hbWUgPSBTREFUQSAo ZW5jb2RlZF9uZXduYW1lKTsKIAogICAgICAgLyogRW5zdXJlIGZpbGUgaXMgd3JpdGFibGUg d2hpbGUgaXRzIG1vZGlmaWVkIHRpbWUgaXMgc2V0LiAgKi8KICAgICAgIGF0dHJpYnV0ZXMg PSBHZXRGaWxlQXR0cmlidXRlcyAoZmlsZW5hbWUpOwogICAgICAgU2V0RmlsZUF0dHJpYnV0 ZXMgKGZpbGVuYW1lLCBhdHRyaWJ1dGVzICYgfkZJTEVfQVRUUklCVVRFX1JFQURPTkxZKTsK KyAgICAgIG5vdyA9IGN1cnJlbnRfZW1hY3NfdGltZSAoKTsKICAgICAgIGlmIChzZXRfZmls ZV90aW1lcyAoLTEsIGZpbGVuYW1lLCBub3csIG5vdykpCiAJewogCSAgLyogUmVzdG9yZSBv cmlnaW5hbCBhdHRyaWJ1dGVzLiAgKi8KQEAgLTMyMTcsMTIgKzMyMTcsMTAgQEAKIHN0YXRp YyBFTUFDU19USU1FCiB0aW1lX2Vycm9yX3ZhbHVlIChpbnQgZXJybnVtKQogewotICBFTUFD U19USU1FIHQ7CiAgIGludCBucyA9IChlcnJudW0gPT0gRU5PRU5UIHx8IGVycm51bSA9PSBF QUNDRVMgfHwgZXJybnVtID09IEVOT1RESVIKIAkgICAgPyBOT05FWElTVEVOVF9NT0RUSU1F X05TRUNTCiAJICAgIDogVU5LTk9XTl9NT0RUSU1FX05TRUNTKTsKLSAgRU1BQ1NfU0VUX1NF Q1NfTlNFQ1MgKHQsIDAsIG5zKTsKLSAgcmV0dXJuIHQ7CisgIHJldHVybiBtYWtlX2VtYWNz X3RpbWUgKDAsIG5zKTsKIH0KIAogREVGVU4gKCJpbnNlcnQtZmlsZS1jb250ZW50cyIsIEZp bnNlcnRfZmlsZV9jb250ZW50cywgU2luc2VydF9maWxlX2NvbnRlbnRzLApAQCAtNTA4Miw3 ICs1MDgwLDcgQEAKICAgc3RydWN0IHN0YXQgc3Q7CiAgIExpc3BfT2JqZWN0IGhhbmRsZXI7 CiAgIExpc3BfT2JqZWN0IGZpbGVuYW1lOwotICBFTUFDU19USU1FIG10aW1lLCBkaWZmLCBv bmVfc2Vjb25kOworICBFTUFDU19USU1FIG10aW1lLCBkaWZmOwogCiAgIGlmIChOSUxQIChi dWYpKQogICAgIGIgPSBjdXJyZW50X2J1ZmZlcjsKQEAgLTUxMTAsMTEgKzUxMDgsMTAgQEAK ICAgaWYgKChFTUFDU19USU1FX0VRIChtdGltZSwgYi0+bW9kdGltZSkKICAgICAgICAvKiBJ ZiBib3RoIGV4aXN0LCBhY2NlcHQgdGhlbSBpZiB0aGV5IGFyZSBvZmYgYnkgb25lIHNlY29u ZC4gICovCiAgICAgICAgfHwgKEVNQUNTX1RJTUVfVkFMSURfUCAobXRpbWUpICYmIEVNQUNT X1RJTUVfVkFMSURfUCAoYi0+bW9kdGltZSkKLQkgICAmJiAoKEVNQUNTX1RJTUVfTFQgKG10 aW1lLCBiLT5tb2R0aW1lKQotCQk/IEVNQUNTX1NVQl9USU1FIChkaWZmLCBiLT5tb2R0aW1l LCBtdGltZSkKLQkJOiBFTUFDU19TVUJfVElNRSAoZGlmZiwgbXRpbWUsIGItPm1vZHRpbWUp KSwKLQkgICAgICAgRU1BQ1NfU0VUX1NFQ1NfTlNFQ1MgKG9uZV9zZWNvbmQsIDEsIDApLAot CSAgICAgICBFTUFDU19USU1FX0xFIChkaWZmLCBvbmVfc2Vjb25kKSkpKQorCSAgICYmICgo ZGlmZiA9IChFTUFDU19USU1FX0xUIChtdGltZSwgYi0+bW9kdGltZSkKKwkJCT8gc3ViX2Vt YWNzX3RpbWUgKGItPm1vZHRpbWUsIG10aW1lKQorCQkJOiBzdWJfZW1hY3NfdGltZSAobXRp bWUsIGItPm1vZHRpbWUpKSksCisJICAgICAgIEVNQUNTX1RJTUVfTEUgKGRpZmYsIG1ha2Vf ZW1hY3NfdGltZSAoMSwgMCkpKSkpCiAgICAgICAmJiAoc3Quc3Rfc2l6ZSA9PSBiLT5tb2R0 aW1lX3NpemUKICAgICAgICAgICB8fCBiLT5tb2R0aW1lX3NpemUgPCAwKSkKICAgICByZXR1 cm4gUXQ7CkBAIC01MTI3LDcgKzUxMjQsNyBAQAogTmV4dCBhdHRlbXB0IHRvIHNhdmUgd2ls bCBjZXJ0YWlubHkgbm90IGNvbXBsYWluIG9mIGEgZGlzY3JlcGFuY3kuICAqLykKICAgKHZv aWQpCiB7Ci0gIEVNQUNTX1NFVF9TRUNTX05TRUNTIChjdXJyZW50X2J1ZmZlci0+bW9kdGlt ZSwgMCwgVU5LTk9XTl9NT0RUSU1FX05TRUNTKTsKKyAgY3VycmVudF9idWZmZXItPm1vZHRp bWUgPSBtYWtlX2VtYWNzX3RpbWUgKDAsIFVOS05PV05fTU9EVElNRV9OU0VDUyk7CiAgIGN1 cnJlbnRfYnVmZmVyLT5tb2R0aW1lX3NpemUgPSAtMTsKICAgcmV0dXJuIFFuaWw7CiB9CkBA IC01NDI2LDkgKzU0MjMsOCBAQAogCQl8fCBOSUxQIChGZmluZF9maWxlX25hbWVfaGFuZGxl ciAoQlZBUiAoYiwgYXV0b19zYXZlX2ZpbGVfbmFtZSksCiAJCQkJCQkgIFF3cml0ZV9yZWdp b24pKSkpCiAJICB7Ci0JICAgIEVNQUNTX1RJTUUgYmVmb3JlX3RpbWUsIGFmdGVyX3RpbWU7 Ci0KLQkgICAgRU1BQ1NfR0VUX1RJTUUgKGJlZm9yZV90aW1lKTsKKwkgICAgRU1BQ1NfVElN RSBiZWZvcmVfdGltZSA9IGN1cnJlbnRfZW1hY3NfdGltZSAoKTsKKwkgICAgRU1BQ1NfVElN RSBhZnRlcl90aW1lOwogCiAJICAgIC8qIElmIHdlIGhhZCBhIGZhaWx1cmUsIGRvbid0IHRy eSBhZ2FpbiBmb3IgMjAgbWludXRlcy4gICovCiAJICAgIGlmIChiLT5hdXRvX3NhdmVfZmFp bHVyZV90aW1lID4gMApAQCAtNTQ2NSw3ICs1NDYxLDcgQEAKIAkgICAgWFNFVEZBU1RJTlQg KEJWQVIgKGN1cnJlbnRfYnVmZmVyLCBzYXZlX2xlbmd0aCksIFogLSBCRUcpOwogCSAgICBz ZXRfYnVmZmVyX2ludGVybmFsIChvbGQpOwogCi0JICAgIEVNQUNTX0dFVF9USU1FIChhZnRl cl90aW1lKTsKKwkgICAgYWZ0ZXJfdGltZSA9IGN1cnJlbnRfZW1hY3NfdGltZSAoKTsKIAog CSAgICAvKiBJZiBhdXRvLXNhdmUgdG9vayBtb3JlIHRoYW4gNjAgc2Vjb25kcywKIAkgICAg ICAgYXNzdW1lIGl0IHdhcyBhbiBORlMgZmFpbHVyZSB0aGF0IGdvdCBhIHRpbWVvdXQuICAq LwoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9mbnMuYycKLS0tIHNyYy9mbnMuYwkyMDEyLTA3 LTA1IDE4OjM1OjQ4ICswMDAwCisrKyBzcmMvZm5zLmMJMjAxMi0wNy0wNyAwNDo1MzozOCAr MDAwMApAQCAtNzgsOCArNzgsNyBAQAogCiAgIGlmIChFUSAobGltaXQsIFF0KSkKICAgICB7 Ci0gICAgICBFTUFDU19USU1FIHQ7Ci0gICAgICBFTUFDU19HRVRfVElNRSAodCk7CisgICAg ICBFTUFDU19USU1FIHQgPSBjdXJyZW50X2VtYWNzX3RpbWUgKCk7CiAgICAgICBzZWVkX3Jh bmRvbSAoZ2V0cGlkICgpIF4gRU1BQ1NfU0VDUyAodCkgXiBFTUFDU19OU0VDUyAodCkpOwog ICAgIH0KIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9pbWFnZS5jJwotLS0gc3JjL2ltYWdl LmMJMjAxMi0wNy0wNyAxOToyMzo0MSArMDAwMAorKysgc3JjL2ltYWdlLmMJMjAxMi0wNy0w NyAyMDowNDowMiArMDAwMApAQCAtMTA2MSw3ICsxMDYxLDcgQEAKIHByZXBhcmVfaW1hZ2Vf Zm9yX2Rpc3BsYXkgKHN0cnVjdCBmcmFtZSAqZiwgc3RydWN0IGltYWdlICppbWcpCiB7CiAg IC8qIFdlJ3JlIGFib3V0IHRvIGRpc3BsYXkgSU1HLCBzbyBzZXQgaXRzIHRpbWVzdGFtcCB0 byBgbm93Jy4gICovCi0gIEVNQUNTX0dFVF9USU1FIChpbWctPnRpbWVzdGFtcCk7CisgIGlt Zy0+dGltZXN0YW1wID0gY3VycmVudF9lbWFjc190aW1lICgpOwogCiAgIC8qIElmIElNRyBk b2Vzbid0IGhhdmUgYSBwaXhtYXAgeWV0LCBsb2FkIGl0IG5vdywgdXNpbmcgdGhlIGltYWdl CiAgICAgIHR5cGUgZGVwZW5kZW50IGxvYWRlciBmdW5jdGlvbi4gICovCkBAIC0xNTIwLDgg KzE1MjAsOCBAQAogCSAgICBkZWxheSA9IDE2MDAgKiBkZWxheSAvIG5pbWFnZXMgLyBuaW1h Z2VzOwogCSAgZGVsYXkgPSBtYXggKGRlbGF5LCAxKTsKIAotCSAgRU1BQ1NfR0VUX1RJTUUg KHQpOwotCSAgRU1BQ1NfU1VCX1RJTUUgKG9sZCwgdCwgRU1BQ1NfVElNRV9GUk9NX0RPVUJM RSAoZGVsYXkpKTsKKwkgIHQgPSBjdXJyZW50X2VtYWNzX3RpbWUgKCk7CisJICBvbGQgPSBz dWJfZW1hY3NfdGltZSAodCwgRU1BQ1NfVElNRV9GUk9NX0RPVUJMRSAoZGVsYXkpKTsKIAog CSAgZm9yIChpID0gMDsgaSA8IGMtPnVzZWQ7ICsraSkKIAkgICAgewpAQCAtMTc5Miw3ICsx NzkyLDcgQEAKICAgICB9CiAKICAgLyogV2UncmUgdXNpbmcgSU1HLCBzbyBzZXQgaXRzIHRp bWVzdGFtcCB0byBgbm93Jy4gICovCi0gIEVNQUNTX0dFVF9USU1FIChpbWctPnRpbWVzdGFt cCk7CisgIGltZy0+dGltZXN0YW1wID0gY3VycmVudF9lbWFjc190aW1lICgpOwogCiAgIC8q IFZhbHVlIGlzIHRoZSBpbWFnZSBpZC4gICovCiAgIHJldHVybiBpbWctPmlkOwoKPT09IG1v ZGlmaWVkIGZpbGUgJ3NyYy9rZXlib2FyZC5jJwotLS0gc3JjL2tleWJvYXJkLmMJMjAxMi0w Ny0wNSAxODozNTo0OCArMDAwMAorKysgc3JjL2tleWJvYXJkLmMJMjAxMi0wNy0wNyAyMDoz MTowNyArMDAwMApAQCAtMjAxNywxMiArMjAxNywxMSBAQAogCSAgfHwgRU1BQ1NfU0VDUyAo cG9sbF90aW1lci0+aW50ZXJ2YWwpICE9IHBvbGxpbmdfcGVyaW9kKQogCXsKIAkgIHRpbWVf dCBwZXJpb2QgPSBtYXggKDEsIG1pbiAocG9sbGluZ19wZXJpb2QsIFRZUEVfTUFYSU1VTSAo dGltZV90KSkpOwotCSAgRU1BQ1NfVElNRSBpbnRlcnZhbDsKKwkgIEVNQUNTX1RJTUUgaW50 ZXJ2YWwgPSBtYWtlX2VtYWNzX3RpbWUgKHBlcmlvZCwgMCk7CiAKIAkgIGlmIChwb2xsX3Rp bWVyKQogCSAgICBjYW5jZWxfYXRpbWVyIChwb2xsX3RpbWVyKTsKIAotCSAgRU1BQ1NfU0VU X1NFQ1NfVVNFQ1MgKGludGVydmFsLCBwZXJpb2QsIDApOwogCSAgcG9sbF90aW1lciA9IHN0 YXJ0X2F0aW1lciAoQVRJTUVSX0NPTlRJTlVPVVMsIGludGVydmFsLAogCQkJCSAgICAgcG9s bF9mb3JfaW5wdXQsIE5VTEwpOwogCX0KQEAgLTI3ODYsMTMgKzI3ODUsOCBAQAogICAgIHsK ICAgICAgIEtCT0FSRCAqa2IgSUZfTElOVCAoPSBOVUxMKTsKIAotICAgICAgaWYgKGVuZF90 aW1lKQotCXsKLQkgIEVNQUNTX1RJTUUgbm93OwotCSAgRU1BQ1NfR0VUX1RJTUUgKG5vdyk7 Ci0JICBpZiAoRU1BQ1NfVElNRV9HRSAobm93LCAqZW5kX3RpbWUpKQotCSAgICBnb3RvIGV4 aXQ7Ci0JfQorICAgICAgaWYgKGVuZF90aW1lICYmIEVNQUNTX1RJTUVfTEUgKCplbmRfdGlt ZSwgY3VycmVudF9lbWFjc190aW1lICgpKSkKKwlnb3RvIGV4aXQ7CiAKICAgICAgIC8qIEFj dHVhbGx5IHJlYWQgYSBjaGFyYWN0ZXIsIHdhaXRpbmcgaWYgbmVjZXNzYXJ5LiAgKi8KICAg ICAgIHNhdmVfZ2V0Y2ptcCAoc2F2ZV9qdW1wKTsKQEAgLTM4NDcsMTMgKzM4NDEsMTIgQEAK ICNlbmRpZgogICAgICAgaWYgKGVuZF90aW1lKQogCXsKLQkgIEVNQUNTX1RJTUUgZHVyYXRp b247Ci0JICBFTUFDU19HRVRfVElNRSAoZHVyYXRpb24pOwotCSAgaWYgKEVNQUNTX1RJTUVf R0UgKGR1cmF0aW9uLCAqZW5kX3RpbWUpKQorCSAgRU1BQ1NfVElNRSBub3cgPSBjdXJyZW50 X2VtYWNzX3RpbWUgKCk7CisJICBpZiAoRU1BQ1NfVElNRV9MRSAoKmVuZF90aW1lLCBub3cp KQogCSAgICByZXR1cm4gUW5pbDsJLyogRmluaXNoZWQgd2FpdGluZy4gICovCiAJICBlbHNl CiAJICAgIHsKLQkgICAgICBFTUFDU19TVUJfVElNRSAoZHVyYXRpb24sICplbmRfdGltZSwg ZHVyYXRpb24pOworCSAgICAgIEVNQUNTX1RJTUUgZHVyYXRpb24gPSBzdWJfZW1hY3NfdGlt ZSAoKmVuZF90aW1lLCBub3cpOwogCSAgICAgIHdhaXRfcmVhZGluZ19wcm9jZXNzX291dHB1 dCAobWluIChFTUFDU19TRUNTIChkdXJhdGlvbiksCiAJCQkJCQlXQUlUX1JFQURJTkdfTUFY KSwKIAkJCQkJICAgRU1BQ1NfTlNFQ1MgKGR1cmF0aW9uKSwKQEAgLTQyNTYsOCArNDI0OSw3 IEBACiAgIGlmIChFTUFDU19USU1FX1ZBTElEX1AgKHRpbWVyX2lkbGVuZXNzX3N0YXJ0X3Rp bWUpKQogICAgIHJldHVybjsKIAotICBFTUFDU19HRVRfVElNRSAodGltZXJfaWRsZW5lc3Nf c3RhcnRfdGltZSk7Ci0KKyAgdGltZXJfaWRsZW5lc3Nfc3RhcnRfdGltZSA9IGN1cnJlbnRf ZW1hY3NfdGltZSAoKTsKICAgdGltZXJfbGFzdF9pZGxlbmVzc19zdGFydF90aW1lID0gdGlt ZXJfaWRsZW5lc3Nfc3RhcnRfdGltZTsKIAogICAvKiBNYXJrIGFsbCBpZGxlLXRpbWUgdGlt ZXJzIGFzIG9uY2UgYWdhaW4gY2FuZGlkYXRlcyBmb3IgcnVubmluZy4gICovCkBAIC00Mjc4 LDcgKzQyNzAsNyBAQAogc3RhdGljIHZvaWQKIHRpbWVyX3N0b3BfaWRsZSAodm9pZCkKIHsK LSAgRU1BQ1NfU0VUX0lOVkFMSURfVElNRSAodGltZXJfaWRsZW5lc3Nfc3RhcnRfdGltZSk7 CisgIHRpbWVyX2lkbGVuZXNzX3N0YXJ0X3RpbWUgPSBpbnZhbGlkX2VtYWNzX3RpbWUgKCk7 CiB9CiAKIC8qIFJlc3VtZSBpZGxlIHRpbWVyIGZyb20gbGFzdCBpZGxlIHN0YXJ0IHRpbWUu ICAqLwpAQCAtNDMzOSw3ICs0MzMxLDcgQEAKICAgTGlzcF9PYmplY3QgdGltZXJzLCBpZGxl X3RpbWVycywgY2hvc2VuX3RpbWVyOwogICBzdHJ1Y3QgZ2Nwcm8gZ2Nwcm8xLCBnY3BybzIs IGdjcHJvMzsKIAotICBFTUFDU19TRVRfSU5WQUxJRF9USU1FIChuZXh0dGltZSk7CisgIG5l eHR0aW1lID0gaW52YWxpZF9lbWFjc190aW1lICgpOwogCiAgIC8qIEFsd2F5cyBjb25zaWRl ciB0aGUgb3JkaW5hcnkgdGltZXJzLiAgKi8KICAgdGltZXJzID0gVnRpbWVyX2xpc3Q7CkBA IC00MzYxLDExICs0MzUzLDEwIEBACiAKICAgaWYgKENPTlNQICh0aW1lcnMpIHx8IENPTlNQ IChpZGxlX3RpbWVycykpCiAgICAgewotICAgICAgRU1BQ1NfR0VUX1RJTUUgKG5vdyk7Ci0g ICAgICBpZiAoRU1BQ1NfVElNRV9WQUxJRF9QICh0aW1lcl9pZGxlbmVzc19zdGFydF90aW1l KSkKLQlFTUFDU19TVUJfVElNRSAoaWRsZW5lc3Nfbm93LCBub3csIHRpbWVyX2lkbGVuZXNz X3N0YXJ0X3RpbWUpOwotICAgICAgZWxzZQotCUVNQUNTX1NFVF9TRUNTX05TRUNTIChpZGxl bmVzc19ub3csIDAsIDApOworICAgICAgbm93ID0gY3VycmVudF9lbWFjc190aW1lICgpOwor ICAgICAgaWRsZW5lc3Nfbm93ID0gKEVNQUNTX1RJTUVfVkFMSURfUCAodGltZXJfaWRsZW5l c3Nfc3RhcnRfdGltZSkKKwkJICAgICAgPyBzdWJfZW1hY3NfdGltZSAobm93LCB0aW1lcl9p ZGxlbmVzc19zdGFydF90aW1lKQorCQkgICAgICA6IG1ha2VfZW1hY3NfdGltZSAoMCwgMCkp OwogICAgIH0KIAogICB3aGlsZSAoQ09OU1AgKHRpbWVycykgfHwgQ09OU1AgKGlkbGVfdGlt ZXJzKSkKQEAgLTQzNzQsMTIgKzQzNjUsMTAgQEAKICAgICAgIExpc3BfT2JqZWN0IHRpbWVy ID0gUW5pbCwgaWRsZV90aW1lciA9IFFuaWw7CiAgICAgICBFTUFDU19USU1FIHRpbWVyX3Rp bWUsIGlkbGVfdGltZXJfdGltZTsKICAgICAgIEVNQUNTX1RJTUUgZGlmZmVyZW5jZTsKLSAg ICAgIEVNQUNTX1RJTUUgdGltZXJfZGlmZmVyZW5jZSwgaWRsZV90aW1lcl9kaWZmZXJlbmNl OworICAgICAgRU1BQ1NfVElNRSB0aW1lcl9kaWZmZXJlbmNlID0gaW52YWxpZF9lbWFjc190 aW1lICgpOworICAgICAgRU1BQ1NfVElNRSBpZGxlX3RpbWVyX2RpZmZlcmVuY2UgPSBpbnZh bGlkX2VtYWNzX3RpbWUgKCk7CiAgICAgICBpbnQgcmlwZSwgdGltZXJfcmlwZSA9IDAsIGlk bGVfdGltZXJfcmlwZSA9IDA7CiAKLSAgICAgIEVNQUNTX1NFVF9JTlZBTElEX1RJTUUgKHRp bWVyX2RpZmZlcmVuY2UpOwotICAgICAgRU1BQ1NfU0VUX0lOVkFMSURfVElNRSAoaWRsZV90 aW1lcl9kaWZmZXJlbmNlKTsKLQogICAgICAgLyogU2V0IFRJTUVSIGFuZCBUSU1FUl9ESUZG RVJFTkNFCiAJIGJhc2VkIG9uIHRoZSBuZXh0IG9yZGluYXJ5IHRpbWVyLgogCSBUSU1FUl9E SUZGRVJFTkNFIGlzIHRoZSBkaXN0YW5jZSBpbiB0aW1lIGZyb20gTk9XIHRvIHdoZW4KQEAg LTQzOTUsMTAgKzQzODQsOSBAQAogCSAgICB9CiAKIAkgIHRpbWVyX3JpcGUgPSBFTUFDU19U SU1FX0xFICh0aW1lcl90aW1lLCBub3cpOwotCSAgaWYgKHRpbWVyX3JpcGUpCi0JICAgIEVN QUNTX1NVQl9USU1FICh0aW1lcl9kaWZmZXJlbmNlLCBub3csIHRpbWVyX3RpbWUpOwotCSAg ZWxzZQotCSAgICBFTUFDU19TVUJfVElNRSAodGltZXJfZGlmZmVyZW5jZSwgdGltZXJfdGlt ZSwgbm93KTsKKwkgIHRpbWVyX2RpZmZlcmVuY2UgPSAodGltZXJfcmlwZQorCQkJICAgICAg PyBzdWJfZW1hY3NfdGltZSAobm93LCB0aW1lcl90aW1lKQorCQkJICAgICAgOiBzdWJfZW1h Y3NfdGltZSAodGltZXJfdGltZSwgbm93KSk7CiAJfQogCiAgICAgICAvKiBMaWtld2lzZSBm b3IgSURMRV9USU1FUiBhbmQgSURMRV9USU1FUl9ESUZGRVJFTkNFCkBAIC00NDEzLDEyICs0 NDAxLDEwIEBACiAJICAgIH0KIAogCSAgaWRsZV90aW1lcl9yaXBlID0gRU1BQ1NfVElNRV9M RSAoaWRsZV90aW1lcl90aW1lLCBpZGxlbmVzc19ub3cpOwotCSAgaWYgKGlkbGVfdGltZXJf cmlwZSkKLQkgICAgRU1BQ1NfU1VCX1RJTUUgKGlkbGVfdGltZXJfZGlmZmVyZW5jZSwKLQkJ CSAgICBpZGxlbmVzc19ub3csIGlkbGVfdGltZXJfdGltZSk7Ci0JICBlbHNlCi0JICAgIEVN QUNTX1NVQl9USU1FIChpZGxlX3RpbWVyX2RpZmZlcmVuY2UsCi0JCQkgICAgaWRsZV90aW1l cl90aW1lLCBpZGxlbmVzc19ub3cpOworCSAgaWRsZV90aW1lcl9kaWZmZXJlbmNlID0KKwkg ICAgKGlkbGVfdGltZXJfcmlwZQorCSAgICAgPyBzdWJfZW1hY3NfdGltZSAoaWRsZW5lc3Nf bm93LCBpZGxlX3RpbWVyX3RpbWUpCisJICAgICA6IHN1Yl9lbWFjc190aW1lIChpZGxlX3Rp bWVyX3RpbWUsIGlkbGVuZXNzX25vdykpOwogCX0KIAogICAgICAgLyogRGVjaWRlIHdoaWNo IHRpbWVyIGlzIHRoZSBuZXh0IHRpbWVyLApAQCAtNDQ3NCw4ICs0NDYwLDcgQEAKICAgICAg ICAgICAgICAgICAgcmV0dXJuIDAgdG8gaW5kaWNhdGUgdGhhdC4gICovCiAJICAgIH0KIAot ICAgICAgICAgIEVNQUNTX1NFVF9TRUNTIChuZXh0dGltZSwgMCk7Ci0gICAgICAgICAgRU1B Q1NfU0VUX1VTRUNTIChuZXh0dGltZSwgMCk7CisJICBuZXh0dGltZSA9IG1ha2VfZW1hY3Nf dGltZSAoMCwgMCk7CiAJfQogICAgICAgZWxzZQogCS8qIFdoZW4gd2UgZW5jb3VudGVyIGEg dGltZXIgdGhhdCBpcyBzdGlsbCB3YWl0aW5nLApAQCAtNDUyNywxNCArNDUxMiw4IEBACiAg ICh2b2lkKQogewogICBpZiAoRU1BQ1NfVElNRV9WQUxJRF9QICh0aW1lcl9pZGxlbmVzc19z dGFydF90aW1lKSkKLSAgICB7Ci0gICAgICBFTUFDU19USU1FIG5vdywgaWRsZW5lc3Nfbm93 OwotCi0gICAgICBFTUFDU19HRVRfVElNRSAobm93KTsKLSAgICAgIEVNQUNTX1NVQl9USU1F IChpZGxlbmVzc19ub3csIG5vdywgdGltZXJfaWRsZW5lc3Nfc3RhcnRfdGltZSk7Ci0KLSAg ICAgIHJldHVybiBtYWtlX2xpc3BfdGltZSAoaWRsZW5lc3Nfbm93KTsKLSAgICB9CisgICAg cmV0dXJuIG1ha2VfbGlzcF90aW1lIChzdWJfZW1hY3NfdGltZSAoY3VycmVudF9lbWFjc190 aW1lICgpLAorCQkJCQkgICB0aW1lcl9pZGxlbmVzc19zdGFydF90aW1lKSk7CiAKICAgcmV0 dXJuIFFuaWw7CiB9CkBAIC03MjI0LDcgKzcyMDMsNyBAQAogI2VuZGlmCiAKICAgaWYgKGlu cHV0X2F2YWlsYWJsZV9jbGVhcl90aW1lKQotICAgIEVNQUNTX1NFVF9TRUNTX1VTRUNTICgq aW5wdXRfYXZhaWxhYmxlX2NsZWFyX3RpbWUsIDAsIDApOworICAgICppbnB1dF9hdmFpbGFi bGVfY2xlYXJfdGltZSA9IG1ha2VfZW1hY3NfdGltZSAoMCwgMCk7CiAKICNpZm5kZWYgU1lO Q19JTlBVVAogICBoYW5kbGVfYXN5bmNfaW5wdXQgKCk7CkBAIC03MzI3LDcgKzczMDYsNyBA QAogCSAgICAvKiBUZWxsIHdhaXRfcmVhZGluZ19wcm9jZXNzX291dHB1dCB0aGF0IGl0IG5l ZWRzIHRvIHdha2UKIAkgICAgICAgdXAgYW5kIGxvb2sgYXJvdW5kLiAgKi8KIAkgICAgaWYg KGlucHV0X2F2YWlsYWJsZV9jbGVhcl90aW1lKQotCSAgICAgIEVNQUNTX1NFVF9TRUNTX1VT RUNTICgqaW5wdXRfYXZhaWxhYmxlX2NsZWFyX3RpbWUsIDAsIDApOworCSAgICAgICppbnB1 dF9hdmFpbGFibGVfY2xlYXJfdGltZSA9IG1ha2VfZW1hY3NfdGltZSAoMCwgMCk7CiAJICB9 CiAJYnJlYWs7CiAgICAgICB9CkBAIC0xMTM0NCw3ICsxMTMyMyw3IEBACiAgIHF1aXRfY2hh ciA9IEN0bCAoJ2cnKTsKICAgVnVucmVhZF9jb21tYW5kX2V2ZW50cyA9IFFuaWw7CiAgIHVu cmVhZF9jb21tYW5kX2NoYXIgPSAtMTsKLSAgRU1BQ1NfU0VUX0lOVkFMSURfVElNRSAodGlt ZXJfaWRsZW5lc3Nfc3RhcnRfdGltZSk7CisgIHRpbWVyX2lkbGVuZXNzX3N0YXJ0X3RpbWUg PSBpbnZhbGlkX2VtYWNzX3RpbWUgKCk7CiAgIHRvdGFsX2tleXMgPSAwOwogICByZWNlbnRf a2V5c19pbmRleCA9IDA7CiAgIGtiZF9mZXRjaF9wdHIgPSBrYmRfYnVmZmVyOwoKPT09IG1v ZGlmaWVkIGZpbGUgJ3NyYy9scmVhZC5jJwotLS0gc3JjL2xyZWFkLmMJMjAxMi0wNy0wNyAx OTozMzoyOCArMDAwMAorKysgc3JjL2xyZWFkLmMJMjAxMi0wNy0wNyAyMDowNDowMiArMDAw MApAQCAtNjAwLDggKzYwMCw3IEBACiAgICAgewogICAgICAgZG91YmxlIGR1cmF0aW9uID0g ZXh0cmFjdF9mbG9hdCAoc2Vjb25kcyk7CiAgICAgICBFTUFDU19USU1FIHdhaXRfdGltZSA9 IEVNQUNTX1RJTUVfRlJPTV9ET1VCTEUgKGR1cmF0aW9uKTsKLSAgICAgIEVNQUNTX0dFVF9U SU1FIChlbmRfdGltZSk7Ci0gICAgICBFTUFDU19BRERfVElNRSAoZW5kX3RpbWUsIGVuZF90 aW1lLCB3YWl0X3RpbWUpOworICAgICAgZW5kX3RpbWUgPSBhZGRfZW1hY3NfdGltZSAoY3Vy cmVudF9lbWFjc190aW1lICgpLCB3YWl0X3RpbWUpOwogICAgIH0KIAogLyogUmVhZCB1bnRp bCB3ZSBnZXQgYW4gYWNjZXB0YWJsZSBldmVudC4gICovCgo9PT0gbW9kaWZpZWQgZmlsZSAn c3JjL21zZG9zLmMnCi0tLSBzcmMvbXNkb3MuYwkyMDEyLTA3LTA1IDA2OjMyOjQxICswMDAw CisrKyBzcmMvbXNkb3MuYwkyMDEyLTA3LTA3IDIwOjAwOjA0ICswMDAwCkBAIC00MTM2LDE0 ICs0MTM2LDE0IEBACiAgICAgICBFTUFDU19USU1FIGNsbm93LCBjbGxhc3QsIGNsZGlmZjsK IAogICAgICAgZ2V0dGltZSAoJnQpOwotICAgICAgRU1BQ1NfU0VUX1NFQ1NfTlNFQ1MgKGNs bGFzdCwgdC50dl9zZWMsIHQudHZfbnNlYyk7CisgICAgICBjbGxhc3QgPSBtYWtlX2VtYWNz X3RpbWUgKHQudHZfc2VjLCB0LnR2X25zZWMpOwogCiAgICAgICB3aGlsZSAoIWNoZWNrX2lu cHV0IHx8ICFkZXRlY3RfaW5wdXRfcGVuZGluZyAoKSkKIAl7CiAJICBnZXR0aW1lICgmdCk7 Ci0JICBFTUFDU19TRVRfU0VDU19OU0VDUyAoY2xub3csIHQudHZfc2VjLCB0LnR2X25zZWMp OwotCSAgRU1BQ1NfU1VCX1RJTUUgKGNsZGlmZiwgY2xub3csIGNsbGFzdCk7Ci0JICBFTUFD U19TVUJfVElNRSAoKnRpbWVvdXQsICp0aW1lb3V0LCBjbGRpZmYpOworCSAgY2xub3cgPSBt YWtlX2VtYWNzX3RpbWUgKHQudHZfc2VjLCB0LnR2X25zZWMpOworCSAgY2xkaWZmID0gc3Vi X2VtYWNzX3RpbWUgKGNsbm93LCBjbGxhc3QpOworCSAgKnRpbWVvdXQgPSBzdWJfZW1hY3Nf dGltZSAoKnRpbWVvdXQsIGNsZGlmZik7CiAKIAkgIC8qIFN0b3Agd2hlbiB0aW1lb3V0IHZh bHVlIGNyb3NzZXMgemVyby4gICovCiAJICBpZiAoRU1BQ1NfVElNRV9TSUdOICgqdGltZW91 dCkgPD0gMCkKCj09PSBtb2RpZmllZCBmaWxlICdzcmMvbnN0ZXJtLm0nCi0tLSBzcmMvbnN0 ZXJtLm0JMjAxMi0wNy0wNiAyMTowNzo0NiArMDAwMAorKysgc3JjL25zdGVybS5tCTIwMTIt MDctMDcgMDQ6NTM6MzggKzAwMDAKQEAgLTM4OSwyMSArMzg5LDE2IEBACiAgICAgIEJsb2Nr aW5nIHRpbWVyIHV0aWxpdHkgdXNlZCBieSBuc19yaW5nX2JlbGwKICAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tICovCiB7Ci0gIEVNQUNTX1RJTUUgd2FrZXVwLCBkZWxheTsKLQotICBFTUFD U19HRVRfVElNRSAod2FrZXVwKTsKLSAgRU1BQ1NfU0VUX1NFQ1NfVVNFQ1MgKGRlbGF5LCAw LCB1c2Vjcyk7Ci0gIEVNQUNTX0FERF9USU1FICh3YWtldXAsIHdha2V1cCwgZGVsYXkpOwor ICBFTUFDU19USU1FIHdha2V1cCA9IGFkZF9lbWFjc190aW1lIChjdXJyZW50X2VtYWNzX3Rp bWUgKCksCisJCQkJICAgICAgbWFrZV9lbWFjc190aW1lICgwLCB1c2VjcyAqIDEwMDApKTsK IAogICAvKiBLZWVwIHdhaXRpbmcgdW50aWwgcGFzdCB0aGUgdGltZSB3YWtldXAuICAqLwog ICB3aGlsZSAoMSkKICAgICB7Ci0gICAgICBFTUFDU19USU1FIHRpbWVvdXQ7Ci0KLSAgICAg IEVNQUNTX0dFVF9USU1FICh0aW1lb3V0KTsKLSAgICAgIGlmIChFTUFDU19USU1FX0xFICh3 YWtldXAsIHRpbWVvdXQpKQorICAgICAgRU1BQ1NfVElNRSBub3cgPSBjdXJyZW50X2VtYWNz X3RpbWUgKCk7CisgICAgICBpZiAoRU1BQ1NfVElNRV9MRSAod2FrZXVwLCBub3cpKQogCWJy ZWFrOwotICAgICAgRU1BQ1NfU1VCX1RJTUUgKHRpbWVvdXQsIHdha2V1cCwgdGltZW91dCk7 CisgICAgICB0aW1lb3V0ID0gc3ViX2VtYWNzX3RpbWUgKHdha2V1cCwgbm93KTsKIAogICAg ICAgLyogVHJ5IHRvIHdhaXQgdGhhdCBsb25nLS1idXQgd2UgbWlnaHQgd2FrZSB1cCBzb29u ZXIuICAqLwogICAgICAgcHNlbGVjdCAoMCwgTlVMTCwgTlVMTCwgTlVMTCwgJnRpbWVvdXQs IE5VTEwpOwoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy9wcm9jZXNzLmMnCi0tLSBzcmMvcHJv Y2Vzcy5jCTIwMTItMDctMDYgMTY6NTc6MzIgKzAwMDAKKysrIHNyYy9wcm9jZXNzLmMJMjAx Mi0wNy0wNyAwNDo1MzozOCArMDAwMApAQCAtMTg1MiwxMCArMTg1Miw5IEBACiAJIFNvIGhh dmUgYW4gaW50ZXJydXB0IGphciBpdCBsb29zZS4gICovCiAgICAgICB7CiAJc3RydWN0IGF0 aW1lciAqdGltZXI7Ci0JRU1BQ1NfVElNRSBvZmZzZXQ7CisJRU1BQ1NfVElNRSBvZmZzZXQg PSBtYWtlX2VtYWNzX3RpbWUgKDEsIDApOwogCiAJc3RvcF9wb2xsaW5nICgpOwotCUVNQUNT X1NFVF9TRUNTX1VTRUNTIChvZmZzZXQsIDEsIDApOwogCXRpbWVyID0gc3RhcnRfYXRpbWVy IChBVElNRVJfUkVMQVRJVkUsIG9mZnNldCwgY3JlYXRlX3Byb2Nlc3NfMSwgMCk7CiAKIAlp ZiAoZm9ya2luID49IDApCkBAIC00MzA5LDkgKzQzMDgsOCBAQAogICAgICBjb21wdXRlIHRo ZSBhYnNvbHV0ZSB0aW1lIHRvIHJldHVybiBhdC4gICovCiAgIGlmICh0aW1lX2xpbWl0IHx8 IDAgPCBuc2VjcykKICAgICB7Ci0gICAgICBFTUFDU19HRVRfVElNRSAoZW5kX3RpbWUpOwot ICAgICAgRU1BQ1NfU0VUX1NFQ1NfTlNFQ1MgKHRpbWVvdXQsIHRpbWVfbGltaXQsIG5zZWNz KTsKLSAgICAgIEVNQUNTX0FERF9USU1FIChlbmRfdGltZSwgZW5kX3RpbWUsIHRpbWVvdXQp OworICAgICAgdGltZW91dCA9IG1ha2VfZW1hY3NfdGltZSAodGltZV9saW1pdCwgbnNlY3Mp OworICAgICAgZW5kX3RpbWUgPSBhZGRfZW1hY3NfdGltZSAoY3VycmVudF9lbWFjc190aW1l ICgpLCB0aW1lb3V0KTsKICAgICB9CiAKICAgd2hpbGUgKDEpCkBAIC00MzQwLDE4ICs0MzM4 LDE4IEBACiAJICAgICBnb2JibGUgb3V0cHV0IGF2YWlsYWJsZSBub3cKIAkgICAgIGJ1dCBk b24ndCB3YWl0IGF0IGFsbC4gKi8KIAotCSAgRU1BQ1NfU0VUX1NFQ1NfVVNFQ1MgKHRpbWVv dXQsIDAsIDApOworCSAgdGltZW91dCA9IG1ha2VfZW1hY3NfdGltZSAoMCwgMCk7CiAJfQog ICAgICAgZWxzZSBpZiAodGltZV9saW1pdCB8fCAwIDwgbnNlY3MpCiAJewotCSAgRU1BQ1Nf R0VUX1RJTUUgKHRpbWVvdXQpOwotCSAgaWYgKEVNQUNTX1RJTUVfTEUgKGVuZF90aW1lLCB0 aW1lb3V0KSkKKwkgIEVNQUNTX1RJTUUgbm93ID0gY3VycmVudF9lbWFjc190aW1lICgpOwor CSAgaWYgKEVNQUNTX1RJTUVfTEUgKGVuZF90aW1lLCBub3cpKQogCSAgICBicmVhazsKLQkg IEVNQUNTX1NVQl9USU1FICh0aW1lb3V0LCBlbmRfdGltZSwgdGltZW91dCk7CisJICB0aW1l b3V0ID0gc3ViX2VtYWNzX3RpbWUgKGVuZF90aW1lLCBub3cpOwogCX0KICAgICAgIGVsc2UK IAl7Ci0JICBFTUFDU19TRVRfU0VDU19VU0VDUyAodGltZW91dCwgMTAwMDAwLCAwKTsKKwkg IHRpbWVvdXQgPSBtYWtlX2VtYWNzX3RpbWUgKDEwMDAwMCwgMCk7CiAJfQogCiAgICAgICAv KiBOb3JtYWxseSB3ZSBydW4gdGltZXJzIGhlcmUuCkBAIC00NDM2LDcgKzQ0MzQsNyBAQAog ICAgICAgICAgICAgQXRlbXAgPSBpbnB1dF93YWl0X21hc2s7CiAJICBDdGVtcCA9IHdyaXRl X21hc2s7CiAKLQkgIEVNQUNTX1NFVF9TRUNTX1VTRUNTICh0aW1lb3V0LCAwLCAwKTsKKwkg IHRpbWVvdXQgPSBtYWtlX2VtYWNzX3RpbWUgKDAsIDApOwogCSAgaWYgKChwc2VsZWN0ICht YXggKG1heF9wcm9jZXNzX2Rlc2MsIG1heF9pbnB1dF9kZXNjKSArIDEsCiAJCQkmQXRlbXAs CiAjaWZkZWYgTk9OX0JMT0NLSU5HX0NPTk5FQ1QKQEAgLTQ1ODgsNyArNDU4Niw3IEBACiAJ CQluc2VjcyA9IFhQUk9DRVNTIChwcm9jKS0+cmVhZF9vdXRwdXRfZGVsYXk7CiAJCSAgICB9 CiAJCX0KLQkgICAgICBFTUFDU19TRVRfU0VDU19OU0VDUyAodGltZW91dCwgMCwgbnNlY3Mp OworCSAgICAgIHRpbWVvdXQgPSBtYWtlX2VtYWNzX3RpbWUgKDAsIG5zZWNzKTsKIAkgICAg ICBwcm9jZXNzX291dHB1dF9za2lwID0gMDsKIAkgICAgfQogI2VuZGlmCkBAIC02NDI0LDcg KzY0MjIsNyBAQAogCSAgLyogVGVsbCB3YWl0X3JlYWRpbmdfcHJvY2Vzc19vdXRwdXQgdGhh dCBpdCBuZWVkcyB0byB3YWtlIHVwIGFuZAogCSAgICAgbG9vayBhcm91bmQuICAqLwogCSAg aWYgKGlucHV0X2F2YWlsYWJsZV9jbGVhcl90aW1lKQotCSAgICBFTUFDU19TRVRfU0VDU19V U0VDUyAoKmlucHV0X2F2YWlsYWJsZV9jbGVhcl90aW1lLCAwLCAwKTsKKwkgICAgKmlucHV0 X2F2YWlsYWJsZV9jbGVhcl90aW1lID0gbWFrZV9lbWFjc190aW1lICgwLCAwKTsKIAl9CiAK ICAgICAgIC8qIFRoZXJlIHdhcyBubyBhc3luY2hyb25vdXMgcHJvY2VzcyBmb3VuZCBmb3Ig dGhhdCBwaWQ6IHdlIGhhdmUKQEAgLTY0NDIsNyArNjQ0MCw3IEBACiAJICAvKiBUZWxsIHdh aXRfcmVhZGluZ19wcm9jZXNzX291dHB1dCB0aGF0IGl0IG5lZWRzIHRvIHdha2UgdXAgYW5k CiAJICAgICBsb29rIGFyb3VuZC4gICovCiAJICBpZiAoaW5wdXRfYXZhaWxhYmxlX2NsZWFy X3RpbWUpCi0JICAgIEVNQUNTX1NFVF9TRUNTX1VTRUNTICgqaW5wdXRfYXZhaWxhYmxlX2Ns ZWFyX3RpbWUsIDAsIDApOworCSAgICAqaW5wdXRfYXZhaWxhYmxlX2NsZWFyX3RpbWUgPSBt YWtlX2VtYWNzX3RpbWUgKDAsIDApOwogCX0KIAogICAgIHNpZ2NobGRfZW5kX29mX2xvb3A6 CkBAIC02ODU3LDkgKzY4NTUsOCBAQAogICAvKiBXaGF0IGRvZXMgdGltZV9saW1pdCByZWFs bHkgbWVhbj8gICovCiAgIGlmICh0aW1lX2xpbWl0IHx8IDAgPCBuc2VjcykKICAgICB7Ci0g ICAgICBFTUFDU19HRVRfVElNRSAoZW5kX3RpbWUpOwotICAgICAgRU1BQ1NfU0VUX1NFQ1Nf TlNFQ1MgKHRpbWVvdXQsIHRpbWVfbGltaXQsIG5zZWNzKTsKLSAgICAgIEVNQUNTX0FERF9U SU1FIChlbmRfdGltZSwgZW5kX3RpbWUsIHRpbWVvdXQpOworICAgICAgdGltZW91dCA9IG1h a2VfZW1hY3NfdGltZSAodGltZV9saW1pdCwgbnNlY3MpOworICAgICAgZW5kX3RpbWUgPSBh ZGRfZW1hY3NfdGltZSAoY3VycmVudF9lbWFjc190aW1lICgpLCB0aW1lb3V0KTsKICAgICB9 CiAKICAgLyogVHVybiBvZmYgcGVyaW9kaWMgYWxhcm1zIChpbiBjYXNlIHRoZXkgYXJlIGlu IHVzZSkKQEAgLTY4OTAsMTggKzY4ODcsMTggQEAKIAkgICAgIGdvYmJsZSBvdXRwdXQgYXZh aWxhYmxlIG5vdwogCSAgICAgYnV0IGRvbid0IHdhaXQgYXQgYWxsLiAqLwogCi0JICBFTUFD U19TRVRfU0VDU19VU0VDUyAodGltZW91dCwgMCwgMCk7CisJICB0aW1lb3V0ID0gbWFrZV9l bWFjc190aW1lICgwLCAwKTsKIAl9CiAgICAgICBlbHNlIGlmICh0aW1lX2xpbWl0IHx8IDAg PCBuc2VjcykKIAl7Ci0JICBFTUFDU19HRVRfVElNRSAodGltZW91dCk7Ci0JICBpZiAoRU1B Q1NfVElNRV9MRSAoZW5kX3RpbWUsIHRpbWVvdXQpKQorCSAgRU1BQ1NfVElNRSBub3cgPSBj dXJyZW50X2VtYWNzX3RpbWUgKCk7CisJICBpZiAoRU1BQ1NfVElNRV9MRSAoZW5kX3RpbWUs IG5vdykpCiAJICAgIGJyZWFrOwotCSAgRU1BQ1NfU1VCX1RJTUUgKHRpbWVvdXQsIGVuZF90 aW1lLCB0aW1lb3V0KTsKKwkgIHRpbWVvdXQgPSBzdWJfZW1hY3NfdGltZSAoZW5kX3RpbWUs IG5vdyk7CiAJfQogICAgICAgZWxzZQogCXsKLQkgIEVNQUNTX1NFVF9TRUNTX1VTRUNTICh0 aW1lb3V0LCAxMDAwMDAsIDApOworCSAgdGltZW91dCA9IG1ha2VfZW1hY3NfdGltZSAoMTAw MDAwLCAwKTsKIAl9CiAKICAgICAgIC8qIElmIG91ciBjYWxsZXIgd2lsbCBub3QgaW1tZWRp YXRlbHkgaGFuZGxlIGtleWJvYXJkIGV2ZW50cywKCj09PSBtb2RpZmllZCBmaWxlICdzcmMv c3lzZGVwLmMnCi0tLSBzcmMvc3lzZGVwLmMJMjAxMi0wNy0wNyAxODoxNjoxNSArMDAwMAor Kysgc3JjL3N5c2RlcC5jCTIwMTItMDctMDcgMjA6MDQ6MDIgKzAwMDAKQEAgLTI1ODYsNyAr MjU4Niw2IEBACiAgIHVuc2lnbmVkIGxvbmcgbG9uZyBzID0gdHZhbCAvIGh6OwogICB1bnNp Z25lZCBsb25nIGxvbmcgZnJhYyA9IHR2YWwgJSBoejsKICAgaW50IG5zOwotICBFTUFDU19U SU1FIHQ7CiAKICAgaWYgKFRZUEVfTUFYSU1VTSAodGltZV90KSA8IHMpCiAgICAgdGltZV9v dmVyZmxvdyAoKTsKQEAgLTI2MDMsOCArMjYwMiw3IEBACiAgICAgICBucyA9IGZyYWMgLyBo el9wZXJfbnM7CiAgICAgfQogCi0gIEVNQUNTX1NFVF9TRUNTX05TRUNTICh0LCBzLCBucyk7 Ci0gIHJldHVybiB0OworICByZXR1cm4gbWFrZV9lbWFjc190aW1lIChzLCBucyk7CiB9CiAK IHN0YXRpYyBMaXNwX09iamVjdApAQCAtMjYxOCw5ICsyNjE2LDcgQEAKIGdldF91cF90aW1l ICh2b2lkKQogewogICBGSUxFICpmdXA7Ci0gIEVNQUNTX1RJTUUgdXA7Ci0KLSAgRU1BQ1Nf U0VUX1NFQ1NfTlNFQ1MgKHVwLCAwLCAwKTsKKyAgRU1BQ1NfVElNRSB1cCA9IG1ha2VfZW1h Y3NfdGltZSAoMCwgMCk7CiAKICAgQkxPQ0tfSU5QVVQ7CiAgIGZ1cCA9IGZvcGVuICgiL3By b2MvdXB0aW1lIiwgInIiKTsKQEAgLTI2NDksNyArMjY0NSw3IEBACiAJCXVwZnJhYyAvPSAx MDsKIAkgICAgICB1cGZyYWMgPSBtaW4gKHVwZnJhYywgRU1BQ1NfVElNRV9SRVNPTFVUSU9O IC0gMSk7CiAJICAgIH0KLQkgIEVNQUNTX1NFVF9TRUNTX05TRUNTICh1cCwgdXBzZWMsIHVw ZnJhYyk7CisJICB1cCA9IG1ha2VfZW1hY3NfdGltZSAodXBzZWMsIHVwZnJhYyk7CiAJfQog ICAgICAgZmNsb3NlIChmdXApOwogICAgIH0KQEAgLTI4NzcsMTUgKzI4NzMsMTUgQEAKIAkg IGF0dHJzID0gRmNvbnMgKEZjb25zIChRcHJpLCBtYWtlX251bWJlciAocHJpb3JpdHkpKSwg YXR0cnMpOwogCSAgYXR0cnMgPSBGY29ucyAoRmNvbnMgKFFuaWNlLCBtYWtlX251bWJlciAo bmljZW5lc3MpKSwgYXR0cnMpOwogCSAgYXR0cnMgPSBGY29ucyAoRmNvbnMgKFF0aGNvdW50 LCBtYWtlX2ZpeG51bV9vcl9mbG9hdCAodGhjb3VudF9laW50KSksIGF0dHJzKTsKLQkgIEVN QUNTX0dFVF9USU1FICh0bm93KTsKKwkgIHRub3cgPSBjdXJyZW50X2VtYWNzX3RpbWUgKCk7 CiAJICB0ZWxhcHNlZCA9IGdldF91cF90aW1lICgpOwotCSAgRU1BQ1NfU1VCX1RJTUUgKHRi b290LCB0bm93LCB0ZWxhcHNlZCk7CisJICB0Ym9vdCA9IHN1Yl9lbWFjc190aW1lICh0bm93 LCB0ZWxhcHNlZCk7CiAJICB0c3RhcnQgPSB0aW1lX2Zyb21famlmZmllcyAoc3RhcnQsIGNs b2Nrc19wZXJfc2VjKTsKLQkgIEVNQUNTX0FERF9USU1FICh0c3RhcnQsIHRib290LCB0c3Rh cnQpOworCSAgdHN0YXJ0ID0gYWRkX2VtYWNzX3RpbWUgKHRib290LCB0c3RhcnQpOwogCSAg YXR0cnMgPSBGY29ucyAoRmNvbnMgKFFzdGFydCwgbWFrZV9saXNwX3RpbWUgKHRzdGFydCkp LCBhdHRycyk7CiAJICBhdHRycyA9IEZjb25zIChGY29ucyAoUXZzaXplLCBtYWtlX2ZpeG51 bV9vcl9mbG9hdCAodnNpemUvMTAyNCkpLCBhdHRycyk7CiAJICBhdHRycyA9IEZjb25zIChG Y29ucyAoUXJzcywgbWFrZV9maXhudW1fb3JfZmxvYXQgKDQqcnNzKSksIGF0dHJzKTsKLQkg IEVNQUNTX1NVQl9USU1FICh0ZWxhcHNlZCwgdG5vdywgdHN0YXJ0KTsKKwkgIHRlbGFwc2Vk ID0gc3ViX2VtYWNzX3RpbWUgKHRub3csIHRzdGFydCk7CiAJICBhdHRycyA9IEZjb25zIChG Y29ucyAoUWV0aW1lLCBtYWtlX2xpc3BfdGltZSAodGVsYXBzZWQpKSwgYXR0cnMpOwogCSAg dXNfdGltZSA9IHRpbWVfZnJvbV9qaWZmaWVzICh1X3RpbWUgKyBzX3RpbWUsIGNsb2Nrc19w ZXJfc2VjKTsKIAkgIHBjcHUgPSAoRU1BQ1NfVElNRV9UT19ET1VCTEUgKHVzX3RpbWUpCkBA IC0zMTA5LDkgKzMxMDUsNyBAQAogc3RhdGljIEVNQUNTX1RJTUUKIHRpbWV2YWxfdG9fRU1B Q1NfVElNRSAoc3RydWN0IHRpbWV2YWwgdCkKIHsKLSAgRU1BQ1NfVElNRSBlOwotICBFTUFD U19TRVRfU0VDU19OU0VDUyAoZSwgdC50dl9zZWMsIHQudHZfdXNlYyAqIDEwMDApOwotICBy ZXR1cm4gZTsKKyAgcmV0dXJuIG1ha2VfZW1hY3NfdGltZSAodC50dl9zZWMsIHQudHZfdXNl YyAqIDEwMDApOwogfQogCiBzdGF0aWMgTGlzcF9PYmplY3QKQEAgLTMyMTksOSArMzIxMyw4 IEBACiAJCSBhdHRycyk7CiAgIGF0dHJzID0gRmNvbnMgKEZjb25zIChRc3RpbWUsIG1ha2Vf bGlzcF90aW1ldmFsIChwcm9jLmtpX3J1c2FnZS5ydV9zdGltZSkpLAogCQkgYXR0cnMpOwot ICBFTUFDU19BRERfVElNRSAodCwKLQkJICB0aW1ldmFsX3RvX0VNQUNTX1RJTUUgKHByb2Mu a2lfcnVzYWdlLnJ1X3V0aW1lKSwKLQkJICB0aW1ldmFsX3RvX0VNQUNTX1RJTUUgKHByb2Mu a2lfcnVzYWdlLnJ1X3N0aW1lKSk7CisgIHQgPSBhZGRfZW1hY3NfdGltZSAodGltZXZhbF90 b19FTUFDU19USU1FIChwcm9jLmtpX3J1c2FnZS5ydV91dGltZSksCisJCSAgICAgIHRpbWV2 YWxfdG9fRU1BQ1NfVElNRSAocHJvYy5raV9ydXNhZ2UucnVfc3RpbWUpKTsKICAgYXR0cnMg PSBGY29ucyAoRmNvbnMgKFF0aW1lLCBtYWtlX2xpc3BfdGltZSAodCkpLCBhdHRycyk7CiAK ICAgYXR0cnMgPSBGY29ucyAoRmNvbnMgKFFjdXRpbWUsCkBAIC0zMjMwLDkgKzMyMjMsOCBA QAogICBhdHRycyA9IEZjb25zIChGY29ucyAoUWNzdGltZSwKIAkJCW1ha2VfbGlzcF90aW1l dmFsIChwcm9jLmtpX3J1c2FnZV9jaC5ydV91dGltZSkpLAogCQkgYXR0cnMpOwotICBFTUFD U19BRERfVElNRSAodCwKLQkJICB0aW1ldmFsX3RvX0VNQUNTX1RJTUUgKHByb2Mua2lfcnVz YWdlX2NoLnJ1X3V0aW1lKSwKLQkJICB0aW1ldmFsX3RvX0VNQUNTX1RJTUUgKHByb2Mua2lf cnVzYWdlX2NoLnJ1X3N0aW1lKSk7CisgIHQgPSBhZGRfZW1hY3NfdGltZSAodGltZXZhbF90 b19FTUFDU19USU1FIChwcm9jLmtpX3J1c2FnZV9jaC5ydV91dGltZSksCisJCSAgICAgIHRp bWV2YWxfdG9fRU1BQ1NfVElNRSAocHJvYy5raV9ydXNhZ2VfY2gucnVfc3RpbWUpKTsKICAg YXR0cnMgPSBGY29ucyAoRmNvbnMgKFFjdGltZSwgbWFrZV9saXNwX3RpbWUgKHQpKSwgYXR0 cnMpOwogCiAgIGF0dHJzID0gRmNvbnMgKEZjb25zIChRdGhjb3VudCwgbWFrZV9maXhudW1f b3JfZmxvYXQgKHByb2Mua2lfbnVtdGhyZWFkcykpLApAQCAtMzI0NCw4ICszMjM2LDggQEAK ICAgYXR0cnMgPSBGY29ucyAoRmNvbnMgKFFyc3MsICAgbWFrZV9udW1iZXIgKHByb2Mua2lf cnNzaXplICogcGFnZXNpemUgPj4gMTApKSwKIAkJIGF0dHJzKTsKIAotICBFTUFDU19HRVRf VElNRSAobm93KTsKLSAgRU1BQ1NfU1VCX1RJTUUgKHQsIG5vdywgdGltZXZhbF90b19FTUFD U19USU1FIChwcm9jLmtpX3N0YXJ0KSk7CisgIG5vdyA9IGN1cnJlbnRfZW1hY3NfdGltZSAo KTsKKyAgdCA9IHN1Yl9lbWFjc190aW1lIChub3csIHRpbWV2YWxfdG9fRU1BQ1NfVElNRSAo cHJvYy5raV9zdGFydCkpOwogICBhdHRycyA9IEZjb25zIChGY29ucyAoUWV0aW1lLCBtYWtl X2xpc3BfdGltZSAodCkpLCBhdHRycyk7CiAKICAgbGVuID0gc2l6ZW9mIGZzY2FsZTsKCj09 PSBtb2RpZmllZCBmaWxlICdzcmMvc3lzdGltZS5oJwotLS0gc3JjL3N5c3RpbWUuaAkyMDEy LTA3LTA3IDAxOjU3OjQyICswMDAwCisrKyBzcmMvc3lzdGltZS5oCTIwMTItMDctMDcgMDU6 MzQ6NTUgKzAwMDAKQEAgLTM5LDY0ICszOSw5MSBAQAogI2VuZGlmCiAjZW5kaWYKIAotI2lm ZGVmIFdJTkRPV1NOVAogI2luY2x1ZGUgPHN5cy90aW1lLmg+CS8qIGZvciAnc3RydWN0IHRp bWV2YWwnICovCi0jZW5kaWYKIAwKLS8qIFRoZSB0eXBlIHRvIHVzZSB0byByZXByZXNlbnQg dGVtcG9yYWwgaW50ZXJ2YWxzLiAgSXQgY2FuIGJlIHBhc3NlZAorLyogVGhlIHR5cGUgdG8g dXNlIHRvIHJlcHJlc2VudCB0ZW1wb3JhbCBpbnRlcnZhbHMuICBJdHMgYWRkcmVzcyBjYW4g YmUgcGFzc2VkCiAgICBhcyB0aGUgdGltZW91dCBhcmd1bWVudCB0byB0aGUgcHNlbGVjdCBz eXN0ZW0gY2FsbC4gICovCi0jZGVmaW5lIEVNQUNTX1RJTUUgc3RydWN0IHRpbWVzcGVjCit0 eXBlZGVmIHN0cnVjdCB0aW1lc3BlYyBFTUFDU19USU1FOwogCiAvKiBSZXNvbHV0aW9uIG9m IEVNQUNTX1RJTUUgdGltZSBzdGFtcHMgKGluIHVuaXRzIHBlciBzZWNvbmQpLCBhbmQgbG9n CiAgICBiYXNlIDEwIG9mIHRoZSByZXNvbHV0aW9uLiAgVGhlIGxvZyBtdXN0IGJlIGEgcG9z aXRpdmUgaW50ZWdlci4gICovCi0jZGVmaW5lIEVNQUNTX1RJTUVfUkVTT0xVVElPTgkJMTAw MDAwMDAwMAotI2RlZmluZSBMT0cxMF9FTUFDU19USU1FX1JFU09MVVRJT04JOQotCi0vKiBF TUFDU19TRUNTIChUSU1FKSBpcyBhbiBydmFsdWUgZm9yIHRoZSBzZWNvbmRzIGNvbXBvbmVu dCBvZiBUSU1FLgotICAgRU1BQ1NfU0VDU19BRERSICh0aW1lKSBpcyB0aGUgYWRkcmVzcyBv ZiB0aGUgc2Vjb25kcyBjb21wb25lbnQuCi0gICBFTUFDU19TRVRfU0VDUyAoVElNRSwgU0VD T05EUykgc2V0cyB0aGF0IHRvIFNFQ09ORFMuCi0KLSAgIEVNQUNTX05TRUNTIChUSU1FKSBp cyBhbiBydmFsdWUgZm9yIHRoZSBuYW5vc2Vjb25kcyBjb21wb25lbnQgb2YgVElNRS4KLSAg IEVNQUNTX1NFVF9OU0VDUyAoVElNRSwgTkFOT1NFQ09ORFMpIHNldHMgdGhhdCB0byBOQU5P U0VDT05EUy4KLQotICAgRU1BQ1NfU0VUX1NFQ1NfTlNFQ1MgKFRJTUUsIFNFQ1MsIE5TRUNT KSBzZXRzIGJvdGggY29tcG9uZW50cyBvZiBUSU1FLiAgKi8KLSNkZWZpbmUgRU1BQ1NfU0VD Uyh0aW1lKQkJICAgICgodGltZSkudHZfc2VjICArIDApCi0jZGVmaW5lIEVNQUNTX05TRUNT KHRpbWUpCQkgICAgKCh0aW1lKS50dl9uc2VjICsgMCkKLSNkZWZpbmUgRU1BQ1NfU0VDU19B RERSKHRpbWUpCQkgICAgKCYodGltZSkudHZfc2VjKQotI2RlZmluZSBFTUFDU19TRVRfU0VD Uyh0aW1lLCBzZWNvbmRzKQkgICAgKCh0aW1lKS50dl9zZWMgID0gKHNlY29uZHMpKQotI2Rl ZmluZSBFTUFDU19TRVRfTlNFQ1ModGltZSwgbnMpCSAgICAoKHRpbWUpLnR2X25zZWMgPSAo bnMpKQotI2RlZmluZSBFTUFDU19TRVRfU0VDU19OU0VDUyh0aW1lLCBzLCBucykJCQkJXAot ICAoKHZvaWQpIChFTUFDU19TRVRfU0VDUyAodGltZSwgcyksIEVNQUNTX1NFVF9OU0VDUyAo dGltZSwgbnMpKSkKLQotLyogQ29udmVuaWVuY2UgbWFjcm9zIGZvciBvbGRlciBjb2RlIHRo YXQgY291bnRzIG1pY3Jvc2Vjb25kcy4gICovCi0jZGVmaW5lIEVNQUNTX1NFVF9VU0VDUyh0 aW1lLCB1cykgICgodm9pZCkgRU1BQ1NfU0VUX05TRUNTICh0aW1lLCAodXMpICogMTAwMCkp Ci0jZGVmaW5lIEVNQUNTX1NFVF9TRUNTX1VTRUNTKHRpbWUsIHNlY3MsIHVzZWNzKSAJCVwK LSAgKEVNQUNTX1NFVF9TRUNTICh0aW1lLCBzZWNzKSwgRU1BQ1NfU0VUX1VTRUNTICh0aW1l LCB1c2VjcykpCi0KLS8qIFNldCBUSU1FIHRvIGFuIGludmFsaWQgdGltZSBzdGFtcC4gICov Ci0jZGVmaW5lIEVNQUNTX1NFVF9JTlZBTElEX1RJTUUodGltZSkJICAgIEVNQUNTX1NFVF9T RUNTX05TRUNTKHRpbWUsIDAsIC0xKQotCi0vKiBTZXQgVElNRSB0byB0aGUgY3VycmVudCBz eXN0ZW0gdGltZS4gICovCi0jZGVmaW5lIEVNQUNTX0dFVF9USU1FKHRpbWUpCQkgICAgZ2V0 dGltZSAoJih0aW1lKSkKLQotLyogUHV0IGludG8gREVTVCB0aGUgcmVzdWx0IG9mIGFkZGlu ZyBTUkMxIHRvIFNSQzIsIG9yIG9mIHN1YnRyYWN0aW5nCi0gICBTUkMyIGZyb20gU1JDMS4g IE9uIG92ZXJmbG93LCBzdG9yZSBhbiBleHRyZW1hbCB2YWx1ZS4gICovCi0jZGVmaW5lIEVN QUNTX0FERF9USU1FKGRlc3QsIHNyYzEsIHNyYzIpICgoZGVzdCkgPSB0aW1lc3BlY19hZGQg KHNyYzEsIHNyYzIpKQotI2RlZmluZSBFTUFDU19TVUJfVElNRShkZXN0LCBzcmMxLCBzcmMy KSAoKGRlc3QpID0gdGltZXNwZWNfc3ViIChzcmMxLCBzcmMyKSkKK2VudW0geyBFTUFDU19U SU1FX1JFU09MVVRJT04gPSAxMDAwMDAwMDAwIH07CitlbnVtIHsgTE9HMTBfRU1BQ1NfVElN RV9SRVNPTFVUSU9OID0gOSB9OworCisvKiBFTUFDU19TRUNTIChUSU1FKSBpcyB0aGUgc2Vj b25kcyBjb21wb25lbnQgb2YgVElNRS4KKyAgIEVNQUNTX05TRUNTIChUSU1FKSBpcyB0aGUg bmFub3NlY29uZHMgY29tcG9uZW50IG9mIFRJTUUuCisgICBlbWFjc19zZWNzX2FkZHIgKFBU SU1FKSBpcyB0aGUgYWRkcmVzcyBvZiAqUFRJTUUncyBzZWNvbmRzIGNvbXBvbmVudC4gICov CitzdGF0aWMgaW5saW5lIHRpbWVfdCBFTUFDU19TRUNTIChFTUFDU19USU1FIHQpIHsgcmV0 dXJuIHQudHZfc2VjOyB9CitzdGF0aWMgaW5saW5lIGludCBFTUFDU19OU0VDUyAoRU1BQ1Nf VElNRSB0KSB7IHJldHVybiB0LnR2X25zZWM7IH0KK3N0YXRpYyBpbmxpbmUgdGltZV90ICpl bWFjc19zZWNzX2FkZHIgKEVNQUNTX1RJTUUgKnQpIHsgcmV0dXJuICZ0LT50dl9zZWM7IH0K KworLyogUmV0dXJuIGFuIEVtYWNzIHRpbWUgd2l0aCBzZWNvbmRzIFMgYW5kIG5hbm9zZWNv bmRzIE5TLiAgKi8KK3N0YXRpYyBpbmxpbmUgRU1BQ1NfVElNRQorbWFrZV9lbWFjc190aW1l ICh0aW1lX3QgcywgaW50IG5zKQoreworICBFTUFDU19USU1FIHIgPSB7IHMsIG5zIH07Cisg IHJldHVybiByOworfQorCisvKiBSZXR1cm4gYW4gaW52YWxpZCBFbWFjcyB0aW1lLiAgKi8K K3N0YXRpYyBpbmxpbmUgRU1BQ1NfVElNRQoraW52YWxpZF9lbWFjc190aW1lICh2b2lkKQor eworICBFTUFDU19USU1FIHIgPSB7IDAsIC0xIH07CisgIHJldHVybiByOworfQorCisvKiBS ZXR1cm4gY3VycmVudCBzeXN0ZW0gdGltZS4gICovCitzdGF0aWMgaW5saW5lIEVNQUNTX1RJ TUUKK2N1cnJlbnRfZW1hY3NfdGltZSAodm9pZCkKK3sKKyAgRU1BQ1NfVElNRSByOworICBn ZXR0aW1lICgmcik7CisgIHJldHVybiByOworfQorCisvKiBSZXR1cm4gdGhlIHJlc3VsdCBv ZiBhZGRpbmcgQSB0byBCLCBvciBvZiBzdWJ0cmFjdGluZyBCIGZyb20gQS4KKyAgIE9uIG92 ZXJmbG93LCByZXR1cm4gYW4gZXh0cmVtYWwgdmFsdWUuICAqLworc3RhdGljIGlubGluZSBF TUFDU19USU1FCithZGRfZW1hY3NfdGltZSAoRU1BQ1NfVElNRSBhLCBFTUFDU19USU1FIGIp Cit7CisgIHJldHVybiB0aW1lc3BlY19hZGQgKGEsIGIpOworfQorc3RhdGljIGlubGluZSBF TUFDU19USU1FCitzdWJfZW1hY3NfdGltZSAoRU1BQ1NfVElNRSBhLCBFTUFDU19USU1FIGIp Cit7CisgIHJldHVybiB0aW1lc3BlY19zdWIgKGEsIGIpOworfQogCiAvKiBSZXR1cm4gdGhl IHNpZ24gb2YgdGhlIHZhbGlkIHRpbWUgc3RhbXAgVElNRSwgZWl0aGVyIC0xLCAwLCBvciAx LiAgKi8KLSNkZWZpbmUgRU1BQ1NfVElNRV9TSUdOKHRpbWUpCQl0aW1lc3BlY19zaWduICh0 aW1lKQorc3RhdGljIGlubGluZSBpbnQKK0VNQUNTX1RJTUVfU0lHTiAoRU1BQ1NfVElNRSB0 KQoreworICByZXR1cm4gdGltZXNwZWNfc2lnbiAodCk7Cit9CiAKIC8qIFJldHVybiAxIGlm IFRJTUUgaXMgYSB2YWxpZCB0aW1lIHN0YW1wLiAgKi8KLSNkZWZpbmUgRU1BQ1NfVElNRV9W QUxJRF9QKHRpbWUpCSgwIDw9ICh0aW1lKS50dl9uc2VjKQorc3RhdGljIGlubGluZSBpbnQK K0VNQUNTX1RJTUVfVkFMSURfUCAoRU1BQ1NfVElNRSB0KQoreworICByZXR1cm4gMCA8PSB0 LnR2X25zZWM7Cit9CiAKIC8qIENvbnZlcnQgdGhlIGRvdWJsZSBEIHRvIHRoZSBncmVhdGVz dCBFTUFDU19USU1FIG5vdCBncmVhdGVyIHRoYW4gRC4KICAgIE9uIG92ZXJmbG93LCByZXR1 cm4gYW4gZXh0cmVtYWwgdmFsdWUuICBSZXR1cm4gdGhlIG1pbmltdW0KICAgIEVNQUNTX1RJ TUUgaWYgRCBpcyBub3QgYSBudW1iZXIuICAqLwotI2RlZmluZSBFTUFDU19USU1FX0ZST01f RE9VQkxFKGQpCWR0b3RpbWVzcGVjIChkKQorc3RhdGljIGlubGluZSBFTUFDU19USU1FCitF TUFDU19USU1FX0ZST01fRE9VQkxFIChkb3VibGUgZCkKK3sKKyAgcmV0dXJuIGR0b3RpbWVz cGVjIChkKTsKK30KIAogLyogQ29udmVydCB0aGUgRW1hY3MgdGltZSBUIHRvIGFuIGFwcHJv eGltYXRlIGRvdWJsZSB2YWx1ZSBELiAgKi8KLSNkZWZpbmUgRU1BQ1NfVElNRV9UT19ET1VC TEUodCkJCXRpbWVzcGVjdG9kICh0KQorc3RhdGljIGlubGluZSBkb3VibGUKK0VNQUNTX1RJ TUVfVE9fRE9VQkxFIChFTUFDU19USU1FIHQpCit7CisgIHJldHVybiB0aW1lc3BlY3RvZCAo dCk7Cit9CiAKIC8qIGRlZmluZWQgaW4gc3lzZGVwLmMgKi8KIGV4dGVybiBpbnQgc2V0X2Zp bGVfdGltZXMgKGludCwgY29uc3QgY2hhciAqLCBFTUFDU19USU1FLCBFTUFDU19USU1FKTsK QEAgLTExNywxMiArMTQ0LDM1IEBACiAjZW5kaWYKIAogLyogQ29tcGFyZSB0aW1lcyBUMSBh bmQgVDIgZm9yIGVxdWFsaXR5LCBpbmVxdWFsaXR5IGV0Yy4gICovCi0KLSNkZWZpbmUgRU1B Q1NfVElNRV9FUShUMSwgVDIpICh0aW1lc3BlY19jbXAgKFQxLCBUMikgPT0gMCkKLSNkZWZp bmUgRU1BQ1NfVElNRV9ORShUMSwgVDIpICh0aW1lc3BlY19jbXAgKFQxLCBUMikgIT0gMCkK LSNkZWZpbmUgRU1BQ1NfVElNRV9HVChUMSwgVDIpICh0aW1lc3BlY19jbXAgKFQxLCBUMikg PiAwKQotI2RlZmluZSBFTUFDU19USU1FX0dFKFQxLCBUMikgKHRpbWVzcGVjX2NtcCAoVDEs IFQyKSA+PSAwKQotI2RlZmluZSBFTUFDU19USU1FX0xUKFQxLCBUMikgKHRpbWVzcGVjX2Nt cCAoVDEsIFQyKSA8IDApCi0jZGVmaW5lIEVNQUNTX1RJTUVfTEUoVDEsIFQyKSAodGltZXNw ZWNfY21wIChUMSwgVDIpIDw9IDApCitzdGF0aWMgaW5saW5lIGludAorRU1BQ1NfVElNRV9F USAoRU1BQ1NfVElNRSB0MSwgRU1BQ1NfVElNRSB0MikKK3sKKyAgcmV0dXJuIHRpbWVzcGVj X2NtcCAodDEsIHQyKSA9PSAwOworfQorc3RhdGljIGlubGluZSBpbnQKK0VNQUNTX1RJTUVf TkUgKEVNQUNTX1RJTUUgdDEsIEVNQUNTX1RJTUUgdDIpCit7CisgIHJldHVybiB0aW1lc3Bl Y19jbXAgKHQxLCB0MikgIT0gMDsKK30KK3N0YXRpYyBpbmxpbmUgaW50CitFTUFDU19USU1F X0dUIChFTUFDU19USU1FIHQxLCBFTUFDU19USU1FIHQyKQoreworICByZXR1cm4gdGltZXNw ZWNfY21wICh0MSwgdDIpID4gMDsKK30KK3N0YXRpYyBpbmxpbmUgaW50CitFTUFDU19USU1F X0dFIChFTUFDU19USU1FIHQxLCBFTUFDU19USU1FIHQyKQoreworICByZXR1cm4gdGltZXNw ZWNfY21wICh0MSwgdDIpID49IDA7Cit9CitzdGF0aWMgaW5saW5lIGludAorRU1BQ1NfVElN RV9MVCAoRU1BQ1NfVElNRSB0MSwgRU1BQ1NfVElNRSB0MikKK3sKKyAgcmV0dXJuIHRpbWVz cGVjX2NtcCAodDEsIHQyKSA8IDA7Cit9CitzdGF0aWMgaW5saW5lIGludAorRU1BQ1NfVElN RV9MRSAoRU1BQ1NfVElNRSB0MSwgRU1BQ1NfVElNRSB0MikKK3sKKyAgcmV0dXJuIHRpbWVz cGVjX2NtcCAodDEsIHQyKSA8PSAwOworfQogCiAjZW5kaWYgLyogRU1BQ1NfU1lTVElNRV9I ICovCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL3VuZG8uYycKLS0tIHNyYy91bmRvLmMJMjAx Mi0wNy0wNyAwMTo1Nzo0MiArMDAwMAorKysgc3JjL3VuZG8uYwkyMDEyLTA3LTA3IDA0OjUz OjM4ICswMDAwCkBAIC01MTcsOSArNTE3LDkgQEAKIAkJICAgICAgJiYgQ09OU1AgKFhDRFIg KFhDRFIgKFhDRFIgKGNkcikpKSkKIAkJICAgICAgJiYgSU5URUdFUlAgKFhDQVIgKFhDRFIg KFhDRFIgKFhDRFIgKGNkcikpKSkpCiAJCSAgICAgICYmIFhJTlQgKFhDQVIgKFhDRFIgKFhD RFIgKFhDRFIgKGNkcikpKSkpIDwgMCkKLQkJICAgIEVNQUNTX1NFVF9TRUNTX05TRUNTCi0J CSAgICAgIChtb2RfdGltZSwgMCwKLQkJICAgICAgIFhJTlQgKFhDQVIgKFhDRFIgKFhDRFIg KFhDRFIgKGNkcikpKSkpIC8gMTAwMCk7CisJCSAgICBtb2RfdGltZSA9CisJCSAgICAgICht YWtlX2VtYWNzX3RpbWUKKwkJICAgICAgICgwLCBYSU5UIChYQ0FSIChYQ0RSIChYQ0RSIChY Q0RSIChjZHIpKSkpKSAvIDEwMDApKTsKIAkJICBlbHNlCiAJCSAgICBtb2RfdGltZSA9IGxp c3BfdGltZV9hcmd1bWVudCAoY2RyKTsKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy93MzIu YycKLS0tIHNyYy93MzIuYwkyMDEyLTA3LTA1IDA2OjMyOjQxICswMDAwCisrKyBzcmMvdzMy LmMJMjAxMi0wNy0wNyAwNDo1MzozOCArMDAwMApAQCAtMTk2OSw3ICsxOTY5LDcgQEAKICAg ICAgY2hhbmdlZC4gIFdlIGNvdWxkIGZpeCB0aGF0IGJ5IHVzaW5nIEdldFN5c3RlbVRpbWUg YW5kCiAgICAgIEdldFRpbWVab25lSW5mb3JtYXRpb24sIGJ1dCB0aGF0IGRvZXNuJ3Qgc2Vl bSBuZWNlc3NhcnksIHNpbmNlCiAgICAgIEVtYWNzIGFsd2F5cyBjYWxscyBnZXR0aW1lb2Zk YXkgd2l0aCB0aGUgMm5kIGFyZ3VtZW50IE5VTEwgKHNlZQotICAgICBFTUFDU19HRVRfVElN RSkuICAqLworICAgICBjdXJyZW50X2VtYWNzX3RpbWUpLiAgKi8KICAgaWYgKHR6KQogICAg IHsKICAgICAgIHR6LT50el9taW51dGVzd2VzdCA9IHRiLnRpbWV6b25lOwkvKiBtaW51dGVz IHdlc3Qgb2YgR3JlZW53aWNoICAqLwoKPT09IG1vZGlmaWVkIGZpbGUgJ3NyYy94ZGlzcC5j JwotLS0gc3JjL3hkaXNwLmMJMjAxMi0wNy0wNyAxNjozNjowMiArMDAwMAorKysgc3JjL3hk aXNwLmMJMjAxMi0wNy0wNyAyMDowNDowMiArMDAwMApAQCAtMjkyNDIsMTQgKzI5MjQyLDE0 IEBACiAKICAgaWYgKElOVEVHRVJQIChWaG91cmdsYXNzX2RlbGF5KQogICAgICAgJiYgWElO VCAoVmhvdXJnbGFzc19kZWxheSkgPiAwKQotICAgIEVNQUNTX1NFVF9TRUNTX05TRUNTIChk ZWxheSwKLQkJCSAgbWluIChYSU5UIChWaG91cmdsYXNzX2RlbGF5KSwgVFlQRV9NQVhJTVVN ICh0aW1lX3QpKSwKLQkJCSAgMCk7CisgICAgZGVsYXkgPSBtYWtlX2VtYWNzX3RpbWUgKG1p biAoWElOVCAoVmhvdXJnbGFzc19kZWxheSksCisJCQkJICBUWVBFX01BWElNVU0gKHRpbWVf dCkpLAorCQkJICAgICAwKTsKICAgZWxzZSBpZiAoRkxPQVRQIChWaG91cmdsYXNzX2RlbGF5 KQogCSAgICYmIFhGTE9BVF9EQVRBIChWaG91cmdsYXNzX2RlbGF5KSA+IDApCiAgICAgZGVs YXkgPSBFTUFDU19USU1FX0ZST01fRE9VQkxFIChYRkxPQVRfREFUQSAoVmhvdXJnbGFzc19k ZWxheSkpOwogICBlbHNlCi0gICAgRU1BQ1NfU0VUX1NFQ1NfTlNFQ1MgKGRlbGF5LCBERUZB VUxUX0hPVVJHTEFTU19ERUxBWSwgMCk7CisgICAgZGVsYXkgPSBtYWtlX2VtYWNzX3RpbWUg KERFRkFVTFRfSE9VUkdMQVNTX0RFTEFZLCAwKTsKIAogICBob3VyZ2xhc3NfYXRpbWVyID0g c3RhcnRfYXRpbWVyIChBVElNRVJfUkVMQVRJVkUsIGRlbGF5LAogCQkJCSAgIHNob3dfaG91 cmdsYXNzLCBOVUxMKTsKCj09PSBtb2RpZmllZCBmaWxlICdzcmMveGdzZWxlY3QuYycKLS0t IHNyYy94Z3NlbGVjdC5jCTIwMTItMDctMDUgMTg6MzU6NDggKzAwMDAKKysrIHNyYy94Z3Nl bGVjdC5jCTIwMTItMDctMDcgMDQ6NTM6MzggKzAwMDAKQEAgLTg4LDggKzg4LDggQEAKIAog ICBpZiAodG1vX2luX21pbGxpc2VjID49IDApCiAgICAgewotICAgICAgRU1BQ1NfU0VUX1NF Q1NfVVNFQ1MgKHRtbywgdG1vX2luX21pbGxpc2VjLzEwMDAsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgMTAwMCAqICh0bW9faW5fbWlsbGlzZWMgJSAxMDAwKSk7CisgICAgICB0 bW8gPSBtYWtlX2VtYWNzX3RpbWUgKHRtb19pbl9taWxsaXNlYyAvIDEwMDAsCisJCQkgICAg IDEwMDAgKiAxMDAwICogKHRtb19pbl9taWxsaXNlYyAlIDEwMDApKTsKICAgICAgIGlmICgh dGltZW91dCB8fCBFTUFDU19USU1FX0xUICh0bW8sICp0aW1lb3V0KSkKIAl0bW9wID0gJnRt bzsKICAgICB9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3JjL3h0ZXJtLmMnCi0tLSBzcmMveHRl cm0uYwkyMDEyLTA3LTA1IDE4OjM1OjQ4ICswMDAwCisrKyBzcmMveHRlcm0uYwkyMDEyLTA3 LTA3IDA0OjUzOjM4ICswMDAwCkBAIC0zMTY4LDI2ICszMTY4LDIyIEBACiAgICAgICB4X2Zs dXNoIChmKTsKIAogICAgICAgewotCUVNQUNTX1RJTUUgd2FrZXVwLCBkZWxheTsKLQotCUVN QUNTX0dFVF9USU1FICh3YWtldXApOwotCUVNQUNTX1NFVF9TRUNTX05TRUNTIChkZWxheSwg MCwgMTUwICogMTAwMCAqIDEwMDApOwotCUVNQUNTX0FERF9USU1FICh3YWtldXAsIHdha2V1 cCwgZGVsYXkpOworCUVNQUNTX1RJTUUgZGVsYXkgPSBtYWtlX2VtYWNzX3RpbWUgKDAsIDE1 MCAqIDEwMDAgKiAxMDAwKTsKKwlFTUFDU19USU1FIHdha2V1cCA9IGFkZF9lbWFjc190aW1l IChjdXJyZW50X2VtYWNzX3RpbWUgKCksIGRlbGF5KTsKIAogCS8qIEtlZXAgd2FpdGluZyB1 bnRpbCBwYXN0IHRoZSB0aW1lIHdha2V1cCBvciBhbnkgaW5wdXQgZ2V0cwogCSAgIGF2YWls YWJsZS4gICovCiAJd2hpbGUgKCEgZGV0ZWN0X2lucHV0X3BlbmRpbmcgKCkpCiAJICB7Ci0J ICAgIEVNQUNTX1RJTUUgY3VycmVudCwgdGltZW91dDsKLQotCSAgICBFTUFDU19HRVRfVElN RSAoY3VycmVudCk7CisJICAgIEVNQUNTX1RJTUUgY3VycmVudCA9IGN1cnJlbnRfZW1hY3Nf dGltZSAoKTsKKwkgICAgRU1BQ1NfVElNRSB0aW1lb3V0OwogCiAJICAgIC8qIEJyZWFrIGlm IHJlc3VsdCB3b3VsZCBub3QgYmUgcG9zaXRpdmUuICAqLwogCSAgICBpZiAoRU1BQ1NfVElN RV9MRSAod2FrZXVwLCBjdXJyZW50KSkKIAkgICAgICBicmVhazsKIAogCSAgICAvKiBIb3cg bG9uZyBgc2VsZWN0JyBzaG91bGQgd2FpdC4gICovCi0JICAgIEVNQUNTX1NFVF9TRUNTX05T RUNTICh0aW1lb3V0LCAwLCAxMCAqIDEwMDAgKiAxMDAwKTsKKwkgICAgdGltZW91dCA9IG1h a2VfZW1hY3NfdGltZSAoMCwgMTAgKiAxMDAwICogMTAwMCk7CiAKIAkgICAgLyogVHJ5IHRv IHdhaXQgdGhhdCBsb25nLS1idXQgd2UgbWlnaHQgd2FrZSB1cCBzb29uZXIuICAqLwogCSAg ICBwc2VsZWN0ICgwLCBOVUxMLCBOVUxMLCBOVUxMLCAmdGltZW91dCwgTlVMTCk7CkBAIC04 ODEwLDkgKzg4MDYsOCBAQAogCiAgIC8qIFNldCB0aW1lb3V0IHRvIDAuMSBzZWNvbmQuICBI b3BlZnVsbHkgbm90IG5vdGljZWFibGUuCiAgICAgIE1heWJlIGl0IHNob3VsZCBiZSBjb25m aWd1cmFibGUuICAqLwotICBFTUFDU19TRVRfU0VDU19VU0VDUyAodG1vLCAwLCAxMDAwMDAp OwotICBFTUFDU19HRVRfVElNRSAodG1vX2F0KTsKLSAgRU1BQ1NfQUREX1RJTUUgKHRtb19h dCwgdG1vX2F0LCB0bW8pOworICB0bW8gPSBtYWtlX2VtYWNzX3RpbWUgKDAsIDEwMCAqIDEw MDAgKiAxMDAwKTsKKyAgdG1vX2F0ID0gYWRkX2VtYWNzX3RpbWUgKGN1cnJlbnRfZW1hY3Nf dGltZSAoKSwgdG1vKTsKIAogICB3aGlsZSAocGVuZGluZ19ldmVudF93YWl0LmV2ZW50dHlw ZSkKICAgICB7CkBAIC04ODI1LDExICs4ODIwLDExIEBACiAgICAgICBGRF9aRVJPICgmZmRz KTsKICAgICAgIEZEX1NFVCAoZmQsICZmZHMpOwogCi0gICAgICBFTUFDU19HRVRfVElNRSAo dGltZV9ub3cpOworICAgICAgdGltZV9ub3cgPSBjdXJyZW50X2VtYWNzX3RpbWUgKCk7CiAg ICAgICBpZiAoRU1BQ1NfVElNRV9MVCAodG1vX2F0LCB0aW1lX25vdykpCiAJYnJlYWs7CiAK LSAgICAgIEVNQUNTX1NVQl9USU1FICh0bW8sIHRtb19hdCwgdGltZV9ub3cpOworICAgICAg dG1vID0gc3ViX2VtYWNzX3RpbWUgKHRtb19hdCwgdGltZV9ub3cpOwogICAgICAgaWYgKHBz ZWxlY3QgKGZkICsgMSwgJmZkcywgTlVMTCwgTlVMTCwgJnRtbywgTlVMTCkgPT0gMCkKICAg ICAgICAgYnJlYWs7IC8qIFRpbWVvdXQgKi8KICAgICB9CkBAIC0xMDYwMiw5ICsxMDU5Nyw3 IEBACiAgIEJMT0NLX0lOUFVUOwogICBpZiAoIXhfdGltZW91dF9hdGltZXJfYWN0aXZhdGVk X2ZsYWcpCiAgICAgewotICAgICAgRU1BQ1NfVElNRSBpbnRlcnZhbDsKLQotICAgICAgRU1B Q1NfU0VUX1NFQ1NfVVNFQ1MgKGludGVydmFsLCAwLCAxMDAwMDApOworICAgICAgRU1BQ1Nf VElNRSBpbnRlcnZhbCA9IG1ha2VfZW1hY3NfdGltZSAoMCwgMTAwICogMTAwMCAqIDEwMDAp OwogICAgICAgc3RhcnRfYXRpbWVyIChBVElNRVJfUkVMQVRJVkUsIGludGVydmFsLCB4X3By b2Nlc3NfdGltZW91dHMsIDApOwogICAgICAgeF90aW1lb3V0X2F0aW1lcl9hY3RpdmF0ZWRf ZmxhZyA9IDE7CiAgICAgfQo= --------------000705060609090203090308-- From debbugs-submit-bounces@debbugs.gnu.org Tue Jul 10 19:33:09 2012 Received: (at 11875-done) by debbugs.gnu.org; 10 Jul 2012 23:33:09 +0000 Received: from localhost ([127.0.0.1]:60917 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SojvZ-0004Sk-5f for submit@debbugs.gnu.org; Tue, 10 Jul 2012 19:33:09 -0400 Received: from smtp.cs.ucla.edu ([131.179.128.62]:51161) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SojvW-0004Sa-0y for 11875-done@debbugs.gnu.org; Tue, 10 Jul 2012 19:33:06 -0400 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 36125A60001 for <11875-done@debbugs.gnu.org>; Tue, 10 Jul 2012 16:27:42 -0700 (PDT) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ItoqIGvEBMhi for <11875-done@debbugs.gnu.org>; Tue, 10 Jul 2012 16:27:41 -0700 (PDT) Received: from [192.168.1.4] (pool-108-23-119-2.lsanca.fios.verizon.net [108.23.119.2]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id D7EA039E8007 for <11875-done@debbugs.gnu.org>; Tue, 10 Jul 2012 16:27:41 -0700 (PDT) Message-ID: <4FFCBA6E.7030402@cs.ucla.edu> Date: Tue, 10 Jul 2012 16:27:42 -0700 From: Paul Eggert Organization: UCLA Computer Science Department User-Agent: Mozilla/5.0 (X11; Linux i686; rv:13.0) Gecko/20120615 Thunderbird/13.0.1 MIME-Version: 1.0 To: 11875-done@debbugs.gnu.org Subject: EMACS_TIME simplification Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 11875-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) I pushed that patch, along with one change to src/makefile.w32-in privately noted to me by Juanma Barranquero, and am marking this bug as done. From unknown Fri Sep 05 11:50:45 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Wed, 08 Aug 2012 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator