<?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>181800</bug_id>
          
          <creation_ts>2018-01-18 10:01:58 -0800</creation_ts>
          <short_desc>Web Inspector: Elements tab should have &quot;Jump to Layer&quot; functionality</short_desc>
          <delta_ts>2018-02-06 19:22:06 -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>
          
          <blocked>174176</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ross Kirsling">ross.kirsling</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>1390553</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-01-18 10:01:58 -0800</bug_when>
    <thetext>Background
----------
According to JoePeck, one way the apple.com folks would use the legacy Layers sidebar is to quickly check how memory consumption is affected by modifying an element&apos;s CSS.

Although keeping two versions of the Layers sidebar around is a nonstarter, the fact that we can jump from layer to element but not from element to layer is a definite gap in functionality.

Proposal
--------
Add &quot;Jump to Layer&quot; functionality to the Elements tab.

I figure this could be a nav bar button or a context menu item (or both?).
To avoid having to redundantly retrieve all the layer data on the Elements tab, this can be always-enabled and simply jump to the leafmost containing layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390652</commentid>
    <comment_count>1</comment_count>
      <attachid>331657</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-01-18 13:48:00 -0800</bug_when>
    <thetext>Created attachment 331657
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390679</commentid>
    <comment_count>2</comment_count>
      <attachid>331657</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-01-18 15:11:38 -0800</bug_when>
    <thetext>Comment on attachment 331657
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js:205
&gt; +    if (!options.excludeRevealElement &amp;&amp; domNode.ownerDocument) {

Should this have a:

    if (!WI.isShowingElementsTab()) {
        ...
    }

&gt; Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js:211
&gt; +    if (window.LayerTreeAgent &amp;&amp; domNode.parentNode) {

This strikes me as unusual since an element may or may not have layers and I don&apos;t think a parent is necessary (&lt;html&gt;). What happens if this node doesn&apos;t have a layer, it finds the parent that does?

&gt; Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js:212
&gt; +        contextMenu.appendItem(WI.UIString(&quot;Reveal in Layers Tab&quot;), () =&gt; {

Should this have a:

    if (!WI.isShowingLayersTab()) {
        ...
    }

&gt; Source/WebInspectorUI/UserInterface/Views/Layers3DContentView.js:132
&gt; +        let layer = null;
&gt; +        while (node &amp;&amp; !layer) {
&gt; +            layer = layerForNodeId(node.id);
&gt; +            if (!layer)
&gt; +                node = node.parentNode;
&gt; +        }
&gt; +
&gt; +        this.selectLayerById(layer.layerId);

Is it possible that layer is null?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1390681</commentid>
    <comment_count>3</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-01-18 15:19:57 -0800</bug_when>
    <thetext>Note that a page always has a document layer, so there&apos;s no danger in finding a containing layer for &lt;html&gt;.

(_nodeToSelect appears to be a guard for the case where the layer data hasn&apos;t been loaded yet though.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391242</commentid>
    <comment_count>4</comment_count>
      <attachid>331802</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-01-19 15:51:16 -0800</bug_when>
    <thetext>Created attachment 331802
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391312</commentid>
    <comment_count>5</comment_count>
      <attachid>331802</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-01-19 17:37:04 -0800</bug_when>
    <thetext>Comment on attachment 331802
Patch

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

Works as advertised -- thanks for taking this on! :D

&gt; Source/WebInspectorUI/UserInterface/Views/Layers3DContentView.js:129
&gt; +        let layerForNodeId = (nodeId) =&gt; {
&gt; +            for (let layer of this._layers) {
&gt; +                if (layer.nodeId === nodeId)
&gt; +                    return layer;
&gt; +            }
&gt; +            return null;
&gt; +        };

This is just Array#find, so you can write `this._layers.find(layer =&gt; layer.nodeId === node.id);` below.

&gt; Source/WebInspectorUI/UserInterface/Views/Layers3DContentView.js:136
&gt; +        while (node &amp;&amp; !layer) {
&gt; +            layer = layerForNodeId(node.id);
&gt; +            if (!layer)
&gt; +                node = node.parentNode;
&gt; +        }

Even though this is safe in practice, the way it reads does make one wonder about the &quot;!node&quot; case...
My Friday evening brain isn&apos;t coming up with a beautiful alternative solution though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391951</commentid>
    <comment_count>6</comment_count>
      <attachid>331997</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-01-22 19:44:38 -0800</bug_when>
    <thetext>Created attachment 331997
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395021</commentid>
    <comment_count>7</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-01-31 09:27:19 -0800</bug_when>
    <thetext>This is fine from my perspective (unless we want to add a `console.assert(layer);`) -- just need r+ from someone with authority to give it. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395062</commentid>
    <comment_count>8</comment_count>
      <attachid>331997</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-01-31 10:57:16 -0800</bug_when>
    <thetext>Comment on attachment 331997
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js:205
&gt; +    if (!options.excludeRevealElement &amp;&amp; window.DOMAgent &amp;&amp; !WI.isShowingElementsTab() &amp;&amp; domNode.ownerDocument) {

Hmm, I may have mislead on the isShowingElementsTab / WI.isShowingLayersTab here. Because I think you could log an element in the console, and want to show that in either location:

    js&gt; document.body
    &lt;body class=&quot;make-me-a-layer&gt;

And issuing a context menu on this node in the Console should show both &quot;Reveal in DOM Tree&quot; and &quot;Reveal in Layers Tab&quot; no matter what tab is showing, right? Maybe it does?

My guess is this was solved with those &quot;exclude&quot; options. And only the DOM Tree includes excludeRevealElement?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395753</commentid>
    <comment_count>9</comment_count>
      <attachid>331997</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-02-01 22:39:44 -0800</bug_when>
    <thetext>Comment on attachment 331997
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js:205
&gt;&gt; +    if (!options.excludeRevealElement &amp;&amp; window.DOMAgent &amp;&amp; !WI.isShowingElementsTab() &amp;&amp; domNode.ownerDocument) {
&gt; 
&gt; Hmm, I may have mislead on the isShowingElementsTab / WI.isShowingLayersTab here. Because I think you could log an element in the console, and want to show that in either location:
&gt; 
&gt;     js&gt; document.body
&gt;     &lt;body class=&quot;make-me-a-layer&gt;
&gt; 
&gt; And issuing a context menu on this node in the Console should show both &quot;Reveal in DOM Tree&quot; and &quot;Reveal in Layers Tab&quot; no matter what tab is showing, right? Maybe it does?
&gt; 
&gt; My guess is this was solved with those &quot;exclude&quot; options. And only the DOM Tree includes excludeRevealElement?

You are correct that DOMTreeOutline sets that to true, specifically from DOMTreeContentView.  I do remember adding `excludeRevealElement`, but I didn&apos;t remember why.  Now I remember :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395754</commentid>
    <comment_count>10</comment_count>
      <attachid>332940</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-02-01 22:44:38 -0800</bug_when>
    <thetext>Created attachment 332940
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395760</commentid>
    <comment_count>11</comment_count>
      <attachid>332940</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-02-01 23:01:06 -0800</bug_when>
    <thetext>Comment on attachment 332940
Patch

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

r=me

&gt; Source/WebInspectorUI/ChangeLog:11
&gt; +        (WI.isShowingElementsTab):

Both of these isShowing*Tab are unused by this patch, but fine to keep.

&gt; Source/WebInspectorUI/UserInterface/Views/Layers3DContentView.js:130
&gt; +        this.selectLayerById(layer.layerId);

I still think we should do:

    console.assert(layer, &quot;Should always be at least some top level layer&quot;);
    if (!layer)
        return;

Maybe this is possible with an element inside of a Shadow DOM?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397041</commentid>
    <comment_count>12</comment_count>
      <attachid>333248</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-02-06 18:24:14 -0800</bug_when>
    <thetext>Created attachment 333248
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397065</commentid>
    <comment_count>13</comment_count>
      <attachid>333248</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-06 19:20:06 -0800</bug_when>
    <thetext>Comment on attachment 333248
Patch

Clearing flags on attachment: 333248

Committed r228215: &lt;https://trac.webkit.org/changeset/228215&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397066</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-06 19:20:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397067</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-06 19:22:06 -0800</bug_when>
    <thetext>&lt;rdar://problem/37298738&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331657</attachid>
            <date>2018-01-18 13:48:00 -0800</date>
            <delta_ts>2018-01-19 15:51:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181800-20180118134756.patch</filename>
            <type>text/plain</type>
            <size>7632</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDE3ODNkNzUxNWMwMzNlNDlmNGMwNTIyYTExYTQy
ZWM0YzlhZmM3MmYuLjllY2I1NGVjOTRmNGZmM2NmMDg0NWM5NTgzNTViNTdiZDIzMGZlNmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE4LTAxLTE4ICBEZXZp
biBSb3Vzc28gIDx3ZWJraXRAZGV2aW5yb3Vzc28uY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEVsZW1lbnRzIHRhYiBzaG91bGQgaGF2ZSAiSnVtcCB0byBMYXllciIgZnVuY3Rpb25hbGl0
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxODAw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBMb2Nh
bGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL0Jhc2UvTWFpbi5qczoKKyAgICAgICAgKFdJLnNob3dMYXllcnNUYWIpOgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Db250ZXh0TWVudVV0aWxpdGllcy5qczoKKyAg
ICAgICAgKFdJLmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2RlKToKKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJzVGFiQ29udGVudFZpZXcuanM6CisgICAgICAgIChX
SS5MYXllcnNUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuc2VsZWN0TGF5ZXJGb3JOb2RlKToKKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJzM0RDb250ZW50Vmlldy5qczoKKyAg
ICAgICAgKFdJLkxheWVyczNEQ29udGVudFZpZXcpOgorICAgICAgICAoV0kuTGF5ZXJzM0RDb250
ZW50Vmlldy5wcm90b3R5cGUuc2VsZWN0TGF5ZXJGb3JOb2RlKToKKyAgICAgICAgKFdJLkxheWVy
czNEQ29udGVudFZpZXcucHJvdG90eXBlLmxheW91dCk6CisKIDIwMTgtMDEtMTcgIERldmluIFJv
dXNzbyAgPHdlYmtpdEBkZXZpbnJvdXNzby5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
Y2xpY2tpbmcgb24gYSBwYXRoIGNvbXBvbmVudCB0aGF0IGhhcyBubyBzaWJsaW5ncyBzaG91bGQg
c2VsZWN0IGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9u
cy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xv
Y2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCA0YjVlYWRjMjBl
NTZjYjBjNzljNzFmZDRjMDAwNmFiZDQ3MGJjNDYxLi5jMjMyMWVjNDE0MGZjZjgwY2RkMDI4MWVl
ZmM4ZDEwNzQ1YTI0N2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxp
emF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKQEAgLTc5
MCw2ICs3OTAsNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJSZXZlYWwgQnJlYWtwb2ludCJdID0gIlJl
dmVhbCBCcmVha3BvaW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIlJldmVhbCBpbiBET00gVHJlZSJd
ID0gIlJldmVhbCBpbiBET00gVHJlZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZXZlYWwgaW4gRGVi
dWdnZXIgVGFiIl0gPSAiUmV2ZWFsIGluIERlYnVnZ2VyIFRhYiI7CiBsb2NhbGl6ZWRTdHJpbmdz
WyJSZXZlYWwgaW4gRWxlbWVudHMgVGFiIl0gPSAiUmV2ZWFsIGluIEVsZW1lbnRzIFRhYiI7Cits
b2NhbGl6ZWRTdHJpbmdzWyJSZXZlYWwgaW4gTGF5ZXJzIFRhYiJdID0gIlJldmVhbCBpbiBMYXll
cnMgVGFiIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJldmVhbCBpbiBOZXR3b3JrIFRhYiJdID0gIlJl
dmVhbCBpbiBOZXR3b3JrIFRhYiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZXZlYWwgaW4gT3JpZ2lu
YWwgUmVzb3VyY2UiXSA9ICJSZXZlYWwgaW4gT3JpZ2luYWwgUmVzb3VyY2UiOwogbG9jYWxpemVk
U3RyaW5nc1siUmV2ZWFsIGluIFJlc291cmNlcyBUYWIiXSA9ICJSZXZlYWwgaW4gUmVzb3VyY2Vz
IFRhYiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9C
YXNlL01haW4uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01h
aW4uanMKaW5kZXggNmRmMWMwNzcwZGExYWRiYjVjMGVkNjYxMDIxMjRmMDE1YzQzOGI5ZS4uNWRj
ZDBlNmVlMzIwNTdmNDFhMDBlYjA0Zjk0ZWIzMWI2NjQxM2JkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtOTgyLDYgKzk4Miwx
NiBAQCBXSS5zaG93VGltZWxpbmVUYWIgPSBmdW5jdGlvbigpCiAgICAgdGhpcy50YWJCcm93c2Vy
LnNob3dUYWJGb3JDb250ZW50Vmlldyh0YWJDb250ZW50Vmlldyk7CiB9OwogCitXSS5zaG93TGF5
ZXJzVGFiID0gZnVuY3Rpb24ob3B0aW9ucyA9IHt9KQoreworICAgIGxldCB0YWJDb250ZW50Vmll
dyA9IHRoaXMudGFiQnJvd3Nlci5iZXN0VGFiQ29udGVudFZpZXdGb3JDbGFzcyhXSS5MYXllcnNU
YWJDb250ZW50Vmlldyk7CisgICAgaWYgKCF0YWJDb250ZW50VmlldykKKyAgICAgICAgdGFiQ29u
dGVudFZpZXcgPSBuZXcgV0kuTGF5ZXJzVGFiQ29udGVudFZpZXc7CisgICAgaWYgKG9wdGlvbnMu
bm9kZVRvU2VsZWN0KQorICAgICAgICB0YWJDb250ZW50Vmlldy5zZWxlY3RMYXllckZvck5vZGUo
b3B0aW9ucy5ub2RlVG9TZWxlY3QpOworICAgIHRoaXMudGFiQnJvd3Nlci5zaG93VGFiRm9yQ29u
dGVudFZpZXcodGFiQ29udGVudFZpZXcpOworfTsKKwogV0kuaW5kZW50U3RyaW5nID0gZnVuY3Rp
b24oKQogewogICAgIGlmIChXSS5zZXR0aW5ncy5pbmRlbnRXaXRoVGFicy52YWx1ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRleHRN
ZW51VXRpbGl0aWVzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ29udGV4dE1lbnVVdGlsaXRpZXMuanMKaW5kZXggNDY1MGY1ZWRjZDcxZTNkYTRjZWYzNWE3
NGI3ZjhjNDY0MzdmMTMyMS4uNjU3OWE5YTNjNzgyODBiYTQwZDBkMzg5N2JlNzljMDRmYjAxZDhi
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q29udGV4dE1lbnVVdGlsaXRpZXMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ29udGV4dE1lbnVVdGlsaXRpZXMuanMKQEAgLTE5MSwxMiArMTkxLDYg
QEAgV0kuYXBwZW5kQ29udGV4dE1lbnVJdGVtc0ZvckRPTU5vZGUgPSBmdW5jdGlvbihjb250ZXh0
TWVudSwgZG9tTm9kZSwgb3B0aW9ucyA9IHsKIAogICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFy
YXRvcigpOwogCi0gICAgaWYgKCFvcHRpb25zLmV4Y2x1ZGVSZXZlYWxFbGVtZW50ICYmIGRvbU5v
ZGUub3duZXJEb2N1bWVudCkgewotICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdJLlVJ
U3RyaW5nKCJSZXZlYWwgaW4gRE9NIFRyZWUiKSwgKCkgPT4gewotICAgICAgICAgICAgV0kuZG9t
VHJlZU1hbmFnZXIuaW5zcGVjdEVsZW1lbnQoZG9tTm9kZS5pZCk7Ci0gICAgICAgIH0pOwotICAg
IH0KLQogICAgIGlmICghb3B0aW9ucy5leGNsdWRlTG9nRWxlbWVudCAmJiAhZG9tTm9kZS5pc0lu
VXNlckFnZW50U2hhZG93VHJlZSgpICYmICFkb21Ob2RlLmlzUHNldWRvRWxlbWVudCgpKSB7CiAg
ICAgICAgIGxldCBsYWJlbCA9IGlzRWxlbWVudCA/IFdJLlVJU3RyaW5nKCJMb2cgRWxlbWVudCIp
IDogV0kuVUlTdHJpbmcoIkxvZyBOb2RlIik7CiAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0
ZW0obGFiZWwsICgpID0+IHsKQEAgLTIwOCw2ICsyMDIsMTggQEAgV0kuYXBwZW5kQ29udGV4dE1l
bnVJdGVtc0ZvckRPTU5vZGUgPSBmdW5jdGlvbihjb250ZXh0TWVudSwgZG9tTm9kZSwgb3B0aW9u
cyA9IHsKICAgICAgICAgfSk7CiAgICAgfQogCisgICAgaWYgKCFvcHRpb25zLmV4Y2x1ZGVSZXZl
YWxFbGVtZW50ICYmIGRvbU5vZGUub3duZXJEb2N1bWVudCkgeworICAgICAgICBjb250ZXh0TWVu
dS5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJSZXZlYWwgaW4gRE9NIFRyZWUiKSwgKCkgPT4gewor
ICAgICAgICAgICAgV0kuZG9tVHJlZU1hbmFnZXIuaW5zcGVjdEVsZW1lbnQoZG9tTm9kZS5pZCk7
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGlmICh3aW5kb3cuTGF5ZXJUcmVlQWdlbnQgJiYg
ZG9tTm9kZS5wYXJlbnROb2RlKSB7CisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0ku
VUlTdHJpbmcoIlJldmVhbCBpbiBMYXllcnMgVGFiIiksICgpID0+IHsKKyAgICAgICAgICAgIFdJ
LnNob3dMYXllcnNUYWIoe25vZGVUb1NlbGVjdDogZG9tTm9kZX0pOworICAgICAgICB9KTsKKyAg
ICB9CisKICAgICBpZiAod2luZG93LlBhZ2VBZ2VudCkgewogICAgICAgICBjb250ZXh0TWVudS5h
cHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJDYXB0dXJlIFNjcmVlbnNob3QiKSwgKCkgPT4gewogICAg
ICAgICAgICAgUGFnZUFnZW50LnNuYXBzaG90Tm9kZShkb21Ob2RlLmlkLCAoZXJyb3IsIGRhdGFV
UkwpID0+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0xheWVyczNEQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9MYXllcnMzRENvbnRlbnRWaWV3LmpzCmluZGV4IDVmYjczOTBlMDQ0
MWFhNDcxZjUxN2U2Yjk4M2RkNmYyYjBhYmQ2MzcuLmVhNGJkMWFjMGYyYzNjZjQxMzVhNmFhN2Yx
YzE2MjI2ODEzNjA1ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0xheWVyczNEQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJzM0RDb250ZW50Vmlldy5qcwpAQCAtNDUs
NiArNDUsNyBAQCBXSS5MYXllcnMzRENvbnRlbnRWaWV3ID0gY2xhc3MgTGF5ZXJzM0RDb250ZW50
VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAgICAgIHRoaXMuX2xheWVycyA9IFtdOwog
ICAgICAgICB0aGlzLl9sYXllckdyb3Vwc0J5SWQgPSBuZXcgTWFwOwogICAgICAgICB0aGlzLl9z
ZWxlY3RlZExheWVyR3JvdXAgPSBudWxsOworICAgICAgICB0aGlzLl9ub2RlVG9TZWxlY3QgPSBu
dWxsOwogCiAgICAgICAgIHRoaXMuX3JlbmRlcmVyID0gbnVsbDsKICAgICAgICAgdGhpcy5fY2Ft
ZXJhID0gbnVsbDsKQEAgLTEwNCw2ICsxMDUsMzUgQEAgV0kuTGF5ZXJzM0RDb250ZW50VmlldyA9
IGNsYXNzIExheWVyczNEQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogICAgICAg
ICB0aGlzLl9jZW50ZXJPblNlbGVjdGlvbigpOwogICAgIH0KIAorICAgIHNlbGVjdExheWVyRm9y
Tm9kZShub2RlKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9sYXllcnMubGVuZ3RoKSB7Cisg
ICAgICAgICAgICB0aGlzLl9ub2RlVG9TZWxlY3QgPSBub2RlOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5fbm9kZVRvU2VsZWN0ID0gbnVsbDsKKworICAg
ICAgICBsZXQgbGF5ZXJGb3JOb2RlSWQgPSAobm9kZUlkKSA9PiB7CisgICAgICAgICAgICBmb3Ig
KGxldCBsYXllciBvZiB0aGlzLl9sYXllcnMpIHsKKyAgICAgICAgICAgICAgICBpZiAobGF5ZXIu
bm9kZUlkID09PSBub2RlSWQpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBsYXllcjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9OworCisgICAg
ICAgIGxldCBsYXllciA9IG51bGw7CisgICAgICAgIHdoaWxlIChub2RlICYmICFsYXllcikgewor
ICAgICAgICAgICAgbGF5ZXIgPSBsYXllckZvck5vZGVJZChub2RlLmlkKTsKKyAgICAgICAgICAg
IGlmICghbGF5ZXIpCisgICAgICAgICAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTsKKyAg
ICAgICAgfQorCisgICAgICAgIHRoaXMuc2VsZWN0TGF5ZXJCeUlkKGxheWVyLmxheWVySWQpOwor
CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkxheWVyczNEQ29udGVu
dFZpZXcuRXZlbnQuU2VsZWN0ZWRMYXllckNoYW5nZWQsIHtsYXllcklkOiBsYXllci5sYXllcklk
fSk7CisgICAgfQorCiAgICAgLy8gUHJvdGVjdGVkCiAKICAgICBpbml0aWFsTGF5b3V0KCkKQEAg
LTE0OCw4ICsxNzgsMTIgQEAgV0kuTGF5ZXJzM0RDb250ZW50VmlldyA9IGNsYXNzIExheWVyczNE
Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgICAgICAgICBXSS5sYXll
clRyZWVNYW5hZ2VyLmxheWVyc0Zvck5vZGUobm9kZSwgKGxheWVycykgPT4gewogICAgICAgICAg
ICAgICAgIHRoaXMuX3VwZGF0ZUxheWVycyhsYXllcnMpOworCiAgICAgICAgICAgICAgICAgaWYg
KGRvY3VtZW50V2FzVXBkYXRlZCkKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVzZXRDYW1l
cmEoKTsKKworICAgICAgICAgICAgICAgIGlmICh0aGlzLl9ub2RlVG9TZWxlY3QpCisgICAgICAg
ICAgICAgICAgICAgIHRoaXMuc2VsZWN0TGF5ZXJGb3JOb2RlKHRoaXMuX25vZGVUb1NlbGVjdCk7
CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJzVGFiQ29udGVudFZpZXcu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXllcnNUYWJD
b250ZW50Vmlldy5qcwppbmRleCA0MzZmOTUxZTQ2MTc4YmZjYjFjYjllM2YxMDUxNmI3NWQ0Y2My
NmJiLi5iNzhmMjVhMDA1NDRlZTg1ZjEzNTRhMDFjMmU4MTY1NzM4MGZhOWZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXllcnNUYWJDb250
ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9MYXllcnNUYWJDb250ZW50Vmlldy5qcwpAQCAtNjIsNiArNjIsMTEgQEAgV0kuTGF5ZXJzVGFi
Q29udGVudFZpZXcgPSBjbGFzcyBMYXllcnNUYWJDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRl
bnRCcm93c2VyVGEKICAgICBnZXQgdHlwZSgpIHsgcmV0dXJuIFdJLkxheWVyc1RhYkNvbnRlbnRW
aWV3LlR5cGU7IH0KICAgICBnZXQgc3VwcG9ydHNTcGxpdENvbnRlbnRCcm93c2VyKCkgeyByZXR1
cm4gZmFsc2U7IH0KIAorICAgIHNlbGVjdExheWVyRm9yTm9kZShub2RlKQorICAgIHsKKyAgICAg
ICAgdGhpcy5fbGF5ZXJzM0RDb250ZW50Vmlldy5zZWxlY3RMYXllckZvck5vZGUobm9kZSk7Cisg
ICAgfQorCiAgICAgc2hvd24oKQogICAgIHsKICAgICAgICAgc3VwZXIuc2hvd24oKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331802</attachid>
            <date>2018-01-19 15:51:16 -0800</date>
            <delta_ts>2018-01-22 19:44:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181800-20180119155115.patch</filename>
            <type>text/plain</type>
            <size>10396</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGJiN2I3ZThhZDZmZGI2OGI4MGM1NjA1ZDZhMzRk
NTkwNjVhNzQ3ODAuLjk2ZGM0NGM2MmVmNzVmNDRmMmUyZDVmMzM0MWExMjlkOWMyYjkzYTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE4LTAxLTE5ICBEZXZp
biBSb3Vzc28gIDx3ZWJraXRAZGV2aW5yb3Vzc28uY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEVsZW1lbnRzIHRhYiBzaG91bGQgaGF2ZSAiSnVtcCB0byBMYXllciIgZnVuY3Rpb25hbGl0
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxODAw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBMb2Nh
bGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL0Jhc2UvTWFpbi5qczoKKyAgICAgICAgKFdJLmlzU2hvd2luZ0VsZW1lbnRzVGFi
KToKKyAgICAgICAgKFdJLnNob3dMYXllcnNUYWIpOgorICAgICAgICAoV0kuaXNTaG93aW5nTGF5
ZXJzVGFiKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29udGV4dE1lbnVVdGls
aXRpZXMuanM6CisgICAgICAgIChXSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZSk6
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xheWVyc1RhYkNvbnRlbnRWaWV3Lmpz
OgorICAgICAgICAoV0kuTGF5ZXJzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLnNlbGVjdExheWVy
Rm9yTm9kZSk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xheWVyczNEQ29udGVu
dFZpZXcuanM6CisgICAgICAgIChXSS5MYXllcnMzRENvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJ
LkxheWVyczNEQ29udGVudFZpZXcucHJvdG90eXBlLnNlbGVjdExheWVyRm9yTm9kZSk6CisgICAg
ICAgIChXSS5MYXllcnMzRENvbnRlbnRWaWV3LnByb3RvdHlwZS5sYXlvdXQpOgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9MYXllckRldGFpbHNTaWRlYmFyUGFuZWwuanM6CisgICAg
ICAgIChXSS5MYXllckRldGFpbHNTaWRlYmFyUGFuZWwpOgorICAgICAgICAoV0kuTGF5ZXJEZXRh
aWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5zZWxlY3ROb2RlQnlMYXllcklkKToKKyAgICAgICAg
KFdJLkxheWVyRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3VwZGF0ZURhdGFHcmlkKToK
KwogMjAxOC0wMS0xOSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogTGF5ZXJzIHRhYiBzaG91bGQgZG8gYXdheSB3aXRoIHBv
cG92ZXJzIChpZiBwb3NzaWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9M
b2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4
IDBmYjMzMzViOTg2ZTg4MWYwOWM0YzQ2NWRjZjFhNzRmYTc3Y2FhMGUuLmZjM2UwYjRiZDQwNzA0
NWRhYzkwMmI5MjBkMjVkMmE1OWY2Y2U4ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5n
cy5qcwpAQCAtNzkwLDYgKzc5MCw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIlJldmVhbCBCcmVha3Bv
aW50Il0gPSAiUmV2ZWFsIEJyZWFrcG9pbnQiOwogbG9jYWxpemVkU3RyaW5nc1siUmV2ZWFsIGlu
IERPTSBUcmVlIl0gPSAiUmV2ZWFsIGluIERPTSBUcmVlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJl
dmVhbCBpbiBEZWJ1Z2dlciBUYWIiXSA9ICJSZXZlYWwgaW4gRGVidWdnZXIgVGFiIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlJldmVhbCBpbiBFbGVtZW50cyBUYWIiXSA9ICJSZXZlYWwgaW4gRWxlbWVu
dHMgVGFiIjsKK2xvY2FsaXplZFN0cmluZ3NbIlJldmVhbCBpbiBMYXllcnMgVGFiIl0gPSAiUmV2
ZWFsIGluIExheWVycyBUYWIiOwogbG9jYWxpemVkU3RyaW5nc1siUmV2ZWFsIGluIE5ldHdvcmsg
VGFiIl0gPSAiUmV2ZWFsIGluIE5ldHdvcmsgVGFiIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJldmVh
bCBpbiBPcmlnaW5hbCBSZXNvdXJjZSJdID0gIlJldmVhbCBpbiBPcmlnaW5hbCBSZXNvdXJjZSI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZXZlYWwgaW4gUmVzb3VyY2VzIFRhYiJdID0gIlJldmVhbCBp
biBSZXNvdXJjZXMgVGFiIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0Jhc2UvTWFpbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0Jhc2UvTWFpbi5qcwppbmRleCA2ZGYxYzA3NzBkYTFhZGJiNWMwZWQ2NjEwMjEyNGYwMTVj
NDM4YjllLi44YzhmMzI0Njg1MzY0NzA1MjcwMjE4Njg1ZTk2YWY0OWFhOTRlMDQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCkBAIC05
MTQsNiArOTE0LDExIEBAIFdJLnNob3dFbGVtZW50c1RhYiA9IGZ1bmN0aW9uKCkKICAgICB0aGlz
LnRhYkJyb3dzZXIuc2hvd1RhYkZvckNvbnRlbnRWaWV3KHRhYkNvbnRlbnRWaWV3KTsKIH07CiAK
K1dJLmlzU2hvd2luZ0VsZW1lbnRzVGFiID0gZnVuY3Rpb24oKQoreworICAgIHJldHVybiB0aGlz
LnRhYkJyb3dzZXIuc2VsZWN0ZWRUYWJDb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLkVsZW1lbnRz
VGFiQ29udGVudFZpZXc7Cit9OworCiBXSS5zaG93RGVidWdnZXJUYWIgPSBmdW5jdGlvbihvcHRp
b25zKQogewogICAgIHZhciB0YWJDb250ZW50VmlldyA9IHRoaXMudGFiQnJvd3Nlci5iZXN0VGFi
Q29udGVudFZpZXdGb3JDbGFzcyhXSS5EZWJ1Z2dlclRhYkNvbnRlbnRWaWV3KTsKQEAgLTk4Miw2
ICs5ODcsMjEgQEAgV0kuc2hvd1RpbWVsaW5lVGFiID0gZnVuY3Rpb24oKQogICAgIHRoaXMudGFi
QnJvd3Nlci5zaG93VGFiRm9yQ29udGVudFZpZXcodGFiQ29udGVudFZpZXcpOwogfTsKIAorV0ku
c2hvd0xheWVyc1RhYiA9IGZ1bmN0aW9uKG9wdGlvbnMgPSB7fSkKK3sKKyAgICBsZXQgdGFiQ29u
dGVudFZpZXcgPSB0aGlzLnRhYkJyb3dzZXIuYmVzdFRhYkNvbnRlbnRWaWV3Rm9yQ2xhc3MoV0ku
TGF5ZXJzVGFiQ29udGVudFZpZXcpOworICAgIGlmICghdGFiQ29udGVudFZpZXcpCisgICAgICAg
IHRhYkNvbnRlbnRWaWV3ID0gbmV3IFdJLkxheWVyc1RhYkNvbnRlbnRWaWV3OworICAgIGlmIChv
cHRpb25zLm5vZGVUb1NlbGVjdCkKKyAgICAgICAgdGFiQ29udGVudFZpZXcuc2VsZWN0TGF5ZXJG
b3JOb2RlKG9wdGlvbnMubm9kZVRvU2VsZWN0KTsKKyAgICB0aGlzLnRhYkJyb3dzZXIuc2hvd1Rh
YkZvckNvbnRlbnRWaWV3KHRhYkNvbnRlbnRWaWV3KTsKK307CisKK1dJLmlzU2hvd2luZ0xheWVy
c1RhYiA9IGZ1bmN0aW9uKCkKK3sKKyAgICByZXR1cm4gdGhpcy50YWJCcm93c2VyLnNlbGVjdGVk
VGFiQ29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5MYXllcnNUYWJDb250ZW50VmlldzsKK307CisK
IFdJLmluZGVudFN0cmluZyA9IGZ1bmN0aW9uKCkKIHsKICAgICBpZiAoV0kuc2V0dGluZ3MuaW5k
ZW50V2l0aFRhYnMudmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9Db250ZXh0TWVudVV0aWxpdGllcy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRleHRNZW51VXRpbGl0aWVzLmpzCmluZGV4
IDQ2NTBmNWVkY2Q3MWUzZGE0Y2VmMzVhNzRiN2Y4YzQ2NDM3ZjEzMjEuLmNmYzc5MDNlYTI1MmQx
YWE3ZmJhZWZmNTk2NjE5ZmQ4ZDg4Mzc5OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRleHRNZW51VXRpbGl0aWVzLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRleHRNZW51VXRpbGl0
aWVzLmpzCkBAIC0xOTEsMTIgKzE5MSw2IEBAIFdJLmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JE
T01Ob2RlID0gZnVuY3Rpb24oY29udGV4dE1lbnUsIGRvbU5vZGUsIG9wdGlvbnMgPSB7CiAKICAg
ICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKIAotICAgIGlmICghb3B0aW9ucy5leGNs
dWRlUmV2ZWFsRWxlbWVudCAmJiBkb21Ob2RlLm93bmVyRG9jdW1lbnQpIHsKLSAgICAgICAgY29u
dGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiUmV2ZWFsIGluIERPTSBUcmVlIiksICgp
ID0+IHsKLSAgICAgICAgICAgIFdJLmRvbVRyZWVNYW5hZ2VyLmluc3BlY3RFbGVtZW50KGRvbU5v
ZGUuaWQpOwotICAgICAgICB9KTsKLSAgICB9Ci0KICAgICBpZiAoIW9wdGlvbnMuZXhjbHVkZUxv
Z0VsZW1lbnQgJiYgIWRvbU5vZGUuaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSAmJiAhZG9tTm9k
ZS5pc1BzZXVkb0VsZW1lbnQoKSkgewogICAgICAgICBsZXQgbGFiZWwgPSBpc0VsZW1lbnQgPyBX
SS5VSVN0cmluZygiTG9nIEVsZW1lbnQiKSA6IFdJLlVJU3RyaW5nKCJMb2cgTm9kZSIpOwogICAg
ICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKGxhYmVsLCAoKSA9PiB7CkBAIC0yMDgsNiArMjAy
LDE4IEBAIFdJLmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2RlID0gZnVuY3Rpb24oY29u
dGV4dE1lbnUsIGRvbU5vZGUsIG9wdGlvbnMgPSB7CiAgICAgICAgIH0pOwogICAgIH0KIAorICAg
IGlmICghb3B0aW9ucy5leGNsdWRlUmV2ZWFsRWxlbWVudCAmJiB3aW5kb3cuRE9NQWdlbnQgJiYg
IVdJLmlzU2hvd2luZ0VsZW1lbnRzVGFiKCkgJiYgZG9tTm9kZS5vd25lckRvY3VtZW50KSB7Cisg
ICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIlJldmVhbCBpbiBET00g
VHJlZSIpLCAoKSA9PiB7CisgICAgICAgICAgICBXSS5kb21UcmVlTWFuYWdlci5pbnNwZWN0RWxl
bWVudChkb21Ob2RlLmlkKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5M
YXllclRyZWVBZ2VudCAmJiAhV0kuaXNTaG93aW5nTGF5ZXJzVGFiKCkgJiYgZG9tTm9kZS5wYXJl
bnROb2RlKSB7CisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIlJl
dmVhbCBpbiBMYXllcnMgVGFiIiksICgpID0+IHsKKyAgICAgICAgICAgIFdJLnNob3dMYXllcnNU
YWIoe25vZGVUb1NlbGVjdDogZG9tTm9kZX0pOworICAgICAgICB9KTsKKyAgICB9CisKICAgICBp
ZiAod2luZG93LlBhZ2VBZ2VudCkgewogICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdJ
LlVJU3RyaW5nKCJDYXB0dXJlIFNjcmVlbnNob3QiKSwgKCkgPT4gewogICAgICAgICAgICAgUGFn
ZUFnZW50LnNuYXBzaG90Tm9kZShkb21Ob2RlLmlkLCAoZXJyb3IsIGRhdGFVUkwpID0+IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheWVy
RGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0xheWVyRGV0YWlsc1NpZGViYXJQYW5lbC5qcwppbmRleCA5ZTRlYzExNDdiNmNj
ODI1YTk4ZWYwYWJmYTFkY2RmNzkxZjU1NmJiLi5lNmJlYzRlZTc1MzNmODA2OWEwZTgyNWVkM2Q4
NTZkYmYwODE5M2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9MYXllckRldGFpbHNTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJEZXRhaWxzU2lkZWJhclBhbmVsLmpz
CkBAIC0zMywxMCArMzMsMTIgQEAgV0kuTGF5ZXJEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3Mg
TGF5ZXJEZXRhaWxzU2lkZWJhclBhbmVsIGV4dGVuZHMgV0kuRGV0YWlsc1MKICAgICAgICAgdGhp
cy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoImxheWVyIik7CiAKICAgICAgICAgdGhpcy5fbGF5ZXJz
ID0gW107Ci0gICAgICAgIHRoaXMuX2RhdGFHcmlkTm9kZXNCeUxheWVySWQgPSBuZXcgTWFwOwor
ICAgICAgICB0aGlzLl9sYXllcklkVG9TZWxlY3QgPSBudWxsOwogCiAgICAgICAgIHRoaXMuX2Rh
dGFHcmlkID0gbnVsbDsKICAgICAgICAgdGhpcy5faG92ZXJlZERhdGFHcmlkTm9kZSA9IG51bGw7
CisgICAgICAgIHRoaXMuX2RhdGFHcmlkTm9kZXNCeUxheWVySWQgPSBuZXcgTWFwOworCiAgICAg
ICAgIHRoaXMuX2JvdHRvbUJhciA9IG51bGw7CiAgICAgICAgIHRoaXMuX2xheWVyc0NvdW50TGFi
ZWwgPSBudWxsOwogICAgICAgICB0aGlzLl9sYXllcnNNZW1vcnlMYWJlbCA9IG51bGw7CkBAIC01
Nyw2ICs1OSw4IEBAIFdJLkxheWVyRGV0YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNzIExheWVyRGV0
YWlsc1NpZGViYXJQYW5lbCBleHRlbmRzIFdJLkRldGFpbHNTCiAKICAgICBzZWxlY3ROb2RlQnlM
YXllcklkKGxheWVySWQpCiAgICAgeworICAgICAgICB0aGlzLl9sYXllcklkVG9TZWxlY3QgPSBu
dWxsOworCiAgICAgICAgIGxldCBub2RlID0gdGhpcy5fZGF0YUdyaWROb2Rlc0J5TGF5ZXJJZC5n
ZXQobGF5ZXJJZCk7CiAgICAgICAgIGlmIChub2RlID09PSB0aGlzLl9kYXRhR3JpZC5zZWxlY3Rl
ZE5vZGUpCiAgICAgICAgICAgICByZXR1cm47CkBAIC02Niw2ICs3MCw4IEBAIFdJLkxheWVyRGV0
YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNzIExheWVyRGV0YWlsc1NpZGViYXJQYW5lbCBleHRlbmRz
IFdJLkRldGFpbHNTCiAgICAgICAgICAgICBub2RlLnJldmVhbEFuZFNlbGVjdChzdXBwcmVzc0V2
ZW50KTsKICAgICAgICAgZWxzZSBpZiAodGhpcy5fZGF0YUdyaWQuc2VsZWN0ZWROb2RlKQogICAg
ICAgICAgICAgdGhpcy5fZGF0YUdyaWQuc2VsZWN0ZWROb2RlLmRlc2VsZWN0KHN1cHByZXNzRXZl
bnQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9sYXllcklkVG9TZWxlY3QgPSBs
YXllcklkOwogICAgIH0KIAogICAgIC8vIFByaXZhdGUKQEAgLTIwNSw2ICsyMTEsOSBAQCBXSS5M
YXllckRldGFpbHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBMYXllckRldGFpbHNTaWRlYmFyUGFuZWwg
ZXh0ZW5kcyBXSS5EZXRhaWxzUwogICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9zb3J0RGF0
YUdyaWQoKTsKKworICAgICAgICBpZiAodGhpcy5fbGF5ZXJJZFRvU2VsZWN0KQorICAgICAgICAg
ICAgdGhpcy5zZWxlY3ROb2RlQnlMYXllcklkKHRoaXMuX2xheWVySWRUb1NlbGVjdCk7CiAgICAg
fQogCiAgICAgX3VwZGF0ZUJvdHRvbUJhcihuZXdMYXllcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXllcnMzRENvbnRlbnRWaWV3Lmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJzM0RDb250
ZW50Vmlldy5qcwppbmRleCAxMWFjMTAwNzZkMmExYTdlNDg1YmMyY2Y4OTgwNTJmNWIwOGJiZTQ5
Li44MTVkN2NjYjg2MDE2N2M0ZjkyNTM1MjExM2Q3NDNlY2RkYjVhOGI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXllcnMzRENvbnRlbnRW
aWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xh
eWVyczNEQ29udGVudFZpZXcuanMKQEAgLTQ1LDYgKzQ1LDcgQEAgV0kuTGF5ZXJzM0RDb250ZW50
VmlldyA9IGNsYXNzIExheWVyczNEQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50Vmlldwog
ICAgICAgICB0aGlzLl9sYXllcnMgPSBbXTsKICAgICAgICAgdGhpcy5fbGF5ZXJHcm91cHNCeUlk
ID0gbmV3IE1hcDsKICAgICAgICAgdGhpcy5fc2VsZWN0ZWRMYXllckdyb3VwID0gbnVsbDsKKyAg
ICAgICAgdGhpcy5fbm9kZVRvU2VsZWN0ID0gbnVsbDsKIAogICAgICAgICB0aGlzLl9yZW5kZXJl
ciA9IG51bGw7CiAgICAgICAgIHRoaXMuX2NhbWVyYSA9IG51bGw7CkBAIC0xMTAsNiArMTExLDM1
IEBAIFdJLkxheWVyczNEQ29udGVudFZpZXcgPSBjbGFzcyBMYXllcnMzRENvbnRlbnRWaWV3IGV4
dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgdGhpcy5fY2VudGVyT25TZWxlY3Rpb24oKTsK
ICAgICB9CiAKKyAgICBzZWxlY3RMYXllckZvck5vZGUobm9kZSkKKyAgICB7CisgICAgICAgIGlm
ICghdGhpcy5fbGF5ZXJzLmxlbmd0aCkgeworICAgICAgICAgICAgdGhpcy5fbm9kZVRvU2VsZWN0
ID0gbm9kZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMu
X25vZGVUb1NlbGVjdCA9IG51bGw7CisKKyAgICAgICAgbGV0IGxheWVyRm9yTm9kZUlkID0gKG5v
ZGVJZCkgPT4geworICAgICAgICAgICAgZm9yIChsZXQgbGF5ZXIgb2YgdGhpcy5fbGF5ZXJzKSB7
CisgICAgICAgICAgICAgICAgaWYgKGxheWVyLm5vZGVJZCA9PT0gbm9kZUlkKQorICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gbGF5ZXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1
cm4gbnVsbDsKKyAgICAgICAgfTsKKworICAgICAgICBsZXQgbGF5ZXIgPSBudWxsOworICAgICAg
ICB3aGlsZSAobm9kZSAmJiAhbGF5ZXIpIHsKKyAgICAgICAgICAgIGxheWVyID0gbGF5ZXJGb3JO
b2RlSWQobm9kZS5pZCk7CisgICAgICAgICAgICBpZiAoIWxheWVyKQorICAgICAgICAgICAgICAg
IG5vZGUgPSBub2RlLnBhcmVudE5vZGU7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLnNlbGVj
dExheWVyQnlJZChsYXllci5sYXllcklkKTsKKworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRU
b0xpc3RlbmVycyhXSS5MYXllcnMzRENvbnRlbnRWaWV3LkV2ZW50LlNlbGVjdGVkTGF5ZXJDaGFu
Z2VkLCB7bGF5ZXJJZDogbGF5ZXIubGF5ZXJJZH0pOworICAgIH0KKwogICAgIC8vIFByb3RlY3Rl
ZAogCiAgICAgaW5pdGlhbExheW91dCgpCkBAIC0xNTQsOCArMTg0LDEyIEBAIFdJLkxheWVyczNE
Q29udGVudFZpZXcgPSBjbGFzcyBMYXllcnMzRENvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVu
dFZpZXcKIAogICAgICAgICAgICAgV0kubGF5ZXJUcmVlTWFuYWdlci5sYXllcnNGb3JOb2RlKG5v
ZGUsIChsYXllcnMpID0+IHsKICAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVMYXllcnMobGF5
ZXJzKTsKKwogICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudFdhc1VwZGF0ZWQpCiAgICAgICAg
ICAgICAgICAgICAgIHRoaXMuX3Jlc2V0Q2FtZXJhKCk7CisKKyAgICAgICAgICAgICAgICBpZiAo
dGhpcy5fbm9kZVRvU2VsZWN0KQorICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdExheWVy
Rm9yTm9kZSh0aGlzLl9ub2RlVG9TZWxlY3QpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0p
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0xheWVyc1RhYkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJzVGFiQ29udGVudFZpZXcuanMKaW5kZXggNDM2Zjk1MWU0
NjE3OGJmY2IxY2I5ZTNmMTA1MTZiNzVkNGNjMjZiYi4uYjc4ZjI1YTAwNTQ0ZWU4NWYxMzU0YTAx
YzJlODE2NTczODBmYTlmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvTGF5ZXJzVGFiQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJzVGFiQ29udGVudFZpZXcuanMKQEAg
LTYyLDYgKzYyLDExIEBAIFdJLkxheWVyc1RhYkNvbnRlbnRWaWV3ID0gY2xhc3MgTGF5ZXJzVGFi
Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50QnJvd3NlclRhCiAgICAgZ2V0IHR5cGUoKSB7
IHJldHVybiBXSS5MYXllcnNUYWJDb250ZW50Vmlldy5UeXBlOyB9CiAgICAgZ2V0IHN1cHBvcnRz
U3BsaXRDb250ZW50QnJvd3NlcigpIHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICBzZWxlY3RMYXll
ckZvck5vZGUobm9kZSkKKyAgICB7CisgICAgICAgIHRoaXMuX2xheWVyczNEQ29udGVudFZpZXcu
c2VsZWN0TGF5ZXJGb3JOb2RlKG5vZGUpOworICAgIH0KKwogICAgIHNob3duKCkKICAgICB7CiAg
ICAgICAgIHN1cGVyLnNob3duKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331997</attachid>
            <date>2018-01-22 19:44:38 -0800</date>
            <delta_ts>2018-02-01 22:44:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181800-20180122204434.patch</filename>
            <type>text/plain</type>
            <size>10200</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGJiN2I3ZThhZDZmZGI2OGI4MGM1NjA1ZDZhMzRk
NTkwNjVhNzQ3ODAuLjBiYTg5M2U3NDQ0MWQwOTNjNzg4MzdjZDIyYWMwOGRjNTc1NjRlOTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE4LTAxLTIyICBEZXZp
biBSb3Vzc28gIDx3ZWJraXRAZGV2aW5yb3Vzc28uY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEVsZW1lbnRzIHRhYiBzaG91bGQgaGF2ZSAiSnVtcCB0byBMYXllciIgZnVuY3Rpb25hbGl0
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxODAw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBMb2Nh
bGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL0Jhc2UvTWFpbi5qczoKKyAgICAgICAgKFdJLmlzU2hvd2luZ0VsZW1lbnRzVGFi
KToKKyAgICAgICAgKFdJLnNob3dMYXllcnNUYWIpOgorICAgICAgICAoV0kuaXNTaG93aW5nTGF5
ZXJzVGFiKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29udGV4dE1lbnVVdGls
aXRpZXMuanM6CisgICAgICAgIChXSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZSk6
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xheWVyc1RhYkNvbnRlbnRWaWV3Lmpz
OgorICAgICAgICAoV0kuTGF5ZXJzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLnNlbGVjdExheWVy
Rm9yTm9kZSk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xheWVyczNEQ29udGVu
dFZpZXcuanM6CisgICAgICAgIChXSS5MYXllcnMzRENvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJ
LkxheWVyczNEQ29udGVudFZpZXcucHJvdG90eXBlLnNlbGVjdExheWVyRm9yTm9kZSk6CisgICAg
ICAgIChXSS5MYXllcnMzRENvbnRlbnRWaWV3LnByb3RvdHlwZS5sYXlvdXQpOgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9MYXllckRldGFpbHNTaWRlYmFyUGFuZWwuanM6CisgICAg
ICAgIChXSS5MYXllckRldGFpbHNTaWRlYmFyUGFuZWwpOgorICAgICAgICAoV0kuTGF5ZXJEZXRh
aWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5zZWxlY3ROb2RlQnlMYXllcklkKToKKyAgICAgICAg
KFdJLkxheWVyRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3VwZGF0ZURhdGFHcmlkKToK
KwogMjAxOC0wMS0xOSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogTGF5ZXJzIHRhYiBzaG91bGQgZG8gYXdheSB3aXRoIHBv
cG92ZXJzIChpZiBwb3NzaWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9M
b2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4
IDBmYjMzMzViOTg2ZTg4MWYwOWM0YzQ2NWRjZjFhNzRmYTc3Y2FhMGUuLmZjM2UwYjRiZDQwNzA0
NWRhYzkwMmI5MjBkMjVkMmE1OWY2Y2U4ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5n
cy5qcwpAQCAtNzkwLDYgKzc5MCw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIlJldmVhbCBCcmVha3Bv
aW50Il0gPSAiUmV2ZWFsIEJyZWFrcG9pbnQiOwogbG9jYWxpemVkU3RyaW5nc1siUmV2ZWFsIGlu
IERPTSBUcmVlIl0gPSAiUmV2ZWFsIGluIERPTSBUcmVlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJl
dmVhbCBpbiBEZWJ1Z2dlciBUYWIiXSA9ICJSZXZlYWwgaW4gRGVidWdnZXIgVGFiIjsKIGxvY2Fs
aXplZFN0cmluZ3NbIlJldmVhbCBpbiBFbGVtZW50cyBUYWIiXSA9ICJSZXZlYWwgaW4gRWxlbWVu
dHMgVGFiIjsKK2xvY2FsaXplZFN0cmluZ3NbIlJldmVhbCBpbiBMYXllcnMgVGFiIl0gPSAiUmV2
ZWFsIGluIExheWVycyBUYWIiOwogbG9jYWxpemVkU3RyaW5nc1siUmV2ZWFsIGluIE5ldHdvcmsg
VGFiIl0gPSAiUmV2ZWFsIGluIE5ldHdvcmsgVGFiIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJldmVh
bCBpbiBPcmlnaW5hbCBSZXNvdXJjZSJdID0gIlJldmVhbCBpbiBPcmlnaW5hbCBSZXNvdXJjZSI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZXZlYWwgaW4gUmVzb3VyY2VzIFRhYiJdID0gIlJldmVhbCBp
biBSZXNvdXJjZXMgVGFiIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0Jhc2UvTWFpbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0Jhc2UvTWFpbi5qcwppbmRleCA2ZGYxYzA3NzBkYTFhZGJiNWMwZWQ2NjEwMjEyNGYwMTVj
NDM4YjllLi44YzhmMzI0Njg1MzY0NzA1MjcwMjE4Njg1ZTk2YWY0OWFhOTRlMDQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCkBAIC05
MTQsNiArOTE0LDExIEBAIFdJLnNob3dFbGVtZW50c1RhYiA9IGZ1bmN0aW9uKCkKICAgICB0aGlz
LnRhYkJyb3dzZXIuc2hvd1RhYkZvckNvbnRlbnRWaWV3KHRhYkNvbnRlbnRWaWV3KTsKIH07CiAK
K1dJLmlzU2hvd2luZ0VsZW1lbnRzVGFiID0gZnVuY3Rpb24oKQoreworICAgIHJldHVybiB0aGlz
LnRhYkJyb3dzZXIuc2VsZWN0ZWRUYWJDb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLkVsZW1lbnRz
VGFiQ29udGVudFZpZXc7Cit9OworCiBXSS5zaG93RGVidWdnZXJUYWIgPSBmdW5jdGlvbihvcHRp
b25zKQogewogICAgIHZhciB0YWJDb250ZW50VmlldyA9IHRoaXMudGFiQnJvd3Nlci5iZXN0VGFi
Q29udGVudFZpZXdGb3JDbGFzcyhXSS5EZWJ1Z2dlclRhYkNvbnRlbnRWaWV3KTsKQEAgLTk4Miw2
ICs5ODcsMjEgQEAgV0kuc2hvd1RpbWVsaW5lVGFiID0gZnVuY3Rpb24oKQogICAgIHRoaXMudGFi
QnJvd3Nlci5zaG93VGFiRm9yQ29udGVudFZpZXcodGFiQ29udGVudFZpZXcpOwogfTsKIAorV0ku
c2hvd0xheWVyc1RhYiA9IGZ1bmN0aW9uKG9wdGlvbnMgPSB7fSkKK3sKKyAgICBsZXQgdGFiQ29u
dGVudFZpZXcgPSB0aGlzLnRhYkJyb3dzZXIuYmVzdFRhYkNvbnRlbnRWaWV3Rm9yQ2xhc3MoV0ku
TGF5ZXJzVGFiQ29udGVudFZpZXcpOworICAgIGlmICghdGFiQ29udGVudFZpZXcpCisgICAgICAg
IHRhYkNvbnRlbnRWaWV3ID0gbmV3IFdJLkxheWVyc1RhYkNvbnRlbnRWaWV3OworICAgIGlmIChv
cHRpb25zLm5vZGVUb1NlbGVjdCkKKyAgICAgICAgdGFiQ29udGVudFZpZXcuc2VsZWN0TGF5ZXJG
b3JOb2RlKG9wdGlvbnMubm9kZVRvU2VsZWN0KTsKKyAgICB0aGlzLnRhYkJyb3dzZXIuc2hvd1Rh
YkZvckNvbnRlbnRWaWV3KHRhYkNvbnRlbnRWaWV3KTsKK307CisKK1dJLmlzU2hvd2luZ0xheWVy
c1RhYiA9IGZ1bmN0aW9uKCkKK3sKKyAgICByZXR1cm4gdGhpcy50YWJCcm93c2VyLnNlbGVjdGVk
VGFiQ29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5MYXllcnNUYWJDb250ZW50VmlldzsKK307CisK
IFdJLmluZGVudFN0cmluZyA9IGZ1bmN0aW9uKCkKIHsKICAgICBpZiAoV0kuc2V0dGluZ3MuaW5k
ZW50V2l0aFRhYnMudmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9Db250ZXh0TWVudVV0aWxpdGllcy5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRleHRNZW51VXRpbGl0aWVzLmpzCmluZGV4
IDQ2NTBmNWVkY2Q3MWUzZGE0Y2VmMzVhNzRiN2Y4YzQ2NDM3ZjEzMjEuLmNmYzc5MDNlYTI1MmQx
YWE3ZmJhZWZmNTk2NjE5ZmQ4ZDg4Mzc5OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRleHRNZW51VXRpbGl0aWVzLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRleHRNZW51VXRpbGl0
aWVzLmpzCkBAIC0xOTEsMTIgKzE5MSw2IEBAIFdJLmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JE
T01Ob2RlID0gZnVuY3Rpb24oY29udGV4dE1lbnUsIGRvbU5vZGUsIG9wdGlvbnMgPSB7CiAKICAg
ICBjb250ZXh0TWVudS5hcHBlbmRTZXBhcmF0b3IoKTsKIAotICAgIGlmICghb3B0aW9ucy5leGNs
dWRlUmV2ZWFsRWxlbWVudCAmJiBkb21Ob2RlLm93bmVyRG9jdW1lbnQpIHsKLSAgICAgICAgY29u
dGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiUmV2ZWFsIGluIERPTSBUcmVlIiksICgp
ID0+IHsKLSAgICAgICAgICAgIFdJLmRvbVRyZWVNYW5hZ2VyLmluc3BlY3RFbGVtZW50KGRvbU5v
ZGUuaWQpOwotICAgICAgICB9KTsKLSAgICB9Ci0KICAgICBpZiAoIW9wdGlvbnMuZXhjbHVkZUxv
Z0VsZW1lbnQgJiYgIWRvbU5vZGUuaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSAmJiAhZG9tTm9k
ZS5pc1BzZXVkb0VsZW1lbnQoKSkgewogICAgICAgICBsZXQgbGFiZWwgPSBpc0VsZW1lbnQgPyBX
SS5VSVN0cmluZygiTG9nIEVsZW1lbnQiKSA6IFdJLlVJU3RyaW5nKCJMb2cgTm9kZSIpOwogICAg
ICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKGxhYmVsLCAoKSA9PiB7CkBAIC0yMDgsNiArMjAy
LDE4IEBAIFdJLmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2RlID0gZnVuY3Rpb24oY29u
dGV4dE1lbnUsIGRvbU5vZGUsIG9wdGlvbnMgPSB7CiAgICAgICAgIH0pOwogICAgIH0KIAorICAg
IGlmICghb3B0aW9ucy5leGNsdWRlUmV2ZWFsRWxlbWVudCAmJiB3aW5kb3cuRE9NQWdlbnQgJiYg
IVdJLmlzU2hvd2luZ0VsZW1lbnRzVGFiKCkgJiYgZG9tTm9kZS5vd25lckRvY3VtZW50KSB7Cisg
ICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIlJldmVhbCBpbiBET00g
VHJlZSIpLCAoKSA9PiB7CisgICAgICAgICAgICBXSS5kb21UcmVlTWFuYWdlci5pbnNwZWN0RWxl
bWVudChkb21Ob2RlLmlkKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5M
YXllclRyZWVBZ2VudCAmJiAhV0kuaXNTaG93aW5nTGF5ZXJzVGFiKCkgJiYgZG9tTm9kZS5wYXJl
bnROb2RlKSB7CisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIlJl
dmVhbCBpbiBMYXllcnMgVGFiIiksICgpID0+IHsKKyAgICAgICAgICAgIFdJLnNob3dMYXllcnNU
YWIoe25vZGVUb1NlbGVjdDogZG9tTm9kZX0pOworICAgICAgICB9KTsKKyAgICB9CisKICAgICBp
ZiAod2luZG93LlBhZ2VBZ2VudCkgewogICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdJ
LlVJU3RyaW5nKCJDYXB0dXJlIFNjcmVlbnNob3QiKSwgKCkgPT4gewogICAgICAgICAgICAgUGFn
ZUFnZW50LnNuYXBzaG90Tm9kZShkb21Ob2RlLmlkLCAoZXJyb3IsIGRhdGFVUkwpID0+IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheWVy
RGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0xheWVyRGV0YWlsc1NpZGViYXJQYW5lbC5qcwppbmRleCA5ZTRlYzExNDdiNmNj
ODI1YTk4ZWYwYWJmYTFkY2RmNzkxZjU1NmJiLi5lNmJlYzRlZTc1MzNmODA2OWEwZTgyNWVkM2Q4
NTZkYmYwODE5M2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9MYXllckRldGFpbHNTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJEZXRhaWxzU2lkZWJhclBhbmVsLmpz
CkBAIC0zMywxMCArMzMsMTIgQEAgV0kuTGF5ZXJEZXRhaWxzU2lkZWJhclBhbmVsID0gY2xhc3Mg
TGF5ZXJEZXRhaWxzU2lkZWJhclBhbmVsIGV4dGVuZHMgV0kuRGV0YWlsc1MKICAgICAgICAgdGhp
cy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoImxheWVyIik7CiAKICAgICAgICAgdGhpcy5fbGF5ZXJz
ID0gW107Ci0gICAgICAgIHRoaXMuX2RhdGFHcmlkTm9kZXNCeUxheWVySWQgPSBuZXcgTWFwOwor
ICAgICAgICB0aGlzLl9sYXllcklkVG9TZWxlY3QgPSBudWxsOwogCiAgICAgICAgIHRoaXMuX2Rh
dGFHcmlkID0gbnVsbDsKICAgICAgICAgdGhpcy5faG92ZXJlZERhdGFHcmlkTm9kZSA9IG51bGw7
CisgICAgICAgIHRoaXMuX2RhdGFHcmlkTm9kZXNCeUxheWVySWQgPSBuZXcgTWFwOworCiAgICAg
ICAgIHRoaXMuX2JvdHRvbUJhciA9IG51bGw7CiAgICAgICAgIHRoaXMuX2xheWVyc0NvdW50TGFi
ZWwgPSBudWxsOwogICAgICAgICB0aGlzLl9sYXllcnNNZW1vcnlMYWJlbCA9IG51bGw7CkBAIC01
Nyw2ICs1OSw4IEBAIFdJLkxheWVyRGV0YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNzIExheWVyRGV0
YWlsc1NpZGViYXJQYW5lbCBleHRlbmRzIFdJLkRldGFpbHNTCiAKICAgICBzZWxlY3ROb2RlQnlM
YXllcklkKGxheWVySWQpCiAgICAgeworICAgICAgICB0aGlzLl9sYXllcklkVG9TZWxlY3QgPSBu
dWxsOworCiAgICAgICAgIGxldCBub2RlID0gdGhpcy5fZGF0YUdyaWROb2Rlc0J5TGF5ZXJJZC5n
ZXQobGF5ZXJJZCk7CiAgICAgICAgIGlmIChub2RlID09PSB0aGlzLl9kYXRhR3JpZC5zZWxlY3Rl
ZE5vZGUpCiAgICAgICAgICAgICByZXR1cm47CkBAIC02Niw2ICs3MCw4IEBAIFdJLkxheWVyRGV0
YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNzIExheWVyRGV0YWlsc1NpZGViYXJQYW5lbCBleHRlbmRz
IFdJLkRldGFpbHNTCiAgICAgICAgICAgICBub2RlLnJldmVhbEFuZFNlbGVjdChzdXBwcmVzc0V2
ZW50KTsKICAgICAgICAgZWxzZSBpZiAodGhpcy5fZGF0YUdyaWQuc2VsZWN0ZWROb2RlKQogICAg
ICAgICAgICAgdGhpcy5fZGF0YUdyaWQuc2VsZWN0ZWROb2RlLmRlc2VsZWN0KHN1cHByZXNzRXZl
bnQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9sYXllcklkVG9TZWxlY3QgPSBs
YXllcklkOwogICAgIH0KIAogICAgIC8vIFByaXZhdGUKQEAgLTIwNSw2ICsyMTEsOSBAQCBXSS5M
YXllckRldGFpbHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBMYXllckRldGFpbHNTaWRlYmFyUGFuZWwg
ZXh0ZW5kcyBXSS5EZXRhaWxzUwogICAgICAgICB9KTsKIAogICAgICAgICB0aGlzLl9zb3J0RGF0
YUdyaWQoKTsKKworICAgICAgICBpZiAodGhpcy5fbGF5ZXJJZFRvU2VsZWN0KQorICAgICAgICAg
ICAgdGhpcy5zZWxlY3ROb2RlQnlMYXllcklkKHRoaXMuX2xheWVySWRUb1NlbGVjdCk7CiAgICAg
fQogCiAgICAgX3VwZGF0ZUJvdHRvbUJhcihuZXdMYXllcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXllcnMzRENvbnRlbnRWaWV3Lmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJzM0RDb250
ZW50Vmlldy5qcwppbmRleCAxMWFjMTAwNzZkMmExYTdlNDg1YmMyY2Y4OTgwNTJmNWIwOGJiZTQ5
Li41N2M2MDQ4ZjgzYWEyMjMyNjg1YjAzM2Y4MmY2Nzc5OTZmYzM3MGMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXllcnMzRENvbnRlbnRW
aWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xh
eWVyczNEQ29udGVudFZpZXcuanMKQEAgLTQ1LDYgKzQ1LDcgQEAgV0kuTGF5ZXJzM0RDb250ZW50
VmlldyA9IGNsYXNzIExheWVyczNEQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50Vmlldwog
ICAgICAgICB0aGlzLl9sYXllcnMgPSBbXTsKICAgICAgICAgdGhpcy5fbGF5ZXJHcm91cHNCeUlk
ID0gbmV3IE1hcDsKICAgICAgICAgdGhpcy5fc2VsZWN0ZWRMYXllckdyb3VwID0gbnVsbDsKKyAg
ICAgICAgdGhpcy5fbm9kZVRvU2VsZWN0ID0gbnVsbDsKIAogICAgICAgICB0aGlzLl9yZW5kZXJl
ciA9IG51bGw7CiAgICAgICAgIHRoaXMuX2NhbWVyYSA9IG51bGw7CkBAIC0xMTAsNiArMTExLDI3
IEBAIFdJLkxheWVyczNEQ29udGVudFZpZXcgPSBjbGFzcyBMYXllcnMzRENvbnRlbnRWaWV3IGV4
dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgdGhpcy5fY2VudGVyT25TZWxlY3Rpb24oKTsK
ICAgICB9CiAKKyAgICBzZWxlY3RMYXllckZvck5vZGUobm9kZSkKKyAgICB7CisgICAgICAgIGlm
ICghdGhpcy5fbGF5ZXJzLmxlbmd0aCkgeworICAgICAgICAgICAgdGhpcy5fbm9kZVRvU2VsZWN0
ID0gbm9kZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMu
X25vZGVUb1NlbGVjdCA9IG51bGw7CisKKyAgICAgICAgbGV0IGxheWVyID0gbnVsbDsKKyAgICAg
ICAgd2hpbGUgKG5vZGUgJiYgIWxheWVyKSB7CisgICAgICAgICAgICBsYXllciA9IHRoaXMuX2xh
eWVycy5maW5kKChsYXllcikgPT4gbGF5ZXIubm9kZUlkID09PSBub2RlLmlkKTsKKyAgICAgICAg
ICAgIGlmICghbGF5ZXIpCisgICAgICAgICAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50Tm9kZTsK
KyAgICAgICAgfQorCisgICAgICAgIHRoaXMuc2VsZWN0TGF5ZXJCeUlkKGxheWVyLmxheWVySWQp
OworCisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJLkxheWVyczNEQ29u
dGVudFZpZXcuRXZlbnQuU2VsZWN0ZWRMYXllckNoYW5nZWQsIHtsYXllcklkOiBsYXllci5sYXll
cklkfSk7CisgICAgfQorCiAgICAgLy8gUHJvdGVjdGVkCiAKICAgICBpbml0aWFsTGF5b3V0KCkK
QEAgLTE1NCw4ICsxNzYsMTIgQEAgV0kuTGF5ZXJzM0RDb250ZW50VmlldyA9IGNsYXNzIExheWVy
czNEQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50VmlldwogCiAgICAgICAgICAgICBXSS5s
YXllclRyZWVNYW5hZ2VyLmxheWVyc0Zvck5vZGUobm9kZSwgKGxheWVycykgPT4gewogICAgICAg
ICAgICAgICAgIHRoaXMuX3VwZGF0ZUxheWVycyhsYXllcnMpOworCiAgICAgICAgICAgICAgICAg
aWYgKGRvY3VtZW50V2FzVXBkYXRlZCkKICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVzZXRD
YW1lcmEoKTsKKworICAgICAgICAgICAgICAgIGlmICh0aGlzLl9ub2RlVG9TZWxlY3QpCisgICAg
ICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0TGF5ZXJGb3JOb2RlKHRoaXMuX25vZGVUb1NlbGVj
dCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJzVGFiQ29udGVudFZp
ZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXllcnNU
YWJDb250ZW50Vmlldy5qcwppbmRleCA0MzZmOTUxZTQ2MTc4YmZjYjFjYjllM2YxMDUxNmI3NWQ0
Y2MyNmJiLi5iNzhmMjVhMDA1NDRlZTg1ZjEzNTRhMDFjMmU4MTY1NzM4MGZhOWZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXllcnNUYWJD
b250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9MYXllcnNUYWJDb250ZW50Vmlldy5qcwpAQCAtNjIsNiArNjIsMTEgQEAgV0kuTGF5ZXJz
VGFiQ29udGVudFZpZXcgPSBjbGFzcyBMYXllcnNUYWJDb250ZW50VmlldyBleHRlbmRzIFdJLkNv
bnRlbnRCcm93c2VyVGEKICAgICBnZXQgdHlwZSgpIHsgcmV0dXJuIFdJLkxheWVyc1RhYkNvbnRl
bnRWaWV3LlR5cGU7IH0KICAgICBnZXQgc3VwcG9ydHNTcGxpdENvbnRlbnRCcm93c2VyKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KIAorICAgIHNlbGVjdExheWVyRm9yTm9kZShub2RlKQorICAgIHsKKyAg
ICAgICAgdGhpcy5fbGF5ZXJzM0RDb250ZW50Vmlldy5zZWxlY3RMYXllckZvck5vZGUobm9kZSk7
CisgICAgfQorCiAgICAgc2hvd24oKQogICAgIHsKICAgICAgICAgc3VwZXIuc2hvd24oKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332940</attachid>
            <date>2018-02-01 22:44:38 -0800</date>
            <delta_ts>2018-02-06 18:24:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181800-20180201224437.patch</filename>
            <type>text/plain</type>
            <size>10174</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGRiM2ZlZmQ1MmZjMDFjZTE3ZjA4ZTI5ODIxOGJl
Mzg1MGNmZTM2NDYuLjY5MmE5ZDJiZGIxMjMyMDhhNGNiMTU2NjQ4ZDhiN2M2Njg3ZjBhNDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE4LTAyLTAxICBEZXZp
biBSb3Vzc28gIDx3ZWJraXRAZGV2aW5yb3Vzc28uY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEVsZW1lbnRzIHRhYiBzaG91bGQgaGF2ZSAiSnVtcCB0byBMYXllciIgZnVuY3Rpb25hbGl0
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxODAw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBMb2Nh
bGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL0Jhc2UvTWFpbi5qczoKKyAgICAgICAgKFdJLmlzU2hvd2luZ0VsZW1lbnRzVGFi
KToKKyAgICAgICAgKFdJLnNob3dMYXllcnNUYWIpOgorICAgICAgICAoV0kuaXNTaG93aW5nTGF5
ZXJzVGFiKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ29udGV4dE1lbnVVdGls
aXRpZXMuanM6CisgICAgICAgIChXSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZSk6
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xheWVyc1RhYkNvbnRlbnRWaWV3Lmpz
OgorICAgICAgICAoV0kuTGF5ZXJzVGFiQ29udGVudFZpZXcucHJvdG90eXBlLnNlbGVjdExheWVy
Rm9yTm9kZSk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xheWVyczNEQ29udGVu
dFZpZXcuanM6CisgICAgICAgIChXSS5MYXllcnMzRENvbnRlbnRWaWV3KToKKyAgICAgICAgKFdJ
LkxheWVyczNEQ29udGVudFZpZXcucHJvdG90eXBlLnNlbGVjdExheWVyRm9yTm9kZSk6CisgICAg
ICAgIChXSS5MYXllcnMzRENvbnRlbnRWaWV3LnByb3RvdHlwZS5sYXlvdXQpOgorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9MYXllckRldGFpbHNTaWRlYmFyUGFuZWwuanM6CisgICAg
ICAgIChXSS5MYXllckRldGFpbHNTaWRlYmFyUGFuZWwpOgorICAgICAgICAoV0kuTGF5ZXJEZXRh
aWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5zZWxlY3ROb2RlQnlMYXllcklkKToKKyAgICAgICAg
KFdJLkxheWVyRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuX3VwZGF0ZURhdGFHcmlkKToK
KwogMjAxOC0wMS0zMCAgRGV2aW4gUm91c3NvICA8d2Via2l0QGRldmlucm91c3NvLmNvbT4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBSZXBsYWNlIE9iamVjdC5zaGFsbG93TWVyZ2Ugd2l0aCBF
UzIwMTggc3ByZWFkIG9wZXJhdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
TG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRl
eCA2ZWY5MDAxYWIyODk1MjFmZGM0N2ZlZmMxYTAwMzQzYmU2OGI1MzA5Li42MzNkNWRhZjIzNzQz
NzFiZGQxNzM3OGI4MzAxYTVlMWU2ZTU2MjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmlu
Z3MuanMKQEAgLTc4OSw2ICs3ODksNyBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJSZXZlYWwgQnJlYWtw
b2ludCJdID0gIlJldmVhbCBCcmVha3BvaW50IjsKIGxvY2FsaXplZFN0cmluZ3NbIlJldmVhbCBp
biBET00gVHJlZSJdID0gIlJldmVhbCBpbiBET00gVHJlZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJS
ZXZlYWwgaW4gRGVidWdnZXIgVGFiIl0gPSAiUmV2ZWFsIGluIERlYnVnZ2VyIFRhYiI7CiBsb2Nh
bGl6ZWRTdHJpbmdzWyJSZXZlYWwgaW4gRWxlbWVudHMgVGFiIl0gPSAiUmV2ZWFsIGluIEVsZW1l
bnRzIFRhYiI7Citsb2NhbGl6ZWRTdHJpbmdzWyJSZXZlYWwgaW4gTGF5ZXJzIFRhYiJdID0gIlJl
dmVhbCBpbiBMYXllcnMgVGFiIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJldmVhbCBpbiBOZXR3b3Jr
IFRhYiJdID0gIlJldmVhbCBpbiBOZXR3b3JrIFRhYiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZXZl
YWwgaW4gT3JpZ2luYWwgUmVzb3VyY2UiXSA9ICJSZXZlYWwgaW4gT3JpZ2luYWwgUmVzb3VyY2Ui
OwogbG9jYWxpemVkU3RyaW5nc1siUmV2ZWFsIGluIFJlc291cmNlcyBUYWIiXSA9ICJSZXZlYWwg
aW4gUmVzb3VyY2VzIFRhYiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9CYXNlL01haW4uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9CYXNlL01haW4uanMKaW5kZXggMjgzNzFmNmEzZmVlZjNkNTlmMDAzN2RiZWVkNjMzNjVj
MTE1OTY2NS4uOTBkMDg0N2E4NWM4ZTY3MTA5ZDQzMGQ0MTQxYzgyNTEzNjlkMzM1NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAt
OTE1LDYgKzkxNSwxMSBAQCBXSS5zaG93RWxlbWVudHNUYWIgPSBmdW5jdGlvbigpCiAgICAgdGhp
cy50YWJCcm93c2VyLnNob3dUYWJGb3JDb250ZW50Vmlldyh0YWJDb250ZW50Vmlldyk7CiB9Owog
CitXSS5pc1Nob3dpbmdFbGVtZW50c1RhYiA9IGZ1bmN0aW9uKCkKK3sKKyAgICByZXR1cm4gdGhp
cy50YWJCcm93c2VyLnNlbGVjdGVkVGFiQ29udGVudFZpZXcgaW5zdGFuY2VvZiBXSS5FbGVtZW50
c1RhYkNvbnRlbnRWaWV3OworfTsKKwogV0kuc2hvd0RlYnVnZ2VyVGFiID0gZnVuY3Rpb24ob3B0
aW9ucykKIHsKICAgICB2YXIgdGFiQ29udGVudFZpZXcgPSB0aGlzLnRhYkJyb3dzZXIuYmVzdFRh
YkNvbnRlbnRWaWV3Rm9yQ2xhc3MoV0kuRGVidWdnZXJUYWJDb250ZW50Vmlldyk7CkBAIC05ODMs
NiArOTg4LDIxIEBAIFdJLnNob3dUaW1lbGluZVRhYiA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLnRh
YkJyb3dzZXIuc2hvd1RhYkZvckNvbnRlbnRWaWV3KHRhYkNvbnRlbnRWaWV3KTsKIH07CiAKK1dJ
LnNob3dMYXllcnNUYWIgPSBmdW5jdGlvbihvcHRpb25zID0ge30pCit7CisgICAgbGV0IHRhYkNv
bnRlbnRWaWV3ID0gdGhpcy50YWJCcm93c2VyLmJlc3RUYWJDb250ZW50Vmlld0ZvckNsYXNzKFdJ
LkxheWVyc1RhYkNvbnRlbnRWaWV3KTsKKyAgICBpZiAoIXRhYkNvbnRlbnRWaWV3KQorICAgICAg
ICB0YWJDb250ZW50VmlldyA9IG5ldyBXSS5MYXllcnNUYWJDb250ZW50VmlldzsKKyAgICBpZiAo
b3B0aW9ucy5ub2RlVG9TZWxlY3QpCisgICAgICAgIHRhYkNvbnRlbnRWaWV3LnNlbGVjdExheWVy
Rm9yTm9kZShvcHRpb25zLm5vZGVUb1NlbGVjdCk7CisgICAgdGhpcy50YWJCcm93c2VyLnNob3dU
YWJGb3JDb250ZW50Vmlldyh0YWJDb250ZW50Vmlldyk7Cit9OworCitXSS5pc1Nob3dpbmdMYXll
cnNUYWIgPSBmdW5jdGlvbigpCit7CisgICAgcmV0dXJuIHRoaXMudGFiQnJvd3Nlci5zZWxlY3Rl
ZFRhYkNvbnRlbnRWaWV3IGluc3RhbmNlb2YgV0kuTGF5ZXJzVGFiQ29udGVudFZpZXc7Cit9Owor
CiBXSS5pbmRlbnRTdHJpbmcgPSBmdW5jdGlvbigpCiB7CiAgICAgaWYgKFdJLnNldHRpbmdzLmlu
ZGVudFdpdGhUYWJzLnZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ29udGV4dE1lbnVVdGlsaXRpZXMuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZXh0TWVudVV0aWxpdGllcy5qcwppbmRl
eCA0NjUwZjVlZGNkNzFlM2RhNGNlZjM1YTc0YjdmOGM0NjQzN2YxMzIxLi45NGQ0ODUxYjU4YTNj
ZGQ2N2UwYzk4YWQ4NDNhNmE2MjYzNmQ1YmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZXh0TWVudVV0aWxpdGllcy5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Db250ZXh0TWVudVV0aWxp
dGllcy5qcwpAQCAtMTkxLDEyICsxOTEsNiBAQCBXSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9y
RE9NTm9kZSA9IGZ1bmN0aW9uKGNvbnRleHRNZW51LCBkb21Ob2RlLCBvcHRpb25zID0gewogCiAg
ICAgY29udGV4dE1lbnUuYXBwZW5kU2VwYXJhdG9yKCk7CiAKLSAgICBpZiAoIW9wdGlvbnMuZXhj
bHVkZVJldmVhbEVsZW1lbnQgJiYgZG9tTm9kZS5vd25lckRvY3VtZW50KSB7Ci0gICAgICAgIGNv
bnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIlJldmVhbCBpbiBET00gVHJlZSIpLCAo
KSA9PiB7Ci0gICAgICAgICAgICBXSS5kb21UcmVlTWFuYWdlci5pbnNwZWN0RWxlbWVudChkb21O
b2RlLmlkKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCiAgICAgaWYgKCFvcHRpb25zLmV4Y2x1ZGVM
b2dFbGVtZW50ICYmICFkb21Ob2RlLmlzSW5Vc2VyQWdlbnRTaGFkb3dUcmVlKCkgJiYgIWRvbU5v
ZGUuaXNQc2V1ZG9FbGVtZW50KCkpIHsKICAgICAgICAgbGV0IGxhYmVsID0gaXNFbGVtZW50ID8g
V0kuVUlTdHJpbmcoIkxvZyBFbGVtZW50IikgOiBXSS5VSVN0cmluZygiTG9nIE5vZGUiKTsKICAg
ICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShsYWJlbCwgKCkgPT4gewpAQCAtMjA4LDYgKzIw
MiwxOCBAQCBXSS5hcHBlbmRDb250ZXh0TWVudUl0ZW1zRm9yRE9NTm9kZSA9IGZ1bmN0aW9uKGNv
bnRleHRNZW51LCBkb21Ob2RlLCBvcHRpb25zID0gewogICAgICAgICB9KTsKICAgICB9CiAKKyAg
ICBpZiAoIW9wdGlvbnMuZXhjbHVkZVJldmVhbEVsZW1lbnQgJiYgd2luZG93LkRPTUFnZW50ICYm
IGRvbU5vZGUub3duZXJEb2N1bWVudCkgeworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVt
KFdJLlVJU3RyaW5nKCJSZXZlYWwgaW4gRE9NIFRyZWUiKSwgKCkgPT4geworICAgICAgICAgICAg
V0kuZG9tVHJlZU1hbmFnZXIuaW5zcGVjdEVsZW1lbnQoZG9tTm9kZS5pZCk7CisgICAgICAgIH0p
OworICAgIH0KKworICAgIGlmICghb3B0aW9ucy5leGNsdWRlUmV2ZWFsTGF5ZXIgJiYgd2luZG93
LkxheWVyVHJlZUFnZW50ICYmIGRvbU5vZGUucGFyZW50Tm9kZSkgeworICAgICAgICBjb250ZXh0
TWVudS5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJSZXZlYWwgaW4gTGF5ZXJzIFRhYiIpLCAoKSA9
PiB7CisgICAgICAgICAgICBXSS5zaG93TGF5ZXJzVGFiKHtub2RlVG9TZWxlY3Q6IGRvbU5vZGV9
KTsKKyAgICAgICAgfSk7CisgICAgfQorCiAgICAgaWYgKHdpbmRvdy5QYWdlQWdlbnQpIHsKICAg
ICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXSS5VSVN0cmluZygiQ2FwdHVyZSBTY3JlZW5z
aG90IiksICgpID0+IHsKICAgICAgICAgICAgIFBhZ2VBZ2VudC5zbmFwc2hvdE5vZGUoZG9tTm9k
ZS5pZCwgKGVycm9yLCBkYXRhVVJMKSA9PiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXllckRldGFpbHNTaWRlYmFyUGFuZWwuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXllckRldGFpbHNTaWRl
YmFyUGFuZWwuanMKaW5kZXggOWU0ZWMxMTQ3YjZjYzgyNWE5OGVmMGFiZmExZGNkZjc5MWY1NTZi
Yi4uZTZiZWM0ZWU3NTMzZjgwNjlhMGU4MjVlZDNkODU2ZGJmMDgxOTNkMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJEZXRhaWxzU2lk
ZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0xheWVyRGV0YWlsc1NpZGViYXJQYW5lbC5qcwpAQCAtMzMsMTAgKzMzLDEyIEBAIFdJLkxh
eWVyRGV0YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNzIExheWVyRGV0YWlsc1NpZGViYXJQYW5lbCBl
eHRlbmRzIFdJLkRldGFpbHNTCiAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJs
YXllciIpOwogCiAgICAgICAgIHRoaXMuX2xheWVycyA9IFtdOwotICAgICAgICB0aGlzLl9kYXRh
R3JpZE5vZGVzQnlMYXllcklkID0gbmV3IE1hcDsKKyAgICAgICAgdGhpcy5fbGF5ZXJJZFRvU2Vs
ZWN0ID0gbnVsbDsKIAogICAgICAgICB0aGlzLl9kYXRhR3JpZCA9IG51bGw7CiAgICAgICAgIHRo
aXMuX2hvdmVyZWREYXRhR3JpZE5vZGUgPSBudWxsOworICAgICAgICB0aGlzLl9kYXRhR3JpZE5v
ZGVzQnlMYXllcklkID0gbmV3IE1hcDsKKwogICAgICAgICB0aGlzLl9ib3R0b21CYXIgPSBudWxs
OwogICAgICAgICB0aGlzLl9sYXllcnNDb3VudExhYmVsID0gbnVsbDsKICAgICAgICAgdGhpcy5f
bGF5ZXJzTWVtb3J5TGFiZWwgPSBudWxsOwpAQCAtNTcsNiArNTksOCBAQCBXSS5MYXllckRldGFp
bHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBMYXllckRldGFpbHNTaWRlYmFyUGFuZWwgZXh0ZW5kcyBX
SS5EZXRhaWxzUwogCiAgICAgc2VsZWN0Tm9kZUJ5TGF5ZXJJZChsYXllcklkKQogICAgIHsKKyAg
ICAgICAgdGhpcy5fbGF5ZXJJZFRvU2VsZWN0ID0gbnVsbDsKKwogICAgICAgICBsZXQgbm9kZSA9
IHRoaXMuX2RhdGFHcmlkTm9kZXNCeUxheWVySWQuZ2V0KGxheWVySWQpOwogICAgICAgICBpZiAo
bm9kZSA9PT0gdGhpcy5fZGF0YUdyaWQuc2VsZWN0ZWROb2RlKQogICAgICAgICAgICAgcmV0dXJu
OwpAQCAtNjYsNiArNzAsOCBAQCBXSS5MYXllckRldGFpbHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBM
YXllckRldGFpbHNTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS5EZXRhaWxzUwogICAgICAgICAgICAg
bm9kZS5yZXZlYWxBbmRTZWxlY3Qoc3VwcHJlc3NFdmVudCk7CiAgICAgICAgIGVsc2UgaWYgKHRo
aXMuX2RhdGFHcmlkLnNlbGVjdGVkTm9kZSkKICAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkLnNl
bGVjdGVkTm9kZS5kZXNlbGVjdChzdXBwcmVzc0V2ZW50KTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdGhpcy5fbGF5ZXJJZFRvU2VsZWN0ID0gbGF5ZXJJZDsKICAgICB9CiAKICAgICAvLyBQ
cml2YXRlCkBAIC0yMDUsNiArMjExLDkgQEAgV0kuTGF5ZXJEZXRhaWxzU2lkZWJhclBhbmVsID0g
Y2xhc3MgTGF5ZXJEZXRhaWxzU2lkZWJhclBhbmVsIGV4dGVuZHMgV0kuRGV0YWlsc1MKICAgICAg
ICAgfSk7CiAKICAgICAgICAgdGhpcy5fc29ydERhdGFHcmlkKCk7CisKKyAgICAgICAgaWYgKHRo
aXMuX2xheWVySWRUb1NlbGVjdCkKKyAgICAgICAgICAgIHRoaXMuc2VsZWN0Tm9kZUJ5TGF5ZXJJ
ZCh0aGlzLl9sYXllcklkVG9TZWxlY3QpOwogICAgIH0KIAogICAgIF91cGRhdGVCb3R0b21CYXIo
bmV3TGF5ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvTGF5ZXJzM0RDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0xheWVyczNEQ29udGVudFZpZXcuanMKaW5kZXggMTFhYzEwMDc2
ZDJhMWE3ZTQ4NWJjMmNmODk4MDUyZjViMDhiYmU0OS4uNTdjNjA0OGY4M2FhMjIzMjY4NWIwMzNm
ODJmNjc3OTk2ZmMzNzBjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvTGF5ZXJzM0RDb250ZW50Vmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXllcnMzRENvbnRlbnRWaWV3LmpzCkBAIC00
NSw2ICs0NSw3IEBAIFdJLkxheWVyczNEQ29udGVudFZpZXcgPSBjbGFzcyBMYXllcnMzRENvbnRl
bnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgdGhpcy5fbGF5ZXJzID0gW107
CiAgICAgICAgIHRoaXMuX2xheWVyR3JvdXBzQnlJZCA9IG5ldyBNYXA7CiAgICAgICAgIHRoaXMu
X3NlbGVjdGVkTGF5ZXJHcm91cCA9IG51bGw7CisgICAgICAgIHRoaXMuX25vZGVUb1NlbGVjdCA9
IG51bGw7CiAKICAgICAgICAgdGhpcy5fcmVuZGVyZXIgPSBudWxsOwogICAgICAgICB0aGlzLl9j
YW1lcmEgPSBudWxsOwpAQCAtMTEwLDYgKzExMSwyNyBAQCBXSS5MYXllcnMzRENvbnRlbnRWaWV3
ID0gY2xhc3MgTGF5ZXJzM0RDb250ZW50VmlldyBleHRlbmRzIFdJLkNvbnRlbnRWaWV3CiAgICAg
ICAgIHRoaXMuX2NlbnRlck9uU2VsZWN0aW9uKCk7CiAgICAgfQogCisgICAgc2VsZWN0TGF5ZXJG
b3JOb2RlKG5vZGUpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuX2xheWVycy5sZW5ndGgpIHsK
KyAgICAgICAgICAgIHRoaXMuX25vZGVUb1NlbGVjdCA9IG5vZGU7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9ub2RlVG9TZWxlY3QgPSBudWxsOworCisg
ICAgICAgIGxldCBsYXllciA9IG51bGw7CisgICAgICAgIHdoaWxlIChub2RlICYmICFsYXllcikg
eworICAgICAgICAgICAgbGF5ZXIgPSB0aGlzLl9sYXllcnMuZmluZCgobGF5ZXIpID0+IGxheWVy
Lm5vZGVJZCA9PT0gbm9kZS5pZCk7CisgICAgICAgICAgICBpZiAoIWxheWVyKQorICAgICAgICAg
ICAgICAgIG5vZGUgPSBub2RlLnBhcmVudE5vZGU7CisgICAgICAgIH0KKworICAgICAgICB0aGlz
LnNlbGVjdExheWVyQnlJZChsYXllci5sYXllcklkKTsKKworICAgICAgICB0aGlzLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycyhXSS5MYXllcnMzRENvbnRlbnRWaWV3LkV2ZW50LlNlbGVjdGVkTGF5
ZXJDaGFuZ2VkLCB7bGF5ZXJJZDogbGF5ZXIubGF5ZXJJZH0pOworICAgIH0KKwogICAgIC8vIFBy
b3RlY3RlZAogCiAgICAgaW5pdGlhbExheW91dCgpCkBAIC0xNTQsOCArMTc2LDEyIEBAIFdJLkxh
eWVyczNEQ29udGVudFZpZXcgPSBjbGFzcyBMYXllcnMzRENvbnRlbnRWaWV3IGV4dGVuZHMgV0ku
Q29udGVudFZpZXcKIAogICAgICAgICAgICAgV0kubGF5ZXJUcmVlTWFuYWdlci5sYXllcnNGb3JO
b2RlKG5vZGUsIChsYXllcnMpID0+IHsKICAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVMYXll
cnMobGF5ZXJzKTsKKwogICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudFdhc1VwZGF0ZWQpCiAg
ICAgICAgICAgICAgICAgICAgIHRoaXMuX3Jlc2V0Q2FtZXJhKCk7CisKKyAgICAgICAgICAgICAg
ICBpZiAodGhpcy5fbm9kZVRvU2VsZWN0KQorICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVj
dExheWVyRm9yTm9kZSh0aGlzLl9ub2RlVG9TZWxlY3QpOwogICAgICAgICAgICAgfSk7CiAgICAg
ICAgIH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0xheWVyc1RhYkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJzVGFiQ29udGVudFZpZXcuanMKaW5kZXggNmQy
NmQ0YzA3NWZlNWYzZmQ1OGNlN2Y2MjE4YThhYjIzMjk2ODY1OS4uMmMyYzZjZDM2ODZjM2MzMGFl
ZDEyMjg4NjJmNTFjYzg1ODMxNDA3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJzVGFiQ29udGVudFZpZXcuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJzVGFiQ29udGVudFZpZXcu
anMKQEAgLTYxLDYgKzYxLDExIEBAIFdJLkxheWVyc1RhYkNvbnRlbnRWaWV3ID0gY2xhc3MgTGF5
ZXJzVGFiQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50QnJvd3NlclRhCiAgICAgZ2V0IHR5
cGUoKSB7IHJldHVybiBXSS5MYXllcnNUYWJDb250ZW50Vmlldy5UeXBlOyB9CiAgICAgZ2V0IHN1
cHBvcnRzU3BsaXRDb250ZW50QnJvd3NlcigpIHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICBzZWxl
Y3RMYXllckZvck5vZGUobm9kZSkKKyAgICB7CisgICAgICAgIHRoaXMuX2xheWVyczNEQ29udGVu
dFZpZXcuc2VsZWN0TGF5ZXJGb3JOb2RlKG5vZGUpOworICAgIH0KKwogICAgIHNob3duKCkKICAg
ICB7CiAgICAgICAgIHN1cGVyLnNob3duKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333248</attachid>
            <date>2018-02-06 18:24:14 -0800</date>
            <delta_ts>2018-02-06 19:20:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181800-20180206182407.patch</filename>
            <type>text/plain</type>
            <size>10346</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDRhMTRkZmE4NDA0MmI0ZjBhNTdkMzVmZTkzNjAz
M2U3Zjg1OTY4MGUuLjE2M2IxMjlmNzc1YzgwNTY3MWVmZTM4MTM4OTI5ZDQxMTBlYTYyMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE4LTAyLTA2ICBEZXZp
biBSb3Vzc28gIDx3ZWJraXRAZGV2aW5yb3Vzc28uY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEVsZW1lbnRzIHRhYiBzaG91bGQgaGF2ZSAiSnVtcCB0byBMYXllciIgZnVuY3Rpb25hbGl0
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxODAw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgICogTG9j
YWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9CYXNlL01haW4uanM6CisgICAgICAgIChXSS5pc1Nob3dpbmdFbGVtZW50c1Rh
Yik6CisgICAgICAgIChXSS5zaG93TGF5ZXJzVGFiKToKKyAgICAgICAgKFdJLmlzU2hvd2luZ0xh
eWVyc1RhYik6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRleHRNZW51VXRp
bGl0aWVzLmpzOgorICAgICAgICAoV0kuYXBwZW5kQ29udGV4dE1lbnVJdGVtc0ZvckRPTU5vZGUp
OgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9MYXllcnNUYWJDb250ZW50Vmlldy5q
czoKKyAgICAgICAgKFdJLkxheWVyc1RhYkNvbnRlbnRWaWV3LnByb3RvdHlwZS5zZWxlY3RMYXll
ckZvck5vZGUpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9MYXllcnMzRENvbnRl
bnRWaWV3LmpzOgorICAgICAgICAoV0kuTGF5ZXJzM0RDb250ZW50Vmlldyk6CisgICAgICAgIChX
SS5MYXllcnMzRENvbnRlbnRWaWV3LnByb3RvdHlwZS5zZWxlY3RMYXllckZvck5vZGUpOgorICAg
ICAgICAoV0kuTGF5ZXJzM0RDb250ZW50Vmlldy5wcm90b3R5cGUubGF5b3V0KToKKworICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJEZXRhaWxzU2lkZWJhclBhbmVsLmpzOgorICAg
ICAgICAoV0kuTGF5ZXJEZXRhaWxzU2lkZWJhclBhbmVsKToKKyAgICAgICAgKFdJLkxheWVyRGV0
YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUuc2VsZWN0Tm9kZUJ5TGF5ZXJJZCk6CisgICAgICAg
IChXSS5MYXllckRldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl91cGRhdGVEYXRhR3JpZCk6
CisKIDIwMTgtMDItMDIgIERldmluIFJvdXNzbyAgPHdlYmtpdEBkZXZpbnJvdXNzby5jb20+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogU3R5bGVzIFJlZGVzaWduOiBQYXN0aW5nIG11bHRpcGxl
IHByb3BlcnRpZXMgc2hvdWxkIGNyZWF0ZSBwcm9wZXJ0aWVzIGluc3RlYWQgb2YgYSBiYWQgcHJv
cGVydHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2Vu
Lmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxp
emF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IDAxMDRiYWQ0NTRhNGYz
OTIyMGRlNGI2MWMzMTIzYjFiODg2MzY3NjQuLjllYjczOWMzNDRlNDM4ZGRhMmE0Mjc3NzZjZjU1
YTNiNmIyMzY5NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRp
b25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwpAQCAtNzkwLDYg
Kzc5MCw3IEBAIGxvY2FsaXplZFN0cmluZ3NbIlJldmVhbCBCcmVha3BvaW50Il0gPSAiUmV2ZWFs
IEJyZWFrcG9pbnQiOwogbG9jYWxpemVkU3RyaW5nc1siUmV2ZWFsIGluIERPTSBUcmVlIl0gPSAi
UmV2ZWFsIGluIERPTSBUcmVlIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJldmVhbCBpbiBEZWJ1Z2dl
ciBUYWIiXSA9ICJSZXZlYWwgaW4gRGVidWdnZXIgVGFiIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJl
dmVhbCBpbiBFbGVtZW50cyBUYWIiXSA9ICJSZXZlYWwgaW4gRWxlbWVudHMgVGFiIjsKK2xvY2Fs
aXplZFN0cmluZ3NbIlJldmVhbCBpbiBMYXllcnMgVGFiIl0gPSAiUmV2ZWFsIGluIExheWVycyBU
YWIiOwogbG9jYWxpemVkU3RyaW5nc1siUmV2ZWFsIGluIE5ldHdvcmsgVGFiIl0gPSAiUmV2ZWFs
IGluIE5ldHdvcmsgVGFiIjsKIGxvY2FsaXplZFN0cmluZ3NbIlJldmVhbCBpbiBPcmlnaW5hbCBS
ZXNvdXJjZSJdID0gIlJldmVhbCBpbiBPcmlnaW5hbCBSZXNvdXJjZSI7CiBsb2NhbGl6ZWRTdHJp
bmdzWyJSZXZlYWwgaW4gUmVzb3VyY2VzIFRhYiJdID0gIlJldmVhbCBpbiBSZXNvdXJjZXMgVGFi
IjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2Uv
TWFpbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5q
cwppbmRleCA2Yjg2MDE0ZDVmMDQ1NDA0ZGM0ODczZDU3ZGJiMjYyZDMzNWM2M2Y5Li5kNDk5Nzk0
NTA2N2VhNmM3OTI3ODM1NDM2NGMxNTc5Y2NjNzdmZDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKKysrIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCkBAIC05MjAsNiArOTIwLDExIEBA
IFdJLnNob3dFbGVtZW50c1RhYiA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLnRhYkJyb3dzZXIuc2hv
d1RhYkZvckNvbnRlbnRWaWV3KHRhYkNvbnRlbnRWaWV3KTsKIH07CiAKK1dJLmlzU2hvd2luZ0Vs
ZW1lbnRzVGFiID0gZnVuY3Rpb24oKQoreworICAgIHJldHVybiB0aGlzLnRhYkJyb3dzZXIuc2Vs
ZWN0ZWRUYWJDb250ZW50VmlldyBpbnN0YW5jZW9mIFdJLkVsZW1lbnRzVGFiQ29udGVudFZpZXc7
Cit9OworCiBXSS5zaG93RGVidWdnZXJUYWIgPSBmdW5jdGlvbihvcHRpb25zKQogewogICAgIHZh
ciB0YWJDb250ZW50VmlldyA9IHRoaXMudGFiQnJvd3Nlci5iZXN0VGFiQ29udGVudFZpZXdGb3JD
bGFzcyhXSS5EZWJ1Z2dlclRhYkNvbnRlbnRWaWV3KTsKQEAgLTk4OCw2ICs5OTMsMjEgQEAgV0ku
c2hvd1RpbWVsaW5lVGFiID0gZnVuY3Rpb24oKQogICAgIHRoaXMudGFiQnJvd3Nlci5zaG93VGFi
Rm9yQ29udGVudFZpZXcodGFiQ29udGVudFZpZXcpOwogfTsKIAorV0kuc2hvd0xheWVyc1RhYiA9
IGZ1bmN0aW9uKG9wdGlvbnMgPSB7fSkKK3sKKyAgICBsZXQgdGFiQ29udGVudFZpZXcgPSB0aGlz
LnRhYkJyb3dzZXIuYmVzdFRhYkNvbnRlbnRWaWV3Rm9yQ2xhc3MoV0kuTGF5ZXJzVGFiQ29udGVu
dFZpZXcpOworICAgIGlmICghdGFiQ29udGVudFZpZXcpCisgICAgICAgIHRhYkNvbnRlbnRWaWV3
ID0gbmV3IFdJLkxheWVyc1RhYkNvbnRlbnRWaWV3OworICAgIGlmIChvcHRpb25zLm5vZGVUb1Nl
bGVjdCkKKyAgICAgICAgdGFiQ29udGVudFZpZXcuc2VsZWN0TGF5ZXJGb3JOb2RlKG9wdGlvbnMu
bm9kZVRvU2VsZWN0KTsKKyAgICB0aGlzLnRhYkJyb3dzZXIuc2hvd1RhYkZvckNvbnRlbnRWaWV3
KHRhYkNvbnRlbnRWaWV3KTsKK307CisKK1dJLmlzU2hvd2luZ0xheWVyc1RhYiA9IGZ1bmN0aW9u
KCkKK3sKKyAgICByZXR1cm4gdGhpcy50YWJCcm93c2VyLnNlbGVjdGVkVGFiQ29udGVudFZpZXcg
aW5zdGFuY2VvZiBXSS5MYXllcnNUYWJDb250ZW50VmlldzsKK307CisKIFdJLmluZGVudFN0cmlu
ZyA9IGZ1bmN0aW9uKCkKIHsKICAgICBpZiAoV0kuc2V0dGluZ3MuaW5kZW50V2l0aFRhYnMudmFs
dWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9Db250ZXh0TWVudVV0aWxpdGllcy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NvbnRleHRNZW51VXRpbGl0aWVzLmpzCmluZGV4IDQ2NTBmNWVkY2Q3MWUz
ZGE0Y2VmMzVhNzRiN2Y4YzQ2NDM3ZjEzMjEuLjk0ZDQ4NTFiNThhM2NkZDY3ZTBjOThhZDg0M2E2
YTYyNjM2ZDViYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NvbnRleHRNZW51VXRpbGl0aWVzLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NvbnRleHRNZW51VXRpbGl0aWVzLmpzCkBAIC0xOTEs
MTIgKzE5MSw2IEBAIFdJLmFwcGVuZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2RlID0gZnVuY3Rp
b24oY29udGV4dE1lbnUsIGRvbU5vZGUsIG9wdGlvbnMgPSB7CiAKICAgICBjb250ZXh0TWVudS5h
cHBlbmRTZXBhcmF0b3IoKTsKIAotICAgIGlmICghb3B0aW9ucy5leGNsdWRlUmV2ZWFsRWxlbWVu
dCAmJiBkb21Ob2RlLm93bmVyRG9jdW1lbnQpIHsKLSAgICAgICAgY29udGV4dE1lbnUuYXBwZW5k
SXRlbShXSS5VSVN0cmluZygiUmV2ZWFsIGluIERPTSBUcmVlIiksICgpID0+IHsKLSAgICAgICAg
ICAgIFdJLmRvbVRyZWVNYW5hZ2VyLmluc3BlY3RFbGVtZW50KGRvbU5vZGUuaWQpOwotICAgICAg
ICB9KTsKLSAgICB9Ci0KICAgICBpZiAoIW9wdGlvbnMuZXhjbHVkZUxvZ0VsZW1lbnQgJiYgIWRv
bU5vZGUuaXNJblVzZXJBZ2VudFNoYWRvd1RyZWUoKSAmJiAhZG9tTm9kZS5pc1BzZXVkb0VsZW1l
bnQoKSkgewogICAgICAgICBsZXQgbGFiZWwgPSBpc0VsZW1lbnQgPyBXSS5VSVN0cmluZygiTG9n
IEVsZW1lbnQiKSA6IFdJLlVJU3RyaW5nKCJMb2cgTm9kZSIpOwogICAgICAgICBjb250ZXh0TWVu
dS5hcHBlbmRJdGVtKGxhYmVsLCAoKSA9PiB7CkBAIC0yMDgsNiArMjAyLDE4IEBAIFdJLmFwcGVu
ZENvbnRleHRNZW51SXRlbXNGb3JET01Ob2RlID0gZnVuY3Rpb24oY29udGV4dE1lbnUsIGRvbU5v
ZGUsIG9wdGlvbnMgPSB7CiAgICAgICAgIH0pOwogICAgIH0KIAorICAgIGlmICghb3B0aW9ucy5l
eGNsdWRlUmV2ZWFsRWxlbWVudCAmJiB3aW5kb3cuRE9NQWdlbnQgJiYgZG9tTm9kZS5vd25lckRv
Y3VtZW50KSB7CisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV0kuVUlTdHJpbmcoIlJl
dmVhbCBpbiBET00gVHJlZSIpLCAoKSA9PiB7CisgICAgICAgICAgICBXSS5kb21UcmVlTWFuYWdl
ci5pbnNwZWN0RWxlbWVudChkb21Ob2RlLmlkKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAg
aWYgKCFvcHRpb25zLmV4Y2x1ZGVSZXZlYWxMYXllciAmJiB3aW5kb3cuTGF5ZXJUcmVlQWdlbnQg
JiYgZG9tTm9kZS5wYXJlbnROb2RlKSB7CisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0o
V0kuVUlTdHJpbmcoIlJldmVhbCBpbiBMYXllcnMgVGFiIiksICgpID0+IHsKKyAgICAgICAgICAg
IFdJLnNob3dMYXllcnNUYWIoe25vZGVUb1NlbGVjdDogZG9tTm9kZX0pOworICAgICAgICB9KTsK
KyAgICB9CisKICAgICBpZiAod2luZG93LlBhZ2VBZ2VudCkgewogICAgICAgICBjb250ZXh0TWVu
dS5hcHBlbmRJdGVtKFdJLlVJU3RyaW5nKCJDYXB0dXJlIFNjcmVlbnNob3QiKSwgKCkgPT4gewog
ICAgICAgICAgICAgUGFnZUFnZW50LnNuYXBzaG90Tm9kZShkb21Ob2RlLmlkLCAoZXJyb3IsIGRh
dGFVUkwpID0+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0xheWVyRGV0YWlsc1NpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheWVyRGV0YWlsc1NpZGViYXJQYW5lbC5qcwppbmRl
eCA5ZTRlYzExNDdiNmNjODI1YTk4ZWYwYWJmYTFkY2RmNzkxZjU1NmJiLi5lNmJlYzRlZTc1MzNm
ODA2OWEwZTgyNWVkM2Q4NTZkYmYwODE5M2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXllckRldGFpbHNTaWRlYmFyUGFuZWwuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5ZXJEZXRhaWxz
U2lkZWJhclBhbmVsLmpzCkBAIC0zMywxMCArMzMsMTIgQEAgV0kuTGF5ZXJEZXRhaWxzU2lkZWJh
clBhbmVsID0gY2xhc3MgTGF5ZXJEZXRhaWxzU2lkZWJhclBhbmVsIGV4dGVuZHMgV0kuRGV0YWls
c1MKICAgICAgICAgdGhpcy5lbGVtZW50LmNsYXNzTGlzdC5hZGQoImxheWVyIik7CiAKICAgICAg
ICAgdGhpcy5fbGF5ZXJzID0gW107Ci0gICAgICAgIHRoaXMuX2RhdGFHcmlkTm9kZXNCeUxheWVy
SWQgPSBuZXcgTWFwOworICAgICAgICB0aGlzLl9sYXllcklkVG9TZWxlY3QgPSBudWxsOwogCiAg
ICAgICAgIHRoaXMuX2RhdGFHcmlkID0gbnVsbDsKICAgICAgICAgdGhpcy5faG92ZXJlZERhdGFH
cmlkTm9kZSA9IG51bGw7CisgICAgICAgIHRoaXMuX2RhdGFHcmlkTm9kZXNCeUxheWVySWQgPSBu
ZXcgTWFwOworCiAgICAgICAgIHRoaXMuX2JvdHRvbUJhciA9IG51bGw7CiAgICAgICAgIHRoaXMu
X2xheWVyc0NvdW50TGFiZWwgPSBudWxsOwogICAgICAgICB0aGlzLl9sYXllcnNNZW1vcnlMYWJl
bCA9IG51bGw7CkBAIC01Nyw2ICs1OSw4IEBAIFdJLkxheWVyRGV0YWlsc1NpZGViYXJQYW5lbCA9
IGNsYXNzIExheWVyRGV0YWlsc1NpZGViYXJQYW5lbCBleHRlbmRzIFdJLkRldGFpbHNTCiAKICAg
ICBzZWxlY3ROb2RlQnlMYXllcklkKGxheWVySWQpCiAgICAgeworICAgICAgICB0aGlzLl9sYXll
cklkVG9TZWxlY3QgPSBudWxsOworCiAgICAgICAgIGxldCBub2RlID0gdGhpcy5fZGF0YUdyaWRO
b2Rlc0J5TGF5ZXJJZC5nZXQobGF5ZXJJZCk7CiAgICAgICAgIGlmIChub2RlID09PSB0aGlzLl9k
YXRhR3JpZC5zZWxlY3RlZE5vZGUpCiAgICAgICAgICAgICByZXR1cm47CkBAIC02Niw2ICs3MCw4
IEBAIFdJLkxheWVyRGV0YWlsc1NpZGViYXJQYW5lbCA9IGNsYXNzIExheWVyRGV0YWlsc1NpZGVi
YXJQYW5lbCBleHRlbmRzIFdJLkRldGFpbHNTCiAgICAgICAgICAgICBub2RlLnJldmVhbEFuZFNl
bGVjdChzdXBwcmVzc0V2ZW50KTsKICAgICAgICAgZWxzZSBpZiAodGhpcy5fZGF0YUdyaWQuc2Vs
ZWN0ZWROb2RlKQogICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQuc2VsZWN0ZWROb2RlLmRlc2Vs
ZWN0KHN1cHByZXNzRXZlbnQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlzLl9sYXll
cklkVG9TZWxlY3QgPSBsYXllcklkOwogICAgIH0KIAogICAgIC8vIFByaXZhdGUKQEAgLTIwNSw2
ICsyMTEsOSBAQCBXSS5MYXllckRldGFpbHNTaWRlYmFyUGFuZWwgPSBjbGFzcyBMYXllckRldGFp
bHNTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS5EZXRhaWxzUwogICAgICAgICB9KTsKIAogICAgICAg
ICB0aGlzLl9zb3J0RGF0YUdyaWQoKTsKKworICAgICAgICBpZiAodGhpcy5fbGF5ZXJJZFRvU2Vs
ZWN0KQorICAgICAgICAgICAgdGhpcy5zZWxlY3ROb2RlQnlMYXllcklkKHRoaXMuX2xheWVySWRU
b1NlbGVjdCk7CiAgICAgfQogCiAgICAgX3VwZGF0ZUJvdHRvbUJhcihuZXdMYXllcnMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXllcnMz
RENvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvTGF5ZXJzM0RDb250ZW50Vmlldy5qcwppbmRleCAxMWFjMTAwNzZkMmExYTdlNDg1YmMyY2Y4
OTgwNTJmNWIwOGJiZTQ5Li4zMjA2YTI2ZTU1Yzk4ODU2YzZmYjdjNGQ2YjIwMzU4OTY2MWI2YzA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9M
YXllcnMzRENvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0xheWVyczNEQ29udGVudFZpZXcuanMKQEAgLTQ1LDYgKzQ1LDcgQEAgV0ku
TGF5ZXJzM0RDb250ZW50VmlldyA9IGNsYXNzIExheWVyczNEQ29udGVudFZpZXcgZXh0ZW5kcyBX
SS5Db250ZW50VmlldwogICAgICAgICB0aGlzLl9sYXllcnMgPSBbXTsKICAgICAgICAgdGhpcy5f
bGF5ZXJHcm91cHNCeUlkID0gbmV3IE1hcDsKICAgICAgICAgdGhpcy5fc2VsZWN0ZWRMYXllckdy
b3VwID0gbnVsbDsKKyAgICAgICAgdGhpcy5fbm9kZVRvU2VsZWN0ID0gbnVsbDsKIAogICAgICAg
ICB0aGlzLl9yZW5kZXJlciA9IG51bGw7CiAgICAgICAgIHRoaXMuX2NhbWVyYSA9IG51bGw7CkBA
IC0xMTAsNiArMTExLDMxIEBAIFdJLkxheWVyczNEQ29udGVudFZpZXcgPSBjbGFzcyBMYXllcnMz
RENvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudFZpZXcKICAgICAgICAgdGhpcy5fY2VudGVy
T25TZWxlY3Rpb24oKTsKICAgICB9CiAKKyAgICBzZWxlY3RMYXllckZvck5vZGUobm9kZSkKKyAg
ICB7CisgICAgICAgIGlmICghdGhpcy5fbGF5ZXJzLmxlbmd0aCkgeworICAgICAgICAgICAgdGhp
cy5fbm9kZVRvU2VsZWN0ID0gbm9kZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIHRoaXMuX25vZGVUb1NlbGVjdCA9IG51bGw7CisKKyAgICAgICAgbGV0IGxheWVy
ID0gbnVsbDsKKyAgICAgICAgd2hpbGUgKG5vZGUgJiYgIWxheWVyKSB7CisgICAgICAgICAgICBs
YXllciA9IHRoaXMuX2xheWVycy5maW5kKChsYXllcikgPT4gbGF5ZXIubm9kZUlkID09PSBub2Rl
LmlkKTsKKyAgICAgICAgICAgIGlmICghbGF5ZXIpCisgICAgICAgICAgICAgICAgbm9kZSA9IG5v
ZGUucGFyZW50Tm9kZTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGxheWVy
LCAiVGhlcmUgc2hvdWxkIGFsd2F5cyBiZSBhIHRvcCBsZXZlbCAoZG9jdW1lbnQpIGxheWVyIik7
CisgICAgICAgIGlmICghbGF5ZXIpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhp
cy5zZWxlY3RMYXllckJ5SWQobGF5ZXIubGF5ZXJJZCk7CisKKyAgICAgICAgdGhpcy5kaXNwYXRj
aEV2ZW50VG9MaXN0ZW5lcnMoV0kuTGF5ZXJzM0RDb250ZW50Vmlldy5FdmVudC5TZWxlY3RlZExh
eWVyQ2hhbmdlZCwge2xheWVySWQ6IGxheWVyLmxheWVySWR9KTsKKyAgICB9CisKICAgICAvLyBQ
cm90ZWN0ZWQKIAogICAgIGluaXRpYWxMYXlvdXQoKQpAQCAtMTU0LDggKzE4MCwxMiBAQCBXSS5M
YXllcnMzRENvbnRlbnRWaWV3ID0gY2xhc3MgTGF5ZXJzM0RDb250ZW50VmlldyBleHRlbmRzIFdJ
LkNvbnRlbnRWaWV3CiAKICAgICAgICAgICAgIFdJLmxheWVyVHJlZU1hbmFnZXIubGF5ZXJzRm9y
Tm9kZShub2RlLCAobGF5ZXJzKSA9PiB7CiAgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlTGF5
ZXJzKGxheWVycyk7CisKICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnRXYXNVcGRhdGVkKQog
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZXNldENhbWVyYSgpOworCisgICAgICAgICAgICAg
ICAgaWYgKHRoaXMuX25vZGVUb1NlbGVjdCkKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxl
Y3RMYXllckZvck5vZGUodGhpcy5fbm9kZVRvU2VsZWN0KTsKICAgICAgICAgICAgIH0pOwogICAg
ICAgICB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9MYXllcnNUYWJDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheWVyc1RhYkNvbnRlbnRWaWV3LmpzCmluZGV4IDI4
NWIxYzRlY2ZmZDcyN2FiNmQ1N2I4ZjlkNzk4ZWUzYmQ0ZWUxYzEuLmI1NDU5ODYxODA0MDg0YzJj
ZWM2NTdjZDZjZTMwNzQ1ZTk3NDE4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheWVyc1RhYkNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheWVyc1RhYkNvbnRlbnRWaWV3
LmpzCkBAIC02MSw2ICs2MSwxMSBAQCBXSS5MYXllcnNUYWJDb250ZW50VmlldyA9IGNsYXNzIExh
eWVyc1RhYkNvbnRlbnRWaWV3IGV4dGVuZHMgV0kuQ29udGVudEJyb3dzZXJUYQogICAgIGdldCB0
eXBlKCkgeyByZXR1cm4gV0kuTGF5ZXJzVGFiQ29udGVudFZpZXcuVHlwZTsgfQogICAgIGdldCBz
dXBwb3J0c1NwbGl0Q29udGVudEJyb3dzZXIoKSB7IHJldHVybiBmYWxzZTsgfQogCisgICAgc2Vs
ZWN0TGF5ZXJGb3JOb2RlKG5vZGUpCisgICAgeworICAgICAgICB0aGlzLl9sYXllcnMzRENvbnRl
bnRWaWV3LnNlbGVjdExheWVyRm9yTm9kZShub2RlKTsKKyAgICB9CisKICAgICBzaG93bigpCiAg
ICAgewogICAgICAgICBzdXBlci5zaG93bigpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>