<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>60328</bug_id>
          
          <creation_ts>2011-05-05 18:16:12 -0700</creation_ts>
          <short_desc>NRWT needs a way to log to a file without including backspaces without needing --verbose</short_desc>
          <delta_ts>2011-06-02 17:21:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>eric</cc>
    
    <cc>mihaip</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>399261</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-05-05 18:16:12 -0700</bug_when>
    <thetext>NRWT needs a way to log to a file without including backspaces without needing --verbose</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399263</commentid>
    <comment_count>1</comment_count>
      <attachid>92519</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-05-05 18:22:20 -0700</bug_when>
    <thetext>Created attachment 92519
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>399264</commentid>
    <comment_count>2</comment_count>
      <attachid>92519</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-05-05 18:23:06 -0700</bug_when>
    <thetext>Comment on attachment 92519
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=92519&amp;action=review

&gt; Tools/Scripts/webkitpy/layout_tests/layout_package/manager.py:854
&gt; +                self._printer.print_progress(result_summary, self._retrying, self._test_files_list)

Note that this change is needed so that we still get one-line-progress updates periodically even if no tests have completed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402924</commentid>
    <comment_count>3</comment_count>
      <attachid>92519</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-05-12 10:18:36 -0700</bug_when>
    <thetext>Comment on attachment 92519
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=92519&amp;action=review

What is the use case for this?

&gt; Tools/Scripts/webkitpy/layout_tests/layout_package/printing.py:46
&gt; +FAST_UPDATES = 0.03
&gt; +SLOW_UPDATES = 10.0

Nit: Can we include the units in these variables?  e.g., FAST_UPDATES_TIME_SECS or FAST_UPDATES_SECS.

&gt; Tools/Scripts/webkitpy/layout_tests/layout_package/printing.py:221
&gt; +            self._update_interval = FAST_UPDATES

Why do we need the fast updates value?  It seems like we didn&apos;t have this check before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408623</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-05-23 21:14:26 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 92519 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=92519&amp;action=review
&gt; 
&gt; What is the use case for this?
&gt; 

I assume &quot;this&quot; == &quot;this feature&quot; and not some particular aspect of this patch?

If so, I tried to explain this in the changelog ... &quot; This is useful if you want to capture the log output of NRWT but don&apos;t want the full --verbose output. &quot; 

In particular, Adam asked for this on the EWS bots since the --verbose logs were taking up a large amount of space. I have also wanted this because the --verbose logs make it very hard to actually find real errors. Eventually I would like to have the debug output written to a debug log and have the code either do the &quot;overwriting&quot; or &quot;no-overwriting&quot; behavior by default depending on whether it is writing to something that supports overwriting. Unfortunately, I have no idea how to detect that in python. Any ideas?

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/layout_package/printing.py:46
&gt; &gt; +FAST_UPDATES = 0.03
&gt; &gt; +SLOW_UPDATES = 10.0
&gt; 
&gt; Nit: Can we include the units in these variables?  e.g., FAST_UPDATES_TIME_SECS or FAST_UPDATES_SECS.
&gt;

Sure.
 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/layout_package/printing.py:221
&gt; &gt; +            self._update_interval = FAST_UPDATES
&gt; 
&gt; Why do we need the fast updates value?  It seems like we didn&apos;t have this check before.

Correct. Before, we tried to update the progress meter after every test completed (potentially hundreds of times per second).  Adding this reduces the CPU load incurred by the master thread. I suppose it&apos;s debatable whether this is really necessary, but given that I&apos;ve added the SLOW_UPDATES concept (which is necessary), it seems like it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409005</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-05-24 11:06:54 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; In particular, Adam asked for this on the EWS bots since the --verbose logs were taking up a large amount of space. I have also wanted this because the --verbose logs make it very hard to actually find real errors. Eventually I would like to have the debug output written to a debug log

This sounds like a better idea to me.  We could write the debug output to a debug log file (available on the buildbots) and reduce the logging in verbose to just be one line per test without the timestamp/filename prefix.  This also avoids having to add a new command line flag and runtime configuration that we need to support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409488</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-05-24 23:34:19 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; In particular, Adam asked for this on the EWS bots since the --verbose logs were taking up a large amount of space. I have also wanted this because the --verbose logs make it very hard to actually find real errors. Eventually I would like to have the debug output written to a debug log
&gt; 
&gt; This sounds like a better idea to me.  We could write the debug output to a debug log file (available on the buildbots) and reduce the logging in verbose to just be one line per test without the timestamp/filename prefix.  This also avoids having to add a new command line flag and runtime configuration that we need to support.

Even one line per test would probably still be several hundred KB of text, and most of it would be noise (since 99%+ of tests pass or we quit early).

The main distinction I&apos;m looking to get is between a mode where nearly everything logged is either a fixed set of configuration messages, warnings, or errors (so there&apos;s an upper bound of a page or so of text), and the existing verbose mode (which is mostly useful as a debug log).

Regardless of whether we had that or the method you suggest though, I can still see someone suggesting a way to make the debug log optional (since it is so large) (or redirectable to /dev/null), and I would still want a way to toggle between the one-line update-in-place progress meter and the no-overwriting mode. 

Until/unless I can figure out a way to dynamically detect whether we have real backspaces, we still need some sort of flag. Theoretically we could add different --print options if you were more bothered by it being a top-level flag, but I would prefer not to do that because it&apos;s kind of an orthogonal concept (what to log vs. how to log it).

Of course, all this has prompted me to actually poke around and see what needs to be done to detect if I&apos;m talking to a tty and backspace works. It looks like file.isatty() should do the trick, so perhaps I should just do that :)

I&apos;ll cancel the r? for now and try that out and maybe that&apos;ll work out better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409736</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-05-25 10:26:31 -0700</bug_when>
    <thetext>For reference, the current Chromium Linux bot produces a 4MB stdio for each layout test run.  Trimming it to just the test name and status (also assuming we fix the double output bug) is 815k.

The goal isn&apos;t to avoid adding a command line flag, the goal is to avoid having to add additional configurations that we need to support.  It&apos;s better to try to come up with ways to satisfy multiple use-cases with fewer configurations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412388</commentid>
    <comment_count>8</comment_count>
      <attachid>95378</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-05-30 16:11:41 -0700</bug_when>
    <thetext>Created attachment 95378
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412389</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-05-30 16:14:05 -0700</bug_when>
    <thetext>Okay, it looks like isatty() works like one would hope, so this allows me to simplify the output dramatically.

Once this lands, Adam can get the output he wants by just using &apos;--print everything&apos; (which will print periodic updates without any back spaces as long as the output is going to a file). For now, &apos;--verbose&apos; is the same as it was before, except that it will also include periodic updates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413766</commentid>
    <comment_count>10</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-01 16:51:44 -0700</bug_when>
    <thetext>This patch is intended as part of a proper fix for https://bugs.webkit.org/show_bug.cgi?id=60352 .

Adam, does this look useful to you? Given this landing, you could change the EWS bots to just --print everything.

Tony has suggested that we could also include a change to just move the debug output to a file, at which point we could redefine --verbose to --print everything . I haven&apos;t coded that part yet (was inclined to make it a separate bug), but I don&apos;t think it&apos;ll be much additional work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413770</commentid>
    <comment_count>11</comment_count>
      <attachid>95689</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-01 17:01:59 -0700</bug_when>
    <thetext>Created attachment 95689
fix changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413789</commentid>
    <comment_count>12</comment_count>
      <attachid>95689</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-01 17:47:14 -0700</bug_when>
    <thetext>Comment on attachment 95689
fix changelog

Cool.  Yeah this would be awesome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414226</commentid>
    <comment_count>13</comment_count>
      <attachid>95689</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-06-02 10:09:44 -0700</bug_when>
    <thetext>Comment on attachment 95689
fix changelog

View in context: https://bugs.webkit.org/attachment.cgi?id=95689&amp;action=review

&gt; Tools/Scripts/webkitpy/layout_tests/layout_package/printing.py:47
&gt; +FAST_UPDATES = 0.03
&gt; +SLOW_UPDATES = 10.0

Can we add units to these variables?  FAS_UPDATES_SECONDS, etc

&gt; Tools/Scripts/webkitpy/layout_tests/layout_package/printing.py:221
&gt; +            self._update_interval = FAST_UPDATES

_update_interval -&gt; _update_interval_seconds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414559</commentid>
    <comment_count>14</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-02 17:12:49 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 95689 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=95689&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/layout_package/printing.py:47
&gt; &gt; +FAST_UPDATES = 0.03
&gt; &gt; +SLOW_UPDATES = 10.0
&gt; 
&gt; Can we add units to these variables?  FAS_UPDATES_SECONDS, etc
&gt; 

Will do.

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/layout_package/printing.py:221
&gt; &gt; +            self._update_interval = FAST_UPDATES
&gt; 
&gt; _update_interval -&gt; _update_interval_seconds

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414563</commentid>
    <comment_count>15</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-02 17:21:16 -0700</bug_when>
    <thetext>Committed r87967: &lt;http://trac.webkit.org/changeset/87967&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92519</attachid>
            <date>2011-05-05 18:22:20 -0700</date>
            <delta_ts>2011-05-30 16:11:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60328-20110505182218.patch</filename>
            <type>text/plain</type>
            <size>12179</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODU2NjUKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwZTliOWEyYmIwNDc0NDk1OWQxOTJmZmEwZGJkMWQ3MjUw
ZDZkMGU2Li4wNDQzNzVjY2EyMDdiZjZlNWE5MjQyMTM2MmU4YWEyNDIwZmZiMDU2IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMzIg
QEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBOUldU
IG5lZWRzIGEgd2F5IHRvIGxvZyB0byBhIGZpbGUgd2l0aG91dCBpbmNsdWRpbmcgYmFja3NwYWNl
cyB3aXRob3V0IG5lZWRpbmcgLS12ZXJib3NlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02MDMyOAorCisgICAgICAgIFRoaXMgY2hhbmdlIGFkZHMgYSAt
LW5vLW92ZXJ3cml0aW5nLXVwZGF0ZXMgZmxhZyB0aGF0IG1ha2VzIE5SV1QKKyAgICAgICAgcHJp
bnQgbG9nIG1lc3NhZ2VzIHdpdGhvdXQgdHJ5aW5nIHRvIGJhY2tzcGFjZSBhbmQgb3ZlcndyaXRl
IHRoZQorICAgICAgICB1cGRhdGVzICh3aGljaCBkb2Vzbid0IHBsYXkgbmljZWx5IHdoZW4gcmVk
aXJlY3RpbmcgdGhlIG91dHB1dAorICAgICAgICB0byBhIGZpbGUpLiBUaGlzIGlzIHVzZWZ1bCBp
ZiB5b3Ugd2FudCB0byBjYXB0dXJlIHRoZSBsb2cgb3V0cHV0CisgICAgICAgIG9mIE5SV1QgYnV0
IGRvbid0IHdhbnQgdGhlIGZ1bGwgLS12ZXJib3NlIG91dHB1dC4gTm90ZSB0aGF0CisgICAgICAg
IC0tdmVyYm9zZSBhbHNvIGRpc2FibGVzIHRoZSBvdmVyd3JpdGluZyB1cGRhdGVzLgorCisgICAg
ICAgIElmIHRoZSBvdmVyd3JpdGluZyB1cGRhdGVzIGFyZSBkaXNhYmxlZCwgb25lLWxpbmUtcHJv
Z3Jlc3Mgd2lsbAorICAgICAgICBvbmx5IHByaW50IGV2ZXJ5IDEwIHNlY29uZHMgaW5zdGVhZCBv
ZiBvbiBldmVyeSB1cGRhdGUuIFRoaXMKKyAgICAgICAgZW5zdXJlcyB0aGF0IHdlIHN0aWxsIGdl
dCB1cGRhdGVzIG9uY2UgaW4gYSB3aGlsZSB3aGlsZSB0aGUKKyAgICAgICAgdGVzdHMgYXJlIHJ1
bm5pbmcsIGV2ZW4gaWYgd2UncmUgbm90IGluIC0tdmVyYm9zZSBtb2RlLiBOb3RlCisgICAgICAg
IHRoYXQgb25lLWxpbmUtcHJvZ3Jlc3Mgd2lsbCBub3cgc3RpbGwgYmUgcHJpbnRlZCBpbiAtLXZl
cmJvc2UsCisgICAgICAgIHNpbmNlIGl0J3MgdXNlZnVsIGFzIGxvbmcgYXMgeW91J3JlIG5vdCBm
bG9vZGVkIHdpdGggdGhlCisgICAgICAgIHVwZGF0ZXMuCisKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tYW5hZ2VyLnB5OgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nLnB5
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdl
L3ByaW50aW5nX3VuaXR0ZXN0LnB5OgorCisyMDExLTA1LTA1ICBEaXJrIFByYW5rZSAgPGRwcmFu
a2VAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CiAgICAgICAgIE5SV1Q6IGNsZWFuIHVwIG1ldGVyZWRfc3RyZWFtIGNvZGUgaW4gcHJlcGFyYXRp
b24gZm9yICdub292ZXJ3cml0aW5nJyBwYXRjaAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjAzMjYKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWFuYWdlci5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21hbmFnZXIucHkKaW5k
ZXggZjYxMzk4Njg5NWYwMmM2MDFlMGI3OWQzMTViNTNhYzJiMTFjZThlNC4uZTFlMTRhOWI0YTVi
NTBhMzM4OTYxOGNlZDM3NmJlODQ1MDMwNmI1YSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWFuYWdlci5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tYW5hZ2VyLnB5
CkBAIC04NTEsNiArODUxLDcgQEAgY2xhc3MgTWFuYWdlcjoKICAgICAgICAgICAgIHRyeToKICAg
ICAgICAgICAgICAgICByZXN1bHQgPSB0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdC5sb2FkcyhzZWxm
Ll9yZXN1bHRfcXVldWUuZ2V0X25vd2FpdCgpKQogICAgICAgICAgICAgZXhjZXB0IFF1ZXVlLkVt
cHR5OgorICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfcHJvZ3Jlc3MocmVzdWx0
X3N1bW1hcnksIHNlbGYuX3JldHJ5aW5nLCBzZWxmLl90ZXN0X2ZpbGVzX2xpc3QpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuCiAKICAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9zdW1tYXJ5X3dpdGhf
cmVzdWx0KHJlc3VsdF9zdW1tYXJ5LCByZXN1bHQpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGluZy5weSBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nLnB5
CmluZGV4IGMzY2FjMGZiMWIxNTUyMGEyNWMwYzdlM2ZkNDlkOTgyZTViNjdlNTUuLjcwZGZlYzcw
OTdjOTlmYTE2NjFkMmY3YzVkOGE0NTlmOGVkYjRlMzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50
aW5nLnB5CkBAIC0zMSw2ICszMSw3IEBACiAKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3B0cGFy
c2UKK2ltcG9ydCB0aW1lCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldCBpbXBvcnQgcmVzdWx0
c2pzb25wYXJzZXIKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLmxheW91dF9wYWNrYWdlIGlt
cG9ydCBtZXRlcmVkX3N0cmVhbQpAQCAtNDEsNiArNDIsOCBAQCBfbG9nID0gbG9nZ2luZy5nZXRM
b2dnZXIoIndlYmtpdHB5LmxheW91dF90ZXN0cy5wcmludGVyIikKIFRlc3RFeHBlY3RhdGlvbnNG
aWxlID0gdGVzdF9leHBlY3RhdGlvbnMuVGVzdEV4cGVjdGF0aW9uc0ZpbGUKIAogTlVNX1NMT1df
VEVTVFNfVE9fTE9HID0gMTAKK0ZBU1RfVVBEQVRFUyA9IDAuMDMKK1NMT1dfVVBEQVRFUyA9IDEw
LjAKIAogUFJJTlRfREVGQVVMVCA9ICgibWlzYyxvbmUtbGluZS1wcm9ncmVzcyxvbmUtbGluZS1z
dW1tYXJ5LHVuZXhwZWN0ZWQsIgogICAgICAgICAgICAgICAgICAidW5leHBlY3RlZC1yZXN1bHRz
LHVwZGF0ZXMiKQpAQCAtMTE1LDcgKzExOCwxMSBAQCBkZWYgcHJpbnRfb3B0aW9ucygpOgogICAg
ICAgICAgICAgaGVscD0ic2hvdyBkZXRhaWxlZCBoZWxwIG9uIGNvbnRyb2xsaW5nIHByaW50IG91
dHB1dCIpLAogICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigiLXYiLCAiLS12ZXJib3NlIiwg
YWN0aW9uPSJzdG9yZV90cnVlIiwKICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9Imlu
Y2x1ZGUgZGVidWctbGV2ZWwgbG9nZ2luZyIpLAotICAgIF0KKyAgICAgICAgb3B0cGFyc2UubWFr
ZV9vcHRpb24oIiIsICItLW92ZXJ3cml0aW5nLXVwZGF0ZXMiLCBhY3Rpb249InN0b3JlX3RydWUi
LAorICAgICAgICAgICAgZGVmYXVsdD1UcnVlLCBoZWxwPSJ1cGRhdGVzIG92ZXJ3cml0ZSBlYWNo
IG90aGVyIChkZWZhdWx0KSIpLAorICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbigiIiwgIi0t
bm8tb3ZlcndyaXRpbmctdXBkYXRlcyIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLAorICAgICAgICAg
ICAgZGVzdD0ib3ZlcndyaXRpbmdfdXBkYXRlcyIsIGhlbHA9InVwZGF0ZXMgZG9uJ3Qgb3Zlcndy
aXRlIGVhY2ggb3RoZXIiKSwKKyAgIF0KIAogCiBkZWYgcGFyc2VfcHJpbnRfb3B0aW9ucyhwcmlu
dF9vcHRpb25zLCB2ZXJib3NlKToKQEAgLTEyOSw3ICsxMzYsNiBAQCBkZWYgcGFyc2VfcHJpbnRf
b3B0aW9ucyhwcmludF9vcHRpb25zLCB2ZXJib3NlKToKICAgICAgICAgc3dpdGNoZXMgPSBzZXQo
cHJpbnRfb3B0aW9ucy5zcGxpdCgnLCcpKQogICAgIGVsaWYgdmVyYm9zZToKICAgICAgICAgc3dp
dGNoZXMgPSBzZXQoUFJJTlRfRVZFUllUSElORy5zcGxpdCgnLCcpKQotICAgICAgICBzd2l0Y2hl
cy5kaXNjYXJkKCdvbmUtbGluZS1wcm9ncmVzcycpCiAgICAgZWxzZToKICAgICAgICAgc3dpdGNo
ZXMgPSBzZXQoUFJJTlRfREVGQVVMVC5zcGxpdCgnLCcpKQogCkBAIC0yMDIsMTggKzIwOCwyNyBA
QCBjbGFzcyBQcmludGVyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX2J1aWxkYm90X3N0cmVhbSA9
IGJ1aWxkYm90X291dHB1dAogICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwogICAgICAg
ICBzZWxmLl9wb3J0ID0gcG9ydAorICAgICAgICBzZWxmLl9tZXRlciA9IE5vbmUKICAgICAgICAg
c2VsZi5fc3RyZWFtID0gcmVndWxhcl9vdXRwdXQKIAotICAgICAgICBzZWxmLl9tZXRlciA9IE5v
bmUKICAgICAgICAgaWYgb3B0aW9ucy52ZXJib3NlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2lu
Z19oYW5kbGVyID0gX2NvbmZpZ3VyZV9sb2dnaW5nKHJlZ3VsYXJfb3V0cHV0LCBvcHRpb25zLnZl
cmJvc2UpCisgICAgICAgICAgICBvcHRpb25zLm92ZXJ3cml0aW5nX3VwZGF0ZXMgPSBGYWxzZQor
CisgICAgICAgICMgVGhlc2UgYXJlIHVzZWQgZm9yIC0tcHJpbnQgb25lLWxpbmUtcHJvZ3Jlc3MK
KyAgICAgICAgc2VsZi5fbGFzdF9yZW1haW5pbmcgPSBOb25lCisgICAgICAgIHNlbGYuX2xhc3Rf
dXBkYXRlX3RpbWUgPSBOb25lCisgICAgICAgIGlmIG9wdGlvbnMub3ZlcndyaXRpbmdfdXBkYXRl
czoKKyAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9pbnRlcnZhbCA9IEZBU1RfVVBEQVRFUwogICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fbWV0ZXIgPSBtZXRlcmVkX3N0cmVhbS5NZXRl
cmVkU3RyZWFtKHJlZ3VsYXJfb3V0cHV0KQotICAgICAgICAgICAgc2VsZi5fbG9nZ2luZ19oYW5k
bGVyID0gX2NvbmZpZ3VyZV9sb2dnaW5nKHNlbGYuX21ldGVyLCBvcHRpb25zLnZlcmJvc2UpCisg
ICAgICAgICAgICBzZWxmLl91cGRhdGVfaW50ZXJ2YWwgPSBTTE9XX1VQREFURVMKIAorICAgICAg
ICBzZWxmLnN3aXRjaGVzID0gcGFyc2VfcHJpbnRfb3B0aW9ucyhvcHRpb25zLnByaW50X29wdGlv
bnMsIG9wdGlvbnMudmVyYm9zZSkKIAotICAgICAgICBzZWxmLnN3aXRjaGVzID0gcGFyc2VfcHJp
bnRfb3B0aW9ucyhvcHRpb25zLnByaW50X29wdGlvbnMsCi0gICAgICAgICAgICBvcHRpb25zLnZl
cmJvc2UpCisgICAgICAgIGlmIG9wdGlvbnMub3ZlcndyaXRpbmdfdXBkYXRlczoKKyAgICAgICAg
ICAgIHNlbGYuX21ldGVyID0gbWV0ZXJlZF9zdHJlYW0uTWV0ZXJlZFN0cmVhbShzZWxmLl9zdHJl
YW0pCisgICAgICAgICAgICBzZWxmLl9sb2dnaW5nX2hhbmRsZXIgPSBfY29uZmlndXJlX2xvZ2dp
bmcoc2VsZi5fbWV0ZXIsIG9wdGlvbnMudmVyYm9zZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIHNlbGYuX2xvZ2dpbmdfaGFuZGxlciA9IF9jb25maWd1cmVfbG9nZ2luZyhzZWxmLl9zdHJl
YW0sIG9wdGlvbnMudmVyYm9zZSkKIAogICAgIGRlZiBjbGVhbnVwKHNlbGYpOgogICAgICAgICAi
IiJSZXN0b3JlIGxvZ2dpbmcgY29uZmlndXJhdGlvbiB0byBpdHMgaW5pdGlhbCBzZXR0aW5ncy4i
IiIKQEAgLTM0NywxMyArMzYyLDIzIEBAIGNsYXNzIFByaW50ZXIob2JqZWN0KToKIAogICAgIGRl
ZiBfcHJpbnRfb25lX2xpbmVfcHJvZ3Jlc3Moc2VsZiwgcmVzdWx0X3N1bW1hcnksIHJldHJ5aW5n
KToKICAgICAgICAgIiIiRGlzcGxheXMgdGhlIHByb2dyZXNzIHRocm91Z2ggdGhlIHRlc3QgcnVu
LiIiIgorICAgICAgICBub3cgPSB0aW1lLnRpbWUoKQorICAgICAgICBpZiBzZWxmLl9sYXN0X3Vw
ZGF0ZV90aW1lIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLl9sYXN0X3VwZGF0ZV90aW1lID0g
bm93CisKKyAgICAgICAgdGltZV9zaW5jZV9sYXN0X3VwZGF0ZSA9IG5vdyAtIHNlbGYuX2xhc3Rf
dXBkYXRlX3RpbWUKKyAgICAgICAgaWYgdGltZV9zaW5jZV9sYXN0X3VwZGF0ZSA8PSBzZWxmLl91
cGRhdGVfaW50ZXJ2YWw6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBzZWxmLl9sYXN0
X3VwZGF0ZV90aW1lID0gbm93CisKICAgICAgICAgcGVyY2VudF9jb21wbGV0ZSA9IDEwMCAqIChy
ZXN1bHRfc3VtbWFyeS5leHBlY3RlZCArCiAgICAgICAgICAgICByZXN1bHRfc3VtbWFyeS51bmV4
cGVjdGVkKSAvIHJlc3VsdF9zdW1tYXJ5LnRvdGFsCiAgICAgICAgIGFjdGlvbiA9ICJUZXN0aW5n
IgogICAgICAgICBpZiByZXRyeWluZzoKICAgICAgICAgICAgIGFjdGlvbiA9ICJSZXRyeWluZyIK
LSAgICAgICAgc2VsZi5fbWV0ZXIudXBkYXRlKCIlcyAoJWQlJSk6ICVkIHJhbiBhcyBleHBlY3Rl
ZCwgJWQgZGlkbid0LCIKLSAgICAgICAgICAgICIgJWQgbGVmdCIgJSAoYWN0aW9uLCBwZXJjZW50
X2NvbXBsZXRlLCByZXN1bHRfc3VtbWFyeS5leHBlY3RlZCwKKyAgICAgICAgc2VsZi5fdXBkYXRl
KCIlcyAoJWQlJSk6ICVkIHJhbiBhcyBleHBlY3RlZCwgJWQgZGlkbid0LCAlZCBsZWZ0IiAlCisg
ICAgICAgICAgICAoYWN0aW9uLCBwZXJjZW50X2NvbXBsZXRlLCByZXN1bHRfc3VtbWFyeS5leHBl
Y3RlZCwKICAgICAgICAgICAgICByZXN1bHRfc3VtbWFyeS51bmV4cGVjdGVkLCByZXN1bHRfc3Vt
bWFyeS5yZW1haW5pbmcpKQogCiAgICAgZGVmIHByaW50X3VuZXhwZWN0ZWRfcmVzdWx0cyhzZWxm
LCB1bmV4cGVjdGVkX3Jlc3VsdHMpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvcHJpbnRpbmdfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGluZ191
bml0dGVzdC5weQppbmRleCAwMDFjOWRkNmE0ZTk4NTA1MzcwODc0Nzc0NzQ5MTExMzgyY2U3MWNi
Li43MWRmZGM2Mjk5OTA3OTU5ZGNkNmRhNWJkZDAxYzk4MzFlMTFlN2I0IDEwMDY0NAotLS0gYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGlu
Z191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9s
YXlvdXRfcGFja2FnZS9wcmludGluZ191bml0dGVzdC5weQpAQCAtMjksOSArMjksMTAgQEAKIAog
IiIiVW5pdCB0ZXN0cyBmb3IgcHJpbnRpbmcucHkuIiIiCiAKK2ltcG9ydCBsb2dnaW5nCiBpbXBv
cnQgb3B0cGFyc2UKK2ltcG9ydCB0aW1lCiBpbXBvcnQgdW5pdHRlc3QKLWltcG9ydCBsb2dnaW5n
CiAKIGZyb20gd2Via2l0cHkuY29tbW9uIGltcG9ydCBhcnJheV9zdHJlYW0KIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgbG9ndGVzdGluZwpAQCAtODMsMTUgKzg0LDE1IEBAIGNs
YXNzIFRlc3RVdGlsaXR5RnVuY3Rpb25zKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAg
ICAgICBleHBlY3RlZF9zd2l0Y2hlcyA9IHNldChleHBlY3RlZF9zd2l0Y2hlc19zdHIuc3BsaXQo
JywnKSkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfc3dpdGNo
ZXMgPSBzZXQoKQotICAgICAgICAgICAgc3dpdGNoZXMgPSBwcmludGluZy5wYXJzZV9wcmludF9v
cHRpb25zKG9wdGlvbnMucHJpbnRfb3B0aW9ucywgdmVyYm9zZSkKKyAgICAgICAgICAgIHN3aXRj
aGVzID0gcHJpbnRpbmcucGFyc2VfcHJpbnRfb3B0aW9ucyhvcHRpb25zLnByaW50X29wdGlvbnMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVy
Ym9zZSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfc3dpdGNoZXMsIHN3
aXRjaGVzKQogCiAgICAgICAgICMgdGVzdCB0aGF0IHdlIGRlZmF1bHQgdG8gdGhlIGRlZmF1bHQg
c2V0IG9mIHN3aXRjaGVzCiAgICAgICAgIHRlc3Rfc3dpdGNoZXMoW10sIHByaW50aW5nLlBSSU5U
X0RFRkFVTFQpCiAKICAgICAgICAgIyB0ZXN0IHRoYXQgdmVyYm9zZSBkZWZhdWx0cyB0byBldmVy
eXRoaW5nCi0gICAgICAgIHN3aXRjaGVzID0gcHJpbnRpbmcuUFJJTlRfRVZFUllUSElORy5yZXBs
YWNlKCcsb25lLWxpbmUtcHJvZ3Jlc3MnLCAnJykKLSAgICAgICAgdGVzdF9zd2l0Y2hlcyhbXSwg
c3dpdGNoZXMsIHZlcmJvc2U9VHJ1ZSkKKyAgICAgICAgdGVzdF9zd2l0Y2hlcyhbXSwgcHJpbnRp
bmcuUFJJTlRfRVZFUllUSElORywgdmVyYm9zZT1UcnVlKQogCiAgICAgICAgICMgdGVzdCB0aGF0
IC0tcHJpbnQgZGVmYXVsdCBkb2VzIHdoYXQgaXQncyBzdXBwb3NlZCB0bwogICAgICAgICB0ZXN0
X3N3aXRjaGVzKFsnLS1wcmludCcsICdkZWZhdWx0J10sIHByaW50aW5nLlBSSU5UX0RFRkFVTFQp
CkBAIC0zMjEsNyArMzIyLDcgQEAgY2xhc3MgIFRlc3RwcmludGVyKHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICAgICAgcHJpbnRlci5wcmludF90ZXN0X3Jlc3VsdChyZXN1bHQsIGV4cGVjdGVkPUZh
bHNlLCBleHBfc3RyPScnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdF9z
dHI9JycpCiAKLSAgICBkZWYgdGVzdF9wcmludF9wcm9ncmVzcyhzZWxmKToKKyAgICBkZWYgdGVz
dF9wcmludF9wcm9ncmVzc19fbm90aGluZyhzZWxmKToKICAgICAgICAgZXhwZWN0YXRpb25zID0g
JycKIAogICAgICAgICAjIHRlc3QgdGhhdCB3ZSBwcmludCBub3RoaW5nCkBAIC0zMzgsMTggKzMz
OSw3NiBAQCBjbGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBz
ZWxmLmFzc2VydFRydWUob3V0LmVtcHR5KCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShlcnIu
ZW1wdHkoKSkKIAotICAgICAgICAjIHRlc3QgcmVndWxhciBmdW5jdGlvbmFsaXR5Ci0gICAgICAg
IHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tcHJpbnQnLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvbmUtbGluZS1wcm9ncmVz
cyddKQotICAgICAgICBwcmludGVyLnByaW50X3Byb2dyZXNzKHJzLCBGYWxzZSwgcGF0aHMpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvdXQuZW1wdHkoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRG
YWxzZShlcnIuZW1wdHkoKSkKKyAgICBkZWYgdGVzdF9wcmludF9wcm9ncmVzc19fb3ZlcndyaXRp
bmcoc2VsZik6CisgICAgICAgIGV4cGVjdGF0aW9ucyA9ICcnCiAKLSAgICAgICAgZXJyLnJlc2V0
KCkKLSAgICAgICAgb3V0LnJlc2V0KCkKLSAgICAgICAgcHJpbnRlci5wcmludF9wcm9ncmVzcyhy
cywgVHJ1ZSwgcGF0aHMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZXJyLmVtcHR5KCkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvdXQuZW1wdHkoKSkKKyAgICAgICAgcHJpbnRlciwgZXJy
LCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsnLS1wcmludCcsICdvbmUtbGluZS1wcm9ncmVzcydd
KQorICAgICAgICB0ZXN0cyA9IFsncGFzc2VzL3RleHQuaHRtbCcsICdmYWlsdXJlcy9leHBlY3Rl
ZC90aW1lb3V0Lmh0bWwnLAorICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jh
c2guaHRtbCddCisgICAgICAgIHBhdGhzLCBycywgZXhwID0gc2VsZi5nZXRfcmVzdWx0X3N1bW1h
cnkodGVzdHMsIGV4cGVjdGF0aW9ucykKKworICAgICAgICBvcmlnX3RpbWUgPSB0aW1lLnRpbWUK
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdGltZXMgPSBbMSwgMS4wMSwgMiwgM10KKworICAg
ICAgICAgICAgZGVmIG1vY2tfdGltZSh0aW1lcz10aW1lcyk6CisgICAgICAgICAgICAgICAgcmV0
dXJuIHRpbWVzLnBvcCgwKQorCisgICAgICAgICAgICB0aW1lLnRpbWUgPSBtb2NrX3RpbWUKKyAg
ICAgICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tcHJpbnQn
LCAnb25lLWxpbmUtcHJvZ3Jlc3MnXSkKKyAgICAgICAgICAgIHByaW50ZXIucHJpbnRfcHJvZ3Jl
c3MocnMsIEZhbHNlLCBwYXRocykKKyAgICAgICAgICAgIHByaW50ZXIucHJpbnRfcHJvZ3Jlc3Mo
cnMsIEZhbHNlLCBwYXRocykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvdXQuZW1wdHko
KSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShlcnIuZW1wdHkoKSkKKyAgICAgICAgICAg
IHByaW50ZXIucHJpbnRfcHJvZ3Jlc3MocnMsIEZhbHNlLCBwYXRocykKKyAgICAgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShvdXQuZW1wdHkoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
ZXJyLmVtcHR5KCkpCisKKyAgICAgICAgICAgIGVyci5yZXNldCgpCisgICAgICAgICAgICBvdXQu
cmVzZXQoKQorICAgICAgICAgICAgcHJpbnRlci5wcmludF9wcm9ncmVzcyhycywgVHJ1ZSwgcGF0
aHMpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUob3V0LmVtcHR5KCkpCisgICAgICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKGVyci5lbXB0eSgpKQorICAgICAgICBmaW5hbGx5OgorICAgICAg
ICAgICAgdGltZS50aW1lID0gb3JpZ190aW1lCisKKyAgICBkZWYgdGVzdF9wcmludF9wcm9ncmVz
c19fbm90b3ZlcndyaXRpbmcoc2VsZik6CisgICAgICAgIGV4cGVjdGF0aW9ucyA9ICcnCisKKyAg
ICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsnLS1wcmludCcsICdv
bmUtbGluZS1wcm9ncmVzcycsCisgICAgICAgICAgICAgJy0tbm8tb3ZlcndyaXRpbmcnXSkKKyAg
ICAgICAgdGVzdHMgPSBbJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCAnZmFpbHVyZXMvZXhwZWN0ZWQvdGlt
ZW91dC5odG1sJywKKyAgICAgICAgICAgICAgICAgJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0
bWwnXQorICAgICAgICBwYXRocywgcnMsIGV4cCA9IHNlbGYuZ2V0X3Jlc3VsdF9zdW1tYXJ5KHRl
c3RzLCBleHBlY3RhdGlvbnMpCisKKyAgICAgICAgb3JpZ190aW1lID0gdGltZS50aW1lCisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIHRpbWVzID0gWzEsIDIsIDEyLCAxMywgMTQsIDIzLCAzM10K
KworICAgICAgICAgICAgZGVmIG1vY2tfdGltZSh0aW1lcz10aW1lcyk6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHRpbWVzLnBvcCgwKQorCisgICAgICAgICAgICB0aW1lLnRpbWUgPSBtb2NrX3Rp
bWUKKyAgICAgICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0t
cHJpbnQnLCAnb25lLWxpbmUtcHJvZ3Jlc3MnLAorICAgICAgICAgICAgICAgICctLW5vLW92ZXJ3
cml0aW5nLXVwZGF0ZXMnXSkKKyAgICAgICAgICAgIHByaW50ZXIucHJpbnRfcHJvZ3Jlc3MocnMs
IEZhbHNlLCBwYXRocykKKyAgICAgICAgICAgIHByaW50ZXIucHJpbnRfcHJvZ3Jlc3MocnMsIEZh
bHNlLCBwYXRocykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvdXQuZW1wdHkoKSkKKyAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShlcnIuZW1wdHkoKSkKKyAgICAgICAgICAgIHByaW50
ZXIucHJpbnRfcHJvZ3Jlc3MocnMsIEZhbHNlLCBwYXRocykKKyAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShvdXQuZW1wdHkoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZXJyLmVt
cHR5KCkpCisKKyAgICAgICAgICAgIGVyci5yZXNldCgpCisgICAgICAgICAgICBvdXQucmVzZXQo
KQorICAgICAgICAgICAgcHJpbnRlci5wcmludF9wcm9ncmVzcyhycywgVHJ1ZSwgcGF0aHMpCisg
ICAgICAgICAgICBzZWxmLmFzc2VydFRydWUob3V0LmVtcHR5KCkpCisgICAgICAgICAgICBzZWxm
LmFzc2VydFRydWUoZXJyLmVtcHR5KCkpCisgICAgICAgICAgICBwcmludGVyLnByaW50X3Byb2dy
ZXNzKHJzLCBUcnVlLCBwYXRocykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvdXQuZW1w
dHkoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZXJyLmVtcHR5KCkpCisgICAgICAg
IGZpbmFsbHk6CisgICAgICAgICAgICB0aW1lLnRpbWUgPSBvcmlnX3RpbWUKIAogICAgIGRlZiB0
ZXN0X3dyaXRlX25vdGhpbmcoc2VsZik6CiAgICAgICAgIHByaW50ZXIsIGVyciwgb3V0ID0gc2Vs
Zi5nZXRfcHJpbnRlcihbJy0tcHJpbnQnLCAnbm90aGluZyddKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95378</attachid>
            <date>2011-05-30 16:11:41 -0700</date>
            <delta_ts>2011-06-01 17:01:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60328-20110530161140.patch</filename>
            <type>text/plain</type>
            <size>13159</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODc2OTcKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzNmU5ZDE0ZTEyN2M4MzZkMzcwNGQxMDAzMDY1ZjFiNmQ1
M2VlZDc0Li45ZjI0MTgzYTdiMzIxYjE3ZDZhMzkwMjE3MDhiM2VjNGE2ZGFiNWYwIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTEtMDUtMDUgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTlJXVCBuZWVkcyBh
IHdheSB0byBsb2cgdG8gYSBmaWxlIHdpdGhvdXQgaW5jbHVkaW5nIGJhY2tzcGFjZXMgd2l0aG91
dCBuZWVkaW5nIC0tdmVyYm9zZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjAzMjgKKworICAgICAgICBUaGlzIGNoYW5nZSBhZGRzIGEgLS1uby1vdmVy
d3JpdGluZy11cGRhdGVzIGZsYWcgdGhhdCBtYWtlcyBOUldUCisgICAgICAgIHByaW50IGxvZyBt
ZXNzYWdlcyB3aXRob3V0IHRyeWluZyB0byBiYWNrc3BhY2UgYW5kIG92ZXJ3cml0ZSB0aGUKKyAg
ICAgICAgdXBkYXRlcyAod2hpY2ggZG9lc24ndCBwbGF5IG5pY2VseSB3aGVuIHJlZGlyZWN0aW5n
IHRoZSBvdXRwdXQKKyAgICAgICAgdG8gYSBmaWxlKS4gVGhpcyBpcyB1c2VmdWwgaWYgeW91IHdh
bnQgdG8gY2FwdHVyZSB0aGUgbG9nIG91dHB1dAorICAgICAgICBvZiBOUldUIGJ1dCBkb24ndCB3
YW50IHRoZSBmdWxsIC0tdmVyYm9zZSBvdXRwdXQuIE5vdGUgdGhhdAorICAgICAgICAtLXZlcmJv
c2UgYWxzbyBkaXNhYmxlcyB0aGUgb3ZlcndyaXRpbmcgdXBkYXRlcy4KKworICAgICAgICBJZiB0
aGUgb3ZlcndyaXRpbmcgdXBkYXRlcyBhcmUgZGlzYWJsZWQsIG9uZS1saW5lLXByb2dyZXNzIHdp
bGwKKyAgICAgICAgb25seSBwcmludCBldmVyeSAxMCBzZWNvbmRzIGluc3RlYWQgb2Ygb24gZXZl
cnkgdXBkYXRlLiBUaGlzCisgICAgICAgIGVuc3VyZXMgdGhhdCB3ZSBzdGlsbCBnZXQgdXBkYXRl
cyBvbmNlIGluIGEgd2hpbGUgd2hpbGUgdGhlCisgICAgICAgIHRlc3RzIGFyZSBydW5uaW5nLCBl
dmVuIGlmIHdlJ3JlIG5vdCBpbiAtLXZlcmJvc2UgbW9kZS4gTm90ZQorICAgICAgICB0aGF0IG9u
ZS1saW5lLXByb2dyZXNzIHdpbGwgbm93IHN0aWxsIGJlIHByaW50ZWQgaW4gLS12ZXJib3NlLAor
ICAgICAgICBzaW5jZSBpdCdzIHVzZWZ1bCBhcyBsb25nIGFzIHlvdSdyZSBub3QgZmxvb2RlZCB3
aXRoIHRoZQorICAgICAgICB1cGRhdGVzLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWFuYWdlci5weToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGluZy5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGlu
Z191bml0dGVzdC5weToKKwogMjAxMS0wNS0zMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vYXJyYXlfc3RyZWFtLnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vYXJyYXlfc3RyZWFtLnB5CmluZGV4IGU0
MjVkMDI5YzhlN2EzNDI0YjM0MTJjYjk3OTk2ZWU5Y2NkOTQ2NjYuLjdkMmM0MzkyNTNhNDRkYzg0
ZDYyZjI0ZDE0NzZiY2JmYWMzNjIyNjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2FycmF5X3N0cmVhbS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9hcnJheV9zdHJlYW0ucHkKQEAgLTM5LDggKzM5LDkgQEAgY2xhc3MgQXJyYXlTdHJlYW0o
b2JqZWN0KToKICAgICBjb25jYXRlbmF0ZXMgYWxsIG9mIHRoZSB3cml0ZXMgdG9nZXRoZXIuCiAg
ICAgIiIiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHR0eT1GYWxzZSk6CiAgICAgICAgIHNlbGYuX2NvbnRlbnRzID0gW10KKyAgICAgICAgc2VsZi5f
dHR5ID0gdHR5CiAKICAgICBkZWYgd3JpdGUoc2VsZiwgbXNnKToKICAgICAgICAgIiIiSW1wbGVt
ZW50IHN0cmVhbS53cml0ZSgpIGJ5IGFwcGVuZGluZyB0byB0aGUgc3RyZWFtJ3MgY29udGVudHMu
IiIiCkBAIC02NCwzICs2NSw2IEBAIGNsYXNzIEFycmF5U3RyZWFtKG9iamVjdCk6CiAKICAgICBk
ZWYgX19yZXByX18oc2VsZik6CiAgICAgICAgIHJldHVybiAnPEFycmF5U3RyZWFtOiAnICsgc3Ry
KHNlbGYuX2NvbnRlbnRzKSArICc+JworCisgICAgZGVmIGlzYXR0eShzZWxmKToKKyAgICAgICAg
cmV0dXJuIHNlbGYuX3R0eQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWFuYWdlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21hbmFnZXIucHkKaW5kZXggNzRiOGY4MGYw
M2UzMzgyZDkwY2ZkNTBmOWI1NjJkOGFmYmI0MjFjNy4uNzViY2UwZDA1ZjQ5MTgyMmI5NTk0Yjhj
MDg1MzQwM2Q3ZTY3NWRkYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWFuYWdlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tYW5hZ2VyLnB5CkBAIC04NTUsNiAr
ODU1LDcgQEAgY2xhc3MgTWFuYWdlcjoKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAg
ICByZXN1bHQgPSB0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdC5sb2FkcyhzZWxmLl9yZXN1bHRfcXVl
dWUuZ2V0X25vd2FpdCgpKQogICAgICAgICAgICAgZXhjZXB0IFF1ZXVlLkVtcHR5OgorICAgICAg
ICAgICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfcHJvZ3Jlc3MocmVzdWx0X3N1bW1hcnksIHNl
bGYuX3JldHJ5aW5nLCBzZWxmLl90ZXN0X2ZpbGVzX2xpc3QpCiAgICAgICAgICAgICAgICAgcmV0
dXJuCiAKICAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9zdW1tYXJ5X3dpdGhfcmVzdWx0KHJlc3Vs
dF9zdW1tYXJ5LCByZXN1bHQpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGluZy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nLnB5CmluZGV4IDUzY2Yx
NTBjMGJmZWEzMWQyNjViY2Y4MzgxNzI4OTk2ODY5ZjIwOWUuLmMyNTY3NDUwMDJlNTUxMWEyODAx
ZmYzMTkwNzE5OTZlNWFmOGQxYTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nLnB5CkBAIC0z
MSw2ICszMSw3IEBACiAKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3B0cGFyc2UKK2ltcG9ydCB0
aW1lCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldCBpbXBvcnQgcmVzdWx0c2pzb25wYXJzZXIK
IGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLmxheW91dF9wYWNrYWdlIGltcG9ydCBtZXRlcmVk
X3N0cmVhbQpAQCAtNDIsNiArNDMsOCBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoIndlYmtp
dHB5LmxheW91dF90ZXN0cy5wcmludGVyIikKIFRlc3RFeHBlY3RhdGlvbnMgPSB0ZXN0X2V4cGVj
dGF0aW9ucy5UZXN0RXhwZWN0YXRpb25zCiAKIE5VTV9TTE9XX1RFU1RTX1RPX0xPRyA9IDEwCitG
QVNUX1VQREFURVMgPSAwLjAzCitTTE9XX1VQREFURVMgPSAxMC4wCiAKIFBSSU5UX0RFRkFVTFQg
PSAoIm1pc2Msb25lLWxpbmUtcHJvZ3Jlc3Msb25lLWxpbmUtc3VtbWFyeSx1bmV4cGVjdGVkLCIK
ICAgICAgICAgICAgICAgICAgInVuZXhwZWN0ZWQtcmVzdWx0cyx1cGRhdGVzIikKQEAgLTY4LDcg
KzcxLDcgQEAgQXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcnVuOgogICAgICAgICAgICAgICAgICAg
ICAgICAgKCMgcGFzc2VzLCAjIGZhaWx1cmVzLCBldGMuKQogCiBEdXJpbmcgdGhlIHJ1bjoKLSAg
ICBvbmUtbGluZS1wcm9ncmVzcyAgIHByaW50IGEgb25lLWxpbmUgcHJvZ3Jlc3MgYmFyCisgICAg
b25lLWxpbmUtcHJvZ3Jlc3MgICBwcmludCBhIG9uZS1saW5lIHByb2dyZXNzIG1lc3NhZ2Ugb3Ig
YmFyCiAgICAgdW5leHBlY3RlZCAgICAgICAgICBwcmludCBhbnkgdW5leHBlY3RlZCByZXN1bHRz
IGFzIHRoZXkgb2NjdXIKICAgICB1cGRhdGVzICAgICAgICAgICAgIHByaW50IHVwZGF0ZXMgb24g
d2hpY2ggc3RhZ2UgaXMgZXhlY3V0aW5nCiAgICAgdHJhY2UtZXZlcnl0aGluZyAgICBwcmludCBk
ZXRhaWxlZCBpbmZvIG9uIGV2ZXJ5IHRlc3QncyByZXN1bHRzCkBAIC0xMTYsNyArMTE5LDcgQEAg
ZGVmIHByaW50X29wdGlvbnMoKToKICAgICAgICAgICAgIGhlbHA9InNob3cgZGV0YWlsZWQgaGVs
cCBvbiBjb250cm9sbGluZyBwcmludCBvdXRwdXQiKSwKICAgICAgICAgb3B0cGFyc2UubWFrZV9v
cHRpb24oIi12IiwgIi0tdmVyYm9zZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCiAgICAgICAgICAg
ICBkZWZhdWx0PUZhbHNlLCBoZWxwPSJpbmNsdWRlIGRlYnVnLWxldmVsIGxvZ2dpbmciKSwKLSAg
ICBdCisgICBdCiAKIAogZGVmIHBhcnNlX3ByaW50X29wdGlvbnMocHJpbnRfb3B0aW9ucywgdmVy
Ym9zZSk6CkBAIC0xMzAsNyArMTMzLDYgQEAgZGVmIHBhcnNlX3ByaW50X29wdGlvbnMocHJpbnRf
b3B0aW9ucywgdmVyYm9zZSk6CiAgICAgICAgIHN3aXRjaGVzID0gc2V0KHByaW50X29wdGlvbnMu
c3BsaXQoJywnKSkKICAgICBlbGlmIHZlcmJvc2U6CiAgICAgICAgIHN3aXRjaGVzID0gc2V0KFBS
SU5UX0VWRVJZVEhJTkcuc3BsaXQoJywnKSkKLSAgICAgICAgc3dpdGNoZXMuZGlzY2FyZCgnb25l
LWxpbmUtcHJvZ3Jlc3MnKQogICAgIGVsc2U6CiAgICAgICAgIHN3aXRjaGVzID0gc2V0KFBSSU5U
X0RFRkFVTFQuc3BsaXQoJywnKSkKIApAQCAtMjA2LDE3ICsyMDgsMjIgQEAgY2xhc3MgUHJpbnRl
cihvYmplY3QpOgogICAgICAgICBzZWxmLl9idWlsZGJvdF9zdHJlYW0gPSBidWlsZGJvdF9vdXRw
dXQKICAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKICAgICAgICAgc2VsZi5fcG9ydCA9
IHBvcnQKKyAgICAgICAgc2VsZi5fbWV0ZXIgPSBOb25lCiAgICAgICAgIHNlbGYuX3N0cmVhbSA9
IHJlZ3VsYXJfb3V0cHV0CiAKLSAgICAgICAgc2VsZi5fbWV0ZXIgPSBOb25lCi0gICAgICAgIGlm
IG9wdGlvbnMudmVyYm9zZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dpbmdfaGFuZGxlciA9IF9j
b25maWd1cmVfbG9nZ2luZyhyZWd1bGFyX291dHB1dCwgb3B0aW9ucy52ZXJib3NlKQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fbWV0ZXIgPSBtZXRlcmVkX3N0cmVhbS5NZXRlcmVk
U3RyZWFtKHJlZ3VsYXJfb3V0cHV0KQotICAgICAgICAgICAgc2VsZi5fbG9nZ2luZ19oYW5kbGVy
ID0gX2NvbmZpZ3VyZV9sb2dnaW5nKHNlbGYuX21ldGVyLCBvcHRpb25zLnZlcmJvc2UpCisgICAg
ICAgICMgVGhlc2UgYXJlIHVzZWQgZm9yIC0tcHJpbnQgb25lLWxpbmUtcHJvZ3Jlc3MKKyAgICAg
ICAgc2VsZi5fbGFzdF9yZW1haW5pbmcgPSBOb25lCisgICAgICAgIHNlbGYuX2xhc3RfdXBkYXRl
X3RpbWUgPSBOb25lCisKKyAgICAgICAgc2VsZi5zd2l0Y2hlcyA9IHBhcnNlX3ByaW50X29wdGlv
bnMob3B0aW9ucy5wcmludF9vcHRpb25zLCBvcHRpb25zLnZlcmJvc2UpCiAKLSAgICAgICAgc2Vs
Zi5zd2l0Y2hlcyA9IHBhcnNlX3ByaW50X29wdGlvbnMob3B0aW9ucy5wcmludF9vcHRpb25zLAot
ICAgICAgICAgICAgb3B0aW9ucy52ZXJib3NlKQorICAgICAgICBpZiBzZWxmLl9zdHJlYW0uaXNh
dHR5KCkgYW5kIG5vdCBvcHRpb25zLnZlcmJvc2U6CisgICAgICAgICAgICBzZWxmLl91cGRhdGVf
aW50ZXJ2YWwgPSBGQVNUX1VQREFURVMKKyAgICAgICAgICAgIHNlbGYuX21ldGVyID0gbWV0ZXJl
ZF9zdHJlYW0uTWV0ZXJlZFN0cmVhbShzZWxmLl9zdHJlYW0pCisgICAgICAgICAgICBzZWxmLl9s
b2dnaW5nX2hhbmRsZXIgPSBfY29uZmlndXJlX2xvZ2dpbmcoc2VsZi5fbWV0ZXIsIG9wdGlvbnMu
dmVyYm9zZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2dpbmdfaGFuZGxl
ciA9IF9jb25maWd1cmVfbG9nZ2luZyhzZWxmLl9zdHJlYW0sIG9wdGlvbnMudmVyYm9zZSkKKyAg
ICAgICAgICAgIHNlbGYuX3VwZGF0ZV9pbnRlcnZhbCA9IFNMT1dfVVBEQVRFUwogCiAgICAgZGVm
IGNsZWFudXAoc2VsZik6CiAgICAgICAgICIiIlJlc3RvcmUgbG9nZ2luZyBjb25maWd1cmF0aW9u
IHRvIGl0cyBpbml0aWFsIHNldHRpbmdzLiIiIgpAQCAtMzQzLDEzICszNTAsMjMgQEAgY2xhc3Mg
UHJpbnRlcihvYmplY3QpOgogICAgICAgICBpZiBzZWxmLmRpc2FibGVkKCdvbmUtbGluZS1wcm9n
cmVzcycpOgogICAgICAgICAgICAgcmV0dXJuCiAKKyAgICAgICAgbm93ID0gdGltZS50aW1lKCkK
KyAgICAgICAgaWYgc2VsZi5fbGFzdF91cGRhdGVfdGltZSBpcyBOb25lOgorICAgICAgICAgICAg
c2VsZi5fbGFzdF91cGRhdGVfdGltZSA9IG5vdworCisgICAgICAgIHRpbWVfc2luY2VfbGFzdF91
cGRhdGUgPSBub3cgLSBzZWxmLl9sYXN0X3VwZGF0ZV90aW1lCisgICAgICAgIGlmIHRpbWVfc2lu
Y2VfbGFzdF91cGRhdGUgPD0gc2VsZi5fdXBkYXRlX2ludGVydmFsOgorICAgICAgICAgICAgcmV0
dXJuCisKKyAgICAgICAgc2VsZi5fbGFzdF91cGRhdGVfdGltZSA9IG5vdworCiAgICAgICAgIHBl
cmNlbnRfY29tcGxldGUgPSAxMDAgKiAocmVzdWx0X3N1bW1hcnkuZXhwZWN0ZWQgKwogICAgICAg
ICAgICAgcmVzdWx0X3N1bW1hcnkudW5leHBlY3RlZCkgLyByZXN1bHRfc3VtbWFyeS50b3RhbAog
ICAgICAgICBhY3Rpb24gPSAiVGVzdGluZyIKICAgICAgICAgaWYgcmV0cnlpbmc6CiAgICAgICAg
ICAgICBhY3Rpb24gPSAiUmV0cnlpbmciCi0gICAgICAgIHNlbGYuX21ldGVyLnVwZGF0ZSgiJXMg
KCVkJSUpOiAlZCByYW4gYXMgZXhwZWN0ZWQsICVkIGRpZG4ndCwiCi0gICAgICAgICAgICAiICVk
IGxlZnQiICUgKGFjdGlvbiwgcGVyY2VudF9jb21wbGV0ZSwgcmVzdWx0X3N1bW1hcnkuZXhwZWN0
ZWQsCisgICAgICAgIHNlbGYuX3VwZGF0ZSgiJXMgKCVkJSUpOiAlZCByYW4gYXMgZXhwZWN0ZWQs
ICVkIGRpZG4ndCwgJWQgbGVmdCIgJQorICAgICAgICAgICAgKGFjdGlvbiwgcGVyY2VudF9jb21w
bGV0ZSwgcmVzdWx0X3N1bW1hcnkuZXhwZWN0ZWQsCiAgICAgICAgICAgICAgcmVzdWx0X3N1bW1h
cnkudW5leHBlY3RlZCwgcmVzdWx0X3N1bW1hcnkucmVtYWluaW5nKSkKIAogICAgICAgICBpZiBy
ZXN1bHRfc3VtbWFyeS5yZW1haW5pbmcgPT0gMDoKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nX3VuaXR0ZXN0LnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvcHJp
bnRpbmdfdW5pdHRlc3QucHkKaW5kZXggMGQ2NzRiMDhmNjIyNzYyZjUwY2QxNzFiYzNkYmI3ZjU4
MDRjZDRkZS4uNDRkYTVjM2E0NzBjMmMxY2RjMmMwNTkzODJjODlhZDM2NzQ0ODdlZSAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uv
cHJpbnRpbmdfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbGF5b3V0X3BhY2thZ2UvcHJpbnRpbmdfdW5pdHRlc3QucHkKQEAgLTI5LDkgKzI5LDEw
IEBACiAKICIiIlVuaXQgdGVzdHMgZm9yIHByaW50aW5nLnB5LiIiIgogCitpbXBvcnQgbG9nZ2lu
ZwogaW1wb3J0IG9wdHBhcnNlCitpbXBvcnQgdGltZQogaW1wb3J0IHVuaXR0ZXN0Ci1pbXBvcnQg
bG9nZ2luZwogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbiBpbXBvcnQgYXJyYXlfc3RyZWFtCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IGxvZ3Rlc3RpbmcKQEAgLTkxLDcgKzkyLDcg
QEAgY2xhc3MgVGVzdFV0aWxpdHlGdW5jdGlvbnModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICB0ZXN0X3N3aXRjaGVzKFtdLCBwcmludGluZy5QUklOVF9ERUZBVUxUKQogCiAgICAgICAgICMg
dGVzdCB0aGF0IHZlcmJvc2UgZGVmYXVsdHMgdG8gZXZlcnl0aGluZwotICAgICAgICB0ZXN0X3N3
aXRjaGVzKFtdLCBwcmludGluZy5QUklOVF9FVkVSWVRISU5HLnJlcGxhY2UoJyxvbmUtbGluZS1w
cm9ncmVzcycsJycpLCB2ZXJib3NlPVRydWUpCisgICAgICAgIHRlc3Rfc3dpdGNoZXMoW10sIHBy
aW50aW5nLlBSSU5UX0VWRVJZVEhJTkcsIHZlcmJvc2U9VHJ1ZSkKIAogICAgICAgICAjIHRlc3Qg
dGhhdCAtLXByaW50IGRlZmF1bHQgZG9lcyB3aGF0IGl0J3Mgc3VwcG9zZWQgdG8KICAgICAgICAg
dGVzdF9zd2l0Y2hlcyhbJy0tcHJpbnQnLCAnZGVmYXVsdCddLCBwcmludGluZy5QUklOVF9ERUZB
VUxUKQpAQCAtMTA4LDcgKzEwOSw3IEBAIGNsYXNzIFRlc3RVdGlsaXR5RnVuY3Rpb25zKHVuaXR0
ZXN0LlRlc3RDYXNlKToKIAogCiBjbGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3QuVGVzdENhc2Up
OgotICAgIGRlZiBnZXRfcHJpbnRlcihzZWxmLCBhcmdzPU5vbmUpOgorICAgIGRlZiBnZXRfcHJp
bnRlcihzZWxmLCBhcmdzPU5vbmUsIHR0eT1GYWxzZSk6CiAgICAgICAgIGFyZ3MgPSBhcmdzIG9y
IFtdCiAgICAgICAgIHByaW50aW5nX29wdGlvbnMgPSBwcmludGluZy5wcmludF9vcHRpb25zKCkK
ICAgICAgICAgb3B0aW9uX3BhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcihvcHRpb25fbGlz
dD1wcmludGluZ19vcHRpb25zKQpAQCAtMTE2LDcgKzExNyw3IEBAIGNsYXNzICBUZXN0cHJpbnRl
cih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0LmdldCgndGVz
dCcsIG9wdGlvbnMpCiAgICAgICAgIG5wcm9jID0gMgogCi0gICAgICAgIHJlZ3VsYXJfb3V0cHV0
ID0gYXJyYXlfc3RyZWFtLkFycmF5U3RyZWFtKCkKKyAgICAgICAgcmVndWxhcl9vdXRwdXQgPSBh
cnJheV9zdHJlYW0uQXJyYXlTdHJlYW0odHR5PXR0eSkKICAgICAgICAgYnVpbGRib3Rfb3V0cHV0
ID0gYXJyYXlfc3RyZWFtLkFycmF5U3RyZWFtKCkKICAgICAgICAgcHJpbnRlciA9IHByaW50aW5n
LlByaW50ZXIoc2VsZi5fcG9ydCwgb3B0aW9ucywgcmVndWxhcl9vdXRwdXQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkYm90X291dHB1dCwgY29uZmlndXJlX2xvZ2dp
bmc9VHJ1ZSkKQEAgLTE1Nyw3ICsxNTgsNyBAQCBjbGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgIGRlZiBkb19zd2l0Y2hfdGVzdHMoc2VsZiwgbWV0aG9kX25hbWUsIHN3
aXRjaCwgdG9fYnVpbGRib3QsCiAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdoZWxs
bycsIGV4cF9lcnI9Tm9uZSwgZXhwX2JvdD1Ob25lKToKICAgICAgICAgZGVmIGRvX2hlbHBlciht
ZXRob2RfbmFtZSwgc3dpdGNoLCBtZXNzYWdlLCBleHBfZXJyLCBleHBfYm90KToKLSAgICAgICAg
ICAgIHByaW50ZXIsIGVyciwgYm90ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tcHJpbnQnLCBzd2l0
Y2hdKQorICAgICAgICAgICAgcHJpbnRlciwgZXJyLCBib3QgPSBzZWxmLmdldF9wcmludGVyKFsn
LS1wcmludCcsIHN3aXRjaF0sIHR0eT1UcnVlKQogICAgICAgICAgICAgZ2V0YXR0cihwcmludGVy
LCBtZXRob2RfbmFtZSkobWVzc2FnZSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXJy
LmdldCgpLCBleHBfZXJyKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChib3QuZ2V0KCks
IGV4cF9ib3QpCkBAIC0zMjQsMTMgKzMyNSwxMyBAQCBjbGFzcyAgVGVzdHByaW50ZXIodW5pdHRl
c3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfcHJpbnRfcHJvZ3Jlc3Moc2VsZik6CiAgICAg
ICAgIGV4cGVjdGF0aW9ucyA9ICcnCi0KLSAgICAgICAgIyB0ZXN0IHRoYXQgd2UgcHJpbnQgbm90
aGluZwogICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIoWyctLXBy
aW50JywgJ25vdGhpbmcnXSkKICAgICAgICAgdGVzdHMgPSBbJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCAn
ZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywKICAgICAgICAgICAgICAgICAgJ2ZhaWx1
cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnXQogICAgICAgICBwYXRocywgcnMsIGV4cCA9IHNlbGYu
Z2V0X3Jlc3VsdF9zdW1tYXJ5KHRlc3RzLCBleHBlY3RhdGlvbnMpCiAKKworICAgICAgICAjIEZp
cnN0LCB0ZXN0IHRoYXQgd2UgcHJpbnQgbm90aGluZy4KICAgICAgICAgcHJpbnRlci5wcmludF9w
cm9ncmVzcyhycywgRmFsc2UsIHBhdGhzKQogICAgICAgICBzZWxmLmFzc2VydFRydWUob3V0LmVt
cHR5KCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShlcnIuZW1wdHkoKSkKQEAgLTMzOSwxOCAr
MzQwLDU1IEBAIGNsYXNzICBUZXN0cHJpbnRlcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShvdXQuZW1wdHkoKSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGVy
ci5lbXB0eSgpKQogCi0gICAgICAgICMgdGVzdCByZWd1bGFyIGZ1bmN0aW9uYWxpdHkKLSAgICAg
ICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsnLS1wcmludCcsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29uZS1saW5lLXByb2dy
ZXNzJ10pCi0gICAgICAgIHByaW50ZXIucHJpbnRfcHJvZ3Jlc3MocnMsIEZhbHNlLCBwYXRocykK
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG91dC5lbXB0eSgpKQotICAgICAgICBzZWxmLmFzc2Vy
dEZhbHNlKGVyci5lbXB0eSgpKQotCi0gICAgICAgIGVyci5yZXNldCgpCi0gICAgICAgIG91dC5y
ZXNldCgpCi0gICAgICAgIHByaW50ZXIucHJpbnRfcHJvZ3Jlc3MocnMsIFRydWUsIHBhdGhzKQot
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGVyci5lbXB0eSgpKQotICAgICAgICBzZWxmLmFzc2Vy
dFRydWUob3V0LmVtcHR5KCkpCisgICAgICAgIHNlbGYudGltZXMgPSBbMSwgMiwgMTIsIDEzLCAx
NCwgMjMsIDMzXQorCisgICAgICAgIGRlZiBtb2NrX3RpbWUoKToKKyAgICAgICAgICAgIHJldHVy
biBzZWxmLnRpbWVzLnBvcCgwKQorCisgICAgICAgIG9yaWdfdGltZSA9IHRpbWUudGltZQorICAg
ICAgICB0cnk6CisgICAgICAgICAgICB0aW1lLnRpbWUgPSBtb2NrX3RpbWUKKworICAgICAgICAg
ICAgIyBUZXN0IHByaW50aW5nIHByb2dyZXNzIHVwZGF0ZXMgdG8gYSBmaWxlLgorICAgICAgICAg
ICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsnLS1wcmludCcsICdvbmUt
bGluZS1wcm9ncmVzcyddKQorICAgICAgICAgICAgcHJpbnRlci5wcmludF9wcm9ncmVzcyhycywg
RmFsc2UsIHBhdGhzKQorICAgICAgICAgICAgcHJpbnRlci5wcmludF9wcm9ncmVzcyhycywgRmFs
c2UsIHBhdGhzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG91dC5lbXB0eSgpKQorICAg
ICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGVyci5lbXB0eSgpKQorCisgICAgICAgICAgICBwcmlu
dGVyLnByaW50X3Byb2dyZXNzKHJzLCBGYWxzZSwgcGF0aHMpCisgICAgICAgICAgICBzZWxmLmFz
c2VydFRydWUob3V0LmVtcHR5KCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGVyci5l
bXB0eSgpKQorCisgICAgICAgICAgICBlcnIucmVzZXQoKQorICAgICAgICAgICAgb3V0LnJlc2V0
KCkKKyAgICAgICAgICAgIHByaW50ZXIucHJpbnRfcHJvZ3Jlc3MocnMsIFRydWUsIHBhdGhzKQor
ICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG91dC5lbXB0eSgpKQorICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKGVyci5lbXB0eSgpKQorCisgICAgICAgICAgICBwcmludGVyLnByaW50X3By
b2dyZXNzKHJzLCBUcnVlLCBwYXRocykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvdXQu
ZW1wdHkoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZXJyLmVtcHR5KCkpCisKKyAg
ICAgICAgICAgICMgTm93IHJlY29uZmlndXJlIHRoZSBwcmludGVyIHRvIHRlc3QgcHJpbnRpbmcg
dG8gYSBUVFkgaW5zdGVhZCBvZiBhIGZpbGUuCisgICAgICAgICAgICBzZWxmLnRpbWVzID0gWzEs
IDEuMDEsIDIsIDNdCisgICAgICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3By
aW50ZXIoWyctLXByaW50JywgJ29uZS1saW5lLXByb2dyZXNzJ10sIHR0eT1UcnVlKQorICAgICAg
ICAgICAgcHJpbnRlci5wcmludF9wcm9ncmVzcyhycywgRmFsc2UsIHBhdGhzKQorICAgICAgICAg
ICAgcHJpbnRlci5wcmludF9wcm9ncmVzcyhycywgRmFsc2UsIHBhdGhzKQorICAgICAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKG91dC5lbXB0eSgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KGVyci5lbXB0eSgpKQorCisgICAgICAgICAgICBwcmludGVyLnByaW50X3Byb2dyZXNzKHJzLCBG
YWxzZSwgcGF0aHMpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUob3V0LmVtcHR5KCkpCisg
ICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGVyci5lbXB0eSgpKQorCisgICAgICAgICAgICBl
cnIucmVzZXQoKQorICAgICAgICAgICAgb3V0LnJlc2V0KCkKKyAgICAgICAgICAgIHByaW50ZXIu
cHJpbnRfcHJvZ3Jlc3MocnMsIFRydWUsIHBhdGhzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKG91dC5lbXB0eSgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShlcnIuZW1wdHko
KSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHRpbWUudGltZSA9IG9yaWdfdGltZQog
CiAgICAgZGVmIHRlc3Rfd3JpdGVfbm90aGluZyhzZWxmKToKICAgICAgICAgcHJpbnRlciwgZXJy
LCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsnLS1wcmludCcsICdub3RoaW5nJ10pCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95689</attachid>
            <date>2011-06-01 17:01:59 -0700</date>
            <delta_ts>2011-06-02 10:09:44 -0700</delta_ts>
            <desc>fix changelog</desc>
            <filename>bug-60328-20110601170158.patch</filename>
            <type>text/plain</type>
            <size>13051</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODc2OTcKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzNmU5ZDE0ZTEyN2M4MzZkMzcwNGQxMDAzMDY1ZjFiNmQ1
M2VlZDc0Li43NDMwYTY3OTcwZjU4NDc2OTdkZTU3NzNkZmJjZjM5YTg2YzdmYzkzIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMTEtMDUtMDUgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTlJXVCBuZWVkcyBh
IHdheSB0byBsb2cgdG8gYSBmaWxlIHdpdGhvdXQgaW5jbHVkaW5nIGJhY2tzcGFjZXMgd2l0aG91
dCBuZWVkaW5nIC0tdmVyYm9zZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjAzMjgKKworICAgICAgICBUaGlzIGNoYW5nZSBtb2RpZmllcyBOUldUIHNv
IHRoYXQgaWYgaXQgY2FuIHRlbGwgaWYgaXQgaXMKKyAgICAgICAgd3JpdGluZyB0byBhIHRlcm1p
bmFsLCBpdCB3aWxsIG92ZXJ3cml0ZSBhbnkgbWVzc2FnZXMgcHJpbnRlZAorICAgICAgICBpbiB0
aGUgJ29uZS1saW5lLXByb2dyZXNzJyBhbmQgJ3VwZGF0ZXMnIHByaW50IG9wdGlvbnMsIGFuZCBp
ZgorICAgICAgICBub3QgKG9yIGlmIC0tdmVyYm9zZSB3YXMgc3BlY2lmaWVkKSB0aGUgbWVzc2Fn
ZXMgd2lsbCBiZSBwcmludGVkCisgICAgICAgIHdpdGhvdXQgYmFja3NwYWNlcy4KKworICAgICAg
ICBJZiB0aGUgb3ZlcndyaXRpbmcgdXBkYXRlcyBhcmUgZGlzYWJsZWQsIG9uZS1saW5lLXByb2dy
ZXNzIHdpbGwKKyAgICAgICAgb25seSBwcmludCBldmVyeSAxMCBzZWNvbmRzIGluc3RlYWQgb2Yg
b24gZXZlcnkgdXBkYXRlLiBUaGlzCisgICAgICAgIGVuc3VyZXMgdGhhdCB3ZSBzdGlsbCBnZXQg
dXBkYXRlcyBvbmNlIGluIGEgd2hpbGUgd2hpbGUgdGhlCisgICAgICAgIHRlc3RzIGFyZSBydW5u
aW5nLCBldmVuIGlmIHdlJ3JlIG5vdCBpbiAtLXZlcmJvc2UgbW9kZS4gTm90ZQorICAgICAgICB0
aGF0IG9uZS1saW5lLXByb2dyZXNzIHdpbGwgbm93IHN0aWxsIGJlIHByaW50ZWQgaW4gLS12ZXJi
b3NlLAorICAgICAgICBzaW5jZSBpdCdzIHVzZWZ1bCBhcyBsb25nIGFzIHlvdSdyZSBub3QgZmxv
b2RlZCB3aXRoIHRoZQorICAgICAgICB1cGRhdGVzLgorCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWFuYWdlci5weToKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGluZy5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9w
cmludGluZ191bml0dGVzdC5weToKKwogMjAxMS0wNS0zMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmlu
c29uLgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vYXJyYXlfc3Ry
ZWFtLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vYXJyYXlfc3RyZWFtLnB5Cmlu
ZGV4IGU0MjVkMDI5YzhlN2EzNDI0YjM0MTJjYjk3OTk2ZWU5Y2NkOTQ2NjYuLjdkMmM0MzkyNTNh
NDRkYzg0ZDYyZjI0ZDE0NzZiY2JmYWMzNjIyNjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL2FycmF5X3N0cmVhbS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9hcnJheV9zdHJlYW0ucHkKQEAgLTM5LDggKzM5LDkgQEAgY2xhc3MgQXJyYXlT
dHJlYW0ob2JqZWN0KToKICAgICBjb25jYXRlbmF0ZXMgYWxsIG9mIHRoZSB3cml0ZXMgdG9nZXRo
ZXIuCiAgICAgIiIiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHR0eT1GYWxzZSk6CiAgICAgICAgIHNlbGYuX2NvbnRlbnRzID0gW10KKyAgICAgICAg
c2VsZi5fdHR5ID0gdHR5CiAKICAgICBkZWYgd3JpdGUoc2VsZiwgbXNnKToKICAgICAgICAgIiIi
SW1wbGVtZW50IHN0cmVhbS53cml0ZSgpIGJ5IGFwcGVuZGluZyB0byB0aGUgc3RyZWFtJ3MgY29u
dGVudHMuIiIiCkBAIC02NCwzICs2NSw2IEBAIGNsYXNzIEFycmF5U3RyZWFtKG9iamVjdCk6CiAK
ICAgICBkZWYgX19yZXByX18oc2VsZik6CiAgICAgICAgIHJldHVybiAnPEFycmF5U3RyZWFtOiAn
ICsgc3RyKHNlbGYuX2NvbnRlbnRzKSArICc+JworCisgICAgZGVmIGlzYXR0eShzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX3R0eQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWFuYWdlci5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21hbmFnZXIucHkKaW5kZXggNzRi
OGY4MGYwM2UzMzgyZDkwY2ZkNTBmOWI1NjJkOGFmYmI0MjFjNy4uNzViY2UwZDA1ZjQ5MTgyMmI5
NTk0YjhjMDg1MzQwM2Q3ZTY3NWRkYiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWFuYWdlci5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tYW5hZ2VyLnB5CkBAIC04
NTUsNiArODU1LDcgQEAgY2xhc3MgTWFuYWdlcjoKICAgICAgICAgICAgIHRyeToKICAgICAgICAg
ICAgICAgICByZXN1bHQgPSB0ZXN0X3Jlc3VsdHMuVGVzdFJlc3VsdC5sb2FkcyhzZWxmLl9yZXN1
bHRfcXVldWUuZ2V0X25vd2FpdCgpKQogICAgICAgICAgICAgZXhjZXB0IFF1ZXVlLkVtcHR5Ogor
ICAgICAgICAgICAgICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfcHJvZ3Jlc3MocmVzdWx0X3N1bW1h
cnksIHNlbGYuX3JldHJ5aW5nLCBzZWxmLl90ZXN0X2ZpbGVzX2xpc3QpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuCiAKICAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9zdW1tYXJ5X3dpdGhfcmVzdWx0
KHJlc3VsdF9zdW1tYXJ5LCByZXN1bHQpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9wcmludGluZy5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nLnB5CmluZGV4
IDUzY2YxNTBjMGJmZWEzMWQyNjViY2Y4MzgxNzI4OTk2ODY5ZjIwOWUuLmMyNTY3NDUwMDJlNTUx
MWEyODAxZmYzMTkwNzE5OTZlNWFmOGQxYTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nLnB5
CkBAIC0zMSw2ICszMSw3IEBACiAKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3B0cGFyc2UKK2lt
cG9ydCB0aW1lCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldCBpbXBvcnQgcmVzdWx0c2pzb25w
YXJzZXIKIGZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLmxheW91dF9wYWNrYWdlIGltcG9ydCBt
ZXRlcmVkX3N0cmVhbQpAQCAtNDIsNiArNDMsOCBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIo
IndlYmtpdHB5LmxheW91dF90ZXN0cy5wcmludGVyIikKIFRlc3RFeHBlY3RhdGlvbnMgPSB0ZXN0
X2V4cGVjdGF0aW9ucy5UZXN0RXhwZWN0YXRpb25zCiAKIE5VTV9TTE9XX1RFU1RTX1RPX0xPRyA9
IDEwCitGQVNUX1VQREFURVMgPSAwLjAzCitTTE9XX1VQREFURVMgPSAxMC4wCiAKIFBSSU5UX0RF
RkFVTFQgPSAoIm1pc2Msb25lLWxpbmUtcHJvZ3Jlc3Msb25lLWxpbmUtc3VtbWFyeSx1bmV4cGVj
dGVkLCIKICAgICAgICAgICAgICAgICAgInVuZXhwZWN0ZWQtcmVzdWx0cyx1cGRhdGVzIikKQEAg
LTY4LDcgKzcxLDcgQEAgQXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcnVuOgogICAgICAgICAgICAg
ICAgICAgICAgICAgKCMgcGFzc2VzLCAjIGZhaWx1cmVzLCBldGMuKQogCiBEdXJpbmcgdGhlIHJ1
bjoKLSAgICBvbmUtbGluZS1wcm9ncmVzcyAgIHByaW50IGEgb25lLWxpbmUgcHJvZ3Jlc3MgYmFy
CisgICAgb25lLWxpbmUtcHJvZ3Jlc3MgICBwcmludCBhIG9uZS1saW5lIHByb2dyZXNzIG1lc3Nh
Z2Ugb3IgYmFyCiAgICAgdW5leHBlY3RlZCAgICAgICAgICBwcmludCBhbnkgdW5leHBlY3RlZCBy
ZXN1bHRzIGFzIHRoZXkgb2NjdXIKICAgICB1cGRhdGVzICAgICAgICAgICAgIHByaW50IHVwZGF0
ZXMgb24gd2hpY2ggc3RhZ2UgaXMgZXhlY3V0aW5nCiAgICAgdHJhY2UtZXZlcnl0aGluZyAgICBw
cmludCBkZXRhaWxlZCBpbmZvIG9uIGV2ZXJ5IHRlc3QncyByZXN1bHRzCkBAIC0xMTYsNyArMTE5
LDcgQEAgZGVmIHByaW50X29wdGlvbnMoKToKICAgICAgICAgICAgIGhlbHA9InNob3cgZGV0YWls
ZWQgaGVscCBvbiBjb250cm9sbGluZyBwcmludCBvdXRwdXQiKSwKICAgICAgICAgb3B0cGFyc2Uu
bWFrZV9vcHRpb24oIi12IiwgIi0tdmVyYm9zZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCiAgICAg
ICAgICAgICBkZWZhdWx0PUZhbHNlLCBoZWxwPSJpbmNsdWRlIGRlYnVnLWxldmVsIGxvZ2dpbmci
KSwKLSAgICBdCisgICBdCiAKIAogZGVmIHBhcnNlX3ByaW50X29wdGlvbnMocHJpbnRfb3B0aW9u
cywgdmVyYm9zZSk6CkBAIC0xMzAsNyArMTMzLDYgQEAgZGVmIHBhcnNlX3ByaW50X29wdGlvbnMo
cHJpbnRfb3B0aW9ucywgdmVyYm9zZSk6CiAgICAgICAgIHN3aXRjaGVzID0gc2V0KHByaW50X29w
dGlvbnMuc3BsaXQoJywnKSkKICAgICBlbGlmIHZlcmJvc2U6CiAgICAgICAgIHN3aXRjaGVzID0g
c2V0KFBSSU5UX0VWRVJZVEhJTkcuc3BsaXQoJywnKSkKLSAgICAgICAgc3dpdGNoZXMuZGlzY2Fy
ZCgnb25lLWxpbmUtcHJvZ3Jlc3MnKQogICAgIGVsc2U6CiAgICAgICAgIHN3aXRjaGVzID0gc2V0
KFBSSU5UX0RFRkFVTFQuc3BsaXQoJywnKSkKIApAQCAtMjA2LDE3ICsyMDgsMjIgQEAgY2xhc3Mg
UHJpbnRlcihvYmplY3QpOgogICAgICAgICBzZWxmLl9idWlsZGJvdF9zdHJlYW0gPSBidWlsZGJv
dF9vdXRwdXQKICAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKICAgICAgICAgc2VsZi5f
cG9ydCA9IHBvcnQKKyAgICAgICAgc2VsZi5fbWV0ZXIgPSBOb25lCiAgICAgICAgIHNlbGYuX3N0
cmVhbSA9IHJlZ3VsYXJfb3V0cHV0CiAKLSAgICAgICAgc2VsZi5fbWV0ZXIgPSBOb25lCi0gICAg
ICAgIGlmIG9wdGlvbnMudmVyYm9zZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dpbmdfaGFuZGxl
ciA9IF9jb25maWd1cmVfbG9nZ2luZyhyZWd1bGFyX291dHB1dCwgb3B0aW9ucy52ZXJib3NlKQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fbWV0ZXIgPSBtZXRlcmVkX3N0cmVhbS5N
ZXRlcmVkU3RyZWFtKHJlZ3VsYXJfb3V0cHV0KQotICAgICAgICAgICAgc2VsZi5fbG9nZ2luZ19o
YW5kbGVyID0gX2NvbmZpZ3VyZV9sb2dnaW5nKHNlbGYuX21ldGVyLCBvcHRpb25zLnZlcmJvc2Up
CisgICAgICAgICMgVGhlc2UgYXJlIHVzZWQgZm9yIC0tcHJpbnQgb25lLWxpbmUtcHJvZ3Jlc3MK
KyAgICAgICAgc2VsZi5fbGFzdF9yZW1haW5pbmcgPSBOb25lCisgICAgICAgIHNlbGYuX2xhc3Rf
dXBkYXRlX3RpbWUgPSBOb25lCisKKyAgICAgICAgc2VsZi5zd2l0Y2hlcyA9IHBhcnNlX3ByaW50
X29wdGlvbnMob3B0aW9ucy5wcmludF9vcHRpb25zLCBvcHRpb25zLnZlcmJvc2UpCiAKLSAgICAg
ICAgc2VsZi5zd2l0Y2hlcyA9IHBhcnNlX3ByaW50X29wdGlvbnMob3B0aW9ucy5wcmludF9vcHRp
b25zLAotICAgICAgICAgICAgb3B0aW9ucy52ZXJib3NlKQorICAgICAgICBpZiBzZWxmLl9zdHJl
YW0uaXNhdHR5KCkgYW5kIG5vdCBvcHRpb25zLnZlcmJvc2U6CisgICAgICAgICAgICBzZWxmLl91
cGRhdGVfaW50ZXJ2YWwgPSBGQVNUX1VQREFURVMKKyAgICAgICAgICAgIHNlbGYuX21ldGVyID0g
bWV0ZXJlZF9zdHJlYW0uTWV0ZXJlZFN0cmVhbShzZWxmLl9zdHJlYW0pCisgICAgICAgICAgICBz
ZWxmLl9sb2dnaW5nX2hhbmRsZXIgPSBfY29uZmlndXJlX2xvZ2dpbmcoc2VsZi5fbWV0ZXIsIG9w
dGlvbnMudmVyYm9zZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2dpbmdf
aGFuZGxlciA9IF9jb25maWd1cmVfbG9nZ2luZyhzZWxmLl9zdHJlYW0sIG9wdGlvbnMudmVyYm9z
ZSkKKyAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9pbnRlcnZhbCA9IFNMT1dfVVBEQVRFUwogCiAg
ICAgZGVmIGNsZWFudXAoc2VsZik6CiAgICAgICAgICIiIlJlc3RvcmUgbG9nZ2luZyBjb25maWd1
cmF0aW9uIHRvIGl0cyBpbml0aWFsIHNldHRpbmdzLiIiIgpAQCAtMzQzLDEzICszNTAsMjMgQEAg
Y2xhc3MgUHJpbnRlcihvYmplY3QpOgogICAgICAgICBpZiBzZWxmLmRpc2FibGVkKCdvbmUtbGlu
ZS1wcm9ncmVzcycpOgogICAgICAgICAgICAgcmV0dXJuCiAKKyAgICAgICAgbm93ID0gdGltZS50
aW1lKCkKKyAgICAgICAgaWYgc2VsZi5fbGFzdF91cGRhdGVfdGltZSBpcyBOb25lOgorICAgICAg
ICAgICAgc2VsZi5fbGFzdF91cGRhdGVfdGltZSA9IG5vdworCisgICAgICAgIHRpbWVfc2luY2Vf
bGFzdF91cGRhdGUgPSBub3cgLSBzZWxmLl9sYXN0X3VwZGF0ZV90aW1lCisgICAgICAgIGlmIHRp
bWVfc2luY2VfbGFzdF91cGRhdGUgPD0gc2VsZi5fdXBkYXRlX2ludGVydmFsOgorICAgICAgICAg
ICAgcmV0dXJuCisKKyAgICAgICAgc2VsZi5fbGFzdF91cGRhdGVfdGltZSA9IG5vdworCiAgICAg
ICAgIHBlcmNlbnRfY29tcGxldGUgPSAxMDAgKiAocmVzdWx0X3N1bW1hcnkuZXhwZWN0ZWQgKwog
ICAgICAgICAgICAgcmVzdWx0X3N1bW1hcnkudW5leHBlY3RlZCkgLyByZXN1bHRfc3VtbWFyeS50
b3RhbAogICAgICAgICBhY3Rpb24gPSAiVGVzdGluZyIKICAgICAgICAgaWYgcmV0cnlpbmc6CiAg
ICAgICAgICAgICBhY3Rpb24gPSAiUmV0cnlpbmciCi0gICAgICAgIHNlbGYuX21ldGVyLnVwZGF0
ZSgiJXMgKCVkJSUpOiAlZCByYW4gYXMgZXhwZWN0ZWQsICVkIGRpZG4ndCwiCi0gICAgICAgICAg
ICAiICVkIGxlZnQiICUgKGFjdGlvbiwgcGVyY2VudF9jb21wbGV0ZSwgcmVzdWx0X3N1bW1hcnku
ZXhwZWN0ZWQsCisgICAgICAgIHNlbGYuX3VwZGF0ZSgiJXMgKCVkJSUpOiAlZCByYW4gYXMgZXhw
ZWN0ZWQsICVkIGRpZG4ndCwgJWQgbGVmdCIgJQorICAgICAgICAgICAgKGFjdGlvbiwgcGVyY2Vu
dF9jb21wbGV0ZSwgcmVzdWx0X3N1bW1hcnkuZXhwZWN0ZWQsCiAgICAgICAgICAgICAgcmVzdWx0
X3N1bW1hcnkudW5leHBlY3RlZCwgcmVzdWx0X3N1bW1hcnkucmVtYWluaW5nKSkKIAogICAgICAg
ICBpZiByZXN1bHRfc3VtbWFyeS5yZW1haW5pbmcgPT0gMDoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3ByaW50aW5nX3VuaXR0
ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2th
Z2UvcHJpbnRpbmdfdW5pdHRlc3QucHkKaW5kZXggMGQ2NzRiMDhmNjIyNzYyZjUwY2QxNzFiYzNk
YmI3ZjU4MDRjZDRkZS4uNDRkYTVjM2E0NzBjMmMxY2RjMmMwNTkzODJjODlhZDM2NzQ0ODdlZSAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3Bh
Y2thZ2UvcHJpbnRpbmdfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvcHJpbnRpbmdfdW5pdHRlc3QucHkKQEAgLTI5LDkg
KzI5LDEwIEBACiAKICIiIlVuaXQgdGVzdHMgZm9yIHByaW50aW5nLnB5LiIiIgogCitpbXBvcnQg
bG9nZ2luZwogaW1wb3J0IG9wdHBhcnNlCitpbXBvcnQgdGltZQogaW1wb3J0IHVuaXR0ZXN0Ci1p
bXBvcnQgbG9nZ2luZwogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbiBpbXBvcnQgYXJyYXlfc3RyZWFt
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IGxvZ3Rlc3RpbmcKQEAgLTkxLDcg
KzkyLDcgQEAgY2xhc3MgVGVzdFV0aWxpdHlGdW5jdGlvbnModW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgICAgICB0ZXN0X3N3aXRjaGVzKFtdLCBwcmludGluZy5QUklOVF9ERUZBVUxUKQogCiAgICAg
ICAgICMgdGVzdCB0aGF0IHZlcmJvc2UgZGVmYXVsdHMgdG8gZXZlcnl0aGluZwotICAgICAgICB0
ZXN0X3N3aXRjaGVzKFtdLCBwcmludGluZy5QUklOVF9FVkVSWVRISU5HLnJlcGxhY2UoJyxvbmUt
bGluZS1wcm9ncmVzcycsJycpLCB2ZXJib3NlPVRydWUpCisgICAgICAgIHRlc3Rfc3dpdGNoZXMo
W10sIHByaW50aW5nLlBSSU5UX0VWRVJZVEhJTkcsIHZlcmJvc2U9VHJ1ZSkKIAogICAgICAgICAj
IHRlc3QgdGhhdCAtLXByaW50IGRlZmF1bHQgZG9lcyB3aGF0IGl0J3Mgc3VwcG9zZWQgdG8KICAg
ICAgICAgdGVzdF9zd2l0Y2hlcyhbJy0tcHJpbnQnLCAnZGVmYXVsdCddLCBwcmludGluZy5QUklO
VF9ERUZBVUxUKQpAQCAtMTA4LDcgKzEwOSw3IEBAIGNsYXNzIFRlc3RVdGlsaXR5RnVuY3Rpb25z
KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogCiBjbGFzcyAgVGVzdHByaW50ZXIodW5pdHRlc3QuVGVz
dENhc2UpOgotICAgIGRlZiBnZXRfcHJpbnRlcihzZWxmLCBhcmdzPU5vbmUpOgorICAgIGRlZiBn
ZXRfcHJpbnRlcihzZWxmLCBhcmdzPU5vbmUsIHR0eT1GYWxzZSk6CiAgICAgICAgIGFyZ3MgPSBh
cmdzIG9yIFtdCiAgICAgICAgIHByaW50aW5nX29wdGlvbnMgPSBwcmludGluZy5wcmludF9vcHRp
b25zKCkKICAgICAgICAgb3B0aW9uX3BhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcihvcHRp
b25fbGlzdD1wcmludGluZ19vcHRpb25zKQpAQCAtMTE2LDcgKzExNyw3IEBAIGNsYXNzICBUZXN0
cHJpbnRlcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0Lmdl
dCgndGVzdCcsIG9wdGlvbnMpCiAgICAgICAgIG5wcm9jID0gMgogCi0gICAgICAgIHJlZ3VsYXJf
b3V0cHV0ID0gYXJyYXlfc3RyZWFtLkFycmF5U3RyZWFtKCkKKyAgICAgICAgcmVndWxhcl9vdXRw
dXQgPSBhcnJheV9zdHJlYW0uQXJyYXlTdHJlYW0odHR5PXR0eSkKICAgICAgICAgYnVpbGRib3Rf
b3V0cHV0ID0gYXJyYXlfc3RyZWFtLkFycmF5U3RyZWFtKCkKICAgICAgICAgcHJpbnRlciA9IHBy
aW50aW5nLlByaW50ZXIoc2VsZi5fcG9ydCwgb3B0aW9ucywgcmVndWxhcl9vdXRwdXQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkYm90X291dHB1dCwgY29uZmlndXJl
X2xvZ2dpbmc9VHJ1ZSkKQEAgLTE1Nyw3ICsxNTgsNyBAQCBjbGFzcyAgVGVzdHByaW50ZXIodW5p
dHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBkb19zd2l0Y2hfdGVzdHMoc2VsZiwgbWV0aG9kX25h
bWUsIHN3aXRjaCwgdG9fYnVpbGRib3QsCiAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdl
PSdoZWxsbycsIGV4cF9lcnI9Tm9uZSwgZXhwX2JvdD1Ob25lKToKICAgICAgICAgZGVmIGRvX2hl
bHBlcihtZXRob2RfbmFtZSwgc3dpdGNoLCBtZXNzYWdlLCBleHBfZXJyLCBleHBfYm90KToKLSAg
ICAgICAgICAgIHByaW50ZXIsIGVyciwgYm90ID0gc2VsZi5nZXRfcHJpbnRlcihbJy0tcHJpbnQn
LCBzd2l0Y2hdKQorICAgICAgICAgICAgcHJpbnRlciwgZXJyLCBib3QgPSBzZWxmLmdldF9wcmlu
dGVyKFsnLS1wcmludCcsIHN3aXRjaF0sIHR0eT1UcnVlKQogICAgICAgICAgICAgZ2V0YXR0cihw
cmludGVyLCBtZXRob2RfbmFtZSkobWVzc2FnZSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoZXJyLmdldCgpLCBleHBfZXJyKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChib3Qu
Z2V0KCksIGV4cF9ib3QpCkBAIC0zMjQsMTMgKzMyNSwxMyBAQCBjbGFzcyAgVGVzdHByaW50ZXIo
dW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfcHJpbnRfcHJvZ3Jlc3Moc2VsZik6
CiAgICAgICAgIGV4cGVjdGF0aW9ucyA9ICcnCi0KLSAgICAgICAgIyB0ZXN0IHRoYXQgd2UgcHJp
bnQgbm90aGluZwogICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYuZ2V0X3ByaW50ZXIo
WyctLXByaW50JywgJ25vdGhpbmcnXSkKICAgICAgICAgdGVzdHMgPSBbJ3Bhc3Nlcy90ZXh0Lmh0
bWwnLCAnZmFpbHVyZXMvZXhwZWN0ZWQvdGltZW91dC5odG1sJywKICAgICAgICAgICAgICAgICAg
J2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnXQogICAgICAgICBwYXRocywgcnMsIGV4cCA9
IHNlbGYuZ2V0X3Jlc3VsdF9zdW1tYXJ5KHRlc3RzLCBleHBlY3RhdGlvbnMpCiAKKworICAgICAg
ICAjIEZpcnN0LCB0ZXN0IHRoYXQgd2UgcHJpbnQgbm90aGluZy4KICAgICAgICAgcHJpbnRlci5w
cmludF9wcm9ncmVzcyhycywgRmFsc2UsIHBhdGhzKQogICAgICAgICBzZWxmLmFzc2VydFRydWUo
b3V0LmVtcHR5KCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShlcnIuZW1wdHkoKSkKQEAgLTMz
OSwxOCArMzQwLDU1IEBAIGNsYXNzICBUZXN0cHJpbnRlcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvdXQuZW1wdHkoKSkKICAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKGVyci5lbXB0eSgpKQogCi0gICAgICAgICMgdGVzdCByZWd1bGFyIGZ1bmN0aW9uYWxpdHkK
LSAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsnLS1wcmludCcs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29uZS1saW5l
LXByb2dyZXNzJ10pCi0gICAgICAgIHByaW50ZXIucHJpbnRfcHJvZ3Jlc3MocnMsIEZhbHNlLCBw
YXRocykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG91dC5lbXB0eSgpKQotICAgICAgICBzZWxm
LmFzc2VydEZhbHNlKGVyci5lbXB0eSgpKQotCi0gICAgICAgIGVyci5yZXNldCgpCi0gICAgICAg
IG91dC5yZXNldCgpCi0gICAgICAgIHByaW50ZXIucHJpbnRfcHJvZ3Jlc3MocnMsIFRydWUsIHBh
dGhzKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGVyci5lbXB0eSgpKQotICAgICAgICBzZWxm
LmFzc2VydFRydWUob3V0LmVtcHR5KCkpCisgICAgICAgIHNlbGYudGltZXMgPSBbMSwgMiwgMTIs
IDEzLCAxNCwgMjMsIDMzXQorCisgICAgICAgIGRlZiBtb2NrX3RpbWUoKToKKyAgICAgICAgICAg
IHJldHVybiBzZWxmLnRpbWVzLnBvcCgwKQorCisgICAgICAgIG9yaWdfdGltZSA9IHRpbWUudGlt
ZQorICAgICAgICB0cnk6CisgICAgICAgICAgICB0aW1lLnRpbWUgPSBtb2NrX3RpbWUKKworICAg
ICAgICAgICAgIyBUZXN0IHByaW50aW5nIHByb2dyZXNzIHVwZGF0ZXMgdG8gYSBmaWxlLgorICAg
ICAgICAgICAgcHJpbnRlciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsnLS1wcmludCcs
ICdvbmUtbGluZS1wcm9ncmVzcyddKQorICAgICAgICAgICAgcHJpbnRlci5wcmludF9wcm9ncmVz
cyhycywgRmFsc2UsIHBhdGhzKQorICAgICAgICAgICAgcHJpbnRlci5wcmludF9wcm9ncmVzcyhy
cywgRmFsc2UsIHBhdGhzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG91dC5lbXB0eSgp
KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGVyci5lbXB0eSgpKQorCisgICAgICAgICAg
ICBwcmludGVyLnByaW50X3Byb2dyZXNzKHJzLCBGYWxzZSwgcGF0aHMpCisgICAgICAgICAgICBz
ZWxmLmFzc2VydFRydWUob3V0LmVtcHR5KCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KGVyci5lbXB0eSgpKQorCisgICAgICAgICAgICBlcnIucmVzZXQoKQorICAgICAgICAgICAgb3V0
LnJlc2V0KCkKKyAgICAgICAgICAgIHByaW50ZXIucHJpbnRfcHJvZ3Jlc3MocnMsIFRydWUsIHBh
dGhzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG91dC5lbXB0eSgpKQorICAgICAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKGVyci5lbXB0eSgpKQorCisgICAgICAgICAgICBwcmludGVyLnBy
aW50X3Byb2dyZXNzKHJzLCBUcnVlLCBwYXRocykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShvdXQuZW1wdHkoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZXJyLmVtcHR5KCkp
CisKKyAgICAgICAgICAgICMgTm93IHJlY29uZmlndXJlIHRoZSBwcmludGVyIHRvIHRlc3QgcHJp
bnRpbmcgdG8gYSBUVFkgaW5zdGVhZCBvZiBhIGZpbGUuCisgICAgICAgICAgICBzZWxmLnRpbWVz
ID0gWzEsIDEuMDEsIDIsIDNdCisgICAgICAgICAgICBwcmludGVyLCBlcnIsIG91dCA9IHNlbGYu
Z2V0X3ByaW50ZXIoWyctLXByaW50JywgJ29uZS1saW5lLXByb2dyZXNzJ10sIHR0eT1UcnVlKQor
ICAgICAgICAgICAgcHJpbnRlci5wcmludF9wcm9ncmVzcyhycywgRmFsc2UsIHBhdGhzKQorICAg
ICAgICAgICAgcHJpbnRlci5wcmludF9wcm9ncmVzcyhycywgRmFsc2UsIHBhdGhzKQorICAgICAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKG91dC5lbXB0eSgpKQorICAgICAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKGVyci5lbXB0eSgpKQorCisgICAgICAgICAgICBwcmludGVyLnByaW50X3Byb2dyZXNz
KHJzLCBGYWxzZSwgcGF0aHMpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUob3V0LmVtcHR5
KCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGVyci5lbXB0eSgpKQorCisgICAgICAg
ICAgICBlcnIucmVzZXQoKQorICAgICAgICAgICAgb3V0LnJlc2V0KCkKKyAgICAgICAgICAgIHBy
aW50ZXIucHJpbnRfcHJvZ3Jlc3MocnMsIFRydWUsIHBhdGhzKQorICAgICAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKG91dC5lbXB0eSgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShlcnIu
ZW1wdHkoKSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHRpbWUudGltZSA9IG9yaWdf
dGltZQogCiAgICAgZGVmIHRlc3Rfd3JpdGVfbm90aGluZyhzZWxmKToKICAgICAgICAgcHJpbnRl
ciwgZXJyLCBvdXQgPSBzZWxmLmdldF9wcmludGVyKFsnLS1wcmludCcsICdub3RoaW5nJ10pCg==
</data>
<flag name="review"
          id="89236"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>