From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: from zero.zsh.org (zero.zsh.org [IPv6:2a02:898:31:0:48:4558:7a:7368]) by inbox.vuxu.org (Postfix) with ESMTP id 7D1DF249F7 for ; Tue, 20 Feb 2024 05:55:09 +0100 (CET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1708404909; b=fEH32zN2+MDy4iiJINl61HCAnTRkRl0Y1q/TW+98i/nv1MkNjHam5wxlb4x46ow//a10tzgMv/ 46wSIJKWKpNve2mcT8e1R//EHQkFWBADcR5SewvpGveFBOWKAtj9aw2ZU7e5tuWka8vvRNFTgG FL9mnSdDr1XENeTfEa3sULDeOfW4aQdYGJG+3vYA1RAOaudA/Vws2DFTFKBjaWGlo4zK5j7E7l HK3OLnMGM+R6BTFvmRpCZCj+iJOmdGFz44HJ6Ipc+Rs8hz/zvYHACvZzCnmqymUYQntss3Jowy D2OKI3A0UPs/I5NFkBnf4F8DCV/3HfDOFTx1jnsKiu9AwQ==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-ed1-f48.google.com) smtp.remote-ip=209.85.208.48; dkim=pass header.d=brasslantern-com.20230601.gappssmtp.com header.s=20230601 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1708404909; bh=5Z1FDR051jwh8EOdC0WoDXofCeX/akL6v3uWHGemSxY=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:DKIM-Signature:DKIM-Signature; b=rhsWWR8Z4ZhKgA5gi8Ppx2/SiBzfqDX+eKWSESi4GpGIJBHD1v0ia0g0pT8xPo9Zb5zkoSpINV JuyevXXMR2aV8w3IzI2B796OnH7EyijcSdIMAI9Baq07octRaekms40A4tassF3lm87QQHwWft 3l+OypMCp/cBBYK3qveXPfF83R8LM/mmsiEgYQggPJ4floTUOLjUK7IyWa5kk7XWczdDt5OagG htA3suRKTBd/VBu/pXQ8BF1rcrB6UfuiWwFS1CLcjXXchAdDQucxcAHXLfSv7sjUM2kdqIwBFK QRo+csthUHYxmVJsDZB9HBrtgDMSMCYk5BJFAudEi0X6NA==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:To:Subject:Message-ID: Date:From:In-Reply-To:References:MIME-Version:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=UwTYr7balusYBx6cJtQPWnC2ixQ8bbcfLS+ocw+EH28=; b=hoJAdu0j+wjhnzinwyUy4bdFQM xKGOc3RPupKm1UPszTVxI2VFb8wyL6QAxVm2wgnU0HwtByHQJ7EG8MEb5HhdWGvkZH51BjtQ9uR/F CSbYBf5yu/XJgVQ+o3niwyvPUSKYDdUT2TyoNWSm9uVDUIUY2urx4cp8g93rdEoSuhHmM87T33fFs 9Q1xDTElzT7tT2AJNwUOoT4NwILs2Qf1vffCxJv3S1Pm8TBdNxqV+FGtVuESOdCIx26tk1/W06BCC 4SofQ1+Z1+tmLL7TRHTPF4Sp99bv1t4iDnaidzhessypgogMviwlO12YKJEpaIJHWf5bwMGbsCN32 gqHyMRbg==; Received: by zero.zsh.org with local id 1rcI9r-0005wG-1m; Tue, 20 Feb 2024 04:55:07 +0000 Authentication-Results: zsh.org; iprev=pass (mail-ed1-f48.google.com) smtp.remote-ip=209.85.208.48; dkim=pass header.d=brasslantern-com.20230601.gappssmtp.com header.s=20230601 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none Received: from mail-ed1-f48.google.com ([209.85.208.48]:44506) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1rcI9X-0005cZ-EN; Tue, 20 Feb 2024 04:54:49 +0000 Received: by mail-ed1-f48.google.com with SMTP id 4fb4d7f45d1cf-564d0b71993so94857a12.1 for ; Mon, 19 Feb 2024 20:54:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20230601.gappssmtp.com; s=20230601; t=1708404886; x=1709009686; darn=zsh.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=UwTYr7balusYBx6cJtQPWnC2ixQ8bbcfLS+ocw+EH28=; b=LqqhquAksEgIqf5jIWT8GU76gOhJO/4Bwef4SSjxzU1zbfX/N0xFbqZ2tJNP7ODYs3 odevzfL6sJMKvH7uHbYch6j63mghQTnqx9HF06rDNshU9AgL9O6u/v6KyRQ0R3M2HxjK 3cwZRTtSrknRVlpbppg6aAylRUxfzEiui+lcjQH9fhsTYzinBhMxDVl/UwVKFpeEcejE bvW1g6m6b+qIHcVeNYhVVBCkXYONUwR/F62KO4L3LPwtJtH5IiK768ID5pdBoQqXOH2d soOynCekkMWVUl4LCy9K7TiqispYU2pDUCuviiHtpqshhvIktOwFCrNXUqK9pbOi8/YI 0Iqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708404886; x=1709009686; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=UwTYr7balusYBx6cJtQPWnC2ixQ8bbcfLS+ocw+EH28=; b=nC3p6qT1T7wa8baiXLYYGf0/9bKpgmOmuDDpaL2ojXuLo1hHpdFsl5gYrox2Ek8MVX 27TXS7EISnUVC4+Fhs4k4e0GcTe+hKUcLd2XGeKhJFSAm+sRErsSlwDN+mS5a0Hpxt2K mxQOYrhY9IPwJtfk+qkU+URfx3r52djRqh3NfjFtE1W3JqBLWgs8Dwu6ZhCnPY+brnGw GRpMzyHvMh8tkOY3L4J82AD67xwfNJk07kS/M02j56CaRtLO1Ow3rKj6ffmndbFqh6es ZRk8iAS+wYM6wqkY7i0YudEOTsAygmJ32fPRtlZOgDyQpfjZ8cAt1y/ivOHhaKlgrCwj CxdQ== X-Gm-Message-State: AOJu0Yw3CltYVYw8dhTzFCehvFlYXy1iRa/rmv4+UteCmAUYt7vx/L1S etbrWLBIK6Ca3qoW4Gq0rB0g0JcHYOFD46Xbm1BGHXqeLhKENvvT3yaqhK7lv9VAMa5lsJAxAH9 nNn6aJBlnXp+qt1+xMXLtfvOhR1NO4QaKv4o8/qOsWPe2gaKbxA== X-Google-Smtp-Source: AGHT+IGqYnP+tXqonsvjGuguEl4WCxjGP4GDyJQ/MWyjRTW11mILF+gLl1GHaVfQnAnRycjeJXWfuO4hsuHCO7qGO4U= X-Received: by 2002:a17:906:198d:b0:a3e:fd30:5859 with SMTP id g13-20020a170906198d00b00a3efd305859mr542927ejd.70.1708404886479; Mon, 19 Feb 2024 20:54:46 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Bart Schaefer Date: Mon, 19 Feb 2024 20:54:35 -0800 Message-ID: Subject: [PATCH] (take 2) Local specials and Re: Regression of typeset output with "private" To: Zsh hackers list Content-Type: multipart/mixed; boundary="00000000000064571c0611c90275" X-Seq: 52559 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: --00000000000064571c0611c90275 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, Feb 18, 2024 at 11:35=E2=80=AFAM Bart Schaefer wrote: > > How about this? It skips PM_RO_BY_DESIGN for any parameter not > declared in the same scope where "typeset -p" is being run. This > means that in addition to displaying parameters declared private, > it'll show cases where "local +h" has been used to shadow a special. The more I think through this, the more I think it's the right thing to do. A couple of related observations: 1) It isn't necessary to use +h unless removing the -h attribute, the default is to retain specialness even when local. I usually include it just for clarity, so in case we want to add it later I've left a comment in the patch. 2) On the other hand, it is necessary to use -h for hiding, and typeset -p did not preserve that flag on output before. Consequently I've revised the patch to add the -h option for parameters that have it. This is also consistent with the output of ${(t)var} which shows the substring "hide". The side-effect of this is that private parameters are shown as having the -h property, which is a bit closer to correct. > [...] we should probably mention > somewhere that "typeset -p" no longer displays values for the special > parameters $!, $#, $-, $*, $@, $$, $?, $ARGC, etc. Doc change added for this. Also disabled "private -p" (it had already been removed from the documentation) and update the doc to reflect this. > This is actually a change in 5.9 vs. 5.8 that was not > included in the NEWS file. I did not edit NEWS, yet. This replaces workers/52557. --00000000000064571c0611c90275 Content-Type: text/plain; charset="US-ASCII"; name="private-p2.txt" Content-Disposition: attachment; filename="private-p2.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lstw3x5d0 ZGlmZiAtLWdpdCBhL0RvYy9ac2gvYnVpbHRpbnMueW8gYi9Eb2MvWnNoL2J1aWx0aW5zLnlvCmlu ZGV4IDdhODY1NGYyNy4uNzg0MDg5NTk0IDEwMDY0NAotLS0gYS9Eb2MvWnNoL2J1aWx0aW5zLnlv CisrKyBiL0RvYy9ac2gvYnVpbHRpbnMueW8KQEAgLTIxMzYsNiArMjEzNiwxNCBAQCB0dCgtcCkg bWF5IGJlIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsIGludGVnZXIgYXJndW1lbnQuICBDdXJyZW50 bHkKIG9ubHkgdGhlIHZhbHVlIHR0KDEpIGlzIHN1cHBvcnRlZC4gIEluIHRoaXMgY2FzZSBhcnJh eXMgYW5kIGFzc29jaWF0aXZlCiBhcnJheXMgYXJlIHByaW50ZWQgd2l0aCBuZXdsaW5lcyBiZXR3 ZWVuIGluZGVudGVkIGVsZW1lbnRzIGZvcgogcmVhZGFiaWxpdHkuCisKK1RoZSBuYW1lcyBhbmQg dmFsdWVzIG9mIHJlYWRvbmx5IHNwZWNpYWwgcGFyYW1ldGVycworKG1vc3Qgb2YgdGhlIHBhcmFt ZXRlcnMgbWFya2VkIGA8Uz4nIGluCitpZnptYW4oem1hbnJlZih6c2hwYXJhbSkpaWZuem1hbihu b2RlcmVmKFBhcmFtZXRlcnMgU2V0IEJ5IFRoZSBTaGVsbCkpLAorZXhjZXB0IHRob3NlIGRvY3Vt ZW50ZWQgYXMgc2V0dGFibGUpCithcmUgbm90IHByaW50ZWQgd2l0aCBgdHQoLSl0dChwKScgYmVj YXVzZSB0byBleGVjdXRlIHRob3NlIHR5cGVzZXQgY29tbWFuZHMKK3dvdWxkIGNhdXNlIGVycm9y cy4gIEhvd2V2ZXIsIHRoZXNlIHBhcmFtZXRlcnMgYXJlIHByaW50ZWQgd2hlbiB0aGV5CitoYXZl IGJlZW4gbWFkZSBsb2NhbCB0byB0aGUgc2NvcGUgd2hlcmUgYHR0KHR5cGVzZXQgLXApJyBpcyBy dW4uCiApCiBpdGVtKHR0KC1UKSBbIHZhcihzY2FsYXIpW3R0KD0pdmFyKHZhbHVlKV0gdmFyKGFy cmF5KVt0dCg9TFBBUigpKXZhcih2YWx1ZSkgLi4udHQoUlBBUigpKV0gWyB2YXIoc2VwKSBdIF0p KAogVGhpcyBmbGFnIGhhcyBhIGRpZmZlcmVudCBtZWFuaW5nIHdoZW4gdXNlZCB3aXRoIHR0KC1m KTsgc2VlIGJlbG93LgpkaWZmIC0tZ2l0IGEvRG9jL1pzaC9tb2RfcHJpdmF0ZS55byBiL0RvYy9a c2gvbW9kX3ByaXZhdGUueW8KaW5kZXggMDhhYzRjYWZlLi4yNGMwOTlmMzggMTAwNjQ0Ci0tLSBh L0RvYy9ac2gvbW9kX3ByaXZhdGUueW8KKysrIGIvRG9jL1pzaC9tb2RfcHJpdmF0ZS55bwpAQCAt MTYsOSArMTYsMTAgQEAgVGhlIHR0KHByaXZhdGUpIGJ1aWx0aW4gYWNjZXB0cyBhbGwgdGhlIHNh bWUgb3B0aW9ucyBhbmQgYXJndW1lbnRzIGFzIHR0KGxvY2FsKQogKGlmem1hbih6bWFucmVmKHpz aGJ1aWx0aW5zKSlpZm56bWFuKG5vZGVyZWYoU2hlbGwgQnVpbHRpbiBDb21tYW5kcykpKSBleGNl cHQKIGZvciB0aGUgYHR0KC0pdHQoVCknIG9wdGlvbi4gIFRpZWQgcGFyYW1ldGVycyBtYXkgbm90 IGJlIG1hZGUgcHJpdmF0ZS4KIAotVGhlIGB0dCgtKXR0KHApJyBvcHRpb24gaXMgcHJlc2VudGx5 IGEgbm8tb3AgYmVjYXVzZSB0aGUgc3RhdGUgb2YKLXByaXZhdGUgcGFyYW1ldGVycyBjYW5ub3Qg cmVsaWFibHkgYmUgcmVsb2FkZWQuICBUaGlzIGFsc28gYXBwbGllcwotdG8gcHJpbnRpbmcgcHJp dmF0ZSBwYXJhbWV0ZXJzIHdpdGggYHR0KHR5cGVzZXQgLXApJy4KK1RoZSBgdHQoLSl0dChwKScg b3B0aW9uIGlzIHByZXNlbnRseSBkaXNhYmxlZCBiZWNhdXNlIHRoZSBzdGF0ZSBvZgorcHJpdmF0 ZSBwYXJhbWV0ZXJzIGNhbm5vdCByZWxpYWJseSBiZSByZWxvYWRlZC4gIFdoZW4gYHR0KHR5cGVz ZXQgLSl0dChwKScKK291dHB1dHMgYSBwcml2YXRlIHBhcmFtZXRlciwgaXQgaXMgdHJlYXRlZCBh cyBhIGxvY2FsIHdpdGggdGhlCitgdHQoLSl0dChoKScgKGhpZGUpIG9wdGlvbiBlbmFibGVkLgog CiBJZiB1c2VkIGF0IHRoZSB0b3AgbGV2ZWwgKG91dHNpZGUgYSBmdW5jdGlvbiBzY29wZSksIHR0 KHByaXZhdGUpIGNyZWF0ZXMgYQogbm9ybWFsIHBhcmFtZXRlciBpbiB0aGUgc2FtZSBtYW5uZXIg YXMgdHQoZGVjbGFyZSkgb3IgdHQodHlwZXNldCkuICBBCmRpZmYgLS1naXQgYS9TcmMvTW9kdWxl cy9wYXJhbV9wcml2YXRlLmMgYi9TcmMvTW9kdWxlcy9wYXJhbV9wcml2YXRlLmMKaW5kZXggNTAw M2Q0NjI3Li4wNDQ2MTcxOTAgMTAwNjQ0Ci0tLSBhL1NyYy9Nb2R1bGVzL3BhcmFtX3ByaXZhdGUu YworKysgYi9TcmMvTW9kdWxlcy9wYXJhbV9wcml2YXRlLmMKQEAgLTY0Niw3ICs2NDYsNyBAQCBw cmludHByaXZhdGVub2RlKEhhc2hOb2RlIGhuLCBpbnQgcHJpbnRmbGFncykKIAogc3RhdGljIHN0 cnVjdCBidWlsdGluIGJpbnRhYltdID0gewogICAgIC8qIENvcGllZCBmcm9tIEJVSUxUSU4oImxv Y2FsIiksICJQIiBhZGRlZCAqLwotICAgIEJVSUxUSU4oInByaXZhdGUiLCBCSU5GX1BMVVNPUFRT IHwgQklORl9NQUdJQ0VRVUFMUyB8IEJJTkZfUFNQRUNJQUwgfCBCSU5GX0FTU0lHTiwgKEhhbmRs ZXJGdW5jKWJpbl9wcml2YXRlLCAwLCAtMSwgMCwgIkFFOiVGOiVITDolUFI6JVRVWjolYWhpOiVs bm1wcnR1eCIsICJQIikKKyAgICBCVUlMVElOKCJwcml2YXRlIiwgQklORl9QTFVTT1BUUyB8IEJJ TkZfTUFHSUNFUVVBTFMgfCBCSU5GX1BTUEVDSUFMIHwgQklORl9BU1NJR04sIChIYW5kbGVyRnVu YyliaW5fcHJpdmF0ZSwgMCwgLTEsIDAsICJBRTolRjolSEw6JVBSOiVUVVo6JWFoaTolbG5tcnR1 eCIsICJQIikKIH07CiAKIHN0YXRpYyBzdHJ1Y3QgZmVhdHVyZXMgbW9kdWxlX2ZlYXR1cmVzID0g ewpkaWZmIC0tZ2l0IGEvU3JjL3BhcmFtcy5jIGIvU3JjL3BhcmFtcy5jCmluZGV4IGZjZTNhZjk0 MC4uYjMyOWQyMDc5IDEwMDY0NAotLS0gYS9TcmMvcGFyYW1zLmMKKysrIGIvU3JjL3BhcmFtcy5j CkBAIC01ODk2LDYgKzU4OTYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHBhcmFtdHlwZXMgcG10 eXBlc1tdID0gewogICAgIHsgUE1fQVJSQVksICJhcnJheSIsICdhJywgMH0sCiAgICAgeyBQTV9I QVNIRUQsICJhc3NvY2lhdGlvbiIsICdBJywgMH0sCiAgICAgeyAwLCAibG9jYWwiLCAwLCBQTVRG X1RFU1RfTEVWRUx9LAorICAgIHsgUE1fSElERSwgImhpZGUiLCAnaCcsIDAgfSwKICAgICB7IFBN X0xFRlQsICJsZWZ0IGp1c3RpZmllZCIsICdMJywgUE1URl9VU0VfV0lEVEh9LAogICAgIHsgUE1f UklHSFRfQiwgInJpZ2h0IGp1c3RpZmllZCIsICdSJywgUE1URl9VU0VfV0lEVEh9LAogICAgIHsg UE1fUklHSFRfWiwgInplcm8gZmlsbGVkIiwgJ1onLCBQTVRGX1VTRV9XSURUSH0sCkBAIC02MDI1 LDEzICs2MDI2LDIxIEBAIHByaW50cGFyYW1ub2RlKEhhc2hOb2RlIGhuLCBpbnQgcHJpbnRmbGFn cykKIAlwcmludGZsYWdzIHw9IFBSSU5UX05BTUVPTkxZOwogCiAgICAgaWYgKHByaW50ZmxhZ3Mg JiAoUFJJTlRfVFlQRVNFVHxQUklOVF9QT1NJWF9SRUFET05MWXxQUklOVF9QT1NJWF9FWFBPUlQp KSB7Ci0JaWYgKHAtPm5vZGUuZmxhZ3MgJiAoUE1fUk9fQllfREVTSUdOfFBNX0FVVE9MT0FEKSkg eworCWlmIChwLT5ub2RlLmZsYWdzICYgUE1fQVVUT0xPQUQpIHsKIAkgICAgLyoKIAkgICAgICog SXQncyBub3QgcG9zc2libGUgdG8gcmVzdG9yZSB0aGUgc3RhdGUgb2YKIAkgICAgICogdGhlc2Us IHNvIGRvbid0IG91dHB1dC4KIAkgICAgICovCiAJICAgIHJldHVybjsKIAl9CisJaWYgKHAtPm5v ZGUuZmxhZ3MgJiBQTV9ST19CWV9ERVNJR04pIHsKKwkgICAgLyoKKwkgICAgICogQ29tcHJvbWlz ZTogY2Fubm90IGJlIHJlc3RvcmVkIG91dCBvZiBjb250ZXh0LAorCSAgICAgKiBidXQgc2hvdyBh bnl3YXkgaWYgcHJpbnRlZCBpbiBzY29wZSBvZiBkZWNsYXJhdGlvbgorCSAgICAgKi8KKwkgICAg aWYgKHAtPmxldmVsICE9IGxvY2FsbGV2ZWwgfHwgcC0+bGV2ZWwgPT0gMCkKKwkJcmV0dXJuOwor CX0KIAkvKgogCSAqIFRoZSB6c2ggdmFyaWFudHMgb2YgZXhwb3J0IC1wL3JlYWRvbmx5IC1wIGFs c28gcmVwb3J0IG90aGVyCiAJICogZmxhZ3MgdG8gaW5kaWNhdGUgb3RoZXIgYXR0cmlidXRlcyBv ciBzY29wZS4gVGhlIFBPU0lYIHZhcmlhbnRzCkBAIC02MDY0LDggKzYwNzMsMTkgQEAgcHJpbnRw YXJhbW5vZGUoSGFzaE5vZGUgaG4sIGludCBwcmludGZsYWdzKQogCWZvciAocG1wdHIgPSBwbXR5 cGVzLCBpID0gMDsgaSA8IFBNVFlQRVNfU0laRTsgaSsrLCBwbXB0cisrKSB7CiAJICAgIGludCBk b3ByaW50ID0gMDsKIAkgICAgaWYgKHBtcHRyLT5mbGFncyAmIFBNVEZfVEVTVF9MRVZFTCkgewot CQlpZiAocC0+bGV2ZWwpCisJCWlmIChwLT5sZXZlbCkgeworCQkgICAgLyoKKwkJICAgIGlmICgo cC0+bm9kZS5mbGFncyAmIFBNX1NQRUNJQUwpICYmCisJCQkocC0+bm9kZS5mbGFncyAmIFBNX0xP Q0FMKSAmJgorCQkJIShwLT5ub2RlLmZsYWdzICYgUE1fSElERSkpIHsKKwkJCWlmIChkb25lbWlu dXMpCisJCQkgICAgcHV0Y2hhcignICcpOworCQkJcHJpbnRmKCIraCAiKTsKKwkJCWRvbmVtaW51 cyA9IDA7CisJCSAgICB9CisJCSAgICAqLwogCQkgICAgZG9wcmludCA9IDE7CisJCX0KIAkgICAg fSBlbHNlIGlmICgocG1wdHItPmJpbmZsYWcgIT0gUE1fRVhQT1JURUQgfHwgcC0+bGV2ZWwgfHwK IAkJCShwLT5ub2RlLmZsYWdzICYgKFBNX0xPQ0FMfFBNX0FSUkFZfFBNX0hBU0hFRCkpKSAmJgog CQkgICAgICAgKHAtPm5vZGUuZmxhZ3MgJiBwbXB0ci0+YmluZmxhZykpCmRpZmYgLS1naXQgYS9U ZXN0L0IwMnR5cGVzZXQuenRzdCBiL1Rlc3QvQjAydHlwZXNldC56dHN0CmluZGV4IDhiMzk4ODE1 MS4uZDkwZjE3ZDEzIDEwMDY0NAotLS0gYS9UZXN0L0IwMnR5cGVzZXQuenRzdAorKysgYi9UZXN0 L0IwMnR5cGVzZXQuenRzdApAQCAtOTU5LDYgKzk1OSwyMCBAQAogPiAgW3RocmVlXT0nJwogPikK IAorICgpIHsKKyAgbG9jYWwgLWggc3RhdHVzCisgIHR5cGVzZXQgLXAgc3RhdHVzCisgfQorMDpw YXJhbWV0ZXIgaGlkaW5nIHByZXNlcnZlZCBieSAidHlwZXNldCAtcCIKKz50eXBlc2V0IC1oIHN0 YXR1cz0nJworCisgKCkgeworICBsb2NhbCBzdGF0dXMKKyAgdHlwZXNldCAtcCBzdGF0dXMKKyB9 CiswOnJlYWQtb25seSBzcGVjaWFsIHBhcmFtcyBhcmUgb3V0cHV0IHdoZW4gbG9jYWxpemVkCis+ dHlwZXNldCAtaTEwIC1yIHN0YXR1cz0wCisKICAoZXhwb3J0IFBBVEggTUFOUEFUSAogIHBhdGg9 KC9iaW4pCiAgTUFOUEFUSD0vCmRpZmYgLS1naXQgYS9UZXN0L0swMW5hbWVyZWYuenRzdCBiL1Rl c3QvSzAxbmFtZXJlZi56dHN0CmluZGV4IGViYjcwZGQ5Mi4uZmY0OGUyMjg5IDEwMDY0NAotLS0g YS9UZXN0L0swMW5hbWVyZWYuenRzdAorKysgYi9UZXN0L0swMW5hbWVyZWYuenRzdApAQCAtNDY0 LDcgKzQ2NCw3IEBAIEY6dW5leHBlY3RlZCBzaWRlLWVmZmVjdHMgb2YgcHJldmlvdXMgdGVzdHMK ICB9CiAwOnVwLXJlZmVyZW5jZSBwYXJ0IDMsIGhpZGRlbiBnbG9iYWwKID5vdXRzaWRlCi0+dHlw ZXNldCB2YXIKKz50eXBlc2V0IC1oIHZhcgogCiAgKCkgewogICAgdHlwZXNldCBub3RkZWYKQEAg LTU0MSw3ICs1NDEsNyBAQCBGOlNhbWUgdGVzdCwgc2hvdWxkIHBhcnQgNSBvdXRwdXQgbG9vayBs aWtlIHRoaXM/CiAgZmkKIDA6dXAtcmVmZXJlbmNlIHBhcnQgMywgYXV0b2xvYWRpbmcgd2l0aCBo aWRkZW4gc3BlY2lhbAogPm5hbWVyZWYtbG9jYWwtbmFtZXJlZi1sb2NhbAotPnR5cGVzZXQgcGFy YW1ldGVycworPnR5cGVzZXQgLWggcGFyYW1ldGVycwogCiAgaWYgW1sgJG9wdGlvbnNbdHlwZXNl dHRvdW5zZXRdICE9IG9uIF1dOyB0aGVuCiAgICBaVFNUX3NraXA9J0lnbm9yaW5nIHptb2Rsb2Fk IGJ1ZyB0aGF0IHJlc2V0cyBUWVBFU0VUX1RPX1VOU0VUJwpkaWZmIC0tZ2l0IGEvVGVzdC9WMTBw cml2YXRlLnp0c3QgYi9UZXN0L1YxMHByaXZhdGUuenRzdAppbmRleCA5ZWVkYTBmNDcuLjQxNDBk NGU5NiAxMDA2NDQKLS0tIGEvVGVzdC9WMTBwcml2YXRlLnp0c3QKKysrIGIvVGVzdC9WMTBwcml2 YXRlLnp0c3QKQEAgLTI4LDcgKzI4LDcgQEAKICBwcmludCAkc2NhbGFyX3Rlc3QKIDA6YmFzaWMg c2NvcGUgaGlkaW5nCiA+dG9wbGV2ZWwKLT5sb2NhbCBzY2FsYXJfdGVzdAorPmxvY2FsIGhpZGUg c2NhbGFyX3Rlc3QKID4wCiA+dG9wbGV2ZWwKIApAQCAtNTQsNyArNTQsNyBAQAogIHByaW50ICQr dW5zZXRfdGVzdAogMDp2YXJpYWJsZSBkZWZpbmVkIG9ubHkgaW4gc2NvcGUKID4wCi0+bG9jYWwg dW5zZXRfdGVzdAorPmxvY2FsIGhpZGUgdW5zZXRfdGVzdAogPnNldG1lCiA+MAogCkBAIC03MCw3 ICs3MCw3IEBACiAgfQogIHByaW50ICRhcnJheV90ZXN0CiAwOm5lc3RlZCBzY29wZSB3aXRoIGRp ZmZlcmVudCB0eXBlLCBjb3JyZWN0bHkgcmVzdG9yZWQKLT5sb2NhbCBhcnJheV90ZXN0Cis+bG9j YWwgaGlkZSBhcnJheV90ZXN0CiA+aW4gZnVuY3Rpb24KID50b3AgbGV2ZWwKIApAQCAtMTEzLDcg KzExMyw3IEBACiAgdHlwZXNldCAtYSBoYXNoX3Rlc3Q9KHRvcCBsZXZlbCkKICB0eXBlc2V0IC1w IGhhc2hfdGVzdAogIGlubmVyICgpIHsKLSAgcHJpdmF0ZSAtcCBoYXNoX3Rlc3QKKyAgdHlwZXNl dCAtcCBoYXNoX3Rlc3QKICAgcHJpbnQgJHsodCloYXNoX3Rlc3R9ICR7KGt2KWhhc2hfdGVzdH0K ICB9CiAgb3V0ZXIgKCkgewpAQCAtMzI4LDYgKzMyOCw3IEBAIEY6ZnV0dXJlIHJldmlzaW9uIHdp bGwgY3JlYXRlIGEgZ2xvYmFsIHdpdGggdGhpcyBhc3NpZ25tZW50CiBGOlNlZSBLMDFuYW1lcmVm Lnp0c3QgdXAtcmVmZXJlbmNlIHBhcnQgNQogRjpIZXJlIHB0cjEgZmluZHMgcHJpdmF0ZSBwdHIy IGJ5IHNjb3BlIG1pc21hdGNoCiA+dHlwZXNldCAtbiBwdHIxPXB0cjIKKz50eXBlc2V0IC1obiBw dHIyCiAqPypyZWFkLW9ubHkgdmFyaWFibGU6IHB0cjIKIAogICgpIHsKQEAgLTM0OCwxMCArMzQ5 LDEyIEBAIEY6U2VlIEswMW5hbWVyZWYuenRzdCB1cC1yZWZlcmVuY2UgcGFydCA1CiBGOkhlcmUg cHRyMSBmaW5kcyBwcml2YXRlIHB0cjIgYnkgc2NvcGUgbWlzbWF0Y2gKIEY6QXNzaWdubWVudCBz aWxlbnRseSBmYWlscywgaXMgdGhhdCBjb3JyZWN0PwogPnR5cGVzZXQgLW4gcHRyMT1wdHIyCis+ dHlwZXNldCAtaG4gcHRyMj0nJwogPnB0cjE9cHRyMgogPnB0cjE9CiA+cHRyMj0KID50eXBlc2V0 IC1uIHB0cjE9cHRyMgorPnR5cGVzZXQgLWhuIHB0cjI9JycKICo/Km5vIHN1Y2ggdmFyaWFibGU6 IHB0cjIKIAogIHR5cGVzZXQgcHRyMgpAQCAtMzcyLDExICszNzUsMTMgQEAgRjpBc3NpZ25tZW50 IHNpbGVudGx5IGZhaWxzLCBpcyB0aGF0IGNvcnJlY3Q/CiBGOlNlZSBLMDF0eXBlc2V0Lnp0c3Qg dXAtcmVmZXJlbmNlIHBhcnQgNQogRjpIZXJlIHB0cjEgcG9pbnRzIHRvIGdsb2JhbCBwdHIyIHNv IGFzc2lnbm1lbnQgc3VjY2VlZHMKID50eXBlc2V0IC1uIHB0cjE9cHRyMgorPnR5cGVzZXQgLWhu IHB0cjIKID5wdHIxPXB0cjIKID5wdHIyPXZhbAogPnB0cjE9dmFsCiA+cHRyMj12YWwKID50eXBl c2V0IC1uIHB0cjE9cHRyMgorPnR5cGVzZXQgLWhuIHB0cjIKID50eXBlc2V0IHB0cjI9dmFsCiAK ICAoKSB7Cg== --00000000000064571c0611c90275--