Stefan Kangas <stefankangas@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.Received: (at submit) by debbugs.gnu.org; 23 Feb 2023 02:34:29 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 22 21:34:29 2023 Received: from localhost ([127.0.0.1]:60802 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1pV1RF-0007Le-1Y for submit <at> debbugs.gnu.org; Wed, 22 Feb 2023 21:34:29 -0500 Received: from lists.gnu.org ([209.51.188.17]:52792) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <owinebar@HIDDEN>) id 1pV1RD-0007LW-Ea for submit <at> debbugs.gnu.org; Wed, 22 Feb 2023 21:34:27 -0500 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 <owinebar@HIDDEN>) id 1pV1RC-0005Wd-Lk for bug-gnu-emacs@HIDDEN; Wed, 22 Feb 2023 21:34:26 -0500 Received: from mail-pj1-x1033.google.com ([2607:f8b0:4864:20::1033]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from <owinebar@HIDDEN>) id 1pV1R3-0000zB-I4 for bug-gnu-emacs@HIDDEN; Wed, 22 Feb 2023 21:34:26 -0500 Received: by mail-pj1-x1033.google.com with SMTP id gi3-20020a17090b110300b0023762f642dcso442805pjb.4 for <bug-gnu-emacs@HIDDEN>; Wed, 22 Feb 2023 18:33:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=eDb0rqixiWu5IXCVTYLJP9RmllrhX7+ITvWg/f+rogw=; b=aP/O1srCqNSW4THrxfmB+IdFEq/Zl7J+M6v8FyPp0ntCqvcuOqaSgqvRgX82XLSeeo 3+ZVH57M6ILFsOtEWOecWtadLLjaH8bpcMLuHbdFDQP90FT+olgLcZRri6yH+fWCHqqz O07k7ECf3jN8yjIVZRdHjDJWK6aCZICMrMsh3YYssTB2luPe9y9Ozz+5IlHkQcVLcxqD F9EMzod0xfg4EtVsxndLE5dV4dcy/GW4+H06wusCUYmU2KuHgkm445uqerjyp8Fd/AeJ G28SvedC8hEeh16VAyisTSxu1GYz+JCABKmJ3l9boAfXGZfNDUtW6VoZBmmi+z6h8ZHJ crLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=eDb0rqixiWu5IXCVTYLJP9RmllrhX7+ITvWg/f+rogw=; b=3FWHI0/uE6i3xgOW/oYz4lcjQihxfLjuAE8xuZKBISu1CtuNNharF3i+OKw8apy+ur x60BM8qOffp5+mG25yApb/OY5fBW6x5LCAyFIzRvD6V7bQHaZzaQgJM2N+NVIewimJRm apt0GJ2qo1JZ2tkWdbRgf8VQln0k4plM05eRbW0YREBUWRoMw0PC2MowrteVj4yrcFsN xf1lHpkIYaXFN9GMiR/UHqgO2iA8kJihlFg/uZVF/JEko1yrmuL/lM/P5oe33XUJ9GvR ppb8EvLq97bNlFURvg0v9YQtveXmQa5OPMLPJJw4AkJDgVQekxq6db2MjLusNyVErYC4 m9ww== X-Gm-Message-State: AO0yUKUeba3tPpCqsAqwJszCqnZn5bYpdJgYaZ6yUYEnS38ZIyqaiGK2 059Psdk0mewW/BdsLNUAkjEzX+Xw1zz1Rihw67vOazvGYow= X-Google-Smtp-Source: AK7set+WXRUa6MwJoItk82rPHgaBx0pRB8pOZgYMFPzeLZwVT9Ju+/+4IXEm+fqMSV7MQ7C6eJ02IMGzlb3vOhdK8Xg= X-Received: by 2002:a17:90a:7643:b0:233:eccf:ea10 with SMTP id s3-20020a17090a764300b00233eccfea10mr128474pjl.1.1677119628665; Wed, 22 Feb 2023 18:33:48 -0800 (PST) MIME-Version: 1.0 From: Lynn Winebarger <owinebar@HIDDEN> Date: Wed, 22 Feb 2023 21:33:37 -0500 Message-ID: <CAM=F=bCcXFytYX2-9G0v4m5yePf93oj3AhfXn2Gy_S-ANSsRJQ@HIDDEN> Subject: Improving support for setting customization at startup in redumped images To: bug-gnu-emacs@HIDDEN Content-Type: multipart/mixed; boundary="000000000000b67efc05f554d7d1" Received-SPF: pass client-ip=2607:f8b0:4864:20::1033; envelope-from=owinebar@HIDDEN; helo=mail-pj1-x1033.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 autolearn=ham autolearn_force=no X-Spam_action: no action X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> --000000000000b67efc05f554d7d1 Content-Type: text/plain; charset="UTF-8" The attached patch provides support for resetting customization variables at startup after redumping. It could be considerably improved by determining dependencies of variables by analysis of the specified initialization expressions. Patch is against master commit 098add06eb7d742ff0e6ee0e294931a93a60c71c In GNU Emacs 30.0.50 (build 6, x86_64-pc-linux-gnu, GTK+ Version 3.24.34, cairo version 1.16.0) of 2023-02-22 built on localhost.localdomain Repository revision: 4c68e073419999b14cfee1a1cef5d41d28ab6efe Repository branch: feature/redump-startup-support Windowing system distributor 'The X.Org Foundation', version 11.0.12003000 System Description: openSUSE Leap 15.4 Configured using: 'configure --with-xwidgets --with-imagemagick' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ IMAGEMAGICK JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM XWIDGETS GTK3 ZLIB Important settings: value of $LC_CTYPE: en_US.utf8 value of $LANG: en_US.utf8 value of $XMODIFIERS: @im=fcitx locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: erefactor-check-eval-mode: t erefactor-highlight-mode: t TeX-PDF-mode: t global-semantic-mru-bookmark-mode: t global-semanticdb-minor-mode: t global-semantic-decoration-mode: t global-semantic-idle-breadcrumbs-mode: t global-semantic-idle-completions-mode: t global-semantic-idle-scheduler-mode: t global-semantic-idle-local-symbol-highlight-mode: t global-semantic-idle-summary-mode: t global-semantic-highlight-func-mode: t global-semantic-stickyfunc-mode: t global-semantic-show-parser-state-mode: t global-semantic-show-unmatched-syntax-mode: t global-semantic-highlight-edits-mode: t semantic-mode: t mode-icons-mode: t ivy-rich-mode: t global-origami-mode: t origami-mode: t global-hl-line-mode: t global-ede-mode: t global-dash-fontify-mode: t dash-fontify-mode: t counsel-projectile-mode: t projectile-mode: t counsel-mode: t ivy-mode: t company-tng-mode: t company-quickhelp-mode: t company-quickhelp-local-mode: t company-posframe-mode: t global-company-mode: t company-mode: t windmove-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t column-number-mode: t line-number-mode: t indent-tabs-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /usr/share/emacs/site-lisp/emu/poem hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/poem /usr/share/emacs/site-lisp/emu/apel-ver hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/apel-ver /usr/share/emacs/site-lisp/emu/mule-caesar hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/mule-caesar /usr/share/emacs/site-lisp/emu/poem-e20_3 hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/poem-e20_3 /usr/share/emacs/site-lisp/apel/filename hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/filename /usr/share/emacs/site-lisp/emu/poem-e20 hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/poem-e20 /usr/share/emacs/site-lisp/emu/product hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/product /usr/share/emacs/site-lisp/emu/pces-20 hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/pces-20 /usr/share/emacs/site-lisp/emu/static hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/static /usr/share/emacs/site-lisp/emu/poe hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/poe /usr/share/emacs/site-lisp/apel/path-util hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/path-util /usr/share/emacs/site-lisp/emu/pccl hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/pccl /usr/share/emacs/site-lisp/emu/mcs-20 hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/mcs-20 /usr/share/emacs/site-lisp/emu/inv-23 hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/inv-23 /usr/share/emacs/site-lisp/apel/alist hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/alist /usr/share/emacs/site-lisp/emu/pces-e20 hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/pces-e20 /usr/share/emacs/site-lisp/apel/install hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/install /usr/share/emacs/site-lisp/emu/mcs-e20 hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/mcs-e20 /usr/share/emacs/site-lisp/emu/pces hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/pces /usr/share/emacs/site-lisp/emu/mcharset hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/mcharset /usr/share/emacs/site-lisp/emu/emu hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/emu /usr/share/emacs/site-lisp/emu/pccl-20 hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/pccl-20 /usr/share/emacs/site-lisp/emu/broken hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/broken /usr/share/emacs/site-lisp/apel/calist hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/calist /usr/share/emacs/site-lisp/emu/invisible hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/invisible /usr/share/emacs/site-lisp/emu/pcustom hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/pcustom /usr/share/emacs/site-lisp/emu/richtext hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/richtext /usr/share/emacs/site-lisp/emu/pym hides /home/owinebar/.emacs.d/elpa-30/apel-20220720.1308/pym /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/hmac-sha1 hides /home/owinebar/.emacs.d/elpa-30/oauth-20130128.151/hmac-sha1 /usr/share/emacs/site-lisp/site-start.d/auctex hides /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/auctex /home/owinebar/.emacs.d/elpa-30/elsa-20230207.1358/Elsafile hides /home/owinebar/.emacs.d/elpa-30/flycheck-elsa-20220523.1105/Elsafile /home/owinebar/.emacs.d/elpa-30/lispy-20221225.1927/elpa hides /home/owinebar/.emacs.d/elpa-30/ivy-20220926.1250/elpa /home/owinebar/.emacs.d/elpa-30/maxima-20220531.1847/maxima-font-lock hides /usr/local/share/emacs/site-lisp/maxima-font-lock /home/owinebar/.emacs.d/elpa-30/cmake-mode-20230209.1921/cmake-mode hides /usr/local/share/emacs/site-lisp/cmake-mode /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/tex-site hides /usr/local/share/emacs/site-lisp/tex-site /home/owinebar/.emacs.d/elpa-30/maxima-20220531.1847/maxima hides /usr/local/share/emacs/site-lisp/maxima /usr/share/emacs/site-lisp/apel/filename hides /usr/local/share/emacs/site-lisp/apel/filename /usr/share/emacs/site-lisp/apel/path-util hides /usr/local/share/emacs/site-lisp/apel/path-util /usr/share/emacs/site-lisp/apel/alist hides /usr/local/share/emacs/site-lisp/apel/alist /usr/share/emacs/site-lisp/apel/install hides /usr/local/share/emacs/site-lisp/apel/install /usr/share/emacs/site-lisp/apel/calist hides /usr/local/share/emacs/site-lisp/apel/calist /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/tex-info hides /usr/local/share/emacs/site-lisp/auctex/tex-info /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/tex-style hides /usr/local/share/emacs/site-lisp/auctex/tex-style /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/plain-tex hides /usr/local/share/emacs/site-lisp/auctex/plain-tex /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/tex-jp hides /usr/local/share/emacs/site-lisp/auctex/tex-jp /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/tex-fold hides /usr/local/share/emacs/site-lisp/auctex/tex-fold /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/context hides /usr/local/share/emacs/site-lisp/auctex/context /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/latex-flymake hides /usr/local/share/emacs/site-lisp/auctex/latex-flymake /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/texmathp hides /usr/local/share/emacs/site-lisp/auctex/texmathp /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/tex hides /usr/local/share/emacs/site-lisp/auctex/tex /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/tex-bar hides /usr/local/share/emacs/site-lisp/auctex/tex-bar /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/latex hides /usr/local/share/emacs/site-lisp/auctex/latex /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/tex-mik hides /usr/local/share/emacs/site-lisp/auctex/tex-mik /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/toolbar-x hides /usr/local/share/emacs/site-lisp/auctex/toolbar-x /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/multi-prompt hides /usr/local/share/emacs/site-lisp/auctex/multi-prompt /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/context-nl hides /usr/local/share/emacs/site-lisp/auctex/context-nl /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/preview hides /usr/local/share/emacs/site-lisp/auctex/preview /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/tex-ispell hides /usr/local/share/emacs/site-lisp/auctex/tex-ispell /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/bib-cite hides /usr/local/share/emacs/site-lisp/auctex/bib-cite /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/font-latex hides /usr/local/share/emacs/site-lisp/auctex/font-latex /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/tex-font hides /usr/local/share/emacs/site-lisp/auctex/tex-font /home/owinebar/.emacs.d/elpa-30/auctex-13.1.9/context-en hides /usr/local/share/emacs/site-lisp/auctex/context-en /usr/share/emacs/site-lisp/emu/poem hides /usr/local/share/emacs/site-lisp/emu/poem /usr/share/emacs/site-lisp/emu/inv-23 hides /usr/local/share/emacs/site-lisp/emu/inv-23 /usr/share/emacs/site-lisp/emu/invisible hides /usr/local/share/emacs/site-lisp/emu/invisible /usr/share/emacs/site-lisp/emu/mule-caesar hides /usr/local/share/emacs/site-lisp/emu/mule-caesar /usr/share/emacs/site-lisp/emu/poem-e20 hides /usr/local/share/emacs/site-lisp/emu/poem-e20 /usr/share/emacs/site-lisp/emu/pces-20 hides /usr/local/share/emacs/site-lisp/emu/pces-20 /usr/share/emacs/site-lisp/emu/pces hides /usr/local/share/emacs/site-lisp/emu/pces /usr/share/emacs/site-lisp/emu/pym hides /usr/local/share/emacs/site-lisp/emu/pym /usr/share/emacs/site-lisp/emu/pccl hides /usr/local/share/emacs/site-lisp/emu/pccl /usr/share/emacs/site-lisp/emu/poem-e20_3 hides /usr/local/share/emacs/site-lisp/emu/poem-e20_3 /usr/share/emacs/site-lisp/emu/pccl-20 hides /usr/local/share/emacs/site-lisp/emu/pccl-20 /usr/share/emacs/site-lisp/emu/mcs-e20 hides /usr/local/share/emacs/site-lisp/emu/mcs-e20 /usr/share/emacs/site-lisp/emu/apel-ver hides /usr/local/share/emacs/site-lisp/emu/apel-ver /usr/share/emacs/site-lisp/emu/pces-e20 hides /usr/local/share/emacs/site-lisp/emu/pces-e20 /usr/share/emacs/site-lisp/emu/mcs-20 hides /usr/local/share/emacs/site-lisp/emu/mcs-20 /usr/share/emacs/site-lisp/emu/product hides /usr/local/share/emacs/site-lisp/emu/product /usr/share/emacs/site-lisp/emu/static hides /usr/local/share/emacs/site-lisp/emu/static /usr/share/emacs/site-lisp/emu/emu hides /usr/local/share/emacs/site-lisp/emu/emu /usr/share/emacs/site-lisp/emu/broken hides /usr/local/share/emacs/site-lisp/emu/broken /usr/share/emacs/site-lisp/emu/poe hides /usr/local/share/emacs/site-lisp/emu/poe /usr/share/emacs/site-lisp/emu/mcharset hides /usr/local/share/emacs/site-lisp/emu/mcharset /usr/share/emacs/site-lisp/emu/pcustom hides /usr/local/share/emacs/site-lisp/emu/pcustom /usr/share/emacs/site-lisp/emu/richtext hides /usr/local/share/emacs/site-lisp/emu/richtext /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/mmgeneric hides /usr/local/share/emacs/site-lisp/flim/mmgeneric /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/mime-def hides /usr/local/share/emacs/site-lisp/flim/mime-def /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/mime hides /usr/local/share/emacs/site-lisp/flim/mime /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/lunit hides /usr/local/share/emacs/site-lisp/flim/lunit /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/mime-conf hides /usr/local/share/emacs/site-lisp/flim/mime-conf /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/mime-parse hides /usr/local/share/emacs/site-lisp/flim/mime-parse /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/mmbuffer hides /usr/local/share/emacs/site-lisp/flim/mmbuffer /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/std11 hides /usr/local/share/emacs/site-lisp/flim/std11 /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/smtp hides /usr/local/share/emacs/site-lisp/flim/smtp /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/mel-u hides /usr/local/share/emacs/site-lisp/flim/mel-u /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/hmac-sha1 hides /usr/local/share/emacs/site-lisp/flim/hmac-sha1 /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/mel-q hides /usr/local/share/emacs/site-lisp/flim/mel-q /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/mel hides /usr/local/share/emacs/site-lisp/flim/mel /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/luna hides /usr/local/share/emacs/site-lisp/flim/luna /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/mel-q-ccl hides /usr/local/share/emacs/site-lisp/flim/mel-q-ccl /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/md5 hides /usr/local/share/emacs/site-lisp/flim/md5 /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/mmexternal hides /usr/local/share/emacs/site-lisp/flim/mmexternal /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/sasl-scram hides /usr/local/share/emacs/site-lisp/flim/sasl-scram /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/mmcooked hides /usr/local/share/emacs/site-lisp/flim/mmcooked /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/mel-g hides /usr/local/share/emacs/site-lisp/flim/mel-g /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/eword-encode hides /usr/local/share/emacs/site-lisp/flim/eword-encode /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/qmtp hides /usr/local/share/emacs/site-lisp/flim/qmtp /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/eword-decode hides /usr/local/share/emacs/site-lisp/flim/eword-decode /usr/share/emacs/site-lisp/gnugo/make-xpms-file hides /usr/local/share/emacs/site-lisp/gnugo/make-xpms-file /usr/share/emacs/site-lisp/gnugo/gnugo-big-xpms hides /usr/local/share/emacs/site-lisp/gnugo/gnugo-big-xpms /usr/share/emacs/site-lisp/gnugo/gnugo-db hides /usr/local/share/emacs/site-lisp/gnugo/gnugo-db /usr/share/emacs/site-lisp/gnugo/gnugo hides /usr/local/share/emacs/site-lisp/gnugo/gnugo /usr/share/emacs/site-lisp/gnugo/gnugo-xpms hides /usr/local/share/emacs/site-lisp/gnugo/gnugo-xpms /home/owinebar/.emacs.d/elpa-30/psgml-1.3.5/psgml-api hides /usr/local/share/emacs/site-lisp/psgml/psgml-api /home/owinebar/.emacs.d/elpa-30/psgml-1.3.5/psgml-pkg hides /usr/local/share/emacs/site-lisp/psgml/psgml-pkg /home/owinebar/.emacs.d/elpa-30/psgml-1.3.5/psgml-info hides /usr/local/share/emacs/site-lisp/psgml/psgml-info /home/owinebar/.emacs.d/elpa-30/psgml-1.3.5/psgml-debug hides /usr/local/share/emacs/site-lisp/psgml/psgml-debug /home/owinebar/.emacs.d/elpa-30/psgml-1.3.5/psgml-fs hides /usr/local/share/emacs/site-lisp/psgml/psgml-fs /home/owinebar/.emacs.d/elpa-30/psgml-1.3.5/psgml-dtd hides /usr/local/share/emacs/site-lisp/psgml/psgml-dtd /home/owinebar/.emacs.d/elpa-30/psgml-1.3.5/psgml-parse hides /usr/local/share/emacs/site-lisp/psgml/psgml-parse /home/owinebar/.emacs.d/elpa-30/psgml-1.3.5/psgml-other hides /usr/local/share/emacs/site-lisp/psgml/psgml-other /home/owinebar/.emacs.d/elpa-30/psgml-1.3.5/psgml-edit hides /usr/local/share/emacs/site-lisp/psgml/psgml-edit /home/owinebar/.emacs.d/elpa-30/psgml-1.3.5/psgml hides /usr/local/share/emacs/site-lisp/psgml/psgml /home/owinebar/.emacs.d/elpa-30/rtags-xref-20210721.2314/rtags-xref hides /usr/local/share/emacs/site-lisp/rtags/rtags-xref /home/owinebar/.emacs.d/elpa-30/company-rtags-20191222.920/company-rtags hides /usr/local/share/emacs/site-lisp/rtags/company-rtags /home/owinebar/.emacs.d/elpa-30/ac-rtags-20191222.920/ac-rtags hides /usr/local/share/emacs/site-lisp/rtags/ac-rtags /home/owinebar/.emacs.d/elpa-30/ivy-rtags-20191222.920/ivy-rtags hides /usr/local/share/emacs/site-lisp/rtags/ivy-rtags /home/owinebar/.emacs.d/elpa-30/rtags-20220818.1535/rtags hides /usr/local/share/emacs/site-lisp/rtags/rtags /home/owinebar/.emacs.d/elpa-30/flycheck-rtags-20191222.920/flycheck-rtags hides /usr/local/share/emacs/site-lisp/rtags/flycheck-rtags /home/owinebar/.emacs.d/elpa-30/semi-20230104.1321/semi-setup hides /usr/local/share/emacs/site-lisp/semi/semi-setup /home/owinebar/.emacs.d/elpa-30/semi-20230104.1321/mime-pgp hides /usr/local/share/emacs/site-lisp/semi/mime-pgp /home/owinebar/.emacs.d/elpa-30/semi-20230104.1321/signature hides /usr/local/share/emacs/site-lisp/semi/signature /home/owinebar/.emacs.d/elpa-30/semi-20230104.1321/mail-mime-setup hides /usr/local/share/emacs/site-lisp/semi/mail-mime-setup /home/owinebar/.emacs.d/elpa-30/semi-20230104.1321/mime-view hides /usr/local/share/emacs/site-lisp/semi/mime-view /home/owinebar/.emacs.d/elpa-30/semi-20230104.1321/mime-setup hides /usr/local/share/emacs/site-lisp/semi/mime-setup /home/owinebar/.emacs.d/elpa-30/semi-20230104.1321/mime-play hides /usr/local/share/emacs/site-lisp/semi/mime-play /home/owinebar/.emacs.d/elpa-30/semi-20230104.1321/mime-edit hides /usr/local/share/emacs/site-lisp/semi/mime-edit /home/owinebar/.emacs.d/elpa-30/semi-20230104.1321/semi-def hides /usr/local/share/emacs/site-lisp/semi/semi-def /home/owinebar/.emacs.d/elpa-30/semi-20230104.1321/mime-partial hides /usr/local/share/emacs/site-lisp/semi/mime-partial /home/owinebar/.emacs.d/elpa-30/semi-20230104.1321/mime-image hides /usr/local/share/emacs/site-lisp/semi/mime-image /home/owinebar/.emacs.d/elpa-30/semi-20230104.1321/mime-w3 hides /usr/local/share/emacs/site-lisp/semi/mime-w3 /usr/share/emacs/site-lisp/site-start.d/auctex hides /usr/local/share/emacs/site-lisp/site-start.d/auctex /usr/share/emacs/site-lisp/site-start.d/preview-latex hides /usr/local/share/emacs/site-lisp/site-start.d/preview-latex /usr/share/emacs/site-lisp/w3m/w3m-load hides /usr/local/share/emacs/site-lisp/w3m/w3m-load /usr/share/emacs/site-lisp/w3m/sb-heise hides /usr/local/share/emacs/site-lisp/w3m/sb-heise /usr/share/emacs/site-lisp/w3m/sb-yoshirin hides /usr/local/share/emacs/site-lisp/w3m/sb-yoshirin /usr/share/emacs/site-lisp/w3m/w3m-hist hides /usr/local/share/emacs/site-lisp/w3m/w3m-hist /usr/share/emacs/site-lisp/w3m/sb-exconn hides /usr/local/share/emacs/site-lisp/w3m/sb-exconn /usr/share/emacs/site-lisp/w3m/sb-mhonarc hides /usr/local/share/emacs/site-lisp/w3m/sb-mhonarc /usr/share/emacs/site-lisp/w3m/sb-pocketgames hides /usr/local/share/emacs/site-lisp/w3m/sb-pocketgames /usr/share/emacs/site-lisp/w3m/sb-sankei hides /usr/local/share/emacs/site-lisp/w3m/sb-sankei /usr/share/emacs/site-lisp/w3m/sb-security-memo hides /usr/local/share/emacs/site-lisp/w3m/sb-security-memo /usr/share/emacs/site-lisp/w3m/sb-toshiba hides /usr/local/share/emacs/site-lisp/w3m/sb-toshiba /usr/share/emacs/site-lisp/w3m/sb-mailman hides /usr/local/share/emacs/site-lisp/w3m/sb-mailman /usr/share/emacs/site-lisp/w3m/sb-text hides /usr/local/share/emacs/site-lisp/w3m/sb-text /usr/share/emacs/site-lisp/w3m/sb-wired-jp hides /usr/local/share/emacs/site-lisp/w3m/sb-wired-jp /usr/share/emacs/site-lisp/w3m/sb-hns hides /usr/local/share/emacs/site-lisp/w3m/sb-hns /usr/share/emacs/site-lisp/w3m/sb-bbdb-ml hides /usr/local/share/emacs/site-lisp/w3m/sb-bbdb-ml /usr/share/emacs/site-lisp/w3m/sb-opentechpress-jp hides /usr/local/share/emacs/site-lisp/w3m/sb-opentechpress-jp /usr/share/emacs/site-lisp/w3m/w3m-rss hides /usr/local/share/emacs/site-lisp/w3m/w3m-rss /usr/share/emacs/site-lisp/w3m/sb-fml hides /usr/local/share/emacs/site-lisp/w3m/sb-fml /usr/share/emacs/site-lisp/w3m/w3m-save hides /usr/local/share/emacs/site-lisp/w3m/w3m-save /usr/share/emacs/site-lisp/w3m/sb-slashdot-jp hides /usr/local/share/emacs/site-lisp/w3m/sb-slashdot-jp /usr/share/emacs/site-lisp/w3m/sb-yomiuri-html hides /usr/local/share/emacs/site-lisp/w3m/sb-yomiuri-html /usr/share/emacs/site-lisp/w3m/w3m hides /usr/local/share/emacs/site-lisp/w3m/w3m /usr/share/emacs/site-lisp/w3m/sb-ruby hides /usr/local/share/emacs/site-lisp/w3m/sb-ruby /usr/share/emacs/site-lisp/w3m/w3m-lnum hides /usr/local/share/emacs/site-lisp/w3m/w3m-lnum /usr/share/emacs/site-lisp/w3m/sb-cnn-jp hides /usr/local/share/emacs/site-lisp/w3m/sb-cnn-jp /usr/share/emacs/site-lisp/w3m/w3m-antenna hides /usr/local/share/emacs/site-lisp/w3m/w3m-antenna /usr/share/emacs/site-lisp/w3m/sb-yahoo hides /usr/local/share/emacs/site-lisp/w3m/sb-yahoo /usr/share/emacs/site-lisp/w3m/sb-kyoko-np hides /usr/local/share/emacs/site-lisp/w3m/sb-kyoko-np /usr/share/emacs/site-lisp/w3m/sb-ibm-dev hides /usr/local/share/emacs/site-lisp/w3m/sb-ibm-dev /usr/share/emacs/site-lisp/w3m/sb-itmedia hides /usr/local/share/emacs/site-lisp/w3m/sb-itmedia /usr/share/emacs/site-lisp/w3m/sb-excite hides /usr/local/share/emacs/site-lisp/w3m/sb-excite /usr/share/emacs/site-lisp/w3m/w3m-image hides /usr/local/share/emacs/site-lisp/w3m/w3m-image /usr/share/emacs/site-lisp/w3m/sb-f1fan hides /usr/local/share/emacs/site-lisp/w3m/sb-f1fan /usr/share/emacs/site-lisp/w3m/sb-airs hides /usr/local/share/emacs/site-lisp/w3m/sb-airs /usr/share/emacs/site-lisp/w3m/w3m-ems hides /usr/local/share/emacs/site-lisp/w3m/w3m-ems /usr/share/emacs/site-lisp/w3m/sb-mailarc hides /usr/local/share/emacs/site-lisp/w3m/sb-mailarc /usr/share/emacs/site-lisp/w3m/sb-debian hides /usr/local/share/emacs/site-lisp/w3m/sb-debian /usr/share/emacs/site-lisp/w3m/sb-meadow hides /usr/local/share/emacs/site-lisp/w3m/sb-meadow /usr/share/emacs/site-lisp/w3m/sb-yomiuri hides /usr/local/share/emacs/site-lisp/w3m/sb-yomiuri /usr/share/emacs/site-lisp/w3m/sb-scipy hides /usr/local/share/emacs/site-lisp/w3m/sb-scipy /usr/share/emacs/site-lisp/w3m/sb-savannah hides /usr/local/share/emacs/site-lisp/w3m/sb-savannah /usr/share/emacs/site-lisp/w3m/sb-squeak-ja hides /usr/local/share/emacs/site-lisp/w3m/sb-squeak-ja /usr/share/emacs/site-lisp/w3m/w3m-weather hides /usr/local/share/emacs/site-lisp/w3m/w3m-weather /usr/share/emacs/site-lisp/w3m/sb-rss-blogs hides /usr/local/share/emacs/site-lisp/w3m/sb-rss-blogs /usr/share/emacs/site-lisp/w3m/sb-debian-jp hides /usr/local/share/emacs/site-lisp/w3m/sb-debian-jp /usr/share/emacs/site-lisp/w3m/sb-rediff hides /usr/local/share/emacs/site-lisp/w3m/sb-rediff /usr/share/emacs/site-lisp/w3m/sb-xemacs hides /usr/local/share/emacs/site-lisp/w3m/sb-xemacs /usr/share/emacs/site-lisp/w3m/sb-haiku-os hides /usr/local/share/emacs/site-lisp/w3m/sb-haiku-os /usr/share/emacs/site-lisp/w3m/w3m-util hides /usr/local/share/emacs/site-lisp/w3m/w3m-util /usr/share/emacs/site-lisp/w3m/sb-fau hides /usr/local/share/emacs/site-lisp/w3m/sb-fau /usr/share/emacs/site-lisp/w3m/sb-pcweb-column hides /usr/local/share/emacs/site-lisp/w3m/sb-pcweb-column /usr/share/emacs/site-lisp/w3m/sb-2ch hides /usr/local/share/emacs/site-lisp/w3m/sb-2ch /usr/share/emacs/site-lisp/w3m/sb-japantimes hides /usr/local/share/emacs/site-lisp/w3m/sb-japantimes /usr/share/emacs/site-lisp/w3m/sb-redhat hides /usr/local/share/emacs/site-lisp/w3m/sb-redhat /usr/share/emacs/site-lisp/w3m/sb-asahi-html hides /usr/local/share/emacs/site-lisp/w3m/sb-asahi-html /usr/share/emacs/site-lisp/w3m/sb-rss-hash hides /usr/local/share/emacs/site-lisp/w3m/sb-rss-hash /usr/share/emacs/site-lisp/w3m/sb-engadget-ja hides /usr/local/share/emacs/site-lisp/w3m/sb-engadget-ja /usr/share/emacs/site-lisp/w3m/sb-wikimedia hides /usr/local/share/emacs/site-lisp/w3m/sb-wikimedia /usr/share/emacs/site-lisp/w3m/sb-gnome hides /usr/local/share/emacs/site-lisp/w3m/sb-gnome /usr/share/emacs/site-lisp/w3m/sb-laut-de hides /usr/local/share/emacs/site-lisp/w3m/sb-laut-de /usr/share/emacs/site-lisp/w3m/w3m-perldoc hides /usr/local/share/emacs/site-lisp/w3m/w3m-perldoc /usr/share/emacs/site-lisp/w3m/sb-the-onion hides /usr/local/share/emacs/site-lisp/w3m/sb-the-onion /usr/share/emacs/site-lisp/w3m/sb-perlentaucher-de hides /usr/local/share/emacs/site-lisp/w3m/sb-perlentaucher-de /usr/share/emacs/site-lisp/w3m/sb-coldsync hides /usr/local/share/emacs/site-lisp/w3m/sb-coldsync /usr/share/emacs/site-lisp/w3m/sb-sml hides /usr/local/share/emacs/site-lisp/w3m/sb-sml /usr/share/emacs/site-lisp/w3m/sb-m17n hides /usr/local/share/emacs/site-lisp/w3m/sb-m17n /usr/share/emacs/site-lisp/w3m/sb-zdnet-jp hides /usr/local/share/emacs/site-lisp/w3m/sb-zdnet-jp /usr/share/emacs/site-lisp/w3m/sb-msports-nifty hides /usr/local/share/emacs/site-lisp/w3m/sb-msports-nifty /usr/share/emacs/site-lisp/w3m/sb-hash hides /usr/local/share/emacs/site-lisp/w3m/sb-hash /usr/share/emacs/site-lisp/w3m/sb-digiko hides /usr/local/share/emacs/site-lisp/w3m/sb-digiko /usr/share/emacs/site-lisp/w3m/sb-x51 hides /usr/local/share/emacs/site-lisp/w3m/sb-x51 /usr/share/emacs/site-lisp/w3m/sb-cgi-board hides /usr/local/share/emacs/site-lisp/w3m/sb-cgi-board /usr/share/emacs/site-lisp/w3m/sb-n24-de hides /usr/local/share/emacs/site-lisp/w3m/sb-n24-de /usr/share/emacs/site-lisp/w3m/sb-sourceforge-jp hides /usr/local/share/emacs/site-lisp/w3m/sb-sourceforge-jp /usr/share/emacs/site-lisp/w3m/w3m-dtree hides /usr/local/share/emacs/site-lisp/w3m/w3m-dtree /usr/share/emacs/site-lisp/w3m/sb-cnet-jp hides /usr/local/share/emacs/site-lisp/w3m/sb-cnet-jp /usr/share/emacs/site-lisp/w3m/sb-nytimes hides /usr/local/share/emacs/site-lisp/w3m/sb-nytimes /usr/share/emacs/site-lisp/w3m/w3m-session hides /usr/local/share/emacs/site-lisp/w3m/w3m-session /usr/share/emacs/site-lisp/w3m/w3m-proc hides /usr/local/share/emacs/site-lisp/w3m/w3m-proc /usr/share/emacs/site-lisp/w3m/sb-mainichi hides /usr/local/share/emacs/site-lisp/w3m/sb-mainichi /usr/share/emacs/site-lisp/w3m/sb-tech-on hides /usr/local/share/emacs/site-lisp/w3m/sb-tech-on /usr/share/emacs/site-lisp/w3m/sb-dennou hides /usr/local/share/emacs/site-lisp/w3m/sb-dennou /usr/share/emacs/site-lisp/w3m/sb-aljazeera hides /usr/local/share/emacs/site-lisp/w3m/sb-aljazeera /usr/share/emacs/site-lisp/w3m/sb-atom hides /usr/local/share/emacs/site-lisp/w3m/sb-atom /usr/share/emacs/site-lisp/w3m/sb-emacs-w3m hides /usr/local/share/emacs/site-lisp/w3m/sb-emacs-w3m /usr/share/emacs/site-lisp/w3m/sb-wincefan hides /usr/local/share/emacs/site-lisp/w3m/sb-wincefan /usr/share/emacs/site-lisp/w3m/sb-ffii hides /usr/local/share/emacs/site-lisp/w3m/sb-ffii /usr/share/emacs/site-lisp/w3m/sb-yahoo-sports hides /usr/local/share/emacs/site-lisp/w3m/sb-yahoo-sports /usr/share/emacs/site-lisp/w3m/sb-debugmagazin-de hides /usr/local/share/emacs/site-lisp/w3m/sb-debugmagazin-de /usr/share/emacs/site-lisp/w3m/sb-nikkansports hides /usr/local/share/emacs/site-lisp/w3m/sb-nikkansports /usr/share/emacs/site-lisp/w3m/sb-slashdot hides /usr/local/share/emacs/site-lisp/w3m/sb-slashdot /usr/share/emacs/site-lisp/w3m/sb-javaconf hides /usr/local/share/emacs/site-lisp/w3m/sb-javaconf /usr/share/emacs/site-lisp/w3m/sb-yahoo-auctions hides /usr/local/share/emacs/site-lisp/w3m/sb-yahoo-auctions /usr/share/emacs/site-lisp/w3m/w3m-favicon hides /usr/local/share/emacs/site-lisp/w3m/w3m-favicon /usr/share/emacs/site-lisp/w3m/sb-kantei hides /usr/local/share/emacs/site-lisp/w3m/sb-kantei /usr/share/emacs/site-lisp/w3m/w3m-cookie hides /usr/local/share/emacs/site-lisp/w3m/w3m-cookie /usr/share/emacs/site-lisp/w3m/sb-squeak-dev hides /usr/local/share/emacs/site-lisp/w3m/sb-squeak-dev /usr/share/emacs/site-lisp/w3m/sb-bbc hides /usr/local/share/emacs/site-lisp/w3m/sb-bbc /usr/share/emacs/site-lisp/w3m/w3m-search hides /usr/local/share/emacs/site-lisp/w3m/w3m-search /usr/share/emacs/site-lisp/w3m/sb-impress hides /usr/local/share/emacs/site-lisp/w3m/sb-impress /usr/share/emacs/site-lisp/w3m/sb-jpilot hides /usr/local/share/emacs/site-lisp/w3m/sb-jpilot /usr/share/emacs/site-lisp/w3m/sb-cnet hides /usr/local/share/emacs/site-lisp/w3m/sb-cnet /usr/share/emacs/site-lisp/w3m/sb-atmarkit hides /usr/local/share/emacs/site-lisp/w3m/sb-atmarkit /usr/share/emacs/site-lisp/w3m/sb-chise hides /usr/local/share/emacs/site-lisp/w3m/sb-chise /usr/share/emacs/site-lisp/w3m/w3m-tabmenu hides /usr/local/share/emacs/site-lisp/w3m/w3m-tabmenu /usr/share/emacs/site-lisp/w3m/sb-lump hides /usr/local/share/emacs/site-lisp/w3m/sb-lump /usr/share/emacs/site-lisp/w3m/sb-atom-hash hides /usr/local/share/emacs/site-lisp/w3m/sb-atom-hash /usr/share/emacs/site-lisp/w3m/sb-mew hides /usr/local/share/emacs/site-lisp/w3m/sb-mew /usr/share/emacs/site-lisp/w3m/sb-multi hides /usr/local/share/emacs/site-lisp/w3m/sb-multi /usr/share/emacs/site-lisp/w3m/sb-arch-bluegate hides /usr/local/share/emacs/site-lisp/w3m/sb-arch-bluegate /usr/share/emacs/site-lisp/w3m/w3m-form hides /usr/local/share/emacs/site-lisp/w3m/w3m-form /usr/share/emacs/site-lisp/w3m/sb-plucker hides /usr/local/share/emacs/site-lisp/w3m/sb-plucker /usr/share/emacs/site-lisp/w3m/sb-welt-de hides /usr/local/share/emacs/site-lisp/w3m/sb-welt-de /usr/share/emacs/site-lisp/w3m/sb-asahi-mytown hides /usr/local/share/emacs/site-lisp/w3m/sb-asahi-mytown /usr/share/emacs/site-lisp/w3m/sb-linuxce-jp hides /usr/local/share/emacs/site-lisp/w3m/sb-linuxce-jp /usr/share/emacs/site-lisp/w3m/sb-nikkei hides /usr/local/share/emacs/site-lisp/w3m/sb-nikkei /usr/share/emacs/site-lisp/w3m/sb-glimpse hides /usr/local/share/emacs/site-lisp/w3m/sb-glimpse /usr/share/emacs/site-lisp/w3m/sb-pilot-mailsync hides /usr/local/share/emacs/site-lisp/w3m/sb-pilot-mailsync /usr/share/emacs/site-lisp/w3m/w3m-bookmark hides /usr/local/share/emacs/site-lisp/w3m/w3m-bookmark /usr/share/emacs/site-lisp/w3m/sb-sponichi hides /usr/local/share/emacs/site-lisp/w3m/sb-sponichi /usr/share/emacs/site-lisp/w3m/sb-namazu hides /usr/local/share/emacs/site-lisp/w3m/sb-namazu /usr/share/emacs/site-lisp/w3m/sb-lotusex hides /usr/local/share/emacs/site-lisp/w3m/sb-lotusex /usr/share/emacs/site-lisp/w3m/octet hides /usr/local/share/emacs/site-lisp/w3m/octet /usr/share/emacs/site-lisp/w3m/bookmark-w3m hides /usr/local/share/emacs/site-lisp/w3m/bookmark-w3m /usr/share/emacs/site-lisp/w3m/sb-marc-aims hides /usr/local/share/emacs/site-lisp/w3m/sb-marc-aims /usr/share/emacs/site-lisp/w3m/sb-tdiary hides /usr/local/share/emacs/site-lisp/w3m/sb-tdiary /usr/share/emacs/site-lisp/w3m/w3m-bug hides /usr/local/share/emacs/site-lisp/w3m/w3m-bug /usr/share/emacs/site-lisp/w3m/sb-mozilla-jp hides /usr/local/share/emacs/site-lisp/w3m/sb-mozilla-jp /usr/share/emacs/site-lisp/w3m/mime-w3m hides /usr/local/share/emacs/site-lisp/w3m/mime-w3m /usr/share/emacs/site-lisp/w3m/sb-macosx-jp hides /usr/local/share/emacs/site-lisp/w3m/sb-macosx-jp /usr/share/emacs/site-lisp/w3m/sb-spiegel hides /usr/local/share/emacs/site-lisp/w3m/sb-spiegel /usr/share/emacs/site-lisp/w3m/sb-pilot-link hides /usr/local/share/emacs/site-lisp/w3m/sb-pilot-link /usr/share/emacs/site-lisp/w3m/sb-emacswiki hides /usr/local/share/emacs/site-lisp/w3m/sb-emacswiki /usr/share/emacs/site-lisp/w3m/sb-w3m-dev hides /usr/local/share/emacs/site-lisp/w3m/sb-w3m-dev /usr/share/emacs/site-lisp/w3m/sb-palmfan hides /usr/local/share/emacs/site-lisp/w3m/sb-palmfan /usr/share/emacs/site-lisp/w3m/sb-rss hides /usr/local/share/emacs/site-lisp/w3m/sb-rss /usr/share/emacs/site-lisp/w3m/sb-infoshop hides /usr/local/share/emacs/site-lisp/w3m/sb-infoshop /usr/share/emacs/site-lisp/w3m/sb-msdn hides /usr/local/share/emacs/site-lisp/w3m/sb-msdn /usr/share/emacs/site-lisp/w3m/sb-asahi hides /usr/local/share/emacs/site-lisp/w3m/sb-asahi /usr/share/emacs/site-lisp/w3m/sb-tigris hides /usr/local/share/emacs/site-lisp/w3m/sb-tigris /usr/share/emacs/site-lisp/w3m/w3m-filter hides /usr/local/share/emacs/site-lisp/w3m/w3m-filter /usr/share/emacs/site-lisp/w3m/sb-texfaq hides /usr/local/share/emacs/site-lisp/w3m/sb-texfaq /usr/share/emacs/site-lisp/w3m/mew-shimbun hides /usr/local/share/emacs/site-lisp/w3m/mew-shimbun /usr/share/emacs/site-lisp/w3m/w3m-namazu hides /usr/local/share/emacs/site-lisp/w3m/w3m-namazu /usr/share/emacs/site-lisp/w3m/sb-wiki hides /usr/local/share/emacs/site-lisp/w3m/sb-wiki /usr/share/emacs/site-lisp/w3m/sb-tdiary-ml hides /usr/local/share/emacs/site-lisp/w3m/sb-tdiary-ml /usr/share/emacs/site-lisp/w3m/sb-kde hides /usr/local/share/emacs/site-lisp/w3m/sb-kde /usr/share/emacs/site-lisp/w3m/sb-geocrawler hides /usr/local/share/emacs/site-lisp/w3m/sb-geocrawler /usr/share/emacs/site-lisp/w3m/w3m-ucs hides /usr/local/share/emacs/site-lisp/w3m/w3m-ucs /usr/share/emacs/site-lisp/w3m/shimbun hides /usr/local/share/emacs/site-lisp/w3m/shimbun /usr/share/emacs/site-lisp/w3m/nnshimbun hides /usr/local/share/emacs/site-lisp/w3m/nnshimbun /usr/share/emacs/site-lisp/w3m/sb-vinelinux hides /usr/local/share/emacs/site-lisp/w3m/sb-vinelinux /usr/share/emacs/site-lisp/w3m/w3m-mail hides /usr/local/share/emacs/site-lisp/w3m/w3m-mail /usr/share/emacs/site-lisp/w3m/w3m-ccl hides /usr/local/share/emacs/site-lisp/w3m/w3m-ccl /usr/share/emacs/site-lisp/w3m/sb-zeit-de hides /usr/local/share/emacs/site-lisp/w3m/sb-zeit-de /usr/share/emacs/site-lisp/w3m/sb-sueddeutsche-de hides /usr/local/share/emacs/site-lisp/w3m/sb-sueddeutsche-de /usr/share/emacs/site-lisp/w3m/sb-tcup hides /usr/local/share/emacs/site-lisp/w3m/sb-tcup /usr/share/emacs/site-lisp/w3m/sb-the-register hides /usr/local/share/emacs/site-lisp/w3m/sb-the-register /usr/share/emacs/site-lisp/w3m/sb-orca hides /usr/local/share/emacs/site-lisp/w3m/sb-orca /usr/share/emacs/site-lisp/w3m/w3m-symbol hides /usr/local/share/emacs/site-lisp/w3m/w3m-symbol /usr/share/emacs/site-lisp/w3m/sb-nikkangendai hides /usr/local/share/emacs/site-lisp/w3m/sb-nikkangendai /usr/share/emacs/site-lisp/w3m/sb-makanai hides /usr/local/share/emacs/site-lisp/w3m/sb-makanai /usr/share/emacs/site-lisp/w3m/w3m-fb hides /usr/local/share/emacs/site-lisp/w3m/w3m-fb /usr/share/emacs/site-lisp/w3m/sb-rakuten hides /usr/local/share/emacs/site-lisp/w3m/sb-rakuten /usr/share/emacs/site-lisp/w3m/sb-elips hides /usr/local/share/emacs/site-lisp/w3m/sb-elips /usr/share/emacs/site-lisp/w3m/sb-jpo hides /usr/local/share/emacs/site-lisp/w3m/sb-jpo /usr/share/emacs/site-lisp/w3m/mew-w3m hides /usr/local/share/emacs/site-lisp/w3m/mew-w3m /usr/share/emacs/site-lisp/w3m/sb-netbsd hides /usr/local/share/emacs/site-lisp/w3m/sb-netbsd /home/owinebar/.emacs.d/elpa-30/jsonrpc-1.0.16/jsonrpc hides /usr/local/share/emacs/30.0.50/lisp/jsonrpc /home/owinebar/.emacs.d/elpa-30/pcmpl-git-20170121.59/pcmpl-git hides /usr/local/share/emacs/30.0.50/lisp/pcmpl-git /home/owinebar/.emacs.d/elpa-30/svg-1.1/svg hides /usr/local/share/emacs/30.0.50/lisp/svg /home/owinebar/.emacs.d/elpa-30/sqlite-20201227.1822/sqlite hides /usr/local/share/emacs/30.0.50/lisp/sqlite /home/owinebar/.emacs.d/elpa-30/transient-20230209.2250/transient hides /usr/local/share/emacs/30.0.50/lisp/transient /home/owinebar/.emacs.d/elpa-30/use-package-20230203.2004/use-package-ensure hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-ensure /home/owinebar/.emacs.d/elpa-30/use-package-20230203.2004/use-package-diminish hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-diminish /home/owinebar/.emacs.d/elpa-30/use-package-20230203.2004/use-package-bind-key hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-bind-key /home/owinebar/.emacs.d/elpa-30/use-package-20230203.2004/use-package hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package /home/owinebar/.emacs.d/elpa-30/use-package-20230203.2004/use-package-delight hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-delight /home/owinebar/.emacs.d/elpa-30/use-package-20230203.2004/use-package-lint hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-lint /home/owinebar/.emacs.d/elpa-30/use-package-20230203.2004/use-package-core hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-core /home/owinebar/.emacs.d/elpa-30/use-package-20230203.2004/use-package-jump hides /usr/local/share/emacs/30.0.50/lisp/use-package/use-package-jump /home/owinebar/.emacs.d/elpa-30/bind-key-20230203.2004/bind-key hides /usr/local/share/emacs/30.0.50/lisp/use-package/bind-key /home/owinebar/.emacs.d/elpa-30/flymake-1.2.2/flymake hides /usr/local/share/emacs/30.0.50/lisp/progmodes/flymake /home/owinebar/.emacs.d/elpa-30/python-0.28/python hides /usr/local/share/emacs/30.0.50/lisp/progmodes/python /home/owinebar/.emacs.d/elpa-30/xref-1.6.1/xref hides /usr/local/share/emacs/30.0.50/lisp/progmodes/xref /home/owinebar/.emacs.d/elpa-30/csharp-mode-20221126.2005/csharp-mode hides /usr/local/share/emacs/30.0.50/lisp/progmodes/csharp-mode /home/owinebar/.emacs.d/elpa-30/project-0.9.6/project hides /usr/local/share/emacs/30.0.50/lisp/progmodes/project /home/owinebar/.emacs.d/elpa-30/verilog-mode-2022.12.18.181110314/verilog-mode hides /usr/local/share/emacs/30.0.50/lisp/progmodes/verilog-mode /home/owinebar/.emacs.d/elpa-30/eglot-20221020.1010/eglot hides /usr/local/share/emacs/30.0.50/lisp/progmodes/eglot /home/owinebar/.emacs.d/elpa-30/flim-20230205.1423/sasl hides /usr/local/share/emacs/30.0.50/lisp/net/sasl /usr/local/share/emacs/site-lisp/semi/smime hides /usr/local/share/emacs/30.0.50/lisp/gnus/smime /home/owinebar/.emacs.d/elpa-30/eldoc-1.13.0/eldoc hides /usr/local/share/emacs/30.0.50/lisp/emacs-lisp/eldoc /home/owinebar/.emacs.d/elpa-30/seq-2.23/seq hides /usr/local/share/emacs/30.0.50/lisp/emacs-lisp/seq /home/owinebar/.emacs.d/elpa-30/map-3.3.1/map hides /usr/local/share/emacs/30.0.50/lisp/emacs-lisp/map /home/owinebar/.emacs.d/elpa-30/hierarchy-20190425.842/hierarchy hides /usr/local/share/emacs/30.0.50/lisp/emacs-lisp/hierarchy /usr/local/share/emacs/site-lisp/semi/pgg-pgp hides /usr/local/share/emacs/30.0.50/lisp/obsolete/pgg-pgp /usr/local/share/emacs/site-lisp/semi/pgg hides /usr/local/share/emacs/30.0.50/lisp/obsolete/pgg /usr/local/share/emacs/site-lisp/semi/pgg-pgp5 hides /usr/local/share/emacs/30.0.50/lisp/obsolete/pgg-pgp5 /usr/local/share/emacs/site-lisp/semi/pgg-parse hides /usr/local/share/emacs/30.0.50/lisp/obsolete/pgg-parse /usr/local/share/emacs/site-lisp/semi/pgg-gpg hides /usr/local/share/emacs/30.0.50/lisp/obsolete/pgg-gpg /usr/local/share/emacs/site-lisp/semi/pgg-def hides /usr/local/share/emacs/30.0.50/lisp/obsolete/pgg-def Features: (shadow sort mail-extr emacsbug message yank-media rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util mm-decode mm-bodies mm-encode mailabbrev gmm-utils mailheader sendmail mail-utils mule-util minibuffer-complete-cycle smex time-date overseer pkg-info url-http url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-gw nsm puny epl package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source password-cache url-vars f f-shortdoc erefactor flymake-proc flymake warnings font-latex tex dbus ido-completing-read+ memoize cus-edit cus-start icons minibuf-eldef ido xml crm texmathp semantic/mru-bookmark semantic/db-mode semantic/decorate/mode semantic/decorate pulse semantic/idle semantic/analyze semantic/sort semantic/scope semantic/analyze/fcn semantic/db semantic/format semantic/tag-ls semantic/find semantic/ctxt company-oddmuse company-keywords company-etags etags fileloop generator company-gtags company-dabbrev-code company-dabbrev company-files company-clang company-capf company-cmake company-semantic company-template company-bbdb ef-frost-theme ef-themes smart-mode-line-light-theme vertico-posframe vertico semantic/util-modes semantic/util semantic pp semantic/tag semantic/lex semantic/fw mode-local find-func mode-icons emojify apropos tar-mode arc-mode archive-mode json map ht ivy-rich ivy-posframe easy-mmode origami origami-parsers s hl-line ede/speedbar ede/files ede ede/detect ede/base ede/source eieio-speedbar speedbar ezimage dframe eieio-custom wid-edit cedet dash counsel-projectile projectile lisp-mnt grep ibuf-ext ibuffer ibuffer-loaddefs thingatpt counsel xdg xref project dired dired-loaddefs compile text-property-search comint ansi-osc ansi-color swiper cl-extra help-mode ivy flx delsel ring ivy-faces ivy-overlay colir color company-tng company-quickhelp pos-tip company-posframe posframe company pcase subr-x cus-load windmove xfonts rmailgen preview-latex w3m-load ispell info hl-block-mode-autoloads annotate-autoloads racket-mode-autoloads auto-yasnippet-autoloads org-ivy-search-autoloads js-import-autoloads package-build-autoloads vterm-autoloads substitute-autoloads cargo-mode-autoloads tabspaces-autoloads rustic-autoloads evil-cleverparens-autoloads chronometrist-autoloads all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons bash-completion-autoloads ekg-autoloads triples-autoloads marginalia-autoloads flymake-sqlfluff-autoloads citar-autoloads consult-flycheck-autoloads buffer-sets-autoloads consult-lsp-autoloads org-ref-autoloads all-the-icons-ivy-rich-autoloads flim-autoloads paperless-autoloads systemd-autoloads cmake-mode-autoloads diffed-autoloads evil-visual-mark-mode-autoloads org-roam-bibtex-autoloads consult-org-roam-autoloads language-id-autoloads ergoemacs-mode-autoloads use-package-autoloads embark-consult-autoloads rx realgud-lldb-autoloads web-mode-autoloads call-graph-autoloads pcsv-autoloads org-modern-autoloads tide-autoloads orderless-autoloads cape-autoloads evil-matchit-autoloads csv-mode-autoloads modus-themes-autoloads doom-modeline-autoloads graphviz-dot-mode-autoloads tree-sitter-langs-autoloads helm-autoloads helm-core-autoloads advice embark-autoloads caml-autoloads elsa-autoloads hl-prog-extra-autoloads auctex-autoloads tex-site biblio-autoloads biblio-core-autoloads idle-highlight-mode-autoloads cl yasnippet-snippets-autoloads websocket-autoloads git-link-autoloads sml-mode-autoloads async-autoloads ede/auto eieio-base cl-seq eieio byte-opt bytecomp byte-compile eieio-core cl-macs gv cl-loaddefs cl-lib bind-key-autoloads consult-eglot-autoloads consult-autoloads realgud-recursive-autoloads slime-autoloads flycheck-autoloads cider-autoloads evil-autoloads lsp-mode-autoloads company-autoloads elpa-mirror-autoloads magit-autoloads magit-section-autoloads git-commit-autoloads with-editor-autoloads transient-autoloads compat-autoloads rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type avl-tree-core elisp-mode mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads xwidget-internal dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process emacs) Memory information: ((conses 16 346976 23660) (symbols 48 35342 0) (strings 32 106167 3883) (string-bytes 1 3860030) (vectors 16 43792) (vector-slots 8 724172 17725) (floats 8 597 238) (intervals 56 490 0) (buffers 984 13)) --000000000000b67efc05f554d7d1 Content-Type: text/x-patch; charset="US-ASCII"; name="emacs-custom-startup-redump.patch" Content-Disposition: attachment; filename="emacs-custom-startup-redump.patch" Content-Transfer-Encoding: base64 Content-ID: <f_leghlba90> X-Attachment-Id: f_leghlba90 ZGlmZiAtLWdpdCBhL2xpc3AvY3VzdG9tLmVsIGIvbGlzcC9jdXN0b20uZWwKaW5kZXggZmE3N2U1 YzJjNTYuLjFjZDg2NmUyMzZmIDEwMDY0NAotLS0gYS9saXNwL2N1c3RvbS5lbAorKysgYi9saXNw L2N1c3RvbS5lbApAQCAtMzQsNyArMzQsMTYgQEAKIDs7OyBDb2RlOgogCiAocmVxdWlyZSAnd2lk Z2V0KQotCis7OyhyZXF1aXJlICd0cmFuc2l0aXZlLWNsb3N1cmUpCisoZGVjbGFyZS1mdW5jdGlv biB0Yy1yZXZlcnNlLXJvb3RlZC1ncmFwaAorICAgICAgICAgICAgICAgICAgImVtYWNzLWxpc3Av dHJhbnNpdGl2ZS1jbG9zdXJlIgorICAgICAgICAgICAgICAgICAgKG5vZGVzIGVkZ2VzICZvcHRp b25hbCByb290cykpCisoZGVjbGFyZS1mdW5jdGlvbiB0Yy1ncmFwaC1yZWFjaGFibGUKKyAgICAg ICAgICAgICAgICAgICJlbWFjcy1saXNwL3RyYW5zaXRpdmUtY2xvc3VyZSIKKyAgICAgICAgICAg ICAgICAgICh0Y2cgJm9wdGlvbmFsIHYpKQorKGRlY2xhcmUtZnVuY3Rpb24gdGMtZ3JhcGgtb3Jk ZXJpbmcKKyAgICAgICAgICAgICAgICAgICJlbWFjcy1saXNwL3RyYW5zaXRpdmUtY2xvc3VyZSIK KyAgICAgICAgICAgICAgICAgICh0Y2cpKQogKGRlZnZhciBjdXN0b20tZGVmaW5lLWhvb2sgbmls CiAgIDs7IEN1c3RvbWl6ZSBpbmZvcm1hdGlvbiBmb3IgdGhpcyBvcHRpb24gaXMgaW4gYGN1cy1l ZGl0LmVsJy4KICAgIkhvb2sgY2FsbGVkIGFmdGVyIGRlZmluaW5nIGVhY2ggY3VzdG9taXplIG9w dGlvbi4iKQpAQCAtMTUyLDExICsxNjEsMTIgQEAgY3VzdG9tLWluaXRpYWxpemUtZGVsYXkKICAg OzsgVGhpcyBzZWVtZWQgdG8gYmUgYXQgbGVhc3QgYXMgZ29vZCBhcyBzZXR0aW5nIGl0IHRvIGFu IGFyYml0cmFyeQogICA7OyB2YWx1ZSBsaWtlIG5pbCAoZXZhbHVhdGluZyBgdmFsdWUnIGlzIG5v dCBhbiBvcHRpb24gYmVjYXVzZSBpdAogICA7OyBtYXkgaGF2ZSB1bmRlc2lyYWJsZSBzaWRlLWVm ZmVjdHMpLgotICAoaWYgKGxpc3RwIGN1c3RvbS1kZWxheWVkLWluaXQtdmFyaWFibGVzKQotICAg ICAgKHB1c2ggc3ltYm9sIGN1c3RvbS1kZWxheWVkLWluaXQtdmFyaWFibGVzKQotICAgIDs7IElu IGNhc2UgdGhpcyBpcyBjYWxsZWQgYWZ0ZXIgc3RhcnR1cCwgdGhlcmUgaXMgbm8gImxhdGVyIiB0 byB3aGljaCB0bwotICAgIDs7IGRlbGF5IGl0LCBzbyBpbml0aWFsaXplIGl0ICJub3JtYWxseSIg KGJ1ZyM0NzA3MikuCi0gICAgKGN1c3RvbS1pbml0aWFsaXplLXJlc2V0IHN5bWJvbCB2YWx1ZSkp KQorICAocHV0IHN5bWJvbCAnY3VzdG9tLWltcGxpZWQtZGVwZW5kZW5jaWVzIGN1c3RvbS1kZWxh eWVkLWluaXQtdmFyaWFibGVzKQorICAoaWYgKG5vdCAobGlzdHAgY3VzdG9tLWRlbGF5ZWQtaW5p dC12YXJpYWJsZXMpKQorICAgICAgOzsgSW4gY2FzZSB0aGlzIGlzIGNhbGxlZCBhZnRlciBzdGFy dHVwLCB0aGVyZSBpcyBubyAibGF0ZXIiIHRvIHdoaWNoIHRvCisgICAgICA7OyBkZWxheSBpdCwg c28gaW5pdGlhbGl6ZSBpdCAibm9ybWFsbHkiIChidWcjNDcwNzIpLgorICAgICAgKGN1c3RvbS1p bml0aWFsaXplLXJlc2V0IHN5bWJvbCB2YWx1ZSkKKyAgICAocHVzaCBzeW1ib2wgY3VzdG9tLWRl bGF5ZWQtaW5pdC12YXJpYWJsZXMpKSkKIAogKGRlZnVuIGN1c3RvbS1kZWNsYXJlLXZhcmlhYmxl IChzeW1ib2wgZGVmYXVsdCBkb2MgJnJlc3QgYXJncykKICAgIkxpa2UgYGRlZmN1c3RvbScsIGJ1 dCBTWU1CT0wgYW5kIERFRkFVTFQgYXJlIGV2YWx1YXRlZCBhcyBub3JtYWwgYXJndW1lbnRzLgpA QCAtODMyLDYgKzg0MiwyMyBAQCBjdXN0b20tcmVldmFsdWF0ZS1zZXR0aW5nCiAJICAgKGV2YWwg KGNhciAob3IgKGdldCBzeW1ib2wgJ3NhdmVkLXZhbHVlKQogCSAgICAgICAgICAgICAgICAgIChn ZXQgc3ltYm9sICdzdGFuZGFyZC12YWx1ZSkpKSkpKQogCisoZGVmdW4gY3VzdG9tLXJ1bnRpbWUt c2V0dGluZyAoc3ltYm9sKQorICAiUmVzZXQgdGhlIHZhbHVlIG9mIFNZTUJPTCBieSByZS1ldmFs dWF0aW5nIHN0YW5kYXJkIHZhbHVlLgorVXNlIHRoZSA6c2V0IGZ1bmN0aW9uIHRvIGRvIHNvLiAg VGhpcyBpcyB1c2VmdWwgZm9yIGN1c3RvbWl6YWJsZSBvcHRpb25zCit0aGF0IGFyZSBkZWZpbmVk IGJlZm9yZSB0aGVpciBzdGFuZGFyZCB2YWx1ZSBjYW4gcmVhbGx5IGJlIGNvbXB1dGVkLgorRS5n LiBkdW1wZWQgdmFyaWFibGVzIHdob3NlIGRlZmF1bHQgZGVwZW5kcyBvbiBydW4tdGltZSBpbmZv cm1hdGlvbi4iCisgIDs7IFdlIGFyZSBpbml0aWFsaXppbmcKKyAgOzsgdGhlIHZhcmlhYmxlLCBh bmQgbm9ybWFsbHkgYW55IDpzZXQgZnVuY3Rpb24gd291bGQgbm90IGFwcGx5LgorICA7OyBGb3Ig Y3VzdG9tLWluaXRpYWxpemUtZGVsYXksIGhvd2V2ZXIsIGl0IGlzIGRvY3VtZW50ZWQgdGhhdCAi dGhlCisgIDs7IChkZWxheWVkKSBpbml0aWFsaXphdGlvbiBpcyBwZXJmb3JtZWQgd2l0aCB0aGUg OnNldCBmdW5jdGlvbiIuCisgIDs7IFRoaXMgaXMgbmVlZGVkIGJ5IGVnIGdsb2JhbC1mb250LWxv Y2stbW9kZSwgd2hpY2ggdXNlcworICA7OyBjdXN0b20taW5pdGlhbGl6ZS1kZWxheSBidXQgbmVl ZHMgdGhlIDpzZXQgZnVuY3Rpb24gY3VzdG9tLXNldC1taW5vci1tb2RlCisgIDs7IHRvIGFsc28g cnVuIGR1cmluZyBpbml0aWFsaXphdGlvbi4gIFNvLCBsb25nIHN0b3J5IHNob3J0LCB3ZQorICA7 OyBhbHdheXMgZG8gdGhlIGZ1bmNhbGwgc3RlcCwgZXZlbiBpZiBzeW1ib2wgd2FzIG5vdCBib3Vu ZCBiZWZvcmUuCisgIChmdW5jYWxsIChvciAoZ2V0IHN5bWJvbCAnY3VzdG9tLXNldCkgIydzZXQt ZGVmYXVsdCkKKwkgICBzeW1ib2wKKwkgICAoZXZhbCAoY2FyIChnZXQgc3ltYm9sICdzdGFuZGFy ZC12YWx1ZSkpKSkpCisKIAwKIDs7OyBDdXN0b20gVGhlbWVzCiAKQEAgLTE3NzYsNiArMTgwMyw1 MSBAQCBjdXN0b20tLWFkZC1jdXN0b20tbG9hZHMKICAgICAgIChwdXNoIGxvYWQgbG9hZHMpKSkK ICAgKHB1dCBzeW1ib2wgJ2N1c3RvbS1sb2FkcyBsb2FkcykpCiAKKyhkZWZ2YXIgY3VzdG9tLS1y ZXNldC1hdC1zdGFydHVwLXZhcnMgbmlsKQorKGRlZnZhciBjdXN0b20tLXJlc3RvcmUtYWZ0ZXIt cmVzZXQtdmFycyBuaWwpCisoZGVmdW4gY3VzdG9tLS1zdGFydHVwLWNhbGN1bGF0ZS1pbml0aWFs aXphdGlvbnMgKCkKKyAgKHNldHEgY3VzdG9tLS1yZXNldC1hdC1zdGFydHVwLXZhcnMgbmlsKQor ICAoc2V0cSBjdXN0b20tLXJlc3RvcmUtYWZ0ZXItcmVzZXQtdmFycyBuaWwpCisgICh1bmxlc3Mg KGxpc3RwIGN1c3RvbS1kZWxheWVkLWluaXQtdmFyaWFibGVzKQorICAgIChsZXQgKHZhcnMgZGVw cyBzYXZlZCB0Y2cgb3JkZXJpbmcgZXhwbGljaXQtc3RhcnR1cCBzdGFydHVwLXJlYWNoYWJsZSkK KyAgICAgIChtYXBhdG9tcworICAgICAgIChsYW1iZGEgKHMpICh3aGVuIChnZXQgcyAnY3VzdG9t LXR5cGUpIChwdXNoIHMgdmFycykpKSkKKyAgICAgIChzZXRxIGV4cGxpY2l0LXN0YXJ0dXAKKyAg ICAgICAgICAgIChzZXEtZmlsdGVyIChsYW1iZGEgKHYpCisgICAgICAgICAgICAgICAgICAgICAg ICAgIChnZXQgdiAnY3VzdG9tLWltcGxpZWQtZGVwZW5kZW5jaWVzKSkKKyAgICAgICAgICAgICAg ICAgICAgdmFycykpCisgICAgICAoc2V0cSBkZXBzCisgICAgICAgICAgICAobWFwY2FyIChsYW1i ZGEgKHYpCisgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGRzIChnZXQgdiAnY3VzdG9tLWRl cGVuZGVuY2llcykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGltcCAoZ2V0IHYgJ2N1 c3RvbS1pbXBsaWVkLWRlcGVuZGVuY2llcykpKQorICAgICAgICAgICAgICAgICAgICAgICAgYCgs diAsQChzZXEtdW5pb24gZHMgaW1wKSkpKQorICAgICAgICAgICAgICAgICAgICB2YXJzKSkKKyAg ICAgIChzZXRxIHRjZyAodGMtcmV2ZXJzZS1yb290ZWQtZ3JhcGggdmFycyBkZXBzIGV4cGxpY2l0 LXN0YXJ0dXApKQorICAgICAgKHNldHEgc3RhcnR1cC1yZWFjaGFibGUgKHRjLWdyYXBoLXJlYWNo YWJsZSB0Y2cpKQorICAgICAgKHNldHEgb3JkZXJpbmcgKHRjLWdyYXBoLW9yZGVyaW5nIHRjZykp CisgICAgICAoc2V0cSBjdXN0b20tLXJlc2V0LWF0LXN0YXJ0dXAtdmFycworICAgICAgICAgICAg KGFwcGx5ICMnbmNvbmMgKGFwcGVuZCBvcmRlcmluZyBuaWwpKSkKKyAgICAgIChzZXRxIGN1c3Rv bS0tcmVzdG9yZS1hZnRlci1yZXNldC12YXJzCisgICAgICAgICAgICAoc2VxLWZpbHRlciAobGFt YmRhICh2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAoYW5kIChnZXQgdiAnc2F2ZWQtdmFs dWUpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0dXAtcmVhY2hhYmxlKSkpKSkKKwor KGRlZnVuIGN1c3RvbS1kby1zdGFydHVwLXNldHRpbmdzICgpCisgIChsZXQgKChvcmRlcmluZyBj dXN0b20tLXJlc2V0LWF0LXN0YXJ0dXAtdmFycykKKyAgICAgICAgKHNhdmVkIGN1c3RvbS0tcmVz dG9yZS1hZnRlci1yZXNldC12YXJzKQorICAgICAgICB2YXIgc2V0LXZhcikKKyAgICAobWFwYyAo bGFtYmRhICh2KQorICAgICAgICAgICAgKHdoZW4gKGJvdW5kcCB2KQorICAgICAgICAgICAgICAo bWFrdW5ib3VuZCB2KSkpCisgICAgICAgICAgY3VzdG9tLS1yZXNldC1hdC1zdGFydHVwLXZhcnMp CisgICAgKHdoaWxlIG9yZGVyaW5nCisgICAgICAoY3VzdG9tLXJ1bnRpbWUtc2V0dGluZyAocG9w IG9yZGVyaW5nKSkpCisgICAgKHdoaWxlIHNhdmVkCisgICAgICAoY3VzdG9tLXJlZXZhbHVhdGUt c2V0dGluZyAocG9wIHNhdmVkKSkpKSkKKworKGFkZC1ob29rICdhZnRlci1wZHVtcC1sb2FkLWhv b2sKKyAgICAgICAgICAjJ2N1c3RvbS0tc3RhcnR1cC1jYWxjdWxhdGUtaW5pdGlhbGl6YXRpb25z KQorCiAocHJvdmlkZSAnY3VzdG9tKQogCiA7OzsgY3VzdG9tLmVsIGVuZHMgaGVyZQpkaWZmIC0t Z2l0IGEvbGlzcC9lbWFjcy1saXNwL2F2bC10cmVlLWNvcmUuZWwgYi9saXNwL2VtYWNzLWxpc3Av YXZsLXRyZWUtY29yZS5lbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u OGE4ZDVmMzQ0MjYKLS0tIC9kZXYvbnVsbAorKysgYi9saXNwL2VtYWNzLWxpc3AvYXZsLXRyZWUt Y29yZS5lbApAQCAtMCwwICsxLDY3NSBAQAorOzs7IGF2bC10cmVlLWNvcmUuZWwgLS0tIGJhbGFu Y2VkIGJpbmFyeSB0cmVlcywgQVZMLXRyZWVzICAtKi0gbGV4aWNhbC1iaW5kaW5nOnQgLSotCisK Kzs7IENvcHlyaWdodCAoQykgMTk5NSwgMjAwNy0yMDIzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLgorCis7OyBBdXRob3I6IFBlciBDZWRlcnF2aXN0IDxjZWRlckBseXNhdG9yLmxpdS5z ZT4KKzs7ICAgICAgICAgSW5nZSBXYWxsaW4gPGluZ2VAbHlzYXRvci5saXUuc2U+Cis7OyAgICAg ICAgIFRob21hcyBCZWxsbWFuIDxiZWxsbWFuQGx5c2F0b3IubGl1LnNlPgorOzsgICAgICAgICBU b2J5IEN1Yml0dCA8dG9ieS1wcmVkaWN0aXZlQGRyLXF1Yml0Lm9yZz4KKzs7IE1haW50YWluZXI6 IGVtYWNzLWRldmVsQGdudS5vcmcKKzs7IENyZWF0ZWQ6IDEwIE1heSAxOTkxCis7OyBLZXl3b3Jk czogZXh0ZW5zaW9ucywgZGF0YSBzdHJ1Y3R1cmVzLCBBVkwsIHRyZWUKKworOzsgVGhpcyBmaWxl IGlzIHBhcnQgb2YgR05VIEVtYWNzLgorCis7OyBHTlUgRW1hY3MgaXMgZnJlZSBzb2Z0d2FyZTog eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorOzsgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKzs7 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExp Y2Vuc2UsIG9yCis7OyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCis7OyBH TlUgRW1hY3MgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKzs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCis7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCis7OyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorCis7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorOzsgYWxvbmcgd2l0aCBHTlUgRW1hY3MuICBJ ZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCis7OzsgQ29tbWVu dGFyeToKKworOzsgQW4gQVZMIHRyZWUgaXMgYSBzZWxmLWJhbGFuY2luZyBiaW5hcnkgdHJlZS4g IEFzIHN1Y2gsIGluc2VydGluZywKKzs7IGRlbGV0aW5nLCBhbmQgcmV0cmlldmluZyBkYXRhIGZy b20gYW4gQVZMIHRyZWUgY29udGFpbmluZyBuIGVsZW1lbnRzCis7OyBpcyBPKGxvZyBuKS4gIEl0 IGlzIHNvbWV3aGF0IG1vcmUgcmlnaWRseSBiYWxhbmNlZCB0aGFuIG90aGVyCis7OyBzZWxmLWJh bGFuY2luZyBiaW5hcnkgdHJlZXMgKHN1Y2ggYXMgcmVkLWJsYWNrIHRyZWVzIGFuZCBBQSB0cmVl cyksCis7OyBtYWtpbmcgaW5zZXJ0aW9uIHNsaWdodGx5IHNsb3dlciwgZGVsZXRpb24gc29tZXdo YXQgc2xvd2VyLCBhbmQKKzs7IHJldHJpZXZhbCBzb21ld2hhdCBmYXN0ZXIgKHRoZSBhc3ltcHRv dGljIHNjYWxpbmcgaXMgb2YgY291cnNlIHRoZQorOzsgc2FtZSBmb3IgYWxsIHR5cGVzKS4gIFRo dXMgaXQgbWF5IGJlIGEgZ29vZCBjaG9pY2Ugd2hlbiB0aGUgdHJlZSB3aWxsCis7OyBiZSByZWxh dGl2ZWx5IHN0YXRpYywgaS5lLiBkYXRhIHdpbGwgYmUgcmV0cmlldmVkIG1vcmUgb2Z0ZW4gdGhh bgorOzsgdGhleSBhcmUgbW9kaWZpZWQuCis7OworOzsgSW50ZXJuYWxseSwgYSB0cmVlIGNvbnNp c3RzIG9mIHR3byBlbGVtZW50cywgdGhlIHJvb3Qgbm9kZSBhbmQgdGhlCis7OyBjb21wYXJpc29u IGZ1bmN0aW9uLiAgVGhlIGFjdHVhbCB0cmVlIGhhcyBhIGR1bW15IG5vZGUgYXMgaXRzIHJvb3QK Kzs7IHdpdGggdGhlIHJlYWwgcm9vdCBpbiB0aGUgbGVmdCBwb2ludGVyLCB3aGljaCBhbGxvd3Mg dGhlIHJvb3Qgbm9kZSB0bworOzsgYmUgdHJlYXRlZCBvbiBhIHBhciB3aXRoIGFsbCBvdGhlciBu b2Rlcy4KKzs7Cis7OyBFYWNoIG5vZGUgb2YgdGhlIHRyZWUgY29uc2lzdHMgb2Ygb25lIGRhdGEg ZWxlbWVudCwgb25lIGxlZnQKKzs7IHN1Yi10cmVlLCBvbmUgcmlnaHQgc3ViLXRyZWUsIGFuZCBh IGJhbGFuY2UgY291bnQuICBUaGUgbGF0dGVyIGlzIHRoZQorOzsgZGlmZmVyZW5jZSBpbiBkZXB0 aCBvZiB0aGUgbGVmdCBhbmQgcmlnaHQgc3ViLXRyZWVzLgorOzsKKzs7IFRoZSBmdW5jdGlvbnMg d2l0aCBuYW1lcyBvZiB0aGUgZm9ybSAiYXZsLXRyZWUtLSIgYXJlIGludGVuZGVkIGZvcgorOzsg aW50ZXJuYWwgdXNlIG9ubHkuCisKKzs7IGF2bC10cmVlLWNvcmUgb21pdHMgdGhlIGl0ZXJhdG9y IGZ1bmN0aW9uYWxpdHkgdG8gYWxsb3cKKzs7IGluY2x1c2lvbiBpbiBsb2FkdXAuZWwKKzs7CisK Kzs7OyBDb2RlOgorCisoZXZhbC13aGVuLWNvbXBpbGUgKHJlcXVpcmUgJ2NsLWxpYikpCisoZXZh bC13aGVuLWNvbXBpbGUgKHJlcXVpcmUgJ2NsLWV4dHJhKSkKKworCis7OyA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cis7Ozsg SW50ZXJuYWwgZnVuY3Rpb25zIGFuZCBtYWNyb3MgZm9yIHVzZSBpbiB0aGUgQVZMIHRyZWUgcGFj a2FnZQorCisKKzs7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKzs7IEZ1bmN0aW9ucyBhbmQgbWFjcm9zIGhhbmRsaW5nIGFu IEFWTCB0cmVlLgorCisoY2wtZGVmc3RydWN0IChhdmwtdHJlZS0KKyAgICAgICAgICAgIDs7IEEg dGFnZ2VkIGxpc3QgaXMgdGhlIHByZS1kZWZzdHJ1Y3QgcmVwcmVzZW50YXRpb24uCisgICAgICAg ICAgICA7OyAoOnR5cGUgbGlzdCkKKyAgICAgICAgICAgIDpuYW1lZAorICAgICAgICAgICAgKDpj b25zdHJ1Y3RvciBuaWwpCisgICAgICAgICAgICAoOmNvbnN0cnVjdG9yIGF2bC10cmVlLS1jcmVh dGUgKGNtcGZ1bikpCisgICAgICAgICAgICAoOnByZWRpY2F0ZSBhdmwtdHJlZS1wKQorICAgICAg ICAgICAgKDpjb3BpZXIgbmlsKSkKKyAgKGR1bW15cm9vdCAoYXZsLXRyZWUtLW5vZGUtY3JlYXRl IG5pbCBuaWwgbmlsIDApKQorICBjbXBmdW4pCisKKyhkZWZtYWNybyBhdmwtdHJlZS0tcm9vdCAo dHJlZSkKKyAgIlJldHVybiB0aGUgcm9vdCBub2RlIGZvciBhbiBBVkwgVFJFRS4gIElOVEVSTkFM IFVTRSBPTkxZLiIKKyAgYChhdmwtdHJlZS0tbm9kZS1sZWZ0IChhdmwtdHJlZS0tZHVtbXlyb290 ICx0cmVlKSkpCisKKzs7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzs7IEZ1bmN0aW9ucyBhbmQgbWFjcm9zIGhhbmRsaW5n IGFuIEFWTCB0cmVlIG5vZGUuCisKKyhjbC1kZWZzdHJ1Y3QgKGF2bC10cmVlLS1ub2RlCisgICAg ICAgICAgICA7OyBXZSBmb3JjZSBhIHJlcHJlc2VudGF0aW9uIHdpdGhvdXQgdGFnIHNvIGl0IG1h dGNoZXMgdGhlCisgICAgICAgICAgICA7OyBwcmUtZGVmc3RydWN0IHJlcHJlc2VudGF0aW9uLiBB bHNvIHdlIHVzZSB0aGUgdW5kZXJseWluZworICAgICAgICAgICAgOzsgcmVwcmVzZW50YXRpb24g aW4gdGhlIGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgICAgICA7OyBhdmwtdHJlZS0tbm9kZS1i cmFuY2guCisgICAgICAgICAgICAoOnR5cGUgdmVjdG9yKQorICAgICAgICAgICAgKDpjb25zdHJ1 Y3RvciBuaWwpCisgICAgICAgICAgICAoOmNvbnN0cnVjdG9yIGF2bC10cmVlLS1ub2RlLWNyZWF0 ZSAobGVmdCByaWdodCBkYXRhIGJhbGFuY2UpKQorICAgICAgICAgICAgKDpjb3BpZXIgbmlsKSkK KyAgbGVmdCByaWdodCBkYXRhIGJhbGFuY2UpCisKKworKGRlZmFsaWFzICdhdmwtdHJlZS0tbm9k ZS1icmFuY2ggIydhcmVmCisgIDs7IFRoaXMgaW1wbGVtZW50YXRpb24gaXMgZWZmaWNpZW50IGJ1 dCBicmVha3MgdGhlIGRlZnN0cnVjdAorICA7OyBhYnN0cmFjdGlvbi4gIEFuIGFsdGVybmF0aXZl IGNvdWxkIGJlIChmdW5jYWxsIChhcmVmIFthdmwtdHJlZS1sZWZ0CisgIDs7IGF2bC10cmVlLXJp Z2h0IGF2bC10cmVlLWRhdGFdIGJyYW5jaCkgbm9kZSkKKyAgIkdldCB2YWx1ZSBvZiBhIGJyYW5j aCBvZiBhIG5vZGUuCitOT0RFIGlzIHRoZSBub2RlLCBhbmQgQlJBTkNIIGlzIHRoZSBicmFuY2gu CiswIGZvciBsZWZ0IHBvaW50ZXIsIDEgZm9yIHJpZ2h0IHBvaW50ZXIgYW5kIDIgZm9yIHRoZSBk YXRhLgorXG4oZm4gQlJBTkNIIE5PREUpIikKKworCis7OyBUaGUgZnVuY2FsbC9hcmVmIHRyaWNr IHdvdWxkbid0IHdvcmsgZm9yIHRoZSBzZXRmIG1ldGhvZCwgdW5sZXNzIHdlCis7OyB0cmllZCB0 byBhY2Nlc3MgdGhlIHVuZGVybHlpbmcgc2V0dGVyIGZ1bmN0aW9uLCBidXQgdGhpcyB3b3VsZG4n dCBiZQorOzsgcG9ydGFibGUgZWl0aGVyLgorKGd2LWRlZmluZS1zaW1wbGUtc2V0dGVyIGF2bC10 cmVlLS1ub2RlLWJyYW5jaCBhc2V0KQorCisKKworOzsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorOzsgQ29udmVuaWVuY2Ug bWFjcm9zCisKKyhkZWZtYWNybyBhdmwtdHJlZS0tc3dpdGNoLWRpciAoZGlyKQorICAiUmV0dXJu IG9wcG9zaXRlIGRpcmVjdGlvbiB0byBESVIgKDAgPSBsZWZ0LCAxID0gcmlnaHQpLiIKKyAgYCgt IDEgLGRpcikpCisKKyhkZWZtYWNybyBhdmwtdHJlZS0tZGlyLXRvLXNpZ24gKGRpcikKKyAgIkNv bnZlcnQgZGlyZWN0aW9uIERJUiAoMCwxKSB0byBzaWduIGZhY3RvciAoLTEsKzEpLiIKKyAgYCgx LSAoKiAyICxkaXIpKSkKKworKGRlZm1hY3JvIGF2bC10cmVlLS1zaWduLXRvLWRpciAoZGlyKQor ICAiQ29udmVydCBzaWduIGZhY3RvciBpbiBESVIgKC14LCt4KSB0byBkaXJlY3Rpb24gKDAsMSku IgorICBgKGlmICg8ICxkaXIgMCkgMCAxKSkKKworCis7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCis7OyAgICAgICAgICAg ICAgICAgICAgICAgICAgRGVsZXRpbmcgZGF0YQorCisoZGVmdW4gYXZsLXRyZWUtLWRlbC1iYWxh bmNlIChub2RlIGJyYW5jaCBkaXIpCisgICJSZWJhbGFuY2UgYSB0cmVlIGFmdGVyIGRlbGV0aW5n IGEgTk9ERS4KK1RoZSBkZWxldGlvbiB3YXMgZG9uZSBmcm9tIHRoZSBsZWZ0IChESVI9MCkgb3Ig cmlnaHQgKERJUj0xKSBzdWItdHJlZQorb2YgdGhlIGxlZnQgKEJSQU5DSD0wKSBvciByaWdodCAo QlJBTkNIPTEpIGNoaWxkIG9mIE5PREUuCitSZXR1cm4gdCBpZiB0aGUgaGVpZ2h0IG9mIHRoZSB0 cmVlIGhhcyBzaHJ1bmsuIgorICA7OyAob3IgaXMgaXQgdmljZS12ZXJzYSBmb3IgQlJBTkNIPykK KyAgKGxldCAoKGJyIChhdmwtdHJlZS0tbm9kZS1icmFuY2ggbm9kZSBicmFuY2gpKQorCTs7IG9w cG9zaXRlIGRpcmVjdGlvbjogMCwxIC0+IDEsMAorCShvcHAgKGF2bC10cmVlLS1zd2l0Y2gtZGly IGRpcikpCisJOzsgZGlyZWN0aW9uIDAsMSAtPiBzaWduIGZhY3RvciAtMSwrMQorCShzZ24gKGF2 bC10cmVlLS1kaXItdG8tc2lnbiBkaXIpKQorICAgICAgICBwMSBiMSBwMiBiMikKKyAgICAoY29u ZAorICAgICAoKD4gKCogc2duIChhdmwtdHJlZS0tbm9kZS1iYWxhbmNlIGJyKSkgMCkKKyAgICAg IChzZXRmIChhdmwtdHJlZS0tbm9kZS1iYWxhbmNlIGJyKSAwKQorICAgICAgdCkKKworICAgICAo KD0gKGF2bC10cmVlLS1ub2RlLWJhbGFuY2UgYnIpIDApCisgICAgICAoc2V0ZiAoYXZsLXRyZWUt LW5vZGUtYmFsYW5jZSBicikgKC0gc2duKSkKKyAgICAgIG5pbCkKKworICAgICAodAorICAgICAg OzsgUmViYWxhbmNlLgorICAgICAgKHNldHEgcDEgKGF2bC10cmVlLS1ub2RlLWJyYW5jaCBiciBv cHApCisgICAgICAgICAgICBiMSAoYXZsLXRyZWUtLW5vZGUtYmFsYW5jZSBwMSkpCisgICAgICAo aWYgKDw9ICgqIHNnbiBiMSkgMCkKKyAgICAgICAgICA7OyBTaW5nbGUgcm90YXRpb24uCisgICAg ICAgICAgKHByb2duCisgICAgICAgICAgICAoc2V0ZiAoYXZsLXRyZWUtLW5vZGUtYnJhbmNoIGJy IG9wcCkKKwkJICAgIChhdmwtdHJlZS0tbm9kZS1icmFuY2ggcDEgZGlyKQorCQkgIChhdmwtdHJl ZS0tbm9kZS1icmFuY2ggcDEgZGlyKSBicgorCQkgIChhdmwtdHJlZS0tbm9kZS1icmFuY2ggbm9k ZSBicmFuY2gpIHAxKQorICAgICAgICAgICAgKGlmICg9IDAgYjEpCisgICAgICAgICAgICAgICAg KHByb2duCisgICAgICAgICAgICAgICAgICAoc2V0ZiAoYXZsLXRyZWUtLW5vZGUtYmFsYW5jZSBi cikgKC0gc2duKQorCQkJKGF2bC10cmVlLS1ub2RlLWJhbGFuY2UgcDEpIHNnbikKKyAgICAgICAg ICAgICAgICAgIG5pbCkgIDsgaGVpZ2h0IGhhc24ndCBjaGFuZ2VkCisgICAgICAgICAgICAgIChz ZXRmIChhdmwtdHJlZS0tbm9kZS1iYWxhbmNlIGJyKSAwKQorICAgICAgICAgICAgICAoc2V0ZiAo YXZsLXRyZWUtLW5vZGUtYmFsYW5jZSBwMSkgMCkKKyAgICAgICAgICAgICAgdCkpICA7IGhlaWdo dCBoYXMgY2hhbmdlZAorCisgICAgICAgIDs7IERvdWJsZSByb3RhdGlvbi4KKyAgICAgICAgKHNl dGYgcDIgKGF2bC10cmVlLS1ub2RlLWJyYW5jaCBwMSBkaXIpCisgICAgICAgICAgICAgIGIyIChh dmwtdHJlZS0tbm9kZS1iYWxhbmNlIHAyKQorCSAgICAgIChhdmwtdHJlZS0tbm9kZS1icmFuY2gg cDEgZGlyKQorCSAgICAgICAgKGF2bC10cmVlLS1ub2RlLWJyYW5jaCBwMiBvcHApCisJICAgICAg KGF2bC10cmVlLS1ub2RlLWJyYW5jaCBwMiBvcHApIHAxCisJICAgICAgKGF2bC10cmVlLS1ub2Rl LWJyYW5jaCBiciBvcHApCisJICAgICAgICAoYXZsLXRyZWUtLW5vZGUtYnJhbmNoIHAyIGRpcikK KwkgICAgICAoYXZsLXRyZWUtLW5vZGUtYnJhbmNoIHAyIGRpcikgYnIKKwkgICAgICAoYXZsLXRy ZWUtLW5vZGUtYmFsYW5jZSBicikKKwkgICAgICAgIChpZiAoPCAoKiBzZ24gYjIpIDApIHNnbiAw KQorCSAgICAgIChhdmwtdHJlZS0tbm9kZS1iYWxhbmNlIHAxKQorCSAgICAgICAgKGlmICg+ICgq IHNnbiBiMikgMCkgKC0gc2duKSAwKQorCSAgICAgIChhdmwtdHJlZS0tbm9kZS1icmFuY2ggbm9k ZSBicmFuY2gpIHAyCisJICAgICAgKGF2bC10cmVlLS1ub2RlLWJhbGFuY2UgcDIpIDApCisgICAg ICAgIHQpKSkpKQorCisoZGVmdW4gYXZsLXRyZWUtLWRvLWRlbC1pbnRlcm5hbCAobm9kZSBicmFu Y2ggcSkKKyAgKGxldCAoKGJyIChhdmwtdHJlZS0tbm9kZS1icmFuY2ggbm9kZSBicmFuY2gpKSkK KyAgICAoaWYgKGF2bC10cmVlLS1ub2RlLXJpZ2h0IGJyKQorICAgICAgICAoaWYgKGF2bC10cmVl LS1kby1kZWwtaW50ZXJuYWwgYnIgMSBxKQorICAgICAgICAgICAgKGF2bC10cmVlLS1kZWwtYmFs YW5jZSBub2RlIGJyYW5jaCAxKSkKKyAgICAgIChzZXRmIChhdmwtdHJlZS0tbm9kZS1kYXRhIHEp IChhdmwtdHJlZS0tbm9kZS1kYXRhIGJyKQorCSAgICAoYXZsLXRyZWUtLW5vZGUtYnJhbmNoIG5v ZGUgYnJhbmNoKQorICAgICAgICAgICAgICAoYXZsLXRyZWUtLW5vZGUtbGVmdCBicikpCisgICAg ICB0KSkpCisKKyhkZWZ1biBhdmwtdHJlZS0tZG8tZGVsZXRlIChjbXBmdW4gcm9vdCBicmFuY2gg ZGF0YSB0ZXN0IG5pbGZsYWcpCisgICJEZWxldGUgREFUQSBmcm9tIEJSQU5DSCBvZiBub2RlIFJP T1QuCitcKFNlZSBgYXZsLXRyZWUtZGVsZXRlJyBmb3IgVEVTVCBhbmQgTklMRkxBRykuCisKK1Jl dHVybiBjb25zIGNlbGwgKFNIUlVOSyAuIERBVEEpLCB3aGVyZSBTSFJVTksgaXMgdCBpZiB0aGUK K2hlaWdodCBvZiB0aGUgdHJlZSBoYXMgc2hydW5rIGFuZCBuaWwgb3RoZXJ3aXNlLCBhbmQgREFU QSBpcwordGhlIHJlbGF0ZWQgZGF0YS4iCisgIChsZXQgKChiciAoYXZsLXRyZWUtLW5vZGUtYnJh bmNoIHJvb3QgYnJhbmNoKSkpCisgICAgKGNvbmQKKyAgICAgOzsgREFUQSBub3QgaW4gdHJlZS4K KyAgICAgKChudWxsIGJyKQorICAgICAgKGNvbnMgbmlsIG5pbGZsYWcpKQorCisgICAgICgoZnVu Y2FsbCBjbXBmdW4gZGF0YSAoYXZsLXRyZWUtLW5vZGUtZGF0YSBicikpCisgICAgICAobGV0ICgo cmV0IChhdmwtdHJlZS0tZG8tZGVsZXRlIGNtcGZ1biBiciAwIGRhdGEgdGVzdCBuaWxmbGFnKSkp CisJKGNvbnMgKGlmIChjYXIgcmV0KSAoYXZsLXRyZWUtLWRlbC1iYWxhbmNlIHJvb3QgYnJhbmNo IDApKQorCSAgICAgIChjZHIgcmV0KSkpKQorCisgICAgICgoZnVuY2FsbCBjbXBmdW4gKGF2bC10 cmVlLS1ub2RlLWRhdGEgYnIpIGRhdGEpCisgICAgICAobGV0ICgocmV0IChhdmwtdHJlZS0tZG8t ZGVsZXRlIGNtcGZ1biBiciAxIGRhdGEgdGVzdCBuaWxmbGFnKSkpCisJKGNvbnMgKGlmIChjYXIg cmV0KSAoYXZsLXRyZWUtLWRlbC1iYWxhbmNlIHJvb3QgYnJhbmNoIDEpKQorCSAgICAgIChjZHIg cmV0KSkpKQorCisgICAgICh0ICA7IEZvdW5kIGl0LgorICAgICAgOzsgaWYgaXQgZmFpbHMgVEVT VCwgZG8gbm90aGluZworICAgICAgKGlmIChhbmQgdGVzdCAobm90IChmdW5jYWxsIHRlc3QgKGF2 bC10cmVlLS1ub2RlLWRhdGEgYnIpKSkpCisJICAoY29ucyBuaWwgbmlsZmxhZykKKwkoY29uZAor CSAoKG51bGwgKGF2bC10cmVlLS1ub2RlLXJpZ2h0IGJyKSkKKwkgIChzZXRmIChhdmwtdHJlZS0t bm9kZS1icmFuY2ggcm9vdCBicmFuY2gpCisJCShhdmwtdHJlZS0tbm9kZS1sZWZ0IGJyKSkKKwkg IChjb25zIHQgKGF2bC10cmVlLS1ub2RlLWRhdGEgYnIpKSkKKworCSAoKG51bGwgKGF2bC10cmVl LS1ub2RlLWxlZnQgYnIpKQorCSAgKHNldGYgKGF2bC10cmVlLS1ub2RlLWJyYW5jaCByb290IGJy YW5jaCkKKwkJKGF2bC10cmVlLS1ub2RlLXJpZ2h0IGJyKSkKKwkgIChjb25zIHQgKGF2bC10cmVl LS1ub2RlLWRhdGEgYnIpKSkKKworCSAodAorCSAgKGlmIChhdmwtdHJlZS0tZG8tZGVsLWludGVy bmFsIGJyIDAgYnIpCisJICAgICAgKGNvbnMgKGF2bC10cmVlLS1kZWwtYmFsYW5jZSByb290IGJy YW5jaCAwKQorCQkgICAgKGF2bC10cmVlLS1ub2RlLWRhdGEgYnIpKQorCSAgICAoY29ucyBuaWwg KGF2bC10cmVlLS1ub2RlLWRhdGEgYnIpKSkpCisJICkpKSkpKQorCisKKworOzsgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor OzsgICAgICAgICAgICAgICAgICAgICAgICAgICBFbnRlcmluZyBkYXRhCisKKyhkZWZ1biBhdmwt dHJlZS0tZW50ZXItYmFsYW5jZSAobm9kZSBicmFuY2ggZGlyKQorICAiUmViYWxhbmNlIHRyZWUg YWZ0ZXIgaW5zZXJ0aW9uIG9mIE5PREUuCitOT0RFIHdhcyBpbnNlcnRlZCBpbnRvIHRoZSBsZWZ0 IChESVI9MCkgb3IgcmlnaHQgKERJUj0xKSBzdWItdHJlZQorb2YgdGhlIGxlZnQgKEJSQU5DSD0w KSBvciByaWdodCAoQlJBTkNIPTEpIGNoaWxkIG9mIE5PREUuCitSZXR1cm4gdCBpZiB0aGUgaGVp Z2h0IG9mIHRoZSB0cmVlIGhhcyBncm93bi4iCisgIChsZXQgKChiciAoYXZsLXRyZWUtLW5vZGUt YnJhbmNoIG5vZGUgYnJhbmNoKSkKKwk7OyBvcHBvc2l0ZSBkaXJlY3Rpb246IDAsMSAtPiAxLDAK Kwkob3BwIChhdmwtdHJlZS0tc3dpdGNoLWRpciBkaXIpKQorCTs7IGRpcmVjdGlvbiAwLDEgLT4g c2lnbiBmYWN0b3IgLTEsKzEKKwkoc2duIChhdmwtdHJlZS0tZGlyLXRvLXNpZ24gZGlyKSkKKyAg ICAgICAgcDEgcDIgYjIpCisgICAgKGNvbmQKKyAgICAgKCg8ICgqIHNnbiAoYXZsLXRyZWUtLW5v ZGUtYmFsYW5jZSBicikpIDApCisgICAgICAoc2V0ZiAoYXZsLXRyZWUtLW5vZGUtYmFsYW5jZSBi cikgMCkKKyAgICAgIG5pbCkKKworICAgICAoKD0gKGF2bC10cmVlLS1ub2RlLWJhbGFuY2UgYnIp IDApCisgICAgICAoc2V0ZiAoYXZsLXRyZWUtLW5vZGUtYmFsYW5jZSBicikgc2duKQorICAgICAg dCkKKworICAgICAodAorICAgICAgOzsgVHJlZSBoYXMgZ3Jvd24gPT4gUmViYWxhbmNlLgorICAg ICAgKHNldHEgcDEgKGF2bC10cmVlLS1ub2RlLWJyYW5jaCBiciBkaXIpKQorICAgICAgKGlmICg+ ICgqIHNnbiAoYXZsLXRyZWUtLW5vZGUtYmFsYW5jZSBwMSkpIDApCisgICAgICAgICAgOzsgU2lu Z2xlIHJvdGF0aW9uLgorICAgICAgICAgIChwcm9nbgorICAgICAgICAgICAgKHNldGYgKGF2bC10 cmVlLS1ub2RlLWJyYW5jaCBiciBkaXIpCisJCSAgKGF2bC10cmVlLS1ub2RlLWJyYW5jaCBwMSBv cHApKQorICAgICAgICAgICAgKHNldGYgKGF2bC10cmVlLS1ub2RlLWJyYW5jaCBwMSBvcHApIGJy KQorICAgICAgICAgICAgKHNldGYgKGF2bC10cmVlLS1ub2RlLWJhbGFuY2UgYnIpIDApCisgICAg ICAgICAgICAoc2V0ZiAoYXZsLXRyZWUtLW5vZGUtYnJhbmNoIG5vZGUgYnJhbmNoKSBwMSkpCisK KyAgICAgICAgOzsgRG91YmxlIHJvdGF0aW9uLgorICAgICAgICAoc2V0ZiBwMiAoYXZsLXRyZWUt LW5vZGUtYnJhbmNoIHAxIG9wcCkKKwkgICAgICBiMiAoYXZsLXRyZWUtLW5vZGUtYmFsYW5jZSBw MikKKwkgICAgICAoYXZsLXRyZWUtLW5vZGUtYnJhbmNoIHAxIG9wcCkKKwkgICAgICAgIChhdmwt dHJlZS0tbm9kZS1icmFuY2ggcDIgZGlyKQorCSAgICAgIChhdmwtdHJlZS0tbm9kZS1icmFuY2gg cDIgZGlyKSBwMQorCSAgICAgIChhdmwtdHJlZS0tbm9kZS1icmFuY2ggYnIgZGlyKQorCSAgICAg ICAgKGF2bC10cmVlLS1ub2RlLWJyYW5jaCBwMiBvcHApCisJICAgICAgKGF2bC10cmVlLS1ub2Rl LWJyYW5jaCBwMiBvcHApIGJyCisJICAgICAgKGF2bC10cmVlLS1ub2RlLWJhbGFuY2UgYnIpCisJ ICAgICAgICAoaWYgKD4gKCogc2duIGIyKSAwKSAoLSBzZ24pIDApCisJICAgICAgKGF2bC10cmVl LS1ub2RlLWJhbGFuY2UgcDEpCisJICAgICAgICAoaWYgKDwgKCogc2duIGIyKSAwKSBzZ24gMCkK KyAgICAgICAgICAgICAgICAoYXZsLXRyZWUtLW5vZGUtYnJhbmNoIG5vZGUgYnJhbmNoKSBwMikp CisgICAgICAoc2V0ZiAoYXZsLXRyZWUtLW5vZGUtYmFsYW5jZQorICAgICAgICAgICAgIChhdmwt dHJlZS0tbm9kZS1icmFuY2ggbm9kZSBicmFuY2gpKQorICAgICAgICAgICAgMCkKKyAgICAgIG5p bCkpKSkKKworKGRlZnVuIGF2bC10cmVlLS1kby1lbnRlciAoY21wZnVuIHJvb3QgYnJhbmNoIGRh dGEgJm9wdGlvbmFsIHVwZGF0ZWZ1bikKKyAgIkVudGVyIERBVEEgaW4gQlJBTkNIIG9mIFJPT1Qg bm9kZS4KK1woU2VlIGBhdmwtdHJlZS1lbnRlcicgZm9yIFVQREFURUZVTikuCisKK1JldHVybiBj b25zIGNlbGwgKEdSRVcgLiBEQVRBKSwgd2hlcmUgR1JFVyBpcyB0IGlmIGhlaWdodAorb2YgdHJl ZSBST09UIGhhcyBncm93biBhbmQgbmlsIG90aGVyd2lzZSwgYW5kIERBVEEgaXMgdGhlCitpbnNl cnRlZCBkYXRhLiIKKyAgKGxldCAoKGJyIChhdmwtdHJlZS0tbm9kZS1icmFuY2ggcm9vdCBicmFu Y2gpKSkKKyAgICAoY29uZAorICAgICAoKG51bGwgYnIpCisgICAgICA7OyBEYXRhIG5vdCBpbiB0 cmVlLCBpbnNlcnQgaXQuCisgICAgICAoc2V0ZiAoYXZsLXRyZWUtLW5vZGUtYnJhbmNoIHJvb3Qg YnJhbmNoKQorICAgICAgICAgICAgKGF2bC10cmVlLS1ub2RlLWNyZWF0ZSBuaWwgbmlsIGRhdGEg MCkpCisgICAgICAoY29ucyB0IGRhdGEpKQorCisgICAgICgoZnVuY2FsbCBjbXBmdW4gZGF0YSAo YXZsLXRyZWUtLW5vZGUtZGF0YSBicikpCisgICAgICAobGV0ICgocmV0IChhdmwtdHJlZS0tZG8t ZW50ZXIgY21wZnVuIGJyIDAgZGF0YSB1cGRhdGVmdW4pKSkKKwkoY29ucyAoYW5kIChjYXIgcmV0 KSAoYXZsLXRyZWUtLWVudGVyLWJhbGFuY2Ugcm9vdCBicmFuY2ggMCkpCisJICAgICAgKGNkciBy ZXQpKSkpCisKKyAgICAgKChmdW5jYWxsIGNtcGZ1biAoYXZsLXRyZWUtLW5vZGUtZGF0YSBicikg ZGF0YSkKKyAgICAgIChsZXQgKChyZXQgKGF2bC10cmVlLS1kby1lbnRlciBjbXBmdW4gYnIgMSBk YXRhIHVwZGF0ZWZ1bikpKQorCShjb25zIChhbmQgKGNhciByZXQpIChhdmwtdHJlZS0tZW50ZXIt YmFsYW5jZSByb290IGJyYW5jaCAxKSkKKwkgICAgICAoY2RyIHJldCkpKSkKKworICAgICA7OyBE YXRhIGFscmVhZHkgaW4gdHJlZSwgdXBkYXRlIGl0LgorICAgICAodAorICAgICAgKGxldCAoKG5l d2RhdGEKKwkgICAgIChpZiB1cGRhdGVmdW4KKwkJIChmdW5jYWxsIHVwZGF0ZWZ1biBkYXRhIChh dmwtdHJlZS0tbm9kZS1kYXRhIGJyKSkKKwkgICAgICAgZGF0YSkpKQorCShpZiAob3IgKGZ1bmNh bGwgY21wZnVuIG5ld2RhdGEgZGF0YSkKKwkJKGZ1bmNhbGwgY21wZnVuIGRhdGEgbmV3ZGF0YSkp CisgICAgICAgICAgICAoZXJyb3IgImF2bC10cmVlLWVudGVyOiBVcGRhdGVkIGRhdGEgZG9lcyBu b3QgbWF0Y2ggZXhpc3RpbmcgZGF0YSIpKQorCShzZXRmIChhdmwtdHJlZS0tbm9kZS1kYXRhIGJy KSBuZXdkYXRhKQorCShjb25zIG5pbCBuZXdkYXRhKSkgIDsgcmV0dXJuIHZhbHVlCisgICAgICAp KSkpCisKKyhkZWZ1biBhdmwtdHJlZS0tY2hlY2sgKHRyZWUpCisgICJDaGVjayB0aGUgYmFsYW5j ZSBvZiBUUkVFLiIKKyAgKGF2bC10cmVlLS1jaGVjay1ub2RlIChhdmwtdHJlZS0tcm9vdCB0cmVl KSkpCisoZGVmdW4gYXZsLXRyZWUtLWNoZWNrLW5vZGUgKG5vZGUpCisgIChpZiAobnVsbCBub2Rl KSAwCisgICAgKGxldCAoKGRsIChhdmwtdHJlZS0tY2hlY2stbm9kZSAoYXZsLXRyZWUtLW5vZGUt bGVmdCBub2RlKSkpCisJICAoZHIgKGF2bC10cmVlLS1jaGVjay1ub2RlIChhdmwtdHJlZS0tbm9k ZS1yaWdodCBub2RlKSkpKQorICAgICAgKGNsLWFzc2VydCAoPSAoLSBkciBkbCkgKGF2bC10cmVl LS1ub2RlLWJhbGFuY2Ugbm9kZSkpKQorICAgICAgKDErIChtYXggZGwgZHIpKSkpKQorCis7OyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisKKworOzs7IElOVEVSTkFMIFVTRSBPTkxZCisoZGVmdW4gYXZsLXRyZWUtLW1hcGMg KG1hcC1mdW5jdGlvbiByb290IGRpcikKKyAgIkFwcGx5IE1BUC1GVU5DVElPTiB0byBhbGwgbm9k ZXMgaW4gdGhlIHRyZWUgc3RhcnRpbmcgd2l0aCBST09ULgorVGhlIGZ1bmN0aW9uIGlzIGFwcGxp ZWQgaW4tb3JkZXIsIGVpdGhlciBhc2NlbmRpbmcgKERJUj0wKSBvcgorZGVzY2VuZGluZyAoRElS PTEpLgorCitOb3RlOiBNQVAtRlVOQ1RJT04gaXMgYXBwbGllZCB0byB0aGUgbm9kZSBhbmQgbm90 IHRvIHRoZSBkYXRhCitpdHNlbGYuIgorICAobGV0ICgobm9kZSByb290KQorICAgICAgICAoc3Rh Y2sgbmlsKQorICAgICAgICAoZ28tZGlyIHQpKQorICAgIChwdXNoIG5pbCBzdGFjaykKKyAgICAo d2hpbGUgbm9kZQorICAgICAgKGlmIChhbmQgZ28tZGlyCisgICAgICAgICAgICAgICAoYXZsLXRy ZWUtLW5vZGUtYnJhbmNoIG5vZGUgZGlyKSkKKyAgICAgICAgICA7OyBEbyB0aGUgRElSIHN1YnRy ZWUgZmlyc3QuCisgICAgICAgICAgKHByb2duCisgICAgICAgICAgICAocHVzaCBub2RlIHN0YWNr KQorICAgICAgICAgICAgKHNldHEgbm9kZSAoYXZsLXRyZWUtLW5vZGUtYnJhbmNoIG5vZGUgZGly KSkpCisgICAgICAgIDs7IEFwcGx5IHRoZSBmdW5jdGlvbi4uLgorICAgICAgICAoZnVuY2FsbCBt YXAtZnVuY3Rpb24gbm9kZSkKKyAgICAgICAgOzsgYW5kIGRvIHRoZSBvcHBvc2l0ZSBzdWJ0cmVl LgorICAgICAgICAoc2V0cSBub2RlIChpZiAoc2V0cSBnby1kaXIgKGF2bC10cmVlLS1ub2RlLWJy YW5jaAorCQkJCSAgICAgbm9kZSAoYXZsLXRyZWUtLXN3aXRjaC1kaXIgZGlyKSkpCisgICAgICAg ICAgICAgICAgICAgICAgIChhdmwtdHJlZS0tbm9kZS1icmFuY2gKKwkJCW5vZGUgKGF2bC10cmVl LS1zd2l0Y2gtZGlyIGRpcikpCisgICAgICAgICAgICAgICAgICAgICAocG9wIHN0YWNrKSkpKSkp KQorCis7OzsgSU5URVJOQUwgVVNFIE9OTFkKKyhkZWZ1biBhdmwtdHJlZS0tZG8tY29weSAocm9v dCkKKyAgIkNvcHkgdGhlIEFWTCB0cmVlIHdpYXRoIFJPT1QgYXMgcm9vdC4KK1RoaXMgZnVuY3Rp b24gaXMgaGlnaGx5IHJlY3Vyc2l2ZS4iCisgIChpZiAobnVsbCByb290KQorICAgICAgbmlsCisg ICAgKGF2bC10cmVlLS1ub2RlLWNyZWF0ZQorICAgICAoYXZsLXRyZWUtLWRvLWNvcHkgKGF2bC10 cmVlLS1ub2RlLWxlZnQgcm9vdCkpCisgICAgIChhdmwtdHJlZS0tZG8tY29weSAoYXZsLXRyZWUt LW5vZGUtcmlnaHQgcm9vdCkpCisgICAgIChhdmwtdHJlZS0tbm9kZS1kYXRhIHJvb3QpCisgICAg IChhdmwtdHJlZS0tbm9kZS1iYWxhbmNlIHJvb3QpKSkpCisKKyhjbC1kZWZzdHJ1Y3QgKGF2bC10 cmVlLS1zdGFjaworCSAgICAoOmNvbnN0cnVjdG9yIG5pbCkKKwkgICAgKDpjb25zdHJ1Y3RvciBh dmwtdHJlZS0tc3RhY2stY3JlYXRlCisJCQkgICh0cmVlICZvcHRpb25hbCByZXZlcnNlCisJCQkJ JmF1eAorCQkJCShzdG9yZQorCQkJCSAoaWYgKGF2bC10cmVlLWVtcHR5IHRyZWUpCisJCQkJICAg ICBuaWwKKwkJCQkgICAobGlzdCAoYXZsLXRyZWUtLXJvb3QgdHJlZSkpKSkpKQorCSAgICAoOmNv cGllciBuaWwpKQorICByZXZlcnNlIHN0b3JlKQorCisoZGVmYWxpYXMgJ2F2bC10cmVlLXN0YWNr LXAgIydhdmwtdHJlZS0tc3RhY2stcAorICAiUmV0dXJuIHQgaWYgT0JKIGlzIGFuIGF2bC10cmVl LXN0YWNrLCBuaWwgb3RoZXJ3aXNlLgorXG4oZm4gT0JKKSIpCisKKyhkZWZ1biBhdmwtdHJlZS0t c3RhY2stcmVwb3B1bGF0ZSAoc3RhY2spCisgICJSZWN1cnNpdmVseSBwdXNoIGNoaWxkcmVuIG9m IFNUQUNLIG9udG8gdGhlIGZyb250LgorVGhpcyBwdXNoZXMgdGhlIGNoaWxkcmVuIG9mIHRoZSBu b2RlIGF0IHRoZSBoZWFkIG9mIFNUQUNLIG9udG8KK3RoZSBmcm9udCBvZiBTVEFDSywgdW50aWwg YSBsZWFmIG5vZGUgaXMgcmVhY2hlZC4iCisgIChsZXQgKChub2RlIChjYXIgKGF2bC10cmVlLS1z dGFjay1zdG9yZSBzdGFjaykpKQorCShkaXIgKGlmIChhdmwtdHJlZS0tc3RhY2stcmV2ZXJzZSBz dGFjaykgMSAwKSkpCisgICAgKHdoZW4gbm9kZSAgOyBjaGVjayBmb3IgZW1wdHkgc3RhY2sKKyAg ICAgICh3aGlsZSAoc2V0cSBub2RlIChhdmwtdHJlZS0tbm9kZS1icmFuY2ggbm9kZSBkaXIpKQor CShwdXNoIG5vZGUgKGF2bC10cmVlLS1zdGFjay1zdG9yZSBzdGFjaykpKSkpKQorCisKKzs7ID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKzs7OyBUaGUgcHVibGljIGZ1bmN0aW9ucyB3aGljaCBvcGVyYXRlIG9uIEFWTCB0cmVl cy4KKworOzsgZGVmaW5lIHB1YmxpYyBhbGlhcyBmb3IgY29uc3RydWN0b3JzIHNvIHRoYXQgd2Ug Y2FuIHNldCBkb2NzdHJpbmcKKyhkZWZhbGlhcyAnYXZsLXRyZWUtY3JlYXRlICMnYXZsLXRyZWUt LWNyZWF0ZQorICAiQ3JlYXRlIGFuIGVtcHR5IEFWTCB0cmVlLgorQ09NUEFSRS1GVU5DVElPTiBp cyBhIGZ1bmN0aW9uIHdoaWNoIHRha2VzIHR3byBhcmd1bWVudHMsIEEgYW5kIEIsCithbmQgcmV0 dXJucyBub24tbmlsIGlmIEEgaXMgbGVzcyB0aGFuIEIsIGFuZCBuaWwgb3RoZXJ3aXNlLgorXG4o Zm4gQ09NUEFSRS1GVU5DVElPTikiKQorCisoZGVmYWxpYXMgJ2F2bC10cmVlLWNvbXBhcmUtZnVu Y3Rpb24gIydhdmwtdHJlZS0tY21wZnVuCisgICJSZXR1cm4gdGhlIGNvbXBhcmlzb24gZnVuY3Rp b24gZm9yIHRoZSBBVkwgdHJlZSBUUkVFLgorXG4oZm4gVFJFRSkiKQorCisoZGVmdW4gYXZsLXRy ZWUtZW1wdHkgKHRyZWUpCisgICJSZXR1cm4gdCBpZiBBVkwgVFJFRSBpcyBlbXB0eSwgb3RoZXJ3 aXNlIHJldHVybiBuaWwuIgorICAobnVsbCAoYXZsLXRyZWUtLXJvb3QgdHJlZSkpKQorCisoZGVm dW4gYXZsLXRyZWUtZW50ZXIgKHRyZWUgZGF0YSAmb3B0aW9uYWwgdXBkYXRlZnVuKQorICAiSW5z ZXJ0IERBVEEgaW50byB0aGUgQVZMIHRyZWUgVFJFRS4KKworSWYgYW4gZWxlbWVudCB0aGF0IG1h dGNoZXMgREFUQSAoYWNjb3JkaW5nIHRvIHRoZSB0cmVlJ3MKK2NvbXBhcmlzb24gZnVuY3Rpb24s IHNlZSBgYXZsLXRyZWUtY3JlYXRlJykgYWxyZWFkeSBleGlzdHMgaW4KK1RSRUUsIGl0IHdpbGwg YmUgcmVwbGFjZWQgYnkgREFUQSBieSBkZWZhdWx0LgorCitJZiBVUERBVEVGVU4gaXMgc3VwcGxp ZWQgYW5kIGFuIGVsZW1lbnQgbWF0Y2hpbmcgREFUQSBhbHJlYWR5CitleGlzdHMgaW4gVFJFRSwg VVBEQVRFRlVOIGlzIGNhbGxlZCB3aXRoIHR3byBhcmd1bWVudHM6IERBVEEsIGFuZAordGhlIG1h dGNoaW5nIGVsZW1lbnQuICBJdHMgcmV0dXJuIHZhbHVlIHJlcGxhY2VzIHRoZSBleGlzdGluZwor ZWxlbWVudC4gIFRoaXMgdmFsdWUgKm11c3QqIGl0c2VsZiBtYXRjaCBEQVRBIChhbmQgaGVuY2Ug dGhlCitwcmUtZXhpc3RpbmcgZGF0YSksIG9yIGFuIGVycm9yIHdpbGwgb2NjdXIuCisKK1JldHVy bnMgdGhlIG5ldyBkYXRhLiIKKyAgKGNkciAoYXZsLXRyZWUtLWRvLWVudGVyIChhdmwtdHJlZS0t Y21wZnVuIHRyZWUpCisJCQkgICAoYXZsLXRyZWUtLWR1bW15cm9vdCB0cmVlKQorCQkJICAgMCBk YXRhIHVwZGF0ZWZ1bikpKQorCisoZGVmdW4gYXZsLXRyZWUtZGVsZXRlICh0cmVlIGRhdGEgJm9w dGlvbmFsIHRlc3QgbmlsZmxhZykKKyAgIkRlbGV0ZSB0aGUgZWxlbWVudCBtYXRjaGluZyBEQVRB IGZyb20gdGhlIEFWTCBUUkVFLgorTWF0Y2hpbmcgdXNlcyB0aGUgY29tcGFyaXNvbiBmdW5jdGlv biBwcmV2aW91c2x5IHNwZWNpZmllZCBpbgorYGF2bC10cmVlLWNyZWF0ZScgd2hlbiBUUkVFIHdh cyBjcmVhdGVkLgorCitSZXR1cm5zIHRoZSBkZWxldGVkIGVsZW1lbnQsIG9yIG5pbCBpZiBubyBt YXRjaGluZyBlbGVtZW50IHdhcworZm91bmQuCisKK09wdGlvbmFsIGFyZ3VtZW50IE5JTEZMQUcg c3BlY2lmaWVzIGEgdmFsdWUgdG8gcmV0dXJuIGluc3RlYWQgb2YKK25pbCBpZiBub3RoaW5nIHdh cyBkZWxldGVkLCBzbyB0aGF0IHRoaXMgY2FzZSBjYW4gYmUKK2Rpc3Rpbmd1aXNoZWQgZnJvbSB0 aGUgY2FzZSBvZiBhIHN1Y2Nlc3NmdWxseSBkZWxldGVkIG51bGwKK2VsZW1lbnQuCisKK0lmIHN1 cHBsaWVkLCBURVNUIHNwZWNpZmllcyBhIHRlc3QgdGhhdCBhIG1hdGNoaW5nIGVsZW1lbnQgbXVz dAorcGFzcyBiZWZvcmUgaXQgaXMgZGVsZXRlZC4gIElmIGEgbWF0Y2hpbmcgZWxlbWVudCBpcyBm b3VuZCwgaXQgaXMKK3Bhc3NlZCBhcyBhbiBhcmd1bWVudCB0byBURVNULCBhbmQgaXMgZGVsZXRl ZCBvbmx5IGlmIHRoZSByZXR1cm4KK3ZhbHVlIGlzIG5vbi1uaWwuIgorICAoY2RyIChhdmwtdHJl ZS0tZG8tZGVsZXRlIChhdmwtdHJlZS0tY21wZnVuIHRyZWUpCisJCQkgICAgKGF2bC10cmVlLS1k dW1teXJvb3QgdHJlZSkKKwkJCSAgICAwIGRhdGEgdGVzdCBuaWxmbGFnKSkpCisKKworKGRlZnVu IGF2bC10cmVlLW1lbWJlciAodHJlZSBkYXRhICZvcHRpb25hbCBuaWxmbGFnKQorICAiUmV0dXJu IHRoZSBlbGVtZW50IGluIHRoZSBBVkwgVFJFRSB3aGljaCBtYXRjaGVzIERBVEEuCitNYXRjaGlu ZyB1c2VzIHRoZSBjb21wYXJpc29uIGZ1bmN0aW9uIHByZXZpb3VzbHkgc3BlY2lmaWVkIGluCitg YXZsLXRyZWUtY3JlYXRlJyB3aGVuIFRSRUUgd2FzIGNyZWF0ZWQuCisKK0lmIHRoZXJlIGlzIG5v IHN1Y2ggZWxlbWVudCBpbiB0aGUgdHJlZSwgbmlsIGlzIHJldHVybmVkLgorT3B0aW9uYWwgYXJn dW1lbnQgTklMRkxBRyBzcGVjaWZpZXMgYSB2YWx1ZSB0byByZXR1cm4gaW5zdGVhZCBvZiBuaWwK K2luIHRoaXMgY2FzZS4gIFRoaXMgYWxsb3dzIG5vbi1leGlzdGVudCBlbGVtZW50cyB0byBiZSBk aXN0aW5ndWlzaGVkCitmcm9tIGEgbnVsbCBlbGVtZW50LiAgKFNlZSBhbHNvIGBhdmwtdHJlZS1t ZW1iZXItcCcsIHdoaWNoIGRvZXMgdGhpcworZm9yIHlvdS4pIgorICAobGV0ICgobm9kZSAoYXZs LXRyZWUtLXJvb3QgdHJlZSkpCisJKGNvbXBhcmUtZnVuY3Rpb24gKGF2bC10cmVlLS1jbXBmdW4g dHJlZSkpKQorICAgIChjYXRjaCAnZm91bmQKKyAgICAgICh3aGlsZSBub2RlCisJKGNvbmQKKwkg KChmdW5jYWxsIGNvbXBhcmUtZnVuY3Rpb24gZGF0YSAoYXZsLXRyZWUtLW5vZGUtZGF0YSBub2Rl KSkKKwkgIChzZXRxIG5vZGUgKGF2bC10cmVlLS1ub2RlLWxlZnQgbm9kZSkpKQorCSAoKGZ1bmNh bGwgY29tcGFyZS1mdW5jdGlvbiAoYXZsLXRyZWUtLW5vZGUtZGF0YSBub2RlKSBkYXRhKQorCSAg KHNldHEgbm9kZSAoYXZsLXRyZWUtLW5vZGUtcmlnaHQgbm9kZSkpKQorCSAodCAodGhyb3cgJ2Zv dW5kIChhdmwtdHJlZS0tbm9kZS1kYXRhIG5vZGUpKSkpKQorICAgICAgbmlsZmxhZykpKQorCisK KyhkZWZ1biBhdmwtdHJlZS1tZW1iZXItcCAodHJlZSBkYXRhKQorICAiUmV0dXJuIHQgaWYgYW4g ZWxlbWVudCBtYXRjaGluZyBEQVRBIGV4aXN0cyBpbiB0aGUgQVZMIFRSRUUuCitPdGhlcndpc2Ug cmV0dXJuIG5pbC4gIE1hdGNoaW5nIHVzZXMgdGhlIGNvbXBhcmlzb24gZnVuY3Rpb24KK3ByZXZp b3VzbHkgc3BlY2lmaWVkIGluIGBhdmwtdHJlZS1jcmVhdGUnIHdoZW4gVFJFRSB3YXMgY3JlYXRl ZC4iCisgIChsZXQgKChmbGFnICcobmlsKSkpCisgICAgKG5vdCAoZXEgKGF2bC10cmVlLW1lbWJl ciB0cmVlIGRhdGEgZmxhZykgZmxhZykpKSkKKworCisoZGVmdW4gYXZsLXRyZWUtbWFwIChmdW4g dHJlZSAmb3B0aW9uYWwgcmV2ZXJzZSkKKyAgIk1vZGlmeSBhbGwgZWxlbWVudHMgaW4gdGhlIEFW TCBUUkVFIGJ5IGFwcGx5aW5nIGZ1bmN0aW9uIEZVTi4KKworRWFjaCBlbGVtZW50IGlzIHJlcGxh Y2VkIGJ5IHRoZSByZXR1cm4gdmFsdWUgb2YgRlVOIGFwcGxpZWQgdG8KK3RoYXQgZWxlbWVudC4K KworRlVOIGlzIGFwcGxpZWQgdG8gdGhlIGVsZW1lbnRzIGluIGFzY2VuZGluZyBvcmRlciwgb3Ig ZGVzY2VuZGluZworb3JkZXIgaWYgUkVWRVJTRSBpcyBub24tbmlsLiIKKyAgKGF2bC10cmVlLS1t YXBjCisgICAobGFtYmRhIChub2RlKQorICAgICAoc2V0ZiAoYXZsLXRyZWUtLW5vZGUtZGF0YSBu b2RlKQorICAgICAgICAgICAoZnVuY2FsbCBmdW4gKGF2bC10cmVlLS1ub2RlLWRhdGEgbm9kZSkp KSkKKyAgIChhdmwtdHJlZS0tcm9vdCB0cmVlKQorICAgKGlmIHJldmVyc2UgMSAwKSkpCisKKwor KGRlZnVuIGF2bC10cmVlLW1hcGMgKGZ1biB0cmVlICZvcHRpb25hbCByZXZlcnNlKQorICAiQXBw bHkgZnVuY3Rpb24gRlVOIHRvIGFsbCBlbGVtZW50cyBpbiBBVkwgVFJFRSwgZm9yIHNpZGUtZWZm ZWN0IG9ubHkuCisKK0ZVTkNUSU9OIGlzIGFwcGxpZWQgdG8gdGhlIGVsZW1lbnRzIGluIGFzY2Vu ZGluZyBvcmRlciwgb3IKK2Rlc2NlbmRpbmcgb3JkZXIgaWYgUkVWRVJTRSBpcyBub24tbmlsLiIK KyAgKGF2bC10cmVlLS1tYXBjCisgICAobGFtYmRhIChub2RlKQorICAgICAoZnVuY2FsbCBmdW4g KGF2bC10cmVlLS1ub2RlLWRhdGEgbm9kZSkpKQorICAgKGF2bC10cmVlLS1yb290IHRyZWUpCisg ICAoaWYgcmV2ZXJzZSAxIDApKSkKKworCisoZGVmdW4gYXZsLXRyZWUtbWFwZgorICAoZnVuIGNv bWJpbmF0b3IgdHJlZSAmb3B0aW9uYWwgcmV2ZXJzZSkKKyAgIkFwcGx5IEZVTiB0byBhbGwgZWxl bWVudHMgaW4gQVZMIFRSRUUsIGNvbWJpbmUgcmVzdWx0cyB1c2luZyBDT01CSU5BVE9SLgorCitU aGUgRlVOQ1RJT04gaXMgYXBwbGllZCBhbmQgdGhlIHJlc3VsdHMgYXJlIGNvbWJpbmVkIGluIGFz Y2VuZGluZworb3JkZXIsIG9yIGRlc2NlbmRpbmcgb3JkZXIgaWYgUkVWRVJTRSBpcyBub24tbmls LiIKKyAgKGxldCAoYXZsLXRyZWUtbWFwZi0tYWNjdW11bGF0ZSkKKyAgICAoYXZsLXRyZWUtLW1h cGMKKyAgICAgKGxhbWJkYSAobm9kZSkKKyAgICAgICAoc2V0cSBhdmwtdHJlZS1tYXBmLS1hY2N1 bXVsYXRlCisJICAgICAoZnVuY2FsbCBjb21iaW5hdG9yCisJCSAgICAgIChmdW5jYWxsIGZ1bgor CQkJICAgICAgIChhdmwtdHJlZS0tbm9kZS1kYXRhIG5vZGUpKQorCQkgICAgICBhdmwtdHJlZS1t YXBmLS1hY2N1bXVsYXRlKSkpCisgICAgIChhdmwtdHJlZS0tcm9vdCB0cmVlKQorICAgICAoaWYg cmV2ZXJzZSAwIDEpKQorICAgIChucmV2ZXJzZSBhdmwtdHJlZS1tYXBmLS1hY2N1bXVsYXRlKSkp CisKKworKGRlZnVuIGF2bC10cmVlLW1hcGNhciAoZnVuIHRyZWUgJm9wdGlvbmFsIHJldmVyc2Up CisgICJBcHBseSBGVU4gdG8gYWxsIGVsZW1lbnRzIGluIEFWTCBUUkVFLCBhbmQgbWFrZSBhIGxp c3Qgb2YgdGhlIHJlc3VsdHMuCisKK1RoZSBmdW5jdGlvbiBpcyBhcHBsaWVkIGFuZCB0aGUgbGlz dCBjb25zdHJ1Y3RlZCBpbiBhc2NlbmRpbmcKK29yZGVyLCBvciBkZXNjZW5kaW5nIG9yZGVyIGlm IFJFVkVSU0UgaXMgbm9uLW5pbC4KKworTm90ZSB0aGF0IGlmIHlvdSBkb24ndCBjYXJlIGFib3V0 IHRoZSBvcmRlciBpbiB3aGljaCBGVU4gaXMKK2FwcGxpZWQsIGp1c3QgdGhhdCB0aGUgcmVzdWx0 aW5nIGxpc3QgaXMgaW4gdGhlIGNvcnJlY3Qgb3JkZXIsCit0aGVuCisKKyAgKGF2bC10cmVlLW1h cGYgZnVuY3Rpb24gXFw9J2NvbnMgdHJlZSAobm90IHJldmVyc2UpKQorCitpcyBtb3JlIGVmZmlj aWVudC4iCisgIChucmV2ZXJzZSAoYXZsLXRyZWUtbWFwZiBmdW4gJ2NvbnMgdHJlZSByZXZlcnNl KSkpCisKKworKGRlZnVuIGF2bC10cmVlLWZpcnN0ICh0cmVlKQorICAiUmV0dXJuIHRoZSBmaXJz dCBlbGVtZW50IGluIFRSRUUsIG9yIG5pbCBpZiBUUkVFIGlzIGVtcHR5LiIKKyAgKGxldCAoKG5v ZGUgKGF2bC10cmVlLS1yb290IHRyZWUpKSkKKyAgICAod2hlbiBub2RlCisgICAgICAod2hpbGUg KGF2bC10cmVlLS1ub2RlLWxlZnQgbm9kZSkKKyAgICAgICAgKHNldHEgbm9kZSAoYXZsLXRyZWUt LW5vZGUtbGVmdCBub2RlKSkpCisgICAgICAoYXZsLXRyZWUtLW5vZGUtZGF0YSBub2RlKSkpKQor CisoZGVmdW4gYXZsLXRyZWUtbGFzdCAodHJlZSkKKyAgIlJldHVybiB0aGUgbGFzdCBlbGVtZW50 IGluIFRSRUUsIG9yIG5pbCBpZiBUUkVFIGlzIGVtcHR5LiIKKyAgKGxldCAoKG5vZGUgKGF2bC10 cmVlLS1yb290IHRyZWUpKSkKKyAgICAod2hlbiBub2RlCisgICAgICAod2hpbGUgKGF2bC10cmVl LS1ub2RlLXJpZ2h0IG5vZGUpCisgICAgICAgIChzZXRxIG5vZGUgKGF2bC10cmVlLS1ub2RlLXJp Z2h0IG5vZGUpKSkKKyAgICAgIChhdmwtdHJlZS0tbm9kZS1kYXRhIG5vZGUpKSkpCisKKyhkZWZ1 biBhdmwtdHJlZS1jb3B5ICh0cmVlKQorICAiUmV0dXJuIGEgY29weSBvZiB0aGUgQVZMIFRSRUUu IgorICAobGV0ICgobmV3LXRyZWUgKGF2bC10cmVlLWNyZWF0ZSAoYXZsLXRyZWUtLWNtcGZ1biB0 cmVlKSkpKQorICAgIChzZXRmIChhdmwtdHJlZS0tcm9vdCBuZXctdHJlZSkgKGF2bC10cmVlLS1k by1jb3B5IChhdmwtdHJlZS0tcm9vdCB0cmVlKSkpCisgICAgbmV3LXRyZWUpKQorCisoZGVmdW4g YXZsLXRyZWUtZmxhdHRlbiAodHJlZSkKKyAgIlJldHVybiBhIHNvcnRlZCBsaXN0IGNvbnRhaW5p bmcgYWxsIGVsZW1lbnRzIG9mIFRSRUUuIgorICAgKGxldCAoKHRyZWVsaXN0IG5pbCkpCisgICAg IChhdmwtdHJlZS0tbWFwYworICAgICAgKGxhbWJkYSAobm9kZSkgKHB1c2ggKGF2bC10cmVlLS1u b2RlLWRhdGEgbm9kZSkgdHJlZWxpc3QpKQorICAgICAgKGF2bC10cmVlLS1yb290IHRyZWUpIDEp CisgICAgIHRyZWVsaXN0KSkKKworKGRlZnVuIGF2bC10cmVlLXNpemUgKHRyZWUpCisgICJSZXR1 cm4gdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiBUUkVFLiIKKyAgKGxldCAoKHRyZWVzaXplIDAp KQorICAgIChhdmwtdHJlZS0tbWFwYworICAgICAobGFtYmRhIChfKSAoc2V0cSB0cmVlc2l6ZSAo MSsgdHJlZXNpemUpKSkKKyAgICAgKGF2bC10cmVlLS1yb290IHRyZWUpIDApCisgICAgdHJlZXNp emUpKQorCisoZGVmdW4gYXZsLXRyZWUtY2xlYXIgKHRyZWUpCisgICJDbGVhciB0aGUgQVZMIFRS RUUuIgorICAoc2V0ZiAoYXZsLXRyZWUtLXJvb3QgdHJlZSkgbmlsKSkKKworCisoZGVmdW4gYXZs LXRyZWUtc3RhY2sgKHRyZWUgJm9wdGlvbmFsIHJldmVyc2UpCisgICJSZXR1cm4gYW4gb2JqZWN0 IHRoYXQgYmVoYXZlcyBsaWtlIGEgc29ydGVkIHN0YWNrIG9mIGFsbCBlbGVtZW50cyBvZiBUUkVF LgorCitJZiBSRVZFUlNFIGlzIG5vbi1uaWwsIHRoZSBzdGFjayBpcyBzb3J0ZWQgaW4gcmV2ZXJz ZSBvcmRlci4KK1woU2VlIGFsc28gYGF2bC10cmVlLXN0YWNrLXBvcCcpLgorCitOb3RlIHRoYXQg YW55IG1vZGlmaWNhdGlvbiB0byBUUkVFICppbW1lZGlhdGVseSogaW52YWxpZGF0ZXMgYWxsCith dmwtdHJlZS1zdGFja3MgY3JlYXRlZCBiZWZvcmUgdGhlIG1vZGlmaWNhdGlvbiAoaW4gcGFydGlj dWxhciwKK2NhbGxpbmcgYGF2bC10cmVlLXN0YWNrLXBvcCcgd2lsbCBnaXZlIHVucHJlZGljdGFi bGUgcmVzdWx0cykuCisKK09wZXJhdGlvbnMgb24gdGhlc2Ugb2JqZWN0cyBhcmUgc2lnbmlmaWNh bnRseSBtb3JlIGVmZmljaWVudCB0aGFuCitjb25zdHJ1Y3RpbmcgYSByZWFsIHN0YWNrIHdpdGgg YGF2bC10cmVlLWZsYXR0ZW4nIGFuZCB1c2luZworc3RhbmRhcmQgc3RhY2sgZnVuY3Rpb25zLiAg QXMgc3VjaCwgdGhleSBjYW4gYmUgdXNlZnVsIGluCitpbXBsZW1lbnRpbmcgZWZmaWNpZW50IGFs Z29yaXRobXMgb2YgQVZMIHRyZWVzLiAgSG93ZXZlciwgaW4gY2FzZXMKK3doZXJlIG1hcHBpbmcg ZnVuY3Rpb25zIGBhdmwtdHJlZS1tYXBjJywgYGF2bC10cmVlLW1hcGNhcicgb3IKK2BhdmwtdHJl ZS1tYXBmJyB3b3VsZCBiZSBzdWZmaWNpZW50LCBpdCBpcyBiZXR0ZXIgdG8gdXNlIG9uZSBvZgor dGhvc2UgaW5zdGVhZC4iCisgIChsZXQgKChzdGFjayAoYXZsLXRyZWUtLXN0YWNrLWNyZWF0ZSB0 cmVlIHJldmVyc2UpKSkKKyAgICAoYXZsLXRyZWUtLXN0YWNrLXJlcG9wdWxhdGUgc3RhY2spCisg ICAgc3RhY2spKQorCisKKyhkZWZ1biBhdmwtdHJlZS1zdGFjay1wb3AgKGF2bC10cmVlLXN0YWNr ICZvcHRpb25hbCBuaWxmbGFnKQorICAiUG9wIHRoZSBmaXJzdCBlbGVtZW50IGZyb20gQVZMLVRS RUUtU1RBQ0suCitcKFNlZSBhbHNvIGBhdmwtdHJlZS1zdGFjaycpLgorCitSZXR1cm5zIG5pbCBp ZiB0aGUgc3RhY2sgaXMgZW1wdHksIG9yIE5JTEZMQUcgaWYgc3BlY2lmaWVkLgorXChUaGUgbGF0 dGVyIGFsbG93cyBhbiBlbXB0eSBzdGFjayB0byBiZSBkaXN0aW5ndWlzaGVkIGZyb20KK2EgbnVs bCBlbGVtZW50IHN0b3JlZCBpbiB0aGUgQVZMIHRyZWUuKSIKKyAgKGxldCAobm9kZSBuZXh0KQor ICAgIChpZiAobm90IChzZXRxIG5vZGUgKHBvcCAoYXZsLXRyZWUtLXN0YWNrLXN0b3JlIGF2bC10 cmVlLXN0YWNrKSkpKQorCW5pbGZsYWcKKyAgICAgICh3aGVuIChzZXRxIG5leHQKKwkJICAoYXZs LXRyZWUtLW5vZGUtYnJhbmNoCisJCSAgIG5vZGUKKwkJICAgKGlmIChhdmwtdHJlZS0tc3RhY2st cmV2ZXJzZSBhdmwtdHJlZS1zdGFjaykgMCAxKSkpCisJKHB1c2ggbmV4dCAoYXZsLXRyZWUtLXN0 YWNrLXN0b3JlIGF2bC10cmVlLXN0YWNrKSkKKwkoYXZsLXRyZWUtLXN0YWNrLXJlcG9wdWxhdGUg YXZsLXRyZWUtc3RhY2spKQorICAgICAgKGF2bC10cmVlLS1ub2RlLWRhdGEgbm9kZSkpKSkKKwor CisoZGVmdW4gYXZsLXRyZWUtc3RhY2stZmlyc3QgKGF2bC10cmVlLXN0YWNrICZvcHRpb25hbCBu aWxmbGFnKQorICAiUmV0dXJuIHRoZSBmaXJzdCBlbGVtZW50IG9mIEFWTC1UUkVFLVNUQUNLLCB3 aXRob3V0IHJlbW92aW5nIGl0IGZyb20gc3RhY2suCisKK1JldHVybnMgbmlsIGlmIHRoZSBzdGFj ayBpcyBlbXB0eSwgb3IgTklMRkxBRyBpZiBzcGVjaWZpZWQuCitcKFRoZSBsYXR0ZXIgYWxsb3dz IGFuIGVtcHR5IHN0YWNrIHRvIGJlIGRpc3Rpbmd1aXNoZWQgZnJvbQorYSBudWxsIGVsZW1lbnQg c3RvcmVkIGluIHRoZSBBVkwgdHJlZS4pIgorICAob3IgKGNhciAoYXZsLXRyZWUtLXN0YWNrLXN0 b3JlIGF2bC10cmVlLXN0YWNrKSkKKyAgICAgIG5pbGZsYWcpKQorCisKKyhkZWZ1biBhdmwtdHJl ZS1zdGFjay1lbXB0eS1wIChhdmwtdHJlZS1zdGFjaykKKyAgIlJldHVybiB0IGlmIEFWTC1UUkVF LVNUQUNLIGlzIGVtcHR5LCBuaWwgb3RoZXJ3aXNlLiIKKyAgKG51bGwgKGF2bC10cmVlLS1zdGFj ay1zdG9yZSBhdmwtdHJlZS1zdGFjaykpKQorCisKKyhwcm92aWRlICdhdmwtdHJlZS1jb3JlKQor Cis7OzsgYXZsLXRyZWUtY29yZS5lbCBlbmRzIGhlcmUKZGlmZiAtLWdpdCBhL2xpc3AvZW1hY3Mt bGlzcC9hdmwtdHJlZS5lbCBiL2xpc3AvZW1hY3MtbGlzcC9hdmwtdHJlZS5lbAppbmRleCBiNDIw MTdkMjhmYi4uMDNmMWJiMDcyZjcgMTAwNjQ0Ci0tLSBhL2xpc3AvZW1hY3MtbGlzcC9hdmwtdHJl ZS5lbAorKysgYi9saXNwL2VtYWNzLWxpc3AvYXZsLXRyZWUuZWwKQEAgLTI3LDY0NCArMjcsMTcg QEAKIAogOzs7IENvbW1lbnRhcnk6CiAKLTs7IEFuIEFWTCB0cmVlIGlzIGEgc2VsZi1iYWxhbmNp bmcgYmluYXJ5IHRyZWUuICBBcyBzdWNoLCBpbnNlcnRpbmcsCi07OyBkZWxldGluZywgYW5kIHJl dHJpZXZpbmcgZGF0YSBmcm9tIGFuIEFWTCB0cmVlIGNvbnRhaW5pbmcgbiBlbGVtZW50cwotOzsg aXMgTyhsb2cgbikuICBJdCBpcyBzb21ld2hhdCBtb3JlIHJpZ2lkbHkgYmFsYW5jZWQgdGhhbiBv dGhlcgotOzsgc2VsZi1iYWxhbmNpbmcgYmluYXJ5IHRyZWVzIChzdWNoIGFzIHJlZC1ibGFjayB0 cmVlcyBhbmQgQUEgdHJlZXMpLAotOzsgbWFraW5nIGluc2VydGlvbiBzbGlnaHRseSBzbG93ZXIs IGRlbGV0aW9uIHNvbWV3aGF0IHNsb3dlciwgYW5kCi07OyByZXRyaWV2YWwgc29tZXdoYXQgZmFz dGVyICh0aGUgYXN5bXB0b3RpYyBzY2FsaW5nIGlzIG9mIGNvdXJzZSB0aGUKLTs7IHNhbWUgZm9y IGFsbCB0eXBlcykuICBUaHVzIGl0IG1heSBiZSBhIGdvb2QgY2hvaWNlIHdoZW4gdGhlIHRyZWUg d2lsbAotOzsgYmUgcmVsYXRpdmVseSBzdGF0aWMsIGkuZS4gZGF0YSB3aWxsIGJlIHJldHJpZXZl ZCBtb3JlIG9mdGVuIHRoYW4KLTs7IHRoZXkgYXJlIG1vZGlmaWVkLgotOzsKLTs7IEludGVybmFs bHksIGEgdHJlZSBjb25zaXN0cyBvZiB0d28gZWxlbWVudHMsIHRoZSByb290IG5vZGUgYW5kIHRo ZQotOzsgY29tcGFyaXNvbiBmdW5jdGlvbi4gIFRoZSBhY3R1YWwgdHJlZSBoYXMgYSBkdW1teSBu b2RlIGFzIGl0cyByb290Ci07OyB3aXRoIHRoZSByZWFsIHJvb3QgaW4gdGhlIGxlZnQgcG9pbnRl ciwgd2hpY2ggYWxsb3dzIHRoZSByb290IG5vZGUgdG8KLTs7IGJlIHRyZWF0ZWQgb24gYSBwYXIg d2l0aCBhbGwgb3RoZXIgbm9kZXMuCi07OwotOzsgRWFjaCBub2RlIG9mIHRoZSB0cmVlIGNvbnNp c3RzIG9mIG9uZSBkYXRhIGVsZW1lbnQsIG9uZSBsZWZ0Ci07OyBzdWItdHJlZSwgb25lIHJpZ2h0 IHN1Yi10cmVlLCBhbmQgYSBiYWxhbmNlIGNvdW50LiAgVGhlIGxhdHRlciBpcyB0aGUKLTs7IGRp ZmZlcmVuY2UgaW4gZGVwdGggb2YgdGhlIGxlZnQgYW5kIHJpZ2h0IHN1Yi10cmVlcy4KLTs7Ci07 OyBUaGUgZnVuY3Rpb25zIHdpdGggbmFtZXMgb2YgdGhlIGZvcm0gImF2bC10cmVlLS0iIGFyZSBp bnRlbmRlZCBmb3IKLTs7IGludGVybmFsIHVzZSBvbmx5LgorOzsgIFRoaXMgcHJvdmlkZXMgYXZs LXRyZWUtY29yZSBwbHVzIGFuIGFkYXB0b3IgZm9yIHRoZSBpdGVyYXRvcgorOzsgIGludGVyZmFj ZS4gIFJlcXVpcmluZyB0aGUgZ2VuZXJhdG9yIGxpYnJhcnkgYWxzbyByZXF1aXJlcyBjbC1saWIs Cis7OyAgd2hpY2ggaXMgbm90IGFsbG93ZWQgaW4gbG9hZHVwLmVsCiAKIDs7OyBDb2RlOgogCiAo ZXZhbC13aGVuLWNvbXBpbGUgKHJlcXVpcmUgJ2NsLWxpYikpCisocmVxdWlyZSAnYXZsLXRyZWUt Y29yZSkKIChyZXF1aXJlICdnZW5lcmF0b3IpCiAKIAotOzsgPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotOzs7IEludGVybmFs IGZ1bmN0aW9ucyBhbmQgbWFjcm9zIGZvciB1c2UgaW4gdGhlIEFWTCB0cmVlIHBhY2thZ2UKLQot Ci07OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi07OyBGdW5jdGlvbnMgYW5kIG1hY3JvcyBoYW5kbGluZyBhbiBBVkwgdHJl ZS4KLQotKGNsLWRlZnN0cnVjdCAoYXZsLXRyZWUtCi0gICAgICAgICAgICA7OyBBIHRhZ2dlZCBs aXN0IGlzIHRoZSBwcmUtZGVmc3RydWN0IHJlcHJlc2VudGF0aW9uLgotICAgICAgICAgICAgOzsg KDp0eXBlIGxpc3QpCi0gICAgICAgICAgICA6bmFtZWQKLSAgICAgICAgICAgICg6Y29uc3RydWN0 b3IgbmlsKQotICAgICAgICAgICAgKDpjb25zdHJ1Y3RvciBhdmwtdHJlZS0tY3JlYXRlIChjbXBm dW4pKQotICAgICAgICAgICAgKDpwcmVkaWNhdGUgYXZsLXRyZWUtcCkKLSAgICAgICAgICAgICg6 Y29waWVyIG5pbCkpCi0gIChkdW1teXJvb3QgKGF2bC10cmVlLS1ub2RlLWNyZWF0ZSBuaWwgbmls IG5pbCAwKSkKLSAgY21wZnVuKQotCi0oZGVmbWFjcm8gYXZsLXRyZWUtLXJvb3QgKHRyZWUpCi0g ICJSZXR1cm4gdGhlIHJvb3Qgbm9kZSBmb3IgYW4gQVZMIFRSRUUuICBJTlRFUk5BTCBVU0UgT05M WS4iCi0gIGAoYXZsLXRyZWUtLW5vZGUtbGVmdCAoYXZsLXRyZWUtLWR1bW15cm9vdCAsdHJlZSkp KQotCi07OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCi07OyBGdW5jdGlvbnMgYW5kIG1hY3JvcyBoYW5kbGluZyBhbiBBVkwg dHJlZSBub2RlLgotCi0oY2wtZGVmc3RydWN0IChhdmwtdHJlZS0tbm9kZQotICAgICAgICAgICAg OzsgV2UgZm9yY2UgYSByZXByZXNlbnRhdGlvbiB3aXRob3V0IHRhZyBzbyBpdCBtYXRjaGVzIHRo ZQotICAgICAgICAgICAgOzsgcHJlLWRlZnN0cnVjdCByZXByZXNlbnRhdGlvbi4gQWxzbyB3ZSB1 c2UgdGhlIHVuZGVybHlpbmcKLSAgICAgICAgICAgIDs7IHJlcHJlc2VudGF0aW9uIGluIHRoZSBp bXBsZW1lbnRhdGlvbiBvZgotICAgICAgICAgICAgOzsgYXZsLXRyZWUtLW5vZGUtYnJhbmNoLgot ICAgICAgICAgICAgKDp0eXBlIHZlY3RvcikKLSAgICAgICAgICAgICg6Y29uc3RydWN0b3Igbmls KQotICAgICAgICAgICAgKDpjb25zdHJ1Y3RvciBhdmwtdHJlZS0tbm9kZS1jcmVhdGUgKGxlZnQg cmlnaHQgZGF0YSBiYWxhbmNlKSkKLSAgICAgICAgICAgICg6Y29waWVyIG5pbCkpCi0gIGxlZnQg cmlnaHQgZGF0YSBiYWxhbmNlKQotCi0KLShkZWZhbGlhcyAnYXZsLXRyZWUtLW5vZGUtYnJhbmNo ICMnYXJlZgotICA7OyBUaGlzIGltcGxlbWVudGF0aW9uIGlzIGVmZmljaWVudCBidXQgYnJlYWtz IHRoZSBkZWZzdHJ1Y3QKLSAgOzsgYWJzdHJhY3Rpb24uICBBbiBhbHRlcm5hdGl2ZSBjb3VsZCBi ZSAoZnVuY2FsbCAoYXJlZiBbYXZsLXRyZWUtbGVmdAotICA7OyBhdmwtdHJlZS1yaWdodCBhdmwt dHJlZS1kYXRhXSBicmFuY2gpIG5vZGUpCi0gICJHZXQgdmFsdWUgb2YgYSBicmFuY2ggb2YgYSBu b2RlLgotTk9ERSBpcyB0aGUgbm9kZSwgYW5kIEJSQU5DSCBpcyB0aGUgYnJhbmNoLgotMCBmb3Ig bGVmdCBwb2ludGVyLCAxIGZvciByaWdodCBwb2ludGVyIGFuZCAyIGZvciB0aGUgZGF0YS4KLVxu KGZuIEJSQU5DSCBOT0RFKSIpCi0KLQotOzsgVGhlIGZ1bmNhbGwvYXJlZiB0cmljayB3b3VsZG4n dCB3b3JrIGZvciB0aGUgc2V0ZiBtZXRob2QsIHVubGVzcyB3ZQotOzsgdHJpZWQgdG8gYWNjZXNz IHRoZSB1bmRlcmx5aW5nIHNldHRlciBmdW5jdGlvbiwgYnV0IHRoaXMgd291bGRuJ3QgYmUKLTs7 IHBvcnRhYmxlIGVpdGhlci4KLShndi1kZWZpbmUtc2ltcGxlLXNldHRlciBhdmwtdHJlZS0tbm9k ZS1icmFuY2ggYXNldCkKLQotCi0KLTs7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLTs7IENvbnZlbmllbmNlIG1hY3Jvcwot Ci0oZGVmbWFjcm8gYXZsLXRyZWUtLXN3aXRjaC1kaXIgKGRpcikKLSAgIlJldHVybiBvcHBvc2l0 ZSBkaXJlY3Rpb24gdG8gRElSICgwID0gbGVmdCwgMSA9IHJpZ2h0KS4iCi0gIGAoLSAxICxkaXIp KQotCi0oZGVmbWFjcm8gYXZsLXRyZWUtLWRpci10by1zaWduIChkaXIpCi0gICJDb252ZXJ0IGRp cmVjdGlvbiBESVIgKDAsMSkgdG8gc2lnbiBmYWN0b3IgKC0xLCsxKS4iCi0gIGAoMS0gKCogMiAs ZGlyKSkpCi0KLShkZWZtYWNybyBhdmwtdHJlZS0tc2lnbi10by1kaXIgKGRpcikKLSAgIkNvbnZl cnQgc2lnbiBmYWN0b3IgaW4gRElSICgteCwreCkgdG8gZGlyZWN0aW9uICgwLDEpLiIKLSAgYChp ZiAoPCAsZGlyIDApIDAgMSkpCi0KLQotOzsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotOzsgICAgICAgICAgICAgICAgICAg ICAgICAgIERlbGV0aW5nIGRhdGEKLQotKGRlZnVuIGF2bC10cmVlLS1kZWwtYmFsYW5jZSAobm9k ZSBicmFuY2ggZGlyKQotICAiUmViYWxhbmNlIGEgdHJlZSBhZnRlciBkZWxldGluZyBhIE5PREUu Ci1UaGUgZGVsZXRpb24gd2FzIGRvbmUgZnJvbSB0aGUgbGVmdCAoRElSPTApIG9yIHJpZ2h0IChE SVI9MSkgc3ViLXRyZWUKLW9mIHRoZSBsZWZ0IChCUkFOQ0g9MCkgb3IgcmlnaHQgKEJSQU5DSD0x KSBjaGlsZCBvZiBOT0RFLgotUmV0dXJuIHQgaWYgdGhlIGhlaWdodCBvZiB0aGUgdHJlZSBoYXMg c2hydW5rLiIKLSAgOzsgKG9yIGlzIGl0IHZpY2UtdmVyc2EgZm9yIEJSQU5DSD8pCi0gIChsZXQg KChiciAoYXZsLXRyZWUtLW5vZGUtYnJhbmNoIG5vZGUgYnJhbmNoKSkKLQk7OyBvcHBvc2l0ZSBk aXJlY3Rpb246IDAsMSAtPiAxLDAKLQkob3BwIChhdmwtdHJlZS0tc3dpdGNoLWRpciBkaXIpKQot CTs7IGRpcmVjdGlvbiAwLDEgLT4gc2lnbiBmYWN0b3IgLTEsKzEKLQkoc2duIChhdmwtdHJlZS0t ZGlyLXRvLXNpZ24gZGlyKSkKLSAgICAgICAgcDEgYjEgcDIgYjIpCi0gICAgKGNvbmQKLSAgICAg KCg+ICgqIHNnbiAoYXZsLXRyZWUtLW5vZGUtYmFsYW5jZSBicikpIDApCi0gICAgICAoc2V0ZiAo YXZsLXRyZWUtLW5vZGUtYmFsYW5jZSBicikgMCkKLSAgICAgIHQpCi0KLSAgICAgKCg9IChhdmwt dHJlZS0tbm9kZS1iYWxhbmNlIGJyKSAwKQotICAgICAgKHNldGYgKGF2bC10cmVlLS1ub2RlLWJh bGFuY2UgYnIpICgtIHNnbikpCi0gICAgICBuaWwpCi0KLSAgICAgKHQKLSAgICAgIDs7IFJlYmFs YW5jZS4KLSAgICAgIChzZXRxIHAxIChhdmwtdHJlZS0tbm9kZS1icmFuY2ggYnIgb3BwKQotICAg ICAgICAgICAgYjEgKGF2bC10cmVlLS1ub2RlLWJhbGFuY2UgcDEpKQotICAgICAgKGlmICg8PSAo KiBzZ24gYjEpIDApCi0gICAgICAgICAgOzsgU2luZ2xlIHJvdGF0aW9uLgotICAgICAgICAgIChw cm9nbgotICAgICAgICAgICAgKHNldGYgKGF2bC10cmVlLS1ub2RlLWJyYW5jaCBiciBvcHApCi0J CSAgICAoYXZsLXRyZWUtLW5vZGUtYnJhbmNoIHAxIGRpcikKLQkJICAoYXZsLXRyZWUtLW5vZGUt YnJhbmNoIHAxIGRpcikgYnIKLQkJICAoYXZsLXRyZWUtLW5vZGUtYnJhbmNoIG5vZGUgYnJhbmNo KSBwMSkKLSAgICAgICAgICAgIChpZiAoPSAwIGIxKQotICAgICAgICAgICAgICAgIChwcm9nbgot ICAgICAgICAgICAgICAgICAgKHNldGYgKGF2bC10cmVlLS1ub2RlLWJhbGFuY2UgYnIpICgtIHNn bikKLQkJCShhdmwtdHJlZS0tbm9kZS1iYWxhbmNlIHAxKSBzZ24pCi0gICAgICAgICAgICAgICAg ICBuaWwpICA7IGhlaWdodCBoYXNuJ3QgY2hhbmdlZAotICAgICAgICAgICAgICAoc2V0ZiAoYXZs LXRyZWUtLW5vZGUtYmFsYW5jZSBicikgMCkKLSAgICAgICAgICAgICAgKHNldGYgKGF2bC10cmVl LS1ub2RlLWJhbGFuY2UgcDEpIDApCi0gICAgICAgICAgICAgIHQpKSAgOyBoZWlnaHQgaGFzIGNo YW5nZWQKLQotICAgICAgICA7OyBEb3VibGUgcm90YXRpb24uCi0gICAgICAgIChzZXRmIHAyIChh dmwtdHJlZS0tbm9kZS1icmFuY2ggcDEgZGlyKQotICAgICAgICAgICAgICBiMiAoYXZsLXRyZWUt LW5vZGUtYmFsYW5jZSBwMikKLQkgICAgICAoYXZsLXRyZWUtLW5vZGUtYnJhbmNoIHAxIGRpcikK LQkgICAgICAgIChhdmwtdHJlZS0tbm9kZS1icmFuY2ggcDIgb3BwKQotCSAgICAgIChhdmwtdHJl ZS0tbm9kZS1icmFuY2ggcDIgb3BwKSBwMQotCSAgICAgIChhdmwtdHJlZS0tbm9kZS1icmFuY2gg YnIgb3BwKQotCSAgICAgICAgKGF2bC10cmVlLS1ub2RlLWJyYW5jaCBwMiBkaXIpCi0JICAgICAg KGF2bC10cmVlLS1ub2RlLWJyYW5jaCBwMiBkaXIpIGJyCi0JICAgICAgKGF2bC10cmVlLS1ub2Rl LWJhbGFuY2UgYnIpCi0JICAgICAgICAoaWYgKDwgKCogc2duIGIyKSAwKSBzZ24gMCkKLQkgICAg ICAoYXZsLXRyZWUtLW5vZGUtYmFsYW5jZSBwMSkKLQkgICAgICAgIChpZiAoPiAoKiBzZ24gYjIp IDApICgtIHNnbikgMCkKLQkgICAgICAoYXZsLXRyZWUtLW5vZGUtYnJhbmNoIG5vZGUgYnJhbmNo KSBwMgotCSAgICAgIChhdmwtdHJlZS0tbm9kZS1iYWxhbmNlIHAyKSAwKQotICAgICAgICB0KSkp KSkKLQotKGRlZnVuIGF2bC10cmVlLS1kby1kZWwtaW50ZXJuYWwgKG5vZGUgYnJhbmNoIHEpCi0g IChsZXQgKChiciAoYXZsLXRyZWUtLW5vZGUtYnJhbmNoIG5vZGUgYnJhbmNoKSkpCi0gICAgKGlm IChhdmwtdHJlZS0tbm9kZS1yaWdodCBicikKLSAgICAgICAgKGlmIChhdmwtdHJlZS0tZG8tZGVs LWludGVybmFsIGJyIDEgcSkKLSAgICAgICAgICAgIChhdmwtdHJlZS0tZGVsLWJhbGFuY2Ugbm9k ZSBicmFuY2ggMSkpCi0gICAgICAoc2V0ZiAoYXZsLXRyZWUtLW5vZGUtZGF0YSBxKSAoYXZsLXRy ZWUtLW5vZGUtZGF0YSBicikKLQkgICAgKGF2bC10cmVlLS1ub2RlLWJyYW5jaCBub2RlIGJyYW5j aCkKLSAgICAgICAgICAgICAgKGF2bC10cmVlLS1ub2RlLWxlZnQgYnIpKQotICAgICAgdCkpKQot Ci0oZGVmdW4gYXZsLXRyZWUtLWRvLWRlbGV0ZSAoY21wZnVuIHJvb3QgYnJhbmNoIGRhdGEgdGVz dCBuaWxmbGFnKQotICAiRGVsZXRlIERBVEEgZnJvbSBCUkFOQ0ggb2Ygbm9kZSBST09ULgotXChT ZWUgYGF2bC10cmVlLWRlbGV0ZScgZm9yIFRFU1QgYW5kIE5JTEZMQUcpLgotCi1SZXR1cm4gY29u cyBjZWxsIChTSFJVTksgLiBEQVRBKSwgd2hlcmUgU0hSVU5LIGlzIHQgaWYgdGhlCi1oZWlnaHQg b2YgdGhlIHRyZWUgaGFzIHNocnVuayBhbmQgbmlsIG90aGVyd2lzZSwgYW5kIERBVEEgaXMKLXRo ZSByZWxhdGVkIGRhdGEuIgotICAobGV0ICgoYnIgKGF2bC10cmVlLS1ub2RlLWJyYW5jaCByb290 IGJyYW5jaCkpKQotICAgIChjb25kCi0gICAgIDs7IERBVEEgbm90IGluIHRyZWUuCi0gICAgICgo bnVsbCBicikKLSAgICAgIChjb25zIG5pbCBuaWxmbGFnKSkKLQotICAgICAoKGZ1bmNhbGwgY21w ZnVuIGRhdGEgKGF2bC10cmVlLS1ub2RlLWRhdGEgYnIpKQotICAgICAgKGxldCAoKHJldCAoYXZs LXRyZWUtLWRvLWRlbGV0ZSBjbXBmdW4gYnIgMCBkYXRhIHRlc3QgbmlsZmxhZykpKQotCShjb25z IChpZiAoY2FyIHJldCkgKGF2bC10cmVlLS1kZWwtYmFsYW5jZSByb290IGJyYW5jaCAwKSkKLQkg ICAgICAoY2RyIHJldCkpKSkKLQotICAgICAoKGZ1bmNhbGwgY21wZnVuIChhdmwtdHJlZS0tbm9k ZS1kYXRhIGJyKSBkYXRhKQotICAgICAgKGxldCAoKHJldCAoYXZsLXRyZWUtLWRvLWRlbGV0ZSBj bXBmdW4gYnIgMSBkYXRhIHRlc3QgbmlsZmxhZykpKQotCShjb25zIChpZiAoY2FyIHJldCkgKGF2 bC10cmVlLS1kZWwtYmFsYW5jZSByb290IGJyYW5jaCAxKSkKLQkgICAgICAoY2RyIHJldCkpKSkK LQotICAgICAodCAgOyBGb3VuZCBpdC4KLSAgICAgIDs7IGlmIGl0IGZhaWxzIFRFU1QsIGRvIG5v dGhpbmcKLSAgICAgIChpZiAoYW5kIHRlc3QgKG5vdCAoZnVuY2FsbCB0ZXN0IChhdmwtdHJlZS0t bm9kZS1kYXRhIGJyKSkpKQotCSAgKGNvbnMgbmlsIG5pbGZsYWcpCi0JKGNvbmQKLQkgKChudWxs IChhdmwtdHJlZS0tbm9kZS1yaWdodCBicikpCi0JICAoc2V0ZiAoYXZsLXRyZWUtLW5vZGUtYnJh bmNoIHJvb3QgYnJhbmNoKQotCQkoYXZsLXRyZWUtLW5vZGUtbGVmdCBicikpCi0JICAoY29ucyB0 IChhdmwtdHJlZS0tbm9kZS1kYXRhIGJyKSkpCi0KLQkgKChudWxsIChhdmwtdHJlZS0tbm9kZS1s ZWZ0IGJyKSkKLQkgIChzZXRmIChhdmwtdHJlZS0tbm9kZS1icmFuY2ggcm9vdCBicmFuY2gpCi0J CShhdmwtdHJlZS0tbm9kZS1yaWdodCBicikpCi0JICAoY29ucyB0IChhdmwtdHJlZS0tbm9kZS1k YXRhIGJyKSkpCi0KLQkgKHQKLQkgIChpZiAoYXZsLXRyZWUtLWRvLWRlbC1pbnRlcm5hbCBiciAw IGJyKQotCSAgICAgIChjb25zIChhdmwtdHJlZS0tZGVsLWJhbGFuY2Ugcm9vdCBicmFuY2ggMCkK LQkJICAgIChhdmwtdHJlZS0tbm9kZS1kYXRhIGJyKSkKLQkgICAgKGNvbnMgbmlsIChhdmwtdHJl ZS0tbm9kZS1kYXRhIGJyKSkpKQotCSApKSkpKSkKLQotCi0KLTs7IC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLTs7ICAgICAg ICAgICAgICAgICAgICAgICAgICAgRW50ZXJpbmcgZGF0YQotCi0oZGVmdW4gYXZsLXRyZWUtLWVu dGVyLWJhbGFuY2UgKG5vZGUgYnJhbmNoIGRpcikKLSAgIlJlYmFsYW5jZSB0cmVlIGFmdGVyIGlu c2VydGlvbiBvZiBOT0RFLgotTk9ERSB3YXMgaW5zZXJ0ZWQgaW50byB0aGUgbGVmdCAoRElSPTAp IG9yIHJpZ2h0IChESVI9MSkgc3ViLXRyZWUKLW9mIHRoZSBsZWZ0IChCUkFOQ0g9MCkgb3Igcmln aHQgKEJSQU5DSD0xKSBjaGlsZCBvZiBOT0RFLgotUmV0dXJuIHQgaWYgdGhlIGhlaWdodCBvZiB0 aGUgdHJlZSBoYXMgZ3Jvd24uIgotICAobGV0ICgoYnIgKGF2bC10cmVlLS1ub2RlLWJyYW5jaCBu b2RlIGJyYW5jaCkpCi0JOzsgb3Bwb3NpdGUgZGlyZWN0aW9uOiAwLDEgLT4gMSwwCi0JKG9wcCAo YXZsLXRyZWUtLXN3aXRjaC1kaXIgZGlyKSkKLQk7OyBkaXJlY3Rpb24gMCwxIC0+IHNpZ24gZmFj dG9yIC0xLCsxCi0JKHNnbiAoYXZsLXRyZWUtLWRpci10by1zaWduIGRpcikpCi0gICAgICAgIHAx IHAyIGIyKQotICAgIChjb25kCi0gICAgICgoPCAoKiBzZ24gKGF2bC10cmVlLS1ub2RlLWJhbGFu Y2UgYnIpKSAwKQotICAgICAgKHNldGYgKGF2bC10cmVlLS1ub2RlLWJhbGFuY2UgYnIpIDApCi0g ICAgICBuaWwpCi0KLSAgICAgKCg9IChhdmwtdHJlZS0tbm9kZS1iYWxhbmNlIGJyKSAwKQotICAg ICAgKHNldGYgKGF2bC10cmVlLS1ub2RlLWJhbGFuY2UgYnIpIHNnbikKLSAgICAgIHQpCi0KLSAg ICAgKHQKLSAgICAgIDs7IFRyZWUgaGFzIGdyb3duID0+IFJlYmFsYW5jZS4KLSAgICAgIChzZXRx IHAxIChhdmwtdHJlZS0tbm9kZS1icmFuY2ggYnIgZGlyKSkKLSAgICAgIChpZiAoPiAoKiBzZ24g KGF2bC10cmVlLS1ub2RlLWJhbGFuY2UgcDEpKSAwKQotICAgICAgICAgIDs7IFNpbmdsZSByb3Rh dGlvbi4KLSAgICAgICAgICAocHJvZ24KLSAgICAgICAgICAgIChzZXRmIChhdmwtdHJlZS0tbm9k ZS1icmFuY2ggYnIgZGlyKQotCQkgIChhdmwtdHJlZS0tbm9kZS1icmFuY2ggcDEgb3BwKSkKLSAg ICAgICAgICAgIChzZXRmIChhdmwtdHJlZS0tbm9kZS1icmFuY2ggcDEgb3BwKSBicikKLSAgICAg ICAgICAgIChzZXRmIChhdmwtdHJlZS0tbm9kZS1iYWxhbmNlIGJyKSAwKQotICAgICAgICAgICAg KHNldGYgKGF2bC10cmVlLS1ub2RlLWJyYW5jaCBub2RlIGJyYW5jaCkgcDEpKQotCi0gICAgICAg IDs7IERvdWJsZSByb3RhdGlvbi4KLSAgICAgICAgKHNldGYgcDIgKGF2bC10cmVlLS1ub2RlLWJy YW5jaCBwMSBvcHApCi0JICAgICAgYjIgKGF2bC10cmVlLS1ub2RlLWJhbGFuY2UgcDIpCi0JICAg ICAgKGF2bC10cmVlLS1ub2RlLWJyYW5jaCBwMSBvcHApCi0JICAgICAgICAoYXZsLXRyZWUtLW5v ZGUtYnJhbmNoIHAyIGRpcikKLQkgICAgICAoYXZsLXRyZWUtLW5vZGUtYnJhbmNoIHAyIGRpcikg cDEKLQkgICAgICAoYXZsLXRyZWUtLW5vZGUtYnJhbmNoIGJyIGRpcikKLQkgICAgICAgIChhdmwt dHJlZS0tbm9kZS1icmFuY2ggcDIgb3BwKQotCSAgICAgIChhdmwtdHJlZS0tbm9kZS1icmFuY2gg cDIgb3BwKSBicgotCSAgICAgIChhdmwtdHJlZS0tbm9kZS1iYWxhbmNlIGJyKQotCSAgICAgICAg KGlmICg+ICgqIHNnbiBiMikgMCkgKC0gc2duKSAwKQotCSAgICAgIChhdmwtdHJlZS0tbm9kZS1i YWxhbmNlIHAxKQotCSAgICAgICAgKGlmICg8ICgqIHNnbiBiMikgMCkgc2duIDApCi0gICAgICAg ICAgICAgICAgKGF2bC10cmVlLS1ub2RlLWJyYW5jaCBub2RlIGJyYW5jaCkgcDIpKQotICAgICAg KHNldGYgKGF2bC10cmVlLS1ub2RlLWJhbGFuY2UKLSAgICAgICAgICAgICAoYXZsLXRyZWUtLW5v ZGUtYnJhbmNoIG5vZGUgYnJhbmNoKSkKLSAgICAgICAgICAgIDApCi0gICAgICBuaWwpKSkpCi0K LShkZWZ1biBhdmwtdHJlZS0tZG8tZW50ZXIgKGNtcGZ1biByb290IGJyYW5jaCBkYXRhICZvcHRp b25hbCB1cGRhdGVmdW4pCi0gICJFbnRlciBEQVRBIGluIEJSQU5DSCBvZiBST09UIG5vZGUuCi1c KFNlZSBgYXZsLXRyZWUtZW50ZXInIGZvciBVUERBVEVGVU4pLgotCi1SZXR1cm4gY29ucyBjZWxs IChHUkVXIC4gREFUQSksIHdoZXJlIEdSRVcgaXMgdCBpZiBoZWlnaHQKLW9mIHRyZWUgUk9PVCBo YXMgZ3Jvd24gYW5kIG5pbCBvdGhlcndpc2UsIGFuZCBEQVRBIGlzIHRoZQotaW5zZXJ0ZWQgZGF0 YS4iCi0gIChsZXQgKChiciAoYXZsLXRyZWUtLW5vZGUtYnJhbmNoIHJvb3QgYnJhbmNoKSkpCi0g ICAgKGNvbmQKLSAgICAgKChudWxsIGJyKQotICAgICAgOzsgRGF0YSBub3QgaW4gdHJlZSwgaW5z ZXJ0IGl0LgotICAgICAgKHNldGYgKGF2bC10cmVlLS1ub2RlLWJyYW5jaCByb290IGJyYW5jaCkK LSAgICAgICAgICAgIChhdmwtdHJlZS0tbm9kZS1jcmVhdGUgbmlsIG5pbCBkYXRhIDApKQotICAg ICAgKGNvbnMgdCBkYXRhKSkKLQotICAgICAoKGZ1bmNhbGwgY21wZnVuIGRhdGEgKGF2bC10cmVl LS1ub2RlLWRhdGEgYnIpKQotICAgICAgKGxldCAoKHJldCAoYXZsLXRyZWUtLWRvLWVudGVyIGNt cGZ1biBiciAwIGRhdGEgdXBkYXRlZnVuKSkpCi0JKGNvbnMgKGFuZCAoY2FyIHJldCkgKGF2bC10 cmVlLS1lbnRlci1iYWxhbmNlIHJvb3QgYnJhbmNoIDApKQotCSAgICAgIChjZHIgcmV0KSkpKQot Ci0gICAgICgoZnVuY2FsbCBjbXBmdW4gKGF2bC10cmVlLS1ub2RlLWRhdGEgYnIpIGRhdGEpCi0g ICAgICAobGV0ICgocmV0IChhdmwtdHJlZS0tZG8tZW50ZXIgY21wZnVuIGJyIDEgZGF0YSB1cGRh dGVmdW4pKSkKLQkoY29ucyAoYW5kIChjYXIgcmV0KSAoYXZsLXRyZWUtLWVudGVyLWJhbGFuY2Ug cm9vdCBicmFuY2ggMSkpCi0JICAgICAgKGNkciByZXQpKSkpCi0KLSAgICAgOzsgRGF0YSBhbHJl YWR5IGluIHRyZWUsIHVwZGF0ZSBpdC4KLSAgICAgKHQKLSAgICAgIChsZXQgKChuZXdkYXRhCi0J ICAgICAoaWYgdXBkYXRlZnVuCi0JCSAoZnVuY2FsbCB1cGRhdGVmdW4gZGF0YSAoYXZsLXRyZWUt LW5vZGUtZGF0YSBicikpCi0JICAgICAgIGRhdGEpKSkKLQkoaWYgKG9yIChmdW5jYWxsIGNtcGZ1 biBuZXdkYXRhIGRhdGEpCi0JCShmdW5jYWxsIGNtcGZ1biBkYXRhIG5ld2RhdGEpKQotICAgICAg ICAgICAgKGVycm9yICJhdmwtdHJlZS1lbnRlcjogVXBkYXRlZCBkYXRhIGRvZXMgbm90IG1hdGNo IGV4aXN0aW5nIGRhdGEiKSkKLQkoc2V0ZiAoYXZsLXRyZWUtLW5vZGUtZGF0YSBicikgbmV3ZGF0 YSkKLQkoY29ucyBuaWwgbmV3ZGF0YSkpICA7IHJldHVybiB2YWx1ZQotICAgICAgKSkpKQotCi0o ZGVmdW4gYXZsLXRyZWUtLWNoZWNrICh0cmVlKQotICAiQ2hlY2sgdGhlIGJhbGFuY2Ugb2YgVFJF RS4iCi0gIChhdmwtdHJlZS0tY2hlY2stbm9kZSAoYXZsLXRyZWUtLXJvb3QgdHJlZSkpKQotKGRl ZnVuIGF2bC10cmVlLS1jaGVjay1ub2RlIChub2RlKQotICAoaWYgKG51bGwgbm9kZSkgMAotICAg IChsZXQgKChkbCAoYXZsLXRyZWUtLWNoZWNrLW5vZGUgKGF2bC10cmVlLS1ub2RlLWxlZnQgbm9k ZSkpKQotCSAgKGRyIChhdmwtdHJlZS0tY2hlY2stbm9kZSAoYXZsLXRyZWUtLW5vZGUtcmlnaHQg bm9kZSkpKSkKLSAgICAgIChjbC1hc3NlcnQgKD0gKC0gZHIgZGwpIChhdmwtdHJlZS0tbm9kZS1i YWxhbmNlIG5vZGUpKSkKLSAgICAgICgxKyAobWF4IGRsIGRyKSkpKSkKLQotOzsgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot Ci0KLTs7OyBJTlRFUk5BTCBVU0UgT05MWQotKGRlZnVuIGF2bC10cmVlLS1tYXBjIChtYXAtZnVu Y3Rpb24gcm9vdCBkaXIpCi0gICJBcHBseSBNQVAtRlVOQ1RJT04gdG8gYWxsIG5vZGVzIGluIHRo ZSB0cmVlIHN0YXJ0aW5nIHdpdGggUk9PVC4KLVRoZSBmdW5jdGlvbiBpcyBhcHBsaWVkIGluLW9y ZGVyLCBlaXRoZXIgYXNjZW5kaW5nIChESVI9MCkgb3IKLWRlc2NlbmRpbmcgKERJUj0xKS4KLQot Tm90ZTogTUFQLUZVTkNUSU9OIGlzIGFwcGxpZWQgdG8gdGhlIG5vZGUgYW5kIG5vdCB0byB0aGUg ZGF0YQotaXRzZWxmLiIKLSAgKGxldCAoKG5vZGUgcm9vdCkKLSAgICAgICAgKHN0YWNrIG5pbCkK LSAgICAgICAgKGdvLWRpciB0KSkKLSAgICAocHVzaCBuaWwgc3RhY2spCi0gICAgKHdoaWxlIG5v ZGUKLSAgICAgIChpZiAoYW5kIGdvLWRpcgotICAgICAgICAgICAgICAgKGF2bC10cmVlLS1ub2Rl LWJyYW5jaCBub2RlIGRpcikpCi0gICAgICAgICAgOzsgRG8gdGhlIERJUiBzdWJ0cmVlIGZpcnN0 LgotICAgICAgICAgIChwcm9nbgotICAgICAgICAgICAgKHB1c2ggbm9kZSBzdGFjaykKLSAgICAg ICAgICAgIChzZXRxIG5vZGUgKGF2bC10cmVlLS1ub2RlLWJyYW5jaCBub2RlIGRpcikpKQotICAg ICAgICA7OyBBcHBseSB0aGUgZnVuY3Rpb24uLi4KLSAgICAgICAgKGZ1bmNhbGwgbWFwLWZ1bmN0 aW9uIG5vZGUpCi0gICAgICAgIDs7IGFuZCBkbyB0aGUgb3Bwb3NpdGUgc3VidHJlZS4KLSAgICAg ICAgKHNldHEgbm9kZSAoaWYgKHNldHEgZ28tZGlyIChhdmwtdHJlZS0tbm9kZS1icmFuY2gKLQkJ CQkgICAgIG5vZGUgKGF2bC10cmVlLS1zd2l0Y2gtZGlyIGRpcikpKQotICAgICAgICAgICAgICAg ICAgICAgICAoYXZsLXRyZWUtLW5vZGUtYnJhbmNoCi0JCQlub2RlIChhdmwtdHJlZS0tc3dpdGNo LWRpciBkaXIpKQotICAgICAgICAgICAgICAgICAgICAgKHBvcCBzdGFjaykpKSkpKSkKLQotOzs7 IElOVEVSTkFMIFVTRSBPTkxZCi0oZGVmdW4gYXZsLXRyZWUtLWRvLWNvcHkgKHJvb3QpCi0gICJD b3B5IHRoZSBBVkwgdHJlZSB3aWF0aCBST09UIGFzIHJvb3QuCi1UaGlzIGZ1bmN0aW9uIGlzIGhp Z2hseSByZWN1cnNpdmUuIgotICAoaWYgKG51bGwgcm9vdCkKLSAgICAgIG5pbAotICAgIChhdmwt dHJlZS0tbm9kZS1jcmVhdGUKLSAgICAgKGF2bC10cmVlLS1kby1jb3B5IChhdmwtdHJlZS0tbm9k ZS1sZWZ0IHJvb3QpKQotICAgICAoYXZsLXRyZWUtLWRvLWNvcHkgKGF2bC10cmVlLS1ub2RlLXJp Z2h0IHJvb3QpKQotICAgICAoYXZsLXRyZWUtLW5vZGUtZGF0YSByb290KQotICAgICAoYXZsLXRy ZWUtLW5vZGUtYmFsYW5jZSByb290KSkpKQotCi0oY2wtZGVmc3RydWN0IChhdmwtdHJlZS0tc3Rh Y2sKLQkgICAgKDpjb25zdHJ1Y3RvciBuaWwpCi0JICAgICg6Y29uc3RydWN0b3IgYXZsLXRyZWUt LXN0YWNrLWNyZWF0ZQotCQkJICAodHJlZSAmb3B0aW9uYWwgcmV2ZXJzZQotCQkJCSZhdXgKLQkJ CQkoc3RvcmUKLQkJCQkgKGlmIChhdmwtdHJlZS1lbXB0eSB0cmVlKQotCQkJCSAgICAgbmlsCi0J CQkJICAgKGxpc3QgKGF2bC10cmVlLS1yb290IHRyZWUpKSkpKSkKLQkgICAgKDpjb3BpZXIgbmls KSkKLSAgcmV2ZXJzZSBzdG9yZSkKLQotKGRlZmFsaWFzICdhdmwtdHJlZS1zdGFjay1wICMnYXZs LXRyZWUtLXN0YWNrLXAKLSAgIlJldHVybiB0IGlmIE9CSiBpcyBhbiBhdmwtdHJlZS1zdGFjaywg bmlsIG90aGVyd2lzZS4KLVxuKGZuIE9CSikiKQotCi0oZGVmdW4gYXZsLXRyZWUtLXN0YWNrLXJl cG9wdWxhdGUgKHN0YWNrKQotICAiUmVjdXJzaXZlbHkgcHVzaCBjaGlsZHJlbiBvZiBTVEFDSyBv bnRvIHRoZSBmcm9udC4KLVRoaXMgcHVzaGVzIHRoZSBjaGlsZHJlbiBvZiB0aGUgbm9kZSBhdCB0 aGUgaGVhZCBvZiBTVEFDSyBvbnRvCi10aGUgZnJvbnQgb2YgU1RBQ0ssIHVudGlsIGEgbGVhZiBu b2RlIGlzIHJlYWNoZWQuIgotICAobGV0ICgobm9kZSAoY2FyIChhdmwtdHJlZS0tc3RhY2stc3Rv cmUgc3RhY2spKSkKLQkoZGlyIChpZiAoYXZsLXRyZWUtLXN0YWNrLXJldmVyc2Ugc3RhY2spIDEg MCkpKQotICAgICh3aGVuIG5vZGUgIDsgY2hlY2sgZm9yIGVtcHR5IHN0YWNrCi0gICAgICAod2hp bGUgKHNldHEgbm9kZSAoYXZsLXRyZWUtLW5vZGUtYnJhbmNoIG5vZGUgZGlyKSkKLQkocHVzaCBu b2RlIChhdmwtdHJlZS0tc3RhY2stc3RvcmUgc3RhY2spKSkpKSkKLQotCi07OyA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci07 OzsgVGhlIHB1YmxpYyBmdW5jdGlvbnMgd2hpY2ggb3BlcmF0ZSBvbiBBVkwgdHJlZXMuCi0KLTs7 IGRlZmluZSBwdWJsaWMgYWxpYXMgZm9yIGNvbnN0cnVjdG9ycyBzbyB0aGF0IHdlIGNhbiBzZXQg ZG9jc3RyaW5nCi0oZGVmYWxpYXMgJ2F2bC10cmVlLWNyZWF0ZSAjJ2F2bC10cmVlLS1jcmVhdGUK LSAgIkNyZWF0ZSBhbiBlbXB0eSBBVkwgdHJlZS4KLUNPTVBBUkUtRlVOQ1RJT04gaXMgYSBmdW5j dGlvbiB3aGljaCB0YWtlcyB0d28gYXJndW1lbnRzLCBBIGFuZCBCLAotYW5kIHJldHVybnMgbm9u LW5pbCBpZiBBIGlzIGxlc3MgdGhhbiBCLCBhbmQgbmlsIG90aGVyd2lzZS4KLVxuKGZuIENPTVBB UkUtRlVOQ1RJT04pIikKLQotKGRlZmFsaWFzICdhdmwtdHJlZS1jb21wYXJlLWZ1bmN0aW9uICMn YXZsLXRyZWUtLWNtcGZ1bgotICAiUmV0dXJuIHRoZSBjb21wYXJpc29uIGZ1bmN0aW9uIGZvciB0 aGUgQVZMIHRyZWUgVFJFRS4KLVxuKGZuIFRSRUUpIikKLQotKGRlZnVuIGF2bC10cmVlLWVtcHR5 ICh0cmVlKQotICAiUmV0dXJuIHQgaWYgQVZMIFRSRUUgaXMgZW1wdHksIG90aGVyd2lzZSByZXR1 cm4gbmlsLiIKLSAgKG51bGwgKGF2bC10cmVlLS1yb290IHRyZWUpKSkKLQotKGRlZnVuIGF2bC10 cmVlLWVudGVyICh0cmVlIGRhdGEgJm9wdGlvbmFsIHVwZGF0ZWZ1bikKLSAgIkluc2VydCBEQVRB IGludG8gdGhlIEFWTCB0cmVlIFRSRUUuCi0KLUlmIGFuIGVsZW1lbnQgdGhhdCBtYXRjaGVzIERB VEEgKGFjY29yZGluZyB0byB0aGUgdHJlZSdzCi1jb21wYXJpc29uIGZ1bmN0aW9uLCBzZWUgYGF2 bC10cmVlLWNyZWF0ZScpIGFscmVhZHkgZXhpc3RzIGluCi1UUkVFLCBpdCB3aWxsIGJlIHJlcGxh Y2VkIGJ5IERBVEEgYnkgZGVmYXVsdC4KLQotSWYgVVBEQVRFRlVOIGlzIHN1cHBsaWVkIGFuZCBh biBlbGVtZW50IG1hdGNoaW5nIERBVEEgYWxyZWFkeQotZXhpc3RzIGluIFRSRUUsIFVQREFURUZV TiBpcyBjYWxsZWQgd2l0aCB0d28gYXJndW1lbnRzOiBEQVRBLCBhbmQKLXRoZSBtYXRjaGluZyBl bGVtZW50LiAgSXRzIHJldHVybiB2YWx1ZSByZXBsYWNlcyB0aGUgZXhpc3RpbmcKLWVsZW1lbnQu ICBUaGlzIHZhbHVlICptdXN0KiBpdHNlbGYgbWF0Y2ggREFUQSAoYW5kIGhlbmNlIHRoZQotcHJl LWV4aXN0aW5nIGRhdGEpLCBvciBhbiBlcnJvciB3aWxsIG9jY3VyLgotCi1SZXR1cm5zIHRoZSBu ZXcgZGF0YS4iCi0gIChjZHIgKGF2bC10cmVlLS1kby1lbnRlciAoYXZsLXRyZWUtLWNtcGZ1biB0 cmVlKQotCQkJICAgKGF2bC10cmVlLS1kdW1teXJvb3QgdHJlZSkKLQkJCSAgIDAgZGF0YSB1cGRh dGVmdW4pKSkKLQotKGRlZnVuIGF2bC10cmVlLWRlbGV0ZSAodHJlZSBkYXRhICZvcHRpb25hbCB0 ZXN0IG5pbGZsYWcpCi0gICJEZWxldGUgdGhlIGVsZW1lbnQgbWF0Y2hpbmcgREFUQSBmcm9tIHRo ZSBBVkwgVFJFRS4KLU1hdGNoaW5nIHVzZXMgdGhlIGNvbXBhcmlzb24gZnVuY3Rpb24gcHJldmlv dXNseSBzcGVjaWZpZWQgaW4KLWBhdmwtdHJlZS1jcmVhdGUnIHdoZW4gVFJFRSB3YXMgY3JlYXRl ZC4KLQotUmV0dXJucyB0aGUgZGVsZXRlZCBlbGVtZW50LCBvciBuaWwgaWYgbm8gbWF0Y2hpbmcg ZWxlbWVudCB3YXMKLWZvdW5kLgotCi1PcHRpb25hbCBhcmd1bWVudCBOSUxGTEFHIHNwZWNpZmll cyBhIHZhbHVlIHRvIHJldHVybiBpbnN0ZWFkIG9mCi1uaWwgaWYgbm90aGluZyB3YXMgZGVsZXRl ZCwgc28gdGhhdCB0aGlzIGNhc2UgY2FuIGJlCi1kaXN0aW5ndWlzaGVkIGZyb20gdGhlIGNhc2Ug b2YgYSBzdWNjZXNzZnVsbHkgZGVsZXRlZCBudWxsCi1lbGVtZW50LgotCi1JZiBzdXBwbGllZCwg VEVTVCBzcGVjaWZpZXMgYSB0ZXN0IHRoYXQgYSBtYXRjaGluZyBlbGVtZW50IG11c3QKLXBhc3Mg YmVmb3JlIGl0IGlzIGRlbGV0ZWQuICBJZiBhIG1hdGNoaW5nIGVsZW1lbnQgaXMgZm91bmQsIGl0 IGlzCi1wYXNzZWQgYXMgYW4gYXJndW1lbnQgdG8gVEVTVCwgYW5kIGlzIGRlbGV0ZWQgb25seSBp ZiB0aGUgcmV0dXJuCi12YWx1ZSBpcyBub24tbmlsLiIKLSAgKGNkciAoYXZsLXRyZWUtLWRvLWRl bGV0ZSAoYXZsLXRyZWUtLWNtcGZ1biB0cmVlKQotCQkJICAgIChhdmwtdHJlZS0tZHVtbXlyb290 IHRyZWUpCi0JCQkgICAgMCBkYXRhIHRlc3QgbmlsZmxhZykpKQotCi0KLShkZWZ1biBhdmwtdHJl ZS1tZW1iZXIgKHRyZWUgZGF0YSAmb3B0aW9uYWwgbmlsZmxhZykKLSAgIlJldHVybiB0aGUgZWxl bWVudCBpbiB0aGUgQVZMIFRSRUUgd2hpY2ggbWF0Y2hlcyBEQVRBLgotTWF0Y2hpbmcgdXNlcyB0 aGUgY29tcGFyaXNvbiBmdW5jdGlvbiBwcmV2aW91c2x5IHNwZWNpZmllZCBpbgotYGF2bC10cmVl LWNyZWF0ZScgd2hlbiBUUkVFIHdhcyBjcmVhdGVkLgotCi1JZiB0aGVyZSBpcyBubyBzdWNoIGVs ZW1lbnQgaW4gdGhlIHRyZWUsIG5pbCBpcyByZXR1cm5lZC4KLU9wdGlvbmFsIGFyZ3VtZW50IE5J TEZMQUcgc3BlY2lmaWVzIGEgdmFsdWUgdG8gcmV0dXJuIGluc3RlYWQgb2YgbmlsCi1pbiB0aGlz IGNhc2UuICBUaGlzIGFsbG93cyBub24tZXhpc3RlbnQgZWxlbWVudHMgdG8gYmUgZGlzdGluZ3Vp c2hlZAotZnJvbSBhIG51bGwgZWxlbWVudC4gIChTZWUgYWxzbyBgYXZsLXRyZWUtbWVtYmVyLXAn LCB3aGljaCBkb2VzIHRoaXMKLWZvciB5b3UuKSIKLSAgKGxldCAoKG5vZGUgKGF2bC10cmVlLS1y b290IHRyZWUpKQotCShjb21wYXJlLWZ1bmN0aW9uIChhdmwtdHJlZS0tY21wZnVuIHRyZWUpKSkK LSAgICAoY2F0Y2ggJ2ZvdW5kCi0gICAgICAod2hpbGUgbm9kZQotCShjb25kCi0JICgoZnVuY2Fs bCBjb21wYXJlLWZ1bmN0aW9uIGRhdGEgKGF2bC10cmVlLS1ub2RlLWRhdGEgbm9kZSkpCi0JICAo c2V0cSBub2RlIChhdmwtdHJlZS0tbm9kZS1sZWZ0IG5vZGUpKSkKLQkgKChmdW5jYWxsIGNvbXBh cmUtZnVuY3Rpb24gKGF2bC10cmVlLS1ub2RlLWRhdGEgbm9kZSkgZGF0YSkKLQkgIChzZXRxIG5v ZGUgKGF2bC10cmVlLS1ub2RlLXJpZ2h0IG5vZGUpKSkKLQkgKHQgKHRocm93ICdmb3VuZCAoYXZs LXRyZWUtLW5vZGUtZGF0YSBub2RlKSkpKSkKLSAgICAgIG5pbGZsYWcpKSkKLQotCi0oZGVmdW4g YXZsLXRyZWUtbWVtYmVyLXAgKHRyZWUgZGF0YSkKLSAgIlJldHVybiB0IGlmIGFuIGVsZW1lbnQg bWF0Y2hpbmcgREFUQSBleGlzdHMgaW4gdGhlIEFWTCBUUkVFLgotT3RoZXJ3aXNlIHJldHVybiBu aWwuICBNYXRjaGluZyB1c2VzIHRoZSBjb21wYXJpc29uIGZ1bmN0aW9uCi1wcmV2aW91c2x5IHNw ZWNpZmllZCBpbiBgYXZsLXRyZWUtY3JlYXRlJyB3aGVuIFRSRUUgd2FzIGNyZWF0ZWQuIgotICAo bGV0ICgoZmxhZyAnKG5pbCkpKQotICAgIChub3QgKGVxIChhdmwtdHJlZS1tZW1iZXIgdHJlZSBk YXRhIGZsYWcpIGZsYWcpKSkpCi0KLQotKGRlZnVuIGF2bC10cmVlLW1hcCAoZnVuIHRyZWUgJm9w dGlvbmFsIHJldmVyc2UpCi0gICJNb2RpZnkgYWxsIGVsZW1lbnRzIGluIHRoZSBBVkwgVFJFRSBi eSBhcHBseWluZyBmdW5jdGlvbiBGVU4uCi0KLUVhY2ggZWxlbWVudCBpcyByZXBsYWNlZCBieSB0 aGUgcmV0dXJuIHZhbHVlIG9mIEZVTiBhcHBsaWVkIHRvCi10aGF0IGVsZW1lbnQuCi0KLUZVTiBp cyBhcHBsaWVkIHRvIHRoZSBlbGVtZW50cyBpbiBhc2NlbmRpbmcgb3JkZXIsIG9yIGRlc2NlbmRp bmcKLW9yZGVyIGlmIFJFVkVSU0UgaXMgbm9uLW5pbC4iCi0gIChhdmwtdHJlZS0tbWFwYwotICAg KGxhbWJkYSAobm9kZSkKLSAgICAgKHNldGYgKGF2bC10cmVlLS1ub2RlLWRhdGEgbm9kZSkKLSAg ICAgICAgICAgKGZ1bmNhbGwgZnVuIChhdmwtdHJlZS0tbm9kZS1kYXRhIG5vZGUpKSkpCi0gICAo YXZsLXRyZWUtLXJvb3QgdHJlZSkKLSAgIChpZiByZXZlcnNlIDEgMCkpKQotCi0KLShkZWZ1biBh dmwtdHJlZS1tYXBjIChmdW4gdHJlZSAmb3B0aW9uYWwgcmV2ZXJzZSkKLSAgIkFwcGx5IGZ1bmN0 aW9uIEZVTiB0byBhbGwgZWxlbWVudHMgaW4gQVZMIFRSRUUsIGZvciBzaWRlLWVmZmVjdCBvbmx5 LgotCi1GVU5DVElPTiBpcyBhcHBsaWVkIHRvIHRoZSBlbGVtZW50cyBpbiBhc2NlbmRpbmcgb3Jk ZXIsIG9yCi1kZXNjZW5kaW5nIG9yZGVyIGlmIFJFVkVSU0UgaXMgbm9uLW5pbC4iCi0gIChhdmwt dHJlZS0tbWFwYwotICAgKGxhbWJkYSAobm9kZSkKLSAgICAgKGZ1bmNhbGwgZnVuIChhdmwtdHJl ZS0tbm9kZS1kYXRhIG5vZGUpKSkKLSAgIChhdmwtdHJlZS0tcm9vdCB0cmVlKQotICAgKGlmIHJl dmVyc2UgMSAwKSkpCi0KLQotKGRlZnVuIGF2bC10cmVlLW1hcGYKLSAgKGZ1biBjb21iaW5hdG9y IHRyZWUgJm9wdGlvbmFsIHJldmVyc2UpCi0gICJBcHBseSBGVU4gdG8gYWxsIGVsZW1lbnRzIGlu IEFWTCBUUkVFLCBjb21iaW5lIHJlc3VsdHMgdXNpbmcgQ09NQklOQVRPUi4KLQotVGhlIEZVTkNU SU9OIGlzIGFwcGxpZWQgYW5kIHRoZSByZXN1bHRzIGFyZSBjb21iaW5lZCBpbiBhc2NlbmRpbmcK LW9yZGVyLCBvciBkZXNjZW5kaW5nIG9yZGVyIGlmIFJFVkVSU0UgaXMgbm9uLW5pbC4iCi0gIChs ZXQgKGF2bC10cmVlLW1hcGYtLWFjY3VtdWxhdGUpCi0gICAgKGF2bC10cmVlLS1tYXBjCi0gICAg IChsYW1iZGEgKG5vZGUpCi0gICAgICAgKHNldHEgYXZsLXRyZWUtbWFwZi0tYWNjdW11bGF0ZQot CSAgICAgKGZ1bmNhbGwgY29tYmluYXRvcgotCQkgICAgICAoZnVuY2FsbCBmdW4KLQkJCSAgICAg ICAoYXZsLXRyZWUtLW5vZGUtZGF0YSBub2RlKSkKLQkJICAgICAgYXZsLXRyZWUtbWFwZi0tYWNj dW11bGF0ZSkpKQotICAgICAoYXZsLXRyZWUtLXJvb3QgdHJlZSkKLSAgICAgKGlmIHJldmVyc2Ug MCAxKSkKLSAgICAobnJldmVyc2UgYXZsLXRyZWUtbWFwZi0tYWNjdW11bGF0ZSkpKQotCi0KLShk ZWZ1biBhdmwtdHJlZS1tYXBjYXIgKGZ1biB0cmVlICZvcHRpb25hbCByZXZlcnNlKQotICAiQXBw bHkgRlVOIHRvIGFsbCBlbGVtZW50cyBpbiBBVkwgVFJFRSwgYW5kIG1ha2UgYSBsaXN0IG9mIHRo ZSByZXN1bHRzLgotCi1UaGUgZnVuY3Rpb24gaXMgYXBwbGllZCBhbmQgdGhlIGxpc3QgY29uc3Ry dWN0ZWQgaW4gYXNjZW5kaW5nCi1vcmRlciwgb3IgZGVzY2VuZGluZyBvcmRlciBpZiBSRVZFUlNF IGlzIG5vbi1uaWwuCi0KLU5vdGUgdGhhdCBpZiB5b3UgZG9uJ3QgY2FyZSBhYm91dCB0aGUgb3Jk ZXIgaW4gd2hpY2ggRlVOIGlzCi1hcHBsaWVkLCBqdXN0IHRoYXQgdGhlIHJlc3VsdGluZyBsaXN0 IGlzIGluIHRoZSBjb3JyZWN0IG9yZGVyLAotdGhlbgotCi0gIChhdmwtdHJlZS1tYXBmIGZ1bmN0 aW9uIFxcPSdjb25zIHRyZWUgKG5vdCByZXZlcnNlKSkKLQotaXMgbW9yZSBlZmZpY2llbnQuIgot ICAobnJldmVyc2UgKGF2bC10cmVlLW1hcGYgZnVuICdjb25zIHRyZWUgcmV2ZXJzZSkpKQotCi0K LShkZWZ1biBhdmwtdHJlZS1maXJzdCAodHJlZSkKLSAgIlJldHVybiB0aGUgZmlyc3QgZWxlbWVu dCBpbiBUUkVFLCBvciBuaWwgaWYgVFJFRSBpcyBlbXB0eS4iCi0gIChsZXQgKChub2RlIChhdmwt dHJlZS0tcm9vdCB0cmVlKSkpCi0gICAgKHdoZW4gbm9kZQotICAgICAgKHdoaWxlIChhdmwtdHJl ZS0tbm9kZS1sZWZ0IG5vZGUpCi0gICAgICAgIChzZXRxIG5vZGUgKGF2bC10cmVlLS1ub2RlLWxl ZnQgbm9kZSkpKQotICAgICAgKGF2bC10cmVlLS1ub2RlLWRhdGEgbm9kZSkpKSkKLQotKGRlZnVu IGF2bC10cmVlLWxhc3QgKHRyZWUpCi0gICJSZXR1cm4gdGhlIGxhc3QgZWxlbWVudCBpbiBUUkVF LCBvciBuaWwgaWYgVFJFRSBpcyBlbXB0eS4iCi0gIChsZXQgKChub2RlIChhdmwtdHJlZS0tcm9v dCB0cmVlKSkpCi0gICAgKHdoZW4gbm9kZQotICAgICAgKHdoaWxlIChhdmwtdHJlZS0tbm9kZS1y aWdodCBub2RlKQotICAgICAgICAoc2V0cSBub2RlIChhdmwtdHJlZS0tbm9kZS1yaWdodCBub2Rl KSkpCi0gICAgICAoYXZsLXRyZWUtLW5vZGUtZGF0YSBub2RlKSkpKQotCi0oZGVmdW4gYXZsLXRy ZWUtY29weSAodHJlZSkKLSAgIlJldHVybiBhIGNvcHkgb2YgdGhlIEFWTCBUUkVFLiIKLSAgKGxl dCAoKG5ldy10cmVlIChhdmwtdHJlZS1jcmVhdGUgKGF2bC10cmVlLS1jbXBmdW4gdHJlZSkpKSkK LSAgICAoc2V0ZiAoYXZsLXRyZWUtLXJvb3QgbmV3LXRyZWUpIChhdmwtdHJlZS0tZG8tY29weSAo YXZsLXRyZWUtLXJvb3QgdHJlZSkpKQotICAgIG5ldy10cmVlKSkKLQotKGRlZnVuIGF2bC10cmVl LWZsYXR0ZW4gKHRyZWUpCi0gICJSZXR1cm4gYSBzb3J0ZWQgbGlzdCBjb250YWluaW5nIGFsbCBl bGVtZW50cyBvZiBUUkVFLiIKLSAgIChsZXQgKCh0cmVlbGlzdCBuaWwpKQotICAgICAoYXZsLXRy ZWUtLW1hcGMKLSAgICAgIChsYW1iZGEgKG5vZGUpIChwdXNoIChhdmwtdHJlZS0tbm9kZS1kYXRh IG5vZGUpIHRyZWVsaXN0KSkKLSAgICAgIChhdmwtdHJlZS0tcm9vdCB0cmVlKSAxKQotICAgICB0 cmVlbGlzdCkpCi0KLShkZWZ1biBhdmwtdHJlZS1zaXplICh0cmVlKQotICAiUmV0dXJuIHRoZSBu dW1iZXIgb2YgZWxlbWVudHMgaW4gVFJFRS4iCi0gIChsZXQgKCh0cmVlc2l6ZSAwKSkKLSAgICAo YXZsLXRyZWUtLW1hcGMKLSAgICAgKGxhbWJkYSAoXykgKHNldHEgdHJlZXNpemUgKDErIHRyZWVz aXplKSkpCi0gICAgIChhdmwtdHJlZS0tcm9vdCB0cmVlKSAwKQotICAgIHRyZWVzaXplKSkKLQot KGRlZnVuIGF2bC10cmVlLWNsZWFyICh0cmVlKQotICAiQ2xlYXIgdGhlIEFWTCBUUkVFLiIKLSAg KHNldGYgKGF2bC10cmVlLS1yb290IHRyZWUpIG5pbCkpCi0KLQotKGRlZnVuIGF2bC10cmVlLXN0 YWNrICh0cmVlICZvcHRpb25hbCByZXZlcnNlKQotICAiUmV0dXJuIGFuIG9iamVjdCB0aGF0IGJl aGF2ZXMgbGlrZSBhIHNvcnRlZCBzdGFjayBvZiBhbGwgZWxlbWVudHMgb2YgVFJFRS4KLQotSWYg UkVWRVJTRSBpcyBub24tbmlsLCB0aGUgc3RhY2sgaXMgc29ydGVkIGluIHJldmVyc2Ugb3JkZXIu Ci1cKFNlZSBhbHNvIGBhdmwtdHJlZS1zdGFjay1wb3AnKS4KLQotTm90ZSB0aGF0IGFueSBtb2Rp ZmljYXRpb24gdG8gVFJFRSAqaW1tZWRpYXRlbHkqIGludmFsaWRhdGVzIGFsbAotYXZsLXRyZWUt c3RhY2tzIGNyZWF0ZWQgYmVmb3JlIHRoZSBtb2RpZmljYXRpb24gKGluIHBhcnRpY3VsYXIsCi1j YWxsaW5nIGBhdmwtdHJlZS1zdGFjay1wb3AnIHdpbGwgZ2l2ZSB1bnByZWRpY3RhYmxlIHJlc3Vs dHMpLgotCi1PcGVyYXRpb25zIG9uIHRoZXNlIG9iamVjdHMgYXJlIHNpZ25pZmljYW50bHkgbW9y ZSBlZmZpY2llbnQgdGhhbgotY29uc3RydWN0aW5nIGEgcmVhbCBzdGFjayB3aXRoIGBhdmwtdHJl ZS1mbGF0dGVuJyBhbmQgdXNpbmcKLXN0YW5kYXJkIHN0YWNrIGZ1bmN0aW9ucy4gIEFzIHN1Y2gs IHRoZXkgY2FuIGJlIHVzZWZ1bCBpbgotaW1wbGVtZW50aW5nIGVmZmljaWVudCBhbGdvcml0aG1z IG9mIEFWTCB0cmVlcy4gIEhvd2V2ZXIsIGluIGNhc2VzCi13aGVyZSBtYXBwaW5nIGZ1bmN0aW9u cyBgYXZsLXRyZWUtbWFwYycsIGBhdmwtdHJlZS1tYXBjYXInIG9yCi1gYXZsLXRyZWUtbWFwZicg d291bGQgYmUgc3VmZmljaWVudCwgaXQgaXMgYmV0dGVyIHRvIHVzZSBvbmUgb2YKLXRob3NlIGlu c3RlYWQuIgotICAobGV0ICgoc3RhY2sgKGF2bC10cmVlLS1zdGFjay1jcmVhdGUgdHJlZSByZXZl cnNlKSkpCi0gICAgKGF2bC10cmVlLS1zdGFjay1yZXBvcHVsYXRlIHN0YWNrKQotICAgIHN0YWNr KSkKLQotCi0oZGVmdW4gYXZsLXRyZWUtc3RhY2stcG9wIChhdmwtdHJlZS1zdGFjayAmb3B0aW9u YWwgbmlsZmxhZykKLSAgIlBvcCB0aGUgZmlyc3QgZWxlbWVudCBmcm9tIEFWTC1UUkVFLVNUQUNL LgotXChTZWUgYWxzbyBgYXZsLXRyZWUtc3RhY2snKS4KLQotUmV0dXJucyBuaWwgaWYgdGhlIHN0 YWNrIGlzIGVtcHR5LCBvciBOSUxGTEFHIGlmIHNwZWNpZmllZC4KLVwoVGhlIGxhdHRlciBhbGxv d3MgYW4gZW1wdHkgc3RhY2sgdG8gYmUgZGlzdGluZ3Vpc2hlZCBmcm9tCi1hIG51bGwgZWxlbWVu dCBzdG9yZWQgaW4gdGhlIEFWTCB0cmVlLikiCi0gIChsZXQgKG5vZGUgbmV4dCkKLSAgICAoaWYg KG5vdCAoc2V0cSBub2RlIChwb3AgKGF2bC10cmVlLS1zdGFjay1zdG9yZSBhdmwtdHJlZS1zdGFj aykpKSkKLQluaWxmbGFnCi0gICAgICAod2hlbiAoc2V0cSBuZXh0Ci0JCSAgKGF2bC10cmVlLS1u b2RlLWJyYW5jaAotCQkgICBub2RlCi0JCSAgIChpZiAoYXZsLXRyZWUtLXN0YWNrLXJldmVyc2Ug YXZsLXRyZWUtc3RhY2spIDAgMSkpKQotCShwdXNoIG5leHQgKGF2bC10cmVlLS1zdGFjay1zdG9y ZSBhdmwtdHJlZS1zdGFjaykpCi0JKGF2bC10cmVlLS1zdGFjay1yZXBvcHVsYXRlIGF2bC10cmVl LXN0YWNrKSkKLSAgICAgIChhdmwtdHJlZS0tbm9kZS1kYXRhIG5vZGUpKSkpCi0KLQotKGRlZnVu IGF2bC10cmVlLXN0YWNrLWZpcnN0IChhdmwtdHJlZS1zdGFjayAmb3B0aW9uYWwgbmlsZmxhZykK LSAgIlJldHVybiB0aGUgZmlyc3QgZWxlbWVudCBvZiBBVkwtVFJFRS1TVEFDSywgd2l0aG91dCBy ZW1vdmluZyBpdCBmcm9tIHN0YWNrLgotCi1SZXR1cm5zIG5pbCBpZiB0aGUgc3RhY2sgaXMgZW1w dHksIG9yIE5JTEZMQUcgaWYgc3BlY2lmaWVkLgotXChUaGUgbGF0dGVyIGFsbG93cyBhbiBlbXB0 eSBzdGFjayB0byBiZSBkaXN0aW5ndWlzaGVkIGZyb20KLWEgbnVsbCBlbGVtZW50IHN0b3JlZCBp biB0aGUgQVZMIHRyZWUuKSIKLSAgKG9yIChjYXIgKGF2bC10cmVlLS1zdGFjay1zdG9yZSBhdmwt dHJlZS1zdGFjaykpCi0gICAgICBuaWxmbGFnKSkKLQotCi0oZGVmdW4gYXZsLXRyZWUtc3RhY2st ZW1wdHktcCAoYXZsLXRyZWUtc3RhY2spCi0gICJSZXR1cm4gdCBpZiBBVkwtVFJFRS1TVEFDSyBp cyBlbXB0eSwgbmlsIG90aGVyd2lzZS4iCi0gIChudWxsIChhdmwtdHJlZS0tc3RhY2stc3RvcmUg YXZsLXRyZWUtc3RhY2spKSkKLQogCiAoaXRlci1kZWZ1biBhdmwtdHJlZS1pdGVyICh0cmVlICZv cHRpb25hbCByZXZlcnNlKQogICAiUmV0dXJuIGFuIEFWTCB0cmVlIGl0ZXJhdG9yIG9iamVjdC4K ZGlmZiAtLWdpdCBhL2xpc3AvZW1hY3MtbGlzcC90cmFuc2l0aXZlLWNsb3N1cmUuZWwgYi9saXNw L2VtYWNzLWxpc3AvdHJhbnNpdGl2ZS1jbG9zdXJlLmVsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi40OGM0ODE3YzUyNwotLS0gL2Rldi9udWxsCisrKyBiL2xpc3AvZW1h Y3MtbGlzcC90cmFuc2l0aXZlLWNsb3N1cmUuZWwKQEAgLTAsMCArMSw1NDMgQEAKKzs7OyB0cmFu c2l0aXZlLWNsb3N1cmUuZWwgLSotIGxleGljYWwtYmluZGluZzogdCAtKi0KKzs7OyBFZmZpY2ll bnQgaW1wbGVtZW50YXRpb24gb2YgdHJhbnNpdGl2ZSBjbG9zdXJlIG9uIGEgZ3JhcGggb2Ygc3lt Ym9scworOzs7ICBCYXNlZCBvbiBOdXV0aWxhJ3MgdGhlc2lzIC0gaHR0cHM6Ly93d3cuY3MuaHV0 LmZpL35lbnUvdGhlc2lzLnBkZiwgcGFnZSA2MgorOzs7IEludGVyZmFjZQorOzs7ICh0Yy10cmFu c2l0aXZlLWNsb3N1cmUgbm9kZXMgZWRnZXMpID0+IHRjLS1ncmFwaCBzdHJ1Y3R1cmVzCis7Ozsg KHRjLWdyYXBoLXNjYyB0Yy0tZ3JhcGggbm9kZSkgPT4gdGhlIGVxdWl2YWxlbmNlIGNsYXNzIG9m IG5vZGVzIGZvciBub2RlCis7OzsgKHRjLWdyYXBoLXN1Y2Nlc3NvcnMgdGMtZ3JhcGggbm9kZSkg PT4gbGlzdCBvZiBub2RlcyByZWFjaGFibGUgZnJvbSBub2RlCis7OzsgKHRjLWdyYXBoLW9yZGVy aW5nIHRjLWdyYXBoKSA9PgorOzs7ICAgICBhcnJheSBvZiBsaXN0cyBvZiBub2RlcyBjb25zaXN0 ZW50IHdpdGggcGFydGlhbCBvcmRlcmluZworOzs7ICAgICBpLmUgbm9kZXMgaW4gbGlzdCAwIGhh dmUgbm8gZGVwZW5kZW5jaWVzCis7OzsgICAgICAgICBub2RlcyBpbiBsaXN0IDEgb25seSBoYXZl IGRlcGVuZGVuY2llcyBpbiBsaXN0IDAKKzs7OyAgICAgICAgIG5vZGVzIGluIGxpc3QgMiBvbmx5 IGhhdmUgZGVwZW5kZW5jaWVzIGluIGxpc3QgMCBvciAxCis7OzsgICAgICAgICBldGMuCisKKyhl dmFsLXdoZW4tY29tcGlsZSAocmVxdWlyZSAnY2wtbGliKSkKKyhldmFsLXdoZW4tY29tcGlsZSAo cmVxdWlyZSAnY2wtbWFjcykpCisocmVxdWlyZSAnYXZsLXRyZWUtY29yZSkKKworKGNsLWRlZnN0 cnVjdCB0Yy0tZ3JhcGgKKyAgbm9kZXMgZWRnZXMgcm9vdHMgcmVhY2hhYmxlIG5vZGUtPmlkeCBu b2RlLW9yZGVyaW5nCisgIGlkeC0+bm9kZSBpZHgtPnNjYyBpZHgtPnN1Y2Nlc3NvcnMKKyAgc2Nj LWVkZ2VzIHNjYy0+b3JkZXIgc2NjLW9yZGVyaW5nCisgIHNjYy0+cmVwIHNjYy0+bm9kZXMgc2Nj LT5zdWNjcykKKworKGRlZnZhciB0Yy0tZWRnZXMgbmlsKQorKGRlZnZhciB0Yy0tbm9kZXMgbmls KQorKGRlZnZhciB0Yy0tcm9vdHMgbmlsKQorKGRlZnZhciB0Yy0tc2l6ZS1ub2RlcyBuaWwpCiso ZGVmdmFyIHRjLS1ub2RlLT5pZHggbmlsKQorKGRlZnZhciB0Yy0taWR4LT52aXNpdGVkIG5pbCkK KyhkZWZ2YXIgdGMtLWlkeC0+bm9kZSBuaWwpCisoZGVmdmFyIHRjLS1pZHgtPnJvb3QgbmlsKQor KGRlZnZhciB0Yy0taWR4LT5zZWxmLWVkZ2UgbmlsKQorKGRlZnZhciB0Yy0taWR4LT5oZWlnaHQg bmlsKQorKGRlZnZhciB0Yy0taWR4LT5zY2MgbmlsKQorKGRlZnZhciB0Yy0taWR4LT5zdWNjZXNz b3JzIG5pbCkKKyhkZWZ2YXIgdGMtLXNjYy0+cmVwIG5pbCkKKyhkZWZ2YXIgdGMtLXNjY3Mgbmls KQorKGRlZnZhciB0Yy0tc2NjLWVkZ2VzIG5pbCkKKyhkZWZ2YXIgdGMtLXNjYy0+bm9kZXMgbmls KQorKGRlZnZhciB0Yy0tdmlzaXQtaWR4IG5pbCkKKyhkZWZ2YXIgdGMtLWNzdGFjayBuaWwpCiso ZGVmdmFyIHRjLS12c3RhY2sgbmlsKQorKGRlZnZhciB0Yy0taWR4IG5pbCkKKyhkZWZ2YXIgdGMt LXJvb3QgbmlsKQorKGRlZnZhciB0Yy0tc2NjLT5zY2Mtbm9kZSBuaWwpCisoZGVmdmFyIHRjLS1z Y2MtPnN1Y2Nlc3NvcnMgbmlsKQorKGRlZnZhciB0Yy0tc2NjLWNvdW50IG5pbCkKKyhkZWZ2YXIg dGMtLWNzdGFjay1oZWlnaHQgbmlsKQorKGRlZnZhciB0Yy0tc2NjLXN1Y2NzIG5pbCkKKyhkZWZ2 YXIgdGMtLXNjYy1zdWNjLWdlbnMgbmlsKQorKGRlZnZhciB0Yy0tc2NjLT5ub2RlLXN1Y2Nlc3Nv ci1zZXRzIG5pbCkKKyhkZWZ2YXIgdGMtLXNjYy0+b3JkZXIgbmlsKQorKGRlZnZhciB0Yy0tc2Nj LW9yZGVyaW5nIG5pbCkKKyhkZWZ2YXIgdGMtLXJlYWNoYWJsZS1ub2RlcyBuaWwpCisKKzs7OyAg bm9kZXMgaXMgYSBsaXN0IG9mIHN5bWJvbHMKKzs7OyAgZWRnZXMgaXMgYW4gYWxpc3Qgc3BlY2lm eWluZyBkaXJlY3RlZCBncmFwaCBlZGdlcyBmcm9tIGVhY2ggbm9kZQorCisoZGVmdW4gdGMtLWlu aXQgKG5vZGVzIGVkZ2VzIHJvb3RzKQorICAiSW5pdGlhbGl6ZSBzdGF0ZSB2YXJpYWJsZXMgZm9y IHRyYW5zaXRpdmUgY2xvc3VyZSBjYWxjdWxhdGlvbiIKKyAgKHNldHEgdGMtLWVkZ2VzIGVkZ2Vz CisgICAgICAgIHRjLS1ub2RlcyBub2RlcworICAgICAgICB0Yy0tcm9vdHMgcm9vdHMKKyAgICAg ICAgdGMtLXNpemUtbm9kZXMgKGxlbmd0aCB0Yy0tbm9kZXMpCisgICAgICAgIHRjLS1yZWFjaGFi bGUtbm9kZXMgbmlsCisgICAgICAgIHRjLS1pZHgtPm5vZGUgKG1ha2UtdmVjdG9yIHRjLS1zaXpl LW5vZGVzIG5pbCkKKyAgICAgICAgdGMtLW5vZGUtPmlkeCAobWFrZS1oYXNoLXRhYmxlIDpzaXpl IHRjLS1zaXplLW5vZGVzKSkKKyAgKGxldCAoKGxzIG5vZGVzKQorICAgICAgICAoaSAwKQorICAg ICAgICAodiBuaWwpKQorICAgICh3aGlsZSBscworICAgICAgKHNldHEgdiAocG9wIGxzKSkKKyAg ICAgIChwdXRoYXNoIHYgaSB0Yy0tbm9kZS0+aWR4KQorICAgICAgKGFzZXQgdGMtLWlkeC0+bm9k ZSBpIHYpCisgICAgICAoc2V0cSBpICgxKyBpKSkpKQorICAoc2V0cSB0Yy0taWR4LT52aXNpdGVk IChtYWtlLXZlY3RvciB0Yy0tc2l6ZS1ub2RlcyBuaWwpCisgICAgICAgIHRjLS1pZHgtPnJvb3Qg KG1ha2UtdmVjdG9yIHRjLS1zaXplLW5vZGVzIG5pbCkKKyAgICAgICAgdGMtLWlkeC0+c2VsZi1l ZGdlIChtYWtlLXZlY3RvciB0Yy0tc2l6ZS1ub2RlcyBuaWwpCisgICAgICAgIHRjLS1pZHgtPnNj YyAobWFrZS12ZWN0b3IgdGMtLXNpemUtbm9kZXMgbmlsKQorICAgICAgICB0Yy0taWR4LT5oZWln aHQgKG1ha2UtdmVjdG9yIHRjLS1zaXplLW5vZGVzIG5pbCkKKyAgICAgICAgdGMtLXNjY3MgKG1h a2UtdmVjdG9yIHRjLS1zaXplLW5vZGVzIG5pbCkKKyAgICAgICAgdGMtLXNjYy0+cmVwIChtYWtl LXZlY3RvciB0Yy0tc2l6ZS1ub2RlcyBuaWwpCisgICAgICAgIHRjLS1zY2MtZWRnZXMgbmlsCisg ICAgICAgIHRjLS1pZHgtPnN1Y2Nlc3NvcnMgKG1ha2UtdmVjdG9yIChsZW5ndGggdGMtLW5vZGVz KSBuaWwpCisgICAgICAgIHRjLS1zY2MtPm5vZGUtc3VjY2Vzc29yLXNldHMgbmlsCisgICAgICAg IDs7IHRoaXMgaXMgd2FzdGVmdWwgb2Ygc3BhY2UsIGJ1dCBhIGNvbnZlbmllbnQgbWV0aG9kIGZv ciBjcmVhdGluZworICAgICAgICA7OyBjb21wb25lbnQgbm9kZXMKKyAgICAgICAgdGMtLXNjYy0+ c2NjLW5vZGUgKG1ha2UtdmVjdG9yIChsZW5ndGggdGMtLW5vZGVzKSBuaWwpCisgICAgICAgIHRj LS1zY2MtPnN1Y2Nlc3NvcnMgKG1ha2UtdmVjdG9yIChsZW5ndGggdGMtLW5vZGVzKSBuaWwpCisg ICAgICAgIHRjLS1zY2MtPm9yZGVyIChtYWtlLXZlY3RvciAobGVuZ3RoIHRjLS1ub2RlcykgLTEp CisgICAgICAgIHRjLS1zY2Mtb3JkZXJpbmcgbmlsCisgICAgICAgIHRjLS1zY2MtY291bnQgMAor ICAgICAgICB0Yy0tY3N0YWNrIG5pbAorICAgICAgICB0Yy0tdnN0YWNrIG5pbAorICAgICAgICB0 Yy0tdmlzaXQtaWR4IDAKKyAgICAgICAgdGMtLWNzdGFjay1oZWlnaHQgMAorICAgICAgICB0Yy0t c2NjLXN1Y2NzIChtYWtlLWJvb2wtdmVjdG9yIChsZW5ndGggdGMtLW5vZGVzKSBuaWwpCisgICAg ICAgIHRjLS1zY2Mtc3VjYy1nZW5zIChtYWtlLWJvb2wtdmVjdG9yIChsZW5ndGggdGMtLW5vZGVz KSBuaWwpKSkKKworKGRlZnVuIHRjLS1nZXQtbm9kZS1pbmRleCAodikKKyAgKGdldGhhc2ggdiB0 Yy0tbm9kZS0+aWR4KSkKKyhkZWZ1biB0Yy0tbWFrZS1zY2Mtc2V0ICgpCisgIChhdmwtdHJlZS1j cmVhdGUgIyc8KSkKKyhkZWZ1biB0Yy0tc2NjLTwgKGEgYikKKyAgKGFuZCAoYXZsLXRyZWUtbWVt YmVyLXAKKyAgICAgICAgKGFyZWYgdGMtLXNjYy0+c3VjY2Vzc29ycyBhKQorICAgICAgICBiKQor ICAgICAgICgvPSBhIGIpKSkKKyhkZWZ1biB0Yy0tc2NjLTw9IChhIGIpCisgIChvciAoPSBhIGIp CisgICAgICAoYXZsLXRyZWUtbWVtYmVyLXAKKyAgICAgICAoYXJlZiB0Yy0tc2NjLT5zdWNjZXNz b3JzIGEpCisgICAgICAgYikpKQorCisoZGVmdW4gdGMtLXNjYy1zZXQtbnVsbCAoc3MpCisgIChh dmwtdHJlZS1lbXB0eSBzcykpCisoZGVmdW4gdGMtLXNjYy1zZXQtbWVtYmVyIChlbHQgc3MpCisg IChhdmwtdHJlZS1tZW1iZXItcCBzcyBlbHQpKQorKGRlZnVuIHRjLS1zY2Mtc2V0LWRlbCAoZWx0 IHNzKQorICAoYXZsLXRyZWUtZGVsZXRlIHNzIGVsdCkKKyAgc3MpCisoZGVmdW4gdGMtLXNjYy1z ZXQtYWRkIChlbHQgc3MpCisgIChhdmwtdHJlZS1lbnRlciBzcyBlbHQpCisgIHNzKQorKGRlZnVu IHRjLS1zY2Mtc2V0LT5saXN0IChzcykKKyAgKGF2bC10cmVlLWZsYXR0ZW4gc3MpKQorKGRlZnVu IHRjLS1zY2Mtc2V0LXNlcSAoc3MpCisgIChhdmwtdHJlZS1zdGFjayBzcykpCisoZGVmdW4gdGMt LXNjYy1zZXQtc2VxLW51bGwgKHNzKQorICAoYXZsLXRyZWUtc3RhY2stZW1wdHktcCBzcykpCiso ZGVmdW4gdGMtLXNjYy1zZXQtc2VxLWZpcnN0IChzcykKKyAgKGF2bC10cmVlLXN0YWNrLWZpcnN0 IHNzKSkKKyhkZWZ1biB0Yy0tc2NjLXNldC1zZXEtcG9wIChzcykKKyAgKGF2bC10cmVlLXN0YWNr LXBvcCBzcykpCisoZGVmdW4gdGMtLXNjYy1zZXQtbWFwY2FyIChmIHNzKQorICAoYXZsLXRyZWUt bWFwY2FyIGYgc3MpKQorKGRlZnVuIHRjLS1zY2Mtc2V0LW1hcGNhbiAoZiBzcykKKyAgKGFwcGx5 ICMnbmNvbmMgKGF2bC10cmVlLW1hcGNhciBmIHNzKSkpCisoZGVmdW4gdGMtLXNjYy1zZXQtbWFw YyAoZiBzcykKKyAgKGF2bC10cmVlLW1hcGMgZiBzcykpCisKKyhkZWZ1biB0Yy0tc2NjLXNldC11 bmlvbiAoc3MwICZyZXN0IHNzLXJlc3QpCisgIChsZXQgKChhY2MgKGF2bC10cmVlLWNvcHkgc3Mw KSkKKyAgICAgICAgaWR4cykKKyAgICAod2hpbGUgc3MtcmVzdAorICAgICAgKHNldHEgaWR4cyAo dGMtLXNjYy1zZXQtc2VxIChjYXIgc3MtcmVzdCkpKQorICAgICAgKHNldHEgc3MtcmVzdCAoY2Ry IHNzLXJlc3QpKQorICAgICAgKHdoaWxlIChub3QgKHRjLS1zY2Mtc2V0LXNlcS1udWxsIGlkeHMp KQorICAgICAgICAodGMtLXNjYy1zZXQtYWRkICh0Yy0tc2NjLXNldC1zZXEtcG9wIGlkeHMpCisg ICAgICAgICAgICAgICAgICAgICAgICAgYWNjKSkpCisgICAgYWNjKSkKKworKGRlZnVuIHRjLS1z Y2Mtc2V0LXVuaW9uLWFjY3VtdWxhdGUgKGFjYyBzczEpCisgIChsZXQgKChpZHhzICh0Yy0tc2Nj LXNldC1zZXEgc3MxKSkpCisgICAgKHdoaWxlIChub3QgKHRjLS1zY2Mtc2V0LXNlcS1udWxsIGlk eHMpKQorICAgICAgKHRjLS1zY2Mtc2V0LWFkZCAodGMtLXNjYy1zZXQtc2VxLXBvcCBpZHhzKQor ICAgICAgICAgICAgICAgICAgICAgICBhY2MpKSkKKyAgYWNjKQorCisKKyhkZWZ1biB0Yy0tYWRk LXRvLW1lZXQtZ2VuZXJhdG9ycyAoZCBnZW5zKQorICAobGV0ICgoZ3MgKHRjLS1zY2Mtc2V0LXNl cSBnZW5zKSkKKyAgICAgICAgKHRvLXJlbW92ZSBuaWwpKQorICAgICh3aGlsZSAoYW5kICg+IGQg LTEpIChub3QgKHRjLS1zY2Mtc2V0LXNlcS1udWxsIGdzKSkpCisgICAgICAobGV0ICgodSAodGMt LXNjYy1zZXQtc2VxLXBvcCBncykpKQorICAgICAgICAoY29uZAorICAgICAgICAgKCh0Yy0tc2Nj LTw9IHUgZCkgIChzZXRxIGQgLTEpKQorICAgICAgICAgKCh0Yy0tc2NjLTwgZCB1KSAgIChwdXNo IHUgdG8tcmVtb3ZlKSkpKSkKKyAgICAod2hlbiAoYW5kICg8IGQgMCkKKyAgICAgICAgICAgICAg IHRvLXJlbW92ZSkKKyAgICAgIChlcnJvciAiVHJhbnNpdGl2ZSBjbG9zdXJlOiBJbmNvbnNpc3Rl bnQgdG9wb2xvZ2ljYWwgc29ydGVkIHN1Y2Nlc3NvciBjb21wb25lbnRzIikpCisgICAgKHdoZW4g dG8tcmVtb3ZlCisgICAgICAobWFwYyAobGFtYmRhICh4KSAodGMtLXNjYy1zZXQtZGVsIHggZ2Vu cykpIHRvLXJlbW92ZSkpCisgICAgKHdoZW4gKD49IGQgMCkKKyAgICAgICh0Yy0tc2NjLXNldC1h ZGQgZCBnZW5zKSkpCisgIGdlbnMpCisKKyhkZWZ1biB0Yy0tc3RhY2stdGMtdmlzaXQgKHYgdi1p ZHggdi12aXNpdGVkIHcpCisgIChpZiAoZXEgdyB2KQorICAgICAgKGFzZXQgdGMtLWlkeC0+c2Vs Zi1lZGdlIHYtaWR4IHQpCisgICAgKGxldCAoKHctaWR4ICh0Yy0tZ2V0LW5vZGUtaW5kZXggdykp CisgICAgICAgICAgZndkLWVkZ2Ugdy12aXNpdGVkKQorICAgICAgOzsgdiAtPiB3IGlzIGEgZm9y d2FyZCBlZGdlIGlmCisgICAgICA7OyAgICAoYSkgdyBoYXMgYWxyZWFkeSBiZWVuIHZpc2l0ZWQs IGFuZAorICAgICAgOzsgICAgKGIpIHYgaXMgdmlzaXRlZCBiZWZvcmUgdworICAgICAgKHNldHEg dy12aXNpdGVkIChhcmVmIHRjLS1pZHgtPnZpc2l0ZWQgdy1pZHgpKQorICAgICAgKHdoZW4gKGFu ZCB3LXZpc2l0ZWQKKyAgICAgICAgICAgICAgICAgKDwgdi12aXNpdGVkIHctdmlzaXRlZCkpCisg ICAgICAgIChzZXRxIGZ3ZC1lZGdlIHQpKQorICAgICAgKHVubGVzcyB3LXZpc2l0ZWQKKyAgICAg ICAgKHRjLS1zdGFjay10YyB3IHctaWR4KQorICAgICAgICAoc2V0cSB3LXZpc2l0ZWQgKGFyZWYg dGMtLWlkeC0+dmlzaXRlZCB3LWlkeCkpKQorICAgICAgKGxldCAoKHctc2NjIChhcmVmIHRjLS1p ZHgtPnNjYyB3LWlkeCkpKQorICAgICAgICAoY29uZAorICAgICAgICAgKChudWxsIHctc2NjKQor ICAgICAgICAgIChhc2V0IHRjLS1pZHgtPnJvb3Qgdi1pZHgKKyAgICAgICAgICAgICAgICAobWlu IChhcmVmIHRjLS1pZHgtPnJvb3Qgdi1pZHgpCisgICAgICAgICAgICAgICAgICAgICAoYXJlZiB0 Yy0taWR4LT5yb290IHctaWR4KSkpKQorICAgICAgICAgKChub3QgZndkLWVkZ2UpCisgICAgICAg ICAgKHB1c2ggdy1zY2MgdGMtLWNzdGFjaykKKyAgICAgICAgICAoc2V0cSB0Yy0tY3N0YWNrLWhl aWdodCAoMSsgdGMtLWNzdGFjay1oZWlnaHQpKSkpKSkpKQorCisoZGVmdW4gdGMtLXN0YWNrLXRj LWRldGVybWluZS1tZWV0LWdlbmVyYXRvcnMgKGgwKQorICAobGV0ICgoZ2VucyAodGMtLW1ha2Ut c2NjLXNldCkpCisgICAgICAgIGQpCisgICAgKHdoaWxlICg+IHRjLS1jc3RhY2staGVpZ2h0IGgw KQorICAgICAgKHNldHEgZCAocG9wIHRjLS1jc3RhY2spCisgICAgICAgICAgICB0Yy0tY3N0YWNr LWhlaWdodCAoMS0gdGMtLWNzdGFjay1oZWlnaHQpKQorICAgICAgOzsgc2tpcCBpZiB0aGlzIGNv bXBvbmVudCBoYXMgYWxyZWFkeSBiZWVuIHByb2Nlc3NlZAorICAgICAgKHVubGVzcyAoYXJlZiB0 Yy0tc2NjLXN1Y2NzIGQpCisgICAgICAgIDs7IHNlZSBpZiBkIGlzIGluIHN1Y2Nlc3NvcnMgb2Yg ZXhpc3RpbmcKKyAgICAgICAgOzsgY29tcG9uZW50IG9yIHZpY2UgdmVyc2EKKyAgICAgICAgKGFz ZXQgdGMtLXNjYy1zdWNjcyBkIHQpCisgICAgICAgIChzZXRxIGdlbnMKKyAgICAgICAgICAgICAg KHRjLS1hZGQtdG8tbWVldC1nZW5lcmF0b3JzIGQgZ2VucykpKSkKKyAgICBnZW5zKSkKKworKGRl ZnVuIHRjLS1zdGFjay10Yy1jb2xsZWN0LXNjYy1zdWNjcyAoYyBjLXN1Y2NzIGdlbnMpCisgIChs ZXQgKChncyAodGMtLXNjYy1zZXQtc2VxIGdlbnMpKQorICAgICAgICAob3JkZXIgLTEpCisgICAg ICAgIGQgZC1zdWNjcykKKyAgICAod2hpbGUgKG5vdCAodGMtLXNjYy1zZXQtc2VxLW51bGwgZ3Mp KQorICAgICAgKHNldHEgZCAodGMtLXNjYy1zZXQtc2VxLXBvcCBncykpCisgICAgICAoc2V0cSBv cmRlciAobWF4IG9yZGVyIChhcmVmIHRjLS1zY2MtPm9yZGVyIGQpKSkKKyAgICAgIChzZXRxIGQt c3VjY3MgKGFyZWYgdGMtLXNjYy0+c3VjY2Vzc29ycyBkKSkKKyAgICAgIChzZXRxIGMtc3VjY3MK KyAgICAgICAgICAgICh0Yy0tc2NjLXNldC1hZGQgZCBjLXN1Y2NzKSkKKyAgICAgIChzZXRxIGMt c3VjY3MKKyAgICAgICAgICAgICh0Yy0tc2NjLXNldC11bmlvbi1hY2N1bXVsYXRlIGMtc3VjY3Mg ZC1zdWNjcykpKQorICAgIChhc2V0IHRjLS1zY2MtPm9yZGVyIGMgKDErIG9yZGVyKSkpCisgIChh c2V0IHRjLS1zY2MtPnN1Y2Nlc3NvcnMgYyBjLXN1Y2NzKQorICBjLXN1Y2NzKQorCisKKyhkZWZ1 biB0Yy0tc3RhY2stdGMtY29sbGVjdC1zY2MgKHYtaWR4KQorICAobGV0ICgoYyB0Yy0tc2NjLWNv dW50KQorICAgICAgICA7OyBub3RlIGMtc3VjY3MgaXMgYSBzZXQgb2Ygc2NjIGluZGljZXMsIG5v dCBpbmRpY2VzIG9mIG9yaWdpbmFsIG5vZGVzCisgICAgICAgIChjLXN1Y2NzICh0Yy0tbWFrZS1z Y2Mtc2V0KSkKKyAgICAgICAgYy1lbHRzIGdlbnMpCisgICAgKGFzZXQgdGMtLXNjYy0+cmVwIGMg di1pZHgpCisgICAgKGZpbGxhcnJheSB0Yy0tc2NjLXN1Y2NzIG5pbCkKKyAgICAoc2V0cSB0Yy0t c2NjLWNvdW50ICgxKyB0Yy0tc2NjLWNvdW50KSkKKyAgICAod2hlbiAob3IgKC89IChjYXIgdGMt LXZzdGFjaykgdi1pZHgpCisgICAgICAgICAgICAgIChhcmVmIHRjLS1pZHgtPnNlbGYtZWRnZSB2 LWlkeCkpCisgICAgICAodGMtLXNjYy1zZXQtYWRkIGMgYy1zdWNjcykpCisgICAgKHNldHEgZ2Vu cworICAgICAgICAgICh0Yy0tc3RhY2stdGMtZGV0ZXJtaW5lLW1lZXQtZ2VuZXJhdG9ycworICAg ICAgICAgICAoYXJlZiB0Yy0taWR4LT5oZWlnaHQgdi1pZHgpKSkKKyAgICAocHVzaCBgKCxjICxA KHRjLS1zY2Mtc2V0LT5saXN0IGdlbnMpKSB0Yy0tc2NjLWVkZ2VzKQorICAgIChzZXRxIGMtc3Vj Y3MKKyAgICAgICAgICAodGMtLXN0YWNrLXRjLWNvbGxlY3Qtc2NjLXN1Y2NzIGMgYy1zdWNjcyBn ZW5zKSkKKyAgICA7OyBGaW5hbGx5IGRldGVybWluZSBtZW1iZXJzIG9mIGMKKyAgICAobGV0ICgo dy1pZHggKHBvcCB0Yy0tdnN0YWNrKSkpCisgICAgICAoYXNldCB0Yy0taWR4LT5zY2Mgdy1pZHgg YykKKyAgICAgIChwdXNoIHctaWR4IGMtZWx0cykKKyAgICAgICh3aGlsZSAoLz0gdy1pZHggdi1p ZHgpCisgICAgICAgIChzZXRxIHctaWR4IChwb3AgdGMtLXZzdGFjaykpCisgICAgICAgIChhc2V0 IHRjLS1pZHgtPnNjYyB3LWlkeCBjKQorICAgICAgICAocHVzaCB3LWlkeCBjLWVsdHMpKSkKKyAg ICAoYXNldCB0Yy0tc2NjcyBjIGMtZWx0cykpKQorCisoZGVmdW4gdGMtLXN0YWNrLXRjICh2IHYt aWR4KQorICAiQ29tcHV0ZSB0aGUgdHJhbnNpdGl2ZSBjbG9zdXJlIG9mIHRjLS1ncmFwaCIKKyAg KHdoZW4gKGFyZWYgdGMtLWlkeC0+dmlzaXRlZCB2LWlkeCkKKyAgICAoZXJyb3IgIlZpc2l0aW5n ICVTICVTIHR3aWNlIiB2IHYtaWR4KSkKKyAgKGFzZXQgdGMtLWlkeC0+dmlzaXRlZCB2LWlkeCB0 Yy0tdmlzaXQtaWR4ICkKKyAgKHNldHEgdGMtLXZpc2l0LWlkeCAoMSsgdGMtLXZpc2l0LWlkeCkp CisgIChhc2V0IHRjLS1pZHgtPnJvb3Qgdi1pZHggdi1pZHgpCisgIChhc2V0IHRjLS1pZHgtPmhl aWdodCB2LWlkeCB0Yy0tY3N0YWNrLWhlaWdodCkKKyAgKHB1c2ggdi1pZHggdGMtLXZzdGFjaykK KyAgKGxldCAoKHN1Y2NzIChhc3NxIHYgdGMtLWVkZ2VzKSkKKyAgICAgICAgKHYtdmlzaXRlZCAo YXJlZiB0Yy0taWR4LT52aXNpdGVkIHYtaWR4KSkpCisgICAgKHdoZW4gc3VjY3MKKyAgICAgIChw b3Agc3VjY3MpKQorICAgICh3aGlsZSBzdWNjcworICAgICAgKHRjLS1zdGFjay10Yy12aXNpdCB2 IHYtaWR4IHYtdmlzaXRlZCAocG9wIHN1Y2NzKSkpKQorICAod2hlbiAoPSB2LWlkeCAoYXJlZiB0 Yy0taWR4LT5yb290IHYtaWR4KSkKKyAgICAodGMtLXN0YWNrLXRjLWNvbGxlY3Qtc2NjIHYtaWR4 KSkpCisKKyhkZWZ1biB0Yy10cmFuc2l0aXZlLWNsb3N1cmUgKG5vZGVzIGVkZ2VzICZvcHRpb25h bCByb290cykKKyAgIkNvbXB1dGUgdGhlIHRyYW5zaXRpdmUgY2xvc3VyZSBvZiB0Yy0tZ3JhcGgu CitSZXR1cm5zIGEgdGMtZ3JhcGggc3RydWN0dXJlLiIKKyAgKHVubGVzcyByb290cworICAgIChz ZXRxIHJvb3RzIG5vZGVzKSkKKyAgKHRjLS1pbml0IG5vZGVzIGVkZ2VzIHJvb3RzKQorICAobGV0 ICgobHMgcm9vdHMpCisgICAgICAgIHYgdi1pZHgpCisgICAgKHdoaWxlIGxzCisgICAgICAoc2V0 cSB2IChwb3AgbHMpKQorICAgICAgKHNldHEgdi1pZHggKHRjLS1nZXQtbm9kZS1pbmRleCB2KSkK KyAgICAgICh1bmxlc3MgKGFyZWYgdGMtLWlkeC0+dmlzaXRlZCB2LWlkeCkKKyAgICAgICAgKHRj LS1zdGFjay10YyB2IHYtaWR4KSkpKQorICAoc2V0cSB0Yy0tc2NjLT5yZXAgKG1ha2UtdmVjdG9y IHRjLS1zY2MtY291bnQgbmlsKSkKKyAgKGxldCAoKGkgMCkKKyAgICAgICAgKG1heC1vcmRlciAw KQorICAgICAgICAobyAtMSkKKyAgICAgICAgKHNjYy0+b3JkZXIgKG1ha2UtdmVjdG9yIHRjLS1z Y2MtY291bnQgbmlsKSkKKyAgICAgICAgKHNjYy0+cmVwIChtYWtlLXZlY3RvciB0Yy0tc2NjLWNv dW50IG5pbCkpCisgICAgICAgIChzY2MtPm5vZGVzIChtYWtlLXZlY3RvciB0Yy0tc2NjLWNvdW50 IG5pbCkpKQorICAgICh3aGlsZSAoPCBpIHRjLS1zY2MtY291bnQpCisgICAgICAoYXNldCBzY2Mt Pm5vZGVzIGkgKGFyZWYgdGMtLXNjY3MgaSkpCisgICAgICAoYXNldCBzY2MtPm9yZGVyIGkgKGFy ZWYgdGMtLXNjYy0+b3JkZXIgaSkpCisgICAgICAoc2V0cSBtYXgtb3JkZXIgKG1heCBtYXgtb3Jk ZXIgKGFyZWYgc2NjLT5vcmRlciBpKSkpCisgICAgICAoYXNldCBzY2MtPnJlcCBpIChhcmVmIHRj LS1zY2MtPnJlcCBpKSkKKyAgICAgIChzZXRxIGkgKDErIGkpKSkKKyAgICAoc2V0cSB0Yy0tc2Nj LW9yZGVyaW5nIChtYWtlLXZlY3RvciAoMSsgbWF4LW9yZGVyKSBuaWwpCisgICAgICAgICAgaSAw KQorICAgICh3aGlsZSAoPCBpIHRjLS1zY2MtY291bnQpCisgICAgICAoc2V0cSBvIChhcmVmIHNj Yy0+b3JkZXIgaSkpCisgICAgICAoYXNldCB0Yy0tc2NjLW9yZGVyaW5nCisgICAgICAgICAgICBv CisgICAgICAgICAgICAoY29ucyBpCisgICAgICAgICAgICAgICAgICAoYXJlZiB0Yy0tc2NjLW9y ZGVyaW5nIG8pKSkKKyAgICAgIChzZXRxIGkgKDErIGkpKSkKKyAgICAoc2V0cSB0Yy0tc2NjLT5y ZXAgc2NjLT5yZXApCisgICAgKHNldHEgdGMtLXNjYy0+b3JkZXIgc2NjLT5vcmRlcikKKyAgICAo c2V0cSB0Yy0tc2NjcyBzY2MtPm5vZGVzKQorICAgIChzZXRxIGkgKDEtIHRjLS1zaXplLW5vZGVz KSkKKyAgICAod2hpbGUgKD49IGkgMCkKKyAgICAgICh3aGVuIChhcmVmIHRjLS1pZHgtPnZpc2l0 ZWQgaSkKKyAgICAgICAgKHB1c2ggKGFyZWYgdGMtLWlkeC0+bm9kZSBpKSB0Yy0tcmVhY2hhYmxl LW5vZGVzKSkKKyAgICAgIChzZXRxIGkgKDEtIGkpKSkpCisgIChtYWtlLXRjLS1ncmFwaAorICAg Om5vZGVzIHRjLS1ub2RlcworICAgOmVkZ2VzIHRjLS1lZGdlcworICAgOnJvb3RzIHRjLS1yb290 cworICAgOnJlYWNoYWJsZSB0Yy0tcmVhY2hhYmxlLW5vZGVzCisgICA6bm9kZS0+aWR4IHRjLS1u b2RlLT5pZHgKKyAgIDppZHgtPm5vZGUgdGMtLWlkeC0+bm9kZQorICAgOmlkeC0+c2NjIHRjLS1p ZHgtPnNjYworICAgOmlkeC0+c3VjY2Vzc29ycyB0Yy0taWR4LT5zdWNjZXNzb3JzCisgICA6c2Nj LWVkZ2VzIHRjLS1zY2MtZWRnZXMKKyAgIDpzY2MtPnJlcCB0Yy0tc2NjLT5yZXAKKyAgIDpzY2Mt Pm9yZGVyIHRjLS1zY2MtPm9yZGVyCisgICA6c2NjLW9yZGVyaW5nIHRjLS1zY2Mtb3JkZXJpbmcK KyAgIDpzY2MtPm5vZGVzIHRjLS1zY2NzCisgICA6c2NjLT5zdWNjcyB0Yy0tc2NjLT5zdWNjZXNz b3JzKSkKKworCisoZGVmdW4gdGMtZ3JhcGgtc2NjICh0Y2cgdikKKyAgKHVubGVzcyAobWVtcSB2 ICh0Yy0tZ3JhcGgtbm9kZXMgdGNnKSkKKyAgICAoZXJyb3IgIiVTIGlzIG5vdCBhIG5vZGUgb2Yg dGhlIGdyYXBoIiB2KSkKKyAgKGxldCAoKHYtaWR4IChnZXRoYXNoIHYgKHRjLS1ncmFwaC1ub2Rl LT5pZHggdGNnKSkpCisgICAgICAgIChpZHgtPm5vZGUgKHRjLS1ncmFwaC1pZHgtPm5vZGUgdGNn KSkKKyAgICAgICAgKGlkeC0+c2NjICh0Yy0tZ3JhcGgtaWR4LT5zY2MgdGNnKSkKKyAgICAgICAg KHNjYy0+bm9kZXMgKHRjLS1ncmFwaC1zY2MtPm5vZGVzIHRjZykpKQorICAgIChsZXQgKChzY2Mg KG1hcGNhciAobGFtYmRhIChpZHgpIChhcmVmIGlkeC0+bm9kZSBpZHgpKQorICAgICAgICAgICAg ICAgICAgICAgICAoYXJlZiBzY2MtPm5vZGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChhcmVmIGlkeC0+c2NjIHYtaWR4KSkpKSkKKyAgICAgIHNjYykpKQorCisoZGVmdW4gdGMtZ3Jh cGgtcmVhY2hhYmxlICh0Y2cgJm9wdGlvbmFsIHYpCisgIChpZiAobnVsbCB2KQorICAgICAgKHRj LS1ncmFwaC1yZWFjaGFibGUgdGNnKQorICAgIChsZXQgKCh2LWlkeCAoZ2V0aGFzaCB2ICh0Yy0t Z3JhcGgtbm9kZS0+aWR4IHRjZykpKQorICAgICAgICAgIChpZHgtPm5vZGUgKHRjLS1ncmFwaC1p ZHgtPm5vZGUgdGNnKSkKKyAgICAgICAgICAoaWR4LT5zY2MgKHRjLS1ncmFwaC1pZHgtPnNjYyB0 Y2cpKQorICAgICAgICAgIChzY2MtPnN1Y2NzICh0Yy0tZ3JhcGgtc2NjLT5zdWNjcyB0Y2cpKQor ICAgICAgICAgIChzY2MtPm5vZGVzICh0Yy0tZ3JhcGgtc2NjLT5ub2RlcyB0Y2cpKQorICAgICAg ICAgIChpZHgtPnN1Y2Nlc3NvcnMgKHRjLS1ncmFwaC1pZHgtPnN1Y2Nlc3NvcnMgdGNnKSkKKyAg ICAgICAgICBzY2Mgc2NjLXN1Y2NzIHYtc3VjY3MpCisgICAgICAodW5sZXNzIChhcmVmIGlkeC0+ c3VjY2Vzc29ycyB2LWlkeCkKKyAgICAgICAgKHNldHEgc2NjIChhcmVmIGlkeC0+c2NjIHYtaWR4 KSkKKyAgICAgICAgKHNldHEgc2NjLXN1Y2NzIChhcmVmIHNjYy0+c3VjY3Mgc2NjKSkKKyAgICAg ICAgKHNldHEgdi1zdWNjcworICAgICAgICAgICAgICAodGMtLXNjYy1zZXQtbWFwY2FuCisgICAg ICAgICAgICAgICAobGFtYmRhIChjKQorICAgICAgICAgICAgICAgICAobWFwY2FyIChsYW1iZGEg KGlkeCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcmVmIGlkeC0+bm9kZSBpZHgpKQor ICAgICAgICAgICAgICAgICAgICAgICAgIChhcmVmIHNjYy0+bm9kZXMgYykpKQorICAgICAgICAg ICAgICAgc2NjLXN1Y2NzKSkKKyAgICAgICAgKGFzZXQgaWR4LT5zdWNjZXNzb3JzIHYtaWR4IHYt c3VjY3MpKQorICAgICAgKGFyZWYgaWR4LT5zdWNjZXNzb3JzIHYtaWR4KSkpKQorCisoZGVmdW4g dGMtZ3JhcGgtb3JkZXIgKHRjZyB2KQorICAobGV0ICgodi1pZHggKGdldGhhc2ggdiAodGMtLWdy YXBoLW5vZGUtPmlkeCB0Y2cpKSkKKyAgICAgICAgKGlkeC0+c2NjICh0Yy0tZ3JhcGgtaWR4LT5z Y2MgdGNnKSkKKyAgICAgICAgKHNjYy0+b3JkZXIgKHRjLS1ncmFwaC1zY2MtPm9yZGVyIHRjZykp KQorICAgIChhcmVmIHNjYy0+b3JkZXIKKyAgICAgICAgICAoYXJlZiBpZHgtPnNjYyB2LWlkeCkp KSkKKworKGRlZnVuIHRjLWdyYXBoLW9yZGVyaW5nICh0Y2cpCisgIChsZXQgKChvICh0Yy0tZ3Jh cGgtbm9kZS1vcmRlcmluZyB0Y2cpKSkKKyAgICAodW5sZXNzIG8KKyAgICAgIChzZXRxIG8gKGNv cHktc2VxdWVuY2UgKHRjLS1ncmFwaC1zY2Mtb3JkZXJpbmcgdGNnKSkpCisgICAgICAobGV0ICgo biAobGVuZ3RoIG8pKQorICAgICAgICAgICAgKHNjYy0+bm9kZXMgKHRjLS1ncmFwaC1zY2MtPm5v ZGVzIHRjZykpCisgICAgICAgICAgICAoaWR4LT5ub2RlICh0Yy0tZ3JhcGgtaWR4LT5ub2RlIHRj ZykpCisgICAgICAgICAgICAoaSAwKSkKKyAgICAgICAgKHdoaWxlICg8IGkgbikKKyAgICAgICAg ICAoYXNldCBvIGkKKyAgICAgICAgICAgICAgICAobWFwY2FuCisgICAgICAgICAgICAgICAgIChs YW1iZGEgKHNjYykKKyAgICAgICAgICAgICAgICAgICAobWFwY2FyIChsYW1iZGEgKGlkeCkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFyZWYgaWR4LT5ub2RlIGlkeCkpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAoYXJlZiBzY2MtPm5vZGVzIHNjYykpKQorICAgICAgICAgICAg ICAgICAoYXJlZiBvIGkpKSkKKyAgICAgICAgICAoc2V0cSBpICgxKyBpKSkpKQorICAgICAgKHNl dGYgKHRjLS1ncmFwaC1ub2RlLW9yZGVyaW5nIHRjZykgbykpCisgICAgbykpCisKKyhkZWZ1biB0 Yy1pbnZlcnQtZWRnZXMgKG5vZGVzIGVkZ2VzKQorICAobGV0ICgoaW52LW1hcCAobWFrZS1oYXNo LXRhYmxlIDpzaXplIChsZW5ndGggbm9kZXMpKSkKKyAgICAgICAgKGludi1hbHMgbmlsKQorICAg ICAgICAobHMgZWRnZXMpCisgICAgICAgIHRvIGZyb20gdG9scyBmcm9tbHMpCisgICAgKHdoaWxl IGxzCisgICAgICAoc2V0cSB0b2xzIChwb3AgbHMpKQorICAgICAgKHNldHEgZnJvbSAocG9wIHRv bHMpKQorICAgICAgKHdoaWxlIHRvbHMKKyAgICAgICAgKHNldHEgdG8gKHBvcCB0b2xzKSkKKyAg ICAgICAgKHNldHEgZnJvbWxzIChnZXRoYXNoIHRvIGludi1tYXAgbmlsKSkKKyAgICAgICAgKHB1 c2ggZnJvbSBmcm9tbHMpCisgICAgICAgIChwdXRoYXNoIHRvIGZyb21scyBpbnYtbWFwKSkpCisg ICAgKG1hcGhhc2ggKGxhbWJkYSAoayB2KQorICAgICAgICAgICAgICAgKHB1c2ggYCgsayAuICx2 KSBpbnYtYWxzKSkKKyAgICAgICAgICAgICBpbnYtbWFwKQorICAgIGludi1hbHMpKQorCis7OyAg c3BlY2lmaWVkIGdyYXBoIHByb3ZpZGVzIHJldmVyc2Ugb2YgZGVzaXJlZCBvcmRlcmluZyB3cnQg c3BlY2lmaWVkIHJvb3RzCisoZGVmdW4gdGMtcmV2ZXJzZS1yb290ZWQtZ3JhcGggKG5vZGVzIGVk Z2VzICZvcHRpb25hbCByb290cykKKyAgKGxldCAoaW52LWVkZ2VzCisgICAgICAgIHRjZy1md2Qg dGNnLWJhY2sKKyAgICAgICAgcmVhY2hhYmxlLW5vZGVzIHJlYWNoYWJsZSByZWFjaGFibGUtZWRn ZXMpCisgICAgKHNldHEgaW52LWVkZ2VzICh0Yy1pbnZlcnQtZWRnZXMgbm9kZXMgZWRnZXMpKQor ICAgIChzZXRxIHRjZy1md2QgKHRjLXRyYW5zaXRpdmUtY2xvc3VyZSBub2RlcyBpbnYtZWRnZXMg cm9vdHMpKQorICAgIChzZXRxIHJlYWNoYWJsZS1ub2RlcyAodGMtLWdyYXBoLXJlYWNoYWJsZSB0 Y2ctZndkKSkKKyAgICAoc2V0cSByZWFjaGFibGUgKG1ha2UtaGFzaC10YWJsZSA6c2l6ZSAobGVu Z3RoIHJlYWNoYWJsZS1ub2RlcykpKQorICAgIChtYXBjIChsYW1iZGEgKHYpIChwdXRoYXNoIHYg dCByZWFjaGFibGUpKSByZWFjaGFibGUtbm9kZXMpCisgICAgKHNldHEgcmVhY2hhYmxlLWVkZ2Vz CisgICAgICAgICAgKG1hcGNhbiAobGFtYmRhIChhcHIpCisgICAgICAgICAgICAgICAgICAgIChs ZXQgKChmcm9tIChjYXIgYXByKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHRvbHMgKGNk ciBhcHIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQpCisgICAgICAgICAgICAg ICAgICAgICAgKHdoZW4gKGdldGhhc2ggZnJvbSByZWFjaGFibGUgbmlsKQorICAgICAgICAgICAg ICAgICAgICAgICAgKHNldHEgcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBg KCgsZnJvbQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLEAoc2VxLWZpbHRlcgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAodG8pCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZXRoYXNoIHRvIHJlYWNoYWJsZSBuaWwp KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9scykpKSkpCisgICAgICAg ICAgICAgICAgICAgICAgcmVzdWx0KSkKKyAgICAgICAgICAgICAgICAgIGVkZ2VzKSkKKyAgICAo c2V0cSB0Y2ctYmFjayAodGMtdHJhbnNpdGl2ZS1jbG9zdXJlIHJlYWNoYWJsZS1ub2RlcyByZWFj aGFibGUtZWRnZXMpKQorICAgIHRjZy1iYWNrKSkKKworCis7OzsgVGVzdHMKKworOzsgKGRlZnZh ciB0c3Qtbm9kZXMgbmlsKQorOzsgKHNldHEgdHN0LW5vZGVzICcoYSBiIGMgZCBlKSkKKzs7IChk ZWZ2YXIgdHN0LWVkZ2VzMCBuaWwpCis7OyAoc2V0cSB0c3QtZWRnZXMwICcoKSkKKzs7IChkZWZ2 YXIgdHN0LWVkZ2VzMSBuaWwpCis7OyAoc2V0cSB0c3QtZWRnZXMxICcoKGEpCis7OyAgICAgICAg ICAgICAgICAgICAgICAoYikKKzs7ICAgICAgICAgICAgICAgICAgICAgIChjKQorOzsgICAgICAg ICAgICAgICAgICAgICAgKGQpCis7OyAgICAgICAgICAgICAgICAgICAgICAoZSkpKQorOzsgKGRl ZnZhciB0c3QtZWRnZXMyIG5pbCkKKzs7IChzZXRxIHRzdC1lZGdlczIgJygoYSkKKzs7ICAgICAg ICAgICAgICAgICAgICAgICAoYiBhKQorOzsgICAgICAgICAgICAgICAgICAgICAgIChjIGIpCis7 OyAgICAgICAgICAgICAgICAgICAgICAgKGQgYykKKzs7ICAgICAgICAgICAgICAgICAgICAgICAo ZSBkKSkpCis7OyAoZGVmdmFyIHRzdC1lZGdlczMgbmlsKQorOzsgKHNldHEgdHN0LWVkZ2VzMyAn KChhIGIpCis7OyAgICAgICAgICAgICAgICAgICAgKGIgYykKKzs7ICAgICAgICAgICAgICAgICAg ICAoYyBkKQorOzsgICAgICAgICAgICAgICAgICAgIChkIGUpCis7OyAgICAgICAgICAgICAgICAg ICAgKGUpKSkKKzs7IChkZWZ2YXIgdHN0LWVkZ2VzNCBuaWwpCis7OyAoc2V0cSB0c3QtZWRnZXM0 ICcoKGEgYSkKKzs7ICAgICAgICAgICAgICAgICAgICAoYiBhIGIgYykKKzs7ICAgICAgICAgICAg ICAgICAgICAoYyBkKQorOzsgICAgICAgICAgICAgICAgICAgIChkIGEgYikKKzs7ICAgICAgICAg ICAgICAgICAgICAoZSBlIGIpKSkKKzs7IChkZWZ2YXIgdHN0LWVkZ2VzNSBuaWwpCis7OyAoc2V0 cSB0c3QtZWRnZXM1ICcoKGEgZSkKKzs7ICAgICAgICAgICAgICAgICAgICAoYiBkKQorOzsgICAg ICAgICAgICAgICAgICAgIChjIGEpCis7OyAgICAgICAgICAgICAgICAgICAgKGQgZSkKKzs7ICAg ICAgICAgICAgICAgICAgICAoZSkpKQorCis7OyAoZGVmdmFyIHRlc3QtdGMwIG5pbCkKKzs7IChz ZXRxIHRlc3QtdGMwICh0Yy10cmFuc2l0aXZlLWNsb3N1cmUgdHN0LW5vZGVzIHRzdC1lZGdlczAp KQorOzsgKGRlZnZhciB0ZXN0LXRjMSBuaWwpCis7OyAoc2V0cSB0ZXN0LXRjMSAodGMtdHJhbnNp dGl2ZS1jbG9zdXJlIHRzdC1ub2RlcyB0c3QtZWRnZXMxKSkKKzs7IChkZWZ2YXIgdGVzdC10YzIg bmlsKQorOzsgKHNldHEgdGVzdC10YzIgKHRjLXRyYW5zaXRpdmUtY2xvc3VyZSB0c3Qtbm9kZXMg dHN0LWVkZ2VzMikpCis7OyAodGMtZ3JhcGgtc2NjIHRlc3QtdGMyICdhKQorOzsgKHRjLWdyYXBo LXNjYyB0ZXN0LXRjMiAnYikKKzs7ICh0Yy1ncmFwaC1zY2MgdGVzdC10YzIgJ2MpCis7OyAodGMt Z3JhcGgtc2NjIHRlc3QtdGMyICdkKQorOzsgKHRjLWdyYXBoLXNjYyB0ZXN0LXRjMiAnZSkKKzs7 ICh0Yy1ncmFwaC1zdWNjZXNzb3JzIHRlc3QtdGMyICdhKQorOzsgKHRjLWdyYXBoLXN1Y2Nlc3Nv cnMgdGVzdC10YzIgJ2IpCis7OyAodGMtZ3JhcGgtc3VjY2Vzc29ycyB0ZXN0LXRjMiAnYykKKzs7 ICh0Yy1ncmFwaC1zdWNjZXNzb3JzIHRlc3QtdGMyICdkKQorOzsgKHRjLWdyYXBoLXN1Y2Nlc3Nv cnMgdGVzdC10YzIgJ2UpCis7OyAoZGVmdmFyIHRlc3QtdGMzIG5pbCkKKzs7IChzZXRxIHRlc3Qt dGMzICh0Yy10cmFuc2l0aXZlLWNsb3N1cmUgdHN0LW5vZGVzIHRzdC1lZGdlczMpKQorOzsgKHRj LWdyYXBoLXNjYyB0ZXN0LXRjMyAnYSkKKzs7ICh0Yy1ncmFwaC1zY2MgdGVzdC10YzMgJ2IpCis7 OyAodGMtZ3JhcGgtc2NjIHRlc3QtdGMzICdjKQorOzsgKHRjLWdyYXBoLXNjYyB0ZXN0LXRjMyAn ZCkKKzs7ICh0Yy1ncmFwaC1zY2MgdGVzdC10YzMgJ2UpCis7OyAodGMtZ3JhcGgtc3VjY2Vzc29y cyB0ZXN0LXRjMyAnYSkKKzs7ICh0Yy1ncmFwaC1zdWNjZXNzb3JzIHRlc3QtdGMzICdiKQorOzsg KHRjLWdyYXBoLXN1Y2Nlc3NvcnMgdGVzdC10YzMgJ2MpCis7OyAodGMtZ3JhcGgtc3VjY2Vzc29y cyB0ZXN0LXRjMyAnZCkKKzs7ICh0Yy1ncmFwaC1zdWNjZXNzb3JzIHRlc3QtdGMzICdlKQorOzsg KGRlZnZhciB0ZXN0LXRjNCBuaWwpCis7OyAoc2V0cSB0ZXN0LXRjNCAodGMtdHJhbnNpdGl2ZS1j bG9zdXJlIHRzdC1ub2RlcyB0c3QtZWRnZXM0KSkKKzs7ICh0Yy1ncmFwaC1zY2MgdGVzdC10YzQg J2EpCis7OyAodGMtZ3JhcGgtc2NjIHRlc3QtdGM0ICdiKQorOzsgKHRjLWdyYXBoLXNjYyB0ZXN0 LXRjNCAnYykKKzs7ICh0Yy1ncmFwaC1zY2MgdGVzdC10YzQgJ2QpCis7OyAodGMtZ3JhcGgtc2Nj IHRlc3QtdGM0ICdlKQorOzsgKHRjLWdyYXBoLXN1Y2Nlc3NvcnMgdGVzdC10YzQgJ2EpCis7OyAo dGMtZ3JhcGgtc3VjY2Vzc29ycyB0ZXN0LXRjNCAnYikKKzs7ICh0Yy1ncmFwaC1zdWNjZXNzb3Jz IHRlc3QtdGM0ICdjKQorOzsgKHRjLWdyYXBoLXN1Y2Nlc3NvcnMgdGVzdC10YzQgJ2QpCis7OyAo dGMtZ3JhcGgtc3VjY2Vzc29ycyB0ZXN0LXRjNCAnZSkKKzs7IChkZWZ2YXIgdGVzdC10YzUgbmls KQorOzsgKHNldHEgdGVzdC10YzUgKHRjLXRyYW5zaXRpdmUtY2xvc3VyZSB0c3Qtbm9kZXMgdHN0 LWVkZ2VzNSkpCis7OyAodGMtZ3JhcGgtc2NjIHRlc3QtdGM1ICdhKQorOzsgKHRjLWdyYXBoLXNj YyB0ZXN0LXRjNSAnYikKKzs7ICh0Yy1ncmFwaC1zY2MgdGVzdC10YzUgJ2MpCis7OyAodGMtZ3Jh cGgtc2NjIHRlc3QtdGM1ICdkKQorOzsgKHRjLWdyYXBoLXNjYyB0ZXN0LXRjNSAnZSkKKzs7ICh0 Yy1ncmFwaC1zdWNjZXNzb3JzIHRlc3QtdGM1ICdhKQorOzsgKHRjLWdyYXBoLXN1Y2Nlc3NvcnMg dGVzdC10YzUgJ2IpCis7OyAodGMtZ3JhcGgtc3VjY2Vzc29ycyB0ZXN0LXRjNSAnYykKKzs7ICh0 Yy1ncmFwaC1zdWNjZXNzb3JzIHRlc3QtdGM1ICdkKQorOzsgKHRjLWdyYXBoLXN1Y2Nlc3NvcnMg dGVzdC10YzUgJ2UpCis7OyAoZGVmdmFyIHRlc3QtdGM1LXJldiBuaWwpCis7OyAoc2V0cSB0ZXN0 LXRjNS1yZXYgKHRjLXJldmVyc2Utcm9vdGVkLWdyYXBoIHRzdC1ub2RlcyB0c3QtZWRnZXM1ICco ZSkpKQorOzsgKHRjLWdyYXBoLW9yZGVyaW5nIHRlc3QtdGM1LXJldikKKzs7IChkZWZ2YXIgdGVz dC10YzUtcmV2MiBuaWwpCis7OyAoc2V0cSB0ZXN0LXRjNS1yZXYyICh0Yy1yZXZlcnNlLXJvb3Rl ZC1ncmFwaCB0c3Qtbm9kZXMgdHN0LWVkZ2VzNSAnKGQgYSkpKQorOzsgKHRjLWdyYXBoLW9yZGVy aW5nIHRlc3QtdGM1LXJldjIpCmRpZmYgLS1naXQgYS9saXNwL2xvYWR1cC5lbCBiL2xpc3AvbG9h ZHVwLmVsCmluZGV4IDQ2YjI2NzUwY2Q1Li40MjA5ODU5YzFmNyAxMDA2NDQKLS0tIGEvbGlzcC9s b2FkdXAuZWwKKysrIGIvbGlzcC9sb2FkdXAuZWwKQEAgLTM1NCw2ICszNTQsOCBAQAogOzsgZWxp c3AtbW9kZS5lbGMgaXMgb3V0ZGF0ZWQuCiAobG9hZCAicHJvZ21vZGVzL2VsaXNwLW1vZGUiKQog CisobG9hZCAiZW1hY3MtbGlzcC9hdmwtdHJlZS1jb3JlIikKKyhsb2FkICJlbWFjcy1saXNwL3Ry YW5zaXRpdmUtY2xvc3VyZSIpCiA7OyBQcmVsb2FkIHNvbWUgY29uc3RhbnRzIGFuZCBmbG9hdGlu ZyBwb2ludCBmdW5jdGlvbnMuCiAobG9hZCAiZW1hY3MtbGlzcC9mbG9hdC1zdXAiKQogCmRpZmYg LS1naXQgYS9saXNwL3N0YXJ0dXAuZWwgYi9saXNwL3N0YXJ0dXAuZWwKaW5kZXggOWFlNTNmNGU1 MGIuLmIwMmM2MjJhNGMzIDEwMDY0NAotLS0gYS9saXNwL3N0YXJ0dXAuZWwKKysrIGIvbGlzcC9z dGFydHVwLmVsCkBAIC0yODAsNiArMjgwLDkgQEAgY29tbWFuZC1saW5lLW5zLW9wdGlvbi1hbGlz dAogKGRlZnZhciBiZWZvcmUtaW5pdC1ob29rIG5pbAogICAiTm9ybWFsIGhvb2sgcnVuIGFmdGVy IGhhbmRsaW5nIHVyZ2VudCBvcHRpb25zIGJ1dCBiZWZvcmUgbG9hZGluZyBpbml0IGZpbGVzLiIp CiAKKyhkZWZ2YXIgYmVmb3JlLWluaXQtd2l0aC1mcmFtZS1ob29rIG5pbAorICAiTm9ybWFsIGhv b2sgcnVuIGFmdGVyIHNldHRpbmcgdXAgdGhlIGZyYW1lIGJ1dCBiZWZvcmUgbG9hZGluZyBpbml0 IGZpbGVzLiIpCisKIChkZWZ2YXIgYWZ0ZXItaW5pdC1ob29rIG5pbAogICAiTm9ybWFsIGhvb2sg cnVuIGFmdGVyIGluaXRpYWxpemluZyB0aGUgRW1hY3Mgc2Vzc2lvbi4KIEl0IGlzIHJ1biBhZnRl ciBFbWFjcyBsb2FkcyB0aGUgaW5pdCBmaWxlLCBgZGVmYXVsdCcgbGlicmFyeSwgdGhlCkBAIC0x MzA2LDggKzEzMDksOSBAQCBjb21tYW5kLWxpbmUKICAgICAgIChtYXBjICMnY3VzdG9tLXJlZXZh bHVhdGUtc2V0dGluZwogICAgICAgICAgICAgOzsgSW5pdGlhbGl6ZSB0aGVtIGluIHRoZSBzYW1l IG9yZGVyIHRoZXkgd2VyZSBsb2FkZWQsIGluCiAgICAgICAgICAgICA7OyBjYXNlIHRoZXJlIGFy ZSBkZXBlbmRlbmNpZXMgYmV0d2VlbiB0aGVtLgotICAgICAgICAgICAgKHJldmVyc2UgY3VzdG9t LWRlbGF5ZWQtaW5pdC12YXJpYWJsZXMpKSkpCi0gIChzZXRxIGN1c3RvbS1kZWxheWVkLWluaXQt dmFyaWFibGVzIHQpCisgICAgICAgICAgICAocmV2ZXJzZSBjdXN0b20tZGVsYXllZC1pbml0LXZh cmlhYmxlcykpCisgICAgICAoc2V0cSBjdXN0b20tZGVsYXllZC1pbml0LXZhcmlhYmxlcyB0KSkK KyAgICAoY3VzdG9tLWRvLXN0YXJ0dXAtc2V0dGluZ3MpKQogCiAgIDs7IFdhcm4gZm9yIGludmFs aWQgdXNlciBuYW1lLgogICAod2hlbiBpbml0LWZpbGUtdXNlcgpAQCAtMTQ1OCw2ICsxNDYyLDEw IEBAIGNvbW1hbmQtbGluZQogICAob3IgKGVxIGluaXRpYWwtd2luZG93LXN5c3RlbSAncGMpCiAg ICAgICAodHR5LXJlZ2lzdGVyLWRlZmF1bHQtY29sb3JzKSkKIAorICA7OyBhbGxvdyBob29rcyB0 byBydW4gb25jZSB0aGUgZnJhbWUgaGFzIGJlZW4gc2V0dXAKKyAgOzsgbmVlZGVkIGZvciBsb2Fk aW5nIHdpZC1lZGl0CisgIChydW4taG9va3MgJ2JlZm9yZS1pbml0LXdpdGgtZnJhbWUtaG9vaykK KwogICAobGV0ICgob2xkLXNjYWxhYmxlLWZvbnRzLWFsbG93ZWQgc2NhbGFibGUtZm9udHMtYWxs b3dlZCkKIAkob2xkLWZhY2UtaWdub3JlZC1mb250cyBmYWNlLWlnbm9yZWQtZm9udHMpKQogCg== --000000000000b67efc05f554d7d1--
Lynn Winebarger <owinebar@HIDDEN>
:bug-gnu-emacs@HIDDEN
.
Full text available.bug-gnu-emacs@HIDDEN
:bug#61721
; Package emacs
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.