<?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>138743</bug_id>
          
          <creation_ts>2014-11-14 10:04:09 -0800</creation_ts>
          <short_desc>Having 30+ flaky failures breaks EWS</short_desc>
          <delta_ts>2014-11-17 12:12:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=137223</see_also>
          <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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Jake Nielsen">jake.nielsen.webkit</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>glenn</cc>
    
    <cc>jake.nielsen.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1048776</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-11-14 10:04:09 -0800</bug_when>
    <thetext>When EWS detects 30+ failures on the first run, it doesn&apos;t re-test the patch, and only tries a clean build. But the very nature of flakiness is that the clean build will likely pass, and so we&apos;ll erroneously reject the patch.

This causes false rejections, like in bug 138728.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048884</commentid>
    <comment_count>1</comment_count>
      <attachid>241630</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-11-14 15:12:17 -0800</bug_when>
    <thetext>Created attachment 241630
Adds test cases, and fixes the behavior of TaskAnalysisPatch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048885</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-14 15:14:47 -0800</bug_when>
    <thetext>Attachment 241630 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:237:  too many blank lines (2)  [pep8/E303] [5]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048886</commentid>
    <comment_count>3</comment_count>
      <attachid>241631</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-11-14 15:16:09 -0800</bug_when>
    <thetext>Created attachment 241631
Style fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048900</commentid>
    <comment_count>4</comment_count>
      <attachid>241631</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-11-14 15:41:49 -0800</bug_when>
    <thetext>Comment on attachment 241631
Style fix

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

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:241
&gt; +        if second_results.did_exceed_test_failure_limit() or first_results.did_exceed_test_failure_limit():
&gt; +            if not first_results.did_exceed_test_failure_limit():
&gt; +                self._should_defer_patch_or_throw(first_results.failing_test_results(), first_results_archive, first_script_error, first_failure_status_id)
&gt; +            else:
&gt; +                self._should_defer_patch_or_throw(second_results.failing_test_results(), second_results_archive, second_script_error, second_failure_status_id)
&gt; +            return False

I think that this condition is unnecessarily convoluted. Can you split it in two?
if first_results.did_exceed_test_failure_limit():
  ...
if second_results.did_exceed_test_failure_limit():
  ...

Also, it&apos;s confusing that _should_defer_patch_or_throw doesn&apos;t return a result (or do we ignore it?). It sounds like a function whose job is to return a boolean without an side effects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048916</commentid>
    <comment_count>5</comment_count>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-11-14 16:08:24 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 241631 [details]
&gt; Style fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=241631&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:241
&gt; &gt; +        if second_results.did_exceed_test_failure_limit() or first_results.did_exceed_test_failure_limit():
&gt; &gt; +            if not first_results.did_exceed_test_failure_limit():
&gt; &gt; +                self._should_defer_patch_or_throw(first_results.failing_test_results(), first_results_archive, first_script_error, first_failure_status_id)
&gt; &gt; +            else:
&gt; &gt; +                self._should_defer_patch_or_throw(second_results.failing_test_results(), second_results_archive, second_script_error, second_failure_status_id)
&gt; &gt; +            return False
&gt; 
&gt; I think that this condition is unnecessarily convoluted. Can you split it in
&gt; two?
&gt; if first_results.did_exceed_test_failure_limit():
&gt;   ...
&gt; if second_results.did_exceed_test_failure_limit():
&gt;   ...
&gt; 
&gt; Also, it&apos;s confusing that _should_defer_patch_or_throw doesn&apos;t return a
&gt; result (or do we ignore it?). It sounds like a function whose job is to
&gt; return a boolean without an side effects.

Good point, yeah this should be written in a way that&apos;s easier on the eyes and brain. I&apos;ll change it.
 
_should_defer_patch_or_throw is a strange one. It will either return True, for &quot;Yes, you should defer the patch&quot;, False for &quot;You shouldn&apos;t necessarily defer the patch&quot;, or it will throw if it knows that the patch should be rejected. In this case, there&apos;s enough information to know that if _should_defer_patch_or_throw doesn&apos;t throw, then we should always defer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048917</commentid>
    <comment_count>6</comment_count>
      <attachid>241638</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-11-14 16:13:07 -0800</bug_when>
    <thetext>Created attachment 241638
Fixes needless logical complexity</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048920</commentid>
    <comment_count>7</comment_count>
      <attachid>241638</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-11-14 16:15:42 -0800</bug_when>
    <thetext>Comment on attachment 241638
Fixes needless logical complexity

Hold up. I broke something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048923</commentid>
    <comment_count>8</comment_count>
      <attachid>241640</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-11-14 16:19:00 -0800</bug_when>
    <thetext>Created attachment 241640
Fixes logical error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048989</commentid>
    <comment_count>9</comment_count>
      <attachid>241640</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-11-14 22:26:12 -0800</bug_when>
    <thetext>Comment on attachment 241640
Fixes logical error

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

Something is wrong with this patch, I suspect that it applies in an unexpected way:

++_lots_of_failing_tests = map(lambda num: &quot;test-%s.html&quot; % num, range(0, 100))
++
++

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:225
&gt; +        if second_results.did_exceed_test_failure_limit() and first_results.did_exceed_test_failure_limit():

I&apos;d put first_results first, and second_results second.

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:236
&gt; +        if second_results.did_exceed_test_failure_limit() and not first_results.did_exceed_test_failure_limit():

Why do you need this &quot;and&quot;? The case where they both exceeded the limit was already handled.

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:240
&gt; +        if first_results.did_exceed_test_failure_limit() and not second_results.did_exceed_test_failure_limit():

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049221</commentid>
    <comment_count>10</comment_count>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-11-17 09:48:25 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Comment on attachment 241640 [details]
&gt; Fixes logical error
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=241640&amp;action=review
&gt; 
&gt; Something is wrong with this patch, I suspect that it applies in an
&gt; unexpected way:
This looks fine to me. _lots_of_failing_tests was added as a convenience variable to make it more concise to add test cases for which the failure has been exceeded.
&gt; 
&gt; ++_lots_of_failing_tests = map(lambda num: &quot;test-%s.html&quot; % num, range(0,
&gt; 100))
&gt; ++
&gt; ++
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:225
&gt; &gt; +        if second_results.did_exceed_test_failure_limit() and first_results.did_exceed_test_failure_limit():
&gt; 
&gt; I&apos;d put first_results first, and second_results second.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:236
&gt; &gt; +        if second_results.did_exceed_test_failure_limit() and not first_results.did_exceed_test_failure_limit():
&gt; 
&gt; Why do you need this &quot;and&quot;? The case where they both exceeded the limit was
&gt; already handled.
Touche
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:240
&gt; &gt; +        if first_results.did_exceed_test_failure_limit() and not second_results.did_exceed_test_failure_limit():
&gt; 
&gt; Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049222</commentid>
    <comment_count>11</comment_count>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-11-17 09:50:36 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; Comment on attachment 241640 [details]
&gt; &gt; Fixes logical error
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=241640&amp;action=review
&gt; &gt; 
&gt; &gt; Something is wrong with this patch, I suspect that it applies in an
&gt; &gt; unexpected way:
&gt; This looks fine to me. _lots_of_failing_tests was added as a convenience
&gt; variable to make it more concise to add test cases for which the failure has
&gt; been exceeded.
&gt; &gt; 
&gt; &gt; ++_lots_of_failing_tests = map(lambda num: &quot;test-%s.html&quot; % num, range(0,
&gt; &gt; 100))
&gt; &gt; ++
&gt; &gt; ++
&gt; &gt; 
&gt; &gt; &gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:225
&gt; &gt; &gt; +        if second_results.did_exceed_test_failure_limit() and first_results.did_exceed_test_failure_limit():
&gt; &gt; 
&gt; &gt; I&apos;d put first_results first, and second_results second.
&gt; &gt; 
&gt; &gt; &gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:236
&gt; &gt; &gt; +        if second_results.did_exceed_test_failure_limit() and not first_results.did_exceed_test_failure_limit():
&gt; &gt; 
&gt; &gt; Why do you need this &quot;and&quot;? The case where they both exceeded the limit was
&gt; &gt; already handled.
&gt; Touche
&gt; &gt; 
&gt; &gt; &gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:240
&gt; &gt; &gt; +        if first_results.did_exceed_test_failure_limit() and not second_results.did_exceed_test_failure_limit():
&gt; &gt; 
&gt; &gt; Ditto.
Oh, I see the issue here. I included the patch file in the patch. I&apos;ll fix that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049224</commentid>
    <comment_count>12</comment_count>
      <attachid>241720</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-11-17 09:53:48 -0800</bug_when>
    <thetext>Created attachment 241720
Removes the unnecessary not clauses, and removes the patch file from the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049236</commentid>
    <comment_count>13</comment_count>
      <attachid>241720</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-11-17 10:27:09 -0800</bug_when>
    <thetext>Comment on attachment 241720
Removes the unnecessary not clauses, and removes the patch file from the patch.

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

&gt; Tools/Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:162
&gt; +_lots_of_failing_tests = map(lambda num: &quot;test-%s.html&quot; % num, range(0, 100))

What is the failure limit for unit tests? For regular tests, it&apos;s 500 failures or 50 crashes/timeouts, and for EWS it&apos;s 30 failures.

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:237
&gt; +            self._should_defer_patch_or_throw(first_results.failing_test_results(), first_results_archive, first_script_error, first_failure_status_id)

This is still somewhat unreadable, and in need of refactoring. Which should be easier, now that we have test coverage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049254</commentid>
    <comment_count>14</comment_count>
      <attachid>241720</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-17 11:06:38 -0800</bug_when>
    <thetext>Comment on attachment 241720
Removes the unnecessary not clauses, and removes the patch file from the patch.

Clearing flags on attachment: 241720

Committed r176211: &lt;http://trac.webkit.org/changeset/176211&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049255</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-17 11:06:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049272</commentid>
    <comment_count>16</comment_count>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-11-17 12:12:44 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Comment on attachment 241720 [details]
&gt; Removes the unnecessary not clauses, and removes the patch file from the
&gt; patch.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=241720&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:162
&gt; &gt; +_lots_of_failing_tests = map(lambda num: &quot;test-%s.html&quot; % num, range(0, 100))
&gt; 
&gt; What is the failure limit for unit tests? For regular tests, it&apos;s 500
&gt; failures or 50 crashes/timeouts, and for EWS it&apos;s 30 failures.
For the unit tests it&apos;s 10, so I guess this could be 20 rather than 100. There was a prior test that used 100 tests generated this way to communicate that there were many failing tests, so I just kept it and made it global.
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:237
&gt; &gt; +            self._should_defer_patch_or_throw(first_results.failing_test_results(), first_results_archive, first_script_error, first_failure_status_id)
&gt; 
&gt; This is still somewhat unreadable, and in need of refactoring. Which should
&gt; be easier, now that we have test coverage.
I agree, I&apos;ll open a bug for it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241630</attachid>
            <date>2014-11-14 15:12:17 -0800</date>
            <delta_ts>2014-11-14 15:16:09 -0800</delta_ts>
            <desc>Adds test cases, and fixes the behavior of TaskAnalysisPatch</desc>
            <filename>0001-Having-30-flaky-failures-breaks-EWS.patch</filename>
            <type>text/plain</type>
            <size>11424</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSAxZjdlYjA0ZDAwNjI0YzZlZGUyMjUwZDExMGQ2NjY2YzUyMjFjMzVhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBGcmksIDE0IE5vdiAyMDE0IDE1OjExOjMwIC0wODAwClN1YmplY3Q6IFtQQVRDSF0g
SGF2aW5nIDMwKyBmbGFreSBmYWlsdXJlcyBicmVha3MgRVdTCiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NzQzCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
CkFkZHMgdGVzdHMgdG8gZW5zdXJlIHRoYXQgdGhlIHByb2JsZW0gaGFzIGJlZW4gc29sdmVkLgoq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5Ogoo
dGVzdF9maXJzdF9mYWlsdXJlX2xpbWl0KToKKHRlc3RfZmlyc3RfZmFpbHVyZV9saW1pdF93aXRo
X3NvbWVfdHJlZV9yZWRuZXNzKToKKHRlc3Rfc2Vjb25kX2ZhaWx1cmVfbGltaXQpOgoodGVzdF90
cmVlX2ZhaWx1cmVfbGltaXRfd2l0aF9wYXRjaF90aGF0X3BvdGVudGlhbGx5X2ZpeGVzX3NvbWVf
cmVkbmVzcyk6Cih0ZXN0X2ZpcnN0X2FuZF9zZWNvbmRfZmFpbHVyZV9saW1pdCk6Cih0ZXN0X2Zp
cnN0X2FuZF9jbGVhbl9mYWlsdXJlX2xpbWl0KToKKHRlc3RfZmlyc3Rfc2Vjb25kX2FuZF9jbGVh
bl9mYWlsdXJlX2xpbWl0KToKKHRlc3RfdmVyeV9yZWRfdHJlZV9yZXRyeSk6IERlbGV0ZWQuClJl
YWxseSB0aGlzIHdhcyByZW5hbWVkIHRvIHRlc3RfZmlyc3Rfc2Vjb25kX2FuZF9jbGVhbl9mYWls
dXJlX2xpbWl0LgoqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2su
cHk6Ck1ha2VzIHRoZSBhcHByb3ByaWF0ZSBjaGFuZ2VzIHRvIFBhdGNoQW5hbHlzaXNUYXNrIHRv
IG1ha2Ugc3VyZSB0aGF0CmV2ZW4gd2hlbiB0aGUgZmlyc3QgdGVzdCBydW4gaGl0cyB0aGUgZmFp
bHVyZSBsaW1pdCwgaXQgd2lsbCBzdGlsbCB0cnkKYSBzZWNvbmQgcnVuLgooUGF0Y2hBbmFseXNp
c1Rhc2suX3Jlc3VsdHNfZmFpbGVkX2RpZmZlcmVudF90ZXN0cyk6CihQYXRjaEFuYWx5c2lzVGFz
ay5fdGVzdF9wYXRjaCk6CihQYXRjaEFuYWx5c2lzVGFzay5fY29udGludWVfdGVzdGluZ19wYXRj
aF90aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jfc2Vjb25kX3RyeSk6IERl
bGV0ZWQuCi0tLQogVG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAyNiArKysrKysrKysKIC4uLi93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRh
c2tfdW5pdHRlc3QucHkgIHwgNjQgKysrKysrKysrKysrKysrKysrKystLQogLi4uL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkgfCAzNyArKysrKysrLS0tLS0t
CiAzIGZpbGVzIGNoYW5nZWQsIDEwNCBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTA5OWE2
Yy4uNTFiMjNiYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTExLTE0ICBKYWtlIE5pZWxzZW4gIDxqYWNvYl9u
aWVsc2VuQGFwcGxlLmNvbT4KKworICAgICAgICBIYXZpbmcgMzArIGZsYWt5IGZhaWx1cmVzIGJy
ZWFrcyBFV1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzODc0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZHMgdGVzdHMgdG8gZW5zdXJlIHRoYXQgdGhlIHByb2JsZW0gaGFzIGJlZW4gc29sdmVkLgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0
ZXN0LnB5OgorICAgICAgICAodGVzdF9maXJzdF9mYWlsdXJlX2xpbWl0KToKKyAgICAgICAgKHRl
c3RfZmlyc3RfZmFpbHVyZV9saW1pdF93aXRoX3NvbWVfdHJlZV9yZWRuZXNzKToKKyAgICAgICAg
KHRlc3Rfc2Vjb25kX2ZhaWx1cmVfbGltaXQpOgorICAgICAgICAodGVzdF90cmVlX2ZhaWx1cmVf
bGltaXRfd2l0aF9wYXRjaF90aGF0X3BvdGVudGlhbGx5X2ZpeGVzX3NvbWVfcmVkbmVzcyk6Cisg
ICAgICAgICh0ZXN0X2ZpcnN0X2FuZF9zZWNvbmRfZmFpbHVyZV9saW1pdCk6CisgICAgICAgICh0
ZXN0X2ZpcnN0X2FuZF9jbGVhbl9mYWlsdXJlX2xpbWl0KToKKyAgICAgICAgKHRlc3RfZmlyc3Rf
c2Vjb25kX2FuZF9jbGVhbl9mYWlsdXJlX2xpbWl0KToKKyAgICAgICAgKHRlc3RfdmVyeV9yZWRf
dHJlZV9yZXRyeSk6IERlbGV0ZWQuCisgICAgICAgIFJlYWxseSB0aGlzIHdhcyByZW5hbWVkIHRv
IHRlc3RfZmlyc3Rfc2Vjb25kX2FuZF9jbGVhbl9mYWlsdXJlX2xpbWl0LgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHk6CisgICAgICAgIE1h
a2VzIHRoZSBhcHByb3ByaWF0ZSBjaGFuZ2VzIHRvIFBhdGNoQW5hbHlzaXNUYXNrIHRvIG1ha2Ug
c3VyZSB0aGF0CisgICAgICAgIGV2ZW4gd2hlbiB0aGUgZmlyc3QgdGVzdCBydW4gaGl0cyB0aGUg
ZmFpbHVyZSBsaW1pdCwgaXQgd2lsbCBzdGlsbCB0cnkKKyAgICAgICAgYSBzZWNvbmQgcnVuLgor
ICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX3Jlc3VsdHNfZmFpbGVkX2RpZmZlcmVudF90ZXN0
cyk6CisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fdGVzdF9wYXRjaCk6CisgICAgICAgIChQ
YXRjaEFuYWx5c2lzVGFzay5fY29udGludWVfdGVzdGluZ19wYXRjaF90aGF0X2V4Y2VlZGVkX2Zh
aWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jfc2Vjb25kX3RyeSk6IERlbGV0ZWQuCisKIDIwMTQtMTEt
MTQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHNo
b3J0Y3V0IG1hY3JvcyB0byBNYWMgVGVzdEV4cGVjdGF0aW9ucwpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5w
eQppbmRleCAzMDJhNTM2Li45NzZkNWVmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weQpAQCAtMTU5
LDYgKzE1OSw5IEBAIGNsYXNzIEdvbGRlblNjcmlwdEVycm9yKFNjcmlwdEVycm9yKToKICAgICBw
YXNzCiAKIAorX2xvdHNfb2ZfZmFpbGluZ190ZXN0cyA9IG1hcChsYW1iZGEgbnVtOiAidGVzdC0l
cy5odG1sIiAlIG51bSwgcmFuZ2UoMCwgMTAwKSkKKworCiBjbGFzcyBDb21taXRRdWV1ZVRhc2tU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgX3J1bl9hbmRfZXhwZWN0X3BhdGNoX2Fu
YWx5c2lzX3Jlc3VsdChzZWxmLCBjb21taXRfcXVldWUsIGV4cGVjdGVkX2FuYWx5c2lzX3Jlc3Vs
dCwgZXhwZWN0ZWRfcmVwb3J0ZWRfZmxha3lfdGVzdHM9W10sIGV4cGVjdF9jbGVhbl90ZXN0c190
b19ydW49RmFsc2UsIGV4cGVjdGVkX2ZhaWx1cmVfc3RhdHVzX2lkPTApOgogICAgICAgICB0b29s
ID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQpAQCAtMzk4LDEyICs0MDEsNjMgQEAgY29t
bWFuZF9mYWlsZWQ6IGZhaWx1cmVfbWVzc2FnZT0nVW5hYmxlIHRvIGxhbmQgcGF0Y2gnIHNjcmlw
dF9lcnJvcj0nTU9DSyBsYW5kIGYKIAogICAgICAgICBzZWxmLl9ydW5fYW5kX2V4cGVjdF9wYXRj
aF9hbmFseXNpc19yZXN1bHQoY29tbWl0X3F1ZXVlLCBQYXRjaEFuYWx5c2lzUmVzdWx0LlBBU1Ms
IGV4cGVjdF9jbGVhbl90ZXN0c190b19ydW49VHJ1ZSkKIAotICAgIGRlZiB0ZXN0X3ZlcnlfcmVk
X3RyZWVfcmV0cnkoc2VsZik6Ci0gICAgICAgIGxvdHNfb2ZfZmFpbGluZ190ZXN0cyA9IG1hcChs
YW1iZGEgbnVtOiAidGVzdC0lcy5odG1sIiAlIG51bSwgcmFuZ2UoMCwgMTAwKSkKKyAgICBkZWYg
dGVzdF9maXJzdF9mYWlsdXJlX2xpbWl0KHNlbGYpOgorICAgICAgICBjb21taXRfcXVldWUgPSBN
b2NrU2ltcGxlVGVzdFBsYW5Db21taXRRdWV1ZSgKKyAgICAgICAgICAgIGZpcnN0X3Rlc3RfZmFp
bHVyZXM9X2xvdHNfb2ZfZmFpbGluZ190ZXN0cywKKyAgICAgICAgICAgIHNlY29uZF90ZXN0X2Zh
aWx1cmVzPVtdLAorICAgICAgICAgICAgY2xlYW5fdGVzdF9mYWlsdXJlcz1bXSkKKworICAgICAg
ICBzZWxmLl9ydW5fYW5kX2V4cGVjdF9wYXRjaF9hbmFseXNpc19yZXN1bHQoY29tbWl0X3F1ZXVl
LCBQYXRjaEFuYWx5c2lzUmVzdWx0LkRFRkVSLCBleHBlY3RfY2xlYW5fdGVzdHNfdG9fcnVuPVRy
dWUsIGV4cGVjdGVkX2ZhaWx1cmVfc3RhdHVzX2lkPTEpCisKKyAgICBkZWYgdGVzdF9maXJzdF9m
YWlsdXJlX2xpbWl0X3dpdGhfc29tZV90cmVlX3JlZG5lc3Moc2VsZik6CisgICAgICAgIGNvbW1p
dF9xdWV1ZSA9IE1vY2tTaW1wbGVUZXN0UGxhbkNvbW1pdFF1ZXVlKAorICAgICAgICAgICAgZmly
c3RfdGVzdF9mYWlsdXJlcz1fbG90c19vZl9mYWlsaW5nX3Rlc3RzLAorICAgICAgICAgICAgc2Vj
b25kX3Rlc3RfZmFpbHVyZXM9WyJGYWlsMSIsICJGYWlsMiIsICJGYWlsMyJdLAorICAgICAgICAg
ICAgY2xlYW5fdGVzdF9mYWlsdXJlcz1bIkZhaWwxIiwgIkZhaWwyIiwgIkZhaWwzIl0pCisKKyAg
ICAgICAgc2VsZi5fcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0KGNvbW1pdF9x
dWV1ZSwgUGF0Y2hBbmFseXNpc1Jlc3VsdC5ERUZFUiwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1
bj1UcnVlLCBleHBlY3RlZF9mYWlsdXJlX3N0YXR1c19pZD0xKQorCisgICAgZGVmIHRlc3Rfc2Vj
b25kX2ZhaWx1cmVfbGltaXQoc2VsZik6CisgICAgICAgICMgVGhlcmUgbmVlZCB0byBiZSBzb21l
IGZhaWx1cmVzIGluIHRoZSBmaXJzdCBzZXQgb2YgdGVzdHMsIG9yIGl0IHdvbid0IGV2ZW4gbWFr
ZSBpdCB0byB0aGUgc2Vjb25kIHRlc3QuCisgICAgICAgIGNvbW1pdF9xdWV1ZSA9IE1vY2tTaW1w
bGVUZXN0UGxhbkNvbW1pdFF1ZXVlKAorICAgICAgICAgICAgZmlyc3RfdGVzdF9mYWlsdXJlcz1b
IkZhaWwxIiwgIkZhaWwyIiwgIkZhaWwzIl0sCisgICAgICAgICAgICBzZWNvbmRfdGVzdF9mYWls
dXJlcz1fbG90c19vZl9mYWlsaW5nX3Rlc3RzLAorICAgICAgICAgICAgY2xlYW5fdGVzdF9mYWls
dXJlcz1bIkZhaWwxIiwgIkZhaWwyIiwgIkZhaWwzIl0pCisKKyAgICAgICAgc2VsZi5fcnVuX2Fu
ZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0KGNvbW1pdF9xdWV1ZSwgUGF0Y2hBbmFseXNp
c1Jlc3VsdC5ERUZFUiwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1UcnVlLCBleHBlY3RlZF9m
YWlsdXJlX3N0YXR1c19pZD0yKQorCisgICAgZGVmIHRlc3RfdHJlZV9mYWlsdXJlX2xpbWl0X3dp
dGhfcGF0Y2hfdGhhdF9wb3RlbnRpYWxseV9maXhlc19zb21lX3JlZG5lc3Moc2VsZik6CisgICAg
ICAgIGNvbW1pdF9xdWV1ZSA9IE1vY2tTaW1wbGVUZXN0UGxhbkNvbW1pdFF1ZXVlKAorICAgICAg
ICAgICAgZmlyc3RfdGVzdF9mYWlsdXJlcz1bIkZhaWwxIiwgIkZhaWwyIiwgIkZhaWwzIl0sCisg
ICAgICAgICAgICBzZWNvbmRfdGVzdF9mYWlsdXJlcz1bIkZhaWwxIiwgIkZhaWwyIiwgIkZhaWwz
Il0sCisgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdfdGVz
dHMpCisKKyAgICAgICAgIyBVbmZvcnR1bmF0ZWx5IHRoZXJlIGFyZSBjYXNlcyB3aGVyZSB0aGUg
Y2xlYW4gYnVpbGQgd2lsbCByYW5kb21seSBmYWlsIGVub3VnaCB0ZXN0cyB0byBoaXQgdGhlIGZh
aWx1cmUgbGltaXQuCisgICAgICAgICMgV2l0aCB0aGF0IGluIG1pbmQsIHdlIGNhbid0IGFjdHVh
bGx5IGtub3cgdGhhdCB0aGlzIHBhdGNoIGlzIGdvb2Qgb3IgYmFkIHVudGlsIHdlIHNlZSBhIGNs
ZWFuIHJ1biB0aGF0IGRvZXNuJ3QKKyAgICAgICAgIyBleGNlZWQgdGhlIGZhaWx1cmUgbGltaXQu
CisgICAgICAgIHNlbGYuX3J1bl9hbmRfZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3VsdChjb21t
aXRfcXVldWUsIFBhdGNoQW5hbHlzaXNSZXN1bHQuREVGRVIsIGV4cGVjdF9jbGVhbl90ZXN0c190
b19ydW49VHJ1ZSkKKworICAgIGRlZiB0ZXN0X2ZpcnN0X2FuZF9zZWNvbmRfZmFpbHVyZV9saW1p
dChzZWxmKToKKyAgICAgICAgY29tbWl0X3F1ZXVlID0gTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0
UXVldWUoCisgICAgICAgICAgICBmaXJzdF90ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdf
dGVzdHMsCisgICAgICAgICAgICBzZWNvbmRfdGVzdF9mYWlsdXJlcz1fbG90c19vZl9mYWlsaW5n
X3Rlc3RzLAorICAgICAgICAgICAgY2xlYW5fdGVzdF9mYWlsdXJlcz1bXSkKKworICAgICAgICBz
ZWxmLl9ydW5fYW5kX2V4cGVjdF9wYXRjaF9hbmFseXNpc19yZXN1bHQoY29tbWl0X3F1ZXVlLCBQ
YXRjaEFuYWx5c2lzUmVzdWx0LkZBSUwsIGV4cGVjdF9jbGVhbl90ZXN0c190b19ydW49VHJ1ZSwg
ZXhwZWN0ZWRfZmFpbHVyZV9zdGF0dXNfaWQ9MSkKKworICAgIGRlZiB0ZXN0X2ZpcnN0X2FuZF9j
bGVhbl9mYWlsdXJlX2xpbWl0KHNlbGYpOgorICAgICAgICBjb21taXRfcXVldWUgPSBNb2NrU2lt
cGxlVGVzdFBsYW5Db21taXRRdWV1ZSgKKyAgICAgICAgICAgIGZpcnN0X3Rlc3RfZmFpbHVyZXM9
X2xvdHNfb2ZfZmFpbGluZ190ZXN0cywKKyAgICAgICAgICAgIHNlY29uZF90ZXN0X2ZhaWx1cmVz
PVtdLAorICAgICAgICAgICAgY2xlYW5fdGVzdF9mYWlsdXJlcz1fbG90c19vZl9mYWlsaW5nX3Rl
c3RzKQorCisgICAgICAgIHNlbGYuX3J1bl9hbmRfZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3Vs
dChjb21taXRfcXVldWUsIFBhdGNoQW5hbHlzaXNSZXN1bHQuREVGRVIsIGV4cGVjdF9jbGVhbl90
ZXN0c190b19ydW49VHJ1ZSkKKworICAgIGRlZiB0ZXN0X2ZpcnN0X3NlY29uZF9hbmRfY2xlYW5f
ZmFpbHVyZV9saW1pdChzZWxmKToKICAgICAgICAgY29tbWl0X3F1ZXVlID0gTW9ja1NpbXBsZVRl
c3RQbGFuQ29tbWl0UXVldWUoCi0gICAgICAgICAgICBmaXJzdF90ZXN0X2ZhaWx1cmVzPWxvdHNf
b2ZfZmFpbGluZ190ZXN0cywKLSAgICAgICAgICAgIHNlY29uZF90ZXN0X2ZhaWx1cmVzPWxvdHNf
b2ZfZmFpbGluZ190ZXN0cywKLSAgICAgICAgICAgIGNsZWFuX3Rlc3RfZmFpbHVyZXM9bG90c19v
Zl9mYWlsaW5nX3Rlc3RzKQorICAgICAgICAgICAgZmlyc3RfdGVzdF9mYWlsdXJlcz1fbG90c19v
Zl9mYWlsaW5nX3Rlc3RzLAorICAgICAgICAgICAgc2Vjb25kX3Rlc3RfZmFpbHVyZXM9X2xvdHNf
b2ZfZmFpbGluZ190ZXN0cywKKyAgICAgICAgICAgIGNsZWFuX3Rlc3RfZmFpbHVyZXM9X2xvdHNf
b2ZfZmFpbGluZ190ZXN0cykKIAogICAgICAgICBzZWxmLl9ydW5fYW5kX2V4cGVjdF9wYXRjaF9h
bmFseXNpc19yZXN1bHQoY29tbWl0X3F1ZXVlLCBQYXRjaEFuYWx5c2lzUmVzdWx0LkRFRkVSLCBl
eHBlY3RfY2xlYW5fdGVzdHNfdG9fcnVuPVRydWUpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CmluZGV4IDZkYzA4M2YuLjkw
ODA1NTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hh
bmFseXNpc3Rhc2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRj
aGFuYWx5c2lzdGFzay5weQpAQCAtMTgyLDE4ICsxODIsNiBAQCBjbGFzcyBQYXRjaEFuYWx5c2lz
VGFzayhvYmplY3QpOgogICAgICAgICBzZWNvbmRfZmFpbGluZ190ZXN0cyA9IFtdIGlmIG5vdCBz
ZWNvbmQgZWxzZSBzZWNvbmQuZmFpbGluZ190ZXN0cygpCiAgICAgICAgIHJldHVybiBmaXJzdF9m
YWlsaW5nX3Rlc3RzICE9IHNlY29uZF9mYWlsaW5nX3Rlc3RzCiAKLSAgICBkZWYgX2NvbnRpbnVl
X3Rlc3RpbmdfcGF0Y2hfdGhhdF9leGNlZWRlZF9mYWlsdXJlX2xpbWl0X29uX2ZpcnN0X29yX3Nl
Y29uZF90cnkoc2VsZiwgcmVzdWx0cywgcmVzdWx0c19hcmNoaXZlLCBzY3JpcHRfZXJyb3IpOgot
ICAgICAgICBzZWxmLl9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKCkKLQotICAgICAgICAj
IElmIHdlJ3ZlIG1hZGUgaXQgaGVyZSwgdGhlbiBtYW55ICg1MDApIHRlc3RzIGFyZSBmYWlsaW5n
IHdpdGggdGhlIHBhdGNoIGFwcGxpZWQsIGJ1dAotICAgICAgICAjIGlmIHRoZSBjbGVhbiB0cmVl
IGlzIGFsc28gZmFpbGluZyBtYW55IHRlc3RzLCBldmVuIGlmIGl0J3Mgbm90IHF1aXRlIGFzIG1h
bnkgKDQ5NSksCi0gICAgICAgICMgdGhlbiB3ZSBjYW4ndCBiZSBjZXJ0YWluIHRoYXQgdGhlIGRp
c2NyZXBhbmN5IGlzbid0IGR1ZSB0byBmbGFraW5lc3MsIGFuZCBoZW5jZSB3ZSBtdXN0Ci0gICAg
ICAgICMgZGVmZXIganVkZ2VtZW50LgotICAgICAgICBpZiAobGVuKHJlc3VsdHMuZmFpbGluZ190
ZXN0cygpKSAtIGxlbihzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKS5mYWlsaW5nX3Rlc3Rz
KCkpKSA8PSA1OgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgcmV0dXJuIHNl
bGYucmVwb3J0X2ZhaWx1cmUocmVzdWx0c19hcmNoaXZlLCByZXN1bHRzLCBzY3JpcHRfZXJyb3Ip
Ci0KICAgICBkZWYgX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhzZWxmLCBmYWlsdXJlc193
aXRoX3BhdGNoLCByZXN1bHRzX2FyY2hpdmVfZm9yX2ZhaWx1cmVzX3dpdGhfcGF0Y2gsIHNjcmlw
dF9lcnJvciwgZmFpbHVyZV9pZCk6CiAgICAgICAgIHNlbGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhv
dXRfcGF0Y2goKQogICAgICAgICBjbGVhbl90cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50
ZXN0X3Jlc3VsdHMoKQpAQCAtMjIzLDEwICsyMTEsNyBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFz
ayhvYmplY3QpOgogICAgICAgICBmaXJzdF9zY3JpcHRfZXJyb3IgPSBzZWxmLl9zY3JpcHRfZXJy
b3IKICAgICAgICAgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVz
X2lkCiAKLSAgICAgICAgaWYgZmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9s
aW1pdCgpOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NvbnRpbnVlX3Rlc3RpbmdfcGF0Y2hf
dGhhdF9leGNlZWRlZF9mYWlsdXJlX2xpbWl0X29uX2ZpcnN0X29yX3NlY29uZF90cnkoZmlyc3Rf
cmVzdWx0cywgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IpCi0KLSAg
ICAgICAgaWYgc2VsZi5fdGVzdCgpOgorICAgICAgICBpZiBzZWxmLl90ZXN0KCkgYW5kIG5vdCBm
aXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6CiAgICAgICAgICAg
ICAjIE9ubHkgcmVwb3J0IGZsYWt5IHRlc3RzIGlmIHdlIHdlcmUgc3VjY2Vzc2Z1bCBhdCBwYXJz
aW5nIHJlc3VsdHMuanNvbiBhbmQgYXJjaGl2aW5nIHJlc3VsdHMuCiAgICAgICAgICAgICBpZiBm
aXJzdF9yZXN1bHRzIGFuZCBmaXJzdF9yZXN1bHRzX2FyY2hpdmU6CiAgICAgICAgICAgICAgICAg
c2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3Vs
dHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlKQpAQCAtMjM3LDggKzIyMiwyNCBAQCBjbGFzcyBQ
YXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICBzZWNvbmRfc2NyaXB0X2Vycm9yID0g
c2VsZi5fc2NyaXB0X2Vycm9yCiAgICAgICAgIHNlY29uZF9mYWlsdXJlX3N0YXR1c19pZCA9IHNl
bGYuZmFpbHVyZV9zdGF0dXNfaWQKIAotICAgICAgICBpZiBzZWNvbmRfcmVzdWx0cy5kaWRfZXhj
ZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NvbnRp
bnVlX3Rlc3RpbmdfcGF0Y2hfdGhhdF9leGNlZWRlZF9mYWlsdXJlX2xpbWl0X29uX2ZpcnN0X29y
X3NlY29uZF90cnkoc2Vjb25kX3Jlc3VsdHMsIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUsIHNlY29u
ZF9zY3JpcHRfZXJyb3IpCisgICAgICAgIGlmIHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVz
dF9mYWlsdXJlX2xpbWl0KCkgYW5kIGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1
cmVfbGltaXQoKToKKyAgICAgICAgICAgIHNlbGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0
Y2goKQorICAgICAgICAgICAgY2xlYW5fdHJlZV9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVz
dF9yZXN1bHRzKCkKKworICAgICAgICAgICAgaWYgKGxlbihmaXJzdF9yZXN1bHRzLmZhaWxpbmdf
dGVzdHMoKSkgLSBsZW4oY2xlYW5fdHJlZV9yZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkpIDw9IDU6
CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgICAgIHNlbGYuZmFpbHVy
ZV9zdGF0dXNfaWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAorCisgICAgICAgICAgICByZXR1
cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Jlc3Vs
dHMsIGZpcnN0X3NjcmlwdF9lcnJvcikKKworCisgICAgICAgIGlmIHNlY29uZF9yZXN1bHRzLmRp
ZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCkgb3IgZmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVk
X3Rlc3RfZmFpbHVyZV9saW1pdCgpOgorICAgICAgICAgICAgaWYgbm90IGZpcnN0X3Jlc3VsdHMu
ZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAgICAgICBzZWxmLl9z
aG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVz
dWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3Rf
ZmFpbHVyZV9zdGF0dXNfaWQpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNl
bGYuX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhzZWNvbmRfcmVzdWx0cy5mYWlsaW5nX3Rl
c3RfcmVzdWx0cygpLCBzZWNvbmRfcmVzdWx0c19hcmNoaXZlLCBzZWNvbmRfc2NyaXB0X2Vycm9y
LCBzZWNvbmRfZmFpbHVyZV9zdGF0dXNfaWQpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAog
ICAgICAgICBpZiBzZWxmLl9yZXN1bHRzX2ZhaWxlZF9kaWZmZXJlbnRfdGVzdHMoZmlyc3RfcmVz
dWx0cywgc2Vjb25kX3Jlc3VsdHMpOgogICAgICAgICAgICAgZmlyc3RfZmFpbGluZ19yZXN1bHRz
X3NldCA9IGZyb3plbnNldChmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCkpCi0t
IAoyLjEuMSAoQXBwbGUgR2l0LTUxKQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241631</attachid>
            <date>2014-11-14 15:16:09 -0800</date>
            <delta_ts>2014-11-14 16:13:07 -0800</delta_ts>
            <desc>Style fix</desc>
            <filename>0001-Having-30-flaky-failures-breaks-EWS.patch</filename>
            <type>text/plain</type>
            <size>11421</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSBlMmJjNzIzOTRlMDVkNjMyZjdiZjNjYzU3YjMxNjU4ZDdkNmJjYjRlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBGcmksIDE0IE5vdiAyMDE0IDE1OjE1OjUwIC0wODAwClN1YmplY3Q6IFtQQVRDSF0g
SGF2aW5nIDMwKyBmbGFreSBmYWlsdXJlcyBicmVha3MgRVdTCiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NzQzCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
CkFkZHMgdGVzdHMgdG8gZW5zdXJlIHRoYXQgdGhlIHByb2JsZW0gaGFzIGJlZW4gc29sdmVkLgoq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5Ogoo
dGVzdF9maXJzdF9mYWlsdXJlX2xpbWl0KToKKHRlc3RfZmlyc3RfZmFpbHVyZV9saW1pdF93aXRo
X3NvbWVfdHJlZV9yZWRuZXNzKToKKHRlc3Rfc2Vjb25kX2ZhaWx1cmVfbGltaXQpOgoodGVzdF90
cmVlX2ZhaWx1cmVfbGltaXRfd2l0aF9wYXRjaF90aGF0X3BvdGVudGlhbGx5X2ZpeGVzX3NvbWVf
cmVkbmVzcyk6Cih0ZXN0X2ZpcnN0X2FuZF9zZWNvbmRfZmFpbHVyZV9saW1pdCk6Cih0ZXN0X2Zp
cnN0X2FuZF9jbGVhbl9mYWlsdXJlX2xpbWl0KToKKHRlc3RfZmlyc3Rfc2Vjb25kX2FuZF9jbGVh
bl9mYWlsdXJlX2xpbWl0KToKKHRlc3RfdmVyeV9yZWRfdHJlZV9yZXRyeSk6IERlbGV0ZWQuClJl
YWxseSB0aGlzIHdhcyByZW5hbWVkIHRvIHRlc3RfZmlyc3Rfc2Vjb25kX2FuZF9jbGVhbl9mYWls
dXJlX2xpbWl0LgoqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2su
cHk6Ck1ha2VzIHRoZSBhcHByb3ByaWF0ZSBjaGFuZ2VzIHRvIFBhdGNoQW5hbHlzaXNUYXNrIHRv
IG1ha2Ugc3VyZSB0aGF0CmV2ZW4gd2hlbiB0aGUgZmlyc3QgdGVzdCBydW4gaGl0cyB0aGUgZmFp
bHVyZSBsaW1pdCwgaXQgd2lsbCBzdGlsbCB0cnkKYSBzZWNvbmQgcnVuLgooUGF0Y2hBbmFseXNp
c1Rhc2suX3Jlc3VsdHNfZmFpbGVkX2RpZmZlcmVudF90ZXN0cyk6CihQYXRjaEFuYWx5c2lzVGFz
ay5fdGVzdF9wYXRjaCk6CihQYXRjaEFuYWx5c2lzVGFzay5fY29udGludWVfdGVzdGluZ19wYXRj
aF90aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jfc2Vjb25kX3RyeSk6IERl
bGV0ZWQuCi0tLQogVG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAyNiArKysrKysrKysKIC4uLi93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRh
c2tfdW5pdHRlc3QucHkgIHwgNjQgKysrKysrKysrKysrKysrKysrKystLQogLi4uL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkgfCAzNiArKysrKystLS0tLS0K
IDMgZmlsZXMgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1MDk5YTZj
Li41MWIyM2JhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTQtMTEtMTQgIEpha2UgTmllbHNlbiAgPGphY29iX25p
ZWxzZW5AYXBwbGUuY29tPgorCisgICAgICAgIEhhdmluZyAzMCsgZmxha3kgZmFpbHVyZXMgYnJl
YWtzIEVXUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTM4NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkcyB0ZXN0cyB0byBlbnN1cmUgdGhhdCB0aGUgcHJvYmxlbSBoYXMgYmVlbiBzb2x2ZWQuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRl
c3QucHk6CisgICAgICAgICh0ZXN0X2ZpcnN0X2ZhaWx1cmVfbGltaXQpOgorICAgICAgICAodGVz
dF9maXJzdF9mYWlsdXJlX2xpbWl0X3dpdGhfc29tZV90cmVlX3JlZG5lc3MpOgorICAgICAgICAo
dGVzdF9zZWNvbmRfZmFpbHVyZV9saW1pdCk6CisgICAgICAgICh0ZXN0X3RyZWVfZmFpbHVyZV9s
aW1pdF93aXRoX3BhdGNoX3RoYXRfcG90ZW50aWFsbHlfZml4ZXNfc29tZV9yZWRuZXNzKToKKyAg
ICAgICAgKHRlc3RfZmlyc3RfYW5kX3NlY29uZF9mYWlsdXJlX2xpbWl0KToKKyAgICAgICAgKHRl
c3RfZmlyc3RfYW5kX2NsZWFuX2ZhaWx1cmVfbGltaXQpOgorICAgICAgICAodGVzdF9maXJzdF9z
ZWNvbmRfYW5kX2NsZWFuX2ZhaWx1cmVfbGltaXQpOgorICAgICAgICAodGVzdF92ZXJ5X3JlZF90
cmVlX3JldHJ5KTogRGVsZXRlZC4KKyAgICAgICAgUmVhbGx5IHRoaXMgd2FzIHJlbmFtZWQgdG8g
dGVzdF9maXJzdF9zZWNvbmRfYW5kX2NsZWFuX2ZhaWx1cmVfbGltaXQuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weToKKyAgICAgICAgTWFr
ZXMgdGhlIGFwcHJvcHJpYXRlIGNoYW5nZXMgdG8gUGF0Y2hBbmFseXNpc1Rhc2sgdG8gbWFrZSBz
dXJlIHRoYXQKKyAgICAgICAgZXZlbiB3aGVuIHRoZSBmaXJzdCB0ZXN0IHJ1biBoaXRzIHRoZSBm
YWlsdXJlIGxpbWl0LCBpdCB3aWxsIHN0aWxsIHRyeQorICAgICAgICBhIHNlY29uZCBydW4uCisg
ICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fcmVzdWx0c19mYWlsZWRfZGlmZmVyZW50X3Rlc3Rz
KToKKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl90ZXN0X3BhdGNoKToKKyAgICAgICAgKFBh
dGNoQW5hbHlzaXNUYXNrLl9jb250aW51ZV90ZXN0aW5nX3BhdGNoX3RoYXRfZXhjZWVkZWRfZmFp
bHVyZV9saW1pdF9vbl9maXJzdF9vcl9zZWNvbmRfdHJ5KTogRGVsZXRlZC4KKwogMjAxNC0xMS0x
NCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc2hv
cnRjdXQgbWFjcm9zIHRvIE1hYyBUZXN0RXhwZWN0YXRpb25zCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5
CmluZGV4IDMwMmE1MzYuLjk3NmQ1ZWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5CkBAIC0xNTks
NiArMTU5LDkgQEAgY2xhc3MgR29sZGVuU2NyaXB0RXJyb3IoU2NyaXB0RXJyb3IpOgogICAgIHBh
c3MKIAogCitfbG90c19vZl9mYWlsaW5nX3Rlc3RzID0gbWFwKGxhbWJkYSBudW06ICJ0ZXN0LSVz
Lmh0bWwiICUgbnVtLCByYW5nZSgwLCAxMDApKQorCisKIGNsYXNzIENvbW1pdFF1ZXVlVGFza1Rl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBfcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5h
bHlzaXNfcmVzdWx0KHNlbGYsIGNvbW1pdF9xdWV1ZSwgZXhwZWN0ZWRfYW5hbHlzaXNfcmVzdWx0
LCBleHBlY3RlZF9yZXBvcnRlZF9mbGFreV90ZXN0cz1bXSwgZXhwZWN0X2NsZWFuX3Rlc3RzX3Rv
X3J1bj1GYWxzZSwgZXhwZWN0ZWRfZmFpbHVyZV9zdGF0dXNfaWQ9MCk6CiAgICAgICAgIHRvb2wg
PSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCkBAIC0zOTgsMTIgKzQwMSw2MyBAQCBjb21t
YW5kX2ZhaWxlZDogZmFpbHVyZV9tZXNzYWdlPSdVbmFibGUgdG8gbGFuZCBwYXRjaCcgc2NyaXB0
X2Vycm9yPSdNT0NLIGxhbmQgZgogCiAgICAgICAgIHNlbGYuX3J1bl9hbmRfZXhwZWN0X3BhdGNo
X2FuYWx5c2lzX3Jlc3VsdChjb21taXRfcXVldWUsIFBhdGNoQW5hbHlzaXNSZXN1bHQuUEFTUywg
ZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1UcnVlKQogCi0gICAgZGVmIHRlc3RfdmVyeV9yZWRf
dHJlZV9yZXRyeShzZWxmKToKLSAgICAgICAgbG90c19vZl9mYWlsaW5nX3Rlc3RzID0gbWFwKGxh
bWJkYSBudW06ICJ0ZXN0LSVzLmh0bWwiICUgbnVtLCByYW5nZSgwLCAxMDApKQorICAgIGRlZiB0
ZXN0X2ZpcnN0X2ZhaWx1cmVfbGltaXQoc2VsZik6CisgICAgICAgIGNvbW1pdF9xdWV1ZSA9IE1v
Y2tTaW1wbGVUZXN0UGxhbkNvbW1pdFF1ZXVlKAorICAgICAgICAgICAgZmlyc3RfdGVzdF9mYWls
dXJlcz1fbG90c19vZl9mYWlsaW5nX3Rlc3RzLAorICAgICAgICAgICAgc2Vjb25kX3Rlc3RfZmFp
bHVyZXM9W10sCisgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPVtdKQorCisgICAgICAg
IHNlbGYuX3J1bl9hbmRfZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3VsdChjb21taXRfcXVldWUs
IFBhdGNoQW5hbHlzaXNSZXN1bHQuREVGRVIsIGV4cGVjdF9jbGVhbl90ZXN0c190b19ydW49VHJ1
ZSwgZXhwZWN0ZWRfZmFpbHVyZV9zdGF0dXNfaWQ9MSkKKworICAgIGRlZiB0ZXN0X2ZpcnN0X2Zh
aWx1cmVfbGltaXRfd2l0aF9zb21lX3RyZWVfcmVkbmVzcyhzZWxmKToKKyAgICAgICAgY29tbWl0
X3F1ZXVlID0gTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUoCisgICAgICAgICAgICBmaXJz
dF90ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdfdGVzdHMsCisgICAgICAgICAgICBzZWNv
bmRfdGVzdF9mYWlsdXJlcz1bIkZhaWwxIiwgIkZhaWwyIiwgIkZhaWwzIl0sCisgICAgICAgICAg
ICBjbGVhbl90ZXN0X2ZhaWx1cmVzPVsiRmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMiXSkKKworICAg
ICAgICBzZWxmLl9ydW5fYW5kX2V4cGVjdF9wYXRjaF9hbmFseXNpc19yZXN1bHQoY29tbWl0X3F1
ZXVlLCBQYXRjaEFuYWx5c2lzUmVzdWx0LkRFRkVSLCBleHBlY3RfY2xlYW5fdGVzdHNfdG9fcnVu
PVRydWUsIGV4cGVjdGVkX2ZhaWx1cmVfc3RhdHVzX2lkPTEpCisKKyAgICBkZWYgdGVzdF9zZWNv
bmRfZmFpbHVyZV9saW1pdChzZWxmKToKKyAgICAgICAgIyBUaGVyZSBuZWVkIHRvIGJlIHNvbWUg
ZmFpbHVyZXMgaW4gdGhlIGZpcnN0IHNldCBvZiB0ZXN0cywgb3IgaXQgd29uJ3QgZXZlbiBtYWtl
IGl0IHRvIHRoZSBzZWNvbmQgdGVzdC4KKyAgICAgICAgY29tbWl0X3F1ZXVlID0gTW9ja1NpbXBs
ZVRlc3RQbGFuQ29tbWl0UXVldWUoCisgICAgICAgICAgICBmaXJzdF90ZXN0X2ZhaWx1cmVzPVsi
RmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMiXSwKKyAgICAgICAgICAgIHNlY29uZF90ZXN0X2ZhaWx1
cmVzPV9sb3RzX29mX2ZhaWxpbmdfdGVzdHMsCisgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1
cmVzPVsiRmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMiXSkKKworICAgICAgICBzZWxmLl9ydW5fYW5k
X2V4cGVjdF9wYXRjaF9hbmFseXNpc19yZXN1bHQoY29tbWl0X3F1ZXVlLCBQYXRjaEFuYWx5c2lz
UmVzdWx0LkRFRkVSLCBleHBlY3RfY2xlYW5fdGVzdHNfdG9fcnVuPVRydWUsIGV4cGVjdGVkX2Zh
aWx1cmVfc3RhdHVzX2lkPTIpCisKKyAgICBkZWYgdGVzdF90cmVlX2ZhaWx1cmVfbGltaXRfd2l0
aF9wYXRjaF90aGF0X3BvdGVudGlhbGx5X2ZpeGVzX3NvbWVfcmVkbmVzcyhzZWxmKToKKyAgICAg
ICAgY29tbWl0X3F1ZXVlID0gTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUoCisgICAgICAg
ICAgICBmaXJzdF90ZXN0X2ZhaWx1cmVzPVsiRmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMiXSwKKyAg
ICAgICAgICAgIHNlY29uZF90ZXN0X2ZhaWx1cmVzPVsiRmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMi
XSwKKyAgICAgICAgICAgIGNsZWFuX3Rlc3RfZmFpbHVyZXM9X2xvdHNfb2ZfZmFpbGluZ190ZXN0
cykKKworICAgICAgICAjIFVuZm9ydHVuYXRlbHkgdGhlcmUgYXJlIGNhc2VzIHdoZXJlIHRoZSBj
bGVhbiBidWlsZCB3aWxsIHJhbmRvbWx5IGZhaWwgZW5vdWdoIHRlc3RzIHRvIGhpdCB0aGUgZmFp
bHVyZSBsaW1pdC4KKyAgICAgICAgIyBXaXRoIHRoYXQgaW4gbWluZCwgd2UgY2FuJ3QgYWN0dWFs
bHkga25vdyB0aGF0IHRoaXMgcGF0Y2ggaXMgZ29vZCBvciBiYWQgdW50aWwgd2Ugc2VlIGEgY2xl
YW4gcnVuIHRoYXQgZG9lc24ndAorICAgICAgICAjIGV4Y2VlZCB0aGUgZmFpbHVyZSBsaW1pdC4K
KyAgICAgICAgc2VsZi5fcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0KGNvbW1p
dF9xdWV1ZSwgUGF0Y2hBbmFseXNpc1Jlc3VsdC5ERUZFUiwgZXhwZWN0X2NsZWFuX3Rlc3RzX3Rv
X3J1bj1UcnVlKQorCisgICAgZGVmIHRlc3RfZmlyc3RfYW5kX3NlY29uZF9mYWlsdXJlX2xpbWl0
KHNlbGYpOgorICAgICAgICBjb21taXRfcXVldWUgPSBNb2NrU2ltcGxlVGVzdFBsYW5Db21taXRR
dWV1ZSgKKyAgICAgICAgICAgIGZpcnN0X3Rlc3RfZmFpbHVyZXM9X2xvdHNfb2ZfZmFpbGluZ190
ZXN0cywKKyAgICAgICAgICAgIHNlY29uZF90ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdf
dGVzdHMsCisgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPVtdKQorCisgICAgICAgIHNl
bGYuX3J1bl9hbmRfZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3VsdChjb21taXRfcXVldWUsIFBh
dGNoQW5hbHlzaXNSZXN1bHQuRkFJTCwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1UcnVlLCBl
eHBlY3RlZF9mYWlsdXJlX3N0YXR1c19pZD0xKQorCisgICAgZGVmIHRlc3RfZmlyc3RfYW5kX2Ns
ZWFuX2ZhaWx1cmVfbGltaXQoc2VsZik6CisgICAgICAgIGNvbW1pdF9xdWV1ZSA9IE1vY2tTaW1w
bGVUZXN0UGxhbkNvbW1pdFF1ZXVlKAorICAgICAgICAgICAgZmlyc3RfdGVzdF9mYWlsdXJlcz1f
bG90c19vZl9mYWlsaW5nX3Rlc3RzLAorICAgICAgICAgICAgc2Vjb25kX3Rlc3RfZmFpbHVyZXM9
W10sCisgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdfdGVz
dHMpCisKKyAgICAgICAgc2VsZi5fcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0
KGNvbW1pdF9xdWV1ZSwgUGF0Y2hBbmFseXNpc1Jlc3VsdC5ERUZFUiwgZXhwZWN0X2NsZWFuX3Rl
c3RzX3RvX3J1bj1UcnVlKQorCisgICAgZGVmIHRlc3RfZmlyc3Rfc2Vjb25kX2FuZF9jbGVhbl9m
YWlsdXJlX2xpbWl0KHNlbGYpOgogICAgICAgICBjb21taXRfcXVldWUgPSBNb2NrU2ltcGxlVGVz
dFBsYW5Db21taXRRdWV1ZSgKLSAgICAgICAgICAgIGZpcnN0X3Rlc3RfZmFpbHVyZXM9bG90c19v
Zl9mYWlsaW5nX3Rlc3RzLAotICAgICAgICAgICAgc2Vjb25kX3Rlc3RfZmFpbHVyZXM9bG90c19v
Zl9mYWlsaW5nX3Rlc3RzLAotICAgICAgICAgICAgY2xlYW5fdGVzdF9mYWlsdXJlcz1sb3RzX29m
X2ZhaWxpbmdfdGVzdHMpCisgICAgICAgICAgICBmaXJzdF90ZXN0X2ZhaWx1cmVzPV9sb3RzX29m
X2ZhaWxpbmdfdGVzdHMsCisgICAgICAgICAgICBzZWNvbmRfdGVzdF9mYWlsdXJlcz1fbG90c19v
Zl9mYWlsaW5nX3Rlc3RzLAorICAgICAgICAgICAgY2xlYW5fdGVzdF9mYWlsdXJlcz1fbG90c19v
Zl9mYWlsaW5nX3Rlc3RzKQogCiAgICAgICAgIHNlbGYuX3J1bl9hbmRfZXhwZWN0X3BhdGNoX2Fu
YWx5c2lzX3Jlc3VsdChjb21taXRfcXVldWUsIFBhdGNoQW5hbHlzaXNSZXN1bHQuREVGRVIsIGV4
cGVjdF9jbGVhbl90ZXN0c190b19ydW49VHJ1ZSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKaW5kZXggNmRjMDgzZi4uMzIw
ZGE4OCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFu
YWx5c2lzdGFzay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNo
YW5hbHlzaXN0YXNrLnB5CkBAIC0xODIsMTggKzE4Miw2IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNU
YXNrKG9iamVjdCk6CiAgICAgICAgIHNlY29uZF9mYWlsaW5nX3Rlc3RzID0gW10gaWYgbm90IHNl
Y29uZCBlbHNlIHNlY29uZC5mYWlsaW5nX3Rlc3RzKCkKICAgICAgICAgcmV0dXJuIGZpcnN0X2Zh
aWxpbmdfdGVzdHMgIT0gc2Vjb25kX2ZhaWxpbmdfdGVzdHMKIAotICAgIGRlZiBfY29udGludWVf
dGVzdGluZ19wYXRjaF90aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jfc2Vj
b25kX3RyeShzZWxmLCByZXN1bHRzLCByZXN1bHRzX2FyY2hpdmUsIHNjcmlwdF9lcnJvcik6Ci0g
ICAgICAgIHNlbGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goKQotCi0gICAgICAgICMg
SWYgd2UndmUgbWFkZSBpdCBoZXJlLCB0aGVuIG1hbnkgKDUwMCkgdGVzdHMgYXJlIGZhaWxpbmcg
d2l0aCB0aGUgcGF0Y2ggYXBwbGllZCwgYnV0Ci0gICAgICAgICMgaWYgdGhlIGNsZWFuIHRyZWUg
aXMgYWxzbyBmYWlsaW5nIG1hbnkgdGVzdHMsIGV2ZW4gaWYgaXQncyBub3QgcXVpdGUgYXMgbWFu
eSAoNDk1KSwKLSAgICAgICAgIyB0aGVuIHdlIGNhbid0IGJlIGNlcnRhaW4gdGhhdCB0aGUgZGlz
Y3JlcGFuY3kgaXNuJ3QgZHVlIHRvIGZsYWtpbmVzcywgYW5kIGhlbmNlIHdlIG11c3QKLSAgICAg
ICAgIyBkZWZlciBqdWRnZW1lbnQuCi0gICAgICAgIGlmIChsZW4ocmVzdWx0cy5mYWlsaW5nX3Rl
c3RzKCkpIC0gbGVuKHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpLmZhaWxpbmdfdGVzdHMo
KSkpIDw9IDU6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICByZXR1cm4gc2Vs
Zi5yZXBvcnRfZmFpbHVyZShyZXN1bHRzX2FyY2hpdmUsIHJlc3VsdHMsIHNjcmlwdF9lcnJvcikK
LQogICAgIGRlZiBfc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHNlbGYsIGZhaWx1cmVzX3dp
dGhfcGF0Y2gsIHJlc3VsdHNfYXJjaGl2ZV9mb3JfZmFpbHVyZXNfd2l0aF9wYXRjaCwgc2NyaXB0
X2Vycm9yLCBmYWlsdXJlX2lkKToKICAgICAgICAgc2VsZi5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91
dF9wYXRjaCgpCiAgICAgICAgIGNsZWFuX3RyZWVfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRl
c3RfcmVzdWx0cygpCkBAIC0yMjMsMTAgKzIxMSw3IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNr
KG9iamVjdCk6CiAgICAgICAgIGZpcnN0X3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJv
cgogICAgICAgICBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNf
aWQKIAotICAgICAgICBpZiBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xp
bWl0KCk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fY29udGludWVfdGVzdGluZ19wYXRjaF90
aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jfc2Vjb25kX3RyeShmaXJzdF9y
ZXN1bHRzLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvcikKLQotICAg
ICAgICBpZiBzZWxmLl90ZXN0KCk6CisgICAgICAgIGlmIHNlbGYuX3Rlc3QoKSBhbmQgbm90IGZp
cnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKICAgICAgICAgICAg
ICMgT25seSByZXBvcnQgZmxha3kgdGVzdHMgaWYgd2Ugd2VyZSBzdWNjZXNzZnVsIGF0IHBhcnNp
bmcgcmVzdWx0cy5qc29uIGFuZCBhcmNoaXZpbmcgcmVzdWx0cy4KICAgICAgICAgICAgIGlmIGZp
cnN0X3Jlc3VsdHMgYW5kIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZToKICAgICAgICAgICAgICAgICBz
ZWxmLl9yZXBvcnRfZmxha3lfdGVzdHMoZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0
cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUpCkBAIC0yMzcsOCArMjIyLDIzIEBAIGNsYXNzIFBh
dGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgIHNlY29uZF9zY3JpcHRfZXJyb3IgPSBz
ZWxmLl9zY3JpcHRfZXJyb3IKICAgICAgICAgc2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkID0gc2Vs
Zi5mYWlsdXJlX3N0YXR1c19pZAogCi0gICAgICAgIGlmIHNlY29uZF9yZXN1bHRzLmRpZF9leGNl
ZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fY29udGlu
dWVfdGVzdGluZ19wYXRjaF90aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jf
c2Vjb25kX3RyeShzZWNvbmRfcmVzdWx0cywgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSwgc2Vjb25k
X3NjcmlwdF9lcnJvcikKKyAgICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0
X2ZhaWx1cmVfbGltaXQoKSBhbmQgZmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVy
ZV9saW1pdCgpOgorICAgICAgICAgICAgc2VsZi5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRj
aCgpCisgICAgICAgICAgICBjbGVhbl90cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0
X3Jlc3VsdHMoKQorCisgICAgICAgICAgICBpZiAobGVuKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190
ZXN0cygpKSAtIGxlbihjbGVhbl90cmVlX3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKSkgPD0gNToK
KyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICAgICAgc2VsZi5mYWlsdXJl
X3N0YXR1c19pZCA9IGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lkCisKKyAgICAgICAgICAgIHJldHVy
biBzZWxmLnJlcG9ydF9mYWlsdXJlKGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3RfcmVzdWx0
cywgZmlyc3Rfc2NyaXB0X2Vycm9yKQorCisgICAgICAgIGlmIHNlY29uZF9yZXN1bHRzLmRpZF9l
eGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCkgb3IgZmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rl
c3RfZmFpbHVyZV9saW1pdCgpOgorICAgICAgICAgICAgaWYgbm90IGZpcnN0X3Jlc3VsdHMuZGlk
X2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAgICAgICBzZWxmLl9zaG91
bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0
cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFp
bHVyZV9zdGF0dXNfaWQpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYu
X3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhzZWNvbmRfcmVzdWx0cy5mYWlsaW5nX3Rlc3Rf
cmVzdWx0cygpLCBzZWNvbmRfcmVzdWx0c19hcmNoaXZlLCBzZWNvbmRfc2NyaXB0X2Vycm9yLCBz
ZWNvbmRfZmFpbHVyZV9zdGF0dXNfaWQpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKIAogICAg
ICAgICBpZiBzZWxmLl9yZXN1bHRzX2ZhaWxlZF9kaWZmZXJlbnRfdGVzdHMoZmlyc3RfcmVzdWx0
cywgc2Vjb25kX3Jlc3VsdHMpOgogICAgICAgICAgICAgZmlyc3RfZmFpbGluZ19yZXN1bHRzX3Nl
dCA9IGZyb3plbnNldChmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCkpCi0tIAoy
LjEuMSAoQXBwbGUgR2l0LTUxKQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241638</attachid>
            <date>2014-11-14 16:13:07 -0800</date>
            <delta_ts>2014-11-14 16:19:00 -0800</delta_ts>
            <desc>Fixes needless logical complexity</desc>
            <filename>0001-Having-30-flaky-failures-breaks-EWS.patch</filename>
            <type>text/plain</type>
            <size>11374</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSA1ZWI1NzZhN2UwMjY1N2EzZTczZjAwMjBlZjlmNzQ2OWY0OGM5OGM1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBGcmksIDE0IE5vdiAyMDE0IDE2OjEyOjEwIC0wODAwClN1YmplY3Q6IFtQQVRDSF0g
SGF2aW5nIDMwKyBmbGFreSBmYWlsdXJlcyBicmVha3MgRVdTCiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NzQzCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
CkFkZHMgdGVzdHMgdG8gZW5zdXJlIHRoYXQgdGhlIHByb2JsZW0gaGFzIGJlZW4gc29sdmVkLgoq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5Ogoo
dGVzdF9maXJzdF9mYWlsdXJlX2xpbWl0KToKKHRlc3RfZmlyc3RfZmFpbHVyZV9saW1pdF93aXRo
X3NvbWVfdHJlZV9yZWRuZXNzKToKKHRlc3Rfc2Vjb25kX2ZhaWx1cmVfbGltaXQpOgoodGVzdF90
cmVlX2ZhaWx1cmVfbGltaXRfd2l0aF9wYXRjaF90aGF0X3BvdGVudGlhbGx5X2ZpeGVzX3NvbWVf
cmVkbmVzcyk6Cih0ZXN0X2ZpcnN0X2FuZF9zZWNvbmRfZmFpbHVyZV9saW1pdCk6Cih0ZXN0X2Zp
cnN0X2FuZF9jbGVhbl9mYWlsdXJlX2xpbWl0KToKKHRlc3RfZmlyc3Rfc2Vjb25kX2FuZF9jbGVh
bl9mYWlsdXJlX2xpbWl0KToKKHRlc3RfdmVyeV9yZWRfdHJlZV9yZXRyeSk6IERlbGV0ZWQuClJl
YWxseSB0aGlzIHdhcyByZW5hbWVkIHRvIHRlc3RfZmlyc3Rfc2Vjb25kX2FuZF9jbGVhbl9mYWls
dXJlX2xpbWl0LgoqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2su
cHk6Ck1ha2VzIHRoZSBhcHByb3ByaWF0ZSBjaGFuZ2VzIHRvIFBhdGNoQW5hbHlzaXNUYXNrIHRv
IG1ha2Ugc3VyZSB0aGF0CmV2ZW4gd2hlbiB0aGUgZmlyc3QgdGVzdCBydW4gaGl0cyB0aGUgZmFp
bHVyZSBsaW1pdCwgaXQgd2lsbCBzdGlsbCB0cnkKYSBzZWNvbmQgcnVuLgooUGF0Y2hBbmFseXNp
c1Rhc2suX3Jlc3VsdHNfZmFpbGVkX2RpZmZlcmVudF90ZXN0cyk6CihQYXRjaEFuYWx5c2lzVGFz
ay5fdGVzdF9wYXRjaCk6CihQYXRjaEFuYWx5c2lzVGFzay5fY29udGludWVfdGVzdGluZ19wYXRj
aF90aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jfc2Vjb25kX3RyeSk6IERl
bGV0ZWQuCi0tLQogVG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAyNiArKysrKysrKysKIC4uLi93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRh
c2tfdW5pdHRlc3QucHkgIHwgNjQgKysrKysrKysrKysrKysrKysrKystLQogLi4uL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkgfCAzNyArKysrKysrLS0tLS0t
CiAzIGZpbGVzIGNoYW5nZWQsIDEwNCBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTA5OWE2
Yy4uNTFiMjNiYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTExLTE0ICBKYWtlIE5pZWxzZW4gIDxqYWNvYl9u
aWVsc2VuQGFwcGxlLmNvbT4KKworICAgICAgICBIYXZpbmcgMzArIGZsYWt5IGZhaWx1cmVzIGJy
ZWFrcyBFV1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzODc0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZHMgdGVzdHMgdG8gZW5zdXJlIHRoYXQgdGhlIHByb2JsZW0gaGFzIGJlZW4gc29sdmVkLgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0
ZXN0LnB5OgorICAgICAgICAodGVzdF9maXJzdF9mYWlsdXJlX2xpbWl0KToKKyAgICAgICAgKHRl
c3RfZmlyc3RfZmFpbHVyZV9saW1pdF93aXRoX3NvbWVfdHJlZV9yZWRuZXNzKToKKyAgICAgICAg
KHRlc3Rfc2Vjb25kX2ZhaWx1cmVfbGltaXQpOgorICAgICAgICAodGVzdF90cmVlX2ZhaWx1cmVf
bGltaXRfd2l0aF9wYXRjaF90aGF0X3BvdGVudGlhbGx5X2ZpeGVzX3NvbWVfcmVkbmVzcyk6Cisg
ICAgICAgICh0ZXN0X2ZpcnN0X2FuZF9zZWNvbmRfZmFpbHVyZV9saW1pdCk6CisgICAgICAgICh0
ZXN0X2ZpcnN0X2FuZF9jbGVhbl9mYWlsdXJlX2xpbWl0KToKKyAgICAgICAgKHRlc3RfZmlyc3Rf
c2Vjb25kX2FuZF9jbGVhbl9mYWlsdXJlX2xpbWl0KToKKyAgICAgICAgKHRlc3RfdmVyeV9yZWRf
dHJlZV9yZXRyeSk6IERlbGV0ZWQuCisgICAgICAgIFJlYWxseSB0aGlzIHdhcyByZW5hbWVkIHRv
IHRlc3RfZmlyc3Rfc2Vjb25kX2FuZF9jbGVhbl9mYWlsdXJlX2xpbWl0LgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHk6CisgICAgICAgIE1h
a2VzIHRoZSBhcHByb3ByaWF0ZSBjaGFuZ2VzIHRvIFBhdGNoQW5hbHlzaXNUYXNrIHRvIG1ha2Ug
c3VyZSB0aGF0CisgICAgICAgIGV2ZW4gd2hlbiB0aGUgZmlyc3QgdGVzdCBydW4gaGl0cyB0aGUg
ZmFpbHVyZSBsaW1pdCwgaXQgd2lsbCBzdGlsbCB0cnkKKyAgICAgICAgYSBzZWNvbmQgcnVuLgor
ICAgICAgICAoUGF0Y2hBbmFseXNpc1Rhc2suX3Jlc3VsdHNfZmFpbGVkX2RpZmZlcmVudF90ZXN0
cyk6CisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fdGVzdF9wYXRjaCk6CisgICAgICAgIChQ
YXRjaEFuYWx5c2lzVGFzay5fY29udGludWVfdGVzdGluZ19wYXRjaF90aGF0X2V4Y2VlZGVkX2Zh
aWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jfc2Vjb25kX3RyeSk6IERlbGV0ZWQuCisKIDIwMTQtMTEt
MTQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHNo
b3J0Y3V0IG1hY3JvcyB0byBNYWMgVGVzdEV4cGVjdGF0aW9ucwpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5w
eQppbmRleCAzMDJhNTM2Li45NzZkNWVmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weQpAQCAtMTU5
LDYgKzE1OSw5IEBAIGNsYXNzIEdvbGRlblNjcmlwdEVycm9yKFNjcmlwdEVycm9yKToKICAgICBw
YXNzCiAKIAorX2xvdHNfb2ZfZmFpbGluZ190ZXN0cyA9IG1hcChsYW1iZGEgbnVtOiAidGVzdC0l
cy5odG1sIiAlIG51bSwgcmFuZ2UoMCwgMTAwKSkKKworCiBjbGFzcyBDb21taXRRdWV1ZVRhc2tU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgX3J1bl9hbmRfZXhwZWN0X3BhdGNoX2Fu
YWx5c2lzX3Jlc3VsdChzZWxmLCBjb21taXRfcXVldWUsIGV4cGVjdGVkX2FuYWx5c2lzX3Jlc3Vs
dCwgZXhwZWN0ZWRfcmVwb3J0ZWRfZmxha3lfdGVzdHM9W10sIGV4cGVjdF9jbGVhbl90ZXN0c190
b19ydW49RmFsc2UsIGV4cGVjdGVkX2ZhaWx1cmVfc3RhdHVzX2lkPTApOgogICAgICAgICB0b29s
ID0gTW9ja1Rvb2wobG9nX2V4ZWN1dGl2ZT1UcnVlKQpAQCAtMzk4LDEyICs0MDEsNjMgQEAgY29t
bWFuZF9mYWlsZWQ6IGZhaWx1cmVfbWVzc2FnZT0nVW5hYmxlIHRvIGxhbmQgcGF0Y2gnIHNjcmlw
dF9lcnJvcj0nTU9DSyBsYW5kIGYKIAogICAgICAgICBzZWxmLl9ydW5fYW5kX2V4cGVjdF9wYXRj
aF9hbmFseXNpc19yZXN1bHQoY29tbWl0X3F1ZXVlLCBQYXRjaEFuYWx5c2lzUmVzdWx0LlBBU1Ms
IGV4cGVjdF9jbGVhbl90ZXN0c190b19ydW49VHJ1ZSkKIAotICAgIGRlZiB0ZXN0X3ZlcnlfcmVk
X3RyZWVfcmV0cnkoc2VsZik6Ci0gICAgICAgIGxvdHNfb2ZfZmFpbGluZ190ZXN0cyA9IG1hcChs
YW1iZGEgbnVtOiAidGVzdC0lcy5odG1sIiAlIG51bSwgcmFuZ2UoMCwgMTAwKSkKKyAgICBkZWYg
dGVzdF9maXJzdF9mYWlsdXJlX2xpbWl0KHNlbGYpOgorICAgICAgICBjb21taXRfcXVldWUgPSBN
b2NrU2ltcGxlVGVzdFBsYW5Db21taXRRdWV1ZSgKKyAgICAgICAgICAgIGZpcnN0X3Rlc3RfZmFp
bHVyZXM9X2xvdHNfb2ZfZmFpbGluZ190ZXN0cywKKyAgICAgICAgICAgIHNlY29uZF90ZXN0X2Zh
aWx1cmVzPVtdLAorICAgICAgICAgICAgY2xlYW5fdGVzdF9mYWlsdXJlcz1bXSkKKworICAgICAg
ICBzZWxmLl9ydW5fYW5kX2V4cGVjdF9wYXRjaF9hbmFseXNpc19yZXN1bHQoY29tbWl0X3F1ZXVl
LCBQYXRjaEFuYWx5c2lzUmVzdWx0LkRFRkVSLCBleHBlY3RfY2xlYW5fdGVzdHNfdG9fcnVuPVRy
dWUsIGV4cGVjdGVkX2ZhaWx1cmVfc3RhdHVzX2lkPTEpCisKKyAgICBkZWYgdGVzdF9maXJzdF9m
YWlsdXJlX2xpbWl0X3dpdGhfc29tZV90cmVlX3JlZG5lc3Moc2VsZik6CisgICAgICAgIGNvbW1p
dF9xdWV1ZSA9IE1vY2tTaW1wbGVUZXN0UGxhbkNvbW1pdFF1ZXVlKAorICAgICAgICAgICAgZmly
c3RfdGVzdF9mYWlsdXJlcz1fbG90c19vZl9mYWlsaW5nX3Rlc3RzLAorICAgICAgICAgICAgc2Vj
b25kX3Rlc3RfZmFpbHVyZXM9WyJGYWlsMSIsICJGYWlsMiIsICJGYWlsMyJdLAorICAgICAgICAg
ICAgY2xlYW5fdGVzdF9mYWlsdXJlcz1bIkZhaWwxIiwgIkZhaWwyIiwgIkZhaWwzIl0pCisKKyAg
ICAgICAgc2VsZi5fcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0KGNvbW1pdF9x
dWV1ZSwgUGF0Y2hBbmFseXNpc1Jlc3VsdC5ERUZFUiwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1
bj1UcnVlLCBleHBlY3RlZF9mYWlsdXJlX3N0YXR1c19pZD0xKQorCisgICAgZGVmIHRlc3Rfc2Vj
b25kX2ZhaWx1cmVfbGltaXQoc2VsZik6CisgICAgICAgICMgVGhlcmUgbmVlZCB0byBiZSBzb21l
IGZhaWx1cmVzIGluIHRoZSBmaXJzdCBzZXQgb2YgdGVzdHMsIG9yIGl0IHdvbid0IGV2ZW4gbWFr
ZSBpdCB0byB0aGUgc2Vjb25kIHRlc3QuCisgICAgICAgIGNvbW1pdF9xdWV1ZSA9IE1vY2tTaW1w
bGVUZXN0UGxhbkNvbW1pdFF1ZXVlKAorICAgICAgICAgICAgZmlyc3RfdGVzdF9mYWlsdXJlcz1b
IkZhaWwxIiwgIkZhaWwyIiwgIkZhaWwzIl0sCisgICAgICAgICAgICBzZWNvbmRfdGVzdF9mYWls
dXJlcz1fbG90c19vZl9mYWlsaW5nX3Rlc3RzLAorICAgICAgICAgICAgY2xlYW5fdGVzdF9mYWls
dXJlcz1bIkZhaWwxIiwgIkZhaWwyIiwgIkZhaWwzIl0pCisKKyAgICAgICAgc2VsZi5fcnVuX2Fu
ZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0KGNvbW1pdF9xdWV1ZSwgUGF0Y2hBbmFseXNp
c1Jlc3VsdC5ERUZFUiwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1UcnVlLCBleHBlY3RlZF9m
YWlsdXJlX3N0YXR1c19pZD0yKQorCisgICAgZGVmIHRlc3RfdHJlZV9mYWlsdXJlX2xpbWl0X3dp
dGhfcGF0Y2hfdGhhdF9wb3RlbnRpYWxseV9maXhlc19zb21lX3JlZG5lc3Moc2VsZik6CisgICAg
ICAgIGNvbW1pdF9xdWV1ZSA9IE1vY2tTaW1wbGVUZXN0UGxhbkNvbW1pdFF1ZXVlKAorICAgICAg
ICAgICAgZmlyc3RfdGVzdF9mYWlsdXJlcz1bIkZhaWwxIiwgIkZhaWwyIiwgIkZhaWwzIl0sCisg
ICAgICAgICAgICBzZWNvbmRfdGVzdF9mYWlsdXJlcz1bIkZhaWwxIiwgIkZhaWwyIiwgIkZhaWwz
Il0sCisgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdfdGVz
dHMpCisKKyAgICAgICAgIyBVbmZvcnR1bmF0ZWx5IHRoZXJlIGFyZSBjYXNlcyB3aGVyZSB0aGUg
Y2xlYW4gYnVpbGQgd2lsbCByYW5kb21seSBmYWlsIGVub3VnaCB0ZXN0cyB0byBoaXQgdGhlIGZh
aWx1cmUgbGltaXQuCisgICAgICAgICMgV2l0aCB0aGF0IGluIG1pbmQsIHdlIGNhbid0IGFjdHVh
bGx5IGtub3cgdGhhdCB0aGlzIHBhdGNoIGlzIGdvb2Qgb3IgYmFkIHVudGlsIHdlIHNlZSBhIGNs
ZWFuIHJ1biB0aGF0IGRvZXNuJ3QKKyAgICAgICAgIyBleGNlZWQgdGhlIGZhaWx1cmUgbGltaXQu
CisgICAgICAgIHNlbGYuX3J1bl9hbmRfZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3VsdChjb21t
aXRfcXVldWUsIFBhdGNoQW5hbHlzaXNSZXN1bHQuREVGRVIsIGV4cGVjdF9jbGVhbl90ZXN0c190
b19ydW49VHJ1ZSkKKworICAgIGRlZiB0ZXN0X2ZpcnN0X2FuZF9zZWNvbmRfZmFpbHVyZV9saW1p
dChzZWxmKToKKyAgICAgICAgY29tbWl0X3F1ZXVlID0gTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0
UXVldWUoCisgICAgICAgICAgICBmaXJzdF90ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdf
dGVzdHMsCisgICAgICAgICAgICBzZWNvbmRfdGVzdF9mYWlsdXJlcz1fbG90c19vZl9mYWlsaW5n
X3Rlc3RzLAorICAgICAgICAgICAgY2xlYW5fdGVzdF9mYWlsdXJlcz1bXSkKKworICAgICAgICBz
ZWxmLl9ydW5fYW5kX2V4cGVjdF9wYXRjaF9hbmFseXNpc19yZXN1bHQoY29tbWl0X3F1ZXVlLCBQ
YXRjaEFuYWx5c2lzUmVzdWx0LkZBSUwsIGV4cGVjdF9jbGVhbl90ZXN0c190b19ydW49VHJ1ZSwg
ZXhwZWN0ZWRfZmFpbHVyZV9zdGF0dXNfaWQ9MSkKKworICAgIGRlZiB0ZXN0X2ZpcnN0X2FuZF9j
bGVhbl9mYWlsdXJlX2xpbWl0KHNlbGYpOgorICAgICAgICBjb21taXRfcXVldWUgPSBNb2NrU2lt
cGxlVGVzdFBsYW5Db21taXRRdWV1ZSgKKyAgICAgICAgICAgIGZpcnN0X3Rlc3RfZmFpbHVyZXM9
X2xvdHNfb2ZfZmFpbGluZ190ZXN0cywKKyAgICAgICAgICAgIHNlY29uZF90ZXN0X2ZhaWx1cmVz
PVtdLAorICAgICAgICAgICAgY2xlYW5fdGVzdF9mYWlsdXJlcz1fbG90c19vZl9mYWlsaW5nX3Rl
c3RzKQorCisgICAgICAgIHNlbGYuX3J1bl9hbmRfZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3Vs
dChjb21taXRfcXVldWUsIFBhdGNoQW5hbHlzaXNSZXN1bHQuREVGRVIsIGV4cGVjdF9jbGVhbl90
ZXN0c190b19ydW49VHJ1ZSkKKworICAgIGRlZiB0ZXN0X2ZpcnN0X3NlY29uZF9hbmRfY2xlYW5f
ZmFpbHVyZV9saW1pdChzZWxmKToKICAgICAgICAgY29tbWl0X3F1ZXVlID0gTW9ja1NpbXBsZVRl
c3RQbGFuQ29tbWl0UXVldWUoCi0gICAgICAgICAgICBmaXJzdF90ZXN0X2ZhaWx1cmVzPWxvdHNf
b2ZfZmFpbGluZ190ZXN0cywKLSAgICAgICAgICAgIHNlY29uZF90ZXN0X2ZhaWx1cmVzPWxvdHNf
b2ZfZmFpbGluZ190ZXN0cywKLSAgICAgICAgICAgIGNsZWFuX3Rlc3RfZmFpbHVyZXM9bG90c19v
Zl9mYWlsaW5nX3Rlc3RzKQorICAgICAgICAgICAgZmlyc3RfdGVzdF9mYWlsdXJlcz1fbG90c19v
Zl9mYWlsaW5nX3Rlc3RzLAorICAgICAgICAgICAgc2Vjb25kX3Rlc3RfZmFpbHVyZXM9X2xvdHNf
b2ZfZmFpbGluZ190ZXN0cywKKyAgICAgICAgICAgIGNsZWFuX3Rlc3RfZmFpbHVyZXM9X2xvdHNf
b2ZfZmFpbGluZ190ZXN0cykKIAogICAgICAgICBzZWxmLl9ydW5fYW5kX2V4cGVjdF9wYXRjaF9h
bmFseXNpc19yZXN1bHQoY29tbWl0X3F1ZXVlLCBQYXRjaEFuYWx5c2lzUmVzdWx0LkRFRkVSLCBl
eHBlY3RfY2xlYW5fdGVzdHNfdG9fcnVuPVRydWUpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CmluZGV4IDZkYzA4M2YuLmJj
M2M2YjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hh
bmFseXNpc3Rhc2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRj
aGFuYWx5c2lzdGFzay5weQpAQCAtMTgyLDE4ICsxODIsNiBAQCBjbGFzcyBQYXRjaEFuYWx5c2lz
VGFzayhvYmplY3QpOgogICAgICAgICBzZWNvbmRfZmFpbGluZ190ZXN0cyA9IFtdIGlmIG5vdCBz
ZWNvbmQgZWxzZSBzZWNvbmQuZmFpbGluZ190ZXN0cygpCiAgICAgICAgIHJldHVybiBmaXJzdF9m
YWlsaW5nX3Rlc3RzICE9IHNlY29uZF9mYWlsaW5nX3Rlc3RzCiAKLSAgICBkZWYgX2NvbnRpbnVl
X3Rlc3RpbmdfcGF0Y2hfdGhhdF9leGNlZWRlZF9mYWlsdXJlX2xpbWl0X29uX2ZpcnN0X29yX3Nl
Y29uZF90cnkoc2VsZiwgcmVzdWx0cywgcmVzdWx0c19hcmNoaXZlLCBzY3JpcHRfZXJyb3IpOgot
ICAgICAgICBzZWxmLl9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKCkKLQotICAgICAgICAj
IElmIHdlJ3ZlIG1hZGUgaXQgaGVyZSwgdGhlbiBtYW55ICg1MDApIHRlc3RzIGFyZSBmYWlsaW5n
IHdpdGggdGhlIHBhdGNoIGFwcGxpZWQsIGJ1dAotICAgICAgICAjIGlmIHRoZSBjbGVhbiB0cmVl
IGlzIGFsc28gZmFpbGluZyBtYW55IHRlc3RzLCBldmVuIGlmIGl0J3Mgbm90IHF1aXRlIGFzIG1h
bnkgKDQ5NSksCi0gICAgICAgICMgdGhlbiB3ZSBjYW4ndCBiZSBjZXJ0YWluIHRoYXQgdGhlIGRp
c2NyZXBhbmN5IGlzbid0IGR1ZSB0byBmbGFraW5lc3MsIGFuZCBoZW5jZSB3ZSBtdXN0Ci0gICAg
ICAgICMgZGVmZXIganVkZ2VtZW50LgotICAgICAgICBpZiAobGVuKHJlc3VsdHMuZmFpbGluZ190
ZXN0cygpKSAtIGxlbihzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKS5mYWlsaW5nX3Rlc3Rz
KCkpKSA8PSA1OgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgcmV0dXJuIHNl
bGYucmVwb3J0X2ZhaWx1cmUocmVzdWx0c19hcmNoaXZlLCByZXN1bHRzLCBzY3JpcHRfZXJyb3Ip
Ci0KICAgICBkZWYgX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhzZWxmLCBmYWlsdXJlc193
aXRoX3BhdGNoLCByZXN1bHRzX2FyY2hpdmVfZm9yX2ZhaWx1cmVzX3dpdGhfcGF0Y2gsIHNjcmlw
dF9lcnJvciwgZmFpbHVyZV9pZCk6CiAgICAgICAgIHNlbGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhv
dXRfcGF0Y2goKQogICAgICAgICBjbGVhbl90cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50
ZXN0X3Jlc3VsdHMoKQpAQCAtMjIzLDEwICsyMTEsNyBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFz
ayhvYmplY3QpOgogICAgICAgICBmaXJzdF9zY3JpcHRfZXJyb3IgPSBzZWxmLl9zY3JpcHRfZXJy
b3IKICAgICAgICAgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQgPSBzZWxmLmZhaWx1cmVfc3RhdHVz
X2lkCiAKLSAgICAgICAgaWYgZmlyc3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9s
aW1pdCgpOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NvbnRpbnVlX3Rlc3RpbmdfcGF0Y2hf
dGhhdF9leGNlZWRlZF9mYWlsdXJlX2xpbWl0X29uX2ZpcnN0X29yX3NlY29uZF90cnkoZmlyc3Rf
cmVzdWx0cywgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IpCi0KLSAg
ICAgICAgaWYgc2VsZi5fdGVzdCgpOgorICAgICAgICBpZiBzZWxmLl90ZXN0KCkgYW5kIG5vdCBm
aXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6CiAgICAgICAgICAg
ICAjIE9ubHkgcmVwb3J0IGZsYWt5IHRlc3RzIGlmIHdlIHdlcmUgc3VjY2Vzc2Z1bCBhdCBwYXJz
aW5nIHJlc3VsdHMuanNvbiBhbmQgYXJjaGl2aW5nIHJlc3VsdHMuCiAgICAgICAgICAgICBpZiBm
aXJzdF9yZXN1bHRzIGFuZCBmaXJzdF9yZXN1bHRzX2FyY2hpdmU6CiAgICAgICAgICAgICAgICAg
c2VsZi5fcmVwb3J0X2ZsYWt5X3Rlc3RzKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3Vs
dHMoKSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlKQpAQCAtMjM3LDggKzIyMiwyNCBAQCBjbGFzcyBQ
YXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICBzZWNvbmRfc2NyaXB0X2Vycm9yID0g
c2VsZi5fc2NyaXB0X2Vycm9yCiAgICAgICAgIHNlY29uZF9mYWlsdXJlX3N0YXR1c19pZCA9IHNl
bGYuZmFpbHVyZV9zdGF0dXNfaWQKIAotICAgICAgICBpZiBzZWNvbmRfcmVzdWx0cy5kaWRfZXhj
ZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NvbnRp
bnVlX3Rlc3RpbmdfcGF0Y2hfdGhhdF9leGNlZWRlZF9mYWlsdXJlX2xpbWl0X29uX2ZpcnN0X29y
X3NlY29uZF90cnkoc2Vjb25kX3Jlc3VsdHMsIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUsIHNlY29u
ZF9zY3JpcHRfZXJyb3IpCisgICAgICAgIGlmIHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVz
dF9mYWlsdXJlX2xpbWl0KCkgYW5kIGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1
cmVfbGltaXQoKToKKyAgICAgICAgICAgIHNlbGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0
Y2goKQorICAgICAgICAgICAgY2xlYW5fdHJlZV9yZXN1bHRzID0gc2VsZi5fZGVsZWdhdGUudGVz
dF9yZXN1bHRzKCkKKworICAgICAgICAgICAgaWYgKGxlbihmaXJzdF9yZXN1bHRzLmZhaWxpbmdf
dGVzdHMoKSkgLSBsZW4oY2xlYW5fdHJlZV9yZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkpIDw9IDU6
CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgICAgIHNlbGYuZmFpbHVy
ZV9zdGF0dXNfaWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAorCisgICAgICAgICAgICByZXR1
cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Jlc3Vs
dHMsIGZpcnN0X3NjcmlwdF9lcnJvcikKKworICAgICAgICBpZiBub3QgZmlyc3RfcmVzdWx0cy5k
aWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgorICAgICAgICAgICAgc2VsZi5fc2hvdWxk
X2RlZmVyX3BhdGNoX29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMo
KSwgZmlyc3RfcmVzdWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1
cmVfc3RhdHVzX2lkKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgaWYgbm90
IHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6CisgICAgICAg
ICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coc2Vjb25kX3Jlc3VsdHMuZmFp
bGluZ190ZXN0X3Jlc3VsdHMoKSwgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSwgc2Vjb25kX3Njcmlw
dF9lcnJvciwgc2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkKQorICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCiAKICAgICAgICAgaWYgc2VsZi5fcmVzdWx0c19mYWlsZWRfZGlmZmVyZW50X3Rlc3RzKGZp
cnN0X3Jlc3VsdHMsIHNlY29uZF9yZXN1bHRzKToKICAgICAgICAgICAgIGZpcnN0X2ZhaWxpbmdf
cmVzdWx0c19zZXQgPSBmcm96ZW5zZXQoZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0
cygpKQotLSAKMi4xLjEgKEFwcGxlIEdpdC01MSkKCg==
</data>
<flag name="review"
          id="266501"
          type_id="1"
          status="-"
          setter="jake.nielsen.webkit"
    />
    <flag name="commit-queue"
          id="266502"
          type_id="3"
          status="-"
          setter="jake.nielsen.webkit"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241640</attachid>
            <date>2014-11-14 16:19:00 -0800</date>
            <delta_ts>2014-11-17 09:53:48 -0800</delta_ts>
            <desc>Fixes logical error</desc>
            <filename>0001-Having-30-flaky-failures-breaks-EWS.patch</filename>
            <type>text/plain</type>
            <size>23420</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSA5NGUwZmYzZTJlMDFiNThjMzg1M2Y1YWM0YzY3MzlkMzdlY2RhZWNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBGcmksIDE0IE5vdiAyMDE0IDE2OjE3OjU1IC0wODAwClN1YmplY3Q6IFtQQVRDSF0g
SGF2aW5nIDMwKyBmbGFreSBmYWlsdXJlcyBicmVha3MgRVdTCiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NzQzCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
CkFkZHMgdGVzdHMgdG8gZW5zdXJlIHRoYXQgdGhlIHByb2JsZW0gaGFzIGJlZW4gc29sdmVkLgoq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5Ogoo
dGVzdF9maXJzdF9mYWlsdXJlX2xpbWl0KToKKHRlc3RfZmlyc3RfZmFpbHVyZV9saW1pdF93aXRo
X3NvbWVfdHJlZV9yZWRuZXNzKToKKHRlc3Rfc2Vjb25kX2ZhaWx1cmVfbGltaXQpOgoodGVzdF90
cmVlX2ZhaWx1cmVfbGltaXRfd2l0aF9wYXRjaF90aGF0X3BvdGVudGlhbGx5X2ZpeGVzX3NvbWVf
cmVkbmVzcyk6Cih0ZXN0X2ZpcnN0X2FuZF9zZWNvbmRfZmFpbHVyZV9saW1pdCk6Cih0ZXN0X2Zp
cnN0X2FuZF9jbGVhbl9mYWlsdXJlX2xpbWl0KToKKHRlc3RfZmlyc3Rfc2Vjb25kX2FuZF9jbGVh
bl9mYWlsdXJlX2xpbWl0KToKKHRlc3RfdmVyeV9yZWRfdHJlZV9yZXRyeSk6IERlbGV0ZWQuClJl
YWxseSB0aGlzIHdhcyByZW5hbWVkIHRvIHRlc3RfZmlyc3Rfc2Vjb25kX2FuZF9jbGVhbl9mYWls
dXJlX2xpbWl0LgoqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2su
cHk6Ck1ha2VzIHRoZSBhcHByb3ByaWF0ZSBjaGFuZ2VzIHRvIFBhdGNoQW5hbHlzaXNUYXNrIHRv
IG1ha2Ugc3VyZSB0aGF0CmV2ZW4gd2hlbiB0aGUgZmlyc3QgdGVzdCBydW4gaGl0cyB0aGUgZmFp
bHVyZSBsaW1pdCwgaXQgd2lsbCBzdGlsbCB0cnkKYSBzZWNvbmQgcnVuLgooUGF0Y2hBbmFseXNp
c1Rhc2suX3Jlc3VsdHNfZmFpbGVkX2RpZmZlcmVudF90ZXN0cyk6CihQYXRjaEFuYWx5c2lzVGFz
ay5fdGVzdF9wYXRjaCk6CihQYXRjaEFuYWx5c2lzVGFzay5fY29udGludWVfdGVzdGluZ19wYXRj
aF90aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jfc2Vjb25kX3RyeSk6IERl
bGV0ZWQuCi0tLQogMDAwMS1IYXZpbmctMzAtZmxha3ktZmFpbHVyZXMtYnJlYWtzLUVXUy5wYXRj
aCAgICAgfCAyMTQgKysrKysrKysrKysrKysrKysrKysrCiBUb29scy9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyNiArKysKIC4uLi93ZWJraXRweS90b29s
L2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHkgIHwgIDY0ICsrKysrLQogLi4uL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkgfCAgMzcgKystLQogNCBm
aWxlcyBjaGFuZ2VkLCAzMTggaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCiBjcmVhdGUg
bW9kZSAxMDA2NDQgMDAwMS1IYXZpbmctMzAtZmxha3ktZmFpbHVyZXMtYnJlYWtzLUVXUy5wYXRj
aAoKZGlmZiAtLWdpdCBhLzAwMDEtSGF2aW5nLTMwLWZsYWt5LWZhaWx1cmVzLWJyZWFrcy1FV1Mu
cGF0Y2ggYi8wMDAxLUhhdmluZy0zMC1mbGFreS1mYWlsdXJlcy1icmVha3MtRVdTLnBhdGNoCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3MzY1ODYKLS0tIC9kZXYvbnVsbAor
KysgYi8wMDAxLUhhdmluZy0zMC1mbGFreS1mYWlsdXJlcy1icmVha3MtRVdTLnBhdGNoCkBAIC0w
LDAgKzEsMjE0IEBACitGcm9tIDVlYjU3NmE3ZTAyNjU3YTNlNzNmMDAyMGVmOWY3NDY5ZjQ4Yzk4
YzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25p
ZWxzZW5AYXBwbGUuY29tPgorRGF0ZTogRnJpLCAxNCBOb3YgMjAxNCAxNjoxMjoxMCAtMDgwMAor
U3ViamVjdDogW1BBVENIXSBIYXZpbmcgMzArIGZsYWt5IGZhaWx1cmVzIGJyZWFrcyBFV1MKKyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NzQzCisKK1Jldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCitBZGRzIHRlc3RzIHRvIGVuc3VyZSB0aGF0IHRoZSBwcm9i
bGVtIGhhcyBiZWVuIHNvbHZlZC4KKyogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRx
dWV1ZXRhc2tfdW5pdHRlc3QucHk6CisodGVzdF9maXJzdF9mYWlsdXJlX2xpbWl0KToKKyh0ZXN0
X2ZpcnN0X2ZhaWx1cmVfbGltaXRfd2l0aF9zb21lX3RyZWVfcmVkbmVzcyk6CisodGVzdF9zZWNv
bmRfZmFpbHVyZV9saW1pdCk6CisodGVzdF90cmVlX2ZhaWx1cmVfbGltaXRfd2l0aF9wYXRjaF90
aGF0X3BvdGVudGlhbGx5X2ZpeGVzX3NvbWVfcmVkbmVzcyk6CisodGVzdF9maXJzdF9hbmRfc2Vj
b25kX2ZhaWx1cmVfbGltaXQpOgorKHRlc3RfZmlyc3RfYW5kX2NsZWFuX2ZhaWx1cmVfbGltaXQp
OgorKHRlc3RfZmlyc3Rfc2Vjb25kX2FuZF9jbGVhbl9mYWlsdXJlX2xpbWl0KToKKyh0ZXN0X3Zl
cnlfcmVkX3RyZWVfcmV0cnkpOiBEZWxldGVkLgorUmVhbGx5IHRoaXMgd2FzIHJlbmFtZWQgdG8g
dGVzdF9maXJzdF9zZWNvbmRfYW5kX2NsZWFuX2ZhaWx1cmVfbGltaXQuCisqIFNjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHk6CitNYWtlcyB0aGUgYXBwcm9wcmlh
dGUgY2hhbmdlcyB0byBQYXRjaEFuYWx5c2lzVGFzayB0byBtYWtlIHN1cmUgdGhhdAorZXZlbiB3
aGVuIHRoZSBmaXJzdCB0ZXN0IHJ1biBoaXRzIHRoZSBmYWlsdXJlIGxpbWl0LCBpdCB3aWxsIHN0
aWxsIHRyeQorYSBzZWNvbmQgcnVuLgorKFBhdGNoQW5hbHlzaXNUYXNrLl9yZXN1bHRzX2ZhaWxl
ZF9kaWZmZXJlbnRfdGVzdHMpOgorKFBhdGNoQW5hbHlzaXNUYXNrLl90ZXN0X3BhdGNoKToKKyhQ
YXRjaEFuYWx5c2lzVGFzay5fY29udGludWVfdGVzdGluZ19wYXRjaF90aGF0X2V4Y2VlZGVkX2Zh
aWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jfc2Vjb25kX3RyeSk6IERlbGV0ZWQuCistLS0KKyBUb29s
cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI2ICsrKysr
KysrKworIC4uLi93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHkg
IHwgNjQgKysrKysrKysrKysrKysrKysrKystLQorIC4uLi9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L3BhdGNoYW5hbHlzaXN0YXNrLnB5IHwgMzcgKysrKysrKy0tLS0tLQorIDMgZmlsZXMgY2hh
bmdlZCwgMTA0IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCitpbmRleCA1MDk5YTZjLi41MWIyM2Jh
IDEwMDY0NAorLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKysgYi9Ub29scy9DaGFuZ2VMb2cKK0BA
IC0xLDMgKzEsMjkgQEAKKysyMDE0LTExLTE0ICBKYWtlIE5pZWxzZW4gIDxqYWNvYl9uaWVsc2Vu
QGFwcGxlLmNvbT4KKysKKysgICAgICAgIEhhdmluZyAzMCsgZmxha3kgZmFpbHVyZXMgYnJlYWtz
IEVXUworKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
ODc0MworKworKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisrCisrICAgICAg
ICBBZGRzIHRlc3RzIHRvIGVuc3VyZSB0aGF0IHRoZSBwcm9ibGVtIGhhcyBiZWVuIHNvbHZlZC4K
KysgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5p
dHRlc3QucHk6CisrICAgICAgICAodGVzdF9maXJzdF9mYWlsdXJlX2xpbWl0KToKKysgICAgICAg
ICh0ZXN0X2ZpcnN0X2ZhaWx1cmVfbGltaXRfd2l0aF9zb21lX3RyZWVfcmVkbmVzcyk6CisrICAg
ICAgICAodGVzdF9zZWNvbmRfZmFpbHVyZV9saW1pdCk6CisrICAgICAgICAodGVzdF90cmVlX2Zh
aWx1cmVfbGltaXRfd2l0aF9wYXRjaF90aGF0X3BvdGVudGlhbGx5X2ZpeGVzX3NvbWVfcmVkbmVz
cyk6CisrICAgICAgICAodGVzdF9maXJzdF9hbmRfc2Vjb25kX2ZhaWx1cmVfbGltaXQpOgorKyAg
ICAgICAgKHRlc3RfZmlyc3RfYW5kX2NsZWFuX2ZhaWx1cmVfbGltaXQpOgorKyAgICAgICAgKHRl
c3RfZmlyc3Rfc2Vjb25kX2FuZF9jbGVhbl9mYWlsdXJlX2xpbWl0KToKKysgICAgICAgICh0ZXN0
X3ZlcnlfcmVkX3RyZWVfcmV0cnkpOiBEZWxldGVkLgorKyAgICAgICAgUmVhbGx5IHRoaXMgd2Fz
IHJlbmFtZWQgdG8gdGVzdF9maXJzdF9zZWNvbmRfYW5kX2NsZWFuX2ZhaWx1cmVfbGltaXQuCisr
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHk6
CisrICAgICAgICBNYWtlcyB0aGUgYXBwcm9wcmlhdGUgY2hhbmdlcyB0byBQYXRjaEFuYWx5c2lz
VGFzayB0byBtYWtlIHN1cmUgdGhhdAorKyAgICAgICAgZXZlbiB3aGVuIHRoZSBmaXJzdCB0ZXN0
IHJ1biBoaXRzIHRoZSBmYWlsdXJlIGxpbWl0LCBpdCB3aWxsIHN0aWxsIHRyeQorKyAgICAgICAg
YSBzZWNvbmQgcnVuLgorKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9yZXN1bHRzX2ZhaWxl
ZF9kaWZmZXJlbnRfdGVzdHMpOgorKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl90ZXN0X3Bh
dGNoKToKKysgICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fY29udGludWVfdGVzdGluZ19wYXRj
aF90aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jfc2Vjb25kX3RyeSk6IERl
bGV0ZWQuCisrCisgMjAxNC0xMS0xNCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNv
bT4KKyAKKyAgICAgICAgIEFkZCBzaG9ydGN1dCBtYWNyb3MgdG8gTWFjIFRlc3RFeHBlY3RhdGlv
bnMKK2RpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1
ZXVldGFza191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29t
bWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5CitpbmRleCAzMDJhNTM2Li45NzZkNWVmIDEwMDY0NAor
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5p
dHRlc3QucHkKKysrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVl
dWV0YXNrX3VuaXR0ZXN0LnB5CitAQCAtMTU5LDYgKzE1OSw5IEBAIGNsYXNzIEdvbGRlblNjcmlw
dEVycm9yKFNjcmlwdEVycm9yKToKKyAgICAgcGFzcworIAorIAorK19sb3RzX29mX2ZhaWxpbmdf
dGVzdHMgPSBtYXAobGFtYmRhIG51bTogInRlc3QtJXMuaHRtbCIgJSBudW0sIHJhbmdlKDAsIDEw
MCkpCisrCisrCisgY2xhc3MgQ29tbWl0UXVldWVUYXNrVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6
CisgICAgIGRlZiBfcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0KHNlbGYsIGNv
bW1pdF9xdWV1ZSwgZXhwZWN0ZWRfYW5hbHlzaXNfcmVzdWx0LCBleHBlY3RlZF9yZXBvcnRlZF9m
bGFreV90ZXN0cz1bXSwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1GYWxzZSwgZXhwZWN0ZWRf
ZmFpbHVyZV9zdGF0dXNfaWQ9MCk6CisgICAgICAgICB0b29sID0gTW9ja1Rvb2wobG9nX2V4ZWN1
dGl2ZT1UcnVlKQorQEAgLTM5OCwxMiArNDAxLDYzIEBAIGNvbW1hbmRfZmFpbGVkOiBmYWlsdXJl
X21lc3NhZ2U9J1VuYWJsZSB0byBsYW5kIHBhdGNoJyBzY3JpcHRfZXJyb3I9J01PQ0sgbGFuZCBm
CisgCisgICAgICAgICBzZWxmLl9ydW5fYW5kX2V4cGVjdF9wYXRjaF9hbmFseXNpc19yZXN1bHQo
Y29tbWl0X3F1ZXVlLCBQYXRjaEFuYWx5c2lzUmVzdWx0LlBBU1MsIGV4cGVjdF9jbGVhbl90ZXN0
c190b19ydW49VHJ1ZSkKKyAKKy0gICAgZGVmIHRlc3RfdmVyeV9yZWRfdHJlZV9yZXRyeShzZWxm
KToKKy0gICAgICAgIGxvdHNfb2ZfZmFpbGluZ190ZXN0cyA9IG1hcChsYW1iZGEgbnVtOiAidGVz
dC0lcy5odG1sIiAlIG51bSwgcmFuZ2UoMCwgMTAwKSkKKysgICAgZGVmIHRlc3RfZmlyc3RfZmFp
bHVyZV9saW1pdChzZWxmKToKKysgICAgICAgIGNvbW1pdF9xdWV1ZSA9IE1vY2tTaW1wbGVUZXN0
UGxhbkNvbW1pdFF1ZXVlKAorKyAgICAgICAgICAgIGZpcnN0X3Rlc3RfZmFpbHVyZXM9X2xvdHNf
b2ZfZmFpbGluZ190ZXN0cywKKysgICAgICAgICAgICBzZWNvbmRfdGVzdF9mYWlsdXJlcz1bXSwK
KysgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPVtdKQorKworKyAgICAgICAgc2VsZi5f
cnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0KGNvbW1pdF9xdWV1ZSwgUGF0Y2hB
bmFseXNpc1Jlc3VsdC5ERUZFUiwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1UcnVlLCBleHBl
Y3RlZF9mYWlsdXJlX3N0YXR1c19pZD0xKQorKworKyAgICBkZWYgdGVzdF9maXJzdF9mYWlsdXJl
X2xpbWl0X3dpdGhfc29tZV90cmVlX3JlZG5lc3Moc2VsZik6CisrICAgICAgICBjb21taXRfcXVl
dWUgPSBNb2NrU2ltcGxlVGVzdFBsYW5Db21taXRRdWV1ZSgKKysgICAgICAgICAgICBmaXJzdF90
ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdfdGVzdHMsCisrICAgICAgICAgICAgc2Vjb25k
X3Rlc3RfZmFpbHVyZXM9WyJGYWlsMSIsICJGYWlsMiIsICJGYWlsMyJdLAorKyAgICAgICAgICAg
IGNsZWFuX3Rlc3RfZmFpbHVyZXM9WyJGYWlsMSIsICJGYWlsMiIsICJGYWlsMyJdKQorKworKyAg
ICAgICAgc2VsZi5fcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0KGNvbW1pdF9x
dWV1ZSwgUGF0Y2hBbmFseXNpc1Jlc3VsdC5ERUZFUiwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1
bj1UcnVlLCBleHBlY3RlZF9mYWlsdXJlX3N0YXR1c19pZD0xKQorKworKyAgICBkZWYgdGVzdF9z
ZWNvbmRfZmFpbHVyZV9saW1pdChzZWxmKToKKysgICAgICAgICMgVGhlcmUgbmVlZCB0byBiZSBz
b21lIGZhaWx1cmVzIGluIHRoZSBmaXJzdCBzZXQgb2YgdGVzdHMsIG9yIGl0IHdvbid0IGV2ZW4g
bWFrZSBpdCB0byB0aGUgc2Vjb25kIHRlc3QuCisrICAgICAgICBjb21taXRfcXVldWUgPSBNb2Nr
U2ltcGxlVGVzdFBsYW5Db21taXRRdWV1ZSgKKysgICAgICAgICAgICBmaXJzdF90ZXN0X2ZhaWx1
cmVzPVsiRmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMiXSwKKysgICAgICAgICAgICBzZWNvbmRfdGVz
dF9mYWlsdXJlcz1fbG90c19vZl9mYWlsaW5nX3Rlc3RzLAorKyAgICAgICAgICAgIGNsZWFuX3Rl
c3RfZmFpbHVyZXM9WyJGYWlsMSIsICJGYWlsMiIsICJGYWlsMyJdKQorKworKyAgICAgICAgc2Vs
Zi5fcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0KGNvbW1pdF9xdWV1ZSwgUGF0
Y2hBbmFseXNpc1Jlc3VsdC5ERUZFUiwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1UcnVlLCBl
eHBlY3RlZF9mYWlsdXJlX3N0YXR1c19pZD0yKQorKworKyAgICBkZWYgdGVzdF90cmVlX2ZhaWx1
cmVfbGltaXRfd2l0aF9wYXRjaF90aGF0X3BvdGVudGlhbGx5X2ZpeGVzX3NvbWVfcmVkbmVzcyhz
ZWxmKToKKysgICAgICAgIGNvbW1pdF9xdWV1ZSA9IE1vY2tTaW1wbGVUZXN0UGxhbkNvbW1pdFF1
ZXVlKAorKyAgICAgICAgICAgIGZpcnN0X3Rlc3RfZmFpbHVyZXM9WyJGYWlsMSIsICJGYWlsMiIs
ICJGYWlsMyJdLAorKyAgICAgICAgICAgIHNlY29uZF90ZXN0X2ZhaWx1cmVzPVsiRmFpbDEiLCAi
RmFpbDIiLCAiRmFpbDMiXSwKKysgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPV9sb3Rz
X29mX2ZhaWxpbmdfdGVzdHMpCisrCisrICAgICAgICAjIFVuZm9ydHVuYXRlbHkgdGhlcmUgYXJl
IGNhc2VzIHdoZXJlIHRoZSBjbGVhbiBidWlsZCB3aWxsIHJhbmRvbWx5IGZhaWwgZW5vdWdoIHRl
c3RzIHRvIGhpdCB0aGUgZmFpbHVyZSBsaW1pdC4KKysgICAgICAgICMgV2l0aCB0aGF0IGluIG1p
bmQsIHdlIGNhbid0IGFjdHVhbGx5IGtub3cgdGhhdCB0aGlzIHBhdGNoIGlzIGdvb2Qgb3IgYmFk
IHVudGlsIHdlIHNlZSBhIGNsZWFuIHJ1biB0aGF0IGRvZXNuJ3QKKysgICAgICAgICMgZXhjZWVk
IHRoZSBmYWlsdXJlIGxpbWl0LgorKyAgICAgICAgc2VsZi5fcnVuX2FuZF9leHBlY3RfcGF0Y2hf
YW5hbHlzaXNfcmVzdWx0KGNvbW1pdF9xdWV1ZSwgUGF0Y2hBbmFseXNpc1Jlc3VsdC5ERUZFUiwg
ZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1UcnVlKQorKworKyAgICBkZWYgdGVzdF9maXJzdF9h
bmRfc2Vjb25kX2ZhaWx1cmVfbGltaXQoc2VsZik6CisrICAgICAgICBjb21taXRfcXVldWUgPSBN
b2NrU2ltcGxlVGVzdFBsYW5Db21taXRRdWV1ZSgKKysgICAgICAgICAgICBmaXJzdF90ZXN0X2Zh
aWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdfdGVzdHMsCisrICAgICAgICAgICAgc2Vjb25kX3Rlc3Rf
ZmFpbHVyZXM9X2xvdHNfb2ZfZmFpbGluZ190ZXN0cywKKysgICAgICAgICAgICBjbGVhbl90ZXN0
X2ZhaWx1cmVzPVtdKQorKworKyAgICAgICAgc2VsZi5fcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5h
bHlzaXNfcmVzdWx0KGNvbW1pdF9xdWV1ZSwgUGF0Y2hBbmFseXNpc1Jlc3VsdC5GQUlMLCBleHBl
Y3RfY2xlYW5fdGVzdHNfdG9fcnVuPVRydWUsIGV4cGVjdGVkX2ZhaWx1cmVfc3RhdHVzX2lkPTEp
CisrCisrICAgIGRlZiB0ZXN0X2ZpcnN0X2FuZF9jbGVhbl9mYWlsdXJlX2xpbWl0KHNlbGYpOgor
KyAgICAgICAgY29tbWl0X3F1ZXVlID0gTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUoCisr
ICAgICAgICAgICAgZmlyc3RfdGVzdF9mYWlsdXJlcz1fbG90c19vZl9mYWlsaW5nX3Rlc3RzLAor
KyAgICAgICAgICAgIHNlY29uZF90ZXN0X2ZhaWx1cmVzPVtdLAorKyAgICAgICAgICAgIGNsZWFu
X3Rlc3RfZmFpbHVyZXM9X2xvdHNfb2ZfZmFpbGluZ190ZXN0cykKKysKKysgICAgICAgIHNlbGYu
X3J1bl9hbmRfZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3VsdChjb21taXRfcXVldWUsIFBhdGNo
QW5hbHlzaXNSZXN1bHQuREVGRVIsIGV4cGVjdF9jbGVhbl90ZXN0c190b19ydW49VHJ1ZSkKKysK
KysgICAgZGVmIHRlc3RfZmlyc3Rfc2Vjb25kX2FuZF9jbGVhbl9mYWlsdXJlX2xpbWl0KHNlbGYp
OgorICAgICAgICAgY29tbWl0X3F1ZXVlID0gTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUo
CistICAgICAgICAgICAgZmlyc3RfdGVzdF9mYWlsdXJlcz1sb3RzX29mX2ZhaWxpbmdfdGVzdHMs
CistICAgICAgICAgICAgc2Vjb25kX3Rlc3RfZmFpbHVyZXM9bG90c19vZl9mYWlsaW5nX3Rlc3Rz
LAorLSAgICAgICAgICAgIGNsZWFuX3Rlc3RfZmFpbHVyZXM9bG90c19vZl9mYWlsaW5nX3Rlc3Rz
KQorKyAgICAgICAgICAgIGZpcnN0X3Rlc3RfZmFpbHVyZXM9X2xvdHNfb2ZfZmFpbGluZ190ZXN0
cywKKysgICAgICAgICAgICBzZWNvbmRfdGVzdF9mYWlsdXJlcz1fbG90c19vZl9mYWlsaW5nX3Rl
c3RzLAorKyAgICAgICAgICAgIGNsZWFuX3Rlc3RfZmFpbHVyZXM9X2xvdHNfb2ZfZmFpbGluZ190
ZXN0cykKKyAKKyAgICAgICAgIHNlbGYuX3J1bl9hbmRfZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jl
c3VsdChjb21taXRfcXVldWUsIFBhdGNoQW5hbHlzaXNSZXN1bHQuREVGRVIsIGV4cGVjdF9jbGVh
bl90ZXN0c190b19ydW49VHJ1ZSkKKyAKK2RpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQoraW5kZXggNmRjMDgzZi4uYmMzYzZiNCAx
MDA2NDQKKy0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNp
c3Rhc2sucHkKKysrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFs
eXNpc3Rhc2sucHkKK0BAIC0xODIsMTggKzE4Miw2IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNr
KG9iamVjdCk6CisgICAgICAgICBzZWNvbmRfZmFpbGluZ190ZXN0cyA9IFtdIGlmIG5vdCBzZWNv
bmQgZWxzZSBzZWNvbmQuZmFpbGluZ190ZXN0cygpCisgICAgICAgICByZXR1cm4gZmlyc3RfZmFp
bGluZ190ZXN0cyAhPSBzZWNvbmRfZmFpbGluZ190ZXN0cworIAorLSAgICBkZWYgX2NvbnRpbnVl
X3Rlc3RpbmdfcGF0Y2hfdGhhdF9leGNlZWRlZF9mYWlsdXJlX2xpbWl0X29uX2ZpcnN0X29yX3Nl
Y29uZF90cnkoc2VsZiwgcmVzdWx0cywgcmVzdWx0c19hcmNoaXZlLCBzY3JpcHRfZXJyb3IpOgor
LSAgICAgICAgc2VsZi5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCgpCistCistICAgICAg
ICAjIElmIHdlJ3ZlIG1hZGUgaXQgaGVyZSwgdGhlbiBtYW55ICg1MDApIHRlc3RzIGFyZSBmYWls
aW5nIHdpdGggdGhlIHBhdGNoIGFwcGxpZWQsIGJ1dAorLSAgICAgICAgIyBpZiB0aGUgY2xlYW4g
dHJlZSBpcyBhbHNvIGZhaWxpbmcgbWFueSB0ZXN0cywgZXZlbiBpZiBpdCdzIG5vdCBxdWl0ZSBh
cyBtYW55ICg0OTUpLAorLSAgICAgICAgIyB0aGVuIHdlIGNhbid0IGJlIGNlcnRhaW4gdGhhdCB0
aGUgZGlzY3JlcGFuY3kgaXNuJ3QgZHVlIHRvIGZsYWtpbmVzcywgYW5kIGhlbmNlIHdlIG11c3QK
Ky0gICAgICAgICMgZGVmZXIganVkZ2VtZW50LgorLSAgICAgICAgaWYgKGxlbihyZXN1bHRzLmZh
aWxpbmdfdGVzdHMoKSkgLSBsZW4oc2VsZi5fZGVsZWdhdGUudGVzdF9yZXN1bHRzKCkuZmFpbGlu
Z190ZXN0cygpKSkgPD0gNToKKy0gICAgICAgICAgICByZXR1cm4gRmFsc2UKKy0KKy0gICAgICAg
IHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKHJlc3VsdHNfYXJjaGl2ZSwgcmVzdWx0cywgc2Ny
aXB0X2Vycm9yKQorLQorICAgICBkZWYgX3Nob3VsZF9kZWZlcl9wYXRjaF9vcl90aHJvdyhzZWxm
LCBmYWlsdXJlc193aXRoX3BhdGNoLCByZXN1bHRzX2FyY2hpdmVfZm9yX2ZhaWx1cmVzX3dpdGhf
cGF0Y2gsIHNjcmlwdF9lcnJvciwgZmFpbHVyZV9pZCk6CisgICAgICAgICBzZWxmLl9idWlsZF9h
bmRfdGVzdF93aXRob3V0X3BhdGNoKCkKKyAgICAgICAgIGNsZWFuX3RyZWVfcmVzdWx0cyA9IHNl
bGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCitAQCAtMjIzLDEwICsyMTEsNyBAQCBjbGFzcyBQ
YXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgorICAgICAgICAgZmlyc3Rfc2NyaXB0X2Vycm9yID0g
c2VsZi5fc2NyaXB0X2Vycm9yCisgICAgICAgICBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCA9IHNl
bGYuZmFpbHVyZV9zdGF0dXNfaWQKKyAKKy0gICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMuZGlkX2V4
Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKy0gICAgICAgICAgICByZXR1cm4gc2VsZi5fY29u
dGludWVfdGVzdGluZ19wYXRjaF90aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGltaXRfb25fZmlyc3Rf
b3Jfc2Vjb25kX3RyeShmaXJzdF9yZXN1bHRzLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0
X3NjcmlwdF9lcnJvcikKKy0KKy0gICAgICAgIGlmIHNlbGYuX3Rlc3QoKToKKysgICAgICAgIGlm
IHNlbGYuX3Rlc3QoKSBhbmQgbm90IGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1
cmVfbGltaXQoKToKKyAgICAgICAgICAgICAjIE9ubHkgcmVwb3J0IGZsYWt5IHRlc3RzIGlmIHdl
IHdlcmUgc3VjY2Vzc2Z1bCBhdCBwYXJzaW5nIHJlc3VsdHMuanNvbiBhbmQgYXJjaGl2aW5nIHJl
c3VsdHMuCisgICAgICAgICAgICAgaWYgZmlyc3RfcmVzdWx0cyBhbmQgZmlyc3RfcmVzdWx0c19h
cmNoaXZlOgorICAgICAgICAgICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHMoZmlyc3Rf
cmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUpCitA
QCAtMjM3LDggKzIyMiwyNCBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgorICAg
ICAgICAgc2Vjb25kX3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgorICAgICAgICAg
c2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkID0gc2VsZi5mYWlsdXJlX3N0YXR1c19pZAorIAorLSAg
ICAgICAgaWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToK
Ky0gICAgICAgICAgICByZXR1cm4gc2VsZi5fY29udGludWVfdGVzdGluZ19wYXRjaF90aGF0X2V4
Y2VlZGVkX2ZhaWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jfc2Vjb25kX3RyeShzZWNvbmRfcmVzdWx0
cywgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSwgc2Vjb25kX3NjcmlwdF9lcnJvcikKKysgICAgICAg
IGlmIHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCkgYW5kIGZp
cnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKKysgICAgICAgICAg
ICBzZWxmLl9idWlsZF9hbmRfdGVzdF93aXRob3V0X3BhdGNoKCkKKysgICAgICAgICAgICBjbGVh
bl90cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorKworKyAgICAg
ICAgICAgIGlmIChsZW4oZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RzKCkpIC0gbGVuKGNsZWFu
X3RyZWVfcmVzdWx0cy5mYWlsaW5nX3Rlc3RzKCkpKSA8PSA1OgorKyAgICAgICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKKysKKysgICAgICAgICAgICBzZWxmLmZhaWx1cmVfc3RhdHVzX2lkID0gZmly
c3RfZmFpbHVyZV9zdGF0dXNfaWQKKysKKysgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRf
ZmFpbHVyZShmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3Jlc3VsdHMsIGZpcnN0X3Njcmlw
dF9lcnJvcikKKysKKysgICAgICAgIGlmIG5vdCBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVz
dF9mYWlsdXJlX2xpbWl0KCk6CisrICAgICAgICAgICAgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNo
X29yX3Rocm93KGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSwgZmlyc3RfcmVz
dWx0c19hcmNoaXZlLCBmaXJzdF9zY3JpcHRfZXJyb3IsIGZpcnN0X2ZhaWx1cmVfc3RhdHVzX2lk
KQorKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorKworKyAgICAgICAgaWYgbm90IHNlY29uZF9y
ZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6CisrICAgICAgICAgICAgc2Vs
Zi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHNlY29uZF9yZXN1bHRzLmZhaWxpbmdfdGVz
dF9yZXN1bHRzKCksIHNlY29uZF9yZXN1bHRzX2FyY2hpdmUsIHNlY29uZF9zY3JpcHRfZXJyb3Is
IHNlY29uZF9mYWlsdXJlX3N0YXR1c19pZCkKKysgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAK
KyAgICAgICAgIGlmIHNlbGYuX3Jlc3VsdHNfZmFpbGVkX2RpZmZlcmVudF90ZXN0cyhmaXJzdF9y
ZXN1bHRzLCBzZWNvbmRfcmVzdWx0cyk6CisgICAgICAgICAgICAgZmlyc3RfZmFpbGluZ19yZXN1
bHRzX3NldCA9IGZyb3plbnNldChmaXJzdF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCkp
CistLSAKKzIuMS4xIChBcHBsZSBHaXQtNTEpCisKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1MDk5YTZjLi41MWIyM2JhIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIw
MTQtMTEtMTQgIEpha2UgTmllbHNlbiAgPGphY29iX25pZWxzZW5AYXBwbGUuY29tPgorCisgICAg
ICAgIEhhdmluZyAzMCsgZmxha3kgZmFpbHVyZXMgYnJlYWtzIEVXUworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NzQzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyB0ZXN0cyB0byBlbnN1cmUgdGhh
dCB0aGUgcHJvYmxlbSBoYXMgYmVlbiBzb2x2ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRlc3QucHk6CisgICAgICAgICh0ZXN0X2Zp
cnN0X2ZhaWx1cmVfbGltaXQpOgorICAgICAgICAodGVzdF9maXJzdF9mYWlsdXJlX2xpbWl0X3dp
dGhfc29tZV90cmVlX3JlZG5lc3MpOgorICAgICAgICAodGVzdF9zZWNvbmRfZmFpbHVyZV9saW1p
dCk6CisgICAgICAgICh0ZXN0X3RyZWVfZmFpbHVyZV9saW1pdF93aXRoX3BhdGNoX3RoYXRfcG90
ZW50aWFsbHlfZml4ZXNfc29tZV9yZWRuZXNzKToKKyAgICAgICAgKHRlc3RfZmlyc3RfYW5kX3Nl
Y29uZF9mYWlsdXJlX2xpbWl0KToKKyAgICAgICAgKHRlc3RfZmlyc3RfYW5kX2NsZWFuX2ZhaWx1
cmVfbGltaXQpOgorICAgICAgICAodGVzdF9maXJzdF9zZWNvbmRfYW5kX2NsZWFuX2ZhaWx1cmVf
bGltaXQpOgorICAgICAgICAodGVzdF92ZXJ5X3JlZF90cmVlX3JldHJ5KTogRGVsZXRlZC4KKyAg
ICAgICAgUmVhbGx5IHRoaXMgd2FzIHJlbmFtZWQgdG8gdGVzdF9maXJzdF9zZWNvbmRfYW5kX2Ns
ZWFuX2ZhaWx1cmVfbGltaXQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9w
YXRjaGFuYWx5c2lzdGFzay5weToKKyAgICAgICAgTWFrZXMgdGhlIGFwcHJvcHJpYXRlIGNoYW5n
ZXMgdG8gUGF0Y2hBbmFseXNpc1Rhc2sgdG8gbWFrZSBzdXJlIHRoYXQKKyAgICAgICAgZXZlbiB3
aGVuIHRoZSBmaXJzdCB0ZXN0IHJ1biBoaXRzIHRoZSBmYWlsdXJlIGxpbWl0LCBpdCB3aWxsIHN0
aWxsIHRyeQorICAgICAgICBhIHNlY29uZCBydW4uCisgICAgICAgIChQYXRjaEFuYWx5c2lzVGFz
ay5fcmVzdWx0c19mYWlsZWRfZGlmZmVyZW50X3Rlc3RzKToKKyAgICAgICAgKFBhdGNoQW5hbHlz
aXNUYXNrLl90ZXN0X3BhdGNoKToKKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl9jb250aW51
ZV90ZXN0aW5nX3BhdGNoX3RoYXRfZXhjZWVkZWRfZmFpbHVyZV9saW1pdF9vbl9maXJzdF9vcl9z
ZWNvbmRfdHJ5KTogRGVsZXRlZC4KKwogMjAxNC0xMS0xNCAgQWxleGV5IFByb3NrdXJ5YWtvdiAg
PGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc2hvcnRjdXQgbWFjcm9zIHRvIE1hYyBUZXN0
RXhwZWN0YXRpb25zCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5CmluZGV4IDMwMmE1MzYuLjk3NmQ1ZWYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0
YXNrX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29t
bWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5CkBAIC0xNTksNiArMTU5LDkgQEAgY2xhc3MgR29sZGVu
U2NyaXB0RXJyb3IoU2NyaXB0RXJyb3IpOgogICAgIHBhc3MKIAogCitfbG90c19vZl9mYWlsaW5n
X3Rlc3RzID0gbWFwKGxhbWJkYSBudW06ICJ0ZXN0LSVzLmh0bWwiICUgbnVtLCByYW5nZSgwLCAx
MDApKQorCisKIGNsYXNzIENvbW1pdFF1ZXVlVGFza1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgIGRlZiBfcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0KHNlbGYsIGNvbW1p
dF9xdWV1ZSwgZXhwZWN0ZWRfYW5hbHlzaXNfcmVzdWx0LCBleHBlY3RlZF9yZXBvcnRlZF9mbGFr
eV90ZXN0cz1bXSwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1GYWxzZSwgZXhwZWN0ZWRfZmFp
bHVyZV9zdGF0dXNfaWQ9MCk6CiAgICAgICAgIHRvb2wgPSBNb2NrVG9vbChsb2dfZXhlY3V0aXZl
PVRydWUpCkBAIC0zOTgsMTIgKzQwMSw2MyBAQCBjb21tYW5kX2ZhaWxlZDogZmFpbHVyZV9tZXNz
YWdlPSdVbmFibGUgdG8gbGFuZCBwYXRjaCcgc2NyaXB0X2Vycm9yPSdNT0NLIGxhbmQgZgogCiAg
ICAgICAgIHNlbGYuX3J1bl9hbmRfZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3VsdChjb21taXRf
cXVldWUsIFBhdGNoQW5hbHlzaXNSZXN1bHQuUEFTUywgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1
bj1UcnVlKQogCi0gICAgZGVmIHRlc3RfdmVyeV9yZWRfdHJlZV9yZXRyeShzZWxmKToKLSAgICAg
ICAgbG90c19vZl9mYWlsaW5nX3Rlc3RzID0gbWFwKGxhbWJkYSBudW06ICJ0ZXN0LSVzLmh0bWwi
ICUgbnVtLCByYW5nZSgwLCAxMDApKQorICAgIGRlZiB0ZXN0X2ZpcnN0X2ZhaWx1cmVfbGltaXQo
c2VsZik6CisgICAgICAgIGNvbW1pdF9xdWV1ZSA9IE1vY2tTaW1wbGVUZXN0UGxhbkNvbW1pdFF1
ZXVlKAorICAgICAgICAgICAgZmlyc3RfdGVzdF9mYWlsdXJlcz1fbG90c19vZl9mYWlsaW5nX3Rl
c3RzLAorICAgICAgICAgICAgc2Vjb25kX3Rlc3RfZmFpbHVyZXM9W10sCisgICAgICAgICAgICBj
bGVhbl90ZXN0X2ZhaWx1cmVzPVtdKQorCisgICAgICAgIHNlbGYuX3J1bl9hbmRfZXhwZWN0X3Bh
dGNoX2FuYWx5c2lzX3Jlc3VsdChjb21taXRfcXVldWUsIFBhdGNoQW5hbHlzaXNSZXN1bHQuREVG
RVIsIGV4cGVjdF9jbGVhbl90ZXN0c190b19ydW49VHJ1ZSwgZXhwZWN0ZWRfZmFpbHVyZV9zdGF0
dXNfaWQ9MSkKKworICAgIGRlZiB0ZXN0X2ZpcnN0X2ZhaWx1cmVfbGltaXRfd2l0aF9zb21lX3Ry
ZWVfcmVkbmVzcyhzZWxmKToKKyAgICAgICAgY29tbWl0X3F1ZXVlID0gTW9ja1NpbXBsZVRlc3RQ
bGFuQ29tbWl0UXVldWUoCisgICAgICAgICAgICBmaXJzdF90ZXN0X2ZhaWx1cmVzPV9sb3RzX29m
X2ZhaWxpbmdfdGVzdHMsCisgICAgICAgICAgICBzZWNvbmRfdGVzdF9mYWlsdXJlcz1bIkZhaWwx
IiwgIkZhaWwyIiwgIkZhaWwzIl0sCisgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPVsi
RmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMiXSkKKworICAgICAgICBzZWxmLl9ydW5fYW5kX2V4cGVj
dF9wYXRjaF9hbmFseXNpc19yZXN1bHQoY29tbWl0X3F1ZXVlLCBQYXRjaEFuYWx5c2lzUmVzdWx0
LkRFRkVSLCBleHBlY3RfY2xlYW5fdGVzdHNfdG9fcnVuPVRydWUsIGV4cGVjdGVkX2ZhaWx1cmVf
c3RhdHVzX2lkPTEpCisKKyAgICBkZWYgdGVzdF9zZWNvbmRfZmFpbHVyZV9saW1pdChzZWxmKToK
KyAgICAgICAgIyBUaGVyZSBuZWVkIHRvIGJlIHNvbWUgZmFpbHVyZXMgaW4gdGhlIGZpcnN0IHNl
dCBvZiB0ZXN0cywgb3IgaXQgd29uJ3QgZXZlbiBtYWtlIGl0IHRvIHRoZSBzZWNvbmQgdGVzdC4K
KyAgICAgICAgY29tbWl0X3F1ZXVlID0gTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUoCisg
ICAgICAgICAgICBmaXJzdF90ZXN0X2ZhaWx1cmVzPVsiRmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMi
XSwKKyAgICAgICAgICAgIHNlY29uZF90ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdfdGVz
dHMsCisgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPVsiRmFpbDEiLCAiRmFpbDIiLCAi
RmFpbDMiXSkKKworICAgICAgICBzZWxmLl9ydW5fYW5kX2V4cGVjdF9wYXRjaF9hbmFseXNpc19y
ZXN1bHQoY29tbWl0X3F1ZXVlLCBQYXRjaEFuYWx5c2lzUmVzdWx0LkRFRkVSLCBleHBlY3RfY2xl
YW5fdGVzdHNfdG9fcnVuPVRydWUsIGV4cGVjdGVkX2ZhaWx1cmVfc3RhdHVzX2lkPTIpCisKKyAg
ICBkZWYgdGVzdF90cmVlX2ZhaWx1cmVfbGltaXRfd2l0aF9wYXRjaF90aGF0X3BvdGVudGlhbGx5
X2ZpeGVzX3NvbWVfcmVkbmVzcyhzZWxmKToKKyAgICAgICAgY29tbWl0X3F1ZXVlID0gTW9ja1Np
bXBsZVRlc3RQbGFuQ29tbWl0UXVldWUoCisgICAgICAgICAgICBmaXJzdF90ZXN0X2ZhaWx1cmVz
PVsiRmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMiXSwKKyAgICAgICAgICAgIHNlY29uZF90ZXN0X2Zh
aWx1cmVzPVsiRmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMiXSwKKyAgICAgICAgICAgIGNsZWFuX3Rl
c3RfZmFpbHVyZXM9X2xvdHNfb2ZfZmFpbGluZ190ZXN0cykKKworICAgICAgICAjIFVuZm9ydHVu
YXRlbHkgdGhlcmUgYXJlIGNhc2VzIHdoZXJlIHRoZSBjbGVhbiBidWlsZCB3aWxsIHJhbmRvbWx5
IGZhaWwgZW5vdWdoIHRlc3RzIHRvIGhpdCB0aGUgZmFpbHVyZSBsaW1pdC4KKyAgICAgICAgIyBX
aXRoIHRoYXQgaW4gbWluZCwgd2UgY2FuJ3QgYWN0dWFsbHkga25vdyB0aGF0IHRoaXMgcGF0Y2gg
aXMgZ29vZCBvciBiYWQgdW50aWwgd2Ugc2VlIGEgY2xlYW4gcnVuIHRoYXQgZG9lc24ndAorICAg
ICAgICAjIGV4Y2VlZCB0aGUgZmFpbHVyZSBsaW1pdC4KKyAgICAgICAgc2VsZi5fcnVuX2FuZF9l
eHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0KGNvbW1pdF9xdWV1ZSwgUGF0Y2hBbmFseXNpc1Jl
c3VsdC5ERUZFUiwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1UcnVlKQorCisgICAgZGVmIHRl
c3RfZmlyc3RfYW5kX3NlY29uZF9mYWlsdXJlX2xpbWl0KHNlbGYpOgorICAgICAgICBjb21taXRf
cXVldWUgPSBNb2NrU2ltcGxlVGVzdFBsYW5Db21taXRRdWV1ZSgKKyAgICAgICAgICAgIGZpcnN0
X3Rlc3RfZmFpbHVyZXM9X2xvdHNfb2ZfZmFpbGluZ190ZXN0cywKKyAgICAgICAgICAgIHNlY29u
ZF90ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdfdGVzdHMsCisgICAgICAgICAgICBjbGVh
bl90ZXN0X2ZhaWx1cmVzPVtdKQorCisgICAgICAgIHNlbGYuX3J1bl9hbmRfZXhwZWN0X3BhdGNo
X2FuYWx5c2lzX3Jlc3VsdChjb21taXRfcXVldWUsIFBhdGNoQW5hbHlzaXNSZXN1bHQuRkFJTCwg
ZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1UcnVlLCBleHBlY3RlZF9mYWlsdXJlX3N0YXR1c19p
ZD0xKQorCisgICAgZGVmIHRlc3RfZmlyc3RfYW5kX2NsZWFuX2ZhaWx1cmVfbGltaXQoc2VsZik6
CisgICAgICAgIGNvbW1pdF9xdWV1ZSA9IE1vY2tTaW1wbGVUZXN0UGxhbkNvbW1pdFF1ZXVlKAor
ICAgICAgICAgICAgZmlyc3RfdGVzdF9mYWlsdXJlcz1fbG90c19vZl9mYWlsaW5nX3Rlc3RzLAor
ICAgICAgICAgICAgc2Vjb25kX3Rlc3RfZmFpbHVyZXM9W10sCisgICAgICAgICAgICBjbGVhbl90
ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdfdGVzdHMpCisKKyAgICAgICAgc2VsZi5fcnVu
X2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0KGNvbW1pdF9xdWV1ZSwgUGF0Y2hBbmFs
eXNpc1Jlc3VsdC5ERUZFUiwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1UcnVlKQorCisgICAg
ZGVmIHRlc3RfZmlyc3Rfc2Vjb25kX2FuZF9jbGVhbl9mYWlsdXJlX2xpbWl0KHNlbGYpOgogICAg
ICAgICBjb21taXRfcXVldWUgPSBNb2NrU2ltcGxlVGVzdFBsYW5Db21taXRRdWV1ZSgKLSAgICAg
ICAgICAgIGZpcnN0X3Rlc3RfZmFpbHVyZXM9bG90c19vZl9mYWlsaW5nX3Rlc3RzLAotICAgICAg
ICAgICAgc2Vjb25kX3Rlc3RfZmFpbHVyZXM9bG90c19vZl9mYWlsaW5nX3Rlc3RzLAotICAgICAg
ICAgICAgY2xlYW5fdGVzdF9mYWlsdXJlcz1sb3RzX29mX2ZhaWxpbmdfdGVzdHMpCisgICAgICAg
ICAgICBmaXJzdF90ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdfdGVzdHMsCisgICAgICAg
ICAgICBzZWNvbmRfdGVzdF9mYWlsdXJlcz1fbG90c19vZl9mYWlsaW5nX3Rlc3RzLAorICAgICAg
ICAgICAgY2xlYW5fdGVzdF9mYWlsdXJlcz1fbG90c19vZl9mYWlsaW5nX3Rlc3RzKQogCiAgICAg
ICAgIHNlbGYuX3J1bl9hbmRfZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3VsdChjb21taXRfcXVl
dWUsIFBhdGNoQW5hbHlzaXNSZXN1bHQuREVGRVIsIGV4cGVjdF9jbGVhbl90ZXN0c190b19ydW49
VHJ1ZSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRj
aGFuYWx5c2lzdGFzay5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hh
bmFseXNpc3Rhc2sucHkKaW5kZXggNmRjMDgzZi4uY2VjODczYiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CkBAIC0xODIs
MTggKzE4Miw2IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgIHNl
Y29uZF9mYWlsaW5nX3Rlc3RzID0gW10gaWYgbm90IHNlY29uZCBlbHNlIHNlY29uZC5mYWlsaW5n
X3Rlc3RzKCkKICAgICAgICAgcmV0dXJuIGZpcnN0X2ZhaWxpbmdfdGVzdHMgIT0gc2Vjb25kX2Zh
aWxpbmdfdGVzdHMKIAotICAgIGRlZiBfY29udGludWVfdGVzdGluZ19wYXRjaF90aGF0X2V4Y2Vl
ZGVkX2ZhaWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jfc2Vjb25kX3RyeShzZWxmLCByZXN1bHRzLCBy
ZXN1bHRzX2FyY2hpdmUsIHNjcmlwdF9lcnJvcik6Ci0gICAgICAgIHNlbGYuX2J1aWxkX2FuZF90
ZXN0X3dpdGhvdXRfcGF0Y2goKQotCi0gICAgICAgICMgSWYgd2UndmUgbWFkZSBpdCBoZXJlLCB0
aGVuIG1hbnkgKDUwMCkgdGVzdHMgYXJlIGZhaWxpbmcgd2l0aCB0aGUgcGF0Y2ggYXBwbGllZCwg
YnV0Ci0gICAgICAgICMgaWYgdGhlIGNsZWFuIHRyZWUgaXMgYWxzbyBmYWlsaW5nIG1hbnkgdGVz
dHMsIGV2ZW4gaWYgaXQncyBub3QgcXVpdGUgYXMgbWFueSAoNDk1KSwKLSAgICAgICAgIyB0aGVu
IHdlIGNhbid0IGJlIGNlcnRhaW4gdGhhdCB0aGUgZGlzY3JlcGFuY3kgaXNuJ3QgZHVlIHRvIGZs
YWtpbmVzcywgYW5kIGhlbmNlIHdlIG11c3QKLSAgICAgICAgIyBkZWZlciBqdWRnZW1lbnQuCi0g
ICAgICAgIGlmIChsZW4ocmVzdWx0cy5mYWlsaW5nX3Rlc3RzKCkpIC0gbGVuKHNlbGYuX2RlbGVn
YXRlLnRlc3RfcmVzdWx0cygpLmZhaWxpbmdfdGVzdHMoKSkpIDw9IDU6Ci0gICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKLQotICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShyZXN1bHRz
X2FyY2hpdmUsIHJlc3VsdHMsIHNjcmlwdF9lcnJvcikKLQogICAgIGRlZiBfc2hvdWxkX2RlZmVy
X3BhdGNoX29yX3Rocm93KHNlbGYsIGZhaWx1cmVzX3dpdGhfcGF0Y2gsIHJlc3VsdHNfYXJjaGl2
ZV9mb3JfZmFpbHVyZXNfd2l0aF9wYXRjaCwgc2NyaXB0X2Vycm9yLCBmYWlsdXJlX2lkKToKICAg
ICAgICAgc2VsZi5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCgpCiAgICAgICAgIGNsZWFu
X3RyZWVfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpCkBAIC0yMjMsMTAg
KzIxMSw3IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgIGZpcnN0
X3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJvcgogICAgICAgICBmaXJzdF9mYWlsdXJl
X3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNfaWQKIAotICAgICAgICBpZiBmaXJzdF9y
ZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6Ci0gICAgICAgICAgICByZXR1
cm4gc2VsZi5fY29udGludWVfdGVzdGluZ19wYXRjaF90aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGlt
aXRfb25fZmlyc3Rfb3Jfc2Vjb25kX3RyeShmaXJzdF9yZXN1bHRzLCBmaXJzdF9yZXN1bHRzX2Fy
Y2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvcikKLQotICAgICAgICBpZiBzZWxmLl90ZXN0KCk6Cisg
ICAgICAgIGlmIHNlbGYuX3Rlc3QoKSBhbmQgbm90IGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90
ZXN0X2ZhaWx1cmVfbGltaXQoKToKICAgICAgICAgICAgICMgT25seSByZXBvcnQgZmxha3kgdGVz
dHMgaWYgd2Ugd2VyZSBzdWNjZXNzZnVsIGF0IHBhcnNpbmcgcmVzdWx0cy5qc29uIGFuZCBhcmNo
aXZpbmcgcmVzdWx0cy4KICAgICAgICAgICAgIGlmIGZpcnN0X3Jlc3VsdHMgYW5kIGZpcnN0X3Jl
c3VsdHNfYXJjaGl2ZToKICAgICAgICAgICAgICAgICBzZWxmLl9yZXBvcnRfZmxha3lfdGVzdHMo
Zmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hp
dmUpCkBAIC0yMzcsOCArMjIyLDI0IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6
CiAgICAgICAgIHNlY29uZF9zY3JpcHRfZXJyb3IgPSBzZWxmLl9zY3JpcHRfZXJyb3IKICAgICAg
ICAgc2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkID0gc2VsZi5mYWlsdXJlX3N0YXR1c19pZAogCi0g
ICAgICAgIGlmIHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6
Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fY29udGludWVfdGVzdGluZ19wYXRjaF90aGF0X2V4
Y2VlZGVkX2ZhaWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jfc2Vjb25kX3RyeShzZWNvbmRfcmVzdWx0
cywgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSwgc2Vjb25kX3NjcmlwdF9lcnJvcikKKyAgICAgICAg
aWYgc2Vjb25kX3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKSBhbmQgZmly
c3RfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgorICAgICAgICAgICAg
c2VsZi5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91dF9wYXRjaCgpCisgICAgICAgICAgICBjbGVhbl90
cmVlX3Jlc3VsdHMgPSBzZWxmLl9kZWxlZ2F0ZS50ZXN0X3Jlc3VsdHMoKQorCisgICAgICAgICAg
ICBpZiAobGVuKGZpcnN0X3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKSAtIGxlbihjbGVhbl90cmVl
X3Jlc3VsdHMuZmFpbGluZ190ZXN0cygpKSkgPD0gNToKKyAgICAgICAgICAgICAgICByZXR1cm4g
RmFsc2UKKworICAgICAgICAgICAgc2VsZi5mYWlsdXJlX3N0YXR1c19pZCA9IGZpcnN0X2ZhaWx1
cmVfc3RhdHVzX2lkCisKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKGZp
cnN0X3Jlc3VsdHNfYXJjaGl2ZSwgZmlyc3RfcmVzdWx0cywgZmlyc3Rfc2NyaXB0X2Vycm9yKQor
CisgICAgICAgIGlmIHNlY29uZF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0
KCkgYW5kIG5vdCBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6
CisgICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coZmlyc3RfcmVz
dWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0
X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0dXNfaWQpCisgICAgICAgICAgICByZXR1
cm4gRmFsc2UKKworICAgICAgICBpZiBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWls
dXJlX2xpbWl0KCkgYW5kIG5vdCBzZWNvbmRfcmVzdWx0cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVy
ZV9saW1pdCgpOgorICAgICAgICAgICAgc2VsZi5fc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93
KHNlY29uZF9yZXN1bHRzLmZhaWxpbmdfdGVzdF9yZXN1bHRzKCksIHNlY29uZF9yZXN1bHRzX2Fy
Y2hpdmUsIHNlY29uZF9zY3JpcHRfZXJyb3IsIHNlY29uZF9mYWlsdXJlX3N0YXR1c19pZCkKKyAg
ICAgICAgICAgIHJldHVybiBGYWxzZQogCiAgICAgICAgIGlmIHNlbGYuX3Jlc3VsdHNfZmFpbGVk
X2RpZmZlcmVudF90ZXN0cyhmaXJzdF9yZXN1bHRzLCBzZWNvbmRfcmVzdWx0cyk6CiAgICAgICAg
ICAgICBmaXJzdF9mYWlsaW5nX3Jlc3VsdHNfc2V0ID0gZnJvemVuc2V0KGZpcnN0X3Jlc3VsdHMu
ZmFpbGluZ190ZXN0X3Jlc3VsdHMoKSkKLS0gCjIuMS4xIChBcHBsZSBHaXQtNTEpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241720</attachid>
            <date>2014-11-17 09:53:48 -0800</date>
            <delta_ts>2014-11-17 11:06:38 -0800</delta_ts>
            <desc>Removes the unnecessary not clauses, and removes the patch file from the patch.</desc>
            <filename>0001-Having-30-flaky-failures-breaks-EWS.patch</filename>
            <type>text/plain</type>
            <size>11305</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSBjNTYxNWY4Y2NhMTE3ZDMwYTVkNjVhNWU1ODYzZmMyZDAwMTVjYWI1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBNb24sIDE3IE5vdiAyMDE0IDA5OjUyOjEwIC0wODAwClN1YmplY3Q6IFtQQVRDSF0g
SGF2aW5nIDMwKyBmbGFreSBmYWlsdXJlcyBicmVha3MgRVdTCiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NzQzCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
CkFkZHMgdGVzdHMgdG8gZW5zdXJlIHRoYXQgdGhlIHByb2JsZW0gaGFzIGJlZW4gc29sdmVkLgoq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5Ogoo
dGVzdF9maXJzdF9mYWlsdXJlX2xpbWl0KToKKHRlc3RfZmlyc3RfZmFpbHVyZV9saW1pdF93aXRo
X3NvbWVfdHJlZV9yZWRuZXNzKToKKHRlc3Rfc2Vjb25kX2ZhaWx1cmVfbGltaXQpOgoodGVzdF90
cmVlX2ZhaWx1cmVfbGltaXRfd2l0aF9wYXRjaF90aGF0X3BvdGVudGlhbGx5X2ZpeGVzX3NvbWVf
cmVkbmVzcyk6Cih0ZXN0X2ZpcnN0X2FuZF9zZWNvbmRfZmFpbHVyZV9saW1pdCk6Cih0ZXN0X2Zp
cnN0X2FuZF9jbGVhbl9mYWlsdXJlX2xpbWl0KToKKHRlc3RfZmlyc3Rfc2Vjb25kX2FuZF9jbGVh
bl9mYWlsdXJlX2xpbWl0KToKKHRlc3RfdmVyeV9yZWRfdHJlZV9yZXRyeSk6IERlbGV0ZWQuClJl
YWxseSB0aGlzIHdhcyByZW5hbWVkIHRvIHRlc3RfZmlyc3Rfc2Vjb25kX2FuZF9jbGVhbl9mYWls
dXJlX2xpbWl0LgoqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2su
cHk6Ck1ha2VzIHRoZSBhcHByb3ByaWF0ZSBjaGFuZ2VzIHRvIFBhdGNoQW5hbHlzaXNUYXNrIHRv
IG1ha2Ugc3VyZSB0aGF0CmV2ZW4gd2hlbiB0aGUgZmlyc3QgdGVzdCBydW4gaGl0cyB0aGUgZmFp
bHVyZSBsaW1pdCwgaXQgd2lsbCBzdGlsbCB0cnkKYSBzZWNvbmQgcnVuLgooUGF0Y2hBbmFseXNp
c1Rhc2suX3Jlc3VsdHNfZmFpbGVkX2RpZmZlcmVudF90ZXN0cyk6CihQYXRjaEFuYWx5c2lzVGFz
ay5fdGVzdF9wYXRjaCk6CihQYXRjaEFuYWx5c2lzVGFzay5fY29udGludWVfdGVzdGluZ19wYXRj
aF90aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jfc2Vjb25kX3RyeSk6IERl
bGV0ZWQuCi0tLQogVG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAyNiArKysrKysrKysKIC4uLi93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRh
c2tfdW5pdHRlc3QucHkgIHwgNjQgKysrKysrKysrKysrKysrKysrKystLQogLi4uL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkgfCAzNSArKysrKystLS0tLS0K
IDMgZmlsZXMgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQoKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1MDk5YTZj
Li41MWIyM2JhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTQtMTEtMTQgIEpha2UgTmllbHNlbiAgPGphY29iX25p
ZWxzZW5AYXBwbGUuY29tPgorCisgICAgICAgIEhhdmluZyAzMCsgZmxha3kgZmFpbHVyZXMgYnJl
YWtzIEVXUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTM4NzQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkcyB0ZXN0cyB0byBlbnN1cmUgdGhhdCB0aGUgcHJvYmxlbSBoYXMgYmVlbiBzb2x2ZWQuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2tfdW5pdHRl
c3QucHk6CisgICAgICAgICh0ZXN0X2ZpcnN0X2ZhaWx1cmVfbGltaXQpOgorICAgICAgICAodGVz
dF9maXJzdF9mYWlsdXJlX2xpbWl0X3dpdGhfc29tZV90cmVlX3JlZG5lc3MpOgorICAgICAgICAo
dGVzdF9zZWNvbmRfZmFpbHVyZV9saW1pdCk6CisgICAgICAgICh0ZXN0X3RyZWVfZmFpbHVyZV9s
aW1pdF93aXRoX3BhdGNoX3RoYXRfcG90ZW50aWFsbHlfZml4ZXNfc29tZV9yZWRuZXNzKToKKyAg
ICAgICAgKHRlc3RfZmlyc3RfYW5kX3NlY29uZF9mYWlsdXJlX2xpbWl0KToKKyAgICAgICAgKHRl
c3RfZmlyc3RfYW5kX2NsZWFuX2ZhaWx1cmVfbGltaXQpOgorICAgICAgICAodGVzdF9maXJzdF9z
ZWNvbmRfYW5kX2NsZWFuX2ZhaWx1cmVfbGltaXQpOgorICAgICAgICAodGVzdF92ZXJ5X3JlZF90
cmVlX3JldHJ5KTogRGVsZXRlZC4KKyAgICAgICAgUmVhbGx5IHRoaXMgd2FzIHJlbmFtZWQgdG8g
dGVzdF9maXJzdF9zZWNvbmRfYW5kX2NsZWFuX2ZhaWx1cmVfbGltaXQuCisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weToKKyAgICAgICAgTWFr
ZXMgdGhlIGFwcHJvcHJpYXRlIGNoYW5nZXMgdG8gUGF0Y2hBbmFseXNpc1Rhc2sgdG8gbWFrZSBz
dXJlIHRoYXQKKyAgICAgICAgZXZlbiB3aGVuIHRoZSBmaXJzdCB0ZXN0IHJ1biBoaXRzIHRoZSBm
YWlsdXJlIGxpbWl0LCBpdCB3aWxsIHN0aWxsIHRyeQorICAgICAgICBhIHNlY29uZCBydW4uCisg
ICAgICAgIChQYXRjaEFuYWx5c2lzVGFzay5fcmVzdWx0c19mYWlsZWRfZGlmZmVyZW50X3Rlc3Rz
KToKKyAgICAgICAgKFBhdGNoQW5hbHlzaXNUYXNrLl90ZXN0X3BhdGNoKToKKyAgICAgICAgKFBh
dGNoQW5hbHlzaXNUYXNrLl9jb250aW51ZV90ZXN0aW5nX3BhdGNoX3RoYXRfZXhjZWVkZWRfZmFp
bHVyZV9saW1pdF9vbl9maXJzdF9vcl9zZWNvbmRfdHJ5KTogRGVsZXRlZC4KKwogMjAxNC0xMS0x
NCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc2hv
cnRjdXQgbWFjcm9zIHRvIE1hYyBUZXN0RXhwZWN0YXRpb25zCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFza191bml0dGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5
CmluZGV4IDMwMmE1MzYuLjk3NmQ1ZWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrX3VuaXR0ZXN0LnB5CkBAIC0xNTks
NiArMTU5LDkgQEAgY2xhc3MgR29sZGVuU2NyaXB0RXJyb3IoU2NyaXB0RXJyb3IpOgogICAgIHBh
c3MKIAogCitfbG90c19vZl9mYWlsaW5nX3Rlc3RzID0gbWFwKGxhbWJkYSBudW06ICJ0ZXN0LSVz
Lmh0bWwiICUgbnVtLCByYW5nZSgwLCAxMDApKQorCisKIGNsYXNzIENvbW1pdFF1ZXVlVGFza1Rl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBfcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5h
bHlzaXNfcmVzdWx0KHNlbGYsIGNvbW1pdF9xdWV1ZSwgZXhwZWN0ZWRfYW5hbHlzaXNfcmVzdWx0
LCBleHBlY3RlZF9yZXBvcnRlZF9mbGFreV90ZXN0cz1bXSwgZXhwZWN0X2NsZWFuX3Rlc3RzX3Rv
X3J1bj1GYWxzZSwgZXhwZWN0ZWRfZmFpbHVyZV9zdGF0dXNfaWQ9MCk6CiAgICAgICAgIHRvb2wg
PSBNb2NrVG9vbChsb2dfZXhlY3V0aXZlPVRydWUpCkBAIC0zOTgsMTIgKzQwMSw2MyBAQCBjb21t
YW5kX2ZhaWxlZDogZmFpbHVyZV9tZXNzYWdlPSdVbmFibGUgdG8gbGFuZCBwYXRjaCcgc2NyaXB0
X2Vycm9yPSdNT0NLIGxhbmQgZgogCiAgICAgICAgIHNlbGYuX3J1bl9hbmRfZXhwZWN0X3BhdGNo
X2FuYWx5c2lzX3Jlc3VsdChjb21taXRfcXVldWUsIFBhdGNoQW5hbHlzaXNSZXN1bHQuUEFTUywg
ZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1UcnVlKQogCi0gICAgZGVmIHRlc3RfdmVyeV9yZWRf
dHJlZV9yZXRyeShzZWxmKToKLSAgICAgICAgbG90c19vZl9mYWlsaW5nX3Rlc3RzID0gbWFwKGxh
bWJkYSBudW06ICJ0ZXN0LSVzLmh0bWwiICUgbnVtLCByYW5nZSgwLCAxMDApKQorICAgIGRlZiB0
ZXN0X2ZpcnN0X2ZhaWx1cmVfbGltaXQoc2VsZik6CisgICAgICAgIGNvbW1pdF9xdWV1ZSA9IE1v
Y2tTaW1wbGVUZXN0UGxhbkNvbW1pdFF1ZXVlKAorICAgICAgICAgICAgZmlyc3RfdGVzdF9mYWls
dXJlcz1fbG90c19vZl9mYWlsaW5nX3Rlc3RzLAorICAgICAgICAgICAgc2Vjb25kX3Rlc3RfZmFp
bHVyZXM9W10sCisgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPVtdKQorCisgICAgICAg
IHNlbGYuX3J1bl9hbmRfZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3VsdChjb21taXRfcXVldWUs
IFBhdGNoQW5hbHlzaXNSZXN1bHQuREVGRVIsIGV4cGVjdF9jbGVhbl90ZXN0c190b19ydW49VHJ1
ZSwgZXhwZWN0ZWRfZmFpbHVyZV9zdGF0dXNfaWQ9MSkKKworICAgIGRlZiB0ZXN0X2ZpcnN0X2Zh
aWx1cmVfbGltaXRfd2l0aF9zb21lX3RyZWVfcmVkbmVzcyhzZWxmKToKKyAgICAgICAgY29tbWl0
X3F1ZXVlID0gTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUoCisgICAgICAgICAgICBmaXJz
dF90ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdfdGVzdHMsCisgICAgICAgICAgICBzZWNv
bmRfdGVzdF9mYWlsdXJlcz1bIkZhaWwxIiwgIkZhaWwyIiwgIkZhaWwzIl0sCisgICAgICAgICAg
ICBjbGVhbl90ZXN0X2ZhaWx1cmVzPVsiRmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMiXSkKKworICAg
ICAgICBzZWxmLl9ydW5fYW5kX2V4cGVjdF9wYXRjaF9hbmFseXNpc19yZXN1bHQoY29tbWl0X3F1
ZXVlLCBQYXRjaEFuYWx5c2lzUmVzdWx0LkRFRkVSLCBleHBlY3RfY2xlYW5fdGVzdHNfdG9fcnVu
PVRydWUsIGV4cGVjdGVkX2ZhaWx1cmVfc3RhdHVzX2lkPTEpCisKKyAgICBkZWYgdGVzdF9zZWNv
bmRfZmFpbHVyZV9saW1pdChzZWxmKToKKyAgICAgICAgIyBUaGVyZSBuZWVkIHRvIGJlIHNvbWUg
ZmFpbHVyZXMgaW4gdGhlIGZpcnN0IHNldCBvZiB0ZXN0cywgb3IgaXQgd29uJ3QgZXZlbiBtYWtl
IGl0IHRvIHRoZSBzZWNvbmQgdGVzdC4KKyAgICAgICAgY29tbWl0X3F1ZXVlID0gTW9ja1NpbXBs
ZVRlc3RQbGFuQ29tbWl0UXVldWUoCisgICAgICAgICAgICBmaXJzdF90ZXN0X2ZhaWx1cmVzPVsi
RmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMiXSwKKyAgICAgICAgICAgIHNlY29uZF90ZXN0X2ZhaWx1
cmVzPV9sb3RzX29mX2ZhaWxpbmdfdGVzdHMsCisgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1
cmVzPVsiRmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMiXSkKKworICAgICAgICBzZWxmLl9ydW5fYW5k
X2V4cGVjdF9wYXRjaF9hbmFseXNpc19yZXN1bHQoY29tbWl0X3F1ZXVlLCBQYXRjaEFuYWx5c2lz
UmVzdWx0LkRFRkVSLCBleHBlY3RfY2xlYW5fdGVzdHNfdG9fcnVuPVRydWUsIGV4cGVjdGVkX2Zh
aWx1cmVfc3RhdHVzX2lkPTIpCisKKyAgICBkZWYgdGVzdF90cmVlX2ZhaWx1cmVfbGltaXRfd2l0
aF9wYXRjaF90aGF0X3BvdGVudGlhbGx5X2ZpeGVzX3NvbWVfcmVkbmVzcyhzZWxmKToKKyAgICAg
ICAgY29tbWl0X3F1ZXVlID0gTW9ja1NpbXBsZVRlc3RQbGFuQ29tbWl0UXVldWUoCisgICAgICAg
ICAgICBmaXJzdF90ZXN0X2ZhaWx1cmVzPVsiRmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMiXSwKKyAg
ICAgICAgICAgIHNlY29uZF90ZXN0X2ZhaWx1cmVzPVsiRmFpbDEiLCAiRmFpbDIiLCAiRmFpbDMi
XSwKKyAgICAgICAgICAgIGNsZWFuX3Rlc3RfZmFpbHVyZXM9X2xvdHNfb2ZfZmFpbGluZ190ZXN0
cykKKworICAgICAgICAjIFVuZm9ydHVuYXRlbHkgdGhlcmUgYXJlIGNhc2VzIHdoZXJlIHRoZSBj
bGVhbiBidWlsZCB3aWxsIHJhbmRvbWx5IGZhaWwgZW5vdWdoIHRlc3RzIHRvIGhpdCB0aGUgZmFp
bHVyZSBsaW1pdC4KKyAgICAgICAgIyBXaXRoIHRoYXQgaW4gbWluZCwgd2UgY2FuJ3QgYWN0dWFs
bHkga25vdyB0aGF0IHRoaXMgcGF0Y2ggaXMgZ29vZCBvciBiYWQgdW50aWwgd2Ugc2VlIGEgY2xl
YW4gcnVuIHRoYXQgZG9lc24ndAorICAgICAgICAjIGV4Y2VlZCB0aGUgZmFpbHVyZSBsaW1pdC4K
KyAgICAgICAgc2VsZi5fcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0KGNvbW1p
dF9xdWV1ZSwgUGF0Y2hBbmFseXNpc1Jlc3VsdC5ERUZFUiwgZXhwZWN0X2NsZWFuX3Rlc3RzX3Rv
X3J1bj1UcnVlKQorCisgICAgZGVmIHRlc3RfZmlyc3RfYW5kX3NlY29uZF9mYWlsdXJlX2xpbWl0
KHNlbGYpOgorICAgICAgICBjb21taXRfcXVldWUgPSBNb2NrU2ltcGxlVGVzdFBsYW5Db21taXRR
dWV1ZSgKKyAgICAgICAgICAgIGZpcnN0X3Rlc3RfZmFpbHVyZXM9X2xvdHNfb2ZfZmFpbGluZ190
ZXN0cywKKyAgICAgICAgICAgIHNlY29uZF90ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdf
dGVzdHMsCisgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPVtdKQorCisgICAgICAgIHNl
bGYuX3J1bl9hbmRfZXhwZWN0X3BhdGNoX2FuYWx5c2lzX3Jlc3VsdChjb21taXRfcXVldWUsIFBh
dGNoQW5hbHlzaXNSZXN1bHQuRkFJTCwgZXhwZWN0X2NsZWFuX3Rlc3RzX3RvX3J1bj1UcnVlLCBl
eHBlY3RlZF9mYWlsdXJlX3N0YXR1c19pZD0xKQorCisgICAgZGVmIHRlc3RfZmlyc3RfYW5kX2Ns
ZWFuX2ZhaWx1cmVfbGltaXQoc2VsZik6CisgICAgICAgIGNvbW1pdF9xdWV1ZSA9IE1vY2tTaW1w
bGVUZXN0UGxhbkNvbW1pdFF1ZXVlKAorICAgICAgICAgICAgZmlyc3RfdGVzdF9mYWlsdXJlcz1f
bG90c19vZl9mYWlsaW5nX3Rlc3RzLAorICAgICAgICAgICAgc2Vjb25kX3Rlc3RfZmFpbHVyZXM9
W10sCisgICAgICAgICAgICBjbGVhbl90ZXN0X2ZhaWx1cmVzPV9sb3RzX29mX2ZhaWxpbmdfdGVz
dHMpCisKKyAgICAgICAgc2VsZi5fcnVuX2FuZF9leHBlY3RfcGF0Y2hfYW5hbHlzaXNfcmVzdWx0
KGNvbW1pdF9xdWV1ZSwgUGF0Y2hBbmFseXNpc1Jlc3VsdC5ERUZFUiwgZXhwZWN0X2NsZWFuX3Rl
c3RzX3RvX3J1bj1UcnVlKQorCisgICAgZGVmIHRlc3RfZmlyc3Rfc2Vjb25kX2FuZF9jbGVhbl9m
YWlsdXJlX2xpbWl0KHNlbGYpOgogICAgICAgICBjb21taXRfcXVldWUgPSBNb2NrU2ltcGxlVGVz
dFBsYW5Db21taXRRdWV1ZSgKLSAgICAgICAgICAgIGZpcnN0X3Rlc3RfZmFpbHVyZXM9bG90c19v
Zl9mYWlsaW5nX3Rlc3RzLAotICAgICAgICAgICAgc2Vjb25kX3Rlc3RfZmFpbHVyZXM9bG90c19v
Zl9mYWlsaW5nX3Rlc3RzLAotICAgICAgICAgICAgY2xlYW5fdGVzdF9mYWlsdXJlcz1sb3RzX29m
X2ZhaWxpbmdfdGVzdHMpCisgICAgICAgICAgICBmaXJzdF90ZXN0X2ZhaWx1cmVzPV9sb3RzX29m
X2ZhaWxpbmdfdGVzdHMsCisgICAgICAgICAgICBzZWNvbmRfdGVzdF9mYWlsdXJlcz1fbG90c19v
Zl9mYWlsaW5nX3Rlc3RzLAorICAgICAgICAgICAgY2xlYW5fdGVzdF9mYWlsdXJlcz1fbG90c19v
Zl9mYWlsaW5nX3Rlc3RzKQogCiAgICAgICAgIHNlbGYuX3J1bl9hbmRfZXhwZWN0X3BhdGNoX2Fu
YWx5c2lzX3Jlc3VsdChjb21taXRfcXVldWUsIFBhdGNoQW5hbHlzaXNSZXN1bHQuREVGRVIsIGV4
cGVjdF9jbGVhbl90ZXN0c190b19ydW49VHJ1ZSkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkKaW5kZXggNmRjMDgzZi4uZmMy
OTk4NSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFu
YWx5c2lzdGFzay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNo
YW5hbHlzaXN0YXNrLnB5CkBAIC0xODIsMTggKzE4Miw2IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNU
YXNrKG9iamVjdCk6CiAgICAgICAgIHNlY29uZF9mYWlsaW5nX3Rlc3RzID0gW10gaWYgbm90IHNl
Y29uZCBlbHNlIHNlY29uZC5mYWlsaW5nX3Rlc3RzKCkKICAgICAgICAgcmV0dXJuIGZpcnN0X2Zh
aWxpbmdfdGVzdHMgIT0gc2Vjb25kX2ZhaWxpbmdfdGVzdHMKIAotICAgIGRlZiBfY29udGludWVf
dGVzdGluZ19wYXRjaF90aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jfc2Vj
b25kX3RyeShzZWxmLCByZXN1bHRzLCByZXN1bHRzX2FyY2hpdmUsIHNjcmlwdF9lcnJvcik6Ci0g
ICAgICAgIHNlbGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhvdXRfcGF0Y2goKQotCi0gICAgICAgICMg
SWYgd2UndmUgbWFkZSBpdCBoZXJlLCB0aGVuIG1hbnkgKDUwMCkgdGVzdHMgYXJlIGZhaWxpbmcg
d2l0aCB0aGUgcGF0Y2ggYXBwbGllZCwgYnV0Ci0gICAgICAgICMgaWYgdGhlIGNsZWFuIHRyZWUg
aXMgYWxzbyBmYWlsaW5nIG1hbnkgdGVzdHMsIGV2ZW4gaWYgaXQncyBub3QgcXVpdGUgYXMgbWFu
eSAoNDk1KSwKLSAgICAgICAgIyB0aGVuIHdlIGNhbid0IGJlIGNlcnRhaW4gdGhhdCB0aGUgZGlz
Y3JlcGFuY3kgaXNuJ3QgZHVlIHRvIGZsYWtpbmVzcywgYW5kIGhlbmNlIHdlIG11c3QKLSAgICAg
ICAgIyBkZWZlciBqdWRnZW1lbnQuCi0gICAgICAgIGlmIChsZW4ocmVzdWx0cy5mYWlsaW5nX3Rl
c3RzKCkpIC0gbGVuKHNlbGYuX2RlbGVnYXRlLnRlc3RfcmVzdWx0cygpLmZhaWxpbmdfdGVzdHMo
KSkpIDw9IDU6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICByZXR1cm4gc2Vs
Zi5yZXBvcnRfZmFpbHVyZShyZXN1bHRzX2FyY2hpdmUsIHJlc3VsdHMsIHNjcmlwdF9lcnJvcikK
LQogICAgIGRlZiBfc2hvdWxkX2RlZmVyX3BhdGNoX29yX3Rocm93KHNlbGYsIGZhaWx1cmVzX3dp
dGhfcGF0Y2gsIHJlc3VsdHNfYXJjaGl2ZV9mb3JfZmFpbHVyZXNfd2l0aF9wYXRjaCwgc2NyaXB0
X2Vycm9yLCBmYWlsdXJlX2lkKToKICAgICAgICAgc2VsZi5fYnVpbGRfYW5kX3Rlc3Rfd2l0aG91
dF9wYXRjaCgpCiAgICAgICAgIGNsZWFuX3RyZWVfcmVzdWx0cyA9IHNlbGYuX2RlbGVnYXRlLnRl
c3RfcmVzdWx0cygpCkBAIC0yMjMsMTAgKzIxMSw3IEBAIGNsYXNzIFBhdGNoQW5hbHlzaXNUYXNr
KG9iamVjdCk6CiAgICAgICAgIGZpcnN0X3NjcmlwdF9lcnJvciA9IHNlbGYuX3NjcmlwdF9lcnJv
cgogICAgICAgICBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZCA9IHNlbGYuZmFpbHVyZV9zdGF0dXNf
aWQKIAotICAgICAgICBpZiBmaXJzdF9yZXN1bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xp
bWl0KCk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fY29udGludWVfdGVzdGluZ19wYXRjaF90
aGF0X2V4Y2VlZGVkX2ZhaWx1cmVfbGltaXRfb25fZmlyc3Rfb3Jfc2Vjb25kX3RyeShmaXJzdF9y
ZXN1bHRzLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvcikKLQotICAg
ICAgICBpZiBzZWxmLl90ZXN0KCk6CisgICAgICAgIGlmIHNlbGYuX3Rlc3QoKSBhbmQgbm90IGZp
cnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0X2ZhaWx1cmVfbGltaXQoKToKICAgICAgICAgICAg
ICMgT25seSByZXBvcnQgZmxha3kgdGVzdHMgaWYgd2Ugd2VyZSBzdWNjZXNzZnVsIGF0IHBhcnNp
bmcgcmVzdWx0cy5qc29uIGFuZCBhcmNoaXZpbmcgcmVzdWx0cy4KICAgICAgICAgICAgIGlmIGZp
cnN0X3Jlc3VsdHMgYW5kIGZpcnN0X3Jlc3VsdHNfYXJjaGl2ZToKICAgICAgICAgICAgICAgICBz
ZWxmLl9yZXBvcnRfZmxha3lfdGVzdHMoZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0
cygpLCBmaXJzdF9yZXN1bHRzX2FyY2hpdmUpCkBAIC0yMzcsOCArMjIyLDI0IEBAIGNsYXNzIFBh
dGNoQW5hbHlzaXNUYXNrKG9iamVjdCk6CiAgICAgICAgIHNlY29uZF9zY3JpcHRfZXJyb3IgPSBz
ZWxmLl9zY3JpcHRfZXJyb3IKICAgICAgICAgc2Vjb25kX2ZhaWx1cmVfc3RhdHVzX2lkID0gc2Vs
Zi5mYWlsdXJlX3N0YXR1c19pZAogCisgICAgICAgIGlmIHNlY29uZF9yZXN1bHRzLmRpZF9leGNl
ZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCkgYW5kIGZpcnN0X3Jlc3VsdHMuZGlkX2V4Y2VlZF90ZXN0
X2ZhaWx1cmVfbGltaXQoKToKKyAgICAgICAgICAgIHNlbGYuX2J1aWxkX2FuZF90ZXN0X3dpdGhv
dXRfcGF0Y2goKQorICAgICAgICAgICAgY2xlYW5fdHJlZV9yZXN1bHRzID0gc2VsZi5fZGVsZWdh
dGUudGVzdF9yZXN1bHRzKCkKKworICAgICAgICAgICAgaWYgKGxlbihmaXJzdF9yZXN1bHRzLmZh
aWxpbmdfdGVzdHMoKSkgLSBsZW4oY2xlYW5fdHJlZV9yZXN1bHRzLmZhaWxpbmdfdGVzdHMoKSkp
IDw9IDU6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgICAgIHNlbGYu
ZmFpbHVyZV9zdGF0dXNfaWQgPSBmaXJzdF9mYWlsdXJlX3N0YXR1c19pZAorCisgICAgICAgICAg
ICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZShmaXJzdF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0
X3Jlc3VsdHMsIGZpcnN0X3NjcmlwdF9lcnJvcikKKwogICAgICAgICBpZiBzZWNvbmRfcmVzdWx0
cy5kaWRfZXhjZWVkX3Rlc3RfZmFpbHVyZV9saW1pdCgpOgotICAgICAgICAgICAgcmV0dXJuIHNl
bGYuX2NvbnRpbnVlX3Rlc3RpbmdfcGF0Y2hfdGhhdF9leGNlZWRlZF9mYWlsdXJlX2xpbWl0X29u
X2ZpcnN0X29yX3NlY29uZF90cnkoc2Vjb25kX3Jlc3VsdHMsIHNlY29uZF9yZXN1bHRzX2FyY2hp
dmUsIHNlY29uZF9zY3JpcHRfZXJyb3IpCisgICAgICAgICAgICBzZWxmLl9zaG91bGRfZGVmZXJf
cGF0Y2hfb3JfdGhyb3coZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpLCBmaXJz
dF9yZXN1bHRzX2FyY2hpdmUsIGZpcnN0X3NjcmlwdF9lcnJvciwgZmlyc3RfZmFpbHVyZV9zdGF0
dXNfaWQpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICBpZiBmaXJzdF9yZXN1
bHRzLmRpZF9leGNlZWRfdGVzdF9mYWlsdXJlX2xpbWl0KCk6CisgICAgICAgICAgICBzZWxmLl9z
aG91bGRfZGVmZXJfcGF0Y2hfb3JfdGhyb3coc2Vjb25kX3Jlc3VsdHMuZmFpbGluZ190ZXN0X3Jl
c3VsdHMoKSwgc2Vjb25kX3Jlc3VsdHNfYXJjaGl2ZSwgc2Vjb25kX3NjcmlwdF9lcnJvciwgc2Vj
b25kX2ZhaWx1cmVfc3RhdHVzX2lkKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKICAgICAg
ICAgaWYgc2VsZi5fcmVzdWx0c19mYWlsZWRfZGlmZmVyZW50X3Rlc3RzKGZpcnN0X3Jlc3VsdHMs
IHNlY29uZF9yZXN1bHRzKToKICAgICAgICAgICAgIGZpcnN0X2ZhaWxpbmdfcmVzdWx0c19zZXQg
PSBmcm96ZW5zZXQoZmlyc3RfcmVzdWx0cy5mYWlsaW5nX3Rlc3RfcmVzdWx0cygpKQotLSAKMi4x
LjEgKEFwcGxlIEdpdC01MSkKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>