From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.devel Subject: Re: Question about bignum usage Date: Thu, 11 Jul 2024 16:10:00 +0200 Message-ID: <1cbd7603-2185-4066-9e0f-a358daf28af1@cs.ucla.edu> References: <86frt8nn8b.fsf@gnu.org> <86ed8snk0p.fsf@gnu.org> <227390B1-09FC-4FD5-B9E9-2729624A0D13@gmail.com> <868qz0nd81.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------NfwiklpzcLJ7Hl9WQFyp0mbQ" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="11129"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: gerd.moellmann@gmail.com, emacs-devel@gnu.org To: Eli Zaretskii , =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Jul 11 16:11:14 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1sRuVt-0002XM-62 for ged-emacs-devel@m.gmane-mx.org; Thu, 11 Jul 2024 16:11:13 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sRuV5-0007Ew-Do; Thu, 11 Jul 2024 10:10:23 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sRuV2-00076o-Sa for emacs-devel@gnu.org; Thu, 11 Jul 2024 10:10:20 -0400 Original-Received: from mail.cs.ucla.edu ([131.179.128.66]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sRuUu-0001aX-8j; Thu, 11 Jul 2024 10:10:20 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id 630B73C01409F; Thu, 11 Jul 2024 07:10:09 -0700 (PDT) Original-Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10032) with ESMTP id qU99D6wDZAjr; Thu, 11 Jul 2024 07:10:06 -0700 (PDT) Original-Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id E31263C0140A4; Thu, 11 Jul 2024 07:10:05 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu E31263C0140A4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu; s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1720707005; bh=6BaqesiLotth7tqw1ymQvToPWHNeneKuRdqXiXamnoQ=; h=Message-ID:Date:MIME-Version:To:From; b=ThciSIK3+NZbKlJAAdjDtgz+1eIyklKkw75MA6cjmwrD7MUZo0w3Z1SQpdUXxTQ8D spilwhPtT6xxIoG5OJQi/mq0bNoukbcKnEH8nPe2MO82lsezOti4i5qnSNIe5Vo9hF wU5A+n73m0idTHiI3iW8c+Wq+U85Mw6yw9tzWPRg+nJ+ZTS1Jm383QYH7jNrT7fXHB zsAwMijic6A3VWxDjNkGZt8jMib28yVgivULSa3FbEBFVY9sRsOOjqLLFxgNnAG/Lf 0alXbRUVUBlaUrfZ4D6jJgRwW6mcCmZvvEMqUPADj4MHLwOqN05h6zPR/yd9gh5Dv9 B+uFK68FXoBYw== X-Virus-Scanned: amavis at mail.cs.ucla.edu Original-Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavis, port 10026) with ESMTP id hB9KXz3Lz4in; Thu, 11 Jul 2024 07:10:05 -0700 (PDT) Original-Received: from [192.168.1.103] (i15-les02-ntr-176-181-187-105.sfr.lns.abo.bbox.fr [176.181.187.105]) by mail.cs.ucla.edu (Postfix) with ESMTPSA id 290A53C01409F; Thu, 11 Jul 2024 07:10:02 -0700 (PDT) Content-Language: en-US In-Reply-To: <868qz0nd81.fsf@gnu.org> Received-SPF: pass client-ip=131.179.128.66; envelope-from=eggert@cs.ucla.edu; helo=mail.cs.ucla.edu X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:321592 Archived-At: This is a multi-part message in MIME format. --------------NfwiklpzcLJ7Hl9WQFyp0mbQ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable On 6/20/24 12:02, Eli Zaretskii wrote: >> From: Mattias Engdeg=C3=A5rd >> Date: Thu, 20 Jun 2024 11:38:48 +0200 >> >> 20 juni 2024 kl. 09.36 skrev Eli Zaretskii : >> >>> This means we check for expired times every 100 msec, so yes, we will >>> create a lot of bignums. >> >> Right, and a few hundred bignums allocated every second isn't somethin= g even the current GC should have any trouble with. >> >> But it is a bit wasteful, isn't it? We use very short-lived bignums fo= r internal purposes even when the picosecond part is 0, in places like de= code_timer where there should be need to cons anything at all. >=20 > Sure, if that can be avoided, it would be beneficial. Paul, any > suggestions? I installed the attached. 0017 should should address the performance=20 problem with decode_timer. The other patches refactor and address some=20 related issues. As I understand it decode_timer was the locus of the performance issue.=20 If other places are also involved, please let me know. --------------NfwiklpzcLJ7Hl9WQFyp0mbQ Content-Type: text/x-patch; charset=UTF-8; name="0001-Refactor-timefns-more-functionally.patch" Content-Disposition: attachment; filename="0001-Refactor-timefns-more-functionally.patch" Content-Transfer-Encoding: base64 RnJvbSBhN2ZlZTc5YWViYTVlMGQ1YmY4ZDE3YjkyYjkzYmU0YTk0NTE2MjE5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTYXQsIDYgSnVsIDIwMjQgMjE6NTI6MDggKzAyMDAKU3ViamVjdDogW1BBVENI IDAxLzE3XSBSZWZhY3RvciB0aW1lZm5zIG1vcmUgZnVuY3Rpb25hbGx5CgpVc2UgYSBtb3Jl LWZ1bmN0aW9uYWwgc3R5bGUgaW4gdGltZWZucy5jLCByYXRoZXIgdGhhbiBwYXNzaW5nCnBv aW50ZXJzIHRvIG9iamVjdHMgdGhhdCBhcmUgZmlsbGVkIGluLiAgQWx0aG91Z2ggdGhpcyBk b2VzIG5vdApjaGFuZ2UgYmVoYXZpb3IsIGl0IHNob3VsZCBoZWxwIGZ1dHVyZSBpbXByb3Zl bWVudHMgdG8gdGhlIGNvZGUuCiogc3JjL2tleWJvYXJkLmMgKGRlY29kZV90aW1lcik6IFJl dHVybiBhIHBvc3NpYmx5LWludmFsaWQgc3RydWN0CnRpbWVzcGVjIGluc3RlYWQgb2Ygc3Rv cmluZyBhIHRpbWVzcGVjIGludG8gYSBsb2NhdGlvbiBzcGVjaWZpZWQKYnkgYW4gYXJnLCBh bmQgcmV0dXJuaW5nIGJvb2wuICBBbGwgY2FsbGVycyBjaGFuZ2VkLgoqIHNyYy9zeXN0aW1l LmggKHN0cnVjdCBsaXNwX3RpbWUpOiBNb3ZlIGZyb20gaGVyZSB0byBzcmMvdGltZWZucy5j LApzaW5jZSB0aGUgdHlwZSBpcyBwcml2YXRlIHRvIHRpbWVmbnMuYy4KKiBzcmMvdGltZWZu cy5jIChkZWNvZGVfZmxvYXRfdGltZSwgZGVjb2RlX3RpY2tzX2h6KToKUmV0dXJuIHRpbWVz dGFtcCBpbnN0ZWFkIG9mIHN0b3JpbmcgaXQgaW50byBhIGxvY2F0aW9uIHNwZWNpZmllZApi eSBhbiBhcmcuICBBbGwgY2FsbGVycyBjaGFuZ2VkLgooZW51bSBjZm9ybSwgdW5pb24gY190 aW1lLCBzdHJ1Y3QgZXJyX3RpbWUsIHN0cnVjdCBmb3JtX3RpbWUpOgpOZXcgdHlwZXMsIHRv IGFpZCBmdW5jdGlvbmFsIHN0eWxlLgooZGVjb2RlX3RpbWVfY29tcG9uZW50cyk6IFJldHVy biBzdHJ1Y3QgZXJyX3RpbWUKaW5zdGVhZCBvZiByZXR1cm5pbmcgZXJyIGFuZCBzdG9yaW5n IHRpbWVzdGFtcCBpbnRvIGEgbG9jYXRpb24Kc3BlY2lmaWVkIGJ5IGFuIGFyZy4gIE5ldyBh cmcgY2Zvcm0uICBBbGwgY2FsbGVycyBjaGFuZ2VkLgooZGVjb2RlX2xpc3BfdGltZSk6IFJl dHVybiBzdHJ1Y3QgZm9ybV90aW1lIGluc3RlYWQgb2YgcmV0dXJuaW5nCmZvcm0gYW5kIHN0 b3JpbmcgdGltZXN0YW1wIGludG8gYSBsb2NhdGlvbiBzcGVjaWZpZWQgYnkgYW4gYXJnLgpO ZXcgYXJnIGNmb3JtLCByZXBsYWNpbmcgZGVjb2RlX3NlY3Nfb25seS4gIEFsbCBjYWxsZXJz IGNoYW5nZWQuCihsaXN0NF90b190aW1lc3BlYyk6IFJldHVybiBwb3NzaWJseS1pbnZhbGlk IHRpbWVzdGFtcCBpbnN0ZWFkCm9mIHJldHVybmluZyBhIGJvb2wgYW5kIHN0b3JpbmcgdGlt ZXN0YW1wIGludG8gYSBsb2NhdGlvbiBzcGVjaWZpZWQKYnkgYW4gYXJnLiAgQWxsIGNhbGxl cnMgY2hhbmdlZC4KKGxpc3BfdGltZV9zdHJ1Y3QpOiBPbWl0IG5vLWxvbmdlci1uZWVkZWQg YXJnIFBGT1JNLgpBbGwgY2FsbGVycyBjaGFuZ2VkLgotLS0KIHNyYy9rZXlib2FyZC5jIHwg IDIyICsrLS0KIHNyYy9zeXN0aW1lLmggIHwgIDE0ICstLQogc3JjL3RpbWVmbnMuYyAgfCAz MTcgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog MyBmaWxlcyBjaGFuZ2VkLCAxODQgaW5zZXJ0aW9ucygrKSwgMTY5IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9rZXlib2FyZC5jIGIvc3JjL2tleWJvYXJkLmMKaW5kZXggYzc1 ZTgwZDJhMDUuLjQwMjc2YjQxNTdjIDEwMDY0NAotLS0gYS9zcmMva2V5Ym9hcmQuYworKysg Yi9zcmMva2V5Ym9hcmQuYwpAQCAtNDY0NiwyMCArNDY0NiwyMSBAQCB0aW1lcl9yZXN1bWVf aWRsZSAodm9pZCkKICAgIC4uLikuICBFYWNoIGVsZW1lbnQgaGFzIHRoZSBmb3JtIChGVU4g LiBBUkdTKS4gICovCiBMaXNwX09iamVjdCBwZW5kaW5nX2Z1bmNhbGxzOwogCi0vKiBSZXR1 cm4gdHJ1ZSBpZiBUSU1FUiBpcyBhIHZhbGlkIHRpbWVyLCBwbGFjaW5nIGl0cyB2YWx1ZSBp bnRvICpSRVNVTFQuICAqLwotc3RhdGljIGJvb2wKLWRlY29kZV90aW1lciAoTGlzcF9PYmpl Y3QgdGltZXIsIHN0cnVjdCB0aW1lc3BlYyAqcmVzdWx0KQorLyogUmV0dXJuIHRoZSB2YWx1 ZSBvZiBUSU1FUiBpZiBpdCBpcyBhIHZhbGlkIHRpbWVyLCBhbiBpbnZhbGlkIHN0cnVjdAor ICAgdGltZXNwZWMgb3RoZXJ3aXNlLiAgKi8KK3N0YXRpYyBzdHJ1Y3QgdGltZXNwZWMKK2Rl Y29kZV90aW1lciAoTGlzcF9PYmplY3QgdGltZXIpCiB7CiAgIExpc3BfT2JqZWN0ICp2ZWM7 CiAKICAgaWYgKCEgKFZFQ1RPUlAgKHRpbWVyKSAmJiBBU0laRSAodGltZXIpID09IDEwKSkK LSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGludmFsaWRfdGltZXNwZWMgKCk7CiAg IHZlYyA9IFhWRUNUT1IgKHRpbWVyKS0+Y29udGVudHM7CiAgIGlmICghIE5JTFAgKHZlY1sw XSkpCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpbnZhbGlkX3RpbWVzcGVjICgp OwogICBpZiAoISBGSVhOVU1QICh2ZWNbMl0pKQotICAgIHJldHVybiBmYWxzZTsKLSAgcmV0 dXJuIGxpc3Q0X3RvX3RpbWVzcGVjICh2ZWNbMV0sIHZlY1syXSwgdmVjWzNdLCB2ZWNbOF0s IHJlc3VsdCk7CisgICAgcmV0dXJuIGludmFsaWRfdGltZXNwZWMgKCk7CisgIHJldHVybiBs aXN0NF90b190aW1lc3BlYyAodmVjWzFdLCB2ZWNbMl0sIHZlY1szXSwgdmVjWzhdKTsKIH0K IAogCkBAIC00NzA2LDcgKzQ3MDcsNiBAQCB0aW1lcl9jaGVja18yIChMaXNwX09iamVjdCB0 aW1lcnMsIExpc3BfT2JqZWN0IGlkbGVfdGltZXJzKQogICB3aGlsZSAoQ09OU1AgKHRpbWVy cykgfHwgQ09OU1AgKGlkbGVfdGltZXJzKSkKICAgICB7CiAgICAgICBMaXNwX09iamVjdCB0 aW1lciA9IFFuaWwsIGlkbGVfdGltZXIgPSBRbmlsOwotICAgICAgc3RydWN0IHRpbWVzcGVj IHRpbWVyX3RpbWUsIGlkbGVfdGltZXJfdGltZTsKICAgICAgIHN0cnVjdCB0aW1lc3BlYyBk aWZmZXJlbmNlOwogICAgICAgc3RydWN0IHRpbWVzcGVjIHRpbWVyX2RpZmZlcmVuY2UgPSBp bnZhbGlkX3RpbWVzcGVjICgpOwogICAgICAgc3RydWN0IHRpbWVzcGVjIGlkbGVfdGltZXJf ZGlmZmVyZW5jZSA9IGludmFsaWRfdGltZXNwZWMgKCk7CkBAIC00NzIwLDcgKzQ3MjAsOCBA QCB0aW1lcl9jaGVja18yIChMaXNwX09iamVjdCB0aW1lcnMsIExpc3BfT2JqZWN0IGlkbGVf dGltZXJzKQogICAgICAgaWYgKENPTlNQICh0aW1lcnMpKQogCXsKIAkgIHRpbWVyID0gWENB UiAodGltZXJzKTsKLQkgIGlmICghIGRlY29kZV90aW1lciAodGltZXIsICZ0aW1lcl90aW1l KSkKKwkgIHN0cnVjdCB0aW1lc3BlYyB0aW1lcl90aW1lID0gZGVjb2RlX3RpbWVyICh0aW1l cik7CisJICBpZiAoISB0aW1lc3BlY192YWxpZF9wICh0aW1lcl90aW1lKSkKIAkgICAgewog CSAgICAgIHRpbWVycyA9IFhDRFIgKHRpbWVycyk7CiAJICAgICAgY29udGludWU7CkBAIC00 NzM3LDcgKzQ3MzgsOCBAQCB0aW1lcl9jaGVja18yIChMaXNwX09iamVjdCB0aW1lcnMsIExp c3BfT2JqZWN0IGlkbGVfdGltZXJzKQogICAgICAgaWYgKENPTlNQIChpZGxlX3RpbWVycykp CiAJewogCSAgaWRsZV90aW1lciA9IFhDQVIgKGlkbGVfdGltZXJzKTsKLQkgIGlmICghIGRl Y29kZV90aW1lciAoaWRsZV90aW1lciwgJmlkbGVfdGltZXJfdGltZSkpCisJICBzdHJ1Y3Qg dGltZXNwZWMgaWRsZV90aW1lcl90aW1lID0gZGVjb2RlX3RpbWVyIChpZGxlX3RpbWVyKTsK KwkgIGlmICghIHRpbWVzcGVjX3ZhbGlkX3AgKGlkbGVfdGltZXJfdGltZSkpCiAJICAgIHsK IAkgICAgICBpZGxlX3RpbWVycyA9IFhDRFIgKGlkbGVfdGltZXJzKTsKIAkgICAgICBjb250 aW51ZTsKZGlmZiAtLWdpdCBhL3NyYy9zeXN0aW1lLmggYi9zcmMvc3lzdGltZS5oCmluZGV4 IGZjOTNlYTAzMjMzLi4xMzUzYzcxNThkMCAxMDA2NDQKLS0tIGEvc3JjL3N5c3RpbWUuaAor KysgYi9zcmMvc3lzdGltZS5oCkBAIC03NywyMiArNzcsMTIgQEAgdGltZXNwZWNfdmFsaWRf cCAoc3RydWN0IHRpbWVzcGVjIHQpCiAgICAoSEkgPDwgTE9fVElNRV9CSVRTKSArIExPICsg VVMgLyAxZTYgKyBQUyAvIDFlMTIuICAqLwogZW51bSB7IExPX1RJTUVfQklUUyA9IDE2IH07 CiAKLS8qIENvbXBvbmVudHMgb2YgYSBuZXctZm9ybWF0IExpc3AgdGltZXN0YW1wLiAgKi8K LXN0cnVjdCBsaXNwX3RpbWUKLXsKLSAgLyogQ2xvY2sgY291bnQgYXMgYSBMaXNwIGludGVn ZXIuICAqLwotICBMaXNwX09iamVjdCB0aWNrczsKLQotICAvKiBDbG9jayBmcmVxdWVuY3kg KHRpY2tzIHBlciBzZWNvbmQpIGFzIGEgcG9zaXRpdmUgTGlzcCBpbnRlZ2VyLiAgKi8KLSAg TGlzcF9PYmplY3QgaHo7Ci19OwotCiAvKiBkZWZpbmVkIGluIHRpbWVmbnMuYyAqLwogZXh0 ZXJuIHN0cnVjdCB0aW1ldmFsIG1ha2VfdGltZXZhbCAoc3RydWN0IHRpbWVzcGVjKSBBVFRS SUJVVEVfQ09OU1Q7CiBleHRlcm4gTGlzcF9PYmplY3QgbWFrZV9saXNwX3RpbWUgKHN0cnVj dCB0aW1lc3BlYyk7CiBleHRlcm4gTGlzcF9PYmplY3QgdGltZXNwZWNfdG9fbGlzcCAoc3Ry dWN0IHRpbWVzcGVjKTsKLWV4dGVybiBib29sIGxpc3Q0X3RvX3RpbWVzcGVjIChMaXNwX09i amVjdCwgTGlzcF9PYmplY3QsIExpc3BfT2JqZWN0LAotCQkJICAgICAgIExpc3BfT2JqZWN0 LCBzdHJ1Y3QgdGltZXNwZWMgKik7CitleHRlcm4gc3RydWN0IHRpbWVzcGVjIGxpc3Q0X3Rv X3RpbWVzcGVjIChMaXNwX09iamVjdCwgTGlzcF9PYmplY3QsCisJCQkJCSAgTGlzcF9PYmpl Y3QsIExpc3BfT2JqZWN0KTsKIGV4dGVybiBzdHJ1Y3QgdGltZXNwZWMgbGlzcF90aW1lX2Fy Z3VtZW50IChMaXNwX09iamVjdCk7CiBleHRlcm4gZG91YmxlIGZsb2F0X3RpbWUgKExpc3Bf T2JqZWN0KTsKIGV4dGVybiB2b2lkIGluaXRfdGltZWZucyAodm9pZCk7CmRpZmYgLS1naXQg YS9zcmMvdGltZWZucy5jIGIvc3JjL3RpbWVmbnMuYwppbmRleCA3NDZlNDIyZmZiNi4uNzA5 NjFjMWE1NjAgMTAwNjQ0Ci0tLSBhL3NyYy90aW1lZm5zLmMKKysrIGIvc3JjL3RpbWVmbnMu YwpAQCAtNDAwLDEwICs0MDAsMjEgQEAgbG9fdGltZSAodGltZV90IHQpCiAgICBlcXVhbHMg RkxUX1JBRElYKipQLiAgKi8KIHN0YXRpYyBMaXNwX09iamVjdCBmbHRfcmFkaXhfcG93ZXI7 CiAKLS8qIENvbnZlcnQgdGhlIGZpbml0ZSBudW1iZXIgVCBpbnRvIGFuIEVtYWNzIHRpbWUg KlJFU1VMVCwgdHJ1bmNhdGluZworLyogQ29tcG9uZW50cyBvZiBhIExpc3AgdGltZXN0YW1w IChUSUNLUyAuIEhaKS4gIFVzaW5nIHRoaXMgQyBzdHJ1Y3QgY2FuCisgICBhdm9pZCB0aGUg Y29uc2luZyBvdmVyaGVhZCBvZiBjcmVhdGluZyAoVElDS1MgLiBIWikuICAqLworc3RydWN0 IGxpc3BfdGltZQoreworICAvKiBDbG9jayBjb3VudCBhcyBhIExpc3AgaW50ZWdlci4gICov CisgIExpc3BfT2JqZWN0IHRpY2tzOworCisgIC8qIENsb2NrIGZyZXF1ZW5jeSAodGlja3Mg cGVyIHNlY29uZCkgYXMgYSBwb3NpdGl2ZSBMaXNwIGludGVnZXIuICAqLworICBMaXNwX09i amVjdCBoejsKK307CisKKy8qIENvbnZlcnQgdGhlIGZpbml0ZSBudW1iZXIgVCBpbnRvIGFu IEVtYWNzIHRpbWUsIHRydW5jYXRpbmcKICAgIHRvd2FyZCBtaW51cyBpbmZpbml0eS4gIFNp Z25hbCBhbiBlcnJvciBpZiB1bnN1Y2Nlc3NmdWwuICAqLwotc3RhdGljIHZvaWQKLWRlY29k ZV9mbG9hdF90aW1lIChkb3VibGUgdCwgc3RydWN0IGxpc3BfdGltZSAqcmVzdWx0KQorc3Rh dGljIHN0cnVjdCBsaXNwX3RpbWUKK2RlY29kZV9mbG9hdF90aW1lIChkb3VibGUgdCkKIHsK ICAgTGlzcF9PYmplY3QgdGlja3MsIGh6OwogICBpZiAodCA9PSAwKQpAQCAtNDQ3LDggKzQ1 OCw3IEBAIGRlY29kZV9mbG9hdF90aW1lIChkb3VibGUgdCwgc3RydWN0IGxpc3BfdGltZSAq cmVzdWx0KQogCSAgQVNFVCAoZmx0X3JhZGl4X3Bvd2VyLCBzY2FsZSwgaHopOwogCX0KICAg ICB9Ci0gIHJlc3VsdC0+dGlja3MgPSB0aWNrczsKLSAgcmVzdWx0LT5oeiA9IGh6OworICBy ZXR1cm4gKHN0cnVjdCBsaXNwX3RpbWUpIHsgLnRpY2tzID0gdGlja3MsIC5oeiA9IGh6IH07 CiB9CiAKIC8qIE1ha2UgYSA0LWVsZW1lbnQgdGltZXN0YW1wIChISSBMTyBVUyBQUykgZnJv bSBUSUNLUyBhbmQgSFouCkBAIC02ODgsMjggKzY5OCwzOSBAQCBmcmFjX3RvX2RvdWJsZSAo TGlzcF9PYmplY3QgbnVtZXJhdG9yLCBMaXNwX09iamVjdCBkZW5vbWluYXRvcikKICAgcmV0 dXJuIHNjYWxibiAobXB6X2dldF9kICgqcSksIC1zY2FsZSk7CiB9CiAKLS8qIEZyb20gYSB2 YWxpZCB0aW1lc3RhbXAgKFRJQ0tTIC4gSFopLCBnZW5lcmF0ZSB0aGUgY29ycmVzcG9uZGlu ZwotICAgdGltZSB2YWx1ZXMuCisvKiBDIHRpbWVzdGFtcCBmb3Jtcy4gIFRoaXMgZW51bSBp cyBwYXNzZWQgdG8gY29udmVyc2lvbiBmdW5jdGlvbnMgdG8KKyAgIHNwZWNpZnkgdGhlIGRl c2lyZWQgQyB0aW1lc3RhbXAgZm9ybS4gICovCitlbnVtIGNmb3JtCisgIHsKKyAgICBDRk9S TV9USUNLU19IWiwgLyogc3RydWN0IGxpc3BfdGltZSAqLworICAgIENGT1JNX1NFQ1NfT05M WSwgLyogc3RydWN0IGxpc3BfdGltZSBidXQgSFogaXMgMSAqLworICAgIENGT1JNX0RPVUJM RSAvKiBkb3VibGUgKi8KKyAgfTsKIAotICAgSWYgUkVTVUxUIGlzIG5vdCBudWxsLCBzdG9y ZSBpbnRvICpSRVNVTFQgdGhlIGNvbnZlcnRlZCB0aW1lLgotICAgT3RoZXJ3aXNlLCBzdG9y ZSBpbnRvICpEUkVTVUxUIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSB0aGUKLSAgIHN0 YXJ0IG9mIHRoZSBQT1NJWCBFcG9jaC4KKy8qIEEgQyB0aW1lc3RhbXAgaW4gb25lIG9mIHRo ZSBmb3JtcyBzcGVjaWZpZWQgYnkgZW51bSBjZm9ybS4gICovCit1bmlvbiBjX3RpbWUKK3sK KyAgc3RydWN0IGxpc3BfdGltZSBsdDsKKyAgZG91YmxlIGQ7Cit9OwogCi0gICBSZXR1cm4g emVybywgd2hpY2ggaW5kaWNhdGVzIHN1Y2Nlc3MuICAqLwotc3RhdGljIGludAotZGVjb2Rl X3RpY2tzX2h6IChMaXNwX09iamVjdCB0aWNrcywgTGlzcF9PYmplY3QgaHosCi0JCSBzdHJ1 Y3QgbGlzcF90aW1lICpyZXN1bHQsIGRvdWJsZSAqZHJlc3VsdCkKKy8qIEZyb20gYSB2YWxp ZCB0aW1lc3RhbXAgKFRJQ0tTIC4gSFopLCBnZW5lcmF0ZSB0aGUgY29ycmVzcG9uZGluZwor ICAgdGltZSB2YWx1ZSBpbiBDRk9STSBmb3JtLiAgKi8KK3N0YXRpYyB1bmlvbiBjX3RpbWUK K2RlY29kZV90aWNrc19oeiAoTGlzcF9PYmplY3QgdGlja3MsIExpc3BfT2JqZWN0IGh6LCBl bnVtIGNmb3JtIGNmb3JtKQogewotICBpZiAocmVzdWx0KQotICAgIHsKLSAgICAgIHJlc3Vs dC0+dGlja3MgPSB0aWNrczsKLSAgICAgIHJlc3VsdC0+aHogPSBoejsKLSAgICB9Ci0gIGVs c2UKLSAgICAqZHJlc3VsdCA9IGZyYWNfdG9fZG91YmxlICh0aWNrcywgaHopOwotICByZXR1 cm4gMDsKKyAgcmV0dXJuIChjZm9ybSA9PSBDRk9STV9ET1VCTEUKKwkgID8gKHVuaW9uIGNf dGltZSkgeyAuZCA9IGZyYWNfdG9fZG91YmxlICh0aWNrcywgaHopIH0KKwkgIDogKHVuaW9u IGNfdGltZSkgeyAubHQgPSB7IC50aWNrcyA9IHRpY2tzLCAuaHogPSBoeiB9IH0pOwogfQog CisvKiBBbiAoZXJyb3IgbnVtYmVyLCBDIHRpbWVzdGFtcCkgcGFpci4gICovCitzdHJ1Y3Qg ZXJyX3RpbWUKK3sKKyAgaW50IGVycjsKKyAgdW5pb24gY190aW1lIHRpbWU7Cit9OworCiAv KiBMaXNwIHRpbWVzdGFtcCBjbGFzc2lmaWNhdGlvbi4gICovCiBlbnVtIHRpbWVmb3JtCiAg IHsKQEAgLTcyMywxMTEgKzc0NCwxMTcgQEAgZGVjb2RlX3RpY2tzX2h6IChMaXNwX09iamVj dCB0aWNrcywgTGlzcF9PYmplY3QgaHosCiAgIH07CiAKIC8qIEZyb20gdGhlIG5vbi1mbG9h dCBmb3JtIEZPUk0gYW5kIHRoZSB0aW1lIGNvbXBvbmVudHMgSElHSCwgTE9XLCBVU0VDCi0g ICBhbmQgUFNFQywgZ2VuZXJhdGUgdGhlIGNvcnJlc3BvbmRpbmcgdGltZSB2YWx1ZS4gIElm IExPVyBpcworICAgYW5kIFBTRUMsIGdlbmVyYXRlIHRoZSBjb3JyZXNwb25kaW5nIHRpbWUg dmFsdWUgaW4gQ0ZPUk0gZm9ybS4gIElmIExPVyBpcwogICAgZmxvYXRpbmcgcG9pbnQsIHRo ZSBvdGhlciBjb21wb25lbnRzIHNob3VsZCBiZSB6ZXJvIGFuZCBGT1JNIHNob3VsZAogICAg bm90IGJlIFRJTUVGT1JNX1RJQ0tTX0haLgogCi0gICBJZiBSRVNVTFQgaXMgbm90IG51bGws IHN0b3JlIGludG8gKlJFU1VMVCB0aGUgY29udmVydGVkIHRpbWUuCi0gICBPdGhlcndpc2Us IHN0b3JlIGludG8gKkRSRVNVTFQgdGhlIG51bWJlciBvZiBzZWNvbmRzIHNpbmNlIHRoZQot ICAgc3RhcnQgb2YgdGhlIFBPU0lYIEVwb2NoLiAgVW5zdWNjZXNzZnVsIGNhbGxzIG1heSBv ciBtYXkgbm90IHN0b3JlCi0gICByZXN1bHRzLgotCi0gICBSZXR1cm4gemVybyBpZiBzdWNj ZXNzZnVsLCBhbiBlcnJvciBudW1iZXIgb3RoZXJ3aXNlLiAgKi8KLXN0YXRpYyBpbnQKKyAg IFJldHVybiBhICgwLCB2YWxpZCB0aW1lc3RhbXApIHBhaXIgaWYgc3VjY2Vzc2Z1bCwgYW4g KGVycm9yIG51bWJlciwKKyAgIHVuc3BlY2lmaWVkIHRpbWVzdGFtcCkgcGFpciBvdGhlcndp c2UuICAqLworc3RhdGljIHN0cnVjdCBlcnJfdGltZQogZGVjb2RlX3RpbWVfY29tcG9uZW50 cyAoZW51bSB0aW1lZm9ybSBmb3JtLAogCQkJTGlzcF9PYmplY3QgaGlnaCwgTGlzcF9PYmpl Y3QgbG93LAogCQkJTGlzcF9PYmplY3QgdXNlYywgTGlzcF9PYmplY3QgcHNlYywKLQkJCXN0 cnVjdCBsaXNwX3RpbWUgKnJlc3VsdCwgZG91YmxlICpkcmVzdWx0KQorCQkJZW51bSBjZm9y bSBjZm9ybSkKIHsKKyAgTGlzcF9PYmplY3QgdGlja3MsIGh6OworCiAgIHN3aXRjaCAoZm9y bSkKICAgICB7CiAgICAgY2FzZSBUSU1FRk9STV9JTlZBTElEOgotICAgICAgcmV0dXJuIEVJ TlZBTDsKKyAgICAgIHJldHVybiAoc3RydWN0IGVycl90aW1lKSB7IC5lcnIgPSBFSU5WQUwg fTsKIAogICAgIGNhc2UgVElNRUZPUk1fVElDS1NfSFo6Ci0gICAgICBpZiAoSU5URUdFUlAg KGhpZ2gpCi0JICAmJiAhTklMUCAoRm5hdG51bXAgKGxvdykpICYmICFCQVNFX0VRIChsb3cs IG1ha2VfZml4bnVtICgwKSkpCi0JcmV0dXJuIGRlY29kZV90aWNrc19oeiAoaGlnaCwgbG93 LCByZXN1bHQsIGRyZXN1bHQpOwotICAgICAgcmV0dXJuIEVJTlZBTDsKKyAgICAgIGlmICgh IChJTlRFR0VSUCAoaGlnaCkKKwkgICAgICYmICFOSUxQIChGbmF0bnVtcCAobG93KSkgJiYg IUJBU0VfRVEgKGxvdywgbWFrZV9maXhudW0gKDApKSkpCisJcmV0dXJuIChzdHJ1Y3QgZXJy X3RpbWUpIHsgLmVyciA9IEVJTlZBTCB9OworICAgICAgdGlja3MgPSBoaWdoOworICAgICAg aHogPSBsb3c7CisgICAgICBicmVhazsKIAogICAgIGNhc2UgVElNRUZPUk1fRkxPQVQ6CiAg ICAgICBlYXNzdW1lIChmYWxzZSk7CiAKICAgICBjYXNlIFRJTUVGT1JNX05JTDoKLSAgICAg IHJldHVybiBkZWNvZGVfdGlja3NfaHogKHRpbWVzcGVjX3RpY2tzIChjdXJyZW50X3RpbWVz cGVjICgpKSwKLQkJCSAgICAgIHRpbWVzcGVjX2h6LCByZXN1bHQsIGRyZXN1bHQpOwotCi0g ICAgZGVmYXVsdDoKKyAgICAgIHRpY2tzID0gdGltZXNwZWNfdGlja3MgKGN1cnJlbnRfdGlt ZXNwZWMgKCkpOworICAgICAgaHogPSB0aW1lc3BlY19oejsKICAgICAgIGJyZWFrOwotICAg IH0KLQotICBpZiAoISAoSU5URUdFUlAgKGhpZ2gpICYmIElOVEVHRVJQIChsb3cpCi0JICYm IEZJWE5VTVAgKHVzZWMpICYmIEZJWE5VTVAgKHBzZWMpKSkKLSAgICByZXR1cm4gRUlOVkFM OwotICBFTUFDU19JTlQgdXMgPSBYRklYTlVNICh1c2VjKTsKLSAgRU1BQ1NfSU5UIHBzID0g WEZJWE5VTSAocHNlYyk7Ci0KLSAgLyogTm9ybWFsaXplIG91dC1vZi1yYW5nZSBsb3dlci1v cmRlciBjb21wb25lbnRzIGJ5IGNhcnJ5aW5nCi0gICAgIGVhY2ggb3ZlcmZsb3cgaW50byB0 aGUgbmV4dCBoaWdoZXItb3JkZXIgY29tcG9uZW50LiAgKi8KLSAgdXMgKz0gcHMgLyAxMDAw MDAwIC0gKHBzICUgMTAwMDAwMCA8IDApOwotICBtcHpfdCAqcyA9ICZtcHpbMV07Ci0gIG1w el9zZXRfaW50bWF4ICgqcywgdXMgLyAxMDAwMDAwIC0gKHVzICUgMTAwMDAwMCA8IDApKTsK LSAgbXB6X2FkZCAoKnMsICpzLCAqYmlnbnVtX2ludGVnZXIgKCZtcHpbMF0sIGxvdykpOwot ICBtcHpfYWRkbXVsX3VpICgqcywgKmJpZ251bV9pbnRlZ2VyICgmbXB6WzBdLCBoaWdoKSwg MSA8PCBMT19USU1FX0JJVFMpOwotICBwcyA9IHBzICUgMTAwMDAwMCArIDEwMDAwMDAgKiAo cHMgJSAxMDAwMDAwIDwgMCk7Ci0gIHVzID0gdXMgJSAxMDAwMDAwICsgMTAwMDAwMCAqICh1 cyAlIDEwMDAwMDAgPCAwKTsKIAotICBMaXNwX09iamVjdCBoejsKLSAgc3dpdGNoIChmb3Jt KQotICAgIHsKLSAgICBjYXNlIFRJTUVGT1JNX0hJX0xPOgotICAgICAgLyogRmxvYXRzIGFu ZCBuaWwgd2VyZSBoYW5kbGVkIGFib3ZlLCBzbyBpdCB3YXMgYW4gaW50ZWdlci4gICovCi0g ICAgICBtcHpfc3dhcCAobXB6WzBdLCAqcyk7Ci0gICAgICBoeiA9IG1ha2VfZml4bnVtICgx KTsKLSAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBUSU1FRk9STV9ISV9MT19VUzoKLSAgICAg IG1wel9zZXRfdWkgKG1welswXSwgdXMpOwotICAgICAgbXB6X2FkZG11bF91aSAobXB6WzBd LCAqcywgMTAwMDAwMCk7Ci0gICAgICBoeiA9IG1ha2VfZml4bnVtICgxMDAwMDAwKTsKLSAg ICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICBpZiAoISAoSU5URUdFUlAgKGhpZ2gp ICYmIElOVEVHRVJQIChsb3cpCisJICAgICAmJiBGSVhOVU1QICh1c2VjKSAmJiBGSVhOVU1Q IChwc2VjKSkpCisJcmV0dXJuIChzdHJ1Y3QgZXJyX3RpbWUpIHsgLmVyciA9IEVJTlZBTCB9 OwogCi0gICAgY2FzZSBUSU1FRk9STV9ISV9MT19VU19QUzoKICAgICAgIHsKLQkjaWYgRkFT VEVSX1RJTUVGTlMgJiYgVFJJTExJT04gPD0gVUxPTkdfTUFYCi0JICB1bnNpZ25lZCBsb25n IGkgPSB1czsKLQkgIG1wel9zZXRfdWkgKG1welswXSwgaSAqIDEwMDAwMDAgKyBwcyk7Ci0J ICBtcHpfYWRkbXVsX3VpIChtcHpbMF0sICpzLCBUUklMTElPTik7Ci0JI2Vsc2UKLQkgIGlu dG1heF90IGkgPSB1czsKLQkgIG1wel9zZXRfaW50bWF4IChtcHpbMF0sIGkgKiAxMDAwMDAw ICsgcHMpOwotCSAgbXB6X2FkZG11bCAobXB6WzBdLCAqcywgenRyaWxsaW9uKTsKLQkjZW5k aWYKLQloeiA9IHRyaWxsaW9uOworCUVNQUNTX0lOVCB1cyA9IFhGSVhOVU0gKHVzZWMpOwor CUVNQUNTX0lOVCBwcyA9IFhGSVhOVU0gKHBzZWMpOworCisJLyogTm9ybWFsaXplIG91dC1v Zi1yYW5nZSBsb3dlci1vcmRlciBjb21wb25lbnRzIGJ5IGNhcnJ5aW5nCisJICAgZWFjaCBv dmVyZmxvdyBpbnRvIHRoZSBuZXh0IGhpZ2hlci1vcmRlciBjb21wb25lbnQuICAqLworCXVz ICs9IHBzIC8gMTAwMDAwMCAtIChwcyAlIDEwMDAwMDAgPCAwKTsKKwltcHpfdCAqcyA9ICZt cHpbMV07CisJbXB6X3NldF9pbnRtYXggKCpzLCB1cyAvIDEwMDAwMDAgLSAodXMgJSAxMDAw MDAwIDwgMCkpOworCW1wel9hZGQgKCpzLCAqcywgKmJpZ251bV9pbnRlZ2VyICgmbXB6WzBd LCBsb3cpKTsKKwltcHpfYWRkbXVsX3VpICgqcywgKmJpZ251bV9pbnRlZ2VyICgmbXB6WzBd LCBoaWdoKSwgMSA8PCBMT19USU1FX0JJVFMpOworCXBzID0gcHMgJSAxMDAwMDAwICsgMTAw MDAwMCAqIChwcyAlIDEwMDAwMDAgPCAwKTsKKwl1cyA9IHVzICUgMTAwMDAwMCArIDEwMDAw MDAgKiAodXMgJSAxMDAwMDAwIDwgMCk7CisKKwlzd2l0Y2ggKGZvcm0pCisJICB7CisJICBj YXNlIFRJTUVGT1JNX0hJX0xPOgorCSAgICAvKiBGbG9hdHMgYW5kIG5pbCB3ZXJlIGhhbmRs ZWQgYWJvdmUsIHNvIGl0IHdhcyBhbiBpbnRlZ2VyLiAgKi8KKwkgICAgbXB6X3N3YXAgKG1w elswXSwgKnMpOworCSAgICBoeiA9IG1ha2VfZml4bnVtICgxKTsKKwkgICAgYnJlYWs7CisK KwkgIGNhc2UgVElNRUZPUk1fSElfTE9fVVM6CisJICAgIG1wel9zZXRfdWkgKG1welswXSwg dXMpOworCSAgICBtcHpfYWRkbXVsX3VpIChtcHpbMF0sICpzLCAxMDAwMDAwKTsKKwkgICAg aHogPSBtYWtlX2ZpeG51bSAoMTAwMDAwMCk7CisJICAgIGJyZWFrOworCisJICBjYXNlIFRJ TUVGT1JNX0hJX0xPX1VTX1BTOgorCSAgICB7CisJICAgICAgI2lmIEZBU1RFUl9USU1FRk5T ICYmIFRSSUxMSU9OIDw9IFVMT05HX01BWAorCQl1bnNpZ25lZCBsb25nIGkgPSB1czsKKwkJ bXB6X3NldF91aSAobXB6WzBdLCBpICogMTAwMDAwMCArIHBzKTsKKwkJbXB6X2FkZG11bF91 aSAobXB6WzBdLCAqcywgVFJJTExJT04pOworCSAgICAgICNlbHNlCisJCWludG1heF90IGkg PSB1czsKKwkJbXB6X3NldF9pbnRtYXggKG1welswXSwgaSAqIDEwMDAwMDAgKyBwcyk7CisJ CW1wel9hZGRtdWwgKG1welswXSwgKnMsIHp0cmlsbGlvbik7CisJICAgICAgI2VuZGlmCisJ ICAgICAgaHogPSB0cmlsbGlvbjsKKwkgICAgfQorCSAgICBicmVhazsKKworCSAgZGVmYXVs dDoKKwkgICAgZWFzc3VtZSAoZmFsc2UpOworCSAgfQorCXRpY2tzID0gbWFrZV9pbnRlZ2Vy X21weiAoKTsKICAgICAgIH0KICAgICAgIGJyZWFrOwotCi0gICAgZGVmYXVsdDoKLSAgICAg IGVhc3N1bWUgKGZhbHNlKTsKICAgICB9CiAKLSAgcmV0dXJuIGRlY29kZV90aWNrc19oeiAo bWFrZV9pbnRlZ2VyX21weiAoKSwgaHosIHJlc3VsdCwgZHJlc3VsdCk7CisgIHJldHVybiAo c3RydWN0IGVycl90aW1lKSB7IC50aW1lID0gZGVjb2RlX3RpY2tzX2h6ICh0aWNrcywgaHos IGNmb3JtKSB9OwogfQogCisvKiBBIChMaXNwIHRpbWVmb3JtLCBDIHRpbWVzdGFtcCkgcGFp ci4gICovCitzdHJ1Y3QgZm9ybV90aW1lCit7CisgIGVudW0gdGltZWZvcm0gZm9ybTsKKyAg dW5pb24gY190aW1lIHRpbWU7Cit9OworCiAvKiBEZWNvZGUgYSBMaXNwIHRpbWVzdGFtcCBT UEVDSUZJRURfVElNRSB0aGF0IHJlcHJlc2VudHMgYSB0aW1lLgogCi0gICBJZiBERUNPREVf U0VDU19PTkxZLCBpZ25vcmUgYW5kIGRvIG5vdCB2YWxpZGF0ZSBhbnkgc3ViLXNlY29uZAor ICAgUmV0dXJuIGEgKGZvcm0sIHRpbWUpIHBhaXIgdGhhdCBpcyB0aGUgZm9ybSBvZiBTUEVD SUZJRUQtVElNRQorICAgYW5kIHRoZSByZXN1bHRpbmcgQyB0aW1lc3RhbXAgaW4gQ0ZPUk0g Zm9ybS4KKyAgIElmIENGT1JNID09IENGT1JNX1NFQ1NfT05MWSwgaWdub3JlIGFuZCBkbyBu b3QgdmFsaWRhdGUgYW55IHN1Yi1zZWNvbmQKICAgIGNvbXBvbmVudHMgb2YgYW4gb2xkLWZv cm1hdCBTUEVDSUZJRURfVElNRS4KIAotICAgSWYgUkVTVUxUIGlzIG5vdCBudWxsLCBzdG9y ZSBpbnRvICpSRVNVTFQgdGhlIGNvbnZlcnRlZCB0aW1lOwotICAgb3RoZXJ3aXNlLCBzdG9y ZSBpbnRvICpEUkVTVUxUIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSB0aGUKLSAgIHN0 YXJ0IG9mIHRoZSBQT1NJWCBFcG9jaC4gIFVuc3VjY2Vzc2Z1bCBjYWxscyBtYXkgb3IgbWF5 IG5vdCBzdG9yZQotICAgcmVzdWx0cy4KLQotICAgUmV0dXJuIHRoZSBmb3JtIG9mIFNQRUNJ RklFRC1USU1FLiAgU2lnbmFsIGFuIGVycm9yIGlmIHVuc3VjY2Vzc2Z1bC4gICovCi1zdGF0 aWMgZW51bSB0aW1lZm9ybQotZGVjb2RlX2xpc3BfdGltZSAoTGlzcF9PYmplY3Qgc3BlY2lm aWVkX3RpbWUsIGJvb2wgZGVjb2RlX3NlY3Nfb25seSwKLQkJICBzdHJ1Y3QgbGlzcF90aW1l ICpyZXN1bHQsIGRvdWJsZSAqZHJlc3VsdCkKKyAgIFNpZ25hbCBhbiBlcnJvciBpZiB1bnN1 Y2Nlc3NmdWwuICAqLworc3RhdGljIHN0cnVjdCBmb3JtX3RpbWUKK2RlY29kZV9saXNwX3Rp bWUgKExpc3BfT2JqZWN0IHNwZWNpZmllZF90aW1lLCBlbnVtIGNmb3JtIGNmb3JtKQogewog ICBMaXNwX09iamVjdCBoaWdoID0gbWFrZV9maXhudW0gKDApOwogICBMaXNwX09iamVjdCBs b3cgPSBzcGVjaWZpZWRfdGltZTsKQEAgLTg0NSw3ICs4NzIsNyBAQCBkZWNvZGVfbGlzcF90 aW1lIChMaXNwX09iamVjdCBzcGVjaWZpZWRfdGltZSwgYm9vbCBkZWNvZGVfc2Vjc19vbmx5 LAogCXsKIAkgIExpc3BfT2JqZWN0IGxvd190YWlsID0gWENEUiAobG93KTsKIAkgIGxvdyA9 IFhDQVIgKGxvdyk7Ci0JICBpZiAoISBkZWNvZGVfc2Vjc19vbmx5KQorCSAgaWYgKGNmb3Jt ICE9IENGT1JNX1NFQ1NfT05MWSkKIAkgICAgewogCSAgICAgIGlmIChDT05TUCAobG93X3Rh aWwpKQogCQl7CkBAIC04NzcsMjcgKzkwNCwzMSBAQCBkZWNvZGVfbGlzcF90aW1lIChMaXNw X09iamVjdCBzcGVjaWZpZWRfdGltZSwgYm9vbCBkZWNvZGVfc2Vjc19vbmx5LAogCWZvcm0g PSBUSU1FRk9STV9JTlZBTElEOwogICAgIH0KICAgZWxzZSBpZiAoRkFTVEVSX1RJTUVGTlMg JiYgSU5URUdFUlAgKHNwZWNpZmllZF90aW1lKSkKLSAgICB7Ci0gICAgICBkZWNvZGVfdGlj a3NfaHogKHNwZWNpZmllZF90aW1lLCBtYWtlX2ZpeG51bSAoMSksIHJlc3VsdCwgZHJlc3Vs dCk7Ci0gICAgICByZXR1cm4gZm9ybTsKLSAgICB9CisgICAgcmV0dXJuIChzdHJ1Y3QgZm9y bV90aW1lKQorICAgICAgeworCS5mb3JtID0gZm9ybSwKKwkudGltZSA9IGRlY29kZV90aWNr c19oeiAoc3BlY2lmaWVkX3RpbWUsIG1ha2VfZml4bnVtICgxKSwgY2Zvcm0pCisgICAgICB9 OwogICBlbHNlIGlmIChGTE9BVFAgKHNwZWNpZmllZF90aW1lKSkKICAgICB7CiAgICAgICBk b3VibGUgZCA9IFhGTE9BVF9EQVRBIChzcGVjaWZpZWRfdGltZSk7CiAgICAgICBpZiAoIWlz ZmluaXRlIChkKSkKIAl0aW1lX2Vycm9yIChpc25hbiAoZCkgPyBFRE9NIDogRU9WRVJGTE9X KTsKLSAgICAgIGlmIChyZXN1bHQpCi0JZGVjb2RlX2Zsb2F0X3RpbWUgKGQsIHJlc3VsdCk7 Ci0gICAgICBlbHNlCi0JKmRyZXN1bHQgPSBkOwotICAgICAgcmV0dXJuIFRJTUVGT1JNX0ZM T0FUOworICAgICAgcmV0dXJuIChzdHJ1Y3QgZm9ybV90aW1lKQorCXsKKwkgIC5mb3JtID0g VElNRUZPUk1fRkxPQVQsCisJICAudGltZQorCSAgICA9IChjZm9ybSA9PSBDRk9STV9ET1VC TEUKKwkgICAgICAgPyAodW5pb24gY190aW1lKSB7IC5kID0gZCB9CisJICAgICAgIDogKHVu aW9uIGNfdGltZSkgeyAubHQgPSBkZWNvZGVfZmxvYXRfdGltZSAoZCkgfSkKKwl9OwogICAg IH0KIAotICBpbnQgZXJyID0gZGVjb2RlX3RpbWVfY29tcG9uZW50cyAoZm9ybSwgaGlnaCwg bG93LCB1c2VjLCBwc2VjLAotCQkJCSAgICByZXN1bHQsIGRyZXN1bHQpOwotICBpZiAoZXJy KQotICAgIHRpbWVfZXJyb3IgKGVycik7Ci0gIHJldHVybiBmb3JtOworICBzdHJ1Y3QgZXJy X3RpbWUgZXJyX3RpbWUKKyAgICA9IGRlY29kZV90aW1lX2NvbXBvbmVudHMgKGZvcm0sIGhp Z2gsIGxvdywgdXNlYywgcHNlYywgY2Zvcm0pOworICBpZiAoZXJyX3RpbWUuZXJyKQorICAg IHRpbWVfZXJyb3IgKGVycl90aW1lLmVycik7CisgIHJldHVybiAoc3RydWN0IGZvcm1fdGlt ZSkgeyAuZm9ybSA9IGZvcm0sIC50aW1lID0gZXJyX3RpbWUudGltZSB9OwogfQogCiAvKiBD b252ZXJ0IGEgbm9uLWZsb2F0IExpc3AgdGltZXN0YW1wIFNQRUNJRklFRF9USU1FIHRvIGRv dWJsZS4KQEAgLTkwNSw5ICs5MzYsNyBAQCBkZWNvZGVfbGlzcF90aW1lIChMaXNwX09iamVj dCBzcGVjaWZpZWRfdGltZSwgYm9vbCBkZWNvZGVfc2Vjc19vbmx5LAogZG91YmxlCiBmbG9h dF90aW1lIChMaXNwX09iamVjdCBzcGVjaWZpZWRfdGltZSkKIHsKLSAgZG91YmxlIHQ7Ci0g IGRlY29kZV9saXNwX3RpbWUgKHNwZWNpZmllZF90aW1lLCBmYWxzZSwgMCwgJnQpOwotICBy ZXR1cm4gdDsKKyAgcmV0dXJuIGRlY29kZV9saXNwX3RpbWUgKHNwZWNpZmllZF90aW1lLCBD Rk9STV9ET1VCTEUpLnRpbWUuZDsKIH0KIAogLyogQ29udmVydCBaIHRvIHRpbWVfdCwgcmV0 dXJuaW5nIHRydWUgaWYgaXQgZml0cy4gICovCkBAIC0xMDAwLDMyICsxMDI5LDI2IEBAIGxp c3BfdG9fdGltZXNwZWMgKHN0cnVjdCBsaXNwX3RpbWUgdCkKIH0KIAogLyogQ29udmVydCAo SElHSCBMT1cgVVNFQyBQU0VDKSB0byBzdHJ1Y3QgdGltZXNwZWMuCi0gICBSZXR1cm4gdHJ1 ZSBpZiBzdWNjZXNzZnVsLiAgKi8KLWJvb2wKKyAgIFJldHVybiBhIHZhbGlkIHRpbWVzdGFt cCBpZiBzdWNjZXNzZnVsLCBhbiBpbnZhbGlkIG9uZSBvdGhlcndpc2UuICAqLworc3RydWN0 IHRpbWVzcGVjCiBsaXN0NF90b190aW1lc3BlYyAoTGlzcF9PYmplY3QgaGlnaCwgTGlzcF9P YmplY3QgbG93LAotCQkgICBMaXNwX09iamVjdCB1c2VjLCBMaXNwX09iamVjdCBwc2VjLAot CQkgICBzdHJ1Y3QgdGltZXNwZWMgKnJlc3VsdCkKKwkJICAgTGlzcF9PYmplY3QgdXNlYywg TGlzcF9PYmplY3QgcHNlYykKIHsKLSAgc3RydWN0IGxpc3BfdGltZSB0OwotICBpZiAoZGVj b2RlX3RpbWVfY29tcG9uZW50cyAoVElNRUZPUk1fSElfTE9fVVNfUFMsIGhpZ2gsIGxvdywg dXNlYywgcHNlYywKLQkJCSAgICAgICZ0LCAwKSkKLSAgICByZXR1cm4gZmFsc2U7Ci0gICpy ZXN1bHQgPSBsaXNwX3RvX3RpbWVzcGVjICh0KTsKLSAgcmV0dXJuIHRpbWVzcGVjX3ZhbGlk X3AgKCpyZXN1bHQpOworICBzdHJ1Y3QgZXJyX3RpbWUgZXJyX3RpbWUKKyAgICA9IGRlY29k ZV90aW1lX2NvbXBvbmVudHMgKFRJTUVGT1JNX0hJX0xPX1VTX1BTLCBoaWdoLCBsb3csIHVz ZWMsIHBzZWMsCisJCQkgICAgICBDRk9STV9USUNLU19IWik7CisgIHJldHVybiAoZXJyX3Rp bWUuZXJyCisJICA/IGludmFsaWRfdGltZXNwZWMgKCkKKwkgIDogbGlzcF90b190aW1lc3Bl YyAoZXJyX3RpbWUudGltZS5sdCkpOwogfQogCiAvKiBEZWNvZGUgYSBMaXNwIGxpc3QgU1BF Q0lGSUVEX1RJTUUgdGhhdCByZXByZXNlbnRzIGEgdGltZS4KICAgIElmIFNQRUNJRklFRF9U SU1FIGlzIG5pbCwgdXNlIHRoZSBjdXJyZW50IHRpbWUuCi0gICBTaWduYWwgYW4gZXJyb3Ig aWYgU1BFQ0lGSUVEX1RJTUUgZG9lcyBub3QgcmVwcmVzZW50IGEgdGltZS4KLSAgIElmIFBG T1JNLCBzdG9yZSB0aGUgdGltZSdzIGZvcm0gaW50byAqUEZPUk0uICAqLworICAgU2lnbmFs IGFuIGVycm9yIGlmIFNQRUNJRklFRF9USU1FIGRvZXMgbm90IHJlcHJlc2VudCBhIHRpbWUu ICAqLwogc3RhdGljIHN0cnVjdCBsaXNwX3RpbWUKLWxpc3BfdGltZV9zdHJ1Y3QgKExpc3Bf T2JqZWN0IHNwZWNpZmllZF90aW1lLCBlbnVtIHRpbWVmb3JtICpwZm9ybSkKK2xpc3BfdGlt ZV9zdHJ1Y3QgKExpc3BfT2JqZWN0IHNwZWNpZmllZF90aW1lKQogewotICBzdHJ1Y3QgbGlz cF90aW1lIHQ7Ci0gIGVudW0gdGltZWZvcm0gZm9ybSA9IGRlY29kZV9saXNwX3RpbWUgKHNw ZWNpZmllZF90aW1lLCBmYWxzZSwgJnQsIDApOwotICBpZiAocGZvcm0pCi0gICAgKnBmb3Jt ID0gZm9ybTsKLSAgcmV0dXJuIHQ7CisgIHJldHVybiBkZWNvZGVfbGlzcF90aW1lIChzcGVj aWZpZWRfdGltZSwgQ0ZPUk1fVElDS1NfSFopLnRpbWUubHQ7CiB9CiAKIC8qIERlY29kZSBh IExpc3AgbGlzdCBTUEVDSUZJRURfVElNRSB0aGF0IHJlcHJlc2VudHMgYSB0aW1lLgpAQCAt MTAzNSw3ICsxMDU4LDcgQEAgbGlzcF90aW1lX3N0cnVjdCAoTGlzcF9PYmplY3Qgc3BlY2lm aWVkX3RpbWUsIGVudW0gdGltZWZvcm0gKnBmb3JtKQogc3RydWN0IHRpbWVzcGVjCiBsaXNw X3RpbWVfYXJndW1lbnQgKExpc3BfT2JqZWN0IHNwZWNpZmllZF90aW1lKQogewotICBzdHJ1 Y3QgbGlzcF90aW1lIGx0ID0gbGlzcF90aW1lX3N0cnVjdCAoc3BlY2lmaWVkX3RpbWUsIDAp OworICBzdHJ1Y3QgbGlzcF90aW1lIGx0ID0gbGlzcF90aW1lX3N0cnVjdCAoc3BlY2lmaWVk X3RpbWUpOwogICBzdHJ1Y3QgdGltZXNwZWMgdCA9IGxpc3BfdG9fdGltZXNwZWMgKGx0KTsK ICAgaWYgKCEgdGltZXNwZWNfdmFsaWRfcCAodCkpCiAgICAgdGltZV9vdmVyZmxvdyAoKTsK QEAgLTEwNDcsOSArMTA3MCw4IEBAIGxpc3BfdGltZV9hcmd1bWVudCAoTGlzcF9PYmplY3Qg c3BlY2lmaWVkX3RpbWUpCiBzdGF0aWMgdGltZV90CiBsaXNwX3NlY29uZHNfYXJndW1lbnQg KExpc3BfT2JqZWN0IHNwZWNpZmllZF90aW1lKQogewotICBzdHJ1Y3QgbGlzcF90aW1lIGx0 OwotICBkZWNvZGVfbGlzcF90aW1lIChzcGVjaWZpZWRfdGltZSwgdHJ1ZSwgJmx0LCAwKTsK LSAgc3RydWN0IHRpbWVzcGVjIHQgPSBsaXNwX3RvX3RpbWVzcGVjIChsdCk7CisgIHN0cnVj dCBmb3JtX3RpbWUgZnQgPSBkZWNvZGVfbGlzcF90aW1lIChzcGVjaWZpZWRfdGltZSwgQ0ZP Uk1fU0VDU19PTkxZKTsKKyAgc3RydWN0IHRpbWVzcGVjIHQgPSBsaXNwX3RvX3RpbWVzcGVj IChmdC50aW1lLmx0KTsKICAgaWYgKCEgdGltZXNwZWNfdmFsaWRfcCAodCkpCiAgICAgdGlt ZV9vdmVyZmxvdyAoKTsKICAgcmV0dXJuIHQudHZfc2VjOwpAQCAtMTA5Niw5ICsxMTE4LDEx IEBAIGxpc3BpbnRfYXJpdGggKExpc3BfT2JqZWN0IGEsIExpc3BfT2JqZWN0IGIsIGJvb2wg c3VidHJhY3QpCiBzdGF0aWMgTGlzcF9PYmplY3QKIHRpbWVfYXJpdGggKExpc3BfT2JqZWN0 IGEsIExpc3BfT2JqZWN0IGIsIGJvb2wgc3VidHJhY3QpCiB7Ci0gIGVudW0gdGltZWZvcm0g YWZvcm0sIGJmb3JtOwotICBzdHJ1Y3QgbGlzcF90aW1lIHRhID0gbGlzcF90aW1lX3N0cnVj dCAoYSwgJmFmb3JtKTsKLSAgc3RydWN0IGxpc3BfdGltZSB0YiA9IGxpc3BfdGltZV9zdHJ1 Y3QgKGIsICZiZm9ybSk7CisgIHN0cnVjdCBmb3JtX3RpbWUKKyAgICBmdGEgPSBkZWNvZGVf bGlzcF90aW1lIChhLCBDRk9STV9USUNLU19IWiksCisgICAgZnRiID0gZGVjb2RlX2xpc3Bf dGltZSAoYiwgQ0ZPUk1fVElDS1NfSFopOworICBlbnVtIHRpbWVmb3JtIGFmb3JtID0gZnRh LmZvcm0sIGJmb3JtID0gZnRiLmZvcm07CisgIHN0cnVjdCBsaXNwX3RpbWUgdGEgPSBmdGEu dGltZS5sdCwgdGIgPSBmdGIudGltZS5sdDsKICAgTGlzcF9PYmplY3QgdGlja3MsIGh6Owog CiAgIGlmIChGQVNURVJfVElNRUZOUyAmJiBCQVNFX0VRICh0YS5oeiwgdGIuaHopKQpAQCAt MTIzOSw4ICsxMjYzLDggQEAgdGltZV9jbXAgKExpc3BfT2JqZWN0IGEsIExpc3BfT2JqZWN0 IGIpCiAKICAgLyogQ29tcGFyZSAoQVRJQ0tTIC4gQVopIHRvIChCVElDS1MgLiBCSFopIGJ5 IGNvbXBhcmluZwogICAgICBBVElDS1MgKiBCSFogdG8gQlRJQ0tTICogQUhaLiAgKi8KLSAg c3RydWN0IGxpc3BfdGltZSB0YSA9IGxpc3BfdGltZV9zdHJ1Y3QgKGEsIDApOwotICBzdHJ1 Y3QgbGlzcF90aW1lIHRiID0gbGlzcF90aW1lX3N0cnVjdCAoYiwgMCk7CisgIHN0cnVjdCBs aXNwX3RpbWUgdGEgPSBsaXNwX3RpbWVfc3RydWN0IChhKTsKKyAgc3RydWN0IGxpc3BfdGlt ZSB0YiA9IGxpc3BfdGltZV9zdHJ1Y3QgKGIpOwogICBtcHpfdCBjb25zdCAqemEgPSBiaWdu dW1faW50ZWdlciAoJm1welswXSwgdGEudGlja3MpOwogICBtcHpfdCBjb25zdCAqemIgPSBi aWdudW1faW50ZWdlciAoJm1welsxXSwgdGIudGlja3MpOwogICBpZiAoISAoRkFTVEVSX1RJ TUVGTlMgJiYgQkFTRV9FUSAodGEuaHosIHRiLmh6KSkpCkBAIC0xNTE3LDcgKzE1NDEsNyBA QCBERUZVTiAoImRlY29kZS10aW1lIiwgRmRlY29kZV90aW1lLCBTZGVjb2RlX3RpbWUsIDAs IDMsIDAsCiAgIChMaXNwX09iamVjdCBzcGVjaWZpZWRfdGltZSwgTGlzcF9PYmplY3Qgem9u ZSwgTGlzcF9PYmplY3QgZm9ybSkKIHsKICAgLyogQ29tcHV0ZSBicm9rZW4tZG93biBsb2Nh bCB0aW1lIExPQ0FMX1RNIGZyb20gU1BFQ0lGSUVEX1RJTUUgYW5kIFpPTkUuICAqLwotICBz dHJ1Y3QgbGlzcF90aW1lIGx0ID0gbGlzcF90aW1lX3N0cnVjdCAoc3BlY2lmaWVkX3RpbWUs IDApOworICBzdHJ1Y3QgbGlzcF90aW1lIGx0ID0gbGlzcF90aW1lX3N0cnVjdCAoc3BlY2lm aWVkX3RpbWUpOwogICBzdHJ1Y3QgdGltZXNwZWMgdHMgPSBsaXNwX3RvX3RpbWVzcGVjIChs dCk7CiAgIGlmICghIHRpbWVzcGVjX3ZhbGlkX3AgKHRzKSkKICAgICB0aW1lX292ZXJmbG93 ICgpOwpAQCAtMTY5NSw4ICsxNzE5LDcgQEAgREVGVU4gKCJlbmNvZGUtdGltZSIsIEZlbmNv ZGVfdGltZSwgU2VuY29kZV90aW1lLCAxLCBNQU5ZLCAwLAogICAgIH0KIAogICAvKiBMZXQg U0VDID0gZmxvb3IgKExULnRpY2tzIC8gSFopLCB3aXRoIFNVQlNFQ1RJQ0tTIHRoZSByZW1h aW5kZXIuICAqLwotICBzdHJ1Y3QgbGlzcF90aW1lIGx0OwotICBkZWNvZGVfbGlzcF90aW1l IChzZWNhcmcsIGZhbHNlLCAmbHQsIDApOworICBzdHJ1Y3QgbGlzcF90aW1lIGx0ID0gZGVj b2RlX2xpc3BfdGltZSAoc2VjYXJnLCBDRk9STV9USUNLU19IWikudGltZS5sdDsKICAgTGlz cF9PYmplY3QgaHogPSBsdC5oeiwgc2VjLCBzdWJzZWN0aWNrczsKICAgaWYgKEZBU1RFUl9U SU1FRk5TICYmIEJBU0VfRVEgKGh6LCBtYWtlX2ZpeG51bSAoMSkpKQogICAgIHsKQEAgLTE3 NjUsOCArMTc4OCw4IEBAIERFRlVOICgidGltZS1jb252ZXJ0IiwgRnRpbWVfY29udmVydCwg U3RpbWVfY29udmVydCwgMSwgMiwgMCwKIHsKICAgLyogRklYTUU6IEFueSByZWFzb24gd2h5 IHdlIGRvbid0IG9mZmVyIGEgYGZsb2F0YCBvdXRwdXQgZm9ybWF0IG9wdGlvbiBhcwogICAg ICB3ZWxsLCBzaW5jZSB3ZSBhY2NlcHQgaXQgYXMgaW5wdXQ/ICAqLwotICBzdHJ1Y3QgbGlz cF90aW1lIHQ7Ci0gIGVudW0gdGltZWZvcm0gaW5wdXRfZm9ybSA9IGRlY29kZV9saXNwX3Rp bWUgKHRpbWUsIGZhbHNlLCAmdCwgMCk7CisgIHN0cnVjdCBmb3JtX3RpbWUgZm9ybV90aW1l ID0gZGVjb2RlX2xpc3BfdGltZSAodGltZSwgQ0ZPUk1fVElDS1NfSFopOworICBzdHJ1Y3Qg bGlzcF90aW1lIHQgPSBmb3JtX3RpbWUudGltZS5sdDsKICAgZm9ybSA9ICghTklMUCAoZm9y bSkgPyBtYXliZV9yZW1vdmVfcG9zX2Zyb21fc3ltYm9sIChmb3JtKQogCSAgOiBjdXJyZW50 X3RpbWVfbGlzdCA/IFFsaXN0IDogUXQpOwogICBpZiAoQkFTRV9FUSAoZm9ybSwgUWxpc3Qp KQpAQCAtMTc3Niw3ICsxNzk5LDcgQEAgREVGVU4gKCJ0aW1lLWNvbnZlcnQiLCBGdGltZV9j b252ZXJ0LCBTdGltZV9jb252ZXJ0LCAxLCAyLCAwLAogICBpZiAoQkFTRV9FUSAoZm9ybSwg UXQpKQogICAgIGZvcm0gPSB0Lmh6OwogICBpZiAoRkFTVEVSX1RJTUVGTlMKLSAgICAgICYm IGlucHV0X2Zvcm0gPT0gVElNRUZPUk1fVElDS1NfSFogJiYgQkFTRV9FUSAoZm9ybSwgWENE UiAodGltZSkpKQorICAgICAgJiYgZm9ybV90aW1lLmZvcm0gPT0gVElNRUZPUk1fVElDS1Nf SFogJiYgQkFTRV9FUSAoZm9ybSwgWENEUiAodGltZSkpKQogICAgIHJldHVybiB0aW1lOwog ICByZXR1cm4gRmNvbnMgKGxpc3BfdGltZV9oel90aWNrcyAodCwgZm9ybSksIGZvcm0pOwog fQotLSAKMi4zNC4xCgo= --------------NfwiklpzcLJ7Hl9WQFyp0mbQ Content-Type: text/x-patch; charset=UTF-8; name="0002-Refactor-timefns-order.patch" Content-Disposition: attachment; filename="0002-Refactor-timefns-order.patch" Content-Transfer-Encoding: base64 RnJvbSA3ZDBhNzY5ZTJhMjc1ZWRkMGI3MjE1MjQyMTcwZDVlNGI1M2U2NjhlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDcgSnVsIDIwMjQgMTU6NDI6MTAgKzAyMDAKU3ViamVjdDogW1BBVENI IDAyLzE3XSBSZWZhY3RvciB0aW1lZm5zIG9yZGVyCgpNb3ZlIGRlZmluaXRpb25zIGFyb3Vu ZCBpbiB0aW1lZm5zLmMuICBUaGlzIGRvZXMgbm90IGFmZmVjdCB0aGUKaW1wbGVtZW50YXRp b247IGl0IG1lcmVseSBtYWtlcyBmdXR1cmUgY2hhbmdlcyBlYXNpZXIgdG8gZm9sbG93Lgoq IHNyYy90aW1lZm5zLmMgKGZyYWNfdG9fZG91YmxlLCBtcHpfdGltZSwgbGlzcF90b190aW1l c3BlYykKKGVudW0gY2Zvcm0sIHVuaW9uIGNfdGltZSwgZGVjb2RlX3RpY2tzX2h6KTogTW92 ZSBlYXJsaWVyLgotLS0KIHNyYy90aW1lZm5zLmMgfCA0MDAgKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMDAg aW5zZXJ0aW9ucygrKSwgMjAwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy90aW1l Zm5zLmMgYi9zcmMvdGltZWZucy5jCmluZGV4IDcwOTYxYzFhNTYwLi5hN2E3ZDU1MjUwNiAx MDA2NDQKLS0tIGEvc3JjL3RpbWVmbnMuYworKysgYi9zcmMvdGltZWZucy5jCkBAIC00MDAs NiArNDAwLDExMiBAQCBsb190aW1lICh0aW1lX3QgdCkKICAgIGVxdWFscyBGTFRfUkFESVgq KlAuICAqLwogc3RhdGljIExpc3BfT2JqZWN0IGZsdF9yYWRpeF9wb3dlcjsKIAorLyogUmV0 dXJuIE5VTUVSQVRPUiAvIERFTk9NSU5BVE9SLCByb3VuZGVkIHRvIHRoZSBuZWFyZXN0IGRv dWJsZS4KKyAgIEFyZ3VtZW50cyBtdXN0IGJlIExpc3AgaW50ZWdlcnMsIGFuZCBERU5PTUlO QVRPUiBtdXN0IGJlIHBvc2l0aXZlLiAgKi8KK3N0YXRpYyBkb3VibGUKK2ZyYWNfdG9fZG91 YmxlIChMaXNwX09iamVjdCBudW1lcmF0b3IsIExpc3BfT2JqZWN0IGRlbm9taW5hdG9yKQor eworICBpbnRtYXhfdCBpbnRtYXhfbnVtZXJhdG9yLCBpbnRtYXhfZGVub21pbmF0b3I7Cisg IGlmIChGQVNURVJfVElNRUZOUworICAgICAgJiYgaW50ZWdlcl90b19pbnRtYXggKG51bWVy YXRvciwgJmludG1heF9udW1lcmF0b3IpCisgICAgICAmJiBpbnRlZ2VyX3RvX2ludG1heCAo ZGVub21pbmF0b3IsICZpbnRtYXhfZGVub21pbmF0b3IpCisgICAgICAmJiBpbnRtYXhfbnVt ZXJhdG9yICUgaW50bWF4X2Rlbm9taW5hdG9yID09IDApCisgICAgcmV0dXJuIGludG1heF9u dW1lcmF0b3IgLyBpbnRtYXhfZGVub21pbmF0b3I7CisKKyAgLyogQ29tcHV0ZSBudW1iZXIg b2YgYmFzZS1GTFRfUkFESVggZGlnaXRzIGluIG51bWVyYXRvciBhbmQgZGVub21pbmF0b3Iu ICAqLworICBtcHpfdCBjb25zdCAqbiA9IGJpZ251bV9pbnRlZ2VyICgmbXB6WzBdLCBudW1l cmF0b3IpOworICBtcHpfdCBjb25zdCAqZCA9IGJpZ251bV9pbnRlZ2VyICgmbXB6WzFdLCBk ZW5vbWluYXRvcik7CisgIHB0cmRpZmZfdCBuZGlnID0gbXB6X3NpemVpbmJhc2UgKCpuLCBG TFRfUkFESVgpOworICBwdHJkaWZmX3QgZGRpZyA9IG1wel9zaXplaW5iYXNlICgqZCwgRkxU X1JBRElYKTsKKworICAvKiBTY2FsZSB3aXRoIFNDQUxFIHdoZW4gZG9pbmcgaW50ZWdlciBk aXZpc2lvbi4gIFRoYXQgaXMsIGNvbXB1dGUKKyAgICAgKE4gKiBGTFRfUkFESVgqKlNDQUxF KSAvIEQgW29yLCBpZiBTQ0FMRSBpcyBuZWdhdGl2ZSwgTiAvIChEICoKKyAgICAgRkxUX1JB RElYKiotU0NBTEUpXSBhcyBhIGJpZ251bSwgY29udmVydCB0aGUgYmlnbnVtIHRvIGRvdWJs ZSwKKyAgICAgdGhlbiBkaXZpZGUgdGhlIGRvdWJsZSBieSBGTFRfUkFESVgqKlNDQUxFLiAg Rmlyc3Qgc2NhbGUgTgorICAgICAob3Igc2NhbGUgRCwgaWYgU0NBTEUgaXMgbmVnYXRpdmUp IC4uLiAgKi8KKyAgcHRyZGlmZl90IHNjYWxlID0gZGRpZyAtIG5kaWcgKyBEQkxfTUFOVF9E SUc7CisgIGlmIChzY2FsZSA8IDApCisgICAgeworICAgICAgbXB6X211bF8yZXhwIChtcHpb MV0sICpkLCAtIChzY2FsZSAqIExPRzJfRkxUX1JBRElYKSk7CisgICAgICBkID0gJm1welsx XTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICAvKiBtaW4gc28gd2UgZG9uJ3Qgc2Nh bGUgdGlueSBudW1iZXJzIGFzIGlmIHRoZXkgd2VyZSBub3JtYWxpemVkLiAgKi8KKyAgICAg IHNjYWxlID0gbWluIChzY2FsZSwgZmx0X3JhZGl4X3Bvd2VyX3NpemUgLSAxKTsKKworICAg ICAgbXB6X211bF8yZXhwIChtcHpbMF0sICpuLCBzY2FsZSAqIExPRzJfRkxUX1JBRElYKTsK KyAgICAgIG4gPSAmbXB6WzBdOworICAgIH0KKyAgLyogLi4uIGFuZCB0aGVuIGRpdmlkZSwg d2l0aCBxdW90aWVudCBRIGFuZCByZW1haW5kZXIgUi4gICovCisgIG1wel90ICpxID0gJm1w elsyXTsKKyAgbXB6X3QgKnIgPSAmbXB6WzNdOworICBtcHpfdGRpdl9xciAoKnEsICpyLCAq biwgKmQpOworCisgIC8qIFRoZSBhbW91bnQgdG8gYWRkIHRvIHRoZSBhYnNvbHV0ZSB2YWx1 ZSBvZiBRIHNvIHRoYXQgdHJ1bmNhdGluZworICAgICBpdCB0byBkb3VibGUgd2lsbCByb3Vu ZCBjb3JyZWN0bHkuICAqLworICBpbnQgaW5jcjsKKworICAvKiBSb3VuZCB0aGUgcXVvdGll bnQgYmVmb3JlIGNvbnZlcnRpbmcgaXQgdG8gZG91YmxlLgorICAgICBJZiB0aGUgcXVvdGll bnQgaXMgbGVzcyB0aGFuIEZMVF9SQURJWCAqKiBEQkxfTUFOVF9ESUcsCisgICAgIHJvdW5k IHRvIHRoZSBuZWFyZXN0IGludGVnZXI7IG90aGVyd2lzZSwgaXQgaXMgbGVzcyB0aGFuCisg ICAgIEZMVF9SQURJWCAqKiAoREJMX01BTlRfRElHICsgMSkgYW5kIHJvdW5kIGl0IHRvIHRo ZSBuZWFyZXN0CisgICAgIG11bHRpcGxlIG9mIEZMVF9SQURJWC4gIEJyZWFrIHRpZXMgdG8g ZXZlbi4gICovCisgIGlmIChtcHpfc2l6ZWluYmFzZSAoKnEsIEZMVF9SQURJWCkgPD0gREJM X01BTlRfRElHKQorICAgIHsKKyAgICAgIC8qIENvbnZlcnRpbmcgdG8gZG91YmxlIHdpbGwg dXNlIHRoZSB3aG9sZSBxdW90aWVudCBzbyBhZGQgMSB0bworCSBpdHMgYWJzb2x1dGUgdmFs dWUgYXMgcGVyIHJvdW5kLXRvLWV2ZW47IGkuZS4sIGlmIHRoZSBkb3VibGVkCisJIHJlbWFp bmRlciBleGNlZWRzIHRoZSBkZW5vbWluYXRvciwgb3IgZXhhY3RseSBlcXVhbHMgdGhlCisJ IGRlbm9taW5hdG9yIGFuZCBhZGRpbmcgMSB3b3VsZCBtYWtlIHRoZSBxdW90aWVudCBldmVu LiAgKi8KKyAgICAgIG1wel9tdWxfMmV4cCAoKnIsICpyLCAxKTsKKyAgICAgIGludCBjbXAg PSBtcHpfY21wYWJzICgqciwgKmQpOworICAgICAgaW5jciA9IGNtcCA+IDAgfHwgKGNtcCA9 PSAwICYmIChGQVNURVJfVElNRUZOUyAmJiBGTFRfUkFESVggPT0gMgorCQkJCSAgICAgID8g bXB6X29kZF9wICgqcSkKKwkJCQkgICAgICA6IG1wel90ZGl2X3VpICgqcSwgRkxUX1JBRElY KSAmIDEpKTsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICAvKiBDb252ZXJ0aW5nIHRv IGRvdWJsZSB3aWxsIGRpc2NhcmQgdGhlIHF1b3RpZW50J3MgbG93LW9yZGVyIGRpZ2l0LAor CSBzbyBhZGQgRkxUX1JBRElYIHRvIGl0cyBhYnNvbHV0ZSB2YWx1ZSBhcyBwZXIgcm91bmQt dG8tZXZlbi4gICovCisgICAgICBpbnQgbG9fMmRpZ2l0cyA9IG1wel90ZGl2X3VpICgqcSwg RkxUX1JBRElYICogRkxUX1JBRElYKTsKKyAgICAgIGVhc3N1bWUgKDAgPD0gbG9fMmRpZ2l0 cyAmJiBsb18yZGlnaXRzIDwgRkxUX1JBRElYICogRkxUX1JBRElYKTsKKyAgICAgIGludCBs b19kaWdpdCA9IGxvXzJkaWdpdHMgJSBGTFRfUkFESVg7CisgICAgICBpbmNyID0gKChsb19k aWdpdCA+IEZMVF9SQURJWCAvIDIKKwkgICAgICAgfHwgKGxvX2RpZ2l0ID09IEZMVF9SQURJ WCAvIDIgJiYgRkxUX1JBRElYICUgMiA9PSAwCisJCSAgICYmICgobG9fMmRpZ2l0cyAvIEZM VF9SQURJWCkgJiAxCisJCSAgICAgICB8fCBtcHpfc2duICgqcikgIT0gMCkpKQorCSAgICAg ID8gRkxUX1JBRElYIDogMCk7CisgICAgfQorCisgIC8qIEluY3JlbWVudCB0aGUgYWJzb2x1 dGUgdmFsdWUgb2YgdGhlIHF1b3RpZW50IGJ5IElOQ1IuICAqLworICBpZiAoIUZBU1RFUl9U SU1FRk5TIHx8IGluY3IgIT0gMCkKKyAgICAobXB6X3NnbiAoKm4pIDwgMCA/IG1wel9zdWJf dWkgOiBtcHpfYWRkX3VpKSAoKnEsICpxLCBpbmNyKTsKKworICAvKiBSZXNjYWxlIHRoZSBp bnRlZ2VyIFEgYmFjayB0byBkb3VibGUuICBUaGlzIHN0ZXAgZG9lcyBub3Qgcm91bmQuICAq LworICByZXR1cm4gc2NhbGJuIChtcHpfZ2V0X2QgKCpxKSwgLXNjYWxlKTsKK30KKworLyog Q29udmVydCBaIHRvIHRpbWVfdCwgcmV0dXJuaW5nIHRydWUgaWYgaXQgZml0cy4gICovCitz dGF0aWMgYm9vbAorbXB6X3RpbWUgKG1wel90IGNvbnN0IHosIHRpbWVfdCAqdCkKK3sKKyAg aWYgKFRZUEVfU0lHTkVEICh0aW1lX3QpKQorICAgIHsKKyAgICAgIGludG1heF90IGk7Cisg ICAgICBpZiAoISAobXB6X3RvX2ludG1heCAoeiwgJmkpICYmIFRJTUVfVF9NSU4gPD0gaSAm JiBpIDw9IFRJTUVfVF9NQVgpKQorCXJldHVybiBmYWxzZTsKKyAgICAgICp0ID0gaTsKKyAg ICB9CisgIGVsc2UKKyAgICB7CisgICAgICB1aW50bWF4X3QgaTsKKyAgICAgIGlmICghICht cHpfdG9fdWludG1heCAoeiwgJmkpICYmIGkgPD0gVElNRV9UX01BWCkpCisJcmV0dXJuIGZh bHNlOworICAgICAgKnQgPSBpOworICAgIH0KKyAgcmV0dXJuIHRydWU7Cit9CisKIC8qIENv bXBvbmVudHMgb2YgYSBMaXNwIHRpbWVzdGFtcCAoVElDS1MgLiBIWikuICBVc2luZyB0aGlz IEMgc3RydWN0IGNhbgogICAgYXZvaWQgdGhlIGNvbnNpbmcgb3ZlcmhlYWQgb2YgY3JlYXRp bmcgKFRJQ0tTIC4gSFopLiAgKi8KIHN0cnVjdCBsaXNwX3RpbWUKQEAgLTQxMSw2ICs1MTcs MTAwIEBAIGxvX3RpbWUgKHRpbWVfdCB0KQogICBMaXNwX09iamVjdCBoejsKIH07CiAKKy8q IENvbnZlcnQgVCB0byBzdHJ1Y3QgdGltZXNwZWMsIHJldHVybmluZyBhbiBpbnZhbGlkIHRp bWVzcGVjCisgICBpZiBUIGRvZXMgbm90IGZpdC4gICovCitzdGF0aWMgc3RydWN0IHRpbWVz cGVjCitsaXNwX3RvX3RpbWVzcGVjIChzdHJ1Y3QgbGlzcF90aW1lIHQpCit7CisgIHN0cnVj dCB0aW1lc3BlYyByZXN1bHQgPSBpbnZhbGlkX3RpbWVzcGVjICgpOworICBpbnQgbnM7Cisg IG1wel90ICpxID0gJm1welswXTsKKyAgbXB6X3QgY29uc3QgKnF0ID0gcTsKKworICAvKiBG bG9vci1kaXZpZGUgKFQudGlja3MgKiBUSU1FU1BFQ19IWikgYnkgVC5oeiwKKyAgICAgeWll bGRpbmcgcXVvdGllbnQgUSAodHZfc2VjKSBhbmQgcmVtYWluZGVyIE5TICh0dl9uc2VjKS4K KyAgICAgUmV0dXJuIGFuIGludmFsaWQgdGltZXNwZWMgaWYgUSBkb2VzIG5vdCBmaXQgaW4g dGltZV90LgorICAgICBGb3Igc3BlZWQsIHByZWZlciBmaXhudW0gYXJpdGhtZXRpYyBpZiBp dCB3b3Jrcy4gICovCisgIGlmIChGQVNURVJfVElNRUZOUyAmJiBCQVNFX0VRICh0Lmh6LCB0 aW1lc3BlY19oeikpCisgICAgeworICAgICAgaWYgKEZJWE5VTVAgKHQudGlja3MpKQorCXsK KwkgIEVNQUNTX0lOVCBzID0gWEZJWE5VTSAodC50aWNrcykgLyBUSU1FU1BFQ19IWjsKKwkg IG5zID0gWEZJWE5VTSAodC50aWNrcykgJSBUSU1FU1BFQ19IWjsKKwkgIGlmIChucyA8IDAp CisJICAgIHMtLSwgbnMgKz0gVElNRVNQRUNfSFo7CisJICBpZiAoKFRZUEVfU0lHTkVEICh0 aW1lX3QpID8gVElNRV9UX01JTiA8PSBzIDogMCA8PSBzKQorCSAgICAgICYmIHMgPD0gVElN RV9UX01BWCkKKwkgICAgeworCSAgICAgIHJlc3VsdC50dl9zZWMgPSBzOworCSAgICAgIHJl c3VsdC50dl9uc2VjID0gbnM7CisJICAgIH0KKwkgIHJldHVybiByZXN1bHQ7CisJfQorICAg ICAgZWxzZQorCW5zID0gbXB6X2ZkaXZfcV91aSAoKnEsICp4YmlnbnVtX3ZhbCAodC50aWNr cyksIFRJTUVTUEVDX0haKTsKKyAgICB9CisgIGVsc2UgaWYgKEZBU1RFUl9USU1FRk5TICYm IEJBU0VfRVEgKHQuaHosIG1ha2VfZml4bnVtICgxKSkpCisgICAgeworICAgICAgbnMgPSAw OworICAgICAgaWYgKEZJWE5VTVAgKHQudGlja3MpKQorCXsKKwkgIEVNQUNTX0lOVCBzID0g WEZJWE5VTSAodC50aWNrcyk7CisJICBpZiAoKFRZUEVfU0lHTkVEICh0aW1lX3QpID8gVElN RV9UX01JTiA8PSBzIDogMCA8PSBzKQorCSAgICAgICYmIHMgPD0gVElNRV9UX01BWCkKKwkg ICAgeworCSAgICAgIHJlc3VsdC50dl9zZWMgPSBzOworCSAgICAgIHJlc3VsdC50dl9uc2Vj ID0gbnM7CisJICAgIH0KKwkgIHJldHVybiByZXN1bHQ7CisJfQorICAgICAgZWxzZQorCXF0 ID0geGJpZ251bV92YWwgKHQudGlja3MpOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAg IG1wel9tdWxfdWkgKCpxLCAqYmlnbnVtX2ludGVnZXIgKHEsIHQudGlja3MpLCBUSU1FU1BF Q19IWik7CisgICAgICBtcHpfZmRpdl9xICgqcSwgKnEsICpiaWdudW1faW50ZWdlciAoJm1w elsxXSwgdC5oeikpOworICAgICAgbnMgPSBtcHpfZmRpdl9xX3VpICgqcSwgKnEsIFRJTUVT UEVDX0haKTsKKyAgICB9CisKKyAgLyogQ2hlY2sgdGhhdCBRIGZpdHMgaW4gdGltZV90LCBu b3QgbWVyZWx5IGluIFQudHZfc2VjLiAgV2l0aCBzb21lIHZlcnNpb25zCisgICAgIG9mIE1p bkdXLCB0dl9zZWMgaXMgYSA2NC1iaXQgdHlwZSwgd2hlcmVhcyB0aW1lX3QgaXMgYSAzMi1i aXQgdHlwZS4gICovCisgIHRpbWVfdCBzZWM7CisgIGlmIChtcHpfdGltZSAoKnF0LCAmc2Vj KSkKKyAgICB7CisgICAgICByZXN1bHQudHZfc2VjID0gc2VjOworICAgICAgcmVzdWx0LnR2 X25zZWMgPSBuczsKKyAgICB9CisgIHJldHVybiByZXN1bHQ7Cit9CisKKy8qIEMgdGltZXN0 YW1wIGZvcm1zLiAgVGhpcyBlbnVtIGlzIHBhc3NlZCB0byBjb252ZXJzaW9uIGZ1bmN0aW9u cyB0bworICAgc3BlY2lmeSB0aGUgZGVzaXJlZCBDIHRpbWVzdGFtcCBmb3JtLiAgKi8KK2Vu dW0gY2Zvcm0KKyAgeworICAgIENGT1JNX1RJQ0tTX0haLCAvKiBzdHJ1Y3QgbGlzcF90aW1l ICovCisgICAgQ0ZPUk1fU0VDU19PTkxZLCAvKiBzdHJ1Y3QgbGlzcF90aW1lIGJ1dCBIWiBp cyAxICovCisgICAgQ0ZPUk1fRE9VQkxFIC8qIGRvdWJsZSAqLworICB9OworCisvKiBBIEMg dGltZXN0YW1wIGluIG9uZSBvZiB0aGUgZm9ybXMgc3BlY2lmaWVkIGJ5IGVudW0gY2Zvcm0u ICAqLwordW5pb24gY190aW1lCit7CisgIHN0cnVjdCBsaXNwX3RpbWUgbHQ7CisgIGRvdWJs ZSBkOworfTsKKworLyogRnJvbSBhIHZhbGlkIHRpbWVzdGFtcCAoVElDS1MgLiBIWiksIGdl bmVyYXRlIHRoZSBjb3JyZXNwb25kaW5nCisgICB0aW1lIHZhbHVlIGluIENGT1JNIGZvcm0u ICAqLworc3RhdGljIHVuaW9uIGNfdGltZQorZGVjb2RlX3RpY2tzX2h6IChMaXNwX09iamVj dCB0aWNrcywgTGlzcF9PYmplY3QgaHosIGVudW0gY2Zvcm0gY2Zvcm0pCit7CisgIHJldHVy biAoY2Zvcm0gPT0gQ0ZPUk1fRE9VQkxFCisJICA/ICh1bmlvbiBjX3RpbWUpIHsgLmQgPSBm cmFjX3RvX2RvdWJsZSAodGlja3MsIGh6KSB9CisJICA6ICh1bmlvbiBjX3RpbWUpIHsgLmx0 ID0geyAudGlja3MgPSB0aWNrcywgLmh6ID0gaHogfSB9KTsKK30KKwogLyogQ29udmVydCB0 aGUgZmluaXRlIG51bWJlciBUIGludG8gYW4gRW1hY3MgdGltZSwgdHJ1bmNhdGluZwogICAg dG93YXJkIG1pbnVzIGluZmluaXR5LiAgU2lnbmFsIGFuIGVycm9yIGlmIHVuc3VjY2Vzc2Z1 bC4gICovCiBzdGF0aWMgc3RydWN0IGxpc3BfdGltZQpAQCAtNjEzLDExNyArODEzLDYgQEAg dGltZXNwZWNfdG9fbGlzcCAoc3RydWN0IHRpbWVzcGVjIHQpCiAgIHJldHVybiBGY29ucyAo dGltZXNwZWNfdGlja3MgKHQpLCB0aW1lc3BlY19oeik7CiB9CiAKLS8qIFJldHVybiBOVU1F UkFUT1IgLyBERU5PTUlOQVRPUiwgcm91bmRlZCB0byB0aGUgbmVhcmVzdCBkb3VibGUuCi0g ICBBcmd1bWVudHMgbXVzdCBiZSBMaXNwIGludGVnZXJzLCBhbmQgREVOT01JTkFUT1IgbXVz dCBiZSBwb3NpdGl2ZS4gICovCi1zdGF0aWMgZG91YmxlCi1mcmFjX3RvX2RvdWJsZSAoTGlz cF9PYmplY3QgbnVtZXJhdG9yLCBMaXNwX09iamVjdCBkZW5vbWluYXRvcikKLXsKLSAgaW50 bWF4X3QgaW50bWF4X251bWVyYXRvciwgaW50bWF4X2Rlbm9taW5hdG9yOwotICBpZiAoRkFT VEVSX1RJTUVGTlMKLSAgICAgICYmIGludGVnZXJfdG9faW50bWF4IChudW1lcmF0b3IsICZp bnRtYXhfbnVtZXJhdG9yKQotICAgICAgJiYgaW50ZWdlcl90b19pbnRtYXggKGRlbm9taW5h dG9yLCAmaW50bWF4X2Rlbm9taW5hdG9yKQotICAgICAgJiYgaW50bWF4X251bWVyYXRvciAl IGludG1heF9kZW5vbWluYXRvciA9PSAwKQotICAgIHJldHVybiBpbnRtYXhfbnVtZXJhdG9y IC8gaW50bWF4X2Rlbm9taW5hdG9yOwotCi0gIC8qIENvbXB1dGUgbnVtYmVyIG9mIGJhc2Ut RkxUX1JBRElYIGRpZ2l0cyBpbiBudW1lcmF0b3IgYW5kIGRlbm9taW5hdG9yLiAgKi8KLSAg bXB6X3QgY29uc3QgKm4gPSBiaWdudW1faW50ZWdlciAoJm1welswXSwgbnVtZXJhdG9yKTsK LSAgbXB6X3QgY29uc3QgKmQgPSBiaWdudW1faW50ZWdlciAoJm1welsxXSwgZGVub21pbmF0 b3IpOwotICBwdHJkaWZmX3QgbmRpZyA9IG1wel9zaXplaW5iYXNlICgqbiwgRkxUX1JBRElY KTsKLSAgcHRyZGlmZl90IGRkaWcgPSBtcHpfc2l6ZWluYmFzZSAoKmQsIEZMVF9SQURJWCk7 Ci0KLSAgLyogU2NhbGUgd2l0aCBTQ0FMRSB3aGVuIGRvaW5nIGludGVnZXIgZGl2aXNpb24u ICBUaGF0IGlzLCBjb21wdXRlCi0gICAgIChOICogRkxUX1JBRElYKipTQ0FMRSkgLyBEIFtv ciwgaWYgU0NBTEUgaXMgbmVnYXRpdmUsIE4gLyAoRCAqCi0gICAgIEZMVF9SQURJWCoqLVND QUxFKV0gYXMgYSBiaWdudW0sIGNvbnZlcnQgdGhlIGJpZ251bSB0byBkb3VibGUsCi0gICAg IHRoZW4gZGl2aWRlIHRoZSBkb3VibGUgYnkgRkxUX1JBRElYKipTQ0FMRS4gIEZpcnN0IHNj YWxlIE4KLSAgICAgKG9yIHNjYWxlIEQsIGlmIFNDQUxFIGlzIG5lZ2F0aXZlKSAuLi4gICov Ci0gIHB0cmRpZmZfdCBzY2FsZSA9IGRkaWcgLSBuZGlnICsgREJMX01BTlRfRElHOwotICBp ZiAoc2NhbGUgPCAwKQotICAgIHsKLSAgICAgIG1wel9tdWxfMmV4cCAobXB6WzFdLCAqZCwg LSAoc2NhbGUgKiBMT0cyX0ZMVF9SQURJWCkpOwotICAgICAgZCA9ICZtcHpbMV07Ci0gICAg fQotICBlbHNlCi0gICAgewotICAgICAgLyogbWluIHNvIHdlIGRvbid0IHNjYWxlIHRpbnkg bnVtYmVycyBhcyBpZiB0aGV5IHdlcmUgbm9ybWFsaXplZC4gICovCi0gICAgICBzY2FsZSA9 IG1pbiAoc2NhbGUsIGZsdF9yYWRpeF9wb3dlcl9zaXplIC0gMSk7Ci0KLSAgICAgIG1wel9t dWxfMmV4cCAobXB6WzBdLCAqbiwgc2NhbGUgKiBMT0cyX0ZMVF9SQURJWCk7Ci0gICAgICBu ID0gJm1welswXTsKLSAgICB9Ci0gIC8qIC4uLiBhbmQgdGhlbiBkaXZpZGUsIHdpdGggcXVv dGllbnQgUSBhbmQgcmVtYWluZGVyIFIuICAqLwotICBtcHpfdCAqcSA9ICZtcHpbMl07Ci0g IG1wel90ICpyID0gJm1welszXTsKLSAgbXB6X3RkaXZfcXIgKCpxLCAqciwgKm4sICpkKTsK LQotICAvKiBUaGUgYW1vdW50IHRvIGFkZCB0byB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgUSBz byB0aGF0IHRydW5jYXRpbmcKLSAgICAgaXQgdG8gZG91YmxlIHdpbGwgcm91bmQgY29ycmVj dGx5LiAgKi8KLSAgaW50IGluY3I7Ci0KLSAgLyogUm91bmQgdGhlIHF1b3RpZW50IGJlZm9y ZSBjb252ZXJ0aW5nIGl0IHRvIGRvdWJsZS4KLSAgICAgSWYgdGhlIHF1b3RpZW50IGlzIGxl c3MgdGhhbiBGTFRfUkFESVggKiogREJMX01BTlRfRElHLAotICAgICByb3VuZCB0byB0aGUg bmVhcmVzdCBpbnRlZ2VyOyBvdGhlcndpc2UsIGl0IGlzIGxlc3MgdGhhbgotICAgICBGTFRf UkFESVggKiogKERCTF9NQU5UX0RJRyArIDEpIGFuZCByb3VuZCBpdCB0byB0aGUgbmVhcmVz dAotICAgICBtdWx0aXBsZSBvZiBGTFRfUkFESVguICBCcmVhayB0aWVzIHRvIGV2ZW4uICAq LwotICBpZiAobXB6X3NpemVpbmJhc2UgKCpxLCBGTFRfUkFESVgpIDw9IERCTF9NQU5UX0RJ RykKLSAgICB7Ci0gICAgICAvKiBDb252ZXJ0aW5nIHRvIGRvdWJsZSB3aWxsIHVzZSB0aGUg d2hvbGUgcXVvdGllbnQgc28gYWRkIDEgdG8KLQkgaXRzIGFic29sdXRlIHZhbHVlIGFzIHBl ciByb3VuZC10by1ldmVuOyBpLmUuLCBpZiB0aGUgZG91YmxlZAotCSByZW1haW5kZXIgZXhj ZWVkcyB0aGUgZGVub21pbmF0b3IsIG9yIGV4YWN0bHkgZXF1YWxzIHRoZQotCSBkZW5vbWlu YXRvciBhbmQgYWRkaW5nIDEgd291bGQgbWFrZSB0aGUgcXVvdGllbnQgZXZlbi4gICovCi0g ICAgICBtcHpfbXVsXzJleHAgKCpyLCAqciwgMSk7Ci0gICAgICBpbnQgY21wID0gbXB6X2Nt cGFicyAoKnIsICpkKTsKLSAgICAgIGluY3IgPSBjbXAgPiAwIHx8IChjbXAgPT0gMCAmJiAo RkFTVEVSX1RJTUVGTlMgJiYgRkxUX1JBRElYID09IDIKLQkJCQkgICAgICA/IG1wel9vZGRf cCAoKnEpCi0JCQkJICAgICAgOiBtcHpfdGRpdl91aSAoKnEsIEZMVF9SQURJWCkgJiAxKSk7 Ci0gICAgfQotICBlbHNlCi0gICAgewotICAgICAgLyogQ29udmVydGluZyB0byBkb3VibGUg d2lsbCBkaXNjYXJkIHRoZSBxdW90aWVudCdzIGxvdy1vcmRlciBkaWdpdCwKLQkgc28gYWRk IEZMVF9SQURJWCB0byBpdHMgYWJzb2x1dGUgdmFsdWUgYXMgcGVyIHJvdW5kLXRvLWV2ZW4u ICAqLwotICAgICAgaW50IGxvXzJkaWdpdHMgPSBtcHpfdGRpdl91aSAoKnEsIEZMVF9SQURJ WCAqIEZMVF9SQURJWCk7Ci0gICAgICBlYXNzdW1lICgwIDw9IGxvXzJkaWdpdHMgJiYgbG9f MmRpZ2l0cyA8IEZMVF9SQURJWCAqIEZMVF9SQURJWCk7Ci0gICAgICBpbnQgbG9fZGlnaXQg PSBsb18yZGlnaXRzICUgRkxUX1JBRElYOwotICAgICAgaW5jciA9ICgobG9fZGlnaXQgPiBG TFRfUkFESVggLyAyCi0JICAgICAgIHx8IChsb19kaWdpdCA9PSBGTFRfUkFESVggLyAyICYm IEZMVF9SQURJWCAlIDIgPT0gMAotCQkgICAmJiAoKGxvXzJkaWdpdHMgLyBGTFRfUkFESVgp ICYgMQotCQkgICAgICAgfHwgbXB6X3NnbiAoKnIpICE9IDApKSkKLQkgICAgICA/IEZMVF9S QURJWCA6IDApOwotICAgIH0KLQotICAvKiBJbmNyZW1lbnQgdGhlIGFic29sdXRlIHZhbHVl IG9mIHRoZSBxdW90aWVudCBieSBJTkNSLiAgKi8KLSAgaWYgKCFGQVNURVJfVElNRUZOUyB8 fCBpbmNyICE9IDApCi0gICAgKG1wel9zZ24gKCpuKSA8IDAgPyBtcHpfc3ViX3VpIDogbXB6 X2FkZF91aSkgKCpxLCAqcSwgaW5jcik7Ci0KLSAgLyogUmVzY2FsZSB0aGUgaW50ZWdlciBR IGJhY2sgdG8gZG91YmxlLiAgVGhpcyBzdGVwIGRvZXMgbm90IHJvdW5kLiAgKi8KLSAgcmV0 dXJuIHNjYWxibiAobXB6X2dldF9kICgqcSksIC1zY2FsZSk7Ci19Ci0KLS8qIEMgdGltZXN0 YW1wIGZvcm1zLiAgVGhpcyBlbnVtIGlzIHBhc3NlZCB0byBjb252ZXJzaW9uIGZ1bmN0aW9u cyB0bwotICAgc3BlY2lmeSB0aGUgZGVzaXJlZCBDIHRpbWVzdGFtcCBmb3JtLiAgKi8KLWVu dW0gY2Zvcm0KLSAgewotICAgIENGT1JNX1RJQ0tTX0haLCAvKiBzdHJ1Y3QgbGlzcF90aW1l ICovCi0gICAgQ0ZPUk1fU0VDU19PTkxZLCAvKiBzdHJ1Y3QgbGlzcF90aW1lIGJ1dCBIWiBp cyAxICovCi0gICAgQ0ZPUk1fRE9VQkxFIC8qIGRvdWJsZSAqLwotICB9OwotCi0vKiBBIEMg dGltZXN0YW1wIGluIG9uZSBvZiB0aGUgZm9ybXMgc3BlY2lmaWVkIGJ5IGVudW0gY2Zvcm0u ICAqLwotdW5pb24gY190aW1lCi17Ci0gIHN0cnVjdCBsaXNwX3RpbWUgbHQ7Ci0gIGRvdWJs ZSBkOwotfTsKLQotLyogRnJvbSBhIHZhbGlkIHRpbWVzdGFtcCAoVElDS1MgLiBIWiksIGdl bmVyYXRlIHRoZSBjb3JyZXNwb25kaW5nCi0gICB0aW1lIHZhbHVlIGluIENGT1JNIGZvcm0u ICAqLwotc3RhdGljIHVuaW9uIGNfdGltZQotZGVjb2RlX3RpY2tzX2h6IChMaXNwX09iamVj dCB0aWNrcywgTGlzcF9PYmplY3QgaHosIGVudW0gY2Zvcm0gY2Zvcm0pCi17Ci0gIHJldHVy biAoY2Zvcm0gPT0gQ0ZPUk1fRE9VQkxFCi0JICA/ICh1bmlvbiBjX3RpbWUpIHsgLmQgPSBm cmFjX3RvX2RvdWJsZSAodGlja3MsIGh6KSB9Ci0JICA6ICh1bmlvbiBjX3RpbWUpIHsgLmx0 ID0geyAudGlja3MgPSB0aWNrcywgLmh6ID0gaHogfSB9KTsKLX0KLQogLyogQW4gKGVycm9y IG51bWJlciwgQyB0aW1lc3RhbXApIHBhaXIuICAqLwogc3RydWN0IGVycl90aW1lCiB7CkBA IC05MzksOTUgKzEwMjgsNiBAQCBmbG9hdF90aW1lIChMaXNwX09iamVjdCBzcGVjaWZpZWRf dGltZSkKICAgcmV0dXJuIGRlY29kZV9saXNwX3RpbWUgKHNwZWNpZmllZF90aW1lLCBDRk9S TV9ET1VCTEUpLnRpbWUuZDsKIH0KIAotLyogQ29udmVydCBaIHRvIHRpbWVfdCwgcmV0dXJu aW5nIHRydWUgaWYgaXQgZml0cy4gICovCi1zdGF0aWMgYm9vbAotbXB6X3RpbWUgKG1wel90 IGNvbnN0IHosIHRpbWVfdCAqdCkKLXsKLSAgaWYgKFRZUEVfU0lHTkVEICh0aW1lX3QpKQot ICAgIHsKLSAgICAgIGludG1heF90IGk7Ci0gICAgICBpZiAoISAobXB6X3RvX2ludG1heCAo eiwgJmkpICYmIFRJTUVfVF9NSU4gPD0gaSAmJiBpIDw9IFRJTUVfVF9NQVgpKQotCXJldHVy biBmYWxzZTsKLSAgICAgICp0ID0gaTsKLSAgICB9Ci0gIGVsc2UKLSAgICB7Ci0gICAgICB1 aW50bWF4X3QgaTsKLSAgICAgIGlmICghIChtcHpfdG9fdWludG1heCAoeiwgJmkpICYmIGkg PD0gVElNRV9UX01BWCkpCi0JcmV0dXJuIGZhbHNlOwotICAgICAgKnQgPSBpOwotICAgIH0K LSAgcmV0dXJuIHRydWU7Ci19Ci0KLS8qIENvbnZlcnQgVCB0byBzdHJ1Y3QgdGltZXNwZWMs IHJldHVybmluZyBhbiBpbnZhbGlkIHRpbWVzcGVjCi0gICBpZiBUIGRvZXMgbm90IGZpdC4g ICovCi1zdGF0aWMgc3RydWN0IHRpbWVzcGVjCi1saXNwX3RvX3RpbWVzcGVjIChzdHJ1Y3Qg bGlzcF90aW1lIHQpCi17Ci0gIHN0cnVjdCB0aW1lc3BlYyByZXN1bHQgPSBpbnZhbGlkX3Rp bWVzcGVjICgpOwotICBpbnQgbnM7Ci0gIG1wel90ICpxID0gJm1welswXTsKLSAgbXB6X3Qg Y29uc3QgKnF0ID0gcTsKLQotICAvKiBGbG9vci1kaXZpZGUgKFQudGlja3MgKiBUSU1FU1BF Q19IWikgYnkgVC5oeiwKLSAgICAgeWllbGRpbmcgcXVvdGllbnQgUSAodHZfc2VjKSBhbmQg cmVtYWluZGVyIE5TICh0dl9uc2VjKS4KLSAgICAgUmV0dXJuIGFuIGludmFsaWQgdGltZXNw ZWMgaWYgUSBkb2VzIG5vdCBmaXQgaW4gdGltZV90LgotICAgICBGb3Igc3BlZWQsIHByZWZl ciBmaXhudW0gYXJpdGhtZXRpYyBpZiBpdCB3b3Jrcy4gICovCi0gIGlmIChGQVNURVJfVElN RUZOUyAmJiBCQVNFX0VRICh0Lmh6LCB0aW1lc3BlY19oeikpCi0gICAgewotICAgICAgaWYg KEZJWE5VTVAgKHQudGlja3MpKQotCXsKLQkgIEVNQUNTX0lOVCBzID0gWEZJWE5VTSAodC50 aWNrcykgLyBUSU1FU1BFQ19IWjsKLQkgIG5zID0gWEZJWE5VTSAodC50aWNrcykgJSBUSU1F U1BFQ19IWjsKLQkgIGlmIChucyA8IDApCi0JICAgIHMtLSwgbnMgKz0gVElNRVNQRUNfSFo7 Ci0JICBpZiAoKFRZUEVfU0lHTkVEICh0aW1lX3QpID8gVElNRV9UX01JTiA8PSBzIDogMCA8 PSBzKQotCSAgICAgICYmIHMgPD0gVElNRV9UX01BWCkKLQkgICAgewotCSAgICAgIHJlc3Vs dC50dl9zZWMgPSBzOwotCSAgICAgIHJlc3VsdC50dl9uc2VjID0gbnM7Ci0JICAgIH0KLQkg IHJldHVybiByZXN1bHQ7Ci0JfQotICAgICAgZWxzZQotCW5zID0gbXB6X2ZkaXZfcV91aSAo KnEsICp4YmlnbnVtX3ZhbCAodC50aWNrcyksIFRJTUVTUEVDX0haKTsKLSAgICB9Ci0gIGVs c2UgaWYgKEZBU1RFUl9USU1FRk5TICYmIEJBU0VfRVEgKHQuaHosIG1ha2VfZml4bnVtICgx KSkpCi0gICAgewotICAgICAgbnMgPSAwOwotICAgICAgaWYgKEZJWE5VTVAgKHQudGlja3Mp KQotCXsKLQkgIEVNQUNTX0lOVCBzID0gWEZJWE5VTSAodC50aWNrcyk7Ci0JICBpZiAoKFRZ UEVfU0lHTkVEICh0aW1lX3QpID8gVElNRV9UX01JTiA8PSBzIDogMCA8PSBzKQotCSAgICAg ICYmIHMgPD0gVElNRV9UX01BWCkKLQkgICAgewotCSAgICAgIHJlc3VsdC50dl9zZWMgPSBz OwotCSAgICAgIHJlc3VsdC50dl9uc2VjID0gbnM7Ci0JICAgIH0KLQkgIHJldHVybiByZXN1 bHQ7Ci0JfQotICAgICAgZWxzZQotCXF0ID0geGJpZ251bV92YWwgKHQudGlja3MpOwotICAg IH0KLSAgZWxzZQotICAgIHsKLSAgICAgIG1wel9tdWxfdWkgKCpxLCAqYmlnbnVtX2ludGVn ZXIgKHEsIHQudGlja3MpLCBUSU1FU1BFQ19IWik7Ci0gICAgICBtcHpfZmRpdl9xICgqcSwg KnEsICpiaWdudW1faW50ZWdlciAoJm1welsxXSwgdC5oeikpOwotICAgICAgbnMgPSBtcHpf ZmRpdl9xX3VpICgqcSwgKnEsIFRJTUVTUEVDX0haKTsKLSAgICB9Ci0KLSAgLyogQ2hlY2sg dGhhdCBRIGZpdHMgaW4gdGltZV90LCBub3QgbWVyZWx5IGluIFQudHZfc2VjLiAgV2l0aCBz b21lIHZlcnNpb25zCi0gICAgIG9mIE1pbkdXLCB0dl9zZWMgaXMgYSA2NC1iaXQgdHlwZSwg d2hlcmVhcyB0aW1lX3QgaXMgYSAzMi1iaXQgdHlwZS4gICovCi0gIHRpbWVfdCBzZWM7Ci0g IGlmIChtcHpfdGltZSAoKnF0LCAmc2VjKSkKLSAgICB7Ci0gICAgICByZXN1bHQudHZfc2Vj ID0gc2VjOwotICAgICAgcmVzdWx0LnR2X25zZWMgPSBuczsKLSAgICB9Ci0gIHJldHVybiBy ZXN1bHQ7Ci19Ci0KIC8qIENvbnZlcnQgKEhJR0ggTE9XIFVTRUMgUFNFQykgdG8gc3RydWN0 IHRpbWVzcGVjLgogICAgUmV0dXJuIGEgdmFsaWQgdGltZXN0YW1wIGlmIHN1Y2Nlc3NmdWws IGFuIGludmFsaWQgb25lIG90aGVyd2lzZS4gICovCiBzdHJ1Y3QgdGltZXNwZWMKLS0gCjIu MzQuMQoK --------------NfwiklpzcLJ7Hl9WQFyp0mbQ Content-Type: text/x-patch; charset=UTF-8; name="0003-Refactor-decode_ticks_hz-via-switch.patch" Content-Disposition: attachment; filename="0003-Refactor-decode_ticks_hz-via-switch.patch" Content-Transfer-Encoding: base64 RnJvbSBhNzliMjViOTg3ZjAyODhiZDBlNzczY2NiOWYyYjRhNDk1OTU4OThkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDcgSnVsIDIwMjQgMTY6MDU6NTIgKzAyMDAKU3ViamVjdDogW1BBVENI IDAzLzE3XSBSZWZhY3RvciBkZWNvZGVfdGlja3NfaHogdmlhIHN3aXRjaApNSU1FLVZlcnNp b246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVu dC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKKiBzcmMvdGltZWZucy5jIChkZWNvZGVfdGlj a3NfaHopOiBDaGFuZ2UgPzogdG8g4oCYc3dpdGNo4oCZLApmb3IgYmVuZWZpdCBvZiBmdXR1 cmUgY2hhbmdlcy4KLS0tCiBzcmMvdGltZWZucy5jIHwgMTEgKysrKysrKystLS0KIDEgZmls ZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjL3RpbWVmbnMuYyBiL3NyYy90aW1lZm5zLmMKaW5kZXggYTdhN2Q1NTI1MDYuLmFj NDFhM2Q2OTU4IDEwMDY0NAotLS0gYS9zcmMvdGltZWZucy5jCisrKyBiL3NyYy90aW1lZm5z LmMKQEAgLTYwNiw5ICs2MDYsMTQgQEAgbGlzcF90b190aW1lc3BlYyAoc3RydWN0IGxpc3Bf dGltZSB0KQogc3RhdGljIHVuaW9uIGNfdGltZQogZGVjb2RlX3RpY2tzX2h6IChMaXNwX09i amVjdCB0aWNrcywgTGlzcF9PYmplY3QgaHosIGVudW0gY2Zvcm0gY2Zvcm0pCiB7Ci0gIHJl dHVybiAoY2Zvcm0gPT0gQ0ZPUk1fRE9VQkxFCi0JICA/ICh1bmlvbiBjX3RpbWUpIHsgLmQg PSBmcmFjX3RvX2RvdWJsZSAodGlja3MsIGh6KSB9Ci0JICA6ICh1bmlvbiBjX3RpbWUpIHsg Lmx0ID0geyAudGlja3MgPSB0aWNrcywgLmh6ID0gaHogfSB9KTsKKyAgc3dpdGNoIChjZm9y bSkKKyAgICB7CisgICAgY2FzZSBDRk9STV9ET1VCTEU6CisgICAgICByZXR1cm4gKHVuaW9u IGNfdGltZSkgeyAuZCA9IGZyYWNfdG9fZG91YmxlICh0aWNrcywgaHopIH07CisKKyAgICBk ZWZhdWx0OgorICAgICAgcmV0dXJuICh1bmlvbiBjX3RpbWUpIHsgLmx0ID0geyAudGlja3Mg PSB0aWNrcywgLmh6ID0gaHogfSB9OworICAgIH0KIH0KIAogLyogQ29udmVydCB0aGUgZmlu aXRlIG51bWJlciBUIGludG8gYW4gRW1hY3MgdGltZSwgdHJ1bmNhdGluZwotLSAKMi4zNC4x Cgo= --------------NfwiklpzcLJ7Hl9WQFyp0mbQ Content-Type: text/x-patch; charset=UTF-8; name="0004-Split-lisp_to_timespec-in-two.patch" Content-Disposition: attachment; filename="0004-Split-lisp_to_timespec-in-two.patch" Content-Transfer-Encoding: base64 RnJvbSBjY2E1MGMxN2Y0ZWRmMTFlNGRkZTQ4NGQwY2ZjNjJiNzQwYjgxNjNhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDcgSnVsIDIwMjQgMTY6MTg6MTggKzAyMDAKU3ViamVjdDogW1BBVENI IDA0LzE3XSBTcGxpdCBsaXNwX3RvX3RpbWVzcGVjIGluIHR3bwoKKiBzcmMvdGltZWZucy5j ICh0aWNrc19oel90b190aW1lc3BlYyk6IE5ldyBmdW5jdGlvbiwKd2hpY2ggaXMgYWxtb3N0 IGFsbCB0aGUgb2xkIGxpc3BfdG9fdGltZXNwZWMgYnV0IHdpdGgKYSAyLWFyZyBBUEkuICBU aGlzIHNob3VsZCBoZWxwIGZ1cnRoZXIgY2hhbmdlcy4KKGxpc3BfdG9fdGltZXNwZWMpOiBV c2UgaXQuCi0tLQogc3JjL3RpbWVmbnMuYyB8IDQyICsrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDI1IGluc2VydGlvbnMoKyks IDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy90aW1lZm5zLmMgYi9zcmMvdGlt ZWZucy5jCmluZGV4IGFjNDFhM2Q2OTU4Li5jNzQ4ODY3YjU0ZCAxMDA2NDQKLS0tIGEvc3Jj L3RpbWVmbnMuYworKysgYi9zcmMvdGltZWZucy5jCkBAIC01MTcsMjYgKzUxNywyNiBAQCBt cHpfdGltZSAobXB6X3QgY29uc3QgeiwgdGltZV90ICp0KQogICBMaXNwX09iamVjdCBoejsK IH07CiAKLS8qIENvbnZlcnQgVCB0byBzdHJ1Y3QgdGltZXNwZWMsIHJldHVybmluZyBhbiBp bnZhbGlkIHRpbWVzcGVjCi0gICBpZiBUIGRvZXMgbm90IGZpdC4gICovCisvKiBDb252ZXJ0 IChUSUNLUyAuIEhaKSB0byBzdHJ1Y3QgdGltZXNwZWMsIHJldHVybmluZyBhbiBpbnZhbGlk CisgICB0aW1lc3BlYyBpZiB0aGUgcmVzdWx0IHdvdWxkIG5vdCBmaXQuICAqLwogc3RhdGlj IHN0cnVjdCB0aW1lc3BlYwotbGlzcF90b190aW1lc3BlYyAoc3RydWN0IGxpc3BfdGltZSB0 KQordGlja3NfaHpfdG9fdGltZXNwZWMgKExpc3BfT2JqZWN0IHRpY2tzLCBMaXNwX09iamVj dCBoeikKIHsKICAgc3RydWN0IHRpbWVzcGVjIHJlc3VsdCA9IGludmFsaWRfdGltZXNwZWMg KCk7CiAgIGludCBuczsKICAgbXB6X3QgKnEgPSAmbXB6WzBdOwogICBtcHpfdCBjb25zdCAq cXQgPSBxOwogCi0gIC8qIEZsb29yLWRpdmlkZSAoVC50aWNrcyAqIFRJTUVTUEVDX0haKSBi eSBULmh6LAorICAvKiBGbG9vci1kaXZpZGUgKFRJQ0tTICogVElNRVNQRUNfSFopIGJ5IEha LAogICAgICB5aWVsZGluZyBxdW90aWVudCBRICh0dl9zZWMpIGFuZCByZW1haW5kZXIgTlMg KHR2X25zZWMpLgogICAgICBSZXR1cm4gYW4gaW52YWxpZCB0aW1lc3BlYyBpZiBRIGRvZXMg bm90IGZpdCBpbiB0aW1lX3QuCiAgICAgIEZvciBzcGVlZCwgcHJlZmVyIGZpeG51bSBhcml0 aG1ldGljIGlmIGl0IHdvcmtzLiAgKi8KLSAgaWYgKEZBU1RFUl9USU1FRk5TICYmIEJBU0Vf RVEgKHQuaHosIHRpbWVzcGVjX2h6KSkKKyAgaWYgKEZBU1RFUl9USU1FRk5TICYmIEJBU0Vf RVEgKGh6LCB0aW1lc3BlY19oeikpCiAgICAgewotICAgICAgaWYgKEZJWE5VTVAgKHQudGlj a3MpKQorICAgICAgaWYgKEZJWE5VTVAgKHRpY2tzKSkKIAl7Ci0JICBFTUFDU19JTlQgcyA9 IFhGSVhOVU0gKHQudGlja3MpIC8gVElNRVNQRUNfSFo7Ci0JICBucyA9IFhGSVhOVU0gKHQu dGlja3MpICUgVElNRVNQRUNfSFo7CisJICBFTUFDU19JTlQgcyA9IFhGSVhOVU0gKHRpY2tz KSAvIFRJTUVTUEVDX0haOworCSAgbnMgPSBYRklYTlVNICh0aWNrcykgJSBUSU1FU1BFQ19I WjsKIAkgIGlmIChucyA8IDApCiAJICAgIHMtLSwgbnMgKz0gVElNRVNQRUNfSFo7CiAJICBp ZiAoKFRZUEVfU0lHTkVEICh0aW1lX3QpID8gVElNRV9UX01JTiA8PSBzIDogMCA8PSBzKQpA QCAtNTQ4LDE0ICs1NDgsMTQgQEAgbGlzcF90b190aW1lc3BlYyAoc3RydWN0IGxpc3BfdGlt ZSB0KQogCSAgcmV0dXJuIHJlc3VsdDsKIAl9CiAgICAgICBlbHNlCi0JbnMgPSBtcHpfZmRp dl9xX3VpICgqcSwgKnhiaWdudW1fdmFsICh0LnRpY2tzKSwgVElNRVNQRUNfSFopOworCW5z ID0gbXB6X2ZkaXZfcV91aSAoKnEsICp4YmlnbnVtX3ZhbCAodGlja3MpLCBUSU1FU1BFQ19I Wik7CiAgICAgfQotICBlbHNlIGlmIChGQVNURVJfVElNRUZOUyAmJiBCQVNFX0VRICh0Lmh6 LCBtYWtlX2ZpeG51bSAoMSkpKQorICBlbHNlIGlmIChGQVNURVJfVElNRUZOUyAmJiBCQVNF X0VRIChoeiwgbWFrZV9maXhudW0gKDEpKSkKICAgICB7CiAgICAgICBucyA9IDA7Ci0gICAg ICBpZiAoRklYTlVNUCAodC50aWNrcykpCisgICAgICBpZiAoRklYTlVNUCAodGlja3MpKQog CXsKLQkgIEVNQUNTX0lOVCBzID0gWEZJWE5VTSAodC50aWNrcyk7CisJICBFTUFDU19JTlQg cyA9IFhGSVhOVU0gKHRpY2tzKTsKIAkgIGlmICgoVFlQRV9TSUdORUQgKHRpbWVfdCkgPyBU SU1FX1RfTUlOIDw9IHMgOiAwIDw9IHMpCiAJICAgICAgJiYgcyA8PSBUSU1FX1RfTUFYKQog CSAgICB7CkBAIC01NjUsMTcgKzU2NSwxNyBAQCBsaXNwX3RvX3RpbWVzcGVjIChzdHJ1Y3Qg bGlzcF90aW1lIHQpCiAJICByZXR1cm4gcmVzdWx0OwogCX0KICAgICAgIGVsc2UKLQlxdCA9 IHhiaWdudW1fdmFsICh0LnRpY2tzKTsKKwlxdCA9IHhiaWdudW1fdmFsICh0aWNrcyk7CiAg ICAgfQogICBlbHNlCiAgICAgewotICAgICAgbXB6X211bF91aSAoKnEsICpiaWdudW1faW50 ZWdlciAocSwgdC50aWNrcyksIFRJTUVTUEVDX0haKTsKLSAgICAgIG1wel9mZGl2X3EgKCpx LCAqcSwgKmJpZ251bV9pbnRlZ2VyICgmbXB6WzFdLCB0Lmh6KSk7CisgICAgICBtcHpfbXVs X3VpICgqcSwgKmJpZ251bV9pbnRlZ2VyIChxLCB0aWNrcyksIFRJTUVTUEVDX0haKTsKKyAg ICAgIG1wel9mZGl2X3EgKCpxLCAqcSwgKmJpZ251bV9pbnRlZ2VyICgmbXB6WzFdLCBoeikp OwogICAgICAgbnMgPSBtcHpfZmRpdl9xX3VpICgqcSwgKnEsIFRJTUVTUEVDX0haKTsKICAg ICB9CiAKLSAgLyogQ2hlY2sgdGhhdCBRIGZpdHMgaW4gdGltZV90LCBub3QgbWVyZWx5IGlu IFQudHZfc2VjLiAgV2l0aCBzb21lIHZlcnNpb25zCi0gICAgIG9mIE1pbkdXLCB0dl9zZWMg aXMgYSA2NC1iaXQgdHlwZSwgd2hlcmVhcyB0aW1lX3QgaXMgYSAzMi1iaXQgdHlwZS4gICov CisgIC8qIENoZWNrIHRoYXQgUSBmaXRzIGluIHRpbWVfdCwgbm90IG1lcmVseSBpbiBSRVNV TFQudHZfc2VjLiAgV2l0aCBzb21lIE1pbkdXCisgICAgIHZlcnNpb25zLCB0dl9zZWMgaXMg YSA2NC1iaXQgdHlwZSwgd2hlcmVhcyB0aW1lX3QgaXMgYSAzMi1iaXQgdHlwZS4gICovCiAg IHRpbWVfdCBzZWM7CiAgIGlmIChtcHpfdGltZSAoKnF0LCAmc2VjKSkKICAgICB7CkBAIC01 ODUsNiArNTg1LDE0IEBAIGxpc3BfdG9fdGltZXNwZWMgKHN0cnVjdCBsaXNwX3RpbWUgdCkK ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorLyogQ29udmVydCBUIHRvIHN0cnVjdCB0aW1lc3Bl YywgcmV0dXJuaW5nIGFuIGludmFsaWQgdGltZXNwZWMKKyAgIGlmIFQgZG9lcyBub3QgZml0 LiAgKi8KK3N0YXRpYyBzdHJ1Y3QgdGltZXNwZWMKK2xpc3BfdG9fdGltZXNwZWMgKHN0cnVj dCBsaXNwX3RpbWUgdCkKK3sKKyAgcmV0dXJuIHRpY2tzX2h6X3RvX3RpbWVzcGVjICh0LnRp Y2tzLCB0Lmh6KTsKK30KKwogLyogQyB0aW1lc3RhbXAgZm9ybXMuICBUaGlzIGVudW0gaXMg cGFzc2VkIHRvIGNvbnZlcnNpb24gZnVuY3Rpb25zIHRvCiAgICBzcGVjaWZ5IHRoZSBkZXNp cmVkIEMgdGltZXN0YW1wIGZvcm0uICAqLwogZW51bSBjZm9ybQotLSAKMi4zNC4xCgo= --------------NfwiklpzcLJ7Hl9WQFyp0mbQ Content-Type: text/x-patch; charset=UTF-8; name="0005-Push-some-time-conversions-down.patch" Content-Disposition: attachment; filename="0005-Push-some-time-conversions-down.patch" Content-Transfer-Encoding: base64 RnJvbSBmYWY3ODAwM2RmYjMxMGIyZDM4MWIxNzQ4YzU3YmU1Njg2MzJjYThiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDcgSnVsIDIwMjQgMjA6NTA6NDcgKzAyMDAKU3ViamVjdDogW1BBVENI IDA1LzE3XSBQdXNoIHNvbWUgdGltZSBjb252ZXJzaW9ucyBkb3duCgoqIHNyYy90aW1lZm5z LmM6IFB1c2ggc29tZSB0aW1lIGNvbnZlcnNpb25zIGRvd24gdG8gbG93ZXIgbGV2ZWwgZm5z LgpUaGlzIGlzIGEgd2luIGluIGl0cyBvd24gcmlnaHQgYW5kIHNob3VsZCBhbGxvdyBmb3Ig ZnVydGhlciBzcGVlZHVwcy4KKGxpc3BfdG9fdGltZXNwZWMpOiBSZW1vdmU7IHRoaXMgY29u dmVuaWVuY2UgZnVuY3Rpb24gaXMgbm8gbG9uZ2VyCm5lZWRlZCBub3cgdGhhdCB0aGVyZSB3 b3VsZCBiZSBvbmx5IG9uZSBjYWxsZXIuICBSZW1haW5pbmcgY2FsbGVyCmNoYW5nZWQgdG8g dXNlIGRlZmluaWVucy4KKGVudW0gY2Zvcm0pOiBOZXcgY29uc3RhbnQgQ0ZPUk1fVElNRVNQ RUMuICBBbHNvLCBDRk9STV9TRUNTX09OTFkKbm93IGdlbmVyYXRlcyBhIHN0cnVjdCB0aW1l c3BlYyBpbnN0ZWFkIG9mIGEgc3RydWN0IGxpc3BfdGltZS4KKHVuaW9uIGNfdGltZS50cyk6 IE5ldyBtZW1iZXIuCihkZWNvZGVfdGlja3NfaHopOiBIYW5kbGUgbmV3IHN0cnVjdCB0aW1l c3BlYyBjYXNlcy4KKGRlY29kZV9mbG9hdF90aW1lLCBsaXNwX3RpbWVfc3RydWN0KTogTmV3 IGFyZyBjZm9ybSwgYW5kIHJldHVybgp1bmlvbiBjX3RpbWUgcmF0aGVyIHRoYW4gc3RydWN0 IGxpc3BfdGltZS4gIEFsbCBjYWxsZXJzIGNoYW5nZWQuCihsaXN0NF90b190aW1lc3BlYywg bGlzcF90aW1lX2FyZ3VtZW50LCBsaXNwX3NlY29uZHNfYXJndW1lbnQpOgpMZXQgbG93ZXIt bGV2ZWwgZnVuY3Rpb24gZG8gdGhlIGNvbnZlcnNpb24sIHRvIGFsbG93IGZvciBiZXR0ZXIK b3B0aW1pemF0aW9uLgotLS0KIHNyYy90aW1lZm5zLmMgfCA2MSArKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAy OCBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvdGlt ZWZucy5jIGIvc3JjL3RpbWVmbnMuYwppbmRleCBjNzQ4ODY3YjU0ZC4uY2MxNDhmYTk3NTIg MTAwNjQ0Ci0tLSBhL3NyYy90aW1lZm5zLmMKKysrIGIvc3JjL3RpbWVmbnMuYwpAQCAtNTg1 LDIwICs1ODUsMTMgQEAgdGlja3NfaHpfdG9fdGltZXNwZWMgKExpc3BfT2JqZWN0IHRpY2tz LCBMaXNwX09iamVjdCBoeikKICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotLyogQ29udmVydCBU IHRvIHN0cnVjdCB0aW1lc3BlYywgcmV0dXJuaW5nIGFuIGludmFsaWQgdGltZXNwZWMKLSAg IGlmIFQgZG9lcyBub3QgZml0LiAgKi8KLXN0YXRpYyBzdHJ1Y3QgdGltZXNwZWMKLWxpc3Bf dG9fdGltZXNwZWMgKHN0cnVjdCBsaXNwX3RpbWUgdCkKLXsKLSAgcmV0dXJuIHRpY2tzX2h6 X3RvX3RpbWVzcGVjICh0LnRpY2tzLCB0Lmh6KTsKLX0KLQogLyogQyB0aW1lc3RhbXAgZm9y bXMuICBUaGlzIGVudW0gaXMgcGFzc2VkIHRvIGNvbnZlcnNpb24gZnVuY3Rpb25zIHRvCiAg ICBzcGVjaWZ5IHRoZSBkZXNpcmVkIEMgdGltZXN0YW1wIGZvcm0uICAqLwogZW51bSBjZm9y bQogICB7CiAgICAgQ0ZPUk1fVElDS1NfSFosIC8qIHN0cnVjdCBsaXNwX3RpbWUgKi8KLSAg ICBDRk9STV9TRUNTX09OTFksIC8qIHN0cnVjdCBsaXNwX3RpbWUgYnV0IEhaIGlzIDEgKi8K KyAgICBDRk9STV9USU1FU1BFQywgLyogc3RydWN0IHRpbWVzcGVjICovCisgICAgQ0ZPUk1f U0VDU19PTkxZLCAvKiBzdHJ1Y3QgdGltZXNwZWMgYnV0IHR2X25zZWMgPT0gMCBpZiB0aW1l c3BlYyB2YWxpZCAqLwogICAgIENGT1JNX0RPVUJMRSAvKiBkb3VibGUgKi8KICAgfTsKIApA QCAtNjA2LDYgKzU5OSw3IEBAIGxpc3BfdG9fdGltZXNwZWMgKHN0cnVjdCBsaXNwX3RpbWUg dCkKIHVuaW9uIGNfdGltZQogewogICBzdHJ1Y3QgbGlzcF90aW1lIGx0OworICBzdHJ1Y3Qg dGltZXNwZWMgdHM7CiAgIGRvdWJsZSBkOwogfTsKIApAQCAtNjE5LDE2ICs2MTMsMjIgQEAg ZGVjb2RlX3RpY2tzX2h6IChMaXNwX09iamVjdCB0aWNrcywgTGlzcF9PYmplY3QgaHosIGVu dW0gY2Zvcm0gY2Zvcm0pCiAgICAgY2FzZSBDRk9STV9ET1VCTEU6CiAgICAgICByZXR1cm4g KHVuaW9uIGNfdGltZSkgeyAuZCA9IGZyYWNfdG9fZG91YmxlICh0aWNrcywgaHopIH07CiAK LSAgICBkZWZhdWx0OgorICAgIGNhc2UgQ0ZPUk1fVElDS1NfSFo6CiAgICAgICByZXR1cm4g KHVuaW9uIGNfdGltZSkgeyAubHQgPSB7IC50aWNrcyA9IHRpY2tzLCAuaHogPSBoeiB9IH07 CisKKyAgICBkZWZhdWx0OgorICAgICAgcmV0dXJuICh1bmlvbiBjX3RpbWUpIHsgLnRzID0g dGlja3NfaHpfdG9fdGltZXNwZWMgKHRpY2tzLCBoeikgfTsKICAgICB9CiB9CiAKLS8qIENv bnZlcnQgdGhlIGZpbml0ZSBudW1iZXIgVCBpbnRvIGFuIEVtYWNzIHRpbWUsIHRydW5jYXRp bmcKKy8qIENvbnZlcnQgdGhlIGZpbml0ZSBudW1iZXIgVCBpbnRvIGEgQyB0aW1lIG9mIGZv cm0gQ0ZPUk0sIHRydW5jYXRpbmcKICAgIHRvd2FyZCBtaW51cyBpbmZpbml0eS4gIFNpZ25h bCBhbiBlcnJvciBpZiB1bnN1Y2Nlc3NmdWwuICAqLwotc3RhdGljIHN0cnVjdCBsaXNwX3Rp bWUKLWRlY29kZV9mbG9hdF90aW1lIChkb3VibGUgdCkKK3N0YXRpYyB1bmlvbiBjX3RpbWUK K2RlY29kZV9mbG9hdF90aW1lIChkb3VibGUgdCwgZW51bSBjZm9ybSBjZm9ybSkKIHsKKyAg aWYgKEZBU1RFUl9USU1FRk5TICYmIGNmb3JtID09IENGT1JNX0RPVUJMRSkKKyAgICByZXR1 cm4gKHVuaW9uIGNfdGltZSkgeyAuZCA9IHQgfTsKKwogICBMaXNwX09iamVjdCB0aWNrcywg aHo7CiAgIGlmICh0ID09IDApCiAgICAgewpAQCAtNjcxLDcgKzY3MSw3IEBAIGRlY29kZV9m bG9hdF90aW1lIChkb3VibGUgdCkKIAkgIEFTRVQgKGZsdF9yYWRpeF9wb3dlciwgc2NhbGUs IGh6KTsKIAl9CiAgICAgfQotICByZXR1cm4gKHN0cnVjdCBsaXNwX3RpbWUpIHsgLnRpY2tz ID0gdGlja3MsIC5oeiA9IGh6IH07CisgIHJldHVybiBkZWNvZGVfdGlja3NfaHogKHRpY2tz LCBoeiwgY2Zvcm0pOwogfQogCiAvKiBNYWtlIGEgNC1lbGVtZW50IHRpbWVzdGFtcCAoSEkg TE8gVVMgUFMpIGZyb20gVElDS1MgYW5kIEhaLgpAQCAtMTAxOSwxMCArMTAxOSw3IEBAIGRl Y29kZV9saXNwX3RpbWUgKExpc3BfT2JqZWN0IHNwZWNpZmllZF90aW1lLCBlbnVtIGNmb3Jt IGNmb3JtKQogICAgICAgcmV0dXJuIChzdHJ1Y3QgZm9ybV90aW1lKQogCXsKIAkgIC5mb3Jt ID0gVElNRUZPUk1fRkxPQVQsCi0JICAudGltZQotCSAgICA9IChjZm9ybSA9PSBDRk9STV9E T1VCTEUKLQkgICAgICAgPyAodW5pb24gY190aW1lKSB7IC5kID0gZCB9Ci0JICAgICAgIDog KHVuaW9uIGNfdGltZSkgeyAubHQgPSBkZWNvZGVfZmxvYXRfdGltZSAoZCkgfSkKKwkgIC50 aW1lID0gZGVjb2RlX2Zsb2F0X3RpbWUgKGQsIGNmb3JtKQogCX07CiAgICAgfQogCkBAIC0x MDQ5LDE5ICsxMDQ2LDE4IEBAIGxpc3Q0X3RvX3RpbWVzcGVjIChMaXNwX09iamVjdCBoaWdo LCBMaXNwX09iamVjdCBsb3csCiB7CiAgIHN0cnVjdCBlcnJfdGltZSBlcnJfdGltZQogICAg ID0gZGVjb2RlX3RpbWVfY29tcG9uZW50cyAoVElNRUZPUk1fSElfTE9fVVNfUFMsIGhpZ2gs IGxvdywgdXNlYywgcHNlYywKLQkJCSAgICAgIENGT1JNX1RJQ0tTX0haKTsKLSAgcmV0dXJu IChlcnJfdGltZS5lcnIKLQkgID8gaW52YWxpZF90aW1lc3BlYyAoKQotCSAgOiBsaXNwX3Rv X3RpbWVzcGVjIChlcnJfdGltZS50aW1lLmx0KSk7CisJCQkgICAgICBDRk9STV9USU1FU1BF Qyk7CisgIHJldHVybiBlcnJfdGltZS5lcnIgPyBpbnZhbGlkX3RpbWVzcGVjICgpIDogZXJy X3RpbWUudGltZS50czsKIH0KIAogLyogRGVjb2RlIGEgTGlzcCBsaXN0IFNQRUNJRklFRF9U SU1FIHRoYXQgcmVwcmVzZW50cyBhIHRpbWUuCiAgICBJZiBTUEVDSUZJRURfVElNRSBpcyBu aWwsIHVzZSB0aGUgY3VycmVudCB0aW1lLgorICAgRGVjb2RlIHRvIENGT1JNIGZvcm0uCiAg ICBTaWduYWwgYW4gZXJyb3IgaWYgU1BFQ0lGSUVEX1RJTUUgZG9lcyBub3QgcmVwcmVzZW50 IGEgdGltZS4gICovCi1zdGF0aWMgc3RydWN0IGxpc3BfdGltZQotbGlzcF90aW1lX3N0cnVj dCAoTGlzcF9PYmplY3Qgc3BlY2lmaWVkX3RpbWUpCitzdGF0aWMgdW5pb24gY190aW1lCits aXNwX3RpbWVfc3RydWN0IChMaXNwX09iamVjdCBzcGVjaWZpZWRfdGltZSwgZW51bSBjZm9y bSBjZm9ybSkKIHsKLSAgcmV0dXJuIGRlY29kZV9saXNwX3RpbWUgKHNwZWNpZmllZF90aW1l LCBDRk9STV9USUNLU19IWikudGltZS5sdDsKKyAgcmV0dXJuIGRlY29kZV9saXNwX3RpbWUg KHNwZWNpZmllZF90aW1lLCBjZm9ybSkudGltZTsKIH0KIAogLyogRGVjb2RlIGEgTGlzcCBs aXN0IFNQRUNJRklFRF9USU1FIHRoYXQgcmVwcmVzZW50cyBhIHRpbWUuCkBAIC0xMDcxLDgg KzEwNjcsNyBAQCBsaXNwX3RpbWVfc3RydWN0IChMaXNwX09iamVjdCBzcGVjaWZpZWRfdGlt ZSkKIHN0cnVjdCB0aW1lc3BlYwogbGlzcF90aW1lX2FyZ3VtZW50IChMaXNwX09iamVjdCBz cGVjaWZpZWRfdGltZSkKIHsKLSAgc3RydWN0IGxpc3BfdGltZSBsdCA9IGxpc3BfdGltZV9z dHJ1Y3QgKHNwZWNpZmllZF90aW1lKTsKLSAgc3RydWN0IHRpbWVzcGVjIHQgPSBsaXNwX3Rv X3RpbWVzcGVjIChsdCk7CisgIHN0cnVjdCB0aW1lc3BlYyB0ID0gbGlzcF90aW1lX3N0cnVj dCAoc3BlY2lmaWVkX3RpbWUsIENGT1JNX1RJTUVTUEVDKS50czsKICAgaWYgKCEgdGltZXNw ZWNfdmFsaWRfcCAodCkpCiAgICAgdGltZV9vdmVyZmxvdyAoKTsKICAgcmV0dXJuIHQ7CkBA IC0xMDgzLDggKzEwNzgsOCBAQCBsaXNwX3RpbWVfYXJndW1lbnQgKExpc3BfT2JqZWN0IHNw ZWNpZmllZF90aW1lKQogc3RhdGljIHRpbWVfdAogbGlzcF9zZWNvbmRzX2FyZ3VtZW50IChM aXNwX09iamVjdCBzcGVjaWZpZWRfdGltZSkKIHsKLSAgc3RydWN0IGZvcm1fdGltZSBmdCA9 IGRlY29kZV9saXNwX3RpbWUgKHNwZWNpZmllZF90aW1lLCBDRk9STV9TRUNTX09OTFkpOwot ICBzdHJ1Y3QgdGltZXNwZWMgdCA9IGxpc3BfdG9fdGltZXNwZWMgKGZ0LnRpbWUubHQpOwor ICBzdHJ1Y3QgdGltZXNwZWMgdAorICAgID0gZGVjb2RlX2xpc3BfdGltZSAoc3BlY2lmaWVk X3RpbWUsIENGT1JNX1NFQ1NfT05MWSkudGltZS50czsKICAgaWYgKCEgdGltZXNwZWNfdmFs aWRfcCAodCkpCiAgICAgdGltZV9vdmVyZmxvdyAoKTsKICAgcmV0dXJuIHQudHZfc2VjOwpA QCAtMTI3Niw4ICsxMjcxLDggQEAgdGltZV9jbXAgKExpc3BfT2JqZWN0IGEsIExpc3BfT2Jq ZWN0IGIpCiAKICAgLyogQ29tcGFyZSAoQVRJQ0tTIC4gQVopIHRvIChCVElDS1MgLiBCSFop IGJ5IGNvbXBhcmluZwogICAgICBBVElDS1MgKiBCSFogdG8gQlRJQ0tTICogQUhaLiAgKi8K LSAgc3RydWN0IGxpc3BfdGltZSB0YSA9IGxpc3BfdGltZV9zdHJ1Y3QgKGEpOwotICBzdHJ1 Y3QgbGlzcF90aW1lIHRiID0gbGlzcF90aW1lX3N0cnVjdCAoYik7CisgIHN0cnVjdCBsaXNw X3RpbWUgdGEgPSBsaXNwX3RpbWVfc3RydWN0IChhLCBDRk9STV9USUNLU19IWikubHQ7Cisg IHN0cnVjdCBsaXNwX3RpbWUgdGIgPSBsaXNwX3RpbWVfc3RydWN0IChiLCBDRk9STV9USUNL U19IWikubHQ7CiAgIG1wel90IGNvbnN0ICp6YSA9IGJpZ251bV9pbnRlZ2VyICgmbXB6WzBd LCB0YS50aWNrcyk7CiAgIG1wel90IGNvbnN0ICp6YiA9IGJpZ251bV9pbnRlZ2VyICgmbXB6 WzFdLCB0Yi50aWNrcyk7CiAgIGlmICghIChGQVNURVJfVElNRUZOUyAmJiBCQVNFX0VRICh0 YS5oeiwgdGIuaHopKSkKQEAgLTE1NTQsOCArMTU0OSw4IEBAIERFRlVOICgiZGVjb2RlLXRp bWUiLCBGZGVjb2RlX3RpbWUsIFNkZWNvZGVfdGltZSwgMCwgMywgMCwKICAgKExpc3BfT2Jq ZWN0IHNwZWNpZmllZF90aW1lLCBMaXNwX09iamVjdCB6b25lLCBMaXNwX09iamVjdCBmb3Jt KQogewogICAvKiBDb21wdXRlIGJyb2tlbi1kb3duIGxvY2FsIHRpbWUgTE9DQUxfVE0gZnJv bSBTUEVDSUZJRURfVElNRSBhbmQgWk9ORS4gICovCi0gIHN0cnVjdCBsaXNwX3RpbWUgbHQg PSBsaXNwX3RpbWVfc3RydWN0IChzcGVjaWZpZWRfdGltZSk7Ci0gIHN0cnVjdCB0aW1lc3Bl YyB0cyA9IGxpc3BfdG9fdGltZXNwZWMgKGx0KTsKKyAgc3RydWN0IGxpc3BfdGltZSBsdCA9 IGxpc3BfdGltZV9zdHJ1Y3QgKHNwZWNpZmllZF90aW1lLCBDRk9STV9USUNLU19IWikubHQ7 CisgIHN0cnVjdCB0aW1lc3BlYyB0cyA9IHRpY2tzX2h6X3RvX3RpbWVzcGVjIChsdC50aWNr cywgbHQuaHopOwogICBpZiAoISB0aW1lc3BlY192YWxpZF9wICh0cykpCiAgICAgdGltZV9v dmVyZmxvdyAoKTsKICAgdGltZV90IHRpbWVfc3BlYyA9IHRzLnR2X3NlYzsKLS0gCjIuMzQu MQoK --------------NfwiklpzcLJ7Hl9WQFyp0mbQ Content-Type: text/x-patch; charset=UTF-8; name="0006-Speed-up-decode-time-when-not-doing-subseconds.patch" Content-Disposition: attachment; filename*0="0006-Speed-up-decode-time-when-not-doing-subseconds.patch" Content-Transfer-Encoding: base64 RnJvbSAxOGMzOGJmODI3ZDc2NWU1YWNjNTMzZDY0ZWQ5MGEyYmZmMzhlYzgxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTdW4sIDcgSnVsIDIwMjQgMjE6MzQ6MjMgKzAyMDAKU3ViamVjdDogW1BBVENI IDA2LzE3XSBTcGVlZCB1cCBkZWNvZGUtdGltZSB3aGVuIG5vdCBkb2luZyBzdWJzZWNvbmRz CgoqIHNyYy90aW1lZm5zLmMgKEZkZWNvZGVfdGltZSk6IEF2b2lkIHNvbWUgdW5uZWNlc3Nh cnkgY29udmVyc2lvbnMKaW4gdGhlIGNvbW1vbiBjYXNlIHdoZXJlIHN1YnNlY29uZCByZXNv bHV0aW9uIGlzIG5vdCByZXF1aXJlZC4KLS0tCiBzcmMvdGltZWZucy5jIHwgMzEgKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIzIGluc2VydGlv bnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3RpbWVmbnMuYyBiL3Ny Yy90aW1lZm5zLmMKaW5kZXggY2MxNDhmYTk3NTIuLmRlZDMxOTk3NjIwIDEwMDY0NAotLS0g YS9zcmMvdGltZWZucy5jCisrKyBiL3NyYy90aW1lZm5zLmMKQEAgLTE1NDgsMTIgKzE1NDgs MjcgQEAgREVGVU4gKCJkZWNvZGUtdGltZSIsIEZkZWNvZGVfdGltZSwgU2RlY29kZV90aW1l LCAwLCAzLCAwLAogdXNhZ2U6IChkZWNvZGUtdGltZSAmb3B0aW9uYWwgVElNRSBaT05FIEZP Uk0pICAqLykKICAgKExpc3BfT2JqZWN0IHNwZWNpZmllZF90aW1lLCBMaXNwX09iamVjdCB6 b25lLCBMaXNwX09iamVjdCBmb3JtKQogewotICAvKiBDb21wdXRlIGJyb2tlbi1kb3duIGxv Y2FsIHRpbWUgTE9DQUxfVE0gZnJvbSBTUEVDSUZJRURfVElNRSBhbmQgWk9ORS4gICovCi0g IHN0cnVjdCBsaXNwX3RpbWUgbHQgPSBsaXNwX3RpbWVfc3RydWN0IChzcGVjaWZpZWRfdGlt ZSwgQ0ZPUk1fVElDS1NfSFopLmx0OwotICBzdHJ1Y3QgdGltZXNwZWMgdHMgPSB0aWNrc19o el90b190aW1lc3BlYyAobHQudGlja3MsIGx0Lmh6KTsKLSAgaWYgKCEgdGltZXNwZWNfdmFs aWRfcCAodHMpKQotICAgIHRpbWVfb3ZlcmZsb3cgKCk7Ci0gIHRpbWVfdCB0aW1lX3NwZWMg PSB0cy50dl9zZWM7CisgIC8qIENvbnZlcnQgU1BFQ0lGSUVEX1RJTUUgdG8gVElNRV9TUEVD IGFuZCBIWjsKKyAgICAgaWYgSFogIT0gMSBhbHNvIHNldCBMVC50aWNrcy4gICovCisgIHRp bWVfdCB0aW1lX3NwZWM7CisgIExpc3BfT2JqZWN0IGh6OworICBzdHJ1Y3QgbGlzcF90aW1l IGx0OworICBpZiAoRVEgKGZvcm0sIFF0KSkKKyAgICB7CisgICAgICBsdCA9IGxpc3BfdGlt ZV9zdHJ1Y3QgKHNwZWNpZmllZF90aW1lLCBDRk9STV9USUNLU19IWikubHQ7CisgICAgICBz dHJ1Y3QgdGltZXNwZWMgdHMgPSB0aWNrc19oel90b190aW1lc3BlYyAobHQudGlja3MsIGx0 Lmh6KTsKKyAgICAgIGlmICghIHRpbWVzcGVjX3ZhbGlkX3AgKHRzKSkKKwl0aW1lX292ZXJm bG93ICgpOworICAgICAgdGltZV9zcGVjID0gdHMudHZfc2VjOworICAgICAgaHogPSBsdC5o ejsKKyAgICB9CisgIGVsc2UKKyAgICB7CisgICAgICB0aW1lX3NwZWMgPSBsaXNwX3NlY29u ZHNfYXJndW1lbnQgKHNwZWNpZmllZF90aW1lKTsKKyAgICAgIGh6ID0gbWFrZV9maXhudW0g KDEpOworICAgIH0KKworICAvKiBDb21wdXRlIGJyb2tlbi1kb3duIGxvY2FsIHRpbWUgTE9D QUxfVE0gZnJvbSBUSU1FX1NQRUMgYW5kIFpPTkUuICAqLwogICBzdHJ1Y3QgdG0gbG9jYWxf dG0sIGdtdF90bTsKICAgdGltZXpvbmVfdCB0eiA9IHR6bG9va3VwICh6b25lLCBmYWxzZSk7 CiAgIHN0cnVjdCB0bSAqdG0gPSBlbWFjc19sb2NhbHRpbWVfcnogKHR6LCAmdGltZV9zcGVj LCAmbG9jYWxfdG0pOwpAQCAtMTU4MSw4ICsxNTk2LDggQEAgREVGVU4gKCJkZWNvZGUtdGlt ZSIsIEZkZWNvZGVfdGltZSwgU2RlY29kZV90aW1lLCAwLCAzLCAwLAogICAgIH0KIAogICAv KiBDb21wdXRlIFNFQyBmcm9tIExPQ0FMX1RNLnRtX3NlYyBhbmQgSFouICAqLwotICBMaXNw X09iamVjdCBoeiA9IGx0Lmh6LCBzZWM7Ci0gIGlmIChCQVNFX0VRIChoeiwgbWFrZV9maXhu dW0gKDEpKSB8fCAhRVEgKGZvcm0sIFF0KSkKKyAgTGlzcF9PYmplY3Qgc2VjOworICBpZiAo QkFTRV9FUSAoaHosIG1ha2VfZml4bnVtICgxKSkpCiAgICAgc2VjID0gbWFrZV9maXhudW0g KGxvY2FsX3RtLnRtX3NlYyk7CiAgIGVsc2UKICAgICB7Ci0tIAoyLjM0LjEKCg== --------------NfwiklpzcLJ7Hl9WQFyp0mbQ Content-Type: text/x-patch; charset=UTF-8; name="0007-Rename-timefns-internals.patch" Content-Disposition: attachment; filename="0007-Rename-timefns-internals.patch" Content-Transfer-Encoding: base64 RnJvbSAzNGU5NmY1MWZmM2VkNDc4NDVhNWQwOTc2ZjA2N2M2ZjhlMGMzN2EwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBNb24sIDggSnVsIDIwMjQgMDk6MjY6MTQgKzAyMDAKU3ViamVjdDogW1BBVENI IDA3LzE3XSBSZW5hbWUgdGltZWZucyBpbnRlcm5hbHMKTUlNRS1WZXJzaW9uOiAxLjAKQ29u dGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXIt RW5jb2Rpbmc6IDhiaXQKClRoZSBvbGQgbmFtZXMgZGlkbuKAmXQgZml0IGluIHRoZSBjb252 ZW50aW9ucyB1c2VkIGZvciBuZXdlciBuYW1lcy4KKiBzcmMvdGltZWZucy5jIChzdHJ1Y3Qg dGlja3NfaHopOiBSZW5hbWUgZnJvbSBzdHJ1Y3QgbGlzcF90aW1lLgoodW5pb24gY190aW1l KTogUmVuYW1lIGx0IHRvIHRoLgoodGlja3NfaHpfaHpfdGlja3MpOiBSZW5hbWUgZnJvbSBs aXNwX3RpbWVfaHpfdGlja3MuCih0aWNrc19oel9zZWNvbmRzKTogUmVuYW1lIGZyb20gbGlz cF90aW1lX3NlY29uZHMuCkFsbCB1c2VzIGNoYW5nZWQuCi0tLQogc3JjL3RpbWVmbnMuYyB8 IDYyICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy90aW1lZm5zLmMgYi9zcmMvdGltZWZucy5jCmluZGV4IGRlZDMx OTk3NjIwLi4wYzVmM2JmM2ZmMSAxMDA2NDQKLS0tIGEvc3JjL3RpbWVmbnMuYworKysgYi9z cmMvdGltZWZucy5jCkBAIC01MDgsNyArNTA4LDcgQEAgbXB6X3RpbWUgKG1wel90IGNvbnN0 IHosIHRpbWVfdCAqdCkKIAogLyogQ29tcG9uZW50cyBvZiBhIExpc3AgdGltZXN0YW1wIChU SUNLUyAuIEhaKS4gIFVzaW5nIHRoaXMgQyBzdHJ1Y3QgY2FuCiAgICBhdm9pZCB0aGUgY29u c2luZyBvdmVyaGVhZCBvZiBjcmVhdGluZyAoVElDS1MgLiBIWikuICAqLwotc3RydWN0IGxp c3BfdGltZQorc3RydWN0IHRpY2tzX2h6CiB7CiAgIC8qIENsb2NrIGNvdW50IGFzIGEgTGlz cCBpbnRlZ2VyLiAgKi8KICAgTGlzcF9PYmplY3QgdGlja3M7CkBAIC01ODksNyArNTg5LDcg QEAgdGlja3NfaHpfdG9fdGltZXNwZWMgKExpc3BfT2JqZWN0IHRpY2tzLCBMaXNwX09iamVj dCBoeikKICAgIHNwZWNpZnkgdGhlIGRlc2lyZWQgQyB0aW1lc3RhbXAgZm9ybS4gICovCiBl bnVtIGNmb3JtCiAgIHsKLSAgICBDRk9STV9USUNLU19IWiwgLyogc3RydWN0IGxpc3BfdGlt ZSAqLworICAgIENGT1JNX1RJQ0tTX0haLCAvKiBzdHJ1Y3QgdGlja3NfaHogKi8KICAgICBD Rk9STV9USU1FU1BFQywgLyogc3RydWN0IHRpbWVzcGVjICovCiAgICAgQ0ZPUk1fU0VDU19P TkxZLCAvKiBzdHJ1Y3QgdGltZXNwZWMgYnV0IHR2X25zZWMgPT0gMCBpZiB0aW1lc3BlYyB2 YWxpZCAqLwogICAgIENGT1JNX0RPVUJMRSAvKiBkb3VibGUgKi8KQEAgLTU5OCw3ICs1OTgs NyBAQCB0aWNrc19oel90b190aW1lc3BlYyAoTGlzcF9PYmplY3QgdGlja3MsIExpc3BfT2Jq ZWN0IGh6KQogLyogQSBDIHRpbWVzdGFtcCBpbiBvbmUgb2YgdGhlIGZvcm1zIHNwZWNpZmll ZCBieSBlbnVtIGNmb3JtLiAgKi8KIHVuaW9uIGNfdGltZQogewotICBzdHJ1Y3QgbGlzcF90 aW1lIGx0OworICBzdHJ1Y3QgdGlja3NfaHogdGg7CiAgIHN0cnVjdCB0aW1lc3BlYyB0czsK ICAgZG91YmxlIGQ7CiB9OwpAQCAtNjE0LDcgKzYxNCw3IEBAIGRlY29kZV90aWNrc19oeiAo TGlzcF9PYmplY3QgdGlja3MsIExpc3BfT2JqZWN0IGh6LCBlbnVtIGNmb3JtIGNmb3JtKQog ICAgICAgcmV0dXJuICh1bmlvbiBjX3RpbWUpIHsgLmQgPSBmcmFjX3RvX2RvdWJsZSAodGlj a3MsIGh6KSB9OwogCiAgICAgY2FzZSBDRk9STV9USUNLU19IWjoKLSAgICAgIHJldHVybiAo dW5pb24gY190aW1lKSB7IC5sdCA9IHsgLnRpY2tzID0gdGlja3MsIC5oeiA9IGh6IH0gfTsK KyAgICAgIHJldHVybiAodW5pb24gY190aW1lKSB7IC50aCA9IHsgLnRpY2tzID0gdGlja3Ms IC5oeiA9IGh6IH0gfTsKIAogICAgIGRlZmF1bHQ6CiAgICAgICByZXR1cm4gKHVuaW9uIGNf dGltZSkgeyAudHMgPSB0aWNrc19oel90b190aW1lc3BlYyAodGlja3MsIGh6KSB9OwpAQCAt NzUxLDcgKzc1MSw3IEBAIHRpbWVzcGVjX3RpY2tzIChzdHJ1Y3QgdGltZXNwZWMgdCkKIC8q IENvbnZlcnQgVCB0byBhIExpc3AgaW50ZWdlciBjb3VudGluZyBIWiB0aWNrcywgdGFraW5n IHRoZSBmbG9vci4KICAgIEFzc3VtZSBUIGlzIHZhbGlkLCBidXQgY2hlY2sgSFouICAqLwog c3RhdGljIExpc3BfT2JqZWN0Ci1saXNwX3RpbWVfaHpfdGlja3MgKHN0cnVjdCBsaXNwX3Rp bWUgdCwgTGlzcF9PYmplY3QgaHopCit0aWNrc19oel9oel90aWNrcyAoc3RydWN0IHRpY2tz X2h6IHQsIExpc3BfT2JqZWN0IGh6KQogewogICAvKiBUaGUgaWRlYSBpcyB0byByZXR1cm4g dGhlIGZsb29yIG9mICgoVC50aWNrcyAqIEhaKSAvIFQuaHopLiAgKi8KIApAQCAtNzg1LDE5 ICs3ODUsMTkgQEAgbGlzcF90aW1lX2h6X3RpY2tzIChzdHJ1Y3QgbGlzcF90aW1lIHQsIExp c3BfT2JqZWN0IGh6KQogCiAvKiBDb252ZXJ0IFQgdG8gYSBMaXNwIGludGVnZXIgY291bnRp bmcgc2Vjb25kcywgdGFraW5nIHRoZSBmbG9vci4gICovCiBzdGF0aWMgTGlzcF9PYmplY3QK LWxpc3BfdGltZV9zZWNvbmRzIChzdHJ1Y3QgbGlzcF90aW1lIHQpCit0aWNrc19oel9zZWNv bmRzIChzdHJ1Y3QgdGlja3NfaHogdCkKIHsKICAgLyogVGhlIGlkZWEgaXMgdG8gcmV0dXJu IHRoZSBmbG9vciBvZiBULnRpY2tzIC8gVC5oei4gICovCiAKICAgaWYgKCFGQVNURVJfVElN RUZOUykKLSAgICByZXR1cm4gbGlzcF90aW1lX2h6X3RpY2tzICh0LCBtYWtlX2ZpeG51bSAo MSkpOworICAgIHJldHVybiB0aWNrc19oel9oel90aWNrcyAodCwgbWFrZV9maXhudW0gKDEp KTsKIAogICAvKiBGb3Igc3BlZWQsIHVzZSBFTUFDU19JTlQgYXJpdGhtZXRpYyBpZiBpdCB3 aWxsIGRvLiAgKi8KICAgaWYgKEZJWE5VTVAgKHQudGlja3MpICYmIEZJWE5VTVAgKHQuaHop KQogICAgIHJldHVybiBtYWtlX2ZpeG51bSAoWEZJWE5VTSAodC50aWNrcykgLyBYRklYTlVN ICh0Lmh6KQogCQkJLSAoWEZJWE5VTSAodC50aWNrcykgJSBYRklYTlVNICh0Lmh6KSA8IDAp KTsKIAotICAvKiBGb3Igc3BlZWQsIGlubGluZSB3aGF0IGxpc3BfdGltZV9oel90aWNrcyB3 b3VsZCBkby4gICovCisgIC8qIEZvciBzcGVlZCwgaW5saW5lIHdoYXQgdGlja3NfaHpfaHpf dGlja3Mgd291bGQgZG8uICAqLwogICBtcHpfZmRpdl9xIChtcHpbMF0sCiAJICAgICAgKmJp Z251bV9pbnRlZ2VyICgmbXB6WzBdLCB0LnRpY2tzKSwKIAkgICAgICAqYmlnbnVtX2ludGVn ZXIgKCZtcHpbMV0sIHQuaHopKTsKQEAgLTExMzAsNyArMTEzMCw3IEBAIHRpbWVfYXJpdGgg KExpc3BfT2JqZWN0IGEsIExpc3BfT2JqZWN0IGIsIGJvb2wgc3VidHJhY3QpCiAgICAgZnRh ID0gZGVjb2RlX2xpc3BfdGltZSAoYSwgQ0ZPUk1fVElDS1NfSFopLAogICAgIGZ0YiA9IGRl Y29kZV9saXNwX3RpbWUgKGIsIENGT1JNX1RJQ0tTX0haKTsKICAgZW51bSB0aW1lZm9ybSBh Zm9ybSA9IGZ0YS5mb3JtLCBiZm9ybSA9IGZ0Yi5mb3JtOwotICBzdHJ1Y3QgbGlzcF90aW1l IHRhID0gZnRhLnRpbWUubHQsIHRiID0gZnRiLnRpbWUubHQ7CisgIHN0cnVjdCB0aWNrc19o eiB0YSA9IGZ0YS50aW1lLnRoLCB0YiA9IGZ0Yi50aW1lLnRoOwogICBMaXNwX09iamVjdCB0 aWNrcywgaHo7CiAKICAgaWYgKEZBU1RFUl9USU1FRk5TICYmIEJBU0VfRVEgKHRhLmh6LCB0 Yi5oeikpCkBAIC0xMjcxLDggKzEyNzEsOCBAQCB0aW1lX2NtcCAoTGlzcF9PYmplY3QgYSwg TGlzcF9PYmplY3QgYikKIAogICAvKiBDb21wYXJlIChBVElDS1MgLiBBWikgdG8gKEJUSUNL UyAuIEJIWikgYnkgY29tcGFyaW5nCiAgICAgIEFUSUNLUyAqIEJIWiB0byBCVElDS1MgKiBB SFouICAqLwotICBzdHJ1Y3QgbGlzcF90aW1lIHRhID0gbGlzcF90aW1lX3N0cnVjdCAoYSwg Q0ZPUk1fVElDS1NfSFopLmx0OwotICBzdHJ1Y3QgbGlzcF90aW1lIHRiID0gbGlzcF90aW1l X3N0cnVjdCAoYiwgQ0ZPUk1fVElDS1NfSFopLmx0OworICBzdHJ1Y3QgdGlja3NfaHogdGEg PSBsaXNwX3RpbWVfc3RydWN0IChhLCBDRk9STV9USUNLU19IWikudGg7CisgIHN0cnVjdCB0 aWNrc19oeiB0YiA9IGxpc3BfdGltZV9zdHJ1Y3QgKGIsIENGT1JNX1RJQ0tTX0haKS50aDsK ICAgbXB6X3QgY29uc3QgKnphID0gYmlnbnVtX2ludGVnZXIgKCZtcHpbMF0sIHRhLnRpY2tz KTsKICAgbXB6X3QgY29uc3QgKnpiID0gYmlnbnVtX2ludGVnZXIgKCZtcHpbMV0sIHRiLnRp Y2tzKTsKICAgaWYgKCEgKEZBU1RFUl9USU1FRk5TICYmIEJBU0VfRVEgKHRhLmh6LCB0Yi5o eikpKQpAQCAtMTU0OSwxOCArMTU0OSwxOCBAQCBERUZVTiAoImRlY29kZS10aW1lIiwgRmRl Y29kZV90aW1lLCBTZGVjb2RlX3RpbWUsIDAsIDMsIDAsCiAgIChMaXNwX09iamVjdCBzcGVj aWZpZWRfdGltZSwgTGlzcF9PYmplY3Qgem9uZSwgTGlzcF9PYmplY3QgZm9ybSkKIHsKICAg LyogQ29udmVydCBTUEVDSUZJRURfVElNRSB0byBUSU1FX1NQRUMgYW5kIEhaOwotICAgICBp ZiBIWiAhPSAxIGFsc28gc2V0IExULnRpY2tzLiAgKi8KKyAgICAgaWYgSFogIT0gMSBhbHNv IHNldCBUSC50aWNrcy4gICovCiAgIHRpbWVfdCB0aW1lX3NwZWM7CiAgIExpc3BfT2JqZWN0 IGh6OwotICBzdHJ1Y3QgbGlzcF90aW1lIGx0OworICBzdHJ1Y3QgdGlja3NfaHogdGg7CiAg IGlmIChFUSAoZm9ybSwgUXQpKQogICAgIHsKLSAgICAgIGx0ID0gbGlzcF90aW1lX3N0cnVj dCAoc3BlY2lmaWVkX3RpbWUsIENGT1JNX1RJQ0tTX0haKS5sdDsKLSAgICAgIHN0cnVjdCB0 aW1lc3BlYyB0cyA9IHRpY2tzX2h6X3RvX3RpbWVzcGVjIChsdC50aWNrcywgbHQuaHopOwor ICAgICAgdGggPSBsaXNwX3RpbWVfc3RydWN0IChzcGVjaWZpZWRfdGltZSwgQ0ZPUk1fVElD S1NfSFopLnRoOworICAgICAgc3RydWN0IHRpbWVzcGVjIHRzID0gdGlja3NfaHpfdG9fdGlt ZXNwZWMgKHRoLnRpY2tzLCB0aC5oeik7CiAgICAgICBpZiAoISB0aW1lc3BlY192YWxpZF9w ICh0cykpCiAJdGltZV9vdmVyZmxvdyAoKTsKICAgICAgIHRpbWVfc3BlYyA9IHRzLnR2X3Nl YzsKLSAgICAgIGh6ID0gbHQuaHo7CisgICAgICBoeiA9IHRoLmh6OwogICAgIH0KICAgZWxz ZQogICAgIHsKQEAgLTE2MDEsMjAgKzE2MDEsMjAgQEAgREVGVU4gKCJkZWNvZGUtdGltZSIs IEZkZWNvZGVfdGltZSwgU2RlY29kZV90aW1lLCAwLCAzLCAwLAogICAgIHNlYyA9IG1ha2Vf Zml4bnVtIChsb2NhbF90bS50bV9zZWMpOwogICBlbHNlCiAgICAgewotICAgICAgLyogTGV0 IFRJQ0tTID0gSFogKiBMT0NBTF9UTS50bV9zZWMgKyBtb2QgKExULnRpY2tzLCBIWikKKyAg ICAgIC8qIExldCBUSUNLUyA9IEhaICogTE9DQUxfVE0udG1fc2VjICsgbW9kIChUSC50aWNr cywgSFopCiAJIGFuZCBTRUMgPSAoVElDS1MgLiBIWikuICAqLwogICAgICAgTGlzcF9PYmpl Y3QgdGlja3M7CiAgICAgICBpbnRtYXhfdCBuOwotICAgICAgaWYgKEZBU1RFUl9USU1FRk5T ICYmIEZJWE5VTVAgKGx0LnRpY2tzKSAmJiBGSVhOVU1QIChoeikKKyAgICAgIGlmIChGQVNU RVJfVElNRUZOUyAmJiBGSVhOVU1QICh0aC50aWNrcykgJiYgRklYTlVNUCAoaHopCiAJICAm JiAhY2tkX211bCAoJm4sIFhGSVhOVU0gKGh6KSwgbG9jYWxfdG0udG1fc2VjKQotCSAgJiYg IWNrZF9hZGQgKCZuLCBuLCAoWEZJWE5VTSAobHQudGlja3MpICUgWEZJWE5VTSAoaHopCi0J CQkgICAgICAgKyAoWEZJWE5VTSAobHQudGlja3MpICUgWEZJWE5VTSAoaHopIDwgMAorCSAg JiYgIWNrZF9hZGQgKCZuLCBuLCAoWEZJWE5VTSAodGgudGlja3MpICUgWEZJWE5VTSAoaHop CisJCQkgICAgICAgKyAoWEZJWE5VTSAodGgudGlja3MpICUgWEZJWE5VTSAoaHopIDwgMAog CQkJCSAgPyBYRklYTlVNIChoeikgOiAwKSkpKQogCXRpY2tzID0gbWFrZV9pbnQgKG4pOwog ICAgICAgZWxzZQogCXsKIAkgIG1wel9mZGl2X3IgKG1welswXSwKLQkJICAgICAgKmJpZ251 bV9pbnRlZ2VyICgmbXB6WzBdLCBsdC50aWNrcyksCisJCSAgICAgICpiaWdudW1faW50ZWdl ciAoJm1welswXSwgdGgudGlja3MpLAogCQkgICAgICAqYmlnbnVtX2ludGVnZXIgKCZtcHpb MV0sIGh6KSk7CiAJICBtcHpfYWRkbXVsX3VpIChtcHpbMF0sICpiaWdudW1faW50ZWdlciAo Jm1welsxXSwgaHopLAogCQkJIGxvY2FsX3RtLnRtX3NlYyk7CkBAIC0xNzQxLDE4ICsxNzQx LDE4IEBAIERFRlVOICgiZW5jb2RlLXRpbWUiLCBGZW5jb2RlX3RpbWUsIFNlbmNvZGVfdGlt ZSwgMSwgTUFOWSwgMCwKICAgICAgIHllYXJhcmcgPSBhcmdzWzVdOwogICAgIH0KIAotICAv KiBMZXQgU0VDID0gZmxvb3IgKExULnRpY2tzIC8gSFopLCB3aXRoIFNVQlNFQ1RJQ0tTIHRo ZSByZW1haW5kZXIuICAqLwotICBzdHJ1Y3QgbGlzcF90aW1lIGx0ID0gZGVjb2RlX2xpc3Bf dGltZSAoc2VjYXJnLCBDRk9STV9USUNLU19IWikudGltZS5sdDsKLSAgTGlzcF9PYmplY3Qg aHogPSBsdC5oeiwgc2VjLCBzdWJzZWN0aWNrczsKKyAgLyogTGV0IFNFQyA9IGZsb29yIChU SC50aWNrcyAvIEhaKSwgd2l0aCBTVUJTRUNUSUNLUyB0aGUgcmVtYWluZGVyLiAgKi8KKyAg c3RydWN0IHRpY2tzX2h6IHRoID0gZGVjb2RlX2xpc3BfdGltZSAoc2VjYXJnLCBDRk9STV9U SUNLU19IWikudGltZS50aDsKKyAgTGlzcF9PYmplY3QgaHogPSB0aC5oeiwgc2VjLCBzdWJz ZWN0aWNrczsKICAgaWYgKEZBU1RFUl9USU1FRk5TICYmIEJBU0VfRVEgKGh6LCBtYWtlX2Zp eG51bSAoMSkpKQogICAgIHsKLSAgICAgIHNlYyA9IGx0LnRpY2tzOworICAgICAgc2VjID0g dGgudGlja3M7CiAgICAgICBzdWJzZWN0aWNrcyA9IG1ha2VfZml4bnVtICgwKTsKICAgICB9 CiAgIGVsc2UKICAgICB7CiAgICAgICBtcHpfZmRpdl9xciAobXB6WzBdLCBtcHpbMV0sCi0J CSAgICpiaWdudW1faW50ZWdlciAoJm1welswXSwgbHQudGlja3MpLAorCQkgICAqYmlnbnVt X2ludGVnZXIgKCZtcHpbMF0sIHRoLnRpY2tzKSwKIAkJICAgKmJpZ251bV9pbnRlZ2VyICgm bXB6WzFdLCBoeikpOwogICAgICAgc2VjID0gbWFrZV9pbnRlZ2VyX21weiAoKTsKICAgICAg IG1wel9zd2FwIChtcHpbMF0sIG1welsxXSk7CkBAIC0xNzgwLDggKzE3ODAsOCBAQCBERUZV TiAoImVuY29kZS10aW1lIiwgRmVuY29kZV90aW1lLCBTZW5jb2RlX3RpbWUsIDEsIE1BTlks IDAsCiAJICAgIDogSU5UX1RPX0lOVEVHRVIgKHZhbHVlKSk7CiAgIGVsc2UKICAgICB7Ci0g ICAgICBzdHJ1Y3QgbGlzcF90aW1lIHZhbDEgPSB7IElOVF9UT19JTlRFR0VSICh2YWx1ZSks IG1ha2VfZml4bnVtICgxKSB9OwotICAgICAgTGlzcF9PYmplY3Qgc2VjdGlja3MgPSBsaXNw X3RpbWVfaHpfdGlja3MgKHZhbDEsIGh6KTsKKyAgICAgIHN0cnVjdCB0aWNrc19oeiB2YWwx ID0geyBJTlRfVE9fSU5URUdFUiAodmFsdWUpLCBtYWtlX2ZpeG51bSAoMSkgfTsKKyAgICAg IExpc3BfT2JqZWN0IHNlY3RpY2tzID0gdGlja3NfaHpfaHpfdGlja3MgKHZhbDEsIGh6KTsK ICAgICAgIExpc3BfT2JqZWN0IHRpY2tzID0gbGlzcGludF9hcml0aCAoc2VjdGlja3MsIHN1 YnNlY3RpY2tzLCBmYWxzZSk7CiAgICAgICByZXR1cm4gRmNvbnMgKHRpY2tzLCBoeik7CiAg ICAgfQpAQCAtMTgxMiwxOSArMTgxMiwxOSBAQCBERUZVTiAoInRpbWUtY29udmVydCIsIEZ0 aW1lX2NvbnZlcnQsIFN0aW1lX2NvbnZlcnQsIDEsIDIsIDAsCiAgIC8qIEZJWE1FOiBBbnkg cmVhc29uIHdoeSB3ZSBkb24ndCBvZmZlciBhIGBmbG9hdGAgb3V0cHV0IGZvcm1hdCBvcHRp b24gYXMKICAgICAgd2VsbCwgc2luY2Ugd2UgYWNjZXB0IGl0IGFzIGlucHV0PyAgKi8KICAg c3RydWN0IGZvcm1fdGltZSBmb3JtX3RpbWUgPSBkZWNvZGVfbGlzcF90aW1lICh0aW1lLCBD Rk9STV9USUNLU19IWik7Ci0gIHN0cnVjdCBsaXNwX3RpbWUgdCA9IGZvcm1fdGltZS50aW1l Lmx0OworICBzdHJ1Y3QgdGlja3NfaHogdCA9IGZvcm1fdGltZS50aW1lLnRoOwogICBmb3Jt ID0gKCFOSUxQIChmb3JtKSA/IG1heWJlX3JlbW92ZV9wb3NfZnJvbV9zeW1ib2wgKGZvcm0p CiAJICA6IGN1cnJlbnRfdGltZV9saXN0ID8gUWxpc3QgOiBRdCk7CiAgIGlmIChCQVNFX0VR IChmb3JtLCBRbGlzdCkpCiAgICAgcmV0dXJuIHRpY2tzX2h6X2xpc3Q0ICh0LnRpY2tzLCB0 Lmh6KTsKICAgaWYgKEJBU0VfRVEgKGZvcm0sIFFpbnRlZ2VyKSkKLSAgICByZXR1cm4gRkFT VEVSX1RJTUVGTlMgJiYgSU5URUdFUlAgKHRpbWUpID8gdGltZSA6IGxpc3BfdGltZV9zZWNv bmRzICh0KTsKKyAgICByZXR1cm4gRkFTVEVSX1RJTUVGTlMgJiYgSU5URUdFUlAgKHRpbWUp ID8gdGltZSA6IHRpY2tzX2h6X3NlY29uZHMgKHQpOwogICBpZiAoQkFTRV9FUSAoZm9ybSwg UXQpKQogICAgIGZvcm0gPSB0Lmh6OwogICBpZiAoRkFTVEVSX1RJTUVGTlMKICAgICAgICYm IGZvcm1fdGltZS5mb3JtID09IFRJTUVGT1JNX1RJQ0tTX0haICYmIEJBU0VfRVEgKGZvcm0s IFhDRFIgKHRpbWUpKSkKICAgICByZXR1cm4gdGltZTsKLSAgcmV0dXJuIEZjb25zIChsaXNw X3RpbWVfaHpfdGlja3MgKHQsIGZvcm0pLCBmb3JtKTsKKyAgcmV0dXJuIEZjb25zICh0aWNr c19oel9oel90aWNrcyAodCwgZm9ybSksIGZvcm0pOwogfQogCiBERUZVTiAoImN1cnJlbnQt dGltZSIsIEZjdXJyZW50X3RpbWUsIFNjdXJyZW50X3RpbWUsIDAsIDAsIDAsCi0tIAoyLjM0 LjEKCg== --------------NfwiklpzcLJ7Hl9WQFyp0mbQ Content-Type: text/x-patch; charset=UTF-8; name="0008-Reduce-size-of-integer-product-in-timefns.patch" Content-Disposition: attachment; filename="0008-Reduce-size-of-integer-product-in-timefns.patch" Content-Transfer-Encoding: base64 RnJvbSAzYzBjZGIzNjVhZTJiYjlhMjE5NDhjMDgxZGU2OTM1NjI2MzExMmViIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBXZWQsIDEwIEp1bCAyMDI0IDAyOjM3OjU1ICswMjAwClN1YmplY3Q6IFtQQVRD SCAwOC8xN10gUmVkdWNlIHNpemUgb2YgaW50ZWdlciBwcm9kdWN0IGluIHRpbWVmbnMKTUlN RS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04 CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCiogc3JjL3RpbWVmbnMuYyAoZW1h Y3NfZ2NkKTogTmV3IHN0YXRpYyBmdW5jdGlvbi4KKHRpY2tzX2h6X2h6X3RpY2tzKTogVXNl IGl0IHRvIHJlZHVjZSB0aGUgc2l6ZSBvZiB0aGUgaW50ZWdlcgpwcm9kdWN0IGluIHRoZSBj b21tb24gY2FzZSB3aGVuIGNvbnZlcnRpbmcgZnJvbSBucyB0byBwcy4gIEZvcgp0aGF0LCB3 ZSBuZWVkIHRvIG11bHRpcGx5IHQudGlja3Mgb25seSBieSAxMMKzLCBub3QgbXVsdGlwbHkg YnkKMTDCucKyIGFuZCB0aGVuIGRpdmlkZSBieSAxMOKBuS4gIFRoaXMgYXZvaWRzIHRoZSBu ZWVkIHRvIHVzZSBiaWdudW1zCmluIGEgc2lnbmlmaWNhbnQgbnVtYmVyIG9mIGNhc2VzLgot LS0KIHNyYy90aW1lZm5zLmMgfCAzMCArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCAyNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy90aW1lZm5zLmMgYi9zcmMvdGltZWZucy5jCmluZGV4IDBjNWYzYmYz ZmYxLi4wYTM0YmRhMjhjNyAxMDA2NDQKLS0tIGEvc3JjL3RpbWVmbnMuYworKysgYi9zcmMv dGltZWZucy5jCkBAIC03NDgsNiArNzQ4LDE1IEBAIHRpbWVzcGVjX3RpY2tzIChzdHJ1Y3Qg dGltZXNwZWMgdCkKICAgcmV0dXJuIG1ha2VfaW50ZWdlcl9tcHogKCk7CiB9CiAKKy8qIFJl dHVybiBncmVhdGVzdCBjb21tb24gZGl2aXNvciBvZiBwb3NpdGl2ZSBBIGFuZCBCLiAgKi8K K3N0YXRpYyBFTUFDU19JTlQKK2VtYWNzX2djZCAoRU1BQ1NfSU5UIGEsIEVNQUNTX0lOVCBi KQoreworICBmb3IgKEVNQUNTX0lOVCByOyAociA9IGEgJSBiKSAhPSAwOyBhID0gYiwgYiA9 IHIpCisgICAgY29udGludWU7CisgIHJldHVybiBiOworfQorCiAvKiBDb252ZXJ0IFQgdG8g YSBMaXNwIGludGVnZXIgY291bnRpbmcgSFogdGlja3MsIHRha2luZyB0aGUgZmxvb3IuCiAg ICBBc3N1bWUgVCBpcyB2YWxpZCwgYnV0IGNoZWNrIEhaLiAgKi8KIHN0YXRpYyBMaXNwX09i amVjdApAQCAtNzY2LDExICs3NzUsMjIgQEAgdGlja3NfaHpfaHpfdGlja3MgKHN0cnVjdCB0 aWNrc19oeiB0LCBMaXNwX09iamVjdCBoeikKIAlpbnZhbGlkX2h6IChoeik7CiAKICAgICAg IC8qIEZvciBzcGVlZCwgdXNlIGludG1heF90IGFyaXRobWV0aWMgaWYgaXQgd2lsbCBkby4g ICovCi0gICAgICBpbnRtYXhfdCB0aWNrczsKLSAgICAgIGlmIChGQVNURVJfVElNRUZOUyAm JiBGSVhOVU1QICh0LnRpY2tzKSAmJiBGSVhOVU1QICh0Lmh6KQotCSAgJiYgIWNrZF9tdWwg KCZ0aWNrcywgWEZJWE5VTSAodC50aWNrcyksIFhGSVhOVU0gKGh6KSkpCi0JcmV0dXJuIG1h a2VfaW50ICh0aWNrcyAvIFhGSVhOVU0gKHQuaHopCi0JCQkgLSAodGlja3MgJSBYRklYTlVN ICh0Lmh6KSA8IDApKTsKKyAgICAgIGlmIChGQVNURVJfVElNRUZOUyAmJiBGSVhOVU1QICh0 LnRpY2tzKSAmJiBGSVhOVU1QICh0Lmh6KSkKKwl7CisJICAvKiBSZWR1Y2UgVC5oeiBhbmQg SFogYnkgdGhlaXIgR0NELCB0byBhdm9pZCBzb21lIGludG1heF90CisJICAgICBvdmVyZmxv d3MgdGhhdCB3b3VsZCBvY2N1ciBpbiBULnRpY2tzICogSFouICAqLworCSAgRU1BQ1NfSU5U IGl0aHogPSBYRklYTlVNICh0Lmh6KSwgaWh6ID0gWEZJWE5VTSAoaHopOworCSAgRU1BQ1Nf SU5UIGQgPSBlbWFjc19nY2QgKGl0aHosIGloeik7CisJICBpdGh6IC89IGQ7CisJICBpaHog Lz0gZDsKKworCSAgaW50bWF4X3QgdGlja3M7CisJICBpZiAoIWNrZF9tdWwgKCZ0aWNrcywg WEZJWE5VTSAodC50aWNrcyksIGloeikpCisJICAgIHJldHVybiBtYWtlX2ludCAodGlja3Mg LyBpdGh6IC0gKHRpY2tzICUgaXRoeiA8IDApKTsKKworCSAgdC5oeiA9IG1ha2VfZml4bnVt IChpdGh6KTsKKwkgIGh6ID0gbWFrZV9maXhudW0gKGloeik7CisJfQogICAgIH0KICAgZWxz ZSBpZiAoISAoQklHTlVNUCAoaHopICYmIDAgPCBtcHpfc2duICgqeGJpZ251bV92YWwgKGh6 KSkpKQogICAgIGludmFsaWRfaHogKGh6KTsKLS0gCjIuMzQuMQoK --------------NfwiklpzcLJ7Hl9WQFyp0mbQ Content-Type: text/x-patch; charset=UTF-8; name="0009-In-timefns-prefer-ui-mul-and-div.patch" Content-Disposition: attachment; filename="0009-In-timefns-prefer-ui-mul-and-div.patch" Content-Transfer-Encoding: base64 RnJvbSA0ODIzZWJkOWVjM2E1MTYwZjk1YWFkZTBlYzg3ZDAyMThkMWYxOWYzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBXZWQsIDEwIEp1bCAyMDI0IDEwOjIzOjMxICswMjAwClN1YmplY3Q6IFtQQVRD SCAwOS8xN10gSW4gdGltZWZucywgcHJlZmVyIHVpIG11bCBhbmQgZGl2CgoqIHNyYy90aW1l Zm5zLmMgKHRpY2tzX2h6X2h6X3RpY2tzKTogSWYgdGhlIG11bHRpcGxpZXIKaXMgYSBmaXhu dW0gdGhhdCBmaXRzIGluIHVuc2lnbmVkIGxvbmcsIHVzZSBtcHpfbXVsX3VpCmluc3RlYWQg b2YgdGhlIG1vcmUtZXhwZW5zaXZlIG1wel9tdWwuICBTaW1pbGFybHksIGlmIHRoZQpkaXZp c29yIGlzIGEgZml4bnVtIHRoYXQgZml0cyBpbiB1bnNpZ25lZCBsb25nLCB1c2UKbXB6X2Zk aXZfcV91aSBpbnN0ZWFkIG9mIG1wel9mZGl2X3EuCi0tLQogc3JjL3RpbWVmbnMuYyB8IDEz ICsrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDQgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3RpbWVmbnMuYyBiL3NyYy90aW1lZm5zLmMK aW5kZXggMGEzNGJkYTI4YzcuLjBkZjdkMWY0MzYzIDEwMDY0NAotLS0gYS9zcmMvdGltZWZu cy5jCisrKyBiL3NyYy90aW1lZm5zLmMKQEAgLTc5NiwxMCArNzk2LDE1IEBAIHRpY2tzX2h6 X2h6X3RpY2tzIChzdHJ1Y3QgdGlja3NfaHogdCwgTGlzcF9PYmplY3QgaHopCiAgICAgaW52 YWxpZF9oeiAoaHopOwogCiAgIC8qIEZhbGwgYmFjayBvbiBiaWdudW0gYXJpdGhtZXRpYy4g ICovCi0gIG1wel9tdWwgKG1welswXSwKLQkgICAqYmlnbnVtX2ludGVnZXIgKCZtcHpbMF0s IHQudGlja3MpLAotCSAgICpiaWdudW1faW50ZWdlciAoJm1welsxXSwgaHopKTsKLSAgbXB6 X2ZkaXZfcSAobXB6WzBdLCBtcHpbMF0sICpiaWdudW1faW50ZWdlciAoJm1welsxXSwgdC5o eikpOworICBtcHpfdCBjb25zdCAqenRpY2tzID0gYmlnbnVtX2ludGVnZXIgKCZtcHpbMF0s IHQudGlja3MpOworICBpZiAoRkFTVEVSX1RJTUVGTlMgJiYgRklYTlVNUCAoaHopICYmIFhG SVhOVU0gKGh6KSA8PSBVTE9OR19NQVgpCisgICAgbXB6X211bF91aSAobXB6WzBdLCAqenRp Y2tzLCBYRklYTlVNIChoeikpOworICBlbHNlCisgICAgbXB6X211bCAobXB6WzBdLCAqenRp Y2tzLCAqYmlnbnVtX2ludGVnZXIgKCZtcHpbMV0sIGh6KSk7CisgIGlmIChGQVNURVJfVElN RUZOUyAmJiBGSVhOVU1QICh0Lmh6KSAmJiBYRklYTlVNICh0Lmh6KSA8PSBVTE9OR19NQVgp CisgICAgbXB6X2ZkaXZfcV91aSAobXB6WzBdLCBtcHpbMF0sIFhGSVhOVU0gKHQuaHopKTsK KyAgZWxzZQorICAgIG1wel9mZGl2X3EgKG1welswXSwgbXB6WzBdLCAqYmlnbnVtX2ludGVn ZXIgKCZtcHpbMV0sIHQuaHopKTsKICAgcmV0dXJuIG1ha2VfaW50ZWdlcl9tcHogKCk7CiB9 CiAKLS0gCjIuMzQuMQoK --------------NfwiklpzcLJ7Hl9WQFyp0mbQ Content-Type: text/x-patch; charset=UTF-8; name="0010-In-timefns-do-gcd-reduction-more-often.patch" Content-Disposition: attachment; filename="0010-In-timefns-do-gcd-reduction-more-often.patch" Content-Transfer-Encoding: base64 RnJvbSA3NWRjYzQ1YzE1ODlhNWI0MmI4YzI0YWY0NDhjMWU3MDEzYmRmNjg3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBXZWQsIDEwIEp1bCAyMDI0IDEwOjM2OjM1ICswMjAwClN1YmplY3Q6IFtQQVRD SCAxMC8xN10gSW4gdGltZWZucywgZG8gZ2NkIHJlZHVjdGlvbiBtb3JlIG9mdGVuCk1JTUUt VmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApD b250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgoqIHNyYy90aW1lZm5zLmMgKHRpY2tz X2h6X2h6X3RpY2tzKTogUmVkdWNlIGJ5IGdjZApldmVuIGlmIHQudGlja3MgaXMgbm90IGEg Zml4bnVtLCBzaW5jZSB0aGF04oCZcyBlYXN5LgotLS0KIHNyYy90aW1lZm5zLmMgfCAxMyAr KysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCA1IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy90aW1lZm5zLmMgYi9zcmMvdGltZWZucy5jCmlu ZGV4IDBkZjdkMWY0MzYzLi5iYTFiYTEwYTgwOSAxMDA2NDQKLS0tIGEvc3JjL3RpbWVmbnMu YworKysgYi9zcmMvdGltZWZucy5jCkBAIC03NzQsOCArNzc0LDggQEAgdGlja3NfaHpfaHpf dGlja3MgKHN0cnVjdCB0aWNrc19oeiB0LCBMaXNwX09iamVjdCBoeikKICAgICAgIGlmIChY RklYTlVNIChoeikgPD0gMCkKIAlpbnZhbGlkX2h6IChoeik7CiAKLSAgICAgIC8qIEZvciBz cGVlZCwgdXNlIGludG1heF90IGFyaXRobWV0aWMgaWYgaXQgd2lsbCBkby4gICovCi0gICAg ICBpZiAoRkFTVEVSX1RJTUVGTlMgJiYgRklYTlVNUCAodC50aWNrcykgJiYgRklYTlVNUCAo dC5oeikpCisgICAgICAvKiBQcmVmZXIgbm9uLWJpZ251bSBhcml0aG1ldGljIHRvIHNwZWVk IHVwIGNvbW1vbiBjYXNlcy4gICovCisgICAgICBpZiAoRkFTVEVSX1RJTUVGTlMgJiYgRklY TlVNUCAodC5oeikpCiAJewogCSAgLyogUmVkdWNlIFQuaHogYW5kIEhaIGJ5IHRoZWlyIEdD RCwgdG8gYXZvaWQgc29tZSBpbnRtYXhfdAogCSAgICAgb3ZlcmZsb3dzIHRoYXQgd291bGQg b2NjdXIgaW4gVC50aWNrcyAqIEhaLiAgKi8KQEAgLTc4NCw5ICs3ODQsMTIgQEAgdGlja3Nf aHpfaHpfdGlja3MgKHN0cnVjdCB0aWNrc19oeiB0LCBMaXNwX09iamVjdCBoeikKIAkgIGl0 aHogLz0gZDsKIAkgIGloeiAvPSBkOwogCi0JICBpbnRtYXhfdCB0aWNrczsKLQkgIGlmICgh Y2tkX211bCAoJnRpY2tzLCBYRklYTlVNICh0LnRpY2tzKSwgaWh6KSkKLQkgICAgcmV0dXJu IG1ha2VfaW50ICh0aWNrcyAvIGl0aHogLSAodGlja3MgJSBpdGh6IDwgMCkpOworCSAgaWYg KEZJWE5VTVAgKHQudGlja3MpKQorCSAgICB7CisJICAgICAgaW50bWF4X3QgdGlja3M7CisJ ICAgICAgaWYgKCFja2RfbXVsICgmdGlja3MsIFhGSVhOVU0gKHQudGlja3MpLCBpaHopKQor CQlyZXR1cm4gbWFrZV9pbnQgKHRpY2tzIC8gaXRoeiAtICh0aWNrcyAlIGl0aHogPCAwKSk7 CisJICAgIH0KIAogCSAgdC5oeiA9IG1ha2VfZml4bnVtIChpdGh6KTsKIAkgIGh6ID0gbWFr ZV9maXhudW0gKGloeik7Ci0tIAoyLjM0LjEKCg== --------------NfwiklpzcLJ7Hl9WQFyp0mbQ Content-Type: text/x-patch; charset=UTF-8; name="0011-In-timefns-call-natnump-only-for-non-fixnums.patch" Content-Disposition: attachment; filename="0011-In-timefns-call-natnump-only-for-non-fixnums.patch" Content-Transfer-Encoding: base64 RnJvbSA0Njk3OGU1NGVmYTkxZmE0NDg5YTIyYzZiNTlkZTBkMmI2NmY2N2UxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBXZWQsIDEwIEp1bCAyMDI0IDExOjA0OjE4ICswMjAwClN1YmplY3Q6IFtQQVRD SCAxMS8xN10gSW4gdGltZWZucywgY2FsbCBuYXRudW1wIG9ubHkgZm9yIG5vbi1maXhudW1z CgoqIHNyYy90aW1lZm5zLmMgKGRlY29kZV90aW1lX2NvbXBvbmVudHMpOiBDYWxsIEZuYXRu dW1wIG9ubHkKZm9yIG5vbi1maXhudW1zLCBhcyB3ZSBuZWVkIHRvIHNwZWNpYWwtY2FzZSAw IGFueXdheS4KLS0tCiBzcmMvdGltZWZucy5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3RpbWVmbnMu YyBiL3NyYy90aW1lZm5zLmMKaW5kZXggYmExYmExMGE4MDkuLjQ1YTA5MzBmOGE4IDEwMDY0 NAotLS0gYS9zcmMvdGltZWZucy5jCisrKyBiL3NyYy90aW1lZm5zLmMKQEAgLTg5NSw3ICs4 OTUsNyBAQCBkZWNvZGVfdGltZV9jb21wb25lbnRzIChlbnVtIHRpbWVmb3JtIGZvcm0sCiAK ICAgICBjYXNlIFRJTUVGT1JNX1RJQ0tTX0haOgogICAgICAgaWYgKCEgKElOVEVHRVJQICho aWdoKQotCSAgICAgJiYgIU5JTFAgKEZuYXRudW1wIChsb3cpKSAmJiAhQkFTRV9FUSAobG93 LCBtYWtlX2ZpeG51bSAoMCkpKSkKKwkgICAgICYmIChGSVhOVU1QIChsb3cpID8gMCA8IFhG SVhOVU0gKGxvdykgOiAhTklMUCAoRm5hdG51bXAgKGxvdykpKSkpCiAJcmV0dXJuIChzdHJ1 Y3QgZXJyX3RpbWUpIHsgLmVyciA9IEVJTlZBTCB9OwogICAgICAgdGlja3MgPSBoaWdoOwog ICAgICAgaHogPSBsb3c7Ci0tIAoyLjM0LjEKCg== --------------NfwiklpzcLJ7Hl9WQFyp0mbQ Content-Type: text/x-patch; charset=UTF-8; name="0012-New-FASTER_BIGNUM-macro-to-test-slow-path-code.patch" Content-Disposition: attachment; filename*0="0012-New-FASTER_BIGNUM-macro-to-test-slow-path-code.patch" Content-Transfer-Encoding: base64 RnJvbSBkNTY2NjE2ZjUyOGE1NTc5NWFiZWFmOWVhNDg4MzNhNmY1NDg4NzU5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUaHUsIDExIEp1bCAyMDI0IDEyOjI3OjM2ICswMjAwClN1YmplY3Q6IFtQQVRD SCAxMi8xN10gTmV3IEZBU1RFUl9CSUdOVU0gbWFjcm8gdG8gdGVzdCBzbG93LXBhdGggY29k ZQoKKiBzcmMvYmlnbnVtLmggKEZBU1RFUl9CSUdOVU0pOiBOZXcgbWFjcm8uCihtcHpfc2V0 X2ludG1heCwgbXB6X3NldF91aW50bWF4KTogT3B0aW1pemUgb25seSBpZiBGQVNURVJfQklH TlVNLgpBbHNvLCB1c2UgY2tkX2FkZCB0byB0ZXN0IGZvciBvdmVyZmxvdyBpbnN0ZWFkIG9m IGRvaW5nIGl0IGJ5IGhhbmQuCi0tLQogc3JjL2JpZ251bS5oIHwgMTYgKysrKysrKysrKysr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjL2JpZ251bS5oIGIvc3JjL2JpZ251bS5oCmluZGV4IDI3NDlm ODM3MGQwLi41NGJhMGNkZTQxMCAxMDA2NDQKLS0tIGEvc3JjL2JpZ251bS5oCisrKyBiL3Ny Yy9iaWdudW0uaApAQCAtMjUsNiArMjUsMTIgQEAgI2RlZmluZSBCSUdOVU1fSAogI2luY2x1 ZGUgPGdtcC5oPgogI2luY2x1ZGUgImxpc3AuaCIKIAorLyogQ29tcGlsZSB3aXRoIC1ERkFT VEVSX0JJR05VTT0wIHRvIGRpc2FibGUgY29tbW9uIG9wdGltaXphdGlvbnMgYW5kCisgICBh bGxvdyBlYXNpZXIgdGVzdGluZyBvZiBzb21lIHNsb3ctcGF0aCBjb2RlLiAgKi8KKyNpZm5k ZWYgRkFTVEVSX0JJR05VTQorIyBkZWZpbmUgRkFTVEVSX0JJR05VTSAxCisjZW5kaWYKKwog LyogTnVtYmVyIG9mIGRhdGEgYml0cyBpbiBhIGxpbWIuICAqLwogI2lmbmRlZiBHTVBfTlVN Ql9CSVRTCiBlbnVtIHsgR01QX05VTUJfQklUUyA9IFRZUEVfV0lEVEggKG1wX2xpbWJfdCkg fTsKQEAgLTY4LDE2ICs3NCwxOCBAQCBtcHpfc2V0X2ludG1heCAobXB6X3QgcmVzdWx0LCBp bnRtYXhfdCB2KQogICAvKiBtcHpfc2V0X3NpIHdvcmtzIGluIHRlcm1zIG9mIGxvbmcsIGJ1 dCBFbWFjcyBtYXkgdXNlIGEgd2lkZXIKICAgICAgaW50ZWdlciB0eXBlLCBhbmQgc28gc29t ZXRpbWVzIHdpbGwgaGF2ZSB0byBjb25zdHJ1Y3QgdGhlIG1wel90CiAgICAgIGJ5IGhhbmQu ICAqLwotICBpZiAoTE9OR19NSU4gPD0gdiAmJiB2IDw9IExPTkdfTUFYKQotICAgIG1wel9z ZXRfc2kgKHJlc3VsdCwgdik7CisgIGxvbmcgaW50IGk7CisgIGlmIChGQVNURVJfQklHTlVN ICYmICFja2RfYWRkICgmaSwgdiwgMCkpCisgICAgbXB6X3NldF9zaSAocmVzdWx0LCBpKTsK ICAgZWxzZQogICAgIG1wel9zZXRfaW50bWF4X3Nsb3cgKHJlc3VsdCwgdik7CiB9CiBJTkxJ TkUgdm9pZCBBUkdfTk9OTlVMTCAoKDEpKQogbXB6X3NldF91aW50bWF4IChtcHpfdCByZXN1 bHQsIHVpbnRtYXhfdCB2KQogewotICBpZiAodiA8PSBVTE9OR19NQVgpCi0gICAgbXB6X3Nl dF91aSAocmVzdWx0LCB2KTsKKyAgdW5zaWduZWQgbG9uZyBpbnQgaTsKKyAgaWYgKEZBU1RF Ul9CSUdOVU0gJiYgIWNrZF9hZGQgKCZpLCB2LCAwKSkKKyAgICBtcHpfc2V0X3VpIChyZXN1 bHQsIGkpOwogICBlbHNlCiAgICAgbXB6X3NldF91aW50bWF4X3Nsb3cgKHJlc3VsdCwgdik7 CiB9Ci0tIAoyLjM0LjEKCg== --------------NfwiklpzcLJ7Hl9WQFyp0mbQ Content-Type: text/x-patch; charset=UTF-8; name="0013-Optimize-smallish-mpz-to-native-int-conversion.patch" Content-Disposition: attachment; filename*0="0013-Optimize-smallish-mpz-to-native-int-conversion.patch" Content-Transfer-Encoding: base64 RnJvbSA2OTIzMTQ1YzEwYjUwZDg2ZDEzM2M3ZjdhNWJiM2M0MDdhZTI0NmU1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUaHUsIDExIEp1bCAyMDI0IDEyOjQyOjU3ICswMjAwClN1YmplY3Q6IFtQQVRD SCAxMy8xN10gT3B0aW1pemUgc21hbGxpc2ggbXB6IHRvIG5hdGl2ZSBpbnQgY29udmVyc2lv bgoKKiBzcmMvYmlnbnVtLmMgKG1ha2VfaW50ZWdlcl9tcHosIG1wel90b19pbnRtYXgpOgpJ ZiBGQVNURVJfQklHTlVNLCBvcHRpbWl6ZSB0aGUgY29tbW9uIGNhc2Ugd2hlcmUgdGhlIHZh bHVlIGZpdHMgaW4KbG9uZyBpbnQuICBJbiB0aGlzIGNhc2Ugd2UgY2FuIHVzZSBtcHpfZml0 c19zbG9uZ19wIGFuZCBtcHpfZ2V0X3NpCmluc3RlYWQgb2YgbG9vcGluZyB3aXRoIG1wel9n ZXRsaW1ibi4KKG1wel90b191aW50bWF4KTogTGlrZXdpc2UgZm9yIHVuc2lnbmVkIGxvbmcg aW50IGFuZCBtcHpfZ2V0X3VpLgotLS0KIHNyYy9iaWdudW0uYyB8IDM0ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzMyBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JpZ251bS5jIGIvc3JjL2Jp Z251bS5jCmluZGV4IDFmZTE5NWQ3OGVhLi43NTg5NjkxZGQwYyAxMDA2NDQKLS0tIGEvc3Jj L2JpZ251bS5jCisrKyBiL3NyYy9iaWdudW0uYwpAQCAtMTQ1LDkgKzE0NSwxOSBAQCBtYWtl X25lZ19iaWd1aW50ICh1aW50bWF4X3QgbikKIExpc3BfT2JqZWN0CiBtYWtlX2ludGVnZXJf bXB6ICh2b2lkKQogeworICBpZiAoRkFTVEVSX0JJR05VTSAmJiBtcHpfZml0c19zbG9uZ19w IChtcHpbMF0pKQorICAgIHsKKyAgICAgIGxvbmcgaW50IHYgPSBtcHpfZ2V0X3NpIChtcHpb MF0pOworICAgICAgaWYgKCFGSVhOVU1fT1ZFUkZMT1dfUCAodikpCisJcmV0dXJuIG1ha2Vf Zml4bnVtICh2KTsKKyAgICB9CisKICAgc2l6ZV90IGJpdHMgPSBtcHpfc2l6ZWluYmFzZSAo bXB6WzBdLCAyKTsKIAotICBpZiAoYml0cyA8PSBGSVhOVU1fQklUUykKKyAgaWYgKCEgKEZB U1RFUl9CSUdOVU0KKwkgJiYgRklYTlVNX09WRVJGTE9XX1AgKExPTkdfTUlOKQorCSAmJiBG SVhOVU1fT1ZFUkZMT1dfUCAoTE9OR19NQVgpKQorICAgICAgJiYgYml0cyA8PSBGSVhOVU1f QklUUykKICAgICB7CiAgICAgICBFTUFDU19JTlQgdiA9IDA7CiAgICAgICBpbnQgaSA9IDAs IHNoaWZ0ID0gMDsKQEAgLTIxNiw2ICsyMjYsMTcgQEAgbXB6X3NldF91aW50bWF4X3Nsb3cg KG1wel90IHJlc3VsdCwgdWludG1heF90IHYpCiBib29sCiBtcHpfdG9faW50bWF4IChtcHpf dCBjb25zdCB6LCBpbnRtYXhfdCAqcGkpCiB7CisgIGlmIChGQVNURVJfQklHTlVNKQorICAg IHsKKyAgICAgIGlmIChtcHpfZml0c19zbG9uZ19wICh6KSkKKwl7CisJICAqcGkgPSBtcHpf Z2V0X3NpICh6KTsKKwkgIHJldHVybiB0cnVlOworCX0KKyAgICAgIGlmIChMT05HX01JTiA8 PSBJTlRNQVhfTUlOICYmIElOVE1BWF9NQVggPD0gTE9OR19NQVgpCisJcmV0dXJuIGZhbHNl OworICAgIH0KKwogICBwdHJkaWZmX3QgYml0cyA9IG1wel9zaXplaW5iYXNlICh6LCAyKTsK ICAgYm9vbCBuZWdhdGl2ZSA9IG1wel9zZ24gKHopIDwgMDsKIApAQCAtMjQ2LDYgKzI2Nywx NyBAQCBtcHpfdG9faW50bWF4IChtcHpfdCBjb25zdCB6LCBpbnRtYXhfdCAqcGkpCiBib29s CiBtcHpfdG9fdWludG1heCAobXB6X3QgY29uc3QgeiwgdWludG1heF90ICpwaSkKIHsKKyAg aWYgKEZBU1RFUl9CSUdOVU0pCisgICAgeworICAgICAgaWYgKG1wel9maXRzX3Vsb25nX3Ag KHopKQorCXsKKwkgICpwaSA9IG1wel9nZXRfdWkgKHopOworCSAgcmV0dXJuIHRydWU7CisJ fQorICAgICAgaWYgKFVJTlRNQVhfTUFYIDw9IFVMT05HX01BWCkKKwlyZXR1cm4gZmFsc2U7 CisgICAgfQorCiAgIGlmIChtcHpfc2duICh6KSA8IDApCiAgICAgcmV0dXJuIGZhbHNlOwog ICBwdHJkaWZmX3QgYml0cyA9IG1wel9zaXplaW5iYXNlICh6LCAyKTsKLS0gCjIuMzQuMQoK --------------NfwiklpzcLJ7Hl9WQFyp0mbQ Content-Type: text/x-patch; charset=UTF-8; name="0014-In-timefns.c-avoid-by-hand-overflow-checking.patch" Content-Disposition: attachment; filename="0014-In-timefns.c-avoid-by-hand-overflow-checking.patch" Content-Transfer-Encoding: base64 RnJvbSAzOWQ5ZGYyMTgxMjA5ZDcwMGY0MWIyMDY0YTAyZTVjZWE0MmMxNTY0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUaHUsIDExIEp1bCAyMDI0IDEyOjU3OjAxICswMjAwClN1YmplY3Q6IFtQQVRD SCAxNC8xN10gSW4gdGltZWZucy5jIGF2b2lkIGJ5LWhhbmQgb3ZlcmZsb3cgY2hlY2tpbmcK ClByZWZlciBmdW5jdGlvbnMgbGlrZSBja2RfYWRkIHRvIGRvIG92ZXJmbG93IGNoZWNraW5n LCBpbnN0ZWFkIG9mCmRvaW5nIGl0IGJ5IGhhbmQsIHRvIHNpbXBsaWZ5IGFuZCBJIGhvcGUg dG8gbWFrZSB0aGluZ3MgYSBiaXQgbGVzcwplcnJvciBwcm9uZS4KKiBzcmMvdGltZWZucy5j IChUSU1FX1RfTUlOLCBUSU1FX1RfTUFYKTogUmVtb3ZlLiAgQWxsIGJ5LWhhbmQKb3ZlcmZs b3cgY2hlY2tpbmcgcmVwbGFjZWQgd2l0aCBjYWxscyB0byBja2RfYWRkIG9yIGNrZF9tdWwu CihzX25zX3RvX3RpbWVzcGVjKTogTmV3IHN0YXRpYyBmdW5jdGlvbiwgdGhhdCB1c2VzIGNr ZF9hZGQKaW5zdGVhZCBvZiBieS1oYW5kIG92ZXJmbG93IGNoZWNraW5nLgoodGlja3NfaHpf dG9fdGltZXNwZWMpOiBVc2UgaXQuCihjaGVja190bV9tZW1iZXIpOiBVc2UgbXB6X2ZpdHNf c2ludF9wIGFuZCBtcHpfZ2V0X3NpIHJhdGhlcgp0aGFuIG1wel90b19pbnRtYXggYW5kIGJ5 LWhhbmQgb3ZlcmZsb3cgY2hlY2tpbmcuCi0tLQogc3JjL3RpbWVmbnMuYyB8IDc2ICsrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDQ5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyYy90aW1lZm5zLmMgYi9zcmMvdGltZWZucy5jCmluZGV4IDQ1YTA5MzBmOGE4Li42 OTQ5YzgzZGJjYiAxMDA2NDQKLS0tIGEvc3JjL3RpbWVmbnMuYworKysgYi9zcmMvdGltZWZu cy5jCkBAIC02MCwxMyArNjAsNiBAQCBDb3B5cmlnaHQgKEMpIDE5ODUtMTk4NywgMTk4OSwg MTk5My0yMDI0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogIyBkZWZpbmUgSEFW RV9UTV9HTVRPRkYgZmFsc2UKICNlbmRpZgogCi0jaWZuZGVmIFRJTUVfVF9NSU4KLSMgZGVm aW5lIFRJTUVfVF9NSU4gVFlQRV9NSU5JTVVNICh0aW1lX3QpCi0jZW5kaWYKLSNpZm5kZWYg VElNRV9UX01BWAotIyBkZWZpbmUgVElNRV9UX01BWCBUWVBFX01BWElNVU0gKHRpbWVfdCkK LSNlbmRpZgotCiAvKiBDb21waWxlIHdpdGggLURGQVNURVJfVElNRUZOUz0wIHRvIGRpc2Fi bGUgY29tbW9uIG9wdGltaXphdGlvbnMgYW5kCiAgICBhbGxvdyBlYXNpZXIgdGVzdGluZyBv ZiBzb21lIHNsb3ctcGF0aCBjb2RlLiAgKi8KICNpZm5kZWYgRkFTVEVSX1RJTUVGTlMKQEAg LTEyNywxMCArMTIwLDE0IEBAIG1ha2VfdGltZXZhbCAoc3RydWN0IHRpbWVzcGVjIHQpCiAg ICAgewogICAgICAgaWYgKHR2LnR2X3VzZWMgPCA5OTk5OTkpCiAJdHYudHZfdXNlYysrOwot ICAgICAgZWxzZSBpZiAodHYudHZfc2VjIDwgVElNRV9UX01BWCkKKyAgICAgIGVsc2UKIAl7 Ci0JICB0di50dl9zZWMrKzsKLQkgIHR2LnR2X3VzZWMgPSAwOworCSAgdGltZV90IHMxOwor CSAgaWYgKCFja2RfYWRkICgmczEsIHR2LnR2X3NlYywgMSkpCisJICAgIHsKKwkgICAgICB0 di50dl9zZWMgPSBzMTsKKwkgICAgICB0di50dl91c2VjID0gMDsKKwkgICAgfQogCX0KICAg ICB9CiAKQEAgLTQ5MiwxOCArNDg5LDIzIEBAIG1wel90aW1lIChtcHpfdCBjb25zdCB6LCB0 aW1lX3QgKnQpCiAgIGlmIChUWVBFX1NJR05FRCAodGltZV90KSkKICAgICB7CiAgICAgICBp bnRtYXhfdCBpOwotICAgICAgaWYgKCEgKG1wel90b19pbnRtYXggKHosICZpKSAmJiBUSU1F X1RfTUlOIDw9IGkgJiYgaSA8PSBUSU1FX1RfTUFYKSkKLQlyZXR1cm4gZmFsc2U7Ci0gICAg ICAqdCA9IGk7CisgICAgICByZXR1cm4gbXB6X3RvX2ludG1heCAoeiwgJmkpICYmICFja2Rf YWRkICh0LCBpLCAwKTsKICAgICB9CiAgIGVsc2UKICAgICB7CiAgICAgICB1aW50bWF4X3Qg aTsKLSAgICAgIGlmICghIChtcHpfdG9fdWludG1heCAoeiwgJmkpICYmIGkgPD0gVElNRV9U X01BWCkpCi0JcmV0dXJuIGZhbHNlOwotICAgICAgKnQgPSBpOworICAgICAgcmV0dXJuIG1w el90b191aW50bWF4ICh6LCAmaSkgJiYgIWNrZF9hZGQgKHQsIGksIDApOwogICAgIH0KLSAg cmV0dXJuIHRydWU7Cit9CisKKy8qIFJldHVybiBhIHZhbGlkIHRpbWVzcGVjIChTLCBOKSBp ZiBTIGlzIGluIHRpbWVfdCByYW5nZSwKKyAgIGFuIGludmFsaWQgdGltZXNwZWMgb3RoZXJ3 aXNlLiAgKi8KK3N0YXRpYyBzdHJ1Y3QgdGltZXNwZWMKK3NfbnNfdG9fdGltZXNwZWMgKGlu dG1heF90IHMsIGxvbmcgaW50IG5zKQoreworICB0aW1lX3Qgc2VjOworICBsb25nIGludCBu c2VjID0gY2tkX2FkZCAoJnNlYywgcywgMCkgPyAtMSA6IG5zOworICByZXR1cm4gbWFrZV90 aW1lc3BlYyAoc2VjLCBuc2VjKTsKIH0KIAogLyogQ29tcG9uZW50cyBvZiBhIExpc3AgdGlt ZXN0YW1wIChUSUNLUyAuIEhaKS4gIFVzaW5nIHRoaXMgQyBzdHJ1Y3QgY2FuCkBAIC01MjIs NyArNTI0LDYgQEAgbXB6X3RpbWUgKG1wel90IGNvbnN0IHosIHRpbWVfdCAqdCkKIHN0YXRp YyBzdHJ1Y3QgdGltZXNwZWMKIHRpY2tzX2h6X3RvX3RpbWVzcGVjIChMaXNwX09iamVjdCB0 aWNrcywgTGlzcF9PYmplY3QgaHopCiB7Ci0gIHN0cnVjdCB0aW1lc3BlYyByZXN1bHQgPSBp bnZhbGlkX3RpbWVzcGVjICgpOwogICBpbnQgbnM7CiAgIG1wel90ICpxID0gJm1welswXTsK ICAgbXB6X3QgY29uc3QgKnF0ID0gcTsKQEAgLTUzOSwzMyArNTQwLDE2IEBAIHRpY2tzX2h6 X3RvX3RpbWVzcGVjIChMaXNwX09iamVjdCB0aWNrcywgTGlzcF9PYmplY3QgaHopCiAJICBu cyA9IFhGSVhOVU0gKHRpY2tzKSAlIFRJTUVTUEVDX0haOwogCSAgaWYgKG5zIDwgMCkKIAkg ICAgcy0tLCBucyArPSBUSU1FU1BFQ19IWjsKLQkgIGlmICgoVFlQRV9TSUdORUQgKHRpbWVf dCkgPyBUSU1FX1RfTUlOIDw9IHMgOiAwIDw9IHMpCi0JICAgICAgJiYgcyA8PSBUSU1FX1Rf TUFYKQotCSAgICB7Ci0JICAgICAgcmVzdWx0LnR2X3NlYyA9IHM7Ci0JICAgICAgcmVzdWx0 LnR2X25zZWMgPSBuczsKLQkgICAgfQotCSAgcmV0dXJuIHJlc3VsdDsKKwkgIHJldHVybiBz X25zX3RvX3RpbWVzcGVjIChzLCBucyk7CiAJfQotICAgICAgZWxzZQotCW5zID0gbXB6X2Zk aXZfcV91aSAoKnEsICp4YmlnbnVtX3ZhbCAodGlja3MpLCBUSU1FU1BFQ19IWik7CisgICAg ICBucyA9IG1wel9mZGl2X3FfdWkgKCpxLCAqeGJpZ251bV92YWwgKHRpY2tzKSwgVElNRVNQ RUNfSFopOwogICAgIH0KICAgZWxzZSBpZiAoRkFTVEVSX1RJTUVGTlMgJiYgQkFTRV9FUSAo aHosIG1ha2VfZml4bnVtICgxKSkpCiAgICAgewogICAgICAgbnMgPSAwOwogICAgICAgaWYg KEZJWE5VTVAgKHRpY2tzKSkKLQl7Ci0JICBFTUFDU19JTlQgcyA9IFhGSVhOVU0gKHRpY2tz KTsKLQkgIGlmICgoVFlQRV9TSUdORUQgKHRpbWVfdCkgPyBUSU1FX1RfTUlOIDw9IHMgOiAw IDw9IHMpCi0JICAgICAgJiYgcyA8PSBUSU1FX1RfTUFYKQotCSAgICB7Ci0JICAgICAgcmVz dWx0LnR2X3NlYyA9IHM7Ci0JICAgICAgcmVzdWx0LnR2X25zZWMgPSBuczsKLQkgICAgfQot CSAgcmV0dXJuIHJlc3VsdDsKLQl9Ci0gICAgICBlbHNlCi0JcXQgPSB4YmlnbnVtX3ZhbCAo dGlja3MpOworCXJldHVybiBzX25zX3RvX3RpbWVzcGVjIChYRklYTlVNICh0aWNrcyksIG5z KTsKKyAgICAgIHF0ID0geGJpZ251bV92YWwgKHRpY2tzKTsKICAgICB9CiAgIGVsc2UKICAg ICB7CkBAIC01NzcsMTIgKzU2MSw3IEBAIHRpY2tzX2h6X3RvX3RpbWVzcGVjIChMaXNwX09i amVjdCB0aWNrcywgTGlzcF9PYmplY3QgaHopCiAgIC8qIENoZWNrIHRoYXQgUSBmaXRzIGlu IHRpbWVfdCwgbm90IG1lcmVseSBpbiBSRVNVTFQudHZfc2VjLiAgV2l0aCBzb21lIE1pbkdX CiAgICAgIHZlcnNpb25zLCB0dl9zZWMgaXMgYSA2NC1iaXQgdHlwZSwgd2hlcmVhcyB0aW1l X3QgaXMgYSAzMi1iaXQgdHlwZS4gICovCiAgIHRpbWVfdCBzZWM7Ci0gIGlmIChtcHpfdGlt ZSAoKnF0LCAmc2VjKSkKLSAgICB7Ci0gICAgICByZXN1bHQudHZfc2VjID0gc2VjOwotICAg ICAgcmVzdWx0LnR2X25zZWMgPSBuczsKLSAgICB9Ci0gIHJldHVybiByZXN1bHQ7CisgIHJl dHVybiBtcHpfdGltZSAoKnF0LCAmc2VjKSA/IG1ha2VfdGltZXNwZWMgKHNlYywgbnMpIDog aW52YWxpZF90aW1lc3BlYyAoKTsKIH0KIAogLyogQyB0aW1lc3RhbXAgZm9ybXMuICBUaGlz IGVudW0gaXMgcGFzc2VkIHRvIGNvbnZlcnNpb24gZnVuY3Rpb25zIHRvCkBAIC03MDAsNyAr Njc5LDcgQEAgdGlja3NfaHpfbGlzdDQgKExpc3BfT2JqZWN0IHRpY2tzLCBMaXNwX09iamVj dCBoeikKICAgaW50IHVzID0gbXB6X2dldF91aSAobXB6WzFdKTsKICNlbmRpZgogCi0gIC8q IG1welswXSA9IGZsb29yIChtcHpbMF0gLyAxIDw8IExPX1RJTUVfQklUUyksIHdpdGggbG8g PSByZW1haW5kZXIuICAqLworICAvKiBtcHpbMF0gPSBmbG9vciAobXB6WzBdIC8gKDEgPDwg TE9fVElNRV9CSVRTKSksIHdpdGggTE8gPSByZW1haW5kZXIuICAqLwogICB1bnNpZ25lZCBs b25nIHVsbyA9IG1wel9nZXRfdWkgKG1welswXSk7CiAgIGlmIChtcHpfc2duIChtcHpbMF0p IDwgMCkKICAgICB1bG8gPSAtdWxvOwpAQCAtMTY4NiwxMCArMTY2NSw5IEBAIGNoZWNrX3Rt X21lbWJlciAoTGlzcF9PYmplY3Qgb2JqLCBpbnQgb2Zmc2V0KQogICAgIHsKICAgICAgIENI RUNLX0lOVEVHRVIgKG9iaik7CiAgICAgICBtcHpfc3ViX3VpIChtcHpbMF0sICpiaWdudW1f aW50ZWdlciAoJm1welswXSwgb2JqKSwgb2Zmc2V0KTsKLSAgICAgIGludG1heF90IGk7Ci0g ICAgICBpZiAoISAobXB6X3RvX2ludG1heCAobXB6WzBdLCAmaSkgJiYgSU5UX01JTiA8PSBp ICYmIGkgPD0gSU5UX01BWCkpCisgICAgICBpZiAoIW1wel9maXRzX3NpbnRfcCAobXB6WzBd KSkKIAl0aW1lX292ZXJmbG93ICgpOwotICAgICAgcmV0dXJuIGk7CisgICAgICByZXR1cm4g bXB6X2dldF9zaSAobXB6WzBdKTsKICAgICB9CiB9CiAKLS0gCjIuMzQuMQoK --------------NfwiklpzcLJ7Hl9WQFyp0mbQ Content-Type: text/x-patch; charset=UTF-8; name="0015-Decode-current-time-directly-to-timespec.patch" Content-Disposition: attachment; filename="0015-Decode-current-time-directly-to-timespec.patch" Content-Transfer-Encoding: base64 RnJvbSA1YTk4MmMzZTdiMWU4OTMxNTMwZTExMGJiNTM4ODA0NzgyOWZhNGZlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUaHUsIDExIEp1bCAyMDI0IDE1OjAzOjUwICswMjAwClN1YmplY3Q6IFtQQVRD SCAxNS8xN10gRGVjb2RlIGN1cnJlbnQgdGltZSBkaXJlY3RseSB0byB0aW1lc3BlYwoKKiBz cmMvdGltZWZucy5jIChkZWNvZGVfdGltZV9jb21wb25lbnRzKTogSWYgRkFTVEVSX1RJTUVG TlMsIHdoZW4KcmV0dXJuaW5nIHRoZSBjdXJyZW50IHRpbWUgYW5kIHRoZSBkZXNpcmVkIGZv cm0gaXMgc3RydWN0IHRpbWVzcGVjCm9yIHRpbWVfdCwgcmV0dXJuIGl0IGRpcmVjdGx5IHJh dGhlciB0aGFuIGNvbnZlcnRpbmcgaXQgdG8gc3RydWN0CnRpY2tzX2h6IGFuZCB0aGVuIHRv IHN0cnVjdCB0aW1lc3BlYy4gIFRoaXMgY2FuIGF2b2lkIHNvbWUgbXB6CmNhbGN1bGF0aW9u cyBhbmQvb3IgYmlnbnVtcy4KLS0tCiBzcmMvdGltZWZucy5jIHwgMTAgKysrKysrKystLQog MSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmMvdGltZWZucy5jIGIvc3JjL3RpbWVmbnMuYwppbmRleCA2OTQ5YzgzZGJj Yi4uYWQzOWQxMzA3Y2QgMTAwNjQ0Ci0tLSBhL3NyYy90aW1lZm5zLmMKKysrIGIvc3JjL3Rp bWVmbnMuYwpAQCAtODg0LDggKzg4NCwxNCBAQCBkZWNvZGVfdGltZV9jb21wb25lbnRzIChl bnVtIHRpbWVmb3JtIGZvcm0sCiAgICAgICBlYXNzdW1lIChmYWxzZSk7CiAKICAgICBjYXNl IFRJTUVGT1JNX05JTDoKLSAgICAgIHRpY2tzID0gdGltZXNwZWNfdGlja3MgKGN1cnJlbnRf dGltZXNwZWMgKCkpOwotICAgICAgaHogPSB0aW1lc3BlY19oejsKKyAgICAgIHsKKwlzdHJ1 Y3QgdGltZXNwZWMgbm93ID0gY3VycmVudF90aW1lc3BlYyAoKTsKKwlpZiAoRkFTVEVSX1RJ TUVGTlMKKwkgICAgJiYgKGNmb3JtID09IENGT1JNX1RJTUVTUEVDIHx8IGNmb3JtID09IENG T1JNX1NFQ1NfT05MWSkpCisJICByZXR1cm4gKHN0cnVjdCBlcnJfdGltZSkgeyAudGltZSA9 IHsgLnRzID0gbm93IH0gfTsKKwl0aWNrcyA9IHRpbWVzcGVjX3RpY2tzIChub3cpOworCWh6 ID0gdGltZXNwZWNfaHo7CisgICAgICB9CiAgICAgICBicmVhazsKIAogICAgIGRlZmF1bHQ6 Ci0tIAoyLjM0LjEKCg== --------------NfwiklpzcLJ7Hl9WQFyp0mbQ Content-Type: text/x-patch; charset=UTF-8; name="0016-Avoid-mpz-for-some-common-timestamp-cases.patch" Content-Disposition: attachment; filename="0016-Avoid-mpz-for-some-common-timestamp-cases.patch" Content-Transfer-Encoding: base64 RnJvbSA3MjkxYjIwODA2YWRkZDk1NzcwYTRiNThkYTQwNDlkN2ExNGVhODcxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUaHUsIDExIEp1bCAyMDI0IDE1OjI4OjU4ICswMjAwClN1YmplY3Q6IFtQQVRD SCAxNi8xN10gQXZvaWQgbXB6IGZvciBzb21lIGNvbW1vbiB0aW1lc3RhbXAgY2FzZXMKTUlN RS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04 CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKClBlcmZvcm1hbmNlIHByb2JsZW0g cmVwb3J0ZWQgYnkgR2VyZCBNw7ZsbG1hbm4gYW5kIE1hdHRpYXMgRW5nZGVnw6VyZCBpbjoK aHR0cHM6Ly9saXN0cy5nbnUub3JnL3IvZW1hY3MtZGV2ZWwvMjAyNC0wNi9tc2cwMDUzMC5o dG1sCmh0dHBzOi8vbGlzdHMuZ251Lm9yZy9yL2VtYWNzLWRldmVsLzIwMjQtMDYvbXNnMDA1 MzkuaHRtbAoqIHNyYy90aW1lZm5zLmMgKENGT1JNX1NFQ1NfT05MWSk6IFRoZSBleGFjdCB0 dl9uc2VjIHZhbHVlIGlzIG5vdwppZ25vcmVkIGlmIG5vbm5lZ2F0aXZlIChpLmUuLCB0aGUg b25seSB0aGluZyB0aGF0IG1hdHRlcnMgaXMgdGhhdAppdOKAmXMgbm9ubmVnYXRpdmUpLgoo ZGVjb2RlX3RpbWVfY29tcG9uZW50cyk6IFVzZSBpbnRtYXhfdCBpbnN0ZWFkIG9mIG1weiBh cml0aG1ldGljCmlmIHRoZSB0aWNrIGNvdW50IGZpdHMuICBBZGQgYW5vdGhlciDigJhkZWZh dWx0OiBlYXNzdW1lIChmYWxzZSk74oCZCnNvIHRoYXQgdGhlIHJldmlzZWQgY29kZSBwYWNp ZmllcyAtLWVuYWJsZS1nY2Mtd2FybmluZ3Mgd2l0aCBHQ0MKMTEuNC4wIG9uIHg4Ni02NC4K LS0tCiBzcmMvdGltZWZucy5jIHwgODQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNzMgaW5zZXJ0aW9ucygr KSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3RpbWVmbnMuYyBiL3NyYy90 aW1lZm5zLmMKaW5kZXggYWQzOWQxMzA3Y2QuLjhjMzAwMTYzNjBkIDEwMDY0NAotLS0gYS9z cmMvdGltZWZucy5jCisrKyBiL3NyYy90aW1lZm5zLmMKQEAgLTU3MCw3ICs1NzAsOCBAQCB0 aWNrc19oel90b190aW1lc3BlYyAoTGlzcF9PYmplY3QgdGlja3MsIExpc3BfT2JqZWN0IGh6 KQogICB7CiAgICAgQ0ZPUk1fVElDS1NfSFosIC8qIHN0cnVjdCB0aWNrc19oeiAqLwogICAg IENGT1JNX1RJTUVTUEVDLCAvKiBzdHJ1Y3QgdGltZXNwZWMgKi8KLSAgICBDRk9STV9TRUNT X09OTFksIC8qIHN0cnVjdCB0aW1lc3BlYyBidXQgdHZfbnNlYyA9PSAwIGlmIHRpbWVzcGVj IHZhbGlkICovCisgICAgQ0ZPUk1fU0VDU19PTkxZLCAvKiBzdHJ1Y3QgdGltZXNwZWMgYnV0 IHR2X25zZWMgaXJyZWxldmFudAorCQkJaWYgdGltZXNwZWMgdmFsaWQgKi8KICAgICBDRk9S TV9ET1VCTEUgLyogZG91YmxlICovCiAgIH07CiAKQEAgLTg5NCwxMSArODk1LDIyIEBAIGRl Y29kZV90aW1lX2NvbXBvbmVudHMgKGVudW0gdGltZWZvcm0gZm9ybSwKICAgICAgIH0KICAg ICAgIGJyZWFrOwogCi0gICAgZGVmYXVsdDoKLSAgICAgIGlmICghIChJTlRFR0VSUCAoaGln aCkgJiYgSU5URUdFUlAgKGxvdykKLQkgICAgICYmIEZJWE5VTVAgKHVzZWMpICYmIEZJWE5V TVAgKHBzZWMpKSkKLQlyZXR1cm4gKHN0cnVjdCBlcnJfdGltZSkgeyAuZXJyID0gRUlOVkFM IH07CisgICAgY2FzZSBUSU1FRk9STV9ISV9MTzoKKyAgICAgIGh6ID0gbWFrZV9maXhudW0g KDEpOworICAgICAgZ290byBjaGVja19oaWdoX2xvdzsKKworICAgIGNhc2UgVElNRUZPUk1f SElfTE9fVVM6CisgICAgICBoeiA9IG1ha2VfZml4bnVtICgxMDAwMDAwKTsKKyAgICAgIGdv dG8gY2hlY2tfaGlnaF9sb3dfdXNlYzsKIAorICAgIGNhc2UgVElNRUZPUk1fSElfTE9fVVNf UFM6CisgICAgICBoeiA9IHRyaWxsaW9uOworICAgICAgaWYgKCFGSVhOVU1QIChwc2VjKSkK KwlyZXR1cm4gKHN0cnVjdCBlcnJfdGltZSkgeyAuZXJyID0gRUlOVkFMIH07CisgICAgY2hl Y2tfaGlnaF9sb3dfdXNlYzoKKyAgICAgIGlmICghRklYTlVNUCAodXNlYykpCisJcmV0dXJu IChzdHJ1Y3QgZXJyX3RpbWUpIHsgLmVyciA9IEVJTlZBTCB9OworICAgIGNoZWNrX2hpZ2hf bG93OgogICAgICAgewogCUVNQUNTX0lOVCB1cyA9IFhGSVhOVU0gKHVzZWMpOwogCUVNQUNT X0lOVCBwcyA9IFhGSVhOVU0gKHBzZWMpOwpAQCAtOTA2LDI1ICs5MTgsNzMgQEAgZGVjb2Rl X3RpbWVfY29tcG9uZW50cyAoZW51bSB0aW1lZm9ybSBmb3JtLAogCS8qIE5vcm1hbGl6ZSBv dXQtb2YtcmFuZ2UgbG93ZXItb3JkZXIgY29tcG9uZW50cyBieSBjYXJyeWluZwogCSAgIGVh Y2ggb3ZlcmZsb3cgaW50byB0aGUgbmV4dCBoaWdoZXItb3JkZXIgY29tcG9uZW50LiAgKi8K IAl1cyArPSBwcyAvIDEwMDAwMDAgLSAocHMgJSAxMDAwMDAwIDwgMCk7CisJRU1BQ1NfSU5U IHNfZnJvbV91c19wcyA9IHVzIC8gMTAwMDAwMCAtICh1cyAlIDEwMDAwMDAgPCAwKTsKKwlw cyA9IHBzICUgMTAwMDAwMCArIDEwMDAwMDAgKiAocHMgJSAxMDAwMDAwIDwgMCk7CisJdXMg PSB1cyAlIDEwMDAwMDAgKyAxMDAwMDAwICogKHVzICUgMTAwMDAwMCA8IDApOworCisJaWYg KEZBU1RFUl9USU1FRk5TICYmIEZJWE5VTVAgKGhpZ2gpICYmIEZJWE5VTVAgKGxvdykpCisJ ICB7CisJICAgIC8qIFVzZSBpbnRtYXhfdCBhcml0aG1ldGljIGlmIHRoZSB0aWNrIGNvdW50 IGZpdHMuICAqLworCSAgICBpbnRtYXhfdCBpdGlja3M7CisJICAgIGJvb2wgdiA9IGZhbHNl OworCSAgICB2IHw9IGNrZF9tdWwgKCZpdGlja3MsIFhGSVhOVU0gKGhpZ2gpLCAxIDw8IExP X1RJTUVfQklUUyk7CisJICAgIHYgfD0gY2tkX2FkZCAoJml0aWNrcywgaXRpY2tzLCBYRklY TlVNIChsb3cpICsgc19mcm9tX3VzX3BzKTsKKwkgICAgaWYgKCF2KQorCSAgICAgIHsKKwkJ aWYgKGNmb3JtID09IENGT1JNX1RJTUVTUEVDIHx8IGNmb3JtID09IENGT1JNX1NFQ1NfT05M WSkKKwkJICByZXR1cm4gKHN0cnVjdCBlcnJfdGltZSkgeworCQkgICAgLnRpbWUgPSB7CisJ CSAgICAgIC50cyA9IHNfbnNfdG9fdGltZXNwZWMgKGl0aWNrcywgdXMgKiAxMDAwICsgcHMg LyAxMDAwKQorCQkgICAgfQorCQkgIH07CisKKwkJc3dpdGNoIChmb3JtKQorCQkgIHsKKwkJ ICBjYXNlIFRJTUVGT1JNX0hJX0xPOgorCQkgICAgYnJlYWs7CisKKwkJICBjYXNlIFRJTUVG T1JNX0hJX0xPX1VTOgorCQkgICAgdiB8PSBja2RfbXVsICgmaXRpY2tzLCBpdGlja3MsIDEw MDAwMDApOworCQkgICAgdiB8PSBja2RfYWRkICgmaXRpY2tzLCBpdGlja3MsIHVzKTsKKwkJ ICAgIGJyZWFrOworCisJCSAgY2FzZSBUSU1FRk9STV9ISV9MT19VU19QUzoKKwkJICAgIHsK KwkJICAgICAgaW50X2Zhc3Q2NF90IG1pbGxpb24gPSAxMDAwMDAwOworCQkgICAgICB2IHw9 IGNrZF9tdWwgKCZpdGlja3MsIGl0aWNrcywgVFJJTExJT04pOworCQkgICAgICB2IHw9IGNr ZF9hZGQgKCZpdGlja3MsIGl0aWNrcywgdXMgKiBtaWxsaW9uICsgcHMpOworCQkgICAgfQor CQkgICAgYnJlYWs7CisKKwkJICBkZWZhdWx0OgorCQkgICAgZWFzc3VtZSAoZmFsc2UpOwor CQkgIH0KKworCQlpZiAoIXYpCisJCSAgcmV0dXJuIChzdHJ1Y3QgZXJyX3RpbWUpIHsKKwkJ ICAgIC50aW1lID0gZGVjb2RlX3RpY2tzX2h6IChtYWtlX2ludCAoaXRpY2tzKSwgaHosIGNm b3JtKQorCQkgIH07CisJICAgICAgfQorCSAgfQorCisJaWYgKCEgKElOVEVHRVJQIChoaWdo KSAmJiBJTlRFR0VSUCAobG93KSkpCisJICByZXR1cm4gKHN0cnVjdCBlcnJfdGltZSkgeyAu ZXJyID0gRUlOVkFMIH07CisKIAltcHpfdCAqcyA9ICZtcHpbMV07Ci0JbXB6X3NldF9pbnRt YXggKCpzLCB1cyAvIDEwMDAwMDAgLSAodXMgJSAxMDAwMDAwIDwgMCkpOworCW1wel9zZXRf aW50bWF4ICgqcywgc19mcm9tX3VzX3BzKTsKIAltcHpfYWRkICgqcywgKnMsICpiaWdudW1f aW50ZWdlciAoJm1welswXSwgbG93KSk7CiAJbXB6X2FkZG11bF91aSAoKnMsICpiaWdudW1f aW50ZWdlciAoJm1welswXSwgaGlnaCksIDEgPDwgTE9fVElNRV9CSVRTKTsKLQlwcyA9IHBz ICUgMTAwMDAwMCArIDEwMDAwMDAgKiAocHMgJSAxMDAwMDAwIDwgMCk7Ci0JdXMgPSB1cyAl IDEwMDAwMDAgKyAxMDAwMDAwICogKHVzICUgMTAwMDAwMCA8IDApOwogCiAJc3dpdGNoIChm b3JtKQogCSAgewogCSAgY2FzZSBUSU1FRk9STV9ISV9MTzoKIAkgICAgLyogRmxvYXRzIGFu ZCBuaWwgd2VyZSBoYW5kbGVkIGFib3ZlLCBzbyBpdCB3YXMgYW4gaW50ZWdlci4gICovCiAJ ICAgIG1wel9zd2FwIChtcHpbMF0sICpzKTsKLQkgICAgaHogPSBtYWtlX2ZpeG51bSAoMSk7 CiAJICAgIGJyZWFrOwogCiAJICBjYXNlIFRJTUVGT1JNX0hJX0xPX1VTOgogCSAgICBtcHpf c2V0X3VpIChtcHpbMF0sIHVzKTsKIAkgICAgbXB6X2FkZG11bF91aSAobXB6WzBdLCAqcywg MTAwMDAwMCk7Ci0JICAgIGh6ID0gbWFrZV9maXhudW0gKDEwMDAwMDApOwogCSAgICBicmVh azsKIAogCSAgY2FzZSBUSU1FRk9STV9ISV9MT19VU19QUzoKQEAgLTkzOCw3ICs5OTgsNiBA QCBkZWNvZGVfdGltZV9jb21wb25lbnRzIChlbnVtIHRpbWVmb3JtIGZvcm0sCiAJCW1wel9z ZXRfaW50bWF4IChtcHpbMF0sIGkgKiAxMDAwMDAwICsgcHMpOwogCQltcHpfYWRkbXVsICht cHpbMF0sICpzLCB6dHJpbGxpb24pOwogCSAgICAgICNlbmRpZgotCSAgICAgIGh6ID0gdHJp bGxpb247CiAJICAgIH0KIAkgICAgYnJlYWs7CiAKQEAgLTk0OCw2ICsxMDA3LDkgQEAgZGVj b2RlX3RpbWVfY29tcG9uZW50cyAoZW51bSB0aW1lZm9ybSBmb3JtLAogCXRpY2tzID0gbWFr ZV9pbnRlZ2VyX21weiAoKTsKICAgICAgIH0KICAgICAgIGJyZWFrOworCisgICAgZGVmYXVs dDoKKyAgICAgIGVhc3N1bWUgKGZhbHNlKTsKICAgICB9CiAKICAgcmV0dXJuIChzdHJ1Y3Qg ZXJyX3RpbWUpIHsgLnRpbWUgPSBkZWNvZGVfdGlja3NfaHogKHRpY2tzLCBoeiwgY2Zvcm0p IH07Ci0tIAoyLjM0LjEKCg== --------------NfwiklpzcLJ7Hl9WQFyp0mbQ Content-Type: text/x-patch; charset=UTF-8; name="0017-Rename-timefns-static-function-lisp_time_struct.patch" Content-Disposition: attachment; filename*0="0017-Rename-timefns-static-function-lisp_time_struct.patch" Content-Transfer-Encoding: base64 RnJvbSA3ZmUwNTY0YmVmYWViNDVmOGY5ZjJmNTc1M2YyYjI0ZTFmODkxZDE1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBUaHUsIDExIEp1bCAyMDI0IDE1OjQwOjQ3ICswMjAwClN1YmplY3Q6IFtQQVRD SCAxNy8xN10gUmVuYW1lIHRpbWVmbnMgc3RhdGljIGZ1bmN0aW9uIGxpc3BfdGltZV9zdHJ1 Y3QKCiogc3JjL3RpbWVmbnMuYyAobGlzcF90aW1lX2Nmb3JtKTogUmVuYW1lIGZyb20gbGlz cF90aW1lX3N0cnVjdCwKc2luY2UgaXQgbm8gbG9uZ2VyIHJldHVybnMgYSBzdHJ1Y3QsIGFu ZCBub3cgYWNjZXB0cyBDRk9STS4KQWxsIHVzZXMgY2hhbmdlZC4KLS0tCiBzcmMvdGltZWZu cy5jIHwgMTQgKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMo KyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3RpbWVmbnMuYyBiL3NyYy90 aW1lZm5zLmMKaW5kZXggOGMzMDAxNjM2MGQuLjFlNTUxMDA5ZGY4IDEwMDY0NAotLS0gYS9z cmMvdGltZWZucy5jCisrKyBiL3NyYy90aW1lZm5zLmMKQEAgLTExMjUsMjQgKzExMjUsMjQg QEAgbGlzdDRfdG9fdGltZXNwZWMgKExpc3BfT2JqZWN0IGhpZ2gsIExpc3BfT2JqZWN0IGxv dywKICAgcmV0dXJuIGVycl90aW1lLmVyciA/IGludmFsaWRfdGltZXNwZWMgKCkgOiBlcnJf dGltZS50aW1lLnRzOwogfQogCi0vKiBEZWNvZGUgYSBMaXNwIGxpc3QgU1BFQ0lGSUVEX1RJ TUUgdGhhdCByZXByZXNlbnRzIGEgdGltZS4KKy8qIERlY29kZSBhIExpc3AgdGltZSB2YWx1 ZSBTUEVDSUZJRURfVElNRSB0aGF0IHJlcHJlc2VudHMgYSB0aW1lLgogICAgSWYgU1BFQ0lG SUVEX1RJTUUgaXMgbmlsLCB1c2UgdGhlIGN1cnJlbnQgdGltZS4KICAgIERlY29kZSB0byBD Rk9STSBmb3JtLgogICAgU2lnbmFsIGFuIGVycm9yIGlmIFNQRUNJRklFRF9USU1FIGRvZXMg bm90IHJlcHJlc2VudCBhIHRpbWUuICAqLwogc3RhdGljIHVuaW9uIGNfdGltZQotbGlzcF90 aW1lX3N0cnVjdCAoTGlzcF9PYmplY3Qgc3BlY2lmaWVkX3RpbWUsIGVudW0gY2Zvcm0gY2Zv cm0pCitsaXNwX3RpbWVfY2Zvcm0gKExpc3BfT2JqZWN0IHNwZWNpZmllZF90aW1lLCBlbnVt IGNmb3JtIGNmb3JtKQogewogICByZXR1cm4gZGVjb2RlX2xpc3BfdGltZSAoc3BlY2lmaWVk X3RpbWUsIGNmb3JtKS50aW1lOwogfQogCi0vKiBEZWNvZGUgYSBMaXNwIGxpc3QgU1BFQ0lG SUVEX1RJTUUgdGhhdCByZXByZXNlbnRzIGEgdGltZS4KKy8qIERlY29kZSBhIExpc3AgdGlt ZSB2YWx1ZSBTUEVDSUZJRURfVElNRSB0aGF0IHJlcHJlc2VudHMgYSB0aW1lLgogICAgRGlz Y2FyZCBhbnkgbG93LW9yZGVyIChzdWItbnMpIHJlc29sdXRpb24uCiAgICBJZiBTUEVDSUZJ RURfVElNRSBpcyBuaWwsIHVzZSB0aGUgY3VycmVudCB0aW1lLgogICAgU2lnbmFsIGFuIGVy cm9yIGlmIFNQRUNJRklFRF9USU1FIGRvZXMgbm90IHJlcHJlc2VudCBhIHRpbWVzcGVjLiAg Ki8KIHN0cnVjdCB0aW1lc3BlYwogbGlzcF90aW1lX2FyZ3VtZW50IChMaXNwX09iamVjdCBz cGVjaWZpZWRfdGltZSkKIHsKLSAgc3RydWN0IHRpbWVzcGVjIHQgPSBsaXNwX3RpbWVfc3Ry dWN0IChzcGVjaWZpZWRfdGltZSwgQ0ZPUk1fVElNRVNQRUMpLnRzOworICBzdHJ1Y3QgdGlt ZXNwZWMgdCA9IGxpc3BfdGltZV9jZm9ybSAoc3BlY2lmaWVkX3RpbWUsIENGT1JNX1RJTUVT UEVDKS50czsKICAgaWYgKCEgdGltZXNwZWNfdmFsaWRfcCAodCkpCiAgICAgdGltZV9vdmVy ZmxvdyAoKTsKICAgcmV0dXJuIHQ7CkBAIC0xMzQ2LDggKzEzNDYsOCBAQCB0aW1lX2NtcCAo TGlzcF9PYmplY3QgYSwgTGlzcF9PYmplY3QgYikKIAogICAvKiBDb21wYXJlIChBVElDS1Mg LiBBWikgdG8gKEJUSUNLUyAuIEJIWikgYnkgY29tcGFyaW5nCiAgICAgIEFUSUNLUyAqIEJI WiB0byBCVElDS1MgKiBBSFouICAqLwotICBzdHJ1Y3QgdGlja3NfaHogdGEgPSBsaXNwX3Rp bWVfc3RydWN0IChhLCBDRk9STV9USUNLU19IWikudGg7Ci0gIHN0cnVjdCB0aWNrc19oeiB0 YiA9IGxpc3BfdGltZV9zdHJ1Y3QgKGIsIENGT1JNX1RJQ0tTX0haKS50aDsKKyAgc3RydWN0 IHRpY2tzX2h6IHRhID0gbGlzcF90aW1lX2Nmb3JtIChhLCBDRk9STV9USUNLU19IWikudGg7 CisgIHN0cnVjdCB0aWNrc19oeiB0YiA9IGxpc3BfdGltZV9jZm9ybSAoYiwgQ0ZPUk1fVElD S1NfSFopLnRoOwogICBtcHpfdCBjb25zdCAqemEgPSBiaWdudW1faW50ZWdlciAoJm1welsw XSwgdGEudGlja3MpOwogICBtcHpfdCBjb25zdCAqemIgPSBiaWdudW1faW50ZWdlciAoJm1w elsxXSwgdGIudGlja3MpOwogICBpZiAoISAoRkFTVEVSX1RJTUVGTlMgJiYgQkFTRV9FUSAo dGEuaHosIHRiLmh6KSkpCkBAIC0xNjMwLDcgKzE2MzAsNyBAQCBERUZVTiAoImRlY29kZS10 aW1lIiwgRmRlY29kZV90aW1lLCBTZGVjb2RlX3RpbWUsIDAsIDMsIDAsCiAgIHN0cnVjdCB0 aWNrc19oeiB0aDsKICAgaWYgKEVRIChmb3JtLCBRdCkpCiAgICAgewotICAgICAgdGggPSBs aXNwX3RpbWVfc3RydWN0IChzcGVjaWZpZWRfdGltZSwgQ0ZPUk1fVElDS1NfSFopLnRoOwor ICAgICAgdGggPSBsaXNwX3RpbWVfY2Zvcm0gKHNwZWNpZmllZF90aW1lLCBDRk9STV9USUNL U19IWikudGg7CiAgICAgICBzdHJ1Y3QgdGltZXNwZWMgdHMgPSB0aWNrc19oel90b190aW1l c3BlYyAodGgudGlja3MsIHRoLmh6KTsKICAgICAgIGlmICghIHRpbWVzcGVjX3ZhbGlkX3Ag KHRzKSkKIAl0aW1lX292ZXJmbG93ICgpOwotLSAKMi4zNC4xCgo= --------------NfwiklpzcLJ7Hl9WQFyp0mbQ--