<?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>157970</bug_id>
          
          <creation_ts>2016-05-21 00:40:45 -0700</creation_ts>
          <short_desc>Early error on ANY operator before new.target</short_desc>
          <delta_ts>2017-08-16 17:13:07 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.11</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Caitlin Potter (:caitp)">caitp</assigned_to>
          <cc>buildbot</cc>
    
    <cc>caitp</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mdjasper</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1195349</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2016-05-21 00:40:45 -0700</bug_when>
    <thetext>Consider the following code:

```js
function F()
{
    if (!new.target) return new F
}
```

WebKit Nightly throws `SyntaxError: new.target can&apos;t come after a prefix operator.`
because of negation (no `++`/`--` there). However, that is valid code.
Both Chrome Canary and Firefox parse it OK.

This might be a regression caused by https://bugs.webkit.org/show_bug.cgi?id=151148</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336725</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Jasper">mdjasper</who>
    <bug_when>2017-08-08 16:17:41 -0700</bug_when>
    <thetext>I ran into this bug, and can confirm that it is a problem.

Here is a simple repro case: https://codepen.io/mdjasper/pen/eEWORY

It seems related to this line in webkit https://github.com/WebKit/webkit/blob/cfccd2a389b08c585095f58b2cd400c1fe5f0042/Source/JavaScriptCore/parser/Parser.cpp#L4887

Related stack overflow question:
https://stackoverflow.com/questions/45578781/new-target-with-a-prefix-operator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336945</commentid>
    <comment_count>2</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2017-08-09 07:33:58 -0700</bug_when>
    <thetext>I&apos;ll take a look to this issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336955</commentid>
    <comment_count>3</comment_count>
    <who name="Caitlin Potter (:caitp)">caitp</who>
    <bug_when>2017-08-09 08:19:07 -0700</bug_when>
    <thetext>(In reply to GSkachkov from comment #2)
&gt; I&apos;ll take a look to this issue

I wrote a fix last night after being CC&apos;d on the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336963</commentid>
    <comment_count>4</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2017-08-09 08:31:06 -0700</bug_when>
    <thetext>Ohh, ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336980</commentid>
    <comment_count>5</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-09 09:01:24 -0700</bug_when>
    <thetext>I was thinking this might require a bytecode generator change as well depending on the operator. Did you need to change anything there Caitlin?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336981</commentid>
    <comment_count>6</comment_count>
      <attachid>317706</attachid>
    <who name="Caitlin Potter (:caitp)">caitp</who>
    <bug_when>2017-08-09 09:01:40 -0700</bug_when>
    <thetext>Created attachment 317706
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336986</commentid>
    <comment_count>7</comment_count>
    <who name="Caitlin Potter (:caitp)">caitp</who>
    <bug_when>2017-08-09 09:06:14 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #5)
&gt; I was thinking this might require a bytecode generator change as well
&gt; depending on the operator. Did you need to change anything there Caitlin?

In my testing I didn&apos;t run into any assertions or anything in BytecodeGenerator from this fix, but EWS will provide more info.

There are also other problems with unary ops in general: For instance `++!new.target` is allowed, but `!&lt;anything&gt;` is not a valid reference expression. I didn&apos;t spend time fixing those separate issues in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336989</commentid>
    <comment_count>8</comment_count>
      <attachid>317706</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-09 09:12:50 -0700</bug_when>
    <thetext>Comment on attachment 317706
Patch

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

&gt; Source/JavaScriptCore/parser/Parser.cpp:4886
&gt; +    if (UNLIKELY(isUpdateOp((JSTokenType)lastOperator) &amp;&amp; context.isNewTarget(expr)))

Style nit: static_cast

&gt; JSTests/stress/new-target-syntax-errors.js:91
&gt; +let otherUnaryOperators = [&quot;!&quot;, &quot;~&quot;, &quot;typeof &quot;, &quot;void &quot;, &quot;delete &quot;];

Also unary “+” I think?

&gt; JSTests/stress/new-target-syntax-errors.js:94
&gt; +    shouldNotBeSyntaxError(functionBody);

Please also run the code instead of just checking for a syntax error. In particular, one node I’m worried about is “delete”. I want to make sure we don’t do anything crazy there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337007</commentid>
    <comment_count>9</comment_count>
      <attachid>317706</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-09 09:50:40 -0700</bug_when>
    <thetext>Comment on attachment 317706
Patch

Attachment 317706 did not pass jsc-ews (mac):
Output: http://webkit-queues.webkit.org/results/4284654

New failing tests:
stress/default-value-parsing-should-propagate-error.js.default
stress/default-value-parsing-should-propagate-error.js.dfg-maximal-flush-validate-no-cjit
stress/default-value-parsing-should-propagate-error.js.no-cjit-collect-continuously
stress/default-value-parsing-should-propagate-error.js.ftl-no-cjit-b3o1
stress/default-value-parsing-should-propagate-error.js.ftl-no-cjit-validate-sampling-profiler
stress/default-value-parsing-should-propagate-error.js.ftl-eager-no-cjit-b3o1
stress/default-value-parsing-should-propagate-error.js.ftl-eager-no-cjit
stress/default-value-parsing-should-propagate-error.js.dfg-eager
stress/default-value-parsing-should-propagate-error.js.dfg-eager-no-cjit-validate
stress/default-value-parsing-should-propagate-error.js.ftl-no-cjit-no-inline-validate
stress/default-value-parsing-should-propagate-error.js.ftl-no-cjit-no-put-stack-validate
stress/default-value-parsing-should-propagate-error.js.ftl-no-cjit-small-pool
stress/default-value-parsing-should-propagate-error.js.no-ftl
stress/default-value-parsing-should-propagate-error.js.ftl-eager
stress/default-value-parsing-should-propagate-error.js.no-cjit-validate-phases
stress/default-value-parsing-should-propagate-error.js.no-llint</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337023</commentid>
    <comment_count>10</comment_count>
      <attachid>317718</attachid>
    <who name="Caitlin Potter (:caitp)">caitp</who>
    <bug_when>2017-08-09 10:24:04 -0700</bug_when>
    <thetext>Created attachment 317718
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337024</commentid>
    <comment_count>11</comment_count>
      <attachid>317706</attachid>
    <who name="Caitlin Potter (:caitp)">caitp</who>
    <bug_when>2017-08-09 10:26:23 -0700</bug_when>
    <thetext>Comment on attachment 317706
Patch

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

&gt;&gt; Source/JavaScriptCore/parser/Parser.cpp:4886
&gt;&gt; +    if (UNLIKELY(isUpdateOp((JSTokenType)lastOperator) &amp;&amp; context.isNewTarget(expr)))
&gt; 
&gt; Style nit: static_cast

Done

&gt;&gt; JSTests/stress/new-target-syntax-errors.js:91
&gt;&gt; +let otherUnaryOperators = [&quot;!&quot;, &quot;~&quot;, &quot;typeof &quot;, &quot;void &quot;, &quot;delete &quot;];
&gt; 
&gt; Also unary “+” I think?

Hmm, good point.

&gt;&gt; JSTests/stress/new-target-syntax-errors.js:94
&gt;&gt; +    shouldNotBeSyntaxError(functionBody);
&gt; 
&gt; Please also run the code instead of just checking for a syntax error. In particular, one node I’m worried about is “delete”. I want to make sure we don’t do anything crazy there.

I&apos;ve added a bunch of runtime tests as well</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337030</commentid>
    <comment_count>12</comment_count>
      <attachid>317720</attachid>
    <who name="Caitlin Potter (:caitp)">caitp</who>
    <bug_when>2017-08-09 10:36:32 -0700</bug_when>
    <thetext>Created attachment 317720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337031</commentid>
    <comment_count>13</comment_count>
    <who name="Caitlin Potter (:caitp)">caitp</who>
    <bug_when>2017-08-09 10:37:32 -0700</bug_when>
    <thetext>(In reply to Caitlin Potter (:caitp) from comment #12)
&gt; Created attachment 317720 [details]
&gt; Patch

Fixed broken test found by EWS failure, and added more tests for unary abs/negation operators</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337080</commentid>
    <comment_count>14</comment_count>
      <attachid>317720</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-08-09 12:27:03 -0700</bug_when>
    <thetext>Comment on attachment 317720
Patch

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

r=me

&gt; JSTests/stress/new-target.js:164
&gt; +  test(construct(unaryDelete), true, &quot;`delete new.target` should be true&quot;);
&gt; +  test(call(unaryDelete), true, &quot;`delete new.target` should be true&quot;);

FWIW, Chrome Canary gets this wrong, maybe it&apos;s worth filing a bug on them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337117</commentid>
    <comment_count>15</comment_count>
      <attachid>317720</attachid>
    <who name="Caitlin Potter (:caitp)">caitp</who>
    <bug_when>2017-08-09 14:05:20 -0700</bug_when>
    <thetext>Comment on attachment 317720
Patch

Fire away</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337138</commentid>
    <comment_count>16</comment_count>
      <attachid>317720</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-09 14:34:23 -0700</bug_when>
    <thetext>Comment on attachment 317720
Patch

Clearing flags on attachment: 317720

Committed r220481: &lt;http://trac.webkit.org/changeset/220481&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337139</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-09 14:34:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337140</commentid>
    <comment_count>18</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-09 14:35:36 -0700</bug_when>
    <thetext>&lt;rdar://problem/33811245&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337151</commentid>
    <comment_count>19</comment_count>
    <who name="Michael Jasper">mdjasper</who>
    <bug_when>2017-08-09 15:00:43 -0700</bug_when>
    <thetext>Wow you are awesome! I&apos;ve never seen a bug report on a large public project seen and worked on so quickly. Kudos :) I&apos;m curious, what is the process to release a fix like this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339372</commentid>
    <comment_count>20</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-08-16 17:13:07 -0700</bug_when>
    <thetext>Nice! Was there a test262 test covering this?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317706</attachid>
            <date>2017-08-09 09:01:40 -0700</date>
            <delta_ts>2017-08-09 10:24:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157970-20170809120139.patch</filename>
            <type>text/plain</type>
            <size>3817</size>
            <attacher name="Caitlin Potter (:caitp)">caitp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwNDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
OGE4ZTViNjg5ZDRkZDRiYWE5YjgwOGNiM2I3NDM1NWFhY2UxYWYxLi5iMzdkMzhmMTRmNmI0ODk5
MzM5YjBjNzU5Y2Y4NDY5MTJjYTJkOGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxNy0wOC0wOSAgQ2FpdGxpbiBQb3R0ZXIgIDxjYWl0cEBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtKU0NdIGFsbG93IGBuZXcudGFyZ2V0YCBmb2xsb3dpbmcgbm9uLXVwZGF0
aW5nIHVuYXJ5IG9wZXJhdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU3OTcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW5zdGVhZCBvZiB0aHJvd2luZyBpZiBhbnkgdW5hcnkgb3BlcmF0b3IgcHJl
Y2VkZXMgbmV3LnRhcmdldCwgb25seQorICAgICAgICB0aHJvdyBpZiB0aGUgdW5hcnkgb3BlcmF0
b3IgdXBkYXRlcyB0aGUgcmVmZXJlbmNlLgorCisgICAgICAgIFRoZSBmb2xsb3dpbmcgYmVjb21l
IGxlZ2FsIGluIEpTQzoKKworICAgICAgICBgYGAKKyAgICAgICAgIW5ldy50YXJnZXQKKyAgICAg
ICAgfm5ldy50YXJnZXQKKyAgICAgICAgdHlwZW9mIG5ldy50YXJnZXQKKyAgICAgICAgZGVsZXRl
IG5ldy50YXJnZXQKKyAgICAgICAgdm9pZCBuZXcudGFyZ2V0CisgICAgICAgIGBgYAorCisgICAg
ICAgIEFsbCBvZiB3aGljaCBhcmUgbGVnYWwgaW4gdjggYW5kIFNwaWRlck1vbmtleSBpbiBzdHJp
Y3QgYW5kIHNsb3BweSBtb2RlCisKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAg
ICAgKEpTQzo6UGFyc2VyPExleGVyVHlwZT46OnBhcnNlVW5hcnlFeHByZXNzaW9uKToKKwogMjAx
Ny0wOC0wOSAgT2xla3NhbmRyIFNrYWNoa292ICA8Z3NrYWNoa292QGdtYWlsLmNvbT4KIAogICAg
ICAgICBSRUdSRVNTSU9OOiAyIHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2FzeW5j
LWZ1bmN0aW9uIGZhaWx1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1BhcnNlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAK
aW5kZXggNzRkMWU0NTQ4OWZkNDQ2OWQ0OWQzMTE3NmMzNzc3ZjU5MzYwN2UwZS4uNzdmMDFjNmVh
OWYzMzJiZGQwMjUxYmIwOTJlMWRmMDIyYWEwMzI0OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvUGFyc2VyLmNwcApAQCAtNDg4Myw3ICs0ODgzLDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRy
ZWVCdWlsZGVyPiBUcmVlRXhwcmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VVbmFyeUV4
cHJlc3MKICAgICAgICAgICAgIGZhaWxXaXRoTWVzc2FnZSgiQ2Fubm90IHBhcnNlIHN1YmV4cHJl
c3Npb24gb2YgIiwgb3BlcmF0b3JTdHJpbmcodHJ1ZSwgbGFzdE9wZXJhdG9yKSwgIm9wZXJhdG9y
Iik7CiAgICAgICAgIGZhaWxXaXRoTWVzc2FnZSgiQ2Fubm90IHBhcnNlIG1lbWJlciBleHByZXNz
aW9uIik7CiAgICAgfQotICAgIGlmIChVTkxJS0VMWShsYXN0T3BlcmF0b3IgJiYgY29udGV4dC5p
c05ld1RhcmdldChleHByKSkpCisgICAgaWYgKFVOTElLRUxZKGlzVXBkYXRlT3AoKEpTVG9rZW5U
eXBlKWxhc3RPcGVyYXRvcikgJiYgY29udGV4dC5pc05ld1RhcmdldChleHByKSkpCiAgICAgICAg
IGludGVybmFsRmFpbFdpdGhNZXNzYWdlKGZhbHNlLCAibmV3LnRhcmdldCBjYW4ndCBjb21lIGFm
dGVyIGEgcHJlZml4IG9wZXJhdG9yIik7CiAgICAgYm9vbCBpc0V2YWxPckFyZ3VtZW50cyA9IGZh
bHNlOwogICAgIGlmIChzdHJpY3RNb2RlKCkgJiYgIW1fc3ludGF4QWxyZWFkeVZhbGlkYXRlZCkg
ewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRl
eCA3MWI4MmUxOTE2MTBkYTM1MTVmZjQ3MTA4N2EwOWYxOGRlYmNmNzRiLi5kMzcyYjk0MzEzYzhi
YWJhZTcxMWI5YTQzNGVhMWE2YTk2MzUyMjMzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxv
ZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTA4LTA5ICBD
YWl0bGluIFBvdHRlciAgPGNhaXRwQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0pTQ10gYWxsb3cg
YG5ldy50YXJnZXRgIGZvbGxvd2luZyBub24tdXBkYXRpbmcgdW5hcnkgb3BlcmF0b3JzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc5NzAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnN0ZWFkIG9mIHRo
cm93aW5nIGlmIGFueSB1bmFyeSBvcGVyYXRvciBwcmVjZWRlcyBuZXcudGFyZ2V0LCBvbmx5Cisg
ICAgICAgIHRocm93IGlmIHRoZSB1bmFyeSBvcGVyYXRvciB1cGRhdGVzIHRoZSByZWZlcmVuY2Uu
CisKKyAgICAgICAgVGhlIGZvbGxvd2luZyBiZWNvbWUgbGVnYWwgaW4gSlNDOgorCisgICAgICAg
IGBgYAorICAgICAgICAhbmV3LnRhcmdldAorICAgICAgICB+bmV3LnRhcmdldAorICAgICAgICB0
eXBlb2YgbmV3LnRhcmdldAorICAgICAgICBkZWxldGUgbmV3LnRhcmdldAorICAgICAgICB2b2lk
IG5ldy50YXJnZXQKKyAgICAgICAgYGBgCisKKyAgICAgICAgQWxsIG9mIHdoaWNoIGFyZSBsZWdh
bCBpbiB2OCBhbmQgU3BpZGVyTW9ua2V5IGluIHN0cmljdCBhbmQgc2xvcHB5IG1vZGUKKworICAg
ICAgICAqIHN0cmVzcy9uZXctdGFyZ2V0LXN5bnRheC1lcnJvcnMuanM6CisKIDIwMTctMDgtMDkg
IE9sZWtzYW5kciBTa2FjaGtvdiAgPGdza2FjaGtvdkBnbWFpbC5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTjogMiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2Uvc3RhdGVtZW50cy9hc3luYy1mdW5jdGlv
biBmYWlsdXJlcwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvbmV3LXRhcmdldC1zeW50YXgt
ZXJyb3JzLmpzIGIvSlNUZXN0cy9zdHJlc3MvbmV3LXRhcmdldC1zeW50YXgtZXJyb3JzLmpzCmlu
ZGV4IGJjMWMyMzgwOTRmYTA0ZDQ5M2YyYTIxMzA4NjQwZGZjNTM0NGJjMjIuLjRkMzk0YmU3YWI0
Y2Q2YzA4ODdhY2Q1Y2EwZDI5MWJlMWY3Y2NmOGMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNz
L25ldy10YXJnZXQtc3ludGF4LWVycm9ycy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9uZXctdGFy
Z2V0LXN5bnRheC1lcnJvcnMuanMKQEAgLTg4LDYgKzg4LDEyIEBAIGZvciAobGV0IG9wZXJhdG9y
IG9mIHByZVBvc3RGaXhPcGVyYXRvcnMpIHsKICAgICBzaG91bGROb3RCZVN5bnRheEVycm9yKGZ1
bmN0aW9uQm9keSk7CiB9CiAKK2xldCBvdGhlclVuYXJ5T3BlcmF0b3JzID0gWyIhIiwgIn4iLCAi
dHlwZW9mICIsICJ2b2lkICIsICJkZWxldGUgIl07Citmb3IgKGxldCBvcGVyYXRvciBvZiBvdGhl
clVuYXJ5T3BlcmF0b3JzKSB7CisgICAgbGV0IGZ1bmN0aW9uQm9keSA9IGAke29wZXJhdG9yfW5l
dy50YXJnZXRgOworICAgIHNob3VsZE5vdEJlU3ludGF4RXJyb3IoZnVuY3Rpb25Cb2R5KTsKK30K
Kwogc2hvdWxkQmVTeW50YXhFcnJvcihgKHtmb286IG5ldy50YXJnZXR9ID0ge2ZvbzoyMH0pYCk7
CiAKIC8vIFNjcmlwdHMgLSAxNS4xLjEgU3RhdGljIFNlbWFudGljczogRWFybHkgRXJyb3JzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317718</attachid>
            <date>2017-08-09 10:24:04 -0700</date>
            <delta_ts>2017-08-09 10:36:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157970-20170809132403.patch</filename>
            <type>text/plain</type>
            <size>7961</size>
            <attacher name="Caitlin Potter (:caitp)">caitp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwNDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
OGE4ZTViNjg5ZDRkZDRiYWE5YjgwOGNiM2I3NDM1NWFhY2UxYWYxLi4yNWYzZjAwMGQ0ZjY3MGMz
ODJhNDU2YTk4NjJmY2M5MDEwMjQ2OGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxNy0wOC0wOSAgQ2FpdGxpbiBQb3R0ZXIgIDxjYWl0cEBpZ2FsaWEuY29t
PgorCisgICAgICAgIEVhcmx5IGVycm9yIG9uIEFOWSBvcGVyYXRvciBiZWZvcmUgbmV3LnRhcmdl
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3OTcw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVh
ZCBvZiB0aHJvd2luZyBpZiBhbnkgdW5hcnkgb3BlcmF0b3IgcHJlY2VkZXMgbmV3LnRhcmdldCwg
b25seQorICAgICAgICB0aHJvdyBpZiB0aGUgdW5hcnkgb3BlcmF0b3IgdXBkYXRlcyB0aGUgcmVm
ZXJlbmNlLgorCisgICAgICAgIFRoZSBmb2xsb3dpbmcgYmVjb21lIGxlZ2FsIGluIEpTQzoKKwor
ICAgICAgICBgYGAKKyAgICAgICAgIW5ldy50YXJnZXQKKyAgICAgICAgfm5ldy50YXJnZXQKKyAg
ICAgICAgdHlwZW9mIG5ldy50YXJnZXQKKyAgICAgICAgZGVsZXRlIG5ldy50YXJnZXQKKyAgICAg
ICAgdm9pZCBuZXcudGFyZ2V0CisgICAgICAgIGBgYAorCisgICAgICAgIEFsbCBvZiB3aGljaCBh
cmUgbGVnYWwgaW4gdjggYW5kIFNwaWRlck1vbmtleSBpbiBzdHJpY3QgYW5kIHNsb3BweSBtb2Rl
CisKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFyc2VyPExl
eGVyVHlwZT46OnBhcnNlVW5hcnlFeHByZXNzaW9uKToKKwogMjAxNy0wOC0wOSAgT2xla3NhbmRy
IFNrYWNoa292ICA8Z3NrYWNoa292QGdtYWlsLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiAy
IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2FzeW5jLWZ1bmN0aW9uIGZhaWx1cmVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXggNzRkMWU0NTQ4OWZk
NDQ2OWQ0OWQzMTE3NmMzNzc3ZjU5MzYwN2UwZS4uZTc0OGM1NDBkNGNjODQ3ZGU5NjBkZmNlNjk2
ZDcxZWZiMDMwYTliZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Q
YXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApA
QCAtNDg4Myw3ICs0ODgzLDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhw
cmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VVbmFyeUV4cHJlc3MKICAgICAgICAgICAg
IGZhaWxXaXRoTWVzc2FnZSgiQ2Fubm90IHBhcnNlIHN1YmV4cHJlc3Npb24gb2YgIiwgb3BlcmF0
b3JTdHJpbmcodHJ1ZSwgbGFzdE9wZXJhdG9yKSwgIm9wZXJhdG9yIik7CiAgICAgICAgIGZhaWxX
aXRoTWVzc2FnZSgiQ2Fubm90IHBhcnNlIG1lbWJlciBleHByZXNzaW9uIik7CiAgICAgfQotICAg
IGlmIChVTkxJS0VMWShsYXN0T3BlcmF0b3IgJiYgY29udGV4dC5pc05ld1RhcmdldChleHByKSkp
CisgICAgaWYgKFVOTElLRUxZKGlzVXBkYXRlT3Aoc3RhdGljX2Nhc3Q8SlNUb2tlblR5cGU+KGxh
c3RPcGVyYXRvcikpICYmIGNvbnRleHQuaXNOZXdUYXJnZXQoZXhwcikpKQogICAgICAgICBpbnRl
cm5hbEZhaWxXaXRoTWVzc2FnZShmYWxzZSwgIm5ldy50YXJnZXQgY2FuJ3QgY29tZSBhZnRlciBh
IHByZWZpeCBvcGVyYXRvciIpOwogICAgIGJvb2wgaXNFdmFsT3JBcmd1bWVudHMgPSBmYWxzZTsK
ICAgICBpZiAoc3RyaWN0TW9kZSgpICYmICFtX3N5bnRheEFscmVhZHlWYWxpZGF0ZWQpIHsKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzFi
ODJlMTkxNjEwZGEzNTE1ZmY0NzEwODdhMDlmMThkZWJjZjc0Yi4uZjljOWNjZmJjNmJjMTVjMWM3
MDc5N2M2N2NjNmQ4YjZmZTdlMThlZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxNy0wOC0wOSAgQ2FpdGxp
biBQb3R0ZXIgIDxjYWl0cEBpZ2FsaWEuY29tPgorCisgICAgICAgIEVhcmx5IGVycm9yIG9uIEFO
WSBvcGVyYXRvciBiZWZvcmUgbmV3LnRhcmdldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3OTcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiB0aHJvd2luZyBpZiBhbnkgdW5hcnkgb3Bl
cmF0b3IgcHJlY2VkZXMgbmV3LnRhcmdldCwgb25seQorICAgICAgICB0aHJvdyBpZiB0aGUgdW5h
cnkgb3BlcmF0b3IgdXBkYXRlcyB0aGUgcmVmZXJlbmNlLgorCisgICAgICAgIFRoZSBmb2xsb3dp
bmcgYmVjb21lIGxlZ2FsIGluIEpTQzoKKworICAgICAgICBgYGAKKyAgICAgICAgIW5ldy50YXJn
ZXQKKyAgICAgICAgfm5ldy50YXJnZXQKKyAgICAgICAgdHlwZW9mIG5ldy50YXJnZXQKKyAgICAg
ICAgZGVsZXRlIG5ldy50YXJnZXQKKyAgICAgICAgdm9pZCBuZXcudGFyZ2V0CisgICAgICAgIGBg
YAorCisgICAgICAgIEFsbCBvZiB3aGljaCBhcmUgbGVnYWwgaW4gdjggYW5kIFNwaWRlck1vbmtl
eSBpbiBzdHJpY3QgYW5kIHNsb3BweSBtb2RlCisKKyAgICAgICAgKiBzdHJlc3MvbmV3LXRhcmdl
dC1zeW50YXgtZXJyb3JzLmpzOgorICAgICAgICAqIHN0cmVzcy9uZXctdGFyZ2V0LmpzOgorCiAy
MDE3LTA4LTA5ICBPbGVrc2FuZHIgU2thY2hrb3YgIDxnc2thY2hrb3ZAZ21haWwuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT046IDIgdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvYXN5
bmMtZnVuY3Rpb24gZmFpbHVyZXMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL25ldy10YXJn
ZXQtc3ludGF4LWVycm9ycy5qcyBiL0pTVGVzdHMvc3RyZXNzL25ldy10YXJnZXQtc3ludGF4LWVy
cm9ycy5qcwppbmRleCBiYzFjMjM4MDk0ZmEwNGQ0OTNmMmEyMTMwODY0MGRmYzUzNDRiYzIyLi41
ODVkYmY3MjkwZTllODUyZmNiNTE4MjMwOWJmMGU4OWNmZWJjZmEyIDEwMDY0NAotLS0gYS9KU1Rl
c3RzL3N0cmVzcy9uZXctdGFyZ2V0LXN5bnRheC1lcnJvcnMuanMKKysrIGIvSlNUZXN0cy9zdHJl
c3MvbmV3LXRhcmdldC1zeW50YXgtZXJyb3JzLmpzCkBAIC04OCw2ICs4OCwxNCBAQCBmb3IgKGxl
dCBvcGVyYXRvciBvZiBwcmVQb3N0Rml4T3BlcmF0b3JzKSB7CiAgICAgc2hvdWxkTm90QmVTeW50
YXhFcnJvcihmdW5jdGlvbkJvZHkpOwogfQogCitsZXQgb3RoZXJVbmFyeU9wZXJhdG9ycyA9IFsi
ISIsICJ+IiwgInR5cGVvZiAiLCAidm9pZCAiLCAiZGVsZXRlICJdOworZm9yIChsZXQgb3BlcmF0
b3Igb2Ygb3RoZXJVbmFyeU9wZXJhdG9ycykgeworICAgIGZ1bmN0aW9uIHN0cmljdChib2R5KSB7
IHJldHVybiBgInVzZSBzdHJpY3QiICR7Ym9keX1gOyB9CisgICAgbGV0IGZ1bmN0aW9uQm9keSA9
IGAke29wZXJhdG9yfW5ldy50YXJnZXRgOworICAgIHNob3VsZE5vdEJlU3ludGF4RXJyb3IoZnVu
Y3Rpb25Cb2R5KTsKKyAgICBzaG91bGROb3RCZVN5bnRheEVycm9yKHN0cmljdChmdW5jdGlvbkJv
ZHkpKTsKK30KKwogc2hvdWxkQmVTeW50YXhFcnJvcihgKHtmb286IG5ldy50YXJnZXR9ID0ge2Zv
bzoyMH0pYCk7CiAKIC8vIFNjcmlwdHMgLSAxNS4xLjEgU3RhdGljIFNlbWFudGljczogRWFybHkg
RXJyb3JzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9uZXctdGFyZ2V0LmpzIGIvSlNUZXN0
cy9zdHJlc3MvbmV3LXRhcmdldC5qcwppbmRleCA5ODc1MjM2OTIwYmZmMWI2YTNiMzVjNDI0NDhh
MGNlNmJkMzc0OGNiLi41ZTkwYWYzMGE2NmFkN2UzMTJkOWNiMDZiYzNhYmY2N2QwZmE3MTA3IDEw
MDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9uZXctdGFyZ2V0LmpzCisrKyBiL0pTVGVzdHMvc3Ry
ZXNzL25ldy10YXJnZXQuanMKQEAgLTEyNSwzICsxMjUsNjkgQEAgdmFyIG5ld1RhcmdldEluRnVu
Y3Rpb25JbkV2YWwgPSBmdW5jdGlvbiAoKSB7CiAKIH07CiBuZXdUYXJnZXRJbkZ1bmN0aW9uSW5F
dmFsKCk7CisKK2Z1bmN0aW9uIHRlc3RVbmFyeU9wcygpIHsKKyAgdmFyIHJlc3VsdDsKKyAgZnVu
Y3Rpb24gY2FsbChmKSB7IGYoKTsgcmV0dXJuIHJlc3VsdDsgfQorICBmdW5jdGlvbiBjb25zdHJ1
Y3QoZikgeyBuZXcgZigpOyByZXR1cm4gcmVzdWx0OyB9CisgIAorICBmdW5jdGlvbiB1bmFyeUV4
Y2xhbWF0aW9uKCkgeyByZXN1bHQgPSAhbmV3LnRhcmdldDsgfQorICB0ZXN0KGNvbnN0cnVjdCh1
bmFyeUV4Y2xhbWF0aW9uKSwgZmFsc2UsICJgIW5ldy50YXJnZXRgIHNob3VsZCBiZSBmYWxzZSB3
aGVuIG5ldy50YXJnZXQgaXMgbm90IHVuZGVmaW5lZCIpOworICB0ZXN0KGNhbGwodW5hcnlFeGNs
YW1hdGlvbiksIHRydWUsICJgIW5ldy50YXJnZXRgIHNob3VsZCBiZSB0cnVlIHdoZW4gbmV3LnRh
cmdldCBpcyB1bmRlZmluZWQiKTsKKworICBmdW5jdGlvbiB1bmFyeUJpdHdpc2VOb3QoKSB7IHJl
c3VsdCA9IH5uZXcudGFyZ2V0OyB9CisgIHRlc3QoY29uc3RydWN0KHVuYXJ5Qml0d2lzZU5vdCks
IC0xLCAiYH5uZXcudGFyZ2V0YCBzaG91bGQgYmUgLTEiKTsKKyAgdGVzdChjYWxsKHVuYXJ5Qml0
d2lzZU5vdCksIC0xLCAiYH5uZXcudGFyZ2V0YCBzaG91bGQgYmUgLTEiKTsKKworICBmdW5jdGlv
biB1bmFyeVR5cGVvZigpIHsgcmVzdWx0ID0gdHlwZW9mIG5ldy50YXJnZXQ7IH0KKyAgdGVzdChj
b25zdHJ1Y3QodW5hcnlUeXBlb2YpLCAiZnVuY3Rpb24iLCAiYHR5cGVvZiBuZXcudGFyZ2V0YCBz
aG91bGQgYmUgJ2Z1bmN0aW9uJyB3aGVuIG5ldy50YXJnZXQgaXMgbm90IHVuZGVmaW5lZCIpOwor
ICB0ZXN0KGNhbGwodW5hcnlUeXBlb2YpLCAidW5kZWZpbmVkIiwgImB0eXBlb2YgbmV3LnRhcmdl
dGAgc2hvdWxkIGJlICd1bmRlZmluZWQnIHdoZW4gbmV3LnRhcmdldCBpcyB1bmRlZmluZWQiKTsK
KworICBmdW5jdGlvbiB1bmFyeVZvaWQoKSB7IHJlc3VsdCA9IHZvaWQgbmV3LnRhcmdldDsgfQor
ICB0ZXN0KGNvbnN0cnVjdCh1bmFyeVZvaWQpLCB1bmRlZmluZWQsICJgdm9pZCBuZXcudGFyZ2V0
YCBzaG91bGQgYmUgdW5kZWZpbmVkIik7CisgIHRlc3QoY2FsbCh1bmFyeVZvaWQpLCB1bmRlZmlu
ZWQsICJgdm9pZCBuZXcudGFyZ2V0YCBzaG91bGQgYmUgdW5kZWZpbmVkIik7CisKKyAgLy8gTXVs
dGlwbGUgdmFyaWF0aW9ucyBvZiBkZWxldGUgYXJlIHRlc3RlZCBmb3IgY29tcGxldGVuZXNzOgor
ICBmdW5jdGlvbiB1bmFyeURlbGV0ZSgpIHsgcmVzdWx0ID0gZGVsZXRlIG5ldy50YXJnZXQ7IH0K
KyAgZnVuY3Rpb24gc3RyaWN0VW5hcnlEZWxldGUoKSB7ICJ1c2Ugc3RyaWN0IjsgcmVzdWx0ID0g
ZGVsZXRlIG5ldy50YXJnZXQ7IH0KKworICAvLyBJZiBUeXBlKHJlZikgaXMgbm90IFJlZmVyZW5j
ZSwgcmV0dXJuIHRydWUuIChwZXIgI3NlYy1kZWxldGUtb3BlcmF0b3ItcnVudGltZS1zZW1hbnRp
Y3MtZXZhbHVhdGlvbikKKyAgdGVzdChjb25zdHJ1Y3QodW5hcnlEZWxldGUpLCB0cnVlLCAiYGRl
bGV0ZSBuZXcudGFyZ2V0YCBzaG91bGQgYmUgdHJ1ZSIpOworICB0ZXN0KGNhbGwodW5hcnlEZWxl
dGUpLCB0cnVlLCAiYGRlbGV0ZSBuZXcudGFyZ2V0YCBzaG91bGQgYmUgdHJ1ZSIpOworICB0ZXN0
KGNvbnN0cnVjdChzdHJpY3RVbmFyeURlbGV0ZSksIHRydWUsICJgZGVsZXRlIG5ldy50YXJnZXRg
IHNob3VsZCBiZSB0cnVlIik7CisgIHRlc3QoY2FsbChzdHJpY3RVbmFyeURlbGV0ZSksIHRydWUs
ICJgZGVsZXRlIG5ldy50YXJnZXRgIHNob3VsZCBiZSB0cnVlIik7CisKKyAgdmFyIHVuYXJ5RGVs
ZXRlUHJvcCA9IGZ1bmN0aW9uIHVuYXJ5RGVsZXRlUHJvcCgpIHsgcmVzdWx0ID0gZGVsZXRlIG5l
dy50YXJnZXQucHJvcDsgfQorICB2YXIgc3RyaWN0VW5hcnlEZWxldGVQcm9wID0gZnVuY3Rpb24g
c3RyaWN0VW5hcnlEZWxldGVQcm9wKCkgeyAidXNlIHN0cmljdCI7IHJlc3VsdCA9IGRlbGV0ZSBu
ZXcudGFyZ2V0LnByb3A7IH0KKyAgdW5hcnlEZWxldGVQcm9wLnByb3AgPSAxOworICB0ZXN0KGNv
bnN0cnVjdCh1bmFyeURlbGV0ZVByb3ApLCB0cnVlLCAiYGRlbGV0ZSBuZXcudGFyZ2V0LnByb3Bg
IHNob3VsZCBiZSB0cnVlIHdoZW4gbmV3LnRhcmdldCBpcyBub3QgdW5kZWZpbmVkIGFuZCBwcm9w
IGlzIGEgY29uZmlndXJhYmxlIHByb3BlcnR5Iik7CisgIHN0cmljdFVuYXJ5RGVsZXRlUHJvcC5w
cm9wID0gMTsKKyAgdGVzdChjb25zdHJ1Y3Qoc3RyaWN0VW5hcnlEZWxldGVQcm9wKSwgdHJ1ZSwg
ImBkZWxldGUgbmV3LnRhcmdldC5wcm9wYCBzaG91bGQgYmUgdHJ1ZSB3aGVuIG5ldy50YXJnZXQg
aXMgbm90IHVuZGVmaW5lZCBhbmQgcHJvcCBpcyBhIGNvbmZpZ3VyYWJsZSBwcm9wZXJ0eSIpOwor
ICAKKyAgdW5hcnlEZWxldGVQcm9wID0gZnVuY3Rpb24gdW5hcnlEZWxldGVQcm9wKCkgeyByZXN1
bHQgPSBkZWxldGUgbmV3LnRhcmdldC5wcm9wOyB9CisgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1
bmFyeURlbGV0ZVByb3AsICJwcm9wIiwgeyB2YWx1ZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogZmFs
c2UgfSk7CisgIHRlc3QoY29uc3RydWN0KHVuYXJ5RGVsZXRlUHJvcCksIGZhbHNlLCAiYGRlbGV0
ZSBuZXcudGFyZ2V0LnByb3BgIHNob3VsZCBiZSBmYWxzZSB3aGVuIG5ldy50YXJnZXQgaXMgbm90
IHVuZGVmaW5lZCBhbmQgcHJvcCBpcyBhIG5vbi1jb25maWd1cmFibGUgcHJvcGVydHkiKTsKKwor
ICBzdHJpY3RVbmFyeURlbGV0ZVByb3AgPSBmdW5jdGlvbiBzdHJpY3RVbmFyeURlbGV0ZVByb3Ao
KSB7ICJ1c2Ugc3RyaWN0IjsgcmVzdWx0ID0gZGVsZXRlIG5ldy50YXJnZXQucHJvcDsgfQorICAv
LyBJZiBkZWxldGVTdGF0dXMgaXMgZmFsc2UgYW5kIElzU3RyaWN0UmVmZXJlbmNlKHJlZikgaXMg
dHJ1ZSwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgorICBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoc3RyaWN0VW5hcnlEZWxldGVQcm9wLCAicHJvcCIsIHsgdmFsdWU6IGZhbHNlLCBjb25maWd1
cmFibGU6IGZhbHNlIH0pOworICB0cnkgeworICAgIHZhciBwYXNzZWQgPSBmYWxzZTsKKyAgICBj
b25zdHJ1Y3Qoc3RyaWN0VW5hcnlEZWxldGVQcm9wKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIHBh
c3NlZCA9IGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoImRlbGV0
ZSIpID49IDA7CisgIH0KKyAgdGVzdChwYXNzZWQsIHRydWUsICJgZGVsZXRlIG5ldy50YXJnZXQu
cHJvcGAgc2hvdWxkIHRocm93IGEgVHlwZUVycm9yIGluIHN0cmljdCBjb2RlIHdoZW4gcHJvcCBp
cyBhIG5vbi1jb25maWd1cmFibGUgcHJvcGVydHkiKTsKKworICB1bmFyeURlbGV0ZVByb3AgPSBm
dW5jdGlvbiB1bmFyeURlbGV0ZVByb3AoKSB7IHJlc3VsdCA9IGRlbGV0ZSBuZXcudGFyZ2V0LnBy
b3A7IH0KKyAgdW5hcnlEZWxldGVQcm9wLnByb3AgPSAxOworICB0cnkgeworICAgIHZhciBwYXNz
ZWQgPSBmYWxzZTsKKyAgICBjYWxsKHVuYXJ5RGVsZXRlUHJvcCk7CisgIH0gY2F0Y2ggKGUpIHsK
KyAgICBwYXNzZWQgPSBlIGluc3RhbmNlb2YgVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9m
KCJ1bmRlZmluZWQiKSA+PSAwOworICB9CisgIHRlc3QocGFzc2VkLCB0cnVlLCAiYGRlbGV0ZSBu
ZXcudGFyZ2V0LnByb3BgIHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciB3aGVuIG5ldy50YXJnZXQg
aXMgdW5kZWZpbmVkIik7Cit9Cit0ZXN0VW5hcnlPcHMoKTsKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317720</attachid>
            <date>2017-08-09 10:36:32 -0700</date>
            <delta_ts>2017-08-09 14:34:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157970-20170809133631.patch</filename>
            <type>text/plain</type>
            <size>9314</size>
            <attacher name="Caitlin Potter (:caitp)">caitp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwNDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
OGE4ZTViNjg5ZDRkZDRiYWE5YjgwOGNiM2I3NDM1NWFhY2UxYWYxLi4yNWYzZjAwMGQ0ZjY3MGMz
ODJhNDU2YTk4NjJmY2M5MDEwMjQ2OGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxNy0wOC0wOSAgQ2FpdGxpbiBQb3R0ZXIgIDxjYWl0cEBpZ2FsaWEuY29t
PgorCisgICAgICAgIEVhcmx5IGVycm9yIG9uIEFOWSBvcGVyYXRvciBiZWZvcmUgbmV3LnRhcmdl
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3OTcw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVh
ZCBvZiB0aHJvd2luZyBpZiBhbnkgdW5hcnkgb3BlcmF0b3IgcHJlY2VkZXMgbmV3LnRhcmdldCwg
b25seQorICAgICAgICB0aHJvdyBpZiB0aGUgdW5hcnkgb3BlcmF0b3IgdXBkYXRlcyB0aGUgcmVm
ZXJlbmNlLgorCisgICAgICAgIFRoZSBmb2xsb3dpbmcgYmVjb21lIGxlZ2FsIGluIEpTQzoKKwor
ICAgICAgICBgYGAKKyAgICAgICAgIW5ldy50YXJnZXQKKyAgICAgICAgfm5ldy50YXJnZXQKKyAg
ICAgICAgdHlwZW9mIG5ldy50YXJnZXQKKyAgICAgICAgZGVsZXRlIG5ldy50YXJnZXQKKyAgICAg
ICAgdm9pZCBuZXcudGFyZ2V0CisgICAgICAgIGBgYAorCisgICAgICAgIEFsbCBvZiB3aGljaCBh
cmUgbGVnYWwgaW4gdjggYW5kIFNwaWRlck1vbmtleSBpbiBzdHJpY3QgYW5kIHNsb3BweSBtb2Rl
CisKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6UGFyc2VyPExl
eGVyVHlwZT46OnBhcnNlVW5hcnlFeHByZXNzaW9uKToKKwogMjAxNy0wOC0wOSAgT2xla3NhbmRy
IFNrYWNoa292ICA8Z3NrYWNoa292QGdtYWlsLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiAy
IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9zdGF0ZW1lbnRzL2FzeW5jLWZ1bmN0aW9uIGZhaWx1cmVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5jcHAKaW5kZXggNzRkMWU0NTQ4OWZk
NDQ2OWQ0OWQzMTE3NmMzNzc3ZjU5MzYwN2UwZS4uZTc0OGM1NDBkNGNjODQ3ZGU5NjBkZmNlNjk2
ZDcxZWZiMDMwYTliZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Q
YXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcApA
QCAtNDg4Myw3ICs0ODgzLDcgQEAgdGVtcGxhdGUgPGNsYXNzIFRyZWVCdWlsZGVyPiBUcmVlRXhw
cmVzc2lvbiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2VVbmFyeUV4cHJlc3MKICAgICAgICAgICAg
IGZhaWxXaXRoTWVzc2FnZSgiQ2Fubm90IHBhcnNlIHN1YmV4cHJlc3Npb24gb2YgIiwgb3BlcmF0
b3JTdHJpbmcodHJ1ZSwgbGFzdE9wZXJhdG9yKSwgIm9wZXJhdG9yIik7CiAgICAgICAgIGZhaWxX
aXRoTWVzc2FnZSgiQ2Fubm90IHBhcnNlIG1lbWJlciBleHByZXNzaW9uIik7CiAgICAgfQotICAg
IGlmIChVTkxJS0VMWShsYXN0T3BlcmF0b3IgJiYgY29udGV4dC5pc05ld1RhcmdldChleHByKSkp
CisgICAgaWYgKFVOTElLRUxZKGlzVXBkYXRlT3Aoc3RhdGljX2Nhc3Q8SlNUb2tlblR5cGU+KGxh
c3RPcGVyYXRvcikpICYmIGNvbnRleHQuaXNOZXdUYXJnZXQoZXhwcikpKQogICAgICAgICBpbnRl
cm5hbEZhaWxXaXRoTWVzc2FnZShmYWxzZSwgIm5ldy50YXJnZXQgY2FuJ3QgY29tZSBhZnRlciBh
IHByZWZpeCBvcGVyYXRvciIpOwogICAgIGJvb2wgaXNFdmFsT3JBcmd1bWVudHMgPSBmYWxzZTsK
ICAgICBpZiAoc3RyaWN0TW9kZSgpICYmICFtX3N5bnRheEFscmVhZHlWYWxpZGF0ZWQpIHsKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzFi
ODJlMTkxNjEwZGEzNTE1ZmY0NzEwODdhMDlmMThkZWJjZjc0Yi4uZjljOWNjZmJjNmJjMTVjMWM3
MDc5N2M2N2NjNmQ4YjZmZTdlMThlZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxNy0wOC0wOSAgQ2FpdGxp
biBQb3R0ZXIgIDxjYWl0cEBpZ2FsaWEuY29tPgorCisgICAgICAgIEVhcmx5IGVycm9yIG9uIEFO
WSBvcGVyYXRvciBiZWZvcmUgbmV3LnRhcmdldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3OTcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiB0aHJvd2luZyBpZiBhbnkgdW5hcnkgb3Bl
cmF0b3IgcHJlY2VkZXMgbmV3LnRhcmdldCwgb25seQorICAgICAgICB0aHJvdyBpZiB0aGUgdW5h
cnkgb3BlcmF0b3IgdXBkYXRlcyB0aGUgcmVmZXJlbmNlLgorCisgICAgICAgIFRoZSBmb2xsb3dp
bmcgYmVjb21lIGxlZ2FsIGluIEpTQzoKKworICAgICAgICBgYGAKKyAgICAgICAgIW5ldy50YXJn
ZXQKKyAgICAgICAgfm5ldy50YXJnZXQKKyAgICAgICAgdHlwZW9mIG5ldy50YXJnZXQKKyAgICAg
ICAgZGVsZXRlIG5ldy50YXJnZXQKKyAgICAgICAgdm9pZCBuZXcudGFyZ2V0CisgICAgICAgIGBg
YAorCisgICAgICAgIEFsbCBvZiB3aGljaCBhcmUgbGVnYWwgaW4gdjggYW5kIFNwaWRlck1vbmtl
eSBpbiBzdHJpY3QgYW5kIHNsb3BweSBtb2RlCisKKyAgICAgICAgKiBzdHJlc3MvbmV3LXRhcmdl
dC1zeW50YXgtZXJyb3JzLmpzOgorICAgICAgICAqIHN0cmVzcy9uZXctdGFyZ2V0LmpzOgorCiAy
MDE3LTA4LTA5ICBPbGVrc2FuZHIgU2thY2hrb3YgIDxnc2thY2hrb3ZAZ21haWwuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT046IDIgdGVzdDI2Mi90ZXN0L2xhbmd1YWdlL3N0YXRlbWVudHMvYXN5
bmMtZnVuY3Rpb24gZmFpbHVyZXMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2RlZmF1bHQt
dmFsdWUtcGFyc2luZy1zaG91bGQtcHJvcGFnYXRlLWVycm9yLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
ZGVmYXVsdC12YWx1ZS1wYXJzaW5nLXNob3VsZC1wcm9wYWdhdGUtZXJyb3IuanMKaW5kZXggNGJi
Nzk2ODEwZmViZGI5ZWY1NDljM2NkZWYxMWZiZGQzMTdhYmUyMC4uNmJjN2FkOTljOTZjNjgwYjhm
MGNlMGIwNWFlMzg4MWVlZWZmYzFjNCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvZGVmYXVs
dC12YWx1ZS1wYXJzaW5nLXNob3VsZC1wcm9wYWdhdGUtZXJyb3IuanMKKysrIGIvSlNUZXN0cy9z
dHJlc3MvZGVmYXVsdC12YWx1ZS1wYXJzaW5nLXNob3VsZC1wcm9wYWdhdGUtZXJyb3IuanMKQEAg
LTE2LDYgKzE2LDYgQEAgZnVuY3Rpb24gdGVzdFN5bnRheEVycm9yKHNjcmlwdCwgbWVzc2FnZSkg
ewogdGVzdFN5bnRheEVycm9yKGAKIGZ1bmN0aW9uIGYoKQogewotICAgICh7diA9ICh0eXBlb2Yg
bmV3LnRhcmdldCl9ID0ge30pCisgICAgKHt2ID0gKCsrbmV3LnRhcmdldCl9ID0ge30pCiB9CiBg
LCBgU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJz0nLiBFeHBlY3RlZCBhICc6JyBmb2xs
b3dpbmcgdGhlIHByb3BlcnR5IG5hbWUgJ3YnLmApOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJl
c3MvbmV3LXRhcmdldC1zeW50YXgtZXJyb3JzLmpzIGIvSlNUZXN0cy9zdHJlc3MvbmV3LXRhcmdl
dC1zeW50YXgtZXJyb3JzLmpzCmluZGV4IGJjMWMyMzgwOTRmYTA0ZDQ5M2YyYTIxMzA4NjQwZGZj
NTM0NGJjMjIuLmIzN2RjZWIzYThiYjRmYmQyMWEwY2ExOTdjYzk0NDZjNzBmODczZTcgMTAwNjQ0
Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL25ldy10YXJnZXQtc3ludGF4LWVycm9ycy5qcworKysgYi9K
U1Rlc3RzL3N0cmVzcy9uZXctdGFyZ2V0LXN5bnRheC1lcnJvcnMuanMKQEAgLTg4LDYgKzg4LDE0
IEBAIGZvciAobGV0IG9wZXJhdG9yIG9mIHByZVBvc3RGaXhPcGVyYXRvcnMpIHsKICAgICBzaG91
bGROb3RCZVN5bnRheEVycm9yKGZ1bmN0aW9uQm9keSk7CiB9CiAKK2xldCBvdGhlclVuYXJ5T3Bl
cmF0b3JzID0gWyIhIiwgIn4iLCAiKyIsICItIiwgInR5cGVvZiAiLCAidm9pZCAiLCAiZGVsZXRl
ICJdOworZm9yIChsZXQgb3BlcmF0b3Igb2Ygb3RoZXJVbmFyeU9wZXJhdG9ycykgeworICAgIGZ1
bmN0aW9uIHN0cmljdChib2R5KSB7IHJldHVybiBgInVzZSBzdHJpY3QiICR7Ym9keX1gOyB9Cisg
ICAgbGV0IGZ1bmN0aW9uQm9keSA9IGAke29wZXJhdG9yfW5ldy50YXJnZXRgOworICAgIHNob3Vs
ZE5vdEJlU3ludGF4RXJyb3IoZnVuY3Rpb25Cb2R5KTsKKyAgICBzaG91bGROb3RCZVN5bnRheEVy
cm9yKHN0cmljdChmdW5jdGlvbkJvZHkpKTsKK30KKwogc2hvdWxkQmVTeW50YXhFcnJvcihgKHtm
b286IG5ldy50YXJnZXR9ID0ge2ZvbzoyMH0pYCk7CiAKIC8vIFNjcmlwdHMgLSAxNS4xLjEgU3Rh
dGljIFNlbWFudGljczogRWFybHkgRXJyb3JzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9u
ZXctdGFyZ2V0LmpzIGIvSlNUZXN0cy9zdHJlc3MvbmV3LXRhcmdldC5qcwppbmRleCA5ODc1MjM2
OTIwYmZmMWI2YTNiMzVjNDI0NDhhMGNlNmJkMzc0OGNiLi5jM2RjN2VlN2Y4Njg3ZWViMjhmOWNi
ODkxYjU5MDE1MTZmNjhmZTA1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9uZXctdGFyZ2V0
LmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL25ldy10YXJnZXQuanMKQEAgLTIwLDcgKzIwLDcgQEAg
dGVzdChwYXNzZWQsIHRydWUsICJuZXcudGFyZ2V0IGNhbm5vdCBiZSBjYWxsZWQgaW4gZ2xvYmFs
IHNjb3BlIik7CiAvLyBUZXN0IHdpdGhvdXQgY2xhc3Mgc3ludGF4CiAKIGZ1bmN0aW9uIHRlc3Qo
cmVzdWx0LCBleHBlY3RlZCwgbWVzc2FnZSkgewotICAgIGlmIChyZXN1bHQgIT09IGV4cGVjdGVk
KQorICAgIGlmIChyZXN1bHQgIT09IGV4cGVjdGVkICYmICEoZXhwZWN0ZWQgIT09IGV4cGVjdGVk
ICYmIHJlc3VsdCAhPT0gcmVzdWx0KSkKICAgICAgICAgdGhyb3cgIkVycm9yOiAiICsgbWVzc2Fn
ZSArICIuIHdhczogIiArIHJlc3VsdCArICIgd2FudGVkOiAiICsgZXhwZWN0ZWQ7CiB9CiAKQEAg
LTEyNSwzICsxMjUsNzcgQEAgdmFyIG5ld1RhcmdldEluRnVuY3Rpb25JbkV2YWwgPSBmdW5jdGlv
biAoKSB7CiAKIH07CiBuZXdUYXJnZXRJbkZ1bmN0aW9uSW5FdmFsKCk7CisKK2Z1bmN0aW9uIHRl
c3RVbmFyeU9wcygpIHsKKyAgdmFyIHJlc3VsdDsKKyAgZnVuY3Rpb24gY2FsbChmKSB7IGYoKTsg
cmV0dXJuIHJlc3VsdDsgfQorICBmdW5jdGlvbiBjb25zdHJ1Y3QoZikgeyBuZXcgZigpOyByZXR1
cm4gcmVzdWx0OyB9CisgIAorICBmdW5jdGlvbiB1bmFyeUV4Y2xhbWF0aW9uKCkgeyByZXN1bHQg
PSAhbmV3LnRhcmdldDsgfQorICB0ZXN0KGNvbnN0cnVjdCh1bmFyeUV4Y2xhbWF0aW9uKSwgZmFs
c2UsICJgIW5ldy50YXJnZXRgIHNob3VsZCBiZSBmYWxzZSB3aGVuIG5ldy50YXJnZXQgaXMgbm90
IHVuZGVmaW5lZCIpOworICB0ZXN0KGNhbGwodW5hcnlFeGNsYW1hdGlvbiksIHRydWUsICJgIW5l
dy50YXJnZXRgIHNob3VsZCBiZSB0cnVlIHdoZW4gbmV3LnRhcmdldCBpcyB1bmRlZmluZWQiKTsK
KworICBmdW5jdGlvbiB1bmFyeUJpdHdpc2VOb3QoKSB7IHJlc3VsdCA9IH5uZXcudGFyZ2V0OyB9
CisgIHRlc3QoY29uc3RydWN0KHVuYXJ5Qml0d2lzZU5vdCksIC0xLCAiYH5uZXcudGFyZ2V0YCBz
aG91bGQgYmUgLTEiKTsKKyAgdGVzdChjYWxsKHVuYXJ5Qml0d2lzZU5vdCksIC0xLCAiYH5uZXcu
dGFyZ2V0YCBzaG91bGQgYmUgLTEiKTsKKworICBmdW5jdGlvbiB1bmFyeVR5cGVvZigpIHsgcmVz
dWx0ID0gdHlwZW9mIG5ldy50YXJnZXQ7IH0KKyAgdGVzdChjb25zdHJ1Y3QodW5hcnlUeXBlb2Yp
LCAiZnVuY3Rpb24iLCAiYHR5cGVvZiBuZXcudGFyZ2V0YCBzaG91bGQgYmUgJ2Z1bmN0aW9uJyB3
aGVuIG5ldy50YXJnZXQgaXMgbm90IHVuZGVmaW5lZCIpOworICB0ZXN0KGNhbGwodW5hcnlUeXBl
b2YpLCAidW5kZWZpbmVkIiwgImB0eXBlb2YgbmV3LnRhcmdldGAgc2hvdWxkIGJlICd1bmRlZmlu
ZWQnIHdoZW4gbmV3LnRhcmdldCBpcyB1bmRlZmluZWQiKTsKKworICBmdW5jdGlvbiB1bmFyeVZv
aWQoKSB7IHJlc3VsdCA9IHZvaWQgbmV3LnRhcmdldDsgfQorICB0ZXN0KGNvbnN0cnVjdCh1bmFy
eVZvaWQpLCB1bmRlZmluZWQsICJgdm9pZCBuZXcudGFyZ2V0YCBzaG91bGQgYmUgdW5kZWZpbmVk
Iik7CisgIHRlc3QoY2FsbCh1bmFyeVZvaWQpLCB1bmRlZmluZWQsICJgdm9pZCBuZXcudGFyZ2V0
YCBzaG91bGQgYmUgdW5kZWZpbmVkIik7CisKKyAgZnVuY3Rpb24gdW5hcnlBYnMoKSB7IHJlc3Vs
dCA9ICtuZXcudGFyZ2V0OyB9CisgIHRlc3QoY29uc3RydWN0KHVuYXJ5QWJzKSwgTmFOLCAiK25l
dy50YXJnZXQgc2hvdWxkIGJlIE5hTiIpOworICB0ZXN0KGNhbGwodW5hcnlBYnMpLCBOYU4sICIr
bmV3LnRhcmdldCBzaG91bGQgYmUgTmFOIik7CisKKyAgZnVuY3Rpb24gdW5hcnlOZWcoKSB7IHJl
c3VsdCA9IC1uZXcudGFyZ2V0OyB9CisgIHRlc3QoY29uc3RydWN0KHVuYXJ5TmVnKSwgTmFOLCAi
LW5ldy50YXJnZXQgc2hvdWxkIGJlIE5hTiIpOworICB0ZXN0KGNhbGwodW5hcnlOZWcpLCBOYU4s
ICItbmV3LnRhcmdldCBzaG91bGQgYmUgTmFOIik7CisKKyAgLy8gTXVsdGlwbGUgdmFyaWF0aW9u
cyBvZiBkZWxldGUgYXJlIHRlc3RlZCBmb3IgY29tcGxldGVuZXNzOgorICBmdW5jdGlvbiB1bmFy
eURlbGV0ZSgpIHsgcmVzdWx0ID0gZGVsZXRlIG5ldy50YXJnZXQ7IH0KKyAgZnVuY3Rpb24gc3Ry
aWN0VW5hcnlEZWxldGUoKSB7ICJ1c2Ugc3RyaWN0IjsgcmVzdWx0ID0gZGVsZXRlIG5ldy50YXJn
ZXQ7IH0KKworICAvLyBJZiBUeXBlKHJlZikgaXMgbm90IFJlZmVyZW5jZSwgcmV0dXJuIHRydWUu
IChwZXIgI3NlYy1kZWxldGUtb3BlcmF0b3ItcnVudGltZS1zZW1hbnRpY3MtZXZhbHVhdGlvbikK
KyAgdGVzdChjb25zdHJ1Y3QodW5hcnlEZWxldGUpLCB0cnVlLCAiYGRlbGV0ZSBuZXcudGFyZ2V0
YCBzaG91bGQgYmUgdHJ1ZSIpOworICB0ZXN0KGNhbGwodW5hcnlEZWxldGUpLCB0cnVlLCAiYGRl
bGV0ZSBuZXcudGFyZ2V0YCBzaG91bGQgYmUgdHJ1ZSIpOworICB0ZXN0KGNvbnN0cnVjdChzdHJp
Y3RVbmFyeURlbGV0ZSksIHRydWUsICJgZGVsZXRlIG5ldy50YXJnZXRgIHNob3VsZCBiZSB0cnVl
Iik7CisgIHRlc3QoY2FsbChzdHJpY3RVbmFyeURlbGV0ZSksIHRydWUsICJgZGVsZXRlIG5ldy50
YXJnZXRgIHNob3VsZCBiZSB0cnVlIik7CisKKyAgdmFyIHVuYXJ5RGVsZXRlUHJvcCA9IGZ1bmN0
aW9uIHVuYXJ5RGVsZXRlUHJvcCgpIHsgcmVzdWx0ID0gZGVsZXRlIG5ldy50YXJnZXQucHJvcDsg
fQorICB2YXIgc3RyaWN0VW5hcnlEZWxldGVQcm9wID0gZnVuY3Rpb24gc3RyaWN0VW5hcnlEZWxl
dGVQcm9wKCkgeyAidXNlIHN0cmljdCI7IHJlc3VsdCA9IGRlbGV0ZSBuZXcudGFyZ2V0LnByb3A7
IH0KKyAgdW5hcnlEZWxldGVQcm9wLnByb3AgPSAxOworICB0ZXN0KGNvbnN0cnVjdCh1bmFyeURl
bGV0ZVByb3ApLCB0cnVlLCAiYGRlbGV0ZSBuZXcudGFyZ2V0LnByb3BgIHNob3VsZCBiZSB0cnVl
IHdoZW4gbmV3LnRhcmdldCBpcyBub3QgdW5kZWZpbmVkIGFuZCBwcm9wIGlzIGEgY29uZmlndXJh
YmxlIHByb3BlcnR5Iik7CisgIHN0cmljdFVuYXJ5RGVsZXRlUHJvcC5wcm9wID0gMTsKKyAgdGVz
dChjb25zdHJ1Y3Qoc3RyaWN0VW5hcnlEZWxldGVQcm9wKSwgdHJ1ZSwgImBkZWxldGUgbmV3LnRh
cmdldC5wcm9wYCBzaG91bGQgYmUgdHJ1ZSB3aGVuIG5ldy50YXJnZXQgaXMgbm90IHVuZGVmaW5l
ZCBhbmQgcHJvcCBpcyBhIGNvbmZpZ3VyYWJsZSBwcm9wZXJ0eSIpOworICAKKyAgdW5hcnlEZWxl
dGVQcm9wID0gZnVuY3Rpb24gdW5hcnlEZWxldGVQcm9wKCkgeyByZXN1bHQgPSBkZWxldGUgbmV3
LnRhcmdldC5wcm9wOyB9CisgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1bmFyeURlbGV0ZVByb3As
ICJwcm9wIiwgeyB2YWx1ZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogZmFsc2UgfSk7CisgIHRlc3Qo
Y29uc3RydWN0KHVuYXJ5RGVsZXRlUHJvcCksIGZhbHNlLCAiYGRlbGV0ZSBuZXcudGFyZ2V0LnBy
b3BgIHNob3VsZCBiZSBmYWxzZSB3aGVuIG5ldy50YXJnZXQgaXMgbm90IHVuZGVmaW5lZCBhbmQg
cHJvcCBpcyBhIG5vbi1jb25maWd1cmFibGUgcHJvcGVydHkiKTsKKworICBzdHJpY3RVbmFyeURl
bGV0ZVByb3AgPSBmdW5jdGlvbiBzdHJpY3RVbmFyeURlbGV0ZVByb3AoKSB7ICJ1c2Ugc3RyaWN0
IjsgcmVzdWx0ID0gZGVsZXRlIG5ldy50YXJnZXQucHJvcDsgfQorICAvLyBJZiBkZWxldGVTdGF0
dXMgaXMgZmFsc2UgYW5kIElzU3RyaWN0UmVmZXJlbmNlKHJlZikgaXMgdHJ1ZSwgdGhyb3cgYSBU
eXBlRXJyb3IgZXhjZXB0aW9uLgorICBPYmplY3QuZGVmaW5lUHJvcGVydHkoc3RyaWN0VW5hcnlE
ZWxldGVQcm9wLCAicHJvcCIsIHsgdmFsdWU6IGZhbHNlLCBjb25maWd1cmFibGU6IGZhbHNlIH0p
OworICB0cnkgeworICAgIHZhciBwYXNzZWQgPSBmYWxzZTsKKyAgICBjb25zdHJ1Y3Qoc3RyaWN0
VW5hcnlEZWxldGVQcm9wKTsKKyAgfSBjYXRjaCAoZSkgeworICAgIHBhc3NlZCA9IGUgaW5zdGFu
Y2VvZiBUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoImRlbGV0ZSIpID49IDA7CisgIH0K
KyAgdGVzdChwYXNzZWQsIHRydWUsICJgZGVsZXRlIG5ldy50YXJnZXQucHJvcGAgc2hvdWxkIHRo
cm93IGEgVHlwZUVycm9yIGluIHN0cmljdCBjb2RlIHdoZW4gcHJvcCBpcyBhIG5vbi1jb25maWd1
cmFibGUgcHJvcGVydHkiKTsKKworICB1bmFyeURlbGV0ZVByb3AgPSBmdW5jdGlvbiB1bmFyeURl
bGV0ZVByb3AoKSB7IHJlc3VsdCA9IGRlbGV0ZSBuZXcudGFyZ2V0LnByb3A7IH0KKyAgdW5hcnlE
ZWxldGVQcm9wLnByb3AgPSAxOworICB0cnkgeworICAgIHZhciBwYXNzZWQgPSBmYWxzZTsKKyAg
ICBjYWxsKHVuYXJ5RGVsZXRlUHJvcCk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICBwYXNzZWQgPSBl
IGluc3RhbmNlb2YgVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJ1bmRlZmluZWQiKSA+
PSAwOworICB9CisgIHRlc3QocGFzc2VkLCB0cnVlLCAiYGRlbGV0ZSBuZXcudGFyZ2V0LnByb3Bg
IHNob3VsZCB0aHJvdyBhIFR5cGVFcnJvciB3aGVuIG5ldy50YXJnZXQgaXMgdW5kZWZpbmVkIik7
Cit9Cit0ZXN0VW5hcnlPcHMoKTsKKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>