<?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>147796</bug_id>
          
          <creation_ts>2015-08-07 15:31:53 -0700</creation_ts>
          <short_desc>Refactor BuildbotQueueView.revisionContentForIteration to work more generically with repositories other than &quot;openSource&quot; and &quot;internal&quot;.</short_desc>
          <delta_ts>2015-08-12 14:10:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=147667</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=146210</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=146126</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=147043</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=147280</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>147805</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jason Marcell">jmarcell</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adele</cc>
    
    <cc>ap</cc>
    
    <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>jmarcell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1115905</commentid>
    <comment_count>0</comment_count>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-08-07 15:31:53 -0700</bug_when>
    <thetext>Refactor BuildbotQueueView.revisionContentForIteration to work more generically with repositories other than &quot;openSource&quot; and &quot;internal&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115907</commentid>
    <comment_count>1</comment_count>
      <attachid>258537</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-08-07 15:38:42 -0700</bug_when>
    <thetext>Created attachment 258537
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115911</commentid>
    <comment_count>2</comment_count>
      <attachid>258537</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-08-07 16:02:44 -0700</bug_when>
    <thetext>Comment on attachment 258537
Patch

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

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:276
&gt; +        var shouldAddPlusSign = false;
&gt; +        var sortedRepositories = Dashboard.sortedRepositories;
&gt; +        for (var i = 0; i &lt; sortedRepositories.length; ++i) {
&gt; +            var repository = sortedRepositories[i];
&gt; +            var content = this._revisionContentWithPopoverForIteration(iteration,
&gt; +                previousDisplayedIteration, repository);
&gt; +            if (content) {
&gt; +                if (shouldAddPlusSign)
&gt; +                    fragment.appendChild(document.createTextNode(&quot; \uff0b &quot;));
&gt; +                fragment.appendChild(content);
&gt; +                shouldAddPlusSign = true;
&gt; +            }
&gt; +        }

This change does not look correct. We are neither passing an instance of the Trac object to _revisionContentWithPopoverForIteration() nor are we passing the name of the repository to _revisionContentWithPopoverForIteration().

Assuming we store a reference to the Trac object in the repository object such that you can access it via sortedRepositories[i].trac for some i in [0, Dashboard.sortedRepositories.length], then I would write this as:

var sortedRepositories = Dashboard.sortedRepositories;
var fragment = document.createDocumentFragment();
fragment.appendChild(this._revisionContentWithPopoverForIteration(iteration, previousDisplayedIteration, sortedRepositories[0].name, sortedRepositories[0].trac));
for (var i = 1; i &lt; sortedRepositories.length; ++i) {
    fragment.appendChild(document.createTextNode(&quot; \uff0b &quot;));
    fragment.appendChild(this._revisionContentWithPopoverForIteration(iteration, previousDisplayedIteration, sortedRepositories[i].name, sortedRepositories[0].trac));
}
console.assert(fragment.childNodes.length);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115912</commentid>
    <comment_count>3</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-08-07 16:08:54 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; [...]
&gt; Dashboard.sortedRepositories.length], then I would write this as:
&gt; 
&gt; var sortedRepositories = Dashboard.sortedRepositories;
&gt; var fragment = document.createDocumentFragment();
&gt; fragment.appendChild(this._revisionContentWithPopoverForIteration(iteration,
&gt; previousDisplayedIteration, sortedRepositories[0].name,
&gt; sortedRepositories[0].trac));
&gt; for (var i = 1; i &lt; sortedRepositories.length; ++i) {
&gt;     fragment.appendChild(document.createTextNode(&quot; \uff0b &quot;));
&gt;     fragment.appendChild(this._revisionContentWithPopoverForIteration(iteration, previousDisplayedIteration, sortedRepositories[i].name, sortedRepositories[0].trac));

err, the for-loop body should read:

var content = this._revisionContentWithPopoverForIteration(iteration, previousDisplayedIteration, sortedRepositories[i].name, sortedRepositories[0].trac);

if (!content)
    continue;

fragment.appendChild(document.createTextNode(&quot; \uff0b &quot;)); 
fragment.appendChild(content);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116758</commentid>
    <comment_count>4</comment_count>
      <attachid>258771</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-08-11 16:04:26 -0700</bug_when>
    <thetext>Created attachment 258771
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116765</commentid>
    <comment_count>5</comment_count>
      <attachid>258773</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-08-11 16:11:32 -0700</bug_when>
    <thetext>Created attachment 258773
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116767</commentid>
    <comment_count>6</comment_count>
      <attachid>258773</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-08-11 16:13:07 -0700</bug_when>
    <thetext>Comment on attachment 258773
Patch

Modified the body of the for loop per Daniel Bates&apos; suggestion.

Also added changes to _revisionContentWithPopoverForIteration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116787</commentid>
    <comment_count>7</comment_count>
      <attachid>258773</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-08-11 16:47:24 -0700</bug_when>
    <thetext>Comment on attachment 258773
Patch

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

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:214
&gt; +        if (!iteration.revision[repository.name])
&gt; +            return null;

We should assert this invariant instead of returning null as it represents a programmer mistake.

console.assert(iteration.revision[repository.name]);

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:274
&gt; +            var content = this._revisionContentWithPopoverForIteration(iteration,
&gt; +                previousDisplayedIteration, sortedRepositories[i]);

Please write this on one line.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:282
&gt;          return fragment;

We may want to consider asserting that the fragment has at least one child node:

console.assert(fragment.childNodes.length);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116956</commentid>
    <comment_count>8</comment_count>
      <attachid>258824</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-08-12 09:43:05 -0700</bug_when>
    <thetext>Created attachment 258824
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116957</commentid>
    <comment_count>9</comment_count>
      <attachid>258824</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-08-12 09:47:29 -0700</bug_when>
    <thetext>Comment on attachment 258824
Patch

Amended patch with suggestions from Daniel Bates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116981</commentid>
    <comment_count>10</comment_count>
      <attachid>258824</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-08-12 11:02:28 -0700</bug_when>
    <thetext>Comment on attachment 258824
Patch

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

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:213
&gt; +        console.assert(iteration.revision[repository.name]);

We should also assert that previousIteration.revision[repository.name] is non-null..

Also, I suggest that we cache the repository name (repository.name) in a local variable, say repositoryName, and reference this variable throughout this function instead of accessing repository.name repeatedly.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:272
&gt; +            if (!iteration.revision[sortedRepositories[i].name])

For your consideration, I suggest defining a local variable, say repository, equal to sortedRepositories[i] and then referencing this local variable on this line and line 274 so that we do not compute sortedRepositories[i] twice.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:276
&gt; +            if (!content)
&gt; +                continue;

This if-statement is unnecessary given that we ensure the invariant of _revisionContentWithPopoverForIteration() on line 272.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116987</commentid>
    <comment_count>11</comment_count>
      <attachid>258830</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-08-12 11:27:24 -0700</bug_when>
    <thetext>Created attachment 258830
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116989</commentid>
    <comment_count>12</comment_count>
      <attachid>258830</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-08-12 11:29:35 -0700</bug_when>
    <thetext>Comment on attachment 258830
Patch

At Daniel Bates&apos; recommendation, added additional assertion that, if the previousIteration is non-null, the given repository is in previousIteration.revision.

Also at Daniel&apos;s recommendation, defined a local variable for repositoryName and removed an unnecessary if statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117037</commentid>
    <comment_count>13</comment_count>
      <attachid>258830</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-08-12 13:24:26 -0700</bug_when>
    <thetext>Comment on attachment 258830
Patch

Thank you for iterating on the patch, Jason.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117065</commentid>
    <comment_count>14</comment_count>
      <attachid>258830</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-12 14:10:46 -0700</bug_when>
    <thetext>Comment on attachment 258830
Patch

Clearing flags on attachment: 258830

Committed r188359: &lt;http://trac.webkit.org/changeset/188359&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117066</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-12 14:10:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258537</attachid>
            <date>2015-08-07 15:38:42 -0700</date>
            <delta_ts>2015-08-11 16:04:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147796-20150807153832.patch</filename>
            <type>text/plain</type>
            <size>3096</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkMTFl
MTM1ZGM0MjY5YjA0MzQ1YjRkZDI5ZTNmM2U4ZmMwZWQwZGZhLi43OGYyZWMxOWM5ZmM3MjYxMTg0
OGNmYjVlZWZhNjhlMDIyNzQ1Y2QyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKKzIwMTUtMDgtMDcgIEphc29uIE1hcmNl
bGwgIDxqbWFyY2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3IgQnVpbGRib3RRdWV1
ZVZpZXcucmV2aXNpb25Db250ZW50Rm9ySXRlcmF0aW9uIHRvIHdvcmsgbW9yZSBnZW5lcmljYWxs
eSB3aXRoIHJlcG9zaXRvcmllcworICAgICAgICBvdGhlciB0aGFuICJvcGVuU291cmNlIiBhbmQg
ImludGVybmFsIi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0Nzc5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0
bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanM6CisgICAgICAgIChCdWls
ZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUucmV2aXNpb25Db250ZW50Rm9ySXRlcmF0aW9uKTogUmVm
YWN0b3JlZCB0byB3b3JrIG1vcmUgZ2VuZXJpY2FsbHkKKyAgICAgICAgd2l0aCByZXBvc2l0b3Jp
ZXMgb3RoZXIgdGhhbiAib3BlblNvdXJjZSIgYW5kICJpbnRlcm5hbCIuCisKIDIwMTUtMDgtMDcg
IEphc29uIE1hcmNlbGwgIDxqbWFyY2VsbEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVmYWN0b3Ig
QnVpbGRib3RRdWV1ZS5jb21wYXJlSXRlcmF0aW9ucyBhbmQgQnVpbGRib3RRdWV1ZS5jb21wYXJl
SXRlcmF0aW9uc0J5UmV2aXNpb25zIHRvIGJlIG1vcmUgZ2VuZXJpYwogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NjY3CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1s
L2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWVWaWV3LmpzIGIvVG9vbHMvQnVpbGRTbGF2
ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1Nj
cmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanMKaW5kZXggN2U0MDFmMTQ5Y2UzODI5MWI0MTY3Y2U4
NDEzYjdhZjZmMzFiMGRhZS4uYzc5NzUxZGRmNjYzZTFiNmM0MjQxMWFmOWVkMjkzNTkzOWVjNDRi
NyAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1j
b25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanMK
KysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVi
bGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanMKQEAgLTI2MCwx
OSArMjYwLDIwIEBAIEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZSA9IHsKIAogICAgIHJldmlz
aW9uQ29udGVudEZvckl0ZXJhdGlvbjogZnVuY3Rpb24oaXRlcmF0aW9uLCBwcmV2aW91c0Rpc3Bs
YXllZEl0ZXJhdGlvbikKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGl0ZXJhdGlvbi5y
ZXZpc2lvbltEYXNoYm9hcmQuUmVwb3NpdG9yeS5PcGVuU291cmNlLm5hbWVdKTsKLQotICAgICAg
ICB2YXIgb3BlblNvdXJjZUNvbnRlbnQgPSB0aGlzLl9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3Zl
ckZvckl0ZXJhdGlvbihpdGVyYXRpb24sIHByZXZpb3VzRGlzcGxheWVkSXRlcmF0aW9uLCBEYXNo
Ym9hcmQuUmVwb3NpdG9yeS5PcGVuU291cmNlLm5hbWUsIHdlYmtpdFRyYWMpOwotCi0gICAgICAg
IGlmICghaXRlcmF0aW9uLnJldmlzaW9uW0Rhc2hib2FyZC5SZXBvc2l0b3J5LkludGVybmFsLm5h
bWVdKQotICAgICAgICAgICAgcmV0dXJuIG9wZW5Tb3VyY2VDb250ZW50OwotCi0gICAgICAgIHZh
ciBpbnRlcm5hbENvbnRlbnQgPSB0aGlzLl9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0
ZXJhdGlvbihpdGVyYXRpb24sIHByZXZpb3VzRGlzcGxheWVkSXRlcmF0aW9uLCBEYXNoYm9hcmQu
UmVwb3NpdG9yeS5JbnRlcm5hbC5uYW1lLCBpbnRlcm5hbFRyYWMpOwotCiAgICAgICAgIHZhciBm
cmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgICAgZnJh
Z21lbnQuYXBwZW5kQ2hpbGQob3BlblNvdXJjZUNvbnRlbnQpOwotICAgICAgICBmcmFnbWVudC5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIFx1ZmYwYiAiKSk7Ci0gICAgICAg
IGZyYWdtZW50LmFwcGVuZENoaWxkKGludGVybmFsQ29udGVudCk7CisgICAgICAgIHZhciBzaG91
bGRBZGRQbHVzU2lnbiA9IGZhbHNlOworICAgICAgICB2YXIgc29ydGVkUmVwb3NpdG9yaWVzID0g
RGFzaGJvYXJkLnNvcnRlZFJlcG9zaXRvcmllczsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBzb3J0ZWRSZXBvc2l0b3JpZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciByZXBv
c2l0b3J5ID0gc29ydGVkUmVwb3NpdG9yaWVzW2ldOworICAgICAgICAgICAgdmFyIGNvbnRlbnQg
PSB0aGlzLl9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0ZXJhdGlvbihpdGVyYXRpb24s
CisgICAgICAgICAgICAgICAgcHJldmlvdXNEaXNwbGF5ZWRJdGVyYXRpb24sIHJlcG9zaXRvcnkp
OworICAgICAgICAgICAgaWYgKGNvbnRlbnQpIHsKKyAgICAgICAgICAgICAgICBpZiAoc2hvdWxk
QWRkUGx1c1NpZ24pCisgICAgICAgICAgICAgICAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCIgXHVmZjBiICIpKTsKKyAgICAgICAgICAgICAgICBmcmFn
bWVudC5hcHBlbmRDaGlsZChjb250ZW50KTsKKyAgICAgICAgICAgICAgICBzaG91bGRBZGRQbHVz
U2lnbiA9IHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGZy
YWdtZW50OwogICAgIH0sCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258771</attachid>
            <date>2015-08-11 16:04:26 -0700</date>
            <delta_ts>2015-08-11 16:11:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147796-20150811160410.patch</filename>
            <type>text/plain</type>
            <size>4829</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0MWRi
NTI3ZDg2YTlkNzAyNmUzNTkzZmRmYmQ2YWMzYjBmY2UxZmMxLi4zNjQwOWU5NjA1ZGY5Njc2OWMy
NDVjZjNhMWFjMWNhNTU4ZTcyODFlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjEgQEAKKzIwMTUtMDgtMTEgIEphc29uIE1hcmNl
bGwgIDxqbWFyY2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3IgQnVpbGRib3RRdWV1
ZVZpZXcucmV2aXNpb25Db250ZW50Rm9ySXRlcmF0aW9uIHRvIHdvcmsgbW9yZSBnZW5lcmljYWxs
eSB3aXRoIHJlcG9zaXRvcmllcworICAgICAgICBvdGhlciB0aGFuICJvcGVuU291cmNlIiBhbmQg
ImludGVybmFsIi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0Nzc5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0
bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanM6CisgICAgICAgIChCdWls
ZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUuX3JldmlzaW9uQ29udGVudFdpdGhQb3BvdmVyRm9ySXRl
cmF0aW9uKTogVGhlICJyZXBvc2l0b3J5IiBwYXJhbWV0ZXIKKyAgICAgICAgaXMgbm93IGEgcmVw
b3NpdG9yeSBvYmplY3QgaW5zdGVhZCBvZiB0aGUgcmVwb3NpdG9yeSBuYW1lLCB0aHVzIHdlIGRv
bid0IGhhdmUgdG8gcGFzcyB0aGUgInRyYWMiCisgICAgICAgIG9iamVjdCBpbiBzZXBhcmF0ZWx5
LiBBbHNvIGFkZGVkIGEgY2hlY2sgdG8gc2VlIGlmIHRoZSBnaXZlbiByZXBvc2l0b3J5IGlzIGlu
IGl0ZXJhdGlvbi5yZXZpc2lvbjsKKyAgICAgICAgZWFybHkgcmV0dXJuIHdpdGggIm51bGwiIGlm
IG5vdC4KKyAgICAgICAgKEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZS5yZXZpc2lvbkNvbnRl
bnRGb3JJdGVyYXRpb24pOiBSZWZhY3RvcmVkIHRvIHdvcmsgbW9yZSBnZW5lcmljYWxseQorICAg
ICAgICB3aXRoIHJlcG9zaXRvcmllcyBvdGhlciB0aGFuICJvcGVuU291cmNlIiBhbmQgImludGVy
bmFsIi4KKwogMjAxNS0wOC0xMSAgSmFzb24gTWFyY2VsbCAgPGptYXJjZWxsQGFwcGxlLmNvbT4K
IAogICAgICAgICBTdWJzdGl0dXRlZCBEYXNoYm9hcmQuUmVwb3NpdG9yeS5PcGVuU291cmNlLnRy
YWMgZm9yIHdlYmtpdFRyYWMgYW5kIERhc2hib2FyZC5SZXBvc2l0b3J5LkludGVybmFsLnRyYWMK
ICAgICAgICAgZm9yIGludGVybmFsVHJhYy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NzgwNQpkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1
cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1Njcmlw
dHMvQnVpbGRib3RRdWV1ZVZpZXcuanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1
ZXVlVmlldy5qcwppbmRleCA1NWY0OTQ0N2RmZmYyZTA5YmNlNTUxMGVjM2Y0YzBiZjIwMmU1N2Nh
Li45Mjg5YmE1ZTgxNTdjZWJjMzhiNmRjYTg4NDQ4MWI2NjQ2MTI5OTExIDEwMDY0NAotLS0gYS9U
b29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRt
bC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qcworKysgYi9Ub29scy9CdWls
ZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9h
cmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qcwpAQCAtMjA4LDE4ICsyMDgsMjAgQEAgQnVp
bGRib3RRdWV1ZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
LAogCi0gICAgX3JldmlzaW9uQ29udGVudFdpdGhQb3BvdmVyRm9ySXRlcmF0aW9uOiBmdW5jdGlv
bihpdGVyYXRpb24sIHByZXZpb3VzSXRlcmF0aW9uLCByZXBvc2l0b3J5LCB0cmFjKQorICAgIF9y
ZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0ZXJhdGlvbjogZnVuY3Rpb24oaXRlcmF0aW9u
LCBwcmV2aW91c0l0ZXJhdGlvbiwgcmVwb3NpdG9yeSkKICAgICB7CisgICAgICAgIGlmICghaXRl
cmF0aW9uLnJldmlzaW9uW3JlcG9zaXRvcnkubmFtZV0pCisgICAgICAgICAgICByZXR1cm4gbnVs
bDsKICAgICAgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7
CiAgICAgICAgIGNvbnRlbnQudGV4dENvbnRlbnQgPSAiciIgKyBpdGVyYXRpb24ucmV2aXNpb25b
cmVwb3NpdG9yeV07CiAgICAgICAgIGNvbnRlbnQuY2xhc3NMaXN0LmFkZCgicmV2aXNpb24tbnVt
YmVyIik7CiAKICAgICAgICAgaWYgKHByZXZpb3VzSXRlcmF0aW9uKSB7CiAgICAgICAgICAgICB2
YXIgY29udGV4dCA9IHsKLSAgICAgICAgICAgICAgICB0cmFjOiB0cmFjLAotICAgICAgICAgICAg
ICAgIGJyYW5jaDogaXRlcmF0aW9uLnF1ZXVlLmJyYW5jaFtyZXBvc2l0b3J5XSwKLSAgICAgICAg
ICAgICAgICBmaXJzdFJldmlzaW9uOiBwcmV2aW91c0l0ZXJhdGlvbi5yZXZpc2lvbltyZXBvc2l0
b3J5XSArIDEsCi0gICAgICAgICAgICAgICAgbGFzdFJldmlzaW9uOiBpdGVyYXRpb24ucmV2aXNp
b25bcmVwb3NpdG9yeV0KKyAgICAgICAgICAgICAgICB0cmFjOiByZXBvc2l0b3J5LnRyYWMsCisg
ICAgICAgICAgICAgICAgYnJhbmNoOiBpdGVyYXRpb24ucXVldWUuYnJhbmNoW3JlcG9zaXRvcnku
bmFtZV0sCisgICAgICAgICAgICAgICAgZmlyc3RSZXZpc2lvbjogcHJldmlvdXNJdGVyYXRpb24u
cmV2aXNpb25bcmVwb3NpdG9yeS5uYW1lXSArIDEsCisgICAgICAgICAgICAgICAgbGFzdFJldmlz
aW9uOiBpdGVyYXRpb24ucmV2aXNpb25bcmVwb3NpdG9yeS5uYW1lXQogICAgICAgICAgICAgfTsK
ICAgICAgICAgICAgIGlmIChjb250ZXh0LmZpcnN0UmV2aXNpb24gPD0gY29udGV4dC5sYXN0UmV2
aXNpb24pCiAgICAgICAgICAgICAgICAgbmV3IFBvcG92ZXJUcmFja2VyKGNvbnRlbnQsIHRoaXMu
X3ByZXNlbnRQb3BvdmVyRm9yUmV2aXNpb25SYW5nZS5iaW5kKHRoaXMpLCBjb250ZXh0KTsKQEAg
LTI2NCwyMSArMjY2LDIwIEBAIEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZSA9IHsKIAogICAg
IHJldmlzaW9uQ29udGVudEZvckl0ZXJhdGlvbjogZnVuY3Rpb24oaXRlcmF0aW9uLCBwcmV2aW91
c0Rpc3BsYXllZEl0ZXJhdGlvbikKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGl0ZXJh
dGlvbi5yZXZpc2lvbltEYXNoYm9hcmQuUmVwb3NpdG9yeS5PcGVuU291cmNlLm5hbWVdKTsKLQot
ICAgICAgICB2YXIgb3BlblNvdXJjZUNvbnRlbnQgPSB0aGlzLl9yZXZpc2lvbkNvbnRlbnRXaXRo
UG9wb3ZlckZvckl0ZXJhdGlvbihpdGVyYXRpb24sIHByZXZpb3VzRGlzcGxheWVkSXRlcmF0aW9u
LAotICAgICAgICAgICAgRGFzaGJvYXJkLlJlcG9zaXRvcnkuT3BlblNvdXJjZS5uYW1lLCBEYXNo
Ym9hcmQuUmVwb3NpdG9yeS5PcGVuU291cmNlLnRyYWMpOwotCi0gICAgICAgIGlmICghaXRlcmF0
aW9uLnJldmlzaW9uW0Rhc2hib2FyZC5SZXBvc2l0b3J5LkludGVybmFsLm5hbWVdKQotICAgICAg
ICAgICAgcmV0dXJuIG9wZW5Tb3VyY2VDb250ZW50OwotCi0gICAgICAgIHZhciBpbnRlcm5hbENv
bnRlbnQgPSB0aGlzLl9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0ZXJhdGlvbihpdGVy
YXRpb24sIHByZXZpb3VzRGlzcGxheWVkSXRlcmF0aW9uLAotICAgICAgICAgICAgRGFzaGJvYXJk
LlJlcG9zaXRvcnkuSW50ZXJuYWwubmFtZSwgRGFzaGJvYXJkLlJlcG9zaXRvcnkuSW50ZXJuYWwu
dHJhYyk7Ci0KICAgICAgICAgdmFyIGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRG
cmFnbWVudCgpOwotICAgICAgICBmcmFnbWVudC5hcHBlbmRDaGlsZChvcGVuU291cmNlQ29udGVu
dCk7Ci0gICAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCIgXHVmZjBiICIpKTsKLSAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoaW50ZXJuYWxDb250
ZW50KTsKKyAgICAgICAgdmFyIHNob3VsZEFkZFBsdXNTaWduID0gZmFsc2U7CisgICAgICAgIHZh
ciBzb3J0ZWRSZXBvc2l0b3JpZXMgPSBEYXNoYm9hcmQuc29ydGVkUmVwb3NpdG9yaWVzOworICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRlZFJlcG9zaXRvcmllcy5sZW5ndGg7ICsraSkg
eworICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnkgPSBzb3J0ZWRSZXBvc2l0b3JpZXNbaV07Cisg
ICAgICAgICAgICB2YXIgY29udGVudCA9IHRoaXMuX3JldmlzaW9uQ29udGVudFdpdGhQb3BvdmVy
Rm9ySXRlcmF0aW9uKGl0ZXJhdGlvbiwKKyAgICAgICAgICAgICAgICBwcmV2aW91c0Rpc3BsYXll
ZEl0ZXJhdGlvbiwgcmVwb3NpdG9yeSk7CisgICAgICAgICAgICBpZiAoY29udGVudCkgeworICAg
ICAgICAgICAgICAgIGlmIChzaG91bGRBZGRQbHVzU2lnbikKKyAgICAgICAgICAgICAgICAgICAg
ZnJhZ21lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiBcdWZmMGIgIikp
OworICAgICAgICAgICAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKGNvbnRlbnQpOworICAgICAg
ICAgICAgICAgIHNob3VsZEFkZFBsdXNTaWduID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQogICAgICAgICByZXR1cm4gZnJhZ21lbnQ7CiAgICAgfSwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258773</attachid>
            <date>2015-08-11 16:11:32 -0700</date>
            <delta_ts>2015-08-12 09:43:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147796-20150811161116.patch</filename>
            <type>text/plain</type>
            <size>4782</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0MWRi
NTI3ZDg2YTlkNzAyNmUzNTkzZmRmYmQ2YWMzYjBmY2UxZmMxLi4zNjQwOWU5NjA1ZGY5Njc2OWMy
NDVjZjNhMWFjMWNhNTU4ZTcyODFlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjEgQEAKKzIwMTUtMDgtMTEgIEphc29uIE1hcmNl
bGwgIDxqbWFyY2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3IgQnVpbGRib3RRdWV1
ZVZpZXcucmV2aXNpb25Db250ZW50Rm9ySXRlcmF0aW9uIHRvIHdvcmsgbW9yZSBnZW5lcmljYWxs
eSB3aXRoIHJlcG9zaXRvcmllcworICAgICAgICBvdGhlciB0aGFuICJvcGVuU291cmNlIiBhbmQg
ImludGVybmFsIi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0Nzc5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0
bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanM6CisgICAgICAgIChCdWls
ZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUuX3JldmlzaW9uQ29udGVudFdpdGhQb3BvdmVyRm9ySXRl
cmF0aW9uKTogVGhlICJyZXBvc2l0b3J5IiBwYXJhbWV0ZXIKKyAgICAgICAgaXMgbm93IGEgcmVw
b3NpdG9yeSBvYmplY3QgaW5zdGVhZCBvZiB0aGUgcmVwb3NpdG9yeSBuYW1lLCB0aHVzIHdlIGRv
bid0IGhhdmUgdG8gcGFzcyB0aGUgInRyYWMiCisgICAgICAgIG9iamVjdCBpbiBzZXBhcmF0ZWx5
LiBBbHNvIGFkZGVkIGEgY2hlY2sgdG8gc2VlIGlmIHRoZSBnaXZlbiByZXBvc2l0b3J5IGlzIGlu
IGl0ZXJhdGlvbi5yZXZpc2lvbjsKKyAgICAgICAgZWFybHkgcmV0dXJuIHdpdGggIm51bGwiIGlm
IG5vdC4KKyAgICAgICAgKEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZS5yZXZpc2lvbkNvbnRl
bnRGb3JJdGVyYXRpb24pOiBSZWZhY3RvcmVkIHRvIHdvcmsgbW9yZSBnZW5lcmljYWxseQorICAg
ICAgICB3aXRoIHJlcG9zaXRvcmllcyBvdGhlciB0aGFuICJvcGVuU291cmNlIiBhbmQgImludGVy
bmFsIi4KKwogMjAxNS0wOC0xMSAgSmFzb24gTWFyY2VsbCAgPGptYXJjZWxsQGFwcGxlLmNvbT4K
IAogICAgICAgICBTdWJzdGl0dXRlZCBEYXNoYm9hcmQuUmVwb3NpdG9yeS5PcGVuU291cmNlLnRy
YWMgZm9yIHdlYmtpdFRyYWMgYW5kIERhc2hib2FyZC5SZXBvc2l0b3J5LkludGVybmFsLnRyYWMK
ICAgICAgICAgZm9yIGludGVybmFsVHJhYy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NzgwNQpkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1
cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1Njcmlw
dHMvQnVpbGRib3RRdWV1ZVZpZXcuanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1
ZXVlVmlldy5qcwppbmRleCA1NWY0OTQ0N2RmZmYyZTA5YmNlNTUxMGVjM2Y0YzBiZjIwMmU1N2Nh
Li5mOWYwZGNmMmFlZTE0ZTc5YTQyNzY2NGRkZmMxYmExZmVjMDVjY2RjIDEwMDY0NAotLS0gYS9U
b29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRt
bC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qcworKysgYi9Ub29scy9CdWls
ZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9h
cmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qcwpAQCAtMjA4LDE4ICsyMDgsMjAgQEAgQnVp
bGRib3RRdWV1ZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
LAogCi0gICAgX3JldmlzaW9uQ29udGVudFdpdGhQb3BvdmVyRm9ySXRlcmF0aW9uOiBmdW5jdGlv
bihpdGVyYXRpb24sIHByZXZpb3VzSXRlcmF0aW9uLCByZXBvc2l0b3J5LCB0cmFjKQorICAgIF9y
ZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0ZXJhdGlvbjogZnVuY3Rpb24oaXRlcmF0aW9u
LCBwcmV2aW91c0l0ZXJhdGlvbiwgcmVwb3NpdG9yeSkKICAgICB7CisgICAgICAgIGlmICghaXRl
cmF0aW9uLnJldmlzaW9uW3JlcG9zaXRvcnkubmFtZV0pCisgICAgICAgICAgICByZXR1cm4gbnVs
bDsKICAgICAgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7
CiAgICAgICAgIGNvbnRlbnQudGV4dENvbnRlbnQgPSAiciIgKyBpdGVyYXRpb24ucmV2aXNpb25b
cmVwb3NpdG9yeV07CiAgICAgICAgIGNvbnRlbnQuY2xhc3NMaXN0LmFkZCgicmV2aXNpb24tbnVt
YmVyIik7CiAKICAgICAgICAgaWYgKHByZXZpb3VzSXRlcmF0aW9uKSB7CiAgICAgICAgICAgICB2
YXIgY29udGV4dCA9IHsKLSAgICAgICAgICAgICAgICB0cmFjOiB0cmFjLAotICAgICAgICAgICAg
ICAgIGJyYW5jaDogaXRlcmF0aW9uLnF1ZXVlLmJyYW5jaFtyZXBvc2l0b3J5XSwKLSAgICAgICAg
ICAgICAgICBmaXJzdFJldmlzaW9uOiBwcmV2aW91c0l0ZXJhdGlvbi5yZXZpc2lvbltyZXBvc2l0
b3J5XSArIDEsCi0gICAgICAgICAgICAgICAgbGFzdFJldmlzaW9uOiBpdGVyYXRpb24ucmV2aXNp
b25bcmVwb3NpdG9yeV0KKyAgICAgICAgICAgICAgICB0cmFjOiByZXBvc2l0b3J5LnRyYWMsCisg
ICAgICAgICAgICAgICAgYnJhbmNoOiBpdGVyYXRpb24ucXVldWUuYnJhbmNoW3JlcG9zaXRvcnku
bmFtZV0sCisgICAgICAgICAgICAgICAgZmlyc3RSZXZpc2lvbjogcHJldmlvdXNJdGVyYXRpb24u
cmV2aXNpb25bcmVwb3NpdG9yeS5uYW1lXSArIDEsCisgICAgICAgICAgICAgICAgbGFzdFJldmlz
aW9uOiBpdGVyYXRpb24ucmV2aXNpb25bcmVwb3NpdG9yeS5uYW1lXQogICAgICAgICAgICAgfTsK
ICAgICAgICAgICAgIGlmIChjb250ZXh0LmZpcnN0UmV2aXNpb24gPD0gY29udGV4dC5sYXN0UmV2
aXNpb24pCiAgICAgICAgICAgICAgICAgbmV3IFBvcG92ZXJUcmFja2VyKGNvbnRlbnQsIHRoaXMu
X3ByZXNlbnRQb3BvdmVyRm9yUmV2aXNpb25SYW5nZS5iaW5kKHRoaXMpLCBjb250ZXh0KTsKQEAg
LTI2NCwyMSArMjY2LDE5IEBAIEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZSA9IHsKIAogICAg
IHJldmlzaW9uQ29udGVudEZvckl0ZXJhdGlvbjogZnVuY3Rpb24oaXRlcmF0aW9uLCBwcmV2aW91
c0Rpc3BsYXllZEl0ZXJhdGlvbikKICAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGl0ZXJh
dGlvbi5yZXZpc2lvbltEYXNoYm9hcmQuUmVwb3NpdG9yeS5PcGVuU291cmNlLm5hbWVdKTsKLQot
ICAgICAgICB2YXIgb3BlblNvdXJjZUNvbnRlbnQgPSB0aGlzLl9yZXZpc2lvbkNvbnRlbnRXaXRo
UG9wb3ZlckZvckl0ZXJhdGlvbihpdGVyYXRpb24sIHByZXZpb3VzRGlzcGxheWVkSXRlcmF0aW9u
LAotICAgICAgICAgICAgRGFzaGJvYXJkLlJlcG9zaXRvcnkuT3BlblNvdXJjZS5uYW1lLCBEYXNo
Ym9hcmQuUmVwb3NpdG9yeS5PcGVuU291cmNlLnRyYWMpOwotCi0gICAgICAgIGlmICghaXRlcmF0
aW9uLnJldmlzaW9uW0Rhc2hib2FyZC5SZXBvc2l0b3J5LkludGVybmFsLm5hbWVdKQotICAgICAg
ICAgICAgcmV0dXJuIG9wZW5Tb3VyY2VDb250ZW50OwotCi0gICAgICAgIHZhciBpbnRlcm5hbENv
bnRlbnQgPSB0aGlzLl9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0ZXJhdGlvbihpdGVy
YXRpb24sIHByZXZpb3VzRGlzcGxheWVkSXRlcmF0aW9uLAotICAgICAgICAgICAgRGFzaGJvYXJk
LlJlcG9zaXRvcnkuSW50ZXJuYWwubmFtZSwgRGFzaGJvYXJkLlJlcG9zaXRvcnkuSW50ZXJuYWwu
dHJhYyk7Ci0KICAgICAgICAgdmFyIGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRG
cmFnbWVudCgpOwotICAgICAgICBmcmFnbWVudC5hcHBlbmRDaGlsZChvcGVuU291cmNlQ29udGVu
dCk7Ci0gICAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCIgXHVmZjBiICIpKTsKLSAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoaW50ZXJuYWxDb250
ZW50KTsKKyAgICAgICAgdmFyIHNob3VsZEFkZFBsdXNTaWduID0gZmFsc2U7CisgICAgICAgIHZh
ciBzb3J0ZWRSZXBvc2l0b3JpZXMgPSBEYXNoYm9hcmQuc29ydGVkUmVwb3NpdG9yaWVzOworICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRlZFJlcG9zaXRvcmllcy5sZW5ndGg7ICsraSkg
eworICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSB0aGlzLl9yZXZpc2lvbkNvbnRlbnRXaXRoUG9w
b3ZlckZvckl0ZXJhdGlvbihpdGVyYXRpb24sCisgICAgICAgICAgICAgICAgcHJldmlvdXNEaXNw
bGF5ZWRJdGVyYXRpb24sIHNvcnRlZFJlcG9zaXRvcmllc1tpXSk7CisgICAgICAgICAgICBpZiAo
IWNvbnRlbnQpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBpZiAoc2hv
dWxkQWRkUGx1c1NpZ24pCisgICAgICAgICAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoIiBcdWZmMGIgIikpOworICAgICAgICAgICAgZnJhZ21lbnQu
YXBwZW5kQ2hpbGQoY29udGVudCk7CisgICAgICAgICAgICBzaG91bGRBZGRQbHVzU2lnbiA9IHRy
dWU7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGZyYWdtZW50OwogICAgIH0sCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258824</attachid>
            <date>2015-08-12 09:43:05 -0700</date>
            <delta_ts>2015-08-12 11:27:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147796-20150812094248.patch</filename>
            <type>text/plain</type>
            <size>4880</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyMzg0
Mzc2MjZlZGNiMTc5ZmRhYzEwNWQ2MWFhZTkyZWU5YWQ4ZTg4Li4xZTM4M2Q1ZDk1NWUyNWVmODkw
NWFmNDI5Y2IzZTUzYWY2ZjBiOTQ2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTUtMDgtMTIgIEphc29uIE1hcmNl
bGwgIDxqbWFyY2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3IgQnVpbGRib3RRdWV1
ZVZpZXcucmV2aXNpb25Db250ZW50Rm9ySXRlcmF0aW9uIHRvIHdvcmsgbW9yZSBnZW5lcmljYWxs
eSB3aXRoIHJlcG9zaXRvcmllcworICAgICAgICBvdGhlciB0aGFuICJvcGVuU291cmNlIiBhbmQg
ImludGVybmFsIi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0Nzc5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0
bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanM6CisgICAgICAgIChCdWls
ZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUuX3JldmlzaW9uQ29udGVudFdpdGhQb3BvdmVyRm9ySXRl
cmF0aW9uKTogVGhlICJyZXBvc2l0b3J5IiBwYXJhbWV0ZXIKKyAgICAgICAgaXMgbm93IGEgcmVw
b3NpdG9yeSBvYmplY3QgaW5zdGVhZCBvZiB0aGUgcmVwb3NpdG9yeSBuYW1lLCB0aHVzIHdlIGRv
bid0IGhhdmUgdG8gcGFzcyB0aGUgInRyYWMiCisgICAgICAgIG9iamVjdCBpbiBzZXBhcmF0ZWx5
LiBBbHNvIGFkZGVkIGFuIGFzc2VydGlvbiB0byBzZWUgaWYgdGhlIGdpdmVuIHJlcG9zaXRvcnkg
aXMgaW4gaXRlcmF0aW9uLnJldmlzaW9uLgorICAgICAgICAoQnVpbGRib3RRdWV1ZVZpZXcucHJv
dG90eXBlLnJldmlzaW9uQ29udGVudEZvckl0ZXJhdGlvbik6IFJlZmFjdG9yZWQgdG8gd29yayBt
b3JlIGdlbmVyaWNhbGx5CisgICAgICAgIHdpdGggcmVwb3NpdG9yaWVzIG90aGVyIHRoYW4gIm9w
ZW5Tb3VyY2UiIGFuZCAiaW50ZXJuYWwiLiBBbHNvIGFkZGVkIGFuIGFzc2VydGlvbiB0aGF0IHRo
ZSByZXR1cm5lZAorICAgICAgICBmcmFnbWVudCBoYXMgYXQgbGVhc3Qgb25lIGNoaWxkIG5vZGUu
CisKIDIwMTUtMDgtMTEgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAg
ICAgICAgTWFrZSBBU2FuIGJ1aWxkIG5vdCBkZXBlbmQgb24gYXNhbi54Y2NvbmZpZwpkaWZmIC0t
Z2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVi
bGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanMgYi9Ub29scy9C
dWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNo
Ym9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qcwppbmRleCA1NWY0OTQ0N2RmZmYyZTA5
YmNlNTUxMGVjM2Y0YzBiZjIwMmU1N2NhLi5hNjIyNDBiMWQ0MmRhYWUwMWExNjMyOGIxODFhOTkz
YTQ3NTU3ZWJjIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJr
aXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVl
Vmlldy5qcworKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNv
bmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qcwpA
QCAtMjA4LDE4ICsyMDgsMTkgQEAgQnVpbGRib3RRdWV1ZVZpZXcucHJvdG90eXBlID0gewogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LAogCi0gICAgX3JldmlzaW9uQ29udGVudFdpdGhQb3Bv
dmVyRm9ySXRlcmF0aW9uOiBmdW5jdGlvbihpdGVyYXRpb24sIHByZXZpb3VzSXRlcmF0aW9uLCBy
ZXBvc2l0b3J5LCB0cmFjKQorICAgIF9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0ZXJh
dGlvbjogZnVuY3Rpb24oaXRlcmF0aW9uLCBwcmV2aW91c0l0ZXJhdGlvbiwgcmVwb3NpdG9yeSkK
ICAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGl0ZXJhdGlvbi5yZXZpc2lvbltyZXBvc2l0
b3J5Lm5hbWVdKTsKICAgICAgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJzcGFuIik7Ci0gICAgICAgIGNvbnRlbnQudGV4dENvbnRlbnQgPSAiciIgKyBpdGVyYXRpb24u
cmV2aXNpb25bcmVwb3NpdG9yeV07CisgICAgICAgIGNvbnRlbnQudGV4dENvbnRlbnQgPSAiciIg
KyBpdGVyYXRpb24ucmV2aXNpb25bcmVwb3NpdG9yeS5uYW1lXTsKICAgICAgICAgY29udGVudC5j
bGFzc0xpc3QuYWRkKCJyZXZpc2lvbi1udW1iZXIiKTsKIAogICAgICAgICBpZiAocHJldmlvdXNJ
dGVyYXRpb24pIHsKICAgICAgICAgICAgIHZhciBjb250ZXh0ID0gewotICAgICAgICAgICAgICAg
IHRyYWM6IHRyYWMsCi0gICAgICAgICAgICAgICAgYnJhbmNoOiBpdGVyYXRpb24ucXVldWUuYnJh
bmNoW3JlcG9zaXRvcnldLAotICAgICAgICAgICAgICAgIGZpcnN0UmV2aXNpb246IHByZXZpb3Vz
SXRlcmF0aW9uLnJldmlzaW9uW3JlcG9zaXRvcnldICsgMSwKLSAgICAgICAgICAgICAgICBsYXN0
UmV2aXNpb246IGl0ZXJhdGlvbi5yZXZpc2lvbltyZXBvc2l0b3J5XQorICAgICAgICAgICAgICAg
IHRyYWM6IHJlcG9zaXRvcnkudHJhYywKKyAgICAgICAgICAgICAgICBicmFuY2g6IGl0ZXJhdGlv
bi5xdWV1ZS5icmFuY2hbcmVwb3NpdG9yeS5uYW1lXSwKKyAgICAgICAgICAgICAgICBmaXJzdFJl
dmlzaW9uOiBwcmV2aW91c0l0ZXJhdGlvbi5yZXZpc2lvbltyZXBvc2l0b3J5Lm5hbWVdICsgMSwK
KyAgICAgICAgICAgICAgICBsYXN0UmV2aXNpb246IGl0ZXJhdGlvbi5yZXZpc2lvbltyZXBvc2l0
b3J5Lm5hbWVdCiAgICAgICAgICAgICB9OwogICAgICAgICAgICAgaWYgKGNvbnRleHQuZmlyc3RS
ZXZpc2lvbiA8PSBjb250ZXh0Lmxhc3RSZXZpc2lvbikKICAgICAgICAgICAgICAgICBuZXcgUG9w
b3ZlclRyYWNrZXIoY29udGVudCwgdGhpcy5fcHJlc2VudFBvcG92ZXJGb3JSZXZpc2lvblJhbmdl
LmJpbmQodGhpcyksIGNvbnRleHQpOwpAQCAtMjY0LDIxICsyNjUsMjEgQEAgQnVpbGRib3RRdWV1
ZVZpZXcucHJvdG90eXBlID0gewogCiAgICAgcmV2aXNpb25Db250ZW50Rm9ySXRlcmF0aW9uOiBm
dW5jdGlvbihpdGVyYXRpb24sIHByZXZpb3VzRGlzcGxheWVkSXRlcmF0aW9uKQogICAgIHsKLSAg
ICAgICAgY29uc29sZS5hc3NlcnQoaXRlcmF0aW9uLnJldmlzaW9uW0Rhc2hib2FyZC5SZXBvc2l0
b3J5Lk9wZW5Tb3VyY2UubmFtZV0pOwotCi0gICAgICAgIHZhciBvcGVuU291cmNlQ29udGVudCA9
IHRoaXMuX3JldmlzaW9uQ29udGVudFdpdGhQb3BvdmVyRm9ySXRlcmF0aW9uKGl0ZXJhdGlvbiwg
cHJldmlvdXNEaXNwbGF5ZWRJdGVyYXRpb24sCi0gICAgICAgICAgICBEYXNoYm9hcmQuUmVwb3Np
dG9yeS5PcGVuU291cmNlLm5hbWUsIERhc2hib2FyZC5SZXBvc2l0b3J5Lk9wZW5Tb3VyY2UudHJh
Yyk7Ci0KLSAgICAgICAgaWYgKCFpdGVyYXRpb24ucmV2aXNpb25bRGFzaGJvYXJkLlJlcG9zaXRv
cnkuSW50ZXJuYWwubmFtZV0pCi0gICAgICAgICAgICByZXR1cm4gb3BlblNvdXJjZUNvbnRlbnQ7
Ci0KLSAgICAgICAgdmFyIGludGVybmFsQ29udGVudCA9IHRoaXMuX3JldmlzaW9uQ29udGVudFdp
dGhQb3BvdmVyRm9ySXRlcmF0aW9uKGl0ZXJhdGlvbiwgcHJldmlvdXNEaXNwbGF5ZWRJdGVyYXRp
b24sCi0gICAgICAgICAgICBEYXNoYm9hcmQuUmVwb3NpdG9yeS5JbnRlcm5hbC5uYW1lLCBEYXNo
Ym9hcmQuUmVwb3NpdG9yeS5JbnRlcm5hbC50cmFjKTsKLQogICAgICAgICB2YXIgZnJhZ21lbnQg
PSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Ci0gICAgICAgIGZyYWdtZW50LmFw
cGVuZENoaWxkKG9wZW5Tb3VyY2VDb250ZW50KTsKLSAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiBcdWZmMGIgIikpOwotICAgICAgICBmcmFnbWVu
dC5hcHBlbmRDaGlsZChpbnRlcm5hbENvbnRlbnQpOworICAgICAgICB2YXIgc2hvdWxkQWRkUGx1
c1NpZ24gPSBmYWxzZTsKKyAgICAgICAgdmFyIHNvcnRlZFJlcG9zaXRvcmllcyA9IERhc2hib2Fy
ZC5zb3J0ZWRSZXBvc2l0b3JpZXM7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc29ydGVk
UmVwb3NpdG9yaWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoIWl0ZXJhdGlvbi5y
ZXZpc2lvbltzb3J0ZWRSZXBvc2l0b3JpZXNbaV0ubmFtZV0pCisgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICB2YXIgY29udGVudCA9IHRoaXMuX3JldmlzaW9uQ29udGVudFdp
dGhQb3BvdmVyRm9ySXRlcmF0aW9uKGl0ZXJhdGlvbiwgcHJldmlvdXNEaXNwbGF5ZWRJdGVyYXRp
b24sIHNvcnRlZFJlcG9zaXRvcmllc1tpXSk7CisgICAgICAgICAgICBpZiAoIWNvbnRlbnQpCisg
ICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBpZiAoc2hvdWxkQWRkUGx1c1Np
Z24pCisgICAgICAgICAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoIiBcdWZmMGIgIikpOworICAgICAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQo
Y29udGVudCk7CisgICAgICAgICAgICBzaG91bGRBZGRQbHVzU2lnbiA9IHRydWU7CisgICAgICAg
IH0KKyAgICAgICAgY29uc29sZS5hc3NlcnQoZnJhZ21lbnQuY2hpbGROb2Rlcy5sZW5ndGgpOwog
ICAgICAgICByZXR1cm4gZnJhZ21lbnQ7CiAgICAgfSwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258830</attachid>
            <date>2015-08-12 11:27:24 -0700</date>
            <delta_ts>2015-08-12 14:10:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147796-20150812112707.patch</filename>
            <type>text/plain</type>
            <size>5138</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3M2Q2
NDBiNDcwZTVlOWY0MjllYjE1NmQzMTk1NjE3MWQ0YmRlMTdlLi5jNjU0NjdjOTNlNGZkNTFiNjg5
YWFlZjNjNTkxYzU1MjFkMDZjMDM3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTUtMDgtMTIgIEphc29uIE1hcmNl
bGwgIDxqbWFyY2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVmYWN0b3IgQnVpbGRib3RRdWV1
ZVZpZXcucmV2aXNpb25Db250ZW50Rm9ySXRlcmF0aW9uIHRvIHdvcmsgbW9yZSBnZW5lcmljYWxs
eSB3aXRoIHJlcG9zaXRvcmllcworICAgICAgICBvdGhlciB0aGFuICJvcGVuU291cmNlIiBhbmQg
ImludGVybmFsIi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0Nzc5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0
bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanM6CisgICAgICAgIChCdWls
ZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUuX3JldmlzaW9uQ29udGVudFdpdGhQb3BvdmVyRm9ySXRl
cmF0aW9uKTogVGhlICJyZXBvc2l0b3J5IiBwYXJhbWV0ZXIKKyAgICAgICAgaXMgbm93IGEgcmVw
b3NpdG9yeSBvYmplY3QgaW5zdGVhZCBvZiB0aGUgcmVwb3NpdG9yeSBuYW1lLCB0aHVzIHdlIGRv
bid0IGhhdmUgdG8gcGFzcyB0aGUgInRyYWMiCisgICAgICAgIG9iamVjdCBpbiBzZXBhcmF0ZWx5
LiBBbHNvIGFkZGVkIGFuIGFzc2VydGlvbiB0byBzZWUgaWYgdGhlIGdpdmVuIHJlcG9zaXRvcnkg
aXMgaW4gaXRlcmF0aW9uLnJldmlzaW9uLAorICAgICAgICBhbmQgYW5vdGhlciBhc3NlcnRpb24g
dGhhdCwgaWYgdGhlIHByZXZpb3VzSXRlcmF0aW9uIGlzIG5vbi1udWxsLCB0aGUgZ2l2ZW4gcmVw
b3NpdG9yeSBpcyBpbgorICAgICAgICBwcmV2aW91c0l0ZXJhdGlvbi5yZXZpc2lvbi4KKyAgICAg
ICAgKEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZS5yZXZpc2lvbkNvbnRlbnRGb3JJdGVyYXRp
b24pOiBSZWZhY3RvcmVkIHRvIHdvcmsgbW9yZSBnZW5lcmljYWxseQorICAgICAgICB3aXRoIHJl
cG9zaXRvcmllcyBvdGhlciB0aGFuICJvcGVuU291cmNlIiBhbmQgImludGVybmFsIi4gQWxzbyBh
ZGRlZCBhbiBhc3NlcnRpb24gdGhhdCB0aGUgcmV0dXJuZWQKKyAgICAgICAgZnJhZ21lbnQgaGFz
IGF0IGxlYXN0IG9uZSBjaGlsZCBub2RlLgorCiAyMDE1LTA4LTEyICBDYXJsb3MgR2FyY2lhIENh
bXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBydW4tZ3Rr
LXRlc3RzOiBVc2UgYSBsb25nZXIgdGltZW91dCBmb3Igc2xvdyB0ZXN0cy4KZGlmZiAtLWdpdCBh
L1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19o
dG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWVWaWV3LmpzIGIvVG9vbHMvQnVpbGRT
bGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJk
L1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanMKaW5kZXggNTVmNDk0NDdkZmZmMmUwOWJjZTU1
MTBlYzNmNGMwYmYyMDJlNTdjYS4uZTA3ODFjMGU0MWMyNDkxNGM2YzlkZGUyYmQyNDc2YjM5ZjE0
N2Q1MiAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9y
Zy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcu
anMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
cHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanMKQEAgLTIw
OCwxOCArMjA4LDIxIEBAIEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfSwKIAotICAgIF9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZv
ckl0ZXJhdGlvbjogZnVuY3Rpb24oaXRlcmF0aW9uLCBwcmV2aW91c0l0ZXJhdGlvbiwgcmVwb3Np
dG9yeSwgdHJhYykKKyAgICBfcmV2aXNpb25Db250ZW50V2l0aFBvcG92ZXJGb3JJdGVyYXRpb246
IGZ1bmN0aW9uKGl0ZXJhdGlvbiwgcHJldmlvdXNJdGVyYXRpb24sIHJlcG9zaXRvcnkpCiAgICAg
eworICAgICAgICB2YXIgcmVwb3NpdG9yeU5hbWUgPSByZXBvc2l0b3J5Lm5hbWU7CisgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KGl0ZXJhdGlvbi5yZXZpc2lvbltyZXBvc2l0b3J5TmFtZV0pOwogICAg
ICAgICB2YXIgY29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICAg
ICAgY29udGVudC50ZXh0Q29udGVudCA9ICJyIiArIGl0ZXJhdGlvbi5yZXZpc2lvbltyZXBvc2l0
b3J5XTsKKyAgICAgICAgY29udGVudC50ZXh0Q29udGVudCA9ICJyIiArIGl0ZXJhdGlvbi5yZXZp
c2lvbltyZXBvc2l0b3J5TmFtZV07CiAgICAgICAgIGNvbnRlbnQuY2xhc3NMaXN0LmFkZCgicmV2
aXNpb24tbnVtYmVyIik7CiAKICAgICAgICAgaWYgKHByZXZpb3VzSXRlcmF0aW9uKSB7CisgICAg
ICAgICAgICBjb25zb2xlLmFzc2VydChwcmV2aW91c0l0ZXJhdGlvbi5yZXZpc2lvbltyZXBvc2l0
b3J5TmFtZV0pOwogICAgICAgICAgICAgdmFyIGNvbnRleHQgPSB7Ci0gICAgICAgICAgICAgICAg
dHJhYzogdHJhYywKLSAgICAgICAgICAgICAgICBicmFuY2g6IGl0ZXJhdGlvbi5xdWV1ZS5icmFu
Y2hbcmVwb3NpdG9yeV0sCi0gICAgICAgICAgICAgICAgZmlyc3RSZXZpc2lvbjogcHJldmlvdXNJ
dGVyYXRpb24ucmV2aXNpb25bcmVwb3NpdG9yeV0gKyAxLAotICAgICAgICAgICAgICAgIGxhc3RS
ZXZpc2lvbjogaXRlcmF0aW9uLnJldmlzaW9uW3JlcG9zaXRvcnldCisgICAgICAgICAgICAgICAg
dHJhYzogcmVwb3NpdG9yeS50cmFjLAorICAgICAgICAgICAgICAgIGJyYW5jaDogaXRlcmF0aW9u
LnF1ZXVlLmJyYW5jaFtyZXBvc2l0b3J5TmFtZV0sCisgICAgICAgICAgICAgICAgZmlyc3RSZXZp
c2lvbjogcHJldmlvdXNJdGVyYXRpb24ucmV2aXNpb25bcmVwb3NpdG9yeU5hbWVdICsgMSwKKyAg
ICAgICAgICAgICAgICBsYXN0UmV2aXNpb246IGl0ZXJhdGlvbi5yZXZpc2lvbltyZXBvc2l0b3J5
TmFtZV0KICAgICAgICAgICAgIH07CiAgICAgICAgICAgICBpZiAoY29udGV4dC5maXJzdFJldmlz
aW9uIDw9IGNvbnRleHQubGFzdFJldmlzaW9uKQogICAgICAgICAgICAgICAgIG5ldyBQb3BvdmVy
VHJhY2tlcihjb250ZW50LCB0aGlzLl9wcmVzZW50UG9wb3ZlckZvclJldmlzaW9uUmFuZ2UuYmlu
ZCh0aGlzKSwgY29udGV4dCk7CkBAIC0yNjQsMjEgKzI2NywyMCBAQCBCdWlsZGJvdFF1ZXVlVmll
dy5wcm90b3R5cGUgPSB7CiAKICAgICByZXZpc2lvbkNvbnRlbnRGb3JJdGVyYXRpb246IGZ1bmN0
aW9uKGl0ZXJhdGlvbiwgcHJldmlvdXNEaXNwbGF5ZWRJdGVyYXRpb24pCiAgICAgewotICAgICAg
ICBjb25zb2xlLmFzc2VydChpdGVyYXRpb24ucmV2aXNpb25bRGFzaGJvYXJkLlJlcG9zaXRvcnku
T3BlblNvdXJjZS5uYW1lXSk7Ci0KLSAgICAgICAgdmFyIG9wZW5Tb3VyY2VDb250ZW50ID0gdGhp
cy5fcmV2aXNpb25Db250ZW50V2l0aFBvcG92ZXJGb3JJdGVyYXRpb24oaXRlcmF0aW9uLCBwcmV2
aW91c0Rpc3BsYXllZEl0ZXJhdGlvbiwKLSAgICAgICAgICAgIERhc2hib2FyZC5SZXBvc2l0b3J5
Lk9wZW5Tb3VyY2UubmFtZSwgRGFzaGJvYXJkLlJlcG9zaXRvcnkuT3BlblNvdXJjZS50cmFjKTsK
LQotICAgICAgICBpZiAoIWl0ZXJhdGlvbi5yZXZpc2lvbltEYXNoYm9hcmQuUmVwb3NpdG9yeS5J
bnRlcm5hbC5uYW1lXSkKLSAgICAgICAgICAgIHJldHVybiBvcGVuU291cmNlQ29udGVudDsKLQot
ICAgICAgICB2YXIgaW50ZXJuYWxDb250ZW50ID0gdGhpcy5fcmV2aXNpb25Db250ZW50V2l0aFBv
cG92ZXJGb3JJdGVyYXRpb24oaXRlcmF0aW9uLCBwcmV2aW91c0Rpc3BsYXllZEl0ZXJhdGlvbiwK
LSAgICAgICAgICAgIERhc2hib2FyZC5SZXBvc2l0b3J5LkludGVybmFsLm5hbWUsIERhc2hib2Fy
ZC5SZXBvc2l0b3J5LkludGVybmFsLnRyYWMpOwotCiAgICAgICAgIHZhciBmcmFnbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKLSAgICAgICAgZnJhZ21lbnQuYXBwZW5k
Q2hpbGQob3BlblNvdXJjZUNvbnRlbnQpOwotICAgICAgICBmcmFnbWVudC5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIFx1ZmYwYiAiKSk7Ci0gICAgICAgIGZyYWdtZW50LmFw
cGVuZENoaWxkKGludGVybmFsQ29udGVudCk7CisgICAgICAgIHZhciBzaG91bGRBZGRQbHVzU2ln
biA9IGZhbHNlOworICAgICAgICB2YXIgc29ydGVkUmVwb3NpdG9yaWVzID0gRGFzaGJvYXJkLnNv
cnRlZFJlcG9zaXRvcmllczsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0ZWRSZXBv
c2l0b3JpZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciByZXBvc2l0b3J5ID0gc29y
dGVkUmVwb3NpdG9yaWVzW2ldOworICAgICAgICAgICAgaWYgKCFpdGVyYXRpb24ucmV2aXNpb25b
cmVwb3NpdG9yeS5uYW1lXSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg
IHZhciBjb250ZW50ID0gdGhpcy5fcmV2aXNpb25Db250ZW50V2l0aFBvcG92ZXJGb3JJdGVyYXRp
b24oaXRlcmF0aW9uLCBwcmV2aW91c0Rpc3BsYXllZEl0ZXJhdGlvbiwgcmVwb3NpdG9yeSk7Cisg
ICAgICAgICAgICBpZiAoc2hvdWxkQWRkUGx1c1NpZ24pCisgICAgICAgICAgICAgICAgZnJhZ21l
bnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiBcdWZmMGIgIikpOworICAg
ICAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoY29udGVudCk7CisgICAgICAgICAgICBzaG91
bGRBZGRQbHVzU2lnbiA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgY29uc29sZS5hc3NlcnQo
ZnJhZ21lbnQuY2hpbGROb2Rlcy5sZW5ndGgpOwogICAgICAgICByZXR1cm4gZnJhZ21lbnQ7CiAg
ICAgfSwKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>