From unknown Sat Jun 14 03:56:34 2025 X-Loop: help-debbugs@gnu.org Subject: bug#42574: Probable (system vm trace) bug Resent-From: Prafulla Giri Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Tue, 28 Jul 2020 09:39:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 42574 X-GNU-PR-Package: guile X-GNU-PR-Keywords: To: 42574@debbugs.gnu.org X-Debbugs-Original-To: bug-guile@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.159592911819282 (code B ref -1); Tue, 28 Jul 2020 09:39:01 +0000 Received: (at submit) by debbugs.gnu.org; 28 Jul 2020 09:38:38 +0000 Received: from localhost ([127.0.0.1]:57272 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k0M4D-00050w-PM for submit@debbugs.gnu.org; Tue, 28 Jul 2020 05:38:38 -0400 Received: from lists.gnu.org ([209.51.188.17]:46760) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k0M4C-00050o-1T for submit@debbugs.gnu.org; Tue, 28 Jul 2020 05:38:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38454) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k0M4B-0001FU-Qt for bug-guile@gnu.org; Tue, 28 Jul 2020 05:38:35 -0400 Received: from mail-pj1-x1042.google.com ([2607:f8b0:4864:20::1042]:37638) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1k0M49-0002dD-Of for bug-guile@gnu.org; Tue, 28 Jul 2020 05:38:35 -0400 Received: by mail-pj1-x1042.google.com with SMTP id lx9so311656pjb.2 for ; Tue, 28 Jul 2020 02:38:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=3M0t4a2WWSrLoto7FHJKg4plV7Nyo5VFnk0sXrp/sF8=; b=ekZeFn3kTjntrqBawpMQRZA1Po+bVKYb7kez0mszFmWH/k2+ehQoE5T2ecGcwwxRxm +gGK6hmL1VXH7QEo8tZ+HYZlcEl+UqvolCfrm9eDtTUiIX13oYUxfKVgCnolCeOgiDyj PcEN9oQlL+aLGPzl/9/LPp+oo7o8L/zfqsaX7oyyn6g1QEHrS+cH259rkrsSFQQZ5VpD NkjKheOmBB01RW86Ju1PdM2QLn69a6uXzm0AOW7S+e/8qbPpKDuh3iUOWrWIp/vQQc6a RWD0YsnRBXosmtMDGkgCP1lN3EOjyhZlF6J9sgG6t3zE7agGe1Z1wvxVRdVlFDC6FbHr 8Qhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=3M0t4a2WWSrLoto7FHJKg4plV7Nyo5VFnk0sXrp/sF8=; b=YWbOzTCy6qkc5l1FE2RHFS48LXMU3QbZHYfZFnOhlwz0CeUINzwA6OompTEeyO7KJl t35Bl8zrF90m36iTv6q9OdR6W3kf4EmhVNWiOjebB6SlItsYV1cW1qukQxGlxRao1kMS mm5KdmnOxEKjsXd67l2aXVVnYE5qjRoHoTwM+rFZWorMYBKh7iES2CTEsJ0MbDfq+ZgO yCEjzbcedb+YA2UiLAtnBvT0gu4oApwul/6HIeT4ZKbtiRRp8PSWPEuaTGe8MRS3/v7S Fb77MIsUkYSxj+zfCWgmhFcCwKja1cMgT2x0pvIOyotHey5qzaNAMo6kEM4PUG8if2vV yw9w== X-Gm-Message-State: AOAM533vG0EHZUF63oCOiyxoGvkIRcg2OuWfsgUm8yiK91HPuqTPHE8k sQNhiUvu660JbkOMYd6BipMSFzvtWz4T5CH6or/BRUf6Kyk= X-Google-Smtp-Source: ABdhPJw9W4z4MRvqvVEOggRK7jdcvL+zPnANppIqO80Pbw+30GrJc4wgUtWba7Mevl9ED4K3AptXN7wSm4P5mUO04NY= X-Received: by 2002:a17:902:a416:: with SMTP id p22mr22094932plq.341.1595929111443; Tue, 28 Jul 2020 02:38:31 -0700 (PDT) MIME-Version: 1.0 From: Prafulla Giri Date: Tue, 28 Jul 2020 15:23:19 +0545 Message-ID: Content-Type: multipart/alternative; boundary="000000000000c63cba05ab7d33e2" Received-SPF: pass client-ip=2607:f8b0:4864:20::1042; envelope-from=pratheblackdiamond@gmail.com; helo=mail-pj1-x1042.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --000000000000c63cba05ab7d33e2 Content-Type: text/plain; charset="UTF-8" Esteemed Maintainers, I am quite positive that what I am experiencing is not quite a bug but just some mis-step on my part. But I have been encouraged to report this as a possible bug. Thus, here it is. Context: Guile version: 3.0.2 (installed using guix) Loaded Files: simply.scm ( https://github.com/hosoe-masaki/SimplyScheme/blob/master/simply.scm) Reverse function (referred to in the report, assumes 'simply.scm' has been loaded): (define (reverse wd) (if (equal? wd "") "" (word (reverse (bf wd)) (first wd)))) ;; (reverse 'asdf) -> 'fdsa This started with my first wanting to run a (trace) of a recursive procedure as seen in Chapter 13 of the book 'Simply Scheme' ( https://people.eecs.berkeley.edu/~bh/ssch13/convince-recur.html). I looked for a waay to (trace) in guile, but couldn't find anything except ,trace, which was giving a trace of everything that the function (reverse) called from inside of it, thus making the trace 'polluted'. I then looked around and found that a (trace) function, much like the one being demonstrated in the book used to exist once in guile: https://www.gnu.org/software/guile/docs/docs-1.8/guile-ref/Tracing.html and then found that for guile3 there was something that looked similarly promising: the (trace-calls-to-procedure) function ( https://www.gnu.org/software/guile/docs/master/guile.html/Tracing-Traps.html). However, > (trace-calls-to-procedure reverse) > (reverse 'asdf) fdsa produced no trace. This led me to ask around IRC for some guidance regarding it. Someone from #emacs suggested I try doing this: http://ix.io/2suZ When I attempted to do the same thing, however, I encountered the following error, at the sight of which, it was recommended that I file a (possible) bug report: https://termbin.com/6nm5 The following `script` typescript might also be of interest to the maintainers (to be replayed using `scriptreplay`): typescript - https://termbin.com/sx5o timing file - https://termbin.com/73ei (This one records the (call-with-trace) call with both #:call? #f and without the specification). I must confess, I don't understand a whole lot of this. All I would like to say is that I have a feeling (trace-calls-to-procedure procedure) should have worked like (trace) as shown in chapter 13 section 'trace' in the book (https://people.eecs.berkeley.edu/~bh/ssch13/convince-recur.html); it just seems 'right' by the name of it. I was expecting the trace from (trace-call-to-procedure reverse) (reverse 'asdf) to be basically like ,trace (reverse 'asdf) but without the traces of all other procedures. Please do let me know if I have left out any important details. And please do let me know if I am doing something wrong here. I am almost quite certain this is just a minor error on my part, rather than a bug (and I'd really like to be able to trace those procedures). --000000000000c63cba05ab7d33e2 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Esteemed Maintainers,

I am q= uite positive that what I am experiencing is not quite a bug but just some = mis-step on my part. But I have been encouraged to report this as a possibl= e bug. Thus, here it is.

Context:
Guile = version: 3.0.2 (installed using guix)
Loaded Files: simply.scm (<= a href=3D"https://github.com/hosoe-masaki/SimplyScheme/blob/master/simply.s= cm">https://github.com/hosoe-masaki/SimplyScheme/blob/master/simply.scm= )
Reverse function (referred to in the report, assumes 'simpl= y.scm' has been loaded):
(define (reverse wd) (if (equal? wd "") "" (word (rev= erse (bf wd)) (first wd))))
;; (reverse 'asdf) -> 'fdsa

This started with my first wanting to run a (trace) of a recursive = procedure as seen in Chapter 13 of the book 'Simply Scheme' (https= ://people.eecs.berkeley.edu/~bh/ssch13/convince-recur.html). I looked f= or a waay to (trace) in guile, but couldn't find anything except ,trace= , which was giving a trace of everything that the function (reverse) called= from inside of it, thus making the trace 'polluted'.
I then looked around and found that a (trace) function, much li= ke the one being demonstrated in the book used to exist once in guile: https://www.gnu.org/software/guile/docs/docs-1.8/guile-ref/Tracing.htm= l and then found that for guile3 there was something that looked simila= rly promising: the (trace-calls-to-procedure) function (https= ://www.gnu.org/software/guile/docs/master/guile.html/Tracing-Traps.html= ). However,
> (trace-cal= ls-to-procedure reverse)
> (reverse 'asdf)
fdsa
produced no trace. This led me to ask around IRC= for some guidance regarding it. Someone from #emacs suggested I try doing = this: http://ix.io/2suZ
When I attempted to do the same thing, however, I encountered the followi= ng error, at the sight of which, it was recommended that I file a (possible= ) bug report: https://termbin.com/6nm5=

The following `script` type= script might also be of interest to the maintainers (to be replayed using `= scriptreplay`):
timing file - https://termbin.com/73ei
(This one records the (call-with-trace) call with both #:call? #f a= nd without the specification).

<= div>I= must confess, I don't understand a whole lot of this. All I would like= to say is that I have a feeling (tra= ce-calls-to-procedure procedure) should have worked like (trace) as shown in chapter 13 section &#= 39;trace' in the book (https://people.eecs.berkeley.edu/~bh/ssch13/con= vince-recur.html); it just seems 'right' by the name of it. I w= as expecting the trace from (trace-ca= ll-to-procedure reverse) (reverse 'asdf) to be basically like ,trace (reverse 'asdf) but w= ithout the traces of all other procedures.

Please do let me know if I have left out any important = details. And please do let me know if I am doing something wrong here. I am= almost quite certain this is just a minor error on my part, rather than a = bug (and I'd really like to be able to trace those procedures).
--000000000000c63cba05ab7d33e2-- From unknown Sat Jun 14 03:56:34 2025 X-Loop: help-debbugs@gnu.org Subject: bug#42574: Permanent Records References: In-Reply-To: Resent-From: Prafulla Giri Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Wed, 29 Jul 2020 15:05:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 42574 X-GNU-PR-Package: guile X-GNU-PR-Keywords: To: 42574@debbugs.gnu.org Received: via spool by 42574-submit@debbugs.gnu.org id=B42574.159603506720389 (code B ref 42574); Wed, 29 Jul 2020 15:05:01 +0000 Received: (at 42574) by debbugs.gnu.org; 29 Jul 2020 15:04:27 +0000 Received: from localhost ([127.0.0.1]:33473 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k0nd4-0005Im-47 for submit@debbugs.gnu.org; Wed, 29 Jul 2020 11:04:27 -0400 Received: from mail-pl1-f180.google.com ([209.85.214.180]:33217) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k0nd1-0005IZ-KT for 42574@debbugs.gnu.org; Wed, 29 Jul 2020 11:04:25 -0400 Received: by mail-pl1-f180.google.com with SMTP id t1so2743081plq.0 for <42574@debbugs.gnu.org>; Wed, 29 Jul 2020 08:04:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=DpojiFIIGb4iWPisWSdDQF2yFJ9gp60D/KYs3h8RXFA=; b=FOHclkSVkJt+q11VOLqVmR/2HUHcTs8lqw/HxPtxg0Q3AvZIoPN86FzMju14cwDDEE paE3If9a1cznXijNisnCHdQTi9d1r/ZIbYybIIUAqiz7OR3mtOXeyBDOveztu42h0XMq UkZIZ2rZLLlliN8dSdGTCCOshQKqqLtVKxpKqTfOLV/ZclDl2HFsGtS8RhtUfwkuNC8c VQVu7+NQviyhbU5WGU9WcW+2otjmzaS4S7nnQdwP4j3zPtjBGwOi0ZuELTOPcebk7BJN sK8tLhKbP0b1zm9EdOGl72L2L8xIePGP2qHc7bEv/IG8b1fVl3GWCDrguf/XwXbIVMUS X6AA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=DpojiFIIGb4iWPisWSdDQF2yFJ9gp60D/KYs3h8RXFA=; b=J24H/2ub3BjvVdtDXd9i+oxEs6vk7VUvWLfKXVYuF1zyV4MMhv+FS6HZrw/RWhzo7t fMGX+RlilXFPK3hBLw7PBdlZ1UOGztffaReS3JoeeCABT9qbk9ywDJ9rSYxW1ECN4iA0 +rJNDBOKZCssUOD12QMMHzzbLyRcih068yPPCaJDzWfjCbPJTxMHWlYMYmQi8c78o5n3 ahKER+D9ZUmAIoYz5bpMK5NCevWoN+iklBDtRziOnbcij2N6DDSHSCHsHJAsUBVnH4Kd O9Dx/zCoo/ZKrl0lSHEpLxFMiNjB+/g8dr+dKHHPCWPLwIPbXex3D1Et55LVzhJzT33b Yhdw== X-Gm-Message-State: AOAM531peq1jw0bxJWfeMU4AEn6DaRkpNxFlXc9NUL/HuTWGZ7VYvKGr PDZ/RBr+k4BEuMGByBZ06jn5Ka3SP3wwQW/5K0cYxvMs X-Google-Smtp-Source: ABdhPJyyrHguwtCsoZVyHNPtUz3mgWM9gDtJZ1EpigHePlf5ILz5EObRMQinkYeGkYQkt/C8VAbLrTe2ZlZenyVTDg4= X-Received: by 2002:a17:90b:1812:: with SMTP id lw18mr10809810pjb.70.1596035057325; Wed, 29 Jul 2020 08:04:17 -0700 (PDT) MIME-Version: 1.0 From: Prafulla Giri Date: Wed, 29 Jul 2020 20:49:06 +0545 Message-ID: Content-Type: multipart/mixed; boundary="000000000000a484f005ab95de50" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000a484f005ab95de50 Content-Type: multipart/alternative; boundary="000000000000a484ef05ab95de4e" --000000000000a484ef05ab95de4e Content-Type: text/plain; charset="UTF-8" I just realized that the termbin links are going to expire in a month or so. Therefore I am attaching files containing the contents of the links here. Please pardon the inconvenience. --000000000000a484ef05ab95de4e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I just realized that the termbin links are going to e= xpire in a month or so. Therefore I am attaching files containing the conte= nts of the links here.

Please pardon the inconveni= ence.


--000000000000a484ef05ab95de4e-- --000000000000a484f005ab95de50 Content-Type: application/octet-stream; name=emacs_suggestion Content-Disposition: attachment; filename=emacs_suggestion Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kd7i1xwv0 c2NoZW1lQChndWlsZS11c2VyKT4gKHVzZS1tb2R1bGVzIChzeXN0ZW0gdm0gdHJhY2UpKQpzY2hl bWVAKGd1aWxlLXVzZXIpPiAoZGVmaW5lICh0ZXN0KSAoc3ltYm9sLT5zdHJpbmcgJ2ZvbykpCnNj aGVtZUAoZ3VpbGUtdXNlcik+ICh0cmFjZS1jYWxscy10by1wcm9jZWR1cmUgdGVzdCAjOnByZWZp eCAiWFhYOiAiKQokMSA9ICM8cHJvY2VkdXJlIDdlZmNlMGI1MjVhMCBhdCBzeXN0ZW0vdm0vdHJh cHMuc2NtOjU4NDo2ICgjOm9wdGlvbmFsIGZyYW1lKT4Kc2NoZW1lQChndWlsZS11c2VyKT4gKGNh bGwtd2l0aC10cmFjZSAobGFtYmRhICgpICh0ZXN0KSkpCnRyYWNlOiAodGVzdCkKWFhYOiAodGVz dCkKdHJhY2U6IChzeW1ib2wtPnN0cmluZyBmb28pClhYWDogImZvbyIKdHJhY2U6ICJmb28iCiQy ID0gImZvbyIKc2NoZW1lQChndWlsZS11c2VyKT4gKGNhbGwtd2l0aC10cmFjZSAobGFtYmRhICgp ICh0ZXN0KSkgIzpjYWxscz8gI2YpClhYWDogKHRlc3QpClhYWDogImZvbyIKJDMgPSAiZm9vIgpz Y2hlbWVAKGd1aWxlLXVzZXIpPiAK --000000000000a484f005ab95de50 Content-Type: text/x-scheme; charset="US-ASCII"; name="simply.scm" Content-Disposition: attachment; filename="simply.scm" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kd7i1xxp2 Ozs7IHNpbXBseS5zY20gdmVyc2lvbiAzLjEzICg4LzExLzk4KQo7OzsgKE51bWJlcmVkIHRvIGFn cmVlIHdpdGggYmVya2VsZXkuc2NtIHZlcnNpb24uKQoKCjs7OyBUaGlzIGZpbGUgdXNlcyBTY2hl bWUgZmVhdHVyZXMgd2UgZG9uJ3QgdGFsayBhYm91dCBpbiBfU2ltcGx5X1NjaGVtZV8uCjs7OyBS ZWFkIGF0IHlvdXIgb3duIHJpc2suCgooaWYgKGVxdWFsPyAnZm9vIChzeW1ib2wtPnN0cmluZyAn Zm9vKSkKICAgIChlcnJvciAiU2ltcGx5LnNjbSBhbHJlYWR5IGxvYWRlZCEhIikKICAgICNmKQoK OzsgTWFrZSBudW1iZXItPnN0cmluZyByZW1vdmUgbGVhZGluZyAiKyIgaWYgbmVjZXNzYXJ5Cgoo aWYgKGNoYXI9PyAjXCsgKHN0cmluZy1yZWYgKG51bWJlci0+c3RyaW5nIDEuMCkgMCkpCiAgICAo bGV0ICgob2xkLW5zIG51bWJlci0+c3RyaW5nKQoJICAoY2hhcj0/IGNoYXI9PykKCSAgKHN0cmlu Zy1yZWYgc3RyaW5nLXJlZikKCSAgKHN1YnN0cmluZyBzdWJzdHJpbmcpCgkgIChzdHJpbmctbGVu Z3RoIHN0cmluZy1sZW5ndGgpKQogICAgICAoc2V0ISBudW1iZXItPnN0cmluZwoJICAgIChsYW1i ZGEgYXJncwoJICAgICAgKGxldCAoKHJlc3VsdCAoYXBwbHkgb2xkLW5zIGFyZ3MpKSkKCQkoaWYg KGNoYXI9PyAjXCsgKHN0cmluZy1yZWYgcmVzdWx0IDApKQoJCSAgICAoc3Vic3RyaW5nIHJlc3Vs dCAxIChzdHJpbmctbGVuZ3RoIHJlc3VsdCkpCgkJICAgIHJlc3VsdCkpKSkpCiAgICAnbm8tcHJv YmxlbSkKCihkZWZpbmUgbnVtYmVyLT5zdHJpbmcKICAobGV0ICgob2xkLW5zIG51bWJlci0+c3Ry aW5nKQoJKHN0cmluZz8gc3RyaW5nPykpCiAgICAobGFtYmRhIGFyZ3MKICAgICAgKGlmIChzdHJp bmc/IChjYXIgYXJncykpCgkgIChjYXIgYXJncykKCSAgKGFwcGx5IG9sZC1ucyBhcmdzKSkpKSkK Cjs7IEdldCBzdHJpbmdzIGluIGVycm9yIG1lc3NhZ2VzIHRvIHByaW50IG5pY2VseSAoZXNwZWNp YWxseSAiIikKCihkZWZpbmUgd2hvb3BzCiAgKGxldCAoKHN0cmluZz8gc3RyaW5nPykKCShzdHJp bmctYXBwZW5kIHN0cmluZy1hcHBlbmQpCgkoZXJyb3IgZXJyb3IpCgkoY29ucyBjb25zKQoJKG1h cCBtYXApCgkoYXBwbHkgYXBwbHkpKQogICAgKGRlZmluZSAoZXJyb3ItcHJpbnRmb3JtIHgpCiAg ICAgIChpZiAoc3RyaW5nPyB4KQoJICAoc3RyaW5nLWFwcGVuZCAiXCIiIHggIlwiIikKCSAgeCkp CjsgICAgKGRlZmluZSAoZXJyb3ItcHJpbnRmb3JtIHgpIHgpCiAgICAobGFtYmRhIChzdHJpbmcg LiBhcmdzKQogICAgICAoYXBwbHkgZXJyb3IgKGNvbnMgc3RyaW5nIChtYXAgZXJyb3ItcHJpbnRm b3JtIGFyZ3MpKSkpKSkKCgo7OyBST1VORCByZXR1cm5zIGFuIGluZXhhY3QgaW50ZWdlciBpZiBp dHMgYXJndW1lbnQgaXMgaW5leGFjdCwKOzsgYnV0IHdlIHRoaW5rIGl0IHNob3VsZCBhbHdheXMg cmV0dXJuIGFuIGV4YWN0IGludGVnZXIuCjs7IChJdCBtYXR0ZXJzIGJlY2F1c2Ugc29tZSBTY2hl bWVzIHByaW50IGluZXhhY3QgaW50ZWdlcnMgYXMgIisxLjAiLikKOzsgVGhlIChleGFjdCAxKSB0 ZXN0IGlzIGZvciBQQyBTY2hlbWUsIGluIHdoaWNoIG5vdGhpbmcgaXMgZXhhY3QuCihpZiAoYW5k IChpbmV4YWN0PyAocm91bmQgKHNxcnQgMikpKSAoZXhhY3Q/IDEpKQogICAgKGxldCAoKG9sZC1y b3VuZCByb3VuZCkKCSAgKGluZXhhY3QtPmV4YWN0IGluZXhhY3QtPmV4YWN0KSkKICAgICAgKHNl dCEgcm91bmQKCSAgICAobGFtYmRhIChudW1iZXIpCgkgICAgICAoaW5leGFjdC0+ZXhhY3QgKG9s ZC1yb3VuZCBudW1iZXIpKSkpKQogICAgJ25vLXByb2JsZW0pCgo7OyBSZW1haW5kZXIgYW5kIHF1 b3RpZW50IGJsb3cgdXAgaWYgdGhlaXIgYXJndW1lbnQgaXNuJ3QgYW4gaW50ZWdlci4KOzsgVW5m b3J0dW5hdGVseSwgaW4gU0NNLCAoKiAzNjUuMjUgMjQgNjAgNjApICppc24ndCogYW4gaW50ZWdl ci4KCihpZiAoaW5leGFjdD8gKCogLjI1IDQpKQogICAgKGxldCAoKHJlbSByZW1haW5kZXIpCgkg IChxdW8gcXVvdGllbnQpCgkgIChpbmV4YWN0LT5leGFjdCBpbmV4YWN0LT5leGFjdCkKCSAgKGlu dGVnZXI/IGludGVnZXI/KSkKICAgICAgKHNldCEgcmVtYWluZGVyCgkgICAgKGxhbWJkYSAoeCB5 KQoJICAgICAgKHJlbSAoaWYgKGludGVnZXI/IHgpIChpbmV4YWN0LT5leGFjdCB4KSB4KQoJCSAg IChpZiAoaW50ZWdlcj8geSkgKGluZXhhY3QtPmV4YWN0IHkpIHkpKSkpCiAgICAgIChzZXQhIHF1 b3RpZW50CgkgICAgKGxhbWJkYSAoeCB5KQoJICAgICAgKHF1byAoaWYgKGludGVnZXI/IHgpIChp bmV4YWN0LT5leGFjdCB4KSB4KQoJCSAgIChpZiAoaW50ZWdlcj8geSkgKGluZXhhY3QtPmV4YWN0 IHkpIHkpKSkpKQogICAgJ2RvbmUpCgoKOzsgUmFuZG9tCjs7IElmIHlvdXIgdmVyc2lvbiBvZiBT Y2hlbWUgaGFzIFJBTkRPTSwgeW91IHNob3VsZCB0YWtlIHRoaXMgb3V0Lgo7OyAoSXQgZ2l2ZXMg dGhlIHNhbWUgc2VxdWVuY2Ugb2YgcmFuZG9tIG51bWJlcnMgZXZlcnkgdGltZS4pIAoKOyhkZWZp bmUgcmFuZG9tCjsgIChsZXQgKCgqc2VlZCogMSkgKHF1b3RpZW50IHF1b3RpZW50KSAobW9kdWxv IG1vZHVsbykgKCsgKykgKC0gLSkgKCogKikgKD4gPikpCjsgICAgKGxhbWJkYSAoeCkKOyAgICAg IChsZXQqICgoaGkgKHF1b3RpZW50ICpzZWVkKiAxMjc3NzMpKQo7CSAgICAgKGxvdyAobW9kdWxv ICpzZWVkKiAxMjc3NzMpKQo7CSAgICAgKHRlc3QgKC0gKCogMTY4MDcgbG93KSAoKiAyODM2IGhp KSkpKQo7CShpZiAoPiB0ZXN0IDApCjsJICAgIChzZXQhICpzZWVkKiB0ZXN0KQo7CSAgICAoc2V0 ISAqc2VlZCogKCsgdGVzdCAyMTQ3NDgzNjQ3KSkpKQo7ICAgICAgKG1vZHVsbyAqc2VlZCogeCkp KSkKCgo7OzsgTG9nby1zdHlsZSB3b3JkL3NlbnRlbmNlIGltcGxlbWVudGF0aW9uCgooZGVmaW5l IHdvcmQ/CiAgKGxldCAoKG51bWJlcj8gbnVtYmVyPykKCShzeW1ib2w/IHN5bWJvbD8pCgkoc3Ry aW5nPyBzdHJpbmc/KSkKICAgIChsYW1iZGEgKHgpCiAgICAgIChvciAoc3ltYm9sPyB4KSAobnVt YmVyPyB4KSAoc3RyaW5nPyB4KSkpKSkKCihkZWZpbmUgc2VudGVuY2U/CiAgKGxldCAoKG51bGw/ IG51bGw/KQoJKHBhaXI/IHBhaXI/KQoJKHdvcmQ/IHdvcmQ/KQoJKGNhciBjYXIpCgkoY2RyIGNk cikpICAgIAogICAgKGRlZmluZSAobGlzdC1vZi13b3Jkcz8gbCkKICAgICAgKGNvbmQgKChudWxs PyBsKSAjdCkKCSAgICAoKHBhaXI/IGwpCgkgICAgIChhbmQgKHdvcmQ/IChjYXIgbCkpIChsaXN0 LW9mLXdvcmRzPyAoY2RyIGwpKSkpCgkgICAgKGVsc2UgI2YpKSkKICAgIGxpc3Qtb2Ytd29yZHM/ KSkKCihkZWZpbmUgZW1wdHk/CiAgKGxldCAoKG51bGw/IG51bGw/KQoJKHN0cmluZz8gc3RyaW5n PykKCShzdHJpbmc9PyBzdHJpbmc9PykpCiAgICAobGFtYmRhICh4KQogICAgICAob3IgKG51bGw/ IHgpCgkgIChhbmQgKHN0cmluZz8geCkgKHN0cmluZz0/IHggIiIpKSkpKSkKCgooZGVmaW5lIGNo YXItcmFuawogIDs7IDAgTGV0dGVyIGluIGdvb2QgY2FzZSBvciBzcGVjaWFsIGluaXRpYWwKICA7 OyAxIC4sICsgb3IgLQogIDs7IDIgRGlnaXQKICA7OyAzIExldHRlciBpbiBiYWQgY2FzZSBvciB3 ZWlyZCBjaGFyYWN0ZXIKICAobGV0ICgoKnRoZS1jaGFyLXJhbmtzKiAobWFrZS12ZWN0b3IgMjU2 IDMpKQoJKD0gPSkKCSgrICspCgkoc3RyaW5nLXJlZiBzdHJpbmctcmVmKQoJKHN0cmluZy1sZW5n dGggc3RyaW5nLWxlbmd0aCkKCSh2ZWN0b3Itc2V0ISB2ZWN0b3Itc2V0ISkKCShjaGFyLT5pbnRl Z2VyIGNoYXItPmludGVnZXIpCgkoc3ltYm9sLT5zdHJpbmcgc3ltYm9sLT5zdHJpbmcpCgkodmVj dG9yLXJlZiB2ZWN0b3ItcmVmKSkKICAgIChkZWZpbmUgKHJhbmstc3RyaW5nIHN0ciByYW5rKQog ICAgICAoZGVmaW5lIChoZWxwZXIgaSBsZW4pCgkoaWYgKD0gaSBsZW4pCgkgICAgJ2RvbmUKCSAg ICAoYmVnaW4gKHZlY3Rvci1zZXQhICp0aGUtY2hhci1yYW5rcyoKCQkJCShjaGFyLT5pbnRlZ2Vy IChzdHJpbmctcmVmIHN0ciBpKSkKCQkJCXJhbmspCgkJICAgKGhlbHBlciAoKyBpIDEpIGxlbikp KSkKICAgICAgKGhlbHBlciAwIChzdHJpbmctbGVuZ3RoIHN0cikpKQogICAgKHJhbmstc3RyaW5n IChzeW1ib2wtPnN0cmluZyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXopIDApCiAgICAocmFu ay1zdHJpbmcgIiEkJSYqLzo8PT4/fl9eIiAwKQogICAgKHJhbmstc3RyaW5nICIrLS4iIDEpCiAg ICAocmFuay1zdHJpbmcgIjAxMjM0NTY3ODkiIDIpCiAgICAobGFtYmRhIChjaGFyKQkJICAgIDs7 IHZhbHVlIG9mIGNoYXItcmFuawogICAgICAodmVjdG9yLXJlZiAqdGhlLWNoYXItcmFua3MqIChj aGFyLT5pbnRlZ2VyIGNoYXIpKSkpKQoKKGRlZmluZSBzdHJpbmctPndvcmQKICAobGV0ICgoPSA9 KSAoPD0gPD0pICgrICspICgtIC0pCgkoY2hhci1yYW5rIGNoYXItcmFuaykKCShzdHJpbmctcmVm IHN0cmluZy1yZWYpCgkoc3RyaW5nLWxlbmd0aCBzdHJpbmctbGVuZ3RoKQoJKHN0cmluZz0/IHN0 cmluZz0/KQoJKG5vdCBub3QpCgkoY2hhcj0/IGNoYXI9PykKCShzdHJpbmctPm51bWJlciBzdHJp bmctPm51bWJlcikKCShzdHJpbmctPnN5bWJvbCBzdHJpbmctPnN5bWJvbCkpCiAgICAobGFtYmRh IChzdHJpbmcpCiAgICAgIChkZWZpbmUgKHN1YnNlcXVlbnRzPyBzdHJpbmcgaSBsZW5ndGgpCgko Y29uZCAoKD0gaSBsZW5ndGgpICN0KQoJICAgICAgKCg8PSAoY2hhci1yYW5rIChzdHJpbmctcmVm IHN0cmluZyBpKSkgMikKCSAgICAgICAoc3Vic2VxdWVudHM/IHN0cmluZyAoKyBpIDEpIGxlbmd0 aCkpCgkgICAgICAoZWxzZSAjZikpKQogICAgICAoZGVmaW5lIChzcGVjaWFsLWlkPyBzdHJpbmcp Cgkob3IgKHN0cmluZz0/IHN0cmluZyAiKyIpCgkgICAgKHN0cmluZz0/IHN0cmluZyAiLSIpCgkg ICAgKHN0cmluZz0/IHN0cmluZyAiLi4uIikpKQogICAgICAoZGVmaW5lIChvay1zeW1ib2w/IHN0 cmluZykKCShpZiAoc3RyaW5nPT8gc3RyaW5nICIiKQoJICAgICNmCgkgICAgKGxldCAoKHJhbmsx IChjaGFyLXJhbmsgKHN0cmluZy1yZWYgc3RyaW5nIDApKSkpCgkgICAgICAoY29uZCAoKD0gcmFu azEgMCkgKHN1YnNlcXVlbnRzPyBzdHJpbmcgMSAoc3RyaW5nLWxlbmd0aCBzdHJpbmcpKSkKCQkg ICAgKCg9IHJhbmsxIDEpIChzcGVjaWFsLWlkPyBzdHJpbmcpKQoJCSAgICAoZWxzZSAjZikpKSkp CiAgICAgIChkZWZpbmUgKG5uLWhlbHBlciBzdHJpbmcgaSBsZW4gc2Vlbi1wb2ludD8pCgkoY29u ZCAoKD0gaSBsZW4pCgkgICAgICAgKGlmIHNlZW4tcG9pbnQ/CgkJICAgKG5vdCAoY2hhcj0/IChz dHJpbmctcmVmIHN0cmluZyAoLSBsZW4gMSkpICNcMCkpCgkJICAgI3QpKQoJICAgICAgKChjaGFy PT8gI1wuIChzdHJpbmctcmVmIHN0cmluZyBpKSkKCSAgICAgICAoY29uZCAoc2Vlbi1wb2ludD8g I2YpCgkJICAgICAoKD0gKCsgaSAyKSBsZW4pICN0KSAgOyBBY2NlcHRzICIyMy4wIgoJCSAgICAg KGVsc2UgKG5uLWhlbHBlciBzdHJpbmcgKCsgaSAxKSBsZW4gI3QpKSkpCgkgICAgICAoKD0gMiAo Y2hhci1yYW5rIChzdHJpbmctcmVmIHN0cmluZyBpKSkpCgkgICAgICAgKG5uLWhlbHBlciBzdHJp bmcgKCsgaSAxKSBsZW4gc2Vlbi1wb2ludD8pKQoJICAgICAgKGVsc2UgI2YpKSkKICAgICAgKGRl ZmluZSAobmFycm93LW51bWJlcj8gc3RyaW5nKQoJKGlmIChzdHJpbmc9PyBzdHJpbmcgIiIpCgkg ICAgI2YKCSAgICAobGV0KiAoKGMwIChzdHJpbmctcmVmIHN0cmluZyAwKSkKCQkgICAoc3RhcnQg MCkKCQkgICAobGVuIChzdHJpbmctbGVuZ3RoIHN0cmluZykpCgkJICAgKGNuIChzdHJpbmctcmVm IHN0cmluZyAoLSBsZW4gMSkpKSkKCSAgICAgIChpZiAoYW5kIChjaGFyPT8gYzAgI1wtKSAobm90 ICg9IGxlbiAxKSkpCgkJICAoYmVnaW4KCQkgICAoc2V0ISBzdGFydCAxKQoJCSAgIChzZXQhIGMw IChzdHJpbmctcmVmIHN0cmluZyAxKSkpCgkJICAjZikKCSAgICAgIChjb25kICgobm90ICg9IChj aGFyLXJhbmsgY24pIDIpKSAjZikgIDsgUmVqZWN0cyAiLSIgYW1vbmcgb3RoZXJzCgkJICAgICgo Y2hhcj0/IGMwICNcLikgI2YpCgkJICAgICgoY2hhcj0/IGMwICNcMCkKCQkgICAgIChjb25kICgo PSBsZW4gMSkgI3QpICA7IEFjY2VwdHMgIjAiIGJ1dCBub3QgIi0wIgoJCQkgICAoKD0gbGVuIDIp ICNmKSAgOyBSZWplY3RzICItMCIgYW5kICIwMyIKCQkJICAgKChjaGFyPT8gKHN0cmluZy1yZWYg c3RyaW5nICgrIHN0YXJ0IDEpKSAjXC4pCgkJCSAgICAobm4taGVscGVyIHN0cmluZyAoKyBzdGFy dCAyKSBsZW4gI3QpKQoJCQkgICAoZWxzZSAjZikpKQoJCSAgICAoZWxzZSAobm4taGVscGVyIHN0 cmluZyBzdGFydCBsZW4gI2YpKSkpKSkgCgogICAgICA7OyBUaGUgYm9keSBvZiBzdHJpbmctPndv cmQ6CiAgICAgIChjb25kICgobmFycm93LW51bWJlcj8gc3RyaW5nKSAoc3RyaW5nLT5udW1iZXIg c3RyaW5nKSkKCSAgICAoKG9rLXN5bWJvbD8gc3RyaW5nKSAoc3RyaW5nLT5zeW1ib2wgc3RyaW5n KSkKCSAgICAoZWxzZSBzdHJpbmcpKSkpKQoKKGRlZmluZSBjaGFyLT53b3JkCiAgKGxldCAoKD0g PSkKCShjaGFyLXJhbmsgY2hhci1yYW5rKQoJKG1ha2Utc3RyaW5nIG1ha2Utc3RyaW5nKQoJKHN0 cmluZy0+c3ltYm9sIHN0cmluZy0+c3ltYm9sKQoJKHN0cmluZy0+bnVtYmVyIHN0cmluZy0+bnVt YmVyKQoJKGNoYXI9PyBjaGFyPT8pKQogICAgKGxhbWJkYSAoY2hhcikKICAgICAgKGxldCAoKHJh bmsgKGNoYXItcmFuayBjaGFyKSkKCSAgICAoc3RyaW5nIChtYWtlLXN0cmluZyAxIGNoYXIpKSkK CShjb25kICgoPSByYW5rIDApIChzdHJpbmctPnN5bWJvbCBzdHJpbmcpKQoJICAgICAgKCg9IHJh bmsgMikgKHN0cmluZy0+bnVtYmVyIHN0cmluZykpCgkgICAgICAoKGNoYXI9PyBjaGFyICNcKykg JyspCgkgICAgICAoKGNoYXI9PyBjaGFyICNcLSkgJy0pCgkgICAgICAoZWxzZSBzdHJpbmcpKSkp KSkKCihkZWZpbmUgd29yZC0+c3RyaW5nCiAgKGxldCAoKG51bWJlcj8gbnVtYmVyPykKCShzdHJp bmc/IHN0cmluZz8pCgkobnVtYmVyLT5zdHJpbmcgbnVtYmVyLT5zdHJpbmcpCgkoc3ltYm9sLT5z dHJpbmcgc3ltYm9sLT5zdHJpbmcpKQogICAgKGxhbWJkYSAod2QpCiAgICAgIChjb25kICgoc3Ry aW5nPyB3ZCkgd2QpCgkgICAgKChudW1iZXI/IHdkKSAobnVtYmVyLT5zdHJpbmcgd2QpKQoJICAg IChlbHNlIChzeW1ib2wtPnN0cmluZyB3ZCkpKSkpKQoKKGRlZmluZSBjb3VudAogIChsZXQgKCh3 b3JkPyB3b3JkPykKCShzdHJpbmctbGVuZ3RoIHN0cmluZy1sZW5ndGgpCgkod29yZC0+c3RyaW5n IHdvcmQtPnN0cmluZykKCShsZW5ndGggbGVuZ3RoKSkKICAgIChsYW1iZGEgKHN0dWZmKQogICAg ICAoaWYgKHdvcmQ/IHN0dWZmKQoJICAoc3RyaW5nLWxlbmd0aCAod29yZC0+c3RyaW5nIHN0dWZm KSkKCSAgKGxlbmd0aCBzdHVmZikpKSkpCgooZGVmaW5lIHdvcmQKICAobGV0ICgoc3RyaW5nLT53 b3JkIHN0cmluZy0+d29yZCkKCShhcHBseSBhcHBseSkKCShzdHJpbmctYXBwZW5kIHN0cmluZy1h cHBlbmQpCgkobWFwIG1hcCkKCSh3b3JkPyB3b3JkPykKCSh3b3JkLT5zdHJpbmcgd29yZC0+c3Ry aW5nKQoJKHdob29wcyB3aG9vcHMpKQogICAgKGxhbWJkYSB4CiAgICAgIChzdHJpbmctPndvcmQK ICAgICAgIChhcHBseSBzdHJpbmctYXBwZW5kCgkgICAgICAobWFwIChsYW1iZGEgKGFyZykKCQkg ICAgIChpZiAod29yZD8gYXJnKQoJCQkgKHdvcmQtPnN0cmluZyBhcmcpCgkJCSAod2hvb3BzICJJ bnZhbGlkIGFyZ3VtZW50IHRvIFdPUkQ6ICIgYXJnKSkpCgkJICAgeCkpKSkpKQoKKGRlZmluZSBz ZQogIChsZXQgKChwYWlyPyBwYWlyPykKCShudWxsPyBudWxsPykKCSh3b3JkPyB3b3JkPykKCShj YXIgY2FyKQoJKGNvbnMgY29ucykKCShjZHIgY2RyKQoJKHdob29wcyB3aG9vcHMpKQogICAgKGRl ZmluZSAocGFyYW5vaWQtYXBwZW5kIGEgb3JpZ2luYWwtYSBiKQogICAgICAoY29uZCAoKG51bGw/ IGEpIGIpCgkgICAgKCh3b3JkPyAoY2FyIGEpKQoJICAgICAoY29ucyAoY2FyIGEpIChwYXJhbm9p ZC1hcHBlbmQgKGNkciBhKSBvcmlnaW5hbC1hIGIpKSkKCSAgICAoZWxzZSAod2hvb3BzICJBcmd1 bWVudCB0byBTRU5URU5DRSBub3QgYSB3b3JkIG9yIHNlbnRlbmNlIgoJCQkgb3JpZ2luYWwtYSAp KSkpCiAgICAoZGVmaW5lIChjb21iaW5lLXR3byBhIGIpICAgICAgICAgICAgICAgIDs7IE5vdGU6 IGIgaXMgYWx3YXlzIGEgbGlzdAogICAgICAoY29uZCAoKHBhaXI/IGEpIChwYXJhbm9pZC1hcHBl bmQgYSBhIGIpKQoJICAgICgobnVsbD8gYSkgYikKCSAgICAoKHdvcmQ/IGEpIChjb25zIGEgYikp CgkgICAgKGVsc2UgKHdob29wcyAiQXJndW1lbnQgdG8gU0VOVEVOQ0Ugbm90IGEgd29yZCBvciBz ZW50ZW5jZToiIGEpKSkpCiAgICA7OyBIZWxwZXIgZnVuY3Rpb24gc28gcmVjdXJzaXZlIGNhbGxz IGRvbid0IHNob3cgdXAgaW4gVFJBQ0UKICAgIChkZWZpbmUgKHJlYWwtc2UgYXJncykKICAgICAg KGlmIChudWxsPyBhcmdzKQoJICAnKCkKCSAgKGNvbWJpbmUtdHdvIChjYXIgYXJncykgKHJlYWwt c2UgKGNkciBhcmdzKSkpKSkKICAgIChsYW1iZGEgYXJncwogICAgICAocmVhbC1zZSBhcmdzKSkp KQoKKGRlZmluZSBzZW50ZW5jZSBzZSkKCihkZWZpbmUgZmlyc3QKICAobGV0ICgocGFpcj8gcGFp cj8pCgkoY2hhci0+d29yZCBjaGFyLT53b3JkKQoJKHN0cmluZy1yZWYgc3RyaW5nLXJlZikKCSh3 b3JkLT5zdHJpbmcgd29yZC0+c3RyaW5nKQoJKGNhciBjYXIpCgkoZW1wdHk/IGVtcHR5PykKCSh3 aG9vcHMgd2hvb3BzKQoJKHdvcmQ/IHdvcmQ/KSkKICAgIChkZWZpbmUgKHdvcmQtZmlyc3Qgd2Qp CiAgICAgIChjaGFyLT53b3JkIChzdHJpbmctcmVmICh3b3JkLT5zdHJpbmcgd2QpIDApKSkKICAg IChsYW1iZGEgKHgpCiAgICAgIChjb25kICgocGFpcj8geCkgKGNhciB4KSkKCSAgICAoKGVtcHR5 PyB4KSAod2hvb3BzICJJbnZhbGlkIGFyZ3VtZW50IHRvIEZJUlNUOiAiIHgpKQoJICAgICgod29y ZD8geCkgKHdvcmQtZmlyc3QgeCkpCgkgICAgKGVsc2UgKHdob29wcyAiSW52YWxpZCBhcmd1bWVu dCB0byBGSVJTVDogIiB4KSkpKSkpCgooZGVmaW5lIGxhc3QKICAobGV0ICgocGFpcj8gcGFpcj8p CgkoLSAtKQoJKHdvcmQtPnN0cmluZyB3b3JkLT5zdHJpbmcpCgkoY2hhci0+d29yZCBjaGFyLT53 b3JkKQoJKHN0cmluZy1yZWYgc3RyaW5nLXJlZikKCShzdHJpbmctbGVuZ3RoIHN0cmluZy1sZW5n dGgpCgkoZW1wdHk/IGVtcHR5PykKCShjZHIgY2RyKQoJKGNhciBjYXIpCgkod2hvb3BzIHdob29w cykKCSh3b3JkPyB3b3JkPykpCiAgICAoZGVmaW5lICh3b3JkLWxhc3Qgd2QpCiAgICAgIChsZXQg KChzICh3b3JkLT5zdHJpbmcgd2QpKSkKCShjaGFyLT53b3JkIChzdHJpbmctcmVmIHMgKC0gKHN0 cmluZy1sZW5ndGggcykgMSkpKSkpCiAgICAoZGVmaW5lIChsaXN0LWxhc3QgbHN0KSAgICAgIAog ICAgICAoaWYgKGVtcHR5PyAoY2RyIGxzdCkpCgkgIChjYXIgbHN0KQoJICAobGlzdC1sYXN0IChj ZHIgbHN0KSkpKQogICAgKGxhbWJkYSAoeCkKICAgICAgKGNvbmQgKChwYWlyPyB4KSAobGlzdC1s YXN0IHgpKQoJICAgICgoZW1wdHk/IHgpICh3aG9vcHMgIkludmFsaWQgYXJndW1lbnQgdG8gTEFT VDogIiB4KSkKCSAgICAoKHdvcmQ/IHgpICh3b3JkLWxhc3QgeCkpCgkgICAgKGVsc2UgKHdob29w cyAiSW52YWxpZCBhcmd1bWVudCB0byBMQVNUOiAiIHgpKSkpKSkKCihkZWZpbmUgYmYKICAobGV0 ICgocGFpcj8gcGFpcj8pCgkoc3Vic3RyaW5nIHN1YnN0cmluZykKCShzdHJpbmctbGVuZ3RoIHN0 cmluZy1sZW5ndGgpCgkoc3RyaW5nLT53b3JkIHN0cmluZy0+d29yZCkKCSh3b3JkLT5zdHJpbmcg d29yZC0+c3RyaW5nKQoJKGNkciBjZHIpCgkoZW1wdHk/IGVtcHR5PykKCSh3aG9vcHMgd2hvb3Bz KQoJKHdvcmQ/IHdvcmQ/KSkKICAgIChkZWZpbmUgc3RyaW5nLWJmCiAgICAgIChsYW1iZGEgKHMp CiAgICAgIChzdWJzdHJpbmcgcyAxIChzdHJpbmctbGVuZ3RoIHMpKSkpCiAgICAoZGVmaW5lICh3 b3JkLWJmIHdkKQogICAgICAoc3RyaW5nLT53b3JkIChzdHJpbmctYmYgKHdvcmQtPnN0cmluZyB3 ZCkpKSkKICAgIChsYW1iZGEgKHgpCiAgICAgIChjb25kICgocGFpcj8geCkgKGNkciB4KSkKCSAg ICAoKGVtcHR5PyB4KSAod2hvb3BzICJJbnZhbGlkIGFyZ3VtZW50IHRvIEJVVEZJUlNUOiAiIHgp KQoJICAgICgod29yZD8geCkgKHdvcmQtYmYgeCkpCgkgICAgKGVsc2UgKHdob29wcyAiSW52YWxp ZCBhcmd1bWVudCB0byBCVVRGSVJTVDogIiB4KSkpKSkpCgooZGVmaW5lIGJ1dGZpcnN0IGJmKQoK KGRlZmluZSBibAogIChsZXQgKChwYWlyPyBwYWlyPykgKC0gLSkKCShjZHIgY2RyKQoJKGNvbnMg Y29ucykKCShjYXIgY2FyKQoJKHN1YnN0cmluZyBzdWJzdHJpbmcpCgkoc3RyaW5nLWxlbmd0aCBz dHJpbmctbGVuZ3RoKQoJKHN0cmluZy0+d29yZCBzdHJpbmctPndvcmQpCgkod29yZC0+c3RyaW5n IHdvcmQtPnN0cmluZykKCShlbXB0eT8gZW1wdHk/KQoJKHdob29wcyB3aG9vcHMpCgkod29yZD8g d29yZD8pKQogICAgKGRlZmluZSAobGlzdC1ibCBsaXN0KQogICAgICAoaWYgKG51bGw/IChjZHIg bGlzdCkpCgkgICcoKQoJICAoY29ucyAoY2FyIGxpc3QpIChsaXN0LWJsIChjZHIgbGlzdCkpKSkp CiAgICAoZGVmaW5lIChzdHJpbmctYmwgcykKICAgICAgKHN1YnN0cmluZyBzIDAgKC0gKHN0cmlu Zy1sZW5ndGggcykgMSkpKSAgCiAgICAoZGVmaW5lICh3b3JkLWJsIHdkKQogICAgICAoc3RyaW5n LT53b3JkIChzdHJpbmctYmwgKHdvcmQtPnN0cmluZyB3ZCkpKSkKICAgIChsYW1iZGEgKHgpCiAg ICAgIChjb25kICgocGFpcj8geCkgKGxpc3QtYmwgeCkpCgkgICAgKChlbXB0eT8geCkgKHdob29w cyAiSW52YWxpZCBhcmd1bWVudCB0byBCVVRMQVNUOiAiIHgpKQoJICAgICgod29yZD8geCkgKHdv cmQtYmwgeCkpCgkgICAgKGVsc2UgKHdob29wcyAiSW52YWxpZCBhcmd1bWVudCB0byBCVVRMQVNU OiAiIHgpKSkpKSkKCihkZWZpbmUgYnV0bGFzdCBibCkKCihkZWZpbmUgaXRlbQogIChsZXQgKCg+ ID4pICgtIC0pICg8IDwpIChpbnRlZ2VyPyBpbnRlZ2VyPykgKGxpc3QtcmVmIGxpc3QtcmVmKQoJ KGNoYXItPndvcmQgY2hhci0+d29yZCkKCShzdHJpbmctcmVmIHN0cmluZy1yZWYpCgkod29yZC0+ c3RyaW5nIHdvcmQtPnN0cmluZykKCShub3Qgbm90KQoJKHdob29wcyB3aG9vcHMpCgkoY291bnQg Y291bnQpCgkod29yZD8gd29yZD8pCgkobGlzdD8gbGlzdD8pKQogICAgKGRlZmluZSAod29yZC1p dGVtIG4gd2QpCiAgICAgIChjaGFyLT53b3JkIChzdHJpbmctcmVmICh3b3JkLT5zdHJpbmcgd2Qp ICgtIG4gMSkpKSkKICAgIChsYW1iZGEgKG4gc3R1ZmYpCiAgICAgIChjb25kICgobm90IChpbnRl Z2VyPyBuKSkKCSAgICAgKHdob29wcyAiSW52YWxpZCBmaXJzdCBhcmd1bWVudCB0byBJVEVNICht dXN0IGJlIGFuIGludGVnZXIpOiAiCgkJICAgICBuKSkKCSAgICAoKDwgbiAxKQoJICAgICAod2hv b3BzICJJbnZhbGlkIGZpcnN0IGFyZ3VtZW50IHRvIElURU0gKG11c3QgYmUgcG9zaXRpdmUpOiAi CgkJICAgICBuKSkKCSAgICAoKD4gbiAoY291bnQgc3R1ZmYpKQoJICAgICAod2hvb3BzICJObyBz dWNoIGl0ZW06ICIgbiBzdHVmZikpCgkgICAgKCh3b3JkPyBzdHVmZikgKHdvcmQtaXRlbSBuIHN0 dWZmKSkKCSAgICAoKGxpc3Q/IHN0dWZmKSAobGlzdC1yZWYgc3R1ZmYgKC0gbiAxKSkpCgkgICAg KGVsc2UgKHdob29wcyAiSW52YWxpZCBzZWNvbmQgYXJndW1lbnQgdG8gSVRFTTogIiBzdHVmZikp KSkpKQoKKGRlZmluZSBlcXVhbD8KICA7OyBOb3RlIHRoYXQgRVFVQUw/IGFzc3VtZXMgc3RyaW5n cyBhcmUgbnVtYmVycy4KICA7OyAoc3RyaW5ncy1hcmUtbnVtYmVycyAjZikgZG9lc24ndCBjaGFu Z2UgdGhpcyBiZWhhdmlvci4KICAobGV0ICgodmVjdG9yLWxlbmd0aCB2ZWN0b3ItbGVuZ3RoKQoJ KD0gPSkKCSh2ZWN0b3ItcmVmIHZlY3Rvci1yZWYpCgkoKyArKQoJKHN0cmluZz8gc3RyaW5nPykK CShzeW1ib2w/IHN5bWJvbD8pCgkobnVsbD8gbnVsbD8pCgkocGFpcj8gcGFpcj8pCgkoY2FyIGNh cikKCShjZHIgY2RyKQoJKGVxPyBlcT8pCgkoc3RyaW5nPT8gc3RyaW5nPT8pCgkoc3ltYm9sLT5z dHJpbmcgc3ltYm9sLT5zdHJpbmcpCgkobnVtYmVyPyBudW1iZXI/KQoJKHN0cmluZy0+d29yZCBz dHJpbmctPndvcmQpCgkodmVjdG9yPyB2ZWN0b3I/KQoJKGVxdj8gZXF2PykpCiAgICAoZGVmaW5l ICh2ZWN0b3ItZXF1YWw/IHYxIHYyKQogICAgICAobGV0ICgobGVuMSAodmVjdG9yLWxlbmd0aCB2 MSkpCgkgICAgKGxlbjIgKHZlY3Rvci1sZW5ndGggdjIpKSkKCShkZWZpbmUgKGhlbHBlciBpKQoJ ICAoaWYgKD0gaSBsZW4xKQoJICAgICAgI3QKCSAgICAgIChhbmQgKGVxdWFsPyAodmVjdG9yLXJl ZiB2MSBpKSAodmVjdG9yLXJlZiB2MiBpKSkKCQkgICAoaGVscGVyICgrIGkgMSkpKSkpCgkoaWYg KD0gbGVuMSBsZW4yKQoJICAgIChoZWxwZXIgMCkKCSAgICAjZikpKQogICAgKGxhbWJkYSAoeCB5 KQogICAgICAoY29uZCAoKG51bGw/IHgpIChudWxsPyB5KSkKCSAgICAoKG51bGw/IHkpICNmKQoJ ICAgICgocGFpcj8geCkKCSAgICAgKGFuZCAocGFpcj8geSkKCQkgIChlcXVhbD8gKGNhciB4KSAo Y2FyIHkpKQoJCSAgKGVxdWFsPyAoY2RyIHgpIChjZHIgeSkpKSkKCSAgICAoKHBhaXI/IHkpICNm KQoJICAgICgoc3ltYm9sPyB4KQoJICAgICAob3IgKGFuZCAoc3ltYm9sPyB5KSAoZXE/IHggeSkp CgkJIChhbmQgKHN0cmluZz8geSkgKHN0cmluZz0/IChzeW1ib2wtPnN0cmluZyB4KSB5KSkpKQoJ ICAgICgoc3ltYm9sPyB5KQoJICAgICAoYW5kIChzdHJpbmc/IHgpIChzdHJpbmc9PyB4IChzeW1i b2wtPnN0cmluZyB5KSkpKQoJICAgICgobnVtYmVyPyB4KQoJICAgICAob3IgKGFuZCAobnVtYmVy PyB5KSAoPSB4IHkpKQoJCSAoYW5kIChzdHJpbmc/IHkpCgkJICAgICAgKGxldCAoKHBvc3NpYmxl LW51bSAoc3RyaW5nLT53b3JkIHkpKSkKCQkJKGFuZCAobnVtYmVyPyBwb3NzaWJsZS1udW0pCgkJ CSAgICAgKD0geCBwb3NzaWJsZS1udW0pKSkpKSkKCSAgICAoKG51bWJlcj8geSkKCSAgICAgKGFu ZCAoc3RyaW5nPyB4KQoJCSAgKGxldCAoKHBvc3NpYmxlLW51bSAoc3RyaW5nLT53b3JkIHgpKSkK CQkgICAgKGFuZCAobnVtYmVyPyBwb3NzaWJsZS1udW0pCgkJCSAoPSBwb3NzaWJsZS1udW0geSkp KSkpCgkgICAgKChzdHJpbmc/IHgpIChhbmQgKHN0cmluZz8geSkgKHN0cmluZz0/IHggeSkpKQoJ ICAgICgoc3RyaW5nPyB5KSAjZikKCSAgICAoKHZlY3Rvcj8geCkgKGFuZCAodmVjdG9yPyB5KSAo dmVjdG9yLWVxdWFsPyB4IHkpKSkKCSAgICAoKHZlY3Rvcj8geSkgI2YpCgkgICAgKGVsc2UgKGVx dj8geCB5KSkpKSkpCgooZGVmaW5lIG1lbWJlcj8KICAobGV0ICgoPiA+KSAoLSAtKSAoPCA8KQoJ KG51bGw/IG51bGw/KQoJKHN5bWJvbD8gc3ltYm9sPykKCShlcT8gZXE/KQoJKGNhciBjYXIpCgko bm90IG5vdCkKCShzeW1ib2wtPnN0cmluZyBzeW1ib2wtPnN0cmluZykKCShzdHJpbmc9PyBzdHJp bmc9PykKCShjZHIgY2RyKQoJKGVxdWFsPyBlcXVhbD8pCgkod29yZC0+c3RyaW5nIHdvcmQtPnN0 cmluZykKCShzdHJpbmctbGVuZ3RoIHN0cmluZy1sZW5ndGgpCgkod2hvb3BzIHdob29wcykKCShz dHJpbmctcmVmIHN0cmluZy1yZWYpCgkoY2hhcj0/IGNoYXI9PykKCShsaXN0PyBsaXN0PykKCShu dW1iZXI/IG51bWJlcj8pCgkoZW1wdHk/IGVtcHR5PykKCSh3b3JkPyB3b3JkPykKCShzdHJpbmc/ IHN0cmluZz8pKQogICAgKGRlZmluZSAoc3ltYm9sLWluLWxpc3Q/IHN5bWJvbCBzdHJpbmcgbHN0 KQogICAgICAoY29uZCAoKG51bGw/IGxzdCkgI2YpCgkgICAgKChhbmQgKHN5bWJvbD8gKGNhciBs c3QpKQoJCSAgKGVxPyBzeW1ib2wgKGNhciBsc3QpKSkpCgkgICAgKChzdHJpbmc/IChjYXIgbHN0 KSkKCSAgICAgKGNvbmQgKChub3Qgc3RyaW5nKQoJCSAgICAoc3ltYm9sLWluLWxpc3Q/IHN5bWJv bCAoc3ltYm9sLT5zdHJpbmcgc3ltYm9sKSBsc3QpKQoJCSAgICgoc3RyaW5nPT8gc3RyaW5nIChj YXIgbHN0KSkgI3QpCgkJICAgKGVsc2UgKHN5bWJvbC1pbi1saXN0PyBzeW1ib2wgc3RyaW5nIChj ZHIgbHN0KSkpKSkKCSAgICAoZWxzZSAoc3ltYm9sLWluLWxpc3Q/IHN5bWJvbCBzdHJpbmcgKGNk ciBsc3QpKSkpKQogICAgKGRlZmluZSAod29yZC1pbi1saXN0PyB3ZCBsc3QpCiAgICAgIChjb25k ICgobnVsbD8gbHN0KSAjZikKCSAgICAoKGVxdWFsPyB3ZCAoY2FyIGxzdCkpICN0KQoJICAgIChl bHNlICh3b3JkLWluLWxpc3Q/IHdkIChjZHIgbHN0KSkpKSkKICAgIChkZWZpbmUgKHdvcmQtaW4t d29yZD8gc21hbGwgYmlnKQogICAgICAobGV0ICgob25lLWxldHRlci1zdHIgKHdvcmQtPnN0cmlu ZyBzbWFsbCkpKQoJKGlmICg+IChzdHJpbmctbGVuZ3RoIG9uZS1sZXR0ZXItc3RyKSAxKQoJICAg ICh3aG9vcHMgIkludmFsaWQgYXJndW1lbnRzIHRvIE1FTUJFUj86ICIgc21hbGwgYmlnKQoJICAg IChsZXQgKChiaWctc3RyICh3b3JkLT5zdHJpbmcgYmlnKSkpCgkgICAgICAoY2hhci1pbi1zdHJp bmc/IChzdHJpbmctcmVmIG9uZS1sZXR0ZXItc3RyIDApCgkJCSAgICAgICBiaWctc3RyCgkJCSAg ICAgICAoLSAoc3RyaW5nLWxlbmd0aCBiaWctc3RyKSAxKSkpKSkpCiAgICAoZGVmaW5lIChjaGFy LWluLXN0cmluZz8gY2hhciBzdHJpbmcgaSkKICAgICAgKGNvbmQgKCg8IGkgMCkgI2YpCgkgICAg KChjaGFyPT8gY2hhciAoc3RyaW5nLXJlZiBzdHJpbmcgaSkpICN0KQoJICAgIChlbHNlIChjaGFy LWluLXN0cmluZz8gY2hhciBzdHJpbmcgKC0gaSAxKSkpKSkKICAgIChsYW1iZGEgKHggc3R1ZmYp CiAgICAgIChjb25kICgoZW1wdHk/IHN0dWZmKSAjZikKCSAgICAoKHdvcmQ/IHN0dWZmKSAod29y ZC1pbi13b3JkPyB4IHN0dWZmKSkKCSAgICAoKG5vdCAobGlzdD8gc3R1ZmYpKQoJICAgICAod2hv b3BzICJJbnZhbGlkIHNlY29uZCBhcmd1bWVudCB0byBNRU1CRVI/OiAiIHN0dWZmKSkKCSAgICAo KHN5bWJvbD8geCkgKHN5bWJvbC1pbi1saXN0PyB4ICNmIHN0dWZmKSkKCSAgICAoKG9yIChudW1i ZXI/IHgpIChzdHJpbmc/IHgpKQoJICAgICAod29yZC1pbi1saXN0PyB4IHN0dWZmKSkKCSAgICAo ZWxzZSAod2hvb3BzICJJbnZhbGlkIGZpcnN0IGFyZ3VtZW50IHRvIE1FTUJFUj86ICIgeCkpKSkp KQoKKGRlZmluZSBiZWZvcmU/CiAgKGxldCAoKG5vdCBub3QpCgkod29yZD8gd29yZD8pCgkod2hv b3BzIHdob29wcykKCShzdHJpbmc8PyBzdHJpbmc8PykKCSh3b3JkLT5zdHJpbmcgd29yZC0+c3Ry aW5nKSkKICAgIChsYW1iZGEgKHdkMSB3ZDIpCiAgICAgIChjb25kICgobm90ICh3b3JkPyB3ZDEp KQoJICAgICAod2hvb3BzICJJbnZhbGlkIGZpcnN0IGFyZ3VtZW50IHRvIEJFRk9SRT8gKG5vdCBh IHdvcmQpOiAiIHdkMSkpCgkgICAgKChub3QgKHdvcmQ/IHdkMikpCgkgICAgICh3aG9vcHMgIklu dmFsaWQgc2Vjb25kIGFyZ3VtZW50IHRvIEJFRk9SRT8gKG5vdCBhIHdvcmQpOiAiIHdkMikpCgkg ICAgKGVsc2UgKHN0cmluZzw/ICh3b3JkLT5zdHJpbmcgd2QxKSAod29yZC0+c3RyaW5nIHdkMikp KSkpKSkKCgo7OzsgSGlnaGVyIE9yZGVyIEZ1bmN0aW9ucwoKKGRlZmluZSBmaWx0ZXIKICAobGV0 ICgobnVsbD8gbnVsbD8pCgkoY2FyIGNhcikKCShjb25zIGNvbnMpCgkoY2RyIGNkcikKCShub3Qg bm90KQoJKHByb2NlZHVyZT8gcHJvY2VkdXJlPykKCSh3aG9vcHMgd2hvb3BzKQoJKGxpc3Q/IGxp c3Q/KSkKICAgIChsYW1iZGEgKHByZWQgbCkKICAgICAgOzsgSGVscGVyIGZ1bmN0aW9uIHNvIHJl Y3Vyc2l2ZSBjYWxscyBkb24ndCBzaG93IHVwIGluIFRSQUNFCiAgICAgIChkZWZpbmUgKHJlYWwt ZmlsdGVyIGwpCgkoY29uZCAoKG51bGw/IGwpICcoKSkKCSAgICAgICgocHJlZCAoY2FyIGwpKQoJ ICAgICAgIChjb25zIChjYXIgbCkgKHJlYWwtZmlsdGVyIChjZHIgbCkpKSkKCSAgICAgIChlbHNl IChyZWFsLWZpbHRlciAoY2RyIGwpKSkpKQogICAgICAoY29uZCAoKG5vdCAocHJvY2VkdXJlPyBw cmVkKSkKCSAgICAgKHdob29wcyAiSW52YWxpZCBmaXJzdCBhcmd1bWVudCB0byBGSUxURVIgKG5v dCBhIHByb2NlZHVyZSk6ICIKCQkgICAgIHByZWQpKQoJICAgICgobm90IChsaXN0PyBsKSkKCSAg ICAgKHdob29wcyAiSW52YWxpZCBzZWNvbmQgYXJndW1lbnQgdG8gRklMVEVSIChub3QgYSBsaXN0 KTogIiBsKSkKCSAgICAoZWxzZSAocmVhbC1maWx0ZXIgbCkpKSkpKQoKKGRlZmluZSBrZWVwCiAg KGxldCAoKCsgKykgKD0gPSkgKHBhaXI/IHBhaXI/KQoJKHN1YnN0cmluZyBzdWJzdHJpbmcpCgko Y2hhci0+d29yZCBjaGFyLT53b3JkKQoJKHN0cmluZy1yZWYgc3RyaW5nLXJlZikKCShzdHJpbmct c2V0ISBzdHJpbmctc2V0ISkKCSh3b3JkLT5zdHJpbmcgd29yZC0+c3RyaW5nKQoJKHN0cmluZy1s ZW5ndGggc3RyaW5nLWxlbmd0aCkKCShzdHJpbmctPndvcmQgc3RyaW5nLT53b3JkKQoJKG1ha2Ut c3RyaW5nIG1ha2Utc3RyaW5nKQoJKHByb2NlZHVyZT8gcHJvY2VkdXJlPykKCSh3aG9vcHMgd2hv b3BzKQoJKHdvcmQ/IHdvcmQ/KQoJKG51bGw/IG51bGw/KSkKICAgIChsYW1iZGEgKHByZWQgdy1v ci1zKQogICAgICAoZGVmaW5lIChrZWVwLXN0cmluZyBpbiBpIG91dCBvdXQtbGVuIGxlbikKCShj b25kICgoPSBpIGxlbikgKHN1YnN0cmluZyBvdXQgMCBvdXQtbGVuKSkKCSAgICAgICgocHJlZCAo Y2hhci0+d29yZCAoc3RyaW5nLXJlZiBpbiBpKSkpCgkgICAgICAgKHN0cmluZy1zZXQhIG91dCBv dXQtbGVuIChzdHJpbmctcmVmIGluIGkpKQoJICAgICAgIChrZWVwLXN0cmluZyBpbiAoKyBpIDEp IG91dCAoKyBvdXQtbGVuIDEpIGxlbikpCgkgICAgICAoZWxzZSAoa2VlcC1zdHJpbmcgaW4gKCsg aSAxKSBvdXQgb3V0LWxlbiBsZW4pKSkpCiAgICAgIChkZWZpbmUgKGtlZXAtd29yZCB3ZCkKCShs ZXQqICgoc3RyaW5nICh3b3JkLT5zdHJpbmcgd2QpKQoJICAgICAgIChsZW4gKHN0cmluZy1sZW5n dGggc3RyaW5nKSkpCgkgIChzdHJpbmctPndvcmQKCSAgIChrZWVwLXN0cmluZyBzdHJpbmcgMCAo bWFrZS1zdHJpbmcgbGVuKSAwIGxlbikpKSkKICAgICAgKGNvbmQgKChub3QgKHByb2NlZHVyZT8g cHJlZCkpCgkgICAgICh3aG9vcHMgIkludmFsaWQgZmlyc3QgYXJndW1lbnQgdG8gS0VFUCAobm90 IGEgcHJvY2VkdXJlKTogIgoJCSAgICBwcmVkKSkKCSAgICAoKHBhaXI/IHctb3ItcykgKGZpbHRl ciBwcmVkIHctb3ItcykpCgkgICAgKCh3b3JkPyB3LW9yLXMpIChrZWVwLXdvcmQgdy1vci1zKSkK CSAgICAoKG51bGw/IHctb3ItcykgJygpKQoJICAgIChlbHNlCgkgICAgICh3aG9vcHMgIkJhZCBz ZWNvbmQgYXJndW1lbnQgdG8gS0VFUCAobm90IGEgd29yZCBvciBzZW50ZW5jZSk6ICIKCQkgICAg IHctb3ItcykpKSkpKQoKKGRlZmluZSBhcHBlYXJhbmNlcwogIChsZXQgKChjb3VudCBjb3VudCkK CShrZWVwIGtlZXApCgkoZXF1YWw/IGVxdWFsPykpCiAgICAobGFtYmRhIChpdGVtIGFnZ3JlZ2F0 ZSkKICAgICAgKGNvdW50IChrZWVwIChsYW1iZGEgKGVsZW1lbnQpIChlcXVhbD8gaXRlbSBlbGVt ZW50KSkgYWdncmVnYXRlKSkpKSkKCihkZWZpbmUgZXZlcnkKICAobGV0ICgoPSA9KSAoKyArKQoJ KHNlIHNlKQoJKGNoYXItPndvcmQgY2hhci0+d29yZCkKCShzdHJpbmctcmVmIHN0cmluZy1yZWYp CgkoZW1wdHk/IGVtcHR5PykKCShmaXJzdCBmaXJzdCkKCShiZiBiZikKCShub3Qgbm90KQoJKHBy b2NlZHVyZT8gcHJvY2VkdXJlPykKCSh3aG9vcHMgd2hvb3BzKQoJKHdvcmQ/IHdvcmQ/KQoJKHdv cmQtPnN0cmluZyB3b3JkLT5zdHJpbmcpCgkoc3RyaW5nLWxlbmd0aCBzdHJpbmctbGVuZ3RoKSkK ICAgIChsYW1iZGEgKGZuIHN0dWZmKQogICAgICAoZGVmaW5lIChzdHJpbmctZXZlcnkgc3RyaW5n IGkgbGVuZ3RoKQoJKGlmICg9IGkgbGVuZ3RoKQoJICAgICcoKQoJICAgIChzZSAoZm4gKGNoYXIt PndvcmQgKHN0cmluZy1yZWYgc3RyaW5nIGkpKSkKCQkoc3RyaW5nLWV2ZXJ5IHN0cmluZyAoKyBp IDEpIGxlbmd0aCkpKSkKICAgICAgKGRlZmluZSAoc2VudC1ldmVyeSBzZW50KQoJOzsgVGhpcyBw cm9jLiBjYW4ndCBiZSBvcHRpbWl6ZWQgb3IgZWxzZSBpdCB3aWxsIGJyZWFrIHRoZQoJOzsgZXhl cmNpc2Ugd2hlcmUgd2UgYXNrIHRoZW0gdG8gcmVpbXBsZW1lbnQgc2VudGVuY2VzIGFzCgk7OyB2 ZWN0b3JzIGFuZCB0aGVuIHNlZSBpZiBldmVyeSBzdGlsbCB3b3Jrcy4KCShpZiAoZW1wdHk/IHNl bnQpCgkgICAgc2VudAkJOyBDYW4ndCBiZSAnKCkgb3IgZXhlcmNpc2UgYnJlYWtzLgoJICAgIChz ZSAoZm4gKGZpcnN0IHNlbnQpKSAgICAKCQkoc2VudC1ldmVyeSAoYmYgc2VudCkpKSkpCiAgICAg IChjb25kICgobm90IChwcm9jZWR1cmU/IGZuKSkKCSAgICAgKHdob29wcyAiSW52YWxpZCBmaXJz dCBhcmd1bWVudCB0byBFVkVSWSAobm90IGEgcHJvY2VkdXJlKToiCgkJICAgICBmbikpCgkgICAg KCh3b3JkPyBzdHVmZikKCSAgICAgKGxldCAoKHN0cmluZyAod29yZC0+c3RyaW5nIHN0dWZmKSkp CgkgICAgICAgKHN0cmluZy1ldmVyeSBzdHJpbmcgMCAoc3RyaW5nLWxlbmd0aCBzdHJpbmcpKSkp CgkgICAgKGVsc2UgKHNlbnQtZXZlcnkgc3R1ZmYpKSkpKSkKCihkZWZpbmUgYWNjdW11bGF0ZQog IChsZXQgKChub3Qgbm90KQoJKGVtcHR5PyBlbXB0eT8pCgkoYmYgYmYpCgkoZmlyc3QgZmlyc3Qp CgkocHJvY2VkdXJlPyBwcm9jZWR1cmU/KQoJKHdob29wcyB3aG9vcHMpCgkobWVtYmVyIG1lbWJl cikKCShsaXN0IGxpc3QpKQogICAgKGxhbWJkYSAoY29tYmluZXIgc3R1ZmYpCiAgICAgIChkZWZp bmUgKHJlYWwtYWNjdW11bGF0ZSBzdHVmZikKCShpZiAoZW1wdHk/IChiZiBzdHVmZikpCgkgICAg KGZpcnN0IHN0dWZmKQoJICAgIChjb21iaW5lciAoZmlyc3Qgc3R1ZmYpIChyZWFsLWFjY3VtdWxh dGUgKGJmIHN0dWZmKSkpKSkKICAgICAgKGNvbmQgKChub3QgKHByb2NlZHVyZT8gY29tYmluZXIp KQoJICAgICAod2hvb3BzICJJbnZhbGlkIGZpcnN0IGFyZ3VtZW50IHRvIEFDQ1VNVUxBVEUgKG5v dCBhIHByb2NlZHVyZSk6IgoJCSAgICAgY29tYmluZXIpKQoJICAgICgobm90IChlbXB0eT8gc3R1 ZmYpKSAocmVhbC1hY2N1bXVsYXRlIHN0dWZmKSkKCSAgICAoKG1lbWJlciBjb21iaW5lciAobGlz dCArICogd29yZCBzZSkpIChjb21iaW5lcikpCgkgICAgKGVsc2UKCSAgICAgKHdob29wcyAiQ2Fu J3QgYWNjdW11bGF0ZSBlbXB0eSBpbnB1dCB3aXRoIHRoYXQgY29tYmluZXIiKSkpKSkpCgooZGVm aW5lIHJlZHVjZQogIChsZXQgKChudWxsPyBudWxsPykKCShjZHIgY2RyKQoJKGNhciBjYXIpCgko bm90IG5vdCkKCShwcm9jZWR1cmU/IHByb2NlZHVyZT8pCgkod2hvb3BzIHdob29wcykKCShtZW1i ZXIgbWVtYmVyKQoJKGxpc3QgbGlzdCkpCiAgICAobGFtYmRhIChjb21iaW5lciBzdHVmZikKICAg ICAgKGRlZmluZSAocmVhbC1yZWR1Y2Ugc3R1ZmYpCgkoaWYgKG51bGw/IChjZHIgc3R1ZmYpKQoJ ICAgIChjYXIgc3R1ZmYpCgkgICAgKGNvbWJpbmVyIChjYXIgc3R1ZmYpIChyZWFsLXJlZHVjZSAo Y2RyIHN0dWZmKSkpKSkKICAgICAgKGNvbmQgKChub3QgKHByb2NlZHVyZT8gY29tYmluZXIpKQoJ ICAgICAod2hvb3BzICJJbnZhbGlkIGZpcnN0IGFyZ3VtZW50IHRvIFJFRFVDRSAobm90IGEgcHJv Y2VkdXJlKToiCgkJICAgICBjb21iaW5lcikpCgkgICAgKChub3QgKG51bGw/IHN0dWZmKSkgKHJl YWwtcmVkdWNlIHN0dWZmKSkKCSAgICAoKG1lbWJlciBjb21iaW5lciAobGlzdCArICogd29yZCBz ZSBhcHBlbmQpKSAoY29tYmluZXIpKQoJICAgIChlbHNlICh3aG9vcHMgIkNhbid0IHJlZHVjZSBl bXB0eSBpbnB1dCB3aXRoIHRoYXQgY29tYmluZXIiKSkpKSkpCgooZGVmaW5lIHJlcGVhdGVkCiAg KGxldCAoKD0gPSkgKC0gLSkpCiAgICAobGFtYmRhIChmbiBudW1iZXIpCiAgICAgIChpZiAoPSBu dW1iZXIgMCkKCSAgKGxhbWJkYSAoeCkgeCkKCSAgKGxhbWJkYSAoeCkKCSAgICAoKHJlcGVhdGVk IGZuICgtIG51bWJlciAxKSkgKGZuIHgpKSkpKSkpCgoKOzsgVHJlZSBzdHVmZgooZGVmaW5lIG1h a2Utbm9kZSBjb25zKQooZGVmaW5lIGRhdHVtIGNhcikKKGRlZmluZSBjaGlsZHJlbiBjZHIpCgoK OzsgSS9PCiAgICAgICAgCihkZWZpbmUgc2hvdwogIChsZXQgKCg9ID0pCgkobGVuZ3RoIGxlbmd0 aCkKCShkaXNwbGF5IGRpc3BsYXkpCgkoY2FyIGNhcikKCShuZXdsaW5lIG5ld2xpbmUpCgkobm90 IG5vdCkKCShvdXRwdXQtcG9ydD8gb3V0cHV0LXBvcnQ/KQoJKGFwcGx5IGFwcGx5KQoJKHdob29w cyB3aG9vcHMpKQogICAgKGxhbWJkYSBhcmdzCiAgICAgIChjb25kCiAgICAgICAoKD0gKGxlbmd0 aCBhcmdzKSAxKQoJKGRpc3BsYXkgKGNhciBhcmdzKSkKCShuZXdsaW5lKSkKICAgICAgICgoPSAo bGVuZ3RoIGFyZ3MpIDIpCgkoaWYgKG5vdCAob3V0cHV0LXBvcnQ/IChjYXIgKGNkciBhcmdzKSkp KQoJICAgICh3aG9vcHMgIkludmFsaWQgc2Vjb25kIGFyZ3VtZW50IHRvIFNIT1cgKG5vdCBhbiBv dXRwdXQgcG9ydCk6ICIKCQkgICAgKGNhciAoY2RyIGFyZ3MpKSkpCgkoYXBwbHkgZGlzcGxheSBh cmdzKQoJKG5ld2xpbmUgKGNhciAoY2RyIGFyZ3MpKSkpCiAgICAgICAoZWxzZSAod2hvb3BzICJJ bmNvcnJlY3QgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byBwcm9jZWR1cmUgU0hPVyIpKSkpKSkKCihk ZWZpbmUgc2hvdy1saW5lCiAgKGxldCAoKD49ID49KQoJKGxlbmd0aCBsZW5ndGgpCgkod2hvb3Bz IHdob29wcykKCShudWxsPyBudWxsPykKCShjdXJyZW50LW91dHB1dC1wb3J0IGN1cnJlbnQtb3V0 cHV0LXBvcnQpCgkoY2FyIGNhcikKCShub3Qgbm90KQoJKGxpc3Q/IGxpc3Q/KQoJKGRpc3BsYXkg ZGlzcGxheSkKCShmb3ItZWFjaCBmb3ItZWFjaCkKCShjZHIgY2RyKQoJKG5ld2xpbmUgbmV3bGlu ZSkpCiAgICAobGFtYmRhIChsaW5lIC4gYXJncykKICAgICAgKGlmICg+PSAobGVuZ3RoIGFyZ3Mp IDIpCgkgICh3aG9vcHMgIlRvbyBtYW55IGFyZ3VtZW50cyB0byBzaG93LWxpbmUiKQoJICAobGV0 ICgocG9ydCAoaWYgKG51bGw/IGFyZ3MpIChjdXJyZW50LW91dHB1dC1wb3J0KSAoY2FyIGFyZ3Mp KSkpCgkgICAgKGNvbmQgKChub3QgKGxpc3Q/IGxpbmUpKQoJCSAgICh3aG9vcHMgIkludmFsaWQg YXJndW1lbnQgdG8gU0hPVy1MSU5FIChub3QgYSBsaXN0KToiIGxpbmUpKQoJCSAgKChudWxsPyBs aW5lKSAjZikKCQkgIChlbHNlCgkJICAgKGRpc3BsYXkgKGNhciBsaW5lKSBwb3J0KQoJCSAgIChm b3ItZWFjaCAobGFtYmRhICh3ZCkgKGRpc3BsYXkgIiAiIHBvcnQpIChkaXNwbGF5IHdkIHBvcnQp KQoJCQkgICAgIChjZHIgbGluZSkpKSkKCSAgICAobmV3bGluZSBwb3J0KSkpKSkpCgooZGVmaW5l IHJlYWQtc3RyaW5nCiAgKGxldCAoKHJlYWQtY2hhciByZWFkLWNoYXIpCgkoZXF2PyBlcXY/KQoJ KGFwcGx5IGFwcGx5KQoJKHN0cmluZy1hcHBlbmQgc3RyaW5nLWFwcGVuZCkKCShzdWJzdHJpbmcg c3Vic3RyaW5nKQoJKHJldmVyc2UgcmV2ZXJzZSkKCShjb25zIGNvbnMpCgkoPj0gPj0pICgrICsp Cgkoc3RyaW5nLXNldCEgc3RyaW5nLXNldCEpCgkobGVuZ3RoIGxlbmd0aCkKCSh3aG9vcHMgd2hv b3BzKQoJKG51bGw/IG51bGw/KQoJKGN1cnJlbnQtaW5wdXQtcG9ydCBjdXJyZW50LWlucHV0LXBv cnQpCgkoY2FyIGNhcikKCShjZHIgY2RyKQoJKGVvZi1vYmplY3Q/IGVvZi1vYmplY3Q/KQoJKGxp c3QgbGlzdCkKCShtYWtlLXN0cmluZyBtYWtlLXN0cmluZykKCShwZWVrLWNoYXIgcGVlay1jaGFy KSkKICAgIChkZWZpbmUgKHJlYWQtc3RyaW5nLWhlbHBlciBjaGFycyBhbGwtbGVuZ3RoIGNodW5r LWxlbmd0aCBwb3J0KQogICAgICAobGV0ICgoY2hhciAocmVhZC1jaGFyIHBvcnQpKQoJICAgIChz dHJpbmcgKGNhciBjaGFycykpKQoJKGNvbmQgKChvciAoZW9mLW9iamVjdD8gY2hhcikgKGVxdj8g Y2hhciAjXG5ld2xpbmUpKQoJICAgICAgIChhcHBseSBzdHJpbmctYXBwZW5kCgkJICAgICAgKHJl dmVyc2UKCQkgICAgICAgKGNvbnMKCQkJKHN1YnN0cmluZyAoY2FyIGNoYXJzKSAwIGNodW5rLWxl bmd0aCkKCQkJKGNkciBjaGFycykpKSkpCgkgICAgICAoKD49IGNodW5rLWxlbmd0aCA4MCkKCSAg ICAgICAobGV0ICgobmV3c3RyaW5nIChtYWtlLXN0cmluZyA4MCkpKQoJCSAoc3RyaW5nLXNldCEg bmV3c3RyaW5nIDAgY2hhcikKCQkgKHJlYWQtc3RyaW5nLWhlbHBlciAoY29ucyBuZXdzdHJpbmcg Y2hhcnMpCgkJCQkgICAgICgrIGFsbC1sZW5ndGggMSkKCQkJCSAgICAgMQoJCQkJICAgICBwb3J0 KSkpCgkgICAgICAoZWxzZQoJICAgICAgIChzdHJpbmctc2V0ISBzdHJpbmcgY2h1bmstbGVuZ3Ro IGNoYXIpCgkgICAgICAgKHJlYWQtc3RyaW5nLWhlbHBlciBjaGFycwoJCQkJICAgKCsgYWxsLWxl bmd0aCAxKQoJCQkJICAgKCsgY2h1bmstbGVuZ3RoIDEpCgkJCQkgICBwb3J0KSkpKSkKICAgIChs YW1iZGEgYXJncwogICAgICAoaWYgKD49IChsZW5ndGggYXJncykgMikKCSAgKHdob29wcyAiVG9v IG1hbnkgYXJndW1lbnRzIHRvIHJlYWQtc3RyaW5nIikKCSAgKGxldCAoKHBvcnQgKGlmIChudWxs PyBhcmdzKSAoY3VycmVudC1pbnB1dC1wb3J0KSAoY2FyIGFyZ3MpKSkpCgkgICAgKGlmIChlb2Yt b2JqZWN0PyAocGVlay1jaGFyIHBvcnQpKQoJCShyZWFkLWNoYXIgcG9ydCkKCQkocmVhZC1zdHJp bmctaGVscGVyIChsaXN0IChtYWtlLXN0cmluZyA4MCkpIDAgMCBwb3J0KSkpKSkpKQoKKGRlZmlu ZSByZWFkLWxpbmUKICAobGV0ICgoPSA9KQoJKGxpc3QgbGlzdCkKCShzdHJpbmctPndvcmQgc3Ry aW5nLT53b3JkKQoJKHN1YnN0cmluZyBzdWJzdHJpbmcpCgkoY2hhci13aGl0ZXNwYWNlPyBjaGFy LXdoaXRlc3BhY2U/KQoJKHN0cmluZy1yZWYgc3RyaW5nLXJlZikKCSgrICspCgkoc3RyaW5nLWxl bmd0aCBzdHJpbmctbGVuZ3RoKQoJKGFwcGx5IGFwcGx5KQoJKHJlYWQtc3RyaW5nIHJlYWQtc3Ry aW5nKSkKICAgIChsYW1iZGEgYXJncwogICAgICAoZGVmaW5lICh0b2tlbml6ZSBzdHJpbmcpCgko ZGVmaW5lIChoZWxwZXIgaSBzdGFydCBsZW4pCgkgIChjb25kICgoPSBpIGxlbikKCQkgKGlmICg9 IGkgc3RhcnQpCgkJICAgICAnKCkKCQkgICAgIChsaXN0IChzdHJpbmctPndvcmQgKHN1YnN0cmlu ZyBzdHJpbmcgc3RhcnQgaSkpKSkpCgkJKChjaGFyLXdoaXRlc3BhY2U/IChzdHJpbmctcmVmIHN0 cmluZyBpKSkKCQkgKGlmICg9IGkgc3RhcnQpCgkJICAgICAoaGVscGVyICgrIGkgMSkgKCsgaSAx KSBsZW4pCgkJICAgICAoY29ucyAoc3RyaW5nLT53b3JkIChzdWJzdHJpbmcgc3RyaW5nIHN0YXJ0 IGkpKQoJCQkgICAoaGVscGVyICgrIGkgMSkgKCsgaSAxKSBsZW4pKSkpCgkJKGVsc2UgKGhlbHBl ciAoKyBpIDEpIHN0YXJ0IGxlbikpKSkKICAgICAgICAoaWYgKGVvZi1vYmplY3Q/IHN0cmluZykK ICAgICAgICAgICAgc3RyaW5nCiAgICAgICAgICAgIChoZWxwZXIgMCAwIChzdHJpbmctbGVuZ3Ro IHN0cmluZykpKSkKICAgICAgKHRva2VuaXplIChhcHBseSByZWFkLXN0cmluZyBhcmdzKSkpKSkK CihkZWZpbmUgKnRoZS1vcGVuLWlucG9ydHMqICcoKSkKKGRlZmluZSAqdGhlLW9wZW4tb3V0cG9y dHMqICcoKSkKCihkZWZpbmUgYWxpZ24KICAobGV0ICgoPCA8KSAoYWJzIGFicykgKCogKikgKGV4 cHQgZXhwdCkgKD49ID49KSAoLSAtKSAoKyArKSAoPSA9KQoJKG51bGw/IG51bGw/KQoJKGNhciBj YXIpCgkocm91bmQgcm91bmQpCgkobnVtYmVyLT5zdHJpbmcgbnVtYmVyLT5zdHJpbmcpCgkoc3Ry aW5nLWxlbmd0aCBzdHJpbmctbGVuZ3RoKQoJKHN0cmluZy1hcHBlbmQgc3RyaW5nLWFwcGVuZCkK CShtYWtlLXN0cmluZyBtYWtlLXN0cmluZykKCShzdWJzdHJpbmcgc3Vic3RyaW5nKQoJKHN0cmlu Zy1zZXQhIHN0cmluZy1zZXQhKQoJKG51bWJlcj8gbnVtYmVyPykKCSh3b3JkLT5zdHJpbmcgd29y ZC0+c3RyaW5nKSkKICAgIChsYW1iZGEgKG9iaiB3aWR0aCAuIHJlc3QpCiAgICAgIChkZWZpbmUg KGFsaWduLW51bWJlciBvYmogd2lkdGggcmVzdCkKCShsZXQqICgoc2lnbiAoPCBvYmogMCkpCgkg ICAgICAgKG51bSAoYWJzIG9iaikpCgkgICAgICAgKHByZWMgKGlmIChudWxsPyByZXN0KSAwIChj YXIgcmVzdCkpKQoJICAgICAgIChiaWcgKHJvdW5kICgqIG51bSAoZXhwdCAxMCBwcmVjKSkpKQoJ ICAgICAgIChjdnQwIChudW1iZXItPnN0cmluZyBiaWcpKQoJICAgICAgIChjdnQgKGlmICg8IG51 bSAxKSAoc3RyaW5nLWFwcGVuZCAiMCIgY3Z0MCkgY3Z0MCkpCgkgICAgICAgKHBvcy1zdHIgKGlm ICg+PSAoc3RyaW5nLWxlbmd0aCBjdnQwKSBwcmVjKQoJCQkgICAgY3Z0CgkJCSAgICAoc3RyaW5n LWFwcGVuZAoJCQkgICAgIChtYWtlLXN0cmluZyAoLSBwcmVjIChzdHJpbmctbGVuZ3RoIGN2dDAp KSAjXDApCgkJCSAgICAgY3Z0KSkpCgkgICAgICAgKHN0cmluZyAoaWYgc2lnbiAoc3RyaW5nLWFw cGVuZCAiLSIgcG9zLXN0cikgcG9zLXN0cikpCgkgICAgICAgKGxlbmd0aCAoKyAoc3RyaW5nLWxl bmd0aCBzdHJpbmcpCgkJCSAgKGlmICg9IHByZWMgMCkgMCAxKSkpCgkgICAgICAgKGxlZnQgKC0g bGVuZ3RoICgrIDEgcHJlYykpKQoJICAgICAgIChyZXN1bHQgKGlmICg9IHByZWMgMCkKCQkJICAg c3RyaW5nCgkJCSAgIChzdHJpbmctYXBwZW5kCgkJCSAgICAoc3Vic3RyaW5nIHN0cmluZyAwIGxl ZnQpCgkJCSAgICAiLiIKCQkJICAgIChzdWJzdHJpbmcgc3RyaW5nIGxlZnQgKC0gbGVuZ3RoIDEp KSkpKSkKCSAgKGNvbmQgKCg9IGxlbmd0aCB3aWR0aCkgcmVzdWx0KQoJCSgoPCBsZW5ndGggd2lk dGgpCgkJIChzdHJpbmctYXBwZW5kIChtYWtlLXN0cmluZyAoLSB3aWR0aCBsZW5ndGgpICNcc3Bh Y2UpIHJlc3VsdCkpCgkJKGVsc2UgKGxldCAoKG5ldyAoc3Vic3RyaW5nIHJlc3VsdCAwIHdpZHRo KSkpCgkJCShzdHJpbmctc2V0ISBuZXcgKC0gd2lkdGggMSkgI1wrKQoJCQluZXcpKSkpKQogICAg ICAoZGVmaW5lIChhbGlnbi13b3JkIHN0cmluZykKCShsZXQgKChsZW5ndGggKHN0cmluZy1sZW5n dGggc3RyaW5nKSkpCgkgIChjb25kICgoPSBsZW5ndGggd2lkdGgpIHN0cmluZykKCQkoKDwgbGVu Z3RoIHdpZHRoKQoJCSAoc3RyaW5nLWFwcGVuZCBzdHJpbmcgKG1ha2Utc3RyaW5nICgtIHdpZHRo IGxlbmd0aCkgI1xzcGFjZSkpKQoJCShlbHNlIChsZXQgKChuZXcgKHN1YnN0cmluZyBzdHJpbmcg MCB3aWR0aCkpKQoJCQkoc3RyaW5nLXNldCEgbmV3ICgtIHdpZHRoIDEpICNcKykKCQkJbmV3KSkp KSkKICAgICAgKGlmIChudW1iZXI/IG9iaikKCSAgKGFsaWduLW51bWJlciBvYmogd2lkdGggcmVz dCkKCSAgKGFsaWduLXdvcmQgKHdvcmQtPnN0cmluZyBvYmopKSkpKSkKCihkZWZpbmUgb3Blbi1v dXRwdXQtZmlsZQogIChsZXQgKChvb2Ygb3Blbi1vdXRwdXQtZmlsZSkKCShjb25zIGNvbnMpKQog ICAgKGxhbWJkYSAoZmlsZW5hbWUpCiAgICAgIChsZXQgKChwb3J0IChvb2YgZmlsZW5hbWUpKSkK CShzZXQhICp0aGUtb3Blbi1vdXRwb3J0cyogKGNvbnMgcG9ydCAqdGhlLW9wZW4tb3V0cG9ydHMq KSkKCXBvcnQpKSkpCgooZGVmaW5lIG9wZW4taW5wdXQtZmlsZQogIChsZXQgKChvaWYgb3Blbi1p bnB1dC1maWxlKQoJKGNvbnMgY29ucykpCiAgICAobGFtYmRhIChmaWxlbmFtZSkKICAgICAgKGxl dCAoKHBvcnQgKG9pZiBmaWxlbmFtZSkpKQoJKHNldCEgKnRoZS1vcGVuLWlucG9ydHMqIChjb25z IHBvcnQgKnRoZS1vcGVuLWlucG9ydHMqKSkKCXBvcnQpKSkpCgooZGVmaW5lIHJlbW92ZSEKICAo bGV0ICgobnVsbD8gbnVsbD8pCgkoY2RyIGNkcikKCShlcT8gZXE/KQoJKHNldC1jZHIhIHNldC1j ZHIhKQoJKGNhciBjYXIpKQogICAgKGxhbWJkYSAodGhpbmcgbHN0KQogICAgICAoZGVmaW5lIChy ISBwcmV2KQoJKGNvbmQgKChudWxsPyAoY2RyIHByZXYpKSBsc3QpCgkgICAgICAoKGVxPyB0aGlu ZyAoY2FyIChjZHIgcHJldikpKQoJICAgICAgIChzZXQtY2RyISBwcmV2IChjZHIgKGNkciBwcmV2 KSkpCgkgICAgICAgbHN0KQoJICAgICAgKGVsc2UgKHIhIChjZHIgcHJldikpKSkpCiAgICAgIChj b25kICgobnVsbD8gbHN0KSBsc3QpCgkgICAgKChlcT8gdGhpbmcgKGNhciBsc3QpKSAoY2RyIGxz dCkpCgkgICAgKGVsc2UgKHIhIGxzdCkpKSkpKQoKKGRlZmluZSBjbG9zZS1pbnB1dC1wb3J0CiAg KGxldCAoKGNpcCBjbG9zZS1pbnB1dC1wb3J0KQoJKHJlbW92ZSEgcmVtb3ZlISkpCiAgICAobGFt YmRhIChwb3J0KQogICAgICAoc2V0ISAqdGhlLW9wZW4taW5wb3J0cyogKHJlbW92ZSEgcG9ydCAq dGhlLW9wZW4taW5wb3J0cyopKQogICAgICAoY2lwIHBvcnQpKSkpCgooZGVmaW5lIGNsb3NlLW91 dHB1dC1wb3J0CiAgKGxldCAoKGNvcCBjbG9zZS1vdXRwdXQtcG9ydCkKCShyZW1vdmUhIHJlbW92 ZSEpKQogICAgKGxhbWJkYSAocG9ydCkKICAgICAgKHNldCEgKnRoZS1vcGVuLW91dHBvcnRzKiAo cmVtb3ZlISBwb3J0ICp0aGUtb3Blbi1vdXRwb3J0cyopKQogICAgICAoY29wIHBvcnQpKSkpCgoo ZGVmaW5lIGNsb3NlLWFsbC1wb3J0cwogIChsZXQgKChmb3ItZWFjaCBmb3ItZWFjaCkKCShjbG9z ZS1pbnB1dC1wb3J0IGNsb3NlLWlucHV0LXBvcnQpCgkoY2xvc2Utb3V0cHV0LXBvcnQgY2xvc2Ut b3V0cHV0LXBvcnQpKQogICAgKGxhbWJkYSAoKQogICAgICAoZm9yLWVhY2ggY2xvc2UtaW5wdXQt cG9ydCAqdGhlLW9wZW4taW5wb3J0cyopCiAgICAgIChmb3ItZWFjaCBjbG9zZS1vdXRwdXQtcG9y dCAqdGhlLW9wZW4tb3V0cG9ydHMqKQogICAgICAnY2xvc2VkKSkpCgo7OyBNYWtlIGFyaXRobWV0 aWMgd29yayBvbiBudW1iZXJzIGluIHN0cmluZyBmb3JtOgooZGVmaW5lIG1heWJlLW51bQogIChs ZXQgKChzdHJpbmc/IHN0cmluZz8pCiAgICAJKHN0cmluZy0+bnVtYmVyIHN0cmluZy0+bnVtYmVy KSkKICAgIChsYW1iZGEgKGFyZykKICAgICAgKGlmIChzdHJpbmc/IGFyZykKCSAgKGxldCAoKG51 bSAoc3RyaW5nLT5udW1iZXIgYXJnKSkpCgkgICAgKGlmIG51bSBudW0gYXJnKSkKCSAgYXJnKSkp KQoKKGRlZmluZSBsb2dvaXplCiAgKGxldCAoKGFwcGx5IGFwcGx5KQoJKG1hcCBtYXApCgkobWF5 YmUtbnVtIG1heWJlLW51bSkpCiAgICAobGFtYmRhIChmbikKICAgICAgKGxhbWJkYSBhcmdzCgko YXBwbHkgZm4gKG1hcCBtYXliZS1udW0gYXJncykpKSkpKQoKOzsgc3BlY2lhbCBjYXNlIHZlcnNp b25zIG9mIGxvZ29pemUsIHNpbmNlIChsYW1iZGEgYXJncyAuLi4pIGlzIGV4cGVuc2l2ZQooZGVm aW5lIGxvZ29pemUtMQogIChsZXQgKChtYXliZS1udW0gbWF5YmUtbnVtKSkKICAgIChsYW1iZGEg KGZuKQogICAgICAobGFtYmRhICh4KSAoZm4gKG1heWJlLW51bSB4KSkpKSkpCgooZGVmaW5lIGxv Z29pemUtMgogIChsZXQgKChtYXliZS1udW0gbWF5YmUtbnVtKSkKICAgIChsYW1iZGEgKGZuKQog ICAgICAobGFtYmRhICh4IHkpIChmbiAobWF5YmUtbnVtIHgpIChtYXliZS1udW0geSkpKSkpKQoK KGRlZmluZSBzdHJpbmdzLWFyZS1udW1iZXJzCiAgKGxldCAoKGFyZS10aGV5PyAjZikKICAgICAg ICAocmVhbC0qICopCiAgICAgICAgKHJlYWwtKyArKQogICAgICAgIChyZWFsLS0gLSkKICAgICAg ICAocmVhbC0vIC8pCiAgICAgICAgKHJlYWwtPCA8KQogICAgICAgIChyZWFsLTw9IDw9KQogICAg ICAgIChyZWFsLT0gPSkKICAgICAgICAocmVhbC0+ID4pCiAgICAgICAgKHJlYWwtPj0gPj0pCiAg ICAgICAgKHJlYWwtYWJzIGFicykKICAgICAgICAocmVhbC1hY29zIGFjb3MpCiAgICAgICAgKHJl YWwtYXNpbiBhc2luKQogICAgICAgIChyZWFsLWF0YW4gYXRhbikKICAgICAgICAocmVhbC1jZWls aW5nIGNlaWxpbmcpCiAgICAgICAgKHJlYWwtY29zIGNvcykKICAgICAgICAocmVhbC1ldmVuPyBl dmVuPykKICAgICAgICAocmVhbC1leHAgZXhwKQogICAgICAgIChyZWFsLWV4cHQgZXhwdCkKICAg ICAgICAocmVhbC1mbG9vciBmbG9vcikKCShyZWFsLWFsaWduIGFsaWduKQogICAgICAgIChyZWFs LWdjZCBnY2QpCiAgICAgICAgKHJlYWwtaW50ZWdlcj8gaW50ZWdlcj8pCiAgICAgICAgKHJlYWwt aXRlbSBpdGVtKQogICAgICAgIChyZWFsLWxjbSBsY20pCiAgICAgICAgKHJlYWwtbGlzdC1yZWYg bGlzdC1yZWYpCiAgICAgICAgKHJlYWwtbG9nIGxvZykKICAgICAgICAocmVhbC1tYWtlLXZlY3Rv ciBtYWtlLXZlY3RvcikKICAgICAgICAocmVhbC1tYXggbWF4KQogICAgICAgIChyZWFsLW1pbiBt aW4pCiAgICAgICAgKHJlYWwtbW9kdWxvIG1vZHVsbykKICAgICAgICAocmVhbC1uZWdhdGl2ZT8g bmVnYXRpdmU/KQogICAgICAgIChyZWFsLW51bWJlcj8gbnVtYmVyPykKICAgICAgICAocmVhbC1v ZGQ/IG9kZD8pCiAgICAgICAgKHJlYWwtcG9zaXRpdmU/IHBvc2l0aXZlPykKICAgICAgICAocmVh bC1xdW90aWVudCBxdW90aWVudCkKICAgICAgICAocmVhbC1yYW5kb20gcmFuZG9tKQogICAgICAg IChyZWFsLXJlbWFpbmRlciByZW1haW5kZXIpCiAgICAgICAgKHJlYWwtcmVwZWF0ZWQgcmVwZWF0 ZWQpCiAgICAgICAgKHJlYWwtcm91bmQgcm91bmQpCiAgICAgICAgKHJlYWwtc2luIHNpbikKICAg ICAgICAocmVhbC1zcXJ0IHNxcnQpCiAgICAgICAgKHJlYWwtdGFuIHRhbikKICAgICAgICAocmVh bC10cnVuY2F0ZSB0cnVuY2F0ZSkKICAgICAgICAocmVhbC12ZWN0b3ItcmVmIHZlY3Rvci1yZWYp CiAgICAgICAgKHJlYWwtdmVjdG9yLXNldCEgdmVjdG9yLXNldCEpCiAgICAgICAgKHJlYWwtemVy bz8gemVybz8pCgkobWF5YmUtbnVtIG1heWJlLW51bSkKCShudW1iZXItPnN0cmluZyBudW1iZXIt PnN0cmluZykKCShjb25zIGNvbnMpCgkoY2FyIGNhcikKCShjZHIgY2RyKQoJKGVxPyBlcT8pCgko c2hvdyBzaG93KQoJKGxvZ29pemUgbG9nb2l6ZSkKCShsb2dvaXplLTEgbG9nb2l6ZS0xKQoJKGxv Z29pemUtMiBsb2dvaXplLTIpCgkobm90IG5vdCkKCSh3aG9vcHMgd2hvb3BzKSkKCiAgICAobGFt YmRhICh5ZXNubykKICAgICAgKGNvbmQgKChhbmQgYXJlLXRoZXk/IChlcT8geWVzbm8gI3QpKQoJ ICAgICAoc2hvdyAiU3RyaW5ncyBhcmUgYWxyZWFkeSBudW1iZXJzIikpCgkgICAgKChlcT8geWVz bm8gI3QpCgkgICAgIChzZXQhIGFyZS10aGV5PyAjdCkKCSAgICAgKHNldCEgKiAobG9nb2l6ZSBy ZWFsLSopKQoJICAgICAoc2V0ISArIChsb2dvaXplIHJlYWwtKykpCgkgICAgIChzZXQhIC0gKGxv Z29pemUgcmVhbC0tKSkKCSAgICAgKHNldCEgLyAobG9nb2l6ZSByZWFsLS8pKQoJICAgICAoc2V0 ISA8IChsb2dvaXplIHJlYWwtPCkpCgkgICAgIChzZXQhIDw9IChsb2dvaXplIHJlYWwtPD0pKQoJ ICAgICAoc2V0ISA9IChsb2dvaXplIHJlYWwtPSkpCgkgICAgIChzZXQhID4gKGxvZ29pemUgcmVh bC0+KSkKCSAgICAgKHNldCEgPj0gKGxvZ29pemUgcmVhbC0+PSkpCgkgICAgIChzZXQhIGFicyAo bG9nb2l6ZS0xIHJlYWwtYWJzKSkKCSAgICAgKHNldCEgYWNvcyAobG9nb2l6ZS0xIHJlYWwtYWNv cykpCgkgICAgIChzZXQhIGFzaW4gKGxvZ29pemUtMSByZWFsLWFzaW4pKQoJICAgICAoc2V0ISBh dGFuIChsb2dvaXplIHJlYWwtYXRhbikpCgkgICAgIChzZXQhIGNlaWxpbmcgKGxvZ29pemUtMSBy ZWFsLWNlaWxpbmcpKQoJICAgICAoc2V0ISBjb3MgKGxvZ29pemUtMSByZWFsLWNvcykpCgkgICAg IChzZXQhIGV2ZW4/IChsb2dvaXplLTEgcmVhbC1ldmVuPykpCgkgICAgIChzZXQhIGV4cCAobG9n b2l6ZS0xIHJlYWwtZXhwKSkKCSAgICAgKHNldCEgZXhwdCAobG9nb2l6ZS0yIHJlYWwtZXhwdCkp CgkgICAgIChzZXQhIGZsb29yIChsb2dvaXplLTEgcmVhbC1mbG9vcikpCgkgICAgIChzZXQhIGFs aWduIChsb2dvaXplIGFsaWduKSkKCSAgICAgKHNldCEgZ2NkIChsb2dvaXplIHJlYWwtZ2NkKSkK CSAgICAgKHNldCEgaW50ZWdlcj8gKGxvZ29pemUtMSByZWFsLWludGVnZXI/KSkKCSAgICAgKHNl dCEgaXRlbSAobGFtYmRhIChuIHN0dWZmKQoJCQkgIChyZWFsLWl0ZW0gKG1heWJlLW51bSBuKSBz dHVmZikpKQoJICAgICAoc2V0ISBsY20gKGxvZ29pemUgcmVhbC1sY20pKQoJICAgICAoc2V0ISBs aXN0LXJlZiAobGFtYmRhIChsc3QgaykgCgkJCSAgICAgIChyZWFsLWxpc3QtcmVmIGxzdCAobWF5 YmUtbnVtIGspKSkpCgkgICAgIChzZXQhIGxvZyAobG9nb2l6ZS0xIHJlYWwtbG9nKSkKCSAgICAg KHNldCEgbWF4IChsb2dvaXplIHJlYWwtbWF4KSkKCSAgICAgKHNldCEgbWluIChsb2dvaXplIHJl YWwtbWluKSkKCSAgICAgKHNldCEgbW9kdWxvIChsb2dvaXplLTIgcmVhbC1tb2R1bG8pKQoJICAg ICAoc2V0ISBuZWdhdGl2ZT8gKGxvZ29pemUtMSByZWFsLW5lZ2F0aXZlPykpCgkgICAgIChzZXQh IG51bWJlcj8gKGxvZ29pemUtMSByZWFsLW51bWJlcj8pKQoJICAgICAoc2V0ISBvZGQ/IChsb2dv aXplLTEgcmVhbC1vZGQ/KSkKCSAgICAgKHNldCEgcG9zaXRpdmU/IChsb2dvaXplLTEgcmVhbC1w b3NpdGl2ZT8pKQoJICAgICAoc2V0ISBxdW90aWVudCAobG9nb2l6ZS0yIHJlYWwtcXVvdGllbnQp KQoJICAgICAoc2V0ISByYW5kb20gKGxvZ29pemUgcmVhbC1yYW5kb20pKQoJICAgICAoc2V0ISBy ZW1haW5kZXIgKGxvZ29pemUtMiByZWFsLXJlbWFpbmRlcikpCgkgICAgIChzZXQhIHJvdW5kIChs b2dvaXplLTEgcmVhbC1yb3VuZCkpCgkgICAgIChzZXQhIHNpbiAobG9nb2l6ZS0xIHJlYWwtc2lu KSkKCSAgICAgKHNldCEgc3FydCAobG9nb2l6ZS0xIHJlYWwtc3FydCkpCgoJICAgICAoc2V0ISB0 YW4gKGxvZ29pemUtMSByZWFsLXRhbikpCgkgICAgIChzZXQhIHRydW5jYXRlIChsb2dvaXplLTEg cmVhbC10cnVuY2F0ZSkpCgkgICAgIChzZXQhIHplcm8/IChsb2dvaXplLTEgcmVhbC16ZXJvPykp CgkgICAgIChzZXQhIHZlY3Rvci1yZWYKCQkgICAobGFtYmRhICh2ZWMgaSkgKHJlYWwtdmVjdG9y LXJlZiB2ZWMgKG1heWJlLW51bSBpKSkpKQoJICAgICAoc2V0ISB2ZWN0b3Itc2V0IQoJCSAgIChs YW1iZGEgKHZlYyBpIHZhbCkKCQkgICAgIChyZWFsLXZlY3Rvci1zZXQhIHZlYyAobWF5YmUtbnVt IGkpIHZhbCkpKQoJICAgICAoc2V0ISBtYWtlLXZlY3RvcgoJCSAgIChsYW1iZGEgKG51bSAuIGFy Z3MpCgkJICAgICAoYXBwbHkgcmVhbC1tYWtlLXZlY3RvciAoY29ucyAobWF5YmUtbnVtIG51bSkK CQkJCQkJICAgYXJncykpKSkKCSAgICAgKHNldCEgbGlzdC1yZWYKCQkgICAobGFtYmRhIChsc3Qg aSkgKHJlYWwtbGlzdC1yZWYgbHN0IChtYXliZS1udW0gaSkpKSkKCSAgICAgKHNldCEgcmVwZWF0 ZWQKCQkgICAobGFtYmRhIChmbiBuKSAocmVhbC1yZXBlYXRlZCBmbiAobWF5YmUtbnVtIG4pKSkp KQoJICAgICgoYW5kIChub3QgYXJlLXRoZXk/KSAobm90IHllc25vKSkKCSAgICAgKHNob3cgIlN0 cmluZ3MgYXJlIGFscmVhZHkgbm90IG51bWJlcnMiKSkKCSAgICAoKG5vdCB5ZXNubykKCSAgICAg KHNldCEgYXJlLXRoZXk/ICNmKSAoc2V0ISAqIHJlYWwtKikgKHNldCEgKyByZWFsLSspCgkgICAg IChzZXQhIC0gcmVhbC0tKSAoc2V0ISAvIHJlYWwtLykgKHNldCEgPCByZWFsLTwpCgkgICAgIChz ZXQhIDw9IHJlYWwtPD0pIChzZXQhID0gcmVhbC09KSAoc2V0ISA+IHJlYWwtPikKCSAgICAgKHNl dCEgPj0gcmVhbC0+PSkgKHNldCEgYWJzIHJlYWwtYWJzKSAoc2V0ISBhY29zIHJlYWwtYWNvcykK CSAgICAgKHNldCEgYXNpbiByZWFsLWFzaW4pIChzZXQhIGF0YW4gcmVhbC1hdGFuKQoJICAgICAo c2V0ISBjZWlsaW5nIHJlYWwtY2VpbGluZykgKHNldCEgY29zIHJlYWwtY29zKQoJICAgICAoc2V0 ISBldmVuPyByZWFsLWV2ZW4/KQoJICAgICAoc2V0ISBleHAgcmVhbC1leHApIChzZXQhIGV4cHQg cmVhbC1leHB0KQoJICAgICAoc2V0ISBmbG9vciByZWFsLWZsb29yKSAoc2V0ISBhbGlnbiByZWFs LWFsaWduKQoJICAgICAoc2V0ISBnY2QgcmVhbC1nY2QpIChzZXQhIGludGVnZXI/IHJlYWwtaW50 ZWdlcj8pCgkgICAgIChzZXQhIGl0ZW0gcmVhbC1pdGVtKQoJICAgICAoc2V0ISBsY20gcmVhbC1s Y20pIChzZXQhIGxpc3QtcmVmIHJlYWwtbGlzdC1yZWYpCgkgICAgIChzZXQhIGxvZyByZWFsLWxv ZykgKHNldCEgbWF4IHJlYWwtbWF4KSAoc2V0ISBtaW4gcmVhbC1taW4pCgkgICAgIChzZXQhIG1v ZHVsbyByZWFsLW1vZHVsbykgKHNldCEgb2RkPyByZWFsLW9kZD8pCgkgICAgIChzZXQhIHF1b3Rp ZW50IHJlYWwtcXVvdGllbnQpIChzZXQhIHJhbmRvbSByZWFsLXJhbmRvbSkKCSAgICAgKHNldCEg cmVtYWluZGVyIHJlYWwtcmVtYWluZGVyKSAoc2V0ISByb3VuZCByZWFsLXJvdW5kKQoJICAgICAo c2V0ISBzaW4gcmVhbC1zaW4pIChzZXQhIHNxcnQgcmVhbC1zcXJ0KSAoc2V0ISB0YW4gcmVhbC10 YW4pCgkgICAgIChzZXQhIHRydW5jYXRlIHJlYWwtdHJ1bmNhdGUpIChzZXQhIHplcm8/IHJlYWwt emVybz8pCgkgICAgIChzZXQhIHBvc2l0aXZlPyByZWFsLXBvc2l0aXZlPykgKHNldCEgbmVnYXRp dmU/IHJlYWwtbmVnYXRpdmU/KQoJICAgICAoc2V0ISBudW1iZXI/IHJlYWwtbnVtYmVyPykgKHNl dCEgdmVjdG9yLXJlZiByZWFsLXZlY3Rvci1yZWYpCgkgICAgIChzZXQhIHZlY3Rvci1zZXQhIHJl YWwtdmVjdG9yLXNldCEpCgkgICAgIChzZXQhIG1ha2UtdmVjdG9yIHJlYWwtbWFrZS12ZWN0b3Ip CgkgICAgIChzZXQhIGxpc3QtcmVmIHJlYWwtbGlzdC1yZWYpIChzZXQhIGl0ZW0gcmVhbC1pdGVt KQoJICAgICAoc2V0ISByZXBlYXRlZCByZWFsLXJlcGVhdGVkKSkKCSAgICAoZWxzZSAod2hvb3Bz ICJTdHJpbmdzLWFyZS1udW1iZXJzOiBnaXZlIGEgI3Qgb3IgYSAjZiIpKSkKCSAgICBhcmUtdGhl eT8pKSkKCgo7OyBCeSBkZWZhdWx0LCBzdHJpbmdzIGFyZSBudW1iZXJzOgooc3RyaW5ncy1hcmUt bnVtYmVycyAjdCkK --000000000000a484f005ab95de50 Content-Type: application/octet-stream; name=possible-bug Content-Disposition: attachment; filename=possible-bug Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kd7i1xxd1 Y2hlbWVAKGd1aWxlLXVzZXIpPiAoZGVmaW5lIChyZXZlcnNlIHdkKSAoaWYgKGVxdWFsPyB3ZCAi IikgIiIgKHdvcmQgKHJldmVyc2UgKGJmIHdkKSkgKGZpcnN0IHdkKSkpKQpzY2hlbWVAKGd1aWxl LXVzZXIpPiAodXNlLW1vZHVsZXMgKHN5c3RlbSB2bSB0cmFjZSkpCnNjaGVtZUAoZ3VpbGUtdXNl cik+ICh0cmFjZS1jYWxscy10by1wcm9jZWR1cmUgcmV2ZXJzZSAjOnByZWZpeCAiWFhYOiAiKQok MSA9ICM8cHJvY2VkdXJlIDdmMWE3MDMzYzc0MCBhdCBzeXN0ZW0vdm0vdHJhcHMuc2NtOjU5OTo2 ICgjOm9wdGlvbmFsIGZyYW1lKT4Kc2NoZW1lQChndWlsZS11c2VyKT4gKHJldmVyc2UgJ2FzZGYp CiQyID0gZmRzYQpzY2hlbWVAKGd1aWxlLXVzZXIpPiAoY2FsbC13aXRoLXRyYWNlIChsYW1iZGEg KCkgKHJldmVyc2UgJ2FzZGYpKSAjOmNhbGxzPyAjZikKWFhYOiAocmV2ZXJzZSBhc2RmKQpYWFg6 IHwgIChyZXZlcnNlIHNkZikKWFhYOiB8ICB8ICAocmV2ZXJzZSBkZikKWFhYOiB8ICB8ICB8ICAo cmV2ZXJzZSBmKQpYWFg6IHwgIHwgIHwgIHwgIChyZXZlcnNlICIiKQppY2UtOS9ib290LTkuc2Nt OjE2Njk6MTY6IEluIHByb2NlZHVyZSByYWlzZS1leGNlcHRpb246Cldyb25nIG51bWJlciBvZiBh cmd1bWVudHMgdG8gIzxwcm9jZWR1cmUgcmV0dXJuLWhhbmRsZXIgKGZyYW1lIGRlcHRoIHZhbHVl cyk+CgpFbnRlcmluZyBhIG5ldyBwcm9tcHQuICBUeXBlIGAsYnQnIGZvciBhIGJhY2t0cmFjZSBv ciBgLHEnIHRvIGNvbnRpbnVlLgpzY2hlbWVAKGd1aWxlLXVzZXIpIFsxXT4gLHEKc2NoZW1lQChn dWlsZS11c2VyKT4gKGNhbGwtd2l0aC10cmFjZSAobGFtYmRhICgpIChyZXZlcnNlICdhc2RmKSkg IzpjYWxscz8gI2YpCmljZS05L2Jvb3QtOS5zY206MTY2OToxNjogSW4gcHJvY2VkdXJlIHJhaXNl LWV4Y2VwdGlvbjoKV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byAjPHByb2NlZHVyZSByZXR1 cm4taGFuZGxlciAoZnJhbWUgZGVwdGggdmFsdWVzKT4KCkVudGVyaW5nIGEgbmV3IHByb21wdC4g IFR5cGUgYCxidCcgZm9yIGEgYmFja3RyYWNlIG9yIGAscScgdG8gY29udGludWUuCnNjaGVtZUAo Z3VpbGUtdXNlcikgWzFdPiAKCg== --000000000000a484f005ab95de50 Content-Type: application/octet-stream; name=typescript Content-Disposition: attachment; filename=typescript Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kd7i1xyy4 U2NyaXB0IHN0YXJ0ZWQgb24gMjAyMC0wNy0yOCAxMzo0NTozNSswNTQ1ChtdMDtzaW1wbHlfc2No ZW1lBxtbMDE7MzJtYXNkZkBSVFIbWzAwbTobWzAxOzM0bX4vUHVibGljL3NpbXBseV9zY2hlbWUb WzAwbSQgZ3VpbGUgLWwgc2ltcGx5LnNjbSANChtdMDtndWlsZSAtbCBzaW1wbHkuc2NtB0dOVSBH dWlsZSAzLjAuMg0KQ29weXJpZ2h0IChDKSAxOTk1LTIwMjAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuDQoNCkd1aWxlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWTsgZm9y IGRldGFpbHMgdHlwZSBgLHNob3cgdycuDQpUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZSwg YW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQNCnVuZGVyIGNlcnRhaW4gY29u ZGl0aW9uczsgdHlwZSBgLHNob3cgYycgZm9yIGRldGFpbHMuDQoNCkVudGVyIGAsaGVscCcgZm9y IGhlbHAuDQobWz8yMDA0aHNjaGVtZUAoZ3VpbGUtdXNlcik+ICxxCAgoY2FsbC13aXRoLXRyYWNl IChsYW1iZGEgKCkgKHJldmVyc2UgJ2FzZGYpKSAjOmNhbGxzPyAjZikNG1tDG1tDG1tDG1tDG1tD G1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDLHEbW0sICChj YWxsLXdpdGgtdHJhY2UgKGxhbWJkYSAoKSAocmV2ZXJzZSAnYXNkZikpKQ0bW0MbW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0N0cmFj ZS1jYWxscy10by1wcm9jZWR1cmUgcmV2ZXJzZSAjOnByZWZpeCAiWFhYOiAiKQ0bW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0Ny ZXZlcnNlICdhc2RmKRtbSwgICAgICAgICAgICAgIZGVmaW5lIChyZXZlcnNlIHdkKSAoaWYgKGVx dWFsPyB3ZCAiIikgIiIgKHdvcmQgKHJldmVyc2UgKGJmIHdkKSkgKGZpcnN0IHdkKSkpKQ0bW0Mb W0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0Mb W0MbW0MbWzQ5UHVzZS1tb2R1bGVzIChzeXN0ZW0gdm0gdHJhY2UpKQ0bW0MbW0MbW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0NkZWZpbmUg KHJldmVyc2Ugd2QpIChpZiAoZXF1YWw/IHdkICIiKSAiIiAod29yZCAocmV2ZXJzZSAoYmYgd2Qp KSAoZmlyc3Qgd2QpKSkpDRtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtb QxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbNDlQdXNlLW1vZHVsZXMgKHN5c3RlbSB2bSB0cmFj ZSkpDQobWz8yMDA0bA0bWz8yMDA0aHNjaGVtZUAoZ3VpbGUtdXNlcik+ICh1c2UtbW9kdWxlcyAo c3lzdGVtIHZtIHRyYWNlKSkNG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tD G1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDLHEbW0sICChjYWxsLXdpdGgtdHJhY2UgKGxhbWJkYSAo KSAocmV2ZXJzZSAnYXNkZikpICM6Y2FsbHM/ICNmKQ0bW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MscRtbSwgIKGNhbGwtd2l0aC10 cmFjZSAobGFtYmRhICgpIChyZXZlcnNlICdhc2RmKSkpDRtbQxtbQxtbQxtbQxtbQxtbQxtbQxtb QxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQ3RyYWNlLWNhbGxzLXRv LXByb2NlZHVyZSByZXZlcnNlICM6cHJlZml4ICJYWFg6ICIpDRtbQxtbQxtbQxtbQxtbQxtbQxtb QxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQ3JldmVyc2UgJ2Fz ZGYpG1tLCAgICAgICAgICAgICAhkZWZpbmUgKHJldmVyc2Ugd2QpIChpZiAoZXF1YWw/IHdkICIi KSAiIiAod29yZCAocmV2ZXJzZSAoYmYgd2QpKSAoZmlyc3Qgd2QpKSkpDRtbQxtbQxtbQxtbQxtb QxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbNDlQ dXNlLW1vZHVsZXMgKHN5c3RlbSB2bSB0cmFjZSkpDRtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtb QxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQ2RlZmluZSAocmV2ZXJzZSB3 ZCkgKGlmIChlcXVhbD8gd2QgIiIpICIiICh3b3JkIChyZXZlcnNlIChiZiB3ZCkpIChmaXJzdCB3 ZCkpKSkNChtbPzIwMDRsDRtbPzIwMDRoc2NoZW1lQChndWlsZS11c2VyKT4gKGRlZmluZSAocmV2 ZXJzZSB3ZCkgKGlmIChlcXVhbD8gd2QgIiIpICIiICh3b3JkIChyZXZlcnNlIChiZiB3ZCkpIChm aXJzdCB3ZCkpKSkNG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tD G1tDG1tDG1tDG1tDG1tDG1tDG1tDG1s0OVB1c2UtbW9kdWxlcyAoc3lzdGVtIHZtIHRyYWNlKSkN G1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tD G1tDG1tDLHEbW0sICChjYWxsLXdpdGgtdHJhY2UgKGxhbWJkYSAoKSAocmV2ZXJzZSAnYXNkZikp ICM6Y2FsbHM/ICNmKQ0bW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0MbW0MbW0MscRtbSwgIKGNhbGwtd2l0aC10cmFjZSAobGFtYmRhICgpIChy ZXZlcnNlICdhc2RmKSkpDRtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtb QxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQ3RyYWNlLWNhbGxzLXRvLXByb2NlZHVyZSByZXZlcnNl ICM6cHJlZml4ICJYWFg6ICIpDRtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtb QxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQ3JldmVyc2UgJ2FzZGYpG1tLDQobWz8yMDA0bA0k MSA9IGZkc2ENChtbPzIwMDRoc2NoZW1lQChndWlsZS11c2VyKT4gKHJldmVyc2UgJ2FzZGYpCAgI CAgICAgICAgICAhkZWZpbmUgKHJldmVyc2Ugd2QpIChpZiAoZXF1YWw/IHdkICIiKSAiIiAod29y ZCAocmV2ZXJzZSAoYmYgd2QpKSAoZmlyc3Qgd2QpKSkpDRtbQxtbQxtbQxtbQxtbQxtbQxtbQxtb QxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbNDlQdXNlLW1vZHVs ZXMgKHN5c3RlbSB2bSB0cmFjZSkpDRtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtb QxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQyxxG1tLCAgoY2FsbC13aXRoLXRyYWNlIChsYW1i ZGEgKCkgKHJldmVyc2UgJ2FzZGYpKSAjOmNhbGxzPyAjZikNG1tDG1tDG1tDG1tDG1tDG1tDG1tD G1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDLHEbW0sICChjYWxsLXdp dGgtdHJhY2UgKGxhbWJkYSAoKSAocmV2ZXJzZSAnYXNkZikpKQ0bW0MbW0MbW0MbW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0N0cmFjZS1jYWxs cy10by1wcm9jZWR1cmUgcmV2ZXJzZSAjOnByZWZpeCAiWFhYOiAiKQ0KG1s/MjAwNGwNJDIgPSAj PHByb2NlZHVyZSA3Zjc5ZWE5ZmU1YzAgYXQgc3lzdGVtL3ZtL3RyYXBzLnNjbTo1OTk6NiAoIzpv cHRpb25hbCBmcmFtZSk+DQobWz8yMDA0aHNjaGVtZUAoZ3VpbGUtdXNlcik+ICh0cmFjZS1jYWxs cy10by1wcm9jZWR1cmUgcmV2ZXJzZSAjOnByZWZpeCAiWFhYOiAiKQ0bW0MbW0MbW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0NyZXZlcnNl ICdhc2RmKRtbSwgICAgICAgICAgICAgIZGVmaW5lIChyZXZlcnNlIHdkKSAoaWYgKGVxdWFsPyB3 ZCAiIikgIiIgKHdvcmQgKHJldmVyc2UgKGJmIHdkKSkgKGZpcnN0IHdkKSkpKQ0bW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0Mb WzQ5UHVzZS1tb2R1bGVzIChzeXN0ZW0gdm0gdHJhY2UpKQ0bW0MbW0MbW0MbW0MbW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MscRtbSwgIKGNhbGwtd2l0 aC10cmFjZSAobGFtYmRhICgpIChyZXZlcnNlICdhc2RmKSkgIzpjYWxscz8gI2YpDRtbQxtbQxtb QxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQxtbQyxx G1tLCAgoY2FsbC13aXRoLXRyYWNlIChsYW1iZGEgKCkgKHJldmVyc2UgJ2FzZGYpKSkNChtbPzIw MDRsDXRyYWNlOiB8ICAocmV2ZXJzZSBhc2RmKQ0KWFhYOiAocmV2ZXJzZSBhc2RmKQ0KdHJhY2U6 IHwgIHwgIChfIGFzZGYgIiIpDQp0cmFjZTogfCAgfCAgfCAgKHN5bWJvbC0+c3RyaW5nIGFzZGYp DQp0cmFjZTogfCAgfCAgfCAgImFzZGYiDQp0cmFjZTogfCAgfCAgKHN0cmluZz0/ICJhc2RmIiAi IikNCnRyYWNlOiB8ICB8ICAjZg0KdHJhY2U6IHwgIHwgIChfIGFzZGYpDQp0cmFjZTogfCAgfCAg fCAgKF8gYXNkZikNCnRyYWNlOiB8ICB8ICB8ICAjZg0KdHJhY2U6IHwgIHwgIHwgIChfIGFzZGYp DQp0cmFjZTogfCAgfCAgfCAgI3QNCnRyYWNlOiB8ICB8ICB8ICAoXyBhc2RmKQ0KdHJhY2U6IHwg IHwgIHwgIHwgIChfIGFzZGYpDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgKF8gYXNkZikNCnRyYWNl OiB8ICB8ICB8ICB8ICB8ICBhc2RmDQp0cmFjZTogfCAgfCAgfCAgfCAgKG51bWJlcj8gYXNkZikN CnRyYWNlOiB8ICB8ICB8ICB8ICAjZg0KdHJhY2U6IHwgIHwgIHwgIChzeW1ib2wtPnN0cmluZyBh c2RmKQ0KdHJhY2U6IHwgIHwgIHwgICJhc2RmIg0KdHJhY2U6IHwgIHwgIHwgIChzdWJzdHJpbmcg ImFzZGYiIDEgNCkNCnRyYWNlOiB8ICB8ICB8ICAic2RmIg0KdHJhY2U6IHwgIHwgIChfICJzZGYi KQ0KdHJhY2U6IHwgIHwgIHwgIChzdHJpbmc9PyAic2RmIiAiIikNCnRyYWNlOiB8ICB8ICB8ICAj Zg0KdHJhY2U6IHwgIHwgIHwgIChjaGFyPT8gI1xzICNcLSkNCnRyYWNlOiB8ICB8ICB8ICAjZg0K dHJhY2U6IHwgIHwgIHwgIChfICNcZikNCnRyYWNlOiB8ICB8ICB8ICAwDQp0cmFjZTogfCAgfCAg fCAgKHN0cmluZz0/ICJzZGYiICIiKQ0KdHJhY2U6IHwgIHwgIHwgICNmDQp0cmFjZTogfCAgfCAg fCAgKF8gI1xzKQ0KdHJhY2U6IHwgIHwgIHwgIDANCnRyYWNlOiB8ICB8ICB8ICAoXyAjXGQpDQp0 cmFjZTogfCAgfCAgfCAgMA0KdHJhY2U6IHwgIHwgIHwgIChfICNcZikNCnRyYWNlOiB8ICB8ICB8 ICAwDQp0cmFjZTogfCAgfCAgc2RmDQp0cmFjZTogfCAgfCAgKHJldmVyc2Ugc2RmKQ0KWFhYOiB8 ICAocmV2ZXJzZSBzZGYpDQp0cmFjZTogfCAgfCAgfCAgKF8gc2RmICIiKQ0KdHJhY2U6IHwgIHwg IHwgIHwgIChzeW1ib2wtPnN0cmluZyBzZGYpDQp0cmFjZTogfCAgfCAgfCAgfCAgInNkZiINCnRy YWNlOiB8ICB8ICB8ICAoc3RyaW5nPT8gInNkZiIgIiIpDQp0cmFjZTogfCAgfCAgfCAgI2YNCnRy YWNlOiB8ICB8ICB8ICAoXyBzZGYpDQp0cmFjZTogfCAgfCAgfCAgfCAgKF8gc2RmKQ0KdHJhY2U6 IHwgIHwgIHwgIHwgICNmDQp0cmFjZTogfCAgfCAgfCAgfCAgKF8gc2RmKQ0KdHJhY2U6IHwgIHwg IHwgIHwgICN0DQp0cmFjZTogfCAgfCAgfCAgfCAgKF8gc2RmKQ0KdHJhY2U6IHwgIHwgIHwgIHwg IHwgIChfIHNkZikNCnRyYWNlOiB8ICB8ICB8ICB8ICB8ICB8ICAoXyBzZGYpDQp0cmFjZTogfCAg fCAgfCAgfCAgfCAgfCAgc2RmDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgKG51bWJlcj8gc2RmKQ0K dHJhY2U6IHwgIHwgIHwgIHwgIHwgICNmDQp0cmFjZTogfCAgfCAgfCAgfCAgKHN5bWJvbC0+c3Ry aW5nIHNkZikNCnRyYWNlOiB8ICB8ICB8ICB8ICAic2RmIg0KdHJhY2U6IHwgIHwgIHwgIHwgIChz dWJzdHJpbmcgInNkZiIgMSAzKQ0KdHJhY2U6IHwgIHwgIHwgIHwgICJkZiINCnRyYWNlOiB8ICB8 ICB8ICAoXyAiZGYiKQ0KdHJhY2U6IHwgIHwgIHwgIHwgIChzdHJpbmc9PyAiZGYiICIiKQ0KdHJh Y2U6IHwgIHwgIHwgIHwgICNmDQp0cmFjZTogfCAgfCAgfCAgfCAgKGNoYXI9PyAjXGQgI1wtKQ0K dHJhY2U6IHwgIHwgIHwgIHwgICNmDQp0cmFjZTogfCAgfCAgfCAgfCAgKF8gI1xmKQ0KdHJhY2U6 IHwgIHwgIHwgIHwgIDANCnRyYWNlOiB8ICB8ICB8ICB8ICAoc3RyaW5nPT8gImRmIiAiIikNCnRy YWNlOiB8ICB8ICB8ICB8ICAjZg0KdHJhY2U6IHwgIHwgIHwgIHwgIChfICNcZCkNCnRyYWNlOiB8 ICB8ICB8ICB8ICAwDQp0cmFjZTogfCAgfCAgfCAgfCAgKF8gI1xmKQ0KdHJhY2U6IHwgIHwgIHwg IHwgIDANCnRyYWNlOiB8ICB8ICB8ICBkZg0KdHJhY2U6IHwgIHwgIHwgIChyZXZlcnNlIGRmKQ0K WFhYOiB8ICB8ICAocmV2ZXJzZSBkZikNCnRyYWNlOiB8ICB8ICB8ICB8ICAoXyBkZiAiIikNCnRy YWNlOiB8ICB8ICB8ICB8ICB8ICAoc3ltYm9sLT5zdHJpbmcgZGYpDQp0cmFjZTogfCAgfCAgfCAg fCAgfCAgImRmIg0KdHJhY2U6IHwgIHwgIHwgIHwgIChzdHJpbmc9PyAiZGYiICIiKQ0KdHJhY2U6 IHwgIHwgIHwgIHwgICNmDQp0cmFjZTogfCAgfCAgfCAgfCAgKF8gZGYpDQp0cmFjZTogfCAgfCAg fCAgfCAgfCAgKF8gZGYpDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgI2YNCnRyYWNlOiB8ICB8ICB8 ICB8ICB8ICAoXyBkZikNCnRyYWNlOiB8ICB8ICB8ICB8ICB8ICAjdA0KdHJhY2U6IHwgIHwgIHwg IHwgIHwgIChfIGRmKQ0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIHwgIChfIGRmKQ0KdHJhY2U6IHwg IHwgIHwgIHwgIHwgIHwgIHwgIChfIGRmKQ0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIHwgIHwgIGRm DQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgfCAgKG51bWJlcj8gZGYpDQp0cmFjZTogfCAgfCAgfCAg fCAgfCAgfCAgI2YNCnRyYWNlOiB8ICB8ICB8ICB8ICB8ICAoc3ltYm9sLT5zdHJpbmcgZGYpDQp0 cmFjZTogfCAgfCAgfCAgfCAgfCAgImRmIg0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIChzdWJzdHJp bmcgImRmIiAxIDIpDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgImYiDQp0cmFjZTogfCAgfCAgfCAg fCAgKF8gImYiKQ0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIChzdHJpbmc9PyAiZiIgIiIpDQp0cmFj ZTogfCAgfCAgfCAgfCAgfCAgI2YNCnRyYWNlOiB8ICB8ICB8ICB8ICB8ICAoY2hhcj0/ICNcZiAj XC0pDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgI2YNCnRyYWNlOiB8ICB8ICB8ICB8ICB8ICAoXyAj XGYpDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgMA0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIChzdHJp bmc9PyAiZiIgIiIpDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgI2YNCnRyYWNlOiB8ICB8ICB8ICB8 ICB8ICAoXyAjXGYpDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgMA0KdHJhY2U6IHwgIHwgIHwgIHwg IGYNCnRyYWNlOiB8ICB8ICB8ICB8ICAocmV2ZXJzZSBmKQ0KWFhYOiB8ICB8ICB8ICAocmV2ZXJz ZSBmKQ0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIChfIGYgIiIpDQp0cmFjZTogfCAgfCAgfCAgfCAg fCAgfCAgKHN5bWJvbC0+c3RyaW5nIGYpDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgfCAgImYiDQp0 cmFjZTogfCAgfCAgfCAgfCAgfCAgKHN0cmluZz0/ICJmIiAiIikNCnRyYWNlOiB8ICB8ICB8ICB8 ICB8ICAjZg0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIChfIGYpDQp0cmFjZTogfCAgfCAgfCAgfCAg fCAgfCAgKF8gZikNCnRyYWNlOiB8ICB8ICB8ICB8ICB8ICB8ICAjZg0KdHJhY2U6IHwgIHwgIHwg IHwgIHwgIHwgIChfIGYpDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgfCAgI3QNCnRyYWNlOiB8ICB8 ICB8ICB8ICB8ICB8ICAoXyBmKQ0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIHwgIHwgIChfIGYpDQp0 cmFjZTogfCAgfCAgfCAgfCAgfCAgfCAgfCAgfCAgKF8gZikNCnRyYWNlOiB8ICB8ICB8ICB8ICB8 ICB8ICB8ICB8ICBmDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgfCAgfCAgKG51bWJlcj8gZikNCnRy YWNlOiB8ICB8ICB8ICB8ICB8ICB8ICB8ICAjZg0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIHwgIChz eW1ib2wtPnN0cmluZyBmKQ0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIHwgICJmIg0KdHJhY2U6IHwg IHwgIHwgIHwgIHwgIHwgIChzdWJzdHJpbmcgImYiIDEgMSkNCnRyYWNlOiB8ICB8ICB8ICB8ICB8 ICB8ICAiIg0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIChfICIiKQ0KdHJhY2U6IHwgIHwgIHwgIHwg IHwgIHwgIChzdHJpbmc9PyAiIiAiIikNCnRyYWNlOiB8ICB8ICB8ICB8ICB8ICB8ICAjdA0KdHJh Y2U6IHwgIHwgIHwgIHwgIHwgIHwgIChzdHJpbmc9PyAiIiAiIikNCnRyYWNlOiB8ICB8ICB8ICB8 ICB8ICB8ICAjdA0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgICIiDQp0cmFjZTogfCAgfCAgfCAgfCAg fCAgKHJldmVyc2UgIiIpDQpYWFg6IHwgIHwgIHwgIHwgIChyZXZlcnNlICIiKQ0KdHJhY2U6IHwg IHwgIHwgIHwgIHwgIHwgIChfICIiICIiKQ0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIHwgIHwgIChf ICIiKQ0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIHwgIHwgIHwgIChfICIiKQ0KdHJhY2U6IHwgIHwg IHwgIHwgIHwgIHwgIHwgIHwgICIiDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgfCAgfCAgKG51bWJl cj8gIiIpDQp0cmFjZTogfCAgfCAgfCAgfCAgfCAgfCAgfCAgI2YNCnRyYWNlOiB8ICB8ICB8ICB8 ICB8ICB8ICB8ICAoXyAiIikNCnRyYWNlOiB8ICB8ICB8ICB8ICB8ICB8ICB8ICB8ICAoXyAiIikN CnRyYWNlOiB8ICB8ICB8ICB8ICB8ICB8ICB8ICB8ICAiIg0KdHJhY2U6IHwgIHwgIHwgIHwgIHwg IHwgIHwgIChudW1iZXI/ICIiKQ0KdHJhY2U6IHwgIHwgIHwgIHwgIHwgIHwgIHwgICNmDQp0cmFj ZTogfCAgfCAgfCAgfCAgfCAgfCAgKHN0cmluZz0/ICIiICIiKQ0KdHJhY2U6IHwgIHwgIHwgIHwg IHwgIHwgICN0DQppY2UtOS9ib290LTkuc2NtOjE2Njk6MTY6IEluIHByb2NlZHVyZSByYWlzZS1l eGNlcHRpb246DQpXcm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIHRvICM8cHJvY2VkdXJlIHJldHVy bi1oYW5kbGVyIChmcmFtZSBkZXB0aCB2YWx1ZXMpPg0KDQpFbnRlcmluZyBhIG5ldyBwcm9tcHQu ICBUeXBlIGAsYnQnIGZvciBhIGJhY2t0cmFjZSBvciBgLHEnIHRvIGNvbnRpbnVlLg0KG1s/MjAw NGhzY2hlbWVAKGd1aWxlLXVzZXIpIFsxXT4gLHENChtbPzIwMDRsDRtbPzIwMDRoc2NoZW1lQChn dWlsZS11c2VyKT4gLHEICChjYWxsLXdpdGgtdHJhY2UgKGxhbWJkYSAoKSAocmV2ZXJzZSAnYXNk ZikpKQ0bW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0N0cmFjZS1jYWxscy10by1wcm9jZWR1cmUgcmV2ZXJzZSAjOnByZWZpeCAi WFhYOiAiKQ0bW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0MbW0Mb W0MbW0MbW0MbW0MbW0MbW0MbWzZQY2FsbC13aXRoLXRyYWNlIChsYW1iZGEgKCkgKHJldmVyc2Ug J2FzZGYpKSkNG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tD G1tDG1tDG1tDG1tDG1tDG1tDdHJhY2UtY2FsbHMtdG8tcHJvY2VkdXJlIHJldmVyc2UgIzpwcmVm aXggIlhYWDogIikNG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tD G1tDG1tDG1tDG1tDG1tDG1tDG1tDcmV2ZXJzZSAnYXNkZikbW0sICAgICAgICAgICAgICGRlZmlu ZSAocmV2ZXJzZSB3ZCkgKGlmIChlcXVhbD8gd2QgIiIpICIiICh3b3JkIChyZXZlcnNlIChiZiB3 ZCkpIChmaXJzdCB3ZCkpKSkNG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tD G1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1s0OVB1c2UtbW9kdWxlcyAoc3lzdGVtIHZtIHRy YWNlKSkNG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tD G1tDG1tDG1tDG1tDLHEbW0sICCh1c2UtbW9kdWxlcyAoc3lzdGVtIHZtIHRyYWNlKSkNG1tDG1tD G1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tDG1tD LHEbW0sICChjYWxsLXdpdGgtdHJhY2UgKGxhbWJkYSAoKSAocmV2ZXJzZSAnYXNkZikpICM6Y2Fs bHM/ICNmKQ0KG1s/MjAwNGwNaWNlLTkvYm9vdC05LnNjbToxNjY5OjE2OiBJbiBwcm9jZWR1cmUg cmFpc2UtZXhjZXB0aW9uOg0KV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byAjPHByb2NlZHVy ZSByZXR1cm4taGFuZGxlciAoZnJhbWUgZGVwdGggdmFsdWVzKT4NCg0KRW50ZXJpbmcgYSBuZXcg cHJvbXB0LiAgVHlwZSBgLGJ0JyBmb3IgYSBiYWNrdHJhY2Ugb3IgYCxxJyB0byBjb250aW51ZS4N ChtbPzIwMDRoc2NoZW1lQChndWlsZS11c2VyKSBbMV0+ICxxDQobWz8yMDA0bA0bWz8yMDA0aHNj aGVtZUAoZ3VpbGUtdXNlcik+IBtbPzIwMDRsDQ0KDQobXTA7c2ltcGx5X3NjaGVtZTogZ3VpbGUH G1swMTszMm1hc2RmQFJUUhtbMDBtOhtbMDE7MzRtfi9QdWJsaWMvc2ltcGx5X3NjaGVtZRtbMDBt JCBleGl0DQoKU2NyaXB0IGRvbmUgb24gMjAyMC0wNy0yOCAxMzo0NjozNyswNTQ1Cg== --000000000000a484f005ab95de50 Content-Type: application/octet-stream; name=timingfile Content-Disposition: attachment; filename=timingfile Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kd7i1xxz3 MC4wNTUxODMgNzcKOS4wMjQ0NjkgMQowLjA3ODU5NSAxCjAuMTUxMTkyIDEKMC4wODk4NDMgMQow LjA0NjIxNCAxCjAuMzI4NjEwIDEKMC4xNTE0MDcgMQowLjIxNDgxMyAxCjAuMTE5OTAxIDEKMC4y NjY4MzEgMQowLjA3ODQ5MyAxCjAuMTIyMDk2IDEKMC4xMTc3MDggOAowLjMzMTg5OSAyCjAuMDE3 NzY4IDI0CjAuMDYzNjY1IDI3MwowLjAwMDAxOSAyNQowLjAwMTA3MSA4CjAuMDAwMDIwIDIxCjEu OTEyMTYwIDIKMC4yMjQ0NTQgNTkKMC4xNjU5NTMgNjkKMC4xOTg0MzMgNDcKMC40NDYxNzUgMTE3 CjAuMzM0ODQ3IDg0CjAuMzQ5ODcxIDkzCjAuMzUzNTM4IDEwMgoxLjQ0MjE2MiAxNDYKMC43MzQy OTcgMTAyCjAuMzk4NzM4IDExCjAuMDU4OTkyIDI5CjAuMzk1MjMzIDMxCjAuMTYyMTQ1IDY5CjAu MTcxOTI2IDU5CjAuMTY0NzI3IDY5CjAuMTUyMDM2IDQ3CjAuMzA3OTc0IDExNwowLjQ1ODc3NyA4 NAowLjUxNDAyNiA5MwozLjIzODczMSAxMDIKMC44NTIxNzcgMTQ2CjAuNTQ4ODk2IDExCjAuMDUz NjY3IDI5CjAuNDAwODUxIDgwCjAuMTk3MDc4IDEwMgowLjE4Mjg2NSA2OQowLjIyMDE0NiA1OQow LjIxNDA5NCA2OQowLjIyNjg3NiA0NwowLjQyMTkxNCAxMTcKMC4zNzczMTkgODQKMC44OTA0MTMg MTEKMC4wMTEwNjcgMTEKMC4wMDAxNzcgMjkKMC42OTM5NjUgMTUKMC4zMDAxNzMgOTMKMC4yOTE5 NzkgMTAyCjEuMDU3NTY0IDY5CjAuNDA4Nzk0IDU5CjAuOTAwMTA5IDY5CjAuMzYzNzM4IDQ3CjAu ODIzNjEzIDExNwoxLjU4NTUxMiAxMQowLjAyNDA3MyA1CjAuMDAyMDQzIDIKMC4wMDAwMTQgMwow LjAwMDAwOCAxCjAuMDAwMDMyIDUKMC4wMDAwMzkgMQowLjAwMDAyOCAxMgowLjAwMDAyNSA0CjAu MDAwMDIxIDIwCjAuMDAwMDEyIDQKMC4wMDAwMjggMQowLjAwMDA1NyAxOQowLjAwMDAxNiAzCjAu MDAyNTA5IDI5CjAuNzg5Njk2IDUxCjAuMjY5MDA0IDg0CjAuMzE4MzE0IDkzCjAuODU5MDk4IDEw MgowLjc2NTM3OSA2OQowLjQ1NDIwMCA1OQozLjkwNzM4OSA2OQowLjYyMTM4NiA0NwoxLjkxMDQx MyAxMQowLjAyNjQ5MCAxMAowLjAwMDE1MyAxNgowLjAwMDIwNyA1CjAuMDAwMDgyIDE2CjAuMDAw MjI1IDEzCjAuMDAwMDg1IDEzCjAuMDAwMDkyIDE2CjAuMDAwMDY3IDIzCjAuMDAwMDUzIDE2CjAu MDAwMDgzIDgKMC4wMDAwNTEgMTMKMC4wMDAxNTEgMjIKMC4wMDAwNjEgMTMKMC4wMDAwNTYgNAow LjAwMDQyMCAxMwowLjAwMDA4NyAxMAowLjAwMDM1MSAxNgowLjAwMDEwNiAxMAowLjAwMDA0OSAx NgowLjAwMDA1NCA0CjAuMDAwNTg2IDE2CjAuMDAwMDczIDEwCjAuMDAwMDUyIDE2CjAuMDAwMDU3 IDQKMC4wMDAzMjYgMTYKMC4wMDAxNjAgMTAKMC4wMDA1OTEgMTkKMC4wMDA1NDQgMTAKMC4wMDAz MzEgMjIKMC4wMDAwNjkgMTAKMC4wMDAwNjIgMjIKMC4wMDAwNTkgNgowLjAwMDA2NiAxOQowLjAw MDA4MSAxNgowLjAwMDA0NSAxOQowLjAwMDA1MCA0CjAuMDAwMDU5IDE2CjAuMDAwMDk2IDIzCjAu MDAwMDYzIDE2CjAuMDAwMDgzIDgKMC4wMDAwNjUgMTYKMC4wMDAxMDQgMjQKMC4wMDAwNTMgMTYK MC4wMDAwNTcgNwowLjAwMDQwNyAxMwowLjAwMDEwNSAxMQowLjAwMDM1MSAxNgowLjAwMDEzMSAy MQowLjAwMDA2MCAxNgowLjAwMDA0NCA0CjAuMDAwMDY1IDE2CjAuMDAwMDc5IDE4CjAuMDAwMDg0 IDE2CjAuMDAwMDQ3IDQKMC4wMDAyNTMgMTYKMC4wMDAwNTYgOQowLjAwMDA0MCAxNgowLjAwMDA1 MCAzCjAuMDAwMDY5IDE2CjAuMDAwMDg2IDIxCjAuMDAwMDM1IDE2CjAuMDAwMDU0IDQKMC4wMDAy NzMgMTYKMC4wMDAwNzEgOQowLjAwMDA0OSAxNgowLjAwMDA1MyAxCjAuMDAwMDEyIDIKMC4wMDA0 MzYgMTYKMC4wMDAwNjYgNwowLjAwMDAxMyAyCjAuMDAwMDM2IDE2CjAuMDAwMjM3IDMKMC4wMDAx ODggMTYKMC4wMDAwNDYgOQowLjAwMDAzOCAxNgowLjAwMDAyOSAzCjAuMDAwMDQxIDEzCjAuMDAw MDQ0IDUKMC4wMDAxNjYgMTMKMC4wMDAwNDYgMTUKMC4wMDAxNTggOAowLjAwMDA0NyAxNQowLjAw MDE4OSAxNgowLjAwMDA1MiAxMgowLjAwMDA3NyAxOQowLjAwMDA0NSAyMgowLjAwMDA1MCAxOQow LjAwMDA0MSA3CjAuMDAwMDkzIDE2CjAuMDAwMDc1IDIxCjAuMDAwMDMyIDE2CjAuMDAwMDM3IDQK MC4wMDAxOTMgMTYKMC4wMDAwNDUgOQowLjAwMDE2NyAxOQowLjAwMDA4OSA5CjAuMDAwMDM4IDE5 CjAuMDAwMDM0IDQKMC4wMDAxNjQgMTkKMC4wMDAwNDQgOQowLjAwMDAzMiAxOQowLjAwMDAzNCA0 CjAuMDAwMjA5IDE5CjAuMDAwMDQ1IDkKMC4wMDAxODkgMjIKMC4wMDAwNDUgOQowLjAwMDE1OSAy NQowLjAwMDA0NiA5CjAuMDAwMDMyIDI1CjAuMDAwMDM0IDUKMC4wMDAwNjUgMjIKMC4wMDAwNDQg MTUKMC4wMDAwMzAgMjIKMC4wMDAwMzUgNAowLjAwMDIyMiAxOQowLjAwMDA0NSAyMgowLjAwMDA1 MSAxOQowLjAwMDAzNyA3CjAuMDAwMDUxIDE5CjAuMDAwMDUzIDIzCjAuMDAwMDYxIDE5CjAuMDAw MDM2IDYKMC4wMDAxOTEgMTYKMC4wMDAwNDYgMTAKMC4wMDAwNDAgMTkKMC4wMDAwNDYgMjAKMC4w MDAwMzIgMTkKMC4wMDAwMzUgNAowLjAwMDA0MSAxOQowLjAwMDA0NSAxOAowLjAwMDAzNCAxOQow LjAwMDAzNCA0CjAuMDAwMTYyIDE5CjAuMDAwMDQyIDkKMC4wMDAwMzQgMTkKMC4wMDAwMzUgMwow LjAwMDAzNyAxOQowLjAwMDA0OCAyMAowLjAwMDAzNSAxOQowLjAwMDAzNSA0CjAuMDAwMTkxIDE5 CjAuMDAwMDQ1IDkKMC4wMDAwMzEgMTkKMC4wMDAwMzMgMwowLjAwMDE2MSAxOQowLjAwMDA0NCA5 CjAuMDAwMDMwIDE5CjAuMDAwMDM2IDMKMC4wMDAwMzYgMTYKMC4wMDAwMjkgNAowLjAwMDE1NCAx NgowLjAwMDA0NCAxNAowLjAwMDE0NyAxMQowLjAwMDA0NCAxNAowLjAwMDE1MSAxOQowLjAwMDA0 NyAxMQowLjAwMDA0NyAyMgowLjAwMDA0NCAyMQowLjAwMDA2MCAyMgowLjAwMDAzOCA2CjAuMDAw MDM4IDE5CjAuMDAwMDQ2IDIwCjAuMDAwMDM3IDE5CjAuMDAwMDMyIDQKMC4wMDAxNTYgMTkKMC4w MDAwNDMgOAowLjAwMDE2MyAyMgowLjAwMDA0NSA4CjAuMDAwMDM0IDIyCjAuMDAwMDMyIDQKMC4w MDAxNTYgMjIKMC4wMDAwNDEgOAowLjAwMDA4OSAyMgowLjAwMDAzOCA0CjAuMDAwMTU2IDIyCjAu MDAwMDQwIDgKMC4wMDAxOTEgMjUKMC4wMDAwNDQgOAowLjAwMDE1NyAyOAowLjAwMDA0MSA4CjAu MDAwMDMzIDI4CjAuMDAwMDUwIDQKMC4wMDAwNDAgMjUKMC4wMDAwNDEgMTQKMC4wMDAwMzMgMjUK MC4wMDAwMzEgNAowLjAwMDA0MCAyMgowLjAwMDA0NSAyMQowLjAwMDAyOSAyMgowLjAwMDAzOSA2 CjAuMDAwMDQ5IDIyCjAuMDAwMDUzIDIyCjAuMDAwMDM3IDIyCjAuMDAwMDM0IDUKMC4wMDAxNjUg MTkKMC4wMDAwNDMgOQowLjAwMDA0MSAyMgowLjAwMDA1MCAxOQowLjAwMDAzMyAyMgowLjAwMDAz MiA0CjAuMDAwMDQwIDIyCjAuMDAwMDQ5IDE4CjAuMDAwMDM0IDIyCjAuMDAwMDMxIDQKMC4wMDAx NTggMjIKMC4wMDAwNDMgOQowLjAwMDAzNSAyMgowLjAwMDAzNSAzCjAuMDAwMDQxIDIyCjAuMDAw MDQ1IDE5CjAuMDAwMDMwIDIyCjAuMDAwMDM0IDQKMC4wMDAxNTIgMjIKMC4wMDAwNDMgOQowLjAw MDAzNSAyMgowLjAwMDAzMCAzCjAuMDAwMDMyIDE5CjAuMDAwMDM4IDMKMC4wMDAxNTEgMTkKMC4w MDAwNDcgMTMKMC4wMDAxNDggMTQKMC4wMDAwNDMgMTMKMC4wMDAxNTkgMjIKMC4wMDAwNTEgMTAK MC4wMDAwNDEgMjUKMC4wMDAwNDEgMjAKMC4wMDAwMzEgMjUKMC4wMDAwMzYgNQowLjAwMDA0MCAy MgowLjAwNzAzNCAxOQowLjAwMDA2MCAyMgowLjAwMDA2MiA0CjAuMDAwMjQzIDIyCjAuMDAwMDUw IDcKMC4wMDAxODkgMjUKMC4wMDAwNDQgNwowLjAwMDA0NiAyNQowLjAwMDA0MSA0CjAuMDAwMTc5 IDI1CjAuMDAwMDQ0IDUKMC4wMDAwMTEgMgowLjAwMDAyNSAyNQowLjAwMDA0MCA0CjAuMDAwMTc1 IDI1CjAuMDAwMDQwIDcKMC4wMDAxNzggMjgKMC4wMDAwNDcgNwowLjAwMDE3NyAzMQowLjAwMDA0 MSA3CjAuMDAwMDQwIDMxCjAuMDAwMDQxIDMKMC4wMDAwNTAgMjgKMC4wMDAwNDggMTMKMC4wMDAw MzEgMjgKMC4wMDAwMzcgMgowLjAwMDAwOSAyCjAuMDAwMDQwIDI1CjAuMDAwMDU2IDIwCjAuMDAw MDMxIDI1CjAuMDAwMDM3IDUKMC4wMDAwNTAgMjUKMC4wMDAwNzAgMjEKMC4wMDAwMjggMjUKMC4w MDAwNjIgNAowLjAwMDE5NSAyMgowLjAwMDA0MSA4CjAuMDAwMDUxIDI1CjAuMDAwMDYwIDE4CjAu MDAwMDMyIDI1CjAuMDAwMDM2IDIKMC4wMDAwMDkgMgowLjAwMDA0MCAyNQowLjAwMDA2MSAxOAow LjAwMDAyOSAyNQowLjAwMDAzNyAyCjAuMDAwMDEwIDIKMC4wMDAwMjAgMjIKMC4wMDAwNDEgNAow LjAwMDE2NiAyMgowLjAwMDAzNSAxMgowLjAwMDAxMCAyCjAuMDAwMTYwIDE3CjAuMDAwMDQzIDE0 CjAuMDAwMjM3IDI1CjAuMDAwMDU1IDExCjAuMDAwMjMyIDI4CjAuMDAwMDQ1IDgKMC4wMDAyMjcg MzEKMC4wMDAwNDkgOAowLjAwMDAzNCAzMQowLjAwMDAzNiA0CjAuMDAwMDQyIDI4CjAuMDAwMDQz IDE0CjAuMDAwMDMxIDI4CjAuMDAwMDM0IDQKMC4wMDAyMjkgMjgKMC4wMDAwNDcgOAowLjAwMDIw MSAzMQowLjAwMDA1MSA4CjAuMDAwMDM3IDMxCjAuMDAwMDM0IDQKMC4wMDAwNDEgMjgKMC4wMDAw MzkgMTQKMC4wMDAwMzAgMjgKMC4wMDAwMzAgNAowLjAwMDA0MCAyNQowLjAwMDA1NiAxOAowLjAw MDAzNyAyNQowLjAwMDAzNCAyCjAuMDAwMDA5IDIKMC4wMDI1NTEgMTM4CjAuMDAwMDI0IDcKMC4w MDAwMDggMQowLjAwMDAxMSAzCjAuMDAwMDEzIDMKMC4wMDAwMTIgMwowLjAwMDAxMSAyCjAuMDAw MDA5IDMKMC4wMDAwMTMgMgowLjAwMDAyOSA2CjAuMDAwMDEyIDMKMC4wMDAwMDkgMwowLjAwMDAx MiAzCjAuMDAwMDEyIDIKMC4wMDAwMTAgMwowLjAwMDAxMiAzCjAuMDAwMDA5IDMKMC4wMDAwMDkg MgowLjAwMDAxMCAzCjAuMDAwMDExIDEKMC4wMDAwMTEgNQowLjAwMDAwOSAzCjAuMDAwMDEyIDIK MC4wMDAwMTAgMwowLjAwMDAxMCAyCjAuMDAwMDExIDIKMC4wMDAyMjIgOAowLjAwMDAxMSAyNQow Ljg3Nzc1OSAxCjAuMDg2NjMyIDEKMC42ODkwOTggMgowLjAwMDA3NSA5CjAuMDAwOTE4IDI5CjAu NTEyODI5IDIKMC4zNTczMDkgNDcKMC4zOTc5MzYgMTE3CjAuNjMxMjI2IDExNQoyLjkwMzUwMSAx MTcKMC4zOTYzMTAgODQKMC4zODE4MzUgOTMKMS4xMDQzMTUgMTAyCjIuNDM5NjY2IDY5CjAuNjIw NzgzIDMzCjAuNTkzNTc0IDY5CjAuMjA5NDA1IDU5CjEuNDE5NjkyIDExCjAuMDIwNTIzIDE1Ngow LjAwMDAyNSA2CjAuMDAwMDMwIDcKMC4wMDAwMTEgMgowLjAwMDAxMCAyCjAuMDAwMDA5IDIKMC4w MDAwMTEgMwowLjAwMDAyMSA2CjAuMDAwMDA5IDMKMC4wMDAwMDcgMQowLjAwMDAxMSAzCjAuMDAw MDI1IDcKMC4wMDAwMTEgMQowLjAwMDAxMCA1CjAuMDAwMDExIDMKMC4wMDAwMDggMQowLjAwMDAx MCAzCjAuMDAwMTcyIDgKMC4wMDAwMTcgMjUKMS42NTI2NzIgMQowLjEwMjAzMyAxCjAuMzAxOTEy IDIKMC4wMDAwNDMgOQowLjAwMDc1MSAyOQowLjcwMjA4MiAxMQowLjAwMDExOSAyCjAuMDEzMTY4 IDg0CjAuOTA2MTI2IDYK --000000000000a484f005ab95de50-- From unknown Sat Jun 14 03:56:34 2025 X-Loop: help-debbugs@gnu.org Subject: bug#42574: Probable (system vm trace) bug Resent-From: Prafulla Giri Original-Sender: "Debbugs-submit" Resent-CC: bug-guile@gnu.org Resent-Date: Sat, 01 Aug 2020 13:06:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 42574 X-GNU-PR-Package: guile X-GNU-PR-Keywords: To: 42574@debbugs.gnu.org X-Debbugs-Original-To: bug-guile@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.15962871583516 (code B ref -1); Sat, 01 Aug 2020 13:06:01 +0000 Received: (at submit) by debbugs.gnu.org; 1 Aug 2020 13:05:58 +0000 Received: from localhost ([127.0.0.1]:39946 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k1rD3-0000ue-Lu for submit@debbugs.gnu.org; Sat, 01 Aug 2020 09:05:58 -0400 Received: from lists.gnu.org ([209.51.188.17]:41370) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k1rD0-0000uV-S1 for submit@debbugs.gnu.org; Sat, 01 Aug 2020 09:05:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:36948) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k1rD0-0004VW-NK for bug-guile@gnu.org; Sat, 01 Aug 2020 09:05:54 -0400 Received: from mail-pf1-x432.google.com ([2607:f8b0:4864:20::432]:34859) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1k1rCy-00032v-G6 for bug-guile@gnu.org; Sat, 01 Aug 2020 09:05:54 -0400 Received: by mail-pf1-x432.google.com with SMTP id d188so9751840pfd.2 for ; Sat, 01 Aug 2020 06:05:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=lDGyFqko0xvLqZZbk5B6VdabgNH6j8LmY0hPWZY31QA=; b=dL5zHm3EfGnM6ToSV6vzyjxEr+JRNDOYEtTXOLASjoI0QtU6kwz6EjQ7WNypemq05I bevEOfI4IlwvYHpbUsLINFJQnvmf5An0GvJwdZHeS6YL6e5IN+/sH6UTPw3xhWbM/gRd rl2FHpWJklWnL27N3eG/C+f5xiyktP/ncJ31iMIPDU220EfS5YeN9QZSTzpTV1qcy1Rg u4e2s+5QkEQHvEvvdvoJTsCZeLXttWJLicic9NFNJGEmmmJkOE/GQw4d6VA5V2Vq3XFy ZRQI379B7bOJ5NnqcVc+CR2NFDLow3M7VI+r2/5crAlt3eLrNWzOuAdkgnY7nik+geJB TTgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=lDGyFqko0xvLqZZbk5B6VdabgNH6j8LmY0hPWZY31QA=; b=HHqtxPlYwOYMPcgk7uRsVkfpqZyas1cpeX3fSlpp71AykbRKHGN07VF4FFNR+LHWwR AjjZ+oH3PvSl/gL1PIvTOjmUTDTeO15/Qj01cb/IUfLR/Rd3CY8rxkOIuPMA89hKFTrK u+di4YSJfCtMyGEuMAa5Jupy6YT5OvGx2H5hNgnEaJk+UkEbuQ2o0SLfsm2hkq/OiwU1 prel8QyIkrmdbEiEnt2pqiU3Rk0HVSOiPDMB87HHYAzeAXuJLrN74wWNIk0gxxQvovD1 OF3DDmdlnoJjj84gYi4rwxmgAfrQS9U0YIwsamGUeuaqJRJdSfarviTJ2h5tIFALqEte Gq6Q== X-Gm-Message-State: AOAM532P7RtaIF7X89HqlyeAysNFsL32CFFALjwU95jI2mUIdiGBT9oa JlhMeCCL/SfRHGv3HaVPThFJ/hMKkAU7nExrSRNIScT2olo= X-Google-Smtp-Source: ABdhPJyzXihu2wyvbAfGGCShthm3swTMpqtyt/e4DK+0koxlBQga8Gc/4RC1Yt8g1UXiEAuIWA4p/S3rOaredpsj9GA= X-Received: by 2002:a63:fa15:: with SMTP id y21mr7729928pgh.339.1596287150472; Sat, 01 Aug 2020 06:05:50 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Prafulla Giri Date: Sat, 1 Aug 2020 18:50:38 +0545 Message-ID: Content-Type: multipart/mixed; boundary="0000000000009054d705abd090b5" Received-SPF: pass client-ip=2607:f8b0:4864:20::432; envelope-from=pratheblackdiamond@gmail.com; helo=mail-pf1-x432.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --0000000000009054d705abd090b5 Content-Type: multipart/alternative; boundary="0000000000009054d505abd090b3" --0000000000009054d505abd090b3 Content-Type: text/plain; charset="UTF-8" Attached is a patch to fix this issue. I would like to acknowledge RhodiumToad, who actually figured out what was causing this issue. On Tue, Jul 28, 2020 at 3:23 PM Prafulla Giri wrote: > Esteemed Maintainers, > > I am quite positive that what I am experiencing is not quite a bug but > just some mis-step on my part. But I have been encouraged to report this as > a possible bug. Thus, here it is. > > Context: > Guile version: 3.0.2 (installed using guix) > Loaded Files: simply.scm ( > https://github.com/hosoe-masaki/SimplyScheme/blob/master/simply.scm) > Reverse function (referred to in the report, assumes 'simply.scm' has been > loaded): > (define (reverse wd) (if (equal? wd "") "" (word (reverse (bf wd)) (first > wd)))) > ;; (reverse 'asdf) -> 'fdsa > > This started with my first wanting to run a (trace) of a recursive > procedure as seen in Chapter 13 of the book 'Simply Scheme' ( > https://people.eecs.berkeley.edu/~bh/ssch13/convince-recur.html). I > looked for a waay to (trace) in guile, but couldn't find anything except > ,trace, which was giving a trace of everything that the function (reverse) > called from inside of it, thus making the trace 'polluted'. > > I then looked around and found that a (trace) function, much like the one > being demonstrated in the book used to exist once in guile: > https://www.gnu.org/software/guile/docs/docs-1.8/guile-ref/Tracing.html > and then found that for guile3 there was something that looked similarly > promising: the (trace-calls-to-procedure) function ( > https://www.gnu.org/software/guile/docs/master/guile.html/Tracing-Traps.html). > However, > > (trace-calls-to-procedure reverse) > > (reverse 'asdf) > fdsa > produced no trace. This led me to ask around IRC for some guidance > regarding it. Someone from #emacs suggested I try doing this: > http://ix.io/2suZ > When I attempted to do the same thing, however, I encountered the > following error, at the sight of which, it was recommended that I file a > (possible) bug report: https://termbin.com/6nm5 > > The following `script` typescript might also be of interest to the > maintainers (to be replayed using `scriptreplay`): > typescript - https://termbin.com/sx5o > timing file - https://termbin.com/73ei > (This one records the (call-with-trace) call with both #:call? #f and > without the specification). > > I must confess, I don't understand a whole lot of this. All I would like > to say is that I have a feeling (trace-calls-to-procedure procedure) > should have worked like (trace) as shown in chapter 13 section 'trace' in > the book (https://people.eecs.berkeley.edu/~bh/ssch13/convince-recur.html); > it just seems 'right' by the name of it. I was expecting the trace from (trace-call-to-procedure > reverse) (reverse 'asdf) to be basically like ,trace (reverse 'asdf) but > without the traces of all other procedures. > > Please do let me know if I have left out any important details. And please > do let me know if I am doing something wrong here. I am almost quite > certain this is just a minor error on my part, rather than a bug (and I'd > really like to be able to trace those procedures). > --0000000000009054d505abd090b3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Attached is a patch to fix this issue. I would l= ike to acknowledge RhodiumToad, who actually figured out what was causing t= his issue.

On Tue, Jul 28, 2020 at 3:23 PM= Prafulla Giri <prathebl= ackdiamond@gmail.com> wrote:
Esteemed Maintainers,
<= br>
I am quite positive that what I am experiencing is not quite = a bug but just some mis-step on my part. But I have been encouraged to repo= rt this as a possible bug. Thus, here it is.

Conte= xt:
Guile version: 3.0.2 (installed using guix)
Reverse function (referre= d to in the report, assumes 'simply.scm' has been loaded):
(define (reverse wd) (if (equal? wd= "") "" (word (reverse (bf wd)) (first wd))))
;; (reverse 'asdf) -> = 'fdsa

This started with my first wa= nting to run a (trace) of a recursive procedure as seen in Chapter 13 of th= e book 'Simply Scheme' (https://people.eecs.berk= eley.edu/~bh/ssch13/convince-recur.html). I looked for a waay to (trace= ) in guile, but couldn't find anything except ,trace, which was giving = a trace of everything that the function (reverse) called from inside of it,= thus making the trace 'polluted'.

I then = looked around and found that a (trace) function, much like the one being de= monstrated in the book used to exist once in guile: https://www.gnu.org/software/guile/docs/docs-1.8/guile-ref/Tracing.html= and then found that for guile3 there was something that looked similar= ly promising: the (trace-calls-to-procedure) function (https://www.gnu.org/software/guile/docs/master/guile.html/Traci= ng-Traps.html). However,
> (trace-calls-to-procedure reverse)
> (reverse 'asdf)
fdsa
produced no trace. This led me = to ask around IRC for some guidance regarding it. Someone from #emacs sugge= sted I try doing this: http= ://ix.io/2suZ
When I attempted to do the same thing,= however, I encountered the following error, at the sight of which, it was = recommended that I file a (possible) bug report: https://termbin.com/6nm5

The following `script` typescript might also be o= f interest to the maintainers (to be replayed using `scriptreplay`):=
I must confess, I don't understand a whole lot of this. Al= l I would like to say is that I have a feeling (trace-calls-to-procedure procedure) should have worked li= ke (trace) as shown in chapter= 13 section 'trace' in the book (https://people.= eecs.berkeley.edu/~bh/ssch13/convince-recur.html); it just seems 'r= ight' by the name of it. I was expecting the trace from (trace-call-to-procedure reverse) (reverse 'asdf= ) to be basically like ,trace = (reverse 'asdf) but without the traces of all other procedures.<= br>

Please do let me know i= f I have left out any important details. And please do let me know if I am = doing something wrong here. I am almost quite certain this is just a minor = error on my part, rather than a bug (and I'd really like to be able to = trace those procedures).
--0000000000009054d505abd090b3-- --0000000000009054d705abd090b5 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Fix-return-handler-of-trace-calls-to-procedure.patch" Content-Disposition: attachment; filename="0001-Fix-return-handler-of-trace-calls-to-procedure.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kdbo4m4n0 RnJvbSBjOTA3ZTlmN2VjYzQ3NjRmNmNkY2Y1ZjZiMmNkNmNlZDgwYWQ5NWE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQcmFmdWxsYSBHaXJpIDxwcmF0aGVibGFja2RpYW1vbmRAZ21h aWwuY29tPgpEYXRlOiBTYXQsIDEgQXVnIDIwMjAgMTU6Mzk6MjIgKzA1NDUKU3ViamVjdDogW1BB VENIXSBGaXggcmV0dXJuLWhhbmRsZXIgb2YgdHJhY2UtY2FsbHMtdG8tcHJvY2VkdXJlCgpUaGlz IGNoYW5nZSByZW1vdmVzIHRoZSBleHRyYS91bnVzZWQgZm9ybWFsIHBhcmFtZXRlciAndmFsdWVz JyBmcm9tCnRoZSBkZWZpbml0aW9uIG9mIHJldHVybi1oYW5kbGVyIGluIHRyYWNlLWNhbGxzLXRv LXByb2NlZHVyZS4gVGhpcwpleHRyYSBwYXJhbWV0ZXIgd2FzIGNhdXNpbmcgdHJhY2UtY2FsbHMt dG8tcHJvY2VkdXJlIHRvIGZhaWwgZm9yIHRoZQpsYWNrIG9mIGFuIGFyZ3VtZW50IHRoYXQgd2Fz IG5ldmVyIHBhc3NlZCB0byBpdC4gVGhhbmtzIHRvIE1yLiBBbmRyZXcKKFJob2RpdW1Ub2FkKSBm b3IgZmlndXJpbmcgdGhpcyBvdXQuIEZpeGVzICM0MjU3NC4KCiogbW9kdWxlL3N5c3RlbS92bS90 cmFjZS5zY20gKHRyYWNlLWNhbGxzLXRvLXByb2NlZHVyZSAocmV0dXJuLWhhbmRsZXIpKToKICBS ZW1vdmUgdW5uZWNlc3NhcnkgZm9ybWFsIHBhcmFtZXRlciAndmFsdWVzJy4KLS0tCiBtb2R1bGUv c3lzdGVtL3ZtL3RyYWNlLnNjbSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL21vZHVsZS9zeXN0ZW0vdm0vdHJhY2Uuc2Nt IGIvbW9kdWxlL3N5c3RlbS92bS90cmFjZS5zY20KaW5kZXggZTlmMTdkYWU4Li41NDg0MGQ4ZmQg MTAwNjQ0Ci0tLSBhL21vZHVsZS9zeXN0ZW0vdm0vdHJhY2Uuc2NtCisrKyBiL21vZHVsZS9zeXN0 ZW0vdm0vdHJhY2Uuc2NtCkBAIC03Myw3ICs3Myw3IEBACiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChtYXgtaW5kZW50ICgtIHdpZHRoIDQwKSkpCiAgIChkZWZpbmUgKGFwcGx5 LWhhbmRsZXIgZnJhbWUgZGVwdGgpCiAgICAgKHByaW50LWFwcGxpY2F0aW9uIGZyYW1lIGRlcHRo IHdpZHRoIHByZWZpeCBtYXgtaW5kZW50KSkKLSAgKGRlZmluZSAocmV0dXJuLWhhbmRsZXIgZnJh bWUgZGVwdGggdmFsdWVzKQorICAoZGVmaW5lIChyZXR1cm4taGFuZGxlciBmcmFtZSBkZXB0aCkK ICAgICAocHJpbnQtcmV0dXJuIGZyYW1lIGRlcHRoIHdpZHRoIHByZWZpeCBtYXgtaW5kZW50KSkK ICAgKHRyYXAtY2FsbHMtdG8tcHJvY2VkdXJlIHByb2MgYXBwbHktaGFuZGxlciByZXR1cm4taGFu ZGxlcikpCiAKLS0gCjIuMjYuMgoK --0000000000009054d705abd090b5-- From unknown Sat Jun 14 03:56:34 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Prafulla Giri Subject: bug#42574: closed (Re: bug#42574: Probable (system vm trace) bug) Message-ID: References: X-Gnu-PR-Message: they-closed 42574 X-Gnu-PR-Package: guile Reply-To: 42574@debbugs.gnu.org Date: Fri, 21 May 2021 18:39:01 +0000 Content-Type: multipart/mixed; boundary="----------=_1621622341-14347-1" This is a multi-part message in MIME format... ------------=_1621622341-14347-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #42574: Probable (system vm trace) bug which was filed against the guile package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 42574@debbugs.gnu.org. --=20 42574: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D42574 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1621622341-14347-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 42574-done) by debbugs.gnu.org; 21 May 2021 18:38:02 +0000 Received: from localhost ([127.0.0.1]:37568 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lkA25-0003i3-Rb for submit@debbugs.gnu.org; Fri, 21 May 2021 14:38:01 -0400 Received: from mta-09-3.privateemail.com ([68.65.122.19]:11225) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lkA24-0003hZ-HV for 42574-done@debbugs.gnu.org; Fri, 21 May 2021 14:38:00 -0400 Received: from MTA-09.privateemail.com (localhost [127.0.0.1]) by MTA-09.privateemail.com (Postfix) with ESMTP id 8F4DF6004C; Fri, 21 May 2021 14:37:54 -0400 (EDT) Received: from [192.168.1.105] (unknown [10.20.151.233]) by MTA-09.privateemail.com (Postfix) with ESMTPA id 09BDF6003F; Fri, 21 May 2021 14:37:53 -0400 (EDT) From: lloda Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.4\)) Subject: Re: bug#42574: Probable (system vm trace) bug Message-Id: Date: Fri, 21 May 2021 20:38:33 +0200 To: 42574-done@debbugs.gnu.org X-Mailer: Apple Mail (2.3608.120.23.2.4) X-Virus-Scanned: ClamAV using ClamSMTP X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 42574-done Cc: pratheblackdiamond@gmail.com X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This has been fixed in f9f55b9ce74898d1b0a77dcc9b4aa260e5cd208d. = Apologies for not noticing the earlier patch... there were a couple = later duplicates. Thanks!= ------------=_1621622341-14347-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 28 Jul 2020 09:38:38 +0000 Received: from localhost ([127.0.0.1]:57272 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k0M4D-00050w-PM for submit@debbugs.gnu.org; Tue, 28 Jul 2020 05:38:38 -0400 Received: from lists.gnu.org ([209.51.188.17]:46760) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1k0M4C-00050o-1T for submit@debbugs.gnu.org; Tue, 28 Jul 2020 05:38:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:38454) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1k0M4B-0001FU-Qt for bug-guile@gnu.org; Tue, 28 Jul 2020 05:38:35 -0400 Received: from mail-pj1-x1042.google.com ([2607:f8b0:4864:20::1042]:37638) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1k0M49-0002dD-Of for bug-guile@gnu.org; Tue, 28 Jul 2020 05:38:35 -0400 Received: by mail-pj1-x1042.google.com with SMTP id lx9so311656pjb.2 for ; Tue, 28 Jul 2020 02:38:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=3M0t4a2WWSrLoto7FHJKg4plV7Nyo5VFnk0sXrp/sF8=; b=ekZeFn3kTjntrqBawpMQRZA1Po+bVKYb7kez0mszFmWH/k2+ehQoE5T2ecGcwwxRxm +gGK6hmL1VXH7QEo8tZ+HYZlcEl+UqvolCfrm9eDtTUiIX13oYUxfKVgCnolCeOgiDyj PcEN9oQlL+aLGPzl/9/LPp+oo7o8L/zfqsaX7oyyn6g1QEHrS+cH259rkrsSFQQZ5VpD NkjKheOmBB01RW86Ju1PdM2QLn69a6uXzm0AOW7S+e/8qbPpKDuh3iUOWrWIp/vQQc6a RWD0YsnRBXosmtMDGkgCP1lN3EOjyhZlF6J9sgG6t3zE7agGe1Z1wvxVRdVlFDC6FbHr 8Qhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=3M0t4a2WWSrLoto7FHJKg4plV7Nyo5VFnk0sXrp/sF8=; b=YWbOzTCy6qkc5l1FE2RHFS48LXMU3QbZHYfZFnOhlwz0CeUINzwA6OompTEeyO7KJl t35Bl8zrF90m36iTv6q9OdR6W3kf4EmhVNWiOjebB6SlItsYV1cW1qukQxGlxRao1kMS mm5KdmnOxEKjsXd67l2aXVVnYE5qjRoHoTwM+rFZWorMYBKh7iES2CTEsJ0MbDfq+ZgO yCEjzbcedb+YA2UiLAtnBvT0gu4oApwul/6HIeT4ZKbtiRRp8PSWPEuaTGe8MRS3/v7S Fb77MIsUkYSxj+zfCWgmhFcCwKja1cMgT2x0pvIOyotHey5qzaNAMo6kEM4PUG8if2vV yw9w== X-Gm-Message-State: AOAM533vG0EHZUF63oCOiyxoGvkIRcg2OuWfsgUm8yiK91HPuqTPHE8k sQNhiUvu660JbkOMYd6BipMSFzvtWz4T5CH6or/BRUf6Kyk= X-Google-Smtp-Source: ABdhPJw9W4z4MRvqvVEOggRK7jdcvL+zPnANppIqO80Pbw+30GrJc4wgUtWba7Mevl9ED4K3AptXN7wSm4P5mUO04NY= X-Received: by 2002:a17:902:a416:: with SMTP id p22mr22094932plq.341.1595929111443; Tue, 28 Jul 2020 02:38:31 -0700 (PDT) MIME-Version: 1.0 From: Prafulla Giri Date: Tue, 28 Jul 2020 15:23:19 +0545 Message-ID: Subject: Probable (system vm trace) bug To: bug-guile@gnu.org Content-Type: multipart/alternative; boundary="000000000000c63cba05ab7d33e2" Received-SPF: pass client-ip=2607:f8b0:4864:20::1042; envelope-from=pratheblackdiamond@gmail.com; helo=mail-pj1-x1042.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --000000000000c63cba05ab7d33e2 Content-Type: text/plain; charset="UTF-8" Esteemed Maintainers, I am quite positive that what I am experiencing is not quite a bug but just some mis-step on my part. But I have been encouraged to report this as a possible bug. Thus, here it is. Context: Guile version: 3.0.2 (installed using guix) Loaded Files: simply.scm ( https://github.com/hosoe-masaki/SimplyScheme/blob/master/simply.scm) Reverse function (referred to in the report, assumes 'simply.scm' has been loaded): (define (reverse wd) (if (equal? wd "") "" (word (reverse (bf wd)) (first wd)))) ;; (reverse 'asdf) -> 'fdsa This started with my first wanting to run a (trace) of a recursive procedure as seen in Chapter 13 of the book 'Simply Scheme' ( https://people.eecs.berkeley.edu/~bh/ssch13/convince-recur.html). I looked for a waay to (trace) in guile, but couldn't find anything except ,trace, which was giving a trace of everything that the function (reverse) called from inside of it, thus making the trace 'polluted'. I then looked around and found that a (trace) function, much like the one being demonstrated in the book used to exist once in guile: https://www.gnu.org/software/guile/docs/docs-1.8/guile-ref/Tracing.html and then found that for guile3 there was something that looked similarly promising: the (trace-calls-to-procedure) function ( https://www.gnu.org/software/guile/docs/master/guile.html/Tracing-Traps.html). However, > (trace-calls-to-procedure reverse) > (reverse 'asdf) fdsa produced no trace. This led me to ask around IRC for some guidance regarding it. Someone from #emacs suggested I try doing this: http://ix.io/2suZ When I attempted to do the same thing, however, I encountered the following error, at the sight of which, it was recommended that I file a (possible) bug report: https://termbin.com/6nm5 The following `script` typescript might also be of interest to the maintainers (to be replayed using `scriptreplay`): typescript - https://termbin.com/sx5o timing file - https://termbin.com/73ei (This one records the (call-with-trace) call with both #:call? #f and without the specification). I must confess, I don't understand a whole lot of this. All I would like to say is that I have a feeling (trace-calls-to-procedure procedure) should have worked like (trace) as shown in chapter 13 section 'trace' in the book (https://people.eecs.berkeley.edu/~bh/ssch13/convince-recur.html); it just seems 'right' by the name of it. I was expecting the trace from (trace-call-to-procedure reverse) (reverse 'asdf) to be basically like ,trace (reverse 'asdf) but without the traces of all other procedures. Please do let me know if I have left out any important details. And please do let me know if I am doing something wrong here. I am almost quite certain this is just a minor error on my part, rather than a bug (and I'd really like to be able to trace those procedures). --000000000000c63cba05ab7d33e2 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Esteemed Maintainers,

I am q= uite positive that what I am experiencing is not quite a bug but just some = mis-step on my part. But I have been encouraged to report this as a possibl= e bug. Thus, here it is.

Context:
Guile = version: 3.0.2 (installed using guix)
Loaded Files: simply.scm (<= a href=3D"https://github.com/hosoe-masaki/SimplyScheme/blob/master/simply.s= cm">https://github.com/hosoe-masaki/SimplyScheme/blob/master/simply.scm= )
Reverse function (referred to in the report, assumes 'simpl= y.scm' has been loaded):
(define (reverse wd) (if (equal? wd "") "" (word (rev= erse (bf wd)) (first wd))))
;; (reverse 'asdf) -> 'fdsa

This started with my first wanting to run a (trace) of a recursive = procedure as seen in Chapter 13 of the book 'Simply Scheme' (https= ://people.eecs.berkeley.edu/~bh/ssch13/convince-recur.html). I looked f= or a waay to (trace) in guile, but couldn't find anything except ,trace= , which was giving a trace of everything that the function (reverse) called= from inside of it, thus making the trace 'polluted'.
I then looked around and found that a (trace) function, much li= ke the one being demonstrated in the book used to exist once in guile: https://www.gnu.org/software/guile/docs/docs-1.8/guile-ref/Tracing.htm= l and then found that for guile3 there was something that looked simila= rly promising: the (trace-calls-to-procedure) function (https= ://www.gnu.org/software/guile/docs/master/guile.html/Tracing-Traps.html= ). However,
> (trace-cal= ls-to-procedure reverse)
> (reverse 'asdf)
fdsa
produced no trace. This led me to ask around IRC= for some guidance regarding it. Someone from #emacs suggested I try doing = this: http://ix.io/2suZ
When I attempted to do the same thing, however, I encountered the followi= ng error, at the sight of which, it was recommended that I file a (possible= ) bug report: https://termbin.com/6nm5=

The following `script` type= script might also be of interest to the maintainers (to be replayed using `= scriptreplay`):
timing file - https://termbin.com/73ei
(This one records the (call-with-trace) call with both #:call? #f a= nd without the specification).

<= div>I= must confess, I don't understand a whole lot of this. All I would like= to say is that I have a feeling (tra= ce-calls-to-procedure procedure) should have worked like (trace) as shown in chapter 13 section &#= 39;trace' in the book (https://people.eecs.berkeley.edu/~bh/ssch13/con= vince-recur.html); it just seems 'right' by the name of it. I w= as expecting the trace from (trace-ca= ll-to-procedure reverse) (reverse 'asdf) to be basically like ,trace (reverse 'asdf) but w= ithout the traces of all other procedures.

Please do let me know if I have left out any important = details. And please do let me know if I am doing something wrong here. I am= almost quite certain this is just a minor error on my part, rather than a = bug (and I'd really like to be able to trace those procedures).
--000000000000c63cba05ab7d33e2-- ------------=_1621622341-14347-1--