<?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>81986</bug_id>
          
          <creation_ts>2012-03-22 16:10:35 -0700</creation_ts>
          <short_desc>[check-webkit-style] Alphabetical sorting errors in headers are reported for the line after the first out of order header</short_desc>
          <delta_ts>2012-03-23 08:44:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <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="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>levin</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>585832</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-22 16:10:35 -0700</bug_when>
    <thetext>When check-webkit-style reports an out-of-order header, it reports it for the line of the second header. This is a problem for the style bot, because check-webkit-style filter out errors for all lines, except ones directly modified. An example of this is https://bugs.webkit.org/show_bug.cgi?id=81602 where the style bot did not detect new style errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585849</commentid>
    <comment_count>1</comment_count>
      <attachid>133382</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-22 16:25:34 -0700</bug_when>
    <thetext>Created attachment 133382
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585854</commentid>
    <comment_count>2</comment_count>
      <attachid>133382</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2012-03-22 16:31:34 -0700</bug_when>
    <thetext>Comment on attachment 133382
Patch

Where is the test that would have failed before but now passes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585856</commentid>
    <comment_count>3</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-22 16:36:07 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 133382 [details])
&gt; Where is the test that would have failed before but now passes?

There are no end-to-end tests for style checking diffs. Instead the test I&apos;ve added verifies that the error is first reported for the first of both possible lines. Before this patch the line number would be one greater.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585860</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-22 16:38:48 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 133382 [details] [details])
&gt; &gt; Where is the test that would have failed before but now passes?
&gt; 
&gt; There are no end-to-end tests for style checking diffs. Instead the test I&apos;ve added verifies that the error is first reported for the first of both possible lines. Before this patch the line number would be one greater.

Perhaps I could add a patchreader_unittest.py. I&apos;ll look into this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585862</commentid>
    <comment_count>5</comment_count>
      <attachid>133382</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-22 16:39:29 -0700</bug_when>
    <thetext>Comment on attachment 133382
Patch

Ack. It exists already. :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586357</commentid>
    <comment_count>6</comment_count>
      <attachid>133490</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-23 08:32:12 -0700</bug_when>
    <thetext>Created attachment 133490
Patch with a more thorough test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586360</commentid>
    <comment_count>7</comment_count>
      <attachid>133490</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2012-03-23 08:34:05 -0700</bug_when>
    <thetext>Comment on attachment 133490
Patch with a more thorough test

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586361</commentid>
    <comment_count>8</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-23 08:36:51 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 133382 [details])
&gt; Ack. It exists already. :/

I wasn&apos;t able to add a new unit test to patchreader_unittest.py for the cpp.py changes without pulling in the entire style checker stack. Instead I added a more thorough test to cpp_unittest.py which, I think, tests the change completely. The new test verifies that when one line of an ordering error is filtered (a single ordering error theoretically spanning two lines), the error is reported for the other one.

Before my change,  one of the first pair of assertions would fail, so I hope this test addresses your question more directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586362</commentid>
    <comment_count>9</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-23 08:37:02 -0700</bug_when>
    <thetext>Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586364</commentid>
    <comment_count>10</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-03-23 08:43:47 -0700</bug_when>
    <thetext>Committed r111864: &lt;http://trac.webkit.org/changeset/111864&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133382</attachid>
            <date>2012-03-22 16:25:34 -0700</date>
            <delta_ts>2012-03-23 08:32:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81986-20120322162533.patch</filename>
            <type>text/plain</type>
            <size>14194</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNzA4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWFkZjYyZWMzMmRkZGJkMjBjY2RiM2ZhZmYzYzdjYThl
OGZkZjY0Ny4uOWY5YmViYzM3ZGI4N2Y1YmE1ODI0OTQ2NThkZTU0NjMyYjNkMDQ1OSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDEyLTAzLTIyICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4K
KworICAgICAgICBbY2hlY2std2Via2l0LXN0eWxlXSBBbHBoYWJldGljYWwgc29ydGluZyBlcnJv
cnMgaW4gaGVhZGVycyBhcmUgcmVwb3J0ZWQgZm9yIHRoZSBsaW5lIGFmdGVyIHRoZSBmaXJzdCBv
dXQgb2Ygb3JkZXIgaGVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRyYWNrIHdoZXRoZXIgb3Igbm90IGVycm9ycyBhcmUgZmlsdGVyZWQgaW4gZXJy
b3IgaGFuZGxlcnMuIElmIGFuCisgICAgICAgIGFscGhhYmV0aWNhbCBzb3J0aW5nIGVycm9yIGlz
IHJlcG9ydGVkIGZvciBhIGhlYWRlciBhbmQgZmlsdGVyZWQsIHRyeQorICAgICAgICByZXBvcnRp
bmcgaXQgZm9yIHRoZSBvdGhlciBwb3RlbnRpYWwgc291cmNlIG9mIHRoZSBlcnJvci4gVGhpcyBl
bnN1cmVzCisgICAgICAgIHRoYXQgdGhlIHN0eWxlIGJvdCBjYW4gc3RpbGwgZmluZCBuZXcgc29y
dGluZyBlcnJvcnMgaW4gYm90aCBwb3RlbnRpYWwKKyAgICAgICAgc2l0dWF0aW9uczoKKworICAg
ICAgICAgICAgI2luY2x1ZGUgPGZvby5oPiA8LS0gMS4gZWRpdGVkIGxpbmUKKyAgICAgICAgICAg
ICNpbmNsdWRlIDxiYXouaD4gPC0tIDIuIGVkaXRlZCBsaW5lCisKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weToKKyAgICAgICAgKGNoZWNrX2luY2x1ZGVf
bGluZSk6IFBvdGVudGlhbGx5IHJlcG9ydCB0aGUgZXJyb3IgZm9yIGJvdGggbGluZXMsCisgICAg
ICAgIGlmIHRoZSBmaXJzdCBlcnJvciBpcyBmaWx0ZXJlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0dGVzdC5weTogSW1wbGVtZW50IGEgbmV3IHN0
eWxlIG9mCisgICAgICAgIHRlc3Qgb3V0cHV0IHRoYXQgcmVwb3J0cyB0aGUgbGluZSBudW1iZXIu
IFRoaXMgdGVzdHMgdGhhdCB0aGUgZmlyc3QgcG90ZW50aWFsCisgICAgICAgIGxpbmUgb2YgdGhl
IGVycm9yIGlzIGRlZmF1bHQuCisgICAgICAgIChFcnJvckNvbGxlY3Rvci5fX2luaXRfXyk6Cisg
ICAgICAgIChFcnJvckNvbGxlY3Rvci5fX2NhbGxfXyk6CisgICAgICAgIChDcHBTdHlsZVRlc3RC
YXNlLnBlcmZvcm1fbGludCk6CisgICAgICAgIChDcHBTdHlsZVRlc3RCYXNlLnBlcmZvcm1fbGFu
Z3VhZ2VfcnVsZXNfY2hlY2spOgorICAgICAgICAoQ3BwU3R5bGVUZXN0QmFzZS5hc3NlcnRfbGFu
Z3VhZ2VfcnVsZXNfY2hlY2spOgorICAgICAgICAoT3JkZXJPZkluY2x1ZGVzVGVzdC50ZXN0X2No
ZWNrX2FscGhhYmV0aWNhbF9pbmNsdWRlX29yZGVyKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXJzL2pzb25jaGVja2VyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoTW9j
a0Vycm9ySGFuZGxlci5fX2NhbGxfXyk6IFJlcG9ydCBUcnVlIGJlY2F1c2UgdGhlIGVycm9yIGlz
IGhhbmRsZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXN0
X2V4cGVjdGF0aW9uc191bml0dGVzdC5weToKKyAgICAgICAgKEVycm9yQ29sbGVjdG9yLl9fY2Fs
bF9fKTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy93
YXRjaGxpc3RfdW5pdHRlc3QucHk6CisgICAgICAgIChNb2NrRXJyb3JIYW5kbGVyLl9fY2FsbF9f
KTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy94Y29k
ZXByb2pfdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0RXJyb3JIYW5kbGVyLl9fY2FsbF9fKTog
RGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy94bWxfdW5p
dHRlc3QucHk6CisgICAgICAgIChNb2NrRXJyb3JIYW5kbGVyLl9fY2FsbF9fKTogRGl0dG8uCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVycy5weToKKyAgICAg
ICAgKERlZmF1bHRTdHlsZUVycm9ySGFuZGxlci5fX2NhbGxfXyk6IFJlcG9ydCBUcnVlIGlmIHRo
ZSBlcnJvciBpcyBoYW5kbGVkCisgICAgICAgIGFuZCBGYWxzZSBpZiBpdCBpcyBmaWx0ZXJlZC4K
KwogMjAxMi0wMy0yMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGJiLXdlYmtpdC1y
ZWwtNjQubG9jYWwuaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBVc2UgdGhlIGFuZ2xlLWJy
YWNrZXQgZm9ybSB0byBpbmNsdWRlIHd0ZiBoZWFkZXJzCmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5CmluZGV4IGYyOTM2MTc2NjAzY2Y4OWY2YTUyNmZkZThk
ZWViYTViM2RlM2VmYTkuLmY4OTg3MGNlZDE3NzA2OWZlZDUzZmQwN2MyNDJkMDVkYWE0YjBkNDgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5CkBAIC0y
Nzc2LDggKzI3NzYsMTEgQEAgZGVmIGNoZWNrX2luY2x1ZGVfbGluZShmaWxlbmFtZSwgZmlsZV9l
eHRlbnNpb24sIGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgaW5jbHUKICAgICAgICAgIGlmIHBy
ZXZpb3VzX21hdGNoOgogICAgICAgICAgICAgcHJldmlvdXNfaGVhZGVyX3R5cGUgPSBpbmNsdWRl
X3N0YXRlLmhlYWRlcl90eXBlc1twcmV2aW91c19saW5lX251bWJlcl0KICAgICAgICAgICAgIGlm
IHByZXZpb3VzX2hlYWRlcl90eXBlID09IF9PVEhFUl9IRUFERVIgYW5kIHByZXZpb3VzX2xpbmUu
c3RyaXAoKSA+IGxpbmUuc3RyaXAoKToKLSAgICAgICAgICAgICAgICBlcnJvcihsaW5lX251bWJl
ciwgJ2J1aWxkL2luY2x1ZGVfb3JkZXInLCA0LAotICAgICAgICAgICAgICAgICAgICAgICdBbHBo
YWJldGljYWwgc29ydGluZyBwcm9ibGVtLicpCisgICAgICAgICAgICAgICAgIyBUaGlzIHR5cGUg
b2YgZXJyb3IgaXMgcG90ZW50aWFsbHkgYSBwcm9ibGVtIHdpdGggdGhpcyBsaW5lIG9yIHRoZSBw
cmV2aW91cyBvbmUsCisgICAgICAgICAgICAgICAgIyBzbyBpZiB0aGUgZXJyb3IgaXMgZmlsdGVy
ZWQgZm9yIG9uZSBsaW5lLCByZXBvcnQgaXQgZm9yIHRoZSBuZXh0LiBUaGlzIGlzIHNvIHRoYXQK
KyAgICAgICAgICAgICAgICAjIHdlIHByb3Blcmx5IGhhbmRsZSBwYXRjaGVzLCBmb3Igd2hpY2gg
b25seSBtb2RpZmllZCBsaW5lcyBwcm9kdWNlIGVycm9ycy4KKyAgICAgICAgICAgICAgICBpZiBu
b3QgZXJyb3IobGluZV9udW1iZXIgLSAxLCAnYnVpbGQvaW5jbHVkZV9vcmRlcicsIDQsICdBbHBo
YWJldGljYWwgc29ydGluZyBwcm9ibGVtLicpOgorICAgICAgICAgICAgICAgICAgICBlcnJvcihs
aW5lX251bWJlciwgJ2J1aWxkL2luY2x1ZGVfb3JkZXInLCA0LCAnQWxwaGFiZXRpY2FsIHNvcnRp
bmcgcHJvYmxlbS4nKQogCiAgICAgaWYgZXJyb3JfbWVzc2FnZToKICAgICAgICAgaWYgZmlsZV9l
eHRlbnNpb24gPT0gJ2gnOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxl
L2NoZWNrZXJzL2NwcF91bml0dGVzdC5weQppbmRleCAwNDRmNDZiMTkzYWNiNmY0MDI1ZTZjMzgz
YjUwZmVhOWI2ZjQ3ZDJhLi5iNzg4ODlhOTk5YTMwNGUxYmRkMjE3NmVkNTA0OGQxZmEzOGEwZDZh
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91
bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2Nw
cF91bml0dGVzdC5weQpAQCAtNTMsMjIgKzUzLDI3IEBAIGNsYXNzIEVycm9yQ29sbGVjdG9yOgog
ICAgICMgVGhpcyBpcyBhIGxpc3QgaW5jbHVkaW5nIGFsbCBjYXRlZ29yaWVzIHNlZW4gaW4gYW55
IHVuaXQgdGVzdC4KICAgICBfc2Vlbl9zdHlsZV9jYXRlZ29yaWVzID0ge30KIAotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBhc3NlcnRfZm4sIGZpbHRlcj1Ob25lKToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgYXNzZXJ0X2ZuLCBmaWx0ZXI9Tm9uZSwgcmVjb3JkX2xpbmVfbnVtYmVyPUZhbHNlKToK
ICAgICAgICAgIiIiYXNzZXJ0X2ZuOiBhIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB3ZSBub3RpY2Ug
YSBwcm9ibGVtLgogICAgICAgICAgICBmaWx0ZXI6IGZpbHRlcnMgdGhlIGVycm9ycyB0aGF0IHdl
IGFyZSBjb25jZXJuZWQgYWJvdXQuIiIiCiAgICAgICAgIHNlbGYuX2Fzc2VydF9mbiA9IGFzc2Vy
dF9mbgogICAgICAgICBzZWxmLl9lcnJvcnMgPSBbXQorICAgICAgICBzZWxmLl9yZWNvcmRfbGlu
ZV9udW1iZXIgPSByZWNvcmRfbGluZV9udW1iZXIKICAgICAgICAgaWYgbm90IGZpbHRlcjoKICAg
ICAgICAgICAgIGZpbHRlciA9IEZpbHRlckNvbmZpZ3VyYXRpb24oKQogICAgICAgICBzZWxmLl9m
aWx0ZXIgPSBmaWx0ZXIKIAotICAgIGRlZiBfX2NhbGxfXyhzZWxmLCB1bnVzZWRfbGluZW51bSwg
Y2F0ZWdvcnksIGNvbmZpZGVuY2UsIG1lc3NhZ2UpOgorICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBs
aW5lX251bWJlciwgY2F0ZWdvcnksIGNvbmZpZGVuY2UsIG1lc3NhZ2UpOgogICAgICAgICBzZWxm
Ll9hc3NlcnRfZm4oY2F0ZWdvcnkgaW4gc2VsZi5fYWxsX3N0eWxlX2NhdGVnb3JpZXMsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAnTWVzc2FnZSAiJXMiIGhhcyBjYXRlZ29yeSAiJXMiLCcKICAg
ICAgICAgICAgICAgICAgICAgICAgICcgd2hpY2ggaXMgbm90IGluIFNUWUxFX0NBVEVHT1JJRVMn
ICUgKG1lc3NhZ2UsIGNhdGVnb3J5KSkKICAgICAgICAgaWYgc2VsZi5fZmlsdGVyLnNob3VsZF9j
aGVjayhjYXRlZ29yeSwgIiIpOgogICAgICAgICAgICAgc2VsZi5fc2Vlbl9zdHlsZV9jYXRlZ29y
aWVzW2NhdGVnb3J5XSA9IDEKLSAgICAgICAgICAgIHNlbGYuX2Vycm9ycy5hcHBlbmQoJyVzICBb
JXNdIFslZF0nICUgKG1lc3NhZ2UsIGNhdGVnb3J5LCBjb25maWRlbmNlKSkKKyAgICAgICAgICAg
IGlmIHNlbGYuX3JlY29yZF9saW5lX251bWJlcjoKKyAgICAgICAgICAgICAgICBzZWxmLl9lcnJv
cnMuYXBwZW5kKCclcyAgWyVzXSBbJWRdIFtsaW5lICVkXScgJSAobWVzc2FnZSwgY2F0ZWdvcnks
IGNvbmZpZGVuY2UsIGxpbmVfbnVtYmVyKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgc2VsZi5fZXJyb3JzLmFwcGVuZCgnJXMgIFslc10gWyVkXScgJSAobWVzc2FnZSwgY2F0
ZWdvcnksIGNvbmZpZGVuY2UpKQorICAgICAgICByZXR1cm4gVHJ1ZQogCiAgICAgZGVmIHJlc3Vs
dHMoc2VsZik6CiAgICAgICAgIGlmIGxlbihzZWxmLl9lcnJvcnMpIDwgMjoKQEAgLTI0Niw4ICsy
NTEsOCBAQCBjbGFzcyBDcHBTdHlsZVRlc3RCYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgcmV0dXJuIGNwcF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlbmFtZSwgZmlsZV9leHRl
bnNpb24sIGxpbmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVycm9yLCBzZWxmLm1pbl9jb25maWRlbmNlLCB1bml0X3Rlc3RfY29uZmlnKQogCi0gICAgZGVm
IHBlcmZvcm1fbGludChzZWxmLCBjb2RlLCBmaWxlbmFtZSwgYmFzaWNfZXJyb3JfcnVsZXMsIHVu
aXRfdGVzdF9jb25maWc9e30pOgotICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxl
Y3RvcihzZWxmLmFzc2VydF8sIEZpbHRlckNvbmZpZ3VyYXRpb24oYmFzaWNfZXJyb3JfcnVsZXMp
KQorICAgIGRlZiBwZXJmb3JtX2xpbnQoc2VsZiwgY29kZSwgZmlsZW5hbWUsIGJhc2ljX2Vycm9y
X3J1bGVzLCB1bml0X3Rlc3RfY29uZmlnPXt9LCByZWNvcmRfbGluZV9udW1iZXI9RmFsc2UpOgor
ICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2VydF8sIEZp
bHRlckNvbmZpZ3VyYXRpb24oYmFzaWNfZXJyb3JfcnVsZXMpLCByZWNvcmRfbGluZV9udW1iZXIp
CiAgICAgICAgIGxpbmVzID0gY29kZS5zcGxpdCgnXG4nKQogICAgICAgICBleHRlbnNpb24gPSBm
aWxlbmFtZS5zcGxpdCgnLicpWzFdCiAgICAgICAgIHNlbGYucHJvY2Vzc19maWxlX2RhdGEoZmls
ZW5hbWUsIGV4dGVuc2lvbiwgbGluZXMsIGVycm9yX2NvbGxlY3RvciwgdW5pdF90ZXN0X2NvbmZp
ZykKQEAgLTI3MiwxMyArMjc3LDEzIEBAIGNsYXNzIENwcFN0eWxlVGVzdEJhc2UodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgICAgICByZXR1cm4gc2VsZi5wZXJmb3JtX2xpbnQoY29kZSwgJ3Rlc3Qu
JyArIGZpbGVfZXh0ZW5zaW9uLCBiYXNpY19lcnJvcl9ydWxlcykKIAogICAgICMgT25seSBrZWVw
IHNvbWUgZXJyb3JzIHJlbGF0ZWQgdG8gaW5jbHVkZXMsIG5hbWVzcGFjZXMgYW5kIHJ0dGkuCi0g
ICAgZGVmIHBlcmZvcm1fbGFuZ3VhZ2VfcnVsZXNfY2hlY2soc2VsZiwgZmlsZW5hbWUsIGNvZGUp
OgorICAgIGRlZiBwZXJmb3JtX2xhbmd1YWdlX3J1bGVzX2NoZWNrKHNlbGYsIGZpbGVuYW1lLCBj
b2RlLCByZWNvcmRfbGluZV9udW1iZXI9RmFsc2UpOgogICAgICAgICBiYXNpY19lcnJvcl9ydWxl
cyA9ICgnLScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcrYnVpbGQvaW5jbHVkZScs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcrYnVpbGQvaW5jbHVkZV9vcmRlcicsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICcrYnVpbGQvbmFtZXNwYWNlcycsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICcrcnVudGltZS9ydHRpJykKLSAgICAgICAgcmV0dXJuIHNl
bGYucGVyZm9ybV9saW50KGNvZGUsIGZpbGVuYW1lLCBiYXNpY19lcnJvcl9ydWxlcykKKyAgICAg
ICAgcmV0dXJuIHNlbGYucGVyZm9ybV9saW50KGNvZGUsIGZpbGVuYW1lLCBiYXNpY19lcnJvcl9y
dWxlcywgcmVjb3JkX2xpbmVfbnVtYmVyPXJlY29yZF9saW5lX251bWJlcikKIAogICAgICMgT25s
eSBrZWVwIGZ1bmN0aW9uIGxlbmd0aCBlcnJvcnMuCiAgICAgZGVmIHBlcmZvcm1fZnVuY3Rpb25f
bGVuZ3Roc19jaGVjayhzZWxmLCBjb2RlKToKQEAgLTMyNyw5ICszMzIsOSBAQCBjbGFzcyBDcHBT
dHlsZVRlc3RCYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgaWYgbm90IHJlLnNlYXJj
aChleHBlY3RlZF9tZXNzYWdlX3JlLCBtZXNzYWdlKToKICAgICAgICAgICAgIHNlbGYuZmFpbCgn
TWVzc2FnZSB3YXM6XG4nICsgbWVzc2FnZSArICdFeHBlY3RlZCBtYXRjaCB0byAiJyArIGV4cGVj
dGVkX21lc3NhZ2VfcmUgKyAnIicpCiAKLSAgICBkZWYgYXNzZXJ0X2xhbmd1YWdlX3J1bGVzX2No
ZWNrKHNlbGYsIGZpbGVfbmFtZSwgY29kZSwgZXhwZWN0ZWRfbWVzc2FnZSk6CisgICAgZGVmIGFz
c2VydF9sYW5ndWFnZV9ydWxlc19jaGVjayhzZWxmLCBmaWxlX25hbWUsIGNvZGUsIGV4cGVjdGVk
X21lc3NhZ2UsIHJlY29yZF9saW5lX251bWJlcj1GYWxzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKGV4cGVjdGVkX21lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu
cGVyZm9ybV9sYW5ndWFnZV9ydWxlc19jaGVjayhmaWxlX25hbWUsIGNvZGUpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLnBlcmZvcm1fbGFuZ3VhZ2VfcnVsZXNfY2hlY2soZmlsZV9u
YW1lLCBjb2RlLCByZWNvcmRfbGluZV9udW1iZXIpKQogCiAgICAgZGVmIGFzc2VydF9pbmNsdWRl
X3doYXRfeW91X3VzZShzZWxmLCBjb2RlLCBleHBlY3RlZF9tZXNzYWdlKToKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWRfbWVzc2FnZSwKQEAgLTI1NTAsNyArMjU1NSw4IEBAIGNs
YXNzIE9yZGVyT2ZJbmNsdWRlc1Rlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjaW5jbHVkZSAiYS5oIlxuJwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI2luY2x1ZGUgImMuaCJcbicKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNpbmNsdWRlICJiLmgiXG4nLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWxwaGFiZXRpY2FsIHNv
cnRpbmcgcHJvYmxlbS4gIFtidWlsZC9pbmNsdWRlX29yZGVyXSBbNF0nKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWxwaGFiZXRpY2FsIHNvcnRpbmcgcHJvYmxl
bS4gIFtidWlsZC9pbmNsdWRlX29yZGVyXSBbNF0gW2xpbmUgMl0nLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmRfbGluZV9udW1iZXI9VHJ1ZSkKIAogICAg
ICAgICBzZWxmLmFzc2VydF9sYW5ndWFnZV9ydWxlc19jaGVjaygnZm9vLmgnLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI2luY2x1ZGUgImEuaCJcbicKQEAgLTI1
NjEsNyArMjU2Nyw4IEBAIGNsYXNzIE9yZGVyT2ZJbmNsdWRlc1Rlc3QoQ3BwU3R5bGVUZXN0QmFz
ZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0X2xhbmd1YWdlX3J1bGVzX2NoZWNrKCdmb28uaCcsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjaW5jbHVkZSA8YXNzZXJ0
Lmg+XG4nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjaW5jbHVk
ZSAiYmFyLmgiXG4nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
QWxwaGFiZXRpY2FsIHNvcnRpbmcgcHJvYmxlbS4gIFtidWlsZC9pbmNsdWRlX29yZGVyXSBbNF0n
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQWxwaGFiZXRpY2Fs
IHNvcnRpbmcgcHJvYmxlbS4gIFtidWlsZC9pbmNsdWRlX29yZGVyXSBbNF0gW2xpbmUgMV0nLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmRfbGluZV9udW1i
ZXI9VHJ1ZSkKIAogICAgICAgICBzZWxmLmFzc2VydF9sYW5ndWFnZV9ydWxlc19jaGVjaygnZm9v
LmgnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI2luY2x1ZGUg
ImJhci5oIlxuJwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVj
a2Vycy9qc29uY2hlY2tlcl91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlcnMvanNvbmNoZWNrZXJfdW5pdHRlc3QucHkKaW5kZXggNTAzZjcyZmE0ZjkwOGQz
NjhjN2FkMjMxNTRlZDM4NDViMDhjZjgxOC4uOTczYzY3Mzg0OWIwODFlYWM5YWU2YWRhOGJjZmFm
ZTFmMDU4MWIzYSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVj
a2Vycy9qc29uY2hlY2tlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2NoZWNrZXJzL2pzb25jaGVja2VyX3VuaXR0ZXN0LnB5CkBAIC0zOSw2ICszOSw3IEBA
IGNsYXNzIE1vY2tFcnJvckhhbmRsZXIob2JqZWN0KToKIAogICAgIGRlZiBfX2NhbGxfXyhzZWxm
LCBsaW5lX251bWJlciwgY2F0ZWdvcnksIGNvbmZpZGVuY2UsIG1lc3NhZ2UpOgogICAgICAgICBz
ZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3Ioc2VsZiwgbGluZV9udW1iZXIsIGNhdGVnb3J5LCBjb25m
aWRlbmNlLCBtZXNzYWdlKQorICAgICAgICByZXR1cm4gVHJ1ZQogCiAKIGNsYXNzIEpTT05DaGVj
a2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXN0X2V4cGVjdGF0aW9uc191bml0
dGVzdC5weQppbmRleCA3N2JkZjgyODlkNjg3ZmJlMzIwMzAyYzQ2ZjVmYmM5YzgzZmZhZDk1Li5i
NmUzNTk1ZmFmNTQzZWRhNTk2ZTJhMDE4ZDEzODYyYjcwNTdjNTkzIDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0
ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvdGVzdF9l
eHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKQEAgLTQ3LDYgKzQ3LDcgQEAgY2xhc3MgRXJyb3JDb2xs
ZWN0b3Iob2JqZWN0KToKIAogICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBsaW5lbm8sIGNhdGVnb3J5
LCBjb25maWRlbmNlLCBtZXNzYWdlKToKICAgICAgICAgc2VsZi5fZXJyb3JzLmFwcGVuZCgnJXMg
IFslc10gWyVkXScgJSAobWVzc2FnZSwgY2F0ZWdvcnksIGNvbmZpZGVuY2UpKQorICAgICAgICBy
ZXR1cm4gVHJ1ZQogCiAgICAgZGVmIGdldF9lcnJvcnMoc2VsZik6CiAgICAgICAgIHJldHVybiAn
Jy5qb2luKHNlbGYuX2Vycm9ycykKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY2hlY2tlcnMvd2F0Y2hsaXN0X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2Vycy93YXRjaGxpc3RfdW5pdHRlc3QucHkKaW5kZXggZjhlY2UzNTRj
ZTZkZDU0NDA1ZTBlMDAyZmQ4OTFlODM4OWU0ZmY1Ny4uYzhkMjlkYjAyMzNmYzk3ZjI2ZTkyYzIz
YjNiZWUyOTc0ZDNiNDdjMCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9jaGVja2Vycy93YXRjaGxpc3RfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2Vycy93YXRjaGxpc3RfdW5pdHRlc3QucHkKQEAgLTQ5LDYgKzQ5LDcg
QEAgY2xhc3MgTW9ja0Vycm9ySGFuZGxlcihvYmplY3QpOgogCiAgICAgZGVmIF9fY2FsbF9fKHNl
bGYsIGxpbmVfbnVtYmVyLCBjYXRlZ29yeSwgY29uZmlkZW5jZSwgbWVzc2FnZSk6CiAgICAgICAg
IHNlbGYuX2hhbmRsZV9zdHlsZV9lcnJvcihzZWxmLCBsaW5lX251bWJlciwgY2F0ZWdvcnksIGNv
bmZpZGVuY2UsIG1lc3NhZ2UpCisgICAgICAgIHJldHVybiBUcnVlCiAKIAogY2xhc3MgV2F0Y2hM
aXN0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJzL3hjb2RlcHJval91bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMveGNvZGVwcm9qX3VuaXR0ZXN0LnB5CmluZGV4IDkx
ZDkxOTJlOWZlNTBhMTczNjk3NGZjM2UzZGQzNWI0ZGFmZjg3NmQuLjk3OTllYzAxNmYxNGY3MTA3
ZDlkM2U1MzFmZWViZTBhMjI2ZGRhYzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlcnMveGNvZGVwcm9qX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMveGNvZGVwcm9qX3VuaXR0ZXN0LnB5CkBAIC0zOSw2
ICszOSw3IEBAIGNsYXNzIFRlc3RFcnJvckhhbmRsZXIob2JqZWN0KToKIAogICAgIGRlZiBfX2Nh
bGxfXyhzZWxmLCBsaW5lX251bWJlciwgY2F0ZWdvcnksIGNvbmZpZGVuY2UsIG1lc3NhZ2UpOgog
ICAgICAgICBzZWxmLmhhbmRsZXIoc2VsZiwgbGluZV9udW1iZXIsIGNhdGVnb3J5LCBjb25maWRl
bmNlLCBtZXNzYWdlKQorICAgICAgICByZXR1cm4gVHJ1ZQogCiAKIGNsYXNzIFhjb2RlUHJvamVj
dEZpbGVDaGVja2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3htbF91bml0dGVzdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMveG1sX3VuaXR0ZXN0LnB5CmluZGV4IDliY2Y5
N2YwYTRhMTNiNTQzZGUwOWY5Y2U5NjZlZjQ3MjIxNWU4NDUuLmU0ODZmNWZlNDI4MTJkNDJkYjEw
NjZhZjJmYzMzOGY0MTllOTBkN2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY2hlY2tlcnMveG1sX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlcnMveG1sX3VuaXR0ZXN0LnB5CkBAIC0zOSw2ICszOSw3IEBAIGNsYXNz
IE1vY2tFcnJvckhhbmRsZXIob2JqZWN0KToKIAogICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBsaW5l
X251bWJlciwgY2F0ZWdvcnksIGNvbmZpZGVuY2UsIG1lc3NhZ2UpOgogICAgICAgICBzZWxmLl9o
YW5kbGVfc3R5bGVfZXJyb3Ioc2VsZiwgbGluZV9udW1iZXIsIGNhdGVnb3J5LCBjb25maWRlbmNl
LCBtZXNzYWdlKQorICAgICAgICByZXR1cm4gVHJ1ZQogCiAKIGNsYXNzIFhNTENoZWNrZXJUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvZXJyb3JfaGFuZGxlcnMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2Vy
cm9yX2hhbmRsZXJzLnB5CmluZGV4IDg5ZDFjOGEzZGI5ZTE0YzQ1MThjMmQzNzVmOTExZmFlMmU2
NzhjY2IuLjMwOThiYTRiM2EzOTc2OGY3ZWQ3ZmM0YzcyMDdmOTc2YzU4NDgzMzkgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZXJyb3JfaGFuZGxlcnMucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVycy5weQpAQCAtMTM4LDEy
ICsxMzgsMTIgQEAgY2xhc3MgRGVmYXVsdFN0eWxlRXJyb3JIYW5kbGVyKG9iamVjdCk6CiAKICAg
ICAgICAgIiIiCiAgICAgICAgIGlmIG5vdCBzZWxmLnNob3VsZF9saW5lX2JlX2NoZWNrZWQobGlu
ZV9udW1iZXIpOgotICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICByZXR1cm4gRmFsc2UK
IAogICAgICAgICBpZiBub3Qgc2VsZi5fY29uZmlndXJhdGlvbi5pc19yZXBvcnRhYmxlKGNhdGVn
b3J5PWNhdGVnb3J5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbmZpZGVuY2VfaW5fZXJyb3I9Y29uZmlkZW5jZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlX3BhdGg9c2VsZi5fZmlsZV9wYXRo
KToKLSAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKICAgICAg
ICAgY2F0ZWdvcnlfdG90YWwgPSBzZWxmLl9hZGRfcmVwb3J0YWJsZV9lcnJvcihjYXRlZ29yeSkK
IApAQCAtMTUxLDEzICsxNTEsMTQgQEAgY2xhc3MgRGVmYXVsdFN0eWxlRXJyb3JIYW5kbGVyKG9i
amVjdCk6CiAKICAgICAgICAgaWYgKG1heF9yZXBvcnRzIGlzIG5vdCBOb25lKSBhbmQgKGNhdGVn
b3J5X3RvdGFsID4gbWF4X3JlcG9ydHMpOgogICAgICAgICAgICAgIyBUaGVuIHN1cHByZXNzIGRp
c3BsYXlpbmcgdGhlIGVycm9yLgotICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICByZXR1
cm4gRmFsc2UKIAogICAgICAgICBzZWxmLl9jb25maWd1cmF0aW9uLndyaXRlX3N0eWxlX2Vycm9y
KGNhdGVnb3J5PWNhdGVnb3J5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbmZpZGVuY2VfaW5fZXJyb3I9Y29uZmlkZW5jZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlX3BhdGg9c2VsZi5fZmlsZV9wYXRo
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVfbnVt
YmVyPWxpbmVfbnVtYmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1lc3NhZ2U9bWVzc2FnZSkKKyAgICAgICAgcmV0dXJuIFRydWUKIAogICAgICAgICBp
ZiBjYXRlZ29yeV90b3RhbCA9PSBtYXhfcmVwb3J0czoKICAgICAgICAgICAgIHNlbGYuX2NvbmZp
Z3VyYXRpb24uc3RkZXJyX3dyaXRlKCJTdXBwcmVzc2luZyBmdXJ0aGVyIFslc10gcmVwb3J0cyAi
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133490</attachid>
            <date>2012-03-23 08:32:12 -0700</date>
            <delta_ts>2012-03-23 08:44:52 -0700</delta_ts>
            <desc>Patch with a more thorough test</desc>
            <filename>bug-81986-20120323083211.patch</filename>
            <type>text/plain</type>
            <size>14788</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNzg3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDc5NGQ1OGVlMzQ1NWZmMjA3ZDcyZTg1M2E0OGE5Y2Mz
ZmJkN2Y2Yy4uOGNiODkzYmJmZmY4ZWIyZmZiZDkwMTg4NDVmZDgzYzhiM2E5Mjc5ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4
IEBACisyMDEyLTAzLTIyICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4K
KworICAgICAgICBbY2hlY2std2Via2l0LXN0eWxlXSBBbHBoYWJldGljYWwgc29ydGluZyBlcnJv
cnMgaW4gaGVhZGVycyBhcmUgcmVwb3J0ZWQgZm9yIHRoZSBsaW5lIGFmdGVyIHRoZSBmaXJzdCBv
dXQgb2Ygb3JkZXIgaGVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRyYWNrIHdoZXRoZXIgb3Igbm90IGVycm9ycyBhcmUgZmlsdGVyZWQgaW4gZXJy
b3IgaGFuZGxlcnMuIElmIGFuCisgICAgICAgIGFscGhhYmV0aWNhbCBzb3J0aW5nIGVycm9yIGlz
IHJlcG9ydGVkIGZvciBhIGhlYWRlciBhbmQgZmlsdGVyZWQsIHRyeQorICAgICAgICByZXBvcnRp
bmcgaXQgZm9yIHRoZSBvdGhlciBwb3RlbnRpYWwgc291cmNlIG9mIHRoZSBlcnJvci4gVGhpcyBl
bnN1cmVzCisgICAgICAgIHRoYXQgdGhlIHN0eWxlIGJvdCBjYW4gc3RpbGwgZmluZCBuZXcgc29y
dGluZyBlcnJvcnMgaW4gYm90aCBwb3RlbnRpYWwKKyAgICAgICAgc2l0dWF0aW9uczoKKworICAg
ICAgICAgICAgI2luY2x1ZGUgPGZvby5oPiA8LS0gMS4gZWRpdGVkIGxpbmUKKyAgICAgICAgICAg
ICNpbmNsdWRlIDxiYXouaD4gPC0tIDIuIGVkaXRlZCBsaW5lCisKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weToKKyAgICAgICAgKGNoZWNrX2luY2x1ZGVf
bGluZSk6IFBvdGVudGlhbGx5IHJlcG9ydCB0aGUgZXJyb3IgZm9yIGJvdGggbGluZXMsCisgICAg
ICAgIGlmIHRoZSBmaXJzdCBlcnJvciBpcyBmaWx0ZXJlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0dGVzdC5weTogSW1wbGVtZW50IGEgbmV3IHN0
eWxlIG9mCisgICAgICAgIHRlc3QgdGhhdCBhbGxvd3Mgb25seSByZXBvcnRpbmcgZXJyb3JzIGZv
ciBjZXJ0YWluIGxpbmVzLiBUaGlzIHZlcmlmaWVzIHRoYXQKKyAgICAgICAgd2hlbiBvbmUgbGlu
ZSBvZiBhbiBvcmRlcmluZyBlcnJvciBpcyBmaWx0ZXJlZCwgdGhlIGVycm9yIGlzIHJlcG9ydGVk
IG9uIHRoZQorICAgICAgICBvdGhlciBsaW5lLgorICAgICAgICAoRXJyb3JDb2xsZWN0b3IuX19p
bml0X18pOgorICAgICAgICAoRXJyb3JDb2xsZWN0b3IuX19jYWxsX18pOgorICAgICAgICAoQ3Bw
U3R5bGVUZXN0QmFzZS5wZXJmb3JtX2xpbnQpOgorICAgICAgICAoQ3BwU3R5bGVUZXN0QmFzZS5w
ZXJmb3JtX2xhbmd1YWdlX3J1bGVzX2NoZWNrKToKKyAgICAgICAgKENwcFN0eWxlVGVzdEJhc2Uu
YXNzZXJ0X2xhbmd1YWdlX3J1bGVzX2NoZWNrKToKKyAgICAgICAgKE9yZGVyT2ZJbmNsdWRlc1Rl
c3QudGVzdF9jaGVja19hbHBoYWJldGljYWxfaW5jbHVkZV9vcmRlcl9lcnJvcnNfcmVwb3J0ZWRf
Zm9yX2JvdGhfbGluZXMpOgorICAgICAgICBBZGRlZCBhIG5ldyB0ZXN0IHRoYXQgdmVyaWZpZXMg
dGhhdCB3aGVuIG9uZSBsaW5lIG9mIHRoZSB0d28gbGluZXMgb2YgYW4gb3JkZXJpbmcKKyAgICAg
ICAgZXJyb3Igb2NjdXIsIHRoZSBlcnJvciBpcyByZXBvcnRlZCBvbiB0aGUgb3RoZXIgbGluZS4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2pzb25jaGVja2VyX3Vu
aXR0ZXN0LnB5OgorICAgICAgICAoTW9ja0Vycm9ySGFuZGxlci5fX2NhbGxfXyk6IFJlcG9ydCBU
cnVlIGJlY2F1c2UgdGhlIGVycm9yIGlzIGhhbmRsZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2Vycy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weToKKyAgICAg
ICAgKEVycm9yQ29sbGVjdG9yLl9fY2FsbF9fKTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9jaGVja2Vycy93YXRjaGxpc3RfdW5pdHRlc3QucHk6CisgICAgICAgIChN
b2NrRXJyb3JIYW5kbGVyLl9fY2FsbF9fKTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2Vycy94Y29kZXByb2pfdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0
RXJyb3JIYW5kbGVyLl9fY2FsbF9fKTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9zdHlsZS9jaGVja2Vycy94bWxfdW5pdHRlc3QucHk6CisgICAgICAgIChNb2NrRXJyb3JIYW5k
bGVyLl9fY2FsbF9fKTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9l
cnJvcl9oYW5kbGVycy5weToKKyAgICAgICAgKERlZmF1bHRTdHlsZUVycm9ySGFuZGxlci5fX2Nh
bGxfXyk6IFJlcG9ydCBUcnVlIGlmIHRoZSBlcnJvciBpcyBoYW5kbGVkCisgICAgICAgIGFuZCBG
YWxzZSBpZiBpdCBpcyBmaWx0ZXJlZC4KKwogMjAxMi0wMy0yMiAgQ3NhYmEgT3N6dHJvZ29uw6Fj
ICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFjdHVhbGx5IG1vdmUgV1RGIGZpbGVzIHRv
IHRoZWlyIG5ldyBob21lCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxl
L2NoZWNrZXJzL2NwcC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMv
Y3BwLnB5CmluZGV4IGYyOTM2MTc2NjAzY2Y4OWY2YTUyNmZkZThkZWViYTViM2RlM2VmYTkuLmY4
OTg3MGNlZDE3NzA2OWZlZDUzZmQwN2MyNDJkMDVkYWE0YjBkNDggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5CkBAIC0yNzc2LDggKzI3NzYsMTEgQEAg
ZGVmIGNoZWNrX2luY2x1ZGVfbGluZShmaWxlbmFtZSwgZmlsZV9leHRlbnNpb24sIGNsZWFuX2xp
bmVzLCBsaW5lX251bWJlciwgaW5jbHUKICAgICAgICAgIGlmIHByZXZpb3VzX21hdGNoOgogICAg
ICAgICAgICAgcHJldmlvdXNfaGVhZGVyX3R5cGUgPSBpbmNsdWRlX3N0YXRlLmhlYWRlcl90eXBl
c1twcmV2aW91c19saW5lX251bWJlcl0KICAgICAgICAgICAgIGlmIHByZXZpb3VzX2hlYWRlcl90
eXBlID09IF9PVEhFUl9IRUFERVIgYW5kIHByZXZpb3VzX2xpbmUuc3RyaXAoKSA+IGxpbmUuc3Ry
aXAoKToKLSAgICAgICAgICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ2J1aWxkL2luY2x1ZGVf
b3JkZXInLCA0LAotICAgICAgICAgICAgICAgICAgICAgICdBbHBoYWJldGljYWwgc29ydGluZyBw
cm9ibGVtLicpCisgICAgICAgICAgICAgICAgIyBUaGlzIHR5cGUgb2YgZXJyb3IgaXMgcG90ZW50
aWFsbHkgYSBwcm9ibGVtIHdpdGggdGhpcyBsaW5lIG9yIHRoZSBwcmV2aW91cyBvbmUsCisgICAg
ICAgICAgICAgICAgIyBzbyBpZiB0aGUgZXJyb3IgaXMgZmlsdGVyZWQgZm9yIG9uZSBsaW5lLCBy
ZXBvcnQgaXQgZm9yIHRoZSBuZXh0LiBUaGlzIGlzIHNvIHRoYXQKKyAgICAgICAgICAgICAgICAj
IHdlIHByb3Blcmx5IGhhbmRsZSBwYXRjaGVzLCBmb3Igd2hpY2ggb25seSBtb2RpZmllZCBsaW5l
cyBwcm9kdWNlIGVycm9ycy4KKyAgICAgICAgICAgICAgICBpZiBub3QgZXJyb3IobGluZV9udW1i
ZXIgLSAxLCAnYnVpbGQvaW5jbHVkZV9vcmRlcicsIDQsICdBbHBoYWJldGljYWwgc29ydGluZyBw
cm9ibGVtLicpOgorICAgICAgICAgICAgICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ2J1aWxk
L2luY2x1ZGVfb3JkZXInLCA0LCAnQWxwaGFiZXRpY2FsIHNvcnRpbmcgcHJvYmxlbS4nKQogCiAg
ICAgaWYgZXJyb3JfbWVzc2FnZToKICAgICAgICAgaWYgZmlsZV9leHRlbnNpb24gPT0gJ2gnOgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5p
dHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0
dGVzdC5weQppbmRleCAwNDRmNDZiMTkzYWNiNmY0MDI1ZTZjMzgzYjUwZmVhOWI2ZjQ3ZDJhLi45
Mzk0NzhjNDQyMTk2NDk1ODU4MDFmYjdmOWQxMWQ4NjAzZTAyMGI2IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0dGVzdC5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0dGVzdC5weQpAQCAt
NTMsMjIgKzUzLDI4IEBAIGNsYXNzIEVycm9yQ29sbGVjdG9yOgogICAgICMgVGhpcyBpcyBhIGxp
c3QgaW5jbHVkaW5nIGFsbCBjYXRlZ29yaWVzIHNlZW4gaW4gYW55IHVuaXQgdGVzdC4KICAgICBf
c2Vlbl9zdHlsZV9jYXRlZ29yaWVzID0ge30KIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhc3Nl
cnRfZm4sIGZpbHRlcj1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYXNzZXJ0X2ZuLCBm
aWx0ZXI9Tm9uZSwgbGluZXNfdG9fY2hlY2s9Tm9uZSk6CiAgICAgICAgICIiImFzc2VydF9mbjog
YSBmdW5jdGlvbiB0byBjYWxsIHdoZW4gd2Ugbm90aWNlIGEgcHJvYmxlbS4KICAgICAgICAgICAg
ZmlsdGVyOiBmaWx0ZXJzIHRoZSBlcnJvcnMgdGhhdCB3ZSBhcmUgY29uY2VybmVkIGFib3V0LiIi
IgogICAgICAgICBzZWxmLl9hc3NlcnRfZm4gPSBhc3NlcnRfZm4KICAgICAgICAgc2VsZi5fZXJy
b3JzID0gW10KKyAgICAgICAgc2VsZi5fbGluZXNfdG9fY2hlY2sgPSBsaW5lc190b19jaGVjawog
ICAgICAgICBpZiBub3QgZmlsdGVyOgogICAgICAgICAgICAgZmlsdGVyID0gRmlsdGVyQ29uZmln
dXJhdGlvbigpCiAgICAgICAgIHNlbGYuX2ZpbHRlciA9IGZpbHRlcgogCi0gICAgZGVmIF9fY2Fs
bF9fKHNlbGYsIHVudXNlZF9saW5lbnVtLCBjYXRlZ29yeSwgY29uZmlkZW5jZSwgbWVzc2FnZSk6
CisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGxpbmVfbnVtYmVyLCBjYXRlZ29yeSwgY29uZmlkZW5j
ZSwgbWVzc2FnZSk6CiAgICAgICAgIHNlbGYuX2Fzc2VydF9mbihjYXRlZ29yeSBpbiBzZWxmLl9h
bGxfc3R5bGVfY2F0ZWdvcmllcywKICAgICAgICAgICAgICAgICAgICAgICAgICdNZXNzYWdlICIl
cyIgaGFzIGNhdGVnb3J5ICIlcyIsJwogICAgICAgICAgICAgICAgICAgICAgICAgJyB3aGljaCBp
cyBub3QgaW4gU1RZTEVfQ0FURUdPUklFUycgJSAobWVzc2FnZSwgY2F0ZWdvcnkpKQorCisgICAg
ICAgIGlmIHNlbGYuX2xpbmVzX3RvX2NoZWNrIGFuZCBub3QgbGluZV9udW1iZXIgaW4gc2VsZi5f
bGluZXNfdG9fY2hlY2s6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKwogICAgICAgICBpZiBz
ZWxmLl9maWx0ZXIuc2hvdWxkX2NoZWNrKGNhdGVnb3J5LCAiIik6CiAgICAgICAgICAgICBzZWxm
Ll9zZWVuX3N0eWxlX2NhdGVnb3JpZXNbY2F0ZWdvcnldID0gMQogICAgICAgICAgICAgc2VsZi5f
ZXJyb3JzLmFwcGVuZCgnJXMgIFslc10gWyVkXScgJSAobWVzc2FnZSwgY2F0ZWdvcnksIGNvbmZp
ZGVuY2UpKQorICAgICAgICByZXR1cm4gVHJ1ZQogCiAgICAgZGVmIHJlc3VsdHMoc2VsZik6CiAg
ICAgICAgIGlmIGxlbihzZWxmLl9lcnJvcnMpIDwgMjoKQEAgLTI0Niw4ICsyNTIsOCBAQCBjbGFz
cyBDcHBTdHlsZVRlc3RCYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcmV0dXJuIGNw
cF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlbmFtZSwgZmlsZV9leHRlbnNpb24sIGxpbmVz
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yLCBzZWxm
Lm1pbl9jb25maWRlbmNlLCB1bml0X3Rlc3RfY29uZmlnKQogCi0gICAgZGVmIHBlcmZvcm1fbGlu
dChzZWxmLCBjb2RlLCBmaWxlbmFtZSwgYmFzaWNfZXJyb3JfcnVsZXMsIHVuaXRfdGVzdF9jb25m
aWc9e30pOgotICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFz
c2VydF8sIEZpbHRlckNvbmZpZ3VyYXRpb24oYmFzaWNfZXJyb3JfcnVsZXMpKQorICAgIGRlZiBw
ZXJmb3JtX2xpbnQoc2VsZiwgY29kZSwgZmlsZW5hbWUsIGJhc2ljX2Vycm9yX3J1bGVzLCB1bml0
X3Rlc3RfY29uZmlnPXt9LCBsaW5lc190b19jaGVjaz1Ob25lKToKKyAgICAgICAgZXJyb3JfY29s
bGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfLCBGaWx0ZXJDb25maWd1cmF0aW9u
KGJhc2ljX2Vycm9yX3J1bGVzKSwgbGluZXNfdG9fY2hlY2spCiAgICAgICAgIGxpbmVzID0gY29k
ZS5zcGxpdCgnXG4nKQogICAgICAgICBleHRlbnNpb24gPSBmaWxlbmFtZS5zcGxpdCgnLicpWzFd
CiAgICAgICAgIHNlbGYucHJvY2Vzc19maWxlX2RhdGEoZmlsZW5hbWUsIGV4dGVuc2lvbiwgbGlu
ZXMsIGVycm9yX2NvbGxlY3RvciwgdW5pdF90ZXN0X2NvbmZpZykKQEAgLTI3MiwxMyArMjc4LDEz
IEBAIGNsYXNzIENwcFN0eWxlVGVzdEJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBy
ZXR1cm4gc2VsZi5wZXJmb3JtX2xpbnQoY29kZSwgJ3Rlc3QuJyArIGZpbGVfZXh0ZW5zaW9uLCBi
YXNpY19lcnJvcl9ydWxlcykKIAogICAgICMgT25seSBrZWVwIHNvbWUgZXJyb3JzIHJlbGF0ZWQg
dG8gaW5jbHVkZXMsIG5hbWVzcGFjZXMgYW5kIHJ0dGkuCi0gICAgZGVmIHBlcmZvcm1fbGFuZ3Vh
Z2VfcnVsZXNfY2hlY2soc2VsZiwgZmlsZW5hbWUsIGNvZGUpOgorICAgIGRlZiBwZXJmb3JtX2xh
bmd1YWdlX3J1bGVzX2NoZWNrKHNlbGYsIGZpbGVuYW1lLCBjb2RlLCBsaW5lc190b19jaGVjaz1O
b25lKToKICAgICAgICAgYmFzaWNfZXJyb3JfcnVsZXMgPSAoJy0nLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnK2J1aWxkL2luY2x1ZGUnLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnK2J1aWxkL2luY2x1ZGVfb3JkZXInLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnK2J1aWxkL25hbWVzcGFjZXMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnK3J1
bnRpbWUvcnR0aScpCi0gICAgICAgIHJldHVybiBzZWxmLnBlcmZvcm1fbGludChjb2RlLCBmaWxl
bmFtZSwgYmFzaWNfZXJyb3JfcnVsZXMpCisgICAgICAgIHJldHVybiBzZWxmLnBlcmZvcm1fbGlu
dChjb2RlLCBmaWxlbmFtZSwgYmFzaWNfZXJyb3JfcnVsZXMsIGxpbmVzX3RvX2NoZWNrPWxpbmVz
X3RvX2NoZWNrKQogCiAgICAgIyBPbmx5IGtlZXAgZnVuY3Rpb24gbGVuZ3RoIGVycm9ycy4KICAg
ICBkZWYgcGVyZm9ybV9mdW5jdGlvbl9sZW5ndGhzX2NoZWNrKHNlbGYsIGNvZGUpOgpAQCAtMzI3
LDkgKzMzMyw5IEBAIGNsYXNzIENwcFN0eWxlVGVzdEJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgICAgICBpZiBub3QgcmUuc2VhcmNoKGV4cGVjdGVkX21lc3NhZ2VfcmUsIG1lc3NhZ2UpOgog
ICAgICAgICAgICAgc2VsZi5mYWlsKCdNZXNzYWdlIHdhczpcbicgKyBtZXNzYWdlICsgJ0V4cGVj
dGVkIG1hdGNoIHRvICInICsgZXhwZWN0ZWRfbWVzc2FnZV9yZSArICciJykKIAotICAgIGRlZiBh
c3NlcnRfbGFuZ3VhZ2VfcnVsZXNfY2hlY2soc2VsZiwgZmlsZV9uYW1lLCBjb2RlLCBleHBlY3Rl
ZF9tZXNzYWdlKToKKyAgICBkZWYgYXNzZXJ0X2xhbmd1YWdlX3J1bGVzX2NoZWNrKHNlbGYsIGZp
bGVfbmFtZSwgY29kZSwgZXhwZWN0ZWRfbWVzc2FnZSwgbGluZXNfdG9fY2hlY2s9Tm9uZSk6CiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGV4cGVjdGVkX21lc3NhZ2UsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYucGVyZm9ybV9sYW5ndWFnZV9ydWxlc19jaGVjayhmaWxlX25hbWUs
IGNvZGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBlcmZvcm1fbGFuZ3VhZ2Vf
cnVsZXNfY2hlY2soZmlsZV9uYW1lLCBjb2RlLCBsaW5lc190b19jaGVjaykpCiAKICAgICBkZWYg
YXNzZXJ0X2luY2x1ZGVfd2hhdF95b3VfdXNlKHNlbGYsIGNvZGUsIGV4cGVjdGVkX21lc3NhZ2Up
OgogICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhleHBlY3RlZF9tZXNzYWdlLApAQCAtMjU2OCw2
ICsyNTc0LDMwIEBAIGNsYXNzIE9yZGVyT2ZJbmNsdWRlc1Rlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjaW5jbHVkZSA8YXNz
ZXJ0Lmg+XG4nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJykK
IAorICAgIGRlZiB0ZXN0X2NoZWNrX2FscGhhYmV0aWNhbF9pbmNsdWRlX29yZGVyX2Vycm9yc19y
ZXBvcnRlZF9mb3JfYm90aF9saW5lcyhzZWxmKToKKyAgICAgICAgIyBJZiBvbmUgb2YgdGhlIHR3
byBsaW5lcyBvZiBvdXQgb2Ygb3JkZXIgaGVhZGVycyBhcmUgZmlsdGVyZWQsIHRoZSBlcnJvciBz
aG91bGQgYmUKKyAgICAgICAgIyByZXBvcnRlZCBvbiB0aGUgb3RoZXIgbGluZS4KKyAgICAgICAg
c2VsZi5hc3NlcnRfbGFuZ3VhZ2VfcnVsZXNfY2hlY2soJ2Zvby5oJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNpbmNsdWRlICJhLmgiXG4nCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjaW5jbHVkZSAiYy5oIlxuJworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI2luY2x1ZGUgImIuaCJcbicsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdBbHBoYWJldGljYWwgc29y
dGluZyBwcm9ibGVtLiAgW2J1aWxkL2luY2x1ZGVfb3JkZXJdIFs0XScsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzX3RvX2NoZWNrPVsyXSkKKworICAgICAg
ICBzZWxmLmFzc2VydF9sYW5ndWFnZV9ydWxlc19jaGVjaygnZm9vLmgnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI2luY2x1ZGUgImEuaCJcbicKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNpbmNsdWRlICJjLmgiXG4nCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjaW5jbHVkZSAiYi5oIlxuJywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FscGhhYmV0aWNhbCBz
b3J0aW5nIHByb2JsZW0uICBbYnVpbGQvaW5jbHVkZV9vcmRlcl0gWzRdJywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZXNfdG9fY2hlY2s9WzNdKQorCisgICAg
ICAgICMgSWYgbm8gbGluZXMgYXJlIGZpbHRlcmVkLCB0aGUgZXJyb3Igc2hvdWxkIGJlIHJlcG9y
dGVkIG9ubHkgb25jZS4KKyAgICAgICAgc2VsZi5hc3NlcnRfbGFuZ3VhZ2VfcnVsZXNfY2hlY2so
J2Zvby5oJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNpbmNs
dWRlICJhLmgiXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcj
aW5jbHVkZSAiYy5oIlxuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnI2luY2x1ZGUgImIuaCJcbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdBbHBoYWJldGljYWwgc29ydGluZyBwcm9ibGVtLiAgW2J1aWxkL2luY2x1ZGVfb3Jk
ZXJdIFs0XScpCisKICAgICBkZWYgdGVzdF9jaGVja19saW5lX2JyZWFrX2FmdGVyX293bl9oZWFk
ZXIoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0X2xhbmd1YWdlX3J1bGVzX2NoZWNrKCdmb28u
Y3BwJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNpbmNsdWRl
ICJjb25maWcuaCJcbicKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlcnMvanNvbmNoZWNrZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2NoZWNrZXJzL2pzb25jaGVja2VyX3VuaXR0ZXN0LnB5CmluZGV4IDUwM2Y3MmZhNGY5
MDhkMzY4YzdhZDIzMTU0ZWQzODQ1YjA4Y2Y4MTguLjk3M2M2NzM4NDliMDgxZWFjOWFlNmFkYThi
Y2ZhZmUxZjA1ODFiM2EgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlcnMvanNvbmNoZWNrZXJfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2Vycy9qc29uY2hlY2tlcl91bml0dGVzdC5weQpAQCAtMzksNiArMzks
NyBAQCBjbGFzcyBNb2NrRXJyb3JIYW5kbGVyKG9iamVjdCk6CiAKICAgICBkZWYgX19jYWxsX18o
c2VsZiwgbGluZV9udW1iZXIsIGNhdGVnb3J5LCBjb25maWRlbmNlLCBtZXNzYWdlKToKICAgICAg
ICAgc2VsZi5faGFuZGxlX3N0eWxlX2Vycm9yKHNlbGYsIGxpbmVfbnVtYmVyLCBjYXRlZ29yeSwg
Y29uZmlkZW5jZSwgbWVzc2FnZSkKKyAgICAgICAgcmV0dXJuIFRydWUKIAogCiBjbGFzcyBKU09O
Q2hlY2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvdGVzdF9leHBlY3RhdGlvbnNf
dW5pdHRlc3QucHkKaW5kZXggNzdiZGY4Mjg5ZDY4N2ZiZTMyMDMwMmM0NmY1ZmJjOWM4M2ZmYWQ5
NS4uYjZlMzU5NWZhZjU0M2VkYTU5NmUyYTAxOGQxMzg2MmI3MDU3YzU5MyAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy90ZXN0X2V4cGVjdGF0aW9uc191
bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3Rl
c3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CkBAIC00Nyw2ICs0Nyw3IEBAIGNsYXNzIEVycm9y
Q29sbGVjdG9yKG9iamVjdCk6CiAKICAgICBkZWYgX19jYWxsX18oc2VsZiwgbGluZW5vLCBjYXRl
Z29yeSwgY29uZmlkZW5jZSwgbWVzc2FnZSk6CiAgICAgICAgIHNlbGYuX2Vycm9ycy5hcHBlbmQo
JyVzICBbJXNdIFslZF0nICUgKG1lc3NhZ2UsIGNhdGVnb3J5LCBjb25maWRlbmNlKSkKKyAgICAg
ICAgcmV0dXJuIFRydWUKIAogICAgIGRlZiBnZXRfZXJyb3JzKHNlbGYpOgogICAgICAgICByZXR1
cm4gJycuam9pbihzZWxmLl9lcnJvcnMpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXJzL3dhdGNobGlzdF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvd2F0Y2hsaXN0X3VuaXR0ZXN0LnB5CmluZGV4IGY4ZWNl
MzU0Y2U2ZGQ1NDQwNWUwZTAwMmZkODkxZTgzODllNGZmNTcuLmM4ZDI5ZGIwMjMzZmM5N2YyNmU5
MmMyM2IzYmVlMjk3NGQzYjQ3YzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY2hlY2tlcnMvd2F0Y2hsaXN0X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvd2F0Y2hsaXN0X3VuaXR0ZXN0LnB5CkBAIC00OSw2ICs0
OSw3IEBAIGNsYXNzIE1vY2tFcnJvckhhbmRsZXIob2JqZWN0KToKIAogICAgIGRlZiBfX2NhbGxf
XyhzZWxmLCBsaW5lX251bWJlciwgY2F0ZWdvcnksIGNvbmZpZGVuY2UsIG1lc3NhZ2UpOgogICAg
ICAgICBzZWxmLl9oYW5kbGVfc3R5bGVfZXJyb3Ioc2VsZiwgbGluZV9udW1iZXIsIGNhdGVnb3J5
LCBjb25maWRlbmNlLCBtZXNzYWdlKQorICAgICAgICByZXR1cm4gVHJ1ZQogCiAKIGNsYXNzIFdh
dGNoTGlzdFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy94Y29kZXByb2pfdW5pdHRlc3QucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3hjb2RlcHJval91bml0dGVzdC5weQppbmRl
eCA5MWQ5MTkyZTlmZTUwYTE3MzY5NzRmYzNlM2RkMzViNGRhZmY4NzZkLi45Nzk5ZWMwMTZmMTRm
NzEwN2Q5ZDNlNTMxZmVlYmUwYTIyNmRkYWM5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJzL3hjb2RlcHJval91bml0dGVzdC5weQorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3hjb2RlcHJval91bml0dGVzdC5weQpAQCAt
MzksNiArMzksNyBAQCBjbGFzcyBUZXN0RXJyb3JIYW5kbGVyKG9iamVjdCk6CiAKICAgICBkZWYg
X19jYWxsX18oc2VsZiwgbGluZV9udW1iZXIsIGNhdGVnb3J5LCBjb25maWRlbmNlLCBtZXNzYWdl
KToKICAgICAgICAgc2VsZi5oYW5kbGVyKHNlbGYsIGxpbmVfbnVtYmVyLCBjYXRlZ29yeSwgY29u
ZmlkZW5jZSwgbWVzc2FnZSkKKyAgICAgICAgcmV0dXJuIFRydWUKIAogCiBjbGFzcyBYY29kZVBy
b2plY3RGaWxlQ2hlY2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy94bWxfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL3htbF91bml0dGVzdC5weQppbmRleCA5
YmNmOTdmMGE0YTEzYjU0M2RlMDlmOWNlOTY2ZWY0NzIyMTVlODQ1Li5lNDg2ZjVmZTQyODEyZDQy
ZGIxMDY2YWYyZmMzMzhmNDE5ZTkwZDdkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXJzL3htbF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJzL3htbF91bml0dGVzdC5weQpAQCAtMzksNiArMzksNyBAQCBj
bGFzcyBNb2NrRXJyb3JIYW5kbGVyKG9iamVjdCk6CiAKICAgICBkZWYgX19jYWxsX18oc2VsZiwg
bGluZV9udW1iZXIsIGNhdGVnb3J5LCBjb25maWRlbmNlLCBtZXNzYWdlKToKICAgICAgICAgc2Vs
Zi5faGFuZGxlX3N0eWxlX2Vycm9yKHNlbGYsIGxpbmVfbnVtYmVyLCBjYXRlZ29yeSwgY29uZmlk
ZW5jZSwgbWVzc2FnZSkKKyAgICAgICAgcmV0dXJuIFRydWUKIAogCiBjbGFzcyBYTUxDaGVja2Vy
VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2Vycm9yX2hhbmRsZXJzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHls
ZS9lcnJvcl9oYW5kbGVycy5weQppbmRleCA4OWQxYzhhM2RiOWUxNGM0NTE4YzJkMzc1ZjkxMWZh
ZTJlNjc4Y2NiLi45OWQ1Y2IzM2JlOTUzOTZiN2JjNzE3ZmE3YTY0YjVjYzIxZGNmODEwIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2Vycm9yX2hhbmRsZXJzLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvZXJyb3JfaGFuZGxlcnMucHkKQEAgLTEz
OCwxMiArMTM4LDEyIEBAIGNsYXNzIERlZmF1bHRTdHlsZUVycm9ySGFuZGxlcihvYmplY3QpOgog
CiAgICAgICAgICIiIgogICAgICAgICBpZiBub3Qgc2VsZi5zaG91bGRfbGluZV9iZV9jaGVja2Vk
KGxpbmVfbnVtYmVyKToKLSAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCiAKICAgICAgICAgaWYgbm90IHNlbGYuX2NvbmZpZ3VyYXRpb24uaXNfcmVwb3J0YWJsZShj
YXRlZ29yeT1jYXRlZ29yeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25maWRlbmNlX2luX2Vycm9yPWNvbmZpZGVuY2UsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZV9wYXRoPXNlbGYuX2ZpbGVf
cGF0aCk6Ci0gICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIHJldHVybiBGYWxzZQogCiAg
ICAgICAgIGNhdGVnb3J5X3RvdGFsID0gc2VsZi5fYWRkX3JlcG9ydGFibGVfZXJyb3IoY2F0ZWdv
cnkpCiAKQEAgLTE1MSwxNCArMTUxLDE0IEBAIGNsYXNzIERlZmF1bHRTdHlsZUVycm9ySGFuZGxl
cihvYmplY3QpOgogCiAgICAgICAgIGlmIChtYXhfcmVwb3J0cyBpcyBub3QgTm9uZSkgYW5kIChj
YXRlZ29yeV90b3RhbCA+IG1heF9yZXBvcnRzKToKICAgICAgICAgICAgICMgVGhlbiBzdXBwcmVz
cyBkaXNwbGF5aW5nIHRoZSBlcnJvci4KLSAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCiAKICAgICAgICAgc2VsZi5fY29uZmlndXJhdGlvbi53cml0ZV9zdHlsZV9l
cnJvcihjYXRlZ29yeT1jYXRlZ29yeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25maWRlbmNlX2luX2Vycm9yPWNvbmZpZGVuY2UsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZV9wYXRoPXNlbGYuX2ZpbGVf
cGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5l
X251bWJlcj1saW5lX251bWJlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtZXNzYWdlPW1lc3NhZ2UpCi0KICAgICAgICAgaWYgY2F0ZWdvcnlfdG90YWwg
PT0gbWF4X3JlcG9ydHM6CiAgICAgICAgICAgICBzZWxmLl9jb25maWd1cmF0aW9uLnN0ZGVycl93
cml0ZSgiU3VwcHJlc3NpbmcgZnVydGhlciBbJXNdIHJlcG9ydHMgIgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvciB0aGlzIGZpbGUuXG4iICUgY2F0ZWdv
cnkpCisgICAgICAgIHJldHVybiBUcnVlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>