From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id gJ2pOJA7UWLe7QAAgWs5BA (envelope-from ) for ; Sat, 09 Apr 2022 09:53:52 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id EP0/NZA7UWII/gAAauVa8A (envelope-from ) for ; Sat, 09 Apr 2022 09:53:52 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 554E4290C2 for ; Sat, 9 Apr 2022 09:53:51 +0200 (CEST) Received: from localhost ([::1]:47758 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nd5um-0005Sk-Kb for larch@yhetil.org; Sat, 09 Apr 2022 03:53:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44788) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nd5u6-0005SS-2i for emacs-orgmode@gnu.org; Sat, 09 Apr 2022 03:53:08 -0400 Received: from zimbra.cs.ucla.edu ([131.179.128.68]:47712) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nd5u2-0001S4-RY for emacs-orgmode@gnu.org; Sat, 09 Apr 2022 03:53:05 -0400 Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id C01341600C2; Sat, 9 Apr 2022 00:52:59 -0700 (PDT) Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id LusCG_CmcU2a; Sat, 9 Apr 2022 00:52:58 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id E3A0F1600CC; Sat, 9 Apr 2022 00:52:57 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id mHXv_aL2zW1N; Sat, 9 Apr 2022 00:52:57 -0700 (PDT) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id A8F161600C2; Sat, 9 Apr 2022 00:52:57 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------uJTJyPDINxznWwKdUJSLwFTK" Message-ID: <149de00f-115b-5367-414f-c7700ef8966b@cs.ucla.edu> Date: Sat, 9 Apr 2022 00:52:57 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Content-Language: en-US To: Max Nikulin , 54764@debbugs.gnu.org References: <5ed963b2-3fa8-48d8-627e-bc0571d15b43@gmail.com> From: Paul Eggert Organization: UCLA Computer Science Department Subject: Re: bug#54764: encode-time: make DST and TIMEZONE fields of the list argument optional ones In-Reply-To: <5ed963b2-3fa8-48d8-627e-bc0571d15b43@gmail.com> Received-SPF: pass client-ip=131.179.128.68; envelope-from=eggert@cs.ucla.edu; helo=zimbra.cs.ucla.edu X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: emacs-orgmode@gnu.org Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1649490832; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=lNrYIzIM2F+McqcrhH/2BRLymvpLrTLiDRa3ioHLr4o=; b=b1s+ZeWuFRMJDgJGiLevuO+dEzspke05CeC2Ddb0QATNuJk03DyNHJl9rglY4LIReR9S+c tvRSBqdhVBunWdu4kzjZ7PuBG8cWYFByx8a8pbKedu94PmT45XQ3QvdZjfk4kH+5JtTxxX EHc90NzYnae+U5f4MWyoVgLdH/nMdodVppnm4zuIve8SeU5yCMT+7O9DvukdFn0P74b9Et 0/VctGXUPdNVfri70Ih4WKvuPWlBUuMcfWXHxtKE/AjY8u4dIvu0iv/Vp4ckkj3FZuw0Q3 XxTjM29+9HPk+i6FBgwklpp2IId/QunfaO6KByvmWkutswANSvr/J1wgH9y0aA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1649490832; a=rsa-sha256; cv=none; b=lnpMjP8RldIu2odKGeCMxNbI2vLDI7D0umL/wcO/915yhS/QPRa7UDa7ADgRT7ayIadzWV /lJEBZixs0+veE3M31J5iRu5PDa95k9G3Bhq568/NHYYZPt/ZxhV59KUP8nV71j7+UYXRp qfjjrOGnJyIBsHe8K1Xjdirjcw2MHJIYqkYm0dD70SAU+bRpIZ+5UWN7smaQKlvxxcmU4/ diXn7NFWDj/lFiI13ZdfkDn5hqVj4OqWTrtEcyhEInFktcSJQS0NPvc4ng9xr0lGJubsF9 F3MtfJtDak464TqwC6TLcfi+jNdHNdqugOihiPERsO8ykt8ukwSugm2OEkgn0w== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -3.27 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 554E4290C2 X-Spam-Score: -3.27 X-Migadu-Scanner: scn0.migadu.com X-TUID: K49qOeHxHqFl This is a multi-part message in MIME format. --------------uJTJyPDINxznWwKdUJSLwFTK Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 4/7/22 05:37, Max Nikulin wrote: > (encode-time '(0 30 20 07 04 2022 nil nil nil)) ; wrong! Yes, and I see a couple of places (org-parse-time-string, org-read-date-analyze) where Org mode returns the wrong decoded timestamps, ending in (nil nil nil) even though the DST flag is unknown so they should end in (nil -1 nil). Please see attached proposed patch which fixes this (also see below). > Since Emacs-27 time fields as separated arguments are considered > obsolete for calls of `encode-time'. Obsolescent, not obsolete. The old form still works and it's not going away any time soon. If the efficiency concerns you mention are significant, we should keep the old form indefinitely. > t is inconvenient to add 3 extra mandatory components at > the each place. Then let's keep using the obsolescent calling convention for places where that's convenient. Perhaps we should change the documentation to say "older" instead of "obsolescent". > From my point of view it is better to change implementation of > `encode-time' so that it may accept 6-component list SECOND...YEAR. It > should not add noticeable performance penalty but makes the function > more convenient in use. Unfortunately it makes the function more convenient to use incorrectly. This was part of the motivation for the API change. The obsolescent calling convention has no way to deal with ambiguous timestamps like 2022-11-06 01:30 when TZ="America/Los_Angeles". Org mode surely has bugs in this area, although I don't have time to scout them out. > Daylight saving > time field matters only as a list component and ignored as a separate > argument (by the way, it should be stressed in the docstring). Do you have a wording suggestion? (The doc string already covers the topic concisely; however, conciseness is not always a virtue. :-) The reason -1 is the default in the obsolete API is backward compatibility. If we could have designed the API from scratch it would have been different. > In the Org code it is unsure which way to call `encode-time' is more > convenient. In a half of the cases a list is obtained from another > function, but another half is timestamp built from computed components. > Unless the inconsistency with DST I would say that both ways to call the > function should be supported. Yes, that's the idea. > So my proposal is to not force Org mode to use new calling convention > for `encode-time' till DST and ZONE list components will became optional > ones in a released Emacs version. This would delay things for ten years or so, no? We'd have to wait until Org mode supported only Emacs 29 and later. Instead, I suggest that we stick with what we have when that's cleaner. That is, Org mode can use the obsolescent encode-time API when it's cleaner to do that. It would be helpful for Org mode to use the new encode-time form in some cases, when the new form is cleaner. It's easy to support the new form efficiently even in older Emacs, using a compatibility shim. This is also in the attached proposed patch. This patch has a few other minor cleanups in the area. I haven't installed the patch, or tested it other than via 'make check'. PS. Org mode usually uses encode-time for calendrical calculations. This is dicey, as some days don't exist (for example, December 30, 2011 does not exist if TZ="Pacific/Apia", because Samoa moved across the International Date Line that day). And it's also dicey when Org mode uses 00:00:00 (midnight at the start of the day) as a timestamp representing the entire day, as it's all too common for midnight to not exist (or to be duplicated) due to a DST transition. Generally speaking, when Org mode is doing calendrical calculations it should use calendrical functions rather than encode-time+decode-time, which are best used for time calculations not calendar calculations. (I realize that fixing this in Org would be nontrivial; perhaps I should file this "PS" as an Org bug report for whoever has time to fix it....) --------------uJTJyPDINxznWwKdUJSLwFTK Content-Type: text/x-patch; charset=UTF-8; name="0001-Improve-Org-usage-of-timestamps.patch" Content-Disposition: attachment; filename="0001-Improve-Org-usage-of-timestamps.patch" Content-Transfer-Encoding: base64 RnJvbSAwOTQzNDVlMTBhZDQ1ZTA2ZjdiMzJlMmY4MDE3NTkyMjEwZjQzNDYzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYXVsIEVnZ2VydCA8ZWdnZXJ0QGNzLnVjbGEuZWR1 PgpEYXRlOiBTYXQsIDkgQXByIDIwMjIgMDA6MTc6MDkgLTA3MDAKU3ViamVjdDogW1BBVENI XSBJbXByb3ZlIE9yZyB1c2FnZSBvZiB0aW1lc3RhbXBzCk1JTUUtVmVyc2lvbjogMS4wCkNv bnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiA4Yml0CgpUaGUgbWFpbiB0aGluZyBpcyB0byBmb2xsb3cgdGhlIChlbmNv ZGUtdGltZSBYKSBjb252ZW50aW9uIHdoZXJlCljigJlzIERTVCBjb21wb25lbnQgb2Ygbmls IG1lYW5zIHN0YW5kYXJkIHRpbWUsIC0xIG1lYW5zIHVua25vd24uCiogbGlzcC9vcmcvb2wu ZWwgKG9yZy1zdG9yZS1saW5rKTogUHJlZmVyIHBsYWluIChlbmNvZGUtdGltZSAuLi4pCnRv IChhcHBseSAnZW5jb2RlLXRpbWUgLi4uKSwgZm9yIHNwZWVkLgoqIGxpc3Avb3JnL29yZy1j bG9jay5lbCAob3JnLWNsb2NrLXN1bSkKKG9yZy1jbG9jay11cGRhdGUtdGltZS1tYXliZSk6 ClByZWZlciBvcmctdGltZS1zdHJpbmctdG8tc2Vjb25kcyB0byBkb2luZyBpdCBieSBoYW5k LgoqIGxpc3Avb3JnL29yZy1jb2x2aWV3LmVsIChvcmctY29sdmlldy1jb25zdHJ1Y3QtYWxs b3dlZC1kYXRlcyk6CiogbGlzcC9vcmcvb3JnLmVsIChvcmctdGltZS1zdHJpbmctdG8tdGlt ZSwgb3JnLXRpbWVzdGFtcC1jaGFuZ2UpOgpQcmVmZXIgKG9yZy1lbmNvZGUtdGltZS0xIFgp IHRvIChhcHBseSAjJ2VuY29kZS10aW1lIFgpIHdoZW4gWCBpcwp0aGUgb3V0cHV0IG9mIG9y Zy1wYXJzZS10aW1lLXN0cmluZy4gIFRoZXkncmUgZXF1aXZhbGVudCBhbmQKdGhlIGZvcm1l ciBpcyBhIGJpdCBjbGVhbmVyLgoqIGxpc3Avb3JnL29yZy1jb21wYXQuZWwgKG9yZy1lbmNv ZGUtdGltZS0xKTogTmV3IGZ1bmN0aW9uLgoqIGxpc3Avb3JnL29yZy1tYWNyby5lbCAob3Jn LW1hY3JvLS12Yy1tb2RpZmllZC10aW1lKToKUHJlZmVyIChvcmctZW5jb2RlLXRpbWUtMSBY KSB0byAoYXBwbHkgIydlbmNvZGUtdGltZSBYKSB3aGVuIFggaXMKdGhlIG91dHB1dCBvZiBw YXJzZS10aW1lLXN0cmluZy4gIFRoZXkncmUgZXF1aXZhbGVudCBhbmQgdGhlCmZvcm1lciBp cyBhIGJpdCBjbGVhbmVyLgoqIGxpc3Avb3JnL29yZy1tYWNzLmVsIChvcmctMmZ0KToKUHJl ZmVyIG9yZy10aW1lLXN0cmluZy10by1zZWNvbmRzIHRvIGRvaW5nIGl0IGJ5IGhhbmQuCihv cmctcGFyc2UtdGltZS1zdHJpbmcpOiBSZXR1cm4gdW5rbm93biBEU1QsIG5vdCBzdGFuZGFy ZCB0aW1lLgoob3JnLW1hdGNoZXItdGltZSk6IE9taXQgYW4gdW5uZWNlc3NhcnkgY2FsbCB0 byDigJhhcHBlbmTigJkuCiogbGlzcC9vcmcvb3JnLXRhYmxlLmVsIChvcmctdGFibGUtZXZh bC1mb3JtdWxhKToKUHJlZmVyIG9yZy10aW1lLXN0cmluZy10by10aW1lIHRvIGRvaW5nIGl0 IGJ5IGhhbmQuCiogbGlzcC9vcmcvb3JnLmVsIChvcmctYWRkLXBsYW5uaW5nLWluZm8sIG9y Zy1yZWFkLWRhdGUpCihvcmctcmVhZC1kYXRlLWRpc3BsYXksIG9yZy1kaXNwbGF5LWN1c3Rv bS10aW1lKToKUHJlZmVyIChvcmctZW5jb2RlLXRpbWUtMSBYKSB0byAoYXBwbHkgIydlbmNv ZGUtdGltZSBYKSB3aGVuIFggaXMKdGhlIG91dHB1dCBvZiBvcmctcmVhZC1kYXRlLWFuYWx5 emUuICBUaGV5J3JlIGVxdWl2YWxlbnQgYW5kCnRoZSBmb3JtZXIgaXMgYSBiaXQgY2xlYW5l ci4KKG9yZy1yZWFkLWRhdGUtYW5hbHl6ZSk6IFJldHVybiBhIHRpbWVzdGFtcCB3aXRoIGEg RFNUIGZsYWcKb2YgLTEgKHVua25vd24pIHJhdGhlciB0aGFuIG5pbCAoc3RhbmRhcmQgdGlt ZSkuCi0tLQogbGlzcC9vcmcvb2wuZWwgICAgICAgICAgfCAgNCArLS0tCiBsaXNwL29yZy9v cmctY2xvY2suZWwgICB8IDE3ICsrKysrKy0tLS0tLS0tLS0tCiBsaXNwL29yZy9vcmctY29s dmlldy5lbCB8ICAyICstCiBsaXNwL29yZy9vcmctY29tcGF0LmVsICB8IDIxICsrKysrKysr KysrKysrKysrKysrKwogbGlzcC9vcmcvb3JnLW1hY3JvLmVsICAgfCAgMiArLQogbGlzcC9v cmcvb3JnLW1hY3MuZWwgICAgfCAgOCArKysrLS0tLQogbGlzcC9vcmcvb3JnLXRhYmxlLmVs ICAgfCAgMyArLS0KIGxpc3Avb3JnL29yZy5lbCAgICAgICAgIHwgMTQgKysrKysrKy0tLS0t LS0KIDggZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvbGlzcC9vcmcvb2wuZWwgYi9saXNwL29yZy9vbC5lbAppbmRleCBh MDNkODVmNjE4Li5mZTZlOTdlOTI4IDEwMDY0NAotLS0gYS9saXNwL29yZy9vbC5lbAorKysg Yi9saXNwL29yZy9vbC5lbApAQCAtMTU3NSw5ICsxNTc1LDcgQEAgb3JnLXN0b3JlLWxpbmsK IAkgIChzZXRxIGxpbmsKIAkJKGZvcm1hdC10aW1lLXN0cmluZwogCQkgKGNhciBvcmctdGlt ZS1zdGFtcC1mb3JtYXRzKQotCQkgKGFwcGx5ICdlbmNvZGUtdGltZQotCQkJKGxpc3QgMCAw IDAgKG50aCAxIGNkKSAobnRoIDAgY2QpIChudGggMiBjZCkKLQkJCSAgICAgIG5pbCBuaWwg bmlsKSkpKQorCQkgKGVuY29kZS10aW1lIDAgMCAwIChudGggMSBjZCkgKG50aCAwIGNkKSAo bnRoIDIgY2QpKSkpCiAJICAob3JnLWxpbmstc3RvcmUtcHJvcHMgOnR5cGUgImNhbGVuZGFy IiA6ZGF0ZSBjZCkpKQogCiAgICAgICAgKChlcSBtYWpvci1tb2RlICd3My1tb2RlKQpkaWZm IC0tZ2l0IGEvbGlzcC9vcmcvb3JnLWNsb2NrLmVsIGIvbGlzcC9vcmcvb3JnLWNsb2NrLmVs CmluZGV4IDczOTU2NjkxMDkuLjI0ZDJiNjFiNDggMTAwNjQ0Ci0tLSBhL2xpc3Avb3JnL29y Zy1jbG9jay5lbAorKysgYi9saXNwL29yZy9vcmctY2xvY2suZWwKQEAgLTE5MDMsMTMgKzE5 MDMsMTAgQEAgb3JnLWNsb2NrLXN1bQogCSAgKGNvbmQKIAkgICAoKG1hdGNoLWVuZCAyKQog CSAgICA7OyBUd28gdGltZSBzdGFtcHMuCi0JICAgIChsZXQqICgodHMgKGZsb2F0LXRpbWUK LQkJCShhcHBseSAjJ2VuY29kZS10aW1lCi0JCQkgICAgICAgKHNhdmUtbWF0Y2gtZGF0YQot CQkJCSAob3JnLXBhcnNlLXRpbWUtc3RyaW5nIChtYXRjaC1zdHJpbmcgMikpKSkpKQotCQkg ICAodGUgKGZsb2F0LXRpbWUKLQkJCShhcHBseSAjJ2VuY29kZS10aW1lCi0JCQkgICAgICAg KG9yZy1wYXJzZS10aW1lLXN0cmluZyAobWF0Y2gtc3RyaW5nIDMpKSkpKQorCSAgICAobGV0 KiAoKHNzIChtYXRjaC1zdHJpbmcgMikpCisJCSAgIChzZSAobWF0Y2gtc3RyaW5nIDMpKQor CQkgICAodHMgKG9yZy10aW1lLXN0cmluZy10by1zZWNvbmRzIHNzKSkKKwkJICAgKHRlIChv cmctdGltZS1zdHJpbmctdG8tc2Vjb25kcyBzZSkpCiAJCSAgIChkdCAoLSAoaWYgdGVuZCAo bWluIHRlIHRlbmQpIHRlKQogCQkJICAoaWYgdHN0YXJ0IChtYXggdHMgdHN0YXJ0KSB0cykp KSkKIAkgICAgICAod2hlbiAoPiBkdCAwKSAoY2wtaW5jZiB0MSAoZmxvb3IgZHQgNjApKSkp KQpAQCAtMzA0MSwxMCArMzAzOCw4IEBAIG9yZy1jbG9jay11cGRhdGUtdGltZS1tYXliZQog CSAgKGVuZC1vZi1saW5lIDEpCiAJICAoc2V0cSB0cyAobWF0Y2gtc3RyaW5nIDEpCiAJCXRl IChtYXRjaC1zdHJpbmcgMykpCi0JICAoc2V0cSBzICgtIChmbG9hdC10aW1lCi0JCSAgICAg IChhcHBseSAjJ2VuY29kZS10aW1lIChvcmctcGFyc2UtdGltZS1zdHJpbmcgdGUpKSkKLQkJ ICAgICAoZmxvYXQtdGltZQotCQkgICAgICAoYXBwbHkgIydlbmNvZGUtdGltZSAob3JnLXBh cnNlLXRpbWUtc3RyaW5nIHRzKSkpKQorCSAgKHNldHEgcyAoLSAob3JnLXRpbWUtc3RyaW5n LXRvLXNlY29uZHMgdGUpCisJCSAgICAgKG9yZy10aW1lLXN0cmluZy10by1zZWNvbmRzIHRz KSkKIAkJbmVnICg8IHMgMCkKIAkJcyAoYWJzIHMpCiAJCWggKGZsb29yICgvIHMgMzYwMCkp CmRpZmYgLS1naXQgYS9saXNwL29yZy9vcmctY29sdmlldy5lbCBiL2xpc3Avb3JnL29yZy1j b2x2aWV3LmVsCmluZGV4IDgyOWZjYmJlM2YuLjE5MGMyZDVhNGYgMTAwNjQ0Ci0tLSBhL2xp c3Avb3JnL29yZy1jb2x2aWV3LmVsCisrKyBiL2xpc3Avb3JnL29yZy1jb2x2aWV3LmVsCkBA IC03ODIsNyArNzgyLDcgQEAgb3JnLWNvbHZpZXctY29uc3RydWN0LWFsbG93ZWQtZGF0ZXMK ICAgICAgIChzZXRxIHRpbWUtYWZ0ZXIgKGNvcHktc2VxdWVuY2UgdGltZSkpCiAgICAgICAo c2V0ZiAobnRoIDMgdGltZS1iZWZvcmUpICgxLSAobnRoIDMgdGltZSkpKQogICAgICAgKHNl dGYgKG50aCAzIHRpbWUtYWZ0ZXIpICgxKyAobnRoIDMgdGltZSkpKQotICAgICAgKG1hcGNh ciAobGFtYmRhICh4KSAoZm9ybWF0LXRpbWUtc3RyaW5nIGZtdCAoYXBwbHkgIydlbmNvZGUt dGltZSB4KSkpCisgICAgICAobWFwY2FyIChsYW1iZGEgKHgpIChmb3JtYXQtdGltZS1zdHJp bmcgZm10IChvcmctZW5jb2RlLXRpbWUtMSB4KSkpCiAJICAgICAgKGxpc3QgdGltZS1iZWZv cmUgdGltZSB0aW1lLWFmdGVyKSkpKSkKIAogKGRlZnVuIG9yZy1jb2x1bW5zLW9wZW4tbGlu ayAoJm9wdGlvbmFsIGFyZykKZGlmZiAtLWdpdCBhL2xpc3Avb3JnL29yZy1jb21wYXQuZWwg Yi9saXNwL29yZy9vcmctY29tcGF0LmVsCmluZGV4IDgxOWNlNzRkOTMuLjI0NzM3M2Q2Yjkg MTAwNjQ0Ci0tLSBhL2xpc3Avb3JnL29yZy1jb21wYXQuZWwKKysrIGIvbGlzcC9vcmcvb3Jn LWNvbXBhdC5lbApAQCAtMTE1LDYgKzExNSwyNyBAQCBvcmctdGFibGUxLWhsaW5lLXJlZ2V4 cAogICAoZGVmdW4gb3JnLXRpbWUtY29udmVydC10by1saXN0ICh0aW1lKQogICAgIChzZWNv bmRzLXRvLXRpbWUgKGZsb2F0LXRpbWUgdGltZSkpKSkKIAorOzsgTGlrZSBFbWFjcyAyNysg YGVuY29kZS10aW1lJyB3aXRoIG9uZSBhcmd1bWVudC4KKyhpZiAoaWdub3JlLWVycm9ycyAo ZW5jb2RlLXRpbWUgKGRlY29kZS10aW1lKSkpCisgICAgKGRlZnN1YnN0IG9yZy1lbmNvZGUt dGltZS0xICh0aW1lKQorICAgICAgKGVuY29kZS10aW1lIHRpbWUpKQorICAoZGVmdW4gb3Jn LWVuY29kZS10aW1lLTEgKHRpbWUpCisgICAgKGxldCAoKGRzdC16b25lIChudGhjZHIgNyB0 aW1lKSkpCisgICAgICAodW5sZXNzIChjb25zcCAoY2RyIGRzdC16b25lKSkKKwkoc2lnbmFs IHdyb25nLXR5cGUtYXJndW1lbnQgKGxpc3QgdGltZSkpKQorICAgICAgKGxldCAoKGV0aW1l IChhcHBseSAjJ2VuY29kZS10aW1lIHRpbWUpKQorCSAgICAoZHN0IChjYXIgZHN0LXpvbmUp KQorCSAgICAoem9uZSAoY2FkciBkc3Qtem9uZSkpKQorCSh3aGVuIChhbmQgKHN5bWJvbHAg ZHN0KSAobm90IChpbnRlZ2VycCB6b25lKSkgKG5vdCAoY29uc3Agem9uZSkpKQorCSAgKGxl dCogKChkZXRpbWUgKGRlY29kZS10aW1lIGV0aW1lKSkKKwkJIChkZWRzdCAobnRoIDcgZGV0 aW1lKSkpCisJICAgICh3aGVuIChhbmQgKG5vdCAoZXEgZGVkc3QgZHN0KSkgKHN5bWJvbHAg ZGVkc3QpKQorCSAgICAgIDs7IEFzc3VtZSBvbmUtaG91ciBEU1QgYW5kIGFkanVzdCB0aGUg dGltZXN0YW1wLgorCSAgICAgIChzZXRxIGV0aW1lICh0aW1lLWFkZCBldGltZSAoc2Vjb25k cy10by10aW1lCisJCQkJCSAgICgtIChpZiBkZWRzdCAzNjAwIDApCisJCQkJCSAgICAgIChp ZiBkc3QgMzYwMCAwKSkpKSkpKSkKKwlldGltZSkpKSkKKwogOzsgYG5ld2xpbmUtYW5kLWlu ZGVudCcgZGlkIG5vdCB0YWtlIGEgbnVtZXJpYyBhcmd1bWVudCBiZWZvcmUgMjcuMS4KIChp ZiAodmVyc2lvbjwgZW1hY3MtdmVyc2lvbiAiMjciKQogICAgIChkZWZzdWJzdCBvcmctbmV3 bGluZS1hbmQtaW5kZW50ICgmb3B0aW9uYWwgX2FyZykKZGlmZiAtLWdpdCBhL2xpc3Avb3Jn L29yZy1tYWNyby5lbCBiL2xpc3Avb3JnL29yZy1tYWNyby5lbAppbmRleCAwOTIxZjNhYTI3 Li5iOGU0MzQ2MDAyIDEwMDY0NAotLS0gYS9saXNwL29yZy9vcmctbWFjcm8uZWwKKysrIGIv bGlzcC9vcmcvb3JnLW1hY3JvLmVsCkBAIC0zNzgsNyArMzc4LDcgQEAgb3JnLW1hY3JvLS12 Yy1tb2RpZmllZC10aW1lCiAJCQkJICAoYnVmZmVyLXN1YnN0cmluZwogCQkJCSAgIChwb2lu dCkgKGxpbmUtZW5kLXBvc2l0aW9uKSkpKSkKIAkJICAgICAgICh3aGVuIChjbC1zb21lICMn aWRlbnRpdHkgdGltZSkKLQkJCSAoc2V0cSBkYXRlIChhcHBseSAjJ2VuY29kZS10aW1lIHRp bWUpKSkpKSkpKQorCQkJIChzZXRxIGRhdGUgKG9yZy1lbmNvZGUtdGltZS0xIHRpbWUpKSkp KSkpKQogCSAgICAgIChsZXQgKChwcm9jIChnZXQtYnVmZmVyLXByb2Nlc3MgYnVmKSkpCiAJ CSh3aGlsZSAoYW5kIHByb2MgKGFjY2VwdC1wcm9jZXNzLW91dHB1dCBwcm9jIC41IG5pbCB0 KSkpKSkKIAkgIChraWxsLWJ1ZmZlciBidWYpKQpkaWZmIC0tZ2l0IGEvbGlzcC9vcmcvb3Jn LW1hY3MuZWwgYi9saXNwL29yZy9vcmctbWFjcy5lbAppbmRleCBiMTA3MjViZDUyLi4wOTE2 ZGE4OWFjIDEwMDY0NAotLS0gYS9saXNwL29yZy9vcmctbWFjcy5lbAorKysgYi9saXNwL29y Zy9vcmctbWFjcy5lbApAQCAtMTE4NSw3ICsxMTg1LDcgQEAgb3JnLTJmdAogICAgKChudW1i ZXJwIHMpIHMpCiAgICAoKHN0cmluZ3AgcykKICAgICAoY29uZGl0aW9uLWNhc2UgbmlsCi0J KGZsb2F0LXRpbWUgKGFwcGx5ICMnZW5jb2RlLXRpbWUgKG9yZy1wYXJzZS10aW1lLXN0cmlu ZyBzKSkpCisJKG9yZy10aW1lLXN0cmluZy10by1zZWNvbmRzIHMpCiAgICAgICAoZXJyb3Ig MCkpKQogICAgKHQgMCkpKQogCkBAIC0xMjQyLDcgKzEyNDIsNyBAQCBvcmctcGFyc2UtdGlt ZS1zdHJpbmcKIAkoc3RyaW5nLXRvLW51bWJlciAobWF0Y2gtc3RyaW5nIDQgcykpCiAJKHN0 cmluZy10by1udW1iZXIgKG1hdGNoLXN0cmluZyAzIHMpKQogCShzdHJpbmctdG8tbnVtYmVy IChtYXRjaC1zdHJpbmcgMiBzKSkKLQluaWwgbmlsIG5pbCkpCisJbmlsIC0xIG5pbCkpCiAK IChkZWZ1biBvcmctbWF0Y2hlci10aW1lIChzKQogICAiSW50ZXJwcmV0IGEgdGltZSBjb21w YXJpc29uIHZhbHVlIFMgYXMgYSBmbG9hdGluZyBwb2ludCB0aW1lLgpAQCAtMTI1Miw4ICsx MjUyLDggQEAgb3JnLW1hdGNoZXItdGltZQogXCI8dG9tb3Jyb3c+XCIsIGFuZCBcIjx5ZXN0 ZXJkYXk+XCIuCiAKIFJldHVybiAwLiBpZiBTIGlzIG5vdCByZWNvZ25pemVkIGFzIGEgdmFs aWQgdmFsdWUuIgotICAobGV0ICgodG9kYXkgKGZsb2F0LXRpbWUgKGFwcGx5ICMnZW5jb2Rl LXRpbWUKLQkJCQkgIChhcHBlbmQgJygwIDAgMCkgKG50aGNkciAzIChkZWNvZGUtdGltZSkp KSkpKSkKKyAgKGxldCAoKHRvZGF5IChmbG9hdC10aW1lIChhcHBseSAjJ2VuY29kZS10aW1l IDAgMCAwCisJCQkJICAobnRoY2RyIDMgKGRlY29kZS10aW1lKSkpKSkpCiAgICAgKHNhdmUt bWF0Y2gtZGF0YQogICAgICAgKGNvbmQKICAgICAgICAoKHN0cmluZz0gcyAiPG5vdz4iKSAo ZmxvYXQtdGltZSkpCmRpZmYgLS1naXQgYS9saXNwL29yZy9vcmctdGFibGUuZWwgYi9saXNw L29yZy9vcmctdGFibGUuZWwKaW5kZXggYzRkYWVkMTY2NS4uYTE5MmZiOTkxYiAxMDA2NDQK LS0tIGEvbGlzcC9vcmcvb3JnLXRhYmxlLmVsCisrKyBiL2xpc3Avb3JnL29yZy10YWJsZS5l bApAQCAtMjYwNiw4ICsyNjA2LDcgQEAgb3JnLXRhYmxlLWV2YWwtZm9ybXVsYQogCQkgICAg IChmb3JtYXQtdGltZS1zdHJpbmcKIAkJICAgICAgKG9yZy10aW1lLXN0YW1wLWZvcm1hdAog CQkgICAgICAgKHN0cmluZy1tYXRjaC1wICJbMC05XVxcezEsMlxcfTpbMC05XVxcezJcXH0i IHRzKSkKLQkJICAgICAgKGFwcGx5ICMnZW5jb2RlLXRpbWUKLQkJCSAgICAgKHNhdmUtbWF0 Y2gtZGF0YSAob3JnLXBhcnNlLXRpbWUtc3RyaW5nIHRzKSkpKSkpCisJCSAgICAgIChzYXZl LW1hdGNoLWRhdGEgKG9yZy10aW1lLXN0cmluZy10by10aW1lIHRzKSkpKSkKIAkJIGZvcm0g dCB0KSkKIAogCSAgKHNldHEgZXYgKGlmIChhbmQgZHVyYXRpb24gKHN0cmluZy1tYXRjaCAi XlswLTldKzpbMC05XStcXCg/OjpbMC05XStcXCk/JCIgZm9ybSkpCmRpZmYgLS1naXQgYS9s aXNwL29yZy9vcmcuZWwgYi9saXNwL29yZy9vcmcuZWwKaW5kZXggZDY1NmE1MTU5MS4uMWJj ZWIwZjUzYSAxMDA2NDQKLS0tIGEvbGlzcC9vcmcvb3JnLmVsCisrKyBiL2xpc3Avb3JnL29y Zy5lbApAQCAtMTA3OTIsNyArMTA3OTIsNyBAQCBvcmctYWRkLXBsYW5uaW5nLWluZm8KIAkg ICAgKGlmIChzdHJpbmdwIHRpbWUpCiAJCTs7IFRoaXMgaXMgYSBzdHJpbmcgKHJlbGF0aXZl IG9yIGFic29sdXRlKSwgc2V0CiAJCTs7IHByb3BlciBkYXRlLgotCQkoYXBwbHkgIydlbmNv ZGUtdGltZQorCQkob3JnLWVuY29kZS10aW1lLTEKIAkJICAgICAgIChvcmctcmVhZC1kYXRl LWFuYWx5emUKIAkJCXRpbWUgZGVmYXVsdC10aW1lIChkZWNvZGUtdGltZSBkZWZhdWx0LXRp bWUpKSkKIAkgICAgICA7OyBJZiBuZWNlc3NhcnksIGdldCB0aGUgdGltZSBmcm9tIHRoZSB1 c2VyCkBAIC0xNDA1OSw3ICsxNDA1OSw3IEBAIG9yZy1yZWFkLWRhdGUKIAkJICJyYW5nZSBy ZXByZXNlbnRhYmxlIG9uIHRoaXMgbWFjaGluZSIpKQogICAgICAgKGRpbmcpKQogCi0gICAg KHNldHEgZmluYWwgKGFwcGx5ICMnZW5jb2RlLXRpbWUgZmluYWwpKQorICAgIChzZXRxIGZp bmFsIChvcmctZW5jb2RlLXRpbWUtMSBmaW5hbCkpCiAKICAgICAoc2V0cSBvcmctcmVhZC1k YXRlLWZpbmFsLWFuc3dlciBhbnMpCiAKQEAgLTE0MDk2LDcgKzE0MDk2LDcgQEAgb3JnLXJl YWQtZGF0ZS1kaXNwbGF5CiAJCQkgIChhbmQgKGJvdW5kcCAnb3JnLXRpbWUtd2FzLWdpdmVu KSBvcmctdGltZS13YXMtZ2l2ZW4pKQogCQkgICAgICAoY2RyIGZtdHMpCiAJCSAgICAoY2Fy IGZtdHMpKSkKLQkgICAgICh0eHQgKGZvcm1hdC10aW1lLXN0cmluZyBmbXQgKGFwcGx5ICMn ZW5jb2RlLXRpbWUgZikpKQorCSAgICAgKHR4dCAoZm9ybWF0LXRpbWUtc3RyaW5nIGZtdCAo b3JnLWVuY29kZS10aW1lLTEgZikpKQogCSAgICAgKHR4dCAoaWYgb3JnLXJlYWQtZGF0ZS1p bmFjdGl2ZSAoY29uY2F0ICJbIiAoc3Vic3RyaW5nIHR4dCAxIC0xKSAiXSIpIHR4dCkpCiAJ ICAgICAodHh0IChjb25jYXQgIj0+ICIgdHh0KSkpCiAJKHdoZW4gKGFuZCBvcmctZW5kLXRp bWUtd2FzLWdpdmVuCkBAIC0xNDMzNCw3ICsxNDMzNCw3IEBAIG9yZy1yZWFkLWRhdGUtYW5h bHl6ZQogCSAoc2V0cSB5ZWFyIChudGggNSBvcmctZGVmZGVjb2RlKSkKIAkgKHNldHEgb3Jn LXJlYWQtZGF0ZS1hbmFseXplLWZvcmNlZC15ZWFyIHQpKSkpCiAgICAgKHNldHEgb3JnLXJl YWQtZGF0ZS1hbmFseXplLWZ1dHVyZXAgZnV0dXJlcCkKLSAgICAobGlzdCBzZWNvbmQgbWlu dXRlIGhvdXIgZGF5IG1vbnRoIHllYXIpKSkKKyAgICAobGlzdCBzZWNvbmQgbWludXRlIGhv dXIgZGF5IG1vbnRoIHllYXIgbmlsIC0xIG5pbCkpKQogCiAoZGVmdmFyIHBhcnNlLXRpbWUt d2Vla2RheXMpCiAoZGVmdW4gb3JnLXJlYWQtZGF0ZS1nZXQtcmVsYXRpdmUgKHMgdG9kYXkg ZGVmYXVsdCkKQEAgLTE0NDcwLDcgKzE0NDcwLDcgQEAgb3JnLWRpc3BsYXktY3VzdG9tLXRp bWUKIAkgIHRpbWUgKG9yZy1maXgtZGVjb2RlZC10aW1lIHQxKQogCSAgc3RyIChvcmctYWRk LXByb3BzCiAJCSAgKGZvcm1hdC10aW1lLXN0cmluZwotCQkgICAoc3Vic3RyaW5nIHRmIDEg LTEpIChhcHBseSAnZW5jb2RlLXRpbWUgdGltZSkpCisJCSAgIChzdWJzdHJpbmcgdGYgMSAt MSkgKG9yZy1lbmNvZGUtdGltZS0xIHRpbWUpKQogCQkgIG5pbCAnbW91c2UtZmFjZSAnaGln aGxpZ2h0KSkKICAgICAocHV0LXRleHQtcHJvcGVydHkgYmVnIGVuZCAnZGlzcGxheSBzdHIp KSkKIApAQCAtMTQ3MjUsNyArMTQ3MjUsNyBAQCBvcmctbWFrZS10ZGlmZi1zdHJpbmcKIAog KGRlZnVuIG9yZy10aW1lLXN0cmluZy10by10aW1lIChzKQogICAiQ29udmVydCB0aW1lc3Rh bXAgc3RyaW5nIFMgaW50byBpbnRlcm5hbCB0aW1lLiIKLSAgKGFwcGx5ICMnZW5jb2RlLXRp bWUgKG9yZy1wYXJzZS10aW1lLXN0cmluZyBzKSkpCisgIChvcmctZW5jb2RlLXRpbWUtMSAo b3JnLXBhcnNlLXRpbWUtc3RyaW5nIHMpKSkKIAogKGRlZnVuIG9yZy10aW1lLXN0cmluZy10 by1zZWNvbmRzIChzKQogICAiQ29udmVydCBhIHRpbWVzdGFtcCBzdHJpbmcgUyBpbnRvIGEg bnVtYmVyIG9mIHNlY29uZHMuIgpAQCAtMTUxNTUsNyArMTUxNTUsNyBAQCBvcmctdGltZXN0 YW1wLWNoYW5nZQogCSAgKHNldGNhciB0aW1lMCAob3IgKGNhciB0aW1lMCkgMCkpCiAJICAo c2V0Y2FyIChudGhjZHIgMSB0aW1lMCkgKG9yIChudGggMSB0aW1lMCkgMCkpCiAJICAoc2V0 Y2FyIChudGhjZHIgMiB0aW1lMCkgKG9yIChudGggMiB0aW1lMCkgMCkpCi0JICAoc2V0cSB0 aW1lIChhcHBseSAnZW5jb2RlLXRpbWUgdGltZTApKSkpCisJICAoc2V0cSB0aW1lIChvcmct ZW5jb2RlLXRpbWUtMSB0aW1lMCkpKSkKICAgICAgIDs7IEluc2VydCB0aGUgbmV3IHRpbWUt c3RhbXAsIGFuZCBlbnN1cmUgcG9pbnQgc3RheXMgaW4gdGhlIHNhbWUKICAgICAgIDs7IGNh dGVnb3J5IGFzIGJlZm9yZSAoaS5lLiBub3QgYWZ0ZXIgdGhlIGxhc3QgcG9zaXRpb24gaW4g dGhhdAogICAgICAgOzsgY2F0ZWdvcnkpLgotLSAKMi4zNS4xCgo= --------------uJTJyPDINxznWwKdUJSLwFTK--