<?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>148188</bug_id>
          
          <creation_ts>2015-08-19 13:46:44 -0700</creation_ts>
          <short_desc>Make Dashboard.Branches be objects of the form {repository, branchName} and update existing code to work with these new objects.</short_desc>
          <delta_ts>2015-08-21 18:40:03 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="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>dean_johnson</cc>
    
    <cc>jake.nielsen.webkit</cc>
    
    <cc>jmarcell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1119003</commentid>
    <comment_count>0</comment_count>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-08-19 13:46:44 -0700</bug_when>
    <thetext>Make Dashboard.Branches be objects of the form {repository, branchName} and update existing code to work with these new objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119005</commentid>
    <comment_count>1</comment_count>
      <attachid>259400</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-08-19 13:49:17 -0700</bug_when>
    <thetext>Created attachment 259400
=Make Dashboard.Branches be objects of the form {repository, branchName} and update existing code to work with these new objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119116</commentid>
    <comment_count>2</comment_count>
      <attachid>259400</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-08-19 17:30:27 -0700</bug_when>
    <thetext>Comment on attachment 259400
=Make Dashboard.Branches be objects of the form {repository, branchName} and update existing code to work with these new objects.

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

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:212
&gt; +                key = repository.name;

This should be &apos;repositoryName&apos;

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:215
&gt;              this.revision[repository] = parseRevisionProperty(revisionProperty, key, fallbackKey);

This should be
this.revision[repositoryName] ...

I&apos;ll upload a new patch that addresses these two issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119280</commentid>
    <comment_count>3</comment_count>
      <attachid>259477</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-08-20 10:24:13 -0700</bug_when>
    <thetext>Created attachment 259477
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119810</commentid>
    <comment_count>4</comment_count>
      <attachid>259477</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-08-21 11:11:09 -0700</bug_when>
    <thetext>Comment on attachment 259477
Patch

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

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:172
&gt; -            for (var i = 0; i &lt; length; ++i)
&gt; -                content.appendChild(lines[i]);
&gt; +            for (var j = 0; j &lt; length; ++j)
&gt; +                content.appendChild(lines[j]);

Jason and myself landed this part in r188758, to quickly fix a regression caused by broken iteration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119882</commentid>
    <comment_count>5</comment_count>
      <attachid>259647</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-08-21 13:05:44 -0700</bug_when>
    <thetext>Created attachment 259647
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119883</commentid>
    <comment_count>6</comment_count>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-08-21 13:06:56 -0700</bug_when>
    <thetext>Uploaded a new patch since Alexey landed the change in r188758.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119966</commentid>
    <comment_count>7</comment_count>
      <attachid>259676</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-08-21 15:52:58 -0700</bug_when>
    <thetext>Created attachment 259676
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120009</commentid>
    <comment_count>8</comment_count>
      <attachid>259676</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-08-21 17:19:59 -0700</bug_when>
    <thetext>Comment on attachment 259676
Patch

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

&gt; Tools/ChangeLog:12
&gt; +        (BuildbotCombinedQueueView): Changed to work with new {repository, branchName} object.

Maybe it would be more descriptive to write:

Changed to work with new branch objects which represent a (repository, &quot;branch name&quot;)-pair.

&gt; Tools/ChangeLog:18
&gt; +        (BuildbotQueueView.prototype._appendPendingRevisionCount): Changed to work with new {repository, branchName}
&gt; +        object.

Ditto.

&gt; Tools/ChangeLog:24
&gt; +        * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js: Added isSVN property
&gt; +        to Dashboard.Repository object. Also removed Internal Dashboard.Repository object.

I&apos;m unclear how these change relate to the purpose of this bug. Please make these change in a separate bug.

&gt; Tools/ChangeLog:28
&gt; +        (WebKitBuildbot.prototype.get defaultBranches): Changed to new {repository, branchName} format.

Maybe it would be more descriptive to write:

Changed to work with new branch objects which represent a (repository, &quot;branch name&quot;)-pair.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotCombinedQueueView.js:41
&gt; +                indicesOfFirstQueueWithRepository[repositoryName] = {queueIndex: i, branchIndex: j};

Nit: There should be a space character after the &apos;{&apos; and before the &apos;}&apos;;

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotCombinedQueueView.js:46
&gt; +            message += &quot; === combinedQueues[&quot; + expected.queueIndex + &quot;].branch[&quot; + expected.branchIndex + &quot;] === &quot; + expectedBranch.name;

Nit: Remove the space character at the beginning of this line or there will be two space characters before the second === in the printed message.

&gt; Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:40
&gt; -        OpenSource: { name: &quot;openSource&quot;, order: 0 },
&gt; -        Internal: { name: &quot;internal&quot;, order: 1 },
&gt; +        OpenSource: { isSVN: true, name: &quot;openSource&quot;, order: 0 },

I&apos;m unclear how these change relate to the purpose of this bug. Please make these change in a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120027</commentid>
    <comment_count>9</comment_count>
      <attachid>259691</attachid>
    <who name="Jason Marcell">jmarcell</who>
    <bug_when>2015-08-21 17:51:14 -0700</bug_when>
    <thetext>Created attachment 259691
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120037</commentid>
    <comment_count>10</comment_count>
      <attachid>259691</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-21 18:39:59 -0700</bug_when>
    <thetext>Comment on attachment 259691
Patch

Clearing flags on attachment: 259691

Committed r188814: &lt;http://trac.webkit.org/changeset/188814&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1120038</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-08-21 18:40:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259400</attachid>
            <date>2015-08-19 13:49:17 -0700</date>
            <delta_ts>2015-08-20 10:24:10 -0700</delta_ts>
            <desc>=Make Dashboard.Branches be objects of the form {repository, branchName} and update existing code to work with these new objects.</desc>
            <filename>bug-148188-20150819134914.patch</filename>
            <type>text/plain</type>
            <size>16833</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0ZGU3
ZDg5ZDE0OWJkMTk3MGQwOWNmOWM2ZjY2N2QxYmM3ZjAzYjMzLi5lMDdiM2Q2M2RmNTg0MTNiZGYz
ZjFlYThiOGI0N2JjNzJmMDU0ZTFiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTUtMDgtMTkgIEphc29uIE1hcmNl
bGwgIDxqbWFyY2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBEYXNoYm9hcmQuQnJhbmNo
ZXMgYmUgb2JqZWN0cyBvZiB0aGUgZm9ybSB7cmVwb3NpdG9yeSwgYnJhbmNoTmFtZX0gYW5kIHVw
ZGF0ZSBleGlzdGluZyBjb2RlCisgICAgICAgIHRvIHdvcmsgd2l0aCB0aGVzZSBuZXcgb2JqZWN0
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODE4
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvQnVpbGRib3QuanM6CisgICAgICAgIChCdWlsZGJvdC5wcm90b3R5cGUuX25v
cm1hbGl6ZVF1ZXVlSW5mbyk6IFJlbmFtZWQgQnVpbGRib3RRdWV1ZS5icmFuY2ggdG8gQnVpbGRi
b3RRdWV1ZS5icmFuY2hlcy4KKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJr
aXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdENvbWJp
bmVkUXVldWVWaWV3LmpzOgorICAgICAgICAoQnVpbGRib3RDb21iaW5lZFF1ZXVlVmlldyk6IENo
YW5nZWQgdG8gd29yayB3aXRoIG5ldyB7cmVwb3NpdG9yeSwgYnJhbmNoTmFtZX0gb2JqZWN0Lgor
ICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1Ymxp
Y19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90SXRlcmF0aW9uLmpzOiBEaXR0by4KKyAg
ICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNf
aHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlLmpzOgorICAgICAgICAoQnVpbGRi
b3RRdWV1ZSk6IFJlbmFtZWQgQnVpbGRib3RRdWV1ZS5icmFuY2ggdG8gQnVpbGRib3RRdWV1ZS5i
cmFuY2hlcy4KKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNv
bmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qczoK
KyAgICAgICAgKEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZS5fYXBwZW5kUGVuZGluZ1Jldmlz
aW9uQ291bnQpOiBDaGFuZ2VkIHRvIHdvcmsgd2l0aCBuZXcge3JlcG9zaXRvcnksIGJyYW5jaE5h
bWV9CisgICAgICAgIG9iamVjdC4KKyAgICAgICAgKEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlw
ZS5fcHJlc2VudFBvcG92ZXJGb3JQZW5kaW5nQ29tbWl0cyk6IERpdHRvLgorICAgICAgICAoQnVp
bGRib3RRdWV1ZVZpZXcucHJvdG90eXBlLl9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0
ZXJhdGlvbik6IERpdHRvLgorICAgICAgICAoQnVpbGRib3RRdWV1ZVZpZXcucHJvdG90eXBlLl9h
ZGREaXZpZGVyVG9Qb3BvdmVyKTogRGl0dG8uIEFsc28gZml4ZWQgYnVnIHdpdGggaW5uZXIgbG9v
cCBpbmRleCB2YXJpYWJsZS4KKyAgICAgICAgKEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZS5y
ZXZpc2lvbkNvbnRlbnRGb3JJdGVyYXRpb24pOiBDaGFuZ2VkIHRvIHdvcmsgd2l0aCBuZXcge3Jl
cG9zaXRvcnksIGJyYW5jaE5hbWV9CisgICAgICAgIG9iamVjdC4KKyAgICAgICAgKiBCdWlsZFNs
YXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQv
U2NyaXB0cy9EYXNoYm9hcmQuanM6IEFkZGVkIGlzU1ZOIHByb3BlcnR5CisgICAgICAgIHRvIERh
c2hib2FyZC5SZXBvc2l0b3J5IG9iamVjdC4gQWxzbyByZW1vdmVkIEludGVybmFsIERhc2hib2Fy
ZC5SZXBvc2l0b3J5IG9iamVjdC4KKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NYWluLmpzOiBS
ZW5hbWVkIEJ1aWxkYm90UXVldWUuYnJhbmNoCisgICAgICAgIHRvIEJ1aWxkYm90UXVldWUuYnJh
bmNoZXMuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25m
aWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvV2ViS2l0QnVpbGRib3QuanM6CisgICAg
ICAgIChXZWJLaXRCdWlsZGJvdC5wcm90b3R5cGUuZ2V0IGRlZmF1bHRCcmFuY2hlcyk6IENoYW5n
ZWQgdG8gbmV3IHtyZXBvc2l0b3J5LCBicmFuY2hOYW1lfSBmb3JtYXQuCisKIDIwMTUtMDgtMTkg
IEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYWRk
IEFsZWtzYW5kciBTa2FjaGtvdiB0byB0aGUgbGlzdCBvZiBjb250cmlidXRvcnMuCmRpZmYgLS1n
aXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJs
aWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdC5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVT
dXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3Jp
cHRzL0J1aWxkYm90LmpzCmluZGV4IGY4MGYyNmYyZmY3YzU3ZWY0NWYzMThjZGQyYjQ0YzRhNmM3
MjAxZDAuLjJmYTc5Yjc1OGY1Yjc5ODdlZmU5MDhiOWU4MzBlZTg0MjQ5YTMwMzQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1Ymxp
Y19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90LmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xh
dmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9T
Y3JpcHRzL0J1aWxkYm90LmpzCkBAIC0xMDMsNyArMTAzLDcgQEAgQnVpbGRib3QucHJvdG90eXBl
ID0gewogICAgIF9ub3JtYWxpemVRdWV1ZUluZm86IGZ1bmN0aW9uKHF1ZXVlSW5mbykKICAgICB7
CiAgICAgICAgIGlmICghcXVldWVJbmZvLmNvbWJpbmVkUXVldWVzKQotICAgICAgICAgICAgcXVl
dWVJbmZvLmJyYW5jaCA9IHF1ZXVlSW5mby5icmFuY2ggfHwgdGhpcy5kZWZhdWx0QnJhbmNoZXM7
CisgICAgICAgICAgICBxdWV1ZUluZm8uYnJhbmNoZXMgPSBxdWV1ZUluZm8uYnJhbmNoZXMgfHwg
dGhpcy5kZWZhdWx0QnJhbmNoZXM7CiAgICAgICAgIHF1ZXVlSW5mby5kZWJ1ZyA9IHF1ZXVlSW5m
by5kZWJ1ZyB8fCBmYWxzZTsKICAgICAgICAgcXVldWVJbmZvLmJ1aWxkZXIgPSBxdWV1ZUluZm8u
YnVpbGRlciB8fCBmYWxzZTsKICAgICAgICAgcXVldWVJbmZvLnRlc3RlciA9IHF1ZXVlSW5mby50
ZXN0ZXIgfHwgZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWls
ZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJv
dENvbWJpbmVkUXVldWVWaWV3LmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Vi
a2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RDb21i
aW5lZFF1ZXVlVmlldy5qcwppbmRleCAxMzdhZmE1YzdkOWUyYTVjNzg2OTFiNWI5MTE0MjFlMGNm
N2MyYThiLi4zYmZlYTE5ZjBlNDU0NzFiNDgwMjQ0ODc1NmQ4N2ZhZDVkZDE4NDI5IDEwMDY0NAot
LS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJs
aWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdENvbWJpbmVkUXVldWVWaWV3LmpzCisr
KyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1Ymxp
Y19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90Q29tYmluZWRRdWV1ZVZpZXcuanMKQEAg
LTI1LDIxICsyNSwyNyBAQAogCiBCdWlsZGJvdENvbWJpbmVkUXVldWVWaWV3ID0gZnVuY3Rpb24o
cXVldWUpCiB7Ci0gICAgY29uc29sZS5hc3NlcnQocXVldWUuYnJhbmNoID09PSB1bmRlZmluZWQp
OwotICAgIHZhciBpbmRleE9mRmlyc3RRdWV1ZVdpdGhSZXBvc2l0b3J5ID0ge307Ci0gICAgZm9y
ICh2YXIgaSA9IDAsIGVuZCA9IHF1ZXVlLmNvbWJpbmVkUXVldWVzLmxlbmd0aDsgaSA8IGVuZDsg
KytpKSB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHF1ZXVlLmNvbWJpbmVkUXVldWVzWzBdLmJ1
aWxkYm90ID09PSBxdWV1ZS5jb21iaW5lZFF1ZXVlc1tpXS5idWlsZGJvdCk7Ci0gICAgICAgIHZh
ciBicmFuY2hlcyA9IHF1ZXVlLmNvbWJpbmVkUXVldWVzW2ldLmJyYW5jaDsKLSAgICAgICAgZm9y
ICh2YXIgcmVwb3NpdG9yeSBpbiBicmFuY2hlcykgewotICAgICAgICAgICAgdmFyIGluZGV4T2ZG
aXJzdFF1ZXVlID0gaW5kZXhPZkZpcnN0UXVldWVXaXRoUmVwb3NpdG9yeVtyZXBvc2l0b3J5XTsK
LSAgICAgICAgICAgIGlmIChpbmRleE9mRmlyc3RRdWV1ZSA9PT0gdW5kZWZpbmVkKSB7Ci0gICAg
ICAgICAgICAgICAgaW5kZXhPZkZpcnN0UXVldWVXaXRoUmVwb3NpdG9yeVtyZXBvc2l0b3J5XSA9
IGk7CisgICAgY29uc29sZS5hc3NlcnQocXVldWUuYnJhbmNoZXMgPT09IHVuZGVmaW5lZCk7Cisg
ICAgdmFyIGluZGljZXNPZkZpcnN0UXVldWVXaXRoUmVwb3NpdG9yeSA9IHt9OworICAgIHZhciBj
b21iaW5lZFF1ZXVlcyA9IHF1ZXVlLmNvbWJpbmVkUXVldWVzOworICAgIHZhciBidWlsZGJvdCA9
IGNvbWJpbmVkUXVldWVzWzBdLmJ1aWxkYm90OworICAgIGZvciAodmFyIGkgPSAwLCBlbmQgPSBj
b21iaW5lZFF1ZXVlcy5sZW5ndGg7IGkgPCBlbmQ7ICsraSkgeworICAgICAgICB2YXIgc3ViUXVl
dWUgPSBjb21iaW5lZFF1ZXVlc1tpXTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoYnVpbGRib3Qg
PT09IHN1YlF1ZXVlLmJ1aWxkYm90KTsKKyAgICAgICAgdmFyIGJyYW5jaGVzID0gc3ViUXVldWUu
YnJhbmNoZXM7CisgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYnJhbmNoZXMubGVuZ3RoOyAr
K2opIHsKKyAgICAgICAgICAgIHZhciBicmFuY2ggPSBicmFuY2hlc1tqXTsKKyAgICAgICAgICAg
IHZhciByZXBvc2l0b3J5TmFtZSA9IGJyYW5jaC5yZXBvc2l0b3J5Lm5hbWU7CisgICAgICAgICAg
ICB2YXIgZXhwZWN0ZWQgPSBpbmRpY2VzT2ZGaXJzdFF1ZXVlV2l0aFJlcG9zaXRvcnlbcmVwb3Np
dG9yeU5hbWVdOworICAgICAgICAgICAgaWYgKGV4cGVjdGVkID09PSB1bmRlZmluZWQpIHsKKyAg
ICAgICAgICAgICAgICBpbmRpY2VzT2ZGaXJzdFF1ZXVlV2l0aFJlcG9zaXRvcnlbcmVwb3NpdG9y
eU5hbWVdID0ge3F1ZXVlSW5kZXg6IGksIGJyYW5jaEluZGV4OiBqfTsKICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHZhciBtZXNzYWdlID0gcXVl
dWUuaWQgKyAiOiBjb21iaW5lZFF1ZXVlc1siICsgaSArICJdLmJyYW5jaFsiICsgcmVwb3NpdG9y
eSArICJdIjsKLSAgICAgICAgICAgIG1lc3NhZ2UgKz0gIiA9PT0gY29tYmluZWRRdWV1ZXNbIiAr
IGluZGV4T2ZGaXJzdFF1ZXVlICsgIl0uYnJhbmNoWyIgKyByZXBvc2l0b3J5ICsgIl0iOwotICAg
ICAgICAgICAgY29uc29sZS5hc3NlcnQocXVldWUuY29tYmluZWRRdWV1ZXNbaV0uYnJhbmNoW3Jl
cG9zaXRvcnldCi0gICAgICAgICAgICAgICAgPT09IHF1ZXVlLmNvbWJpbmVkUXVldWVzW2luZGV4
T2ZGaXJzdFF1ZXVlXS5icmFuY2hbcmVwb3NpdG9yeV0sIG1lc3NhZ2UpOworICAgICAgICAgICAg
dmFyIGV4cGVjdGVkUXVldWUgPSBjb21iaW5lZFF1ZXVlc1tleHBlY3RlZC5xdWV1ZUluZGV4XTsK
KyAgICAgICAgICAgIHZhciBleHBlY3RlZEJyYW5jaCA9IGV4cGVjdGVkUXVldWUuYnJhbmNoZXNb
ZXhwZWN0ZWQuYnJhbmNoSW5kZXhdOworICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBxdWV1ZS5p
ZCArICI6IGNvbWJpbmVkUXVldWVzWyIgKyBpICsgIl0uYnJhbmNoWyIgKyBqICsgIl0gKCIgKyBi
cmFuY2guYnJhbmNoTmFtZSArICIpIjsKKyAgICAgICAgICAgIG1lc3NhZ2UgKz0gIiA9PT0gY29t
YmluZWRRdWV1ZXNbIiArIGV4cGVjdGVkLnF1ZXVlSW5kZXggKyAiXS5icmFuY2hbIiArIGV4cGVj
dGVkLmJyYW5jaEluZGV4ICsgIl0gKCIgKyBleHBlY3RlZEJyYW5jaC5icmFuY2hOYW1lICsgIiki
OworICAgICAgICAgICAgY29uc29sZS5hc3NlcnQoYnJhbmNoLmJyYW5jaE5hbWUgPT09IGV4cGVj
dGVkQnJhbmNoLmJyYW5jaE5hbWUsIG1lc3NhZ2UpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9w
dWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdEl0ZXJhdGlvbi5qcyBiL1Rvb2xz
L0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rh
c2hib2FyZC9TY3JpcHRzL0J1aWxkYm90SXRlcmF0aW9uLmpzCmluZGV4IGEwNGNkZmQ1NGU3ZWQ2
NzhiY2VlNDQ1NTFkOTkwZGNjYjUxMDVmYjcuLmUyMmMyYjc0MmYyODZkM2MyNzYwOWY4YzQxNTgy
YWJhNmU5ZjQ3YWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndl
YmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90SXRl
cmF0aW9uLmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmct
Y29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90SXRlcmF0aW9uLmpz
CkBAIC0xOTYsMTcgKzE5NiwyMCBAQCBCdWlsZGJvdEl0ZXJhdGlvbi5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHZhciByZXZpc2lvblByb3BlcnR5ID0gZGF0YS5wcm9wZXJ0aWVzLmZpbmRGaXJzdChm
dW5jdGlvbihwcm9wZXJ0eSkgewogICAgICAgICAgICAgcmV0dXJuIHByb3BlcnR5WzBdID09PSAi
Z290X3JldmlzaW9uIjsKICAgICAgICAgfSk7Ci0gICAgICAgIGZvciAocmVwb3NpdG9yeSBpbiB0
aGlzLnF1ZXVlLmJyYW5jaCkgeworICAgICAgICB2YXIgYnJhbmNoZXMgPSB0aGlzLnF1ZXVlLmJy
YW5jaGVzOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJyYW5jaGVzLmxlbmd0aDsgaSsr
KSB7CisgICAgICAgICAgICB2YXIgcmVwb3NpdG9yeSA9IGJyYW5jaGVzW2ldLnJlcG9zaXRvcnk7
CisgICAgICAgICAgICB2YXIgcmVwb3NpdG9yeU5hbWUgPSByZXBvc2l0b3J5Lm5hbWU7CiAgICAg
ICAgICAgICB2YXIga2V5OwogICAgICAgICAgICAgdmFyIGZhbGxiYWNrS2V5OwotICAgICAgICAg
ICAgaWYgKHJlcG9zaXRvcnkgPT09IERhc2hib2FyZC5SZXBvc2l0b3J5Lk9wZW5Tb3VyY2UubmFt
ZSkgeworICAgICAgICAgICAgaWYgKHJlcG9zaXRvcnkgPT09IERhc2hib2FyZC5SZXBvc2l0b3J5
Lk9wZW5Tb3VyY2UpIHsKICAgICAgICAgICAgICAgICBrZXkgPSAiV2ViS2l0IjsKICAgICAgICAg
ICAgICAgICBmYWxsYmFja0tleSA9ICJvcGVuc291cmNlIjsKLSAgICAgICAgICAgIH0gZWxzZSBp
ZiAocmVwb3NpdG9yeSA9PT0gRGFzaGJvYXJkLlJlcG9zaXRvcnkuSW50ZXJuYWwubmFtZSkgewor
ICAgICAgICAgICAgfSBlbHNlIGlmIChyZXBvc2l0b3J5ID09PSBEYXNoYm9hcmQuUmVwb3NpdG9y
eS5JbnRlcm5hbCkgewogICAgICAgICAgICAgICAgIGtleSA9ICJJbnRlcm5hbCI7CiAgICAgICAg
ICAgICAgICAgZmFsbGJhY2tLZXkgPSAiaW50ZXJuYWwiOwogICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICBrZXkgPSByZXBvc2l0b3J5OworICAgICAgICAgICAgICAgIGtleSA9
IHJlcG9zaXRvcnkubmFtZTsKICAgICAgICAgICAgICAgICBmYWxsYmFja0tleSA9IG51bGw7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB0aGlzLnJldmlzaW9uW3JlcG9zaXRvcnldID0gcGFy
c2VSZXZpc2lvblByb3BlcnR5KHJldmlzaW9uUHJvcGVydHksIGtleSwgZmFsbGJhY2tLZXkpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25m
aWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qcyBiL1Rvb2xz
L0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rh
c2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWUuanMKaW5kZXggNzA1OWRhYTIwY2Q5NjJmZWVk
MTJhMzNlYjU4ZmQzOGNhOTlhOGUyYS4uZTRhOTk1MTFmODk5MmI3NDhlZTg4MGYzMDA1NzM2ZDg2
ZDJhZGRhOCAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0
Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5q
cworKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9w
dWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlLmpzCkBAIC0zNCw3ICsz
NCw3IEBAIEJ1aWxkYm90UXVldWUgPSBmdW5jdGlvbihidWlsZGJvdCwgaWQsIGluZm8pCiAgICAg
dGhpcy5pZCA9IGlkOwogCiAgICAgLy8gRklYTUU6IFNvbWUgb2YgdGhlc2UgYXJlIHByZXNlbnRh
dGlvbiBvbmx5LCBhbmQgc2hvdWxkIGJlIGhhbmRsZWQgYWJvdmUgQnVpbGRib3RRdWV1ZSBsZXZl
bC4KLSAgICB0aGlzLmJyYW5jaCA9IGluZm8uYnJhbmNoOworICAgIHRoaXMuYnJhbmNoZXMgPSBp
bmZvLmJyYW5jaGVzOwogICAgIHRoaXMucGxhdGZvcm0gPSBpbmZvLnBsYXRmb3JtLm5hbWU7CiAg
ICAgdGhpcy5kZWJ1ZyA9IGluZm8uZGVidWc7CiAgICAgdGhpcy5idWlsZGVyID0gaW5mby5idWls
ZGVyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9y
Zy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcu
anMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJs
aWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qcwppbmRleCAwN2Nk
MmZhYTEzNjg5NTdkNDAwMmI4NzdkNmI1MWY3NmEyMmVkNzQ5Li4zOWI2Mjk3N2FlYTM4N2VmYTMy
ZTk2ODlhODE3Nzk3ODI3NTYwMTlhIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9y
dC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9C
dWlsZGJvdFF1ZXVlVmlldy5qcworKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1
ZXVlVmlldy5qcwpAQCAtODAsMTEgKzgwLDEyIEBAIEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlw
ZSA9IHsKIAogICAgICAgICAvLyBGSVhNRTogVG8gYmUgMTAwJSBjb3JyZWN0LCB3ZSBzaG91bGQg
YWxzbyBmaWx0ZXIgb3V0IGNoYW5nZXMgdGhhdCBhcmUgaWdub3JlZCBieQogICAgICAgICAvLyB0
aGUgcXVldWUsIHNlZSBfc2hvdWxkX2ZpbGVfdHJpZ2dlcl9idWlsZCBpbiB3a2J1aWxkLnB5Lgot
ICAgICAgICB2YXIgc29ydGVkUmVwb3NpdG9yaWVzID0gRGFzaGJvYXJkLnNvcnRlZFJlcG9zaXRv
cmllczsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0ZWRSZXBvc2l0b3JpZXMubGVu
Z3RoOyBpKyspIHsKLSAgICAgICAgICAgIHZhciByZXBvc2l0b3J5ID0gc29ydGVkUmVwb3NpdG9y
aWVzW2ldOwotICAgICAgICAgICAgdmFyIHRyYWMgPSByZXBvc2l0b3J5LnRyYWM7CisgICAgICAg
IHZhciBicmFuY2hlcyA9IHF1ZXVlLmJyYW5jaGVzOworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGJyYW5jaGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgYnJhbmNoID0gYnJh
bmNoZXNbaV07CisgICAgICAgICAgICB2YXIgcmVwb3NpdG9yeSA9IGJyYW5jaC5yZXBvc2l0b3J5
OwogICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnlOYW1lID0gcmVwb3NpdG9yeS5uYW1lOworICAg
ICAgICAgICAgdmFyIHRyYWMgPSByZXBvc2l0b3J5LnRyYWM7CiAgICAgICAgICAgICB2YXIgbGF0
ZXN0UHJvZHVjdGl2ZVJldmlzaW9uTnVtYmVyID0gbGF0ZXN0UHJvZHVjdGl2ZUl0ZXJhdGlvbi5y
ZXZpc2lvbltyZXBvc2l0b3J5TmFtZV07CiAgICAgICAgICAgICBpZiAoIWxhdGVzdFByb2R1Y3Rp
dmVSZXZpc2lvbk51bWJlcikKICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTkzLDcgKzk0
LDcgQEAgQnVpbGRib3RRdWV1ZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgdG90YWxSZXZpc2lvbnNCZWhpbmQg
Kz0gdHJhYy5jb21taXRzT25CcmFuY2gocXVldWUuYnJhbmNoW3JlcG9zaXRvcnlOYW1lXSwgZnVu
Y3Rpb24oY29tbWl0KSB7IHJldHVybiBjb21taXQucmV2aXNpb25OdW1iZXIgPiBsYXRlc3RQcm9k
dWN0aXZlUmV2aXNpb25OdW1iZXI7IH0pLmxlbmd0aDsKKyAgICAgICAgICAgIHRvdGFsUmV2aXNp
b25zQmVoaW5kICs9IHRyYWMuY29tbWl0c09uQnJhbmNoKGJyYW5jaC5icmFuY2hOYW1lLCBmdW5j
dGlvbihjb21taXQpIHsgcmV0dXJuIGNvbW1pdC5yZXZpc2lvbk51bWJlciA+IGxhdGVzdFByb2R1
Y3RpdmVSZXZpc2lvbk51bWJlcjsgfSkubGVuZ3RoOwogICAgICAgICB9CiAKICAgICAgICAgaWYg
KCF0b3RhbFJldmlzaW9uc0JlaGluZCkKQEAgLTE1NCwyMCArMTU1LDIxIEBAIEJ1aWxkYm90UXVl
dWVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgY29udGVudC5jbGFzc05hbWUgPSAiY29tbWl0
LWhpc3RvcnktcG9wb3ZlciI7CiAKICAgICAgICAgdmFyIHNob3VsZEFkZERpdmlkZXIgPSBmYWxz
ZTsKLSAgICAgICAgdmFyIHNvcnRlZFJlcG9zaXRvcmllcyA9IERhc2hib2FyZC5zb3J0ZWRSZXBv
c2l0b3JpZXM7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc29ydGVkUmVwb3NpdG9yaWVz
Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgcmVwb3NpdG9yeSA9IHNvcnRlZFJlcG9z
aXRvcmllc1tpXTsKLSAgICAgICAgICAgIHZhciB0cmFjID0gcmVwb3NpdG9yeS50cmFjOworICAg
ICAgICB2YXIgYnJhbmNoZXMgPSBxdWV1ZS5icmFuY2hlczsKKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBicmFuY2hlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdmFyIGJyYW5jaCA9
IGJyYW5jaGVzW2ldOworICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnkgPSBicmFuY2gucmVwb3Np
dG9yeTsKICAgICAgICAgICAgIHZhciByZXBvc2l0b3J5TmFtZSA9IHJlcG9zaXRvcnkubmFtZTsK
KyAgICAgICAgICAgIHZhciB0cmFjID0gcmVwb3NpdG9yeS50cmFjOwogICAgICAgICAgICAgdmFy
IGxhdGVzdFByb2R1Y3RpdmVSZXZpc2lvbk51bWJlciA9IGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRp
b24ucmV2aXNpb25bcmVwb3NpdG9yeU5hbWVdOwogICAgICAgICAgICAgaWYgKCFsYXRlc3RQcm9k
dWN0aXZlUmV2aXNpb25OdW1iZXIgfHwgIXRyYWMubGF0ZXN0UmVjb3JkZWRSZXZpc2lvbk51bWJl
cikKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIHZhciBsaW5lcyA9IHRo
aXMuX3BvcG92ZXJMaW5lc0ZvckNvbW1pdFJhbmdlKHRyYWMsIHF1ZXVlLmJyYW5jaFtyZXBvc2l0
b3J5TmFtZV0sIGxhdGVzdFByb2R1Y3RpdmVSZXZpc2lvbk51bWJlciArIDEsIHRyYWMubGF0ZXN0
UmVjb3JkZWRSZXZpc2lvbk51bWJlcik7CisgICAgICAgICAgICB2YXIgbGluZXMgPSB0aGlzLl9w
b3BvdmVyTGluZXNGb3JDb21taXRSYW5nZSh0cmFjLCBicmFuY2guYnJhbmNoTmFtZSwgbGF0ZXN0
UHJvZHVjdGl2ZVJldmlzaW9uTnVtYmVyICsgMSwgdHJhYy5sYXRlc3RSZWNvcmRlZFJldmlzaW9u
TnVtYmVyKTsKICAgICAgICAgICAgIHZhciBsZW5ndGggPSBsaW5lcy5sZW5ndGg7CiAgICAgICAg
ICAgICBpZiAobGVuZ3RoICYmIHNob3VsZEFkZERpdmlkZXIpCiAgICAgICAgICAgICAgICAgdGhp
cy5fYWRkRGl2aWRlclRvUG9wb3Zlcihjb250ZW50KTsKLSAgICAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgbGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAgY29udGVudC5hcHBlbmRDaGls
ZChsaW5lc1tpXSk7CisgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IGxlbmd0aDsgKytq
KQorICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQobGluZXNbal0pOwogICAgICAg
ICAgICAgc2hvdWxkQWRkRGl2aWRlciA9IHNob3VsZEFkZERpdmlkZXIgfHwgbGVuZ3RoID4gMDsK
ICAgICAgICAgfQogCkBAIC0yMDgsOCArMjEwLDkgQEAgQnVpbGRib3RRdWV1ZVZpZXcucHJvdG90
eXBlID0gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LAogCi0gICAgX3JldmlzaW9uQ29u
dGVudFdpdGhQb3BvdmVyRm9ySXRlcmF0aW9uOiBmdW5jdGlvbihpdGVyYXRpb24sIHByZXZpb3Vz
SXRlcmF0aW9uLCByZXBvc2l0b3J5KQorICAgIF9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZv
ckl0ZXJhdGlvbjogZnVuY3Rpb24oaXRlcmF0aW9uLCBwcmV2aW91c0l0ZXJhdGlvbiwgYnJhbmNo
KQogICAgIHsKKyAgICAgICAgdmFyIHJlcG9zaXRvcnkgPSBicmFuY2gucmVwb3NpdG9yeTsKICAg
ICAgICAgdmFyIHJlcG9zaXRvcnlOYW1lID0gcmVwb3NpdG9yeS5uYW1lOwogICAgICAgICBjb25z
b2xlLmFzc2VydChpdGVyYXRpb24ucmV2aXNpb25bcmVwb3NpdG9yeU5hbWVdKTsKICAgICAgICAg
dmFyIGNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CkBAIC0yMjAsNyAr
MjIzLDcgQEAgQnVpbGRib3RRdWV1ZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgY29u
c29sZS5hc3NlcnQocHJldmlvdXNJdGVyYXRpb24ucmV2aXNpb25bcmVwb3NpdG9yeU5hbWVdKTsK
ICAgICAgICAgICAgIHZhciBjb250ZXh0ID0gewogICAgICAgICAgICAgICAgIHRyYWM6IHJlcG9z
aXRvcnkudHJhYywKLSAgICAgICAgICAgICAgICBicmFuY2g6IGl0ZXJhdGlvbi5xdWV1ZS5icmFu
Y2hbcmVwb3NpdG9yeU5hbWVdLAorICAgICAgICAgICAgICAgIGJyYW5jaDogYnJhbmNoLmJyYW5j
aE5hbWUsCiAgICAgICAgICAgICAgICAgZmlyc3RSZXZpc2lvbjogcHJldmlvdXNJdGVyYXRpb24u
cmV2aXNpb25bcmVwb3NpdG9yeU5hbWVdICsgMSwKICAgICAgICAgICAgICAgICBsYXN0UmV2aXNp
b246IGl0ZXJhdGlvbi5yZXZpc2lvbltyZXBvc2l0b3J5TmFtZV0KICAgICAgICAgICAgIH07CkBA
IC0yNjksMTIgKzI3MiwxMiBAQCBCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUgPSB7CiAgICAg
ewogICAgICAgICB2YXIgZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50
KCk7CiAgICAgICAgIHZhciBzaG91bGRBZGRQbHVzU2lnbiA9IGZhbHNlOwotICAgICAgICB2YXIg
c29ydGVkUmVwb3NpdG9yaWVzID0gRGFzaGJvYXJkLnNvcnRlZFJlcG9zaXRvcmllczsKLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0ZWRSZXBvc2l0b3JpZXMubGVuZ3RoOyArK2kpIHsK
LSAgICAgICAgICAgIHZhciByZXBvc2l0b3J5ID0gc29ydGVkUmVwb3NpdG9yaWVzW2ldOwotICAg
ICAgICAgICAgaWYgKCFpdGVyYXRpb24ucmV2aXNpb25bcmVwb3NpdG9yeS5uYW1lXSkKKyAgICAg
ICAgdmFyIGJyYW5jaGVzID0gaXRlcmF0aW9uLnF1ZXVlLmJyYW5jaGVzOworICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGJyYW5jaGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2YXIg
YnJhbmNoID0gYnJhbmNoZXNbaV07CisgICAgICAgICAgICBpZiAoIWl0ZXJhdGlvbi5yZXZpc2lv
blticmFuY2gucmVwb3NpdG9yeS5uYW1lXSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgICAgIHZhciBjb250ZW50ID0gdGhpcy5fcmV2aXNpb25Db250ZW50V2l0aFBvcG92ZXJG
b3JJdGVyYXRpb24oaXRlcmF0aW9uLCBwcmV2aW91c0Rpc3BsYXllZEl0ZXJhdGlvbiwgcmVwb3Np
dG9yeSk7CisgICAgICAgICAgICB2YXIgY29udGVudCA9IHRoaXMuX3JldmlzaW9uQ29udGVudFdp
dGhQb3BvdmVyRm9ySXRlcmF0aW9uKGl0ZXJhdGlvbiwgcHJldmlvdXNEaXNwbGF5ZWRJdGVyYXRp
b24sIGJyYW5jaCk7CiAgICAgICAgICAgICBpZiAoc2hvdWxkQWRkUGx1c1NpZ24pCiAgICAgICAg
ICAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiBc
dWZmMGIgIikpOwogICAgICAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoY29udGVudCk7CmRp
ZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZp
Zy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9EYXNoYm9hcmQuanMgYi9Ub29scy9CdWls
ZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9h
cmQvU2NyaXB0cy9EYXNoYm9hcmQuanMKaW5kZXggY2Q1NzVhNjhlOTdkMTUwYjc2MTQwYzE3ZGIx
OTg5MjJjNzZmNGFmNC4uYWU4NzA0NjEzODg1OThiNTNiYjFhYmNkMGQ5Mzk4NTcwOGQ1ZjFmYyAx
MDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25m
aWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvRGFzaGJvYXJkLmpzCisrKyBiL1Rvb2xz
L0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rh
c2hib2FyZC9TY3JpcHRzL0Rhc2hib2FyZC5qcwpAQCAtMzcsOCArMzcsNyBAQCBEYXNoYm9hcmQg
PSB7CiAgICAgfSwKICAgICBCcmFuY2g6IHt9LAogICAgIFJlcG9zaXRvcnk6IHsKLSAgICAgICAg
T3BlblNvdXJjZTogeyBuYW1lOiAib3BlblNvdXJjZSIsIG9yZGVyOiAwIH0sCi0gICAgICAgIElu
dGVybmFsOiB7IG5hbWU6ICJpbnRlcm5hbCIsIG9yZGVyOiAxIH0sCisgICAgICAgIE9wZW5Tb3Vy
Y2U6IHsgaXNTVk46IHRydWUsIG5hbWU6ICJvcGVuU291cmNlIiwgb3JkZXI6IDAgfSwKICAgICB9
LAogICAgIGdldCBzb3J0ZWRQbGF0Zm9ybXMoKQogICAgIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1
aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hi
b2FyZC9TY3JpcHRzL01haW4uanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJr
aXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NYWluLmpzCmluZGV4
IDY3ZjI5MmE3N2JkZmUwNGY3NjAzNGUxOGQ4YjRlZjA5MzQ3NDhlYmYuLjk2NWI2MjZjY2QwNTNm
OTg3MWJjYTA2OGZjNTM1NzA1ODI0N2JjYTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVT
dXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3Jp
cHRzL01haW4uanMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9y
Zy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvTWFpbi5qcwpAQCAtMzUsNyAr
MzUsNyBAQCBmb3IgKHZhciBpID0gMDsgaSA8IGJ1aWxkYm90cy5sZW5ndGg7ICsraSkgewogICAg
ICAgICAgICAgdmFyIGluZm8gPSBidWlsZGJvdC5xdWV1ZXNJbmZvW2lkXTsKICAgICAgICAgICAg
IHZhciBxdWV1ZSA9IHsKICAgICAgICAgICAgICAgICBpZDogaWQsCi0gICAgICAgICAgICAgICAg
YnJhbmNoOiBpbmZvLmJyYW5jaCwKKyAgICAgICAgICAgICAgICBicmFuY2hlczogaW5mby5icmFu
Y2hlcywKICAgICAgICAgICAgICAgICBwbGF0Zm9ybTogaW5mby5wbGF0Zm9ybS5uYW1lLAogICAg
ICAgICAgICAgICAgIGhlYWRpbmc6IGluZm8uaGVhZGluZywKICAgICAgICAgICAgICAgICBidWls
ZGVyOiBpbmZvLmJ1aWxkZXIsCmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9i
dWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9XZWJL
aXRCdWlsZGJvdC5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmct
Y29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL1dlYktpdEJ1aWxkYm90LmpzCmlu
ZGV4IDRjMDI2NGMxOGExMjYzNTE3MjU5YmY0ZDFhZjJkYzdjZWRkNjJiYmMuLjQzZGRjNjA4Nzgz
OTViMDcyZDVmNjI0MTNjMTIwNGQ3NWVkZTRkMmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xh
dmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9T
Y3JpcHRzL1dlYktpdEJ1aWxkYm90LmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1
aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL1dlYktp
dEJ1aWxkYm90LmpzCkBAIC03Nyw3ICs3Nyw3IEBAIFdlYktpdEJ1aWxkYm90LnByb3RvdHlwZSA9
IHsKIAogICAgIGdldCBkZWZhdWx0QnJhbmNoZXMoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHsg
b3BlblNvdXJjZTogInRydW5rIiB9OworICAgICAgICByZXR1cm4gW3sgcmVwb3NpdG9yeTogRGFz
aGJvYXJkLlJlcG9zaXRvcnkuT3BlblNvdXJjZSwgYnJhbmNoTmFtZTogInRydW5rIiB9XTsKICAg
ICB9LAogCiAgICAgbGF5b3V0VGVzdFJlc3VsdHNEaXJlY3RvcnlVUkxGb3JJdGVyYXRpb246IGZ1
bmN0aW9uKGl0ZXJhdGlvbikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259477</attachid>
            <date>2015-08-20 10:24:13 -0700</date>
            <delta_ts>2015-08-21 13:05:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148188-20150820102408.patch</filename>
            <type>text/plain</type>
            <size>16984</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkMzU3
OWJkYjcwYTBiNzY3M2IzNzJjMzE1YzVhMzJmMTRlNGU5ZDQ5Li40NzA4YmMxMzkxZmJlYzgyNTQ4
YzgyYzI2MmRkMDE2OTNiZmRhN2Y1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTUtMDgtMTkgIEphc29uIE1hcmNl
bGwgIDxqbWFyY2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBEYXNoYm9hcmQuQnJhbmNo
ZXMgYmUgb2JqZWN0cyBvZiB0aGUgZm9ybSB7cmVwb3NpdG9yeSwgYnJhbmNoTmFtZX0gYW5kIHVw
ZGF0ZSBleGlzdGluZyBjb2RlCisgICAgICAgIHRvIHdvcmsgd2l0aCB0aGVzZSBuZXcgb2JqZWN0
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODE4
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvQnVpbGRib3QuanM6CisgICAgICAgIChCdWlsZGJvdC5wcm90b3R5cGUuX25v
cm1hbGl6ZVF1ZXVlSW5mbyk6IFJlbmFtZWQgQnVpbGRib3RRdWV1ZS5icmFuY2ggdG8gQnVpbGRi
b3RRdWV1ZS5icmFuY2hlcy4KKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJr
aXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdENvbWJp
bmVkUXVldWVWaWV3LmpzOgorICAgICAgICAoQnVpbGRib3RDb21iaW5lZFF1ZXVlVmlldyk6IENo
YW5nZWQgdG8gd29yayB3aXRoIG5ldyB7cmVwb3NpdG9yeSwgYnJhbmNoTmFtZX0gb2JqZWN0Lgor
ICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1Ymxp
Y19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90SXRlcmF0aW9uLmpzOiBEaXR0by4KKyAg
ICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNf
aHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlLmpzOgorICAgICAgICAoQnVpbGRi
b3RRdWV1ZSk6IFJlbmFtZWQgQnVpbGRib3RRdWV1ZS5icmFuY2ggdG8gQnVpbGRib3RRdWV1ZS5i
cmFuY2hlcy4KKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNv
bmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qczoK
KyAgICAgICAgKEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZS5fYXBwZW5kUGVuZGluZ1Jldmlz
aW9uQ291bnQpOiBDaGFuZ2VkIHRvIHdvcmsgd2l0aCBuZXcge3JlcG9zaXRvcnksIGJyYW5jaE5h
bWV9CisgICAgICAgIG9iamVjdC4KKyAgICAgICAgKEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlw
ZS5fcHJlc2VudFBvcG92ZXJGb3JQZW5kaW5nQ29tbWl0cyk6IERpdHRvLgorICAgICAgICAoQnVp
bGRib3RRdWV1ZVZpZXcucHJvdG90eXBlLl9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0
ZXJhdGlvbik6IERpdHRvLgorICAgICAgICAoQnVpbGRib3RRdWV1ZVZpZXcucHJvdG90eXBlLl9h
ZGREaXZpZGVyVG9Qb3BvdmVyKTogRGl0dG8uIEFsc28gZml4ZWQgYnVnIHdpdGggaW5uZXIgbG9v
cCBpbmRleCB2YXJpYWJsZS4KKyAgICAgICAgKEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZS5y
ZXZpc2lvbkNvbnRlbnRGb3JJdGVyYXRpb24pOiBDaGFuZ2VkIHRvIHdvcmsgd2l0aCBuZXcge3Jl
cG9zaXRvcnksIGJyYW5jaE5hbWV9CisgICAgICAgIG9iamVjdC4KKyAgICAgICAgKiBCdWlsZFNs
YXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQv
U2NyaXB0cy9EYXNoYm9hcmQuanM6IEFkZGVkIGlzU1ZOIHByb3BlcnR5CisgICAgICAgIHRvIERh
c2hib2FyZC5SZXBvc2l0b3J5IG9iamVjdC4gQWxzbyByZW1vdmVkIEludGVybmFsIERhc2hib2Fy
ZC5SZXBvc2l0b3J5IG9iamVjdC4KKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NYWluLmpzOiBS
ZW5hbWVkIEJ1aWxkYm90UXVldWUuYnJhbmNoCisgICAgICAgIHRvIEJ1aWxkYm90UXVldWUuYnJh
bmNoZXMuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25m
aWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvV2ViS2l0QnVpbGRib3QuanM6CisgICAg
ICAgIChXZWJLaXRCdWlsZGJvdC5wcm90b3R5cGUuZ2V0IGRlZmF1bHRCcmFuY2hlcyk6IENoYW5n
ZWQgdG8gbmV3IHtyZXBvc2l0b3J5LCBicmFuY2hOYW1lfSBmb3JtYXQuCisKIDIwMTUtMDgtMTkg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBC
dWlsZCBUZXN0V1RGIG9uIE1hYyB3aXRoIENNYWtlLgpkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRT
bGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJk
L1NjcmlwdHMvQnVpbGRib3QuanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJr
aXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdC5qcwpp
bmRleCBmODBmMjZmMmZmN2M1N2VmNDVmMzE4Y2RkMmI0NGM0YTZjNzIwMWQwLi4yZmE3OWI3NThm
NWI3OTg3ZWZlOTA4YjllODMwZWU4NDI0OWEzMDM0IDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNs
YXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQv
U2NyaXB0cy9CdWlsZGJvdC5qcworKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdC5q
cwpAQCAtMTAzLDcgKzEwMyw3IEBAIEJ1aWxkYm90LnByb3RvdHlwZSA9IHsKICAgICBfbm9ybWFs
aXplUXVldWVJbmZvOiBmdW5jdGlvbihxdWV1ZUluZm8pCiAgICAgewogICAgICAgICBpZiAoIXF1
ZXVlSW5mby5jb21iaW5lZFF1ZXVlcykKLSAgICAgICAgICAgIHF1ZXVlSW5mby5icmFuY2ggPSBx
dWV1ZUluZm8uYnJhbmNoIHx8IHRoaXMuZGVmYXVsdEJyYW5jaGVzOworICAgICAgICAgICAgcXVl
dWVJbmZvLmJyYW5jaGVzID0gcXVldWVJbmZvLmJyYW5jaGVzIHx8IHRoaXMuZGVmYXVsdEJyYW5j
aGVzOwogICAgICAgICBxdWV1ZUluZm8uZGVidWcgPSBxdWV1ZUluZm8uZGVidWcgfHwgZmFsc2U7
CiAgICAgICAgIHF1ZXVlSW5mby5idWlsZGVyID0gcXVldWVJbmZvLmJ1aWxkZXIgfHwgZmFsc2U7
CiAgICAgICAgIHF1ZXVlSW5mby50ZXN0ZXIgPSBxdWV1ZUluZm8udGVzdGVyIHx8IGZhbHNlOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25m
aWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RDb21iaW5lZFF1ZXVlVmll
dy5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1
YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90Q29tYmluZWRRdWV1ZVZpZXcuanMK
aW5kZXggMTM3YWZhNWM3ZDllMmE1Yzc4NjkxYjViOTExNDIxZTBjZjdjMmE4Yi4uM2JmZWExOWYw
ZTQ1NDcxYjQ4MDI0NDg3NTZkODdmYWQ1ZGQxODQyOSAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRT
bGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJk
L1NjcmlwdHMvQnVpbGRib3RDb21iaW5lZFF1ZXVlVmlldy5qcworKysgYi9Ub29scy9CdWlsZFNs
YXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQv
U2NyaXB0cy9CdWlsZGJvdENvbWJpbmVkUXVldWVWaWV3LmpzCkBAIC0yNSwyMSArMjUsMjcgQEAK
IAogQnVpbGRib3RDb21iaW5lZFF1ZXVlVmlldyA9IGZ1bmN0aW9uKHF1ZXVlKQogewotICAgIGNv
bnNvbGUuYXNzZXJ0KHF1ZXVlLmJyYW5jaCA9PT0gdW5kZWZpbmVkKTsKLSAgICB2YXIgaW5kZXhP
ZkZpcnN0UXVldWVXaXRoUmVwb3NpdG9yeSA9IHt9OwotICAgIGZvciAodmFyIGkgPSAwLCBlbmQg
PSBxdWV1ZS5jb21iaW5lZFF1ZXVlcy5sZW5ndGg7IGkgPCBlbmQ7ICsraSkgewotICAgICAgICBj
b25zb2xlLmFzc2VydChxdWV1ZS5jb21iaW5lZFF1ZXVlc1swXS5idWlsZGJvdCA9PT0gcXVldWUu
Y29tYmluZWRRdWV1ZXNbaV0uYnVpbGRib3QpOwotICAgICAgICB2YXIgYnJhbmNoZXMgPSBxdWV1
ZS5jb21iaW5lZFF1ZXVlc1tpXS5icmFuY2g7Ci0gICAgICAgIGZvciAodmFyIHJlcG9zaXRvcnkg
aW4gYnJhbmNoZXMpIHsKLSAgICAgICAgICAgIHZhciBpbmRleE9mRmlyc3RRdWV1ZSA9IGluZGV4
T2ZGaXJzdFF1ZXVlV2l0aFJlcG9zaXRvcnlbcmVwb3NpdG9yeV07Ci0gICAgICAgICAgICBpZiAo
aW5kZXhPZkZpcnN0UXVldWUgPT09IHVuZGVmaW5lZCkgewotICAgICAgICAgICAgICAgIGluZGV4
T2ZGaXJzdFF1ZXVlV2l0aFJlcG9zaXRvcnlbcmVwb3NpdG9yeV0gPSBpOworICAgIGNvbnNvbGUu
YXNzZXJ0KHF1ZXVlLmJyYW5jaGVzID09PSB1bmRlZmluZWQpOworICAgIHZhciBpbmRpY2VzT2ZG
aXJzdFF1ZXVlV2l0aFJlcG9zaXRvcnkgPSB7fTsKKyAgICB2YXIgY29tYmluZWRRdWV1ZXMgPSBx
dWV1ZS5jb21iaW5lZFF1ZXVlczsKKyAgICB2YXIgYnVpbGRib3QgPSBjb21iaW5lZFF1ZXVlc1sw
XS5idWlsZGJvdDsKKyAgICBmb3IgKHZhciBpID0gMCwgZW5kID0gY29tYmluZWRRdWV1ZXMubGVu
Z3RoOyBpIDwgZW5kOyArK2kpIHsKKyAgICAgICAgdmFyIHN1YlF1ZXVlID0gY29tYmluZWRRdWV1
ZXNbaV07CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGJ1aWxkYm90ID09PSBzdWJRdWV1ZS5idWls
ZGJvdCk7CisgICAgICAgIHZhciBicmFuY2hlcyA9IHN1YlF1ZXVlLmJyYW5jaGVzOworICAgICAg
ICBmb3IgKHZhciBqID0gMDsgaiA8IGJyYW5jaGVzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAg
ICB2YXIgYnJhbmNoID0gYnJhbmNoZXNbal07CisgICAgICAgICAgICB2YXIgcmVwb3NpdG9yeU5h
bWUgPSBicmFuY2gucmVwb3NpdG9yeS5uYW1lOworICAgICAgICAgICAgdmFyIGV4cGVjdGVkID0g
aW5kaWNlc09mRmlyc3RRdWV1ZVdpdGhSZXBvc2l0b3J5W3JlcG9zaXRvcnlOYW1lXTsKKyAgICAg
ICAgICAgIGlmIChleHBlY3RlZCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgICAgaW5k
aWNlc09mRmlyc3RRdWV1ZVdpdGhSZXBvc2l0b3J5W3JlcG9zaXRvcnlOYW1lXSA9IHtxdWV1ZUlu
ZGV4OiBpLCBicmFuY2hJbmRleDogan07CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB2YXIgbWVzc2FnZSA9IHF1ZXVlLmlkICsgIjogY29tYmlu
ZWRRdWV1ZXNbIiArIGkgKyAiXS5icmFuY2hbIiArIHJlcG9zaXRvcnkgKyAiXSI7Ci0gICAgICAg
ICAgICBtZXNzYWdlICs9ICIgPT09IGNvbWJpbmVkUXVldWVzWyIgKyBpbmRleE9mRmlyc3RRdWV1
ZSArICJdLmJyYW5jaFsiICsgcmVwb3NpdG9yeSArICJdIjsKLSAgICAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KHF1ZXVlLmNvbWJpbmVkUXVldWVzW2ldLmJyYW5jaFtyZXBvc2l0b3J5XQotICAgICAg
ICAgICAgICAgID09PSBxdWV1ZS5jb21iaW5lZFF1ZXVlc1tpbmRleE9mRmlyc3RRdWV1ZV0uYnJh
bmNoW3JlcG9zaXRvcnldLCBtZXNzYWdlKTsKKyAgICAgICAgICAgIHZhciBleHBlY3RlZFF1ZXVl
ID0gY29tYmluZWRRdWV1ZXNbZXhwZWN0ZWQucXVldWVJbmRleF07CisgICAgICAgICAgICB2YXIg
ZXhwZWN0ZWRCcmFuY2ggPSBleHBlY3RlZFF1ZXVlLmJyYW5jaGVzW2V4cGVjdGVkLmJyYW5jaElu
ZGV4XTsKKyAgICAgICAgICAgIHZhciBtZXNzYWdlID0gcXVldWUuaWQgKyAiOiBjb21iaW5lZFF1
ZXVlc1siICsgaSArICJdLmJyYW5jaFsiICsgaiArICJdICgiICsgYnJhbmNoLmJyYW5jaE5hbWUg
KyAiKSI7CisgICAgICAgICAgICBtZXNzYWdlICs9ICIgPT09IGNvbWJpbmVkUXVldWVzWyIgKyBl
eHBlY3RlZC5xdWV1ZUluZGV4ICsgIl0uYnJhbmNoWyIgKyBleHBlY3RlZC5icmFuY2hJbmRleCAr
ICJdICgiICsgZXhwZWN0ZWRCcmFuY2guYnJhbmNoTmFtZSArICIpIjsKKyAgICAgICAgICAgIGNv
bnNvbGUuYXNzZXJ0KGJyYW5jaC5icmFuY2hOYW1lID09PSBleHBlY3RlZEJyYW5jaC5icmFuY2hO
YW1lLCBtZXNzYWdlKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvQnVpbGRib3RJdGVyYXRpb24uanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9y
dC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9C
dWlsZGJvdEl0ZXJhdGlvbi5qcwppbmRleCBhMDRjZGZkNTRlN2VkNjc4YmNlZTQ0NTUxZDk5MGRj
Y2I1MTA1ZmI3Li5jNmMyOTBkZDI1Njk0MzEwYTljYjJiOGVjOGIxMDI2NzAwNDNhNTdmIDEwMDY0
NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9w
dWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdEl0ZXJhdGlvbi5qcworKysgYi9U
b29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRt
bC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdEl0ZXJhdGlvbi5qcwpAQCAtMTk2LDIwICsxOTYs
MjMgQEAgQnVpbGRib3RJdGVyYXRpb24ucHJvdG90eXBlID0gewogICAgICAgICB2YXIgcmV2aXNp
b25Qcm9wZXJ0eSA9IGRhdGEucHJvcGVydGllcy5maW5kRmlyc3QoZnVuY3Rpb24ocHJvcGVydHkp
IHsKICAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eVswXSA9PT0gImdvdF9yZXZpc2lvbiI7CiAg
ICAgICAgIH0pOwotICAgICAgICBmb3IgKHJlcG9zaXRvcnkgaW4gdGhpcy5xdWV1ZS5icmFuY2gp
IHsKKyAgICAgICAgdmFyIGJyYW5jaGVzID0gdGhpcy5xdWV1ZS5icmFuY2hlczsKKyAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBicmFuY2hlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAg
dmFyIHJlcG9zaXRvcnkgPSBicmFuY2hlc1tpXS5yZXBvc2l0b3J5OworICAgICAgICAgICAgdmFy
IHJlcG9zaXRvcnlOYW1lID0gcmVwb3NpdG9yeS5uYW1lOwogICAgICAgICAgICAgdmFyIGtleTsK
ICAgICAgICAgICAgIHZhciBmYWxsYmFja0tleTsKLSAgICAgICAgICAgIGlmIChyZXBvc2l0b3J5
ID09PSBEYXNoYm9hcmQuUmVwb3NpdG9yeS5PcGVuU291cmNlLm5hbWUpIHsKKyAgICAgICAgICAg
IGlmIChyZXBvc2l0b3J5ID09PSBEYXNoYm9hcmQuUmVwb3NpdG9yeS5PcGVuU291cmNlKSB7CiAg
ICAgICAgICAgICAgICAga2V5ID0gIldlYktpdCI7CiAgICAgICAgICAgICAgICAgZmFsbGJhY2tL
ZXkgPSAib3BlbnNvdXJjZSI7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKHJlcG9zaXRvcnkgPT09
IERhc2hib2FyZC5SZXBvc2l0b3J5LkludGVybmFsLm5hbWUpIHsKKyAgICAgICAgICAgIH0gZWxz
ZSBpZiAocmVwb3NpdG9yeSA9PT0gRGFzaGJvYXJkLlJlcG9zaXRvcnkuSW50ZXJuYWwpIHsKICAg
ICAgICAgICAgICAgICBrZXkgPSAiSW50ZXJuYWwiOwogICAgICAgICAgICAgICAgIGZhbGxiYWNr
S2V5ID0gImludGVybmFsIjsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
a2V5ID0gcmVwb3NpdG9yeTsKKyAgICAgICAgICAgICAgICBrZXkgPSByZXBvc2l0b3J5TmFtZTsK
ICAgICAgICAgICAgICAgICBmYWxsYmFja0tleSA9IG51bGw7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB0aGlzLnJldmlzaW9uW3JlcG9zaXRvcnldID0gcGFyc2VSZXZpc2lvblByb3BlcnR5
KHJldmlzaW9uUHJvcGVydHksIGtleSwgZmFsbGJhY2tLZXkpOworICAgICAgICAgICAgdGhpcy5y
ZXZpc2lvbltyZXBvc2l0b3J5TmFtZV0gPSBwYXJzZVJldmlzaW9uUHJvcGVydHkocmV2aXNpb25Q
cm9wZXJ0eSwga2V5LCBmYWxsYmFja0tleSk7CiAgICAgICAgIH0KIAogICAgICAgICBmdW5jdGlv
biBzb3VyY2VTdGFtcENoYW5nZXMoc291cmNlU3RhbXApIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1
aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hi
b2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWUuanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9i
dWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWls
ZGJvdFF1ZXVlLmpzCmluZGV4IDcwNTlkYWEyMGNkOTYyZmVlZDEyYTMzZWI1OGZkMzhjYTk5YThl
MmEuLmU0YTk5NTExZjg5OTJiNzQ4ZWU4ODBmMzAwNTczNmQ4NmQyYWRkYTggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19o
dG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWUuanMKKysrIGIvVG9vbHMvQnVpbGRT
bGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJk
L1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qcwpAQCAtMzQsNyArMzQsNyBAQCBCdWlsZGJvdFF1ZXVl
ID0gZnVuY3Rpb24oYnVpbGRib3QsIGlkLCBpbmZvKQogICAgIHRoaXMuaWQgPSBpZDsKIAogICAg
IC8vIEZJWE1FOiBTb21lIG9mIHRoZXNlIGFyZSBwcmVzZW50YXRpb24gb25seSwgYW5kIHNob3Vs
ZCBiZSBoYW5kbGVkIGFib3ZlIEJ1aWxkYm90UXVldWUgbGV2ZWwuCi0gICAgdGhpcy5icmFuY2gg
PSBpbmZvLmJyYW5jaDsKKyAgICB0aGlzLmJyYW5jaGVzID0gaW5mby5icmFuY2hlczsKICAgICB0
aGlzLnBsYXRmb3JtID0gaW5mby5wbGF0Zm9ybS5uYW1lOwogICAgIHRoaXMuZGVidWcgPSBpbmZv
LmRlYnVnOwogICAgIHRoaXMuYnVpbGRlciA9IGluZm8uYnVpbGRlcjsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1s
L2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWVWaWV3LmpzIGIvVG9vbHMvQnVpbGRTbGF2
ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1Nj
cmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanMKaW5kZXggMDdjZDJmYWExMzY4OTU3ZDQwMDJiODc3
ZDZiNTFmNzZhMjJlZDc0OS4uMzliNjI5NzdhZWEzODdlZmEzMmU5Njg5YTgxNzc5NzgyNzU2MDE5
YSAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1j
b25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanMK
KysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVi
bGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanMKQEAgLTgwLDEx
ICs4MCwxMiBAQCBCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgLy8g
RklYTUU6IFRvIGJlIDEwMCUgY29ycmVjdCwgd2Ugc2hvdWxkIGFsc28gZmlsdGVyIG91dCBjaGFu
Z2VzIHRoYXQgYXJlIGlnbm9yZWQgYnkKICAgICAgICAgLy8gdGhlIHF1ZXVlLCBzZWUgX3Nob3Vs
ZF9maWxlX3RyaWdnZXJfYnVpbGQgaW4gd2tidWlsZC5weS4KLSAgICAgICAgdmFyIHNvcnRlZFJl
cG9zaXRvcmllcyA9IERhc2hib2FyZC5zb3J0ZWRSZXBvc2l0b3JpZXM7Ci0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgc29ydGVkUmVwb3NpdG9yaWVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAg
ICAgICB2YXIgcmVwb3NpdG9yeSA9IHNvcnRlZFJlcG9zaXRvcmllc1tpXTsKLSAgICAgICAgICAg
IHZhciB0cmFjID0gcmVwb3NpdG9yeS50cmFjOworICAgICAgICB2YXIgYnJhbmNoZXMgPSBxdWV1
ZS5icmFuY2hlczsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicmFuY2hlcy5sZW5ndGg7
IGkrKykgeworICAgICAgICAgICAgdmFyIGJyYW5jaCA9IGJyYW5jaGVzW2ldOworICAgICAgICAg
ICAgdmFyIHJlcG9zaXRvcnkgPSBicmFuY2gucmVwb3NpdG9yeTsKICAgICAgICAgICAgIHZhciBy
ZXBvc2l0b3J5TmFtZSA9IHJlcG9zaXRvcnkubmFtZTsKKyAgICAgICAgICAgIHZhciB0cmFjID0g
cmVwb3NpdG9yeS50cmFjOwogICAgICAgICAgICAgdmFyIGxhdGVzdFByb2R1Y3RpdmVSZXZpc2lv
bk51bWJlciA9IGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24ucmV2aXNpb25bcmVwb3NpdG9yeU5h
bWVdOwogICAgICAgICAgICAgaWYgKCFsYXRlc3RQcm9kdWN0aXZlUmV2aXNpb25OdW1iZXIpCiAg
ICAgICAgICAgICAgICAgY29udGludWU7CkBAIC05Myw3ICs5NCw3IEBAIEJ1aWxkYm90UXVldWVW
aWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgIHRvdGFsUmV2aXNpb25zQmVoaW5kICs9IHRyYWMuY29tbWl0c09uQnJh
bmNoKHF1ZXVlLmJyYW5jaFtyZXBvc2l0b3J5TmFtZV0sIGZ1bmN0aW9uKGNvbW1pdCkgeyByZXR1
cm4gY29tbWl0LnJldmlzaW9uTnVtYmVyID4gbGF0ZXN0UHJvZHVjdGl2ZVJldmlzaW9uTnVtYmVy
OyB9KS5sZW5ndGg7CisgICAgICAgICAgICB0b3RhbFJldmlzaW9uc0JlaGluZCArPSB0cmFjLmNv
bW1pdHNPbkJyYW5jaChicmFuY2guYnJhbmNoTmFtZSwgZnVuY3Rpb24oY29tbWl0KSB7IHJldHVy
biBjb21taXQucmV2aXNpb25OdW1iZXIgPiBsYXRlc3RQcm9kdWN0aXZlUmV2aXNpb25OdW1iZXI7
IH0pLmxlbmd0aDsKICAgICAgICAgfQogCiAgICAgICAgIGlmICghdG90YWxSZXZpc2lvbnNCZWhp
bmQpCkBAIC0xNTQsMjAgKzE1NSwyMSBAQCBCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUgPSB7
CiAgICAgICAgIGNvbnRlbnQuY2xhc3NOYW1lID0gImNvbW1pdC1oaXN0b3J5LXBvcG92ZXIiOwog
CiAgICAgICAgIHZhciBzaG91bGRBZGREaXZpZGVyID0gZmFsc2U7Ci0gICAgICAgIHZhciBzb3J0
ZWRSZXBvc2l0b3JpZXMgPSBEYXNoYm9hcmQuc29ydGVkUmVwb3NpdG9yaWVzOwotICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHNvcnRlZFJlcG9zaXRvcmllcy5sZW5ndGg7ICsraSkgewotICAg
ICAgICAgICAgdmFyIHJlcG9zaXRvcnkgPSBzb3J0ZWRSZXBvc2l0b3JpZXNbaV07Ci0gICAgICAg
ICAgICB2YXIgdHJhYyA9IHJlcG9zaXRvcnkudHJhYzsKKyAgICAgICAgdmFyIGJyYW5jaGVzID0g
cXVldWUuYnJhbmNoZXM7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnJhbmNoZXMubGVu
Z3RoOyBpKyspIHsKKyAgICAgICAgICAgIHZhciBicmFuY2ggPSBicmFuY2hlc1tpXTsKKyAgICAg
ICAgICAgIHZhciByZXBvc2l0b3J5ID0gYnJhbmNoLnJlcG9zaXRvcnk7CiAgICAgICAgICAgICB2
YXIgcmVwb3NpdG9yeU5hbWUgPSByZXBvc2l0b3J5Lm5hbWU7CisgICAgICAgICAgICB2YXIgdHJh
YyA9IHJlcG9zaXRvcnkudHJhYzsKICAgICAgICAgICAgIHZhciBsYXRlc3RQcm9kdWN0aXZlUmV2
aXNpb25OdW1iZXIgPSBsYXRlc3RQcm9kdWN0aXZlSXRlcmF0aW9uLnJldmlzaW9uW3JlcG9zaXRv
cnlOYW1lXTsKICAgICAgICAgICAgIGlmICghbGF0ZXN0UHJvZHVjdGl2ZVJldmlzaW9uTnVtYmVy
IHx8ICF0cmFjLmxhdGVzdFJlY29yZGVkUmV2aXNpb25OdW1iZXIpCiAgICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICB2YXIgbGluZXMgPSB0aGlzLl9wb3BvdmVyTGluZXNGb3JD
b21taXRSYW5nZSh0cmFjLCBxdWV1ZS5icmFuY2hbcmVwb3NpdG9yeU5hbWVdLCBsYXRlc3RQcm9k
dWN0aXZlUmV2aXNpb25OdW1iZXIgKyAxLCB0cmFjLmxhdGVzdFJlY29yZGVkUmV2aXNpb25OdW1i
ZXIpOworICAgICAgICAgICAgdmFyIGxpbmVzID0gdGhpcy5fcG9wb3ZlckxpbmVzRm9yQ29tbWl0
UmFuZ2UodHJhYywgYnJhbmNoLmJyYW5jaE5hbWUsIGxhdGVzdFByb2R1Y3RpdmVSZXZpc2lvbk51
bWJlciArIDEsIHRyYWMubGF0ZXN0UmVjb3JkZWRSZXZpc2lvbk51bWJlcik7CiAgICAgICAgICAg
ICB2YXIgbGVuZ3RoID0gbGluZXMubGVuZ3RoOwogICAgICAgICAgICAgaWYgKGxlbmd0aCAmJiBz
aG91bGRBZGREaXZpZGVyKQogICAgICAgICAgICAgICAgIHRoaXMuX2FkZERpdmlkZXJUb1BvcG92
ZXIoY29udGVudCk7Ci0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgKytp
KQotICAgICAgICAgICAgICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQobGluZXNbaV0pOworICAgICAg
ICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBsZW5ndGg7ICsraikKKyAgICAgICAgICAgICAgICBj
b250ZW50LmFwcGVuZENoaWxkKGxpbmVzW2pdKTsKICAgICAgICAgICAgIHNob3VsZEFkZERpdmlk
ZXIgPSBzaG91bGRBZGREaXZpZGVyIHx8IGxlbmd0aCA+IDA7CiAgICAgICAgIH0KIApAQCAtMjA4
LDggKzIxMCw5IEBAIEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfSwKIAotICAgIF9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0
ZXJhdGlvbjogZnVuY3Rpb24oaXRlcmF0aW9uLCBwcmV2aW91c0l0ZXJhdGlvbiwgcmVwb3NpdG9y
eSkKKyAgICBfcmV2aXNpb25Db250ZW50V2l0aFBvcG92ZXJGb3JJdGVyYXRpb246IGZ1bmN0aW9u
KGl0ZXJhdGlvbiwgcHJldmlvdXNJdGVyYXRpb24sIGJyYW5jaCkKICAgICB7CisgICAgICAgIHZh
ciByZXBvc2l0b3J5ID0gYnJhbmNoLnJlcG9zaXRvcnk7CiAgICAgICAgIHZhciByZXBvc2l0b3J5
TmFtZSA9IHJlcG9zaXRvcnkubmFtZTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoaXRlcmF0aW9u
LnJldmlzaW9uW3JlcG9zaXRvcnlOYW1lXSk7CiAgICAgICAgIHZhciBjb250ZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwpAQCAtMjIwLDcgKzIyMyw3IEBAIEJ1aWxkYm90UXVl
dWVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHByZXZpb3Vz
SXRlcmF0aW9uLnJldmlzaW9uW3JlcG9zaXRvcnlOYW1lXSk7CiAgICAgICAgICAgICB2YXIgY29u
dGV4dCA9IHsKICAgICAgICAgICAgICAgICB0cmFjOiByZXBvc2l0b3J5LnRyYWMsCi0gICAgICAg
ICAgICAgICAgYnJhbmNoOiBpdGVyYXRpb24ucXVldWUuYnJhbmNoW3JlcG9zaXRvcnlOYW1lXSwK
KyAgICAgICAgICAgICAgICBicmFuY2g6IGJyYW5jaC5icmFuY2hOYW1lLAogICAgICAgICAgICAg
ICAgIGZpcnN0UmV2aXNpb246IHByZXZpb3VzSXRlcmF0aW9uLnJldmlzaW9uW3JlcG9zaXRvcnlO
YW1lXSArIDEsCiAgICAgICAgICAgICAgICAgbGFzdFJldmlzaW9uOiBpdGVyYXRpb24ucmV2aXNp
b25bcmVwb3NpdG9yeU5hbWVdCiAgICAgICAgICAgICB9OwpAQCAtMjY5LDEyICsyNzIsMTIgQEAg
QnVpbGRib3RRdWV1ZVZpZXcucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIGZyYWdt
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwogICAgICAgICB2YXIgc2hv
dWxkQWRkUGx1c1NpZ24gPSBmYWxzZTsKLSAgICAgICAgdmFyIHNvcnRlZFJlcG9zaXRvcmllcyA9
IERhc2hib2FyZC5zb3J0ZWRSZXBvc2l0b3JpZXM7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgc29ydGVkUmVwb3NpdG9yaWVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgcmVw
b3NpdG9yeSA9IHNvcnRlZFJlcG9zaXRvcmllc1tpXTsKLSAgICAgICAgICAgIGlmICghaXRlcmF0
aW9uLnJldmlzaW9uW3JlcG9zaXRvcnkubmFtZV0pCisgICAgICAgIHZhciBicmFuY2hlcyA9IGl0
ZXJhdGlvbi5xdWV1ZS5icmFuY2hlczsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicmFu
Y2hlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdmFyIGJyYW5jaCA9IGJyYW5jaGVzW2ld
OworICAgICAgICAgICAgaWYgKCFpdGVyYXRpb24ucmV2aXNpb25bYnJhbmNoLnJlcG9zaXRvcnku
bmFtZV0pCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB2YXIgY29udGVu
dCA9IHRoaXMuX3JldmlzaW9uQ29udGVudFdpdGhQb3BvdmVyRm9ySXRlcmF0aW9uKGl0ZXJhdGlv
biwgcHJldmlvdXNEaXNwbGF5ZWRJdGVyYXRpb24sIHJlcG9zaXRvcnkpOworICAgICAgICAgICAg
dmFyIGNvbnRlbnQgPSB0aGlzLl9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0ZXJhdGlv
bihpdGVyYXRpb24sIHByZXZpb3VzRGlzcGxheWVkSXRlcmF0aW9uLCBicmFuY2gpOwogICAgICAg
ICAgICAgaWYgKHNob3VsZEFkZFBsdXNTaWduKQogICAgICAgICAgICAgICAgIGZyYWdtZW50LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCIgXHVmZjBiICIpKTsKICAgICAgICAg
ICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKGNvbnRlbnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvRGFzaGJvYXJkLmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQu
d2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvRGFzaGJvYXJk
LmpzCmluZGV4IGNkNTc1YTY4ZTk3ZDE1MGI3NjE0MGMxN2RiMTk4OTIyYzc2ZjRhZjQuLmFlODcw
NDYxMzg4NTk4YjUzYmIxYWJjZDBkOTM5ODU3MDhkNWYxZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1
aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hi
b2FyZC9TY3JpcHRzL0Rhc2hib2FyZC5qcworKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9i
dWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9EYXNo
Ym9hcmQuanMKQEAgLTM3LDggKzM3LDcgQEAgRGFzaGJvYXJkID0gewogICAgIH0sCiAgICAgQnJh
bmNoOiB7fSwKICAgICBSZXBvc2l0b3J5OiB7Ci0gICAgICAgIE9wZW5Tb3VyY2U6IHsgbmFtZTog
Im9wZW5Tb3VyY2UiLCBvcmRlcjogMCB9LAotICAgICAgICBJbnRlcm5hbDogeyBuYW1lOiAiaW50
ZXJuYWwiLCBvcmRlcjogMSB9LAorICAgICAgICBPcGVuU291cmNlOiB7IGlzU1ZOOiB0cnVlLCBu
YW1lOiAib3BlblNvdXJjZSIsIG9yZGVyOiAwIH0sCiAgICAgfSwKICAgICBnZXQgc29ydGVkUGxh
dGZvcm1zKCkKICAgICB7CmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWls
ZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NYWluLmpz
IGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGlj
X2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvTWFpbi5qcwppbmRleCA2N2YyOTJhNzdiZGZlMDRmNzYw
MzRlMThkOGI0ZWYwOTM0NzQ4ZWJmLi45NjViNjI2Y2NkMDUzZjk4NzFiY2EwNjhmYzUzNTcwNTgy
NDdiY2E4IDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQu
b3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NYWluLmpzCisrKyBiL1Rv
b2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1s
L2Rhc2hib2FyZC9TY3JpcHRzL01haW4uanMKQEAgLTM1LDcgKzM1LDcgQEAgZm9yICh2YXIgaSA9
IDA7IGkgPCBidWlsZGJvdHMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciBpbmZvID0g
YnVpbGRib3QucXVldWVzSW5mb1tpZF07CiAgICAgICAgICAgICB2YXIgcXVldWUgPSB7CiAgICAg
ICAgICAgICAgICAgaWQ6IGlkLAotICAgICAgICAgICAgICAgIGJyYW5jaDogaW5mby5icmFuY2gs
CisgICAgICAgICAgICAgICAgYnJhbmNoZXM6IGluZm8uYnJhbmNoZXMsCiAgICAgICAgICAgICAg
ICAgcGxhdGZvcm06IGluZm8ucGxhdGZvcm0ubmFtZSwKICAgICAgICAgICAgICAgICBoZWFkaW5n
OiBpbmZvLmhlYWRpbmcsCiAgICAgICAgICAgICAgICAgYnVpbGRlcjogaW5mby5idWlsZGVyLApk
aWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25m
aWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvV2ViS2l0QnVpbGRib3QuanMgYi9Ub29s
cy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9k
YXNoYm9hcmQvU2NyaXB0cy9XZWJLaXRCdWlsZGJvdC5qcwppbmRleCA0YzAyNjRjMThhMTI2MzUx
NzI1OWJmNGQxYWYyZGM3Y2VkZDYyYmJjLi40M2RkYzYwODc4Mzk1YjA3MmQ1ZjYyNDEzYzEyMDRk
NzVlZGU0ZDJmIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJr
aXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9XZWJLaXRCdWlsZGJv
dC5qcworKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZp
Zy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9XZWJLaXRCdWlsZGJvdC5qcwpAQCAtNzcs
NyArNzcsNyBAQCBXZWJLaXRCdWlsZGJvdC5wcm90b3R5cGUgPSB7CiAKICAgICBnZXQgZGVmYXVs
dEJyYW5jaGVzKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB7IG9wZW5Tb3VyY2U6ICJ0cnVuayIg
fTsKKyAgICAgICAgcmV0dXJuIFt7IHJlcG9zaXRvcnk6IERhc2hib2FyZC5SZXBvc2l0b3J5Lk9w
ZW5Tb3VyY2UsIGJyYW5jaE5hbWU6ICJ0cnVuayIgfV07CiAgICAgfSwKIAogICAgIGxheW91dFRl
c3RSZXN1bHRzRGlyZWN0b3J5VVJMRm9ySXRlcmF0aW9uOiBmdW5jdGlvbihpdGVyYXRpb24pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259647</attachid>
            <date>2015-08-21 13:05:44 -0700</date>
            <delta_ts>2015-08-21 15:52:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148188-20150821130538.patch</filename>
            <type>text/plain</type>
            <size>16658</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0NjRk
NzEyN2NlOTM4NDk1ZjQ1ZmQ1ZDgyM2FjZjY3YjBkYjA3ZGZiLi5kNGM1YjYyNmJkOTkwZWZjY2Vl
YTczNTQzYWNiZmEzYjk5NjhiNTdmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTUtMDgtMjEgIEphc29uIE1hcmNl
bGwgIDxqbWFyY2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBEYXNoYm9hcmQuQnJhbmNo
ZXMgYmUgb2JqZWN0cyBvZiB0aGUgZm9ybSB7cmVwb3NpdG9yeSwgYnJhbmNoTmFtZX0gYW5kIHVw
ZGF0ZSBleGlzdGluZyBjb2RlCisgICAgICAgIHRvIHdvcmsgd2l0aCB0aGVzZSBuZXcgb2JqZWN0
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODE4
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvQnVpbGRib3QuanM6CisgICAgICAgIChCdWlsZGJvdC5wcm90b3R5cGUuX25v
cm1hbGl6ZVF1ZXVlSW5mbyk6IFJlbmFtZWQgQnVpbGRib3RRdWV1ZS5icmFuY2ggdG8gQnVpbGRi
b3RRdWV1ZS5icmFuY2hlcy4KKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJr
aXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdENvbWJp
bmVkUXVldWVWaWV3LmpzOgorICAgICAgICAoQnVpbGRib3RDb21iaW5lZFF1ZXVlVmlldyk6IENo
YW5nZWQgdG8gd29yayB3aXRoIG5ldyB7cmVwb3NpdG9yeSwgYnJhbmNoTmFtZX0gb2JqZWN0Lgor
ICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1Ymxp
Y19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90SXRlcmF0aW9uLmpzOiBEaXR0by4KKyAg
ICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNf
aHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlLmpzOgorICAgICAgICAoQnVpbGRi
b3RRdWV1ZSk6IFJlbmFtZWQgQnVpbGRib3RRdWV1ZS5icmFuY2ggdG8gQnVpbGRib3RRdWV1ZS5i
cmFuY2hlcy4KKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNv
bmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qczoK
KyAgICAgICAgKEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZS5fYXBwZW5kUGVuZGluZ1Jldmlz
aW9uQ291bnQpOiBDaGFuZ2VkIHRvIHdvcmsgd2l0aCBuZXcge3JlcG9zaXRvcnksIGJyYW5jaE5h
bWV9CisgICAgICAgIG9iamVjdC4KKyAgICAgICAgKEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlw
ZS5fcHJlc2VudFBvcG92ZXJGb3JQZW5kaW5nQ29tbWl0cyk6IERpdHRvLgorICAgICAgICAoQnVp
bGRib3RRdWV1ZVZpZXcucHJvdG90eXBlLl9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0
ZXJhdGlvbik6IERpdHRvLgorICAgICAgICAoQnVpbGRib3RRdWV1ZVZpZXcucHJvdG90eXBlLl9h
ZGREaXZpZGVyVG9Qb3BvdmVyKTogRGl0dG8uCisgICAgICAgIChCdWlsZGJvdFF1ZXVlVmlldy5w
cm90b3R5cGUucmV2aXNpb25Db250ZW50Rm9ySXRlcmF0aW9uKTogRGl0dG8uCisgICAgICAgICog
QnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFz
aGJvYXJkL1NjcmlwdHMvRGFzaGJvYXJkLmpzOiBBZGRlZCBpc1NWTiBwcm9wZXJ0eQorICAgICAg
ICB0byBEYXNoYm9hcmQuUmVwb3NpdG9yeSBvYmplY3QuIEFsc28gcmVtb3ZlZCBJbnRlcm5hbCBE
YXNoYm9hcmQuUmVwb3NpdG9yeSBvYmplY3QuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQv
YnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvTWFp
bi5qczogUmVuYW1lZCBCdWlsZGJvdFF1ZXVlLmJyYW5jaAorICAgICAgICB0byBCdWlsZGJvdFF1
ZXVlLmJyYW5jaGVzLgorICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5v
cmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL1dlYktpdEJ1aWxkYm90Lmpz
OgorICAgICAgICAoV2ViS2l0QnVpbGRib3QucHJvdG90eXBlLmdldCBkZWZhdWx0QnJhbmNoZXMp
OiBDaGFuZ2VkIHRvIG5ldyB7cmVwb3NpdG9yeSwgYnJhbmNoTmFtZX0gZm9ybWF0LgorCiAyMDE1
LTA4LTIxICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAg
IFNraXAgbm8tbGxpbnQgdGVzdHMgdGhhdCBmYWlsIGR1ZSB0byBydW5uaW5nIG91dCBvZiBleGVj
dXRhYmxlIG1lbW9yeSBhZnRlciByMTg4OTY5CmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZl
U3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2Ny
aXB0cy9CdWlsZGJvdC5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5v
cmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90LmpzCmluZGV4
IGY4MGYyNmYyZmY3YzU3ZWY0NWYzMThjZGQyYjQ0YzRhNmM3MjAxZDAuLjJmYTc5Yjc1OGY1Yjc5
ODdlZmU5MDhiOWU4MzBlZTg0MjQ5YTMwMzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVT
dXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3Jp
cHRzL0J1aWxkYm90LmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtp
dC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90LmpzCkBA
IC0xMDMsNyArMTAzLDcgQEAgQnVpbGRib3QucHJvdG90eXBlID0gewogICAgIF9ub3JtYWxpemVR
dWV1ZUluZm86IGZ1bmN0aW9uKHF1ZXVlSW5mbykKICAgICB7CiAgICAgICAgIGlmICghcXVldWVJ
bmZvLmNvbWJpbmVkUXVldWVzKQotICAgICAgICAgICAgcXVldWVJbmZvLmJyYW5jaCA9IHF1ZXVl
SW5mby5icmFuY2ggfHwgdGhpcy5kZWZhdWx0QnJhbmNoZXM7CisgICAgICAgICAgICBxdWV1ZUlu
Zm8uYnJhbmNoZXMgPSBxdWV1ZUluZm8uYnJhbmNoZXMgfHwgdGhpcy5kZWZhdWx0QnJhbmNoZXM7
CiAgICAgICAgIHF1ZXVlSW5mby5kZWJ1ZyA9IHF1ZXVlSW5mby5kZWJ1ZyB8fCBmYWxzZTsKICAg
ICAgICAgcXVldWVJbmZvLmJ1aWxkZXIgPSBxdWV1ZUluZm8uYnVpbGRlciB8fCBmYWxzZTsKICAg
ICAgICAgcXVldWVJbmZvLnRlc3RlciA9IHF1ZXVlSW5mby50ZXN0ZXIgfHwgZmFsc2U7CmRpZmYg
LS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9w
dWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdENvbWJpbmVkUXVldWVWaWV3Lmpz
IGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGlj
X2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RDb21iaW5lZFF1ZXVlVmlldy5qcwppbmRl
eCAxMzdhZmE1YzdkOWUyYTVjNzg2OTFiNWI5MTE0MjFlMGNmN2MyYThiLi4zYmZlYTE5ZjBlNDU0
NzFiNDgwMjQ0ODc1NmQ4N2ZhZDVkZDE4NDI5IDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZl
U3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2Ny
aXB0cy9CdWlsZGJvdENvbWJpbmVkUXVldWVWaWV3LmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVT
dXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3Jp
cHRzL0J1aWxkYm90Q29tYmluZWRRdWV1ZVZpZXcuanMKQEAgLTI1LDIxICsyNSwyNyBAQAogCiBC
dWlsZGJvdENvbWJpbmVkUXVldWVWaWV3ID0gZnVuY3Rpb24ocXVldWUpCiB7Ci0gICAgY29uc29s
ZS5hc3NlcnQocXVldWUuYnJhbmNoID09PSB1bmRlZmluZWQpOwotICAgIHZhciBpbmRleE9mRmly
c3RRdWV1ZVdpdGhSZXBvc2l0b3J5ID0ge307Ci0gICAgZm9yICh2YXIgaSA9IDAsIGVuZCA9IHF1
ZXVlLmNvbWJpbmVkUXVldWVzLmxlbmd0aDsgaSA8IGVuZDsgKytpKSB7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KHF1ZXVlLmNvbWJpbmVkUXVldWVzWzBdLmJ1aWxkYm90ID09PSBxdWV1ZS5jb21i
aW5lZFF1ZXVlc1tpXS5idWlsZGJvdCk7Ci0gICAgICAgIHZhciBicmFuY2hlcyA9IHF1ZXVlLmNv
bWJpbmVkUXVldWVzW2ldLmJyYW5jaDsKLSAgICAgICAgZm9yICh2YXIgcmVwb3NpdG9yeSBpbiBi
cmFuY2hlcykgewotICAgICAgICAgICAgdmFyIGluZGV4T2ZGaXJzdFF1ZXVlID0gaW5kZXhPZkZp
cnN0UXVldWVXaXRoUmVwb3NpdG9yeVtyZXBvc2l0b3J5XTsKLSAgICAgICAgICAgIGlmIChpbmRl
eE9mRmlyc3RRdWV1ZSA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICAgICAgaW5kZXhPZkZp
cnN0UXVldWVXaXRoUmVwb3NpdG9yeVtyZXBvc2l0b3J5XSA9IGk7CisgICAgY29uc29sZS5hc3Nl
cnQocXVldWUuYnJhbmNoZXMgPT09IHVuZGVmaW5lZCk7CisgICAgdmFyIGluZGljZXNPZkZpcnN0
UXVldWVXaXRoUmVwb3NpdG9yeSA9IHt9OworICAgIHZhciBjb21iaW5lZFF1ZXVlcyA9IHF1ZXVl
LmNvbWJpbmVkUXVldWVzOworICAgIHZhciBidWlsZGJvdCA9IGNvbWJpbmVkUXVldWVzWzBdLmJ1
aWxkYm90OworICAgIGZvciAodmFyIGkgPSAwLCBlbmQgPSBjb21iaW5lZFF1ZXVlcy5sZW5ndGg7
IGkgPCBlbmQ7ICsraSkgeworICAgICAgICB2YXIgc3ViUXVldWUgPSBjb21iaW5lZFF1ZXVlc1tp
XTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoYnVpbGRib3QgPT09IHN1YlF1ZXVlLmJ1aWxkYm90
KTsKKyAgICAgICAgdmFyIGJyYW5jaGVzID0gc3ViUXVldWUuYnJhbmNoZXM7CisgICAgICAgIGZv
ciAodmFyIGogPSAwOyBqIDwgYnJhbmNoZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgIHZh
ciBicmFuY2ggPSBicmFuY2hlc1tqXTsKKyAgICAgICAgICAgIHZhciByZXBvc2l0b3J5TmFtZSA9
IGJyYW5jaC5yZXBvc2l0b3J5Lm5hbWU7CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWQgPSBpbmRp
Y2VzT2ZGaXJzdFF1ZXVlV2l0aFJlcG9zaXRvcnlbcmVwb3NpdG9yeU5hbWVdOworICAgICAgICAg
ICAgaWYgKGV4cGVjdGVkID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgICAgICBpbmRpY2Vz
T2ZGaXJzdFF1ZXVlV2l0aFJlcG9zaXRvcnlbcmVwb3NpdG9yeU5hbWVdID0ge3F1ZXVlSW5kZXg6
IGksIGJyYW5jaEluZGV4OiBqfTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHZhciBtZXNzYWdlID0gcXVldWUuaWQgKyAiOiBjb21iaW5lZFF1
ZXVlc1siICsgaSArICJdLmJyYW5jaFsiICsgcmVwb3NpdG9yeSArICJdIjsKLSAgICAgICAgICAg
IG1lc3NhZ2UgKz0gIiA9PT0gY29tYmluZWRRdWV1ZXNbIiArIGluZGV4T2ZGaXJzdFF1ZXVlICsg
Il0uYnJhbmNoWyIgKyByZXBvc2l0b3J5ICsgIl0iOwotICAgICAgICAgICAgY29uc29sZS5hc3Nl
cnQocXVldWUuY29tYmluZWRRdWV1ZXNbaV0uYnJhbmNoW3JlcG9zaXRvcnldCi0gICAgICAgICAg
ICAgICAgPT09IHF1ZXVlLmNvbWJpbmVkUXVldWVzW2luZGV4T2ZGaXJzdFF1ZXVlXS5icmFuY2hb
cmVwb3NpdG9yeV0sIG1lc3NhZ2UpOworICAgICAgICAgICAgdmFyIGV4cGVjdGVkUXVldWUgPSBj
b21iaW5lZFF1ZXVlc1tleHBlY3RlZC5xdWV1ZUluZGV4XTsKKyAgICAgICAgICAgIHZhciBleHBl
Y3RlZEJyYW5jaCA9IGV4cGVjdGVkUXVldWUuYnJhbmNoZXNbZXhwZWN0ZWQuYnJhbmNoSW5kZXhd
OworICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSBxdWV1ZS5pZCArICI6IGNvbWJpbmVkUXVldWVz
WyIgKyBpICsgIl0uYnJhbmNoWyIgKyBqICsgIl0gKCIgKyBicmFuY2guYnJhbmNoTmFtZSArICIp
IjsKKyAgICAgICAgICAgIG1lc3NhZ2UgKz0gIiA9PT0gY29tYmluZWRRdWV1ZXNbIiArIGV4cGVj
dGVkLnF1ZXVlSW5kZXggKyAiXS5icmFuY2hbIiArIGV4cGVjdGVkLmJyYW5jaEluZGV4ICsgIl0g
KCIgKyBleHBlY3RlZEJyYW5jaC5icmFuY2hOYW1lICsgIikiOworICAgICAgICAgICAgY29uc29s
ZS5hc3NlcnQoYnJhbmNoLmJyYW5jaE5hbWUgPT09IGV4cGVjdGVkQnJhbmNoLmJyYW5jaE5hbWUs
IG1lc3NhZ2UpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNs
YXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQv
U2NyaXB0cy9CdWlsZGJvdEl0ZXJhdGlvbi5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1
aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxk
Ym90SXRlcmF0aW9uLmpzCmluZGV4IGEwNGNkZmQ1NGU3ZWQ2NzhiY2VlNDQ1NTFkOTkwZGNjYjUx
MDVmYjcuLmM2YzI5MGRkMjU2OTQzMTBhOWNiMmI4ZWM4YjEwMjY3MDA0M2E1N2YgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1Ymxp
Y19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90SXRlcmF0aW9uLmpzCisrKyBiL1Rvb2xz
L0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rh
c2hib2FyZC9TY3JpcHRzL0J1aWxkYm90SXRlcmF0aW9uLmpzCkBAIC0xOTYsMjAgKzE5NiwyMyBA
QCBCdWlsZGJvdEl0ZXJhdGlvbi5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciByZXZpc2lvblBy
b3BlcnR5ID0gZGF0YS5wcm9wZXJ0aWVzLmZpbmRGaXJzdChmdW5jdGlvbihwcm9wZXJ0eSkgewog
ICAgICAgICAgICAgcmV0dXJuIHByb3BlcnR5WzBdID09PSAiZ290X3JldmlzaW9uIjsKICAgICAg
ICAgfSk7Ci0gICAgICAgIGZvciAocmVwb3NpdG9yeSBpbiB0aGlzLnF1ZXVlLmJyYW5jaCkgewor
ICAgICAgICB2YXIgYnJhbmNoZXMgPSB0aGlzLnF1ZXVlLmJyYW5jaGVzOworICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGJyYW5jaGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2YXIg
cmVwb3NpdG9yeSA9IGJyYW5jaGVzW2ldLnJlcG9zaXRvcnk7CisgICAgICAgICAgICB2YXIgcmVw
b3NpdG9yeU5hbWUgPSByZXBvc2l0b3J5Lm5hbWU7CiAgICAgICAgICAgICB2YXIga2V5OwogICAg
ICAgICAgICAgdmFyIGZhbGxiYWNrS2V5OwotICAgICAgICAgICAgaWYgKHJlcG9zaXRvcnkgPT09
IERhc2hib2FyZC5SZXBvc2l0b3J5Lk9wZW5Tb3VyY2UubmFtZSkgeworICAgICAgICAgICAgaWYg
KHJlcG9zaXRvcnkgPT09IERhc2hib2FyZC5SZXBvc2l0b3J5Lk9wZW5Tb3VyY2UpIHsKICAgICAg
ICAgICAgICAgICBrZXkgPSAiV2ViS2l0IjsKICAgICAgICAgICAgICAgICBmYWxsYmFja0tleSA9
ICJvcGVuc291cmNlIjsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAocmVwb3NpdG9yeSA9PT0gRGFz
aGJvYXJkLlJlcG9zaXRvcnkuSW50ZXJuYWwubmFtZSkgeworICAgICAgICAgICAgfSBlbHNlIGlm
IChyZXBvc2l0b3J5ID09PSBEYXNoYm9hcmQuUmVwb3NpdG9yeS5JbnRlcm5hbCkgewogICAgICAg
ICAgICAgICAgIGtleSA9ICJJbnRlcm5hbCI7CiAgICAgICAgICAgICAgICAgZmFsbGJhY2tLZXkg
PSAiaW50ZXJuYWwiOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBrZXkg
PSByZXBvc2l0b3J5OworICAgICAgICAgICAgICAgIGtleSA9IHJlcG9zaXRvcnlOYW1lOwogICAg
ICAgICAgICAgICAgIGZhbGxiYWNrS2V5ID0gbnVsbDsKICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIHRoaXMucmV2aXNpb25bcmVwb3NpdG9yeV0gPSBwYXJzZVJldmlzaW9uUHJvcGVydHkocmV2
aXNpb25Qcm9wZXJ0eSwga2V5LCBmYWxsYmFja0tleSk7CisgICAgICAgICAgICB0aGlzLnJldmlz
aW9uW3JlcG9zaXRvcnlOYW1lXSA9IHBhcnNlUmV2aXNpb25Qcm9wZXJ0eShyZXZpc2lvblByb3Bl
cnR5LCBrZXksIGZhbGxiYWNrS2V5KTsKICAgICAgICAgfQogCiAgICAgICAgIGZ1bmN0aW9uIHNv
dXJjZVN0YW1wQ2hhbmdlcyhzb3VyY2VTdGFtcCkgewpkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRT
bGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJk
L1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxk
LndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90
UXVldWUuanMKaW5kZXggNzA1OWRhYTIwY2Q5NjJmZWVkMTJhMzNlYjU4ZmQzOGNhOTlhOGUyYS4u
ZTRhOTk1MTFmODk5MmI3NDhlZTg4MGYzMDA1NzM2ZDg2ZDJhZGRhOCAxMDA2NDQKLS0tIGEvVG9v
bHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwv
ZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qcworKysgYi9Ub29scy9CdWlsZFNsYXZl
U3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2Ny
aXB0cy9CdWlsZGJvdFF1ZXVlLmpzCkBAIC0zNCw3ICszNCw3IEBAIEJ1aWxkYm90UXVldWUgPSBm
dW5jdGlvbihidWlsZGJvdCwgaWQsIGluZm8pCiAgICAgdGhpcy5pZCA9IGlkOwogCiAgICAgLy8g
RklYTUU6IFNvbWUgb2YgdGhlc2UgYXJlIHByZXNlbnRhdGlvbiBvbmx5LCBhbmQgc2hvdWxkIGJl
IGhhbmRsZWQgYWJvdmUgQnVpbGRib3RRdWV1ZSBsZXZlbC4KLSAgICB0aGlzLmJyYW5jaCA9IGlu
Zm8uYnJhbmNoOworICAgIHRoaXMuYnJhbmNoZXMgPSBpbmZvLmJyYW5jaGVzOwogICAgIHRoaXMu
cGxhdGZvcm0gPSBpbmZvLnBsYXRmb3JtLm5hbWU7CiAgICAgdGhpcy5kZWJ1ZyA9IGluZm8uZGVi
dWc7CiAgICAgdGhpcy5idWlsZGVyID0gaW5mby5idWlsZGVyOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
QnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFz
aGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanMgYi9Ub29scy9CdWlsZFNsYXZlU3Vw
cG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0
cy9CdWlsZGJvdFF1ZXVlVmlldy5qcwppbmRleCBiNWE4OWQ0YjgwMTYwOTc3MjJkNjhkYzU1NzQw
M2NmMzgwNjZlNmE3Li4zOWI2Mjk3N2FlYTM4N2VmYTMyZTk2ODlhODE3Nzk3ODI3NTYwMTlhIDEw
MDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZp
Zy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qcworKysg
Yi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNf
aHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qcwpAQCAtODAsMTEgKzgw
LDEyIEBAIEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZSA9IHsKIAogICAgICAgICAvLyBGSVhN
RTogVG8gYmUgMTAwJSBjb3JyZWN0LCB3ZSBzaG91bGQgYWxzbyBmaWx0ZXIgb3V0IGNoYW5nZXMg
dGhhdCBhcmUgaWdub3JlZCBieQogICAgICAgICAvLyB0aGUgcXVldWUsIHNlZSBfc2hvdWxkX2Zp
bGVfdHJpZ2dlcl9idWlsZCBpbiB3a2J1aWxkLnB5LgotICAgICAgICB2YXIgc29ydGVkUmVwb3Np
dG9yaWVzID0gRGFzaGJvYXJkLnNvcnRlZFJlcG9zaXRvcmllczsKLSAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBzb3J0ZWRSZXBvc2l0b3JpZXMubGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAg
IHZhciByZXBvc2l0b3J5ID0gc29ydGVkUmVwb3NpdG9yaWVzW2ldOwotICAgICAgICAgICAgdmFy
IHRyYWMgPSByZXBvc2l0b3J5LnRyYWM7CisgICAgICAgIHZhciBicmFuY2hlcyA9IHF1ZXVlLmJy
YW5jaGVzOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJyYW5jaGVzLmxlbmd0aDsgaSsr
KSB7CisgICAgICAgICAgICB2YXIgYnJhbmNoID0gYnJhbmNoZXNbaV07CisgICAgICAgICAgICB2
YXIgcmVwb3NpdG9yeSA9IGJyYW5jaC5yZXBvc2l0b3J5OwogICAgICAgICAgICAgdmFyIHJlcG9z
aXRvcnlOYW1lID0gcmVwb3NpdG9yeS5uYW1lOworICAgICAgICAgICAgdmFyIHRyYWMgPSByZXBv
c2l0b3J5LnRyYWM7CiAgICAgICAgICAgICB2YXIgbGF0ZXN0UHJvZHVjdGl2ZVJldmlzaW9uTnVt
YmVyID0gbGF0ZXN0UHJvZHVjdGl2ZUl0ZXJhdGlvbi5yZXZpc2lvbltyZXBvc2l0b3J5TmFtZV07
CiAgICAgICAgICAgICBpZiAoIWxhdGVzdFByb2R1Y3RpdmVSZXZpc2lvbk51bWJlcikKICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKQEAgLTkzLDcgKzk0LDcgQEAgQnVpbGRib3RRdWV1ZVZpZXcu
cHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgdG90YWxSZXZpc2lvbnNCZWhpbmQgKz0gdHJhYy5jb21taXRzT25CcmFuY2go
cXVldWUuYnJhbmNoW3JlcG9zaXRvcnlOYW1lXSwgZnVuY3Rpb24oY29tbWl0KSB7IHJldHVybiBj
b21taXQucmV2aXNpb25OdW1iZXIgPiBsYXRlc3RQcm9kdWN0aXZlUmV2aXNpb25OdW1iZXI7IH0p
Lmxlbmd0aDsKKyAgICAgICAgICAgIHRvdGFsUmV2aXNpb25zQmVoaW5kICs9IHRyYWMuY29tbWl0
c09uQnJhbmNoKGJyYW5jaC5icmFuY2hOYW1lLCBmdW5jdGlvbihjb21taXQpIHsgcmV0dXJuIGNv
bW1pdC5yZXZpc2lvbk51bWJlciA+IGxhdGVzdFByb2R1Y3RpdmVSZXZpc2lvbk51bWJlcjsgfSku
bGVuZ3RoOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCF0b3RhbFJldmlzaW9uc0JlaGluZCkK
QEAgLTE1NCwxNSArMTU1LDE2IEBAIEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgY29udGVudC5jbGFzc05hbWUgPSAiY29tbWl0LWhpc3RvcnktcG9wb3ZlciI7CiAKICAg
ICAgICAgdmFyIHNob3VsZEFkZERpdmlkZXIgPSBmYWxzZTsKLSAgICAgICAgdmFyIHNvcnRlZFJl
cG9zaXRvcmllcyA9IERhc2hib2FyZC5zb3J0ZWRSZXBvc2l0b3JpZXM7Ci0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgc29ydGVkUmVwb3NpdG9yaWVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAg
ICAgICB2YXIgcmVwb3NpdG9yeSA9IHNvcnRlZFJlcG9zaXRvcmllc1tpXTsKLSAgICAgICAgICAg
IHZhciB0cmFjID0gcmVwb3NpdG9yeS50cmFjOworICAgICAgICB2YXIgYnJhbmNoZXMgPSBxdWV1
ZS5icmFuY2hlczsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicmFuY2hlcy5sZW5ndGg7
IGkrKykgeworICAgICAgICAgICAgdmFyIGJyYW5jaCA9IGJyYW5jaGVzW2ldOworICAgICAgICAg
ICAgdmFyIHJlcG9zaXRvcnkgPSBicmFuY2gucmVwb3NpdG9yeTsKICAgICAgICAgICAgIHZhciBy
ZXBvc2l0b3J5TmFtZSA9IHJlcG9zaXRvcnkubmFtZTsKKyAgICAgICAgICAgIHZhciB0cmFjID0g
cmVwb3NpdG9yeS50cmFjOwogICAgICAgICAgICAgdmFyIGxhdGVzdFByb2R1Y3RpdmVSZXZpc2lv
bk51bWJlciA9IGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24ucmV2aXNpb25bcmVwb3NpdG9yeU5h
bWVdOwogICAgICAgICAgICAgaWYgKCFsYXRlc3RQcm9kdWN0aXZlUmV2aXNpb25OdW1iZXIgfHwg
IXRyYWMubGF0ZXN0UmVjb3JkZWRSZXZpc2lvbk51bWJlcikKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgICAgIHZhciBsaW5lcyA9IHRoaXMuX3BvcG92ZXJMaW5lc0ZvckNvbW1p
dFJhbmdlKHRyYWMsIHF1ZXVlLmJyYW5jaFtyZXBvc2l0b3J5TmFtZV0sIGxhdGVzdFByb2R1Y3Rp
dmVSZXZpc2lvbk51bWJlciArIDEsIHRyYWMubGF0ZXN0UmVjb3JkZWRSZXZpc2lvbk51bWJlcik7
CisgICAgICAgICAgICB2YXIgbGluZXMgPSB0aGlzLl9wb3BvdmVyTGluZXNGb3JDb21taXRSYW5n
ZSh0cmFjLCBicmFuY2guYnJhbmNoTmFtZSwgbGF0ZXN0UHJvZHVjdGl2ZVJldmlzaW9uTnVtYmVy
ICsgMSwgdHJhYy5sYXRlc3RSZWNvcmRlZFJldmlzaW9uTnVtYmVyKTsKICAgICAgICAgICAgIHZh
ciBsZW5ndGggPSBsaW5lcy5sZW5ndGg7CiAgICAgICAgICAgICBpZiAobGVuZ3RoICYmIHNob3Vs
ZEFkZERpdmlkZXIpCiAgICAgICAgICAgICAgICAgdGhpcy5fYWRkRGl2aWRlclRvUG9wb3Zlcihj
b250ZW50KTsKQEAgLTIwOCw4ICsyMTAsOSBAQCBCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0sCiAKLSAgICBfcmV2aXNpb25Db250ZW50
V2l0aFBvcG92ZXJGb3JJdGVyYXRpb246IGZ1bmN0aW9uKGl0ZXJhdGlvbiwgcHJldmlvdXNJdGVy
YXRpb24sIHJlcG9zaXRvcnkpCisgICAgX3JldmlzaW9uQ29udGVudFdpdGhQb3BvdmVyRm9ySXRl
cmF0aW9uOiBmdW5jdGlvbihpdGVyYXRpb24sIHByZXZpb3VzSXRlcmF0aW9uLCBicmFuY2gpCiAg
ICAgeworICAgICAgICB2YXIgcmVwb3NpdG9yeSA9IGJyYW5jaC5yZXBvc2l0b3J5OwogICAgICAg
ICB2YXIgcmVwb3NpdG9yeU5hbWUgPSByZXBvc2l0b3J5Lm5hbWU7CiAgICAgICAgIGNvbnNvbGUu
YXNzZXJ0KGl0ZXJhdGlvbi5yZXZpc2lvbltyZXBvc2l0b3J5TmFtZV0pOwogICAgICAgICB2YXIg
Y29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKQEAgLTIyMCw3ICsyMjMs
NyBAQCBCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBjb25zb2xl
LmFzc2VydChwcmV2aW91c0l0ZXJhdGlvbi5yZXZpc2lvbltyZXBvc2l0b3J5TmFtZV0pOwogICAg
ICAgICAgICAgdmFyIGNvbnRleHQgPSB7CiAgICAgICAgICAgICAgICAgdHJhYzogcmVwb3NpdG9y
eS50cmFjLAotICAgICAgICAgICAgICAgIGJyYW5jaDogaXRlcmF0aW9uLnF1ZXVlLmJyYW5jaFty
ZXBvc2l0b3J5TmFtZV0sCisgICAgICAgICAgICAgICAgYnJhbmNoOiBicmFuY2guYnJhbmNoTmFt
ZSwKICAgICAgICAgICAgICAgICBmaXJzdFJldmlzaW9uOiBwcmV2aW91c0l0ZXJhdGlvbi5yZXZp
c2lvbltyZXBvc2l0b3J5TmFtZV0gKyAxLAogICAgICAgICAgICAgICAgIGxhc3RSZXZpc2lvbjog
aXRlcmF0aW9uLnJldmlzaW9uW3JlcG9zaXRvcnlOYW1lXQogICAgICAgICAgICAgfTsKQEAgLTI2
OSwxMiArMjcyLDEyIEBAIEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZSA9IHsKICAgICB7CiAg
ICAgICAgIHZhciBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsK
ICAgICAgICAgdmFyIHNob3VsZEFkZFBsdXNTaWduID0gZmFsc2U7Ci0gICAgICAgIHZhciBzb3J0
ZWRSZXBvc2l0b3JpZXMgPSBEYXNoYm9hcmQuc29ydGVkUmVwb3NpdG9yaWVzOwotICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHNvcnRlZFJlcG9zaXRvcmllcy5sZW5ndGg7ICsraSkgewotICAg
ICAgICAgICAgdmFyIHJlcG9zaXRvcnkgPSBzb3J0ZWRSZXBvc2l0b3JpZXNbaV07Ci0gICAgICAg
ICAgICBpZiAoIWl0ZXJhdGlvbi5yZXZpc2lvbltyZXBvc2l0b3J5Lm5hbWVdKQorICAgICAgICB2
YXIgYnJhbmNoZXMgPSBpdGVyYXRpb24ucXVldWUuYnJhbmNoZXM7CisgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgYnJhbmNoZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHZhciBicmFu
Y2ggPSBicmFuY2hlc1tpXTsKKyAgICAgICAgICAgIGlmICghaXRlcmF0aW9uLnJldmlzaW9uW2Jy
YW5jaC5yZXBvc2l0b3J5Lm5hbWVdKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAgICAgdmFyIGNvbnRlbnQgPSB0aGlzLl9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0
ZXJhdGlvbihpdGVyYXRpb24sIHByZXZpb3VzRGlzcGxheWVkSXRlcmF0aW9uLCByZXBvc2l0b3J5
KTsKKyAgICAgICAgICAgIHZhciBjb250ZW50ID0gdGhpcy5fcmV2aXNpb25Db250ZW50V2l0aFBv
cG92ZXJGb3JJdGVyYXRpb24oaXRlcmF0aW9uLCBwcmV2aW91c0Rpc3BsYXllZEl0ZXJhdGlvbiwg
YnJhbmNoKTsKICAgICAgICAgICAgIGlmIChzaG91bGRBZGRQbHVzU2lnbikKICAgICAgICAgICAg
ICAgICBmcmFnbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIFx1ZmYw
YiAiKSk7CiAgICAgICAgICAgICBmcmFnbWVudC5hcHBlbmRDaGlsZChjb250ZW50KTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1
YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0Rhc2hib2FyZC5qcyBiL1Rvb2xzL0J1aWxkU2xh
dmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9T
Y3JpcHRzL0Rhc2hib2FyZC5qcwppbmRleCBjZDU3NWE2OGU5N2QxNTBiNzYxNDBjMTdkYjE5ODky
MmM3NmY0YWY0Li5hZTg3MDQ2MTM4ODU5OGI1M2JiMWFiY2QwZDkzOTg1NzA4ZDVmMWZjIDEwMDY0
NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9w
dWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9EYXNoYm9hcmQuanMKKysrIGIvVG9vbHMvQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvRGFzaGJvYXJkLmpzCkBAIC0zNyw4ICszNyw3IEBAIERhc2hib2FyZCA9IHsK
ICAgICB9LAogICAgIEJyYW5jaDoge30sCiAgICAgUmVwb3NpdG9yeTogewotICAgICAgICBPcGVu
U291cmNlOiB7IG5hbWU6ICJvcGVuU291cmNlIiwgb3JkZXI6IDAgfSwKLSAgICAgICAgSW50ZXJu
YWw6IHsgbmFtZTogImludGVybmFsIiwgb3JkZXI6IDEgfSwKKyAgICAgICAgT3BlblNvdXJjZTog
eyBpc1NWTjogdHJ1ZSwgbmFtZTogIm9wZW5Tb3VyY2UiLCBvcmRlcjogMCB9LAogICAgIH0sCiAg
ICAgZ2V0IHNvcnRlZFBsYXRmb3JtcygpCiAgICAgewpkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRT
bGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJk
L1NjcmlwdHMvTWFpbi5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5v
cmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL01haW4uanMKaW5kZXggNjdm
MjkyYTc3YmRmZTA0Zjc2MDM0ZTE4ZDhiNGVmMDkzNDc0OGViZi4uOTY1YjYyNmNjZDA1M2Y5ODcx
YmNhMDY4ZmM1MzU3MDU4MjQ3YmNhOCAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBv
cnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMv
TWFpbi5qcworKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNv
bmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NYWluLmpzCkBAIC0zNSw3ICszNSw3
IEBAIGZvciAodmFyIGkgPSAwOyBpIDwgYnVpbGRib3RzLmxlbmd0aDsgKytpKSB7CiAgICAgICAg
ICAgICB2YXIgaW5mbyA9IGJ1aWxkYm90LnF1ZXVlc0luZm9baWRdOwogICAgICAgICAgICAgdmFy
IHF1ZXVlID0gewogICAgICAgICAgICAgICAgIGlkOiBpZCwKLSAgICAgICAgICAgICAgICBicmFu
Y2g6IGluZm8uYnJhbmNoLAorICAgICAgICAgICAgICAgIGJyYW5jaGVzOiBpbmZvLmJyYW5jaGVz
LAogICAgICAgICAgICAgICAgIHBsYXRmb3JtOiBpbmZvLnBsYXRmb3JtLm5hbWUsCiAgICAgICAg
ICAgICAgICAgaGVhZGluZzogaW5mby5oZWFkaW5nLAogICAgICAgICAgICAgICAgIGJ1aWxkZXI6
IGluZm8uYnVpbGRlciwKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxk
LndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL1dlYktpdEJ1
aWxkYm90LmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25m
aWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvV2ViS2l0QnVpbGRib3QuanMKaW5kZXgg
NGMwMjY0YzE4YTEyNjM1MTcyNTliZjRkMWFmMmRjN2NlZGQ2MmJiYy4uNDNkZGM2MDg3ODM5NWIw
NzJkNWY2MjQxM2MxMjA0ZDc1ZWRlNGQyZiAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1
cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1Njcmlw
dHMvV2ViS2l0QnVpbGRib3QuanMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQu
d2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvV2ViS2l0QnVp
bGRib3QuanMKQEAgLTc3LDcgKzc3LDcgQEAgV2ViS2l0QnVpbGRib3QucHJvdG90eXBlID0gewog
CiAgICAgZ2V0IGRlZmF1bHRCcmFuY2hlcygpCiAgICAgewotICAgICAgICByZXR1cm4geyBvcGVu
U291cmNlOiAidHJ1bmsiIH07CisgICAgICAgIHJldHVybiBbeyByZXBvc2l0b3J5OiBEYXNoYm9h
cmQuUmVwb3NpdG9yeS5PcGVuU291cmNlLCBicmFuY2hOYW1lOiAidHJ1bmsiIH1dOwogICAgIH0s
CiAKICAgICBsYXlvdXRUZXN0UmVzdWx0c0RpcmVjdG9yeVVSTEZvckl0ZXJhdGlvbjogZnVuY3Rp
b24oaXRlcmF0aW9uKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259676</attachid>
            <date>2015-08-21 15:52:58 -0700</date>
            <delta_ts>2015-08-21 17:51:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148188-20150821155252.patch</filename>
            <type>text/plain</type>
            <size>16551</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0NjRk
NzEyN2NlOTM4NDk1ZjQ1ZmQ1ZDgyM2FjZjY3YjBkYjA3ZGZiLi5kNGM1YjYyNmJkOTkwZWZjY2Vl
YTczNTQzYWNiZmEzYjk5NjhiNTdmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTUtMDgtMjEgIEphc29uIE1hcmNl
bGwgIDxqbWFyY2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBEYXNoYm9hcmQuQnJhbmNo
ZXMgYmUgb2JqZWN0cyBvZiB0aGUgZm9ybSB7cmVwb3NpdG9yeSwgYnJhbmNoTmFtZX0gYW5kIHVw
ZGF0ZSBleGlzdGluZyBjb2RlCisgICAgICAgIHRvIHdvcmsgd2l0aCB0aGVzZSBuZXcgb2JqZWN0
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODE4
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvQnVpbGRib3QuanM6CisgICAgICAgIChCdWlsZGJvdC5wcm90b3R5cGUuX25v
cm1hbGl6ZVF1ZXVlSW5mbyk6IFJlbmFtZWQgQnVpbGRib3RRdWV1ZS5icmFuY2ggdG8gQnVpbGRi
b3RRdWV1ZS5icmFuY2hlcy4KKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJr
aXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdENvbWJp
bmVkUXVldWVWaWV3LmpzOgorICAgICAgICAoQnVpbGRib3RDb21iaW5lZFF1ZXVlVmlldyk6IENo
YW5nZWQgdG8gd29yayB3aXRoIG5ldyB7cmVwb3NpdG9yeSwgYnJhbmNoTmFtZX0gb2JqZWN0Lgor
ICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1Ymxp
Y19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90SXRlcmF0aW9uLmpzOiBEaXR0by4KKyAg
ICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNf
aHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlLmpzOgorICAgICAgICAoQnVpbGRi
b3RRdWV1ZSk6IFJlbmFtZWQgQnVpbGRib3RRdWV1ZS5icmFuY2ggdG8gQnVpbGRib3RRdWV1ZS5i
cmFuY2hlcy4KKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNv
bmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlVmlldy5qczoK
KyAgICAgICAgKEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZS5fYXBwZW5kUGVuZGluZ1Jldmlz
aW9uQ291bnQpOiBDaGFuZ2VkIHRvIHdvcmsgd2l0aCBuZXcge3JlcG9zaXRvcnksIGJyYW5jaE5h
bWV9CisgICAgICAgIG9iamVjdC4KKyAgICAgICAgKEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlw
ZS5fcHJlc2VudFBvcG92ZXJGb3JQZW5kaW5nQ29tbWl0cyk6IERpdHRvLgorICAgICAgICAoQnVp
bGRib3RRdWV1ZVZpZXcucHJvdG90eXBlLl9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3ZlckZvckl0
ZXJhdGlvbik6IERpdHRvLgorICAgICAgICAoQnVpbGRib3RRdWV1ZVZpZXcucHJvdG90eXBlLl9h
ZGREaXZpZGVyVG9Qb3BvdmVyKTogRGl0dG8uCisgICAgICAgIChCdWlsZGJvdFF1ZXVlVmlldy5w
cm90b3R5cGUucmV2aXNpb25Db250ZW50Rm9ySXRlcmF0aW9uKTogRGl0dG8uCisgICAgICAgICog
QnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFz
aGJvYXJkL1NjcmlwdHMvRGFzaGJvYXJkLmpzOiBBZGRlZCBpc1NWTiBwcm9wZXJ0eQorICAgICAg
ICB0byBEYXNoYm9hcmQuUmVwb3NpdG9yeSBvYmplY3QuIEFsc28gcmVtb3ZlZCBJbnRlcm5hbCBE
YXNoYm9hcmQuUmVwb3NpdG9yeSBvYmplY3QuCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQv
YnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvTWFp
bi5qczogUmVuYW1lZCBCdWlsZGJvdFF1ZXVlLmJyYW5jaAorICAgICAgICB0byBCdWlsZGJvdFF1
ZXVlLmJyYW5jaGVzLgorICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5v
cmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL1dlYktpdEJ1aWxkYm90Lmpz
OgorICAgICAgICAoV2ViS2l0QnVpbGRib3QucHJvdG90eXBlLmdldCBkZWZhdWx0QnJhbmNoZXMp
OiBDaGFuZ2VkIHRvIG5ldyB7cmVwb3NpdG9yeSwgYnJhbmNoTmFtZX0gZm9ybWF0LgorCiAyMDE1
LTA4LTIxICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAg
IFNraXAgbm8tbGxpbnQgdGVzdHMgdGhhdCBmYWlsIGR1ZSB0byBydW5uaW5nIG91dCBvZiBleGVj
dXRhYmxlIG1lbW9yeSBhZnRlciByMTg4OTY5CmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZl
U3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2Ny
aXB0cy9CdWlsZGJvdC5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5v
cmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90LmpzCmluZGV4
IGY4MGYyNmYyZmY3YzU3ZWY0NWYzMThjZGQyYjQ0YzRhNmM3MjAxZDAuLjJmYTc5Yjc1OGY1Yjc5
ODdlZmU5MDhiOWU4MzBlZTg0MjQ5YTMwMzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVT
dXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3Jp
cHRzL0J1aWxkYm90LmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtp
dC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90LmpzCkBA
IC0xMDMsNyArMTAzLDcgQEAgQnVpbGRib3QucHJvdG90eXBlID0gewogICAgIF9ub3JtYWxpemVR
dWV1ZUluZm86IGZ1bmN0aW9uKHF1ZXVlSW5mbykKICAgICB7CiAgICAgICAgIGlmICghcXVldWVJ
bmZvLmNvbWJpbmVkUXVldWVzKQotICAgICAgICAgICAgcXVldWVJbmZvLmJyYW5jaCA9IHF1ZXVl
SW5mby5icmFuY2ggfHwgdGhpcy5kZWZhdWx0QnJhbmNoZXM7CisgICAgICAgICAgICBxdWV1ZUlu
Zm8uYnJhbmNoZXMgPSBxdWV1ZUluZm8uYnJhbmNoZXMgfHwgdGhpcy5kZWZhdWx0QnJhbmNoZXM7
CiAgICAgICAgIHF1ZXVlSW5mby5kZWJ1ZyA9IHF1ZXVlSW5mby5kZWJ1ZyB8fCBmYWxzZTsKICAg
ICAgICAgcXVldWVJbmZvLmJ1aWxkZXIgPSBxdWV1ZUluZm8uYnVpbGRlciB8fCBmYWxzZTsKICAg
ICAgICAgcXVldWVJbmZvLnRlc3RlciA9IHF1ZXVlSW5mby50ZXN0ZXIgfHwgZmFsc2U7CmRpZmYg
LS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9w
dWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdENvbWJpbmVkUXVldWVWaWV3Lmpz
IGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGlj
X2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RDb21iaW5lZFF1ZXVlVmlldy5qcwppbmRl
eCAxMzdhZmE1YzdkOWUyYTVjNzg2OTFiNWI5MTE0MjFlMGNmN2MyYThiLi5jYzE2MTk4ZTA2Nzdm
MjBhZjkzMjNjMTE3Y2U5NThlZTBhZTUxYzBkIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZl
U3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2Ny
aXB0cy9CdWlsZGJvdENvbWJpbmVkUXVldWVWaWV3LmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVT
dXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3Jp
cHRzL0J1aWxkYm90Q29tYmluZWRRdWV1ZVZpZXcuanMKQEAgLTI1LDIxICsyNSwyNiBAQAogCiBC
dWlsZGJvdENvbWJpbmVkUXVldWVWaWV3ID0gZnVuY3Rpb24ocXVldWUpCiB7Ci0gICAgY29uc29s
ZS5hc3NlcnQocXVldWUuYnJhbmNoID09PSB1bmRlZmluZWQpOwotICAgIHZhciBpbmRleE9mRmly
c3RRdWV1ZVdpdGhSZXBvc2l0b3J5ID0ge307Ci0gICAgZm9yICh2YXIgaSA9IDAsIGVuZCA9IHF1
ZXVlLmNvbWJpbmVkUXVldWVzLmxlbmd0aDsgaSA8IGVuZDsgKytpKSB7Ci0gICAgICAgIGNvbnNv
bGUuYXNzZXJ0KHF1ZXVlLmNvbWJpbmVkUXVldWVzWzBdLmJ1aWxkYm90ID09PSBxdWV1ZS5jb21i
aW5lZFF1ZXVlc1tpXS5idWlsZGJvdCk7Ci0gICAgICAgIHZhciBicmFuY2hlcyA9IHF1ZXVlLmNv
bWJpbmVkUXVldWVzW2ldLmJyYW5jaDsKLSAgICAgICAgZm9yICh2YXIgcmVwb3NpdG9yeSBpbiBi
cmFuY2hlcykgewotICAgICAgICAgICAgdmFyIGluZGV4T2ZGaXJzdFF1ZXVlID0gaW5kZXhPZkZp
cnN0UXVldWVXaXRoUmVwb3NpdG9yeVtyZXBvc2l0b3J5XTsKLSAgICAgICAgICAgIGlmIChpbmRl
eE9mRmlyc3RRdWV1ZSA9PT0gdW5kZWZpbmVkKSB7Ci0gICAgICAgICAgICAgICAgaW5kZXhPZkZp
cnN0UXVldWVXaXRoUmVwb3NpdG9yeVtyZXBvc2l0b3J5XSA9IGk7CisgICAgY29uc29sZS5hc3Nl
cnQocXVldWUuYnJhbmNoZXMgPT09IHVuZGVmaW5lZCk7CisgICAgdmFyIGluZGljZXNPZkZpcnN0
UXVldWVXaXRoUmVwb3NpdG9yeSA9IHt9OworICAgIHZhciBjb21iaW5lZFF1ZXVlcyA9IHF1ZXVl
LmNvbWJpbmVkUXVldWVzOworICAgIHZhciBidWlsZGJvdCA9IGNvbWJpbmVkUXVldWVzWzBdLmJ1
aWxkYm90OworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29tYmluZWRRdWV1ZXMubGVuZ3RoOyAr
K2kpIHsKKyAgICAgICAgdmFyIHN1YlF1ZXVlID0gY29tYmluZWRRdWV1ZXNbaV07CisgICAgICAg
IGNvbnNvbGUuYXNzZXJ0KGJ1aWxkYm90ID09PSBzdWJRdWV1ZS5idWlsZGJvdCk7CisgICAgICAg
IHZhciBicmFuY2hlcyA9IHN1YlF1ZXVlLmJyYW5jaGVzOworICAgICAgICBmb3IgKHZhciBqID0g
MDsgaiA8IGJyYW5jaGVzLmxlbmd0aDsgKytqKSB7CisgICAgICAgICAgICB2YXIgYnJhbmNoID0g
YnJhbmNoZXNbal07CisgICAgICAgICAgICB2YXIgcmVwb3NpdG9yeU5hbWUgPSBicmFuY2gucmVw
b3NpdG9yeS5uYW1lOworICAgICAgICAgICAgdmFyIGV4cGVjdGVkID0gaW5kaWNlc09mRmlyc3RR
dWV1ZVdpdGhSZXBvc2l0b3J5W3JlcG9zaXRvcnlOYW1lXTsKKyAgICAgICAgICAgIGlmIChleHBl
Y3RlZCA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgICAgaW5kaWNlc09mRmlyc3RRdWV1
ZVdpdGhSZXBvc2l0b3J5W3JlcG9zaXRvcnlOYW1lXSA9IHtxdWV1ZUluZGV4OiBpLCBicmFuY2hJ
bmRleDogan07CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICB2YXIgbWVzc2FnZSA9IHF1ZXVlLmlkICsgIjogY29tYmluZWRRdWV1ZXNbIiArIGkg
KyAiXS5icmFuY2hbIiArIHJlcG9zaXRvcnkgKyAiXSI7Ci0gICAgICAgICAgICBtZXNzYWdlICs9
ICIgPT09IGNvbWJpbmVkUXVldWVzWyIgKyBpbmRleE9mRmlyc3RRdWV1ZSArICJdLmJyYW5jaFsi
ICsgcmVwb3NpdG9yeSArICJdIjsKLSAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHF1ZXVlLmNv
bWJpbmVkUXVldWVzW2ldLmJyYW5jaFtyZXBvc2l0b3J5XQotICAgICAgICAgICAgICAgID09PSBx
dWV1ZS5jb21iaW5lZFF1ZXVlc1tpbmRleE9mRmlyc3RRdWV1ZV0uYnJhbmNoW3JlcG9zaXRvcnld
LCBtZXNzYWdlKTsKKyAgICAgICAgICAgIHZhciBleHBlY3RlZEJyYW5jaCA9IGNvbWJpbmVkUXVl
dWVzW2V4cGVjdGVkLnF1ZXVlSW5kZXhdLmJyYW5jaGVzW2V4cGVjdGVkLmJyYW5jaEluZGV4XTsK
KyAgICAgICAgICAgIHZhciBtZXNzYWdlID0gcXVldWUuaWQgKyAiOiAiICsgYnJhbmNoLm5hbWUg
KyAiID09PSBjb21iaW5lZFF1ZXVlc1siICsgaSArICJdLmJyYW5jaFsiICsgaiArICJdICI7Cisg
ICAgICAgICAgICBtZXNzYWdlICs9ICIgPT09IGNvbWJpbmVkUXVldWVzWyIgKyBleHBlY3RlZC5x
dWV1ZUluZGV4ICsgIl0uYnJhbmNoWyIgKyBleHBlY3RlZC5icmFuY2hJbmRleCArICJdID09PSAi
ICsgZXhwZWN0ZWRCcmFuY2gubmFtZTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGJyYW5j
aC5uYW1lID09PSBleHBlY3RlZEJyYW5jaC5uYW1lLCBtZXNzYWdlKTsKICAgICAgICAgfQogICAg
IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9y
Zy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RJdGVyYXRpb24u
anMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJs
aWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdEl0ZXJhdGlvbi5qcwppbmRleCBhMDRj
ZGZkNTRlN2VkNjc4YmNlZTQ0NTUxZDk5MGRjY2I1MTA1ZmI3Li5iYzQ0YmI5ZTc3M2Q3NGNhYzM0
NjgyN2ExOGMyNzIyZGJhZjdkNTcxIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9y
dC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9C
dWlsZGJvdEl0ZXJhdGlvbi5qcworKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdEl0
ZXJhdGlvbi5qcwpAQCAtMTk2LDIwICsxOTYsMjMgQEAgQnVpbGRib3RJdGVyYXRpb24ucHJvdG90
eXBlID0gewogICAgICAgICB2YXIgcmV2aXNpb25Qcm9wZXJ0eSA9IGRhdGEucHJvcGVydGllcy5m
aW5kRmlyc3QoZnVuY3Rpb24ocHJvcGVydHkpIHsKICAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0
eVswXSA9PT0gImdvdF9yZXZpc2lvbiI7CiAgICAgICAgIH0pOwotICAgICAgICBmb3IgKHJlcG9z
aXRvcnkgaW4gdGhpcy5xdWV1ZS5icmFuY2gpIHsKKyAgICAgICAgdmFyIGJyYW5jaGVzID0gdGhp
cy5xdWV1ZS5icmFuY2hlczsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicmFuY2hlcy5s
ZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnkgPSBicmFuY2hlc1tpXS5y
ZXBvc2l0b3J5OworICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnlOYW1lID0gcmVwb3NpdG9yeS5u
YW1lOwogICAgICAgICAgICAgdmFyIGtleTsKICAgICAgICAgICAgIHZhciBmYWxsYmFja0tleTsK
LSAgICAgICAgICAgIGlmIChyZXBvc2l0b3J5ID09PSBEYXNoYm9hcmQuUmVwb3NpdG9yeS5PcGVu
U291cmNlLm5hbWUpIHsKKyAgICAgICAgICAgIGlmIChyZXBvc2l0b3J5ID09PSBEYXNoYm9hcmQu
UmVwb3NpdG9yeS5PcGVuU291cmNlKSB7CiAgICAgICAgICAgICAgICAga2V5ID0gIldlYktpdCI7
CiAgICAgICAgICAgICAgICAgZmFsbGJhY2tLZXkgPSAib3BlbnNvdXJjZSI7Ci0gICAgICAgICAg
ICB9IGVsc2UgaWYgKHJlcG9zaXRvcnkgPT09IERhc2hib2FyZC5SZXBvc2l0b3J5LkludGVybmFs
Lm5hbWUpIHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAocmVwb3NpdG9yeSA9PT0gRGFzaGJvYXJk
LlJlcG9zaXRvcnkuSW50ZXJuYWwpIHsKICAgICAgICAgICAgICAgICBrZXkgPSAiSW50ZXJuYWwi
OwogICAgICAgICAgICAgICAgIGZhbGxiYWNrS2V5ID0gImludGVybmFsIjsKICAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAga2V5ID0gcmVwb3NpdG9yeTsKKyAgICAgICAgICAg
ICAgICBrZXkgPSByZXBvc2l0b3J5TmFtZTsKICAgICAgICAgICAgICAgICBmYWxsYmFja0tleSA9
IG51bGw7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB0aGlzLnJldmlzaW9uW3JlcG9zaXRv
cnldID0gcGFyc2VSZXZpc2lvblByb3BlcnR5KHJldmlzaW9uUHJvcGVydHksIGtleSwgZmFsbGJh
Y2tLZXkpOworICAgICAgICAgICAgdGhpcy5yZXZpc2lvbltyZXBvc2l0b3J5TmFtZV0gPSBwYXJz
ZVJldmlzaW9uUHJvcGVydHkocmV2aXNpb25Qcm9wZXJ0eSwga2V5LCBmYWxsYmFja0tleSk7CiAg
ICAgICAgIH0KIAogICAgICAgICBmdW5jdGlvbiBzb3VyY2VTdGFtcENoYW5nZXMoc291cmNlU3Rh
bXApIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5v
cmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWUuanMg
Yi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNf
aHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlLmpzCmluZGV4IDcwNTlkYWEyMGNk
OTYyZmVlZDEyYTMzZWI1OGZkMzhjYTk5YThlMmEuLmU0YTk5NTExZjg5OTJiNzQ4ZWU4ODBmMzAw
NTczNmQ4NmQyYWRkYTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxk
LndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90
UXVldWUuanMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1j
b25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qcwpAQCAt
MzQsNyArMzQsNyBAQCBCdWlsZGJvdFF1ZXVlID0gZnVuY3Rpb24oYnVpbGRib3QsIGlkLCBpbmZv
KQogICAgIHRoaXMuaWQgPSBpZDsKIAogICAgIC8vIEZJWE1FOiBTb21lIG9mIHRoZXNlIGFyZSBw
cmVzZW50YXRpb24gb25seSwgYW5kIHNob3VsZCBiZSBoYW5kbGVkIGFib3ZlIEJ1aWxkYm90UXVl
dWUgbGV2ZWwuCi0gICAgdGhpcy5icmFuY2ggPSBpbmZvLmJyYW5jaDsKKyAgICB0aGlzLmJyYW5j
aGVzID0gaW5mby5icmFuY2hlczsKICAgICB0aGlzLnBsYXRmb3JtID0gaW5mby5wbGF0Zm9ybS5u
YW1lOwogICAgIHRoaXMuZGVidWcgPSBpbmZvLmRlYnVnOwogICAgIHRoaXMuYnVpbGRlciA9IGlu
Zm8uYnVpbGRlcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndl
YmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVl
dWVWaWV3LmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25m
aWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanMKaW5k
ZXggYjVhODlkNGI4MDE2MDk3NzIyZDY4ZGM1NTc0MDNjZjM4MDY2ZTZhNy4uNDM0ZTU0MjVhMzRm
ZmIzMWE0YmVjOGIxODgwNDQ2MmZjYjE0ZjFlNiAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2
ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1Nj
cmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQv
YnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVp
bGRib3RRdWV1ZVZpZXcuanMKQEAgLTgwLDExICs4MCwxMiBAQCBCdWlsZGJvdFF1ZXVlVmlldy5w
cm90b3R5cGUgPSB7CiAKICAgICAgICAgLy8gRklYTUU6IFRvIGJlIDEwMCUgY29ycmVjdCwgd2Ug
c2hvdWxkIGFsc28gZmlsdGVyIG91dCBjaGFuZ2VzIHRoYXQgYXJlIGlnbm9yZWQgYnkKICAgICAg
ICAgLy8gdGhlIHF1ZXVlLCBzZWUgX3Nob3VsZF9maWxlX3RyaWdnZXJfYnVpbGQgaW4gd2tidWls
ZC5weS4KLSAgICAgICAgdmFyIHNvcnRlZFJlcG9zaXRvcmllcyA9IERhc2hib2FyZC5zb3J0ZWRS
ZXBvc2l0b3JpZXM7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc29ydGVkUmVwb3NpdG9y
aWVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgICAgICB2YXIgcmVwb3NpdG9yeSA9IHNvcnRlZFJl
cG9zaXRvcmllc1tpXTsKLSAgICAgICAgICAgIHZhciB0cmFjID0gcmVwb3NpdG9yeS50cmFjOwor
ICAgICAgICB2YXIgYnJhbmNoZXMgPSBxdWV1ZS5icmFuY2hlczsKKyAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBicmFuY2hlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIGJyYW5j
aCA9IGJyYW5jaGVzW2ldOworICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnkgPSBicmFuY2gucmVw
b3NpdG9yeTsKICAgICAgICAgICAgIHZhciByZXBvc2l0b3J5TmFtZSA9IHJlcG9zaXRvcnkubmFt
ZTsKKyAgICAgICAgICAgIHZhciB0cmFjID0gcmVwb3NpdG9yeS50cmFjOwogICAgICAgICAgICAg
dmFyIGxhdGVzdFByb2R1Y3RpdmVSZXZpc2lvbk51bWJlciA9IGxhdGVzdFByb2R1Y3RpdmVJdGVy
YXRpb24ucmV2aXNpb25bcmVwb3NpdG9yeU5hbWVdOwogICAgICAgICAgICAgaWYgKCFsYXRlc3RQ
cm9kdWN0aXZlUmV2aXNpb25OdW1iZXIpCiAgICAgICAgICAgICAgICAgY29udGludWU7CkBAIC05
Myw3ICs5NCw3IEBAIEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIHRvdGFsUmV2aXNpb25z
QmVoaW5kICs9IHRyYWMuY29tbWl0c09uQnJhbmNoKHF1ZXVlLmJyYW5jaFtyZXBvc2l0b3J5TmFt
ZV0sIGZ1bmN0aW9uKGNvbW1pdCkgeyByZXR1cm4gY29tbWl0LnJldmlzaW9uTnVtYmVyID4gbGF0
ZXN0UHJvZHVjdGl2ZVJldmlzaW9uTnVtYmVyOyB9KS5sZW5ndGg7CisgICAgICAgICAgICB0b3Rh
bFJldmlzaW9uc0JlaGluZCArPSB0cmFjLmNvbW1pdHNPbkJyYW5jaChicmFuY2gubmFtZSwgZnVu
Y3Rpb24oY29tbWl0KSB7IHJldHVybiBjb21taXQucmV2aXNpb25OdW1iZXIgPiBsYXRlc3RQcm9k
dWN0aXZlUmV2aXNpb25OdW1iZXI7IH0pLmxlbmd0aDsKICAgICAgICAgfQogCiAgICAgICAgIGlm
ICghdG90YWxSZXZpc2lvbnNCZWhpbmQpCkBAIC0xNTQsMTUgKzE1NSwxNiBAQCBCdWlsZGJvdFF1
ZXVlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIGNvbnRlbnQuY2xhc3NOYW1lID0gImNvbW1p
dC1oaXN0b3J5LXBvcG92ZXIiOwogCiAgICAgICAgIHZhciBzaG91bGRBZGREaXZpZGVyID0gZmFs
c2U7Ci0gICAgICAgIHZhciBzb3J0ZWRSZXBvc2l0b3JpZXMgPSBEYXNoYm9hcmQuc29ydGVkUmVw
b3NpdG9yaWVzOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRlZFJlcG9zaXRvcmll
cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnkgPSBzb3J0ZWRSZXBv
c2l0b3JpZXNbaV07Ci0gICAgICAgICAgICB2YXIgdHJhYyA9IHJlcG9zaXRvcnkudHJhYzsKKyAg
ICAgICAgdmFyIGJyYW5jaGVzID0gcXVldWUuYnJhbmNoZXM7CisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgYnJhbmNoZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBicmFuY2gg
PSBicmFuY2hlc1tpXTsKKyAgICAgICAgICAgIHZhciByZXBvc2l0b3J5ID0gYnJhbmNoLnJlcG9z
aXRvcnk7CiAgICAgICAgICAgICB2YXIgcmVwb3NpdG9yeU5hbWUgPSByZXBvc2l0b3J5Lm5hbWU7
CisgICAgICAgICAgICB2YXIgdHJhYyA9IHJlcG9zaXRvcnkudHJhYzsKICAgICAgICAgICAgIHZh
ciBsYXRlc3RQcm9kdWN0aXZlUmV2aXNpb25OdW1iZXIgPSBsYXRlc3RQcm9kdWN0aXZlSXRlcmF0
aW9uLnJldmlzaW9uW3JlcG9zaXRvcnlOYW1lXTsKICAgICAgICAgICAgIGlmICghbGF0ZXN0UHJv
ZHVjdGl2ZVJldmlzaW9uTnVtYmVyIHx8ICF0cmFjLmxhdGVzdFJlY29yZGVkUmV2aXNpb25OdW1i
ZXIpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB2YXIgbGluZXMgPSB0
aGlzLl9wb3BvdmVyTGluZXNGb3JDb21taXRSYW5nZSh0cmFjLCBxdWV1ZS5icmFuY2hbcmVwb3Np
dG9yeU5hbWVdLCBsYXRlc3RQcm9kdWN0aXZlUmV2aXNpb25OdW1iZXIgKyAxLCB0cmFjLmxhdGVz
dFJlY29yZGVkUmV2aXNpb25OdW1iZXIpOworICAgICAgICAgICAgdmFyIGxpbmVzID0gdGhpcy5f
cG9wb3ZlckxpbmVzRm9yQ29tbWl0UmFuZ2UodHJhYywgYnJhbmNoLm5hbWUsIGxhdGVzdFByb2R1
Y3RpdmVSZXZpc2lvbk51bWJlciArIDEsIHRyYWMubGF0ZXN0UmVjb3JkZWRSZXZpc2lvbk51bWJl
cik7CiAgICAgICAgICAgICB2YXIgbGVuZ3RoID0gbGluZXMubGVuZ3RoOwogICAgICAgICAgICAg
aWYgKGxlbmd0aCAmJiBzaG91bGRBZGREaXZpZGVyKQogICAgICAgICAgICAgICAgIHRoaXMuX2Fk
ZERpdmlkZXJUb1BvcG92ZXIoY29udGVudCk7CkBAIC0yMDgsOCArMjEwLDkgQEAgQnVpbGRib3RR
dWV1ZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LAogCi0g
ICAgX3JldmlzaW9uQ29udGVudFdpdGhQb3BvdmVyRm9ySXRlcmF0aW9uOiBmdW5jdGlvbihpdGVy
YXRpb24sIHByZXZpb3VzSXRlcmF0aW9uLCByZXBvc2l0b3J5KQorICAgIF9yZXZpc2lvbkNvbnRl
bnRXaXRoUG9wb3ZlckZvckl0ZXJhdGlvbjogZnVuY3Rpb24oaXRlcmF0aW9uLCBwcmV2aW91c0l0
ZXJhdGlvbiwgYnJhbmNoKQogICAgIHsKKyAgICAgICAgdmFyIHJlcG9zaXRvcnkgPSBicmFuY2gu
cmVwb3NpdG9yeTsKICAgICAgICAgdmFyIHJlcG9zaXRvcnlOYW1lID0gcmVwb3NpdG9yeS5uYW1l
OwogICAgICAgICBjb25zb2xlLmFzc2VydChpdGVyYXRpb24ucmV2aXNpb25bcmVwb3NpdG9yeU5h
bWVdKTsKICAgICAgICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFu
Iik7CkBAIC0yMjAsNyArMjIzLDcgQEAgQnVpbGRib3RRdWV1ZVZpZXcucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgY29uc29sZS5hc3NlcnQocHJldmlvdXNJdGVyYXRpb24ucmV2aXNpb25bcmVw
b3NpdG9yeU5hbWVdKTsKICAgICAgICAgICAgIHZhciBjb250ZXh0ID0gewogICAgICAgICAgICAg
ICAgIHRyYWM6IHJlcG9zaXRvcnkudHJhYywKLSAgICAgICAgICAgICAgICBicmFuY2g6IGl0ZXJh
dGlvbi5xdWV1ZS5icmFuY2hbcmVwb3NpdG9yeU5hbWVdLAorICAgICAgICAgICAgICAgIGJyYW5j
aDogYnJhbmNoLm5hbWUsCiAgICAgICAgICAgICAgICAgZmlyc3RSZXZpc2lvbjogcHJldmlvdXNJ
dGVyYXRpb24ucmV2aXNpb25bcmVwb3NpdG9yeU5hbWVdICsgMSwKICAgICAgICAgICAgICAgICBs
YXN0UmV2aXNpb246IGl0ZXJhdGlvbi5yZXZpc2lvbltyZXBvc2l0b3J5TmFtZV0KICAgICAgICAg
ICAgIH07CkBAIC0yNjksMTIgKzI3MiwxMiBAQCBCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUg
PSB7CiAgICAgewogICAgICAgICB2YXIgZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVu
dEZyYWdtZW50KCk7CiAgICAgICAgIHZhciBzaG91bGRBZGRQbHVzU2lnbiA9IGZhbHNlOwotICAg
ICAgICB2YXIgc29ydGVkUmVwb3NpdG9yaWVzID0gRGFzaGJvYXJkLnNvcnRlZFJlcG9zaXRvcmll
czsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0ZWRSZXBvc2l0b3JpZXMubGVuZ3Ro
OyArK2kpIHsKLSAgICAgICAgICAgIHZhciByZXBvc2l0b3J5ID0gc29ydGVkUmVwb3NpdG9yaWVz
W2ldOwotICAgICAgICAgICAgaWYgKCFpdGVyYXRpb24ucmV2aXNpb25bcmVwb3NpdG9yeS5uYW1l
XSkKKyAgICAgICAgdmFyIGJyYW5jaGVzID0gaXRlcmF0aW9uLnF1ZXVlLmJyYW5jaGVzOworICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJyYW5jaGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAg
ICAgICB2YXIgYnJhbmNoID0gYnJhbmNoZXNbaV07CisgICAgICAgICAgICBpZiAoIWl0ZXJhdGlv
bi5yZXZpc2lvblticmFuY2gucmVwb3NpdG9yeS5uYW1lXSkKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgICAgIHZhciBjb250ZW50ID0gdGhpcy5fcmV2aXNpb25Db250ZW50V2l0
aFBvcG92ZXJGb3JJdGVyYXRpb24oaXRlcmF0aW9uLCBwcmV2aW91c0Rpc3BsYXllZEl0ZXJhdGlv
biwgcmVwb3NpdG9yeSk7CisgICAgICAgICAgICB2YXIgY29udGVudCA9IHRoaXMuX3JldmlzaW9u
Q29udGVudFdpdGhQb3BvdmVyRm9ySXRlcmF0aW9uKGl0ZXJhdGlvbiwgcHJldmlvdXNEaXNwbGF5
ZWRJdGVyYXRpb24sIGJyYW5jaCk7CiAgICAgICAgICAgICBpZiAoc2hvdWxkQWRkUGx1c1NpZ24p
CiAgICAgICAgICAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoIiBcdWZmMGIgIikpOwogICAgICAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoY29u
dGVudCk7CmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQu
b3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9EYXNoYm9hcmQuanMgYi9U
b29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRt
bC9kYXNoYm9hcmQvU2NyaXB0cy9EYXNoYm9hcmQuanMKaW5kZXggY2Q1NzVhNjhlOTdkMTUwYjc2
MTQwYzE3ZGIxOTg5MjJjNzZmNGFmNC4uYWU4NzA0NjEzODg1OThiNTNiYjFhYmNkMGQ5Mzk4NTcw
OGQ1ZjFmYyAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0
Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvRGFzaGJvYXJkLmpzCisr
KyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1Ymxp
Y19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0Rhc2hib2FyZC5qcwpAQCAtMzcsOCArMzcsNyBAQCBE
YXNoYm9hcmQgPSB7CiAgICAgfSwKICAgICBCcmFuY2g6IHt9LAogICAgIFJlcG9zaXRvcnk6IHsK
LSAgICAgICAgT3BlblNvdXJjZTogeyBuYW1lOiAib3BlblNvdXJjZSIsIG9yZGVyOiAwIH0sCi0g
ICAgICAgIEludGVybmFsOiB7IG5hbWU6ICJpbnRlcm5hbCIsIG9yZGVyOiAxIH0sCisgICAgICAg
IE9wZW5Tb3VyY2U6IHsgaXNTVk46IHRydWUsIG5hbWU6ICJvcGVuU291cmNlIiwgb3JkZXI6IDAg
fSwKICAgICB9LAogICAgIGdldCBzb3J0ZWRQbGF0Zm9ybXMoKQogICAgIHsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19o
dG1sL2Rhc2hib2FyZC9TY3JpcHRzL01haW4uanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9i
dWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NYWlu
LmpzCmluZGV4IDY3ZjI5MmE3N2JkZmUwNGY3NjAzNGUxOGQ4YjRlZjA5MzQ3NDhlYmYuLjk2NWI2
MjZjY2QwNTNmOTg3MWJjYTA2OGZjNTM1NzA1ODI0N2JjYTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1
aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hi
b2FyZC9TY3JpcHRzL01haW4uanMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQu
d2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvTWFpbi5qcwpA
QCAtMzUsNyArMzUsNyBAQCBmb3IgKHZhciBpID0gMDsgaSA8IGJ1aWxkYm90cy5sZW5ndGg7ICsr
aSkgewogICAgICAgICAgICAgdmFyIGluZm8gPSBidWlsZGJvdC5xdWV1ZXNJbmZvW2lkXTsKICAg
ICAgICAgICAgIHZhciBxdWV1ZSA9IHsKICAgICAgICAgICAgICAgICBpZDogaWQsCi0gICAgICAg
ICAgICAgICAgYnJhbmNoOiBpbmZvLmJyYW5jaCwKKyAgICAgICAgICAgICAgICBicmFuY2hlczog
aW5mby5icmFuY2hlcywKICAgICAgICAgICAgICAgICBwbGF0Zm9ybTogaW5mby5wbGF0Zm9ybS5u
YW1lLAogICAgICAgICAgICAgICAgIGhlYWRpbmc6IGluZm8uaGVhZGluZywKICAgICAgICAgICAg
ICAgICBidWlsZGVyOiBpbmZvLmJ1aWxkZXIsCmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZl
U3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2Ny
aXB0cy9XZWJLaXRCdWlsZGJvdC5qcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndl
YmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL1dlYktpdEJ1aWxk
Ym90LmpzCmluZGV4IDRjMDI2NGMxOGExMjYzNTE3MjU5YmY0ZDFhZjJkYzdjZWRkNjJiYmMuLmRk
MWJkZDFkZmE3NDYwMTA3YjA1OTEzNWZkNjBjN2Y2NWE3MGRkN2QgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rh
c2hib2FyZC9TY3JpcHRzL1dlYktpdEJ1aWxkYm90LmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVT
dXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3Jp
cHRzL1dlYktpdEJ1aWxkYm90LmpzCkBAIC03Nyw3ICs3Nyw3IEBAIFdlYktpdEJ1aWxkYm90LnBy
b3RvdHlwZSA9IHsKIAogICAgIGdldCBkZWZhdWx0QnJhbmNoZXMoKQogICAgIHsKLSAgICAgICAg
cmV0dXJuIHsgb3BlblNvdXJjZTogInRydW5rIiB9OworICAgICAgICByZXR1cm4gW3sgcmVwb3Np
dG9yeTogRGFzaGJvYXJkLlJlcG9zaXRvcnkuT3BlblNvdXJjZSwgbmFtZTogInRydW5rIiB9XTsK
ICAgICB9LAogCiAgICAgbGF5b3V0VGVzdFJlc3VsdHNEaXJlY3RvcnlVUkxGb3JJdGVyYXRpb246
IGZ1bmN0aW9uKGl0ZXJhdGlvbikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259691</attachid>
            <date>2015-08-21 17:51:14 -0700</date>
            <delta_ts>2015-08-21 18:39:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148188-20150821175108.patch</filename>
            <type>text/plain</type>
            <size>15646</size>
            <attacher name="Jason Marcell">jmarcell</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0NjRk
NzEyN2NlOTM4NDk1ZjQ1ZmQ1ZDgyM2FjZjY3YjBkYjA3ZGZiLi40MmU2MzUyNGY0MDEwOGFkZGFj
N2EzZTRlNDYwMmJmNThhOWFjYmI4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTUtMDgtMjEgIEphc29uIE1hcmNl
bGwgIDxqbWFyY2VsbEBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBEYXNoYm9hcmQuQnJhbmNo
ZXMgYmUgb2JqZWN0cyBvZiB0aGUgZm9ybSAocmVwb3NpdG9yeSwgImJyYW5jaCBuYW1lIikgYW5k
IHVwZGF0ZSBleGlzdGluZyBjb2RlCisgICAgICAgIHRvIHdvcmsgd2l0aCB0aGVzZSBuZXcgb2Jq
ZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
ODE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
QnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFz
aGJvYXJkL1NjcmlwdHMvQnVpbGRib3QuanM6CisgICAgICAgIChCdWlsZGJvdC5wcm90b3R5cGUu
X25vcm1hbGl6ZVF1ZXVlSW5mbyk6IFJlbmFtZWQgQnVpbGRib3RRdWV1ZS5icmFuY2ggdG8gQnVp
bGRib3RRdWV1ZS5icmFuY2hlcy4KKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53
ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdENv
bWJpbmVkUXVldWVWaWV3LmpzOgorICAgICAgICAoQnVpbGRib3RDb21iaW5lZFF1ZXVlVmlldyk6
IENoYW5nZWQgdG8gd29yayB3aXRoIG5ldyBicmFuY2ggb2JqZWN0cyB3aGljaCByZXByZXNlbnQg
YQorICAgICAgICAocmVwb3NpdG9yeSwgImJyYW5jaCBuYW1lIiktcGFpci4KKyAgICAgICAgKiBC
dWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNo
Ym9hcmQvU2NyaXB0cy9CdWlsZGJvdEl0ZXJhdGlvbi5qczogRGl0dG8uCisgICAgICAgICogQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qczoKKyAgICAgICAgKEJ1aWxkYm90UXVldWUpOiBS
ZW5hbWVkIEJ1aWxkYm90UXVldWUuYnJhbmNoIHRvIEJ1aWxkYm90UXVldWUuYnJhbmNoZXMuCisg
ICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGlj
X2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanM6CisgICAgICAgIChC
dWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUuX2FwcGVuZFBlbmRpbmdSZXZpc2lvbkNvdW50KTog
Q2hhbmdlZCB0byB3b3JrIHdpdGggbmV3IGJyYW5jaAorICAgICAgICBvYmplY3RzIHdoaWNoIHJl
cHJlc2VudCBhIChyZXBvc2l0b3J5LCAiYnJhbmNoIG5hbWUiKS1wYWlyLgorICAgICAgICAoQnVp
bGRib3RRdWV1ZVZpZXcucHJvdG90eXBlLl9wcmVzZW50UG9wb3ZlckZvclBlbmRpbmdDb21taXRz
KTogRGl0dG8uCisgICAgICAgIChCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUuX3JldmlzaW9u
Q29udGVudFdpdGhQb3BvdmVyRm9ySXRlcmF0aW9uKTogRGl0dG8uCisgICAgICAgIChCdWlsZGJv
dFF1ZXVlVmlldy5wcm90b3R5cGUuX2FkZERpdmlkZXJUb1BvcG92ZXIpOiBEaXR0by4KKyAgICAg
ICAgKEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZS5yZXZpc2lvbkNvbnRlbnRGb3JJdGVyYXRp
b24pOiBEaXR0by4KKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3Jn
LWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NYWluLmpzOiBSZW5hbWVkCisg
ICAgICAgIEJ1aWxkYm90UXVldWUuYnJhbmNoIHRvIEJ1aWxkYm90UXVldWUuYnJhbmNoZXMuCisg
ICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGlj
X2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvV2ViS2l0QnVpbGRib3QuanM6CisgICAgICAgIChXZWJL
aXRCdWlsZGJvdC5wcm90b3R5cGUuZ2V0IGRlZmF1bHRCcmFuY2hlcyk6IENoYW5nZWQgdG8gbmV3
IChyZXBvc2l0b3J5LCAiYnJhbmNoIG5hbWUiKSBmb3JtYXQuCisKIDIwMTUtMDgtMjEgIFl1c3Vr
ZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgU2tpcCBuby1sbGlu
dCB0ZXN0cyB0aGF0IGZhaWwgZHVlIHRvIHJ1bm5pbmcgb3V0IG9mIGV4ZWN1dGFibGUgbWVtb3J5
IGFmdGVyIHIxODg5NjkKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxk
LndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90
LmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVi
bGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3QuanMKaW5kZXggZjgwZjI2ZjJmZjdj
NTdlZjQ1ZjMxOGNkZDJiNDRjNGE2YzcyMDFkMC4uMmZhNzliNzU4ZjViNzk4N2VmZTkwOGI5ZTgz
MGVlODQyNDlhMzAzNCAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQu
d2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3Qu
anMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcv
cHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3QuanMKQEAgLTEwMyw3ICsxMDMs
NyBAQCBCdWlsZGJvdC5wcm90b3R5cGUgPSB7CiAgICAgX25vcm1hbGl6ZVF1ZXVlSW5mbzogZnVu
Y3Rpb24ocXVldWVJbmZvKQogICAgIHsKICAgICAgICAgaWYgKCFxdWV1ZUluZm8uY29tYmluZWRR
dWV1ZXMpCi0gICAgICAgICAgICBxdWV1ZUluZm8uYnJhbmNoID0gcXVldWVJbmZvLmJyYW5jaCB8
fCB0aGlzLmRlZmF1bHRCcmFuY2hlczsKKyAgICAgICAgICAgIHF1ZXVlSW5mby5icmFuY2hlcyA9
IHF1ZXVlSW5mby5icmFuY2hlcyB8fCB0aGlzLmRlZmF1bHRCcmFuY2hlczsKICAgICAgICAgcXVl
dWVJbmZvLmRlYnVnID0gcXVldWVJbmZvLmRlYnVnIHx8IGZhbHNlOwogICAgICAgICBxdWV1ZUlu
Zm8uYnVpbGRlciA9IHF1ZXVlSW5mby5idWlsZGVyIHx8IGZhbHNlOwogICAgICAgICBxdWV1ZUlu
Zm8udGVzdGVyID0gcXVldWVJbmZvLnRlc3RlciB8fCBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rh
c2hib2FyZC9TY3JpcHRzL0J1aWxkYm90Q29tYmluZWRRdWV1ZVZpZXcuanMgYi9Ub29scy9CdWls
ZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9h
cmQvU2NyaXB0cy9CdWlsZGJvdENvbWJpbmVkUXVldWVWaWV3LmpzCmluZGV4IDEzN2FmYTVjN2Q5
ZTJhNWM3ODY5MWI1YjkxMTQyMWUwY2Y3YzJhOGIuLjhmMzIyMjI0NWMzYTlkOGExMjY2NzM5Mzhl
NTY3OWRlZDc0Y2Q1NWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxk
LndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90
Q29tYmluZWRRdWV1ZVZpZXcuanMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQu
d2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RD
b21iaW5lZFF1ZXVlVmlldy5qcwpAQCAtMjUsMjEgKzI1LDI2IEBACiAKIEJ1aWxkYm90Q29tYmlu
ZWRRdWV1ZVZpZXcgPSBmdW5jdGlvbihxdWV1ZSkKIHsKLSAgICBjb25zb2xlLmFzc2VydChxdWV1
ZS5icmFuY2ggPT09IHVuZGVmaW5lZCk7Ci0gICAgdmFyIGluZGV4T2ZGaXJzdFF1ZXVlV2l0aFJl
cG9zaXRvcnkgPSB7fTsKLSAgICBmb3IgKHZhciBpID0gMCwgZW5kID0gcXVldWUuY29tYmluZWRR
dWV1ZXMubGVuZ3RoOyBpIDwgZW5kOyArK2kpIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQocXVl
dWUuY29tYmluZWRRdWV1ZXNbMF0uYnVpbGRib3QgPT09IHF1ZXVlLmNvbWJpbmVkUXVldWVzW2ld
LmJ1aWxkYm90KTsKLSAgICAgICAgdmFyIGJyYW5jaGVzID0gcXVldWUuY29tYmluZWRRdWV1ZXNb
aV0uYnJhbmNoOwotICAgICAgICBmb3IgKHZhciByZXBvc2l0b3J5IGluIGJyYW5jaGVzKSB7Ci0g
ICAgICAgICAgICB2YXIgaW5kZXhPZkZpcnN0UXVldWUgPSBpbmRleE9mRmlyc3RRdWV1ZVdpdGhS
ZXBvc2l0b3J5W3JlcG9zaXRvcnldOwotICAgICAgICAgICAgaWYgKGluZGV4T2ZGaXJzdFF1ZXVl
ID09PSB1bmRlZmluZWQpIHsKLSAgICAgICAgICAgICAgICBpbmRleE9mRmlyc3RRdWV1ZVdpdGhS
ZXBvc2l0b3J5W3JlcG9zaXRvcnldID0gaTsKKyAgICBjb25zb2xlLmFzc2VydChxdWV1ZS5icmFu
Y2hlcyA9PT0gdW5kZWZpbmVkKTsKKyAgICB2YXIgaW5kaWNlc09mRmlyc3RRdWV1ZVdpdGhSZXBv
c2l0b3J5ID0ge307CisgICAgdmFyIGNvbWJpbmVkUXVldWVzID0gcXVldWUuY29tYmluZWRRdWV1
ZXM7CisgICAgdmFyIGJ1aWxkYm90ID0gY29tYmluZWRRdWV1ZXNbMF0uYnVpbGRib3Q7CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBjb21iaW5lZFF1ZXVlcy5sZW5ndGg7ICsraSkgeworICAgICAg
ICB2YXIgc3ViUXVldWUgPSBjb21iaW5lZFF1ZXVlc1tpXTsKKyAgICAgICAgY29uc29sZS5hc3Nl
cnQoYnVpbGRib3QgPT09IHN1YlF1ZXVlLmJ1aWxkYm90KTsKKyAgICAgICAgdmFyIGJyYW5jaGVz
ID0gc3ViUXVldWUuYnJhbmNoZXM7CisgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgYnJhbmNo
ZXMubGVuZ3RoOyArK2opIHsKKyAgICAgICAgICAgIHZhciBicmFuY2ggPSBicmFuY2hlc1tqXTsK
KyAgICAgICAgICAgIHZhciByZXBvc2l0b3J5TmFtZSA9IGJyYW5jaC5yZXBvc2l0b3J5Lm5hbWU7
CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWQgPSBpbmRpY2VzT2ZGaXJzdFF1ZXVlV2l0aFJlcG9z
aXRvcnlbcmVwb3NpdG9yeU5hbWVdOworICAgICAgICAgICAgaWYgKGV4cGVjdGVkID09PSB1bmRl
ZmluZWQpIHsKKyAgICAgICAgICAgICAgICBpbmRpY2VzT2ZGaXJzdFF1ZXVlV2l0aFJlcG9zaXRv
cnlbcmVwb3NpdG9yeU5hbWVdID0geyBxdWV1ZUluZGV4OiBpLCBicmFuY2hJbmRleDogaiB9Owog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgdmFy
IG1lc3NhZ2UgPSBxdWV1ZS5pZCArICI6IGNvbWJpbmVkUXVldWVzWyIgKyBpICsgIl0uYnJhbmNo
WyIgKyByZXBvc2l0b3J5ICsgIl0iOwotICAgICAgICAgICAgbWVzc2FnZSArPSAiID09PSBjb21i
aW5lZFF1ZXVlc1siICsgaW5kZXhPZkZpcnN0UXVldWUgKyAiXS5icmFuY2hbIiArIHJlcG9zaXRv
cnkgKyAiXSI7Ci0gICAgICAgICAgICBjb25zb2xlLmFzc2VydChxdWV1ZS5jb21iaW5lZFF1ZXVl
c1tpXS5icmFuY2hbcmVwb3NpdG9yeV0KLSAgICAgICAgICAgICAgICA9PT0gcXVldWUuY29tYmlu
ZWRRdWV1ZXNbaW5kZXhPZkZpcnN0UXVldWVdLmJyYW5jaFtyZXBvc2l0b3J5XSwgbWVzc2FnZSk7
CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRCcmFuY2ggPSBjb21iaW5lZFF1ZXVlc1tleHBlY3Rl
ZC5xdWV1ZUluZGV4XS5icmFuY2hlc1tleHBlY3RlZC5icmFuY2hJbmRleF07CisgICAgICAgICAg
ICB2YXIgbWVzc2FnZSA9IHF1ZXVlLmlkICsgIjogIiArIGJyYW5jaC5uYW1lICsgIiA9PT0gY29t
YmluZWRRdWV1ZXNbIiArIGkgKyAiXS5icmFuY2hbIiArIGogKyAiXSAiOworICAgICAgICAgICAg
bWVzc2FnZSArPSAiPT09IGNvbWJpbmVkUXVldWVzWyIgKyBleHBlY3RlZC5xdWV1ZUluZGV4ICsg
Il0uYnJhbmNoWyIgKyBleHBlY3RlZC5icmFuY2hJbmRleCArICJdID09PSAiICsgZXhwZWN0ZWRC
cmFuY2gubmFtZTsKKyAgICAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGJyYW5jaC5uYW1lID09PSBl
eHBlY3RlZEJyYW5jaC5uYW1lLCBtZXNzYWdlKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0t
Z2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVi
bGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RJdGVyYXRpb24uanMgYi9Ub29scy9C
dWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNo
Ym9hcmQvU2NyaXB0cy9CdWlsZGJvdEl0ZXJhdGlvbi5qcwppbmRleCBhMDRjZGZkNTRlN2VkNjc4
YmNlZTQ0NTUxZDk5MGRjY2I1MTA1ZmI3Li5iYzQ0YmI5ZTc3M2Q3NGNhYzM0NjgyN2ExOGMyNzIy
ZGJhZjdkNTcxIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJr
aXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdEl0ZXJh
dGlvbi5qcworKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNv
bmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9CdWlsZGJvdEl0ZXJhdGlvbi5qcwpA
QCAtMTk2LDIwICsxOTYsMjMgQEAgQnVpbGRib3RJdGVyYXRpb24ucHJvdG90eXBlID0gewogICAg
ICAgICB2YXIgcmV2aXNpb25Qcm9wZXJ0eSA9IGRhdGEucHJvcGVydGllcy5maW5kRmlyc3QoZnVu
Y3Rpb24ocHJvcGVydHkpIHsKICAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eVswXSA9PT0gImdv
dF9yZXZpc2lvbiI7CiAgICAgICAgIH0pOwotICAgICAgICBmb3IgKHJlcG9zaXRvcnkgaW4gdGhp
cy5xdWV1ZS5icmFuY2gpIHsKKyAgICAgICAgdmFyIGJyYW5jaGVzID0gdGhpcy5xdWV1ZS5icmFu
Y2hlczsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicmFuY2hlcy5sZW5ndGg7ICsraSkg
eworICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnkgPSBicmFuY2hlc1tpXS5yZXBvc2l0b3J5Owor
ICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnlOYW1lID0gcmVwb3NpdG9yeS5uYW1lOwogICAgICAg
ICAgICAgdmFyIGtleTsKICAgICAgICAgICAgIHZhciBmYWxsYmFja0tleTsKLSAgICAgICAgICAg
IGlmIChyZXBvc2l0b3J5ID09PSBEYXNoYm9hcmQuUmVwb3NpdG9yeS5PcGVuU291cmNlLm5hbWUp
IHsKKyAgICAgICAgICAgIGlmIChyZXBvc2l0b3J5ID09PSBEYXNoYm9hcmQuUmVwb3NpdG9yeS5P
cGVuU291cmNlKSB7CiAgICAgICAgICAgICAgICAga2V5ID0gIldlYktpdCI7CiAgICAgICAgICAg
ICAgICAgZmFsbGJhY2tLZXkgPSAib3BlbnNvdXJjZSI7Ci0gICAgICAgICAgICB9IGVsc2UgaWYg
KHJlcG9zaXRvcnkgPT09IERhc2hib2FyZC5SZXBvc2l0b3J5LkludGVybmFsLm5hbWUpIHsKKyAg
ICAgICAgICAgIH0gZWxzZSBpZiAocmVwb3NpdG9yeSA9PT0gRGFzaGJvYXJkLlJlcG9zaXRvcnku
SW50ZXJuYWwpIHsKICAgICAgICAgICAgICAgICBrZXkgPSAiSW50ZXJuYWwiOwogICAgICAgICAg
ICAgICAgIGZhbGxiYWNrS2V5ID0gImludGVybmFsIjsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAga2V5ID0gcmVwb3NpdG9yeTsKKyAgICAgICAgICAgICAgICBrZXkgPSBy
ZXBvc2l0b3J5TmFtZTsKICAgICAgICAgICAgICAgICBmYWxsYmFja0tleSA9IG51bGw7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB0aGlzLnJldmlzaW9uW3JlcG9zaXRvcnldID0gcGFyc2VS
ZXZpc2lvblByb3BlcnR5KHJldmlzaW9uUHJvcGVydHksIGtleSwgZmFsbGJhY2tLZXkpOworICAg
ICAgICAgICAgdGhpcy5yZXZpc2lvbltyZXBvc2l0b3J5TmFtZV0gPSBwYXJzZVJldmlzaW9uUHJv
cGVydHkocmV2aXNpb25Qcm9wZXJ0eSwga2V5LCBmYWxsYmFja0tleSk7CiAgICAgICAgIH0KIAog
ICAgICAgICBmdW5jdGlvbiBzb3VyY2VTdGFtcENoYW5nZXMoc291cmNlU3RhbXApIHsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1
YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWUuanMgYi9Ub29scy9CdWls
ZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9h
cmQvU2NyaXB0cy9CdWlsZGJvdFF1ZXVlLmpzCmluZGV4IDcwNTlkYWEyMGNkOTYyZmVlZDEyYTMz
ZWI1OGZkMzhjYTk5YThlMmEuLmU0YTk5NTExZjg5OTJiNzQ4ZWU4ODBmMzAwNTczNmQ4NmQyYWRk
YTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmct
Y29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWUuanMKKysr
IGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGlj
X2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZS5qcwpAQCAtMzQsNyArMzQsNyBA
QCBCdWlsZGJvdFF1ZXVlID0gZnVuY3Rpb24oYnVpbGRib3QsIGlkLCBpbmZvKQogICAgIHRoaXMu
aWQgPSBpZDsKIAogICAgIC8vIEZJWE1FOiBTb21lIG9mIHRoZXNlIGFyZSBwcmVzZW50YXRpb24g
b25seSwgYW5kIHNob3VsZCBiZSBoYW5kbGVkIGFib3ZlIEJ1aWxkYm90UXVldWUgbGV2ZWwuCi0g
ICAgdGhpcy5icmFuY2ggPSBpbmZvLmJyYW5jaDsKKyAgICB0aGlzLmJyYW5jaGVzID0gaW5mby5i
cmFuY2hlczsKICAgICB0aGlzLnBsYXRmb3JtID0gaW5mby5wbGF0Zm9ybS5uYW1lOwogICAgIHRo
aXMuZGVidWcgPSBpbmZvLmRlYnVnOwogICAgIHRoaXMuYnVpbGRlciA9IGluZm8uYnVpbGRlcjsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWxkLndlYmtpdC5vcmctY29u
ZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL0J1aWxkYm90UXVldWVWaWV3LmpzIGIv
VG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0
bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZpZXcuanMKaW5kZXggYjVhODlkNGI4
MDE2MDk3NzIyZDY4ZGM1NTc0MDNjZjM4MDY2ZTZhNy4uNDM0ZTU0MjVhMzRmZmIzMWE0YmVjOGIx
ODgwNDQ2MmZjYjE0ZjFlNiAxMDA2NDQKLS0tIGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVp
bGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRi
b3RRdWV1ZVZpZXcuanMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0
Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1NjcmlwdHMvQnVpbGRib3RRdWV1ZVZp
ZXcuanMKQEAgLTgwLDExICs4MCwxMiBAQCBCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUgPSB7
CiAKICAgICAgICAgLy8gRklYTUU6IFRvIGJlIDEwMCUgY29ycmVjdCwgd2Ugc2hvdWxkIGFsc28g
ZmlsdGVyIG91dCBjaGFuZ2VzIHRoYXQgYXJlIGlnbm9yZWQgYnkKICAgICAgICAgLy8gdGhlIHF1
ZXVlLCBzZWUgX3Nob3VsZF9maWxlX3RyaWdnZXJfYnVpbGQgaW4gd2tidWlsZC5weS4KLSAgICAg
ICAgdmFyIHNvcnRlZFJlcG9zaXRvcmllcyA9IERhc2hib2FyZC5zb3J0ZWRSZXBvc2l0b3JpZXM7
Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc29ydGVkUmVwb3NpdG9yaWVzLmxlbmd0aDsg
aSsrKSB7Ci0gICAgICAgICAgICB2YXIgcmVwb3NpdG9yeSA9IHNvcnRlZFJlcG9zaXRvcmllc1tp
XTsKLSAgICAgICAgICAgIHZhciB0cmFjID0gcmVwb3NpdG9yeS50cmFjOworICAgICAgICB2YXIg
YnJhbmNoZXMgPSBxdWV1ZS5icmFuY2hlczsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBi
cmFuY2hlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIGJyYW5jaCA9IGJyYW5jaGVz
W2ldOworICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnkgPSBicmFuY2gucmVwb3NpdG9yeTsKICAg
ICAgICAgICAgIHZhciByZXBvc2l0b3J5TmFtZSA9IHJlcG9zaXRvcnkubmFtZTsKKyAgICAgICAg
ICAgIHZhciB0cmFjID0gcmVwb3NpdG9yeS50cmFjOwogICAgICAgICAgICAgdmFyIGxhdGVzdFBy
b2R1Y3RpdmVSZXZpc2lvbk51bWJlciA9IGxhdGVzdFByb2R1Y3RpdmVJdGVyYXRpb24ucmV2aXNp
b25bcmVwb3NpdG9yeU5hbWVdOwogICAgICAgICAgICAgaWYgKCFsYXRlc3RQcm9kdWN0aXZlUmV2
aXNpb25OdW1iZXIpCiAgICAgICAgICAgICAgICAgY29udGludWU7CkBAIC05Myw3ICs5NCw3IEBA
IEJ1aWxkYm90UXVldWVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIHRvdGFsUmV2aXNpb25zQmVoaW5kICs9IHRy
YWMuY29tbWl0c09uQnJhbmNoKHF1ZXVlLmJyYW5jaFtyZXBvc2l0b3J5TmFtZV0sIGZ1bmN0aW9u
KGNvbW1pdCkgeyByZXR1cm4gY29tbWl0LnJldmlzaW9uTnVtYmVyID4gbGF0ZXN0UHJvZHVjdGl2
ZVJldmlzaW9uTnVtYmVyOyB9KS5sZW5ndGg7CisgICAgICAgICAgICB0b3RhbFJldmlzaW9uc0Jl
aGluZCArPSB0cmFjLmNvbW1pdHNPbkJyYW5jaChicmFuY2gubmFtZSwgZnVuY3Rpb24oY29tbWl0
KSB7IHJldHVybiBjb21taXQucmV2aXNpb25OdW1iZXIgPiBsYXRlc3RQcm9kdWN0aXZlUmV2aXNp
b25OdW1iZXI7IH0pLmxlbmd0aDsKICAgICAgICAgfQogCiAgICAgICAgIGlmICghdG90YWxSZXZp
c2lvbnNCZWhpbmQpCkBAIC0xNTQsMTUgKzE1NSwxNiBAQCBCdWlsZGJvdFF1ZXVlVmlldy5wcm90
b3R5cGUgPSB7CiAgICAgICAgIGNvbnRlbnQuY2xhc3NOYW1lID0gImNvbW1pdC1oaXN0b3J5LXBv
cG92ZXIiOwogCiAgICAgICAgIHZhciBzaG91bGRBZGREaXZpZGVyID0gZmFsc2U7Ci0gICAgICAg
IHZhciBzb3J0ZWRSZXBvc2l0b3JpZXMgPSBEYXNoYm9hcmQuc29ydGVkUmVwb3NpdG9yaWVzOwot
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNvcnRlZFJlcG9zaXRvcmllcy5sZW5ndGg7ICsr
aSkgewotICAgICAgICAgICAgdmFyIHJlcG9zaXRvcnkgPSBzb3J0ZWRSZXBvc2l0b3JpZXNbaV07
Ci0gICAgICAgICAgICB2YXIgdHJhYyA9IHJlcG9zaXRvcnkudHJhYzsKKyAgICAgICAgdmFyIGJy
YW5jaGVzID0gcXVldWUuYnJhbmNoZXM7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnJh
bmNoZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBicmFuY2ggPSBicmFuY2hlc1tp
XTsKKyAgICAgICAgICAgIHZhciByZXBvc2l0b3J5ID0gYnJhbmNoLnJlcG9zaXRvcnk7CiAgICAg
ICAgICAgICB2YXIgcmVwb3NpdG9yeU5hbWUgPSByZXBvc2l0b3J5Lm5hbWU7CisgICAgICAgICAg
ICB2YXIgdHJhYyA9IHJlcG9zaXRvcnkudHJhYzsKICAgICAgICAgICAgIHZhciBsYXRlc3RQcm9k
dWN0aXZlUmV2aXNpb25OdW1iZXIgPSBsYXRlc3RQcm9kdWN0aXZlSXRlcmF0aW9uLnJldmlzaW9u
W3JlcG9zaXRvcnlOYW1lXTsKICAgICAgICAgICAgIGlmICghbGF0ZXN0UHJvZHVjdGl2ZVJldmlz
aW9uTnVtYmVyIHx8ICF0cmFjLmxhdGVzdFJlY29yZGVkUmV2aXNpb25OdW1iZXIpCiAgICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB2YXIgbGluZXMgPSB0aGlzLl9wb3BvdmVy
TGluZXNGb3JDb21taXRSYW5nZSh0cmFjLCBxdWV1ZS5icmFuY2hbcmVwb3NpdG9yeU5hbWVdLCBs
YXRlc3RQcm9kdWN0aXZlUmV2aXNpb25OdW1iZXIgKyAxLCB0cmFjLmxhdGVzdFJlY29yZGVkUmV2
aXNpb25OdW1iZXIpOworICAgICAgICAgICAgdmFyIGxpbmVzID0gdGhpcy5fcG9wb3ZlckxpbmVz
Rm9yQ29tbWl0UmFuZ2UodHJhYywgYnJhbmNoLm5hbWUsIGxhdGVzdFByb2R1Y3RpdmVSZXZpc2lv
bk51bWJlciArIDEsIHRyYWMubGF0ZXN0UmVjb3JkZWRSZXZpc2lvbk51bWJlcik7CiAgICAgICAg
ICAgICB2YXIgbGVuZ3RoID0gbGluZXMubGVuZ3RoOwogICAgICAgICAgICAgaWYgKGxlbmd0aCAm
JiBzaG91bGRBZGREaXZpZGVyKQogICAgICAgICAgICAgICAgIHRoaXMuX2FkZERpdmlkZXJUb1Bv
cG92ZXIoY29udGVudCk7CkBAIC0yMDgsOCArMjEwLDkgQEAgQnVpbGRib3RRdWV1ZVZpZXcucHJv
dG90eXBlID0gewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9LAogCi0gICAgX3JldmlzaW9u
Q29udGVudFdpdGhQb3BvdmVyRm9ySXRlcmF0aW9uOiBmdW5jdGlvbihpdGVyYXRpb24sIHByZXZp
b3VzSXRlcmF0aW9uLCByZXBvc2l0b3J5KQorICAgIF9yZXZpc2lvbkNvbnRlbnRXaXRoUG9wb3Zl
ckZvckl0ZXJhdGlvbjogZnVuY3Rpb24oaXRlcmF0aW9uLCBwcmV2aW91c0l0ZXJhdGlvbiwgYnJh
bmNoKQogICAgIHsKKyAgICAgICAgdmFyIHJlcG9zaXRvcnkgPSBicmFuY2gucmVwb3NpdG9yeTsK
ICAgICAgICAgdmFyIHJlcG9zaXRvcnlOYW1lID0gcmVwb3NpdG9yeS5uYW1lOwogICAgICAgICBj
b25zb2xlLmFzc2VydChpdGVyYXRpb24ucmV2aXNpb25bcmVwb3NpdG9yeU5hbWVdKTsKICAgICAg
ICAgdmFyIGNvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CkBAIC0yMjAs
NyArMjIzLDcgQEAgQnVpbGRib3RRdWV1ZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAg
Y29uc29sZS5hc3NlcnQocHJldmlvdXNJdGVyYXRpb24ucmV2aXNpb25bcmVwb3NpdG9yeU5hbWVd
KTsKICAgICAgICAgICAgIHZhciBjb250ZXh0ID0gewogICAgICAgICAgICAgICAgIHRyYWM6IHJl
cG9zaXRvcnkudHJhYywKLSAgICAgICAgICAgICAgICBicmFuY2g6IGl0ZXJhdGlvbi5xdWV1ZS5i
cmFuY2hbcmVwb3NpdG9yeU5hbWVdLAorICAgICAgICAgICAgICAgIGJyYW5jaDogYnJhbmNoLm5h
bWUsCiAgICAgICAgICAgICAgICAgZmlyc3RSZXZpc2lvbjogcHJldmlvdXNJdGVyYXRpb24ucmV2
aXNpb25bcmVwb3NpdG9yeU5hbWVdICsgMSwKICAgICAgICAgICAgICAgICBsYXN0UmV2aXNpb246
IGl0ZXJhdGlvbi5yZXZpc2lvbltyZXBvc2l0b3J5TmFtZV0KICAgICAgICAgICAgIH07CkBAIC0y
NjksMTIgKzI3MiwxMiBAQCBCdWlsZGJvdFF1ZXVlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgewog
ICAgICAgICB2YXIgZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7
CiAgICAgICAgIHZhciBzaG91bGRBZGRQbHVzU2lnbiA9IGZhbHNlOwotICAgICAgICB2YXIgc29y
dGVkUmVwb3NpdG9yaWVzID0gRGFzaGJvYXJkLnNvcnRlZFJlcG9zaXRvcmllczsKLSAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBzb3J0ZWRSZXBvc2l0b3JpZXMubGVuZ3RoOyArK2kpIHsKLSAg
ICAgICAgICAgIHZhciByZXBvc2l0b3J5ID0gc29ydGVkUmVwb3NpdG9yaWVzW2ldOwotICAgICAg
ICAgICAgaWYgKCFpdGVyYXRpb24ucmV2aXNpb25bcmVwb3NpdG9yeS5uYW1lXSkKKyAgICAgICAg
dmFyIGJyYW5jaGVzID0gaXRlcmF0aW9uLnF1ZXVlLmJyYW5jaGVzOworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGJyYW5jaGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgYnJh
bmNoID0gYnJhbmNoZXNbaV07CisgICAgICAgICAgICBpZiAoIWl0ZXJhdGlvbi5yZXZpc2lvblti
cmFuY2gucmVwb3NpdG9yeS5uYW1lXSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgICAgIHZhciBjb250ZW50ID0gdGhpcy5fcmV2aXNpb25Db250ZW50V2l0aFBvcG92ZXJGb3JJ
dGVyYXRpb24oaXRlcmF0aW9uLCBwcmV2aW91c0Rpc3BsYXllZEl0ZXJhdGlvbiwgcmVwb3NpdG9y
eSk7CisgICAgICAgICAgICB2YXIgY29udGVudCA9IHRoaXMuX3JldmlzaW9uQ29udGVudFdpdGhQ
b3BvdmVyRm9ySXRlcmF0aW9uKGl0ZXJhdGlvbiwgcHJldmlvdXNEaXNwbGF5ZWRJdGVyYXRpb24s
IGJyYW5jaCk7CiAgICAgICAgICAgICBpZiAoc2hvdWxkQWRkUGx1c1NpZ24pCiAgICAgICAgICAg
ICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiBcdWZm
MGIgIikpOwogICAgICAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoY29udGVudCk7CmRpZmYg
LS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9w
dWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9NYWluLmpzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1
cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJvYXJkL1Njcmlw
dHMvTWFpbi5qcwppbmRleCA2N2YyOTJhNzdiZGZlMDRmNzYwMzRlMThkOGI0ZWYwOTM0NzQ4ZWJm
Li45NjViNjI2Y2NkMDUzZjk4NzFiY2EwNjhmYzUzNTcwNTgyNDdiY2E4IDEwMDY0NAotLS0gYS9U
b29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRt
bC9kYXNoYm9hcmQvU2NyaXB0cy9NYWluLmpzCisrKyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0
L2J1aWxkLndlYmtpdC5vcmctY29uZmlnL3B1YmxpY19odG1sL2Rhc2hib2FyZC9TY3JpcHRzL01h
aW4uanMKQEAgLTM1LDcgKzM1LDcgQEAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWlsZGJvdHMubGVu
Z3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciBpbmZvID0gYnVpbGRib3QucXVldWVzSW5mb1tp
ZF07CiAgICAgICAgICAgICB2YXIgcXVldWUgPSB7CiAgICAgICAgICAgICAgICAgaWQ6IGlkLAot
ICAgICAgICAgICAgICAgIGJyYW5jaDogaW5mby5icmFuY2gsCisgICAgICAgICAgICAgICAgYnJh
bmNoZXM6IGluZm8uYnJhbmNoZXMsCiAgICAgICAgICAgICAgICAgcGxhdGZvcm06IGluZm8ucGxh
dGZvcm0ubmFtZSwKICAgICAgICAgICAgICAgICBoZWFkaW5nOiBpbmZvLmhlYWRpbmcsCiAgICAg
ICAgICAgICAgICAgYnVpbGRlcjogaW5mby5idWlsZGVyLApkaWZmIC0tZ2l0IGEvVG9vbHMvQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbGQud2Via2l0Lm9yZy1jb25maWcvcHVibGljX2h0bWwvZGFzaGJv
YXJkL1NjcmlwdHMvV2ViS2l0QnVpbGRib3QuanMgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9i
dWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9XZWJL
aXRCdWlsZGJvdC5qcwppbmRleCA0YzAyNjRjMThhMTI2MzUxNzI1OWJmNGQxYWYyZGM3Y2VkZDYy
YmJjLi5kZDFiZGQxZGZhNzQ2MDEwN2IwNTkxMzVmZDYwYzdmNjVhNzBkZDdkIDEwMDY0NAotLS0g
YS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNf
aHRtbC9kYXNoYm9hcmQvU2NyaXB0cy9XZWJLaXRCdWlsZGJvdC5qcworKysgYi9Ub29scy9CdWls
ZFNsYXZlU3VwcG9ydC9idWlsZC53ZWJraXQub3JnLWNvbmZpZy9wdWJsaWNfaHRtbC9kYXNoYm9h
cmQvU2NyaXB0cy9XZWJLaXRCdWlsZGJvdC5qcwpAQCAtNzcsNyArNzcsNyBAQCBXZWJLaXRCdWls
ZGJvdC5wcm90b3R5cGUgPSB7CiAKICAgICBnZXQgZGVmYXVsdEJyYW5jaGVzKCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiB7IG9wZW5Tb3VyY2U6ICJ0cnVuayIgfTsKKyAgICAgICAgcmV0dXJuIFt7
IHJlcG9zaXRvcnk6IERhc2hib2FyZC5SZXBvc2l0b3J5Lk9wZW5Tb3VyY2UsIG5hbWU6ICJ0cnVu
ayIgfV07CiAgICAgfSwKIAogICAgIGxheW91dFRlc3RSZXN1bHRzRGlyZWN0b3J5VVJMRm9ySXRl
cmF0aW9uOiBmdW5jdGlvbihpdGVyYXRpb24pCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>