From unknown Wed Jun 18 23:04:08 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#69714 <69714@debbugs.gnu.org> To: bug#69714 <69714@debbugs.gnu.org> Subject: Status: 30.0.50; ert-font-lock doesn't handle list of faces Reply-To: bug#69714 <69714@debbugs.gnu.org> Date: Thu, 19 Jun 2025 06:04:08 +0000 retitle 69714 30.0.50; ert-font-lock doesn't handle list of faces reassign 69714 emacs submitter 69714 Troy Brown severity 69714 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 10 16:32:51 2024 Received: (at submit) by debbugs.gnu.org; 10 Mar 2024 20:32:51 +0000 Received: from localhost ([127.0.0.1]:38063 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rjPqk-0004ET-SJ for submit@debbugs.gnu.org; Sun, 10 Mar 2024 16:32:51 -0400 Received: from lists.gnu.org ([209.51.188.17]:46506) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rjPqi-0004EL-Pg for submit@debbugs.gnu.org; Sun, 10 Mar 2024 16:32:49 -0400 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 1rjPqA-0007eZ-OT for bug-gnu-emacs@gnu.org; Sun, 10 Mar 2024 16:32:14 -0400 Received: from mail-lf1-f51.google.com ([209.85.167.51]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rjPq9-000626-3Y for bug-gnu-emacs@gnu.org; Sun, 10 Mar 2024 16:32:14 -0400 Received: by mail-lf1-f51.google.com with SMTP id 2adb3069b0e04-5131c0691feso4904120e87.1 for ; Sun, 10 Mar 2024 13:32:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710102730; x=1710707530; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=cI5T5AnpEzCTfhwLFa2L6nUr6rjw1pV7Ko2/gu3nQVI=; b=irOQp4g3gNeOoD11IiFvkjnyknDcqiz1xiMpN8Ot8C1gPHrC9fw8zysAIXR6bzwrbv C8hrTYYDrtUKGZPpQFTJV2Z/l4nkf4ygUG4KuPDUNqSipXRsyPsHPL3qGkmY8ZO/KQN9 T8Fsd3gzJmtXhOhHh50SuLM17+JoXWPnlq9FHHokkOfPtt/iSQcaFinF1VQjHX+mkorH y/paoiXAtM+uLRj5DWTwE1JLCi6FDkvouQqj+oCtWelQUgN92442stVD+UucVHJb0Pte pQTExGyNqYNoZpHojSsOv+TmSPiX3cwbtCyP7zZXR5ckMmgp1oGtNA4koeNA8bTHDVjx oIiw== X-Gm-Message-State: AOJu0YzvDGyxQcKmCDrfo3qx9MV4A64KtS/xJJLoqborA1mubsyoQrjx R8I+G6YMjztkqELNhtRBvnewXAYFBqFYD7DPVxbp9rOvyxInAIonl9+ElGJjrSTTnz/7 X-Google-Smtp-Source: AGHT+IGmeRzQFYWmblNrdVwK+3Z8Us2AGe2n+Xm5YJNNWD2vSub4m69Bg/3PiF4jzF9kgwOAH9s8cw== X-Received: by 2002:ac2:530b:0:b0:513:a5be:225c with SMTP id c11-20020ac2530b000000b00513a5be225cmr1335454lfh.7.1710102730190; Sun, 10 Mar 2024 13:32:10 -0700 (PDT) Received: from mail-ej1-f43.google.com (mail-ej1-f43.google.com. [209.85.218.43]) by smtp.gmail.com with ESMTPSA id a1-20020a509e81000000b00567216c1e9bsm2328107edf.88.2024.03.10.13.32.09 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 10 Mar 2024 13:32:09 -0700 (PDT) Received: by mail-ej1-f43.google.com with SMTP id a640c23a62f3a-a44665605f3so558433866b.2 for ; Sun, 10 Mar 2024 13:32:09 -0700 (PDT) X-Received: by 2002:a17:907:7b06:b0:a46:2039:e8ff with SMTP id mn6-20020a1709077b0600b00a462039e8ffmr948525ejc.39.1710102729494; Sun, 10 Mar 2024 13:32:09 -0700 (PDT) MIME-Version: 1.0 From: Troy Brown Date: Sun, 10 Mar 2024 16:31:58 -0400 X-Gmail-Original-Message-ID: Message-ID: Subject: 30.0.50; ert-font-lock doesn't handle list of faces To: bug-gnu-emacs@gnu.org Content-Type: text/plain; charset="UTF-8" Received-SPF: pass client-ip=209.85.167.51; envelope-from=troy.s.brown@gmail.com; helo=mail-lf1-f51.google.com X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.001, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.248, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.1 (-) X-Debbugs-Envelope-To: submit Cc: Vladimir Kazanov X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.1 (--) I'm trying to use this package to test out my tree-sitter mode, but am running into an issue with lists of faces. It's possible that the face for a location in the buffer will contain a list of 1 or more faces. For example, when I use the ":override 'prepend" keyword in the call to treesit-font-lock-rules, even if only a single face is specified for the rule that matches that section of the buffer, this will result in a list of one entry (i.e., "(face-name)"). When this happens, ert-font-lock fails to recognize that this matches the face "face-name" (e.g., "^ face-name" will fail to match in this case). I feel the tool should recognize a list containing a single face as matching the face. Even worse however, it appears ert-font-lock doesn't support a list of faces in the comment. I tried to work around the original issue by using "^ (face-name)", but the tool silently ignores this, as it doesn't match the internal regular expression (which ended up allowing my test to pass without actually checking anything). I can't figure out a way to use this tool in its current state due to its lack of support for a list of faces. Also, I find that since it silently ignores incorrect comment syntax (e.g., "^face-name", "^ (face-name)"), it gives a false illusion that it's actually performing those checks (and the checks are passing), when it's really just ignoring them. Maybe any comment line starting with a "^" or "<-" should be considered an assertion check and to fail if the rest of the syntax is not as expected. Maybe it should also fail the test if no assertion checks are found in a source file or string. Even if the tool would allow a list of a single face to match the supplied face in the comment, I think it should also allow for multiple faces to be listed in the comment. I have other places where multiple faces are used (e.g., "(font-lock-constant-face font-lock-variable-name-face)" to highlight a constant variable), which would not be testable with the current state of the package. From debbugs-submit-bounces@debbugs.gnu.org Mon Mar 11 04:38:16 2024 Received: (at 69714) by debbugs.gnu.org; 11 Mar 2024 08:38:16 +0000 Received: from localhost ([127.0.0.1]:38641 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rjbAm-0006cU-1v for submit@debbugs.gnu.org; Mon, 11 Mar 2024 04:38:16 -0400 Received: from mail-lf1-f44.google.com ([209.85.167.44]:57810) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rjbAk-0006cH-0e for 69714@debbugs.gnu.org; Mon, 11 Mar 2024 04:38:14 -0400 Received: by mail-lf1-f44.google.com with SMTP id 2adb3069b0e04-513b16bb739so116355e87.3 for <69714@debbugs.gnu.org>; Mon, 11 Mar 2024 01:37:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710146194; x=1710750994; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=YgVO7doFryW5ubmOS2TNXBjqMSFOJMy3sCi93V1gFXE=; b=K7NXZ0noclg0raFEAOCNR62ZzCulJuWMUQUMxehmrMZUXXDXu7aDZFSp308LmFSDXp 4b1sKXmGF6u0FglXA+2eG1lVBAJcpXT+V1jZiS+fTI8LwPGnC3IGdpgFmbQDXKB9Bjzl qrSVzx5zQo9nY4Cl1Eb6Q5FRkiPlL7pO1P2JNBOXtIV/Tm+F1jW10jsKnEzsKkoq/ZTn S0KINHtolUr8PeJKZmI2PNdwUm0ITd+fMw6NMrZrak//Kl10t43xn4q9SKE4WKPaYUlK alpXUC0nYQRduM4+8qogrMzNVS/hMasryPi920IbrKd0DUORGaQq2EV4cQGZbWLZQLIJ e6lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710146194; x=1710750994; h=cc: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=YgVO7doFryW5ubmOS2TNXBjqMSFOJMy3sCi93V1gFXE=; b=RAVocQ6pMtFakp6agIRTF2yrtOjnJwa07svJBTRH5kSvioDt/UOByZZcIng7ZF5btt QDAlV5xz+jyC+qAmSI6rLtnIxBcGtHpMKdabG6VZdU9MPdEarQJKdSh0wAsodYqxb+D6 7RT7ppjEp76hqeqK/GcpzN93rWCa/nIgsY338rCpH4eHqTAmXUW1QZF1orPfO1+cMBvF zSxVYtLHfp5EF0do6/kwZkXFjN+/DnQT9t7lvzKqbW54l+cKo52Zr8f41D13M9njvxLX t0ag3RC6N6AKJqwHFGzaYZ8fZd/K1z/aGA3bBfEDvRg+bMdgwsXLvbzi4kFsAVnxfjVP fDZg== X-Gm-Message-State: AOJu0Yxo2jq/XQ2sp2CgxPfaia/DhhtllyKwZvlBQixadD4T8K9LYzYd 2fdhx9FYohisulxO5wOsdmqtYdDbvhGivhhG/JAttpHMbOk0l36OoPzZowRrMVOitNvICvDTOku O9Ih1mkxlsJ3LhFbS/zy6QOiIYw== X-Google-Smtp-Source: AGHT+IHMv7yOYke7MRUG2yvZXeHEd7ZiCMUmGYrBfyRVOT3tnnpJHx/yBSTeWj4Qh7JuOAiYnNlyP1gv8UhP7o0p/wc= X-Received: by 2002:a19:5513:0:b0:512:fc60:38e4 with SMTP id n19-20020a195513000000b00512fc6038e4mr3222209lfe.54.1710146193889; Mon, 11 Mar 2024 01:36:33 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Vladimir Kazanov Date: Mon, 11 Mar 2024 08:36:22 +0000 Message-ID: Subject: Re: bug#69714: 30.0.50; ert-font-lock doesn't handle list of faces To: brownts@troybrown.dev Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 69714 Cc: 69714@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hi, Thanks for reporting this! I have a bunch of ert-font-lock improvements in my local repo getting ready for submission, and can look into your suggestions as well. Do you have your unit test code somewhere in a public repo? It'd be great to think of further improvements to support your use case. Thanks, Vlad On Sun, 10 Mar 2024 at 20:33, Troy Brown wrote: > > I'm trying to use this package to test out my tree-sitter mode, but am > running into an issue with lists of faces. It's possible that the > face for a location in the buffer will contain a list of 1 or more > faces. For example, when I use the ":override 'prepend" keyword in > the call to treesit-font-lock-rules, even if only a single face is > specified for the rule that matches that section of the buffer, this > will result in a list of one entry (i.e., "(face-name)"). > > When this happens, ert-font-lock fails to recognize that this matches > the face "face-name" (e.g., "^ face-name" will fail to match in this > case). I feel the tool should recognize a list containing a single > face as matching the face. Even worse however, it appears > ert-font-lock doesn't support a list of faces in the comment. I tried > to work around the original issue by using "^ (face-name)", but the > tool silently ignores this, as it doesn't match the internal regular > expression (which ended up allowing my test to pass without actually > checking anything). > > I can't figure out a way to use this tool in its current state due to > its lack of support for a list of faces. Also, I find that since it > silently ignores incorrect comment syntax (e.g., "^face-name", "^ > (face-name)"), it gives a false illusion that it's actually performing > those checks (and the checks are passing), when it's really just > ignoring them. Maybe any comment line starting with a "^" or "<-" > should be considered an assertion check and to fail if the rest of the > syntax is not as expected. Maybe it should also fail the test if no > assertion checks are found in a source file or string. > > Even if the tool would allow a list of a single face to match the > supplied face in the comment, I think it should also allow for > multiple faces to be listed in the comment. I have other places where > multiple faces are used (e.g., "(font-lock-constant-face > font-lock-variable-name-face)" to highlight a constant variable), > which would not be testable with the current state of the package. > > > -- Regards, Vladimir Kazanov From debbugs-submit-bounces@debbugs.gnu.org Tue Mar 12 16:48:50 2024 Received: (at 69714) by debbugs.gnu.org; 12 Mar 2024 20:48:50 +0000 Received: from localhost ([127.0.0.1]:43948 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rk93J-00043g-Kz for submit@debbugs.gnu.org; Tue, 12 Mar 2024 16:48:50 -0400 Received: from mail-lj1-f178.google.com ([209.85.208.178]:46088) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rk93G-00042n-Rv for 69714@debbugs.gnu.org; Tue, 12 Mar 2024 16:48:48 -0400 Received: by mail-lj1-f178.google.com with SMTP id 38308e7fff4ca-2d204e102a9so5397501fa.0 for <69714@debbugs.gnu.org>; Tue, 12 Mar 2024 13:48:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710276426; x=1710881226; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=y7fGdeRgUoXC4x9fvKqQ7+GG1hAxswyPLhDyhRlGHM8=; b=UouHf9pJBunhxh6tYa+LaeMIftcmTrL9CXnD8w75Yb+2VifMPLcJ/H+s5tM6/lRJ5n ktDSCIPEOhEf7C90tEqwtLVrH/W1xZNQ/H0fjWFKbygkWNKJK+E/nAODGK/g2KYZMeTE 0O1l/D9w/pDLq4ERpuNLZ/vBaCSNYbo9eVzBajgJ1tiMBRnFx5ZqZ3iDcgZIbzhEptMD NbCDJzU32BOdcv4ZqAS5QuFQAhLgQlI2c0boLOPf1wO4tLyPX3jCNGKVgSTpTu+UwL2J WTKlWJdr0/2pTFFi5uxT2riKfj37UwGVVbIrikfAJ5pJaLy4hvElJLWJI95IrmkizeLe 5IGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710276426; x=1710881226; h=cc: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=y7fGdeRgUoXC4x9fvKqQ7+GG1hAxswyPLhDyhRlGHM8=; b=XjNvAR/TarmWXfNStaxQQlsPrfmu1gHpeMkIs0hYc47f9yQznfq0Hp47iPaeijCi5k KeLmvazfEansVks+Ktz1u+G1iG313avTI5NHtIDDqlfz5jGWoFESwaO/IgFFiRZwZOfp oN1fBk6xt0EG1VMGcsPOuw5HUinyraD89LuSTFSimxmlt33JOTUFKUW0HLUSkZA6k2pS hQIW60C0p2jbW+7pqS/7o9YM8+xKfs9LHHGC5NIW1e97WoN5fOeeDWymvyMLJCMT4bp8 BXZvHG/fNbCRKwp/cJw97wJzx1PMk8Ap5jeATDkpuFwLz+dtcGulqeJw8xn/imwwYgNQ uIuw== X-Gm-Message-State: AOJu0YwGQQPvGHeBiIjWf0ytusiEMsnp2+IB/zKqTrNYF2PNMwj2AbAk QYNZaEB9CoFJyB9fDF2fbYr+4dUn0/PJRM2vurctkPBpETTvXZK7VesdiEbphaG5eQ10M906OKj h0w0sgdp63Edfrk415mMJAlR6pg== X-Google-Smtp-Source: AGHT+IFWlOcAagYCwFiBhKGXW/s48hxba5KFck/uOj1aCtEviAJfwzxIQBG2+GizLoLKbrWLhR67Uc2JqiISUi/dgg0= X-Received: by 2002:a2e:240a:0:b0:2d4:67e3:aa47 with SMTP id k10-20020a2e240a000000b002d467e3aa47mr927053ljk.48.1710276425800; Tue, 12 Mar 2024 13:47:05 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Vladimir Kazanov Date: Tue, 12 Mar 2024 20:46:54 +0000 Message-ID: Subject: Re: bug#69714: 30.0.50; ert-font-lock doesn't handle list of faces To: brownts@troybrown.dev Content-Type: multipart/mixed; boundary="000000000000d3ff4806137cc2f3" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 69714 Cc: 69714@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000d3ff4806137cc2f3 Content-Type: text/plain; charset="UTF-8" Hi, I've attached a patch that handles face lists, fails on files without assertions and expands the parser a bit to support multiple carets per line. For faces it does the following: 1. Turn symbols into single element lists. 2. Parses face lists from the assertions. 3. Compare face lists using equas. Could you please check if this works for you? Thanks On Mon, 11 Mar 2024 at 08:36, Vladimir Kazanov wrote: > > Hi, > > Thanks for reporting this! I have a bunch of ert-font-lock > improvements in my local repo getting ready for submission, and can > look into your suggestions as well. > > Do you have your unit test code somewhere in a public repo? It'd be > great to think of further improvements to support your use case. > > Thanks, > Vlad > > On Sun, 10 Mar 2024 at 20:33, Troy Brown wrote: > > > > I'm trying to use this package to test out my tree-sitter mode, but am > > running into an issue with lists of faces. It's possible that the > > face for a location in the buffer will contain a list of 1 or more > > faces. For example, when I use the ":override 'prepend" keyword in > > the call to treesit-font-lock-rules, even if only a single face is > > specified for the rule that matches that section of the buffer, this > > will result in a list of one entry (i.e., "(face-name)"). > > > > When this happens, ert-font-lock fails to recognize that this matches > > the face "face-name" (e.g., "^ face-name" will fail to match in this > > case). I feel the tool should recognize a list containing a single > > face as matching the face. Even worse however, it appears > > ert-font-lock doesn't support a list of faces in the comment. I tried > > to work around the original issue by using "^ (face-name)", but the > > tool silently ignores this, as it doesn't match the internal regular > > expression (which ended up allowing my test to pass without actually > > checking anything). > > > > I can't figure out a way to use this tool in its current state due to > > its lack of support for a list of faces. Also, I find that since it > > silently ignores incorrect comment syntax (e.g., "^face-name", "^ > > (face-name)"), it gives a false illusion that it's actually performing > > those checks (and the checks are passing), when it's really just > > ignoring them. Maybe any comment line starting with a "^" or "<-" > > should be considered an assertion check and to fail if the rest of the > > syntax is not as expected. Maybe it should also fail the test if no > > assertion checks are found in a source file or string. > > > > Even if the tool would allow a list of a single face to match the > > supplied face in the comment, I think it should also allow for > > multiple faces to be listed in the comment. I have other places where > > multiple faces are used (e.g., "(font-lock-constant-face > > font-lock-variable-name-face)" to highlight a constant variable), > > which would not be testable with the current state of the package. > > > > > > > > > -- > Regards, > > Vladimir Kazanov -- Regards, Vladimir Kazanov --000000000000d3ff4806137cc2f3 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Improve-ert-font-lock-assertion-parser-Bug-69714.patch" Content-Disposition: attachment; filename="0001-Improve-ert-font-lock-assertion-parser-Bug-69714.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltouanae0 RnJvbSAzMjYwYjExYzYxYTBhYzQxNGVmMGQ0ZDg3MTVmZDdiMzFjMWMzZTllIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWbGFkaW1pciBLYXphbm92IDx2ZWthemFub3ZAZ21haWwuY29t PgpEYXRlOiBUdWUsIDEyIE1hciAyMDI0IDExOjE0OjU0ICswMDAwClN1YmplY3Q6IFtQQVRDSF0g SW1wcm92ZSBlcnQtZm9udC1sb2NrIGFzc2VydGlvbiBwYXJzZXIgKEJ1ZyM2OTcxNCkKCkZhaWwg b24gZmlsZXMgd2l0aCBubyBhc3NlcnRpb25zLCBwYXJzZXIgbm93IGFjY2VwdHMgbXVsdGlwbGUK Y2FyZXRzIHBlciBsaW5lIGFuZCBmYWNlIGxpc3RzOgoqIGxpc3AvZW1hY3MtbGlzcC9lcnQtZm9u dC1sb2NrLmVsOiBBc3NlcnRpb24gcGFyc2VyIGZpeC4KKiB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9l cnQtZm9udC1sb2NrLXJlc291cmNlcy9uby1hc3NlcnRzLmpzOgoqIHRlc3QvbGlzcC9lbWFjcy1s aXNwL2VydC1mb250LWxvY2stdGVzdHMuZWw6IFVwZGF0ZSB1bml0IHRlc3RzLgotLS0KIGxpc3Av ZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLmVsICAgICAgICAgICAgICB8ICA3MCArKysrKysrLS0t CiAuLi4vZXJ0LWZvbnQtbG9jay1yZXNvdXJjZXMvbm8tYXNzZXJ0cy5qcyAgICAgfCAgIDMgKwog dGVzdC9saXNwL2VtYWNzLWxpc3AvZXJ0LWZvbnQtbG9jay10ZXN0cy5lbCAgIHwgMTI0ICsrKysr KysrKysrKysrLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxNTcgaW5zZXJ0aW9ucygrKSwgNDAgZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC9saXNwL2VtYWNzLWxpc3AvZXJ0LWZv bnQtbG9jay1yZXNvdXJjZXMvbm8tYXNzZXJ0cy5qcwoKZGlmZiAtLWdpdCBhL2xpc3AvZW1hY3Mt bGlzcC9lcnQtZm9udC1sb2NrLmVsIGIvbGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2suZWwK aW5kZXggMjkxMTQ3MTJmOTIuLjA2YzkwYWRkOWQzIDEwMDY0NAotLS0gYS9saXNwL2VtYWNzLWxp c3AvZXJ0LWZvbnQtbG9jay5lbAorKysgYi9saXNwL2VtYWNzLWxpc3AvZXJ0LWZvbnQtbG9jay5l bApAQCAtMzksMTYgKzM5LDMyIEBACiAocmVxdWlyZSAnbmV3Y29tbWVudCkKIChyZXF1aXJlICdw Y2FzZSkKCi0oZGVmY29uc3QgZXJ0LWZvbnQtbG9jay0tYXNzZXJ0aW9uLXJlCisoZGVmY29uc3Qg ZXJ0LWZvbnQtbG9jay0tZmFjZS1zeW1ib2wtcmUKKyAgKHJ4IChvbmUtb3ItbW9yZSAob3IgYWxw aGFudW1lcmljICItIiAiXyIgIi4iKSkpCisgICJBIGZhY2Ugc3ltYm9sIG1hdGNoaW5nIHJlZ2V4 LiIpCisKKyhkZWZjb25zdCBlcnQtZm9udC1sb2NrLS1mYWNlLXN5bWJvbC1saXN0LXJlCisgIChy eCAiKCIKKyAgICAgICgqIHdoaXRlc3BhY2UpCisgICAgICAob25lLW9yLW1vcmUKKyAgICAgICAo c2VxIChyZWdleHAgZXJ0LWZvbnQtbG9jay0tZmFjZS1zeW1ib2wtcmUpCisgICAgICAgICAgICAo KiB3aGl0ZXNwYWNlKSkpCisgICAgICAiKSIpCisgICJBIGZhY2Ugc3ltYm9sIGxpc3QgbWF0Y2hp bmcgcmVnZXguIikKKworKGRlZmNvbnN0IGVydC1mb250LWxvY2stLWFzc2VydGlvbi1saW5lLXJl CiAgIChyeAotICAgOzsgY29sdW1uIHNwZWNpZmllcnMKKyAgIDs7IGxlYWRpbmcgY29sdW1uIGFz c2VydGlvbiAoYXJyb3cvY2FyZXQpCiAgICAoZ3JvdXAgKG9yICJeIiAiPC0iKSkKLSAgIChvbmUt b3ItbW9yZSAiICIpCisgICAoemVyby1vci1tb3JlIHdoaXRlc3BhY2UpCisgICA7OyBwb3NzaWJs ZSB0byBoYXZlIG1hbnkgY2FyZXRzIG9uIGFuIGFzc2VydGlvbiBsaW5lCisgICAoZ3JvdXAgKHpl cm8tb3ItbW9yZSAoc2VxICJeIiAoemVyby1vci1tb3JlIHdoaXRlc3BhY2UpKSkpCiAgICA7OyBv cHRpb25hbCBuZWdhdGlvbiBvZiB0aGUgZmFjZSBzcGVjaWZpY2F0aW9uCiAgICAoZ3JvdXAgKG9w dGlvbmFsICIhIikpCi0gICA7OyBmYWNlIHN5bWJvbCBuYW1lCi0gICAoZ3JvdXAgKG9uZS1vci1t b3JlIChvciBhbHBoYW51bWVyaWMgIi0iICJfIiAiLiIpKSkpCi0gICJBbiBlcnQtZm9udC1sb2Nr IGFzc2VydGlvbiByZWdleC4iKQorICAgOzsgZmFjZSBzeW1ib2wgbmFtZSBvciBhIGxpc3Qgb2Yg c3ltYm9scworICAgKGdyb3VwIChvciAocmVnZXhwIGVydC1mb250LWxvY2stLWZhY2Utc3ltYm9s LXJlKQorICAgICAgICAgICAgICAocmVnZXhwIGVydC1mb250LWxvY2stLWZhY2Utc3ltYm9sLWxp c3QtcmUpKSkpCisgICJBbiBlcnQtZm9udC1sb2NrIGFzc2VydGlvbiBsaW5lIHJlZ2V4LiIpCgog KGRlZnVuIGVydC1mb250LWxvY2stLXZhbGlkYXRlLW1ham9yLW1vZGUgKG1vZGUpCiAgICJWYWxp ZGF0ZSBpZiBNT0RFIGlzIGEgdmFsaWQgbWFqb3IgbW9kZS4iCkBAIC0yMTIsNyArMjI4LDcgQEAg ZXJ0LWZvbnQtbG9jay0tbGluZS1hc3NlcnRpb24tcAogICAoc2F2ZS1leGN1cnNpb24KICAgICAo YmVnaW5uaW5nLW9mLWxpbmUpCiAgICAgKHNraXAtc3ludGF4LWZvcndhcmQgIiAiKQotICAgIChy ZS1zZWFyY2gtZm9yd2FyZCBlcnQtZm9udC1sb2NrLS1hc3NlcnRpb24tcmUKKyAgICAocmUtc2Vh cmNoLWZvcndhcmQgZXJ0LWZvbnQtbG9jay0tYXNzZXJ0aW9uLWxpbmUtcmUKICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUtZW5kLXBvc2l0aW9uKSB0IDEpKSkKCiAoZGVmdW4gZXJ0LWZvbnQt bG9jay0tZ290by1maXJzdC1jaGFyICgpCkBAIC0yNTIsOCArMjY4LDggQEAgZXJ0LWZvbnQtbG9j ay0tcGFyc2UtY29tbWVudHMKICAgICAgICAgICAodGhyb3cgJ25leHRsaW5lIHQpKQoKCi0gICAg ICAgIDs7IENvbGxlY3QgdGhlIGFzc2VydGlvbgotICAgICAgICAod2hlbiAocmUtc2VhcmNoLWZv cndhcmQgZXJ0LWZvbnQtbG9jay0tYXNzZXJ0aW9uLXJlCisgICAgICAgIDs7IENvbGxlY3QgdGhl IGZpcnN0IGxpbmUgYXNzZXJ0aW9uIChjYXJldCBvciBhcnJvdykKKyAgICAgICAgKHdoZW4gKHJl LXNlYXJjaC1mb3J3YXJkIGVydC1mb250LWxvY2stLWFzc2VydGlvbi1saW5lLXJlCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGluZS1lbmQtcG9zaXRpb24pIHQgMSkKCiAgICAg ICAgICAgKHVubGVzcyAoPiBsaW5ldG9jaGVjayAtMSkKQEAgLTI2NiwyMSArMjgyLDM4IEBAIGVy dC1mb250LWxvY2stLXBhcnNlLWNvbW1lbnRzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKC0gKG1hdGNoLWJlZ2lubmluZyAxKSAobGluZS1iZWdpbm5pbmctcG9zaXRpb24p KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJ0LWZvbnQtbG9jay0tZ2V0 LWZpcnN0LWNoYXItY29sdW1uKSkpCiAgICAgICAgICAgICAgICAgIDs7IG5lZ2F0ZSB0aGUgZmFj ZT8KLSAgICAgICAgICAgICAgICAgKG5lZ2F0aW9uIChzdHJpbmctZXF1YWwgKG1hdGNoLXN0cmlu Zy1uby1wcm9wZXJ0aWVzIDIpICIhIikpCisgICAgICAgICAgICAgICAgIChuZWdhdGlvbiAoc3Ry aW5nLWVxdWFsIChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyAzKSAiISIpKQogICAgICAgICAg ICAgICAgICA7OyB0aGUgZmFjZSB0aGF0IGlzIHN1cHBvc2VkIHRvIGJlIGluIHRoZSBwb3NpdGlv biBzcGVjaWZpZWQKLSAgICAgICAgICAgICAgICAgKGZhY2UgKG1hdGNoLXN0cmluZy1uby1wcm9w ZXJ0aWVzIDMpKSkKKyAgICAgICAgICAgICAgICAgKGZhY2UgKHJlYWQgKG1hdGNoLXN0cmluZy1u by1wcm9wZXJ0aWVzIDQpKSkpCgorICAgICAgICAgICAgOzsgQ29sbGVjdCB0aGUgZmlyc3QgYXNz ZXJ0aW9uIG9uIHRoZSBsaW5lCiAgICAgICAgICAgICAocHVzaCAobGlzdCA6bGluZS1jaGVja2Vk IGxpbmV0b2NoZWNrCiAgICAgICAgICAgICAgICAgICAgICAgICA6bGluZS1hc3NlcnQgY3VybGlu ZQogICAgICAgICAgICAgICAgICAgICAgICAgOmNvbHVtbi1jaGVja2VkIGNvbHVtbi1jaGVja2Vk CiAgICAgICAgICAgICAgICAgICAgICAgICA6ZmFjZSBmYWNlCiAgICAgICAgICAgICAgICAgICAg ICAgICA6bmVnYXRpb24gbmVnYXRpb24pCi0gICAgICAgICAgICAgICAgICB0ZXN0cykpKSkKKyAg ICAgICAgICAgICAgICAgIHRlc3RzKQorCisgICAgICAgICAgICA7OyBDb2xsZWN0IGFsbCB0aGUg b3RoZXIgbGluZSBjYXJldHMgKGlmIHByZXNlbnQpCisgICAgICAgICAgICAoZ290by1jaGFyICht YXRjaC1iZWdpbm5pbmcgMikpCisgICAgICAgICAgICAod2hpbGUgKGVxdWFsIChmb2xsb3dpbmct Y2hhcikgP14pCisgICAgICAgICAgICAgIChzZXRxIGNvbHVtbi1jaGVja2VkICgtIChwb2ludCkg KGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpCisgICAgICAgICAgICAgIChwdXNoIChsaXN0IDps aW5lLWNoZWNrZWQgbGluZXRvY2hlY2sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOmxpbmUt YXNzZXJ0IGN1cmxpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgOmNvbHVtbi1jaGVja2Vk IGNvbHVtbi1jaGVja2VkCisgICAgICAgICAgICAgICAgICAgICAgICAgIDpmYWNlIGZhY2UKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgOm5lZ2F0aW9uIG5lZ2F0aW9uKQorICAgICAgICAgICAg ICAgICAgICB0ZXN0cykKKyAgICAgICAgICAgICAgKGZvcndhcmQtY2hhcikKKyAgICAgICAgICAg ICAgKHNraXAtc3ludGF4LWZvcndhcmQgIiAiKSkpKSkKCiAgICAgICA7OyBuZXh0IGxpbmUKICAg ICAgIChzZXRxIGN1cmxpbmUgKDErIGN1cmxpbmUpKQogICAgICAgKGZvcndhcmQtbGluZSAxKSkK CisgICAgKHVubGVzcyB0ZXN0cworICAgICAgKHVzZXItZXJyb3IgIk5vIHRlc3QgYXNzZXJ0aW9u cyBmb3VuZCIpKQorCiAgICAgKHJldmVyc2UgdGVzdHMpKSkKCiAoZGVmdW4gZXJ0LWZvbnQtbG9j ay0tcG9pbnQtYXQtbGluZS1hbmQtY29sdW1uIChsaW5lIGNvbHVtbikKQEAgLTMwNywyMSArMzQw LDI4IEBAIGVydC1mb250LWxvY2stLWNoZWNrLWZhY2VzCiAgICAgKGxldCogKChsaW5lLWNoZWNr ZWQgKHBsaXN0LWdldCB0ZXN0IDpsaW5lLWNoZWNrZWQpKQogICAgICAgICAgICAobGluZS1hc3Nl cnQgKHBsaXN0LWdldCB0ZXN0IDpsaW5lLWFzc2VydCkpCiAgICAgICAgICAgIChjb2x1bW4tY2hl Y2tlZCAocGxpc3QtZ2V0IHRlc3QgOmNvbHVtbi1jaGVja2VkKSkKLSAgICAgICAgICAgKGV4cGVj dGVkLWZhY2UgKGludGVybiAocGxpc3QtZ2V0IHRlc3QgOmZhY2UpKSkKKyAgICAgICAgICAgKGV4 cGVjdGVkLWZhY2UgKHBsaXN0LWdldCB0ZXN0IDpmYWNlKSkKICAgICAgICAgICAgKG5lZ2F0aW9u IChwbGlzdC1nZXQgdGVzdCA6bmVnYXRpb24pKQoKICAgICAgICAgICAgKGFjdHVhbC1mYWNlIChn ZXQtdGV4dC1wcm9wZXJ0eSAoZXJ0LWZvbnQtbG9jay0tcG9pbnQtYXQtbGluZS1hbmQtY29sdW1u IGxpbmUtY2hlY2tlZCBjb2x1bW4tY2hlY2tlZCkgJ2ZhY2UpKQogICAgICAgICAgICAobGluZS1z dHIgKGVydC1mb250LWxvY2stLWdldC1saW5lIGxpbmUtY2hlY2tlZCkpCiAgICAgICAgICAgIChs aW5lLWFzc2VydC1zdHIgKGVydC1mb250LWxvY2stLWdldC1saW5lIGxpbmUtYXNzZXJ0KSkpCgot ICAgICAgKHdoZW4gKG5vdCAoZXEgYWN0dWFsLWZhY2UgZXhwZWN0ZWQtZmFjZSkpCisgICAgICA7 OyBub3JtYWxpemUgYm90aCBleHBlY3RlZCBhbmQgcmVzdWx0aW5nIGZhY2UgLSB0aGVzZSBjYW4g YmUKKyAgICAgIDs7IGVpdGhlciBzeW1ib2xzIG9yIGxpc3RzIG9mIHN5bWJvbHMKKyAgICAgICh3 aGVuIChzeW1ib2xwIGFjdHVhbC1mYWNlKQorICAgICAgICAoc2V0cSBhY3R1YWwtZmFjZSAobGlz dCBhY3R1YWwtZmFjZSkpKQorICAgICAgKHdoZW4gKHN5bWJvbHAgZXhwZWN0ZWQtZmFjZSkKKyAg ICAgICAgKHNldHEgZXhwZWN0ZWQtZmFjZSAobGlzdCBleHBlY3RlZC1mYWNlKSkpCisKKyAgICAg ICh3aGVuIChub3QgKGVxdWFsIGFjdHVhbC1mYWNlIGV4cGVjdGVkLWZhY2UpKQogICAgICAgICAo ZXJ0LWZhaWwKICAgICAgICAgIChsaXN0IChmb3JtYXQgIkV4cGVjdGVkIGZhY2UgJVMsIGdvdCAl UyBvbiBsaW5lICVkIGNvbHVtbiAlZCIKICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQt ZmFjZSBhY3R1YWwtZmFjZSBsaW5lLWNoZWNrZWQgY29sdW1uLWNoZWNrZWQpCiAgICAgICAgICAg ICAgICA6bGluZSBsaW5lLXN0cgogICAgICAgICAgICAgICAgOmFzc2VydCBsaW5lLWFzc2VydC1z dHIpKSkKCi0gICAgICAod2hlbiAoYW5kIG5lZ2F0aW9uIChlcSBhY3R1YWwtZmFjZSBleHBlY3Rl ZC1mYWNlKSkKKyAgICAgICh3aGVuIChhbmQgbmVnYXRpb24gKGVxdWFsIGFjdHVhbC1mYWNlIGV4 cGVjdGVkLWZhY2UpKQogICAgICAgICAoZXJ0LWZhaWwKICAgICAgICAgIChsaXN0IChmb3JtYXQg IkRpZCBub3QgZXhwZWN0IGZhY2UgJVMgZmFjZSBvbiBsaW5lICVkLCBjb2x1bW4gJWQiCiAgICAg ICAgICAgICAgICAgICAgICAgIGFjdHVhbC1mYWNlIGxpbmUtY2hlY2tlZCBjb2x1bW4tY2hlY2tl ZCkKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2stcmVzb3Vy Y2VzL25vLWFzc2VydHMuanMgYi90ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXJl c291cmNlcy9uby1hc3NlcnRzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi45ZTAyZDU2YzYzMwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3QvbGlzcC9lbWFjcy1saXNw L2VydC1mb250LWxvY2stcmVzb3VyY2VzL25vLWFzc2VydHMuanMKQEAgLTAsMCArMSwzIEBACit2 YXIgYWJjID0gZnVuY3Rpb24oZCkgeworICAgIC8vICBeIHRlc3QtZmFjZQorfTsKZGlmZiAtLWdp dCBhL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2stdGVzdHMuZWwgYi90ZXN0L2xp c3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXRlc3RzLmVsCmluZGV4IGUwYmExZTk0OWIyLi5i MGJiOGMzMWM2MCAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL2VtYWNzLWxpc3AvZXJ0LWZvbnQtbG9j ay10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXRlc3Rz LmVsCkBAIC0xMzgsMTMgKzEzOCwyNCBAQCB0ZXN0LWxpbmUtY29tbWVudC1wLS1jCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChzaG91bGQgKGVydC1mb250LWxvY2stLWxpbmUtY29tbWVudC1wKSkpKQoKKyhl cnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1uby1hc3NlcnRpb24tZXJyb3IgKCkKKyAg KGxldCogKChzdHIgIgorbm90X2FuX2Fzc2VydGlvbgorcmFuZG9tX3N5bWJvbAorIikpCisgICAg KHdpdGgtdGVtcC1idWZmZXIKKyAgICAgIChpbnNlcnQgc3RyKQorICAgICAgKGphdmFzY3JpcHQt bW9kZSkKKworICAgICAgKHNob3VsZC1lcnJvciAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVu dHMpIDp0eXBlICd1c2VyLWVycm9yKSkpKQorCiAoZXJ0LWRlZnRlc3QgdGVzdC1wYXJzZS1jb21t ZW50cy0tc2luZ2xlLWxpbmUtZXJyb3IgKCkKICAgKGxldCogKChzdHIgIi8vIF4gZmFjZS5mYWNl MSIpKQogICAgICh3aXRoLXRlbXAtYnVmZmVyCiAgICAgICAoaW5zZXJ0IHN0cikKICAgICAgIChq YXZhc2NyaXB0LW1vZGUpCgotICAgICAgKHNob3VsZC1lcnJvciAoZXJ0LWZvbnQtbG9jay0tcGFy c2UtY29tbWVudHMpKSkpKQorICAgICAgKHNob3VsZC1lcnJvciAoZXJ0LWZvbnQtbG9jay0tcGFy c2UtY29tbWVudHMpIDp0eXBlICd1c2VyLWVycm9yKSkpKQoKIChlcnQtZGVmdGVzdCB0ZXN0LXBh cnNlLWNvbW1lbnRzLS1zaW5nbGUtbGluZS1zaW5nbGUtY2FyZXQgKCkKICAgKGxldCogKChzdHIg IgpAQCAtMTU5LDcgKzE3MCw0NiBAQCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1zaW5nbGUtbGluZS1z aW5nbGUtY2FyZXQKICAgICAgIChzZXRxIGFzc2VydHMgKGVydC1mb250LWxvY2stLXBhcnNlLWNv bW1lbnRzKSkKICAgICAgIChzaG91bGQgKGVxbCAobGVuZ3RoIGFzc2VydHMpIDEpKQogICAgICAg KHNob3VsZCAoZXF1YWwgKGNhciBhc3NlcnRzKQotICAgICAgICAgICAgICAgICAgICAgJyg6bGlu ZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDMgOmZhY2UgImZhY2Uu ZmFjZTEiIDpuZWdhdGlvbiBuaWwpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICcoOmxpbmUt Y2hlY2tlZCAyIDpsaW5lLWFzc2VydCAzIDpjb2x1bW4tY2hlY2tlZCAzIDpmYWNlIGZhY2UuZmFj ZTEgOm5lZ2F0aW9uIG5pbCkpKSkpKQorCisoZXJ0LWRlZnRlc3QgdGVzdC1wYXJzZS1jb21tZW50 cy0tc2luZ2xlLWxpbmUtbWFueS1jYXJldHMgKCkKKyAgKGxldCogKChzdHIgIgorbXVsdGlwbGVj YXJldHMKKy8vXl5eIF5eIF4gZmFjZS5mYWNlMQorIikKKyAgICAgICAgIGFzc2VydHMpCisgICAg KHdpdGgtdGVtcC1idWZmZXIKKyAgICAgIChpbnNlcnQgc3RyKQorICAgICAgKGphdmFzY3JpcHQt bW9kZSkKKworICAgICAgKHNldHEgYXNzZXJ0cyAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVu dHMpKQorICAgICAgKHNob3VsZCAoZXFsIChsZW5ndGggYXNzZXJ0cykgNikpCisgICAgICAoc2hv dWxkIChlcXVhbCBhc3NlcnRzCisgICAgICAgICAgICAgICAgICAgICAnKCg6bGluZS1jaGVja2Vk IDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDIgOmZhY2UgZmFjZS5mYWNlMSA6bmVn YXRpb24gbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5l LWFzc2VydCAzIDpjb2x1bW4tY2hlY2tlZCAzIDpmYWNlIGZhY2UuZmFjZTEgOm5lZ2F0aW9uIG5p bCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQg MyA6Y29sdW1uLWNoZWNrZWQgNCA6ZmFjZSBmYWNlLmZhY2UxIDpuZWdhdGlvbiBuaWwpCisgICAg ICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVt bi1jaGVja2VkIDYgOmZhY2UgZmFjZS5mYWNlMSA6bmVnYXRpb24gbmlsKQorICAgICAgICAgICAg ICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCAzIDpjb2x1bW4tY2hlY2tl ZCA3IDpmYWNlIGZhY2UuZmFjZTEgOm5lZ2F0aW9uIG5pbCkKKyAgICAgICAgICAgICAgICAgICAg ICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgOSA6ZmFj ZSBmYWNlLmZhY2UxIDpuZWdhdGlvbiBuaWwpKSkpKSkpCisKKyhlcnQtZGVmdGVzdCB0ZXN0LXBh cnNlLWNvbW1lbnRzLS1mYWNlLWxpc3QgKCkKKyAgKGxldCogKChzdHIgIgorZmFjZWxpc3QKKy8v IF4gKGZhY2UxIGZhY2UyKQorLy8gXiAhKGZhY2UzIGZhY2U0KQorLy8gXiAoZmFjZTUpCisiKQor ICAgICAgICAgYXNzZXJ0cykKKyAgICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgICAgKGluc2VydCBz dHIpCisgICAgICAoamF2YXNjcmlwdC1tb2RlKQorCisgICAgICAoc2V0cSBhc3NlcnRzIChlcnQt Zm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpCisgICAgICAoc2hvdWxkIChlcWwgKGxlbmd0aCBh c3NlcnRzKSAzKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIGFzc2VydHMKKyAgICAgICAgICAgICAg ICAgICAgICcoKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQg MyA6ZmFjZSAoZmFjZTEgZmFjZTIpIDpuZWdhdGlvbiBuaWwpCisgICAgICAgICAgICAgICAgICAg ICAgICg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDQgOmNvbHVtbi1jaGVja2VkIDMgOmZh Y2UgKGZhY2UzIGZhY2U0KSA6bmVnYXRpb24gdCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDps aW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgNSA6Y29sdW1uLWNoZWNrZWQgMyA6ZmFjZSAoZmFj ZTUpIDpuZWdhdGlvbiBuaWwpKSkpKSkpCgogKGVydC1kZWZ0ZXN0IHRlc3QtcGFyc2UtY29tbWVu dHMtLWNhcmV0LW5lZ2F0aW9uICgpCiAgIChsZXQqICgoc3RyICIKQEAgLTE3NSwxMSArMjI1LDEx IEBAIHRlc3QtcGFyc2UtY29tbWVudHMtLWNhcmV0LW5lZ2F0aW9uCiAgICAgICAoc2V0cSBhc3Nl cnRzIChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpCiAgICAgICAoc2hvdWxkIChlcWwg KGxlbmd0aCBhc3NlcnRzKSAyKSkKICAgICAgIChzaG91bGQgKGVxdWFsIGFzc2VydHMKLSAgICAg ICAgICAgICAgICAgICAgICcoKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1u LWNoZWNrZWQgMyA6ZmFjZSAiZmFjZSIgOm5lZ2F0aW9uIHQpCi0gICAgICAgICAgICAgICAgICAg ICAgICg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDQgOmNvbHVtbi1jaGVja2VkIDMgOmZh Y2UgImZhY2UiIDpuZWdhdGlvbiBuaWwpKSkpKSkpCisgICAgICAgICAgICAgICAgICAgICAnKCg6 bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDMgOmZhY2UgZmFj ZSA6bmVnYXRpb24gdCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6 bGluZS1hc3NlcnQgNCA6Y29sdW1uLWNoZWNrZWQgMyA6ZmFjZSBmYWNlIDpuZWdhdGlvbiBuaWwp KSkpKSkpCgoKLShlcnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1zaW5nbGUtbGluZS1t dWx0aXBsZS1jYXJldHMgKCkKKyhlcnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1zaW5n bGUtbGluZS1tdWx0aXBsZS1hc3NlcnQtbGluZXMgKCkKICAgKGxldCogKChzdHIgIgogZmlyc3QK IC8vIF4gZmFjZTEKQEAgLTE5NiwxMiArMjQ2LDEyIEBAIHRlc3QtcGFyc2UtY29tbWVudHMtLXNp bmdsZS1saW5lLW11bHRpcGxlLWNhcmV0cwogICAgICAgKHNldHEgYXNzZXJ0cyAoZXJ0LWZvbnQt bG9jay0tcGFyc2UtY29tbWVudHMpKQogICAgICAgKHNob3VsZCAoZXFsIChsZW5ndGggYXNzZXJ0 cykgNCkpCiAgICAgICAoc2hvdWxkIChlcXVhbCBhc3NlcnRzCi0gICAgICAgICAgICAgICAgICAg ICAnKCg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDMgOmZh Y2UgImZhY2UxIiA6bmVnYXRpb24gbmlsKQotICAgICAgICAgICAgICAgICAgICAgICAoOmxpbmUt Y2hlY2tlZCAyIDpsaW5lLWFzc2VydCA0IDpjb2x1bW4tY2hlY2tlZCA3IDpmYWNlICJmYWNlLmZh Y2UyIiA6bmVnYXRpb24gbmlsKQotICAgICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tl ZCAyIDpsaW5lLWFzc2VydCA1IDpjb2x1bW4tY2hlY2tlZCA3IDpmYWNlICJmYWNlLWZhY2UuZmFj ZTMiIDpuZWdhdGlvbiBuaWwpCi0gICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2Vk IDIgOmxpbmUtYXNzZXJ0IDYgOmNvbHVtbi1jaGVja2VkIDcgOmZhY2UgImZhY2VfZmFjZS5mYWNl NCIgOm5lZ2F0aW9uIG5pbCkpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICcoKDpsaW5lLWNo ZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgMyA6ZmFjZSBmYWNlMSA6bmVn YXRpb24gbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5l LWFzc2VydCA0IDpjb2x1bW4tY2hlY2tlZCA3IDpmYWNlIGZhY2UuZmFjZTIgOm5lZ2F0aW9uIG5p bCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQg NSA6Y29sdW1uLWNoZWNrZWQgNyA6ZmFjZSBmYWNlLWZhY2UuZmFjZTMgOm5lZ2F0aW9uIG5pbCkK KyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgNiA6 Y29sdW1uLWNoZWNrZWQgNyA6ZmFjZSBmYWNlX2ZhY2UuZmFjZTQgOm5lZ2F0aW9uIG5pbCkpKSkp KSkKCi0oZXJ0LWRlZnRlc3QgdGVzdC1wYXJzZS1jb21tZW50cy0tbXVsdGlwbGUtbGluZS1tdWx0 aXBsZS1jYXJldHMgKCkKKyhlcnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1tdWx0aXBs ZS1saW5lLW11bHRpcGxlLWFzc2VydC1saW5lcyAoKQogICAobGV0KiAoKHN0ciAiCiBmaXJzdAog Ly8gXiBmYWNlMQpAQCAtMjE4LDkgKzI2OCw5IEBAIHRlc3QtcGFyc2UtY29tbWVudHMtLW11bHRp cGxlLWxpbmUtbXVsdGlwbGUtY2FyZXRzCiAgICAgICAoc2V0cSBhc3NlcnRzIChlcnQtZm9udC1s b2NrLS1wYXJzZS1jb21tZW50cykpCiAgICAgICAoc2hvdWxkIChlcWwgKGxlbmd0aCBhc3NlcnRz KSAzKSkKICAgICAgIChzaG91bGQgKGVxdWFsIGFzc2VydHMKLSAgICAgICAgICAgICAgICAgICAg ICcoKDpsaW5lLWNoZWNrZWQgMiAgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDMgOmZh Y2UgImZhY2UxIiA6bmVnYXRpb24gbmlsKQotICAgICAgICAgICAgICAgICAgICAgICAoOmxpbmUt Y2hlY2tlZCA0ICA6bGluZS1hc3NlcnQgNSA6Y29sdW1uLWNoZWNrZWQgMyA6ZmFjZSAiZmFjZTIi IDpuZWdhdGlvbiBuaWwpCi0gICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2VkIDQg IDpsaW5lLWFzc2VydCA2IDpjb2x1bW4tY2hlY2tlZCA1IDpmYWNlICJmYWNlMyIgOm5lZ2F0aW9u IG5pbCkpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICcoKDpsaW5lLWNoZWNrZWQgMiAgOmxp bmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDMgOmZhY2UgZmFjZTEgOm5lZ2F0aW9uIG5pbCkK KyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgNCAgOmxpbmUtYXNzZXJ0IDUg OmNvbHVtbi1jaGVja2VkIDMgOmZhY2UgZmFjZTIgOm5lZ2F0aW9uIG5pbCkKKyAgICAgICAgICAg ICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgNCAgOmxpbmUtYXNzZXJ0IDYgOmNvbHVtbi1jaGVj a2VkIDUgOmZhY2UgZmFjZTMgOm5lZ2F0aW9uIG5pbCkpKSkpKSkKCgogKGVydC1kZWZ0ZXN0IHRl c3QtcGFyc2UtY29tbWVudHMtLWFycm93LXNpbmdsZS1saW5lLXNpbmdsZSAoKQpAQCAtMjM2LDcg KzI4Niw3IEBAIHRlc3QtcGFyc2UtY29tbWVudHMtLWFycm93LXNpbmdsZS1saW5lLXNpbmdsZQog ICAgICAgKHNldHEgYXNzZXJ0cyAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKQogICAg ICAgKHNob3VsZCAoZXFsIChsZW5ndGggYXNzZXJ0cykgMSkpCiAgICAgICAoc2hvdWxkIChlcXVh bCAoY2FyIGFzc2VydHMpCi0gICAgICAgICAgICAgICAgICAgICAnKDpsaW5lLWNoZWNrZWQgMiA6 bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgMCA6ZmFjZSAiZmFjZTEiIDpuZWdhdGlvbiBu aWwpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICcoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFz c2VydCAzIDpjb2x1bW4tY2hlY2tlZCAwIDpmYWNlIGZhY2UxIDpuZWdhdGlvbiBuaWwpKSkpKSkK CgogKGVydC1kZWZ0ZXN0IHRlc3QtcGFyc2UtY29tbWVudHMtYXJyb3ctbXVsdGlwbGUtbGluZS1z aW5nbGUgKCkKQEAgLTI1NCw5ICszMDQsOSBAQCB0ZXN0LXBhcnNlLWNvbW1lbnRzLWFycm93LW11 bHRpcGxlLWxpbmUtc2luZ2xlCiAgICAgICAoc2V0cSBhc3NlcnRzIChlcnQtZm9udC1sb2NrLS1w YXJzZS1jb21tZW50cykpCiAgICAgICAoc2hvdWxkIChlcWwgKGxlbmd0aCBhc3NlcnRzKSAzKSkK ICAgICAgIChzaG91bGQgKGVxdWFsIGFzc2VydHMKLSAgICAgICAgICAgICAgICAgICAgICcoKDps aW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgMCA6ZmFjZSAiZmFj ZTEiIDpuZWdhdGlvbiBuaWwpCi0gICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2Vk IDIgOmxpbmUtYXNzZXJ0IDQgOmNvbHVtbi1jaGVja2VkIDIgOmZhY2UgImZhY2UyIiA6bmVnYXRp b24gbmlsKQotICAgICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFz c2VydCA1IDpjb2x1bW4tY2hlY2tlZCA0IDpmYWNlICJmYWNlMyIgOm5lZ2F0aW9uIG5pbCkpKSkp KSkKKyAgICAgICAgICAgICAgICAgICAgICcoKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQg MyA6Y29sdW1uLWNoZWNrZWQgMCA6ZmFjZSBmYWNlMSA6bmVnYXRpb24gbmlsKQorICAgICAgICAg ICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCA0IDpjb2x1bW4tY2hl Y2tlZCAyIDpmYWNlIGZhY2UyIDpuZWdhdGlvbiBuaWwpCisgICAgICAgICAgICAgICAgICAgICAg ICg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDUgOmNvbHVtbi1jaGVja2VkIDQgOmZhY2Ug ZmFjZTMgOm5lZ2F0aW9uIG5pbCkpKSkpKSkKCiAoZXJ0LWRlZnRlc3QgdGVzdC1wYXJzZS1jb21t ZW50cy0tbm9uLWFzc2VydC1jb21tZW50LXNpbmdsZSAoKQogICAobGV0KiAoKHN0ciAiCkBAIC0y NzEsNyArMzIxLDcgQEAgdGVzdC1wYXJzZS1jb21tZW50cy0tbm9uLWFzc2VydC1jb21tZW50LXNp bmdsZQogICAgICAgKHNldHEgYXNzZXJ0cyAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMp KQogICAgICAgKHNob3VsZCAoZXFsIChsZW5ndGggYXNzZXJ0cykgMSkpCiAgICAgICAoc2hvdWxk IChlcXVhbCAoY2FyIGFzc2VydHMpCi0gICAgICAgICAgICAgICAgICAgICAnKDpsaW5lLWNoZWNr ZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgNCA6ZmFjZSAiY29tbWVudC1mYWNl IiA6bmVnYXRpb24gbmlsKSkpKSkpCisgICAgICAgICAgICAgICAgICAgICAnKDpsaW5lLWNoZWNr ZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgNCA6ZmFjZSBjb21tZW50LWZhY2Ug Om5lZ2F0aW9uIG5pbCkpKSkpKQoKIChlcnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1u b24tYXNzZXJ0LWNvbW1lbnQtbXVsdGlwbGUgKCkKICAgKGxldCogKChzdHIgIgpAQCAtMjg4LDkg KzMzOCw5IEBAIHRlc3QtcGFyc2UtY29tbWVudHMtLW5vbi1hc3NlcnQtY29tbWVudC1tdWx0aXBs ZQogICAgICAgKHNldHEgYXNzZXJ0cyAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKQog ICAgICAgKHNob3VsZCAoZXFsIChsZW5ndGggYXNzZXJ0cykgMykpCiAgICAgICAoc2hvdWxkIChl cXVhbCBhc3NlcnRzCi0gICAgICAgICAgICAgICAgICAgICAnKCg6bGluZS1jaGVja2VkIDIgOmxp bmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDQgOmZhY2UgImNvbW1lbnQtZmFjZSIgOm5lZ2F0 aW9uIG5pbCkKLSAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1h c3NlcnQgNCA6Y29sdW1uLWNoZWNrZWQgMTAgOmZhY2UgImNvbW1lbnQtZmFjZSIgOm5lZ2F0aW9u IG5pbCkKLSAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3Nl cnQgNSA6Y29sdW1uLWNoZWNrZWQgMTggOmZhY2UgImNvbW1lbnQtZmFjZSIgOm5lZ2F0aW9uIG5p bCkpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICcoKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1h c3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgNCA6ZmFjZSBjb21tZW50LWZhY2UgOm5lZ2F0aW9uIG5p bCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQg NCA6Y29sdW1uLWNoZWNrZWQgMTAgOmZhY2UgY29tbWVudC1mYWNlIDpuZWdhdGlvbiBuaWwpCisg ICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDUgOmNv bHVtbi1jaGVja2VkIDE4IDpmYWNlIGNvbW1lbnQtZmFjZSA6bmVnYXRpb24gbmlsKSkpKSkpKQoK CiAoZXJ0LWRlZnRlc3QgdGVzdC1wYXJzZS1jb21tZW50cy0tbXVsdGlsaW5lLWNvbW1lbnQtc2lu Z2xlICgpCkBAIC0zMDgsNyArMzU4LDcgQEAgdGVzdC1wYXJzZS1jb21tZW50cy0tbXVsdGlsaW5l LWNvbW1lbnQtc2luZ2xlCiAgICAgICAoc2V0cSBhc3NlcnRzIChlcnQtZm9udC1sb2NrLS1wYXJz ZS1jb21tZW50cykpCiAgICAgICAoc2hvdWxkIChlcWwgKGxlbmd0aCBhc3NlcnRzKSAxKSkKICAg ICAgIChzaG91bGQgKGVxdWFsIChjYXIgYXNzZXJ0cykKLSAgICAgICAgICAgICAgICAgICAgICco OmxpbmUtY2hlY2tlZCAzIDpsaW5lLWFzc2VydCA0IDpjb2x1bW4tY2hlY2tlZCAzIDpmYWNlICJj b21tZW50LWZhY2UiIDpuZWdhdGlvbiBuaWwpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICco OmxpbmUtY2hlY2tlZCAzIDpsaW5lLWFzc2VydCA0IDpjb2x1bW4tY2hlY2tlZCAzIDpmYWNlIGNv bW1lbnQtZmFjZSA6bmVnYXRpb24gbmlsKSkpKSkpCgogKGVydC1kZWZ0ZXN0IHRlc3QtcGFyc2Ut Y29tbWVudHMtLW11bHRpbGluZS1jb21tZW50LW11bHRpcGxlICgpCiAgIChsZXQqICgoc3RyICIK QEAgLTMyNywxMyArMzc3LDMxIEBAIHRlc3QtcGFyc2UtY29tbWVudHMtLW11bHRpbGluZS1jb21t ZW50LW11bHRpcGxlCiAgICAgICAoc2V0cSBhc3NlcnRzIChlcnQtZm9udC1sb2NrLS1wYXJzZS1j b21tZW50cykpCiAgICAgICAoc2hvdWxkIChlcWwgKGxlbmd0aCBhc3NlcnRzKSAyKSkKICAgICAg IChzaG91bGQgKGVxdWFsIGFzc2VydHMKLSAgICAgICAgICAgICAgICAgICAgICcoKDpsaW5lLWNo ZWNrZWQgMyA6bGluZS1hc3NlcnQgNCA6Y29sdW1uLWNoZWNrZWQgMyA6ZmFjZSAiY29tbWVudC1m YWNlIiA6bmVnYXRpb24gbmlsKQotICAgICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tl ZCA1IDpsaW5lLWFzc2VydCA2IDpjb2x1bW4tY2hlY2tlZCA0IDpmYWNlICJjb21tZW50LWZhY2Ui IDpuZWdhdGlvbiBuaWwpKSkpKSkpCisgICAgICAgICAgICAgICAgICAgICAnKCg6bGluZS1jaGVj a2VkIDMgOmxpbmUtYXNzZXJ0IDQgOmNvbHVtbi1jaGVja2VkIDMgOmZhY2UgY29tbWVudC1mYWNl IDpuZWdhdGlvbiBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2VkIDUg OmxpbmUtYXNzZXJ0IDYgOmNvbHVtbi1jaGVja2VkIDQgOmZhY2UgY29tbWVudC1mYWNlIDpuZWdh dGlvbiBuaWwpKSkpKSkpCgogOzs7IFN5bnRheCBoaWdobGlnaHRpbmcgYXNzZXJ0aW9uIHRlc3Rz CiA7OwoKLShlcnQtZGVmdGVzdCB0ZXN0LXN5bnRheC1oaWdobGlnaHQtaW5saW5lLS1jYXJldC1t dWx0aXBsZS1mYWNlcyAoKQorKGVydC1kZWZ0ZXN0IHRlc3Qtc3ludGF4LWhpZ2hsaWdodC1pbmxp bmUtLWZhY2UtbGlzdCAoKQorICAobGV0ICgoc3RyICIKK3ZhciBhYmMgPSBmdW5jdGlvbihkKSB7 CisvLyAgIF4gKHRlc3QtZmFjZS0yIHRlc3QtZmFjZS0xIGZvbnQtbG9jay12YXJpYWJsZS1uYW1l LWZhY2UpCit9OworCisiKSkKKyAgICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgICAgKGluc2VydCBz dHIpCisgICAgICAoamF2YXNjcmlwdC1tb2RlKQorICAgICAgKGZvbnQtbG9jay1lbnN1cmUpCisK KyAgICAgIChhZGQtZmFjZS10ZXh0LXByb3BlcnR5IChwb2ludC1taW4pIChwb2ludC1tYXgpICd0 ZXN0LWZhY2UtMSkKKyAgICAgIChhZGQtZmFjZS10ZXh0LXByb3BlcnR5IChwb2ludC1taW4pIChw b2ludC1tYXgpICd0ZXN0LWZhY2UtMikKKworICAgICAgKGVydC1mb250LWxvY2stLWNoZWNrLWZh Y2VzCisgICAgICAgKGVydC1mb250LWxvY2stLXBhcnNlLWNvbW1lbnRzKSkpKSkKKworKGVydC1k ZWZ0ZXN0IHRlc3Qtc3ludGF4LWhpZ2hsaWdodC1pbmxpbmUtLWNhcmV0LW11bHRpcGxlLWFzc2Vy dGlvbnMgKCkKICAgKGxldCAoKHN0ciAiCiB2YXIgYWJjID0gZnVuY3Rpb24oZCkgewogLy8gICBe IGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UKQEAgLTQ1NSw2ICs1MjMsMTIgQEAgdGVzdC1t YWNyby10ZXN0LS1maWxlCiAgIGphdmFzY3JpcHQtbW9kZQogICAiY29ycmVjdC5qcyIpCgorKGVy dC1mb250LWxvY2stZGVmdGVzdC1maWxlIHRlc3QtbWFjcm8tdGVzdC0tZmlsZS1uby1hc3NlcnRz CisgICAgIkNoZWNrIGZhaWxpbmcgb24gZmlsZXMgd2l0aG91dCBhc3NlcnRpb25zIgorICA6ZXhw ZWN0ZWQtcmVzdWx0IDpmYWlsZWQKKyAgamF2YXNjcmlwdC1tb2RlCisgICJuby1hc3NlcnRzLmpz IikKKwogKGVydC1mb250LWxvY2stZGVmdGVzdC1maWxlIHRlc3QtbWFjcm8tdGVzdC0tZmlsZS1m YWlsaW5nCiAgICAgIlRlc3QgcmVhZGluZyB3cm9uZyBhc3NlcnRpb25zIGZyb20gYSBmaWxlIgog ICA6ZXhwZWN0ZWQtcmVzdWx0IDpmYWlsZWQKLS0KMi4zNC4xCg== --000000000000d3ff4806137cc2f3-- From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 13 12:15:35 2024 Received: (at 69714) by debbugs.gnu.org; 13 Mar 2024 16:15:35 +0000 Received: from localhost ([127.0.0.1]:47195 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rkRGQ-0005uq-QW for submit@debbugs.gnu.org; Wed, 13 Mar 2024 12:15:35 -0400 Received: from mail-ed1-f43.google.com ([209.85.208.43]:48163) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rkRGO-0005uW-8T for 69714@debbugs.gnu.org; Wed, 13 Mar 2024 12:15:32 -0400 Received: by mail-ed1-f43.google.com with SMTP id 4fb4d7f45d1cf-5684ea117a3so1035a12.0 for <69714@debbugs.gnu.org>; Wed, 13 Mar 2024 09:14:56 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710346491; x=1710951291; h=content-transfer-encoding:cc: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=YZ5UZbkPvDsKWeb8+ZwNmPVdA0T/FrIWJeg9UF6GTwE=; b=xPmDElIhZ6XN4XKp1gvFjJVIqQQTntu2fWDe+UociDAXu5STycCVxy9/T+b2M18pnm V2UT5emWHzV/cIjK3/q4+9E9OsTRGtntA3aUEfMJSKGx7qGwYwfJyJ/PG8SGk2Ir9yBq SDb7mmCmxK/IsCo+9l1G2FNYyXC4lTqVCf733RZXpCS23QmOPeWf2UQeSNfnFWW+tHHg hWjSHab14rCyRdYQGom761DWeEuiqlOEmTlOZ8F6+dE7NGAFC7e31JCWGaHWEBLTeV5m 2n7eZCP4olm5vEbbm6z1nkppRmPTqFzZaZnnMzrA10VVQ0dFrwx29/tuLY/9sAHXj3Fa NIuA== X-Gm-Message-State: AOJu0YzibIkCsJjdcmcxJyxz8s4joS1CVB5dooCEnA+C32HyP9ldS1VW cLd44/GrqDQIlKviDTEn9S/ZenUf/2bJ5ZmxTvzHnuk8pP5pzz9m12anPCCiGC9oyg== X-Google-Smtp-Source: AGHT+IE+ZidWWC+rkmsNQ0YTrHNmxSUftWeut2fNi5NQv85s1EhcWNDzOUOBn1oujz/b6OHdvq9mPg== X-Received: by 2002:a50:8a98:0:b0:565:9e16:60da with SMTP id j24-20020a508a98000000b005659e1660damr2940299edj.30.1710346490773; Wed, 13 Mar 2024 09:14:50 -0700 (PDT) Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com. [209.85.218.51]) by smtp.gmail.com with ESMTPSA id u7-20020aa7d0c7000000b005689a4b250fsm6924edo.48.2024.03.13.09.14.50 for <69714@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 13 Mar 2024 09:14:50 -0700 (PDT) Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-a4429c556efso3946066b.0 for <69714@debbugs.gnu.org>; Wed, 13 Mar 2024 09:14:50 -0700 (PDT) X-Received: by 2002:a17:906:2b51:b0:a45:aef0:c449 with SMTP id b17-20020a1709062b5100b00a45aef0c449mr2393055ejg.39.1710346489986; Wed, 13 Mar 2024 09:14:49 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Troy Brown Date: Wed, 13 Mar 2024 12:14:38 -0400 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: bug#69714: 30.0.50; ert-font-lock doesn't handle list of faces To: Vladimir Kazanov Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 69714 Cc: 69714@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) Hi Vlad, sorry for the delayed response. I haven't pushed my change which uses this package yet, as I was struggling to get it working and didn't want to push failing tests. I just discovered the package and was working on a regression test for a bug fix involving font locking. This seemed like the perfect reason to use your package. At the moment I only have this one work-in-progress test, but I expect to use it more going forward. I did check out your patch and for my immediate needs, it worked perfectly. Thanks! Additionally, I did experiment a little with the multi-caret functionality, which is nice as I have a use for that. I also experimented with the negation functionality (although I don't have an immediate need for that), and did notice a couple things. The first was that the assertion would be ignored if there was a space between the negation symbol and the face. Also, if the actual and expected faces didn't match and the negation flag was being used, it acted like the negation was not indicated at all and failed the test. I've included a diff below containing the changes I made which seemed to address those concerns. diff --git a/lisp/emacs-lisp/ert-font-lock.el b/lisp/emacs-lisp/ert-font-lo= ck.el index 06c90add9d3..1a5fe96fb09 100644 --- a/lisp/emacs-lisp/ert-font-lock.el +++ b/lisp/emacs-lisp/ert-font-lock.el @@ -61,6 +61,7 @@ ert-font-lock--assertion-line-re (group (zero-or-more (seq "^" (zero-or-more whitespace)))) ;; optional negation of the face specification (group (optional "!")) + (zero-or-more whitespace) ;; face symbol name or a list of symbols (group (or (regexp ert-font-lock--face-symbol-re) (regexp ert-font-lock--face-symbol-list-re)))) @@ -354,7 +355,7 @@ ert-font-lock--check-faces (when (symbolp expected-face) (setq expected-face (list expected-face))) - (when (not (equal actual-face expected-face)) + (when (and (not negation) (not (equal actual-face expected-face))) (ert-fail (list (format "Expected face %S, got %S on line %d column %d" expected-face actual-face line-checked column-check= ed) Thanks, Troy. On Tue, Mar 12, 2024 at 4:47=E2=80=AFPM Vladimir Kazanov wrote: > > Hi, > > I've attached a patch that handles face lists, fails on files without > assertions and expands the parser a bit to support multiple carets per > line. > > For faces it does the following: > > 1. Turn symbols into single element lists. > 2. Parses face lists from the assertions. > 3. Compare face lists using equas. > > Could you please check if this works for you? > > Thanks > > On Mon, 11 Mar 2024 at 08:36, Vladimir Kazanov wrot= e: > > > > Hi, > > > > Thanks for reporting this! I have a bunch of ert-font-lock > > improvements in my local repo getting ready for submission, and can > > look into your suggestions as well. > > > > Do you have your unit test code somewhere in a public repo? It'd be > > great to think of further improvements to support your use case. > > > > Thanks, > > Vlad > > > > On Sun, 10 Mar 2024 at 20:33, Troy Brown wrote: > > > > > > I'm trying to use this package to test out my tree-sitter mode, but a= m > > > running into an issue with lists of faces. It's possible that the > > > face for a location in the buffer will contain a list of 1 or more > > > faces. For example, when I use the ":override 'prepend" keyword in > > > the call to treesit-font-lock-rules, even if only a single face is > > > specified for the rule that matches that section of the buffer, this > > > will result in a list of one entry (i.e., "(face-name)"). > > > > > > When this happens, ert-font-lock fails to recognize that this matches > > > the face "face-name" (e.g., "^ face-name" will fail to match in this > > > case). I feel the tool should recognize a list containing a single > > > face as matching the face. Even worse however, it appears > > > ert-font-lock doesn't support a list of faces in the comment. I trie= d > > > to work around the original issue by using "^ (face-name)", but the > > > tool silently ignores this, as it doesn't match the internal regular > > > expression (which ended up allowing my test to pass without actually > > > checking anything). > > > > > > I can't figure out a way to use this tool in its current state due to > > > its lack of support for a list of faces. Also, I find that since it > > > silently ignores incorrect comment syntax (e.g., "^face-name", "^ > > > (face-name)"), it gives a false illusion that it's actually performin= g > > > those checks (and the checks are passing), when it's really just > > > ignoring them. Maybe any comment line starting with a "^" or "<-" > > > should be considered an assertion check and to fail if the rest of th= e > > > syntax is not as expected. Maybe it should also fail the test if no > > > assertion checks are found in a source file or string. > > > > > > Even if the tool would allow a list of a single face to match the > > > supplied face in the comment, I think it should also allow for > > > multiple faces to be listed in the comment. I have other places wher= e > > > multiple faces are used (e.g., "(font-lock-constant-face > > > font-lock-variable-name-face)" to highlight a constant variable), > > > which would not be testable with the current state of the package. > > > > > > > > > > > > > > > -- > > Regards, > > > > Vladimir Kazanov > > > > -- > Regards, > > Vladimir Kazanov From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 13 13:06:21 2024 Received: (at 69714) by debbugs.gnu.org; 13 Mar 2024 17:06:21 +0000 Received: from localhost ([127.0.0.1]:47245 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rkS3Y-0007I6-4l for submit@debbugs.gnu.org; Wed, 13 Mar 2024 13:06:21 -0400 Received: from mail-lf1-f50.google.com ([209.85.167.50]:44542) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rkS3V-0007Hq-0E for 69714@debbugs.gnu.org; Wed, 13 Mar 2024 13:06:18 -0400 Received: by mail-lf1-f50.google.com with SMTP id 2adb3069b0e04-512e4f4e463so104292e87.1 for <69714@debbugs.gnu.org>; Wed, 13 Mar 2024 10:05:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710349475; x=1710954275; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=qkF7NUdfqrogwOAddc14gCsdLa4qJDKgJ8HqMK3FFQU=; b=Hc/qk8N3klfzGwAexiGTMHk/h8bj5mRPjnUr0QKh8M0MDx6FJnCzsF6C/3mO93mqBQ b5jN60cyslJwwkqo2pSxcCfvj0D9cH+CiBYLcAfQubieo+OS4Sj9mt4xjUNrQI1pIIFL y0M86wIaJHc4Eg0EJ8ERkmK7QUHGNJLRy6TtqOCVCG2VBrRUQZBX3xGF+KyVfNs1XedH kcASfeW6O5e9GVjX2eL7HAEt8H2nbTfWx6o4EDu15Oi529hb4hcvpuTklzmr7DLmlSnr 5gjKVB+0F/0ggz2IdEpw9vVyKDCNNuYGMi5ad/DyVNleBsVs6rPHv6hcNrkvN6GiqW9Q bIiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710349475; x=1710954275; h=cc: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=qkF7NUdfqrogwOAddc14gCsdLa4qJDKgJ8HqMK3FFQU=; b=S9dZDEywWDTAKHwUyZomAhbzjUIJ+lb8JJKz9rfF7Lojf2VBrzWvUCgX1poYv8ooME ZjSZtxoSRxjYkRTSNtSJLPcyzKrg3ux31uX+sibgutRhKK3WVsw4QXTMG2le/0f/MU9r Wbuohb1XtXF2BWMeFVHpAmquwmdC6ShjMeerKOMFPmHpDwnb/WXfMgnKlAmYIh44/+KU e+SyZ0tLrH80SDYJrrRP4LMZaqfPbwsWFZrl2t3YZOabaYZ3wCvmejnq0nH8O3c4qo44 zMDPmJgr5xfAib4C2SwO25edJxMef6MNqcHhdMrSgJrcPYz+v89lB0Wotu8Hv+SMSksk Hc2A== X-Gm-Message-State: AOJu0Yz48vbMzxemIC+RreR4HdfbY9khwu2TbSD3o57Zk4zshydw9cs8 CGnkgXhUg3qOQKvcpVWLF6hT08sWARUl0SBzXIxj/mBoxYyPwIoFOiIu1ilgRIeC2+5/b3kXlZ+ O/K6IegeBHjzgcDwxATj25d+thw== X-Google-Smtp-Source: AGHT+IGEUXPRsXbKOvl/UzoH3QtWCMAeUTDaDbaehg8m/qqlpZG+DbPCoU50OMzThhFk3etfqi6bgVSMB8Roo7WmlCg= X-Received: by 2002:ac2:5989:0:b0:512:f6a0:1311 with SMTP id w9-20020ac25989000000b00512f6a01311mr5273282lfn.47.1710349475216; Wed, 13 Mar 2024 10:04:35 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Vladimir Kazanov Date: Wed, 13 Mar 2024 17:04:23 +0000 Message-ID: Subject: Re: bug#69714: 30.0.50; ert-font-lock doesn't handle list of faces To: Troy Brown Content-Type: multipart/mixed; boundary="000000000000e99df506138dc4c3" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 69714 Cc: 69714@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000e99df506138dc4c3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Thanks a lot! The suggestions really do make sense. Here's the final integrated patch, complete with updated tests and docs. If you're fine with it then I'll ask somebody to install it on master. PS I've got to write an additional announcement in the main mailing list inviting people to check the updated version out. On Wed, 13 Mar 2024 at 16:14, Troy Brown wrote: > > Hi Vlad, sorry for the delayed response. > > I haven't pushed my change which uses this package yet, as I was > struggling to get it working and didn't want to push failing tests. I > just discovered the package and was working on a regression test for a > bug fix involving font locking. This seemed like the perfect reason > to use your package. At the moment I only have this one > work-in-progress test, but I expect to use it more going forward. > > I did check out your patch and for my immediate needs, it worked > perfectly. Thanks! Additionally, I did experiment a little with the > multi-caret functionality, which is nice as I have a use for that. I > also experimented with the negation functionality (although I don't > have an immediate need for that), and did notice a couple things. The > first was that the assertion would be ignored if there was a space > between the negation symbol and the face. Also, if the actual and > expected faces didn't match and the negation flag was being used, it > acted like the negation was not indicated at all and failed the test. > I've included a diff below containing the changes I made which seemed > to address those concerns. > > diff --git a/lisp/emacs-lisp/ert-font-lock.el b/lisp/emacs-lisp/ert-font-= lock.el > index 06c90add9d3..1a5fe96fb09 100644 > --- a/lisp/emacs-lisp/ert-font-lock.el > +++ b/lisp/emacs-lisp/ert-font-lock.el > @@ -61,6 +61,7 @@ ert-font-lock--assertion-line-re > (group (zero-or-more (seq "^" (zero-or-more whitespace)))) > ;; optional negation of the face specification > (group (optional "!")) > + (zero-or-more whitespace) > ;; face symbol name or a list of symbols > (group (or (regexp ert-font-lock--face-symbol-re) > (regexp ert-font-lock--face-symbol-list-re)))) > @@ -354,7 +355,7 @@ ert-font-lock--check-faces > (when (symbolp expected-face) > (setq expected-face (list expected-face))) > > - (when (not (equal actual-face expected-face)) > + (when (and (not negation) (not (equal actual-face expected-face))) > (ert-fail > (list (format "Expected face %S, got %S on line %d column %d" > expected-face actual-face line-checked column-che= cked) > > > Thanks, > > Troy. > > On Tue, Mar 12, 2024 at 4:47=E2=80=AFPM Vladimir Kazanov wrote: > > > > Hi, > > > > I've attached a patch that handles face lists, fails on files without > > assertions and expands the parser a bit to support multiple carets per > > line. > > > > For faces it does the following: > > > > 1. Turn symbols into single element lists. > > 2. Parses face lists from the assertions. > > 3. Compare face lists using equas. > > > > Could you please check if this works for you? > > > > Thanks > > > > On Mon, 11 Mar 2024 at 08:36, Vladimir Kazanov wr= ote: > > > > > > Hi, > > > > > > Thanks for reporting this! I have a bunch of ert-font-lock > > > improvements in my local repo getting ready for submission, and can > > > look into your suggestions as well. > > > > > > Do you have your unit test code somewhere in a public repo? It'd be > > > great to think of further improvements to support your use case. > > > > > > Thanks, > > > Vlad > > > > > > On Sun, 10 Mar 2024 at 20:33, Troy Brown wrot= e: > > > > > > > > I'm trying to use this package to test out my tree-sitter mode, but= am > > > > running into an issue with lists of faces. It's possible that the > > > > face for a location in the buffer will contain a list of 1 or more > > > > faces. For example, when I use the ":override 'prepend" keyword in > > > > the call to treesit-font-lock-rules, even if only a single face is > > > > specified for the rule that matches that section of the buffer, thi= s > > > > will result in a list of one entry (i.e., "(face-name)"). > > > > > > > > When this happens, ert-font-lock fails to recognize that this match= es > > > > the face "face-name" (e.g., "^ face-name" will fail to match in thi= s > > > > case). I feel the tool should recognize a list containing a single > > > > face as matching the face. Even worse however, it appears > > > > ert-font-lock doesn't support a list of faces in the comment. I tr= ied > > > > to work around the original issue by using "^ (face-name)", but the > > > > tool silently ignores this, as it doesn't match the internal regula= r > > > > expression (which ended up allowing my test to pass without actuall= y > > > > checking anything). > > > > > > > > I can't figure out a way to use this tool in its current state due = to > > > > its lack of support for a list of faces. Also, I find that since i= t > > > > silently ignores incorrect comment syntax (e.g., "^face-name", "^ > > > > (face-name)"), it gives a false illusion that it's actually perform= ing > > > > those checks (and the checks are passing), when it's really just > > > > ignoring them. Maybe any comment line starting with a "^" or "<-" > > > > should be considered an assertion check and to fail if the rest of = the > > > > syntax is not as expected. Maybe it should also fail the test if n= o > > > > assertion checks are found in a source file or string. > > > > > > > > Even if the tool would allow a list of a single face to match the > > > > supplied face in the comment, I think it should also allow for > > > > multiple faces to be listed in the comment. I have other places wh= ere > > > > multiple faces are used (e.g., "(font-lock-constant-face > > > > font-lock-variable-name-face)" to highlight a constant variable), > > > > which would not be testable with the current state of the package. > > > > > > > > > > > > > > > > > > > > > -- > > > Regards, > > > > > > Vladimir Kazanov > > > > > > > > -- > > Regards, > > > > Vladimir Kazanov --=20 Regards, Vladimir Kazanov --000000000000e99df506138dc4c3 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Improve-ert-font-lock-assertion-parser-Bug-69714.patch" Content-Disposition: attachment; filename="0001-Improve-ert-font-lock-assertion-parser-Bug-69714.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltq1t1l50 RnJvbSAxNzQ3NGY0YWExODcwMzRmZjY5N2U2NDFmNjk3OWJjNmY0OWEzMWQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWbGFkaW1pciBLYXphbm92IDx2ZWthemFub3ZAZ21haWwuY29t PgpEYXRlOiBUdWUsIDEyIE1hciAyMDI0IDExOjE0OjU0ICswMDAwClN1YmplY3Q6IFtQQVRDSF0g SW1wcm92ZSBlcnQtZm9udC1sb2NrIGFzc2VydGlvbiBwYXJzZXIgKEJ1ZyM2OTcxNCkKCkZhaWwg b24gZmlsZXMgd2l0aCBubyBhc3NlcnRpb25zLCBwYXJzZXIgbm93IGFjY2VwdHMgbXVsdGlwbGUK Y2FyZXRzIHBlciBsaW5lIGFuZCBmYWNlIGxpc3RzOgoqIGxpc3AvZW1hY3MtbGlzcC9lcnQtZm9u dC1sb2NrLmVsOiBBc3NlcnRpb24gcGFyc2VyIGZpeC4KKiB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9l cnQtZm9udC1sb2NrLXJlc291cmNlcy9uby1hc3NlcnRzLmpzOgoqIHRlc3QvbGlzcC9lbWFjcy1s aXNwL2VydC1mb250LWxvY2stdGVzdHMuZWw6IFVwZGF0ZSB1bml0IHRlc3RzLgoqIGRvYy9taXNj L2VydC50ZXhpOiBVcGRhdGUgZG9jdW1lbnRhdGlvbi4KLS0tCiBkb2MvbWlzYy9lcnQudGV4aSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjkgKysrLQogbGlzcC9lbWFjcy1saXNwL2Vy dC1mb250LWxvY2suZWwgICAgICAgICAgICAgIHwgIDczICsrKysrKysrLS0KIC4uLi9lcnQtZm9u dC1sb2NrLXJlc291cmNlcy9uby1hc3NlcnRzLmpzICAgICB8ICAgMiArCiB0ZXN0L2xpc3AvZW1h Y3MtbGlzcC9lcnQtZm9udC1sb2NrLXRlc3RzLmVsICAgfCAxMzcgKysrKysrKysrKysrKystLS0t CiA0IGZpbGVzIGNoYW5nZWQsIDE5OCBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXJlc291 cmNlcy9uby1hc3NlcnRzLmpzCgpkaWZmIC0tZ2l0IGEvZG9jL21pc2MvZXJ0LnRleGkgYi9kb2Mv bWlzYy9lcnQudGV4aQppbmRleCBiZDJhZDQ5NTE0Mi4uZjU1NTQxNGJmOGYgMTAwNjQ0Ci0tLSBh L2RvYy9taXNjL2VydC50ZXhpCisrKyBiL2RvYy9taXNjL2VydC50ZXhpCkBAIC05NTEsMTEgKzk1 MSwxMyBAQCBTeW50YXggSGlnaGxpZ2h0aW5nIFRlc3RzCiBAY29kZXtlcnQtZm9udC1sb2NrfSBw YWNrYWdlIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGludHJvZHVjZSB1bml0IHRlc3RzCiBjaGVja2lu ZyBmYWNlIGFzc2lnbm1lbnQuICBUZXN0IGFzc2VydGlvbnMgYXJlIGluY2x1ZGVkIGluIGNvZGUt bGV2ZWwKIGNvbW1lbnRzIGRpcmVjdGx5IGFuZCBjYW4gYmUgcmVhZCBlaXRoZXIgZnJvbSBpbmxp bmUgc3RyaW5ncyBvciBmaWxlcy4KK1RoZSBwYXJzZXIgZXhwZWN0cyBpbnB1dCBzdHJpbmcgdG8g Y29udGFpbiBhdCBsZWFzdCBvbmUgYXNzZXJ0aW9uLgoKIFRlc3QgYXNzZXJ0aW9uIHBhcnNlciBl eHRyYWN0cyB0ZXN0cyBmcm9tIGNvbW1lbnQtb25seSBsaW5lcy4gIEV2ZXJ5Ci1jb21tZW50IGFz c2VydGlvbiBsaW5lIHN0YXJ0cyBlaXRoZXIgd2l0aCBhIGNhcmV0IChAc2FtcHtefSkgb3IgYW4K LWFycm93IChAc2FtcHs8LX0pLiAgQSBjYXJldC9hcnJvdyBzaG91bGQgYmUgZm9sbG93ZWQgaW1t ZWRpYXRlbHkgYnkgdGhlCi1uYW1lIG9mIGEgZmFjZSB0byBiZSBjaGVja2VkLgorY29tbWVudCBh c3NlcnRpb24gbGluZSBzdGFydHMgZWl0aGVyIHdpdGggYSBjYXJldCAoQHNhbXB7Xn0pIG9yIGFu IGFycm93CisoQHNhbXB7PC19KS4gIEEgc2luZ2xlIGNhcmV0L2Fycm93IG9yIGNhcmV0cyBzaG91 bGQgYmUgZm9sbG93ZWQKK2ltbWVkaWF0ZWx5IGJ5IHRoZSBuYW1lIG9mIGEgZmFjZSBvciBhIGxp c3Qgb2YgZmFjZXMgdG8gYmUgY2hlY2tlZAorYWdhaW5zdCB0aGUgQGNvZGV7OmZhY2V9IHByb3Bl cnR5IGF0IHBvaW50LgoKIFRoZSB0ZXN0IHRoZW4gY2hlY2tzIGlmIHRoZSBmaXJzdCBub24tYXNz ZXJ0aW9uIGNvbHVtbiBhYm92ZSB0aGUgY2FyZXQKIGNvbnRhaW5zIGEgZmFjZSBleHBlY3RlZCBi eSB0aGUgYXNzZXJ0aW9uOgpAQCAtOTY3LDYgKzk2OSwyNyBAQCBTeW50YXggSGlnaGxpZ2h0aW5n IFRlc3RzCiAvLyAgICAgICAgICAgICAgIF4gZm9udC1sb2NrLXB1bmN0dWF0aW9uLWZhY2UKIC8v IHRoaXMgaXMgbm90IGFuIGFzc2VydGlvbiwgaXQncyBqdXN0IGEgY29tbWVudAogLy8gICBeIGZv bnQtbG9jay1jb21tZW50LWZhY2UKKworLy8gbXVsdGlwbGUgY2FyZXRzIHBlciBsaW5lCisvLyBe Xl5eICAgICBeICAgIF4gZm9udC1sb2NrLWNvbW1lbnQtZmFjZQorQGVuZCBleGFtcGxlCisKK0Jv dGggc3ltYm9sLW9ubHkgQGNvZGV7OmZhY2V9IHByb3BlcnR5IHZhbHVlcyBhbmQgYXNzZXJ0aW9u IGZhY2UgdmFsdWVzCithcmUgbm9ybWFsaXplZCB0byBzaW5nbGUgZWxlbWVudCBsaXN0cyBzbyBh c3NlcnRpb25zIGJlbG93IGFyZQorZXF1aXZhbGVudDoKKworQGV4YW1wbGUKKy8vIHNpbmdsZQor Ly8gXiBmb250LWxvY2stY29tbWVudC1mYWNlCisvLyBzaW5nbGUKKy8vIF4gKGZvbnQtbG9jay1j b21tZW50LWZhY2UpCitAZW5kIGV4YW1wbGUKKworSXQgaXMgcG9zc2libGUgdG8gc3BlY2lmeSBm YWNlIGxpc3RzOgorCitAZXhhbXBsZQorLy8gVE9ETworLy8gXl5eXiAoZm9udC1sb2NrLWNvbW1l bnQtZmFjZSBobC10b2RvKQogQGVuZCBleGFtcGxlCgogVGhlIGFycm93IG1lYW5zIHRoYXQgdGhl IGZpcnN0IG5vbi1lbXB0eSBjb2x1bW4gb2YgdGhlIGFzc2VydGlvbiBsaW5lCmRpZmYgLS1naXQg YS9saXNwL2VtYWNzLWxpc3AvZXJ0LWZvbnQtbG9jay5lbCBiL2xpc3AvZW1hY3MtbGlzcC9lcnQt Zm9udC1sb2NrLmVsCmluZGV4IDI5MTE0NzEyZjkyLi5lMjMyNTYzNzkyOSAxMDA2NDQKLS0tIGEv bGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2suZWwKKysrIGIvbGlzcC9lbWFjcy1saXNwL2Vy dC1mb250LWxvY2suZWwKQEAgLTM5LDE2ICszOSwzMyBAQAogKHJlcXVpcmUgJ25ld2NvbW1lbnQp CiAocmVxdWlyZSAncGNhc2UpCgotKGRlZmNvbnN0IGVydC1mb250LWxvY2stLWFzc2VydGlvbi1y ZQorKGRlZmNvbnN0IGVydC1mb250LWxvY2stLWZhY2Utc3ltYm9sLXJlCisgIChyeCAob25lLW9y LW1vcmUgKG9yIGFscGhhbnVtZXJpYyAiLSIgIl8iICIuIikpKQorICAiQSBmYWNlIHN5bWJvbCBt YXRjaGluZyByZWdleC4iKQorCisoZGVmY29uc3QgZXJ0LWZvbnQtbG9jay0tZmFjZS1zeW1ib2wt bGlzdC1yZQorICAocnggIigiCisgICAgICAoKiB3aGl0ZXNwYWNlKQorICAgICAgKG9uZS1vci1t b3JlCisgICAgICAgKHNlcSAocmVnZXhwIGVydC1mb250LWxvY2stLWZhY2Utc3ltYm9sLXJlKQor ICAgICAgICAgICAgKCogd2hpdGVzcGFjZSkpKQorICAgICAgIikiKQorICAiQSBmYWNlIHN5bWJv bCBsaXN0IG1hdGNoaW5nIHJlZ2V4LiIpCisKKyhkZWZjb25zdCBlcnQtZm9udC1sb2NrLS1hc3Nl cnRpb24tbGluZS1yZQogICAocngKLSAgIDs7IGNvbHVtbiBzcGVjaWZpZXJzCisgICA7OyBsZWFk aW5nIGNvbHVtbiBhc3NlcnRpb24gKGFycm93L2NhcmV0KQogICAgKGdyb3VwIChvciAiXiIgIjwt IikpCi0gICAob25lLW9yLW1vcmUgIiAiKQorICAgKHplcm8tb3ItbW9yZSB3aGl0ZXNwYWNlKQor ICAgOzsgcG9zc2libGUgdG8gaGF2ZSBtYW55IGNhcmV0cyBvbiBhbiBhc3NlcnRpb24gbGluZQor ICAgKGdyb3VwICh6ZXJvLW9yLW1vcmUgKHNlcSAiXiIgKHplcm8tb3ItbW9yZSB3aGl0ZXNwYWNl KSkpKQogICAgOzsgb3B0aW9uYWwgbmVnYXRpb24gb2YgdGhlIGZhY2Ugc3BlY2lmaWNhdGlvbgog ICAgKGdyb3VwIChvcHRpb25hbCAiISIpKQotICAgOzsgZmFjZSBzeW1ib2wgbmFtZQotICAgKGdy b3VwIChvbmUtb3ItbW9yZSAob3IgYWxwaGFudW1lcmljICItIiAiXyIgIi4iKSkpKQotICAiQW4g ZXJ0LWZvbnQtbG9jayBhc3NlcnRpb24gcmVnZXguIikKKyAgICh6ZXJvLW9yLW1vcmUgd2hpdGVz cGFjZSkKKyAgIDs7IGZhY2Ugc3ltYm9sIG5hbWUgb3IgYSBsaXN0IG9mIHN5bWJvbHMKKyAgIChn cm91cCAob3IgKHJlZ2V4cCBlcnQtZm9udC1sb2NrLS1mYWNlLXN5bWJvbC1yZSkKKyAgICAgICAg ICAgICAgKHJlZ2V4cCBlcnQtZm9udC1sb2NrLS1mYWNlLXN5bWJvbC1saXN0LXJlKSkpKQorICAi QW4gZXJ0LWZvbnQtbG9jayBhc3NlcnRpb24gbGluZSByZWdleC4iKQoKIChkZWZ1biBlcnQtZm9u dC1sb2NrLS12YWxpZGF0ZS1tYWpvci1tb2RlIChtb2RlKQogICAiVmFsaWRhdGUgaWYgTU9ERSBp cyBhIHZhbGlkIG1ham9yIG1vZGUuIgpAQCAtMjEyLDcgKzIyOSw3IEBAIGVydC1mb250LWxvY2st LWxpbmUtYXNzZXJ0aW9uLXAKICAgKHNhdmUtZXhjdXJzaW9uCiAgICAgKGJlZ2lubmluZy1vZi1s aW5lKQogICAgIChza2lwLXN5bnRheC1mb3J3YXJkICIgIikKLSAgICAocmUtc2VhcmNoLWZvcndh cmQgZXJ0LWZvbnQtbG9jay0tYXNzZXJ0aW9uLXJlCisgICAgKHJlLXNlYXJjaC1mb3J3YXJkIGVy dC1mb250LWxvY2stLWFzc2VydGlvbi1saW5lLXJlCiAgICAgICAgICAgICAgICAgICAgICAgIChs aW5lLWVuZC1wb3NpdGlvbikgdCAxKSkpCgogKGRlZnVuIGVydC1mb250LWxvY2stLWdvdG8tZmly c3QtY2hhciAoKQpAQCAtMjUyLDggKzI2OSw4IEBAIGVydC1mb250LWxvY2stLXBhcnNlLWNvbW1l bnRzCiAgICAgICAgICAgKHRocm93ICduZXh0bGluZSB0KSkKCgotICAgICAgICA7OyBDb2xsZWN0 IHRoZSBhc3NlcnRpb24KLSAgICAgICAgKHdoZW4gKHJlLXNlYXJjaC1mb3J3YXJkIGVydC1mb250 LWxvY2stLWFzc2VydGlvbi1yZQorICAgICAgICA7OyBDb2xsZWN0IHRoZSBmaXJzdCBsaW5lIGFz c2VydGlvbiAoY2FyZXQgb3IgYXJyb3cpCisgICAgICAgICh3aGVuIChyZS1zZWFyY2gtZm9yd2Fy ZCBlcnQtZm9udC1sb2NrLS1hc3NlcnRpb24tbGluZS1yZQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGxpbmUtZW5kLXBvc2l0aW9uKSB0IDEpCgogICAgICAgICAgICh1bmxlc3Mg KD4gbGluZXRvY2hlY2sgLTEpCkBAIC0yNjYsMjEgKzI4MywzOCBAQCBlcnQtZm9udC1sb2NrLS1w YXJzZS1jb21tZW50cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgtICht YXRjaC1iZWdpbm5pbmcgMSkgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGVydC1mb250LWxvY2stLWdldC1maXJzdC1jaGFyLWNv bHVtbikpKQogICAgICAgICAgICAgICAgICA7OyBuZWdhdGUgdGhlIGZhY2U/Ci0gICAgICAgICAg ICAgICAgIChuZWdhdGlvbiAoc3RyaW5nLWVxdWFsIChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGll cyAyKSAiISIpKQorICAgICAgICAgICAgICAgICAobmVnYXRpb24gKHN0cmluZy1lcXVhbCAobWF0 Y2gtc3RyaW5nLW5vLXByb3BlcnRpZXMgMykgIiEiKSkKICAgICAgICAgICAgICAgICAgOzsgdGhl IGZhY2UgdGhhdCBpcyBzdXBwb3NlZCB0byBiZSBpbiB0aGUgcG9zaXRpb24gc3BlY2lmaWVkCi0g ICAgICAgICAgICAgICAgIChmYWNlIChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyAzKSkpCisg ICAgICAgICAgICAgICAgIChmYWNlIChyZWFkIChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyA0 KSkpKQoKKyAgICAgICAgICAgIDs7IENvbGxlY3QgdGhlIGZpcnN0IGFzc2VydGlvbiBvbiB0aGUg bGluZQogICAgICAgICAgICAgKHB1c2ggKGxpc3QgOmxpbmUtY2hlY2tlZCBsaW5ldG9jaGVjawog ICAgICAgICAgICAgICAgICAgICAgICAgOmxpbmUtYXNzZXJ0IGN1cmxpbmUKICAgICAgICAgICAg ICAgICAgICAgICAgIDpjb2x1bW4tY2hlY2tlZCBjb2x1bW4tY2hlY2tlZAogICAgICAgICAgICAg ICAgICAgICAgICAgOmZhY2UgZmFjZQogICAgICAgICAgICAgICAgICAgICAgICAgOm5lZ2F0aW9u IG5lZ2F0aW9uKQotICAgICAgICAgICAgICAgICAgdGVzdHMpKSkpCisgICAgICAgICAgICAgICAg ICB0ZXN0cykKKworICAgICAgICAgICAgOzsgQ29sbGVjdCBhbGwgdGhlIG90aGVyIGxpbmUgY2Fy ZXRzIChpZiBwcmVzZW50KQorICAgICAgICAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5n IDIpKQorICAgICAgICAgICAgKHdoaWxlIChlcXVhbCAoZm9sbG93aW5nLWNoYXIpID9eKQorICAg ICAgICAgICAgICAoc2V0cSBjb2x1bW4tY2hlY2tlZCAoLSAocG9pbnQpIChsaW5lLWJlZ2lubmlu Zy1wb3NpdGlvbikpKQorICAgICAgICAgICAgICAocHVzaCAobGlzdCA6bGluZS1jaGVja2VkIGxp bmV0b2NoZWNrCisgICAgICAgICAgICAgICAgICAgICAgICAgIDpsaW5lLWFzc2VydCBjdXJsaW5l CisgICAgICAgICAgICAgICAgICAgICAgICAgIDpjb2x1bW4tY2hlY2tlZCBjb2x1bW4tY2hlY2tl ZAorICAgICAgICAgICAgICAgICAgICAgICAgICA6ZmFjZSBmYWNlCisgICAgICAgICAgICAgICAg ICAgICAgICAgIDpuZWdhdGlvbiBuZWdhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgdGVzdHMp CisgICAgICAgICAgICAgIChmb3J3YXJkLWNoYXIpCisgICAgICAgICAgICAgIChza2lwLXN5bnRh eC1mb3J3YXJkICIgIikpKSkpCgogICAgICAgOzsgbmV4dCBsaW5lCiAgICAgICAoc2V0cSBjdXJs aW5lICgxKyBjdXJsaW5lKSkKICAgICAgIChmb3J3YXJkLWxpbmUgMSkpCgorICAgICh1bmxlc3Mg dGVzdHMKKyAgICAgICh1c2VyLWVycm9yICJObyB0ZXN0IGFzc2VydGlvbnMgZm91bmQiKSkKKwog ICAgIChyZXZlcnNlIHRlc3RzKSkpCgogKGRlZnVuIGVydC1mb250LWxvY2stLXBvaW50LWF0LWxp bmUtYW5kLWNvbHVtbiAobGluZSBjb2x1bW4pCkBAIC0zMDcsMjEgKzM0MSwzMCBAQCBlcnQtZm9u dC1sb2NrLS1jaGVjay1mYWNlcwogICAgIChsZXQqICgobGluZS1jaGVja2VkIChwbGlzdC1nZXQg dGVzdCA6bGluZS1jaGVja2VkKSkKICAgICAgICAgICAgKGxpbmUtYXNzZXJ0IChwbGlzdC1nZXQg dGVzdCA6bGluZS1hc3NlcnQpKQogICAgICAgICAgICAoY29sdW1uLWNoZWNrZWQgKHBsaXN0LWdl dCB0ZXN0IDpjb2x1bW4tY2hlY2tlZCkpCi0gICAgICAgICAgIChleHBlY3RlZC1mYWNlIChpbnRl cm4gKHBsaXN0LWdldCB0ZXN0IDpmYWNlKSkpCisgICAgICAgICAgIChleHBlY3RlZC1mYWNlIChw bGlzdC1nZXQgdGVzdCA6ZmFjZSkpCiAgICAgICAgICAgIChuZWdhdGlvbiAocGxpc3QtZ2V0IHRl c3QgOm5lZ2F0aW9uKSkKCiAgICAgICAgICAgIChhY3R1YWwtZmFjZSAoZ2V0LXRleHQtcHJvcGVy dHkgKGVydC1mb250LWxvY2stLXBvaW50LWF0LWxpbmUtYW5kLWNvbHVtbiBsaW5lLWNoZWNrZWQg Y29sdW1uLWNoZWNrZWQpICdmYWNlKSkKICAgICAgICAgICAgKGxpbmUtc3RyIChlcnQtZm9udC1s b2NrLS1nZXQtbGluZSBsaW5lLWNoZWNrZWQpKQogICAgICAgICAgICAobGluZS1hc3NlcnQtc3Ry IChlcnQtZm9udC1sb2NrLS1nZXQtbGluZSBsaW5lLWFzc2VydCkpKQoKLSAgICAgICh3aGVuIChu b3QgKGVxIGFjdHVhbC1mYWNlIGV4cGVjdGVkLWZhY2UpKQorICAgICAgOzsgbm9ybWFsaXplIGJv dGggZXhwZWN0ZWQgYW5kIHJlc3VsdGluZyBmYWNlIC0gdGhlc2UgY2FuIGJlCisgICAgICA7OyBl aXRoZXIgc3ltYm9scyBvciBsaXN0cyBvZiBzeW1ib2xzCisgICAgICAod2hlbiAoc3ltYm9scCBh Y3R1YWwtZmFjZSkKKyAgICAgICAgKHNldHEgYWN0dWFsLWZhY2UgKGxpc3QgYWN0dWFsLWZhY2Up KSkKKyAgICAgICh3aGVuIChzeW1ib2xwIGV4cGVjdGVkLWZhY2UpCisgICAgICAgIChzZXRxIGV4 cGVjdGVkLWZhY2UgKGxpc3QgZXhwZWN0ZWQtZmFjZSkpKQorCisgICAgICA7OyBmYWlsIHdoZW4g bGlzdHMgYXJlIG5vdCAnZXF1YWwgYW5kIHRoZSBhc3NlcnRpb24gaXMgKm5vdCBuZWdhdGVkKgor ICAgICAgKHdoZW4gKGFuZCAobm90IG5lZ2F0aW9uKSAobm90IChlcXVhbCBhY3R1YWwtZmFjZSBl eHBlY3RlZC1mYWNlKSkpCiAgICAgICAgIChlcnQtZmFpbAogICAgICAgICAgKGxpc3QgKGZvcm1h dCAiRXhwZWN0ZWQgZmFjZSAlUywgZ290ICVTIG9uIGxpbmUgJWQgY29sdW1uICVkIgogICAgICAg ICAgICAgICAgICAgICAgICBleHBlY3RlZC1mYWNlIGFjdHVhbC1mYWNlIGxpbmUtY2hlY2tlZCBj b2x1bW4tY2hlY2tlZCkKICAgICAgICAgICAgICAgIDpsaW5lIGxpbmUtc3RyCiAgICAgICAgICAg ICAgICA6YXNzZXJ0IGxpbmUtYXNzZXJ0LXN0cikpKQoKLSAgICAgICh3aGVuIChhbmQgbmVnYXRp b24gKGVxIGFjdHVhbC1mYWNlIGV4cGVjdGVkLWZhY2UpKQorICAgICAgOzsgZmFpbCB3aGVuIGxp c3RzIGFyZSAnZXF1YWwgYW5kIHRoZSBhc3NlcnRpb24gaXMgKm5lZ2F0ZWQqCisgICAgICAod2hl biAoYW5kIG5lZ2F0aW9uIChlcXVhbCBhY3R1YWwtZmFjZSBleHBlY3RlZC1mYWNlKSkKICAgICAg ICAgKGVydC1mYWlsCiAgICAgICAgICAobGlzdCAoZm9ybWF0ICJEaWQgbm90IGV4cGVjdCBmYWNl ICVTIGZhY2Ugb24gbGluZSAlZCwgY29sdW1uICVkIgogICAgICAgICAgICAgICAgICAgICAgICBh Y3R1YWwtZmFjZSBsaW5lLWNoZWNrZWQgY29sdW1uLWNoZWNrZWQpCmRpZmYgLS1naXQgYS90ZXN0 L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXJlc291cmNlcy9uby1hc3NlcnRzLmpzIGIv dGVzdC9saXNwL2VtYWNzLWxpc3AvZXJ0LWZvbnQtbG9jay1yZXNvdXJjZXMvbm8tYXNzZXJ0cy5q cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWVhZTlhZjIxMmYKLS0t IC9kZXYvbnVsbAorKysgYi90ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXJlc291 cmNlcy9uby1hc3NlcnRzLmpzCkBAIC0wLDAgKzEsMiBAQAordmFyIGFiYyA9IGZ1bmN0aW9uKGQp IHsKK307CmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXRl c3RzLmVsIGIvdGVzdC9saXNwL2VtYWNzLWxpc3AvZXJ0LWZvbnQtbG9jay10ZXN0cy5lbAppbmRl eCBlMGJhMWU5NDliMi4uMDQ2OWE1Yzc0OTAgMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9lbWFjcy1s aXNwL2VydC1mb250LWxvY2stdGVzdHMuZWwKKysrIGIvdGVzdC9saXNwL2VtYWNzLWxpc3AvZXJ0 LWZvbnQtbG9jay10ZXN0cy5lbApAQCAtMTM4LDEzICsxMzgsMjQgQEAgdGVzdC1saW5lLWNvbW1l bnQtcC0tYwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9yd2FyZC1saW5lKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoc2hvdWxkIChlcnQtZm9udC1sb2NrLS1saW5lLWNv bW1lbnQtcCkpKSkKCisoZXJ0LWRlZnRlc3QgdGVzdC1wYXJzZS1jb21tZW50cy0tbm8tYXNzZXJ0 aW9uLWVycm9yICgpCisgIChsZXQqICgoc3RyICIKK25vdF9hbl9hc3NlcnRpb24KK3JhbmRvbV9z eW1ib2wKKyIpKQorICAgICh3aXRoLXRlbXAtYnVmZmVyCisgICAgICAoaW5zZXJ0IHN0cikKKyAg ICAgIChqYXZhc2NyaXB0LW1vZGUpCisKKyAgICAgIChzaG91bGQtZXJyb3IgKGVydC1mb250LWxv Y2stLXBhcnNlLWNvbW1lbnRzKSA6dHlwZSAndXNlci1lcnJvcikpKSkKKwogKGVydC1kZWZ0ZXN0 IHRlc3QtcGFyc2UtY29tbWVudHMtLXNpbmdsZS1saW5lLWVycm9yICgpCiAgIChsZXQqICgoc3Ry ICIvLyBeIGZhY2UuZmFjZTEiKSkKICAgICAod2l0aC10ZW1wLWJ1ZmZlcgogICAgICAgKGluc2Vy dCBzdHIpCiAgICAgICAoamF2YXNjcmlwdC1tb2RlKQoKLSAgICAgIChzaG91bGQtZXJyb3IgKGVy dC1mb250LWxvY2stLXBhcnNlLWNvbW1lbnRzKSkpKSkKKyAgICAgIChzaG91bGQtZXJyb3IgKGVy dC1mb250LWxvY2stLXBhcnNlLWNvbW1lbnRzKSA6dHlwZSAndXNlci1lcnJvcikpKSkKCiAoZXJ0 LWRlZnRlc3QgdGVzdC1wYXJzZS1jb21tZW50cy0tc2luZ2xlLWxpbmUtc2luZ2xlLWNhcmV0ICgp CiAgIChsZXQqICgoc3RyICIKQEAgLTE1OSw3ICsxNzAsNDYgQEAgdGVzdC1wYXJzZS1jb21tZW50 cy0tc2luZ2xlLWxpbmUtc2luZ2xlLWNhcmV0CiAgICAgICAoc2V0cSBhc3NlcnRzIChlcnQtZm9u dC1sb2NrLS1wYXJzZS1jb21tZW50cykpCiAgICAgICAoc2hvdWxkIChlcWwgKGxlbmd0aCBhc3Nl cnRzKSAxKSkKICAgICAgIChzaG91bGQgKGVxdWFsIChjYXIgYXNzZXJ0cykKLSAgICAgICAgICAg ICAgICAgICAgICcoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCAzIDpjb2x1bW4tY2hlY2tl ZCAzIDpmYWNlICJmYWNlLmZhY2UxIiA6bmVnYXRpb24gbmlsKSkpKSkpCisgICAgICAgICAgICAg ICAgICAgICAnKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQg MyA6ZmFjZSBmYWNlLmZhY2UxIDpuZWdhdGlvbiBuaWwpKSkpKSkKKworKGVydC1kZWZ0ZXN0IHRl c3QtcGFyc2UtY29tbWVudHMtLXNpbmdsZS1saW5lLW1hbnktY2FyZXRzICgpCisgIChsZXQqICgo c3RyICIKK211bHRpcGxlY2FyZXRzCisvL15eXiBeXiBeIGZhY2UuZmFjZTEKKyIpCisgICAgICAg ICBhc3NlcnRzKQorICAgICh3aXRoLXRlbXAtYnVmZmVyCisgICAgICAoaW5zZXJ0IHN0cikKKyAg ICAgIChqYXZhc2NyaXB0LW1vZGUpCisKKyAgICAgIChzZXRxIGFzc2VydHMgKGVydC1mb250LWxv Y2stLXBhcnNlLWNvbW1lbnRzKSkKKyAgICAgIChzaG91bGQgKGVxbCAobGVuZ3RoIGFzc2VydHMp IDYpKQorICAgICAgKHNob3VsZCAoZXF1YWwgYXNzZXJ0cworICAgICAgICAgICAgICAgICAgICAg JygoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCAzIDpjb2x1bW4tY2hlY2tlZCAyIDpmYWNl IGZhY2UuZmFjZTEgOm5lZ2F0aW9uIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5l LWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgMyA6ZmFjZSBmYWNlLmZh Y2UxIDpuZWdhdGlvbiBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2Vk IDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDQgOmZhY2UgZmFjZS5mYWNlMSA6bmVn YXRpb24gbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5l LWFzc2VydCAzIDpjb2x1bW4tY2hlY2tlZCA2IDpmYWNlIGZhY2UuZmFjZTEgOm5lZ2F0aW9uIG5p bCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQg MyA6Y29sdW1uLWNoZWNrZWQgNyA6ZmFjZSBmYWNlLmZhY2UxIDpuZWdhdGlvbiBuaWwpCisgICAg ICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVt bi1jaGVja2VkIDkgOmZhY2UgZmFjZS5mYWNlMSA6bmVnYXRpb24gbmlsKSkpKSkpKQorCisoZXJ0 LWRlZnRlc3QgdGVzdC1wYXJzZS1jb21tZW50cy0tZmFjZS1saXN0ICgpCisgIChsZXQqICgoc3Ry ICIKK2ZhY2VsaXN0CisvLyBeIChmYWNlMSBmYWNlMikKKy8vIF4gIShmYWNlMyBmYWNlNCkKKy8v IF4gKGZhY2U1KQorIikKKyAgICAgICAgIGFzc2VydHMpCisgICAgKHdpdGgtdGVtcC1idWZmZXIK KyAgICAgIChpbnNlcnQgc3RyKQorICAgICAgKGphdmFzY3JpcHQtbW9kZSkKKworICAgICAgKHNl dHEgYXNzZXJ0cyAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKQorICAgICAgKHNob3Vs ZCAoZXFsIChsZW5ndGggYXNzZXJ0cykgMykpCisgICAgICAoc2hvdWxkIChlcXVhbCBhc3NlcnRz CisgICAgICAgICAgICAgICAgICAgICAnKCg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMg OmNvbHVtbi1jaGVja2VkIDMgOmZhY2UgKGZhY2UxIGZhY2UyKSA6bmVnYXRpb24gbmlsKQorICAg ICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCA0IDpjb2x1 bW4tY2hlY2tlZCAzIDpmYWNlIChmYWNlMyBmYWNlNCkgOm5lZ2F0aW9uIHQpCisgICAgICAgICAg ICAgICAgICAgICAgICg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDUgOmNvbHVtbi1jaGVj a2VkIDMgOmZhY2UgKGZhY2U1KSA6bmVnYXRpb24gbmlsKSkpKSkpKQoKIChlcnQtZGVmdGVzdCB0 ZXN0LXBhcnNlLWNvbW1lbnRzLS1jYXJldC1uZWdhdGlvbiAoKQogICAobGV0KiAoKHN0ciAiCkBA IC0xNzUsMTEgKzIyNSwxMSBAQCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1jYXJldC1uZWdhdGlvbgog ICAgICAgKHNldHEgYXNzZXJ0cyAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKQogICAg ICAgKHNob3VsZCAoZXFsIChsZW5ndGggYXNzZXJ0cykgMikpCiAgICAgICAoc2hvdWxkIChlcXVh bCBhc3NlcnRzCi0gICAgICAgICAgICAgICAgICAgICAnKCg6bGluZS1jaGVja2VkIDIgOmxpbmUt YXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDMgOmZhY2UgImZhY2UiIDpuZWdhdGlvbiB0KQotICAg ICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCA0IDpjb2x1 bW4tY2hlY2tlZCAzIDpmYWNlICJmYWNlIiA6bmVnYXRpb24gbmlsKSkpKSkpKQorICAgICAgICAg ICAgICAgICAgICAgJygoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCAzIDpjb2x1bW4tY2hl Y2tlZCAzIDpmYWNlIGZhY2UgOm5lZ2F0aW9uIHQpCisgICAgICAgICAgICAgICAgICAgICAgICg6 bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDQgOmNvbHVtbi1jaGVja2VkIDMgOmZhY2UgZmFj ZSA6bmVnYXRpb24gbmlsKSkpKSkpKQoKCi0oZXJ0LWRlZnRlc3QgdGVzdC1wYXJzZS1jb21tZW50 cy0tc2luZ2xlLWxpbmUtbXVsdGlwbGUtY2FyZXRzICgpCisoZXJ0LWRlZnRlc3QgdGVzdC1wYXJz ZS1jb21tZW50cy0tc2luZ2xlLWxpbmUtbXVsdGlwbGUtYXNzZXJ0LWxpbmVzICgpCiAgIChsZXQq ICgoc3RyICIKIGZpcnN0CiAvLyBeIGZhY2UxCkBAIC0xOTYsMTIgKzI0NiwxMiBAQCB0ZXN0LXBh cnNlLWNvbW1lbnRzLS1zaW5nbGUtbGluZS1tdWx0aXBsZS1jYXJldHMKICAgICAgIChzZXRxIGFz c2VydHMgKGVydC1mb250LWxvY2stLXBhcnNlLWNvbW1lbnRzKSkKICAgICAgIChzaG91bGQgKGVx bCAobGVuZ3RoIGFzc2VydHMpIDQpKQogICAgICAgKHNob3VsZCAoZXF1YWwgYXNzZXJ0cwotICAg ICAgICAgICAgICAgICAgICAgJygoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCAzIDpjb2x1 bW4tY2hlY2tlZCAzIDpmYWNlICJmYWNlMSIgOm5lZ2F0aW9uIG5pbCkKLSAgICAgICAgICAgICAg ICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgNCA6Y29sdW1uLWNoZWNrZWQg NyA6ZmFjZSAiZmFjZS5mYWNlMiIgOm5lZ2F0aW9uIG5pbCkKLSAgICAgICAgICAgICAgICAgICAg ICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgNSA6Y29sdW1uLWNoZWNrZWQgNyA6ZmFj ZSAiZmFjZS1mYWNlLmZhY2UzIiA6bmVnYXRpb24gbmlsKQotICAgICAgICAgICAgICAgICAgICAg ICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCA2IDpjb2x1bW4tY2hlY2tlZCA3IDpmYWNl ICJmYWNlX2ZhY2UuZmFjZTQiIDpuZWdhdGlvbiBuaWwpKSkpKSkpCisgICAgICAgICAgICAgICAg ICAgICAnKCg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDMg OmZhY2UgZmFjZTEgOm5lZ2F0aW9uIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5l LWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgNCA6Y29sdW1uLWNoZWNrZWQgNyA6ZmFjZSBmYWNlLmZh Y2UyIDpuZWdhdGlvbiBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2Vk IDIgOmxpbmUtYXNzZXJ0IDUgOmNvbHVtbi1jaGVja2VkIDcgOmZhY2UgZmFjZS1mYWNlLmZhY2Uz IDpuZWdhdGlvbiBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2VkIDIg OmxpbmUtYXNzZXJ0IDYgOmNvbHVtbi1jaGVja2VkIDcgOmZhY2UgZmFjZV9mYWNlLmZhY2U0IDpu ZWdhdGlvbiBuaWwpKSkpKSkpCgotKGVydC1kZWZ0ZXN0IHRlc3QtcGFyc2UtY29tbWVudHMtLW11 bHRpcGxlLWxpbmUtbXVsdGlwbGUtY2FyZXRzICgpCisoZXJ0LWRlZnRlc3QgdGVzdC1wYXJzZS1j b21tZW50cy0tbXVsdGlwbGUtbGluZS1tdWx0aXBsZS1hc3NlcnQtbGluZXMgKCkKICAgKGxldCog KChzdHIgIgogZmlyc3QKIC8vIF4gZmFjZTEKQEAgLTIxOCw5ICsyNjgsOSBAQCB0ZXN0LXBhcnNl LWNvbW1lbnRzLS1tdWx0aXBsZS1saW5lLW11bHRpcGxlLWNhcmV0cwogICAgICAgKHNldHEgYXNz ZXJ0cyAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKQogICAgICAgKHNob3VsZCAoZXFs IChsZW5ndGggYXNzZXJ0cykgMykpCiAgICAgICAoc2hvdWxkIChlcXVhbCBhc3NlcnRzCi0gICAg ICAgICAgICAgICAgICAgICAnKCg6bGluZS1jaGVja2VkIDIgIDpsaW5lLWFzc2VydCAzIDpjb2x1 bW4tY2hlY2tlZCAzIDpmYWNlICJmYWNlMSIgOm5lZ2F0aW9uIG5pbCkKLSAgICAgICAgICAgICAg ICAgICAgICAgKDpsaW5lLWNoZWNrZWQgNCAgOmxpbmUtYXNzZXJ0IDUgOmNvbHVtbi1jaGVja2Vk IDMgOmZhY2UgImZhY2UyIiA6bmVnYXRpb24gbmlsKQotICAgICAgICAgICAgICAgICAgICAgICAo OmxpbmUtY2hlY2tlZCA0ICA6bGluZS1hc3NlcnQgNiA6Y29sdW1uLWNoZWNrZWQgNSA6ZmFjZSAi ZmFjZTMiIDpuZWdhdGlvbiBuaWwpKSkpKSkpCisgICAgICAgICAgICAgICAgICAgICAnKCg6bGlu ZS1jaGVja2VkIDIgIDpsaW5lLWFzc2VydCAzIDpjb2x1bW4tY2hlY2tlZCAzIDpmYWNlIGZhY2Ux IDpuZWdhdGlvbiBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2VkIDQg IDpsaW5lLWFzc2VydCA1IDpjb2x1bW4tY2hlY2tlZCAzIDpmYWNlIGZhY2UyIDpuZWdhdGlvbiBu aWwpCisgICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2VkIDQgIDpsaW5lLWFzc2Vy dCA2IDpjb2x1bW4tY2hlY2tlZCA1IDpmYWNlIGZhY2UzIDpuZWdhdGlvbiBuaWwpKSkpKSkpCgoK IChlcnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1hcnJvdy1zaW5nbGUtbGluZS1zaW5n bGUgKCkKQEAgLTIzNiw3ICsyODYsNyBAQCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1hcnJvdy1zaW5n bGUtbGluZS1zaW5nbGUKICAgICAgIChzZXRxIGFzc2VydHMgKGVydC1mb250LWxvY2stLXBhcnNl LWNvbW1lbnRzKSkKICAgICAgIChzaG91bGQgKGVxbCAobGVuZ3RoIGFzc2VydHMpIDEpKQogICAg ICAgKHNob3VsZCAoZXF1YWwgKGNhciBhc3NlcnRzKQotICAgICAgICAgICAgICAgICAgICAgJyg6 bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDAgOmZhY2UgImZh Y2UxIiA6bmVnYXRpb24gbmlsKSkpKSkpCisgICAgICAgICAgICAgICAgICAgICAnKDpsaW5lLWNo ZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgMCA6ZmFjZSBmYWNlMSA6bmVn YXRpb24gbmlsKSkpKSkpCgoKIChlcnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNvbW1lbnRzLWFycm93 LW11bHRpcGxlLWxpbmUtc2luZ2xlICgpCkBAIC0yNTQsOSArMzA0LDkgQEAgdGVzdC1wYXJzZS1j b21tZW50cy1hcnJvdy1tdWx0aXBsZS1saW5lLXNpbmdsZQogICAgICAgKHNldHEgYXNzZXJ0cyAo ZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKQogICAgICAgKHNob3VsZCAoZXFsIChsZW5n dGggYXNzZXJ0cykgMykpCiAgICAgICAoc2hvdWxkIChlcXVhbCBhc3NlcnRzCi0gICAgICAgICAg ICAgICAgICAgICAnKCg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVj a2VkIDAgOmZhY2UgImZhY2UxIiA6bmVnYXRpb24gbmlsKQotICAgICAgICAgICAgICAgICAgICAg ICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCA0IDpjb2x1bW4tY2hlY2tlZCAyIDpmYWNl ICJmYWNlMiIgOm5lZ2F0aW9uIG5pbCkKLSAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNo ZWNrZWQgMiA6bGluZS1hc3NlcnQgNSA6Y29sdW1uLWNoZWNrZWQgNCA6ZmFjZSAiZmFjZTMiIDpu ZWdhdGlvbiBuaWwpKSkpKSkpCisgICAgICAgICAgICAgICAgICAgICAnKCg6bGluZS1jaGVja2Vk IDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDAgOmZhY2UgZmFjZTEgOm5lZ2F0aW9u IG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3Nl cnQgNCA6Y29sdW1uLWNoZWNrZWQgMiA6ZmFjZSBmYWNlMiA6bmVnYXRpb24gbmlsKQorICAgICAg ICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCA1IDpjb2x1bW4t Y2hlY2tlZCA0IDpmYWNlIGZhY2UzIDpuZWdhdGlvbiBuaWwpKSkpKSkpCgogKGVydC1kZWZ0ZXN0 IHRlc3QtcGFyc2UtY29tbWVudHMtLW5vbi1hc3NlcnQtY29tbWVudC1zaW5nbGUgKCkKICAgKGxl dCogKChzdHIgIgpAQCAtMjcxLDcgKzMyMSw3IEBAIHRlc3QtcGFyc2UtY29tbWVudHMtLW5vbi1h c3NlcnQtY29tbWVudC1zaW5nbGUKICAgICAgIChzZXRxIGFzc2VydHMgKGVydC1mb250LWxvY2st LXBhcnNlLWNvbW1lbnRzKSkKICAgICAgIChzaG91bGQgKGVxbCAobGVuZ3RoIGFzc2VydHMpIDEp KQogICAgICAgKHNob3VsZCAoZXF1YWwgKGNhciBhc3NlcnRzKQotICAgICAgICAgICAgICAgICAg ICAgJyg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDQgOmZh Y2UgImNvbW1lbnQtZmFjZSIgOm5lZ2F0aW9uIG5pbCkpKSkpKQorICAgICAgICAgICAgICAgICAg ICAgJyg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDQgOmZh Y2UgY29tbWVudC1mYWNlIDpuZWdhdGlvbiBuaWwpKSkpKSkKCiAoZXJ0LWRlZnRlc3QgdGVzdC1w YXJzZS1jb21tZW50cy0tbm9uLWFzc2VydC1jb21tZW50LW11bHRpcGxlICgpCiAgIChsZXQqICgo c3RyICIKQEAgLTI4OCw5ICszMzgsOSBAQCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1ub24tYXNzZXJ0 LWNvbW1lbnQtbXVsdGlwbGUKICAgICAgIChzZXRxIGFzc2VydHMgKGVydC1mb250LWxvY2stLXBh cnNlLWNvbW1lbnRzKSkKICAgICAgIChzaG91bGQgKGVxbCAobGVuZ3RoIGFzc2VydHMpIDMpKQog ICAgICAgKHNob3VsZCAoZXF1YWwgYXNzZXJ0cwotICAgICAgICAgICAgICAgICAgICAgJygoOmxp bmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCAzIDpjb2x1bW4tY2hlY2tlZCA0IDpmYWNlICJjb21t ZW50LWZhY2UiIDpuZWdhdGlvbiBuaWwpCi0gICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1j aGVja2VkIDIgOmxpbmUtYXNzZXJ0IDQgOmNvbHVtbi1jaGVja2VkIDEwIDpmYWNlICJjb21tZW50 LWZhY2UiIDpuZWdhdGlvbiBuaWwpCi0gICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVj a2VkIDIgOmxpbmUtYXNzZXJ0IDUgOmNvbHVtbi1jaGVja2VkIDE4IDpmYWNlICJjb21tZW50LWZh Y2UiIDpuZWdhdGlvbiBuaWwpKSkpKSkpCisgICAgICAgICAgICAgICAgICAgICAnKCg6bGluZS1j aGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDQgOmZhY2UgY29tbWVudC1m YWNlIDpuZWdhdGlvbiBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2Vk IDIgOmxpbmUtYXNzZXJ0IDQgOmNvbHVtbi1jaGVja2VkIDEwIDpmYWNlIGNvbW1lbnQtZmFjZSA6 bmVnYXRpb24gbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCAyIDps aW5lLWFzc2VydCA1IDpjb2x1bW4tY2hlY2tlZCAxOCA6ZmFjZSBjb21tZW50LWZhY2UgOm5lZ2F0 aW9uIG5pbCkpKSkpKSkKCgogKGVydC1kZWZ0ZXN0IHRlc3QtcGFyc2UtY29tbWVudHMtLW11bHRp bGluZS1jb21tZW50LXNpbmdsZSAoKQpAQCAtMzA4LDcgKzM1OCw3IEBAIHRlc3QtcGFyc2UtY29t bWVudHMtLW11bHRpbGluZS1jb21tZW50LXNpbmdsZQogICAgICAgKHNldHEgYXNzZXJ0cyAoZXJ0 LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKQogICAgICAgKHNob3VsZCAoZXFsIChsZW5ndGgg YXNzZXJ0cykgMSkpCiAgICAgICAoc2hvdWxkIChlcXVhbCAoY2FyIGFzc2VydHMpCi0gICAgICAg ICAgICAgICAgICAgICAnKDpsaW5lLWNoZWNrZWQgMyA6bGluZS1hc3NlcnQgNCA6Y29sdW1uLWNo ZWNrZWQgMyA6ZmFjZSAiY29tbWVudC1mYWNlIiA6bmVnYXRpb24gbmlsKSkpKSkpCisgICAgICAg ICAgICAgICAgICAgICAnKDpsaW5lLWNoZWNrZWQgMyA6bGluZS1hc3NlcnQgNCA6Y29sdW1uLWNo ZWNrZWQgMyA6ZmFjZSBjb21tZW50LWZhY2UgOm5lZ2F0aW9uIG5pbCkpKSkpKQoKIChlcnQtZGVm dGVzdCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1tdWx0aWxpbmUtY29tbWVudC1tdWx0aXBsZSAoKQog ICAobGV0KiAoKHN0ciAiCkBAIC0zMjcsMTMgKzM3NywzMSBAQCB0ZXN0LXBhcnNlLWNvbW1lbnRz LS1tdWx0aWxpbmUtY29tbWVudC1tdWx0aXBsZQogICAgICAgKHNldHEgYXNzZXJ0cyAoZXJ0LWZv bnQtbG9jay0tcGFyc2UtY29tbWVudHMpKQogICAgICAgKHNob3VsZCAoZXFsIChsZW5ndGggYXNz ZXJ0cykgMikpCiAgICAgICAoc2hvdWxkIChlcXVhbCBhc3NlcnRzCi0gICAgICAgICAgICAgICAg ICAgICAnKCg6bGluZS1jaGVja2VkIDMgOmxpbmUtYXNzZXJ0IDQgOmNvbHVtbi1jaGVja2VkIDMg OmZhY2UgImNvbW1lbnQtZmFjZSIgOm5lZ2F0aW9uIG5pbCkKLSAgICAgICAgICAgICAgICAgICAg ICAgKDpsaW5lLWNoZWNrZWQgNSA6bGluZS1hc3NlcnQgNiA6Y29sdW1uLWNoZWNrZWQgNCA6ZmFj ZSAiY29tbWVudC1mYWNlIiA6bmVnYXRpb24gbmlsKSkpKSkpKQorICAgICAgICAgICAgICAgICAg ICAgJygoOmxpbmUtY2hlY2tlZCAzIDpsaW5lLWFzc2VydCA0IDpjb2x1bW4tY2hlY2tlZCAzIDpm YWNlIGNvbW1lbnQtZmFjZSA6bmVnYXRpb24gbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAo OmxpbmUtY2hlY2tlZCA1IDpsaW5lLWFzc2VydCA2IDpjb2x1bW4tY2hlY2tlZCA0IDpmYWNlIGNv bW1lbnQtZmFjZSA6bmVnYXRpb24gbmlsKSkpKSkpKQoKIDs7OyBTeW50YXggaGlnaGxpZ2h0aW5n IGFzc2VydGlvbiB0ZXN0cwogOzsKCi0oZXJ0LWRlZnRlc3QgdGVzdC1zeW50YXgtaGlnaGxpZ2h0 LWlubGluZS0tY2FyZXQtbXVsdGlwbGUtZmFjZXMgKCkKKyhlcnQtZGVmdGVzdCB0ZXN0LXN5bnRh eC1oaWdobGlnaHQtaW5saW5lLS1mYWNlLWxpc3QgKCkKKyAgKGxldCAoKHN0ciAiCit2YXIgYWJj ID0gZnVuY3Rpb24oZCkgeworLy8gICBeICh0ZXN0LWZhY2UtMiB0ZXN0LWZhY2UtMSBmb250LWxv Y2stdmFyaWFibGUtbmFtZS1mYWNlKQorfTsKKworIikpCisgICAgKHdpdGgtdGVtcC1idWZmZXIK KyAgICAgIChpbnNlcnQgc3RyKQorICAgICAgKGphdmFzY3JpcHQtbW9kZSkKKyAgICAgIChmb250 LWxvY2stZW5zdXJlKQorCisgICAgICAoYWRkLWZhY2UtdGV4dC1wcm9wZXJ0eSAocG9pbnQtbWlu KSAocG9pbnQtbWF4KSAndGVzdC1mYWNlLTEpCisgICAgICAoYWRkLWZhY2UtdGV4dC1wcm9wZXJ0 eSAocG9pbnQtbWluKSAocG9pbnQtbWF4KSAndGVzdC1mYWNlLTIpCisKKyAgICAgIChlcnQtZm9u dC1sb2NrLS1jaGVjay1mYWNlcworICAgICAgIChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50 cykpKSkpCisKKyhlcnQtZGVmdGVzdCB0ZXN0LXN5bnRheC1oaWdobGlnaHQtaW5saW5lLS1jYXJl dC1tdWx0aXBsZS1hc3NlcnRpb25zICgpCiAgIChsZXQgKChzdHIgIgogdmFyIGFiYyA9IGZ1bmN0 aW9uKGQpIHsKIC8vICAgXiBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlCkBAIC0zNjQsNiAr NDMyLDE5IEBAIHRlc3Qtc3ludGF4LWhpZ2hsaWdodC1pbmxpbmUtLWNhcmV0LXdyb25nLWZhY2UK ICAgICAgIChzaG91bGQtZXJyb3IgKGVydC1mb250LWxvY2stLWNoZWNrLWZhY2VzCiAgICAgICAg ICAgICAgICAgICAgICAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKSkpKSkKCisoZXJ0 LWRlZnRlc3QgdGVzdC1zeW50YXgtaGlnaGxpZ2h0LWlubGluZS0tY2FyZXQtbmVnYXRlZC13cm9u Zy1mYWNlICgpCisgIChsZXQqICgoc3RyICIKK3ZhciBhYmMgPSBmdW5jdGlvbihkKSB7CisvLyAg IF4gIW5vdC1hLWZhY2UKK307CisiKSkKKyAgICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgICAgKGlu c2VydCBzdHIpCisgICAgICAoamF2YXNjcmlwdC1tb2RlKQorICAgICAgKGZvbnQtbG9jay1lbnN1 cmUpCisKKyAgICAgIChlcnQtZm9udC1sb2NrLS1jaGVjay1mYWNlcworICAgICAgIChlcnQtZm9u dC1sb2NrLS1wYXJzZS1jb21tZW50cykpKSkpCgogKGVydC1kZWZ0ZXN0IHRlc3Qtc3ludGF4LWhp Z2hsaWdodC1pbmxpbmUtLWNvbW1lbnQtZmFjZSAoKQogICAobGV0KiAoKHN0ciAiCkBAIC00NTUs NiArNTM2LDEyIEBAIHRlc3QtbWFjcm8tdGVzdC0tZmlsZQogICBqYXZhc2NyaXB0LW1vZGUKICAg ImNvcnJlY3QuanMiKQoKKyhlcnQtZm9udC1sb2NrLWRlZnRlc3QtZmlsZSB0ZXN0LW1hY3JvLXRl c3QtLWZpbGUtbm8tYXNzZXJ0cworICAgICJDaGVjayBmYWlsaW5nIG9uIGZpbGVzIHdpdGhvdXQg YXNzZXJ0aW9ucyIKKyAgOmV4cGVjdGVkLXJlc3VsdCA6ZmFpbGVkCisgIGphdmFzY3JpcHQtbW9k ZQorICAibm8tYXNzZXJ0cy5qcyIpCisKIChlcnQtZm9udC1sb2NrLWRlZnRlc3QtZmlsZSB0ZXN0 LW1hY3JvLXRlc3QtLWZpbGUtZmFpbGluZwogICAgICJUZXN0IHJlYWRpbmcgd3JvbmcgYXNzZXJ0 aW9ucyBmcm9tIGEgZmlsZSIKICAgOmV4cGVjdGVkLXJlc3VsdCA6ZmFpbGVkCi0tCjIuMzQuMQo= --000000000000e99df506138dc4c3-- From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 13 13:49:44 2024 Received: (at 69714) by debbugs.gnu.org; 13 Mar 2024 17:49:44 +0000 Received: from localhost ([127.0.0.1]:47389 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rkSjX-0008Vr-T9 for submit@debbugs.gnu.org; Wed, 13 Mar 2024 13:49:44 -0400 Received: from mail-ed1-f52.google.com ([209.85.208.52]:53376) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rkSjW-0008Ve-C6 for 69714@debbugs.gnu.org; Wed, 13 Mar 2024 13:49:43 -0400 Received: by mail-ed1-f52.google.com with SMTP id 4fb4d7f45d1cf-5687feeb1feso101980a12.2 for <69714@debbugs.gnu.org>; Wed, 13 Mar 2024 10:49:07 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710352141; x=1710956941; h=content-transfer-encoding:cc: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=xiZlzIo3ivG2aOS0tjsi9US225Wx1p7GsX57/KyyhSQ=; b=w1bCHXkhtiOUVrzAiwORYqwKq0i2uuniVd+tokfQSslVU1TIOFoQ3MlkcZ+HfV3FqH ME2ahsUM++cg0P5ZyA3ApGiGHL/QPWniudcgN2yCbbfKzSLMlsL8+ejSoXXbyd9PVSvA A0bLlBtolRVU7MwS4qRF4wbwOwSmwxpuEDw5Fj0pAo71iFNXra+6ZZez3tF0HQCCmu/B 2bLnjGVPTKSnCRtwF5RjKECMsjGyM/M0ZsAh2+brCIyU6AFSVlthedea45bxZAKThxJ3 j/8KQ9VG+WXlBcfduixWX+JcK495QVJ1iVEOPa7yvU4Ifd5HtmhEzpoGlZHkdwBvQjdF V92Q== X-Gm-Message-State: AOJu0YwIHDWtHVuoMrPjQTUuoaVz3GW71Vzncq5mZizFleHoTBcqBJ70 lRCtHnAuW4zqUBRuKVsUwZiFICMZyN/lVYcyCgaA5OWBurXJOe/W0ZapfZfzS4W2ug== X-Google-Smtp-Source: AGHT+IFMSmWV02jM28W8dw9CbimUqY7zq+M3JfNAo2giKg11+CIKzDMBZf+XO7RfLlXvuOnpAauN1g== X-Received: by 2002:a17:907:a0d6:b0:a3f:4596:c3c8 with SMTP id hw22-20020a170907a0d600b00a3f4596c3c8mr9257067ejc.53.1710352140804; Wed, 13 Mar 2024 10:49:00 -0700 (PDT) Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com. [209.85.218.45]) by smtp.gmail.com with ESMTPSA id s24-20020a170906a19800b00a457a55b814sm5030883ejy.73.2024.03.13.10.49.00 for <69714@debbugs.gnu.org> (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 13 Mar 2024 10:49:00 -0700 (PDT) Received: by mail-ej1-f45.google.com with SMTP id a640c23a62f3a-a46682e71a9so11809266b.3 for <69714@debbugs.gnu.org>; Wed, 13 Mar 2024 10:49:00 -0700 (PDT) X-Received: by 2002:a17:906:280d:b0:a45:c8cb:ae70 with SMTP id r13-20020a170906280d00b00a45c8cbae70mr6753798ejc.40.1710352140332; Wed, 13 Mar 2024 10:49:00 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Troy Brown Date: Wed, 13 Mar 2024 13:48:48 -0400 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: bug#69714: 30.0.50; ert-font-lock doesn't handle list of faces To: Vladimir Kazanov Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 69714 Cc: 69714@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) The new patch looks good to me. One other thing I thought I'd mention. I have places in my test where I want to verify that there is no font lock face. I've been able to specify "nil" for the face and that works perfectly to check this. I thought I'd mention this because I wasn't sure if it was intentional behavior, but I do find that useful. Thanks, Troy. On Wed, Mar 13, 2024 at 1:04=E2=80=AFPM Vladimir Kazanov wrote: > > Thanks a lot! > > The suggestions really do make sense. > > Here's the final integrated patch, complete with updated tests and > docs. If you're fine with it then I'll ask somebody to install it on > master. > > PS I've got to write an additional announcement in the main mailing > list inviting people to check the updated version out. > > On Wed, 13 Mar 2024 at 16:14, Troy Brown wrote: > > > > Hi Vlad, sorry for the delayed response. > > > > I haven't pushed my change which uses this package yet, as I was > > struggling to get it working and didn't want to push failing tests. I > > just discovered the package and was working on a regression test for a > > bug fix involving font locking. This seemed like the perfect reason > > to use your package. At the moment I only have this one > > work-in-progress test, but I expect to use it more going forward. > > > > I did check out your patch and for my immediate needs, it worked > > perfectly. Thanks! Additionally, I did experiment a little with the > > multi-caret functionality, which is nice as I have a use for that. I > > also experimented with the negation functionality (although I don't > > have an immediate need for that), and did notice a couple things. The > > first was that the assertion would be ignored if there was a space > > between the negation symbol and the face. Also, if the actual and > > expected faces didn't match and the negation flag was being used, it > > acted like the negation was not indicated at all and failed the test. > > I've included a diff below containing the changes I made which seemed > > to address those concerns. > > > > diff --git a/lisp/emacs-lisp/ert-font-lock.el b/lisp/emacs-lisp/ert-fon= t-lock.el > > index 06c90add9d3..1a5fe96fb09 100644 > > --- a/lisp/emacs-lisp/ert-font-lock.el > > +++ b/lisp/emacs-lisp/ert-font-lock.el > > @@ -61,6 +61,7 @@ ert-font-lock--assertion-line-re > > (group (zero-or-more (seq "^" (zero-or-more whitespace)))) > > ;; optional negation of the face specification > > (group (optional "!")) > > + (zero-or-more whitespace) > > ;; face symbol name or a list of symbols > > (group (or (regexp ert-font-lock--face-symbol-re) > > (regexp ert-font-lock--face-symbol-list-re)))) > > @@ -354,7 +355,7 @@ ert-font-lock--check-faces > > (when (symbolp expected-face) > > (setq expected-face (list expected-face))) > > > > - (when (not (equal actual-face expected-face)) > > + (when (and (not negation) (not (equal actual-face expected-face)= )) > > (ert-fail > > (list (format "Expected face %S, got %S on line %d column %d" > > expected-face actual-face line-checked column-c= hecked) > > > > > > Thanks, > > > > Troy. > > > > On Tue, Mar 12, 2024 at 4:47=E2=80=AFPM Vladimir Kazanov wrote: > > > > > > Hi, > > > > > > I've attached a patch that handles face lists, fails on files without > > > assertions and expands the parser a bit to support multiple carets pe= r > > > line. > > > > > > For faces it does the following: > > > > > > 1. Turn symbols into single element lists. > > > 2. Parses face lists from the assertions. > > > 3. Compare face lists using equas. > > > > > > Could you please check if this works for you? > > > > > > Thanks > > > > > > On Mon, 11 Mar 2024 at 08:36, Vladimir Kazanov = wrote: > > > > > > > > Hi, > > > > > > > > Thanks for reporting this! I have a bunch of ert-font-lock > > > > improvements in my local repo getting ready for submission, and can > > > > look into your suggestions as well. > > > > > > > > Do you have your unit test code somewhere in a public repo? It'd be > > > > great to think of further improvements to support your use case. > > > > > > > > Thanks, > > > > Vlad > > > > > > > > On Sun, 10 Mar 2024 at 20:33, Troy Brown wr= ote: > > > > > > > > > > I'm trying to use this package to test out my tree-sitter mode, b= ut am > > > > > running into an issue with lists of faces. It's possible that th= e > > > > > face for a location in the buffer will contain a list of 1 or mor= e > > > > > faces. For example, when I use the ":override 'prepend" keyword = in > > > > > the call to treesit-font-lock-rules, even if only a single face i= s > > > > > specified for the rule that matches that section of the buffer, t= his > > > > > will result in a list of one entry (i.e., "(face-name)"). > > > > > > > > > > When this happens, ert-font-lock fails to recognize that this mat= ches > > > > > the face "face-name" (e.g., "^ face-name" will fail to match in t= his > > > > > case). I feel the tool should recognize a list containing a sing= le > > > > > face as matching the face. Even worse however, it appears > > > > > ert-font-lock doesn't support a list of faces in the comment. I = tried > > > > > to work around the original issue by using "^ (face-name)", but t= he > > > > > tool silently ignores this, as it doesn't match the internal regu= lar > > > > > expression (which ended up allowing my test to pass without actua= lly > > > > > checking anything). > > > > > > > > > > I can't figure out a way to use this tool in its current state du= e to > > > > > its lack of support for a list of faces. Also, I find that since= it > > > > > silently ignores incorrect comment syntax (e.g., "^face-name", "^ > > > > > (face-name)"), it gives a false illusion that it's actually perfo= rming > > > > > those checks (and the checks are passing), when it's really just > > > > > ignoring them. Maybe any comment line starting with a "^" or "<-= " > > > > > should be considered an assertion check and to fail if the rest o= f the > > > > > syntax is not as expected. Maybe it should also fail the test if= no > > > > > assertion checks are found in a source file or string. > > > > > > > > > > Even if the tool would allow a list of a single face to match the > > > > > supplied face in the comment, I think it should also allow for > > > > > multiple faces to be listed in the comment. I have other places = where > > > > > multiple faces are used (e.g., "(font-lock-constant-face > > > > > font-lock-variable-name-face)" to highlight a constant variable), > > > > > which would not be testable with the current state of the package= . > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > Regards, > > > > > > > > Vladimir Kazanov > > > > > > > > > > > > -- > > > Regards, > > > > > > Vladimir Kazanov > > > > -- > Regards, > > Vladimir Kazanov From debbugs-submit-bounces@debbugs.gnu.org Wed Mar 13 14:22:22 2024 Received: (at 69714) by debbugs.gnu.org; 13 Mar 2024 18:22:22 +0000 Received: from localhost ([127.0.0.1]:47403 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rkTF6-0000q6-Rv for submit@debbugs.gnu.org; Wed, 13 Mar 2024 14:22:22 -0400 Received: from mail-lf1-f45.google.com ([209.85.167.45]:50190) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rkTF2-0000pq-JY for 69714@debbugs.gnu.org; Wed, 13 Mar 2024 14:22:18 -0400 Received: by mail-lf1-f45.google.com with SMTP id 2adb3069b0e04-513ca834ad7so228318e87.0 for <69714@debbugs.gnu.org>; Wed, 13 Mar 2024 11:21:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710354035; x=1710958835; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=RMx1f1+0mvLQjqHrv1P9GlCVv74NUrhDR6hgnIvehD0=; b=lLswUzEvb5Djp78mJ8rgvuySJNX9lwPLOB1G/O2dQ5iazIZky2T/k5LOGW7IXxZs+n ce4R3xNRrWwuHNzJR9KY+t3TsUAfwuNXW8+45UA7NoMzG/gQvsjj+PULIyiPHM2if0RP 656FNN+TiM85txXvMu2i/dTABBJ7jsJbGRoHJ9diI46fj3IB1Ct6i8m8Igym8PgmCmE8 BSA8mdTyiiAn3N9qjT91eNX8bDUaZtG1Jx35r32X6FWHMF+xS5baqnh7sw0kpymmg4QM /CHYOMb1emq+J4ya21gbK9q+/Sn19nuN6sqmANy2IzvBipw6mQrbp9rkvPOy4nGExhXG Ip3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710354035; x=1710958835; h=cc: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=RMx1f1+0mvLQjqHrv1P9GlCVv74NUrhDR6hgnIvehD0=; b=SgLDtKHNrEOygvH/+S/t0/w+YFZ0nHzIrE5jBRb5c9pdpNEavAj4fqdUdEVEcpPu+m 9I/mOGKOLW3RIiWwIjFRRWCf9v0HECvk2yzvH4uh8Ih75CttMqwW7Z/rNONhAyYlnhTJ PGTGFGZOIsb22DQPcv1NQ6znoEi2S/1DK78ubgKpipOeR8opuvofBCcfW5sPQPwmjiah vYYf17PkPk8bTc54gTHb2AHQ9lFwX84BJ0NCFZPZOteDN6JKJBeZnwsgS0Ykf9nqaff6 HhqQ6yWW/vdTYSXf8CABDqJ//l/BH5ZTP4Uos62gh5ov83Egw+TrVLWiWgCEAnUyYB1m kFOA== X-Gm-Message-State: AOJu0YxjjlpCUnxTgzN5QTkwRKCcmxQDXTyBfTetxSxviQeS+OniI1P5 e9fKn3IUMN4Qr6xRoK/jyIM7EVAqDcZomZrjmePXeJdUQuPTWcaeAKu8Iml77LV3cwjItdhNiep a4CdR6qfFFmy2+TuFbjymEyZ9Kw== X-Google-Smtp-Source: AGHT+IECziy5dNwo3W8LooVTvRNLbdLjqEWJq3+tNXRMKvRJ1OmeAfy0ayL/VRC0OXli4wHER2NtP5gq45JhjhjXTU8= X-Received: by 2002:a05:6512:3585:b0:513:9f30:e33f with SMTP id m5-20020a056512358500b005139f30e33fmr7704932lfr.23.1710354035054; Wed, 13 Mar 2024 11:20:35 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Vladimir Kazanov Date: Wed, 13 Mar 2024 18:20:23 +0000 Message-ID: Subject: Re: bug#69714: 30.0.50; ert-font-lock doesn't handle list of faces To: Troy Brown Content-Type: multipart/mixed; boundary="000000000000b33a0806138ed47f" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 69714 Cc: 69714@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000b33a0806138ed47f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Yeah, this is unintentional but I like it. "nil" is happily parsed by both the (read) call and the guarding regex. There's a little thing that needs to be fixed - avoid turning 'nil into '(nil) when comparing lists. It works but for the wrong reason. Anyway, I'll update the docs to suggest using nil and !nil in assertions, and also add a test. The patch looks ready. I'll wait for a few days and if nobody notices I will give the maintainers a shout. On Wed, 13 Mar 2024 at 17:49, Troy Brown wrote: > > The new patch looks good to me. > > One other thing I thought I'd mention. I have places in my test where > I want to verify that there is no font lock face. I've been able to > specify "nil" for the face and that works perfectly to check this. I > thought I'd mention this because I wasn't sure if it was intentional > behavior, but I do find that useful. > > > Thanks, > > Troy. > > On Wed, Mar 13, 2024 at 1:04=E2=80=AFPM Vladimir Kazanov wrote: > > > > Thanks a lot! > > > > The suggestions really do make sense. > > > > Here's the final integrated patch, complete with updated tests and > > docs. If you're fine with it then I'll ask somebody to install it on > > master. > > > > PS I've got to write an additional announcement in the main mailing > > list inviting people to check the updated version out. > > > > On Wed, 13 Mar 2024 at 16:14, Troy Brown wrote: > > > > > > Hi Vlad, sorry for the delayed response. > > > > > > I haven't pushed my change which uses this package yet, as I was > > > struggling to get it working and didn't want to push failing tests. = I > > > just discovered the package and was working on a regression test for = a > > > bug fix involving font locking. This seemed like the perfect reason > > > to use your package. At the moment I only have this one > > > work-in-progress test, but I expect to use it more going forward. > > > > > > I did check out your patch and for my immediate needs, it worked > > > perfectly. Thanks! Additionally, I did experiment a little with the > > > multi-caret functionality, which is nice as I have a use for that. I > > > also experimented with the negation functionality (although I don't > > > have an immediate need for that), and did notice a couple things. Th= e > > > first was that the assertion would be ignored if there was a space > > > between the negation symbol and the face. Also, if the actual and > > > expected faces didn't match and the negation flag was being used, it > > > acted like the negation was not indicated at all and failed the test. > > > I've included a diff below containing the changes I made which seemed > > > to address those concerns. > > > > > > diff --git a/lisp/emacs-lisp/ert-font-lock.el b/lisp/emacs-lisp/ert-f= ont-lock.el > > > index 06c90add9d3..1a5fe96fb09 100644 > > > --- a/lisp/emacs-lisp/ert-font-lock.el > > > +++ b/lisp/emacs-lisp/ert-font-lock.el > > > @@ -61,6 +61,7 @@ ert-font-lock--assertion-line-re > > > (group (zero-or-more (seq "^" (zero-or-more whitespace)))) > > > ;; optional negation of the face specification > > > (group (optional "!")) > > > + (zero-or-more whitespace) > > > ;; face symbol name or a list of symbols > > > (group (or (regexp ert-font-lock--face-symbol-re) > > > (regexp ert-font-lock--face-symbol-list-re)))) > > > @@ -354,7 +355,7 @@ ert-font-lock--check-faces > > > (when (symbolp expected-face) > > > (setq expected-face (list expected-face))) > > > > > > - (when (not (equal actual-face expected-face)) > > > + (when (and (not negation) (not (equal actual-face expected-fac= e))) > > > (ert-fail > > > (list (format "Expected face %S, got %S on line %d column %= d" > > > expected-face actual-face line-checked column= -checked) > > > > > > > > > Thanks, > > > > > > Troy. > > > > > > On Tue, Mar 12, 2024 at 4:47=E2=80=AFPM Vladimir Kazanov wrote: > > > > > > > > Hi, > > > > > > > > I've attached a patch that handles face lists, fails on files witho= ut > > > > assertions and expands the parser a bit to support multiple carets = per > > > > line. > > > > > > > > For faces it does the following: > > > > > > > > 1. Turn symbols into single element lists. > > > > 2. Parses face lists from the assertions. > > > > 3. Compare face lists using equas. > > > > > > > > Could you please check if this works for you? > > > > > > > > Thanks > > > > > > > > On Mon, 11 Mar 2024 at 08:36, Vladimir Kazanov wrote: > > > > > > > > > > Hi, > > > > > > > > > > Thanks for reporting this! I have a bunch of ert-font-lock > > > > > improvements in my local repo getting ready for submission, and c= an > > > > > look into your suggestions as well. > > > > > > > > > > Do you have your unit test code somewhere in a public repo? It'd = be > > > > > great to think of further improvements to support your use case. > > > > > > > > > > Thanks, > > > > > Vlad > > > > > > > > > > On Sun, 10 Mar 2024 at 20:33, Troy Brown = wrote: > > > > > > > > > > > > I'm trying to use this package to test out my tree-sitter mode,= but am > > > > > > running into an issue with lists of faces. It's possible that = the > > > > > > face for a location in the buffer will contain a list of 1 or m= ore > > > > > > faces. For example, when I use the ":override 'prepend" keywor= d in > > > > > > the call to treesit-font-lock-rules, even if only a single face= is > > > > > > specified for the rule that matches that section of the buffer,= this > > > > > > will result in a list of one entry (i.e., "(face-name)"). > > > > > > > > > > > > When this happens, ert-font-lock fails to recognize that this m= atches > > > > > > the face "face-name" (e.g., "^ face-name" will fail to match in= this > > > > > > case). I feel the tool should recognize a list containing a si= ngle > > > > > > face as matching the face. Even worse however, it appears > > > > > > ert-font-lock doesn't support a list of faces in the comment. = I tried > > > > > > to work around the original issue by using "^ (face-name)", but= the > > > > > > tool silently ignores this, as it doesn't match the internal re= gular > > > > > > expression (which ended up allowing my test to pass without act= ually > > > > > > checking anything). > > > > > > > > > > > > I can't figure out a way to use this tool in its current state = due to > > > > > > its lack of support for a list of faces. Also, I find that sin= ce it > > > > > > silently ignores incorrect comment syntax (e.g., "^face-name", = "^ > > > > > > (face-name)"), it gives a false illusion that it's actually per= forming > > > > > > those checks (and the checks are passing), when it's really jus= t > > > > > > ignoring them. Maybe any comment line starting with a "^" or "= <-" > > > > > > should be considered an assertion check and to fail if the rest= of the > > > > > > syntax is not as expected. Maybe it should also fail the test = if no > > > > > > assertion checks are found in a source file or string. > > > > > > > > > > > > Even if the tool would allow a list of a single face to match t= he > > > > > > supplied face in the comment, I think it should also allow for > > > > > > multiple faces to be listed in the comment. I have other place= s where > > > > > > multiple faces are used (e.g., "(font-lock-constant-face > > > > > > font-lock-variable-name-face)" to highlight a constant variable= ), > > > > > > which would not be testable with the current state of the packa= ge. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > Regards, > > > > > > > > > > Vladimir Kazanov > > > > > > > > > > > > > > > > -- > > > > Regards, > > > > > > > > Vladimir Kazanov > > > > > > > > -- > > Regards, > > > > Vladimir Kazanov --=20 Regards, Vladimir Kazanov --000000000000b33a0806138ed47f Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Improve-ert-font-lock-assertion-parser-Bug-69714.patch" Content-Disposition: attachment; filename="0001-Improve-ert-font-lock-assertion-parser-Bug-69714.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltq4h3lu0 RnJvbSA0MDI2ODhmMjI3ZWI3ODZmZTgxYWQzNzk5Zjk3YjUxY2Q2ZjdhNjkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWbGFkaW1pciBLYXphbm92IDx2ZWthemFub3ZAZ21haWwuY29t PgpEYXRlOiBUdWUsIDEyIE1hciAyMDI0IDExOjE0OjU0ICswMDAwClN1YmplY3Q6IFtQQVRDSF0g SW1wcm92ZSBlcnQtZm9udC1sb2NrIGFzc2VydGlvbiBwYXJzZXIgKEJ1ZyM2OTcxNCkKCkZhaWwg b24gZmlsZXMgd2l0aCBubyBhc3NlcnRpb25zLCBwYXJzZXIgbm93IGFjY2VwdHMgbXVsdGlwbGUK Y2FyZXRzIHBlciBsaW5lIGFuZCBmYWNlIGxpc3RzOgoqIGxpc3AvZW1hY3MtbGlzcC9lcnQtZm9u dC1sb2NrLmVsOiBBc3NlcnRpb24gcGFyc2VyIGZpeC4KKiB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9l cnQtZm9udC1sb2NrLXJlc291cmNlcy9uby1hc3NlcnRzLmpzOgoqIHRlc3QvbGlzcC9lbWFjcy1s aXNwL2VydC1mb250LWxvY2stdGVzdHMuZWw6IFVwZGF0ZSB1bml0IHRlc3RzLgoqIGRvYy9taXNj L2VydC50ZXhpOiBVcGRhdGUgZG9jdW1lbnRhdGlvbi4KLS0tCiBkb2MvbWlzYy9lcnQudGV4aSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDUgKysrKystCiBsaXNwL2VtYWNzLWxpc3Av ZXJ0LWZvbnQtbG9jay5lbCAgICAgICAgICAgICAgfCAgNzMgKysrKysrKy0tCiAuLi4vZXJ0LWZv bnQtbG9jay1yZXNvdXJjZXMvbm8tYXNzZXJ0cy5qcyAgICAgfCAgIDIgKwogdGVzdC9saXNwL2Vt YWNzLWxpc3AvZXJ0LWZvbnQtbG9jay10ZXN0cy5lbCAgIHwgMTUzICsrKysrKysrKysrKysrKy0t LQogNCBmaWxlcyBjaGFuZ2VkLCAyMjggaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCiBj cmVhdGUgbW9kZSAxMDA2NDQgdGVzdC9saXNwL2VtYWNzLWxpc3AvZXJ0LWZvbnQtbG9jay1yZXNv dXJjZXMvbm8tYXNzZXJ0cy5qcwoKZGlmZiAtLWdpdCBhL2RvYy9taXNjL2VydC50ZXhpIGIvZG9j L21pc2MvZXJ0LnRleGkKaW5kZXggYmQyYWQ0OTUxNDIuLjg3NjdkZTcxNDk2IDEwMDY0NAotLS0g YS9kb2MvbWlzYy9lcnQudGV4aQorKysgYi9kb2MvbWlzYy9lcnQudGV4aQpAQCAtOTUxLDExICs5 NTEsMTMgQEAgU3ludGF4IEhpZ2hsaWdodGluZyBUZXN0cwogQGNvZGV7ZXJ0LWZvbnQtbG9ja30g cGFja2FnZSBtYWtlcyBpdCBwb3NzaWJsZSB0byBpbnRyb2R1Y2UgdW5pdCB0ZXN0cwogY2hlY2tp bmcgZmFjZSBhc3NpZ25tZW50LiAgVGVzdCBhc3NlcnRpb25zIGFyZSBpbmNsdWRlZCBpbiBjb2Rl LWxldmVsCiBjb21tZW50cyBkaXJlY3RseSBhbmQgY2FuIGJlIHJlYWQgZWl0aGVyIGZyb20gaW5s aW5lIHN0cmluZ3Mgb3IgZmlsZXMuCitUaGUgcGFyc2VyIGV4cGVjdHMgdGhlIGlucHV0IHN0cmlu ZyB0byBjb250YWluIGF0IGxlYXN0IG9uZSBhc3NlcnRpb24uCgogVGVzdCBhc3NlcnRpb24gcGFy c2VyIGV4dHJhY3RzIHRlc3RzIGZyb20gY29tbWVudC1vbmx5IGxpbmVzLiAgRXZlcnkKLWNvbW1l bnQgYXNzZXJ0aW9uIGxpbmUgc3RhcnRzIGVpdGhlciB3aXRoIGEgY2FyZXQgKEBzYW1we159KSBv ciBhbgotYXJyb3cgKEBzYW1wezwtfSkuICBBIGNhcmV0L2Fycm93IHNob3VsZCBiZSBmb2xsb3dl ZCBpbW1lZGlhdGVseSBieSB0aGUKLW5hbWUgb2YgYSBmYWNlIHRvIGJlIGNoZWNrZWQuCitjb21t ZW50IGFzc2VydGlvbiBsaW5lIHN0YXJ0cyBlaXRoZXIgd2l0aCBhIGNhcmV0IChAc2FtcHtefSkg b3IgYW4gYXJyb3cKKyhAc2FtcHs8LX0pLiAgQSBzaW5nbGUgY2FyZXQvYXJyb3cgb3IgY2FyZXRz IHNob3VsZCBiZSBmb2xsb3dlZAoraW1tZWRpYXRlbHkgYnkgdGhlIG5hbWUgb2YgYSBmYWNlIG9y IGEgbGlzdCBvZiBmYWNlcyB0byBiZSBjaGVja2VkCithZ2FpbnN0IHRoZSBAY29kZXs6ZmFjZX0g cHJvcGVydHkgYXQgcG9pbnQuCgogVGhlIHRlc3QgdGhlbiBjaGVja3MgaWYgdGhlIGZpcnN0IG5v bi1hc3NlcnRpb24gY29sdW1uIGFib3ZlIHRoZSBjYXJldAogY29udGFpbnMgYSBmYWNlIGV4cGVj dGVkIGJ5IHRoZSBhc3NlcnRpb246CkBAIC05NjcsMTAgKzk2OSw0MyBAQCBTeW50YXggSGlnaGxp Z2h0aW5nIFRlc3RzCiAvLyAgICAgICAgICAgICAgIF4gZm9udC1sb2NrLXB1bmN0dWF0aW9uLWZh Y2UKIC8vIHRoaXMgaXMgbm90IGFuIGFzc2VydGlvbiwgaXQncyBqdXN0IGEgY29tbWVudAogLy8g ICBeIGZvbnQtbG9jay1jb21tZW50LWZhY2UKKworLy8gbXVsdGlwbGUgY2FyZXRzIHBlciBsaW5l CisvLyBeXl5eICAgICBeICAgIF4gZm9udC1sb2NrLWNvbW1lbnQtZmFjZQorQGVuZCBleGFtcGxl CisKK0JvdGggc3ltYm9sLW9ubHkgQGNvZGV7OmZhY2V9IHByb3BlcnR5IHZhbHVlcyBhbmQgYXNz ZXJ0aW9uIGZhY2UgdmFsdWVzCithcmUgbm9ybWFsaXplZCB0byBzaW5nbGUgZWxlbWVudCBsaXN0 cyBzbyBhc3NlcnRpb25zIGJlbG93IGFyZQorZXF1aXZhbGVudDoKKworQGV4YW1wbGUKKy8vIHNp bmdsZQorLy8gXiBmb250LWxvY2stY29tbWVudC1mYWNlCisvLyBzaW5nbGUKKy8vIF4gKGZvbnQt bG9jay1jb21tZW50LWZhY2UpCitAZW5kIGV4YW1wbGUKKworQXNzZXJ0aW9ucyBjYW4gYmUgbmVn YXRlZDoKKworQGV4YW1wbGUKK3ZhciB2YXJpYWJsZSA9IDExOworLy8gIF4gIWZvbnQtbG9jay1j b21tZW50LWZhY2UKK0BlbmQgZXhhbXBsZQorCitJdCBpcyBwb3NzaWJsZSB0byBzcGVjaWZ5IGZh Y2UgbGlzdHMgaW4gYXNzZXJ0aW9uczoKKworQGV4YW1wbGUKKy8vIFRPRE8KKy8vIF5eXl4gKGZv bnQtbG9jay1jb21tZW50LWZhY2UgaGwtdG9kbykKKyAgICAgdmFyIHRlc3QgPSAxOworLy8gXiAg ICAoKQorLy8gXiAgICBuaWwKKy8vICAgbmVnYXRpb24gd29ya3MgYXMgZXhwZWN0ZWQKKy8vICAg XiAgIW5pbAogQGVuZCBleGFtcGxlCgotVGhlIGFycm93IG1lYW5zIHRoYXQgdGhlIGZpcnN0IG5v bi1lbXB0eSBjb2x1bW4gb2YgdGhlIGFzc2VydGlvbiBsaW5lCi13aWxsIGJlIHVzZWQgZm9yIHRo ZSBjaGVjazoKK1RoZSBhcnJvdyAoQHNhbXB7PC19KSBtZWFucyB0aGF0IHRoZSBmaXJzdCBub24t ZW1wdHkgY29sdW1uIG9mIHRoZQorYXNzZXJ0aW9uIGxpbmUgd2lsbCBiZSB1c2VkIGZvciB0aGUg Y2hlY2s6CgogQGV4YW1wbGUKIHZhciB2YXJpYWJsZSA9IDE7CmRpZmYgLS1naXQgYS9saXNwL2Vt YWNzLWxpc3AvZXJ0LWZvbnQtbG9jay5lbCBiL2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2Nr LmVsCmluZGV4IDI5MTE0NzEyZjkyLi5lNzdjODk0NWRjMyAxMDA2NDQKLS0tIGEvbGlzcC9lbWFj cy1saXNwL2VydC1mb250LWxvY2suZWwKKysrIGIvbGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxv Y2suZWwKQEAgLTM5LDE2ICszOSwzMyBAQAogKHJlcXVpcmUgJ25ld2NvbW1lbnQpCiAocmVxdWly ZSAncGNhc2UpCgotKGRlZmNvbnN0IGVydC1mb250LWxvY2stLWFzc2VydGlvbi1yZQorKGRlZmNv bnN0IGVydC1mb250LWxvY2stLWZhY2Utc3ltYm9sLXJlCisgIChyeCAob25lLW9yLW1vcmUgKG9y IGFscGhhbnVtZXJpYyAiLSIgIl8iICIuIikpKQorICAiQSBmYWNlIHN5bWJvbCBtYXRjaGluZyBy ZWdleC4iKQorCisoZGVmY29uc3QgZXJ0LWZvbnQtbG9jay0tZmFjZS1zeW1ib2wtbGlzdC1yZQor ICAocnggIigiCisgICAgICAoKiB3aGl0ZXNwYWNlKQorICAgICAgKG9uZS1vci1tb3JlCisgICAg ICAgKHNlcSAocmVnZXhwIGVydC1mb250LWxvY2stLWZhY2Utc3ltYm9sLXJlKQorICAgICAgICAg ICAgKCogd2hpdGVzcGFjZSkpKQorICAgICAgIikiKQorICAiQSBmYWNlIHN5bWJvbCBsaXN0IG1h dGNoaW5nIHJlZ2V4LiIpCisKKyhkZWZjb25zdCBlcnQtZm9udC1sb2NrLS1hc3NlcnRpb24tbGlu ZS1yZQogICAocngKLSAgIDs7IGNvbHVtbiBzcGVjaWZpZXJzCisgICA7OyBsZWFkaW5nIGNvbHVt biBhc3NlcnRpb24gKGFycm93L2NhcmV0KQogICAgKGdyb3VwIChvciAiXiIgIjwtIikpCi0gICAo b25lLW9yLW1vcmUgIiAiKQorICAgKHplcm8tb3ItbW9yZSB3aGl0ZXNwYWNlKQorICAgOzsgcG9z c2libGUgdG8gaGF2ZSBtYW55IGNhcmV0cyBvbiBhbiBhc3NlcnRpb24gbGluZQorICAgKGdyb3Vw ICh6ZXJvLW9yLW1vcmUgKHNlcSAiXiIgKHplcm8tb3ItbW9yZSB3aGl0ZXNwYWNlKSkpKQogICAg Ozsgb3B0aW9uYWwgbmVnYXRpb24gb2YgdGhlIGZhY2Ugc3BlY2lmaWNhdGlvbgogICAgKGdyb3Vw IChvcHRpb25hbCAiISIpKQotICAgOzsgZmFjZSBzeW1ib2wgbmFtZQotICAgKGdyb3VwIChvbmUt b3ItbW9yZSAob3IgYWxwaGFudW1lcmljICItIiAiXyIgIi4iKSkpKQotICAiQW4gZXJ0LWZvbnQt bG9jayBhc3NlcnRpb24gcmVnZXguIikKKyAgICh6ZXJvLW9yLW1vcmUgd2hpdGVzcGFjZSkKKyAg IDs7IGZhY2Ugc3ltYm9sIG5hbWUgb3IgYSBsaXN0IG9mIHN5bWJvbHMKKyAgIChncm91cCAob3Ig KHJlZ2V4cCBlcnQtZm9udC1sb2NrLS1mYWNlLXN5bWJvbC1yZSkKKyAgICAgICAgICAgICAgKHJl Z2V4cCBlcnQtZm9udC1sb2NrLS1mYWNlLXN5bWJvbC1saXN0LXJlKSkpKQorICAiQW4gZXJ0LWZv bnQtbG9jayBhc3NlcnRpb24gbGluZSByZWdleC4iKQoKIChkZWZ1biBlcnQtZm9udC1sb2NrLS12 YWxpZGF0ZS1tYWpvci1tb2RlIChtb2RlKQogICAiVmFsaWRhdGUgaWYgTU9ERSBpcyBhIHZhbGlk IG1ham9yIG1vZGUuIgpAQCAtMjEyLDcgKzIyOSw3IEBAIGVydC1mb250LWxvY2stLWxpbmUtYXNz ZXJ0aW9uLXAKICAgKHNhdmUtZXhjdXJzaW9uCiAgICAgKGJlZ2lubmluZy1vZi1saW5lKQogICAg IChza2lwLXN5bnRheC1mb3J3YXJkICIgIikKLSAgICAocmUtc2VhcmNoLWZvcndhcmQgZXJ0LWZv bnQtbG9jay0tYXNzZXJ0aW9uLXJlCisgICAgKHJlLXNlYXJjaC1mb3J3YXJkIGVydC1mb250LWxv Y2stLWFzc2VydGlvbi1saW5lLXJlCiAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLWVuZC1w b3NpdGlvbikgdCAxKSkpCgogKGRlZnVuIGVydC1mb250LWxvY2stLWdvdG8tZmlyc3QtY2hhciAo KQpAQCAtMjUyLDggKzI2OSw4IEBAIGVydC1mb250LWxvY2stLXBhcnNlLWNvbW1lbnRzCiAgICAg ICAgICAgKHRocm93ICduZXh0bGluZSB0KSkKCgotICAgICAgICA7OyBDb2xsZWN0IHRoZSBhc3Nl cnRpb24KLSAgICAgICAgKHdoZW4gKHJlLXNlYXJjaC1mb3J3YXJkIGVydC1mb250LWxvY2stLWFz c2VydGlvbi1yZQorICAgICAgICA7OyBDb2xsZWN0IHRoZSBmaXJzdCBsaW5lIGFzc2VydGlvbiAo Y2FyZXQgb3IgYXJyb3cpCisgICAgICAgICh3aGVuIChyZS1zZWFyY2gtZm9yd2FyZCBlcnQtZm9u dC1sb2NrLS1hc3NlcnRpb24tbGluZS1yZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxpbmUtZW5kLXBvc2l0aW9uKSB0IDEpCgogICAgICAgICAgICh1bmxlc3MgKD4gbGluZXRv Y2hlY2sgLTEpCkBAIC0yNjYsMjEgKzI4MywzOCBAQCBlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21t ZW50cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgtIChtYXRjaC1iZWdp bm5pbmcgMSkgKGxpbmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGVydC1mb250LWxvY2stLWdldC1maXJzdC1jaGFyLWNvbHVtbikpKQog ICAgICAgICAgICAgICAgICA7OyBuZWdhdGUgdGhlIGZhY2U/Ci0gICAgICAgICAgICAgICAgIChu ZWdhdGlvbiAoc3RyaW5nLWVxdWFsIChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyAyKSAiISIp KQorICAgICAgICAgICAgICAgICAobmVnYXRpb24gKHN0cmluZy1lcXVhbCAobWF0Y2gtc3RyaW5n LW5vLXByb3BlcnRpZXMgMykgIiEiKSkKICAgICAgICAgICAgICAgICAgOzsgdGhlIGZhY2UgdGhh dCBpcyBzdXBwb3NlZCB0byBiZSBpbiB0aGUgcG9zaXRpb24gc3BlY2lmaWVkCi0gICAgICAgICAg ICAgICAgIChmYWNlIChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyAzKSkpCisgICAgICAgICAg ICAgICAgIChmYWNlIChyZWFkIChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyA0KSkpKQoKKyAg ICAgICAgICAgIDs7IENvbGxlY3QgdGhlIGZpcnN0IGFzc2VydGlvbiBvbiB0aGUgbGluZQogICAg ICAgICAgICAgKHB1c2ggKGxpc3QgOmxpbmUtY2hlY2tlZCBsaW5ldG9jaGVjawogICAgICAgICAg ICAgICAgICAgICAgICAgOmxpbmUtYXNzZXJ0IGN1cmxpbmUKICAgICAgICAgICAgICAgICAgICAg ICAgIDpjb2x1bW4tY2hlY2tlZCBjb2x1bW4tY2hlY2tlZAogICAgICAgICAgICAgICAgICAgICAg ICAgOmZhY2UgZmFjZQogICAgICAgICAgICAgICAgICAgICAgICAgOm5lZ2F0aW9uIG5lZ2F0aW9u KQotICAgICAgICAgICAgICAgICAgdGVzdHMpKSkpCisgICAgICAgICAgICAgICAgICB0ZXN0cykK KworICAgICAgICAgICAgOzsgQ29sbGVjdCBhbGwgdGhlIG90aGVyIGxpbmUgY2FyZXRzIChpZiBw cmVzZW50KQorICAgICAgICAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDIpKQorICAg ICAgICAgICAgKHdoaWxlIChlcXVhbCAoZm9sbG93aW5nLWNoYXIpID9eKQorICAgICAgICAgICAg ICAoc2V0cSBjb2x1bW4tY2hlY2tlZCAoLSAocG9pbnQpIChsaW5lLWJlZ2lubmluZy1wb3NpdGlv bikpKQorICAgICAgICAgICAgICAocHVzaCAobGlzdCA6bGluZS1jaGVja2VkIGxpbmV0b2NoZWNr CisgICAgICAgICAgICAgICAgICAgICAgICAgIDpsaW5lLWFzc2VydCBjdXJsaW5lCisgICAgICAg ICAgICAgICAgICAgICAgICAgIDpjb2x1bW4tY2hlY2tlZCBjb2x1bW4tY2hlY2tlZAorICAgICAg ICAgICAgICAgICAgICAgICAgICA6ZmFjZSBmYWNlCisgICAgICAgICAgICAgICAgICAgICAgICAg IDpuZWdhdGlvbiBuZWdhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgdGVzdHMpCisgICAgICAg ICAgICAgIChmb3J3YXJkLWNoYXIpCisgICAgICAgICAgICAgIChza2lwLXN5bnRheC1mb3J3YXJk ICIgIikpKSkpCgogICAgICAgOzsgbmV4dCBsaW5lCiAgICAgICAoc2V0cSBjdXJsaW5lICgxKyBj dXJsaW5lKSkKICAgICAgIChmb3J3YXJkLWxpbmUgMSkpCgorICAgICh1bmxlc3MgdGVzdHMKKyAg ICAgICh1c2VyLWVycm9yICJObyB0ZXN0IGFzc2VydGlvbnMgZm91bmQiKSkKKwogICAgIChyZXZl cnNlIHRlc3RzKSkpCgogKGRlZnVuIGVydC1mb250LWxvY2stLXBvaW50LWF0LWxpbmUtYW5kLWNv bHVtbiAobGluZSBjb2x1bW4pCkBAIC0zMDcsMjEgKzM0MSwzMCBAQCBlcnQtZm9udC1sb2NrLS1j aGVjay1mYWNlcwogICAgIChsZXQqICgobGluZS1jaGVja2VkIChwbGlzdC1nZXQgdGVzdCA6bGlu ZS1jaGVja2VkKSkKICAgICAgICAgICAgKGxpbmUtYXNzZXJ0IChwbGlzdC1nZXQgdGVzdCA6bGlu ZS1hc3NlcnQpKQogICAgICAgICAgICAoY29sdW1uLWNoZWNrZWQgKHBsaXN0LWdldCB0ZXN0IDpj b2x1bW4tY2hlY2tlZCkpCi0gICAgICAgICAgIChleHBlY3RlZC1mYWNlIChpbnRlcm4gKHBsaXN0 LWdldCB0ZXN0IDpmYWNlKSkpCisgICAgICAgICAgIChleHBlY3RlZC1mYWNlIChwbGlzdC1nZXQg dGVzdCA6ZmFjZSkpCiAgICAgICAgICAgIChuZWdhdGlvbiAocGxpc3QtZ2V0IHRlc3QgOm5lZ2F0 aW9uKSkKCiAgICAgICAgICAgIChhY3R1YWwtZmFjZSAoZ2V0LXRleHQtcHJvcGVydHkgKGVydC1m b250LWxvY2stLXBvaW50LWF0LWxpbmUtYW5kLWNvbHVtbiBsaW5lLWNoZWNrZWQgY29sdW1uLWNo ZWNrZWQpICdmYWNlKSkKICAgICAgICAgICAgKGxpbmUtc3RyIChlcnQtZm9udC1sb2NrLS1nZXQt bGluZSBsaW5lLWNoZWNrZWQpKQogICAgICAgICAgICAobGluZS1hc3NlcnQtc3RyIChlcnQtZm9u dC1sb2NrLS1nZXQtbGluZSBsaW5lLWFzc2VydCkpKQoKLSAgICAgICh3aGVuIChub3QgKGVxIGFj dHVhbC1mYWNlIGV4cGVjdGVkLWZhY2UpKQorICAgICAgOzsgbm9ybWFsaXplIGJvdGggZXhwZWN0 ZWQgYW5kIHJlc3VsdGluZyBmYWNlIC0gdGhlc2UgY2FuIGJlCisgICAgICA7OyBlaXRoZXIgc3lt Ym9scywgbmlscyBvciBsaXN0cyBvZiBzeW1ib2xzCisgICAgICAod2hlbiAobm90IChsaXN0cCBh Y3R1YWwtZmFjZSkpCisgICAgICAgIChzZXRxIGFjdHVhbC1mYWNlIChsaXN0IGFjdHVhbC1mYWNl KSkpCisgICAgICAod2hlbiAobm90IChsaXN0cCBleHBlY3RlZC1mYWNlKSkKKyAgICAgICAgKHNl dHEgZXhwZWN0ZWQtZmFjZSAobGlzdCBleHBlY3RlZC1mYWNlKSkpCisKKyAgICAgIDs7IGZhaWwg d2hlbiBsaXN0cyBhcmUgbm90ICdlcXVhbCBhbmQgdGhlIGFzc2VydGlvbiBpcyAqbm90IG5lZ2F0 ZWQqCisgICAgICAod2hlbiAoYW5kIChub3QgbmVnYXRpb24pIChub3QgKGVxdWFsIGFjdHVhbC1m YWNlIGV4cGVjdGVkLWZhY2UpKSkKICAgICAgICAgKGVydC1mYWlsCiAgICAgICAgICAobGlzdCAo Zm9ybWF0ICJFeHBlY3RlZCBmYWNlICVTLCBnb3QgJVMgb24gbGluZSAlZCBjb2x1bW4gJWQiCiAg ICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkLWZhY2UgYWN0dWFsLWZhY2UgbGluZS1jaGVj a2VkIGNvbHVtbi1jaGVja2VkKQogICAgICAgICAgICAgICAgOmxpbmUgbGluZS1zdHIKICAgICAg ICAgICAgICAgIDphc3NlcnQgbGluZS1hc3NlcnQtc3RyKSkpCgotICAgICAgKHdoZW4gKGFuZCBu ZWdhdGlvbiAoZXEgYWN0dWFsLWZhY2UgZXhwZWN0ZWQtZmFjZSkpCisgICAgICA7OyBmYWlsIHdo ZW4gbGlzdHMgYXJlICdlcXVhbCBhbmQgdGhlIGFzc2VydGlvbiBpcyAqbmVnYXRlZCoKKyAgICAg ICh3aGVuIChhbmQgbmVnYXRpb24gKGVxdWFsIGFjdHVhbC1mYWNlIGV4cGVjdGVkLWZhY2UpKQog ICAgICAgICAoZXJ0LWZhaWwKICAgICAgICAgIChsaXN0IChmb3JtYXQgIkRpZCBub3QgZXhwZWN0 IGZhY2UgJVMgZmFjZSBvbiBsaW5lICVkLCBjb2x1bW4gJWQiCiAgICAgICAgICAgICAgICAgICAg ICAgIGFjdHVhbC1mYWNlIGxpbmUtY2hlY2tlZCBjb2x1bW4tY2hlY2tlZCkKZGlmZiAtLWdpdCBh L3Rlc3QvbGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2stcmVzb3VyY2VzL25vLWFzc2VydHMu anMgYi90ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXJlc291cmNlcy9uby1hc3Nl cnRzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41ZWFlOWFmMjEy ZgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2st cmVzb3VyY2VzL25vLWFzc2VydHMuanMKQEAgLTAsMCArMSwyIEBACit2YXIgYWJjID0gZnVuY3Rp b24oZCkgeworfTsKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxv Y2stdGVzdHMuZWwgYi90ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXRlc3RzLmVs CmluZGV4IGUwYmExZTk0OWIyLi5mYTJlNWRjNGRiNyAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL2Vt YWNzLWxpc3AvZXJ0LWZvbnQtbG9jay10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvZW1hY3MtbGlz cC9lcnQtZm9udC1sb2NrLXRlc3RzLmVsCkBAIC0xMzgsMTMgKzEzOCwyNCBAQCB0ZXN0LWxpbmUt Y29tbWVudC1wLS1jCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzaG91bGQgKGVydC1mb250LWxvY2stLWxp bmUtY29tbWVudC1wKSkpKQoKKyhlcnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1uby1h c3NlcnRpb24tZXJyb3IgKCkKKyAgKGxldCogKChzdHIgIgorbm90X2FuX2Fzc2VydGlvbgorcmFu ZG9tX3N5bWJvbAorIikpCisgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgIChpbnNlcnQgc3Ry KQorICAgICAgKGphdmFzY3JpcHQtbW9kZSkKKworICAgICAgKHNob3VsZC1lcnJvciAoZXJ0LWZv bnQtbG9jay0tcGFyc2UtY29tbWVudHMpIDp0eXBlICd1c2VyLWVycm9yKSkpKQorCiAoZXJ0LWRl ZnRlc3QgdGVzdC1wYXJzZS1jb21tZW50cy0tc2luZ2xlLWxpbmUtZXJyb3IgKCkKICAgKGxldCog KChzdHIgIi8vIF4gZmFjZS5mYWNlMSIpKQogICAgICh3aXRoLXRlbXAtYnVmZmVyCiAgICAgICAo aW5zZXJ0IHN0cikKICAgICAgIChqYXZhc2NyaXB0LW1vZGUpCgotICAgICAgKHNob3VsZC1lcnJv ciAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKSkpKQorICAgICAgKHNob3VsZC1lcnJv ciAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpIDp0eXBlICd1c2VyLWVycm9yKSkpKQoK IChlcnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1zaW5nbGUtbGluZS1zaW5nbGUtY2Fy ZXQgKCkKICAgKGxldCogKChzdHIgIgpAQCAtMTU5LDcgKzE3MCw0NiBAQCB0ZXN0LXBhcnNlLWNv bW1lbnRzLS1zaW5nbGUtbGluZS1zaW5nbGUtY2FyZXQKICAgICAgIChzZXRxIGFzc2VydHMgKGVy dC1mb250LWxvY2stLXBhcnNlLWNvbW1lbnRzKSkKICAgICAgIChzaG91bGQgKGVxbCAobGVuZ3Ro IGFzc2VydHMpIDEpKQogICAgICAgKHNob3VsZCAoZXF1YWwgKGNhciBhc3NlcnRzKQotICAgICAg ICAgICAgICAgICAgICAgJyg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1j aGVja2VkIDMgOmZhY2UgImZhY2UuZmFjZTEiIDpuZWdhdGlvbiBuaWwpKSkpKSkKKyAgICAgICAg ICAgICAgICAgICAgICcoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCAzIDpjb2x1bW4tY2hl Y2tlZCAzIDpmYWNlIGZhY2UuZmFjZTEgOm5lZ2F0aW9uIG5pbCkpKSkpKQorCisoZXJ0LWRlZnRl c3QgdGVzdC1wYXJzZS1jb21tZW50cy0tc2luZ2xlLWxpbmUtbWFueS1jYXJldHMgKCkKKyAgKGxl dCogKChzdHIgIgorbXVsdGlwbGVjYXJldHMKKy8vXl5eIF5eIF4gZmFjZS5mYWNlMQorIikKKyAg ICAgICAgIGFzc2VydHMpCisgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgIChpbnNlcnQgc3Ry KQorICAgICAgKGphdmFzY3JpcHQtbW9kZSkKKworICAgICAgKHNldHEgYXNzZXJ0cyAoZXJ0LWZv bnQtbG9jay0tcGFyc2UtY29tbWVudHMpKQorICAgICAgKHNob3VsZCAoZXFsIChsZW5ndGggYXNz ZXJ0cykgNikpCisgICAgICAoc2hvdWxkIChlcXVhbCBhc3NlcnRzCisgICAgICAgICAgICAgICAg ICAgICAnKCg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDIg OmZhY2UgZmFjZS5mYWNlMSA6bmVnYXRpb24gbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAo OmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCAzIDpjb2x1bW4tY2hlY2tlZCAzIDpmYWNlIGZh Y2UuZmFjZTEgOm5lZ2F0aW9uIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNo ZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgNCA6ZmFjZSBmYWNlLmZhY2Ux IDpuZWdhdGlvbiBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2VkIDIg OmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDYgOmZhY2UgZmFjZS5mYWNlMSA6bmVnYXRp b24gbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFz c2VydCAzIDpjb2x1bW4tY2hlY2tlZCA3IDpmYWNlIGZhY2UuZmFjZTEgOm5lZ2F0aW9uIG5pbCkK KyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6 Y29sdW1uLWNoZWNrZWQgOSA6ZmFjZSBmYWNlLmZhY2UxIDpuZWdhdGlvbiBuaWwpKSkpKSkpCisK KyhlcnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1mYWNlLWxpc3QgKCkKKyAgKGxldCog KChzdHIgIgorZmFjZWxpc3QKKy8vIF4gKGZhY2UxIGZhY2UyKQorLy8gXiAhKGZhY2UzIGZhY2U0 KQorLy8gXiAoZmFjZTUpCisiKQorICAgICAgICAgYXNzZXJ0cykKKyAgICAod2l0aC10ZW1wLWJ1 ZmZlcgorICAgICAgKGluc2VydCBzdHIpCisgICAgICAoamF2YXNjcmlwdC1tb2RlKQorCisgICAg ICAoc2V0cSBhc3NlcnRzIChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpCisgICAgICAo c2hvdWxkIChlcWwgKGxlbmd0aCBhc3NlcnRzKSAzKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIGFz c2VydHMKKyAgICAgICAgICAgICAgICAgICAgICcoKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3Nl cnQgMyA6Y29sdW1uLWNoZWNrZWQgMyA6ZmFjZSAoZmFjZTEgZmFjZTIpIDpuZWdhdGlvbiBuaWwp CisgICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDQg OmNvbHVtbi1jaGVja2VkIDMgOmZhY2UgKGZhY2UzIGZhY2U0KSA6bmVnYXRpb24gdCkKKyAgICAg ICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgNSA6Y29sdW1u LWNoZWNrZWQgMyA6ZmFjZSAoZmFjZTUpIDpuZWdhdGlvbiBuaWwpKSkpKSkpCgogKGVydC1kZWZ0 ZXN0IHRlc3QtcGFyc2UtY29tbWVudHMtLWNhcmV0LW5lZ2F0aW9uICgpCiAgIChsZXQqICgoc3Ry ICIKQEAgLTE3NSwxMSArMjI1LDExIEBAIHRlc3QtcGFyc2UtY29tbWVudHMtLWNhcmV0LW5lZ2F0 aW9uCiAgICAgICAoc2V0cSBhc3NlcnRzIChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykp CiAgICAgICAoc2hvdWxkIChlcWwgKGxlbmd0aCBhc3NlcnRzKSAyKSkKICAgICAgIChzaG91bGQg KGVxdWFsIGFzc2VydHMKLSAgICAgICAgICAgICAgICAgICAgICcoKDpsaW5lLWNoZWNrZWQgMiA6 bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgMyA6ZmFjZSAiZmFjZSIgOm5lZ2F0aW9uIHQp Ci0gICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDQg OmNvbHVtbi1jaGVja2VkIDMgOmZhY2UgImZhY2UiIDpuZWdhdGlvbiBuaWwpKSkpKSkpCisgICAg ICAgICAgICAgICAgICAgICAnKCg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVt bi1jaGVja2VkIDMgOmZhY2UgZmFjZSA6bmVnYXRpb24gdCkKKyAgICAgICAgICAgICAgICAgICAg ICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgNCA6Y29sdW1uLWNoZWNrZWQgMyA6ZmFj ZSBmYWNlIDpuZWdhdGlvbiBuaWwpKSkpKSkpCgoKLShlcnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNv bW1lbnRzLS1zaW5nbGUtbGluZS1tdWx0aXBsZS1jYXJldHMgKCkKKyhlcnQtZGVmdGVzdCB0ZXN0 LXBhcnNlLWNvbW1lbnRzLS1zaW5nbGUtbGluZS1tdWx0aXBsZS1hc3NlcnQtbGluZXMgKCkKICAg KGxldCogKChzdHIgIgogZmlyc3QKIC8vIF4gZmFjZTEKQEAgLTE5NiwxMiArMjQ2LDEyIEBAIHRl c3QtcGFyc2UtY29tbWVudHMtLXNpbmdsZS1saW5lLW11bHRpcGxlLWNhcmV0cwogICAgICAgKHNl dHEgYXNzZXJ0cyAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKQogICAgICAgKHNob3Vs ZCAoZXFsIChsZW5ndGggYXNzZXJ0cykgNCkpCiAgICAgICAoc2hvdWxkIChlcXVhbCBhc3NlcnRz Ci0gICAgICAgICAgICAgICAgICAgICAnKCg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMg OmNvbHVtbi1jaGVja2VkIDMgOmZhY2UgImZhY2UxIiA6bmVnYXRpb24gbmlsKQotICAgICAgICAg ICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCA0IDpjb2x1bW4tY2hl Y2tlZCA3IDpmYWNlICJmYWNlLmZhY2UyIiA6bmVnYXRpb24gbmlsKQotICAgICAgICAgICAgICAg ICAgICAgICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCA1IDpjb2x1bW4tY2hlY2tlZCA3 IDpmYWNlICJmYWNlLWZhY2UuZmFjZTMiIDpuZWdhdGlvbiBuaWwpCi0gICAgICAgICAgICAgICAg ICAgICAgICg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDYgOmNvbHVtbi1jaGVja2VkIDcg OmZhY2UgImZhY2VfZmFjZS5mYWNlNCIgOm5lZ2F0aW9uIG5pbCkpKSkpKSkKKyAgICAgICAgICAg ICAgICAgICAgICcoKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNr ZWQgMyA6ZmFjZSBmYWNlMSA6bmVnYXRpb24gbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAo OmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCA0IDpjb2x1bW4tY2hlY2tlZCA3IDpmYWNlIGZh Y2UuZmFjZTIgOm5lZ2F0aW9uIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNo ZWNrZWQgMiA6bGluZS1hc3NlcnQgNSA6Y29sdW1uLWNoZWNrZWQgNyA6ZmFjZSBmYWNlLWZhY2Uu ZmFjZTMgOm5lZ2F0aW9uIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNr ZWQgMiA6bGluZS1hc3NlcnQgNiA6Y29sdW1uLWNoZWNrZWQgNyA6ZmFjZSBmYWNlX2ZhY2UuZmFj ZTQgOm5lZ2F0aW9uIG5pbCkpKSkpKSkKCi0oZXJ0LWRlZnRlc3QgdGVzdC1wYXJzZS1jb21tZW50 cy0tbXVsdGlwbGUtbGluZS1tdWx0aXBsZS1jYXJldHMgKCkKKyhlcnQtZGVmdGVzdCB0ZXN0LXBh cnNlLWNvbW1lbnRzLS1tdWx0aXBsZS1saW5lLW11bHRpcGxlLWFzc2VydC1saW5lcyAoKQogICAo bGV0KiAoKHN0ciAiCiBmaXJzdAogLy8gXiBmYWNlMQpAQCAtMjE4LDkgKzI2OCw5IEBAIHRlc3Qt cGFyc2UtY29tbWVudHMtLW11bHRpcGxlLWxpbmUtbXVsdGlwbGUtY2FyZXRzCiAgICAgICAoc2V0 cSBhc3NlcnRzIChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpCiAgICAgICAoc2hvdWxk IChlcWwgKGxlbmd0aCBhc3NlcnRzKSAzKSkKICAgICAgIChzaG91bGQgKGVxdWFsIGFzc2VydHMK LSAgICAgICAgICAgICAgICAgICAgICcoKDpsaW5lLWNoZWNrZWQgMiAgOmxpbmUtYXNzZXJ0IDMg OmNvbHVtbi1jaGVja2VkIDMgOmZhY2UgImZhY2UxIiA6bmVnYXRpb24gbmlsKQotICAgICAgICAg ICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCA0ICA6bGluZS1hc3NlcnQgNSA6Y29sdW1uLWNo ZWNrZWQgMyA6ZmFjZSAiZmFjZTIiIDpuZWdhdGlvbiBuaWwpCi0gICAgICAgICAgICAgICAgICAg ICAgICg6bGluZS1jaGVja2VkIDQgIDpsaW5lLWFzc2VydCA2IDpjb2x1bW4tY2hlY2tlZCA1IDpm YWNlICJmYWNlMyIgOm5lZ2F0aW9uIG5pbCkpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICco KDpsaW5lLWNoZWNrZWQgMiAgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDMgOmZhY2Ug ZmFjZTEgOm5lZ2F0aW9uIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNr ZWQgNCAgOmxpbmUtYXNzZXJ0IDUgOmNvbHVtbi1jaGVja2VkIDMgOmZhY2UgZmFjZTIgOm5lZ2F0 aW9uIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgNCAgOmxpbmUt YXNzZXJ0IDYgOmNvbHVtbi1jaGVja2VkIDUgOmZhY2UgZmFjZTMgOm5lZ2F0aW9uIG5pbCkpKSkp KSkKCgogKGVydC1kZWZ0ZXN0IHRlc3QtcGFyc2UtY29tbWVudHMtLWFycm93LXNpbmdsZS1saW5l LXNpbmdsZSAoKQpAQCAtMjM2LDcgKzI4Niw3IEBAIHRlc3QtcGFyc2UtY29tbWVudHMtLWFycm93 LXNpbmdsZS1saW5lLXNpbmdsZQogICAgICAgKHNldHEgYXNzZXJ0cyAoZXJ0LWZvbnQtbG9jay0t cGFyc2UtY29tbWVudHMpKQogICAgICAgKHNob3VsZCAoZXFsIChsZW5ndGggYXNzZXJ0cykgMSkp CiAgICAgICAoc2hvdWxkIChlcXVhbCAoY2FyIGFzc2VydHMpCi0gICAgICAgICAgICAgICAgICAg ICAnKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgMCA6ZmFj ZSAiZmFjZTEiIDpuZWdhdGlvbiBuaWwpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICcoOmxp bmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCAzIDpjb2x1bW4tY2hlY2tlZCAwIDpmYWNlIGZhY2Ux IDpuZWdhdGlvbiBuaWwpKSkpKSkKCgogKGVydC1kZWZ0ZXN0IHRlc3QtcGFyc2UtY29tbWVudHMt YXJyb3ctbXVsdGlwbGUtbGluZS1zaW5nbGUgKCkKQEAgLTI1NCw5ICszMDQsOSBAQCB0ZXN0LXBh cnNlLWNvbW1lbnRzLWFycm93LW11bHRpcGxlLWxpbmUtc2luZ2xlCiAgICAgICAoc2V0cSBhc3Nl cnRzIChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpCiAgICAgICAoc2hvdWxkIChlcWwg KGxlbmd0aCBhc3NlcnRzKSAzKSkKICAgICAgIChzaG91bGQgKGVxdWFsIGFzc2VydHMKLSAgICAg ICAgICAgICAgICAgICAgICcoKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1u LWNoZWNrZWQgMCA6ZmFjZSAiZmFjZTEiIDpuZWdhdGlvbiBuaWwpCi0gICAgICAgICAgICAgICAg ICAgICAgICg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDQgOmNvbHVtbi1jaGVja2VkIDIg OmZhY2UgImZhY2UyIiA6bmVnYXRpb24gbmlsKQotICAgICAgICAgICAgICAgICAgICAgICAoOmxp bmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCA1IDpjb2x1bW4tY2hlY2tlZCA0IDpmYWNlICJmYWNl MyIgOm5lZ2F0aW9uIG5pbCkpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICcoKDpsaW5lLWNo ZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgMCA6ZmFjZSBmYWNlMSA6bmVn YXRpb24gbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5l LWFzc2VydCA0IDpjb2x1bW4tY2hlY2tlZCAyIDpmYWNlIGZhY2UyIDpuZWdhdGlvbiBuaWwpCisg ICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDUgOmNv bHVtbi1jaGVja2VkIDQgOmZhY2UgZmFjZTMgOm5lZ2F0aW9uIG5pbCkpKSkpKSkKCiAoZXJ0LWRl ZnRlc3QgdGVzdC1wYXJzZS1jb21tZW50cy0tbm9uLWFzc2VydC1jb21tZW50LXNpbmdsZSAoKQog ICAobGV0KiAoKHN0ciAiCkBAIC0yNzEsNyArMzIxLDcgQEAgdGVzdC1wYXJzZS1jb21tZW50cy0t bm9uLWFzc2VydC1jb21tZW50LXNpbmdsZQogICAgICAgKHNldHEgYXNzZXJ0cyAoZXJ0LWZvbnQt bG9jay0tcGFyc2UtY29tbWVudHMpKQogICAgICAgKHNob3VsZCAoZXFsIChsZW5ndGggYXNzZXJ0 cykgMSkpCiAgICAgICAoc2hvdWxkIChlcXVhbCAoY2FyIGFzc2VydHMpCi0gICAgICAgICAgICAg ICAgICAgICAnKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQg NCA6ZmFjZSAiY29tbWVudC1mYWNlIiA6bmVnYXRpb24gbmlsKSkpKSkpCisgICAgICAgICAgICAg ICAgICAgICAnKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQg NCA6ZmFjZSBjb21tZW50LWZhY2UgOm5lZ2F0aW9uIG5pbCkpKSkpKQoKIChlcnQtZGVmdGVzdCB0 ZXN0LXBhcnNlLWNvbW1lbnRzLS1ub24tYXNzZXJ0LWNvbW1lbnQtbXVsdGlwbGUgKCkKICAgKGxl dCogKChzdHIgIgpAQCAtMjg4LDkgKzMzOCw5IEBAIHRlc3QtcGFyc2UtY29tbWVudHMtLW5vbi1h c3NlcnQtY29tbWVudC1tdWx0aXBsZQogICAgICAgKHNldHEgYXNzZXJ0cyAoZXJ0LWZvbnQtbG9j ay0tcGFyc2UtY29tbWVudHMpKQogICAgICAgKHNob3VsZCAoZXFsIChsZW5ndGggYXNzZXJ0cykg MykpCiAgICAgICAoc2hvdWxkIChlcXVhbCBhc3NlcnRzCi0gICAgICAgICAgICAgICAgICAgICAn KCg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDQgOmZhY2Ug ImNvbW1lbnQtZmFjZSIgOm5lZ2F0aW9uIG5pbCkKLSAgICAgICAgICAgICAgICAgICAgICAgKDps aW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgNCA6Y29sdW1uLWNoZWNrZWQgMTAgOmZhY2UgImNv bW1lbnQtZmFjZSIgOm5lZ2F0aW9uIG5pbCkKLSAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5l LWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgNSA6Y29sdW1uLWNoZWNrZWQgMTggOmZhY2UgImNvbW1l bnQtZmFjZSIgOm5lZ2F0aW9uIG5pbCkpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICcoKDps aW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgNCA6ZmFjZSBjb21t ZW50LWZhY2UgOm5lZ2F0aW9uIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNo ZWNrZWQgMiA6bGluZS1hc3NlcnQgNCA6Y29sdW1uLWNoZWNrZWQgMTAgOmZhY2UgY29tbWVudC1m YWNlIDpuZWdhdGlvbiBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2Vk IDIgOmxpbmUtYXNzZXJ0IDUgOmNvbHVtbi1jaGVja2VkIDE4IDpmYWNlIGNvbW1lbnQtZmFjZSA6 bmVnYXRpb24gbmlsKSkpKSkpKQoKCiAoZXJ0LWRlZnRlc3QgdGVzdC1wYXJzZS1jb21tZW50cy0t bXVsdGlsaW5lLWNvbW1lbnQtc2luZ2xlICgpCkBAIC0zMDgsNyArMzU4LDcgQEAgdGVzdC1wYXJz ZS1jb21tZW50cy0tbXVsdGlsaW5lLWNvbW1lbnQtc2luZ2xlCiAgICAgICAoc2V0cSBhc3NlcnRz IChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpCiAgICAgICAoc2hvdWxkIChlcWwgKGxl bmd0aCBhc3NlcnRzKSAxKSkKICAgICAgIChzaG91bGQgKGVxdWFsIChjYXIgYXNzZXJ0cykKLSAg ICAgICAgICAgICAgICAgICAgICcoOmxpbmUtY2hlY2tlZCAzIDpsaW5lLWFzc2VydCA0IDpjb2x1 bW4tY2hlY2tlZCAzIDpmYWNlICJjb21tZW50LWZhY2UiIDpuZWdhdGlvbiBuaWwpKSkpKSkKKyAg ICAgICAgICAgICAgICAgICAgICcoOmxpbmUtY2hlY2tlZCAzIDpsaW5lLWFzc2VydCA0IDpjb2x1 bW4tY2hlY2tlZCAzIDpmYWNlIGNvbW1lbnQtZmFjZSA6bmVnYXRpb24gbmlsKSkpKSkpCgogKGVy dC1kZWZ0ZXN0IHRlc3QtcGFyc2UtY29tbWVudHMtLW11bHRpbGluZS1jb21tZW50LW11bHRpcGxl ICgpCiAgIChsZXQqICgoc3RyICIKQEAgLTMyNywxMyArMzc3LDQ3IEBAIHRlc3QtcGFyc2UtY29t bWVudHMtLW11bHRpbGluZS1jb21tZW50LW11bHRpcGxlCiAgICAgICAoc2V0cSBhc3NlcnRzIChl cnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpCiAgICAgICAoc2hvdWxkIChlcWwgKGxlbmd0 aCBhc3NlcnRzKSAyKSkKICAgICAgIChzaG91bGQgKGVxdWFsIGFzc2VydHMKLSAgICAgICAgICAg ICAgICAgICAgICcoKDpsaW5lLWNoZWNrZWQgMyA6bGluZS1hc3NlcnQgNCA6Y29sdW1uLWNoZWNr ZWQgMyA6ZmFjZSAiY29tbWVudC1mYWNlIiA6bmVnYXRpb24gbmlsKQotICAgICAgICAgICAgICAg ICAgICAgICAoOmxpbmUtY2hlY2tlZCA1IDpsaW5lLWFzc2VydCA2IDpjb2x1bW4tY2hlY2tlZCA0 IDpmYWNlICJjb21tZW50LWZhY2UiIDpuZWdhdGlvbiBuaWwpKSkpKSkpCisgICAgICAgICAgICAg ICAgICAgICAnKCg6bGluZS1jaGVja2VkIDMgOmxpbmUtYXNzZXJ0IDQgOmNvbHVtbi1jaGVja2Vk IDMgOmZhY2UgY29tbWVudC1mYWNlIDpuZWdhdGlvbiBuaWwpCisgICAgICAgICAgICAgICAgICAg ICAgICg6bGluZS1jaGVja2VkIDUgOmxpbmUtYXNzZXJ0IDYgOmNvbHVtbi1jaGVja2VkIDQgOmZh Y2UgY29tbWVudC1mYWNlIDpuZWdhdGlvbiBuaWwpKSkpKSkpCgogOzs7IFN5bnRheCBoaWdobGln aHRpbmcgYXNzZXJ0aW9uIHRlc3RzCiA7OwoKLShlcnQtZGVmdGVzdCB0ZXN0LXN5bnRheC1oaWdo bGlnaHQtaW5saW5lLS1jYXJldC1tdWx0aXBsZS1mYWNlcyAoKQorKGVydC1kZWZ0ZXN0IHRlc3Qt c3ludGF4LWhpZ2hsaWdodC1pbmxpbmUtLW5pbC1saXN0ICgpCisgIChsZXQgKChzdHIgIgordmFy IGFiYyA9IGZ1bmN0aW9uKGQpIHsKKy8vIF4gbmlsCisvLyAgIF4gIW5pbAorfTsKKworIikpCisg ICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgIChpbnNlcnQgc3RyKQorICAgICAgKGphdmFzY3Jp cHQtbW9kZSkKKyAgICAgIChmb250LWxvY2stZW5zdXJlKQorCisgICAgICAoZXJ0LWZvbnQtbG9j ay0tY2hlY2stZmFjZXMKKyAgICAgICAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKSkp KQorCisoZXJ0LWRlZnRlc3QgdGVzdC1zeW50YXgtaGlnaGxpZ2h0LWlubGluZS0tZmFjZS1saXN0 ICgpCisgIChsZXQgKChzdHIgIgordmFyIGFiYyA9IGZ1bmN0aW9uKGQpIHsKKy8vICAgXiAodGVz dC1mYWNlLTIgdGVzdC1mYWNlLTEgZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkKK307CisK KyIpKQorICAgICh3aXRoLXRlbXAtYnVmZmVyCisgICAgICAoaW5zZXJ0IHN0cikKKyAgICAgIChq YXZhc2NyaXB0LW1vZGUpCisgICAgICAoZm9udC1sb2NrLWVuc3VyZSkKKworICAgICAgKGFkZC1m YWNlLXRleHQtcHJvcGVydHkgKHBvaW50LW1pbikgKHBvaW50LW1heCkgJ3Rlc3QtZmFjZS0xKQor ICAgICAgKGFkZC1mYWNlLXRleHQtcHJvcGVydHkgKHBvaW50LW1pbikgKHBvaW50LW1heCkgJ3Rl c3QtZmFjZS0yKQorCisgICAgICAoZXJ0LWZvbnQtbG9jay0tY2hlY2stZmFjZXMKKyAgICAgICAo ZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKSkpKQorCisoZXJ0LWRlZnRlc3QgdGVzdC1z eW50YXgtaGlnaGxpZ2h0LWlubGluZS0tY2FyZXQtbXVsdGlwbGUtYXNzZXJ0aW9ucyAoKQogICAo bGV0ICgoc3RyICIKIHZhciBhYmMgPSBmdW5jdGlvbihkKSB7CiAvLyAgIF4gZm9udC1sb2NrLXZh cmlhYmxlLW5hbWUtZmFjZQpAQCAtMzY0LDYgKzQ0OCwxOSBAQCB0ZXN0LXN5bnRheC1oaWdobGln aHQtaW5saW5lLS1jYXJldC13cm9uZy1mYWNlCiAgICAgICAoc2hvdWxkLWVycm9yIChlcnQtZm9u dC1sb2NrLS1jaGVjay1mYWNlcwogICAgICAgICAgICAgICAgICAgICAgKGVydC1mb250LWxvY2st LXBhcnNlLWNvbW1lbnRzKSkpKSkpCgorKGVydC1kZWZ0ZXN0IHRlc3Qtc3ludGF4LWhpZ2hsaWdo dC1pbmxpbmUtLWNhcmV0LW5lZ2F0ZWQtd3JvbmctZmFjZSAoKQorICAobGV0KiAoKHN0ciAiCit2 YXIgYWJjID0gZnVuY3Rpb24oZCkgeworLy8gICBeICFub3QtYS1mYWNlCit9OworIikpCisgICAg KHdpdGgtdGVtcC1idWZmZXIKKyAgICAgIChpbnNlcnQgc3RyKQorICAgICAgKGphdmFzY3JpcHQt bW9kZSkKKyAgICAgIChmb250LWxvY2stZW5zdXJlKQorCisgICAgICAoZXJ0LWZvbnQtbG9jay0t Y2hlY2stZmFjZXMKKyAgICAgICAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKSkpKQoK IChlcnQtZGVmdGVzdCB0ZXN0LXN5bnRheC1oaWdobGlnaHQtaW5saW5lLS1jb21tZW50LWZhY2Ug KCkKICAgKGxldCogKChzdHIgIgpAQCAtNDU1LDYgKzU1MiwxMiBAQCB0ZXN0LW1hY3JvLXRlc3Qt LWZpbGUKICAgamF2YXNjcmlwdC1tb2RlCiAgICJjb3JyZWN0LmpzIikKCisoZXJ0LWZvbnQtbG9j ay1kZWZ0ZXN0LWZpbGUgdGVzdC1tYWNyby10ZXN0LS1maWxlLW5vLWFzc2VydHMKKyAgICAiQ2hl Y2sgZmFpbGluZyBvbiBmaWxlcyB3aXRob3V0IGFzc2VydGlvbnMiCisgIDpleHBlY3RlZC1yZXN1 bHQgOmZhaWxlZAorICBqYXZhc2NyaXB0LW1vZGUKKyAgIm5vLWFzc2VydHMuanMiKQorCiAoZXJ0 LWZvbnQtbG9jay1kZWZ0ZXN0LWZpbGUgdGVzdC1tYWNyby10ZXN0LS1maWxlLWZhaWxpbmcKICAg ICAiVGVzdCByZWFkaW5nIHdyb25nIGFzc2VydGlvbnMgZnJvbSBhIGZpbGUiCiAgIDpleHBlY3Rl ZC1yZXN1bHQgOmZhaWxlZAotLQoyLjM0LjEK --000000000000b33a0806138ed47f-- From debbugs-submit-bounces@debbugs.gnu.org Fri Mar 15 07:48:27 2024 Received: (at submit) by debbugs.gnu.org; 15 Mar 2024 11:48:27 +0000 Received: from localhost ([127.0.0.1]:52206 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rl62z-00040y-QX for submit@debbugs.gnu.org; Fri, 15 Mar 2024 07:48:27 -0400 Received: from lists.gnu.org ([209.51.188.17]:41722) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rl62v-00040T-Lb for submit@debbugs.gnu.org; Fri, 15 Mar 2024 07:48:23 -0400 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 1rl62L-0005L4-3e for bug-gnu-emacs@gnu.org; Fri, 15 Mar 2024 07:47:45 -0400 Received: from mail-lj1-x22f.google.com ([2a00:1450:4864:20::22f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rl62H-00061f-Hs for bug-gnu-emacs@gnu.org; Fri, 15 Mar 2024 07:47:44 -0400 Received: by mail-lj1-x22f.google.com with SMTP id 38308e7fff4ca-2d2505352e6so22396651fa.3 for ; Fri, 15 Mar 2024 04:47:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710503259; x=1711108059; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=nBkpgzd6Tvy38ZHeCC3AwM06NCQ/75oRDoes5TSHQ50=; b=Gv/QhfyZlzE+cUOuCu3esfrTLXjidB7Co6UNTrVq489DtLPxLN40khxQW6PMxNhGYx IATvotO1Um4VAS80AEhN+dZtUEKbKjtECYzRK5pnd3Mv6Ku9vHn7wsh90e7xqUdzUHGz i4271XXZVOoOhgsubI6XZfk7G8l6DJF9gNi2/jxUPFSuqozom89arTSm7tXOUcBLaG+F MIEhxDnpFS9aESjesj1qPbHqlPWkWoW+c3613RpeQ78G6kLISpWPmLO7Gh5shBAVkYMM RIeR6nxBriKOdHdtL5RrYm1Cs9gucP4IEAB3DvqUuSyZystcF8MjnxumuwX4v2i8nEHE ZJvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710503259; x=1711108059; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=nBkpgzd6Tvy38ZHeCC3AwM06NCQ/75oRDoes5TSHQ50=; b=a3KauIrQpXO+wVl6BrFDBKpRoT7WsDN8Tx4ztl54JbfnXQt7L3Rq4Fhm4w94LK1vKj x8dc9QtlNCG3esDaxuDP7BsKQ+Gm+UfFzkfpvcXrkLuWoTUc5cC8CHcWlVjyoYYK91n9 XqDXbLU1Syv4ZB+Xd9Aw22NdMDuWudtblVlPfFDvunq8hWc8etlPgYmR2aRkQnPMRrnV 8JMBfKCMhodTryu/kVyKYoqOTeiowCaAmxsppxbc+Zs3G0kHz+SG8yuU5m6gzEMaSUl3 44t7kEr6r2LHTk+l240xQWtulRr9GMdKxMLuf09W13JQcGB9YqmD6R7y/xynr+AQLSrV 3b0Q== X-Gm-Message-State: AOJu0YzmRJAABiNBrpE/W2PPxBmmLtBQ/DfTqLRmQiCN7jjoXW2IFCoK ICDeCdV+WuHRJKnV/rjLyvtUpd44txnoMV4pINrBDbodAW9/xFi0esrlQhnVr0puOnGWdRYnVsr fbgaFmiPeE9fDHJG5wKAgW3lKOML40hUE5Q== X-Google-Smtp-Source: AGHT+IEyimKVrOIQXvpEg8/W7OjYiJU/KqRB/3I8hseFgdisCQ5OSgrk7YlVwD6WIva4VixcB15ea5X7CIcS6g7ZBqg= X-Received: by 2002:a2e:93c2:0:b0:2d2:4637:63f with SMTP id p2-20020a2e93c2000000b002d24637063fmr2597008ljh.45.1710503258663; Fri, 15 Mar 2024 04:47:38 -0700 (PDT) MIME-Version: 1.0 From: Vladimir Kazanov Date: Fri, 15 Mar 2024 11:47:27 +0000 Message-ID: Subject: [PATCH] Improve ert-font-lock assertion parser (Bug#69714) To: bug-gnu-emacs@gnu.org Content-Type: multipart/mixed; boundary="0000000000001ec5ec0613b193cb" Received-SPF: pass client-ip=2a00:1450:4864:20::22f; envelope-from=vekazanov@gmail.com; helo=mail-lj1-x22f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --0000000000001ec5ec0613b193cb Content-Type: text/plain; charset="UTF-8" Dear maintainers, I've come up with a number of improvements for ert-font-lock as requested in Bug#69714 (which can be closed now). The attached patch provides the fix, more unit tests and updated documentation. I don't think we need to update NEWS as ert-font-lock was announced there already. Thank you -- Regards, Vladimir Kazanov --0000000000001ec5ec0613b193cb Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Improve-ert-font-lock-assertion-parser-Bug-69714.patch" Content-Disposition: attachment; filename="0001-Improve-ert-font-lock-assertion-parser-Bug-69714.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ltsl965e0 RnJvbSAyMmRlYTFlZTZiZjY1NjMwNDdiYzViNzU3ZTE1ODQzYTNiZTEzMjhhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWbGFkaW1pciBLYXphbm92IDx2ZWthemFub3ZAZ21haWwuY29t PgpEYXRlOiBUdWUsIDEyIE1hciAyMDI0IDExOjE0OjU0ICswMDAwClN1YmplY3Q6IFtQQVRDSF0g SW1wcm92ZSBlcnQtZm9udC1sb2NrIGFzc2VydGlvbiBwYXJzZXIgKEJ1ZyM2OTcxNCkKCkZhaWwg b24gZmlsZXMgd2l0aCBubyBhc3NlcnRpb25zLCBwYXJzZXIgbm93IGFjY2VwdHMgbXVsdGlwbGUK Y2FyZXRzIHBlciBsaW5lIGFuZCBmYWNlIGxpc3RzOgoqIGxpc3AvZW1hY3MtbGlzcC9lcnQtZm9u dC1sb2NrLmVsOiBBc3NlcnRpb24gcGFyc2VyIGZpeC4KKiB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9l cnQtZm9udC1sb2NrLXJlc291cmNlcy9uby1hc3NlcnRzLmpzOgoqIHRlc3QvbGlzcC9lbWFjcy1s aXNwL2VydC1mb250LWxvY2stdGVzdHMuZWwKKHRlc3QtcGFyc2UtY29tbWVudHMtLW5vLWFzc2Vy dGlvbi1lcnJvcikKKHRlc3Qtc3ludGF4LWhpZ2hsaWdodC1pbmxpbmUtLWNhcmV0LW5lZ2F0ZWQt d3JvbmctZmFjZSkKKHRlc3QtbWFjcm8tdGVzdC0tZmlsZS1uby1hc3NlcnRzKTogTmV3IHRlc3Qg Y2FzZXMuCiogZG9jL21pc2MvZXJ0LnRleGkgKFN5bnRheCBIaWdobGlnaHRpbmcgVGVzdHMpOiBN b3JlIHN5bnRheCBleGFtcGxlcy4KLS0tCiBkb2MvbWlzYy9lcnQudGV4aSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgNDUgKysrKystCiBsaXNwL2VtYWNzLWxpc3AvZXJ0LWZvbnQtbG9j ay5lbCAgICAgICAgICAgICAgfCAgNzMgKysrKysrKy0tCiAuLi4vZXJ0LWZvbnQtbG9jay1yZXNv dXJjZXMvbm8tYXNzZXJ0cy5qcyAgICAgfCAgIDIgKwogdGVzdC9saXNwL2VtYWNzLWxpc3AvZXJ0 LWZvbnQtbG9jay10ZXN0cy5lbCAgIHwgMTUzICsrKysrKysrKysrKysrKy0tLQogNCBmaWxlcyBj aGFuZ2VkLCAyMjggaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgdGVzdC9saXNwL2VtYWNzLWxpc3AvZXJ0LWZvbnQtbG9jay1yZXNvdXJjZXMvbm8tYXNz ZXJ0cy5qcwoKZGlmZiAtLWdpdCBhL2RvYy9taXNjL2VydC50ZXhpIGIvZG9jL21pc2MvZXJ0LnRl eGkKaW5kZXggYmQyYWQ0OTUxNDIuLjg3NjdkZTcxNDk2IDEwMDY0NAotLS0gYS9kb2MvbWlzYy9l cnQudGV4aQorKysgYi9kb2MvbWlzYy9lcnQudGV4aQpAQCAtOTUxLDExICs5NTEsMTMgQEAgU3lu dGF4IEhpZ2hsaWdodGluZyBUZXN0cwogQGNvZGV7ZXJ0LWZvbnQtbG9ja30gcGFja2FnZSBtYWtl cyBpdCBwb3NzaWJsZSB0byBpbnRyb2R1Y2UgdW5pdCB0ZXN0cwogY2hlY2tpbmcgZmFjZSBhc3Np Z25tZW50LiAgVGVzdCBhc3NlcnRpb25zIGFyZSBpbmNsdWRlZCBpbiBjb2RlLWxldmVsCiBjb21t ZW50cyBkaXJlY3RseSBhbmQgY2FuIGJlIHJlYWQgZWl0aGVyIGZyb20gaW5saW5lIHN0cmluZ3Mg b3IgZmlsZXMuCitUaGUgcGFyc2VyIGV4cGVjdHMgdGhlIGlucHV0IHN0cmluZyB0byBjb250YWlu IGF0IGxlYXN0IG9uZSBhc3NlcnRpb24uCgogVGVzdCBhc3NlcnRpb24gcGFyc2VyIGV4dHJhY3Rz IHRlc3RzIGZyb20gY29tbWVudC1vbmx5IGxpbmVzLiAgRXZlcnkKLWNvbW1lbnQgYXNzZXJ0aW9u IGxpbmUgc3RhcnRzIGVpdGhlciB3aXRoIGEgY2FyZXQgKEBzYW1we159KSBvciBhbgotYXJyb3cg KEBzYW1wezwtfSkuICBBIGNhcmV0L2Fycm93IHNob3VsZCBiZSBmb2xsb3dlZCBpbW1lZGlhdGVs eSBieSB0aGUKLW5hbWUgb2YgYSBmYWNlIHRvIGJlIGNoZWNrZWQuCitjb21tZW50IGFzc2VydGlv biBsaW5lIHN0YXJ0cyBlaXRoZXIgd2l0aCBhIGNhcmV0IChAc2FtcHtefSkgb3IgYW4gYXJyb3cK KyhAc2FtcHs8LX0pLiAgQSBzaW5nbGUgY2FyZXQvYXJyb3cgb3IgY2FyZXRzIHNob3VsZCBiZSBm b2xsb3dlZAoraW1tZWRpYXRlbHkgYnkgdGhlIG5hbWUgb2YgYSBmYWNlIG9yIGEgbGlzdCBvZiBm YWNlcyB0byBiZSBjaGVja2VkCithZ2FpbnN0IHRoZSBAY29kZXs6ZmFjZX0gcHJvcGVydHkgYXQg cG9pbnQuCgogVGhlIHRlc3QgdGhlbiBjaGVja3MgaWYgdGhlIGZpcnN0IG5vbi1hc3NlcnRpb24g Y29sdW1uIGFib3ZlIHRoZSBjYXJldAogY29udGFpbnMgYSBmYWNlIGV4cGVjdGVkIGJ5IHRoZSBh c3NlcnRpb246CkBAIC05NjcsMTAgKzk2OSw0MyBAQCBTeW50YXggSGlnaGxpZ2h0aW5nIFRlc3Rz CiAvLyAgICAgICAgICAgICAgIF4gZm9udC1sb2NrLXB1bmN0dWF0aW9uLWZhY2UKIC8vIHRoaXMg aXMgbm90IGFuIGFzc2VydGlvbiwgaXQncyBqdXN0IGEgY29tbWVudAogLy8gICBeIGZvbnQtbG9j ay1jb21tZW50LWZhY2UKKworLy8gbXVsdGlwbGUgY2FyZXRzIHBlciBsaW5lCisvLyBeXl5eICAg ICBeICAgIF4gZm9udC1sb2NrLWNvbW1lbnQtZmFjZQorQGVuZCBleGFtcGxlCisKK0JvdGggc3lt Ym9sLW9ubHkgQGNvZGV7OmZhY2V9IHByb3BlcnR5IHZhbHVlcyBhbmQgYXNzZXJ0aW9uIGZhY2Ug dmFsdWVzCithcmUgbm9ybWFsaXplZCB0byBzaW5nbGUgZWxlbWVudCBsaXN0cyBzbyBhc3NlcnRp b25zIGJlbG93IGFyZQorZXF1aXZhbGVudDoKKworQGV4YW1wbGUKKy8vIHNpbmdsZQorLy8gXiBm b250LWxvY2stY29tbWVudC1mYWNlCisvLyBzaW5nbGUKKy8vIF4gKGZvbnQtbG9jay1jb21tZW50 LWZhY2UpCitAZW5kIGV4YW1wbGUKKworQXNzZXJ0aW9ucyBjYW4gYmUgbmVnYXRlZDoKKworQGV4 YW1wbGUKK3ZhciB2YXJpYWJsZSA9IDExOworLy8gIF4gIWZvbnQtbG9jay1jb21tZW50LWZhY2UK K0BlbmQgZXhhbXBsZQorCitJdCBpcyBwb3NzaWJsZSB0byBzcGVjaWZ5IGZhY2UgbGlzdHMgaW4g YXNzZXJ0aW9uczoKKworQGV4YW1wbGUKKy8vIFRPRE8KKy8vIF5eXl4gKGZvbnQtbG9jay1jb21t ZW50LWZhY2UgaGwtdG9kbykKKyAgICAgdmFyIHRlc3QgPSAxOworLy8gXiAgICAoKQorLy8gXiAg ICBuaWwKKy8vICAgbmVnYXRpb24gd29ya3MgYXMgZXhwZWN0ZWQKKy8vICAgXiAgIW5pbAogQGVu ZCBleGFtcGxlCgotVGhlIGFycm93IG1lYW5zIHRoYXQgdGhlIGZpcnN0IG5vbi1lbXB0eSBjb2x1 bW4gb2YgdGhlIGFzc2VydGlvbiBsaW5lCi13aWxsIGJlIHVzZWQgZm9yIHRoZSBjaGVjazoKK1Ro ZSBhcnJvdyAoQHNhbXB7PC19KSBtZWFucyB0aGF0IHRoZSBmaXJzdCBub24tZW1wdHkgY29sdW1u IG9mIHRoZQorYXNzZXJ0aW9uIGxpbmUgd2lsbCBiZSB1c2VkIGZvciB0aGUgY2hlY2s6CgogQGV4 YW1wbGUKIHZhciB2YXJpYWJsZSA9IDE7CmRpZmYgLS1naXQgYS9saXNwL2VtYWNzLWxpc3AvZXJ0 LWZvbnQtbG9jay5lbCBiL2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLmVsCmluZGV4IDI5 MTE0NzEyZjkyLi5lNzdjODk0NWRjMyAxMDA2NDQKLS0tIGEvbGlzcC9lbWFjcy1saXNwL2VydC1m b250LWxvY2suZWwKKysrIGIvbGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2suZWwKQEAgLTM5 LDE2ICszOSwzMyBAQAogKHJlcXVpcmUgJ25ld2NvbW1lbnQpCiAocmVxdWlyZSAncGNhc2UpCgot KGRlZmNvbnN0IGVydC1mb250LWxvY2stLWFzc2VydGlvbi1yZQorKGRlZmNvbnN0IGVydC1mb250 LWxvY2stLWZhY2Utc3ltYm9sLXJlCisgIChyeCAob25lLW9yLW1vcmUgKG9yIGFscGhhbnVtZXJp YyAiLSIgIl8iICIuIikpKQorICAiQSBmYWNlIHN5bWJvbCBtYXRjaGluZyByZWdleC4iKQorCiso ZGVmY29uc3QgZXJ0LWZvbnQtbG9jay0tZmFjZS1zeW1ib2wtbGlzdC1yZQorICAocnggIigiCisg ICAgICAoKiB3aGl0ZXNwYWNlKQorICAgICAgKG9uZS1vci1tb3JlCisgICAgICAgKHNlcSAocmVn ZXhwIGVydC1mb250LWxvY2stLWZhY2Utc3ltYm9sLXJlKQorICAgICAgICAgICAgKCogd2hpdGVz cGFjZSkpKQorICAgICAgIikiKQorICAiQSBmYWNlIHN5bWJvbCBsaXN0IG1hdGNoaW5nIHJlZ2V4 LiIpCisKKyhkZWZjb25zdCBlcnQtZm9udC1sb2NrLS1hc3NlcnRpb24tbGluZS1yZQogICAocngK LSAgIDs7IGNvbHVtbiBzcGVjaWZpZXJzCisgICA7OyBsZWFkaW5nIGNvbHVtbiBhc3NlcnRpb24g KGFycm93L2NhcmV0KQogICAgKGdyb3VwIChvciAiXiIgIjwtIikpCi0gICAob25lLW9yLW1vcmUg IiAiKQorICAgKHplcm8tb3ItbW9yZSB3aGl0ZXNwYWNlKQorICAgOzsgcG9zc2libGUgdG8gaGF2 ZSBtYW55IGNhcmV0cyBvbiBhbiBhc3NlcnRpb24gbGluZQorICAgKGdyb3VwICh6ZXJvLW9yLW1v cmUgKHNlcSAiXiIgKHplcm8tb3ItbW9yZSB3aGl0ZXNwYWNlKSkpKQogICAgOzsgb3B0aW9uYWwg bmVnYXRpb24gb2YgdGhlIGZhY2Ugc3BlY2lmaWNhdGlvbgogICAgKGdyb3VwIChvcHRpb25hbCAi ISIpKQotICAgOzsgZmFjZSBzeW1ib2wgbmFtZQotICAgKGdyb3VwIChvbmUtb3ItbW9yZSAob3Ig YWxwaGFudW1lcmljICItIiAiXyIgIi4iKSkpKQotICAiQW4gZXJ0LWZvbnQtbG9jayBhc3NlcnRp b24gcmVnZXguIikKKyAgICh6ZXJvLW9yLW1vcmUgd2hpdGVzcGFjZSkKKyAgIDs7IGZhY2Ugc3lt Ym9sIG5hbWUgb3IgYSBsaXN0IG9mIHN5bWJvbHMKKyAgIChncm91cCAob3IgKHJlZ2V4cCBlcnQt Zm9udC1sb2NrLS1mYWNlLXN5bWJvbC1yZSkKKyAgICAgICAgICAgICAgKHJlZ2V4cCBlcnQtZm9u dC1sb2NrLS1mYWNlLXN5bWJvbC1saXN0LXJlKSkpKQorICAiQW4gZXJ0LWZvbnQtbG9jayBhc3Nl cnRpb24gbGluZSByZWdleC4iKQoKIChkZWZ1biBlcnQtZm9udC1sb2NrLS12YWxpZGF0ZS1tYWpv ci1tb2RlIChtb2RlKQogICAiVmFsaWRhdGUgaWYgTU9ERSBpcyBhIHZhbGlkIG1ham9yIG1vZGUu IgpAQCAtMjEyLDcgKzIyOSw3IEBAIGVydC1mb250LWxvY2stLWxpbmUtYXNzZXJ0aW9uLXAKICAg KHNhdmUtZXhjdXJzaW9uCiAgICAgKGJlZ2lubmluZy1vZi1saW5lKQogICAgIChza2lwLXN5bnRh eC1mb3J3YXJkICIgIikKLSAgICAocmUtc2VhcmNoLWZvcndhcmQgZXJ0LWZvbnQtbG9jay0tYXNz ZXJ0aW9uLXJlCisgICAgKHJlLXNlYXJjaC1mb3J3YXJkIGVydC1mb250LWxvY2stLWFzc2VydGlv bi1saW5lLXJlCiAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLWVuZC1wb3NpdGlvbikgdCAx KSkpCgogKGRlZnVuIGVydC1mb250LWxvY2stLWdvdG8tZmlyc3QtY2hhciAoKQpAQCAtMjUyLDgg KzI2OSw4IEBAIGVydC1mb250LWxvY2stLXBhcnNlLWNvbW1lbnRzCiAgICAgICAgICAgKHRocm93 ICduZXh0bGluZSB0KSkKCgotICAgICAgICA7OyBDb2xsZWN0IHRoZSBhc3NlcnRpb24KLSAgICAg ICAgKHdoZW4gKHJlLXNlYXJjaC1mb3J3YXJkIGVydC1mb250LWxvY2stLWFzc2VydGlvbi1yZQor ICAgICAgICA7OyBDb2xsZWN0IHRoZSBmaXJzdCBsaW5lIGFzc2VydGlvbiAoY2FyZXQgb3IgYXJy b3cpCisgICAgICAgICh3aGVuIChyZS1zZWFyY2gtZm9yd2FyZCBlcnQtZm9udC1sb2NrLS1hc3Nl cnRpb24tbGluZS1yZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtZW5k LXBvc2l0aW9uKSB0IDEpCgogICAgICAgICAgICh1bmxlc3MgKD4gbGluZXRvY2hlY2sgLTEpCkBA IC0yNjYsMjEgKzI4MywzOCBAQCBlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgtIChtYXRjaC1iZWdpbm5pbmcgMSkgKGxp bmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGVydC1mb250LWxvY2stLWdldC1maXJzdC1jaGFyLWNvbHVtbikpKQogICAgICAgICAgICAg ICAgICA7OyBuZWdhdGUgdGhlIGZhY2U/Ci0gICAgICAgICAgICAgICAgIChuZWdhdGlvbiAoc3Ry aW5nLWVxdWFsIChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyAyKSAiISIpKQorICAgICAgICAg ICAgICAgICAobmVnYXRpb24gKHN0cmluZy1lcXVhbCAobWF0Y2gtc3RyaW5nLW5vLXByb3BlcnRp ZXMgMykgIiEiKSkKICAgICAgICAgICAgICAgICAgOzsgdGhlIGZhY2UgdGhhdCBpcyBzdXBwb3Nl ZCB0byBiZSBpbiB0aGUgcG9zaXRpb24gc3BlY2lmaWVkCi0gICAgICAgICAgICAgICAgIChmYWNl IChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyAzKSkpCisgICAgICAgICAgICAgICAgIChmYWNl IChyZWFkIChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyA0KSkpKQoKKyAgICAgICAgICAgIDs7 IENvbGxlY3QgdGhlIGZpcnN0IGFzc2VydGlvbiBvbiB0aGUgbGluZQogICAgICAgICAgICAgKHB1 c2ggKGxpc3QgOmxpbmUtY2hlY2tlZCBsaW5ldG9jaGVjawogICAgICAgICAgICAgICAgICAgICAg ICAgOmxpbmUtYXNzZXJ0IGN1cmxpbmUKICAgICAgICAgICAgICAgICAgICAgICAgIDpjb2x1bW4t Y2hlY2tlZCBjb2x1bW4tY2hlY2tlZAogICAgICAgICAgICAgICAgICAgICAgICAgOmZhY2UgZmFj ZQogICAgICAgICAgICAgICAgICAgICAgICAgOm5lZ2F0aW9uIG5lZ2F0aW9uKQotICAgICAgICAg ICAgICAgICAgdGVzdHMpKSkpCisgICAgICAgICAgICAgICAgICB0ZXN0cykKKworICAgICAgICAg ICAgOzsgQ29sbGVjdCBhbGwgdGhlIG90aGVyIGxpbmUgY2FyZXRzIChpZiBwcmVzZW50KQorICAg ICAgICAgICAgKGdvdG8tY2hhciAobWF0Y2gtYmVnaW5uaW5nIDIpKQorICAgICAgICAgICAgKHdo aWxlIChlcXVhbCAoZm9sbG93aW5nLWNoYXIpID9eKQorICAgICAgICAgICAgICAoc2V0cSBjb2x1 bW4tY2hlY2tlZCAoLSAocG9pbnQpIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKQorICAgICAg ICAgICAgICAocHVzaCAobGlzdCA6bGluZS1jaGVja2VkIGxpbmV0b2NoZWNrCisgICAgICAgICAg ICAgICAgICAgICAgICAgIDpsaW5lLWFzc2VydCBjdXJsaW5lCisgICAgICAgICAgICAgICAgICAg ICAgICAgIDpjb2x1bW4tY2hlY2tlZCBjb2x1bW4tY2hlY2tlZAorICAgICAgICAgICAgICAgICAg ICAgICAgICA6ZmFjZSBmYWNlCisgICAgICAgICAgICAgICAgICAgICAgICAgIDpuZWdhdGlvbiBu ZWdhdGlvbikKKyAgICAgICAgICAgICAgICAgICAgdGVzdHMpCisgICAgICAgICAgICAgIChmb3J3 YXJkLWNoYXIpCisgICAgICAgICAgICAgIChza2lwLXN5bnRheC1mb3J3YXJkICIgIikpKSkpCgog ICAgICAgOzsgbmV4dCBsaW5lCiAgICAgICAoc2V0cSBjdXJsaW5lICgxKyBjdXJsaW5lKSkKICAg ICAgIChmb3J3YXJkLWxpbmUgMSkpCgorICAgICh1bmxlc3MgdGVzdHMKKyAgICAgICh1c2VyLWVy cm9yICJObyB0ZXN0IGFzc2VydGlvbnMgZm91bmQiKSkKKwogICAgIChyZXZlcnNlIHRlc3RzKSkp CgogKGRlZnVuIGVydC1mb250LWxvY2stLXBvaW50LWF0LWxpbmUtYW5kLWNvbHVtbiAobGluZSBj b2x1bW4pCkBAIC0zMDcsMjEgKzM0MSwzMCBAQCBlcnQtZm9udC1sb2NrLS1jaGVjay1mYWNlcwog ICAgIChsZXQqICgobGluZS1jaGVja2VkIChwbGlzdC1nZXQgdGVzdCA6bGluZS1jaGVja2VkKSkK ICAgICAgICAgICAgKGxpbmUtYXNzZXJ0IChwbGlzdC1nZXQgdGVzdCA6bGluZS1hc3NlcnQpKQog ICAgICAgICAgICAoY29sdW1uLWNoZWNrZWQgKHBsaXN0LWdldCB0ZXN0IDpjb2x1bW4tY2hlY2tl ZCkpCi0gICAgICAgICAgIChleHBlY3RlZC1mYWNlIChpbnRlcm4gKHBsaXN0LWdldCB0ZXN0IDpm YWNlKSkpCisgICAgICAgICAgIChleHBlY3RlZC1mYWNlIChwbGlzdC1nZXQgdGVzdCA6ZmFjZSkp CiAgICAgICAgICAgIChuZWdhdGlvbiAocGxpc3QtZ2V0IHRlc3QgOm5lZ2F0aW9uKSkKCiAgICAg ICAgICAgIChhY3R1YWwtZmFjZSAoZ2V0LXRleHQtcHJvcGVydHkgKGVydC1mb250LWxvY2stLXBv aW50LWF0LWxpbmUtYW5kLWNvbHVtbiBsaW5lLWNoZWNrZWQgY29sdW1uLWNoZWNrZWQpICdmYWNl KSkKICAgICAgICAgICAgKGxpbmUtc3RyIChlcnQtZm9udC1sb2NrLS1nZXQtbGluZSBsaW5lLWNo ZWNrZWQpKQogICAgICAgICAgICAobGluZS1hc3NlcnQtc3RyIChlcnQtZm9udC1sb2NrLS1nZXQt bGluZSBsaW5lLWFzc2VydCkpKQoKLSAgICAgICh3aGVuIChub3QgKGVxIGFjdHVhbC1mYWNlIGV4 cGVjdGVkLWZhY2UpKQorICAgICAgOzsgbm9ybWFsaXplIGJvdGggZXhwZWN0ZWQgYW5kIHJlc3Vs dGluZyBmYWNlIC0gdGhlc2UgY2FuIGJlCisgICAgICA7OyBlaXRoZXIgc3ltYm9scywgbmlscyBv ciBsaXN0cyBvZiBzeW1ib2xzCisgICAgICAod2hlbiAobm90IChsaXN0cCBhY3R1YWwtZmFjZSkp CisgICAgICAgIChzZXRxIGFjdHVhbC1mYWNlIChsaXN0IGFjdHVhbC1mYWNlKSkpCisgICAgICAo d2hlbiAobm90IChsaXN0cCBleHBlY3RlZC1mYWNlKSkKKyAgICAgICAgKHNldHEgZXhwZWN0ZWQt ZmFjZSAobGlzdCBleHBlY3RlZC1mYWNlKSkpCisKKyAgICAgIDs7IGZhaWwgd2hlbiBsaXN0cyBh cmUgbm90ICdlcXVhbCBhbmQgdGhlIGFzc2VydGlvbiBpcyAqbm90IG5lZ2F0ZWQqCisgICAgICAo d2hlbiAoYW5kIChub3QgbmVnYXRpb24pIChub3QgKGVxdWFsIGFjdHVhbC1mYWNlIGV4cGVjdGVk LWZhY2UpKSkKICAgICAgICAgKGVydC1mYWlsCiAgICAgICAgICAobGlzdCAoZm9ybWF0ICJFeHBl Y3RlZCBmYWNlICVTLCBnb3QgJVMgb24gbGluZSAlZCBjb2x1bW4gJWQiCiAgICAgICAgICAgICAg ICAgICAgICAgIGV4cGVjdGVkLWZhY2UgYWN0dWFsLWZhY2UgbGluZS1jaGVja2VkIGNvbHVtbi1j aGVja2VkKQogICAgICAgICAgICAgICAgOmxpbmUgbGluZS1zdHIKICAgICAgICAgICAgICAgIDph c3NlcnQgbGluZS1hc3NlcnQtc3RyKSkpCgotICAgICAgKHdoZW4gKGFuZCBuZWdhdGlvbiAoZXEg YWN0dWFsLWZhY2UgZXhwZWN0ZWQtZmFjZSkpCisgICAgICA7OyBmYWlsIHdoZW4gbGlzdHMgYXJl ICdlcXVhbCBhbmQgdGhlIGFzc2VydGlvbiBpcyAqbmVnYXRlZCoKKyAgICAgICh3aGVuIChhbmQg bmVnYXRpb24gKGVxdWFsIGFjdHVhbC1mYWNlIGV4cGVjdGVkLWZhY2UpKQogICAgICAgICAoZXJ0 LWZhaWwKICAgICAgICAgIChsaXN0IChmb3JtYXQgIkRpZCBub3QgZXhwZWN0IGZhY2UgJVMgZmFj ZSBvbiBsaW5lICVkLCBjb2x1bW4gJWQiCiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbC1m YWNlIGxpbmUtY2hlY2tlZCBjb2x1bW4tY2hlY2tlZCkKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9l bWFjcy1saXNwL2VydC1mb250LWxvY2stcmVzb3VyY2VzL25vLWFzc2VydHMuanMgYi90ZXN0L2xp c3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXJlc291cmNlcy9uby1hc3NlcnRzLmpzCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41ZWFlOWFmMjEyZgotLS0gL2Rldi9u dWxsCisrKyBiL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2stcmVzb3VyY2VzL25v LWFzc2VydHMuanMKQEAgLTAsMCArMSwyIEBACit2YXIgYWJjID0gZnVuY3Rpb24oZCkgeworfTsK ZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2stdGVzdHMuZWwg Yi90ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXRlc3RzLmVsCmluZGV4IGUwYmEx ZTk0OWIyLi5mYTJlNWRjNGRiNyAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL2VtYWNzLWxpc3AvZXJ0 LWZvbnQtbG9jay10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1s b2NrLXRlc3RzLmVsCkBAIC0xMzgsMTMgKzEzOCwyNCBAQCB0ZXN0LWxpbmUtY29tbWVudC1wLS1j CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChzaG91bGQgKGVydC1mb250LWxvY2stLWxpbmUtY29tbWVudC1w KSkpKQoKKyhlcnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1uby1hc3NlcnRpb24tZXJy b3IgKCkKKyAgKGxldCogKChzdHIgIgorbm90X2FuX2Fzc2VydGlvbgorcmFuZG9tX3N5bWJvbAor IikpCisgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgIChpbnNlcnQgc3RyKQorICAgICAgKGph dmFzY3JpcHQtbW9kZSkKKworICAgICAgKHNob3VsZC1lcnJvciAoZXJ0LWZvbnQtbG9jay0tcGFy c2UtY29tbWVudHMpIDp0eXBlICd1c2VyLWVycm9yKSkpKQorCiAoZXJ0LWRlZnRlc3QgdGVzdC1w YXJzZS1jb21tZW50cy0tc2luZ2xlLWxpbmUtZXJyb3IgKCkKICAgKGxldCogKChzdHIgIi8vIF4g ZmFjZS5mYWNlMSIpKQogICAgICh3aXRoLXRlbXAtYnVmZmVyCiAgICAgICAoaW5zZXJ0IHN0cikK ICAgICAgIChqYXZhc2NyaXB0LW1vZGUpCgotICAgICAgKHNob3VsZC1lcnJvciAoZXJ0LWZvbnQt bG9jay0tcGFyc2UtY29tbWVudHMpKSkpKQorICAgICAgKHNob3VsZC1lcnJvciAoZXJ0LWZvbnQt bG9jay0tcGFyc2UtY29tbWVudHMpIDp0eXBlICd1c2VyLWVycm9yKSkpKQoKIChlcnQtZGVmdGVz dCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1zaW5nbGUtbGluZS1zaW5nbGUtY2FyZXQgKCkKICAgKGxl dCogKChzdHIgIgpAQCAtMTU5LDcgKzE3MCw0NiBAQCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1zaW5n bGUtbGluZS1zaW5nbGUtY2FyZXQKICAgICAgIChzZXRxIGFzc2VydHMgKGVydC1mb250LWxvY2st LXBhcnNlLWNvbW1lbnRzKSkKICAgICAgIChzaG91bGQgKGVxbCAobGVuZ3RoIGFzc2VydHMpIDEp KQogICAgICAgKHNob3VsZCAoZXF1YWwgKGNhciBhc3NlcnRzKQotICAgICAgICAgICAgICAgICAg ICAgJyg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDMgOmZh Y2UgImZhY2UuZmFjZTEiIDpuZWdhdGlvbiBuaWwpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAg ICcoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCAzIDpjb2x1bW4tY2hlY2tlZCAzIDpmYWNl IGZhY2UuZmFjZTEgOm5lZ2F0aW9uIG5pbCkpKSkpKQorCisoZXJ0LWRlZnRlc3QgdGVzdC1wYXJz ZS1jb21tZW50cy0tc2luZ2xlLWxpbmUtbWFueS1jYXJldHMgKCkKKyAgKGxldCogKChzdHIgIgor bXVsdGlwbGVjYXJldHMKKy8vXl5eIF5eIF4gZmFjZS5mYWNlMQorIikKKyAgICAgICAgIGFzc2Vy dHMpCisgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgIChpbnNlcnQgc3RyKQorICAgICAgKGph dmFzY3JpcHQtbW9kZSkKKworICAgICAgKHNldHEgYXNzZXJ0cyAoZXJ0LWZvbnQtbG9jay0tcGFy c2UtY29tbWVudHMpKQorICAgICAgKHNob3VsZCAoZXFsIChsZW5ndGggYXNzZXJ0cykgNikpCisg ICAgICAoc2hvdWxkIChlcXVhbCBhc3NlcnRzCisgICAgICAgICAgICAgICAgICAgICAnKCg6bGlu ZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDIgOmZhY2UgZmFjZS5m YWNlMSA6bmVnYXRpb24gbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tl ZCAyIDpsaW5lLWFzc2VydCAzIDpjb2x1bW4tY2hlY2tlZCAzIDpmYWNlIGZhY2UuZmFjZTEgOm5l Z2F0aW9uIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGlu ZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgNCA6ZmFjZSBmYWNlLmZhY2UxIDpuZWdhdGlvbiBu aWwpCisgICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0 IDMgOmNvbHVtbi1jaGVja2VkIDYgOmZhY2UgZmFjZS5mYWNlMSA6bmVnYXRpb24gbmlsKQorICAg ICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCAzIDpjb2x1 bW4tY2hlY2tlZCA3IDpmYWNlIGZhY2UuZmFjZTEgOm5lZ2F0aW9uIG5pbCkKKyAgICAgICAgICAg ICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNr ZWQgOSA6ZmFjZSBmYWNlLmZhY2UxIDpuZWdhdGlvbiBuaWwpKSkpKSkpCisKKyhlcnQtZGVmdGVz dCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1mYWNlLWxpc3QgKCkKKyAgKGxldCogKChzdHIgIgorZmFj ZWxpc3QKKy8vIF4gKGZhY2UxIGZhY2UyKQorLy8gXiAhKGZhY2UzIGZhY2U0KQorLy8gXiAoZmFj ZTUpCisiKQorICAgICAgICAgYXNzZXJ0cykKKyAgICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgICAg KGluc2VydCBzdHIpCisgICAgICAoamF2YXNjcmlwdC1tb2RlKQorCisgICAgICAoc2V0cSBhc3Nl cnRzIChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpCisgICAgICAoc2hvdWxkIChlcWwg KGxlbmd0aCBhc3NlcnRzKSAzKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIGFzc2VydHMKKyAgICAg ICAgICAgICAgICAgICAgICcoKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1u LWNoZWNrZWQgMyA6ZmFjZSAoZmFjZTEgZmFjZTIpIDpuZWdhdGlvbiBuaWwpCisgICAgICAgICAg ICAgICAgICAgICAgICg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDQgOmNvbHVtbi1jaGVj a2VkIDMgOmZhY2UgKGZhY2UzIGZhY2U0KSA6bmVnYXRpb24gdCkKKyAgICAgICAgICAgICAgICAg ICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgNSA6Y29sdW1uLWNoZWNrZWQgMyA6 ZmFjZSAoZmFjZTUpIDpuZWdhdGlvbiBuaWwpKSkpKSkpCgogKGVydC1kZWZ0ZXN0IHRlc3QtcGFy c2UtY29tbWVudHMtLWNhcmV0LW5lZ2F0aW9uICgpCiAgIChsZXQqICgoc3RyICIKQEAgLTE3NSwx MSArMjI1LDExIEBAIHRlc3QtcGFyc2UtY29tbWVudHMtLWNhcmV0LW5lZ2F0aW9uCiAgICAgICAo c2V0cSBhc3NlcnRzIChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpCiAgICAgICAoc2hv dWxkIChlcWwgKGxlbmd0aCBhc3NlcnRzKSAyKSkKICAgICAgIChzaG91bGQgKGVxdWFsIGFzc2Vy dHMKLSAgICAgICAgICAgICAgICAgICAgICcoKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQg MyA6Y29sdW1uLWNoZWNrZWQgMyA6ZmFjZSAiZmFjZSIgOm5lZ2F0aW9uIHQpCi0gICAgICAgICAg ICAgICAgICAgICAgICg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDQgOmNvbHVtbi1jaGVj a2VkIDMgOmZhY2UgImZhY2UiIDpuZWdhdGlvbiBuaWwpKSkpKSkpCisgICAgICAgICAgICAgICAg ICAgICAnKCg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDMg OmZhY2UgZmFjZSA6bmVnYXRpb24gdCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNo ZWNrZWQgMiA6bGluZS1hc3NlcnQgNCA6Y29sdW1uLWNoZWNrZWQgMyA6ZmFjZSBmYWNlIDpuZWdh dGlvbiBuaWwpKSkpKSkpCgoKLShlcnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1zaW5n bGUtbGluZS1tdWx0aXBsZS1jYXJldHMgKCkKKyhlcnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNvbW1l bnRzLS1zaW5nbGUtbGluZS1tdWx0aXBsZS1hc3NlcnQtbGluZXMgKCkKICAgKGxldCogKChzdHIg IgogZmlyc3QKIC8vIF4gZmFjZTEKQEAgLTE5NiwxMiArMjQ2LDEyIEBAIHRlc3QtcGFyc2UtY29t bWVudHMtLXNpbmdsZS1saW5lLW11bHRpcGxlLWNhcmV0cwogICAgICAgKHNldHEgYXNzZXJ0cyAo ZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKQogICAgICAgKHNob3VsZCAoZXFsIChsZW5n dGggYXNzZXJ0cykgNCkpCiAgICAgICAoc2hvdWxkIChlcXVhbCBhc3NlcnRzCi0gICAgICAgICAg ICAgICAgICAgICAnKCg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVj a2VkIDMgOmZhY2UgImZhY2UxIiA6bmVnYXRpb24gbmlsKQotICAgICAgICAgICAgICAgICAgICAg ICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCA0IDpjb2x1bW4tY2hlY2tlZCA3IDpmYWNl ICJmYWNlLmZhY2UyIiA6bmVnYXRpb24gbmlsKQotICAgICAgICAgICAgICAgICAgICAgICAoOmxp bmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCA1IDpjb2x1bW4tY2hlY2tlZCA3IDpmYWNlICJmYWNl LWZhY2UuZmFjZTMiIDpuZWdhdGlvbiBuaWwpCi0gICAgICAgICAgICAgICAgICAgICAgICg6bGlu ZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDYgOmNvbHVtbi1jaGVja2VkIDcgOmZhY2UgImZhY2Vf ZmFjZS5mYWNlNCIgOm5lZ2F0aW9uIG5pbCkpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICco KDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgMyA6ZmFjZSBm YWNlMSA6bmVnYXRpb24gbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tl ZCAyIDpsaW5lLWFzc2VydCA0IDpjb2x1bW4tY2hlY2tlZCA3IDpmYWNlIGZhY2UuZmFjZTIgOm5l Z2F0aW9uIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGlu ZS1hc3NlcnQgNSA6Y29sdW1uLWNoZWNrZWQgNyA6ZmFjZSBmYWNlLWZhY2UuZmFjZTMgOm5lZ2F0 aW9uIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1h c3NlcnQgNiA6Y29sdW1uLWNoZWNrZWQgNyA6ZmFjZSBmYWNlX2ZhY2UuZmFjZTQgOm5lZ2F0aW9u IG5pbCkpKSkpKSkKCi0oZXJ0LWRlZnRlc3QgdGVzdC1wYXJzZS1jb21tZW50cy0tbXVsdGlwbGUt bGluZS1tdWx0aXBsZS1jYXJldHMgKCkKKyhlcnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNvbW1lbnRz LS1tdWx0aXBsZS1saW5lLW11bHRpcGxlLWFzc2VydC1saW5lcyAoKQogICAobGV0KiAoKHN0ciAi CiBmaXJzdAogLy8gXiBmYWNlMQpAQCAtMjE4LDkgKzI2OCw5IEBAIHRlc3QtcGFyc2UtY29tbWVu dHMtLW11bHRpcGxlLWxpbmUtbXVsdGlwbGUtY2FyZXRzCiAgICAgICAoc2V0cSBhc3NlcnRzIChl cnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpCiAgICAgICAoc2hvdWxkIChlcWwgKGxlbmd0 aCBhc3NlcnRzKSAzKSkKICAgICAgIChzaG91bGQgKGVxdWFsIGFzc2VydHMKLSAgICAgICAgICAg ICAgICAgICAgICcoKDpsaW5lLWNoZWNrZWQgMiAgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVj a2VkIDMgOmZhY2UgImZhY2UxIiA6bmVnYXRpb24gbmlsKQotICAgICAgICAgICAgICAgICAgICAg ICAoOmxpbmUtY2hlY2tlZCA0ICA6bGluZS1hc3NlcnQgNSA6Y29sdW1uLWNoZWNrZWQgMyA6ZmFj ZSAiZmFjZTIiIDpuZWdhdGlvbiBuaWwpCi0gICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1j aGVja2VkIDQgIDpsaW5lLWFzc2VydCA2IDpjb2x1bW4tY2hlY2tlZCA1IDpmYWNlICJmYWNlMyIg Om5lZ2F0aW9uIG5pbCkpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICcoKDpsaW5lLWNoZWNr ZWQgMiAgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDMgOmZhY2UgZmFjZTEgOm5lZ2F0 aW9uIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgNCAgOmxpbmUt YXNzZXJ0IDUgOmNvbHVtbi1jaGVja2VkIDMgOmZhY2UgZmFjZTIgOm5lZ2F0aW9uIG5pbCkKKyAg ICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgNCAgOmxpbmUtYXNzZXJ0IDYgOmNv bHVtbi1jaGVja2VkIDUgOmZhY2UgZmFjZTMgOm5lZ2F0aW9uIG5pbCkpKSkpKSkKCgogKGVydC1k ZWZ0ZXN0IHRlc3QtcGFyc2UtY29tbWVudHMtLWFycm93LXNpbmdsZS1saW5lLXNpbmdsZSAoKQpA QCAtMjM2LDcgKzI4Niw3IEBAIHRlc3QtcGFyc2UtY29tbWVudHMtLWFycm93LXNpbmdsZS1saW5l LXNpbmdsZQogICAgICAgKHNldHEgYXNzZXJ0cyAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVu dHMpKQogICAgICAgKHNob3VsZCAoZXFsIChsZW5ndGggYXNzZXJ0cykgMSkpCiAgICAgICAoc2hv dWxkIChlcXVhbCAoY2FyIGFzc2VydHMpCi0gICAgICAgICAgICAgICAgICAgICAnKDpsaW5lLWNo ZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgMCA6ZmFjZSAiZmFjZTEiIDpu ZWdhdGlvbiBuaWwpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICcoOmxpbmUtY2hlY2tlZCAy IDpsaW5lLWFzc2VydCAzIDpjb2x1bW4tY2hlY2tlZCAwIDpmYWNlIGZhY2UxIDpuZWdhdGlvbiBu aWwpKSkpKSkKCgogKGVydC1kZWZ0ZXN0IHRlc3QtcGFyc2UtY29tbWVudHMtYXJyb3ctbXVsdGlw bGUtbGluZS1zaW5nbGUgKCkKQEAgLTI1NCw5ICszMDQsOSBAQCB0ZXN0LXBhcnNlLWNvbW1lbnRz LWFycm93LW11bHRpcGxlLWxpbmUtc2luZ2xlCiAgICAgICAoc2V0cSBhc3NlcnRzIChlcnQtZm9u dC1sb2NrLS1wYXJzZS1jb21tZW50cykpCiAgICAgICAoc2hvdWxkIChlcWwgKGxlbmd0aCBhc3Nl cnRzKSAzKSkKICAgICAgIChzaG91bGQgKGVxdWFsIGFzc2VydHMKLSAgICAgICAgICAgICAgICAg ICAgICcoKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgMCA6 ZmFjZSAiZmFjZTEiIDpuZWdhdGlvbiBuaWwpCi0gICAgICAgICAgICAgICAgICAgICAgICg6bGlu ZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDQgOmNvbHVtbi1jaGVja2VkIDIgOmZhY2UgImZhY2Uy IiA6bmVnYXRpb24gbmlsKQotICAgICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCAy IDpsaW5lLWFzc2VydCA1IDpjb2x1bW4tY2hlY2tlZCA0IDpmYWNlICJmYWNlMyIgOm5lZ2F0aW9u IG5pbCkpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICcoKDpsaW5lLWNoZWNrZWQgMiA6bGlu ZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgMCA6ZmFjZSBmYWNlMSA6bmVnYXRpb24gbmlsKQor ICAgICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCA0IDpj b2x1bW4tY2hlY2tlZCAyIDpmYWNlIGZhY2UyIDpuZWdhdGlvbiBuaWwpCisgICAgICAgICAgICAg ICAgICAgICAgICg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDUgOmNvbHVtbi1jaGVja2Vk IDQgOmZhY2UgZmFjZTMgOm5lZ2F0aW9uIG5pbCkpKSkpKSkKCiAoZXJ0LWRlZnRlc3QgdGVzdC1w YXJzZS1jb21tZW50cy0tbm9uLWFzc2VydC1jb21tZW50LXNpbmdsZSAoKQogICAobGV0KiAoKHN0 ciAiCkBAIC0yNzEsNyArMzIxLDcgQEAgdGVzdC1wYXJzZS1jb21tZW50cy0tbm9uLWFzc2VydC1j b21tZW50LXNpbmdsZQogICAgICAgKHNldHEgYXNzZXJ0cyAoZXJ0LWZvbnQtbG9jay0tcGFyc2Ut Y29tbWVudHMpKQogICAgICAgKHNob3VsZCAoZXFsIChsZW5ndGggYXNzZXJ0cykgMSkpCiAgICAg ICAoc2hvdWxkIChlcXVhbCAoY2FyIGFzc2VydHMpCi0gICAgICAgICAgICAgICAgICAgICAnKDps aW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgNCA6ZmFjZSAiY29t bWVudC1mYWNlIiA6bmVnYXRpb24gbmlsKSkpKSkpCisgICAgICAgICAgICAgICAgICAgICAnKDps aW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgNCA6ZmFjZSBjb21t ZW50LWZhY2UgOm5lZ2F0aW9uIG5pbCkpKSkpKQoKIChlcnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNv bW1lbnRzLS1ub24tYXNzZXJ0LWNvbW1lbnQtbXVsdGlwbGUgKCkKICAgKGxldCogKChzdHIgIgpA QCAtMjg4LDkgKzMzOCw5IEBAIHRlc3QtcGFyc2UtY29tbWVudHMtLW5vbi1hc3NlcnQtY29tbWVu dC1tdWx0aXBsZQogICAgICAgKHNldHEgYXNzZXJ0cyAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29t bWVudHMpKQogICAgICAgKHNob3VsZCAoZXFsIChsZW5ndGggYXNzZXJ0cykgMykpCiAgICAgICAo c2hvdWxkIChlcXVhbCBhc3NlcnRzCi0gICAgICAgICAgICAgICAgICAgICAnKCg6bGluZS1jaGVj a2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDQgOmZhY2UgImNvbW1lbnQtZmFj ZSIgOm5lZ2F0aW9uIG5pbCkKLSAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQg MiA6bGluZS1hc3NlcnQgNCA6Y29sdW1uLWNoZWNrZWQgMTAgOmZhY2UgImNvbW1lbnQtZmFjZSIg Om5lZ2F0aW9uIG5pbCkKLSAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6 bGluZS1hc3NlcnQgNSA6Y29sdW1uLWNoZWNrZWQgMTggOmZhY2UgImNvbW1lbnQtZmFjZSIgOm5l Z2F0aW9uIG5pbCkpKSkpKSkKKyAgICAgICAgICAgICAgICAgICAgICcoKDpsaW5lLWNoZWNrZWQg MiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgNCA6ZmFjZSBjb21tZW50LWZhY2UgOm5l Z2F0aW9uIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGlu ZS1hc3NlcnQgNCA6Y29sdW1uLWNoZWNrZWQgMTAgOmZhY2UgY29tbWVudC1mYWNlIDpuZWdhdGlv biBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNz ZXJ0IDUgOmNvbHVtbi1jaGVja2VkIDE4IDpmYWNlIGNvbW1lbnQtZmFjZSA6bmVnYXRpb24gbmls KSkpKSkpKQoKCiAoZXJ0LWRlZnRlc3QgdGVzdC1wYXJzZS1jb21tZW50cy0tbXVsdGlsaW5lLWNv bW1lbnQtc2luZ2xlICgpCkBAIC0zMDgsNyArMzU4LDcgQEAgdGVzdC1wYXJzZS1jb21tZW50cy0t bXVsdGlsaW5lLWNvbW1lbnQtc2luZ2xlCiAgICAgICAoc2V0cSBhc3NlcnRzIChlcnQtZm9udC1s b2NrLS1wYXJzZS1jb21tZW50cykpCiAgICAgICAoc2hvdWxkIChlcWwgKGxlbmd0aCBhc3NlcnRz KSAxKSkKICAgICAgIChzaG91bGQgKGVxdWFsIChjYXIgYXNzZXJ0cykKLSAgICAgICAgICAgICAg ICAgICAgICcoOmxpbmUtY2hlY2tlZCAzIDpsaW5lLWFzc2VydCA0IDpjb2x1bW4tY2hlY2tlZCAz IDpmYWNlICJjb21tZW50LWZhY2UiIDpuZWdhdGlvbiBuaWwpKSkpKSkKKyAgICAgICAgICAgICAg ICAgICAgICcoOmxpbmUtY2hlY2tlZCAzIDpsaW5lLWFzc2VydCA0IDpjb2x1bW4tY2hlY2tlZCAz IDpmYWNlIGNvbW1lbnQtZmFjZSA6bmVnYXRpb24gbmlsKSkpKSkpCgogKGVydC1kZWZ0ZXN0IHRl c3QtcGFyc2UtY29tbWVudHMtLW11bHRpbGluZS1jb21tZW50LW11bHRpcGxlICgpCiAgIChsZXQq ICgoc3RyICIKQEAgLTMyNywxMyArMzc3LDQ3IEBAIHRlc3QtcGFyc2UtY29tbWVudHMtLW11bHRp bGluZS1jb21tZW50LW11bHRpcGxlCiAgICAgICAoc2V0cSBhc3NlcnRzIChlcnQtZm9udC1sb2Nr LS1wYXJzZS1jb21tZW50cykpCiAgICAgICAoc2hvdWxkIChlcWwgKGxlbmd0aCBhc3NlcnRzKSAy KSkKICAgICAgIChzaG91bGQgKGVxdWFsIGFzc2VydHMKLSAgICAgICAgICAgICAgICAgICAgICco KDpsaW5lLWNoZWNrZWQgMyA6bGluZS1hc3NlcnQgNCA6Y29sdW1uLWNoZWNrZWQgMyA6ZmFjZSAi Y29tbWVudC1mYWNlIiA6bmVnYXRpb24gbmlsKQotICAgICAgICAgICAgICAgICAgICAgICAoOmxp bmUtY2hlY2tlZCA1IDpsaW5lLWFzc2VydCA2IDpjb2x1bW4tY2hlY2tlZCA0IDpmYWNlICJjb21t ZW50LWZhY2UiIDpuZWdhdGlvbiBuaWwpKSkpKSkpCisgICAgICAgICAgICAgICAgICAgICAnKCg6 bGluZS1jaGVja2VkIDMgOmxpbmUtYXNzZXJ0IDQgOmNvbHVtbi1jaGVja2VkIDMgOmZhY2UgY29t bWVudC1mYWNlIDpuZWdhdGlvbiBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1j aGVja2VkIDUgOmxpbmUtYXNzZXJ0IDYgOmNvbHVtbi1jaGVja2VkIDQgOmZhY2UgY29tbWVudC1m YWNlIDpuZWdhdGlvbiBuaWwpKSkpKSkpCgogOzs7IFN5bnRheCBoaWdobGlnaHRpbmcgYXNzZXJ0 aW9uIHRlc3RzCiA7OwoKLShlcnQtZGVmdGVzdCB0ZXN0LXN5bnRheC1oaWdobGlnaHQtaW5saW5l LS1jYXJldC1tdWx0aXBsZS1mYWNlcyAoKQorKGVydC1kZWZ0ZXN0IHRlc3Qtc3ludGF4LWhpZ2hs aWdodC1pbmxpbmUtLW5pbC1saXN0ICgpCisgIChsZXQgKChzdHIgIgordmFyIGFiYyA9IGZ1bmN0 aW9uKGQpIHsKKy8vIF4gbmlsCisvLyAgIF4gIW5pbAorfTsKKworIikpCisgICAgKHdpdGgtdGVt cC1idWZmZXIKKyAgICAgIChpbnNlcnQgc3RyKQorICAgICAgKGphdmFzY3JpcHQtbW9kZSkKKyAg ICAgIChmb250LWxvY2stZW5zdXJlKQorCisgICAgICAoZXJ0LWZvbnQtbG9jay0tY2hlY2stZmFj ZXMKKyAgICAgICAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKSkpKQorCisoZXJ0LWRl ZnRlc3QgdGVzdC1zeW50YXgtaGlnaGxpZ2h0LWlubGluZS0tZmFjZS1saXN0ICgpCisgIChsZXQg KChzdHIgIgordmFyIGFiYyA9IGZ1bmN0aW9uKGQpIHsKKy8vICAgXiAodGVzdC1mYWNlLTIgdGVz dC1mYWNlLTEgZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZSkKK307CisKKyIpKQorICAgICh3 aXRoLXRlbXAtYnVmZmVyCisgICAgICAoaW5zZXJ0IHN0cikKKyAgICAgIChqYXZhc2NyaXB0LW1v ZGUpCisgICAgICAoZm9udC1sb2NrLWVuc3VyZSkKKworICAgICAgKGFkZC1mYWNlLXRleHQtcHJv cGVydHkgKHBvaW50LW1pbikgKHBvaW50LW1heCkgJ3Rlc3QtZmFjZS0xKQorICAgICAgKGFkZC1m YWNlLXRleHQtcHJvcGVydHkgKHBvaW50LW1pbikgKHBvaW50LW1heCkgJ3Rlc3QtZmFjZS0yKQor CisgICAgICAoZXJ0LWZvbnQtbG9jay0tY2hlY2stZmFjZXMKKyAgICAgICAoZXJ0LWZvbnQtbG9j ay0tcGFyc2UtY29tbWVudHMpKSkpKQorCisoZXJ0LWRlZnRlc3QgdGVzdC1zeW50YXgtaGlnaGxp Z2h0LWlubGluZS0tY2FyZXQtbXVsdGlwbGUtYXNzZXJ0aW9ucyAoKQogICAobGV0ICgoc3RyICIK IHZhciBhYmMgPSBmdW5jdGlvbihkKSB7CiAvLyAgIF4gZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUt ZmFjZQpAQCAtMzY0LDYgKzQ0OCwxOSBAQCB0ZXN0LXN5bnRheC1oaWdobGlnaHQtaW5saW5lLS1j YXJldC13cm9uZy1mYWNlCiAgICAgICAoc2hvdWxkLWVycm9yIChlcnQtZm9udC1sb2NrLS1jaGVj ay1mYWNlcwogICAgICAgICAgICAgICAgICAgICAgKGVydC1mb250LWxvY2stLXBhcnNlLWNvbW1l bnRzKSkpKSkpCgorKGVydC1kZWZ0ZXN0IHRlc3Qtc3ludGF4LWhpZ2hsaWdodC1pbmxpbmUtLWNh cmV0LW5lZ2F0ZWQtd3JvbmctZmFjZSAoKQorICAobGV0KiAoKHN0ciAiCit2YXIgYWJjID0gZnVu Y3Rpb24oZCkgeworLy8gICBeICFub3QtYS1mYWNlCit9OworIikpCisgICAgKHdpdGgtdGVtcC1i dWZmZXIKKyAgICAgIChpbnNlcnQgc3RyKQorICAgICAgKGphdmFzY3JpcHQtbW9kZSkKKyAgICAg IChmb250LWxvY2stZW5zdXJlKQorCisgICAgICAoZXJ0LWZvbnQtbG9jay0tY2hlY2stZmFjZXMK KyAgICAgICAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKSkpKQoKIChlcnQtZGVmdGVz dCB0ZXN0LXN5bnRheC1oaWdobGlnaHQtaW5saW5lLS1jb21tZW50LWZhY2UgKCkKICAgKGxldCog KChzdHIgIgpAQCAtNDU1LDYgKzU1MiwxMiBAQCB0ZXN0LW1hY3JvLXRlc3QtLWZpbGUKICAgamF2 YXNjcmlwdC1tb2RlCiAgICJjb3JyZWN0LmpzIikKCisoZXJ0LWZvbnQtbG9jay1kZWZ0ZXN0LWZp bGUgdGVzdC1tYWNyby10ZXN0LS1maWxlLW5vLWFzc2VydHMKKyAgICAiQ2hlY2sgZmFpbGluZyBv biBmaWxlcyB3aXRob3V0IGFzc2VydGlvbnMiCisgIDpleHBlY3RlZC1yZXN1bHQgOmZhaWxlZAor ICBqYXZhc2NyaXB0LW1vZGUKKyAgIm5vLWFzc2VydHMuanMiKQorCiAoZXJ0LWZvbnQtbG9jay1k ZWZ0ZXN0LWZpbGUgdGVzdC1tYWNyby10ZXN0LS1maWxlLWZhaWxpbmcKICAgICAiVGVzdCByZWFk aW5nIHdyb25nIGFzc2VydGlvbnMgZnJvbSBhIGZpbGUiCiAgIDpleHBlY3RlZC1yZXN1bHQgOmZh aWxlZAotLQoyLjM0LjEK --0000000000001ec5ec0613b193cb-- From debbugs-submit-bounces@debbugs.gnu.org Thu Mar 28 05:41:24 2024 Received: (at 69714-done) by debbugs.gnu.org; 28 Mar 2024 09:41:25 +0000 Received: from localhost ([127.0.0.1]:39084 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rpmGC-0004Gz-5x for submit@debbugs.gnu.org; Thu, 28 Mar 2024 05:41:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39956) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rpmG8-0004GO-23 for 69714-done@debbugs.gnu.org; Thu, 28 Mar 2024 05:41:23 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rpmG1-0008El-Rh; Thu, 28 Mar 2024 05:41:13 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=QwgPzIv0p40J9v790UCPilwFy4Q1LGKwYQ8yTlYDB88=; b=DCnP35LuLQa1 QqD5j/95G10pshZZ8vilO64RuWvF76b9FrGe9FRuFGzHbyoA4Z5z656dySD/2rtKgueo/T44M3Fz/ GmI/5s6D9Rk+rhSjTGktIUttxy72RYUKydS6LnlCvirSSusaEjNMuLtiVIL+43TqBZSl9AZUIpuXN FDAsVD0MeGn62H1uE6N30w4ow8QQKfwwoFFMAuJd5X4SYWaT2pcyr7Tu2HpJ625w3/WJomJbKRNQP A3T9AXJ5dcOAHt83EUMJM33UVOoXxoxE6FZ66J17Jrs2ZZY47P5rihqgt8mAwQMkEcC8koQ+IUMdj lCITDWz7JPs4Z1vW1ge0sQ==; Date: Thu, 28 Mar 2024 11:41:09 +0200 Message-Id: <86il16hex6.fsf@gnu.org> From: Eli Zaretskii To: Vladimir Kazanov In-Reply-To: (message from Vladimir Kazanov on Fri, 15 Mar 2024 11:47:27 +0000) Subject: Re: bug#69714: [PATCH] Improve ert-font-lock assertion parser (Bug#69714) References: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 69714-done Cc: 69714-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Vladimir Kazanov > Date: Fri, 15 Mar 2024 11:47:27 +0000 > > I've come up with a number of improvements for ert-font-lock as > requested in Bug#69714 (which can be closed now). > > The attached patch provides the fix, more unit tests and updated > documentation. I don't think we need to update NEWS as ert-font-lock > was announced there already. Thanks, installed on master, and closing the bug. From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 30 08:52:17 2024 Received: (at 69714) by debbugs.gnu.org; 30 Mar 2024 12:52:17 +0000 Received: from localhost ([127.0.0.1]:44173 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqYC0-0006Kq-Um for submit@debbugs.gnu.org; Sat, 30 Mar 2024 08:52:17 -0400 Received: from mail-lf1-x12a.google.com ([2a00:1450:4864:20::12a]:53492) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqYBz-0006K4-48 for 69714@debbugs.gnu.org; Sat, 30 Mar 2024 08:52:15 -0400 Received: by mail-lf1-x12a.google.com with SMTP id 2adb3069b0e04-513e6777af4so4487076e87.2 for <69714@debbugs.gnu.org>; Sat, 30 Mar 2024 05:52:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711803127; x=1712407927; darn=debbugs.gnu.org; h=to:cc:date:message-id:subject:mime-version :content-transfer-encoding:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=dlXsZgEGzxt1FIHYvVpiTDpquaFw+nGPi2U5Bq3ynd0=; b=CMH+Qcw2kZK3ytrrLDyo6MwsdtVxhKzOc9POFdv/2OMmQVoWkDdjgBHDiXdjniTfsv 94Kz2iFZdowjc+9Ek70a7RMOQWp2BXLLrGhJQwRlU2Si/fVT2a5NH/bbiT2aK16QDJS+ ifD8ZG7Gol3WZES8jzR9VEUZoYNJC/W7o+79VTGiDfhmXHn1Caq9hQsDFDUyEes5/chJ v5f/zT1Dtzc2r6CUaq88yaXJbawFp7gr1YdSOVlXoqh5mF/EjctATTF7WKvFbBemuVxd xqfd5N1vm3odNItc5HEAiJ/HgtEIiNH0p9bMiAhSwO1Omc/3FgXUYpN0entyFQ5YaI7s +9pQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711803127; x=1712407927; h=to:cc:date:message-id:subject:mime-version :content-transfer-encoding:from:sender:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dlXsZgEGzxt1FIHYvVpiTDpquaFw+nGPi2U5Bq3ynd0=; b=rZEP/5shtv7QUvEWQkDwMJlflGkm3XUpsGDKw5vzArEkllK+LCWsq9huPI9P1vwmO8 1qCRAMFBPDj33bX/C34UQ91WXo/ItsZa+6huq0pBxcYiamU7Cg9eum6QXVGopykZ0HIx uixG1wbCAtevdaNvSYk5ZhpImJ2U49mCJG9BSC0b3490Twgn1BvNcM2WwCljx84lFN8D LUTBT5Hh48S4JI/Vhphcxy75GUtKo4wZtZWS5MnFUeW83q2fSszuzt5/ewFlez6ivIvF BFXVieZpITlISqwCjU430rArWrYum04PsmwObJa9P8450AcV9weST95KLknPOj2QNFJb bOMw== X-Forwarded-Encrypted: i=1; AJvYcCVn3K8V9KudJT0oZuJ/x2M2LiDOK81xpLvFTRze2R0t6zYysBVVmja3xOWofIhh42icjxCavbl9hodId7Z8IFpDYoq4snY= X-Gm-Message-State: AOJu0YxOlAEdv1WYctr+34vRwrDjyBDVeVhE8PviVTzKlevj29xWFa5P 5ruuh/VUIbZSgZpE4oYAeITsE5UTCAA0bbdBbhU+gXqZBxz1ZeSnjEK5jXul X-Google-Smtp-Source: AGHT+IFpBvmk0a++U3txystmKM9MtUz4QMlg1Uj6wMaLmprC0akpKnS53JYz8HuW4q6BjM2gLPTDWQ== X-Received: by 2002:a05:6512:2389:b0:513:a766:4672 with SMTP id c9-20020a056512238900b00513a7664672mr5176287lfv.4.1711803126937; Sat, 30 Mar 2024 05:52:06 -0700 (PDT) Received: from smtpclient.apple (c80-217-1-132.bredband.tele2.se. [80.217.1.132]) by smtp.gmail.com with ESMTPSA id y4-20020a199144000000b00514b644bfebsm912883lfj.299.2024.03.30.05.52.06 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2024 05:52:06 -0700 (PDT) From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Subject: bug#69714: [PATCH] Improve ert-font-lock assertion parser Message-Id: <8EAA90DF-C567-4ADA-81DB-F074FE73ADAF@gmail.com> Date: Sat, 30 Mar 2024 13:52:05 +0100 To: Vladimir Kazanov X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 69714 Cc: Eli Zaretskii , 69714@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Vladimir, thank you for your patch. However, this regexp: > (defconst ert-font-lock--face-symbol-re > (rx (one-or-more (or alphanumeric "-" "_" "."))) > "A face symbol matching regex.") >=20 > (defconst ert-font-lock--face-symbol-list-re > (rx "(" > (* whitespace) > (one-or-more > (seq (regexp ert-font-lock--face-symbol-re) > (* whitespace))) > ")") > "A face symbol list matching regex.") is rather inefficient. (Relint complained about it, which is why I am = here). The problem is that (one-or-more (seq (one-or-more (or alphanumeric "-" "_" ".")) (* whitespace))) can match a string that consists of alphanumeric characters, say, in = many different ways because of the nested `one-or-more`; the (* = whitespace) can match the empty string anywhere. Try, for instance: (string-match ert-font-lock--face-symbol-list-re (concat "(" (make-string 20 ?a))) which should return nil as it doesn't match. Now try raising the number from 20 to 25, then 30. If you want the regexp to match a list of one or more symbols, what = about this: (rx "(" (* whitespace) (regexp ert-font-lock--face-symbol-re) (* (+ whitespace) (regexp ert-font-lock--face-symbol-re)) ")") From debbugs-submit-bounces@debbugs.gnu.org Sun Mar 31 13:57:02 2024 Received: (at 69714) by debbugs.gnu.org; 31 Mar 2024 17:57:02 +0000 Received: from localhost ([127.0.0.1]:48358 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqzQT-0007vR-LP for submit@debbugs.gnu.org; Sun, 31 Mar 2024 13:57:02 -0400 Received: from mail-lj1-x22d.google.com ([2a00:1450:4864:20::22d]:54288) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rqzQR-0007ud-SN for 69714@debbugs.gnu.org; Sun, 31 Mar 2024 13:57:00 -0400 Received: by mail-lj1-x22d.google.com with SMTP id 38308e7fff4ca-2d68651e253so48522911fa.0 for <69714@debbugs.gnu.org>; Sun, 31 Mar 2024 10:56:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711907811; x=1712512611; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=TYVVUCJgIdcwtFlFj9eqo9WGOxoKay87EwcBfCXLTQY=; b=Sqh1+v78ZixfJAGlFepP2x+pvFAK4DCWnlhp5Lr4cwCWxX/imlHm4J1dZnpEkoaruX 3uM3cUREv38G7KCJDwICRkD3fKGYFyU7/+pnwRy45bpW0xkYnkIv7TjTIj0gxG+1yJl4 Eih+lCX6xaLBKn3PP0opEy0MFU4xplQb8gsiuZ+TwPM1ATNh961sUvZjmT2YHN1rGjNr TLYF7gPEGyTNkoGICLcIbRLTbLxu/cURyZnNAe8nIV72TIFroKUOdP79gYl4ZDDaNViL 9djXkANbOSwmYYx2XTKDYIaaEmR3+wp0N1cY50SXsZ1K17SaQJTUjrVGr6LlVnSAq2Ja ygdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711907811; x=1712512611; h=cc: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=TYVVUCJgIdcwtFlFj9eqo9WGOxoKay87EwcBfCXLTQY=; b=jaOHCWGIHPPGhfWGbUSAqxWnUJTQDDSZCnMiI/tF7EiwfUSyh7lPlUM6A7wqmSzhbh B6lS/hph4tqL7ZufBsojgTdokKkE9B4yVLX6qXYVXDBWJK8GCyvjiWNH8NiadNAKEq91 u/ghMk9Dr1GalfTXDd8InMdgmTEiyTbaaTX9+qF48QHNaImwIZerYxtZPL3CuI7nkXjk vrBfaxnz8xaWwEq9wZi7pyPYw+qFBY6M4DVosc+2eWFau4ru9Hwo4zXsPh3gV/EAye+X D6VdWfChZvZm33wn07Hp0FgKfWfVyDO5kyuY4/tax+nXyylfUhBbvjxSo9VfZi3eldMz 7awA== X-Forwarded-Encrypted: i=1; AJvYcCWGDEfK0sh2U48AnAo0POZ514HRokBOkPfaGUv1nA5Jcx7hKxmwc5r7bRX3d5woG1bK4XzmuewIyEArIHK5xRtU2tl91vY= X-Gm-Message-State: AOJu0YziQymVr3tyYs3LMljlc7vpU8PXikPxEvfmbg+GiwcNyJv0C9gg KOAsOp/FbqQaxJduqZC+fZdBmO4gy4ObNRcHMIlHeayxupROXaedXmKs4pfFNj12X6e9a0FPddc SETnvhxYhKFdCO9s13X/Akki+nw== X-Google-Smtp-Source: AGHT+IHC4Y4/ZMJ7SyEb/RGOCH97L/S0CD9Ivd5CaaLxeAo3wsA+41TOOozlE50mPW6dNkK3t+3hWgjBRGIUe5gmeXg= X-Received: by 2002:a2e:a989:0:b0:2d4:6aba:f1a3 with SMTP id x9-20020a2ea989000000b002d46abaf1a3mr4656303ljq.6.1711907810727; Sun, 31 Mar 2024 10:56:50 -0700 (PDT) MIME-Version: 1.0 References: <8EAA90DF-C567-4ADA-81DB-F074FE73ADAF@gmail.com> In-Reply-To: <8EAA90DF-C567-4ADA-81DB-F074FE73ADAF@gmail.com> From: Vladimir Kazanov Date: Sun, 31 Mar 2024 17:56:38 +0000 Message-ID: Subject: Re: bug#69714: [PATCH] Improve ert-font-lock assertion parser To: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= Content-Type: multipart/mixed; boundary="000000000000f272a20614f89809" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 69714 Cc: Eli Zaretskii , 69714@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000f272a20614f89809 Content-Type: text/plain; charset="UTF-8" Hi Mattias, Thanks for noticing this! > If you want the regexp to match a list of one or more symbols, what about this: > > (rx "(" > (* whitespace) > (regexp ert-font-lock--face-symbol-re) > (* (+ whitespace) > (regexp ert-font-lock--face-symbol-re)) > ")") > Got it, thanks. I forgot about relint! Regex performance is easy to get wrong. I'd really like peg.el to be merged and used for this kind of parsing. Anyway, can you please take a look at the patch? It fixes the problem noticed by relint as well as a couple of other minor things, and adds tests to make sure regexes work the way I want them to. Thank you Vlad -- Regards, Vladimir Kazanov --000000000000f272a20614f89809 Content-Type: text/x-patch; charset="US-ASCII"; name="v1-0001-Fix-symbol-list-matching-regexps.patch" Content-Disposition: attachment; filename="v1-0001-Fix-symbol-list-matching-regexps.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_luftm6fj0 RnJvbSA4OTU0YTAwYjNmNDcxMGJkNWUxM2JhN2YxYWZmNWM4ZjIwZGE3MzBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWbGFkaW1pciBLYXphbm92IDx2ZWthemFub3ZAZ21haWwuY29t PgpEYXRlOiBTdW4sIDMxIE1hciAyMDI0IDE4OjMyOjU5ICswMTAwClN1YmplY3Q6IFtQQVRDSCB2 MV0gRml4IHN5bWJvbCBsaXN0IG1hdGNoaW5nIHJlZ2V4cHMuCkZpeCBzeW1ib2wgbGlzdCBtYXRj aGluZyByZWdleHAgcGVyZm9ybWFuY2UKCkFsbG93IGVtcHR5IGZhY2UgbGlzdHMsIGltcHJvdmUg dGhlIGZhY2UgbGlzdCBtYXRjaGluZyByZWdleHAgKHNlZQpkaXNjdXNzaW9uIGluIEJ1ZyM2OTcx NCkgYmFzZWQgb24gcmVsaW50J3MgY29tbWVudHMsIGFkZCB0ZXN0czoKKiB0ZXN0L2xpc3AvZW1h Y3MtbGlzcC9lcnQtZm9udC1sb2NrLXRlc3RzLmVsOiBBZGQgdGVzdHMuCiogbGlzcC9lbWFjcy1s aXNwL2VydC1mb250LWxvY2suZWw6IEZpeCByZWdleHBzLgoKLS0tCiBsaXNwL2VtYWNzLWxpc3Av ZXJ0LWZvbnQtbG9jay5lbCAgICAgICAgICAgIHwgMjIgKysrKysrLS0tLQogdGVzdC9saXNwL2Vt YWNzLWxpc3AvZXJ0LWZvbnQtbG9jay10ZXN0cy5lbCB8IDQ3ICsrKysrKysrKysrKysrKysrKysr LQogMiBmaWxlcyBjaGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9saXNwL2VtYWNzLWxpc3AvZXJ0LWZvbnQtbG9jay5lbCBiL2xpc3AvZW1hY3Mt bGlzcC9lcnQtZm9udC1sb2NrLmVsCmluZGV4IGU3N2M4OTQ1ZGMzLi45NTFjYWEwYWEyNSAxMDA2 NDQKLS0tIGEvbGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2suZWwKKysrIGIvbGlzcC9lbWFj cy1saXNwL2VydC1mb250LWxvY2suZWwKQEAgLTQwLDMwICs0MCwzNCBAQAogKHJlcXVpcmUgJ3Bj YXNlKQoKIChkZWZjb25zdCBlcnQtZm9udC1sb2NrLS1mYWNlLXN5bWJvbC1yZQotICAocnggKG9u ZS1vci1tb3JlIChvciBhbHBoYW51bWVyaWMgIi0iICJfIiAiLiIpKSkKLSAgIkEgZmFjZSBzeW1i b2wgbWF0Y2hpbmcgcmVnZXguIikKKyAgKHJ4IChvbmUtb3ItbW9yZSAob3IgYWxwaGFudW1lcmlj ICItIiAiXyIgIi4iICIvIikpKQorICAiQSBmYWNlIHN5bWJvbCBtYXRjaGluZyByZWdleC4KK1Ro ZSByZWdleHAgY2Fubm90IHVzZSBjaGFyYWN0ZXIgY2xhc3NlcyBhcyB0aGVzZSBjYW4gYmUgcmVk ZWZpbmVkIGJ5IHRoZQorbWFqb3IgbW9kZSBvZiB0aGUgaG9zdCBsYW5ndWFnZS4iKQoKIChkZWZj b25zdCBlcnQtZm9udC1sb2NrLS1mYWNlLXN5bWJvbC1saXN0LXJlCiAgIChyeCAiKCIKICAgICAg ICgqIHdoaXRlc3BhY2UpCi0gICAgICAob25lLW9yLW1vcmUKLSAgICAgICAoc2VxIChyZWdleHAg ZXJ0LWZvbnQtbG9jay0tZmFjZS1zeW1ib2wtcmUpCi0gICAgICAgICAgICAoKiB3aGl0ZXNwYWNl KSkpCisgICAgICAob3B0IChyZWdleHAgZXJ0LWZvbnQtbG9jay0tZmFjZS1zeW1ib2wtcmUpKQor ICAgICAgKHplcm8tb3ItbW9yZQorICAgICAgIChzZXEgKCsgd2hpdGVzcGFjZSkKKyAgICAgICAg ICAgIChyZWdleHAgZXJ0LWZvbnQtbG9jay0tZmFjZS1zeW1ib2wtcmUpKSkKKyAgICAgICgqIHdo aXRlc3BhY2UpCiAgICAgICAiKSIpCiAgICJBIGZhY2Ugc3ltYm9sIGxpc3QgbWF0Y2hpbmcgcmVn ZXguIikKCiAoZGVmY29uc3QgZXJ0LWZvbnQtbG9jay0tYXNzZXJ0aW9uLWxpbmUtcmUKICAgKHJ4 CiAgICA7OyBsZWFkaW5nIGNvbHVtbiBhc3NlcnRpb24gKGFycm93L2NhcmV0KQotICAgKGdyb3Vw IChvciAiXiIgIjwtIikpCisgICAoZ3JvdXAtbiAxIChvciAiXiIgIjwtIikpCiAgICAoemVyby1v ci1tb3JlIHdoaXRlc3BhY2UpCiAgICA7OyBwb3NzaWJsZSB0byBoYXZlIG1hbnkgY2FyZXRzIG9u IGFuIGFzc2VydGlvbiBsaW5lCi0gICAoZ3JvdXAgKHplcm8tb3ItbW9yZSAoc2VxICJeIiAoemVy by1vci1tb3JlIHdoaXRlc3BhY2UpKSkpCisgICAoZ3JvdXAtbiAyICh6ZXJvLW9yLW1vcmUgKHNl cSAiXiIgKHplcm8tb3ItbW9yZSB3aGl0ZXNwYWNlKSkpKQogICAgOzsgb3B0aW9uYWwgbmVnYXRp b24gb2YgdGhlIGZhY2Ugc3BlY2lmaWNhdGlvbgotICAgKGdyb3VwIChvcHRpb25hbCAiISIpKQor ICAgKGdyb3VwLW4gMyAob3B0aW9uYWwgIiEiKSkKICAgICh6ZXJvLW9yLW1vcmUgd2hpdGVzcGFj ZSkKICAgIDs7IGZhY2Ugc3ltYm9sIG5hbWUgb3IgYSBsaXN0IG9mIHN5bWJvbHMKLSAgIChncm91 cCAob3IgKHJlZ2V4cCBlcnQtZm9udC1sb2NrLS1mYWNlLXN5bWJvbC1yZSkKKyAgIChncm91cC1u IDQgKG9yIChyZWdleHAgZXJ0LWZvbnQtbG9jay0tZmFjZS1zeW1ib2wtcmUpCiAgICAgICAgICAg ICAgIChyZWdleHAgZXJ0LWZvbnQtbG9jay0tZmFjZS1zeW1ib2wtbGlzdC1yZSkpKSkKICAgIkFu IGVydC1mb250LWxvY2sgYXNzZXJ0aW9uIGxpbmUgcmVnZXguIikKCmRpZmYgLS1naXQgYS90ZXN0 L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXRlc3RzLmVsIGIvdGVzdC9saXNwL2VtYWNz LWxpc3AvZXJ0LWZvbnQtbG9jay10ZXN0cy5lbAppbmRleCBmYTJlNWRjNGRiNy4uMzNlZjJjNTIy ODggMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2stdGVzdHMu ZWwKKysrIGIvdGVzdC9saXNwL2VtYWNzLWxpc3AvZXJ0LWZvbnQtbG9jay10ZXN0cy5lbApAQCAt NDQsMTMgKzQ0LDU2IEBAIHdpdGgtdGVtcC1idWZmZXItc3RyLW1vZGUKICAgICAgKGdvdG8tY2hh ciAocG9pbnQtbWluKSkKICAgICAgLEBib2R5KSkKCisoZGVmdW4gZXJ0LWZvbnQtbG9jay0td3Jh cC1iZWdpbi1lbmQgKHJlKQorICAoY29uY2F0ICJeIiByZSAiJCIpKQorCis7OzsgUmVnZXhwIHRl c3RzCis7OzsKKworKGVydC1kZWZ0ZXN0IHRlc3QtcmVnZXhwLS1mYWNlLXN5bWJvbC1yZSAoKQor ICAobGV0ICgocmUgKGVydC1mb250LWxvY2stLXdyYXAtYmVnaW4tZW5kCisgICAgICAgICAgICAg ZXJ0LWZvbnQtbG9jay0tZmFjZS1zeW1ib2wtcmUpKSkKKyAgICAoc2hvdWxkIChzdHJpbmctbWF0 Y2gtcCByZSAiZm9udC1sb2NrLWtleXdvcmQtZmFjZSIpKQorICAgIChzaG91bGQgKHN0cmluZy1t YXRjaC1wIHJlICItZmFjZSIpKQorICAgIChzaG91bGQgKHN0cmluZy1tYXRjaC1wIHJlICJ3ZWly ZC1wYWNrYWdlLy1mYWNlIikpCisgICAgKHNob3VsZCAoc3RyaW5nLW1hdGNoLXAgcmUgIi0iKSkK KyAgICAoc2hvdWxkIChzdHJpbmctbWF0Y2gtcCByZSAiZm9udC1sb2NrLmZhY2UiKSkKKyAgICAo c2hvdWxkLW5vdCAoc3RyaW5nLW1hdGNoLXAgcmUgImZhY2Ugc3VmZml4LXdpdGgiKSkKKyAgICAo c2hvdWxkLW5vdCAoc3RyaW5nLW1hdGNoLXAgcmUgIigiKSkpKQorCisoZXJ0LWRlZnRlc3QgdGVz dC1yZWdleHAtLWZhY2Utc3ltYm9sLWxpc3QtcmUgKCkKKyAgKGxldCAoKHJlIChlcnQtZm9udC1s b2NrLS13cmFwLWJlZ2luLWVuZAorICAgICAgICAgICAgIGVydC1mb250LWxvY2stLWZhY2Utc3lt Ym9sLWxpc3QtcmUpKSkKKyAgICAoc2hvdWxkIChzdHJpbmctbWF0Y2gtcCByZSAiKGZhY2UxIGZh Y2UyKSIpKQorICAgIChzaG91bGQgKHN0cmluZy1tYXRjaC1wIHJlICIoZmFjZTEpIikpCisgICAg KHNob3VsZCAoc3RyaW5nLW1hdGNoLXAgcmUgIigpIikpCisgICAgKHNob3VsZC1ub3QgKHN0cmlu Zy1tYXRjaC1wIHJlICIpIikpCisgICAgKHNob3VsZC1ub3QgKHN0cmluZy1tYXRjaC1wIHJlICIo IikpKSkKKworKGVydC1kZWZ0ZXN0IHRlc3QtcmVnZXhwLS1hc3NlcnRpb24tbGluZS1yZSAoKQor ICAobGV0ICgocmUgKGVydC1mb250LWxvY2stLXdyYXAtYmVnaW4tZW5kCisgICAgICAgICAgICAg ZXJ0LWZvbnQtbG9jay0tYXNzZXJ0aW9uLWxpbmUtcmUpKSkKKyAgICAoc2hvdWxkIChzdHJpbmct bWF0Y2gtcCByZSAiXiAgIHNvbWV0aGluZy1mYWNlIikpCisgICAgKHNob3VsZCAoc3RyaW5nLW1h dGNoLXAgcmUgIl4gICAhc29tZXRoaW5nLWZhY2UiKSkKKyAgICAoc2hvdWxkIChzdHJpbmctbWF0 Y2gtcCByZSAiXiAgIChmYWNlMSBmYWNlMikiKSkKKyAgICAoc2hvdWxkIChzdHJpbmctbWF0Y2gt cCByZSAiXiAgICEoZmFjZTEgZmFjZTIpIikpCisgICAgKHNob3VsZCAoc3RyaW5nLW1hdGNoLXAg cmUgIl4gICAoKSIpKQorICAgIChzaG91bGQgKHN0cmluZy1tYXRjaC1wIHJlICJeICAgISgpIikp CisgICAgKHNob3VsZCAoc3RyaW5nLW1hdGNoLXAgcmUgIl4gICBuaWwiKSkKKyAgICAoc2hvdWxk IChzdHJpbmctbWF0Y2gtcCByZSAiXiAgICFuaWwiKSkKKyAgICAoc2hvdWxkIChzdHJpbmctbWF0 Y2gtcCByZSAiPC0gICBzb21ldGhpbmctZmFjZSIpKQorICAgIChzaG91bGQgKHN0cmluZy1tYXRj aC1wIHJlICI8LSBeICBzb21ldGhpbmctZmFjZSIpKQorICAgIChzaG91bGQgKHN0cmluZy1tYXRj aC1wIHJlICJeXiBeICBzb21ldGhpbmctZmFjZSIpKQorICAgIChzaG91bGQgKHN0cmluZy1tYXRj aC1wIHJlICJeICAgICBec29tZXRoaW5nLWZhY2UiKSkKKyAgICAoc2hvdWxkLW5vdCAoc3RyaW5n LW1hdGNoLXAgcmUgIl4gICA8LSAgXnNvbWV0aGluZy1mYWNlIikpKSkKKwogOzs7IENvbW1lbnQg cGFyc2luZyB0ZXN0cwogOzsKCiAoZXJ0LWRlZnRlc3QgdGVzdC1saW5lLWNvbW1lbnQtcC0tZnVu ZGFtZW50YWwgKCkKICAgKHdpdGgtdGVtcC1idWZmZXItc3RyLW1vZGUgZnVuZGFtZW50YWwtbW9k ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLy8gY29tbWVudFxuIgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoc2hvdWxkLW5vdCAoZXJ0LWZvbnQtbG9jay0tbGluZS1jb21t ZW50LXApKSkpCisgICAgIi8vIGNvbW1lbnRcbiIKKyAgICAoc2hvdWxkLW5vdCAoZXJ0LWZvbnQt bG9jay0tbGluZS1jb21tZW50LXApKSkpCgogKGVydC1kZWZ0ZXN0IHRlc3QtbGluZS1jb21tZW50 LXAtLWVtYWNzLWxpc3AgKCkKICAgKHdpdGgtdGVtcC1idWZmZXItc3RyLW1vZGUgZW1hY3MtbGlz cC1tb2RlCi0tCjIuMzQuMQo= --000000000000f272a20614f89809-- From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 04:04:57 2024 Received: (at 69714) by debbugs.gnu.org; 1 Apr 2024 08:04:57 +0000 Received: from localhost ([127.0.0.1]:49444 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrCf2-0000UA-V2 for submit@debbugs.gnu.org; Mon, 01 Apr 2024 04:04:57 -0400 Received: from mail-lf1-x129.google.com ([2a00:1450:4864:20::129]:51252) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrCf1-0000Tx-74 for 69714@debbugs.gnu.org; Mon, 01 Apr 2024 04:04:55 -0400 Received: by mail-lf1-x129.google.com with SMTP id 2adb3069b0e04-513e25afabaso4058470e87.2 for <69714@debbugs.gnu.org>; Mon, 01 Apr 2024 01:04:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711958686; x=1712563486; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject :date:message-id:reply-to; bh=clS4gSd6BfrfE/RwWmeZI3qkN8rJKDGFbTHCqv7bmzg=; b=XgS2rbrwMju5+3aqJo7Yb/kQFEt5vtpztlYSd/D0FVZpVsDsSzp2iq/3A9YtLfNBpf GEImta/RvBgtNqJzG8qNN74cRC9F1EZf2gfxwNROGzSbsMoX67GjJpDyLRGrhRMH1hmZ YdI+x1E7th7MzYDsDJLzwCJ2dfAX9DRFWAeJ7RUgEHiQlaxfYoDbvY5koo0IHKf0Y+lj xPBzNIG+4SoTwq6p5AMrT+z0RvrDsesNiRyh9Jc8XTHBOX+QVeETjpDmAisfOIuL/egW VPF5B9oXXVLTeYu62tdJnzL9UDb8otdAizRMbEINBB/VIwLk4/LI0dYChK5SMpJVeLHN fing== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711958686; x=1712563486; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=clS4gSd6BfrfE/RwWmeZI3qkN8rJKDGFbTHCqv7bmzg=; b=WYYJZYcqrl1jKvFQfCOBuQ6+YtT8dT0kb+jsrCp7xFAt5CFPMrzOT3bHrk9Os7Jftq QDb6Fe2sd+Ac4iZ6UlWGrm/O8lXwwSs2zz79IFK0UQ2vEpOaqCBn/F/B5yK2iMbsz41b pOAFGNYJi5QmX1bp7pAcudkwdIbMP8Asp6JcbDwR8Qd99f10rxrVrdZIpWJHgYvLeyLo fN3vm+PqTcYpuXZBDzX2xngVMKgDxWPSz/ieVUiwz/kg5MugSUnNCT3NGVi0wSQYYLEK 1hbdYMCECexp9FR8XxdSZxO0NQ28n8oxKVBz1awD53SJHmy+BViJyw+j53VYyRDQBtDA 5d/Q== X-Forwarded-Encrypted: i=1; AJvYcCUycZwhsld2K++IBa9rUsPRO+vDhD9U9ASlj5jNWMB1EU5XCwgmL2BJO9oGdSwsiZnX9ruIPcIony+iuJSeCB1syuO8m+A= X-Gm-Message-State: AOJu0YwXGXANTwgmOGIUzKe5sC3lvJGUzQQtght42gGjbyboMXhr8uOE uX7ecJ12y03FX9ytwKk8SYm44GZju/wT6w5NxRdRB2ZYk7o2/ha3 X-Google-Smtp-Source: AGHT+IHAmcOT4DQWpnZP3aqr1LBVG/Z1svf+UeQU1ReZCDxA1M8q7Fl8563uuC9zJaWnQJdd81I/lw== X-Received: by 2002:a05:6512:4893:b0:513:d0e2:8a1e with SMTP id eq19-20020a056512489300b00513d0e28a1emr5299818lfb.54.1711958685874; Mon, 01 Apr 2024 01:04:45 -0700 (PDT) Received: from smtpclient.apple (c80-217-1-132.bredband.tele2.se. [80.217.1.132]) by smtp.gmail.com with ESMTPSA id br35-20020a056512402300b00516a096a35asm558651lfb.123.2024.04.01.01.04.45 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 01 Apr 2024 01:04:45 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Subject: Re: bug#69714: [PATCH] Improve ert-font-lock assertion parser From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= In-Reply-To: Date: Mon, 1 Apr 2024 10:04:44 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: References: <8EAA90DF-C567-4ADA-81DB-F074FE73ADAF@gmail.com> To: Vladimir Kazanov X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 69714 Cc: Eli Zaretskii , 69714@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) 31 mars 2024 kl. 19.56 skrev Vladimir Kazanov : > (rx "(" > (* whitespace) > - (one-or-more > - (seq (regexp ert-font-lock--face-symbol-re) > - (* whitespace))) > + (opt (regexp ert-font-lock--face-symbol-re)) > + (zero-or-more > + (seq (+ whitespace) > + (regexp ert-font-lock--face-symbol-re))) > + (* whitespace) > ")") Since you want to match zero or more symbols, this can be improved = further: (rx "(" (* whitespace) (* (regexp ert-font-lock--face-symbol-re) (+ whitespace))) ")") (Note that most rx operators have an implicit `seq` inside.) You may want to use =C2=B4rx-define` instead of `defconst` as well -- it = avoids some use of the `regexp` construct and removes some load-time = string building. From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 04:18:02 2024 Received: (at 69714) by debbugs.gnu.org; 1 Apr 2024 08:18:02 +0000 Received: from localhost ([127.0.0.1]:49449 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrCri-0000zH-Bp for submit@debbugs.gnu.org; Mon, 01 Apr 2024 04:18:02 -0400 Received: from mail-lj1-x234.google.com ([2a00:1450:4864:20::234]:55772) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrCrg-0000yO-Qc for 69714@debbugs.gnu.org; Mon, 01 Apr 2024 04:18:01 -0400 Received: by mail-lj1-x234.google.com with SMTP id 38308e7fff4ca-2d715638540so36667541fa.3 for <69714@debbugs.gnu.org>; Mon, 01 Apr 2024 01:17:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711959471; x=1712564271; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject :date:message-id:reply-to; bh=6Pw/AMFi+7wzsEsgX6SUyUHn1nOSN2vSGR+ItMlHSyI=; b=TyXaTuw7XtK4sJBvvd//fVX3WkLThhveSDXA21RB5yW20Yf52bdhQ6CTs2/Xng0rUZ inPx0Jvia3xflg/pSeWJJx5fwVDCbApSoOYLuQqKsHGdD2CyCBYopRmQFyO7Z4lhifc+ E5USri9SPZ5UDgjLWUDrIMMuBiBis+qDx2gR0xB/dss/im7iYmU2ruOxVRaf01ows7lH XevnQEJs7RaXpzJHwVswZFdM5YUKCc7eKT/OQ+LwiVzN4ffxdLgQyudqphrZHJpsieQp bleAQyOypFnjo/wEt54ltKK1nL1BTIgKV9RhwHiHcEn1lh7QcyhfZ60z4uYJ3fG4hx8P hOzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711959471; x=1712564271; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=6Pw/AMFi+7wzsEsgX6SUyUHn1nOSN2vSGR+ItMlHSyI=; b=N8ouajPhJQoVS5lWVbHawoJAD615K3oAm2LEtpHNDcTgHbJpYCfZ3eDlAusV6O/cYv YeUSN5pYJLn2dS/Pk9KITjOnIot9Gwtv4TLop5FpsKgiYv4z/PwMScb7GbKXgMSqCDlB +lvdaUXy9/zXcYufqpTQdCQMW7c4SgNCZ1oBFaLWoW3HHVPQa5VghHgXE8SOlSH2JFID lIEQa56bQAzsN/8E8V9Wa5MyJ2FMKZyqTnmI/Im7CdKvYnTZLMQ/W/XMMnYWpPKUVUB/ HXu+2LPaeb4YI/i4nmB+yKExGmYFAuMrRlbkuPvHkeghBFecvVYKazgYJgt18HRmwVh2 s3Uw== X-Forwarded-Encrypted: i=1; AJvYcCXuwyEtGYUifaGUw8Sx3IcssdRtMUFKmCcd+HYUds3aU+7YdD2A4vgcJDUkMTZL42CPa8vVuZuIWcpAesOCYKMbpysO48w= X-Gm-Message-State: AOJu0YxJldgdeF+EqbSl9Kua1ap0hjDwKaX9uqOJiULpc32d2hjOOjjy iDC4p/yidFWjoGKokaLxFYvfQlHT2W3xs2VeH4am5qv+Wx1iuDhH X-Google-Smtp-Source: AGHT+IHELGoJHhkwbhVNLAuE9uFVy4O70Z87hY2iuNyt3ZDJY8lCHLk1U7ZkVUoic2d6P+Bx2cqt6g== X-Received: by 2002:a2e:be23:0:b0:2d3:f81b:7f9 with SMTP id z35-20020a2ebe23000000b002d3f81b07f9mr5847829ljq.21.1711959471312; Mon, 01 Apr 2024 01:17:51 -0700 (PDT) Received: from smtpclient.apple (c80-217-1-132.bredband.tele2.se. [80.217.1.132]) by smtp.gmail.com with ESMTPSA id e11-20020a05651c038b00b002d6bc956deesm1355509ljp.99.2024.04.01.01.17.50 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 01 Apr 2024 01:17:51 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Subject: Re: bug#69714: [PATCH] Improve ert-font-lock assertion parser From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= In-Reply-To: Date: Mon, 1 Apr 2024 10:17:50 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: <980599BD-0A5B-40EE-BEAF-C6F24B18ACB9@gmail.com> References: <8EAA90DF-C567-4ADA-81DB-F074FE73ADAF@gmail.com> To: Vladimir Kazanov X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 69714 Cc: Eli Zaretskii , 69714@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) 1 apr. 2024 kl. 10.04 skrev Mattias Engdeg=C3=A5rd = : > (rx "(" > (* whitespace) > (* (regexp ert-font-lock--face-symbol-re) > (+ whitespace))) > ")") Sorry, that was not very well thought-out, was it? Try (rx "(" (* whitespace) (? (regexp ert-font-lock--face-symbol-re) (* (+ whitespace) (regexp ert-font-lock--face-symbol-re)) (* whitespace)) ")") instead. Not as pretty but should actually work. From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 04:35:14 2024 Received: (at 69714) by debbugs.gnu.org; 1 Apr 2024 08:35:14 +0000 Received: from localhost ([127.0.0.1]:49517 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrD8M-0004XR-CH for submit@debbugs.gnu.org; Mon, 01 Apr 2024 04:35:14 -0400 Received: from mail-lj1-x22a.google.com ([2a00:1450:4864:20::22a]:50258) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrD8K-0004X7-JR for 69714@debbugs.gnu.org; Mon, 01 Apr 2024 04:35:13 -0400 Received: by mail-lj1-x22a.google.com with SMTP id 38308e7fff4ca-2d4a8bddc21so51911271fa.0 for <69714@debbugs.gnu.org>; Mon, 01 Apr 2024 01:35:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711960503; x=1712565303; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=CotqgLNyf/gliPMMC7pmTwk+CgAcddN/M8T/xZ4agFI=; b=XeDgWsE/S8DNngEvs/49Jwyt/Ald1Qio6ToEviXuEvPSpeGMpIV0w1bXW8OrgTIxLI PuUA3wbvCmccLdJRD3R2+Ftbx5AW7sXIV/dkcyzEO31RQ0IXwQ8NVVAN2OrTsgA6qvD3 iBDL5AOeKf1o6Og0sjY98EPTYuxcscJ92vXEErBP0Q8lbLTH52D3o3MWDvBYsRT648mK 1kuwvFPfNtjOWNX4S8iem5ZiinrPHYS/bk7Sk60DZRfVW1zg8GWK+wOroi3Jur+4wFKm e/37a0lRoSTytRHAmB9K6m98rrjoi1OFUJgO7XceXqSXQOcRjX05pKquyVx/KiUyE5qG LECw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711960503; x=1712565303; h=cc: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=CotqgLNyf/gliPMMC7pmTwk+CgAcddN/M8T/xZ4agFI=; b=Q+rNJtFLsTNOqpNbbM+BXJJxAEFh9o4H3fpToYVESL7oOnaC+5BlQaT6UXOtZp0R6n RAz/sxG8n64DZpbeNpCG4Cj832yOkDCKsXV4muaI8V4ATWBoJRP55GWcRY2n7mSW+EBp jR+PmRmbKJfaabDgNQ5eqqB9XgFoTFspl/PyVrSHrDUBcNF51ydF6+6Yht2nEDd5twTp LwSz5cxZHDzaPs6EDBq0rYJfUm1BXHLsn9cuBkq8hWE1DX2vNJ/oJtlhOZqi0dhMNkFZ D/hN7j8Lryqwwx8stiCJ3gS9mLTdw0uTohdnzvx3GQy1tFpeMI0u1bG6TAuWHMDv7jtE PaUg== X-Forwarded-Encrypted: i=1; AJvYcCUshlatQ80VHsDJJFp736DS2odwueBisgUmXpLWLud7JMDeopOflZcEhlum9J0+yEJnMpefDODARlAjgl/03FnqlXM4JAc= X-Gm-Message-State: AOJu0YwSUIWtqZyuIW1kozKk017Zzp/zQdIPTpWrCL5LjLaib3ptcQ/K KJCMUH5ceacOx8yD9mpzw5Azr0JRemxaE4uXD3EIrlP7nl/92Rz4Mj5faGd7p8nS0bvoHXGvc/V 9Tq6U5YcsFBQFbgPZ4lbywzTrl4E1Cr1C2w== X-Google-Smtp-Source: AGHT+IF9BY++y5bbYg8unJpYdh6iI7EHYYwjecmIlAyWbQubwZJqLz41fF73OuIOoMDKbYoQ81/kwAubw4f46yA10+8= X-Received: by 2002:a2e:8e86:0:b0:2d6:c29c:a4e9 with SMTP id z6-20020a2e8e86000000b002d6c29ca4e9mr5139340ljk.22.1711960502536; Mon, 01 Apr 2024 01:35:02 -0700 (PDT) MIME-Version: 1.0 References: <8EAA90DF-C567-4ADA-81DB-F074FE73ADAF@gmail.com> <980599BD-0A5B-40EE-BEAF-C6F24B18ACB9@gmail.com> In-Reply-To: <980599BD-0A5B-40EE-BEAF-C6F24B18ACB9@gmail.com> From: Vladimir Kazanov Date: Mon, 1 Apr 2024 09:34:50 +0100 Message-ID: Subject: Re: bug#69714: [PATCH] Improve ert-font-lock assertion parser To: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= Content-Type: multipart/mixed; boundary="0000000000009fa6fa061504dd57" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 69714 Cc: Eli Zaretskii , 69714@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --0000000000009fa6fa061504dd57 Content-Type: text/plain; charset="UTF-8" > (rx "(" > (* whitespace) > (? (regexp ert-font-lock--face-symbol-re) > (* (+ whitespace) > (regexp ert-font-lock--face-symbol-re)) > (* whitespace)) > ")") > > instead. Not as pretty but should actually work. > Yeah, somewhat cleaner. Added to the patch. Not sure using rx-define et al makes sense for 3 regular expressions I need to test directly. Here's patch v2. -- Regards, Vladimir Kazanov --0000000000009fa6fa061504dd57 Content-Type: application/x-patch; name="v2-0001-Fix-symbol-list-matching-regexps.patch" Content-Disposition: attachment; filename="v2-0001-Fix-symbol-list-matching-regexps.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lugozi2g0 RnJvbSBkODgyYjhjMjdlMDY3ZDBjMTRmZTE1NDFlNDc3NGU5MDExOWE1MTQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWbGFkaW1pciBLYXphbm92IDx2ZWthemFub3ZAZ21haWwuY29t PgpEYXRlOiBTdW4sIDMxIE1hciAyMDI0IDE4OjMyOjU5ICswMTAwClN1YmplY3Q6IFtQQVRDSCB2 Ml0gRml4IHN5bWJvbCBsaXN0IG1hdGNoaW5nIHJlZ2V4cHMuCkZpeCBzeW1ib2wgbGlzdCBtYXRj aGluZyByZWdleHAgcGVyZm9ybWFuY2UKCkFsbG93IGVtcHR5IGZhY2UgbGlzdHMsIGltcHJvdmUg dGhlIGZhY2UgbGlzdCBtYXRjaGluZyByZWdleHAgKHNlZQpkaXNjdXNzaW9uIGluIEJ1ZyM2OTcx NCkgYmFzZWQgb24gcmVsaW50J3MgY29tbWVudHMsIGFkZCB0ZXN0czoKKiB0ZXN0L2xpc3AvZW1h Y3MtbGlzcC9lcnQtZm9udC1sb2NrLXRlc3RzLmVsOiBBZGQgdGVzdHMuCiogbGlzcC9lbWFjcy1s aXNwL2VydC1mb250LWxvY2suZWw6IEZpeCByZWdleHBzLgoKLS0tCiBsaXNwL2VtYWNzLWxpc3Av ZXJ0LWZvbnQtbG9jay5lbCAgICAgICAgICAgIHwgMjcgKysrKysrLS0tLS0tCiB0ZXN0L2xpc3Av ZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXRlc3RzLmVsIHwgNDcgKysrKysrKysrKysrKysrKysr KystCiAyIGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLmVsIGIvbGlzcC9lbWFj cy1saXNwL2VydC1mb250LWxvY2suZWwKaW5kZXggZTc3Yzg5NDVkYzMuLmM2ZmQ2NWUxNTA3IDEw MDY0NAotLS0gYS9saXNwL2VtYWNzLWxpc3AvZXJ0LWZvbnQtbG9jay5lbAorKysgYi9saXNwL2Vt YWNzLWxpc3AvZXJ0LWZvbnQtbG9jay5lbApAQCAtNDAsMzEgKzQwLDM0IEBACiAocmVxdWlyZSAn cGNhc2UpCgogKGRlZmNvbnN0IGVydC1mb250LWxvY2stLWZhY2Utc3ltYm9sLXJlCi0gIChyeCAo b25lLW9yLW1vcmUgKG9yIGFscGhhbnVtZXJpYyAiLSIgIl8iICIuIikpKQotICAiQSBmYWNlIHN5 bWJvbCBtYXRjaGluZyByZWdleC4iKQorICAocnggKCsgKG9yIGFscGhhbnVtZXJpYyAiLSIgIl8i ICIuIiAiLyIpKSkKKyAgIkEgZmFjZSBzeW1ib2wgbWF0Y2hpbmcgcmVnZXguCitUaGUgcmVnZXhw IGNhbm5vdCB1c2UgY2hhcmFjdGVyIGNsYXNzZXMgYXMgdGhlc2UgY2FuIGJlIHJlZGVmaW5lZCBi eSB0aGUKK21ham9yIG1vZGUgb2YgdGhlIGhvc3QgbGFuZ3VhZ2UuIikKCiAoZGVmY29uc3QgZXJ0 LWZvbnQtbG9jay0tZmFjZS1zeW1ib2wtbGlzdC1yZQogICAocnggIigiCiAgICAgICAoKiB3aGl0 ZXNwYWNlKQotICAgICAgKG9uZS1vci1tb3JlCi0gICAgICAgKHNlcSAocmVnZXhwIGVydC1mb250 LWxvY2stLWZhY2Utc3ltYm9sLXJlKQotICAgICAgICAgICAgKCogd2hpdGVzcGFjZSkpKQorICAg ICAgKD8gKHJlZ2V4cCBlcnQtZm9udC1sb2NrLS1mYWNlLXN5bWJvbC1yZSkpCisgICAgICAoKiAo KyB3aGl0ZXNwYWNlKQorICAgICAgICAgKHJlZ2V4cCBlcnQtZm9udC1sb2NrLS1mYWNlLXN5bWJv bC1yZSkpCisgICAgICAoKiB3aGl0ZXNwYWNlKQogICAgICAgIikiKQogICAiQSBmYWNlIHN5bWJv bCBsaXN0IG1hdGNoaW5nIHJlZ2V4LiIpCgogKGRlZmNvbnN0IGVydC1mb250LWxvY2stLWFzc2Vy dGlvbi1saW5lLXJlCiAgIChyeAogICAgOzsgbGVhZGluZyBjb2x1bW4gYXNzZXJ0aW9uIChhcnJv dy9jYXJldCkKLSAgIChncm91cCAob3IgIl4iICI8LSIpKQotICAgKHplcm8tb3ItbW9yZSB3aGl0 ZXNwYWNlKQorICAgKGdyb3VwLW4gMSAob3IgIl4iICI8LSIpKQorICAgKCogd2hpdGVzcGFjZSkK ICAgIDs7IHBvc3NpYmxlIHRvIGhhdmUgbWFueSBjYXJldHMgb24gYW4gYXNzZXJ0aW9uIGxpbmUK LSAgIChncm91cCAoemVyby1vci1tb3JlIChzZXEgIl4iICh6ZXJvLW9yLW1vcmUgd2hpdGVzcGFj ZSkpKSkKKyAgIChncm91cC1uIDIgKCogIl4iICgqIHdoaXRlc3BhY2UpKSkKICAgIDs7IG9wdGlv bmFsIG5lZ2F0aW9uIG9mIHRoZSBmYWNlIHNwZWNpZmljYXRpb24KLSAgIChncm91cCAob3B0aW9u YWwgIiEiKSkKLSAgICh6ZXJvLW9yLW1vcmUgd2hpdGVzcGFjZSkKKyAgIChncm91cC1uIDMgKG9w dGlvbmFsICIhIikpCisgICAoKiB3aGl0ZXNwYWNlKQogICAgOzsgZmFjZSBzeW1ib2wgbmFtZSBv ciBhIGxpc3Qgb2Ygc3ltYm9scwotICAgKGdyb3VwIChvciAocmVnZXhwIGVydC1mb250LWxvY2st LWZhY2Utc3ltYm9sLXJlKQotICAgICAgICAgICAgICAocmVnZXhwIGVydC1mb250LWxvY2stLWZh Y2Utc3ltYm9sLWxpc3QtcmUpKSkpCisgICAoZ3JvdXAtbiA0IChvciAocmVnZXhwIGVydC1mb250 LWxvY2stLWZhY2Utc3ltYm9sLXJlKQorICAgICAgICAgICAgICAgICAgKHJlZ2V4cCBlcnQtZm9u dC1sb2NrLS1mYWNlLXN5bWJvbC1saXN0LXJlKSkpKQogICAiQW4gZXJ0LWZvbnQtbG9jayBhc3Nl cnRpb24gbGluZSByZWdleC4iKQoKIChkZWZ1biBlcnQtZm9udC1sb2NrLS12YWxpZGF0ZS1tYWpv ci1tb2RlIChtb2RlKQpkaWZmIC0tZ2l0IGEvdGVzdC9saXNwL2VtYWNzLWxpc3AvZXJ0LWZvbnQt bG9jay10ZXN0cy5lbCBiL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2stdGVzdHMu ZWwKaW5kZXggZmEyZTVkYzRkYjcuLjMzZWYyYzUyMjg4IDEwMDY0NAotLS0gYS90ZXN0L2xpc3Av ZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC9lbWFjcy1s aXNwL2VydC1mb250LWxvY2stdGVzdHMuZWwKQEAgLTQ0LDEzICs0NCw1NiBAQCB3aXRoLXRlbXAt YnVmZmVyLXN0ci1tb2RlCiAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCiAgICAgICxAYm9k eSkpCgorKGRlZnVuIGVydC1mb250LWxvY2stLXdyYXAtYmVnaW4tZW5kIChyZSkKKyAgKGNvbmNh dCAiXiIgcmUgIiQiKSkKKworOzs7IFJlZ2V4cCB0ZXN0cworOzs7CisKKyhlcnQtZGVmdGVzdCB0 ZXN0LXJlZ2V4cC0tZmFjZS1zeW1ib2wtcmUgKCkKKyAgKGxldCAoKHJlIChlcnQtZm9udC1sb2Nr LS13cmFwLWJlZ2luLWVuZAorICAgICAgICAgICAgIGVydC1mb250LWxvY2stLWZhY2Utc3ltYm9s LXJlKSkpCisgICAgKHNob3VsZCAoc3RyaW5nLW1hdGNoLXAgcmUgImZvbnQtbG9jay1rZXl3b3Jk LWZhY2UiKSkKKyAgICAoc2hvdWxkIChzdHJpbmctbWF0Y2gtcCByZSAiLWZhY2UiKSkKKyAgICAo c2hvdWxkIChzdHJpbmctbWF0Y2gtcCByZSAid2VpcmQtcGFja2FnZS8tZmFjZSIpKQorICAgIChz aG91bGQgKHN0cmluZy1tYXRjaC1wIHJlICItIikpCisgICAgKHNob3VsZCAoc3RyaW5nLW1hdGNo LXAgcmUgImZvbnQtbG9jay5mYWNlIikpCisgICAgKHNob3VsZC1ub3QgKHN0cmluZy1tYXRjaC1w IHJlICJmYWNlIHN1ZmZpeC13aXRoIikpCisgICAgKHNob3VsZC1ub3QgKHN0cmluZy1tYXRjaC1w IHJlICIoIikpKSkKKworKGVydC1kZWZ0ZXN0IHRlc3QtcmVnZXhwLS1mYWNlLXN5bWJvbC1saXN0 LXJlICgpCisgIChsZXQgKChyZSAoZXJ0LWZvbnQtbG9jay0td3JhcC1iZWdpbi1lbmQKKyAgICAg ICAgICAgICBlcnQtZm9udC1sb2NrLS1mYWNlLXN5bWJvbC1saXN0LXJlKSkpCisgICAgKHNob3Vs ZCAoc3RyaW5nLW1hdGNoLXAgcmUgIihmYWNlMSBmYWNlMikiKSkKKyAgICAoc2hvdWxkIChzdHJp bmctbWF0Y2gtcCByZSAiKGZhY2UxKSIpKQorICAgIChzaG91bGQgKHN0cmluZy1tYXRjaC1wIHJl ICIoKSIpKQorICAgIChzaG91bGQtbm90IChzdHJpbmctbWF0Y2gtcCByZSAiKSIpKQorICAgIChz aG91bGQtbm90IChzdHJpbmctbWF0Y2gtcCByZSAiKCIpKSkpCisKKyhlcnQtZGVmdGVzdCB0ZXN0 LXJlZ2V4cC0tYXNzZXJ0aW9uLWxpbmUtcmUgKCkKKyAgKGxldCAoKHJlIChlcnQtZm9udC1sb2Nr LS13cmFwLWJlZ2luLWVuZAorICAgICAgICAgICAgIGVydC1mb250LWxvY2stLWFzc2VydGlvbi1s aW5lLXJlKSkpCisgICAgKHNob3VsZCAoc3RyaW5nLW1hdGNoLXAgcmUgIl4gICBzb21ldGhpbmct ZmFjZSIpKQorICAgIChzaG91bGQgKHN0cmluZy1tYXRjaC1wIHJlICJeICAgIXNvbWV0aGluZy1m YWNlIikpCisgICAgKHNob3VsZCAoc3RyaW5nLW1hdGNoLXAgcmUgIl4gICAoZmFjZTEgZmFjZTIp IikpCisgICAgKHNob3VsZCAoc3RyaW5nLW1hdGNoLXAgcmUgIl4gICAhKGZhY2UxIGZhY2UyKSIp KQorICAgIChzaG91bGQgKHN0cmluZy1tYXRjaC1wIHJlICJeICAgKCkiKSkKKyAgICAoc2hvdWxk IChzdHJpbmctbWF0Y2gtcCByZSAiXiAgICEoKSIpKQorICAgIChzaG91bGQgKHN0cmluZy1tYXRj aC1wIHJlICJeICAgbmlsIikpCisgICAgKHNob3VsZCAoc3RyaW5nLW1hdGNoLXAgcmUgIl4gICAh bmlsIikpCisgICAgKHNob3VsZCAoc3RyaW5nLW1hdGNoLXAgcmUgIjwtICAgc29tZXRoaW5nLWZh Y2UiKSkKKyAgICAoc2hvdWxkIChzdHJpbmctbWF0Y2gtcCByZSAiPC0gXiAgc29tZXRoaW5nLWZh Y2UiKSkKKyAgICAoc2hvdWxkIChzdHJpbmctbWF0Y2gtcCByZSAiXl4gXiAgc29tZXRoaW5nLWZh Y2UiKSkKKyAgICAoc2hvdWxkIChzdHJpbmctbWF0Y2gtcCByZSAiXiAgICAgXnNvbWV0aGluZy1m YWNlIikpCisgICAgKHNob3VsZC1ub3QgKHN0cmluZy1tYXRjaC1wIHJlICJeICAgPC0gIF5zb21l dGhpbmctZmFjZSIpKSkpCisKIDs7OyBDb21tZW50IHBhcnNpbmcgdGVzdHMKIDs7CgogKGVydC1k ZWZ0ZXN0IHRlc3QtbGluZS1jb21tZW50LXAtLWZ1bmRhbWVudGFsICgpCiAgICh3aXRoLXRlbXAt YnVmZmVyLXN0ci1tb2RlIGZ1bmRhbWVudGFsLW1vZGUKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIi8vIGNvbW1lbnRcbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNob3Vs ZC1ub3QgKGVydC1mb250LWxvY2stLWxpbmUtY29tbWVudC1wKSkpKQorICAgICIvLyBjb21tZW50 XG4iCisgICAgKHNob3VsZC1ub3QgKGVydC1mb250LWxvY2stLWxpbmUtY29tbWVudC1wKSkpKQoK IChlcnQtZGVmdGVzdCB0ZXN0LWxpbmUtY29tbWVudC1wLS1lbWFjcy1saXNwICgpCiAgICh3aXRo LXRlbXAtYnVmZmVyLXN0ci1tb2RlIGVtYWNzLWxpc3AtbW9kZQotLQoyLjM0LjEK --0000000000009fa6fa061504dd57-- From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 05:08:42 2024 Received: (at 69714) by debbugs.gnu.org; 1 Apr 2024 09:08:42 +0000 Received: from localhost ([127.0.0.1]:49563 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrDek-00031X-JM for submit@debbugs.gnu.org; Mon, 01 Apr 2024 05:08:42 -0400 Received: from mail-lj1-x22b.google.com ([2a00:1450:4864:20::22b]:44518) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrDej-00031K-5k for 69714@debbugs.gnu.org; Mon, 01 Apr 2024 05:08:41 -0400 Received: by mail-lj1-x22b.google.com with SMTP id 38308e7fff4ca-2d8129797fcso12494541fa.1 for <69714@debbugs.gnu.org>; Mon, 01 Apr 2024 02:08:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711962512; x=1712567312; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject :date:message-id:reply-to; bh=DQ/IcSBQ1FeuWhMpkZe7EqaZUrtPBmzXUlRxwsK62TY=; b=Ilz6lA9gQhx8uL0svlKVhHzxuzP9cJ3IANdRDzyOv2vsYpaAl+cGM7dr13guPCNGpy RlYvEzC5NYImvyznX/3lb8GH7aLsxYIk1hic5XT1tvwDahcViwqj1G7RqhQw4WLBU8yP gEPiC7YHOKmcoTJnUHn6pFend49fAhc9RgO78ybi0ty1Lv5r6/86fW+G3XkaXvaVfy4X BvR1Fe3fglkcfhqGV6CqD1E3SsPVEuiRePRrSwL4aiGA0OUVwlcaVuj7+a+GEqJ0cSFr i37FVs82YIRR2DdwhpNxJqctVVB2MbYQjR2kzp4sIZqPtkRF6c2uNxNwoT+Iuy/j7UGw c4FA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711962512; x=1712567312; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=DQ/IcSBQ1FeuWhMpkZe7EqaZUrtPBmzXUlRxwsK62TY=; b=GYAwuxk9WqSxjsK++p0LoKZoWWtgFOH/mSrctS+5nP+t1V2arCy21BZ06qTPzCOOZv 5rQn7Q043L4v26Leo93NdGHzR/LpUGQwFavkTDqaJ4AIijdvH9wcNk4N32TJ8jdXXKOb lFtH6poAaoNr/pS9J2cS8zukay0N4aBlYffH5t5hzx/Nxqe7GCPF4j2FbRT+H5BE+xUW 1NeM6pwZMWU4Zw4Hz+Cqi0LtVqa4Xsmv5CS+9X6jB7S5xxB5wN88jPx43q2ba5wiq/z4 9jeJDe7lvnFJUCd0vDCTRWI5MnujuxzRdXv8/N6Gj1OVq410ow7fgVqBS6neI17WbTyM Fy2g== X-Forwarded-Encrypted: i=1; AJvYcCUUsfQIbx7/WBLMfgPbKiizvTfTgSc+lzXZpaDVgFLIQH92ywKZsu2cgnERW4J//0fWhxHBox3DRJ6Ey0IHDhVNLM8QiwY= X-Gm-Message-State: AOJu0Yz3B0LZJH1UYzFP4ZQhyPb50fXVb7IOO+w7JX3fBsMzyQdjc2dI Dz9dxwS0jESFkmLUqS9yykNLqjgPkCmDdFvF0Lx8Lr7vL/zkTu7H X-Google-Smtp-Source: AGHT+IHsPCHZ8G20EvUDiv1vRYDD3hqdx7LIbN1Y5MwhJ0RkcufHBV6Cmxg8IHnFgcTNYLIoHfxaNg== X-Received: by 2002:a2e:a594:0:b0:2d7:aaf:54ab with SMTP id m20-20020a2ea594000000b002d70aaf54abmr6416743ljp.38.1711962511787; Mon, 01 Apr 2024 02:08:31 -0700 (PDT) Received: from smtpclient.apple (c80-217-1-132.bredband.tele2.se. [80.217.1.132]) by smtp.gmail.com with ESMTPSA id y13-20020a2e9d4d000000b002d429304a20sm1332682ljj.8.2024.04.01.02.08.31 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 01 Apr 2024 02:08:31 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Subject: Re: bug#69714: [PATCH] Improve ert-font-lock assertion parser From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= In-Reply-To: Date: Mon, 1 Apr 2024 11:08:30 +0200 Content-Transfer-Encoding: quoted-printable Message-Id: References: <8EAA90DF-C567-4ADA-81DB-F074FE73ADAF@gmail.com> <980599BD-0A5B-40EE-BEAF-C6F24B18ACB9@gmail.com> To: Vladimir Kazanov X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 69714 Cc: Eli Zaretskii , 69714@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) 1 apr. 2024 kl. 10.34 skrev Vladimir Kazanov : > Not sure using rx-define et al makes sense for 3 regular expressions I > need to test directly. Well, ert-font-lock--face-symbol-list-re is only used in other regexps. = (And in tests, but you can always write `(rx = ert-font-lock--face-symbol-list-re)`.) But it's not very important. > Here's patch v2. Looks fine! From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 05:12:33 2024 Received: (at 69714) by debbugs.gnu.org; 1 Apr 2024 09:12:34 +0000 Received: from localhost ([127.0.0.1]:49571 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrDiT-00037q-LX for submit@debbugs.gnu.org; Mon, 01 Apr 2024 05:12:33 -0400 Received: from mail-lj1-x22d.google.com ([2a00:1450:4864:20::22d]:58605) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrDiR-00037b-QV for 69714@debbugs.gnu.org; Mon, 01 Apr 2024 05:12:32 -0400 Received: by mail-lj1-x22d.google.com with SMTP id 38308e7fff4ca-2d71765d3e1so34037931fa.0 for <69714@debbugs.gnu.org>; Mon, 01 Apr 2024 02:12:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711962742; x=1712567542; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=TAm0CYCDqK/s4rW+K6+qknQIpomBv6sJrMq9FMWs7fE=; b=KyKXBlj//wXSrnnpwqCPiAfDE662Nm4pWbYTVDI9h+gr4NkvKJkuMbLuSCt0g/8S1i E6sLB36fWeOYSsCv0158/6t/hZBscMsg6IAkhwa//7Mxqoeiw3BY7+2vX5TOxOcn62+b YhAAqPo/DP3UYeb86c7vKSVP4YZXKE06hIoVyAnkQsvtZT3i/fJ9s2QV1IEuGgPh3/fq gB3IuuoH9tbHbQICwwSRO8tkzRBeOW/Y3VsQNzHF+HKEz8cjjN5/nxkpPTKOfXPdvphR AR5Veqz5U/yJR+wDKapqLBD7p06hP1ySP+6f0yg8smBSVDWYH9fytuB/1q2ot2rH4k+X J+rg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711962742; x=1712567542; h=cc: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=TAm0CYCDqK/s4rW+K6+qknQIpomBv6sJrMq9FMWs7fE=; b=i4Z0poNYptj13WoWn8K5fQ0b6tw4IvuwCt9vML9xvfLVrxrJpRd/kE9nIGddm3yqZn zgMHtjr0sReUGUHDV+BjePr1Ol5wNllFLwJCafStWpNesnJhunP+Z83C23d3kZF2PrLN gg6zqSyii1s7YKZFl48wOxKeHqG9QjDdEv018QlxF9rCHa9hW418QzE654BUbDPv8DS0 gZdJCLs+290kKK57SiNLLeJDDTL6xKBx3i6UNMzBHlCohPJks9/1ooTwZYzDFolKC6ZK 53c0AOOe/QNyA/vkX5ZhkDSCr1bZkRGDH2Fy4tBMWRYvv/VSNPRX5JM+ZrbOCdxfIGYL HD3Q== X-Forwarded-Encrypted: i=1; AJvYcCUx2BZrt0ORTW2CeNo+ooywjd84lOXu/eeeebXIVQb6T9Z9QQRfLFavH9jYQnfeckzs8WxGb74JBa5lvSUrBcNE4/uuYfg= X-Gm-Message-State: AOJu0Yz79OfyP1iHxy682gpLQMG12/adIn5PXjIPNUVDvULjipwA9uKf NSEz5PGYjvL0CdXZlPrEPXmvIqlNqXenf735dvdiZVUPe5rnFALJ866KE2jJpGTXbN4TVYql91T 9A3/7dyBbVLaZac1gTGrr5rAEHQ== X-Google-Smtp-Source: AGHT+IGOcUBPzJTIuf5X7kiNH45DmgAMyx4B6iIAuwKlfCZNc/V6EbmjJvFmosJktAj1VPsC5D8FdgYgBnZwcM4P/Uo= X-Received: by 2002:a05:651c:2225:b0:2d8:fe4:82c0 with SMTP id y37-20020a05651c222500b002d80fe482c0mr3419199ljq.0.1711962742320; Mon, 01 Apr 2024 02:12:22 -0700 (PDT) MIME-Version: 1.0 References: <8EAA90DF-C567-4ADA-81DB-F074FE73ADAF@gmail.com> <980599BD-0A5B-40EE-BEAF-C6F24B18ACB9@gmail.com> In-Reply-To: From: Vladimir Kazanov Date: Mon, 1 Apr 2024 10:12:10 +0100 Message-ID: Subject: Re: bug#69714: [PATCH] Improve ert-font-lock assertion parser To: =?UTF-8?Q?Mattias_Engdeg=C3=A5rd?= Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 69714 Cc: Eli Zaretskii , 69714@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > Looks fine! Thanks a lot! Can you install it for me? Or should I wait for Eli to have time to handle this? -- Regards, Vladimir Kazanov From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 05:15:15 2024 Received: (at 69714) by debbugs.gnu.org; 1 Apr 2024 09:15:15 +0000 Received: from localhost ([127.0.0.1]:49575 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrDl5-0003CW-5i for submit@debbugs.gnu.org; Mon, 01 Apr 2024 05:15:15 -0400 Received: from mail-lj1-x236.google.com ([2a00:1450:4864:20::236]:44295) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrDl3-0003CH-9X for 69714@debbugs.gnu.org; Mon, 01 Apr 2024 05:15:13 -0400 Received: by mail-lj1-x236.google.com with SMTP id 38308e7fff4ca-2d8129797fcso12563001fa.1 for <69714@debbugs.gnu.org>; Mon, 01 Apr 2024 02:15:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711962904; x=1712567704; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:from:to:cc:subject :date:message-id:reply-to; bh=nkP1jvaxiPUzFR9Cm/5drVAJk9e7LXHMsAVwX1TFXJI=; b=ncjeu0yca2dDoEXn6KoOn4uSDtpll5Q4IS1mw7AZvA78Anq7S4ed5KLmm7IfvfnNyR XIqZkRQ/9XC0/kLvq/tgO2/8ba01XS0sgMJcfotsyT6GKsf5XursEGk/sRYLERGJgd8s foLKQbKVNY+q7B5+jE3NdfTyezJvLCzlq5C4lT8LO/UyS7okPnGIMXkiObE/JCB/1JFG +vV3MPdKPFXjSuekZNWT7ziTBK8S+JSzbnnj393AHD60VKS9TqPohd6D6wryyRlMNx+Y 4th/9kbNBpPaH6CAjztWrGpY3a7wugMHHqiI4xEMndoE1/Qp/Rom//aPWO2gR1btYHIE 0+gQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711962904; x=1712567704; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=nkP1jvaxiPUzFR9Cm/5drVAJk9e7LXHMsAVwX1TFXJI=; b=FQQTuIMrZcp1Fpo1z+I5db545obvpyu6o/zreTAvsZqImGoqMzPegRUOqE6EqLh6pj C4s6R6D8x8JfrHrNyIfsevL9Su2M7rySZNvpig7ZWokKTRAG6scSW7wDn6i9q/UbjmR4 nZ6MXtNXSgsM/jEXLmbFVx0RFGzYwiNC8y39tGPG/VnO0gbRRo5yBbHyqpL4kWyrMaph 33qvyqw6hq3NAEPJqyYkdjOpIZn7aOXq/XO0ahZvL/dgeWKmDWnVlaI+vgpEjdBCIIVV exHRy47ZZiBTDO2MO3P/nYkWYDh0jtI98Fy97zgg+Huqc8wHznwRtsYI9hPmRLar/0/b nE+g== X-Forwarded-Encrypted: i=1; AJvYcCVodp0RCPqnCN8BFVlFyleYnzXjCmgUhiQqu3Dk5IDS4LgQ9Ao7DIntm/BzBkd4koAaDrzsoB9PbiPEjZZi0h6xKdnwO2g= X-Gm-Message-State: AOJu0YwMA/1sHIkEWXdwaxP+YNOIoIogeiBE+b4kfHgvur93Sm1mc2H/ eoD8yOaiReNRzGEsHvi1/L23bdgLddbXhh6lwaGmDobj3AwIkCo2 X-Google-Smtp-Source: AGHT+IHqbCg8wRYiAvqTMCZAxuNnSzCzoKWoi63iERSinQfskIp8PjfBfFsLKNQ15DAl0daETIv28Q== X-Received: by 2002:a2e:2407:0:b0:2d4:5b06:b9c7 with SMTP id k7-20020a2e2407000000b002d45b06b9c7mr6315596ljk.39.1711962904183; Mon, 01 Apr 2024 02:15:04 -0700 (PDT) Received: from smtpclient.apple (c80-217-1-132.bredband.tele2.se. [80.217.1.132]) by smtp.gmail.com with ESMTPSA id v17-20020a2e9611000000b002d2b76dd76esm1351782ljh.57.2024.04.01.02.15.03 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 01 Apr 2024 02:15:03 -0700 (PDT) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.15\)) Subject: Re: bug#69714: [PATCH] Improve ert-font-lock assertion parser From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= In-Reply-To: Date: Mon, 1 Apr 2024 11:15:03 +0200 Content-Transfer-Encoding: 7bit Message-Id: <428CB003-B852-4CAA-BD43-C01BF5AAB85F@gmail.com> References: <8EAA90DF-C567-4ADA-81DB-F074FE73ADAF@gmail.com> <980599BD-0A5B-40EE-BEAF-C6F24B18ACB9@gmail.com> To: Vladimir Kazanov X-Mailer: Apple Mail (2.3654.120.0.1.15) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 69714 Cc: Eli Zaretskii , 69714@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > Can you install it for me? Certainly, now done. From unknown Wed Jun 18 23:04:08 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 29 Apr 2024 11:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator