<?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>195059</bug_id>
          
          <creation_ts>2019-02-26 11:28:01 -0800</creation_ts>
          <short_desc>Web Inspector: Canvas: protocol error on first open</short_desc>
          <delta_ts>2019-03-04 12:36:01 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>195058</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1510107</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-02-26 11:28:01 -0800</bug_when>
    <thetext># STEPS TO REPRODUCE:
1. inspect any page
2. go to the Canvas tab
3. enable auto-capture
4. close Web Inspector
5. open Web Inspector
 =&gt; error in inspector2

[Error] Request with id = 2 failed. {&quot;code&quot;:-32601,&quot;message&quot;:&quot;&apos;Canvas&apos; domain was not found&quot;,&quot;data&quot;:[{&quot;code&quot;:-32601,&quot;message&quot;:&quot;&apos;Canvas&apos; domain was not found&quot;}]}
	_dispatchResponse (Main.js:1246)
	dispatch (Main.js:1236)
	dispatch (Main.js:1154)
	dispatchNextQueuedMessageFromBackend (Main.js:1329)
[Error] Error: &apos;Canvas&apos; domain was not found
	(anonymous function) (Main.js:24966:243)
	promiseReactionJob</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510108</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-26 11:28:43 -0800</bug_when>
    <thetext>&lt;rdar://problem/48407871&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510110</commentid>
    <comment_count>2</comment_count>
      <attachid>362996</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-02-26 11:34:53 -0800</bug_when>
    <thetext>Created attachment 362996
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510128</commentid>
    <comment_count>3</comment_count>
      <attachid>362996</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-02-26 11:53:01 -0800</bug_when>
    <thetext>Comment on attachment 362996
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js:104
&gt; +        try {
&gt; +            await CanvasAgent.setRecordingAutoCaptureFrameCount(enabled ? count : 0);

I don&apos;t think this is the right approach.

1. initializeTarget should set this state on the target&apos;s CanvasAgent.

    initializeTarget(target)
    {
        if (target.CanvasAgent) {
            target.CanvasAgent.enable();
            target.CanvasAgent.setRecordingAutoCaptureFrameCount(&lt;value&gt;);
        }
    }

2. This should update the value and then update the value across all targets with CanvasAgent:

    for (let target of WI.targets) {
        if (target.CanvasAgent)
            target.CanvasAgent.setRecordingAutoCaptureFrameCount(&lt;value&gt;);
    }

That will make this code sufficiently safe for multi-targets.

&gt; Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js:110
&gt; +        } catch (e) {
&gt; +            console.error(e);
&gt; +        }

Would the try/catch be needed at all? Seems it would mask the nicer unhandledrejection display that helps us catch these!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1510175</commentid>
    <comment_count>4</comment_count>
      <attachid>363015</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-02-26 13:33:00 -0800</bug_when>
    <thetext>Created attachment 363015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511794</commentid>
    <comment_count>5</comment_count>
      <attachid>363015</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-03-02 01:30:28 -0800</bug_when>
    <thetext>Comment on attachment 363015
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js:46
&gt; -        if (target.CanvasAgent)
&gt; -            target.CanvasAgent.enable();
&gt; +        if (!target.CanvasAgent)
&gt; +            return;

The style in all of these initializeTargets is:

    if (target.FooAgent) {
        ...
    }

I&apos;d prefer we keep that style consistent for now. Maybe we can convert most of these to early returns later.

&gt; Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js:106
&gt; +        if (!WI.targetsAvailable())
&gt; +            await WI.whenTargetsAvailable();

This part should be unnecessary. When new targets become available the state will be set on them in initializeTarget, so we should not have to wait for them.

&gt; Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js:113
&gt; +                promises.push(target.CanvasAgent.setRecordingAutoCaptureFrameCount(enabled ? count : 0));
&gt; +        }
&gt; +        await Promise.all(promises);

Why do we await these at all? Even if a backend error happened, would we care?

I&apos;d expect this to just be the simple loop and updating the settings:

    for (let target of WI.targets) {
        if (target.CanvasAgent)
            promises.push(target.CanvasAgent.setRecordingAutoCaptureFrameCount(enabled ? count : 0));
    }

    WI.settings.canvasRecordingAutoCaptureEnabled.value = enabled &amp;&amp; count;
    WI.settings.canvasRecordingAutoCaptureFrameCount.value = count;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511834</commentid>
    <comment_count>6</comment_count>
      <attachid>363015</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-03-02 12:14:47 -0800</bug_when>
    <thetext>Comment on attachment 363015
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js:106
&gt;&gt; +            await WI.whenTargetsAvailable();
&gt; 
&gt; This part should be unnecessary. When new targets become available the state will be set on them in initializeTarget, so we should not have to wait for them.

Good point!

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js:113
&gt;&gt; +        await Promise.all(promises);
&gt; 
&gt; Why do we await these at all? Even if a backend error happened, would we care?
&gt; 
&gt; I&apos;d expect this to just be the simple loop and updating the settings:
&gt; 
&gt;     for (let target of WI.targets) {
&gt;         if (target.CanvasAgent)
&gt;             promises.push(target.CanvasAgent.setRecordingAutoCaptureFrameCount(enabled ? count : 0));
&gt;     }
&gt; 
&gt;     WI.settings.canvasRecordingAutoCaptureEnabled.value = enabled &amp;&amp; count;
&gt;     WI.settings.canvasRecordingAutoCaptureFrameCount.value = count;

I prefer avoid changing values in the frontend until we know that it actually &quot;worked&quot; in the backend, as this can help prevent data corruption (e.g. somehow passing a string as `count` instead of a number would &quot;corrupt&quot; the setting&apos;s value to be a string).

What I wrote doesn&apos;t do anything in the case of an error, so that would be thrown (and caught by the global error handler) as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1511835</commentid>
    <comment_count>7</comment_count>
      <attachid>363426</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-03-02 12:16:57 -0800</bug_when>
    <thetext>Created attachment 363426
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512274</commentid>
    <comment_count>8</comment_count>
      <attachid>363426</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2019-03-04 11:59:44 -0800</bug_when>
    <thetext>Comment on attachment 363426
Patch

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

r=me

&gt; Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js:104
&gt; +        if (WI.targetsAvailable()) {

Is this necessary? When no targets are available, WI.targets should be an empty list safe to iterate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512279</commentid>
    <comment_count>9</comment_count>
      <attachid>363426</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-03-04 12:04:20 -0800</bug_when>
    <thetext>Comment on attachment 363426
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Controllers/CanvasManager.js:104
&gt;&gt; +        if (WI.targetsAvailable()) {
&gt; 
&gt; Is this necessary? When no targets are available, WI.targets should be an empty list safe to iterate.

🤦‍♂️</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512283</commentid>
    <comment_count>10</comment_count>
      <attachid>363538</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-03-04 12:09:41 -0800</bug_when>
    <thetext>Created attachment 363538
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512311</commentid>
    <comment_count>11</comment_count>
      <attachid>363538</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-04 12:35:59 -0800</bug_when>
    <thetext>Comment on attachment 363538
Patch

Clearing flags on attachment: 363538

Committed r242374: &lt;https://trac.webkit.org/changeset/242374&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512312</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-04 12:36:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362996</attachid>
            <date>2019-02-26 11:34:53 -0800</date>
            <delta_ts>2019-02-26 13:32:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195059-20190226113452.patch</filename>
            <type>text/plain</type>
            <size>2316</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDRlNGExMDNkNDExNjg4MDY0ZjhjZWYxOGNlZWJk
ZjQ1NjhjZDY1ZDkuLmI4NmM2YmY2YTA3NWYwZmI4OTE4Njc2NDAxN2RhMWIzZmVkM2Q4ZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTAyLTI2ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBD
YW52YXM6IHByb3RvY29sIGVycm9yIG9uIGZpcnN0IG9wZW4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTA1OQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNDg0MDc4NzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanM6CisgICAg
ICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5hc3luYyBzZXRSZWNvcmRpbmdBdXRvQ2Fw
dHVyZUZyYW1lQ291bnQpOgorICAgICAgICBJZiB0YXJnZXRzIGFyZW4ndCBhdmFpbGFibGUsIHdh
aXQgdW50aWwgdGhleSBhcmUgYW5kIHRoZW4gc2V0IHRoZSBhdXRvLWNhcHR1cmUgZnJhbWUgY291
bnQuCisKIDIwMTktMDItMjYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IG5hdmlnYXRpb24gc2lkZWJhciBzYXlzICJObyBTZWFyY2gg
UmVzdWx0cyIgd2hlbiBhIHNsb3cgc2VhcmNoIGlzIGluIHByb2dyZXNzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5h
Z2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMv
Q2FudmFzTWFuYWdlci5qcwppbmRleCBhOWEwOWRmNDFlMmQ4MzJmZWEyYWJiNjc3OTRmY2NkMzky
NWI0ZDYxLi41ODkxMTc5MDZjN2VhODdjN2Y0N2Y1ODEyZGQxNDk3MjEwNWQ5ZTc2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52
YXNNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Nv
bnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMKQEAgLTkzLDE4ICs5MywyMSBAQCBXSS5DYW52YXNN
YW5hZ2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgICAgICB0
aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXSS5DYW52YXNNYW5hZ2VyLkV2ZW50LlJlY29y
ZGluZ0ltcG9ydGVkLCB7cmVjb3JkaW5nLCBpbml0aWF0ZWRCeVVzZXI6IHRydWV9KTsKICAgICB9
CiAKLSAgICBzZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQoZW5hYmxlZCwgY291bnQp
CisgICAgYXN5bmMgc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50KGVuYWJsZWQsIGNv
dW50KQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQoIWlzTmFOKGNvdW50KSAmJiBjb3Vu
dCA+PSAwKTsKIAotICAgICAgICByZXR1cm4gQ2FudmFzQWdlbnQuc2V0UmVjb3JkaW5nQXV0b0Nh
cHR1cmVGcmFtZUNvdW50KGVuYWJsZWQgPyBjb3VudCA6IDApCi0gICAgICAgIC50aGVuKCgpID0+
IHsKKyAgICAgICAgaWYgKCFXSS50YXJnZXRzQXZhaWxhYmxlKCkpCisgICAgICAgICAgICBhd2Fp
dCBXSS53aGVuVGFyZ2V0c0F2YWlsYWJsZSgpOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAg
ICBhd2FpdCBDYW52YXNBZ2VudC5zZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQoZW5h
YmxlZCA/IGNvdW50IDogMCk7CisKICAgICAgICAgICAgIFdJLnNldHRpbmdzLmNhbnZhc1JlY29y
ZGluZ0F1dG9DYXB0dXJlRW5hYmxlZC52YWx1ZSA9IGVuYWJsZWQgJiYgY291bnQ7CiAgICAgICAg
ICAgICBXSS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQudmFs
dWUgPSBjb3VudDsKLSAgICAgICAgfSkKLSAgICAgICAgLmNhdGNoKChlcnJvcikgPT4gewotICAg
ICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7Ci0gICAgICAgIH0pOworICAgICAgICB9IGNh
dGNoIChlKSB7CisgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpOworICAgICAgICB9CiAgICAg
fQogCiAgICAgY2FudmFzQWRkZWQoY2FudmFzUGF5bG9hZCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363015</attachid>
            <date>2019-02-26 13:33:00 -0800</date>
            <delta_ts>2019-03-02 12:16:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195059-20190226133300.patch</filename>
            <type>text/plain</type>
            <size>3236</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDRlNGExMDNkNDExNjg4MDY0ZjhjZWYxOGNlZWJk
ZjQ1NjhjZDY1ZDkuLjFiZGQ3Yjg1YmI2Zjc2YWIxNjVmZDY5YjJkYzIwYzc1YzA1ODAwMGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTAyLTI2ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBD
YW52YXM6IHByb3RvY29sIGVycm9yIG9uIGZpcnN0IG9wZW4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTA1OQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNDg0MDc4NzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanM6CisgICAg
ICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5pbml0aWFsaXplVGFyZ2V0KToKKyAgICAg
ICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLmFzeW5jIHNldFJlY29yZGluZ0F1dG9DYXB0
dXJlRnJhbWVDb3VudCk6CisgICAgICAgIElmIHRhcmdldHMgYXJlbid0IGF2YWlsYWJsZSwgd2Fp
dCB1bnRpbCB0aGV5IGFyZSBhbmQgdGhlbiBzZXQgdGhlIGF1dG8tY2FwdHVyZSBmcmFtZSBjb3Vu
dC4KKwogMjAxOS0wMi0yNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogbmF2aWdhdGlvbiBzaWRlYmFyIHNheXMgIk5vIFNlYXJjaCBS
ZXN1bHRzIiB3aGVuIGEgc2xvdyBzZWFyY2ggaXMgaW4gcHJvZ3Jlc3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFn
ZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9D
YW52YXNNYW5hZ2VyLmpzCmluZGV4IGE5YTA5ZGY0MWUyZDgzMmZlYTJhYmI2Nzc5NGZjY2QzOTI1
YjRkNjEuLjUwYTM4MGU0ZTRiYTBjYjI0NWViM2QxZDllMWI0NzU0MmY0MzRjYWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZh
c01hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29u
dHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcwpAQCAtNDIsOCArNDIsMTMgQEAgV0kuQ2FudmFzTWFu
YWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIGluaXRp
YWxpemVUYXJnZXQodGFyZ2V0KQogICAgIHsKLSAgICAgICAgaWYgKHRhcmdldC5DYW52YXNBZ2Vu
dCkKLSAgICAgICAgICAgIHRhcmdldC5DYW52YXNBZ2VudC5lbmFibGUoKTsKKyAgICAgICAgaWYg
KCF0YXJnZXQuQ2FudmFzQWdlbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGFy
Z2V0LkNhbnZhc0FnZW50LmVuYWJsZSgpOworCisgICAgICAgIGlmICh0YXJnZXQuQ2FudmFzQWdl
bnQuc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50ICYmIFdJLnNldHRpbmdzLmNhbnZh
c1JlY29yZGluZ0F1dG9DYXB0dXJlRW5hYmxlZC52YWx1ZSAmJiBXSS5zZXR0aW5ncy5jYW52YXNS
ZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQudmFsdWUpCisgICAgICAgICAgICB0YXJnZXQu
Q2FudmFzQWdlbnQuc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50KFdJLnNldHRpbmdz
LmNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudC52YWx1ZSk7CiAgICAgfQogCiAg
ICAgLy8gU3RhdGljCkBAIC05MywxOCArOTgsMjIgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNz
IENhbnZhc01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2
ZW50VG9MaXN0ZW5lcnMoV0kuQ2FudmFzTWFuYWdlci5FdmVudC5SZWNvcmRpbmdJbXBvcnRlZCwg
e3JlY29yZGluZywgaW5pdGlhdGVkQnlVc2VyOiB0cnVlfSk7CiAgICAgfQogCi0gICAgc2V0UmVj
b3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50KGVuYWJsZWQsIGNvdW50KQorICAgIGFzeW5jIHNl
dFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudChlbmFibGVkLCBjb3VudCkKICAgICB7CiAg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KCFpc05hTihjb3VudCkgJiYgY291bnQgPj0gMCk7CiAKLSAg
ICAgICAgcmV0dXJuIENhbnZhc0FnZW50LnNldFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3Vu
dChlbmFibGVkID8gY291bnQgOiAwKQotICAgICAgICAudGhlbigoKSA9PiB7Ci0gICAgICAgICAg
ICBXSS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUVuYWJsZWQudmFsdWUgPSBl
bmFibGVkICYmIGNvdW50OwotICAgICAgICAgICAgV0kuc2V0dGluZ3MuY2FudmFzUmVjb3JkaW5n
QXV0b0NhcHR1cmVGcmFtZUNvdW50LnZhbHVlID0gY291bnQ7Ci0gICAgICAgIH0pCi0gICAgICAg
IC5jYXRjaCgoZXJyb3IpID0+IHsKLSAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpOwot
ICAgICAgICB9KTsKKyAgICAgICAgaWYgKCFXSS50YXJnZXRzQXZhaWxhYmxlKCkpCisgICAgICAg
ICAgICBhd2FpdCBXSS53aGVuVGFyZ2V0c0F2YWlsYWJsZSgpOworCisgICAgICAgIGxldCBwcm9t
aXNlcyA9IFtdOworICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0kudGFyZ2V0cykgeworICAg
ICAgICAgICAgaWYgKHRhcmdldC5DYW52YXNBZ2VudCkKKyAgICAgICAgICAgICAgICBwcm9taXNl
cy5wdXNoKHRhcmdldC5DYW52YXNBZ2VudC5zZXRSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291
bnQoZW5hYmxlZCA/IGNvdW50IDogMCkpOworICAgICAgICB9CisgICAgICAgIGF3YWl0IFByb21p
c2UuYWxsKHByb21pc2VzKTsKKworICAgICAgICBXSS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdB
dXRvQ2FwdHVyZUVuYWJsZWQudmFsdWUgPSBlbmFibGVkICYmIGNvdW50OworICAgICAgICBXSS5z
ZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQudmFsdWUgPSBjb3Vu
dDsKICAgICB9CiAKICAgICBjYW52YXNBZGRlZChjYW52YXNQYXlsb2FkKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363426</attachid>
            <date>2019-03-02 12:16:57 -0800</date>
            <delta_ts>2019-03-04 12:09:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195059-20190302121656.patch</filename>
            <type>text/plain</type>
            <size>3171</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDIyZWMyNmNmYWVjZGE1NDJiYzE3NTc1YWQ2ZmQ3
ODY3ODViNWRmYzcuLjMyMzM3NGRmMzhiOWNkODU5NWJhYjNlNDA1NjgzZGZmZGM0MjRjNjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTAzLTAyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBD
YW52YXM6IHByb3RvY29sIGVycm9yIG9uIGZpcnN0IG9wZW4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTA1OQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNDg0MDc4NzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanM6CisgICAg
ICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5pbml0aWFsaXplVGFyZ2V0KToKKyAgICAg
ICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLnN0YXRpYyBzdXBwb3J0c1JlY29yZGluZ0F1
dG9DYXB0dXJlKToKKyAgICAgICAgKFdJLkNhbnZhc01hbmFnZXIucHJvdG90eXBlLnNldFJlY29y
ZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudCk6CisgICAgICAgIElmIHRhcmdldHMgYXJlbid0IGF2
YWlsYWJsZSwgd2FpdCB1bnRpbCB0aGV5IGFyZSBhbmQgdGhlbiBzZXQgdGhlIGF1dG8tY2FwdHVy
ZSBmcmFtZSBjb3VudC4KKwogMjAxOS0wMy0wMSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9A
YXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IENQVSBVc2FnZSAtIEVuZXJneSBJ
bXBhY3QgU2VjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0NhbnZhc01hbmFnZXIuanMKaW5kZXggYTlhMDlk
ZjQxZTJkODMyZmVhMmFiYjY3Nzk0ZmNjZDM5MjViNGQ2MS4uNTkwOWNmYTdjY2NiODc0NTVhMmZi
ZGFjYjZlOTk4ZjE2ZTRlMjZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzCkBA
IC00MiwxNSArNDIsMTkgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZhc01hbmFnZXIg
ZXh0ZW5kcyBXSS5PYmplY3QKIAogICAgIGluaXRpYWxpemVUYXJnZXQodGFyZ2V0KQogICAgIHsK
LSAgICAgICAgaWYgKHRhcmdldC5DYW52YXNBZ2VudCkKKyAgICAgICAgaWYgKHRhcmdldC5DYW52
YXNBZ2VudCkgewogICAgICAgICAgICAgdGFyZ2V0LkNhbnZhc0FnZW50LmVuYWJsZSgpOworCisg
ICAgICAgICAgICBpZiAodGFyZ2V0LkNhbnZhc0FnZW50LnNldFJlY29yZGluZ0F1dG9DYXB0dXJl
RnJhbWVDb3VudCAmJiBXSS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUVuYWJs
ZWQudmFsdWUgJiYgV0kuc2V0dGluZ3MuY2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNv
dW50LnZhbHVlKQorICAgICAgICAgICAgICAgIHRhcmdldC5DYW52YXNBZ2VudC5zZXRSZWNvcmRp
bmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQoV0kuc2V0dGluZ3MuY2FudmFzUmVjb3JkaW5nQXV0b0Nh
cHR1cmVGcmFtZUNvdW50LnZhbHVlKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIC8vIFN0YXRp
YwogCiAgICAgc3RhdGljIHN1cHBvcnRzUmVjb3JkaW5nQXV0b0NhcHR1cmUoKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuIHdpbmRvdy5DYW52YXNBZ2VudCAmJiBDYW52YXNBZ2VudC5zZXRSZWNvcmRp
bmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQ7CisgICAgICAgIHJldHVybiBJbnNwZWN0b3JCYWNrZW5k
LmRvbWFpbnMuQ2FudmFzQWdlbnQgJiYgSW5zcGVjdG9yQmFja2VuZC5kb21haW5zLkNhbnZhc0Fn
ZW50LnNldFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudDsKICAgICB9CiAKICAgICAvLyBQ
dWJsaWMKQEAgLTk3LDE0ICsxMDEsMTUgQEAgV0kuQ2FudmFzTWFuYWdlciA9IGNsYXNzIENhbnZh
c01hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0
KCFpc05hTihjb3VudCkgJiYgY291bnQgPj0gMCk7CiAKLSAgICAgICAgcmV0dXJuIENhbnZhc0Fn
ZW50LnNldFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudChlbmFibGVkID8gY291bnQgOiAw
KQotICAgICAgICAudGhlbigoKSA9PiB7Ci0gICAgICAgICAgICBXSS5zZXR0aW5ncy5jYW52YXNS
ZWNvcmRpbmdBdXRvQ2FwdHVyZUVuYWJsZWQudmFsdWUgPSBlbmFibGVkICYmIGNvdW50OwotICAg
ICAgICAgICAgV0kuc2V0dGluZ3MuY2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50
LnZhbHVlID0gY291bnQ7Ci0gICAgICAgIH0pCi0gICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHsK
LSAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpOwotICAgICAgICB9KTsKKyAgICAgICAg
aWYgKFdJLnRhcmdldHNBdmFpbGFibGUoKSkgeworICAgICAgICAgICAgZm9yIChsZXQgdGFyZ2V0
IG9mIFdJLnRhcmdldHMpIHsKKyAgICAgICAgICAgICAgICBpZiAodGFyZ2V0LkNhbnZhc0FnZW50
KQorICAgICAgICAgICAgICAgICAgICB0YXJnZXQuQ2FudmFzQWdlbnQuc2V0UmVjb3JkaW5nQXV0
b0NhcHR1cmVGcmFtZUNvdW50KGVuYWJsZWQgPyBjb3VudCA6IDApOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisKKyAgICAgICAgV0kuc2V0dGluZ3MuY2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1
cmVFbmFibGVkLnZhbHVlID0gZW5hYmxlZCAmJiBjb3VudDsKKyAgICAgICAgV0kuc2V0dGluZ3Mu
Y2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50LnZhbHVlID0gY291bnQ7CiAgICAg
fQogCiAgICAgY2FudmFzQWRkZWQoY2FudmFzUGF5bG9hZCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>363538</attachid>
            <date>2019-03-04 12:09:41 -0800</date>
            <delta_ts>2019-03-04 12:35:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195059-20190304120940.patch</filename>
            <type>text/plain</type>
            <size>3123</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGMxNjUyMmM4NDVkNzJlNDhjNGEwOGMyNmYyYWNi
OGJlMzAwZTIxZjkuLmY1YTc2YzE3MGQ5MjU1YzVkOTNhNWUzYTIzNzM1ZjI5MGJmOGRiMTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTAzLTA0ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBD
YW52YXM6IHByb3RvY29sIGVycm9yIG9uIGZpcnN0IG9wZW4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NTA1OQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNDg0MDc4NzE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzOgorICAg
ICAgICAoV0kuQ2FudmFzTWFuYWdlci5wcm90b3R5cGUuaW5pdGlhbGl6ZVRhcmdldCk6CisgICAg
ICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5zdGF0aWMgc3VwcG9ydHNSZWNvcmRpbmdB
dXRvQ2FwdHVyZSk6CisgICAgICAgIChXSS5DYW52YXNNYW5hZ2VyLnByb3RvdHlwZS5zZXRSZWNv
cmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQpOgorICAgICAgICBJZiB0YXJnZXRzIGFyZW4ndCBh
dmFpbGFibGUsIHdhaXQgdW50aWwgdGhleSBhcmUgYW5kIHRoZW4gc2V0IHRoZSBhdXRvLWNhcHR1
cmUgZnJhbWUgY291bnQuCisKIDIwMTktMDMtMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBw
bGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFVuZXhwZWN0ZWRseSBmcmVxdWVudCBm
bGFzaGluZyBvZiBET00gbm9kZSBhdHRyaWJ1dGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQ2FudmFzTWFuYWdl
ci5qcwppbmRleCBhOWEwOWRmNDFlMmQ4MzJmZWEyYWJiNjc3OTRmY2NkMzkyNWI0ZDYxLi45ZDM5
MTFmZTI4ZWE4MGY0OTIyYmI4NzcwMWU4OGJjODQ4NmYxMThlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9DYW52YXNNYW5hZ2VyLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0Nh
bnZhc01hbmFnZXIuanMKQEAgLTQyLDE1ICs0MiwxOSBAQCBXSS5DYW52YXNNYW5hZ2VyID0gY2xh
c3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogCiAgICAgaW5pdGlhbGl6ZVRhcmdl
dCh0YXJnZXQpCiAgICAgewotICAgICAgICBpZiAodGFyZ2V0LkNhbnZhc0FnZW50KQorICAgICAg
ICBpZiAodGFyZ2V0LkNhbnZhc0FnZW50KSB7CiAgICAgICAgICAgICB0YXJnZXQuQ2FudmFzQWdl
bnQuZW5hYmxlKCk7CisKKyAgICAgICAgICAgIGlmICh0YXJnZXQuQ2FudmFzQWdlbnQuc2V0UmVj
b3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50ICYmIFdJLnNldHRpbmdzLmNhbnZhc1JlY29yZGlu
Z0F1dG9DYXB0dXJlRW5hYmxlZC52YWx1ZSAmJiBXSS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdB
dXRvQ2FwdHVyZUZyYW1lQ291bnQudmFsdWUpCisgICAgICAgICAgICAgICAgdGFyZ2V0LkNhbnZh
c0FnZW50LnNldFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudChXSS5zZXR0aW5ncy5jYW52
YXNSZWNvcmRpbmdBdXRvQ2FwdHVyZUZyYW1lQ291bnQudmFsdWUpOworICAgICAgICB9CiAgICAg
fQogCiAgICAgLy8gU3RhdGljCiAKICAgICBzdGF0aWMgc3VwcG9ydHNSZWNvcmRpbmdBdXRvQ2Fw
dHVyZSgpCiAgICAgewotICAgICAgICByZXR1cm4gd2luZG93LkNhbnZhc0FnZW50ICYmIENhbnZh
c0FnZW50LnNldFJlY29yZGluZ0F1dG9DYXB0dXJlRnJhbWVDb3VudDsKKyAgICAgICAgcmV0dXJu
IEluc3BlY3RvckJhY2tlbmQuZG9tYWlucy5DYW52YXNBZ2VudCAmJiBJbnNwZWN0b3JCYWNrZW5k
LmRvbWFpbnMuQ2FudmFzQWdlbnQuc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50Owog
ICAgIH0KIAogICAgIC8vIFB1YmxpYwpAQCAtOTcsMTQgKzEwMSwxMyBAQCBXSS5DYW52YXNNYW5h
Z2VyID0gY2xhc3MgQ2FudmFzTWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAgIHsKICAgICAg
ICAgY29uc29sZS5hc3NlcnQoIWlzTmFOKGNvdW50KSAmJiBjb3VudCA+PSAwKTsKIAotICAgICAg
ICByZXR1cm4gQ2FudmFzQWdlbnQuc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50KGVu
YWJsZWQgPyBjb3VudCA6IDApCi0gICAgICAgIC50aGVuKCgpID0+IHsKLSAgICAgICAgICAgIFdJ
LnNldHRpbmdzLmNhbnZhc1JlY29yZGluZ0F1dG9DYXB0dXJlRW5hYmxlZC52YWx1ZSA9IGVuYWJs
ZWQgJiYgY291bnQ7Ci0gICAgICAgICAgICBXSS5zZXR0aW5ncy5jYW52YXNSZWNvcmRpbmdBdXRv
Q2FwdHVyZUZyYW1lQ291bnQudmFsdWUgPSBjb3VudDsKLSAgICAgICAgfSkKLSAgICAgICAgLmNh
dGNoKChlcnJvcikgPT4gewotICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7Ci0gICAg
ICAgIH0pOworICAgICAgICBmb3IgKGxldCB0YXJnZXQgb2YgV0kudGFyZ2V0cykgeworICAgICAg
ICAgICAgaWYgKHRhcmdldC5DYW52YXNBZ2VudCkKKyAgICAgICAgICAgICAgICB0YXJnZXQuQ2Fu
dmFzQWdlbnQuc2V0UmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50KGVuYWJsZWQgPyBjb3Vu
dCA6IDApOworICAgICAgICB9CisKKyAgICAgICAgV0kuc2V0dGluZ3MuY2FudmFzUmVjb3JkaW5n
QXV0b0NhcHR1cmVFbmFibGVkLnZhbHVlID0gZW5hYmxlZCAmJiBjb3VudDsKKyAgICAgICAgV0ku
c2V0dGluZ3MuY2FudmFzUmVjb3JkaW5nQXV0b0NhcHR1cmVGcmFtZUNvdW50LnZhbHVlID0gY291
bnQ7CiAgICAgfQogCiAgICAgY2FudmFzQWRkZWQoY2FudmFzUGF5bG9hZCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>