<?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>143464</bug_id>
          
          <creation_ts>2015-04-06 20:18:47 -0700</creation_ts>
          <short_desc>Web Inspector: Debugger sidebar should show errors underneath scripts</short_desc>
          <delta_ts>2015-04-11 20:07:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Wells">jonowells</reporter>
          <assigned_to name="Jonathan Wells">jonowells</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>jonowells</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1083247</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Wells">jonowells</who>
    <bug_when>2015-04-06 20:18:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/19524122&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083248</commentid>
    <comment_count>1</comment_count>
    <who name="Jonathan Wells">jonowells</who>
    <bug_when>2015-04-06 20:18:58 -0700</bug_when>
    <thetext>The debugger sidebar should fold errors underneath the scripts along with the breakpoints. This will enable developers to stay inside the debugger view to view errors and set/toggle breakpoints.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083396</commentid>
    <comment_count>2</comment_count>
      <attachid>250287</attachid>
    <who name="Jonathan Wells">jonowells</who>
    <bug_when>2015-04-07 13:16:41 -0700</bug_when>
    <thetext>Created attachment 250287
[PATCH] issues in sidebar</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083397</commentid>
    <comment_count>3</comment_count>
      <attachid>250288</attachid>
    <who name="Jonathan Wells">jonowells</who>
    <bug_when>2015-04-07 13:20:51 -0700</bug_when>
    <thetext>Created attachment 250288
[SCREENSHOT] Interface changes: issue elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083410</commentid>
    <comment_count>4</comment_count>
      <attachid>250287</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-04-07 13:41:47 -0700</bug_when>
    <thetext>Comment on attachment 250287
[PATCH] issues in sidebar

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

Looking good! Some minor and larger issues to resolve first.

&gt; Source/WebInspectorUI/UserInterface/Models/IssueMessage.js:44
&gt; +        if (typeof lineNumber === &quot;number&quot; &amp;&amp; lineNumber &gt;= 0 &amp;&amp; this._url)
&gt; +            this._sourceCodeLocation = new WebInspector.SourceCodeLocation(WebInspector.frameResourceManager.resourceForURL(url), lineNumber, columnNumber);

You should use source (it is passed in) and not resourceForURL.

&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:125
&gt; +            if (!treeElement instanceof WebInspector.ResourceTreeElement || treeElement instanceof WebInspector.IssueTreeElement)

I&apos;m not sure this is working right. This part is likely not needed.

!treeElement instanceof WebInspector.ResourceTreeElement

That really is doing:

false instanceof WebInspector.ResourceTreeElement

If you really wanted it, it requires quotes:

!(treeElement instanceof WebInspector.ResourceTreeElement)

&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:176
&gt; +        WebInspector.issueManager.addEventListener(WebInspector.IssueManager.Event.IssueWasAdded, this._handleIssueAdded, this);

You will want to remove the issue tree elements when WebInspector.IssueManager.Event.Cleared is fired too.

&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:784
&gt; +    _addIssue(issue)

issueMessage

&gt; Source/WebInspectorUI/UserInterface/Views/IssueTreeElement.css:27
&gt; +/* When animating a layer on top of a tree element&apos;s icon, move the main
&gt; +icon to the icon element&apos;s background so animations are layered on top. */

I&apos;m not sure what this is referring to.

&gt; Source/WebInspectorUI/UserInterface/Views/IssueTreeElement.css:48
&gt; +    position: absolute;
&gt; +    top: 0;
&gt; +    right: 0;
&gt; +    bottom: 0;
&gt; +    left: 0;
&gt; +
&gt; +    border-radius: 50%;
&gt; +    -webkit-transform: scale(0);
&gt; +    transition: none;
&gt; +    background-color: rgba(76, 102, 143, 1);
&gt; +}

What is this for?

&gt; Source/WebInspectorUI/UserInterface/Views/IssueTreeElement.js:31
&gt; +        var title = WebInspector.UIString(&quot;Line %d&quot;).format(lineNumber + 1) + &quot;: &quot; + issue.text; // The user visible line number is 1-based.

The &quot;: &quot; should be included in the UIString incase it needs localized.

&gt; Source/WebInspectorUI/UserInterface/Views/IssueTreeElement.js:41
&gt; +    get issue()

issueMessage

&gt; Source/WebInspectorUI/UserInterface/Views/IssueTreeElement.js:54
&gt; +WebInspector.IssueTreeElement.StyleClassName = &quot;issue&quot;;
&gt; +WebInspector.IssueTreeElement.ErrorStyleClassName = &quot;error&quot;;
&gt; +WebInspector.IssueTreeElement.WarningStyleClassName = &quot;warning&quot;;
&gt; +
&gt; +WebInspector.IssueTreeElement.levelStyleMap = {
&gt; +    &quot;error&quot;: WebInspector.IssueTreeElement.ErrorStyleClassName,
&gt; +    &quot;warning&quot;: WebInspector.IssueTreeElement.WarningStyleClassName
&gt; +};

We are inlining these now. Just put a switch() in the constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083476</commentid>
    <comment_count>5</comment_count>
      <attachid>250287</attachid>
    <who name="Jonathan Wells">jonowells</who>
    <bug_when>2015-04-07 16:31:17 -0700</bug_when>
    <thetext>Comment on attachment 250287
[PATCH] issues in sidebar

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Models/IssueMessage.js:44
&gt;&gt; +            this._sourceCodeLocation = new WebInspector.SourceCodeLocation(WebInspector.frameResourceManager.resourceForURL(url), lineNumber, columnNumber);
&gt; 
&gt; You should use source (it is passed in) and not resourceForURL.

The &quot;source&quot; there isn&apos;t the actual source. It is a string that says &quot;javascript&quot;, &quot;css&quot;, &quot;console-api&quot;, etc. Perhaps when the IssueMessage is created we can also pass in sourceCode?

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:176
&gt;&gt; +        WebInspector.issueManager.addEventListener(WebInspector.IssueManager.Event.IssueWasAdded, this._handleIssueAdded, this);
&gt; 
&gt; You will want to remove the issue tree elements when WebInspector.IssueManager.Event.Cleared is fired too.

What is the right approach to this? Crawl the content outline and remove anything that is an issue tree element? Or store an array of the elements? (Not sure if there is a removeFromParent though.)

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/IssueTreeElement.js:41
&gt;&gt; +    get issue()
&gt; 
&gt; issueMessage

So there are parts of the inspector code where we refer to these objects as just issues. Wondering if, to be accurate, I shouldn&apos;t for instance rename IssueTreeElement to IssueMessageTreeElement, and everything else that just says &quot;issue&quot; call &quot;issueMessage&quot;?

Another thought. I modeled this after &quot;breakpoint&quot; a bit. Since IssueMessages seem to be more than just a message, could those just be called Issues?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083525</commentid>
    <comment_count>6</comment_count>
      <attachid>250287</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-04-07 20:15:18 -0700</bug_when>
    <thetext>Comment on attachment 250287
[PATCH] issues in sidebar

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

&gt;&gt;&gt; Source/WebInspectorUI/UserInterface/Models/IssueMessage.js:44
&gt;&gt;&gt; +            this._sourceCodeLocation = new WebInspector.SourceCodeLocation(WebInspector.frameResourceManager.resourceForURL(url), lineNumber, columnNumber);
&gt;&gt; 
&gt;&gt; You should use source (it is passed in) and not resourceForURL.
&gt; 
&gt; The &quot;source&quot; there isn&apos;t the actual source. It is a string that says &quot;javascript&quot;, &quot;css&quot;, &quot;console-api&quot;, etc. Perhaps when the IssueMessage is created we can also pass in sourceCode?

Oh right. Makes sense. What you had is fine then.

&gt;&gt;&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:176
&gt;&gt;&gt; +        WebInspector.issueManager.addEventListener(WebInspector.IssueManager.Event.IssueWasAdded, this._handleIssueAdded, this);
&gt;&gt; 
&gt;&gt; You will want to remove the issue tree elements when WebInspector.IssueManager.Event.Cleared is fired too.
&gt; 
&gt; What is the right approach to this? Crawl the content outline and remove anything that is an issue tree element? Or store an array of the elements? (Not sure if there is a removeFromParent though.)

Yeah, you can crawl the list.

        var currentTreeElement = this._contentTreeOutline.children[0];
        while (currentTreeElement &amp;&amp; !currentTreeElement.root) {
            // Add currentTreeElement to an array here.
            currentTreeElement = currentTreeElement.traverseNextTreeElement(false, null, true);
        }

        // Loop over the array and remove the tree elements.

&gt;&gt;&gt; Source/WebInspectorUI/UserInterface/Views/IssueTreeElement.js:41
&gt;&gt;&gt; +    get issue()
&gt;&gt; 
&gt;&gt; issueMessage
&gt; 
&gt; So there are parts of the inspector code where we refer to these objects as just issues. Wondering if, to be accurate, I shouldn&apos;t for instance rename IssueTreeElement to IssueMessageTreeElement, and everything else that just says &quot;issue&quot; call &quot;issueMessage&quot;?
&gt; 
&gt; Another thought. I modeled this after &quot;breakpoint&quot; a bit. Since IssueMessages seem to be more than just a message, could those just be called Issues?

We just usually call the getters or vars based on the class name. I think IssueMessage is a better name than Issue, which is a little too generic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084410</commentid>
    <comment_count>7</comment_count>
      <attachid>250541</attachid>
    <who name="Jonathan Wells">jonowells</who>
    <bug_when>2015-04-10 16:53:50 -0700</bug_when>
    <thetext>Created attachment 250541
[PATCH] proper sourceCodeLocation support, feedback changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084415</commentid>
    <comment_count>8</comment_count>
      <attachid>250541</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-04-10 17:04:26 -0700</bug_when>
    <thetext>Comment on attachment 250541
[PATCH] proper sourceCodeLocation support, feedback changes.

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

&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:825
&gt; +                issueTreeElements.push();

This won&apos;t work.

issueTreeElements.push(currentTreeElement);

&gt; Source/WebInspectorUI/UserInterface/Views/IssueTreeElement.js:69
&gt; +        if (displayColumnNumber &gt; 0)
&gt; +            title = WebInspector.UIString(&quot;Line %d:%d&quot;).format(displayLineNumber + 1, displayColumnNumber + 1); // The user visible line and column numbers are 1-based.
&gt; +        else
&gt; +            title = WebInspector.UIString(&quot;Line %d&quot;).format(displayLineNumber + 1); // The user visible line number is 1-based.

Did you look into updating these when pretty printing happens?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084419</commentid>
    <comment_count>9</comment_count>
      <attachid>250541</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-04-10 17:10:51 -0700</bug_when>
    <thetext>Comment on attachment 250541
[PATCH] proper sourceCodeLocation support, feedback changes.

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

Clearing seems broken still.

&gt; Source/WebInspectorUI/UserInterface/Models/IssueMessage.js:100
&gt; +            this._sourceCodeLocation.addEventListener(WebInspector.SourceCodeLocation.Event.DisplayLocationChanged, this._sourceCodeLocationDisplayLocationChanged, this);

Nevermind, I see it is here.

&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:432
&gt; +        if (event.data.oldDisplaySourceCode === debuggerObject.displaySourceCode)

IssueMessage does not have displaySourceCode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084450</commentid>
    <comment_count>10</comment_count>
      <attachid>250541</attachid>
    <who name="Jonathan Wells">jonowells</who>
    <bug_when>2015-04-10 18:58:40 -0700</bug_when>
    <thetext>Comment on attachment 250541
[PATCH] proper sourceCodeLocation support, feedback changes.

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/IssueTreeElement.js:69
&gt;&gt; +            title = WebInspector.UIString(&quot;Line %d&quot;).format(displayLineNumber + 1); // The user visible line number is 1-based.
&gt; 
&gt; Did you look into updating these when pretty printing happens?

I did, and wrote it, but removed it because on pretty print all the issue tree elements that changed are removed and recreated, same as breakpoints. That&apos;s in _handleDebuggerObjectDisplayLocationDidChange. Thought maybe I should leave it in though just in case there&apos;s something I&apos;m not thinking of.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084452</commentid>
    <comment_count>11</comment_count>
      <attachid>250541</attachid>
    <who name="Jonathan Wells">jonowells</who>
    <bug_when>2015-04-10 19:01:35 -0700</bug_when>
    <thetext>Comment on attachment 250541
[PATCH] proper sourceCodeLocation support, feedback changes.

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:825
&gt;&gt; +                issueTreeElements.push();
&gt; 
&gt; This won&apos;t work.
&gt; 
&gt; issueTreeElements.push(currentTreeElement);

Oops. When I fix this, clearing works as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084455</commentid>
    <comment_count>12</comment_count>
      <attachid>250541</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-04-10 19:30:43 -0700</bug_when>
    <thetext>Comment on attachment 250541
[PATCH] proper sourceCodeLocation support, feedback changes.

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:432
&gt;&gt; +        if (event.data.oldDisplaySourceCode === debuggerObject.displaySourceCode)
&gt; 
&gt; IssueMessage does not have displaySourceCode.

You should fix this too. Then it looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084457</commentid>
    <comment_count>13</comment_count>
    <who name="Jonathan Wells">jonowells</who>
    <bug_when>2015-04-10 19:41:40 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Comment on attachment 250541 [details]
&gt; [PATCH] proper sourceCodeLocation support, feedback changes.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=250541&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:432
&gt; &gt;&gt; +        if (event.data.oldDisplaySourceCode === debuggerObject.displaySourceCode)
&gt; &gt; 
&gt; &gt; IssueMessage does not have displaySourceCode.
&gt; 
&gt; You should fix this too. Then it looks good.

It&apos;s funny. As best as I can tell, breakpoint doesn&apos;t have displaySourceCode either. Hmm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084461</commentid>
    <comment_count>14</comment_count>
    <who name="Jonathan Wells">jonowells</who>
    <bug_when>2015-04-10 19:48:48 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Comment on attachment 250541 [details]
&gt; [PATCH] proper sourceCodeLocation support, feedback changes.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=250541&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:432
&gt; &gt;&gt; +        if (event.data.oldDisplaySourceCode === debuggerObject.displaySourceCode)
&gt; &gt; 
&gt; &gt; IssueMessage does not have displaySourceCode.
&gt; 
&gt; You should fix this too. Then it looks good.

It&apos;s funny, I fixed this and then needed to put the code back into IssueTreeElement to update the titles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084465</commentid>
    <comment_count>15</comment_count>
      <attachid>250558</attachid>
    <who name="Jonathan Wells">jonowells</who>
    <bug_when>2015-04-10 20:09:12 -0700</bug_when>
    <thetext>Created attachment 250558
[PATCH] with further feedback changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084469</commentid>
    <comment_count>16</comment_count>
      <attachid>250558</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-04-10 20:46:55 -0700</bug_when>
    <thetext>Comment on attachment 250558
[PATCH] with further feedback changes.

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

&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:831
&gt; +        issueTreeElements.forEach(function(issueTreeElement) {

We prefer for(..of..) now.

&gt; Source/WebInspectorUI/UserInterface/Views/IssueTreeElement.css:38
&gt; +    height: 14px;

Can&apos;t you just center the background image, make it non-repeat and keep it at 16px?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084548</commentid>
    <comment_count>17</comment_count>
    <who name="Jonathan Wells">jonowells</who>
    <bug_when>2015-04-11 12:13:17 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Comment on attachment 250558 [details]
&gt; [PATCH] with further feedback changes.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=250558&amp;action=review
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:831
&gt; &gt; +        issueTreeElements.forEach(function(issueTreeElement) {
&gt; 
&gt; We prefer for(..of..) now.
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Views/IssueTreeElement.css:38
&gt; &gt; +    height: 14px;
&gt; 
&gt; Can&apos;t you just center the background image, make it non-repeat and keep it
&gt; at 16px?

I can center and make it non-repeat, but I just thought 14px was a better size for the icon. 16px and the icons look comically big next to the breakpoint icon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084549</commentid>
    <comment_count>18</comment_count>
    <who name="Jonathan Wells">jonowells</who>
    <bug_when>2015-04-11 12:16:54 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Comment on attachment 250558 [details]
&gt; [PATCH] with further feedback changes.
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=250558&amp;action=review
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:831
&gt; &gt; +        issueTreeElements.forEach(function(issueTreeElement) {
&gt; 
&gt; We prefer for(..of..) now.
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/Views/IssueTreeElement.css:38
&gt; &gt; +    height: 14px;
&gt; 
&gt; Can&apos;t you just center the background image, make it non-repeat and keep it
&gt; at 16px?

Here&apos;s our winner:

{
    background-position: center;
    background-repeat: no-repeat;
    background-size: 14px;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084562</commentid>
    <comment_count>19</comment_count>
      <attachid>250580</attachid>
    <who name="Jonathan Wells">jonowells</who>
    <bug_when>2015-04-11 13:06:57 -0700</bug_when>
    <thetext>Created attachment 250580
[PATCH] final.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084570</commentid>
    <comment_count>20</comment_count>
      <attachid>250580</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-11 13:56:24 -0700</bug_when>
    <thetext>Comment on attachment 250580
[PATCH] final.

Clearing flags on attachment: 250580

Committed r182662: &lt;http://trac.webkit.org/changeset/182662&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084571</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-11 13:56:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1084605</commentid>
    <comment_count>22</comment_count>
      <attachid>250580</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-04-11 20:07:50 -0700</bug_when>
    <thetext>Comment on attachment 250580
[PATCH] final.

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

&gt; Source/WebInspectorUI/UserInterface/Models/IssueMessage.js:44
&gt; +        if (typeof lineNumber === &quot;number&quot; &amp;&amp; lineNumber &gt;= 0 &amp;&amp; this._url)
&gt; +            this._sourceCodeLocation = new WebInspector.SourceCodeLocation(WebInspector.frameResourceManager.resourceForURL(url), lineNumber, columnNumber);

I&apos;m not sure resourceForURL is guaranteed. Maybe this would fail for &quot;//# sourceURL&quot; scripts? In any case, every other place we call this function in source code if check the result, so we probably should do that here too.

Also, we should avoid calling the WebInspector.SourceCodeLocation constructor directly and use `WebInspector.SourceCode.prototype.createSourceCodeLocation` once you have a source code object.

&gt; Source/WebInspectorUI/UserInterface/Models/IssueMessage.js:100
&gt; +        if (this._sourceCodeLocation)
&gt; +            this._sourceCodeLocation.addEventListener(WebInspector.SourceCodeLocation.Event.DisplayLocationChanged, this._sourceCodeLocationDisplayLocationChanged, this);

Nit: This could move right next to where you create the sourceCodeLocation so that you don&apos;t need the if check.

&gt; Source/WebInspectorUI/UserInterface/Models/IssueMessage.js:160
&gt; +        if (this._sourceCodeLocation)
&gt; +            return this._sourceCodeLocation.lineNumber;

What should this return if there is not a sourceCodeLocation? Currently it&apos;ll implicitly return undefined.

&gt; Source/WebInspectorUI/UserInterface/Models/IssueMessage.js:166
&gt; +        if (this._sourceCodeLocation)
&gt; +            return this._sourceCodeLocation.columnNumber;

Likewise for the rest of these.

&gt; Source/WebInspectorUI/UserInterface/Models/IssueMessage.js:188
&gt; +        cookie[WebInspector.IssueMessage.URLCookieKey] = this.url;

Style: Inside the class use member variables directly instead of accessor. So this should be this._url;

&gt; Source/WebInspectorUI/UserInterface/Models/IssueMessage.js:258
&gt; +    LocationDidChange: &quot;issue-message-location-did-change&quot;,

Looks like this is never used.

&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:122
&gt; +        var showResourcesWithIssuesOnlyFilterFunction = function(treeElement)

How does this play with SourceMapResources? Do we show source map resources nested inside of Resource, or top level?

&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:814
&gt; +        // We only want to show issues originating from JavaScript source code.
&gt; +        if (!issue.lineNumber || (issue.source !== &quot;javascript&quot; &amp;&amp; issue.source !== &quot;console-api&quot;))
&gt; +            return;

Hmm, what is this excluding?

&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:827
&gt; +            if (currentTreeElement instanceof WebInspector.IssueTreeElement) {
&gt; +                issueTreeElements.push(currentTreeElement);
&gt; +            }

Style: Single statement if should not have braces.

&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:833
&gt; +        for (var issueTreeElement of issueTreeElements) {
&gt; +            issueTreeElement.parent.removeChild(issueTreeElement);
&gt; +        }

Style: Single statement for should not have braces.

&gt; Source/WebInspectorUI/UserInterface/Views/IssueTreeElement.js:38
&gt; +        var levelStyleClassName;
&gt; +        switch (issueMessage.level) {
&gt; +        case &quot;error&quot;:
&gt; +            levelStyleClassName = WebInspector.IssueTreeElement.ErrorStyleClassName;
&gt; +            break;
&gt; +        case &quot;warning&quot;:
&gt; +            levelStyleClassName = WebInspector.IssueTreeElement.WarningStyleClassName;
&gt; +            break;
&gt; +        }

Seems we are just saying if level &quot;error&quot; =&gt; &quot;error&quot;, if &quot;warning&quot; =&gt; &quot;warning&quot;. Lets just use issueMessage.level as the class name string. We do this in other places (ResourceType, RemoteObject type/subtype, etc). I would just add a console.assert that typeof issueMessage.level === &quot;string&quot;.

&gt; Source/WebInspectorUI/UserInterface/Views/IssueTreeElement.js:43
&gt; +        this._issueMessage = issueMessage;

Lets console.assert somewhere that issueMessage is instanceof WebInspector.IssueMessage.

&gt; Source/WebInspectorUI/UserInterface/Views/IssueTreeElement.js:68
&gt; +        if (displayColumnNumber &gt; 0)
&gt; +            title = WebInspector.UIString(&quot;Line %d:%d&quot;).format(displayLineNumber + 1, displayColumnNumber + 1); // The user visible line and column numbers are 1-based.
&gt; +        else
&gt; +            title = WebInspector.UIString(&quot;Line %d&quot;).format(displayLineNumber + 1); // The user visible line number is 1-based.
&gt; +
&gt; +        this.mainTitle = title + &quot; &quot; + this._issueMessage.text;

The screenshot shows strings like:

    Line 3: This is a warning

Where does the colon between title and text come from? Or did that get removed by patch time?

Perhaps this should be in the UIString. Making this:

    WebInspector.UIString(&quot;Line %d:%d %s&quot;).format(line, column, text);

That way if this needs to be localized for RTL they can control the entire string.

&gt; Source/WebInspectorUI/UserInterface/Views/IssueTreeElement.js:74
&gt; +WebInspector.IssueTreeElement.StyleClassName = &quot;issue&quot;;
&gt; +WebInspector.IssueTreeElement.ErrorStyleClassName = &quot;error&quot;;
&gt; +WebInspector.IssueTreeElement.WarningStyleClassName = &quot;warning&quot;;

Nit: We&apos;ve been inlining use once StyleClassNames.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250287</attachid>
            <date>2015-04-07 13:16:41 -0700</date>
            <delta_ts>2015-04-10 16:53:46 -0700</delta_ts>
            <desc>[PATCH] issues in sidebar</desc>
            <filename>bug-143464-20150407131553.patch</filename>
            <type>text/plain</type>
            <size>22233</size>
            <attacher name="Jonathan Wells">jonowells</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA3
MmMxYWU0ODU4NDA0YTBkNTFiMWYzNWIwOWZjODNiOWIxNTBiNWZmLi45YTJjNjcwODYxNzZlNTEx
NzYwZTkyMTRiZWFhNjM2ZTZmOTE0ZjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NCBAQAorMjAxNS0wNC0wNyAgSm9ubyBXZWxscyAgPGpvbm93ZWxsc0BhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRGVidWdnZXIgc2lkZWJhciBzaG91bGQgc2hvdyBl
cnJvcnMgdW5kZXJuZWF0aCBzY3JpcHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDM0NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgdHJlZSBlbGVtZW50IGNhbGxlZCBJc3N1ZVRyZWVF
bGVtZW50LiBUaGlzIHNob3dzIHdhcm5pbmdzIGFuZCBlcnJvcnMgaW4gdGhlIGRlYnVnZ2VyIHNp
ZGViYXIuIFRoZXNlCisgICAgICAgIGNhbiBiZSBjbGlja2VkIHRvIGp1bXAgdG8gdGhlIGxpbmUg
b2Ygc291cmNlIGNvZGUgZm9yIHdoaWNoIHRoZSBlcnJvciB3YXMgdGhyb3duLiBCcmVha3BvaW50
VHJlZUVsZW1lbnQgYW5kCisgICAgICAgIElzc3VlVHJlZUVsZW1lbnQgbm93IGluaGVyaXQgZnJv
bSBEZWJ1Z2dlclRyZWVFbGVtZW50IHRvIHN1cHBvcnQgYW55IG5lZWRlZCBjb21tb25hbGl0aWVz
IGFtb25nIHRoZSBpbnRlcmZhY2VzCisgICAgICAgIG9mIGVsZW1lbnRzIGluIHRoZSBkZWJ1Z2dl
ciBzaWRlYmFyIHBhbmVsLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9NYWluLmh0bWw6IEFk
ZCBuZXcgZmlsZXMuCisgICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzOiBVcGRhdGVkLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvSXNz
dWVNZXNzYWdlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLklzc3VlTWVzc2FnZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLnByb3RvdHlwZS5nZXQgbGluZU51bWJlcik6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLnByb3RvdHlwZS5nZXQgY29sdW1u
TnVtYmVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UucHJvdG90eXBlLmdl
dCBzb3VyY2VDb2RlTG9jYXRpb24pOgorICAgICAgICBDb252ZXJ0IHRvIHVzZSBhIFNvdXJjZUNv
ZGVMb2NhdGlvbi4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQnJlYWtwb2ludFRy
ZWVFbGVtZW50LmpzOiBJbmhlcml0IG5vdyBmcm9tIERlYnVnZ2VyVHJlZUVsZW1lbnQuCisKKyAg
ICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsLnNob3dSZXNvdXJjZXNXaXRo
SXNzdWVzT25seUZpbHRlckZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clNpZGViYXJQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFu
ZWwucHJvdG90eXBlLl9hZGRCcmVha3BvaW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1
Z2dlclNpZGViYXJQYW5lbC5wcm90b3R5cGUuX3RyZWVFbGVtZW50U2VsZWN0ZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fY29tcGFyZURl
YnVnZ2VyVHJlZUVsZW1lbnRzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGVi
YXJQYW5lbC5wcm90b3R5cGUuX2FkZElzc3VlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1
Z2dlclNpZGViYXJQYW5lbC5wcm90b3R5cGUuX2hhbmRsZUlzc3VlQWRkZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fY29tcGFyZUJyZWFr
cG9pbnRUcmVlRWxlbWVudHMpOiBEZWxldGVkLgorICAgICAgICBBZGQgSXNzdWVUcmVlRWxlbWVu
dHMgdG8gdGhlIHNpZGViYXIgd2hlbmV2ZXIgYSB3YXJuaW5nIG9yIGVycm9yIGNvcnJlc3BvbmRp
bmcgdG8gYSBsaW5lIG9mIGNvZGUgaXMgZm91bmQuCisgICAgICAgIEFkZCBhIGZpbHRlciBmdW5j
dGlvbiBhbmQgYnV0dG9uIHRvIGZpbHRlciBkb3duIHRvIGp1c3QgdGhlc2UuIEVuc3VyZSBpc3N1
ZSBhbmQgYnJlYWtwb2ludCBlbGVtZW50cyBjYW4gYmUKKyAgICAgICAgcHJvcGVybHkgY29tcGFy
ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyVHJlZUVsZW1lbnQu
anM6IEFkZGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyVHJlZUVsZW1lbnQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyVHJlZUVsZW1lbnQucHJvdG90eXBlLmdldCBk
ZWJ1Z2dlck9iamVjdCk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0lzc3VlVHJl
ZUVsZW1lbnQuY3NzOiBBZGRlZC4KKyAgICAgICAgKC5pc3N1ZSAuaWNvbik6CisgICAgICAgICgu
aXNzdWUuZXJyb3IgLmljb24pOgorICAgICAgICAoLmlzc3VlIC5pY29uID4gc3Bhbik6CisgICAg
ICAgICgubmF2aWdhdGlvbi1zaWRlYmFyLXBhbmVsLWNvbnRlbnQtdHJlZS1vdXRsaW5lIC5pdGVt
LnNtYWxsLmlzc3VlIC5pY29uKToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvSXNz
dWVUcmVlRWxlbWVudC5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuSXNzdWVUcmVl
RWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSXNzdWVUcmVlRWxlbWVudC5wcm90b3R5
cGUuZ2V0IGlzc3VlKToKKwogMjAxNS0wNC0wNyAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogSGllcmFyY2hpY2FsUGF0aE5hdmln
YXRpb25JdGVtJ3MgYWRkaXRpb25hbENsYXNzTmFtZXMgc2hvdWxkIGJlIF9hZGRpdGlvbmFsQ2xh
c3NOYW1lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMv
ZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2Nh
bGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggOWYyZTIwYmZmYzgz
NThkZWIwYzU1OGE5MGU0NzJhOWU3NWE3NGQxYS4uODRiMTFmYzE1MDU4MDIxN2VlNGQ4NjE4MWFk
NzY0MWYzMjA0MjhhZSAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSAxMTAKemNtY2F+ZiUo
PkQ8Xy1JZ08haHZhIUl7Wlc0MX1jJnNnbihrSUNIfiE0OEBaZFNtO2pQZX5AZVB7diokVCpiR0li
CmRea242dVc+ezY8S0JfZD94MTRNOD8tTntgWnl6bUowc3Y4R0U3a3gyCgpkZWx0YSAzNApsY21j
YjBuZmNOTTxfLUlnT3BaUWdIa3RwSilNV0RgQjJjIV5YNUhnIWw+anoxNVVUKEgKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKaW5kZXggMDI4NDY3ZjE1
NjZhYTE3NDdlY2M5NjA5M2NjYWM4ZGJkYTA5ZTVjNC4uMDkxMjYwYTVjNDM0ZDg5NDgzNzZlYzkw
YTYwMzYxZjcwZjllZmEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTWFpbi5odG1sCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01haW4uaHRtbApAQCAtODcsNiArODcsNyBAQAogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iVmlld3MvSW1hZ2VSZXNvdXJjZUNvbnRlbnRWaWV3LmNzcyI+CiAgICAgPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9JbmRldGVybWluYXRlUHJvZ3Jlc3NTcGlubmVy
LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9JbmRleGVkRGF0
YWJhc2VPYmplY3RTdG9yZUNvbnRlbnRWaWV3LmNzcyI+CisgICAgPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSJWaWV3cy9Jc3N1ZVRyZWVFbGVtZW50LmNzcyI+CiAgICAgPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSJWaWV3cy9MYXllclRyZWVEZXRhaWxzU2lkZWJhclBhbmVsLmNzcyI+
CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9MYXlvdXRUaW1lbGluZU92
ZXJ2aWV3R3JhcGguY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdz
L0xheW91dFRpbWVsaW5lVmlldy5jc3MiPgpAQCAtMzI4LDYgKzMyOSw3IEBACiAgICAgPHNjcmlw
dCBzcmM9IlZpZXdzL1N0b3JhZ2VUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlZpZXdzL1RpbWVsaW5lUmVjb3JkVHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0PgogCisg
ICAgPHNjcmlwdCBzcmM9IlZpZXdzL0RlYnVnZ2VyVHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4K
IAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9BY3RpdmF0ZUJ1dHRvbk5hdmlnYXRpb25JdGVtLmpz
Ij48L3NjcmlwdD4KQEAgLTQxNiw2ICs0MTgsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9J
bmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZUluZGV4VHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9JbmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZVRyZWVFbGVt
ZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvSW5kZXhlZERhdGFiYXNl
VHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Jc3N1ZVRy
ZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvTGF5ZXJUcmVl
RGF0YUdyaWROb2RlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvTGF5ZXJU
cmVlRGV0YWlsc1NpZGViYXJQYW5lbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZp
ZXdzL0xheW91dFRpbWVsaW5lRGF0YUdyaWQuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0lzc3VlTWVzc2FnZS5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Jc3N1ZU1lc3NhZ2Uu
anMKaW5kZXggM2NkNDNkODM1MDk3OTg4OWYyNmQwOTM0NjZjYmYxNzA4MmM5MjljNi4uZjIwM2Nl
OTY3ZmFmZGE2MmFiY2E2MWE2MzM0ODRjZWU3OGEwMjdiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0lzc3VlTWVzc2FnZS5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvSXNzdWVNZXNzYWdlLmpz
CkBAIC0zMSw4ICszMSw3IEBAIFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UgPSBjbGFzcyBJc3N1
ZU1lc3NhZ2UgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAKICAgICAgICAgdGhpcy5fbGV2
ZWwgPSBsZXZlbDsKICAgICAgICAgdGhpcy5fdGV4dCA9IHRleHQ7Ci0KLSAgICAgICAgLy8gRklY
TUU6IE1vdmUgdG8gYSBTb3VyY2VDb2RlTG9jYXRpb24uCisgICAgICAgIHRoaXMuX3NvdXJjZSA9
IHNvdXJjZTsKIAogICAgICAgICAvLyBGSVhNRSA8aHR0cDovL3dlYmtpdC5vcmcvYi83NjQwND46
IFJlbW92ZSB0aGUgc3RyaW5nIGVxdWFsaXR5IGNoZWNrcyBmb3IgdW5kZWZpbmVkCiAgICAgICAg
IC8vIG9uY2Ugd2UgZG9uJ3QgZ2V0IHRoYXQgdmFsdWUgYW55bW9yZSBmcm9tIFdlYkNvcmUuCkBA
IC00MSwxMSArNDAsOCBAQCBXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlID0gY2xhc3MgSXNzdWVN
ZXNzYWdlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgICAgICBpZiAodXJsICYmIHVy
bCAhPT0gInVuZGVmaW5lZCIpCiAgICAgICAgICAgICB0aGlzLl91cmwgPSB1cmw7CiAKLSAgICAg
ICAgaWYgKHR5cGVvZiBsaW5lTnVtYmVyID09PSAibnVtYmVyIiAmJiBsaW5lTnVtYmVyID49IDAp
Ci0gICAgICAgICAgICB0aGlzLl9saW5lTnVtYmVyID0gbGluZU51bWJlcjsKLQotICAgICAgICBp
ZiAodHlwZW9mIGNvbHVtbk51bWJlciA9PT0gIm51bWJlciIgJiYgY29sdW1uTnVtYmVyID49IDAp
Ci0gICAgICAgICAgICB0aGlzLl9jb2x1bW5OdW1iZXIgPSBjb2x1bW5OdW1iZXI7CisgICAgICAg
IGlmICh0eXBlb2YgbGluZU51bWJlciA9PT0gIm51bWJlciIgJiYgbGluZU51bWJlciA+PSAwICYm
IHRoaXMuX3VybCkKKyAgICAgICAgICAgIHRoaXMuX3NvdXJjZUNvZGVMb2NhdGlvbiA9IG5ldyBX
ZWJJbnNwZWN0b3IuU291cmNlQ29kZUxvY2F0aW9uKFdlYkluc3BlY3Rvci5mcmFtZVJlc291cmNl
TWFuYWdlci5yZXNvdXJjZUZvclVSTCh1cmwpLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpOwog
CiAgICAgICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTQyNTUzPiBXZWIgSW5z
cGVjdG9yOiBNZXJnZSBJc3N1ZU1lc3NhZ2UvQ29uc29sZU1lc3NhZ2UgLSBib3RoIGF0dGVtcHQg
dG8gbW9kaWZ5IHRoZSBDb25zb2xlIE1lc3NhZ2VzIHBhcmFtZXRlciBpbmRlcGVuZGVudGx5CiAK
QEAgLTE0NSw2ICsxNDEsMTEgQEAgV2ViSW5zcGVjdG9yLklzc3VlTWVzc2FnZSA9IGNsYXNzIElz
c3VlTWVzc2FnZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgcmV0dXJuIHRo
aXMuX3RleHQ7CiAgICAgfQogCisgICAgZ2V0IHNvdXJjZSgpCisgICAgeworICAgICAgICByZXR1
cm4gdGhpcy5fc291cmNlOworICAgIH0KKwogICAgIGdldCB1cmwoKQogICAgIHsKICAgICAgICAg
cmV0dXJuIHRoaXMuX3VybDsKQEAgLTE1MiwxMiArMTUzLDE5IEBAIFdlYkluc3BlY3Rvci5Jc3N1
ZU1lc3NhZ2UgPSBjbGFzcyBJc3N1ZU1lc3NhZ2UgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0
CiAKICAgICBnZXQgbGluZU51bWJlcigpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fbGlu
ZU51bWJlcjsKKyAgICAgICAgaWYgKHRoaXMuX3NvdXJjZUNvZGVMb2NhdGlvbikKKyAgICAgICAg
ICAgIHJldHVybiB0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24ubGluZU51bWJlcjsKICAgICB9CiAK
ICAgICBnZXQgY29sdW1uTnVtYmVyKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9jb2x1
bW5OdW1iZXI7CisgICAgICAgIGlmICh0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24pCisgICAgICAg
ICAgICByZXR1cm4gdGhpcy5fc291cmNlQ29kZUxvY2F0aW9uLmNvbHVtbk51bWJlcjsKKyAgICB9
CisKKyAgICBnZXQgc291cmNlQ29kZUxvY2F0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
aGlzLl9zb3VyY2VDb2RlTG9jYXRpb247CiAgICAgfQogCiAgICAgLy8gUHJpdmF0ZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQnJlYWtwb2lu
dFRyZWVFbGVtZW50LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQnJlYWtwb2ludFRyZWVFbGVtZW50LmpzCmluZGV4IDA4NjZlM2YyNWMyYTIyN2FmNTYxNDUx
YTE1NmU2MGYzNzE3ODQzNzcuLjc5ZTg2ZmI0YTgyMTIwNmY0MmQ1OTRlYjI3MTA5ZDA5MjA1MjRi
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0JyZWFrcG9pbnRUcmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9CcmVha3BvaW50VHJlZUVsZW1lbnQuanMKQEAgLTIzLDcgKzIzLDcg
QEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi1XZWJJbnNwZWN0
b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50ID0gY2xhc3MgQnJlYWtwb2ludFRyZWVFbGVtZW50IGV4
dGVuZHMgV2ViSW5zcGVjdG9yLkdlbmVyYWxUcmVlRWxlbWVudAorV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnRUcmVlRWxlbWVudCA9IGNsYXNzIEJyZWFrcG9pbnRUcmVlRWxlbWVudCBleHRlbmRzIFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclRyZWVFbGVtZW50CiB7CiAgICAgY29uc3RydWN0b3IoYnJlYWtw
b2ludCwgY2xhc3NOYW1lLCB0aXRsZSkKICAgICB7CkBAIC0yMzcsNyArMjM3LDYgQEAgV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudCA9IGNsYXNzIEJyZWFrcG9pbnRUcmVlRWxlbWVu
dCBleHRlbmRzIFdlYkluc3AKICAgICAgICAgfS5iaW5kKHRoaXMpLCBXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludFRyZWVFbGVtZW50LlByb2JlRGF0YVVwZGF0ZWRBbmltYXRpb25EdXJhdGlvbik7CiAg
ICAgfQogCi0KICAgICBfYnJlYWtwb2ludExvY2F0aW9uRGlkQ2hhbmdlKGV2ZW50KQogICAgIHsK
ICAgICAgICAgY29uc29sZS5hc3NlcnQoZXZlbnQudGFyZ2V0ID09PSB0aGlzLl9icmVha3BvaW50
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvRGVidWdnZXJTaWRlYmFyUGFuZWwuanMKaW5kZXggOWY1MTk1OWRkNmY0NzFl
OWYxMjdhZjE4NDI5YTQ4ZWI5MTI0OWE2YS4uZDk2OThlYTRmODFhOTU3MDViMTM0MGQzNGI3NmU2
MzU4MDY5M2U4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvRGVidWdnZXJTaWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJTaWRlYmFyUGFuZWwuanMKQEAgLTExOSw3
ICsxMTksMjQgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsID0gY2xhc3MgRGVi
dWdnZXJTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgfTsKIAotICAgICAgICB0aGlzLmZpbHRlckJhci5hZGRGaWx0ZXJCYXJC
dXR0b24oImRlYnVnZ2VyLXNob3ctcmVzb3VyY2VzLXdpdGgtY2hpbGRyZW4tb25seSIsIHNob3dS
ZXNvdXJjZXNXaXRoQnJlYWtwb2ludHNPbmx5RmlsdGVyRnVuY3Rpb24sIHRydWUsIFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiU2hvdyBvbmx5IHJlc291cmNlcyB3aXRoIGJyZWFrcG9pbnRzLiIpLCBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3cgcmVzb3VyY2VzIHdpdGggYW5kIHdpdGhvdXQgYnJl
YWtwb2ludHMuIiksIHBsYXRmb3JtSW1hZ2VQYXRoKCJCcmVha3BvaW50cy5zdmciKSwgMTUsIDE1
KTsKKyAgICAgICAgdmFyIHNob3dSZXNvdXJjZXNXaXRoSXNzdWVzT25seUZpbHRlckZ1bmN0aW9u
ID0gZnVuY3Rpb24odHJlZUVsZW1lbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIEtlZXAg
aXNzdWVzIGFuZCBvdGhlciBlbGVtZW50cyB0aGF0IGFyZW4ndCByZXNvdXJjZXMuCisgICAgICAg
ICAgICBpZiAoIXRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJl
ZUVsZW1lbnQgfHwgdHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuSXNzdWVUcmVl
RWxlbWVudCkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgICAgLy8g
S2VlcCByZXNvdXJjZXMgd2l0aCBpc3N1ZXMuCisgICAgICAgICAgICBpZiAodHJlZUVsZW1lbnQu
aGFzQ2hpbGRyZW4pIHsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBjaGlsZCBvZiB0cmVlRWxl
bWVudC5jaGlsZHJlbikgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQgaW5zdGFuY2Vv
ZiBXZWJJbnNwZWN0b3IuSXNzdWVUcmVlRWxlbWVudCkKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfTsKKworICAgICAgICB0aGlzLmZpbHRlckJhci5h
ZGRGaWx0ZXJCYXJCdXR0b24oImRlYnVnZ2VyLXNob3ctcmVzb3VyY2VzLXdpdGgtYnJlYWtwb2lu
dHMtb25seSIsIHNob3dSZXNvdXJjZXNXaXRoQnJlYWtwb2ludHNPbmx5RmlsdGVyRnVuY3Rpb24s
IHRydWUsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2hvdyBvbmx5IHJlc291cmNlcyB3aXRoIGJy
ZWFrcG9pbnRzLiIpLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3cgcmVzb3VyY2VzIHdpdGgg
YW5kIHdpdGhvdXQgYnJlYWtwb2ludHMuIiksIHBsYXRmb3JtSW1hZ2VQYXRoKCJCcmVha3BvaW50
cy5zdmciKSwgMTUsIDE1KTsKKyAgICAgICAgdGhpcy5maWx0ZXJCYXIuYWRkRmlsdGVyQmFyQnV0
dG9uKCJkZWJ1Z2dlci1zaG93LXJlc291cmNlcy13aXRoLWlzc3Vlcy1vbmx5Iiwgc2hvd1Jlc291
cmNlc1dpdGhJc3N1ZXNPbmx5RmlsdGVyRnVuY3Rpb24sIHRydWUsIFdlYkluc3BlY3Rvci5VSVN0
cmluZygiU2hvdyBvbmx5IHJlc291cmNlcyB3aXRoIGlzc3Vlcy4iKSwgV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJTaG93IHJlc291cmNlcyB3aXRoIGFuZCB3aXRob3V0IGlzc3Vlcy4iKSwgcGxhdGZv
cm1JbWFnZVBhdGgoIkVycm9ycy5zdmciKSwgMTUsIDE1KTsKIAogICAgICAgICB0aGlzLl9icmVh
a3BvaW50c0NvbnRlbnRUcmVlT3V0bGluZSA9IHRoaXMuY29udGVudFRyZWVPdXRsaW5lOwogICAg
ICAgICB0aGlzLl9icmVha3BvaW50c0NvbnRlbnRUcmVlT3V0bGluZS5vbnNlbGVjdCA9IHRoaXMu
X3RyZWVFbGVtZW50U2VsZWN0ZWQuYmluZCh0aGlzKTsKQEAgLTE1Niw2ICsxNzMsNyBAQCBXZWJJ
bnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwgPSBjbGFzcyBEZWJ1Z2dlclNpZGViYXJQYW5l
bCBleHRlbmRzIFdlYkluc3BlYwogICAgICAgICB0aGlzLl9wYXVzZVJlYXNvblNlY3Rpb24udGl0
bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlBhdXNlIFJlYXNvbiIpOwogCiAgICAgICAgIFdl
Ykluc3BlY3Rvci5CcmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkJyZWFr
cG9pbnQuRXZlbnQuRGlzcGxheUxvY2F0aW9uRGlkQ2hhbmdlLCB0aGlzLl9icmVha3BvaW50RGlz
cGxheUxvY2F0aW9uRGlkQ2hhbmdlLCB0aGlzKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmlzc3Vl
TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Jc3N1ZU1hbmFnZXIuRXZlbnQu
SXNzdWVXYXNBZGRlZCwgdGhpcy5faGFuZGxlSXNzdWVBZGRlZCwgdGhpcyk7CiAgICAgfQogCiAg
ICAgLy8gUHVibGljCkBAIC0yOTYsNyArMzE0LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lk
ZWJhclBhbmVsID0gY2xhc3MgRGVidWdnZXJTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWMK
ICAgICAgICAgICAgIGJyZWFrcG9pbnQucmVzb2x2ZWQgPSB0cnVlOwogCiAgICAgICAgIHZhciBi
cmVha3BvaW50VHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxl
bWVudChicmVha3BvaW50KTsKLSAgICAgICAgcGFyZW50VHJlZUVsZW1lbnQuaW5zZXJ0Q2hpbGQo
YnJlYWtwb2ludFRyZWVFbGVtZW50LCBpbnNlcnRpb25JbmRleEZvck9iamVjdEluTGlzdFNvcnRl
ZEJ5RnVuY3Rpb24oYnJlYWtwb2ludFRyZWVFbGVtZW50LCBwYXJlbnRUcmVlRWxlbWVudC5jaGls
ZHJlbiwgdGhpcy5fY29tcGFyZUJyZWFrcG9pbnRUcmVlRWxlbWVudHMpKTsKKyAgICAgICAgcGFy
ZW50VHJlZUVsZW1lbnQuaW5zZXJ0Q2hpbGQoYnJlYWtwb2ludFRyZWVFbGVtZW50LCBpbnNlcnRp
b25JbmRleEZvck9iamVjdEluTGlzdFNvcnRlZEJ5RnVuY3Rpb24oYnJlYWtwb2ludFRyZWVFbGVt
ZW50LCBwYXJlbnRUcmVlRWxlbWVudC5jaGlsZHJlbiwgdGhpcy5fY29tcGFyZURlYnVnZ2VyVHJl
ZUVsZW1lbnRzKSk7CiAgICAgICAgIGlmIChwYXJlbnRUcmVlRWxlbWVudC5jaGlsZHJlbi5sZW5n
dGggPT09IDEpCiAgICAgICAgICAgICBwYXJlbnRUcmVlRWxlbWVudC5leHBhbmQoKTsKICAgICAg
ICAgcmV0dXJuIGJyZWFrcG9pbnRUcmVlRWxlbWVudDsKQEAgLTYwNyw2ICs2MjUsMTMgQEAgV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsID0gY2xhc3MgRGVidWdnZXJTaWRlYmFyUGFu
ZWwgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCisg
ICAgICAgIGlmICh0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Jc3N1ZVRyZWVF
bGVtZW50KSB7CisgICAgICAgICAgICBkZXNlbGVjdENhbGxTdGFja0NvbnRlbnRUcmVlRWxlbWVu
dHMuY2FsbCh0aGlzKTsKKyAgICAgICAgICAgIGRlc2VsZWN0UGF1c2VSZWFzb25Db250ZW50VHJl
ZUVsZW1lbnRzLmNhbGwodGhpcyk7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VT
aWRlYmFyUGFuZWwuc2hvd1NvdXJjZUNvZGVMb2NhdGlvbih0cmVlRWxlbWVudC5pc3N1ZS5zb3Vy
Y2VDb2RlTG9jYXRpb24pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKICAgICAg
ICAgaWYgKCEodHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRy
ZWVFbGVtZW50KSB8fCB0cmVlRWxlbWVudC5wYXJlbnQuY29uc3RydWN0b3IgPT09IFdlYkluc3Bl
Y3Rvci5Gb2xkZXJUcmVlRWxlbWVudCkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNjQ0LDEw
ICs2NjksMTMgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsID0gY2xhc3MgRGVi
dWdnZXJTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgcmV0dXJuIGEubWFp
blRpdGxlLmxvY2FsZUNvbXBhcmUoYi5tYWluVGl0bGUpOwogICAgIH0KIAotICAgIF9jb21wYXJl
QnJlYWtwb2ludFRyZWVFbGVtZW50cyhhLCBiKQorICAgIF9jb21wYXJlRGVidWdnZXJUcmVlRWxl
bWVudHMoYSwgYikKICAgICB7Ci0gICAgICAgIHZhciBhTG9jYXRpb24gPSBhLmJyZWFrcG9pbnQu
c291cmNlQ29kZUxvY2F0aW9uOwotICAgICAgICB2YXIgYkxvY2F0aW9uID0gYi5icmVha3BvaW50
LnNvdXJjZUNvZGVMb2NhdGlvbjsKKyAgICAgICAgaWYgKCFhLmRlYnVnZ2VyT2JqZWN0IHx8ICFi
LmRlYnVnZ2VyT2JqZWN0KQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIAorICAgICAg
ICB2YXIgYUxvY2F0aW9uID0gYS5kZWJ1Z2dlck9iamVjdC5zb3VyY2VDb2RlTG9jYXRpb247Cisg
ICAgICAgIHZhciBiTG9jYXRpb24gPSBiLmRlYnVnZ2VyT2JqZWN0LnNvdXJjZUNvZGVMb2NhdGlv
bjsKIAogICAgICAgICB2YXIgY29tcGFyaXNvblJlc3VsdCA9IGFMb2NhdGlvbi5kaXNwbGF5TGlu
ZU51bWJlciAtIGJMb2NhdGlvbi5kaXNwbGF5TGluZU51bWJlcjsKICAgICAgICAgaWYgKGNvbXBh
cmlzb25SZXN1bHQgIT09IDApCkBAIC03NTIsNiArNzgwLDI4IEBAIFdlYkluc3BlY3Rvci5EZWJ1
Z2dlclNpZGViYXJQYW5lbCA9IGNsYXNzIERlYnVnZ2VyU2lkZWJhclBhbmVsIGV4dGVuZHMgV2Vi
SW5zcGVjCiAgICAgICAgIHZhciBsaW5rRWxlbWVudCA9IFdlYkluc3BlY3Rvci5jcmVhdGVTb3Vy
Y2VDb2RlTG9jYXRpb25MaW5rKHNvdXJjZUNvZGVMb2NhdGlvbiwgZmFsc2UsIHRydWUpOwogICAg
ICAgICB0aGlzLl9wYXVzZVJlYXNvbkxpbmtDb250YWluZXJFbGVtZW50LmFwcGVuZENoaWxkKGxp
bmtFbGVtZW50KTsKICAgICB9CisKKyAgICBfYWRkSXNzdWUoaXNzdWUpCisgICAgeworICAgICAg
ICB2YXIgcGFyZW50VHJlZUVsZW1lbnQgPSB0aGlzLl9hZGRUcmVlRWxlbWVudEZvclNvdXJjZUNv
ZGVUb0NvbnRlbnRUcmVlT3V0bGluZShpc3N1ZS5zb3VyY2VDb2RlTG9jYXRpb24uc291cmNlQ29k
ZSk7CisgICAgICAgIHZhciBpc3N1ZVRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5Jc3N1
ZVRyZWVFbGVtZW50KGlzc3VlKTsKKworICAgICAgICBwYXJlbnRUcmVlRWxlbWVudC5pbnNlcnRD
aGlsZChpc3N1ZVRyZWVFbGVtZW50LCBpbnNlcnRpb25JbmRleEZvck9iamVjdEluTGlzdFNvcnRl
ZEJ5RnVuY3Rpb24oaXNzdWVUcmVlRWxlbWVudCwgcGFyZW50VHJlZUVsZW1lbnQuY2hpbGRyZW4s
IHRoaXMuX2NvbXBhcmVEZWJ1Z2dlclRyZWVFbGVtZW50cykpOworICAgICAgICBpZiAocGFyZW50
VHJlZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAxKQorICAgICAgICAgICAgcGFyZW50VHJl
ZUVsZW1lbnQuZXhwYW5kKCk7CisgICAgICAgIHJldHVybiBpc3N1ZVRyZWVFbGVtZW50OworICAg
IH0KKworICAgIF9oYW5kbGVJc3N1ZUFkZGVkKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIGlz
c3VlID0gZXZlbnQuZGF0YS5pc3N1ZTsKKworICAgICAgICAvLyBXZSBvbmx5IHdhbnQgdG8gc2hv
dyBpc3N1ZXMgb3JpZ2luYXRpbmcgZnJvbSBKYXZhU2NyaXB0IHNvdXJjZSBjb2RlLgorICAgICAg
ICBpZiAoIWlzc3VlLmxpbmVOdW1iZXIgfHwgKGlzc3VlLnNvdXJjZSAhPT0gImphdmFzY3JpcHQi
ICYmIGlzc3VlLnNvdXJjZSAhPT0gImNvbnNvbGUtYXBpIikpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgdGhpcy5fYWRkSXNzdWUoaXNzdWUpOworICAgIH0KIH07CiAKIFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbC5PZmZzZXRTZWN0aW9uc1N0eWxlQ2xhc3NOYW1lID0g
Im9mZnNldC1zZWN0aW9ucyI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclRyZWVFbGVtZW50LmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJUcmVlRWxlbWVudC5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMTdiZTNlNTVhMzI0Y2M2M2YyY2E4ZmRlNzg3NzAwMTA2YTM1YmM4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdn
ZXJUcmVlRWxlbWVudC5qcwpAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyVHJlZUVsZW1lbnQgPSBjbGFzcyBEZWJ1Z2dlclRyZWVFbGVtZW50IGV4dGVu
ZHMgV2ViSW5zcGVjdG9yLkdlbmVyYWxUcmVlRWxlbWVudAoreworICAgIGNvbnN0cnVjdG9yKGNs
YXNzTmFtZXMsIHRpdGxlLCBzdWJ0aXRsZSwgcmVwcmVzZW50ZWRPYmplY3QsIGhhc0NoaWxkcmVu
KQorICAgIHsKKyAgICAgICAgc3VwZXIoY2xhc3NOYW1lcywgdGl0bGUsIHN1YnRpdGxlLCByZXBy
ZXNlbnRlZE9iamVjdCwgaGFzQ2hpbGRyZW4pOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisg
ICAgZ2V0IGRlYnVnZ2VyT2JqZWN0KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLnJlcHJl
c2VudGVkT2JqZWN0OworICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9Jc3N1ZVRyZWVFbGVtZW50LmNzcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lzc3VlVHJlZUVsZW1lbnQuY3NzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRiOGE5ZGZjMzE2NjliZDY5OTMzM2RjOTVmMjg0M2U2NDZmOWMwZmEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Jc3N1
ZVRyZWVFbGVtZW50LmNzcwpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLyogV2hlbiBh
bmltYXRpbmcgYSBsYXllciBvbiB0b3Agb2YgYSB0cmVlIGVsZW1lbnQncyBpY29uLCBtb3ZlIHRo
ZSBtYWluCitpY29uIHRvIHRoZSBpY29uIGVsZW1lbnQncyBiYWNrZ3JvdW5kIHNvIGFuaW1hdGlv
bnMgYXJlIGxheWVyZWQgb24gdG9wLiAqLworLmlzc3VlIC5pY29uIHsKKyAgICBiYWNrZ3JvdW5k
LWltYWdlOiB1cmwoLi4vSW1hZ2VzL1dhcm5pbmcuc3ZnKTsKKyAgICBjb250ZW50OiAnJzsKK30K
KworLmlzc3VlLmVycm9yIC5pY29uIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vSW1h
Z2VzL0Vycm9yLnN2Zyk7Cit9CisKKy5pc3N1ZSAuaWNvbiA+IHNwYW4geworICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgcmlnaHQ6IDA7CisgICAgYm90dG9tOiAwOwor
ICAgIGxlZnQ6IDA7CisKKyAgICBib3JkZXItcmFkaXVzOiA1MCU7CisgICAgLXdlYmtpdC10cmFu
c2Zvcm06IHNjYWxlKDApOworICAgIHRyYW5zaXRpb246IG5vbmU7CisgICAgYmFja2dyb3VuZC1j
b2xvcjogcmdiYSg3NiwgMTAyLCAxNDMsIDEpOworfQorCisubmF2aWdhdGlvbi1zaWRlYmFyLXBh
bmVsLWNvbnRlbnQtdHJlZS1vdXRsaW5lLnNtYWxsIC5pdGVtLmlzc3VlIC5pY29uLAorLm5hdmln
YXRpb24tc2lkZWJhci1wYW5lbC1jb250ZW50LXRyZWUtb3V0bGluZSAuY2hpbGRyZW4uc21hbGwg
Lml0ZW0uaXNzdWUgLmljb24sCisubmF2aWdhdGlvbi1zaWRlYmFyLXBhbmVsLWNvbnRlbnQtdHJl
ZS1vdXRsaW5lIC5pdGVtLnNtYWxsLmlzc3VlIC5pY29uIHsKKyAgICBoZWlnaHQ6IDE0cHg7Cisg
ICAgd2lkdGg6IDE0cHg7CisgICAgdG9wOiAxcHg7CisgICAgbGVmdDogMXB4OworICAgIG1hcmdp
bi1yaWdodDogNXB4OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvSXNzdWVUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lzc3VlVHJlZUVsZW1lbnQuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWE5
N2ZiMWFkMzcwYjE3YzNhNWJjMjVlMDUyMGZkZDE0MTg3ZGZjYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lzc3VlVHJlZUVsZW1l
bnQuanMKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dlYkluc3BlY3Rvci5Jc3N1ZVRy
ZWVFbGVtZW50ID0gY2xhc3MgSXNzdWVUcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlclRyZWVFbGVtZW50Cit7CisgICAgY29uc3RydWN0b3IoaXNzdWUpCisgICAgeworICAg
ICAgICB2YXIgbGluZU51bWJlciA9IGlzc3VlLmxpbmVOdW1iZXI7CisgICAgICAgIHZhciB0aXRs
ZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTGluZSAlZCIpLmZvcm1hdChsaW5lTnVtYmVyICsg
MSkgKyAiOiAiICsgaXNzdWUudGV4dDsgLy8gVGhlIHVzZXIgdmlzaWJsZSBsaW5lIG51bWJlciBp
cyAxLWJhc2VkLgorCisgICAgICAgIHN1cGVyKFtXZWJJbnNwZWN0b3IuSXNzdWVUcmVlRWxlbWVu
dC5TdHlsZUNsYXNzTmFtZSwgV2ViSW5zcGVjdG9yLklzc3VlVHJlZUVsZW1lbnQubGV2ZWxTdHls
ZU1hcFtpc3N1ZS5sZXZlbF1dLCB0aXRsZSwgbnVsbCwgaXNzdWUsIGZhbHNlKTsKKworICAgICAg
ICB0aGlzLnNtYWxsID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5faXNzdWUgPSBpc3N1ZTsKKyAgICB9
CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBpc3N1ZSgpCisgICAgeworICAgICAgICByZXR1
cm4gdGhpcy5faXNzdWU7CisgICAgfQorfTsKKworV2ViSW5zcGVjdG9yLklzc3VlVHJlZUVsZW1l
bnQuU3R5bGVDbGFzc05hbWUgPSAiaXNzdWUiOworV2ViSW5zcGVjdG9yLklzc3VlVHJlZUVsZW1l
bnQuRXJyb3JTdHlsZUNsYXNzTmFtZSA9ICJlcnJvciI7CitXZWJJbnNwZWN0b3IuSXNzdWVUcmVl
RWxlbWVudC5XYXJuaW5nU3R5bGVDbGFzc05hbWUgPSAid2FybmluZyI7CisKK1dlYkluc3BlY3Rv
ci5Jc3N1ZVRyZWVFbGVtZW50LmxldmVsU3R5bGVNYXAgPSB7CisgICAgImVycm9yIjogV2ViSW5z
cGVjdG9yLklzc3VlVHJlZUVsZW1lbnQuRXJyb3JTdHlsZUNsYXNzTmFtZSwKKyAgICAid2Fybmlu
ZyI6IFdlYkluc3BlY3Rvci5Jc3N1ZVRyZWVFbGVtZW50Lldhcm5pbmdTdHlsZUNsYXNzTmFtZQor
fTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>250288</attachid>
            <date>2015-04-07 13:20:51 -0700</date>
            <delta_ts>2015-04-07 13:20:51 -0700</delta_ts>
            <desc>[SCREENSHOT] Interface changes: issue elements.</desc>
            <filename>interface.png</filename>
            <type>image/png</type>
            <size>120955</size>
            <attacher name="Jonathan Wells">jonowells</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAABAAAAAJSCAYAAABdi7dFAAAMFWlDQ1BJQ0MgUHJvZmlsZQAASImV
lwdUk8kWx+crKYSEFoiAlNCb9A7SuyAgHWyEJEAoIQSCiL0sKrh2EcGKroAouBZAFhURu4uAvS6I
qKysiwUsqLxJAujzvT3vvDlnvvxy5947/5lv5jszAMjbsQSCDFQBgEx+rjAiwJsZF5/AJP0BEEAE
ikAFWLLYOQKv8PAQ8I9l+Db0huWGuTjXP/v916LI4eawAUDCISdxctiZkI8DgKuzBcJcAAgd0K43
L1cg5neQlYVQIABEsphTpKwh5iQpW0l8oiJ8IPsCQKayWMIUAOTE+Zl57BSYR04A2YrP4fEh74Hs
zk5lcSB3Q56SmZkFWZ4K2Tjpuzwp/5YzaSIni5UywdKxSArZl5cjyGDN/z+n43+XzAzReB+6sFJT
hYER4jHDeatKzwoWM9SONPOTQsMgK0G+xONI/MV8P1UUGD3mP8DO8YFzBhgAoIDD8g2GDOcSZYjS
o73G2IYllMRCfzSUlxsUNcZJwqyIsfxoHjfHL3KcU7lBIWM5V/MzQsd5VzLPPwgyXGno8YLUqFip
TrQtjxcTClkOckdOemTwmP/jglSf0HEfoShCrFkf8rtkoX+E1AdTzcwZHxdmwWZJNKhC9sxNjQqU
xmJx3Jy4kHFtHK6vn1QDxuHyo8c0Y3B1eUeMxRYKMsLH/LFd3IyACOk8Y0dy8iLHY7ty4QKTzgP2
JI01LVyqHxsW5IZHSbXhOAgBPsAXMIEI1iSQBdIAr32gYQD+k7b4AxYQghTABeZjlvGIWEkLHz4j
QQH4CxIX5EzEeUtauSAP2r9MWKVPc5Asac2TRKSDZ5AzcXXcHXfFQ+DTE1Yb3Al3Ho9jyo/3SvQj
+hIDif5EkwkdbKg6A1Yh4P2n7Vsk4Rmhk/CEcIvQTbgHgmErF45ZrJA/MbIY8FSSZez/XN5y4Q/K
mWA66IZx/mOjS4LR/eM+uCFUbY97425QP9SOM3B1YI7bwZF44R5wbPbQ+r1C0YSKb3P5Y39ifd+P
ccwuZypnP6YiaUK/z4TXj1l8vpsjDvwN/tETW40dwy5iZ7HLWDPWAJjYGawRu4adEvPESngqWQnj
vUVItKXDPLxxH6saq36rz//RO2tMgVDyvkEuNz9XvCF8sgTzhbyU1FymF/wic5lBfLbFFKaNlbU9
AOLvu/Tz8ZYh+W4jjCvfbNktADgXQWPKNxtLD4CTzwCgD3+z6b2B22sDAKc62CJhntSGix8EQAHy
cGeoAS2gB4zhmGyAA3AFnsAPTANhIArEgzlw1lNBJlQ9DywEy0AhKAYbwFZQBnaDfaAKHAZHQQNo
BmfBBXAVdIBb4AFcG33gJRgEw2AEQRASQkPoiBqijRggZogN4oS4I35ICBKBxCOJSArCR0TIQmQF
UoxsQsqQvUg18ityEjmLXEY6kXtID9KPvEE+oRhKRZVRTdQQtUSdUC80GI1CZ6MpaDZagK5E16Gl
aAV6CK1Hz6JX0VtoN/oSHcIAJosxMB3MHHPCfLAwLAFLxoTYYqwIK8EqsFqsCb7rG1g3NoB9xIk4
HWfi5nB9BuLROBvPxhfja/EyvAqvx9vwG3gPPoh/JdAIGgQzggshiBBHSCHMIxQSSggHCCcI5+GO
6iMME4lEBtGI6Aj3ZjwxjbiAuJa4k1hHbCF2EnuJQyQSSY1kRnIjhZFYpFxSIWk76RDpDKmL1Ef6
QJYla5NtyP7kBDKfvJxcQj5IPk3uIj8nj8goyBjIuMiEyXBk5susl9kv0yRzXaZPZoSiSDGiuFGi
KGmUZZRSSi3lPOUh5a2srKyurLPsDFme7FLZUtkjspdke2Q/UpWoplQf6iyqiLqOWkltod6jvqXR
aIY0T1oCLZe2jlZNO0d7TPsgR5ezkAuS48gtkSuXq5frknslLyNvIO8lP0e+QL5E/pj8dfkBBRkF
QwUfBZbCYoVyhZMKdxSGFOmK1ophipmKaxUPKl5WfKFEUjJU8lPiKK1U2qd0TqmXjtH16D50Nn0F
fT/9PL1PmahspByknKZcrHxYuV15UEVJxU4lRiVfpVzllEo3A2MYMoIYGYz1jKOM24xPkzQneU3i
TlozqXZS16T3qpNVPVW5qkWqdaq3VD+pMdX81NLVNqo1qD1Sx9VN1Weoz1PfpX5efWCy8mTXyezJ
RZOPTr6vgWqYakRoLNDYp3FNY0hTSzNAU6C5XfOc5oAWQ8tTK01ri9ZprX5tura7Nk97i/YZ7T+Z
KkwvZgazlNnGHNTR0AnUEens1WnXGdE10o3WXa5bp/tIj6LnpJest0WvVW9QX1t/uv5C/Rr9+wYy
Bk4GqQbbDC4avDc0Mow1XGXYYPjCSNUoyKjAqMbooTHN2MM427jC+KYJ0cTJJN1kp0mHKWpqb5pq
Wm563Qw1czDjme0065xCmOI8hT+lYsodc6q5l3meeY15jwXDIsRiuUWDxStLfcsEy42WFy2/Wtlb
ZVjtt3pgrWQ9zXq5dZP1GxtTG7ZNuc1NW5qtv+0S20bb13Zmdly7XXZ37en20+1X2bfaf3FwdBA6
1Dr0O+o7JjrucLzjpOwU7rTW6ZIzwdnbeYlzs/NHFweXXJejLn+7mrumux50fTHVaCp36v6pvW66
biy3vW7d7kz3RPc97t0eOh4sjwqPJ556nhzPA57PvUy80rwOeb3ytvIWep/wfu/j4rPIp8UX8w3w
LfJt91Pyi/Yr83vsr+uf4l/jPxhgH7AgoCWQEBgcuDHwTpBmEDuoOmhwmuO0RdPagqnBkcFlwU9C
TEOEIU3T0enTpm+e/jDUIJQf2hAGwoLCNoc9CjcKzw7/bQZxRviM8hnPIqwjFkZcjKRHzo08GDkc
5R21PupBtHG0KLo1Rj5mVkx1zPtY39hNsd1xlnGL4q7Gq8fz4hsTSAkxCQcShmb6zdw6s2+W/azC
WbdnG83On315jvqcjDmn5srPZc09lkhIjE08mPiZFcaqYA0lBSXtSBpk+7C3sV9yPDlbOP1cN+4m
7vNkt+RNyS9S3FI2p/SneqSWpA7wfHhlvNdpgWm7096nh6VXpo9mxGbUZZIzEzNP8pX46fy2LK2s
/KxOgZmgUNCd7ZK9NXtQGCw8kIPkzM5pzFWGR51rImPRT6KePPe88rwP82LmHctXzOfnX5tvOn/N
/OcF/gW/LMAXsBe0LtRZuGxhzyKvRXsXI4uTFrcu0Vuycknf0oClVcsoy9KX/b7cavmm5e9WxK5o
Wqm5cunK3p8CfqoplCsUFt5Z5bpq92p8NW91+xrbNdvXfC3iFF0ptiouKf68lr32ys/WP5f+PLou
eV37eof1uzYQN/A33N7osbFqk+Kmgk29m6dvrt/C3FK05d3WuVsvl9iV7N5G2Sba1l0aUtq4XX/7
hu2fy1LLbpV7l9ft0NixZsf7nZydXbs8d9Xu1txdvPvTHt6eu3sD9tZXGFaU7CPuy9v3bH/M/ou/
OP1SfUD9QPGBL5X8yu6qiKq2asfq6oMaB9fXoDWimv5Dsw51HPY93FhrXru3jlFXfAQcER3589fE
X28fDT7aeszpWO1xg+M7TtBPFNUj9fPrBxtSG7ob4xs7T0472drk2nTiN4vfKpt1mstPqZxaf5py
euXp0TMFZ4ZaBC0DZ1PO9rbObX1wLu7czbYZbe3ng89fuuB/4dxFr4tnLrldar7scvnkFacrDVcd
rtZfs7924nf730+0O7TXX3e83tjh3NHUObXzdJdH19kbvjcu3Ay6efVW6K3O29G3796Zdaf7Lufu
i3sZ917fz7s/8mDpQ8LDokcKj0oeazyu+MPkj7puh+5TPb49155EPnnQy+59+TTn6ee+lc9oz0qe
az+vfmHzornfv7/jz5l/9r0UvBwZKPxL8a8dr4xfHf/b8+9rg3GDfa+Fr0ffrH2r9rbynd271qHw
ocfDmcMj74s+qH2o+uj08eKn2E/PR+Z9Jn0u/WLypelr8NeHo5mjowKWkCU5CmCwosnJALypBIAW
D88O8B5HkZPevyQFkd4ZJQT+iaV3NElxAKDSE4DopQCEwDPKLlgNIFPhr/j4HeUJUFvbiTpWcpJt
baS5qPAWQ/gwOvpWEwBSEwBfhKOjIztHR7/sh2LvAdCSLb33iQsRnvH3KIvpaj4L/Fj+Bb51ayYQ
iOzkAAAACXBIWXMAABYlAAAWJQFJUiTwAAABnmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6
eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAi
PgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRm
LXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAg
ICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAg
IDxleGlmOlBpeGVsWERpbWVuc2lvbj4xMDI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAg
ICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjU5NDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAg
IDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpRa1DCAABAAElE
QVR4Aex9CWAURfb3D3Lf4QoQSDgSIEEIp0JcwKCigooXrK7Af0VdPFbF3f3UVVdUFEVd13PFVVdU
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
fWfHkiRAAiRAAiRAAp2HAA0Afj6rsLAw5Q9D6RVhMLQPPjXatGyLiQRIgAS6C4G8oq86dKg9xJIo
ueVfaIj0guO6/w59GGycBEiABEiABEigXQgwBoCfWHv37q3UOH36NGpqavys3XLxq1evQsqWSW2r
5VosQQIkQAIk0FYCLz48Crf3jeK6/7aCZH0SIAESIAESIIGgJdA+U9hBO9y2dywhIQFSSb9+/TpO
nTrVdoEeJMjZf9kWEwmQAAl0dQKf/GJW0AyRrv9B8yjYERIgARIgARIggXYgQAOAn1CNRiNGjRqF
qqoqVFZWoq6uzk8J3otHRUUhNjYWffr0QUREhPfCvEsCJEACJBAwAjL4Lbf8CxhOCiIBEiABEiAB
EghCAjQAtOKhSMV8wIAByqcV1VmFBEiABEhAR0CNe6LL4ikJkAAJkAAJkAAJkEA7EGAMgHaASpEk
QAIkQAIkQAIkQAIkQAIkQAIkEGwEaAAItifC/pAACZAACZAACZAACZAACZAACZBAOxCgAaAdoFIk
CZAACZAACZAACZAACZAACZAACQQbARoAgu2JsD8kQAIkQAIkQAIkQAIkQAIkQAIk0A4EaABoB6gU
SQIkQAIkQAIkQAIkQAIkQAIkQALBRoAGgGB7IuwPCZAACZAACZAACZAACZAACZAACbQDARoA2gEq
RZIACZAACZAACZAACZAACZAACZBAsBGgASDYngj7QwIkQAIkQAIkQAIkQAIkQAIkQALtQIAGgHaA
SpEkQAIkQAIkQAIkQAIkQAIkQAIkEGwEaAAItifC/pAACZAACZAACZAACZAACZAACZBAOxCgAaAd
oFIkCZAACZAACZAACZAACZAACZAACQQbAUOwdagz98dyoAC12S8AN24CISHWjzog/bVyLm6HGRD1
s5/CMPU+tRSPJEACJEACJEACJEACJEACJEACJNAuBOgBECCsDsq/lNncDDQ12T+NjYDFYv3cFAYC
YSRorqtD7b/+BJa8fQHqBcWQAAmQAAmQAAmQAAmQAAmQAAmQgHsCNAC45+JXruWjA/aZfzc1Q3r0
gPy4TcIooBgB9uW7vc1MEiABEiABEiABEiABEiABEiABEggEARoA2kjRsv8jofy/aHX7d5IVYjSi
5/cXI/6DveLzvnIeEml0KiUupRHgxWWw0AjgyoY5JEACJEACJEACJEACJEACJEACASFAA0AbMFry
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
gg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250541</attachid>
            <date>2015-04-10 16:53:50 -0700</date>
            <delta_ts>2015-04-10 20:09:08 -0700</delta_ts>
            <desc>[PATCH] proper sourceCodeLocation support, feedback changes.</desc>
            <filename>bug-143464-20150410165258.patch</filename>
            <type>text/plain</type>
            <size>30541</size>
            <attacher name="Jonathan Wells">jonowells</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyNjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBk
MzkzYWU4OWQzMjM3Mzk1NmI5Y2M4NzRjZGFlODVjNTgzOThmMjBkLi5jY2VkZWQyMzMxZjdmMjE5
NDBkMmJkZDFlOTdkNDhlZTBmMGVjNWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2OCBAQAorMjAxNS0wNC0xMCAgSm9ubyBXZWxscyAgPGpvbm93ZWxsc0BhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRGVidWdnZXIgc2lkZWJhciBzaG91bGQgc2hvdyBl
cnJvcnMgdW5kZXJuZWF0aCBzY3JpcHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDM0NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgdHJlZSBlbGVtZW50IGNhbGxlZCBJc3N1ZVRyZWVF
bGVtZW50LiBUaGlzIHNob3dzIHdhcm5pbmdzIGFuZCBlcnJvcnMgaW4gdGhlIGRlYnVnZ2VyIHNp
ZGViYXIuIFRoZXNlCisgICAgICAgIGNhbiBiZSBjbGlja2VkIHRvIGp1bXAgdG8gdGhlIGxpbmUg
b2Ygc291cmNlIGNvZGUgZm9yIHdoaWNoIHRoZSBlcnJvciB3YXMgdGhyb3duLiBCcmVha3BvaW50
VHJlZUVsZW1lbnQgYW5kCisgICAgICAgIElzc3VlVHJlZUVsZW1lbnQgbm93IGluaGVyaXQgZnJv
bSBEZWJ1Z2dlclRyZWVFbGVtZW50IHRvIHN1cHBvcnQgYW55IG5lZWRlZCBjb21tb25hbGl0aWVz
IGFtb25nIHRoZSBpbnRlcmZhY2VzCisgICAgICAgIG9mIGVsZW1lbnRzIGluIHRoZSBkZWJ1Z2dl
ciBzaWRlYmFyIHBhbmVsLgorCisgICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2Nh
bGl6ZWRTdHJpbmdzLmpzOiBVcGRhdGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5o
dG1sOiBBZGQgbmV3IGZpbGVzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvSXNz
dWVNZXNzYWdlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLklzc3VlTWVzc2FnZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLnByb3RvdHlwZS5nZXQgc291cmNlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UucHJvdG90eXBlLmdldCBsaW5lTnVtYmVy
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UucHJvdG90eXBlLmdldCBjb2x1
bW5OdW1iZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLklzc3VlTWVzc2FnZS5wcm90b3R5cGUu
Z2V0IGRpc3BsYXlMaW5lTnVtYmVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3Nh
Z2UucHJvdG90eXBlLmdldCBkaXNwbGF5Q29sdW1uTnVtYmVyKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Jc3N1ZU1lc3NhZ2UucHJvdG90eXBlLmdldCBzb3VyY2VDb2RlTG9jYXRpb24pOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLklzc3VlTWVzc2FnZS5wcm90b3R5cGUuc2F2ZUlkZW50aXR5VG9D
b29raWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLklzc3VlTWVzc2FnZS5wcm90b3R5cGUuX3Nv
dXJjZUNvZGVMb2NhdGlvbkRpc3BsYXlMb2NhdGlvbkNoYW5nZWQpOgorICAgICAgICBDb252ZXJ0
IHRvIHVzZSBhIGJhY2tpbmcgU291cmNlQ29kZUxvY2F0aW9uLiBFeHBhbmQgQVBJLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9CcmVha3BvaW50VHJlZUVsZW1lbnQuanM6IEluaGVy
aXRzIG5vdyBmcm9tIERlYnVnZ2VyVHJlZUVsZW1lbnQuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyU2lkZWJhclBhbmVsLnNob3dSZXNvdXJjZXNXaXRoQnJlYWtwb2ludHNPbmx5Rmls
dGVyRnVuY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVs
LnNob3dSZXNvdXJjZXNXaXRoSXNzdWVzT25seUZpbHRlckZ1bmN0aW9uKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RGVidWdnZXJTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9hZGRCcmVha3BvaW50KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbC5wcm90b3R5cGUuX2JyZWFrcG9pbnRS
ZW1vdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbC5wcm90
b3R5cGUuX2hhbmRsZURlYnVnZ2VyT2JqZWN0RGlzcGxheUxvY2F0aW9uRGlkQ2hhbmdlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlbW92
ZURlYnVnZ2VyVHJlZUVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lk
ZWJhclBhbmVsLnByb3RvdHlwZS5fdHJlZUVsZW1lbnRTZWxlY3RlZCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9jb21wYXJlRGVidWdnZXJU
cmVlRWxlbWVudHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVs
LnByb3RvdHlwZS5fYWRkRGVidWdnZXJPYmplY3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fYWRkSXNzdWUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsLnByb3RvdHlwZS5faGFuZGxlSXNzdWVBZGRlZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9o
YW5kbGVJc3N1ZXNDbGVhcmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGVi
YXJQYW5lbC5wcm90b3R5cGUuX2JyZWFrcG9pbnREaXNwbGF5TG9jYXRpb25EaWRDaGFuZ2UpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsLnByb3Rv
dHlwZS5fcmVtb3ZlQnJlYWtwb2ludFRyZWVFbGVtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbC5wcm90b3R5cGUuX2NvbXBhcmVCcmVha3Bv
aW50VHJlZUVsZW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgQWRkIElzc3VlVHJlZUVsZW1lbnRz
IHRvIHRoZSBzaWRlYmFyIHdoZW5ldmVyIGEgd2FybmluZyBvciBlcnJvciBjb3JyZXNwb25kaW5n
IHRvIGEgbGluZSBvZiBjb2RlIGlzIGZvdW5kLgorICAgICAgICBBZGQgYSBmaWx0ZXIgZnVuY3Rp
b24gYW5kIGJ1dHRvbiB0byBmaWx0ZXIgZG93biB0byBqdXN0IHRoZXNlLiBFbnN1cmUgaXNzdWUg
YW5kIGJyZWFrcG9pbnQgZWxlbWVudHMgY2FuIGJlCisgICAgICAgIHByb3Blcmx5IGNvbXBhcmVk
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclRyZWVFbGVtZW50Lmpz
OiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclRyZWVFbGVtZW50KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclRyZWVFbGVtZW50LnByb3RvdHlwZS5nZXQgZGVi
dWdnZXJPYmplY3QpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Jc3N1ZVRyZWVF
bGVtZW50LmNzczogQWRkZWQuCisgICAgICAgICguaXNzdWUgLmljb24pOgorICAgICAgICAoLmlz
c3VlLmVycm9yIC5pY29uKToKKyAgICAgICAgKC5uYXZpZ2F0aW9uLXNpZGViYXItcGFuZWwtY29u
dGVudC10cmVlLW91dGxpbmUgLml0ZW0uc21hbGwuaXNzdWUgLmljb24pOgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9Jc3N1ZVRyZWVFbGVtZW50LmpzOiBBZGRlZC4KKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Jc3N1ZVRyZWVFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5J
c3N1ZVRyZWVFbGVtZW50LnByb3RvdHlwZS5nZXQgaXNzdWVNZXNzYWdlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Jc3N1ZVRyZWVFbGVtZW50LnByb3RvdHlwZS5faGFuZGxlTG9jYXRpb25EaWRD
aGFuZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLklzc3VlVHJlZUVsZW1lbnQucHJvdG90eXBl
Ll91cGRhdGVUaXRsZXMpOgorCiAyMDE1LTA0LTA5ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFy
b0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogVW5jYXVnaHQgZXhjZXB0aW9u
IHVzaW5nIGNvbnNvbGUudGFibGUgd2l0aCBmaWx0ZXIgYXJndW1lbnQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmlu
Z3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2Nh
bGl6ZWRTdHJpbmdzLmpzCmluZGV4IDgwM2E3ZjdmYWI4NmQ3YWNmNDJlZTBjZjNkODQyMDU4NWVh
NjQ5NTAuLjJiZGRmZGIwNjczZGYwNTE2ZTM1NzFiYjcxYzc0ZjZkNjZiMmRkNGQgMTAwNjQ0CkdJ
VCBiaW5hcnkgcGF0Y2gKZGVsdGEgMTEzCnpjbVoyPGlUU301PF8tTnZDcmNtSTtMS3p3MkV0Tj8p
SmFGM3gjMWohOz5pbXZiU0wqODsrb3VsXmNmSkZBdUUpZwpoe1EwT0VSPmlCMkROWGgqPWJDKV9C
LWlIRSQyM0dZJWlkdy0xcHV6eUU3fH02CgpkZWx0YSA3Mwp6Y21hRUdnP1o1PjxfLU52Q3U8KSFu
fCVNNilNV09mQjJjIV49RCl8fEx9ZkQ+M0sqO3k2ZDA1a1Z1N1NCbT0oZVIKUDZgbE95dyhqUVd5
UjV0YmFfYnNkCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTWFpbi5odG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5o
dG1sCmluZGV4IDJiMTVhYTBjZjAxMTFlMjYwODJkODUxMTIwM2I4Mjg3MGU4OTRlZDIuLmJkYWVk
NDY3MzE3Y2UzMGVhZWNjYzU3NzY4YTM2MzcxMmQ1OTEyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKQEAgLTg3LDYgKzg3LDcgQEAKICAgICA8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0ltYWdlUmVzb3VyY2VDb250ZW50Vmll
dy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvSW5kZXRlcm1p
bmF0ZVByb2dyZXNzU3Bpbm5lci5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iVmlld3MvSW5kZXhlZERhdGFiYXNlT2JqZWN0U3RvcmVDb250ZW50Vmlldy5jc3MiPgorICAg
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvSXNzdWVUcmVlRWxlbWVudC5jc3Mi
PgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvTGF5ZXJUcmVlRGV0YWls
c1NpZGViYXJQYW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmll
d3MvTGF5b3V0VGltZWxpbmVPdmVydmlld0dyYXBoLmNzcyI+CiAgICAgPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSJWaWV3cy9MYXlvdXRUaW1lbGluZVZpZXcuY3NzIj4KQEAgLTMzMCw2ICsz
MzEsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9TdG9yYWdlVHJlZUVsZW1lbnQuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9UaW1lbGluZVJlY29yZFRyZWVFbGVtZW50
LmpzIj48L3NjcmlwdD4KIAorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9EZWJ1Z2dlclRyZWVFbGVt
ZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvUmVzb3VyY2VUcmVlRWxl
bWVudC5qcyI+PC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQWN0aXZhdGVCdXR0
b25OYXZpZ2F0aW9uSXRlbS5qcyI+PC9zY3JpcHQ+CkBAIC00MTYsNiArNDE4LDcgQEAKICAgICA8
c2NyaXB0IHNyYz0iVmlld3MvSW5kZXhlZERhdGFiYXNlT2JqZWN0U3RvcmVJbmRleFRyZWVFbGVt
ZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvSW5kZXhlZERhdGFiYXNl
T2JqZWN0U3RvcmVUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZp
ZXdzL0luZGV4ZWREYXRhYmFzZVRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iVmlld3MvSXNzdWVUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IlZpZXdzL0xheWVyVHJlZURhdGFHcmlkTm9kZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlZpZXdzL0xheWVyVHJlZURldGFpbHNTaWRlYmFyUGFuZWwuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9MYXlvdXRUaW1lbGluZURhdGFHcmlkLmpzIj48L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVs
cy9Jc3N1ZU1lc3NhZ2UuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvSXNzdWVNZXNzYWdlLmpzCmluZGV4IDNjZDQzZDgzNTA5Nzk4ODlmMjZkMDkzNDY2Y2Jm
MTcwODJjOTI5YzYuLmZmNmM0Yjc1ZmFmMTU3ZGExY2VjODU1YzA2NDMxZWM1YjU4ZjE1NDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9Jc3N1
ZU1lc3NhZ2UuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzL0lzc3VlTWVzc2FnZS5qcwpAQCAtMzEsOCArMzEsNyBAQCBXZWJJbnNwZWN0b3IuSXNzdWVN
ZXNzYWdlID0gY2xhc3MgSXNzdWVNZXNzYWdlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAog
CiAgICAgICAgIHRoaXMuX2xldmVsID0gbGV2ZWw7CiAgICAgICAgIHRoaXMuX3RleHQgPSB0ZXh0
OwotCi0gICAgICAgIC8vIEZJWE1FOiBNb3ZlIHRvIGEgU291cmNlQ29kZUxvY2F0aW9uLgorICAg
ICAgICB0aGlzLl9zb3VyY2UgPSBzb3VyY2U7CiAKICAgICAgICAgLy8gRklYTUUgPGh0dHA6Ly93
ZWJraXQub3JnL2IvNzY0MDQ+OiBSZW1vdmUgdGhlIHN0cmluZyBlcXVhbGl0eSBjaGVja3MgZm9y
IHVuZGVmaW5lZAogICAgICAgICAvLyBvbmNlIHdlIGRvbid0IGdldCB0aGF0IHZhbHVlIGFueW1v
cmUgZnJvbSBXZWJDb3JlLgpAQCAtNDEsMTEgKzQwLDggQEAgV2ViSW5zcGVjdG9yLklzc3VlTWVz
c2FnZSA9IGNsYXNzIElzc3VlTWVzc2FnZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAg
ICAgICAgaWYgKHVybCAmJiB1cmwgIT09ICJ1bmRlZmluZWQiKQogICAgICAgICAgICAgdGhpcy5f
dXJsID0gdXJsOwogCi0gICAgICAgIGlmICh0eXBlb2YgbGluZU51bWJlciA9PT0gIm51bWJlciIg
JiYgbGluZU51bWJlciA+PSAwKQotICAgICAgICAgICAgdGhpcy5fbGluZU51bWJlciA9IGxpbmVO
dW1iZXI7Ci0KLSAgICAgICAgaWYgKHR5cGVvZiBjb2x1bW5OdW1iZXIgPT09ICJudW1iZXIiICYm
IGNvbHVtbk51bWJlciA+PSAwKQotICAgICAgICAgICAgdGhpcy5fY29sdW1uTnVtYmVyID0gY29s
dW1uTnVtYmVyOworICAgICAgICBpZiAodHlwZW9mIGxpbmVOdW1iZXIgPT09ICJudW1iZXIiICYm
IGxpbmVOdW1iZXIgPj0gMCAmJiB0aGlzLl91cmwpCisgICAgICAgICAgICB0aGlzLl9zb3VyY2VD
b2RlTG9jYXRpb24gPSBuZXcgV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVMb2NhdGlvbihXZWJJbnNw
ZWN0b3IuZnJhbWVSZXNvdXJjZU1hbmFnZXIucmVzb3VyY2VGb3JVUkwodXJsKSwgbGluZU51bWJl
ciwgY29sdW1uTnVtYmVyKTsKIAogICAgICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9y
Zy9iLzE0MjU1Mz4gV2ViIEluc3BlY3RvcjogTWVyZ2UgSXNzdWVNZXNzYWdlL0NvbnNvbGVNZXNz
YWdlIC0gYm90aCBhdHRlbXB0IHRvIG1vZGlmeSB0aGUgQ29uc29sZSBNZXNzYWdlcyBwYXJhbWV0
ZXIgaW5kZXBlbmRlbnRseQogCkBAIC05OSw2ICs5NSw5IEBAIFdlYkluc3BlY3Rvci5Jc3N1ZU1l
c3NhZ2UgPSBjbGFzcyBJc3N1ZU1lc3NhZ2UgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAg
ICAgICAgICAgICBjb25zb2xlLmVycm9yKCJVbmtub3duIGlzc3VlIHNvdXJjZToiLCBzb3VyY2Up
OwogICAgICAgICAgICAgdGhpcy5fdHlwZSA9IFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UuVHlw
ZS5PdGhlcklzc3VlOwogICAgICAgICB9CisKKyAgICAgICAgaWYgKHRoaXMuX3NvdXJjZUNvZGVM
b2NhdGlvbikKKyAgICAgICAgICAgIHRoaXMuX3NvdXJjZUNvZGVMb2NhdGlvbi5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlTG9jYXRpb24uRXZlbnQuRGlzcGxheUxvY2F0
aW9uQ2hhbmdlZCwgdGhpcy5fc291cmNlQ29kZUxvY2F0aW9uRGlzcGxheUxvY2F0aW9uQ2hhbmdl
ZCwgdGhpcyk7CiAgICAgfQogCiAgICAgLy8gU3RhdGljCkBAIC0xNDUsNiArMTQ0LDExIEBAIFdl
Ykluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UgPSBjbGFzcyBJc3N1ZU1lc3NhZ2UgZXh0ZW5kcyBXZWJJ
bnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHJldHVybiB0aGlzLl90ZXh0OwogICAgIH0KIAorICAg
IGdldCBzb3VyY2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZTsKKyAgICB9
CisKICAgICBnZXQgdXJsKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl91cmw7CkBAIC0x
NTIsMTIgKzE1NiwzOCBAQCBXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlID0gY2xhc3MgSXNzdWVN
ZXNzYWdlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAgZ2V0IGxpbmVOdW1iZXIo
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2xpbmVOdW1iZXI7CisgICAgICAgIGlmICh0
aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24pCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fc291cmNl
Q29kZUxvY2F0aW9uLmxpbmVOdW1iZXI7CiAgICAgfQogCiAgICAgZ2V0IGNvbHVtbk51bWJlcigp
CiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1uTnVtYmVyOworICAgICAgICBpZiAo
dGhpcy5fc291cmNlQ29kZUxvY2F0aW9uKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJj
ZUNvZGVMb2NhdGlvbi5jb2x1bW5OdW1iZXI7CisgICAgfQorCisgICAgZ2V0IGRpc3BsYXlMaW5l
TnVtYmVyKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24pCisg
ICAgICAgICAgICByZXR1cm4gdGhpcy5fc291cmNlQ29kZUxvY2F0aW9uLmRpc3BsYXlMaW5lTnVt
YmVyOworICAgIH0KKworICAgIGdldCBkaXNwbGF5Q29sdW1uTnVtYmVyKCkKKyAgICB7CisgICAg
ICAgIGlmICh0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24pCisgICAgICAgICAgICByZXR1cm4gdGhp
cy5fc291cmNlQ29kZUxvY2F0aW9uLmRpc3BsYXlDb2x1bW5OdW1iZXI7CisgICAgfQorCisgICAg
Z2V0IHNvdXJjZUNvZGVMb2NhdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc291
cmNlQ29kZUxvY2F0aW9uOworICAgIH0KKworICAgIHNhdmVJZGVudGl0eVRvQ29va2llKGNvb2tp
ZSkKKyAgICB7CisgICAgICAgIGNvb2tpZVtXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLlVSTENv
b2tpZUtleV0gPSB0aGlzLnVybDsKKyAgICAgICAgY29va2llW1dlYkluc3BlY3Rvci5Jc3N1ZU1l
c3NhZ2UuTGluZU51bWJlckNvb2tpZUtleV0gPSB0aGlzLnNvdXJjZUNvZGVMb2NhdGlvbi5saW5l
TnVtYmVyOworICAgICAgICBjb29raWVbV2ViSW5zcGVjdG9yLklzc3VlTWVzc2FnZS5Db2x1bW5O
dW1iZXJDb29raWVLZXldID0gdGhpcy5zb3VyY2VDb2RlTG9jYXRpb24uY29sdW1uTnVtYmVyOwog
ICAgIH0KIAogICAgIC8vIFByaXZhdGUKQEAgLTE5Niw2ICsyMjYsMTEgQEAgV2ViSW5zcGVjdG9y
Lklzc3VlTWVzc2FnZSA9IGNsYXNzIElzc3VlTWVzc2FnZSBleHRlbmRzIFdlYkluc3BlY3Rvci5P
YmplY3QKIAogICAgICAgICB0aGlzLl90ZXh0ID0gcmVzdWx0VGV4dDsKICAgICB9CisKKyAgICBf
c291cmNlQ29kZUxvY2F0aW9uRGlzcGxheUxvY2F0aW9uQ2hhbmdlZChldmVudCkKKyAgICB7Cisg
ICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5Jc3N1ZU1l
c3NhZ2UuRXZlbnQuRGlzcGxheUxvY2F0aW9uRGlkQ2hhbmdlLCBldmVudC5kYXRhKTsKKyAgICB9
CiB9OwogCiBXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLkxldmVsID0gewpAQCAtMjE0LDYgKzI0
OSwxNiBAQCBXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLlR5cGUgPSB7CiAgICAgT3RoZXJJc3N1
ZTogImlzc3VlLW1lc3NhZ2UtdHlwZS1vdGhlci1pc3N1ZSIKIH07CiAKK1dlYkluc3BlY3Rvci5J
c3N1ZU1lc3NhZ2UuVHlwZUlkZW50aWZpZXIgPSAiaXNzdWUtbWVzc2FnZSI7CitXZWJJbnNwZWN0
b3IuSXNzdWVNZXNzYWdlLlVSTENvb2tpZUtleSA9ICJpc3N1ZS1tZXNzYWdlLXVybCI7CitXZWJJ
bnNwZWN0b3IuSXNzdWVNZXNzYWdlLkxpbmVOdW1iZXJDb29raWVLZXkgPSAiaXNzdWUtbWVzc2Fn
ZS1saW5lLW51bWJlciI7CitXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLkNvbHVtbk51bWJlckNv
b2tpZUtleSA9ICJpc3N1ZS1tZXNzYWdlLWNvbHVtbi1udW1iZXIiOworCitXZWJJbnNwZWN0b3Iu
SXNzdWVNZXNzYWdlLkV2ZW50ID0geworICAgIExvY2F0aW9uRGlkQ2hhbmdlOiAiaXNzdWUtbWVz
c2FnZS1sb2NhdGlvbi1kaWQtY2hhbmdlIiwKKyAgICBEaXNwbGF5TG9jYXRpb25EaWRDaGFuZ2U6
ICJpc3N1ZS1tZXNzYWdlLWRpc3BsYXktbG9jYXRpb24tZGlkLWNoYW5nZSIKK307CisKIFdlYklu
c3BlY3Rvci5Jc3N1ZU1lc3NhZ2UuVHlwZS5fcHJlZml4VHlwZU1hcCA9IHsKICAgICAiU3ludGF4
RXJyb3IiOiBXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLlR5cGUuU2VtYW50aWNJc3N1ZSwKICAg
ICAiVVJJRXJyb3IiOiBXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLlR5cGUuU2VtYW50aWNJc3N1
ZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0JyZWFrcG9pbnRUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0JyZWFrcG9pbnRUcmVlRWxlbWVudC5qcwppbmRleCAwODY2ZTNmMjVjMmEy
MjdhZjU2MTQ1MWExNTZlNjBmMzcxNzg0Mzc3Li43OWU4NmZiNGE4MjEyMDZmNDJkNTk0ZWIyNzEw
OWQwOTIwNTI0YmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9CcmVha3BvaW50VHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQnJlYWtwb2ludFRyZWVFbGVtZW50LmpzCkBAIC0y
Myw3ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAot
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudCA9IGNsYXNzIEJyZWFrcG9pbnRUcmVl
RWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5HZW5lcmFsVHJlZUVsZW1lbnQKK1dlYkluc3Bl
Y3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQgPSBjbGFzcyBCcmVha3BvaW50VHJlZUVsZW1lbnQg
ZXh0ZW5kcyBXZWJJbnNwZWN0b3IuRGVidWdnZXJUcmVlRWxlbWVudAogewogICAgIGNvbnN0cnVj
dG9yKGJyZWFrcG9pbnQsIGNsYXNzTmFtZSwgdGl0bGUpCiAgICAgewpAQCAtMjM3LDcgKzIzNyw2
IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQgPSBjbGFzcyBCcmVha3BvaW50
VHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwCiAgICAgICAgIH0uYmluZCh0aGlzKSwgV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5Qcm9iZURhdGFVcGRhdGVkQW5pbWF0aW9uRHVy
YXRpb24pOwogICAgIH0KIAotCiAgICAgX2JyZWFrcG9pbnRMb2NhdGlvbkRpZENoYW5nZShldmVu
dCkKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGV2ZW50LnRhcmdldCA9PT0gdGhpcy5f
YnJlYWtwb2ludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzCmluZGV4IDlmNTE5
NTlkZDZmNDcxZTlmMTI3YWYxODQyOWE0OGViOTEyNDlhNmEuLjE3MDBiYWQ2Njk0NzJkYzFjYjVh
ODU4NzhkOWVjMGU3NTg3YTY3OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpz
CkBAIC0xMDUsOCArMTA1LDggQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsID0g
Y2xhc3MgRGVidWdnZXJTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgdGhp
cy5maWx0ZXJCYXIucGxhY2Vob2xkZXIgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkZpbHRlciBC
cmVha3BvaW50IExpc3QiKTsKICAgICAgICAgdmFyIHNob3dSZXNvdXJjZXNXaXRoQnJlYWtwb2lu
dHNPbmx5RmlsdGVyRnVuY3Rpb24gPSBmdW5jdGlvbih0cmVlRWxlbWVudCkKICAgICAgICAgewot
ICAgICAgICAgICAgLy8gS2VlcCBicmVha3BvaW50cyBhbmQgb3RoZXIgZWxlbWVudHMgdGhhdCBh
cmVuJ3QgcmVzb3VyY2VzLgotICAgICAgICAgICAgaWYgKCF0cmVlRWxlbWVudCBpbnN0YW5jZW9m
IFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVFbGVtZW50IHx8IHRyZWVFbGVtZW50IGluc3RhbmNl
b2YgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudCkKKyAgICAgICAgICAgIC8vIEtl
ZXAgYnJlYWtwb2ludHMuCisgICAgICAgICAgICBpZiAodHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50KQogICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogCiAgICAgICAgICAgICAvLyBLZWVwIHJlc291cmNlcyB3aXRoIGJyZWFrcG9pbnRz
LgpAQCAtMTE5LDcgKzExOSwyNCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwg
PSBjbGFzcyBEZWJ1Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlYwogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9OwogCi0gICAgICAgIHRoaXMuZmlsdGVyQmFyLmFk
ZEZpbHRlckJhckJ1dHRvbigiZGVidWdnZXItc2hvdy1yZXNvdXJjZXMtd2l0aC1jaGlsZHJlbi1v
bmx5Iiwgc2hvd1Jlc291cmNlc1dpdGhCcmVha3BvaW50c09ubHlGaWx0ZXJGdW5jdGlvbiwgdHJ1
ZSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93IG9ubHkgcmVzb3VyY2VzIHdpdGggYnJlYWtw
b2ludHMuIiksIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2hvdyByZXNvdXJjZXMgd2l0aCBhbmQg
d2l0aG91dCBicmVha3BvaW50cy4iKSwgcGxhdGZvcm1JbWFnZVBhdGgoIkJyZWFrcG9pbnRzLnN2
ZyIpLCAxNSwgMTUpOworICAgICAgICB2YXIgc2hvd1Jlc291cmNlc1dpdGhJc3N1ZXNPbmx5Rmls
dGVyRnVuY3Rpb24gPSBmdW5jdGlvbih0cmVlRWxlbWVudCkKKyAgICAgICAgeworICAgICAgICAg
ICAgLy8gS2VlcCBpc3N1ZXMuCisgICAgICAgICAgICBpZiAodHJlZUVsZW1lbnQgaW5zdGFuY2Vv
ZiBXZWJJbnNwZWN0b3IuSXNzdWVUcmVlRWxlbWVudCkKKyAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKworICAgICAgICAgICAgLy8gS2VlcCByZXNvdXJjZXMgd2l0aCBpc3N1ZXMuCisgICAg
ICAgICAgICBpZiAodHJlZUVsZW1lbnQuaGFzQ2hpbGRyZW4pIHsKKyAgICAgICAgICAgICAgICBm
b3IgKHZhciBjaGlsZCBvZiB0cmVlRWxlbWVudC5jaGlsZHJlbikgeworICAgICAgICAgICAgICAg
ICAgICBpZiAoY2hpbGQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuSXNzdWVUcmVlRWxlbWVudCkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfTsKKwor
ICAgICAgICB0aGlzLmZpbHRlckJhci5hZGRGaWx0ZXJCYXJCdXR0b24oImRlYnVnZ2VyLXNob3ct
cmVzb3VyY2VzLXdpdGgtYnJlYWtwb2ludHMtb25seSIsIHNob3dSZXNvdXJjZXNXaXRoQnJlYWtw
b2ludHNPbmx5RmlsdGVyRnVuY3Rpb24sIHRydWUsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2hv
dyBvbmx5IHJlc291cmNlcyB3aXRoIGJyZWFrcG9pbnRzLiIpLCBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlNob3cgcmVzb3VyY2VzIHdpdGggYW5kIHdpdGhvdXQgYnJlYWtwb2ludHMuIiksIHBsYXRm
b3JtSW1hZ2VQYXRoKCJCcmVha3BvaW50cy5zdmciKSwgMTUsIDE1KTsKKyAgICAgICAgdGhpcy5m
aWx0ZXJCYXIuYWRkRmlsdGVyQmFyQnV0dG9uKCJkZWJ1Z2dlci1zaG93LXJlc291cmNlcy13aXRo
LWlzc3Vlcy1vbmx5Iiwgc2hvd1Jlc291cmNlc1dpdGhJc3N1ZXNPbmx5RmlsdGVyRnVuY3Rpb24s
IHRydWUsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2hvdyBvbmx5IHJlc291cmNlcyB3aXRoIGlz
c3Vlcy4iKSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93IHJlc291cmNlcyB3aXRoIGFuZCB3
aXRob3V0IGlzc3Vlcy4iKSwgcGxhdGZvcm1JbWFnZVBhdGgoIkVycm9ycy5zdmciKSwgMTUsIDE1
KTsKIAogICAgICAgICB0aGlzLl9icmVha3BvaW50c0NvbnRlbnRUcmVlT3V0bGluZSA9IHRoaXMu
Y29udGVudFRyZWVPdXRsaW5lOwogICAgICAgICB0aGlzLl9icmVha3BvaW50c0NvbnRlbnRUcmVl
T3V0bGluZS5vbnNlbGVjdCA9IHRoaXMuX3RyZWVFbGVtZW50U2VsZWN0ZWQuYmluZCh0aGlzKTsK
QEAgLTE1NSw3ICsxNzIsMTAgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsID0g
Y2xhc3MgRGVidWdnZXJTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgdGhp
cy5fcGF1c2VSZWFzb25TZWN0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxzU2VjdGlvbigi
cGF1c2VkLXJlYXNvbiIsIG51bGwsIFt0aGlzLl9wYXVzZVJlYXNvbkdyb3VwXSwgdGhpcy5fcGF1
c2VSZWFzb25MaW5rQ29udGFpbmVyRWxlbWVudCk7CiAgICAgICAgIHRoaXMuX3BhdXNlUmVhc29u
U2VjdGlvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUGF1c2UgUmVhc29uIik7CiAK
LSAgICAgICAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludC5FdmVudC5EaXNwbGF5TG9jYXRpb25EaWRDaGFuZ2UsIHRoaXMuX2Jy
ZWFrcG9pbnREaXNwbGF5TG9jYXRpb25EaWRDaGFuZ2UsIHRoaXMpOworICAgICAgICBXZWJJbnNw
ZWN0b3IuQnJlYWtwb2ludC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50
LkV2ZW50LkRpc3BsYXlMb2NhdGlvbkRpZENoYW5nZSwgdGhpcy5faGFuZGxlRGVidWdnZXJPYmpl
Y3REaXNwbGF5TG9jYXRpb25EaWRDaGFuZ2UsIHRoaXMpOworICAgICAgICBXZWJJbnNwZWN0b3Iu
SXNzdWVNZXNzYWdlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLklzc3VlTWVzc2FnZS5F
dmVudC5EaXNwbGF5TG9jYXRpb25EaWRDaGFuZ2UsIHRoaXMuX2hhbmRsZURlYnVnZ2VyT2JqZWN0
RGlzcGxheUxvY2F0aW9uRGlkQ2hhbmdlLCB0aGlzKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmlz
c3VlTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Jc3N1ZU1hbmFnZXIuRXZl
bnQuSXNzdWVXYXNBZGRlZCwgdGhpcy5faGFuZGxlSXNzdWVBZGRlZCwgdGhpcyk7CisgICAgICAg
IFdlYkluc3BlY3Rvci5pc3N1ZU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
SXNzdWVNYW5hZ2VyLkV2ZW50LkNsZWFyZWQsIHRoaXMuX2hhbmRsZUlzc3Vlc0NsZWFyZWQsIHRo
aXMpOwogICAgIH0KIAogICAgIC8vIFB1YmxpYwpAQCAtMjk2LDcgKzMxNiw3IEBAIFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbCA9IGNsYXNzIERlYnVnZ2VyU2lkZWJhclBhbmVsIGV4
dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgICAgICBicmVha3BvaW50LnJlc29sdmVkID0gdHJ1ZTsK
IAogICAgICAgICB2YXIgYnJlYWtwb2ludFRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5C
cmVha3BvaW50VHJlZUVsZW1lbnQoYnJlYWtwb2ludCk7Ci0gICAgICAgIHBhcmVudFRyZWVFbGVt
ZW50Lmluc2VydENoaWxkKGJyZWFrcG9pbnRUcmVlRWxlbWVudCwgaW5zZXJ0aW9uSW5kZXhGb3JP
YmplY3RJbkxpc3RTb3J0ZWRCeUZ1bmN0aW9uKGJyZWFrcG9pbnRUcmVlRWxlbWVudCwgcGFyZW50
VHJlZUVsZW1lbnQuY2hpbGRyZW4sIHRoaXMuX2NvbXBhcmVCcmVha3BvaW50VHJlZUVsZW1lbnRz
KSk7CisgICAgICAgIHBhcmVudFRyZWVFbGVtZW50Lmluc2VydENoaWxkKGJyZWFrcG9pbnRUcmVl
RWxlbWVudCwgaW5zZXJ0aW9uSW5kZXhGb3JPYmplY3RJbkxpc3RTb3J0ZWRCeUZ1bmN0aW9uKGJy
ZWFrcG9pbnRUcmVlRWxlbWVudCwgcGFyZW50VHJlZUVsZW1lbnQuY2hpbGRyZW4sIHRoaXMuX2Nv
bXBhcmVEZWJ1Z2dlclRyZWVFbGVtZW50cykpOwogICAgICAgICBpZiAocGFyZW50VHJlZUVsZW1l
bnQuY2hpbGRyZW4ubGVuZ3RoID09PSAxKQogICAgICAgICAgICAgcGFyZW50VHJlZUVsZW1lbnQu
ZXhwYW5kKCk7CiAgICAgICAgIHJldHVybiBicmVha3BvaW50VHJlZUVsZW1lbnQ7CkBAIC00MDMs
MzUgKzQyMywzNSBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwgPSBjbGFzcyBE
ZWJ1Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlYwogICAgICAgICBpZiAoIWJyZWFr
cG9pbnRUcmVlRWxlbWVudCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB0aGlzLl9y
ZW1vdmVCcmVha3BvaW50VHJlZUVsZW1lbnQoYnJlYWtwb2ludFRyZWVFbGVtZW50KTsKKyAgICAg
ICAgdGhpcy5fcmVtb3ZlRGVidWdnZXJUcmVlRWxlbWVudChicmVha3BvaW50VHJlZUVsZW1lbnQp
OwogICAgIH0KIAotICAgIF9icmVha3BvaW50RGlzcGxheUxvY2F0aW9uRGlkQ2hhbmdlKGV2ZW50
KQorICAgIF9oYW5kbGVEZWJ1Z2dlck9iamVjdERpc3BsYXlMb2NhdGlvbkRpZENoYW5nZShldmVu
dCkKICAgICB7Ci0gICAgICAgIHZhciBicmVha3BvaW50ID0gZXZlbnQudGFyZ2V0OwotICAgICAg
ICBpZiAoZXZlbnQuZGF0YS5vbGREaXNwbGF5U291cmNlQ29kZSA9PT0gYnJlYWtwb2ludC5kaXNw
bGF5U291cmNlQ29kZSkKKyAgICAgICAgdmFyIGRlYnVnZ2VyT2JqZWN0ID0gZXZlbnQudGFyZ2V0
OworICAgICAgICBpZiAoZXZlbnQuZGF0YS5vbGREaXNwbGF5U291cmNlQ29kZSA9PT0gZGVidWdn
ZXJPYmplY3QuZGlzcGxheVNvdXJjZUNvZGUpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgdmFyIGJyZWFrcG9pbnRUcmVlRWxlbWVudCA9IHRoaXMuX2JyZWFrcG9pbnRzQ29udGVudFRy
ZWVPdXRsaW5lLmdldENhY2hlZFRyZWVFbGVtZW50KGJyZWFrcG9pbnQpOwotICAgICAgICBpZiAo
IWJyZWFrcG9pbnRUcmVlRWxlbWVudCkKKyAgICAgICAgdmFyIGRlYnVnZ2VyVHJlZUVsZW1lbnQg
PSB0aGlzLl9icmVha3BvaW50c0NvbnRlbnRUcmVlT3V0bGluZS5nZXRDYWNoZWRUcmVlRWxlbWVu
dChkZWJ1Z2dlck9iamVjdCk7CisgICAgICAgIGlmICghZGVidWdnZXJUcmVlRWxlbWVudCkKICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAvLyBBIGtub3duIGJyZWFrcG9pbnQgbW92ZWQg
YmV0d2VlbiByZXNvdXJjZXMsIHJlbW92ZSB0aGUgb2xkIHRyZWUgZWxlbWVudAorICAgICAgICAv
LyBBIGtub3duIGRlYnVnZ2VyIG9iamVjdCAoYnJlYWtwb2ludCwgaXNzdWVNZXNzYWdlLCBldGMu
KSBtb3ZlZCBiZXR3ZWVuIHJlc291cmNlcywgcmVtb3ZlIHRoZSBvbGQgdHJlZSBlbGVtZW50CiAg
ICAgICAgIC8vIGFuZCBjcmVhdGUgYSBuZXcgdHJlZSBlbGVtZW50IHdpdGggdGhlIHVwZGF0ZWQg
ZmlsZS4KIAotICAgICAgICB2YXIgd2FzU2VsZWN0ZWQgPSBicmVha3BvaW50VHJlZUVsZW1lbnQu
c2VsZWN0ZWQ7CisgICAgICAgIHZhciB3YXNTZWxlY3RlZCA9IGRlYnVnZ2VyVHJlZUVsZW1lbnQu
c2VsZWN0ZWQ7CiAKLSAgICAgICAgdGhpcy5fcmVtb3ZlQnJlYWtwb2ludFRyZWVFbGVtZW50KGJy
ZWFrcG9pbnRUcmVlRWxlbWVudCk7Ci0gICAgICAgIHZhciBuZXdCcmVha3BvaW50VHJlZUVsZW1l
bnQgPSB0aGlzLl9hZGRCcmVha3BvaW50KGJyZWFrcG9pbnQpOworICAgICAgICB0aGlzLl9yZW1v
dmVEZWJ1Z2dlclRyZWVFbGVtZW50KGRlYnVnZ2VyVHJlZUVsZW1lbnQpOworICAgICAgICB2YXIg
bmV3RGVidWdnZXJUcmVlRWxlbWVudCA9IHRoaXMuX2FkZERlYnVnZ2VyT2JqZWN0KGRlYnVnZ2Vy
T2JqZWN0KTsKIAotICAgICAgICBpZiAobmV3QnJlYWtwb2ludFRyZWVFbGVtZW50ICYmIHdhc1Nl
bGVjdGVkKQotICAgICAgICAgICAgbmV3QnJlYWtwb2ludFRyZWVFbGVtZW50LnJldmVhbEFuZFNl
bGVjdCh0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSk7CisgICAgICAgIGlmIChuZXdEZWJ1Z2dlclRy
ZWVFbGVtZW50ICYmIHdhc1NlbGVjdGVkKQorICAgICAgICAgICAgbmV3RGVidWdnZXJUcmVlRWxl
bWVudC5yZXZlYWxBbmRTZWxlY3QodHJ1ZSwgZmFsc2UsIHRydWUsIHRydWUpOwogICAgIH0KIAot
ICAgIF9yZW1vdmVCcmVha3BvaW50VHJlZUVsZW1lbnQoYnJlYWtwb2ludFRyZWVFbGVtZW50KQor
ICAgIF9yZW1vdmVEZWJ1Z2dlclRyZWVFbGVtZW50KGRlYnVnZ2VyVHJlZUVsZW1lbnQpCiAgICAg
ewotICAgICAgICB2YXIgcGFyZW50VHJlZUVsZW1lbnQgPSBicmVha3BvaW50VHJlZUVsZW1lbnQu
cGFyZW50OwotICAgICAgICBwYXJlbnRUcmVlRWxlbWVudC5yZW1vdmVDaGlsZChicmVha3BvaW50
VHJlZUVsZW1lbnQpOworICAgICAgICB2YXIgcGFyZW50VHJlZUVsZW1lbnQgPSBkZWJ1Z2dlclRy
ZWVFbGVtZW50LnBhcmVudDsKKyAgICAgICAgcGFyZW50VHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGQo
ZGVidWdnZXJUcmVlRWxlbWVudCk7CiAKICAgICAgICAgY29uc29sZS5hc3NlcnQocGFyZW50VHJl
ZUVsZW1lbnQucGFyZW50ID09PSB0aGlzLl9icmVha3BvaW50c0NvbnRlbnRUcmVlT3V0bGluZSk7
CiAgICAgfQpAQCAtNjA3LDYgKzYyNywxMyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFy
UGFuZWwgPSBjbGFzcyBEZWJ1Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlYwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKKyAgICAgICAgaWYgKHRyZWVFbGVtZW50IGlu
c3RhbmNlb2YgV2ViSW5zcGVjdG9yLklzc3VlVHJlZUVsZW1lbnQpIHsKKyAgICAgICAgICAgIGRl
c2VsZWN0Q2FsbFN0YWNrQ29udGVudFRyZWVFbGVtZW50cy5jYWxsKHRoaXMpOworICAgICAgICAg
ICAgZGVzZWxlY3RQYXVzZVJlYXNvbkNvbnRlbnRUcmVlRWxlbWVudHMuY2FsbCh0aGlzKTsKKyAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVNpZGViYXJQYW5lbC5zaG93U291cmNlQ29k
ZUxvY2F0aW9uKHRyZWVFbGVtZW50Lmlzc3VlTWVzc2FnZS5zb3VyY2VDb2RlTG9jYXRpb24pOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKICAgICAgICAgaWYgKCEodHJlZUVsZW1l
bnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50KSB8fCB0cmVl
RWxlbWVudC5wYXJlbnQuY29uc3RydWN0b3IgPT09IFdlYkluc3BlY3Rvci5Gb2xkZXJUcmVlRWxl
bWVudCkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNjQ0LDEwICs2NzEsMTMgQEAgV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsID0gY2xhc3MgRGVidWdnZXJTaWRlYmFyUGFuZWwg
ZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgcmV0dXJuIGEubWFpblRpdGxlLmxvY2FsZUNvbXBh
cmUoYi5tYWluVGl0bGUpOwogICAgIH0KIAotICAgIF9jb21wYXJlQnJlYWtwb2ludFRyZWVFbGVt
ZW50cyhhLCBiKQorICAgIF9jb21wYXJlRGVidWdnZXJUcmVlRWxlbWVudHMoYSwgYikKICAgICB7
Ci0gICAgICAgIHZhciBhTG9jYXRpb24gPSBhLmJyZWFrcG9pbnQuc291cmNlQ29kZUxvY2F0aW9u
OwotICAgICAgICB2YXIgYkxvY2F0aW9uID0gYi5icmVha3BvaW50LnNvdXJjZUNvZGVMb2NhdGlv
bjsKKyAgICAgICAgaWYgKCFhLmRlYnVnZ2VyT2JqZWN0IHx8ICFiLmRlYnVnZ2VyT2JqZWN0KQor
ICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIAorICAgICAgICB2YXIgYUxvY2F0aW9uID0g
YS5kZWJ1Z2dlck9iamVjdC5zb3VyY2VDb2RlTG9jYXRpb247CisgICAgICAgIHZhciBiTG9jYXRp
b24gPSBiLmRlYnVnZ2VyT2JqZWN0LnNvdXJjZUNvZGVMb2NhdGlvbjsKIAogICAgICAgICB2YXIg
Y29tcGFyaXNvblJlc3VsdCA9IGFMb2NhdGlvbi5kaXNwbGF5TGluZU51bWJlciAtIGJMb2NhdGlv
bi5kaXNwbGF5TGluZU51bWJlcjsKICAgICAgICAgaWYgKGNvbXBhcmlzb25SZXN1bHQgIT09IDAp
CkBAIC03NTIsNiArNzgyLDU0IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbCA9
IGNsYXNzIERlYnVnZ2VyU2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgIHZh
ciBsaW5rRWxlbWVudCA9IFdlYkluc3BlY3Rvci5jcmVhdGVTb3VyY2VDb2RlTG9jYXRpb25MaW5r
KHNvdXJjZUNvZGVMb2NhdGlvbiwgZmFsc2UsIHRydWUpOwogICAgICAgICB0aGlzLl9wYXVzZVJl
YXNvbkxpbmtDb250YWluZXJFbGVtZW50LmFwcGVuZENoaWxkKGxpbmtFbGVtZW50KTsKICAgICB9
CisKKyAgICBfYWRkRGVidWdnZXJPYmplY3QoZGVidWdnZXJPYmplY3QpCisgICAgeworICAgICAg
ICBpZiAoZGVidWdnZXJPYmplY3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludCkK
KyAgICAgICAgICAgIHJldHVybiB0aGlzLl9hZGRCcmVha3BvaW50KGRlYnVnZ2VyT2JqZWN0KTsK
KworICAgICAgICBpZiAoZGVidWdnZXJPYmplY3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuSXNz
dWVNZXNzYWdlKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FkZElzc3VlKGRlYnVnZ2VyT2Jq
ZWN0KTsKKyAgICB9CisKKyAgICBfYWRkSXNzdWUoaXNzdWVNZXNzYWdlKQorICAgIHsKKyAgICAg
ICAgdmFyIHBhcmVudFRyZWVFbGVtZW50ID0gdGhpcy5fYWRkVHJlZUVsZW1lbnRGb3JTb3VyY2VD
b2RlVG9Db250ZW50VHJlZU91dGxpbmUoaXNzdWVNZXNzYWdlLnNvdXJjZUNvZGVMb2NhdGlvbi5z
b3VyY2VDb2RlKTsKKyAgICAgICAgdmFyIGlzc3VlVHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVj
dG9yLklzc3VlVHJlZUVsZW1lbnQoaXNzdWVNZXNzYWdlKTsKKworICAgICAgICBwYXJlbnRUcmVl
RWxlbWVudC5pbnNlcnRDaGlsZChpc3N1ZVRyZWVFbGVtZW50LCBpbnNlcnRpb25JbmRleEZvck9i
amVjdEluTGlzdFNvcnRlZEJ5RnVuY3Rpb24oaXNzdWVUcmVlRWxlbWVudCwgcGFyZW50VHJlZUVs
ZW1lbnQuY2hpbGRyZW4sIHRoaXMuX2NvbXBhcmVEZWJ1Z2dlclRyZWVFbGVtZW50cykpOworICAg
ICAgICBpZiAocGFyZW50VHJlZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAxKQorICAgICAg
ICAgICAgcGFyZW50VHJlZUVsZW1lbnQuZXhwYW5kKCk7CisKKyAgICAgICAgcmV0dXJuIGlzc3Vl
VHJlZUVsZW1lbnQ7CisgICAgfQorCisgICAgX2hhbmRsZUlzc3VlQWRkZWQoZXZlbnQpCisgICAg
eworICAgICAgICB2YXIgaXNzdWUgPSBldmVudC5kYXRhLmlzc3VlOworCisgICAgICAgIC8vIFdl
IG9ubHkgd2FudCB0byBzaG93IGlzc3VlcyBvcmlnaW5hdGluZyBmcm9tIEphdmFTY3JpcHQgc291
cmNlIGNvZGUuCisgICAgICAgIGlmICghaXNzdWUubGluZU51bWJlciB8fCAoaXNzdWUuc291cmNl
ICE9PSAiamF2YXNjcmlwdCIgJiYgaXNzdWUuc291cmNlICE9PSAiY29uc29sZS1hcGkiKSkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9hZGRJc3N1ZShpc3N1ZSk7CisgICAg
fQorCisgICAgX2hhbmRsZUlzc3Vlc0NsZWFyZWQoZXZlbnQpCisgICAgeworICAgICAgICB2YXIg
Y3VycmVudFRyZWVFbGVtZW50ID0gdGhpcy5fY29udGVudFRyZWVPdXRsaW5lLmNoaWxkcmVuWzBd
OworICAgICAgICB2YXIgaXNzdWVUcmVlRWxlbWVudHMgPSBbXTsKKworICAgICAgICB3aGlsZSAo
Y3VycmVudFRyZWVFbGVtZW50ICYmICFjdXJyZW50VHJlZUVsZW1lbnQucm9vdCkgeworICAgICAg
ICAgICAgaWYgKGN1cnJlbnRUcmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Jc3N1
ZVRyZWVFbGVtZW50KQorICAgICAgICAgICAgICAgIGlzc3VlVHJlZUVsZW1lbnRzLnB1c2goKTsK
KyAgICAgICAgICAgIGN1cnJlbnRUcmVlRWxlbWVudCA9IGN1cnJlbnRUcmVlRWxlbWVudC50cmF2
ZXJzZU5leHRUcmVlRWxlbWVudChmYWxzZSwgbnVsbCwgdHJ1ZSk7CisgICAgICAgIH0KKworICAg
ICAgICBpc3N1ZVRyZWVFbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGlzc3VlVHJlZUVsZW1lbnQp
IHsKKyAgICAgICAgICAgIGlzc3VlVHJlZUVsZW1lbnQucGFyZW50LnJlbW92ZUNoaWxkKGlzc3Vl
VHJlZUVsZW1lbnQpOworICAgICAgICB9KTsKKyAgICB9CiB9OwogCiBXZWJJbnNwZWN0b3IuRGVi
dWdnZXJTaWRlYmFyUGFuZWwuT2Zmc2V0U2VjdGlvbnNTdHlsZUNsYXNzTmFtZSA9ICJvZmZzZXQt
c2VjdGlvbnMiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvRGVidWdnZXJUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyVHJlZUVsZW1lbnQuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjE3
YmUzZTU1YTMyNGNjNjNmMmNhOGZkZTc4NzcwMDEwNmEzNWJjOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyVHJlZUVs
ZW1lbnQuanMKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dlYkluc3BlY3Rvci5EZWJ1
Z2dlclRyZWVFbGVtZW50ID0gY2xhc3MgRGVidWdnZXJUcmVlRWxlbWVudCBleHRlbmRzIFdlYklu
c3BlY3Rvci5HZW5lcmFsVHJlZUVsZW1lbnQKK3sKKyAgICBjb25zdHJ1Y3RvcihjbGFzc05hbWVz
LCB0aXRsZSwgc3VidGl0bGUsIHJlcHJlc2VudGVkT2JqZWN0LCBoYXNDaGlsZHJlbikKKyAgICB7
CisgICAgICAgIHN1cGVyKGNsYXNzTmFtZXMsIHRpdGxlLCBzdWJ0aXRsZSwgcmVwcmVzZW50ZWRP
YmplY3QsIGhhc0NoaWxkcmVuKTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBk
ZWJ1Z2dlck9iamVjdCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5yZXByZXNlbnRlZE9i
amVjdDsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvSXNzdWVUcmVlRWxlbWVudC5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9Jc3N1ZVRyZWVFbGVtZW50LmNzcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
OTJiODNkNmU4OWI0ODQ1NThlOGY3NjkxMjRjYjM4OWYzMGE2YjQ3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSXNzdWVUcmVlRWxl
bWVudC5jc3MKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5pc3N1ZSAuaWNvbiB7Cisg
ICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL0ltYWdlcy9XYXJuaW5nLnN2Zyk7CisgICAgY29u
dGVudDogJyc7Cit9CisKKy5pc3N1ZS5lcnJvciAuaWNvbiB7CisgICAgYmFja2dyb3VuZC1pbWFn
ZTogdXJsKC4uL0ltYWdlcy9FcnJvci5zdmcpOworfQorCisubmF2aWdhdGlvbi1zaWRlYmFyLXBh
bmVsLWNvbnRlbnQtdHJlZS1vdXRsaW5lLnNtYWxsIC5pdGVtLmlzc3VlIC5pY29uLAorLm5hdmln
YXRpb24tc2lkZWJhci1wYW5lbC1jb250ZW50LXRyZWUtb3V0bGluZSAuY2hpbGRyZW4uc21hbGwg
Lml0ZW0uaXNzdWUgLmljb24sCisubmF2aWdhdGlvbi1zaWRlYmFyLXBhbmVsLWNvbnRlbnQtdHJl
ZS1vdXRsaW5lIC5pdGVtLnNtYWxsLmlzc3VlIC5pY29uIHsKKyAgICBoZWlnaHQ6IDE0cHg7Cisg
ICAgd2lkdGg6IDE0cHg7CisgICAgdG9wOiAxcHg7CisgICAgbGVmdDogMXB4OworICAgIG1hcmdp
bi1yaWdodDogNXB4OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvSXNzdWVUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lzc3VlVHJlZUVsZW1lbnQuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjA5
ZDljMWVmMjIzYWMyMzM3MzE4Zjc2ZGEzZTUzOTNiZTcxZTIzZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lzc3VlVHJlZUVsZW1l
bnQuanMKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dlYkluc3BlY3Rvci5Jc3N1ZVRy
ZWVFbGVtZW50ID0gY2xhc3MgSXNzdWVUcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlclRyZWVFbGVtZW50Cit7CisgICAgY29uc3RydWN0b3IoaXNzdWVNZXNzYWdlKQorICAg
IHsKKyAgICAgICAgdmFyIGxldmVsU3R5bGVDbGFzc05hbWU7CisgICAgICAgIHN3aXRjaCAoaXNz
dWVNZXNzYWdlLmxldmVsKSB7CisgICAgICAgIGNhc2UgImVycm9yIjoKKyAgICAgICAgICAgIGxl
dmVsU3R5bGVDbGFzc05hbWUgPSBXZWJJbnNwZWN0b3IuSXNzdWVUcmVlRWxlbWVudC5FcnJvclN0
eWxlQ2xhc3NOYW1lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgIndhcm5pbmci
OgorICAgICAgICAgICAgbGV2ZWxTdHlsZUNsYXNzTmFtZSA9IFdlYkluc3BlY3Rvci5Jc3N1ZVRy
ZWVFbGVtZW50Lldhcm5pbmdTdHlsZUNsYXNzTmFtZTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICB9CisKKyAgICAgICAgc3VwZXIoW1dlYkluc3BlY3Rvci5Jc3N1ZVRyZWVFbGVtZW50LlN0
eWxlQ2xhc3NOYW1lLCBsZXZlbFN0eWxlQ2xhc3NOYW1lXSwgbnVsbCwgbnVsbCwgaXNzdWVNZXNz
YWdlLCBmYWxzZSk7CisKKyAgICAgICAgdGhpcy5zbWFsbCA9IHRydWU7CisgICAgICAgIHRoaXMu
X2lzc3VlTWVzc2FnZSA9IGlzc3VlTWVzc2FnZTsKKyAgICAgICAgdGhpcy5fdXBkYXRlVGl0bGVz
KCk7CisgICAgfQorCisgICAgLy8gUHVibGljCisKKyAgICBnZXQgaXNzdWVNZXNzYWdlKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGlzLl9pc3N1ZU1lc3NhZ2U7CisgICAgfQorCisgICAgLy8g
UHJpdmF0ZQorCisgICAgX2hhbmRsZUxvY2F0aW9uRGlkQ2hhbmdlKCkKKyAgICB7CisgICAgICAg
IHRoaXMuX3VwZGF0ZVRpdGxlcygpOworICAgIH0KKworICAgIF91cGRhdGVUaXRsZXMoKQorICAg
IHsKKyAgICAgICAgdmFyIGRpc3BsYXlMaW5lTnVtYmVyID0gdGhpcy5faXNzdWVNZXNzYWdlLmRp
c3BsYXlMaW5lTnVtYmVyOworICAgICAgICB2YXIgZGlzcGxheUNvbHVtbk51bWJlciA9IHRoaXMu
X2lzc3VlTWVzc2FnZS5kaXNwbGF5Q29sdW1uTnVtYmVyOworICAgICAgICB2YXIgdGl0bGU7Cisg
ICAgICAgIGlmIChkaXNwbGF5Q29sdW1uTnVtYmVyID4gMCkKKyAgICAgICAgICAgIHRpdGxlID0g
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMaW5lICVkOiVkIikuZm9ybWF0KGRpc3BsYXlMaW5lTnVt
YmVyICsgMSwgZGlzcGxheUNvbHVtbk51bWJlciArIDEpOyAvLyBUaGUgdXNlciB2aXNpYmxlIGxp
bmUgYW5kIGNvbHVtbiBudW1iZXJzIGFyZSAxLWJhc2VkLgorICAgICAgICBlbHNlCisgICAgICAg
ICAgICB0aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTGluZSAlZCIpLmZvcm1hdChkaXNw
bGF5TGluZU51bWJlciArIDEpOyAvLyBUaGUgdXNlciB2aXNpYmxlIGxpbmUgbnVtYmVyIGlzIDEt
YmFzZWQuCisKKyAgICAgICAgdGhpcy5tYWluVGl0bGUgPSB0aXRsZSArICIgIiArIHRoaXMuX2lz
c3VlTWVzc2FnZS50ZXh0OworICAgIH0KKworfTsKKworV2ViSW5zcGVjdG9yLklzc3VlVHJlZUVs
ZW1lbnQuU3R5bGVDbGFzc05hbWUgPSAiaXNzdWUiOworV2ViSW5zcGVjdG9yLklzc3VlVHJlZUVs
ZW1lbnQuRXJyb3JTdHlsZUNsYXNzTmFtZSA9ICJlcnJvciI7CitXZWJJbnNwZWN0b3IuSXNzdWVU
cmVlRWxlbWVudC5XYXJuaW5nU3R5bGVDbGFzc05hbWUgPSAid2FybmluZyI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250558</attachid>
            <date>2015-04-10 20:09:12 -0700</date>
            <delta_ts>2015-04-11 13:06:48 -0700</delta_ts>
            <desc>[PATCH] with further feedback changes.</desc>
            <filename>bug-143464-20150410200819.patch</filename>
            <type>text/plain</type>
            <size>30487</size>
            <attacher name="Jonathan Wells">jonowells</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyNjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAw
ZTE2NjU1MTA5ZDhiNmY0NzNhMTdjZWI0ZDlmMWQzZGZjM2E5ZTUxLi5jZGExOTU4MzhkYzE5Y2Y4
ZDhmNWJkZDI4NGY1YjMxMmFiNjhlYzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NyBAQAorMjAxNS0wNC0xMCAgSm9ubyBXZWxscyAgPGpvbm93ZWxsc0BhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRGVidWdnZXIgc2lkZWJhciBzaG91bGQgc2hvdyBl
cnJvcnMgdW5kZXJuZWF0aCBzY3JpcHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDM0NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgdHJlZSBlbGVtZW50IGNhbGxlZCBJc3N1ZVRyZWVF
bGVtZW50LiBUaGlzIHNob3dzIHdhcm5pbmdzIGFuZCBlcnJvcnMgaW4gdGhlIGRlYnVnZ2VyIHNp
ZGViYXIuIFRoZXNlCisgICAgICAgIGNhbiBiZSBjbGlja2VkIHRvIGp1bXAgdG8gdGhlIGxpbmUg
b2Ygc291cmNlIGNvZGUgZm9yIHdoaWNoIHRoZSBlcnJvciB3YXMgdGhyb3duLiBCcmVha3BvaW50
VHJlZUVsZW1lbnQgYW5kCisgICAgICAgIElzc3VlVHJlZUVsZW1lbnQgbm93IGluaGVyaXQgZnJv
bSBEZWJ1Z2dlclRyZWVFbGVtZW50IHRvIHN1cHBvcnQgYW55IG5lZWRlZCBjb21tb25hbGl0aWVz
IGFtb25nIHRoZSBpbnRlcmZhY2VzCisgICAgICAgIG9mIGVsZW1lbnRzIGluIHRoZSBkZWJ1Z2dl
ciBzaWRlYmFyIHBhbmVsLgorCisgICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2Nh
bGl6ZWRTdHJpbmdzLmpzOiBVcGRhdGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5o
dG1sOiBBZGQgbmV3IGZpbGVzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvSXNz
dWVNZXNzYWdlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLklzc3VlTWVzc2FnZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLnByb3RvdHlwZS5nZXQgc291cmNlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UucHJvdG90eXBlLmdldCBsaW5lTnVtYmVy
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UucHJvdG90eXBlLmdldCBjb2x1
bW5OdW1iZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLklzc3VlTWVzc2FnZS5wcm90b3R5cGUu
Z2V0IGRpc3BsYXlMaW5lTnVtYmVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3Nh
Z2UucHJvdG90eXBlLmdldCBkaXNwbGF5Q29sdW1uTnVtYmVyKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Jc3N1ZU1lc3NhZ2UucHJvdG90eXBlLmdldCBzb3VyY2VDb2RlTG9jYXRpb24pOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLklzc3VlTWVzc2FnZS5wcm90b3R5cGUuc2F2ZUlkZW50aXR5VG9D
b29raWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLklzc3VlTWVzc2FnZS5wcm90b3R5cGUuX3Nv
dXJjZUNvZGVMb2NhdGlvbkRpc3BsYXlMb2NhdGlvbkNoYW5nZWQpOgorICAgICAgICBDb252ZXJ0
IHRvIHVzZSBhIGJhY2tpbmcgU291cmNlQ29kZUxvY2F0aW9uLiBFeHBhbmQgQVBJLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9CcmVha3BvaW50VHJlZUVsZW1lbnQuanM6IEluaGVy
aXRzIG5vdyBmcm9tIERlYnVnZ2VyVHJlZUVsZW1lbnQuCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyU2lkZWJhclBhbmVsLnNob3dSZXNvdXJjZXNXaXRoQnJlYWtwb2ludHNPbmx5Rmls
dGVyRnVuY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVs
LnNob3dSZXNvdXJjZXNXaXRoSXNzdWVzT25seUZpbHRlckZ1bmN0aW9uKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RGVidWdnZXJTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9hZGRCcmVha3BvaW50KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbC5wcm90b3R5cGUuX2JyZWFrcG9pbnRS
ZW1vdmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbC5wcm90
b3R5cGUuX2hhbmRsZURlYnVnZ2VyT2JqZWN0RGlzcGxheUxvY2F0aW9uRGlkQ2hhbmdlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbC5wcm90b3R5cGUuX3JlbW92
ZURlYnVnZ2VyVHJlZUVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lk
ZWJhclBhbmVsLnByb3RvdHlwZS5fdHJlZUVsZW1lbnRTZWxlY3RlZCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9jb21wYXJlRGVidWdnZXJU
cmVlRWxlbWVudHMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVs
LnByb3RvdHlwZS5fYWRkRGVidWdnZXJPYmplY3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fYWRkSXNzdWUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsLnByb3RvdHlwZS5faGFuZGxlSXNzdWVBZGRlZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9o
YW5kbGVJc3N1ZXNDbGVhcmVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGVi
YXJQYW5lbC5wcm90b3R5cGUuX2JyZWFrcG9pbnREaXNwbGF5TG9jYXRpb25EaWRDaGFuZ2UpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsLnByb3Rv
dHlwZS5fcmVtb3ZlQnJlYWtwb2ludFRyZWVFbGVtZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbC5wcm90b3R5cGUuX2NvbXBhcmVCcmVha3Bv
aW50VHJlZUVsZW1lbnRzKTogRGVsZXRlZC4KKyAgICAgICAgQWRkIElzc3VlVHJlZUVsZW1lbnRz
IHRvIHRoZSBzaWRlYmFyIHdoZW5ldmVyIGEgd2FybmluZyBvciBlcnJvciBjb3JyZXNwb25kaW5n
IHRvIGEgbGluZSBvZiBjb2RlIGlzIGZvdW5kLgorICAgICAgICBBZGQgYSBmaWx0ZXIgZnVuY3Rp
b24gYW5kIGJ1dHRvbiB0byBmaWx0ZXIgZG93biB0byBqdXN0IHRoZXNlLiBFbnN1cmUgaXNzdWUg
YW5kIGJyZWFrcG9pbnQgZWxlbWVudHMgY2FuIGJlCisgICAgICAgIHByb3Blcmx5IGNvbXBhcmVk
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclRyZWVFbGVtZW50Lmpz
OiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclRyZWVFbGVtZW50KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclRyZWVFbGVtZW50LnByb3RvdHlwZS5nZXQgZGVi
dWdnZXJPYmplY3QpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9Jc3N1ZVRyZWVF
bGVtZW50LmNzczogQWRkZWQuCisgICAgICAgICguaXNzdWUgLmljb24pOgorICAgICAgICAoLmlz
c3VlLmVycm9yIC5pY29uKToKKyAgICAgICAgKC5uYXZpZ2F0aW9uLXNpZGViYXItcGFuZWwtY29u
dGVudC10cmVlLW91dGxpbmUgLml0ZW0uc21hbGwuaXNzdWUgLmljb24pOgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9Jc3N1ZVRyZWVFbGVtZW50LmpzOiBBZGRlZC4KKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Jc3N1ZVRyZWVFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5J
c3N1ZVRyZWVFbGVtZW50LnByb3RvdHlwZS5nZXQgaXNzdWVNZXNzYWdlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Jc3N1ZVRyZWVFbGVtZW50LnByb3RvdHlwZS5fdXBkYXRlVGl0bGVzKToKKwog
MjAxNS0wNC0xMCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IEZpeCBDb25zb2xlIE1lc3NhZ2UgVG9nZ2xlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ov
bG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCAwMDc4NTczNjUyZmVjNjVmMjdjZTU4NDA1OTcwOTY3
N2JlY2RiMzJjLi42OGI3Y2EyNTkyMWI0MTY0MzQ4Zjk4YTU2ODZhZGNkNGM5Y2EyMDA4IDEwMDY0
NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDEwNgp6Y21kbVhpRnd+dTxfJkw7UE9kenYhSXtaVzQx
fWMmc2d2VzVJJjtIJDQ4QFpkU207aUVkeCZmRCtvUjhiKmJHSWIKV0cpTSVpWVI9PElsWVBzJUh2
ZDBudF5AJTgwVjxnUQoKZGVsdGEgMzQKbGNtZG1ZbTNpQUc8XyZMO1BWUEt6SHJlKkwpYTJCb0Iy
YyFePUk5ZzJOJnJKJDVxMUNvCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTWFpbi5odG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTWFpbi5odG1sCmluZGV4IDkwNjBjOGUzMzdlY2YwMmNiNTQ4OWZhNzUxOGYzOGQ3YTRmMmMy
MzcuLjJkZDY0NDRhZWU4Y2ExNjQxNDNkM2UxYzIxNzQ1OTI3MmRiZmQ5YzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAorKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKQEAgLTg4LDYgKzg4LDcg
QEAKICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0ltYWdlUmVzb3VyY2VD
b250ZW50Vmlldy5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3Mv
SW5kZXRlcm1pbmF0ZVByb2dyZXNzU3Bpbm5lci5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iVmlld3MvSW5kZXhlZERhdGFiYXNlT2JqZWN0U3RvcmVDb250ZW50Vmlldy5j
c3MiPgorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvSXNzdWVUcmVlRWxl
bWVudC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvTGF5ZXJU
cmVlRGV0YWlsc1NpZGViYXJQYW5lbC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iVmlld3MvTGF5b3V0VGltZWxpbmVPdmVydmlld0dyYXBoLmNzcyI+CiAgICAgPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSJWaWV3cy9MYXlvdXRUaW1lbGluZVZpZXcuY3NzIj4KQEAg
LTMzMSw2ICszMzIsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9TdG9yYWdlVHJlZUVsZW1l
bnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9UaW1lbGluZVJlY29yZFRy
ZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KIAorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9EZWJ1Z2dl
clRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvUmVzb3Vy
Y2VUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CiAKICAgICA8c2NyaXB0IHNyYz0iVmlld3MvQWN0
aXZhdGVCdXR0b25OYXZpZ2F0aW9uSXRlbS5qcyI+PC9zY3JpcHQ+CkBAIC00MTcsNiArNDE5LDcg
QEAKICAgICA8c2NyaXB0IHNyYz0iVmlld3MvSW5kZXhlZERhdGFiYXNlT2JqZWN0U3RvcmVJbmRl
eFRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvSW5kZXhl
ZERhdGFiYXNlT2JqZWN0U3RvcmVUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlZpZXdzL0luZGV4ZWREYXRhYmFzZVRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0iVmlld3MvSXNzdWVUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IlZpZXdzL0xheWVyVHJlZURhdGFHcmlkTm9kZS5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IlZpZXdzL0xheWVyVHJlZURldGFpbHNTaWRlYmFyUGFuZWwuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9MYXlvdXRUaW1lbGluZURhdGFHcmlkLmpz
Ij48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9Jc3N1ZU1lc3NhZ2UuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Nb2RlbHMvSXNzdWVNZXNzYWdlLmpzCmluZGV4IDNjZDQzZDgzNTA5Nzk4ODlmMjZk
MDkzNDY2Y2JmMTcwODJjOTI5YzYuLmZmNmM0Yjc1ZmFmMTU3ZGExY2VjODU1YzA2NDMxZWM1YjU4
ZjE1NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01v
ZGVscy9Jc3N1ZU1lc3NhZ2UuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvTW9kZWxzL0lzc3VlTWVzc2FnZS5qcwpAQCAtMzEsOCArMzEsNyBAQCBXZWJJbnNwZWN0
b3IuSXNzdWVNZXNzYWdlID0gY2xhc3MgSXNzdWVNZXNzYWdlIGV4dGVuZHMgV2ViSW5zcGVjdG9y
Lk9iamVjdAogCiAgICAgICAgIHRoaXMuX2xldmVsID0gbGV2ZWw7CiAgICAgICAgIHRoaXMuX3Rl
eHQgPSB0ZXh0OwotCi0gICAgICAgIC8vIEZJWE1FOiBNb3ZlIHRvIGEgU291cmNlQ29kZUxvY2F0
aW9uLgorICAgICAgICB0aGlzLl9zb3VyY2UgPSBzb3VyY2U7CiAKICAgICAgICAgLy8gRklYTUUg
PGh0dHA6Ly93ZWJraXQub3JnL2IvNzY0MDQ+OiBSZW1vdmUgdGhlIHN0cmluZyBlcXVhbGl0eSBj
aGVja3MgZm9yIHVuZGVmaW5lZAogICAgICAgICAvLyBvbmNlIHdlIGRvbid0IGdldCB0aGF0IHZh
bHVlIGFueW1vcmUgZnJvbSBXZWJDb3JlLgpAQCAtNDEsMTEgKzQwLDggQEAgV2ViSW5zcGVjdG9y
Lklzc3VlTWVzc2FnZSA9IGNsYXNzIElzc3VlTWVzc2FnZSBleHRlbmRzIFdlYkluc3BlY3Rvci5P
YmplY3QKICAgICAgICAgaWYgKHVybCAmJiB1cmwgIT09ICJ1bmRlZmluZWQiKQogICAgICAgICAg
ICAgdGhpcy5fdXJsID0gdXJsOwogCi0gICAgICAgIGlmICh0eXBlb2YgbGluZU51bWJlciA9PT0g
Im51bWJlciIgJiYgbGluZU51bWJlciA+PSAwKQotICAgICAgICAgICAgdGhpcy5fbGluZU51bWJl
ciA9IGxpbmVOdW1iZXI7Ci0KLSAgICAgICAgaWYgKHR5cGVvZiBjb2x1bW5OdW1iZXIgPT09ICJu
dW1iZXIiICYmIGNvbHVtbk51bWJlciA+PSAwKQotICAgICAgICAgICAgdGhpcy5fY29sdW1uTnVt
YmVyID0gY29sdW1uTnVtYmVyOworICAgICAgICBpZiAodHlwZW9mIGxpbmVOdW1iZXIgPT09ICJu
dW1iZXIiICYmIGxpbmVOdW1iZXIgPj0gMCAmJiB0aGlzLl91cmwpCisgICAgICAgICAgICB0aGlz
Ll9zb3VyY2VDb2RlTG9jYXRpb24gPSBuZXcgV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVMb2NhdGlv
bihXZWJJbnNwZWN0b3IuZnJhbWVSZXNvdXJjZU1hbmFnZXIucmVzb3VyY2VGb3JVUkwodXJsKSwg
bGluZU51bWJlciwgY29sdW1uTnVtYmVyKTsKIAogICAgICAgICAvLyBGSVhNRTogPGh0dHBzOi8v
d2Via2l0Lm9yZy9iLzE0MjU1Mz4gV2ViIEluc3BlY3RvcjogTWVyZ2UgSXNzdWVNZXNzYWdlL0Nv
bnNvbGVNZXNzYWdlIC0gYm90aCBhdHRlbXB0IHRvIG1vZGlmeSB0aGUgQ29uc29sZSBNZXNzYWdl
cyBwYXJhbWV0ZXIgaW5kZXBlbmRlbnRseQogCkBAIC05OSw2ICs5NSw5IEBAIFdlYkluc3BlY3Rv
ci5Jc3N1ZU1lc3NhZ2UgPSBjbGFzcyBJc3N1ZU1lc3NhZ2UgZXh0ZW5kcyBXZWJJbnNwZWN0b3Iu
T2JqZWN0CiAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJVbmtub3duIGlzc3VlIHNvdXJjZToi
LCBzb3VyY2UpOwogICAgICAgICAgICAgdGhpcy5fdHlwZSA9IFdlYkluc3BlY3Rvci5Jc3N1ZU1l
c3NhZ2UuVHlwZS5PdGhlcklzc3VlOwogICAgICAgICB9CisKKyAgICAgICAgaWYgKHRoaXMuX3Nv
dXJjZUNvZGVMb2NhdGlvbikKKyAgICAgICAgICAgIHRoaXMuX3NvdXJjZUNvZGVMb2NhdGlvbi5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlTG9jYXRpb24uRXZlbnQuRGlz
cGxheUxvY2F0aW9uQ2hhbmdlZCwgdGhpcy5fc291cmNlQ29kZUxvY2F0aW9uRGlzcGxheUxvY2F0
aW9uQ2hhbmdlZCwgdGhpcyk7CiAgICAgfQogCiAgICAgLy8gU3RhdGljCkBAIC0xNDUsNiArMTQ0
LDExIEBAIFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UgPSBjbGFzcyBJc3N1ZU1lc3NhZ2UgZXh0
ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAgICAgICAgIHJldHVybiB0aGlzLl90ZXh0OwogICAg
IH0KIAorICAgIGdldCBzb3VyY2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJj
ZTsKKyAgICB9CisKICAgICBnZXQgdXJsKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl91
cmw7CkBAIC0xNTIsMTIgKzE1NiwzOCBAQCBXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlID0gY2xh
c3MgSXNzdWVNZXNzYWdlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAgZ2V0IGxp
bmVOdW1iZXIoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2xpbmVOdW1iZXI7CisgICAg
ICAgIGlmICh0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24pCisgICAgICAgICAgICByZXR1cm4gdGhp
cy5fc291cmNlQ29kZUxvY2F0aW9uLmxpbmVOdW1iZXI7CiAgICAgfQogCiAgICAgZ2V0IGNvbHVt
bk51bWJlcigpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1uTnVtYmVyOworICAg
ICAgICBpZiAodGhpcy5fc291cmNlQ29kZUxvY2F0aW9uKQorICAgICAgICAgICAgcmV0dXJuIHRo
aXMuX3NvdXJjZUNvZGVMb2NhdGlvbi5jb2x1bW5OdW1iZXI7CisgICAgfQorCisgICAgZ2V0IGRp
c3BsYXlMaW5lTnVtYmVyKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9zb3VyY2VDb2RlTG9j
YXRpb24pCisgICAgICAgICAgICByZXR1cm4gdGhpcy5fc291cmNlQ29kZUxvY2F0aW9uLmRpc3Bs
YXlMaW5lTnVtYmVyOworICAgIH0KKworICAgIGdldCBkaXNwbGF5Q29sdW1uTnVtYmVyKCkKKyAg
ICB7CisgICAgICAgIGlmICh0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24pCisgICAgICAgICAgICBy
ZXR1cm4gdGhpcy5fc291cmNlQ29kZUxvY2F0aW9uLmRpc3BsYXlDb2x1bW5OdW1iZXI7CisgICAg
fQorCisgICAgZ2V0IHNvdXJjZUNvZGVMb2NhdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5fc291cmNlQ29kZUxvY2F0aW9uOworICAgIH0KKworICAgIHNhdmVJZGVudGl0eVRvQ29v
a2llKGNvb2tpZSkKKyAgICB7CisgICAgICAgIGNvb2tpZVtXZWJJbnNwZWN0b3IuSXNzdWVNZXNz
YWdlLlVSTENvb2tpZUtleV0gPSB0aGlzLnVybDsKKyAgICAgICAgY29va2llW1dlYkluc3BlY3Rv
ci5Jc3N1ZU1lc3NhZ2UuTGluZU51bWJlckNvb2tpZUtleV0gPSB0aGlzLnNvdXJjZUNvZGVMb2Nh
dGlvbi5saW5lTnVtYmVyOworICAgICAgICBjb29raWVbV2ViSW5zcGVjdG9yLklzc3VlTWVzc2Fn
ZS5Db2x1bW5OdW1iZXJDb29raWVLZXldID0gdGhpcy5zb3VyY2VDb2RlTG9jYXRpb24uY29sdW1u
TnVtYmVyOwogICAgIH0KIAogICAgIC8vIFByaXZhdGUKQEAgLTE5Niw2ICsyMjYsMTEgQEAgV2Vi
SW5zcGVjdG9yLklzc3VlTWVzc2FnZSA9IGNsYXNzIElzc3VlTWVzc2FnZSBleHRlbmRzIFdlYklu
c3BlY3Rvci5PYmplY3QKIAogICAgICAgICB0aGlzLl90ZXh0ID0gcmVzdWx0VGV4dDsKICAgICB9
CisKKyAgICBfc291cmNlQ29kZUxvY2F0aW9uRGlzcGxheUxvY2F0aW9uQ2hhbmdlZChldmVudCkK
KyAgICB7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rv
ci5Jc3N1ZU1lc3NhZ2UuRXZlbnQuRGlzcGxheUxvY2F0aW9uRGlkQ2hhbmdlLCBldmVudC5kYXRh
KTsKKyAgICB9CiB9OwogCiBXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLkxldmVsID0gewpAQCAt
MjE0LDYgKzI0OSwxNiBAQCBXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLlR5cGUgPSB7CiAgICAg
T3RoZXJJc3N1ZTogImlzc3VlLW1lc3NhZ2UtdHlwZS1vdGhlci1pc3N1ZSIKIH07CiAKK1dlYklu
c3BlY3Rvci5Jc3N1ZU1lc3NhZ2UuVHlwZUlkZW50aWZpZXIgPSAiaXNzdWUtbWVzc2FnZSI7CitX
ZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLlVSTENvb2tpZUtleSA9ICJpc3N1ZS1tZXNzYWdlLXVy
bCI7CitXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLkxpbmVOdW1iZXJDb29raWVLZXkgPSAiaXNz
dWUtbWVzc2FnZS1saW5lLW51bWJlciI7CitXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLkNvbHVt
bk51bWJlckNvb2tpZUtleSA9ICJpc3N1ZS1tZXNzYWdlLWNvbHVtbi1udW1iZXIiOworCitXZWJJ
bnNwZWN0b3IuSXNzdWVNZXNzYWdlLkV2ZW50ID0geworICAgIExvY2F0aW9uRGlkQ2hhbmdlOiAi
aXNzdWUtbWVzc2FnZS1sb2NhdGlvbi1kaWQtY2hhbmdlIiwKKyAgICBEaXNwbGF5TG9jYXRpb25E
aWRDaGFuZ2U6ICJpc3N1ZS1tZXNzYWdlLWRpc3BsYXktbG9jYXRpb24tZGlkLWNoYW5nZSIKK307
CisKIFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UuVHlwZS5fcHJlZml4VHlwZU1hcCA9IHsKICAg
ICAiU3ludGF4RXJyb3IiOiBXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLlR5cGUuU2VtYW50aWNJ
c3N1ZSwKICAgICAiVVJJRXJyb3IiOiBXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLlR5cGUuU2Vt
YW50aWNJc3N1ZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0JyZWFrcG9pbnRUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0JyZWFrcG9pbnRUcmVlRWxlbWVudC5qcwppbmRleCAwODY2
ZTNmMjVjMmEyMjdhZjU2MTQ1MWExNTZlNjBmMzcxNzg0Mzc3Li43OWU4NmZiNGE4MjEyMDZmNDJk
NTk0ZWIyNzEwOWQwOTIwNTI0YmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9CcmVha3BvaW50VHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQnJlYWtwb2ludFRyZWVFbGVtZW50
LmpzCkBAIC0yMyw3ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAotV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudCA9IGNsYXNzIEJyZWFr
cG9pbnRUcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5HZW5lcmFsVHJlZUVsZW1lbnQK
K1dlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQgPSBjbGFzcyBCcmVha3BvaW50VHJl
ZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuRGVidWdnZXJUcmVlRWxlbWVudAogewogICAg
IGNvbnN0cnVjdG9yKGJyZWFrcG9pbnQsIGNsYXNzTmFtZSwgdGl0bGUpCiAgICAgewpAQCAtMjM3
LDcgKzIzNyw2IEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQgPSBjbGFzcyBC
cmVha3BvaW50VHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwCiAgICAgICAgIH0uYmluZCh0aGlz
KSwgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudC5Qcm9iZURhdGFVcGRhdGVkQW5p
bWF0aW9uRHVyYXRpb24pOwogICAgIH0KIAotCiAgICAgX2JyZWFrcG9pbnRMb2NhdGlvbkRpZENo
YW5nZShldmVudCkKICAgICB7CiAgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGV2ZW50LnRhcmdldCA9
PT0gdGhpcy5fYnJlYWtwb2ludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzCmlu
ZGV4IDlmNTE5NTlkZDZmNDcxZTlmMTI3YWYxODQyOWE0OGViOTEyNDlhNmEuLmY1ODIwMjkwMjMx
NjA0NWNjN2ZlNTAxOWQ4ODI0YjQ3ZGVjMWZlYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyU2lkZWJh
clBhbmVsLmpzCkBAIC0xMDUsOCArMTA1LDggQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJh
clBhbmVsID0gY2xhc3MgRGVidWdnZXJTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWMKICAg
ICAgICAgdGhpcy5maWx0ZXJCYXIucGxhY2Vob2xkZXIgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkZpbHRlciBCcmVha3BvaW50IExpc3QiKTsKICAgICAgICAgdmFyIHNob3dSZXNvdXJjZXNXaXRo
QnJlYWtwb2ludHNPbmx5RmlsdGVyRnVuY3Rpb24gPSBmdW5jdGlvbih0cmVlRWxlbWVudCkKICAg
ICAgICAgewotICAgICAgICAgICAgLy8gS2VlcCBicmVha3BvaW50cyBhbmQgb3RoZXIgZWxlbWVu
dHMgdGhhdCBhcmVuJ3QgcmVzb3VyY2VzLgotICAgICAgICAgICAgaWYgKCF0cmVlRWxlbWVudCBp
bnN0YW5jZW9mIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVFbGVtZW50IHx8IHRyZWVFbGVtZW50
IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudCkKKyAgICAgICAg
ICAgIC8vIEtlZXAgYnJlYWtwb2ludHMuCisgICAgICAgICAgICBpZiAodHJlZUVsZW1lbnQgaW5z
dGFuY2VvZiBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50KQogICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogCiAgICAgICAgICAgICAvLyBLZWVwIHJlc291cmNlcyB3aXRoIGJy
ZWFrcG9pbnRzLgpAQCAtMTE5LDcgKzExOSwyNCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRl
YmFyUGFuZWwgPSBjbGFzcyBEZWJ1Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlYwog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9OwogCi0gICAgICAgIHRoaXMuZmls
dGVyQmFyLmFkZEZpbHRlckJhckJ1dHRvbigiZGVidWdnZXItc2hvdy1yZXNvdXJjZXMtd2l0aC1j
aGlsZHJlbi1vbmx5Iiwgc2hvd1Jlc291cmNlc1dpdGhCcmVha3BvaW50c09ubHlGaWx0ZXJGdW5j
dGlvbiwgdHJ1ZSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93IG9ubHkgcmVzb3VyY2VzIHdp
dGggYnJlYWtwb2ludHMuIiksIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2hvdyByZXNvdXJjZXMg
d2l0aCBhbmQgd2l0aG91dCBicmVha3BvaW50cy4iKSwgcGxhdGZvcm1JbWFnZVBhdGgoIkJyZWFr
cG9pbnRzLnN2ZyIpLCAxNSwgMTUpOworICAgICAgICB2YXIgc2hvd1Jlc291cmNlc1dpdGhJc3N1
ZXNPbmx5RmlsdGVyRnVuY3Rpb24gPSBmdW5jdGlvbih0cmVlRWxlbWVudCkKKyAgICAgICAgewor
ICAgICAgICAgICAgLy8gS2VlcCBpc3N1ZXMuCisgICAgICAgICAgICBpZiAodHJlZUVsZW1lbnQg
aW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuSXNzdWVUcmVlRWxlbWVudCkKKyAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgICAgLy8gS2VlcCByZXNvdXJjZXMgd2l0aCBpc3N1
ZXMuCisgICAgICAgICAgICBpZiAodHJlZUVsZW1lbnQuaGFzQ2hpbGRyZW4pIHsKKyAgICAgICAg
ICAgICAgICBmb3IgKHZhciBjaGlsZCBvZiB0cmVlRWxlbWVudC5jaGlsZHJlbikgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoY2hpbGQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuSXNzdWVUcmVl
RWxlbWVudCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgfTsKKworICAgICAgICB0aGlzLmZpbHRlckJhci5hZGRGaWx0ZXJCYXJCdXR0b24oImRlYnVn
Z2VyLXNob3ctcmVzb3VyY2VzLXdpdGgtYnJlYWtwb2ludHMtb25seSIsIHNob3dSZXNvdXJjZXNX
aXRoQnJlYWtwb2ludHNPbmx5RmlsdGVyRnVuY3Rpb24sIHRydWUsIFdlYkluc3BlY3Rvci5VSVN0
cmluZygiU2hvdyBvbmx5IHJlc291cmNlcyB3aXRoIGJyZWFrcG9pbnRzLiIpLCBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlNob3cgcmVzb3VyY2VzIHdpdGggYW5kIHdpdGhvdXQgYnJlYWtwb2ludHMu
IiksIHBsYXRmb3JtSW1hZ2VQYXRoKCJCcmVha3BvaW50cy5zdmciKSwgMTUsIDE1KTsKKyAgICAg
ICAgdGhpcy5maWx0ZXJCYXIuYWRkRmlsdGVyQmFyQnV0dG9uKCJkZWJ1Z2dlci1zaG93LXJlc291
cmNlcy13aXRoLWlzc3Vlcy1vbmx5Iiwgc2hvd1Jlc291cmNlc1dpdGhJc3N1ZXNPbmx5RmlsdGVy
RnVuY3Rpb24sIHRydWUsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2hvdyBvbmx5IHJlc291cmNl
cyB3aXRoIGlzc3Vlcy4iKSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93IHJlc291cmNlcyB3
aXRoIGFuZCB3aXRob3V0IGlzc3Vlcy4iKSwgcGxhdGZvcm1JbWFnZVBhdGgoIkVycm9ycy5zdmci
KSwgMTUsIDE1KTsKIAogICAgICAgICB0aGlzLl9icmVha3BvaW50c0NvbnRlbnRUcmVlT3V0bGlu
ZSA9IHRoaXMuY29udGVudFRyZWVPdXRsaW5lOwogICAgICAgICB0aGlzLl9icmVha3BvaW50c0Nv
bnRlbnRUcmVlT3V0bGluZS5vbnNlbGVjdCA9IHRoaXMuX3RyZWVFbGVtZW50U2VsZWN0ZWQuYmlu
ZCh0aGlzKTsKQEAgLTE1NSw3ICsxNzIsMTAgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJh
clBhbmVsID0gY2xhc3MgRGVidWdnZXJTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWMKICAg
ICAgICAgdGhpcy5fcGF1c2VSZWFzb25TZWN0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5EZXRhaWxz
U2VjdGlvbigicGF1c2VkLXJlYXNvbiIsIG51bGwsIFt0aGlzLl9wYXVzZVJlYXNvbkdyb3VwXSwg
dGhpcy5fcGF1c2VSZWFzb25MaW5rQ29udGFpbmVyRWxlbWVudCk7CiAgICAgICAgIHRoaXMuX3Bh
dXNlUmVhc29uU2VjdGlvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUGF1c2UgUmVh
c29uIik7CiAKLSAgICAgICAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5EaXNwbGF5TG9jYXRpb25EaWRDaGFuZ2Us
IHRoaXMuX2JyZWFrcG9pbnREaXNwbGF5TG9jYXRpb25EaWRDaGFuZ2UsIHRoaXMpOworICAgICAg
ICBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5C
cmVha3BvaW50LkV2ZW50LkRpc3BsYXlMb2NhdGlvbkRpZENoYW5nZSwgdGhpcy5faGFuZGxlRGVi
dWdnZXJPYmplY3REaXNwbGF5TG9jYXRpb25EaWRDaGFuZ2UsIHRoaXMpOworICAgICAgICBXZWJJ
bnNwZWN0b3IuSXNzdWVNZXNzYWdlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLklzc3Vl
TWVzc2FnZS5FdmVudC5EaXNwbGF5TG9jYXRpb25EaWRDaGFuZ2UsIHRoaXMuX2hhbmRsZURlYnVn
Z2VyT2JqZWN0RGlzcGxheUxvY2F0aW9uRGlkQ2hhbmdlLCB0aGlzKTsKKyAgICAgICAgV2ViSW5z
cGVjdG9yLmlzc3VlTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Jc3N1ZU1h
bmFnZXIuRXZlbnQuSXNzdWVXYXNBZGRlZCwgdGhpcy5faGFuZGxlSXNzdWVBZGRlZCwgdGhpcyk7
CisgICAgICAgIFdlYkluc3BlY3Rvci5pc3N1ZU1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuSXNzdWVNYW5hZ2VyLkV2ZW50LkNsZWFyZWQsIHRoaXMuX2hhbmRsZUlzc3Vlc0Ns
ZWFyZWQsIHRoaXMpOwogICAgIH0KIAogICAgIC8vIFB1YmxpYwpAQCAtMjk2LDcgKzMxNiw3IEBA
IFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbCA9IGNsYXNzIERlYnVnZ2VyU2lkZWJh
clBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgICAgICBicmVha3BvaW50LnJlc29sdmVk
ID0gdHJ1ZTsKIAogICAgICAgICB2YXIgYnJlYWtwb2ludFRyZWVFbGVtZW50ID0gbmV3IFdlYklu
c3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQoYnJlYWtwb2ludCk7Ci0gICAgICAgIHBhcmVu
dFRyZWVFbGVtZW50Lmluc2VydENoaWxkKGJyZWFrcG9pbnRUcmVlRWxlbWVudCwgaW5zZXJ0aW9u
SW5kZXhGb3JPYmplY3RJbkxpc3RTb3J0ZWRCeUZ1bmN0aW9uKGJyZWFrcG9pbnRUcmVlRWxlbWVu
dCwgcGFyZW50VHJlZUVsZW1lbnQuY2hpbGRyZW4sIHRoaXMuX2NvbXBhcmVCcmVha3BvaW50VHJl
ZUVsZW1lbnRzKSk7CisgICAgICAgIHBhcmVudFRyZWVFbGVtZW50Lmluc2VydENoaWxkKGJyZWFr
cG9pbnRUcmVlRWxlbWVudCwgaW5zZXJ0aW9uSW5kZXhGb3JPYmplY3RJbkxpc3RTb3J0ZWRCeUZ1
bmN0aW9uKGJyZWFrcG9pbnRUcmVlRWxlbWVudCwgcGFyZW50VHJlZUVsZW1lbnQuY2hpbGRyZW4s
IHRoaXMuX2NvbXBhcmVEZWJ1Z2dlclRyZWVFbGVtZW50cykpOwogICAgICAgICBpZiAocGFyZW50
VHJlZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAxKQogICAgICAgICAgICAgcGFyZW50VHJl
ZUVsZW1lbnQuZXhwYW5kKCk7CiAgICAgICAgIHJldHVybiBicmVha3BvaW50VHJlZUVsZW1lbnQ7
CkBAIC00MDMsMzUgKzQyMywzNiBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwg
PSBjbGFzcyBEZWJ1Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlYwogICAgICAgICBp
ZiAoIWJyZWFrcG9pbnRUcmVlRWxlbWVudCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAg
ICB0aGlzLl9yZW1vdmVCcmVha3BvaW50VHJlZUVsZW1lbnQoYnJlYWtwb2ludFRyZWVFbGVtZW50
KTsKKyAgICAgICAgdGhpcy5fcmVtb3ZlRGVidWdnZXJUcmVlRWxlbWVudChicmVha3BvaW50VHJl
ZUVsZW1lbnQpOwogICAgIH0KIAotICAgIF9icmVha3BvaW50RGlzcGxheUxvY2F0aW9uRGlkQ2hh
bmdlKGV2ZW50KQorICAgIF9oYW5kbGVEZWJ1Z2dlck9iamVjdERpc3BsYXlMb2NhdGlvbkRpZENo
YW5nZShldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBicmVha3BvaW50ID0gZXZlbnQudGFyZ2V0
OwotICAgICAgICBpZiAoZXZlbnQuZGF0YS5vbGREaXNwbGF5U291cmNlQ29kZSA9PT0gYnJlYWtw
b2ludC5kaXNwbGF5U291cmNlQ29kZSkKKyAgICAgICAgdmFyIGRlYnVnZ2VyT2JqZWN0ID0gZXZl
bnQudGFyZ2V0OworCisgICAgICAgIGlmIChldmVudC5kYXRhLm9sZERpc3BsYXlTb3VyY2VDb2Rl
ID09PSBkZWJ1Z2dlck9iamVjdC5zb3VyY2VDb2RlTG9jYXRpb24uZGlzcGxheVNvdXJjZUNvZGUp
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdmFyIGJyZWFrcG9pbnRUcmVlRWxlbWVu
dCA9IHRoaXMuX2JyZWFrcG9pbnRzQ29udGVudFRyZWVPdXRsaW5lLmdldENhY2hlZFRyZWVFbGVt
ZW50KGJyZWFrcG9pbnQpOwotICAgICAgICBpZiAoIWJyZWFrcG9pbnRUcmVlRWxlbWVudCkKKyAg
ICAgICAgdmFyIGRlYnVnZ2VyVHJlZUVsZW1lbnQgPSB0aGlzLl9icmVha3BvaW50c0NvbnRlbnRU
cmVlT3V0bGluZS5nZXRDYWNoZWRUcmVlRWxlbWVudChkZWJ1Z2dlck9iamVjdCk7CisgICAgICAg
IGlmICghZGVidWdnZXJUcmVlRWxlbWVudCkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAg
ICAvLyBBIGtub3duIGJyZWFrcG9pbnQgbW92ZWQgYmV0d2VlbiByZXNvdXJjZXMsIHJlbW92ZSB0
aGUgb2xkIHRyZWUgZWxlbWVudAorICAgICAgICAvLyBBIGtub3duIGRlYnVnZ2VyIG9iamVjdCAo
YnJlYWtwb2ludCwgaXNzdWVNZXNzYWdlLCBldGMuKSBtb3ZlZCBiZXR3ZWVuIHJlc291cmNlcywg
cmVtb3ZlIHRoZSBvbGQgdHJlZSBlbGVtZW50CiAgICAgICAgIC8vIGFuZCBjcmVhdGUgYSBuZXcg
dHJlZSBlbGVtZW50IHdpdGggdGhlIHVwZGF0ZWQgZmlsZS4KIAotICAgICAgICB2YXIgd2FzU2Vs
ZWN0ZWQgPSBicmVha3BvaW50VHJlZUVsZW1lbnQuc2VsZWN0ZWQ7CisgICAgICAgIHZhciB3YXNT
ZWxlY3RlZCA9IGRlYnVnZ2VyVHJlZUVsZW1lbnQuc2VsZWN0ZWQ7CiAKLSAgICAgICAgdGhpcy5f
cmVtb3ZlQnJlYWtwb2ludFRyZWVFbGVtZW50KGJyZWFrcG9pbnRUcmVlRWxlbWVudCk7Ci0gICAg
ICAgIHZhciBuZXdCcmVha3BvaW50VHJlZUVsZW1lbnQgPSB0aGlzLl9hZGRCcmVha3BvaW50KGJy
ZWFrcG9pbnQpOworICAgICAgICB0aGlzLl9yZW1vdmVEZWJ1Z2dlclRyZWVFbGVtZW50KGRlYnVn
Z2VyVHJlZUVsZW1lbnQpOworICAgICAgICB2YXIgbmV3RGVidWdnZXJUcmVlRWxlbWVudCA9IHRo
aXMuX2FkZERlYnVnZ2VyT2JqZWN0KGRlYnVnZ2VyT2JqZWN0KTsKIAotICAgICAgICBpZiAobmV3
QnJlYWtwb2ludFRyZWVFbGVtZW50ICYmIHdhc1NlbGVjdGVkKQotICAgICAgICAgICAgbmV3QnJl
YWtwb2ludFRyZWVFbGVtZW50LnJldmVhbEFuZFNlbGVjdCh0cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1
ZSk7CisgICAgICAgIGlmIChuZXdEZWJ1Z2dlclRyZWVFbGVtZW50ICYmIHdhc1NlbGVjdGVkKQor
ICAgICAgICAgICAgbmV3RGVidWdnZXJUcmVlRWxlbWVudC5yZXZlYWxBbmRTZWxlY3QodHJ1ZSwg
ZmFsc2UsIHRydWUsIHRydWUpOwogICAgIH0KIAotICAgIF9yZW1vdmVCcmVha3BvaW50VHJlZUVs
ZW1lbnQoYnJlYWtwb2ludFRyZWVFbGVtZW50KQorICAgIF9yZW1vdmVEZWJ1Z2dlclRyZWVFbGVt
ZW50KGRlYnVnZ2VyVHJlZUVsZW1lbnQpCiAgICAgewotICAgICAgICB2YXIgcGFyZW50VHJlZUVs
ZW1lbnQgPSBicmVha3BvaW50VHJlZUVsZW1lbnQucGFyZW50OwotICAgICAgICBwYXJlbnRUcmVl
RWxlbWVudC5yZW1vdmVDaGlsZChicmVha3BvaW50VHJlZUVsZW1lbnQpOworICAgICAgICB2YXIg
cGFyZW50VHJlZUVsZW1lbnQgPSBkZWJ1Z2dlclRyZWVFbGVtZW50LnBhcmVudDsKKyAgICAgICAg
cGFyZW50VHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGQoZGVidWdnZXJUcmVlRWxlbWVudCk7CiAKICAg
ICAgICAgY29uc29sZS5hc3NlcnQocGFyZW50VHJlZUVsZW1lbnQucGFyZW50ID09PSB0aGlzLl9i
cmVha3BvaW50c0NvbnRlbnRUcmVlT3V0bGluZSk7CiAgICAgfQpAQCAtNjA3LDYgKzYyOCwxMyBA
QCBXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwgPSBjbGFzcyBEZWJ1Z2dlclNpZGVi
YXJQYW5lbCBleHRlbmRzIFdlYkluc3BlYwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKKyAgICAgICAgaWYgKHRyZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLklzc3Vl
VHJlZUVsZW1lbnQpIHsKKyAgICAgICAgICAgIGRlc2VsZWN0Q2FsbFN0YWNrQ29udGVudFRyZWVF
bGVtZW50cy5jYWxsKHRoaXMpOworICAgICAgICAgICAgZGVzZWxlY3RQYXVzZVJlYXNvbkNvbnRl
bnRUcmVlRWxlbWVudHMuY2FsbCh0aGlzKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5yZXNv
dXJjZVNpZGViYXJQYW5lbC5zaG93U291cmNlQ29kZUxvY2F0aW9uKHRyZWVFbGVtZW50Lmlzc3Vl
TWVzc2FnZS5zb3VyY2VDb2RlTG9jYXRpb24pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKICAgICAgICAgaWYgKCEodHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3Iu
QnJlYWtwb2ludFRyZWVFbGVtZW50KSB8fCB0cmVlRWxlbWVudC5wYXJlbnQuY29uc3RydWN0b3Ig
PT09IFdlYkluc3BlY3Rvci5Gb2xkZXJUcmVlRWxlbWVudCkKICAgICAgICAgICAgIHJldHVybjsK
IApAQCAtNjQ0LDEwICs2NzIsMTMgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVs
ID0gY2xhc3MgRGVidWdnZXJTaWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAg
cmV0dXJuIGEubWFpblRpdGxlLmxvY2FsZUNvbXBhcmUoYi5tYWluVGl0bGUpOwogICAgIH0KIAot
ICAgIF9jb21wYXJlQnJlYWtwb2ludFRyZWVFbGVtZW50cyhhLCBiKQorICAgIF9jb21wYXJlRGVi
dWdnZXJUcmVlRWxlbWVudHMoYSwgYikKICAgICB7Ci0gICAgICAgIHZhciBhTG9jYXRpb24gPSBh
LmJyZWFrcG9pbnQuc291cmNlQ29kZUxvY2F0aW9uOwotICAgICAgICB2YXIgYkxvY2F0aW9uID0g
Yi5icmVha3BvaW50LnNvdXJjZUNvZGVMb2NhdGlvbjsKKyAgICAgICAgaWYgKCFhLmRlYnVnZ2Vy
T2JqZWN0IHx8ICFiLmRlYnVnZ2VyT2JqZWN0KQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAg
ICAgIAorICAgICAgICB2YXIgYUxvY2F0aW9uID0gYS5kZWJ1Z2dlck9iamVjdC5zb3VyY2VDb2Rl
TG9jYXRpb247CisgICAgICAgIHZhciBiTG9jYXRpb24gPSBiLmRlYnVnZ2VyT2JqZWN0LnNvdXJj
ZUNvZGVMb2NhdGlvbjsKIAogICAgICAgICB2YXIgY29tcGFyaXNvblJlc3VsdCA9IGFMb2NhdGlv
bi5kaXNwbGF5TGluZU51bWJlciAtIGJMb2NhdGlvbi5kaXNwbGF5TGluZU51bWJlcjsKICAgICAg
ICAgaWYgKGNvbXBhcmlzb25SZXN1bHQgIT09IDApCkBAIC03NTIsNiArNzgzLDU1IEBAIFdlYklu
c3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbCA9IGNsYXNzIERlYnVnZ2VyU2lkZWJhclBhbmVs
IGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgIHZhciBsaW5rRWxlbWVudCA9IFdlYkluc3BlY3Rv
ci5jcmVhdGVTb3VyY2VDb2RlTG9jYXRpb25MaW5rKHNvdXJjZUNvZGVMb2NhdGlvbiwgZmFsc2Us
IHRydWUpOwogICAgICAgICB0aGlzLl9wYXVzZVJlYXNvbkxpbmtDb250YWluZXJFbGVtZW50LmFw
cGVuZENoaWxkKGxpbmtFbGVtZW50KTsKICAgICB9CisKKyAgICBfYWRkRGVidWdnZXJPYmplY3Qo
ZGVidWdnZXJPYmplY3QpCisgICAgeworICAgICAgICBpZiAoZGVidWdnZXJPYmplY3QgaW5zdGFu
Y2VvZiBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludCkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9h
ZGRCcmVha3BvaW50KGRlYnVnZ2VyT2JqZWN0KTsKKworICAgICAgICBpZiAoZGVidWdnZXJPYmpl
Y3QgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlKQorICAgICAgICAgICAgcmV0
dXJuIHRoaXMuX2FkZElzc3VlKGRlYnVnZ2VyT2JqZWN0KTsKKyAgICB9CisKKyAgICBfYWRkSXNz
dWUoaXNzdWVNZXNzYWdlKQorICAgIHsKKyAgICAgICAgdmFyIHBhcmVudFRyZWVFbGVtZW50ID0g
dGhpcy5fYWRkVHJlZUVsZW1lbnRGb3JTb3VyY2VDb2RlVG9Db250ZW50VHJlZU91dGxpbmUoaXNz
dWVNZXNzYWdlLnNvdXJjZUNvZGVMb2NhdGlvbi5zb3VyY2VDb2RlKTsKKyAgICAgICAgdmFyIGlz
c3VlVHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLklzc3VlVHJlZUVsZW1lbnQoaXNzdWVN
ZXNzYWdlKTsKKworICAgICAgICBwYXJlbnRUcmVlRWxlbWVudC5pbnNlcnRDaGlsZChpc3N1ZVRy
ZWVFbGVtZW50LCBpbnNlcnRpb25JbmRleEZvck9iamVjdEluTGlzdFNvcnRlZEJ5RnVuY3Rpb24o
aXNzdWVUcmVlRWxlbWVudCwgcGFyZW50VHJlZUVsZW1lbnQuY2hpbGRyZW4sIHRoaXMuX2NvbXBh
cmVEZWJ1Z2dlclRyZWVFbGVtZW50cykpOworICAgICAgICBpZiAocGFyZW50VHJlZUVsZW1lbnQu
Y2hpbGRyZW4ubGVuZ3RoID09PSAxKQorICAgICAgICAgICAgcGFyZW50VHJlZUVsZW1lbnQuZXhw
YW5kKCk7CisKKyAgICAgICAgcmV0dXJuIGlzc3VlVHJlZUVsZW1lbnQ7CisgICAgfQorCisgICAg
X2hhbmRsZUlzc3VlQWRkZWQoZXZlbnQpCisgICAgeworICAgICAgICB2YXIgaXNzdWUgPSBldmVu
dC5kYXRhLmlzc3VlOworCisgICAgICAgIC8vIFdlIG9ubHkgd2FudCB0byBzaG93IGlzc3VlcyBv
cmlnaW5hdGluZyBmcm9tIEphdmFTY3JpcHQgc291cmNlIGNvZGUuCisgICAgICAgIGlmICghaXNz
dWUubGluZU51bWJlciB8fCAoaXNzdWUuc291cmNlICE9PSAiamF2YXNjcmlwdCIgJiYgaXNzdWUu
c291cmNlICE9PSAiY29uc29sZS1hcGkiKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICB0aGlzLl9hZGRJc3N1ZShpc3N1ZSk7CisgICAgfQorCisgICAgX2hhbmRsZUlzc3Vlc0NsZWFy
ZWQoZXZlbnQpCisgICAgeworICAgICAgICB2YXIgY3VycmVudFRyZWVFbGVtZW50ID0gdGhpcy5f
Y29udGVudFRyZWVPdXRsaW5lLmNoaWxkcmVuWzBdOworICAgICAgICB2YXIgaXNzdWVUcmVlRWxl
bWVudHMgPSBbXTsKKworICAgICAgICB3aGlsZSAoY3VycmVudFRyZWVFbGVtZW50ICYmICFjdXJy
ZW50VHJlZUVsZW1lbnQucm9vdCkgeworICAgICAgICAgICAgaWYgKGN1cnJlbnRUcmVlRWxlbWVu
dCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Jc3N1ZVRyZWVFbGVtZW50KSB7CisgICAgICAgICAg
ICAgICAgaXNzdWVUcmVlRWxlbWVudHMucHVzaChjdXJyZW50VHJlZUVsZW1lbnQpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgY3VycmVudFRyZWVFbGVtZW50ID0gY3VycmVudFRyZWVFbGVt
ZW50LnRyYXZlcnNlTmV4dFRyZWVFbGVtZW50KGZhbHNlLCBudWxsLCB0cnVlKTsKKyAgICAgICAg
fQorCisgICAgICAgIGlzc3VlVHJlZUVsZW1lbnRzLmZvckVhY2goZnVuY3Rpb24oaXNzdWVUcmVl
RWxlbWVudCkgeworICAgICAgICAgICAgaXNzdWVUcmVlRWxlbWVudC5wYXJlbnQucmVtb3ZlQ2hp
bGQoaXNzdWVUcmVlRWxlbWVudCk7CisgICAgICAgIH0pOworICAgIH0KIH07CiAKIFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbC5PZmZzZXRTZWN0aW9uc1N0eWxlQ2xhc3NOYW1lID0g
Im9mZnNldC1zZWN0aW9ucyI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9EZWJ1Z2dlclRyZWVFbGVtZW50LmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJUcmVlRWxlbWVudC5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMTdiZTNlNTVhMzI0Y2M2M2YyY2E4ZmRlNzg3NzAwMTA2YTM1YmM4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdn
ZXJUcmVlRWxlbWVudC5qcwpAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyVHJlZUVsZW1lbnQgPSBjbGFzcyBEZWJ1Z2dlclRyZWVFbGVtZW50IGV4dGVu
ZHMgV2ViSW5zcGVjdG9yLkdlbmVyYWxUcmVlRWxlbWVudAoreworICAgIGNvbnN0cnVjdG9yKGNs
YXNzTmFtZXMsIHRpdGxlLCBzdWJ0aXRsZSwgcmVwcmVzZW50ZWRPYmplY3QsIGhhc0NoaWxkcmVu
KQorICAgIHsKKyAgICAgICAgc3VwZXIoY2xhc3NOYW1lcywgdGl0bGUsIHN1YnRpdGxlLCByZXBy
ZXNlbnRlZE9iamVjdCwgaGFzQ2hpbGRyZW4pOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisg
ICAgZ2V0IGRlYnVnZ2VyT2JqZWN0KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLnJlcHJl
c2VudGVkT2JqZWN0OworICAgIH0KK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9Jc3N1ZVRyZWVFbGVtZW50LmNzcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0lzc3VlVHJlZUVsZW1lbnQuY3NzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjY5MmI4M2Q2ZTg5YjQ4NDU1OGU4Zjc2OTEyNGNiMzg5ZjMwYTZiNDcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Jc3N1
ZVRyZWVFbGVtZW50LmNzcwpAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLmlzc3VlIC5p
Y29uIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoLi4vSW1hZ2VzL1dhcm5pbmcuc3ZnKTsK
KyAgICBjb250ZW50OiAnJzsKK30KKworLmlzc3VlLmVycm9yIC5pY29uIHsKKyAgICBiYWNrZ3Jv
dW5kLWltYWdlOiB1cmwoLi4vSW1hZ2VzL0Vycm9yLnN2Zyk7Cit9CisKKy5uYXZpZ2F0aW9uLXNp
ZGViYXItcGFuZWwtY29udGVudC10cmVlLW91dGxpbmUuc21hbGwgLml0ZW0uaXNzdWUgLmljb24s
CisubmF2aWdhdGlvbi1zaWRlYmFyLXBhbmVsLWNvbnRlbnQtdHJlZS1vdXRsaW5lIC5jaGlsZHJl
bi5zbWFsbCAuaXRlbS5pc3N1ZSAuaWNvbiwKKy5uYXZpZ2F0aW9uLXNpZGViYXItcGFuZWwtY29u
dGVudC10cmVlLW91dGxpbmUgLml0ZW0uc21hbGwuaXNzdWUgLmljb24geworICAgIGhlaWdodDog
MTRweDsKKyAgICB3aWR0aDogMTRweDsKKyAgICB0b3A6IDFweDsKKyAgICBsZWZ0OiAxcHg7Cisg
ICAgbWFyZ2luLXJpZ2h0OiA1cHg7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9Jc3N1ZVRyZWVFbGVtZW50LmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSXNzdWVUcmVlRWxlbWVudC5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45YzhkMjNkYmZmMGEyZGY3NTlkMGE1NDVkYWYzOTdjMjVlYTZmMTM3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSXNzdWVU
cmVlRWxlbWVudC5qcwpAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV2ViSW5zcGVjdG9y
Lklzc3VlVHJlZUVsZW1lbnQgPSBjbGFzcyBJc3N1ZVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyVHJlZUVsZW1lbnQKK3sKKyAgICBjb25zdHJ1Y3Rvcihpc3N1ZU1lc3Nh
Z2UpCisgICAgeworICAgICAgICB2YXIgbGV2ZWxTdHlsZUNsYXNzTmFtZTsKKyAgICAgICAgc3dp
dGNoIChpc3N1ZU1lc3NhZ2UubGV2ZWwpIHsKKyAgICAgICAgY2FzZSAiZXJyb3IiOgorICAgICAg
ICAgICAgbGV2ZWxTdHlsZUNsYXNzTmFtZSA9IFdlYkluc3BlY3Rvci5Jc3N1ZVRyZWVFbGVtZW50
LkVycm9yU3R5bGVDbGFzc05hbWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAi
d2FybmluZyI6CisgICAgICAgICAgICBsZXZlbFN0eWxlQ2xhc3NOYW1lID0gV2ViSW5zcGVjdG9y
Lklzc3VlVHJlZUVsZW1lbnQuV2FybmluZ1N0eWxlQ2xhc3NOYW1lOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKworICAgICAgICBzdXBlcihbV2ViSW5zcGVjdG9yLklzc3VlVHJlZUVs
ZW1lbnQuU3R5bGVDbGFzc05hbWUsIGxldmVsU3R5bGVDbGFzc05hbWVdLCBudWxsLCBudWxsLCBp
c3N1ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICB0aGlzLnNtYWxsID0gdHJ1ZTsKKyAgICAg
ICAgdGhpcy5faXNzdWVNZXNzYWdlID0gaXNzdWVNZXNzYWdlOworICAgICAgICB0aGlzLl91cGRh
dGVUaXRsZXMoKTsKKworICAgICAgICB0aGlzLl9pc3N1ZU1lc3NhZ2UuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLkV2ZW50LkRpc3BsYXlMb2NhdGlvbkRpZENoYW5n
ZSwgdGhpcy5fdXBkYXRlVGl0bGVzLCB0aGlzKTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWN0CisK
KyAgICBnZXQgaXNzdWVNZXNzYWdlKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9pc3N1
ZU1lc3NhZ2U7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX3VwZGF0ZVRpdGxlcygp
CisgICAgeworICAgICAgICB2YXIgZGlzcGxheUxpbmVOdW1iZXIgPSB0aGlzLl9pc3N1ZU1lc3Nh
Z2UuZGlzcGxheUxpbmVOdW1iZXI7CisgICAgICAgIHZhciBkaXNwbGF5Q29sdW1uTnVtYmVyID0g
dGhpcy5faXNzdWVNZXNzYWdlLmRpc3BsYXlDb2x1bW5OdW1iZXI7CisgICAgICAgIHZhciB0aXRs
ZTsKKyAgICAgICAgaWYgKGRpc3BsYXlDb2x1bW5OdW1iZXIgPiAwKQorICAgICAgICAgICAgdGl0
bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxpbmUgJWQ6JWQiKS5mb3JtYXQoZGlzcGxheUxp
bmVOdW1iZXIgKyAxLCBkaXNwbGF5Q29sdW1uTnVtYmVyICsgMSk7IC8vIFRoZSB1c2VyIHZpc2li
bGUgbGluZSBhbmQgY29sdW1uIG51bWJlcnMgYXJlIDEtYmFzZWQuCisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJMaW5lICVkIikuZm9ybWF0
KGRpc3BsYXlMaW5lTnVtYmVyICsgMSk7IC8vIFRoZSB1c2VyIHZpc2libGUgbGluZSBudW1iZXIg
aXMgMS1iYXNlZC4KKworICAgICAgICB0aGlzLm1haW5UaXRsZSA9IHRpdGxlICsgIiAiICsgdGhp
cy5faXNzdWVNZXNzYWdlLnRleHQ7CisgICAgfQorfTsKKworV2ViSW5zcGVjdG9yLklzc3VlVHJl
ZUVsZW1lbnQuU3R5bGVDbGFzc05hbWUgPSAiaXNzdWUiOworV2ViSW5zcGVjdG9yLklzc3VlVHJl
ZUVsZW1lbnQuRXJyb3JTdHlsZUNsYXNzTmFtZSA9ICJlcnJvciI7CitXZWJJbnNwZWN0b3IuSXNz
dWVUcmVlRWxlbWVudC5XYXJuaW5nU3R5bGVDbGFzc05hbWUgPSAid2FybmluZyI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250580</attachid>
            <date>2015-04-11 13:06:57 -0700</date>
            <delta_ts>2015-04-11 13:56:24 -0700</delta_ts>
            <desc>[PATCH] final.</desc>
            <filename>bug-143464-20150411130603.patch</filename>
            <type>text/plain</type>
            <size>30489</size>
            <attacher name="Jonathan Wells">jonowells</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyNjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA1
MTYxMzEzZTg2MDU0MmI2MjJlMGFkMDM4ODNiYzIwZjhlNTJmNzcwLi5hNjQzYWQzYjM4YWE2NmQ0
MjViZTg1YTJhOGVjZGFmNmQ0ZTczOTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NyBAQAorMjAxNS0wNC0xMCAgSm9ubyBXZWxscyAgPGpvbm93ZWxsc0BhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRGVidWdnZXIgc2lkZWJhciBzaG91bGQgc2hvdyBl
cnJvcnMgdW5kZXJuZWF0aCBzY3JpcHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDM0NjQKKworICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhh
dGNoZXIuCisKKyAgICAgICAgQWRkIGEgbmV3IHRyZWUgZWxlbWVudCBjYWxsZWQgSXNzdWVUcmVl
RWxlbWVudC4gVGhpcyBzaG93cyB3YXJuaW5ncyBhbmQgZXJyb3JzIGluIHRoZSBkZWJ1Z2dlciBz
aWRlYmFyLiBUaGVzZQorICAgICAgICBjYW4gYmUgY2xpY2tlZCB0byBqdW1wIHRvIHRoZSBsaW5l
IG9mIHNvdXJjZSBjb2RlIGZvciB3aGljaCB0aGUgZXJyb3Igd2FzIHRocm93bi4gQnJlYWtwb2lu
dFRyZWVFbGVtZW50IGFuZAorICAgICAgICBJc3N1ZVRyZWVFbGVtZW50IG5vdyBpbmhlcml0IGZy
b20gRGVidWdnZXJUcmVlRWxlbWVudCB0byBzdXBwb3J0IGFueSBuZWVkZWQgY29tbW9uYWxpdGll
cyBhbW9uZyB0aGUgaW50ZXJmYWNlcworICAgICAgICBvZiBlbGVtZW50cyBpbiB0aGUgZGVidWdn
ZXIgc2lkZWJhciBwYW5lbC4KKworICAgICAgICAqIExvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qczogVXBkYXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01haW4u
aHRtbDogQWRkIG5ldyBmaWxlcy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxzL0lz
c3VlTWVzc2FnZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLklzc3VlTWVzc2FnZS5wcm90b3R5cGUuZ2V0IHNvdXJjZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLnByb3RvdHlwZS5nZXQgbGluZU51bWJl
cik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLnByb3RvdHlwZS5nZXQgY29s
dW1uTnVtYmVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UucHJvdG90eXBl
LmdldCBkaXNwbGF5TGluZU51bWJlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSXNzdWVNZXNz
YWdlLnByb3RvdHlwZS5nZXQgZGlzcGxheUNvbHVtbk51bWJlcik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuSXNzdWVNZXNzYWdlLnByb3RvdHlwZS5nZXQgc291cmNlQ29kZUxvY2F0aW9uKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UucHJvdG90eXBlLnNhdmVJZGVudGl0eVRv
Q29va2llKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UucHJvdG90eXBlLl9z
b3VyY2VDb2RlTG9jYXRpb25EaXNwbGF5TG9jYXRpb25DaGFuZ2VkKToKKyAgICAgICAgQ29udmVy
dCB0byB1c2UgYSBiYWNraW5nIFNvdXJjZUNvZGVMb2NhdGlvbi4gRXhwYW5kIEFQSS4KKworICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQnJlYWtwb2ludFRyZWVFbGVtZW50LmpzOiBJbmhl
cml0cyBub3cgZnJvbSBEZWJ1Z2dlclRyZWVFbGVtZW50LgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9WaWV3cy9EZWJ1Z2dlclNpZGViYXJQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlclNpZGViYXJQYW5lbC5zaG93UmVzb3VyY2VzV2l0aEJyZWFrcG9pbnRzT25seUZp
bHRlckZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5l
bC5zaG93UmVzb3VyY2VzV2l0aElzc3Vlc09ubHlGaWx0ZXJGdW5jdGlvbik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fYWRkQnJlYWtwb2ludCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9icmVha3BvaW50
UmVtb3ZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwucHJv
dG90eXBlLl9oYW5kbGVEZWJ1Z2dlck9iamVjdERpc3BsYXlMb2NhdGlvbkRpZENoYW5nZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9yZW1v
dmVEZWJ1Z2dlclRyZWVFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNp
ZGViYXJQYW5lbC5wcm90b3R5cGUuX3RyZWVFbGVtZW50U2VsZWN0ZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fY29tcGFyZURlYnVnZ2Vy
VHJlZUVsZW1lbnRzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5l
bC5wcm90b3R5cGUuX2FkZERlYnVnZ2VyT2JqZWN0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlclNpZGViYXJQYW5lbC5wcm90b3R5cGUuX2FkZElzc3VlKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbC5wcm90b3R5cGUuX2hhbmRsZUlzc3VlQWRkZWQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsLnByb3RvdHlwZS5f
aGFuZGxlSXNzdWVzQ2xlYXJlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRl
YmFyUGFuZWwucHJvdG90eXBlLl9icmVha3BvaW50RGlzcGxheUxvY2F0aW9uRGlkQ2hhbmdlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbC5wcm90
b3R5cGUuX3JlbW92ZUJyZWFrcG9pbnRUcmVlRWxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9jb21wYXJlQnJlYWtw
b2ludFRyZWVFbGVtZW50cyk6IERlbGV0ZWQuCisgICAgICAgIEFkZCBJc3N1ZVRyZWVFbGVtZW50
cyB0byB0aGUgc2lkZWJhciB3aGVuZXZlciBhIHdhcm5pbmcgb3IgZXJyb3IgY29ycmVzcG9uZGlu
ZyB0byBhIGxpbmUgb2YgY29kZSBpcyBmb3VuZC4KKyAgICAgICAgQWRkIGEgZmlsdGVyIGZ1bmN0
aW9uIGFuZCBidXR0b24gdG8gZmlsdGVyIGRvd24gdG8ganVzdCB0aGVzZS4gRW5zdXJlIGlzc3Vl
IGFuZCBicmVha3BvaW50IGVsZW1lbnRzIGNhbiBiZQorICAgICAgICBwcm9wZXJseSBjb21wYXJl
ZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJUcmVlRWxlbWVudC5q
czogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJUcmVlRWxlbWVudCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJUcmVlRWxlbWVudC5wcm90b3R5cGUuZ2V0IGRl
YnVnZ2VyT2JqZWN0KToKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvSXNzdWVUcmVl
RWxlbWVudC5jc3M6IEFkZGVkLgorICAgICAgICAoLmlzc3VlIC5pY29uKToKKyAgICAgICAgKC5p
c3N1ZS5lcnJvciAuaWNvbik6CisgICAgICAgICgubmF2aWdhdGlvbi1zaWRlYmFyLXBhbmVsLWNv
bnRlbnQtdHJlZS1vdXRsaW5lIC5pdGVtLnNtYWxsLmlzc3VlIC5pY29uKToKKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvSXNzdWVUcmVlRWxlbWVudC5qczogQWRkZWQuCisgICAgICAg
IChXZWJJbnNwZWN0b3IuSXNzdWVUcmVlRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
SXNzdWVUcmVlRWxlbWVudC5wcm90b3R5cGUuZ2V0IGlzc3VlTWVzc2FnZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuSXNzdWVUcmVlRWxlbWVudC5wcm90b3R5cGUuX3VwZGF0ZVRpdGxlcyk6CisK
IDIwMTUtMDQtMTEgIE1hdHQgQmFrZXIgIDxtYXR0YmFrZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IGNyZWF0ZSBjb250ZW50IHZpZXcgYW5kIGRldGFpbHMgc2lkZWJhciBm
b3IgRnJhbWVzIHRpbWVsaW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9j
YWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCA3
ZGMwZTEwMGMxZmZmZjcwODI2YTFkMGYyZWQ0OTIxM2UzY2MwNjJkLi40NmYyMGMwMTlmMzgyZTVm
MTUyMDEzOTFjNzYyNWNhZmFlYjJiYTkzIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDk0
CnpjbWRtVWdaYXA5PF8mOTRPdHc2cyFJe1pXNDF9YyZzZ3ZiU0lQPTFKS3J5fF4yMW9RS0ZGKX5T
XjRiJC1EQyhwXgpOQkE5QTdfbnVzQDFPUzZ9QX1zJl8KCmRlbHRhIDM0Cm1jbVg/ZG58YVItPF8m
OTRPIWhvd0h1PipLc21aRCpNNClWKyZDO2g9RGdnalVNLW5GaAoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAppbmRleCA4YmJhZTUyZjg2NmNhODAzOWQz
MzhmNTgzMmMwMjZlYTZkMDM1NGNkLi4yMWExNGIxMTcxMTdkYjdjYTQyMWQxOWUzZWZhMWI0NDgw
MTQwMGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
YWluLmh0bWwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5o
dG1sCkBAIC04OSw2ICs4OSw3IEBACiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJW
aWV3cy9JbWFnZVJlc291cmNlQ29udGVudFZpZXcuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9IlZpZXdzL0luZGV0ZXJtaW5hdGVQcm9ncmVzc1NwaW5uZXIuY3NzIj4KICAg
ICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0luZGV4ZWREYXRhYmFzZU9iamVj
dFN0b3JlQ29udGVudFZpZXcuY3NzIj4KKyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
IlZpZXdzL0lzc3VlVHJlZUVsZW1lbnQuY3NzIj4KICAgICA8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9IlZpZXdzL0xheWVyVHJlZURldGFpbHNTaWRlYmFyUGFuZWwuY3NzIj4KICAgICA8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IlZpZXdzL0xheW91dFRpbWVsaW5lT3ZlcnZpZXdHcmFw
aC5jc3MiPgogICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iVmlld3MvTGF5b3V0VGlt
ZWxpbmVWaWV3LmNzcyI+CkBAIC0zMzMsNiArMzM0LDcgQEAKICAgICA8c2NyaXB0IHNyYz0iVmll
d3MvU3RvcmFnZVRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVmll
d3MvVGltZWxpbmVSZWNvcmRUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CiAKKyAgICA8c2NyaXB0
IHNyYz0iVmlld3MvRGVidWdnZXJUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0PgogCiAgICAgPHNj
cmlwdCBzcmM9IlZpZXdzL0RldGFpbHNTZWN0aW9uLmpzIj48L3NjcmlwdD4KQEAgLTQyMiw2ICs0
MjQsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9JbmRleGVkRGF0YWJhc2VPYmplY3RTdG9y
ZUluZGV4VHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9J
bmRleGVkRGF0YWJhc2VPYmplY3RTdG9yZVRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iVmlld3MvSW5kZXhlZERhdGFiYXNlVHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSJWaWV3cy9Jc3N1ZVRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iVmlld3MvTGF5ZXJUcmVlRGF0YUdyaWROb2RlLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iVmlld3MvTGF5ZXJUcmVlRGV0YWlsc1NpZGViYXJQYW5lbC5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0xheW91dFRpbWVsaW5lRGF0YUdy
aWQuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0lzc3VlTWVzc2FnZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9Jc3N1ZU1lc3NhZ2UuanMKaW5kZXggM2NkNDNkODM1MDk3OTg4
OWYyNmQwOTM0NjZjYmYxNzA4MmM5MjljNi4uZmY2YzRiNzVmYWYxNTdkYTFjZWM4NTVjMDY0MzFl
YzViNThmMTU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL0lzc3VlTWVzc2FnZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvSXNzdWVNZXNzYWdlLmpzCkBAIC0zMSw4ICszMSw3IEBAIFdlYklu
c3BlY3Rvci5Jc3N1ZU1lc3NhZ2UgPSBjbGFzcyBJc3N1ZU1lc3NhZ2UgZXh0ZW5kcyBXZWJJbnNw
ZWN0b3IuT2JqZWN0CiAKICAgICAgICAgdGhpcy5fbGV2ZWwgPSBsZXZlbDsKICAgICAgICAgdGhp
cy5fdGV4dCA9IHRleHQ7Ci0KLSAgICAgICAgLy8gRklYTUU6IE1vdmUgdG8gYSBTb3VyY2VDb2Rl
TG9jYXRpb24uCisgICAgICAgIHRoaXMuX3NvdXJjZSA9IHNvdXJjZTsKIAogICAgICAgICAvLyBG
SVhNRSA8aHR0cDovL3dlYmtpdC5vcmcvYi83NjQwND46IFJlbW92ZSB0aGUgc3RyaW5nIGVxdWFs
aXR5IGNoZWNrcyBmb3IgdW5kZWZpbmVkCiAgICAgICAgIC8vIG9uY2Ugd2UgZG9uJ3QgZ2V0IHRo
YXQgdmFsdWUgYW55bW9yZSBmcm9tIFdlYkNvcmUuCkBAIC00MSwxMSArNDAsOCBAQCBXZWJJbnNw
ZWN0b3IuSXNzdWVNZXNzYWdlID0gY2xhc3MgSXNzdWVNZXNzYWdlIGV4dGVuZHMgV2ViSW5zcGVj
dG9yLk9iamVjdAogICAgICAgICBpZiAodXJsICYmIHVybCAhPT0gInVuZGVmaW5lZCIpCiAgICAg
ICAgICAgICB0aGlzLl91cmwgPSB1cmw7CiAKLSAgICAgICAgaWYgKHR5cGVvZiBsaW5lTnVtYmVy
ID09PSAibnVtYmVyIiAmJiBsaW5lTnVtYmVyID49IDApCi0gICAgICAgICAgICB0aGlzLl9saW5l
TnVtYmVyID0gbGluZU51bWJlcjsKLQotICAgICAgICBpZiAodHlwZW9mIGNvbHVtbk51bWJlciA9
PT0gIm51bWJlciIgJiYgY29sdW1uTnVtYmVyID49IDApCi0gICAgICAgICAgICB0aGlzLl9jb2x1
bW5OdW1iZXIgPSBjb2x1bW5OdW1iZXI7CisgICAgICAgIGlmICh0eXBlb2YgbGluZU51bWJlciA9
PT0gIm51bWJlciIgJiYgbGluZU51bWJlciA+PSAwICYmIHRoaXMuX3VybCkKKyAgICAgICAgICAg
IHRoaXMuX3NvdXJjZUNvZGVMb2NhdGlvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU291cmNlQ29kZUxv
Y2F0aW9uKFdlYkluc3BlY3Rvci5mcmFtZVJlc291cmNlTWFuYWdlci5yZXNvdXJjZUZvclVSTCh1
cmwpLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpOwogCiAgICAgICAgIC8vIEZJWE1FOiA8aHR0
cHM6Ly93ZWJraXQub3JnL2IvMTQyNTUzPiBXZWIgSW5zcGVjdG9yOiBNZXJnZSBJc3N1ZU1lc3Nh
Z2UvQ29uc29sZU1lc3NhZ2UgLSBib3RoIGF0dGVtcHQgdG8gbW9kaWZ5IHRoZSBDb25zb2xlIE1l
c3NhZ2VzIHBhcmFtZXRlciBpbmRlcGVuZGVudGx5CiAKQEAgLTk5LDYgKzk1LDkgQEAgV2ViSW5z
cGVjdG9yLklzc3VlTWVzc2FnZSA9IGNsYXNzIElzc3VlTWVzc2FnZSBleHRlbmRzIFdlYkluc3Bl
Y3Rvci5PYmplY3QKICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIlVua25vd24gaXNzdWUgc291
cmNlOiIsIHNvdXJjZSk7CiAgICAgICAgICAgICB0aGlzLl90eXBlID0gV2ViSW5zcGVjdG9yLklz
c3VlTWVzc2FnZS5UeXBlLk90aGVySXNzdWU7CiAgICAgICAgIH0KKworICAgICAgICBpZiAodGhp
cy5fc291cmNlQ29kZUxvY2F0aW9uKQorICAgICAgICAgICAgdGhpcy5fc291cmNlQ29kZUxvY2F0
aW9uLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVMb2NhdGlvbi5FdmVu
dC5EaXNwbGF5TG9jYXRpb25DaGFuZ2VkLCB0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb25EaXNwbGF5
TG9jYXRpb25DaGFuZ2VkLCB0aGlzKTsKICAgICB9CiAKICAgICAvLyBTdGF0aWMKQEAgLTE0NSw2
ICsxNDQsMTEgQEAgV2ViSW5zcGVjdG9yLklzc3VlTWVzc2FnZSA9IGNsYXNzIElzc3VlTWVzc2Fn
ZSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKICAgICAgICAgcmV0dXJuIHRoaXMuX3RleHQ7
CiAgICAgfQogCisgICAgZ2V0IHNvdXJjZSgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5f
c291cmNlOworICAgIH0KKwogICAgIGdldCB1cmwoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRo
aXMuX3VybDsKQEAgLTE1MiwxMiArMTU2LDM4IEBAIFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2Ug
PSBjbGFzcyBJc3N1ZU1lc3NhZ2UgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuT2JqZWN0CiAKICAgICBn
ZXQgbGluZU51bWJlcigpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fbGluZU51bWJlcjsK
KyAgICAgICAgaWYgKHRoaXMuX3NvdXJjZUNvZGVMb2NhdGlvbikKKyAgICAgICAgICAgIHJldHVy
biB0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24ubGluZU51bWJlcjsKICAgICB9CiAKICAgICBnZXQg
Y29sdW1uTnVtYmVyKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9jb2x1bW5OdW1iZXI7
CisgICAgICAgIGlmICh0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24pCisgICAgICAgICAgICByZXR1
cm4gdGhpcy5fc291cmNlQ29kZUxvY2F0aW9uLmNvbHVtbk51bWJlcjsKKyAgICB9CisKKyAgICBn
ZXQgZGlzcGxheUxpbmVOdW1iZXIoKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3NvdXJjZUNv
ZGVMb2NhdGlvbikKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24u
ZGlzcGxheUxpbmVOdW1iZXI7CisgICAgfQorCisgICAgZ2V0IGRpc3BsYXlDb2x1bW5OdW1iZXIo
KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3NvdXJjZUNvZGVMb2NhdGlvbikKKyAgICAgICAg
ICAgIHJldHVybiB0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb24uZGlzcGxheUNvbHVtbk51bWJlcjsK
KyAgICB9CisKKyAgICBnZXQgc291cmNlQ29kZUxvY2F0aW9uKCkKKyAgICB7CisgICAgICAgIHJl
dHVybiB0aGlzLl9zb3VyY2VDb2RlTG9jYXRpb247CisgICAgfQorCisgICAgc2F2ZUlkZW50aXR5
VG9Db29raWUoY29va2llKQorICAgIHsKKyAgICAgICAgY29va2llW1dlYkluc3BlY3Rvci5Jc3N1
ZU1lc3NhZ2UuVVJMQ29va2llS2V5XSA9IHRoaXMudXJsOworICAgICAgICBjb29raWVbV2ViSW5z
cGVjdG9yLklzc3VlTWVzc2FnZS5MaW5lTnVtYmVyQ29va2llS2V5XSA9IHRoaXMuc291cmNlQ29k
ZUxvY2F0aW9uLmxpbmVOdW1iZXI7CisgICAgICAgIGNvb2tpZVtXZWJJbnNwZWN0b3IuSXNzdWVN
ZXNzYWdlLkNvbHVtbk51bWJlckNvb2tpZUtleV0gPSB0aGlzLnNvdXJjZUNvZGVMb2NhdGlvbi5j
b2x1bW5OdW1iZXI7CiAgICAgfQogCiAgICAgLy8gUHJpdmF0ZQpAQCAtMTk2LDYgKzIyNiwxMSBA
QCBXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlID0gY2xhc3MgSXNzdWVNZXNzYWdlIGV4dGVuZHMg
V2ViSW5zcGVjdG9yLk9iamVjdAogCiAgICAgICAgIHRoaXMuX3RleHQgPSByZXN1bHRUZXh0Owog
ICAgIH0KKworICAgIF9zb3VyY2VDb2RlTG9jYXRpb25EaXNwbGF5TG9jYXRpb25DaGFuZ2VkKGV2
ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLklzc3VlTWVzc2FnZS5FdmVudC5EaXNwbGF5TG9jYXRpb25EaWRDaGFuZ2UsIGV2ZW50
LmRhdGEpOworICAgIH0KIH07CiAKIFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UuTGV2ZWwgPSB7
CkBAIC0yMTQsNiArMjQ5LDE2IEBAIFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UuVHlwZSA9IHsK
ICAgICBPdGhlcklzc3VlOiAiaXNzdWUtbWVzc2FnZS10eXBlLW90aGVyLWlzc3VlIgogfTsKIAor
V2ViSW5zcGVjdG9yLklzc3VlTWVzc2FnZS5UeXBlSWRlbnRpZmllciA9ICJpc3N1ZS1tZXNzYWdl
IjsKK1dlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UuVVJMQ29va2llS2V5ID0gImlzc3VlLW1lc3Nh
Z2UtdXJsIjsKK1dlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UuTGluZU51bWJlckNvb2tpZUtleSA9
ICJpc3N1ZS1tZXNzYWdlLWxpbmUtbnVtYmVyIjsKK1dlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2Uu
Q29sdW1uTnVtYmVyQ29va2llS2V5ID0gImlzc3VlLW1lc3NhZ2UtY29sdW1uLW51bWJlciI7CisK
K1dlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UuRXZlbnQgPSB7CisgICAgTG9jYXRpb25EaWRDaGFu
Z2U6ICJpc3N1ZS1tZXNzYWdlLWxvY2F0aW9uLWRpZC1jaGFuZ2UiLAorICAgIERpc3BsYXlMb2Nh
dGlvbkRpZENoYW5nZTogImlzc3VlLW1lc3NhZ2UtZGlzcGxheS1sb2NhdGlvbi1kaWQtY2hhbmdl
IgorfTsKKwogV2ViSW5zcGVjdG9yLklzc3VlTWVzc2FnZS5UeXBlLl9wcmVmaXhUeXBlTWFwID0g
ewogICAgICJTeW50YXhFcnJvciI6IFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UuVHlwZS5TZW1h
bnRpY0lzc3VlLAogICAgICJVUklFcnJvciI6IFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UuVHlw
ZS5TZW1hbnRpY0lzc3VlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQnJlYWtwb2ludFRyZWVFbGVtZW50LmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQnJlYWtwb2ludFRyZWVFbGVtZW50LmpzCmluZGV4
IDA4NjZlM2YyNWMyYTIyN2FmNTYxNDUxYTE1NmU2MGYzNzE3ODQzNzcuLjc5ZTg2ZmI0YTgyMTIw
NmY0MmQ1OTRlYjI3MTA5ZDA5MjA1MjRiYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0JyZWFrcG9pbnRUcmVlRWxlbWVudC5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9CcmVha3BvaW50VHJlZUVs
ZW1lbnQuanMKQEAgLTIzLDcgKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLwogCi1XZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50ID0gY2xhc3Mg
QnJlYWtwb2ludFRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLkdlbmVyYWxUcmVlRWxl
bWVudAorV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudCA9IGNsYXNzIEJyZWFrcG9p
bnRUcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclRyZWVFbGVtZW50CiB7
CiAgICAgY29uc3RydWN0b3IoYnJlYWtwb2ludCwgY2xhc3NOYW1lLCB0aXRsZSkKICAgICB7CkBA
IC0yMzcsNyArMjM3LDYgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudCA9IGNs
YXNzIEJyZWFrcG9pbnRUcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3AKICAgICAgICAgfS5iaW5k
KHRoaXMpLCBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50LlByb2JlRGF0YVVwZGF0
ZWRBbmltYXRpb25EdXJhdGlvbik7CiAgICAgfQogCi0KICAgICBfYnJlYWtwb2ludExvY2F0aW9u
RGlkQ2hhbmdlKGV2ZW50KQogICAgIHsKICAgICAgICAgY29uc29sZS5hc3NlcnQoZXZlbnQudGFy
Z2V0ID09PSB0aGlzLl9icmVha3BvaW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJTaWRlYmFyUGFuZWwu
anMKaW5kZXggOWY1MTk1OWRkNmY0NzFlOWYxMjdhZjE4NDI5YTQ4ZWI5MTI0OWE2YS4uMmU1OTAx
MDY4YjdlM2MwOWJjZDJkMjZlMWZhYWUxOTQwYjc1MDI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJTaWRlYmFyUGFuZWwuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJT
aWRlYmFyUGFuZWwuanMKQEAgLTEwNSw4ICsxMDUsOCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJT
aWRlYmFyUGFuZWwgPSBjbGFzcyBEZWJ1Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3Bl
YwogICAgICAgICB0aGlzLmZpbHRlckJhci5wbGFjZWhvbGRlciA9IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiRmlsdGVyIEJyZWFrcG9pbnQgTGlzdCIpOwogICAgICAgICB2YXIgc2hvd1Jlc291cmNl
c1dpdGhCcmVha3BvaW50c09ubHlGaWx0ZXJGdW5jdGlvbiA9IGZ1bmN0aW9uKHRyZWVFbGVtZW50
KQogICAgICAgICB7Ci0gICAgICAgICAgICAvLyBLZWVwIGJyZWFrcG9pbnRzIGFuZCBvdGhlciBl
bGVtZW50cyB0aGF0IGFyZW4ndCByZXNvdXJjZXMuCi0gICAgICAgICAgICBpZiAoIXRyZWVFbGVt
ZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQgfHwgdHJlZUVs
ZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludFRyZWVFbGVtZW50KQorICAg
ICAgICAgICAgLy8gS2VlcCBicmVha3BvaW50cy4KKyAgICAgICAgICAgIGlmICh0cmVlRWxlbWVu
dCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAgICAgICAgIC8vIEtlZXAgcmVzb3VyY2VzIHdp
dGggYnJlYWtwb2ludHMuCkBAIC0xMTksNyArMTE5LDI0IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clNpZGViYXJQYW5lbCA9IGNsYXNzIERlYnVnZ2VyU2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5z
cGVjCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH07CiAKLSAgICAgICAgdGhp
cy5maWx0ZXJCYXIuYWRkRmlsdGVyQmFyQnV0dG9uKCJkZWJ1Z2dlci1zaG93LXJlc291cmNlcy13
aXRoLWNoaWxkcmVuLW9ubHkiLCBzaG93UmVzb3VyY2VzV2l0aEJyZWFrcG9pbnRzT25seUZpbHRl
ckZ1bmN0aW9uLCB0cnVlLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3cgb25seSByZXNvdXJj
ZXMgd2l0aCBicmVha3BvaW50cy4iKSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93IHJlc291
cmNlcyB3aXRoIGFuZCB3aXRob3V0IGJyZWFrcG9pbnRzLiIpLCBwbGF0Zm9ybUltYWdlUGF0aCgi
QnJlYWtwb2ludHMuc3ZnIiksIDE1LCAxNSk7CisgICAgICAgIHZhciBzaG93UmVzb3VyY2VzV2l0
aElzc3Vlc09ubHlGaWx0ZXJGdW5jdGlvbiA9IGZ1bmN0aW9uKHRyZWVFbGVtZW50KQorICAgICAg
ICB7CisgICAgICAgICAgICAvLyBLZWVwIGlzc3Vlcy4KKyAgICAgICAgICAgIGlmICh0cmVlRWxl
bWVudCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Jc3N1ZVRyZWVFbGVtZW50KQorICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgICAgICAvLyBLZWVwIHJlc291cmNlcyB3aXRo
IGlzc3Vlcy4KKyAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudC5oYXNDaGlsZHJlbikgeworICAg
ICAgICAgICAgICAgIGZvciAodmFyIGNoaWxkIG9mIHRyZWVFbGVtZW50LmNoaWxkcmVuKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Jc3N1
ZVRyZWVFbGVtZW50KQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICB9OworCisgICAgICAgIHRoaXMuZmlsdGVyQmFyLmFkZEZpbHRlckJhckJ1dHRvbigi
ZGVidWdnZXItc2hvdy1yZXNvdXJjZXMtd2l0aC1icmVha3BvaW50cy1vbmx5Iiwgc2hvd1Jlc291
cmNlc1dpdGhCcmVha3BvaW50c09ubHlGaWx0ZXJGdW5jdGlvbiwgdHJ1ZSwgV2ViSW5zcGVjdG9y
LlVJU3RyaW5nKCJTaG93IG9ubHkgcmVzb3VyY2VzIHdpdGggYnJlYWtwb2ludHMuIiksIFdlYklu
c3BlY3Rvci5VSVN0cmluZygiU2hvdyByZXNvdXJjZXMgd2l0aCBhbmQgd2l0aG91dCBicmVha3Bv
aW50cy4iKSwgcGxhdGZvcm1JbWFnZVBhdGgoIkJyZWFrcG9pbnRzLnN2ZyIpLCAxNSwgMTUpOwor
ICAgICAgICB0aGlzLmZpbHRlckJhci5hZGRGaWx0ZXJCYXJCdXR0b24oImRlYnVnZ2VyLXNob3ct
cmVzb3VyY2VzLXdpdGgtaXNzdWVzLW9ubHkiLCBzaG93UmVzb3VyY2VzV2l0aElzc3Vlc09ubHlG
aWx0ZXJGdW5jdGlvbiwgdHJ1ZSwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93IG9ubHkgcmVz
b3VyY2VzIHdpdGggaXNzdWVzLiIpLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3cgcmVzb3Vy
Y2VzIHdpdGggYW5kIHdpdGhvdXQgaXNzdWVzLiIpLCBwbGF0Zm9ybUltYWdlUGF0aCgiRXJyb3Jz
LnN2ZyIpLCAxNSwgMTUpOwogCiAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRzQ29udGVudFRyZWVP
dXRsaW5lID0gdGhpcy5jb250ZW50VHJlZU91dGxpbmU7CiAgICAgICAgIHRoaXMuX2JyZWFrcG9p
bnRzQ29udGVudFRyZWVPdXRsaW5lLm9uc2VsZWN0ID0gdGhpcy5fdHJlZUVsZW1lbnRTZWxlY3Rl
ZC5iaW5kKHRoaXMpOwpAQCAtMTU1LDcgKzE3MiwxMCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJT
aWRlYmFyUGFuZWwgPSBjbGFzcyBEZWJ1Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3Bl
YwogICAgICAgICB0aGlzLl9wYXVzZVJlYXNvblNlY3Rpb24gPSBuZXcgV2ViSW5zcGVjdG9yLkRl
dGFpbHNTZWN0aW9uKCJwYXVzZWQtcmVhc29uIiwgbnVsbCwgW3RoaXMuX3BhdXNlUmVhc29uR3Jv
dXBdLCB0aGlzLl9wYXVzZVJlYXNvbkxpbmtDb250YWluZXJFbGVtZW50KTsKICAgICAgICAgdGhp
cy5fcGF1c2VSZWFzb25TZWN0aW9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJQYXVz
ZSBSZWFzb24iKTsKIAotICAgICAgICBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkV2ZW50LkRpc3BsYXlMb2NhdGlvbkRpZENo
YW5nZSwgdGhpcy5fYnJlYWtwb2ludERpc3BsYXlMb2NhdGlvbkRpZENoYW5nZSwgdGhpcyk7Cisg
ICAgICAgIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkJyZWFrcG9pbnQuRXZlbnQuRGlzcGxheUxvY2F0aW9uRGlkQ2hhbmdlLCB0aGlzLl9oYW5k
bGVEZWJ1Z2dlck9iamVjdERpc3BsYXlMb2NhdGlvbkRpZENoYW5nZSwgdGhpcyk7CisgICAgICAg
IFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
SXNzdWVNZXNzYWdlLkV2ZW50LkRpc3BsYXlMb2NhdGlvbkRpZENoYW5nZSwgdGhpcy5faGFuZGxl
RGVidWdnZXJPYmplY3REaXNwbGF5TG9jYXRpb25EaWRDaGFuZ2UsIHRoaXMpOworICAgICAgICBX
ZWJJbnNwZWN0b3IuaXNzdWVNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLklz
c3VlTWFuYWdlci5FdmVudC5Jc3N1ZVdhc0FkZGVkLCB0aGlzLl9oYW5kbGVJc3N1ZUFkZGVkLCB0
aGlzKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmlzc3VlTWFuYWdlci5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5Jc3N1ZU1hbmFnZXIuRXZlbnQuQ2xlYXJlZCwgdGhpcy5faGFuZGxlSXNz
dWVzQ2xlYXJlZCwgdGhpcyk7CiAgICAgfQogCiAgICAgLy8gUHVibGljCkBAIC0yOTYsNyArMzE2
LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsID0gY2xhc3MgRGVidWdnZXJT
aWRlYmFyUGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgICAgIGJyZWFrcG9pbnQucmVz
b2x2ZWQgPSB0cnVlOwogCiAgICAgICAgIHZhciBicmVha3BvaW50VHJlZUVsZW1lbnQgPSBuZXcg
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRUcmVlRWxlbWVudChicmVha3BvaW50KTsKLSAgICAgICAg
cGFyZW50VHJlZUVsZW1lbnQuaW5zZXJ0Q2hpbGQoYnJlYWtwb2ludFRyZWVFbGVtZW50LCBpbnNl
cnRpb25JbmRleEZvck9iamVjdEluTGlzdFNvcnRlZEJ5RnVuY3Rpb24oYnJlYWtwb2ludFRyZWVF
bGVtZW50LCBwYXJlbnRUcmVlRWxlbWVudC5jaGlsZHJlbiwgdGhpcy5fY29tcGFyZUJyZWFrcG9p
bnRUcmVlRWxlbWVudHMpKTsKKyAgICAgICAgcGFyZW50VHJlZUVsZW1lbnQuaW5zZXJ0Q2hpbGQo
YnJlYWtwb2ludFRyZWVFbGVtZW50LCBpbnNlcnRpb25JbmRleEZvck9iamVjdEluTGlzdFNvcnRl
ZEJ5RnVuY3Rpb24oYnJlYWtwb2ludFRyZWVFbGVtZW50LCBwYXJlbnRUcmVlRWxlbWVudC5jaGls
ZHJlbiwgdGhpcy5fY29tcGFyZURlYnVnZ2VyVHJlZUVsZW1lbnRzKSk7CiAgICAgICAgIGlmIChw
YXJlbnRUcmVlRWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPT09IDEpCiAgICAgICAgICAgICBwYXJl
bnRUcmVlRWxlbWVudC5leHBhbmQoKTsKICAgICAgICAgcmV0dXJuIGJyZWFrcG9pbnRUcmVlRWxl
bWVudDsKQEAgLTQwMywzNSArNDIzLDM2IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQ
YW5lbCA9IGNsYXNzIERlYnVnZ2VyU2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAg
ICAgIGlmICghYnJlYWtwb2ludFRyZWVFbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwogCi0g
ICAgICAgIHRoaXMuX3JlbW92ZUJyZWFrcG9pbnRUcmVlRWxlbWVudChicmVha3BvaW50VHJlZUVs
ZW1lbnQpOworICAgICAgICB0aGlzLl9yZW1vdmVEZWJ1Z2dlclRyZWVFbGVtZW50KGJyZWFrcG9p
bnRUcmVlRWxlbWVudCk7CiAgICAgfQogCi0gICAgX2JyZWFrcG9pbnREaXNwbGF5TG9jYXRpb25E
aWRDaGFuZ2UoZXZlbnQpCisgICAgX2hhbmRsZURlYnVnZ2VyT2JqZWN0RGlzcGxheUxvY2F0aW9u
RGlkQ2hhbmdlKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBldmVudC50
YXJnZXQ7Ci0gICAgICAgIGlmIChldmVudC5kYXRhLm9sZERpc3BsYXlTb3VyY2VDb2RlID09PSBi
cmVha3BvaW50LmRpc3BsYXlTb3VyY2VDb2RlKQorICAgICAgICB2YXIgZGVidWdnZXJPYmplY3Qg
PSBldmVudC50YXJnZXQ7CisKKyAgICAgICAgaWYgKGV2ZW50LmRhdGEub2xkRGlzcGxheVNvdXJj
ZUNvZGUgPT09IGRlYnVnZ2VyT2JqZWN0LnNvdXJjZUNvZGVMb2NhdGlvbi5kaXNwbGF5U291cmNl
Q29kZSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICB2YXIgYnJlYWtwb2ludFRyZWVF
bGVtZW50ID0gdGhpcy5fYnJlYWtwb2ludHNDb250ZW50VHJlZU91dGxpbmUuZ2V0Q2FjaGVkVHJl
ZUVsZW1lbnQoYnJlYWtwb2ludCk7Ci0gICAgICAgIGlmICghYnJlYWtwb2ludFRyZWVFbGVtZW50
KQorICAgICAgICB2YXIgZGVidWdnZXJUcmVlRWxlbWVudCA9IHRoaXMuX2JyZWFrcG9pbnRzQ29u
dGVudFRyZWVPdXRsaW5lLmdldENhY2hlZFRyZWVFbGVtZW50KGRlYnVnZ2VyT2JqZWN0KTsKKyAg
ICAgICAgaWYgKCFkZWJ1Z2dlclRyZWVFbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwogCi0g
ICAgICAgIC8vIEEga25vd24gYnJlYWtwb2ludCBtb3ZlZCBiZXR3ZWVuIHJlc291cmNlcywgcmVt
b3ZlIHRoZSBvbGQgdHJlZSBlbGVtZW50CisgICAgICAgIC8vIEEga25vd24gZGVidWdnZXIgb2Jq
ZWN0IChicmVha3BvaW50LCBpc3N1ZU1lc3NhZ2UsIGV0Yy4pIG1vdmVkIGJldHdlZW4gcmVzb3Vy
Y2VzLCByZW1vdmUgdGhlIG9sZCB0cmVlIGVsZW1lbnQKICAgICAgICAgLy8gYW5kIGNyZWF0ZSBh
IG5ldyB0cmVlIGVsZW1lbnQgd2l0aCB0aGUgdXBkYXRlZCBmaWxlLgogCi0gICAgICAgIHZhciB3
YXNTZWxlY3RlZCA9IGJyZWFrcG9pbnRUcmVlRWxlbWVudC5zZWxlY3RlZDsKKyAgICAgICAgdmFy
IHdhc1NlbGVjdGVkID0gZGVidWdnZXJUcmVlRWxlbWVudC5zZWxlY3RlZDsKIAotICAgICAgICB0
aGlzLl9yZW1vdmVCcmVha3BvaW50VHJlZUVsZW1lbnQoYnJlYWtwb2ludFRyZWVFbGVtZW50KTsK
LSAgICAgICAgdmFyIG5ld0JyZWFrcG9pbnRUcmVlRWxlbWVudCA9IHRoaXMuX2FkZEJyZWFrcG9p
bnQoYnJlYWtwb2ludCk7CisgICAgICAgIHRoaXMuX3JlbW92ZURlYnVnZ2VyVHJlZUVsZW1lbnQo
ZGVidWdnZXJUcmVlRWxlbWVudCk7CisgICAgICAgIHZhciBuZXdEZWJ1Z2dlclRyZWVFbGVtZW50
ID0gdGhpcy5fYWRkRGVidWdnZXJPYmplY3QoZGVidWdnZXJPYmplY3QpOwogCi0gICAgICAgIGlm
IChuZXdCcmVha3BvaW50VHJlZUVsZW1lbnQgJiYgd2FzU2VsZWN0ZWQpCi0gICAgICAgICAgICBu
ZXdCcmVha3BvaW50VHJlZUVsZW1lbnQucmV2ZWFsQW5kU2VsZWN0KHRydWUsIGZhbHNlLCB0cnVl
LCB0cnVlKTsKKyAgICAgICAgaWYgKG5ld0RlYnVnZ2VyVHJlZUVsZW1lbnQgJiYgd2FzU2VsZWN0
ZWQpCisgICAgICAgICAgICBuZXdEZWJ1Z2dlclRyZWVFbGVtZW50LnJldmVhbEFuZFNlbGVjdCh0
cnVlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSk7CiAgICAgfQogCi0gICAgX3JlbW92ZUJyZWFrcG9pbnRU
cmVlRWxlbWVudChicmVha3BvaW50VHJlZUVsZW1lbnQpCisgICAgX3JlbW92ZURlYnVnZ2VyVHJl
ZUVsZW1lbnQoZGVidWdnZXJUcmVlRWxlbWVudCkKICAgICB7Ci0gICAgICAgIHZhciBwYXJlbnRU
cmVlRWxlbWVudCA9IGJyZWFrcG9pbnRUcmVlRWxlbWVudC5wYXJlbnQ7Ci0gICAgICAgIHBhcmVu
dFRyZWVFbGVtZW50LnJlbW92ZUNoaWxkKGJyZWFrcG9pbnRUcmVlRWxlbWVudCk7CisgICAgICAg
IHZhciBwYXJlbnRUcmVlRWxlbWVudCA9IGRlYnVnZ2VyVHJlZUVsZW1lbnQucGFyZW50OworICAg
ICAgICBwYXJlbnRUcmVlRWxlbWVudC5yZW1vdmVDaGlsZChkZWJ1Z2dlclRyZWVFbGVtZW50KTsK
IAogICAgICAgICBjb25zb2xlLmFzc2VydChwYXJlbnRUcmVlRWxlbWVudC5wYXJlbnQgPT09IHRo
aXMuX2JyZWFrcG9pbnRzQ29udGVudFRyZWVPdXRsaW5lKTsKICAgICB9CkBAIC02MDcsNiArNjI4
LDEzIEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbCA9IGNsYXNzIERlYnVnZ2Vy
U2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIAorICAgICAgICBpZiAodHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3Iu
SXNzdWVUcmVlRWxlbWVudCkgeworICAgICAgICAgICAgZGVzZWxlY3RDYWxsU3RhY2tDb250ZW50
VHJlZUVsZW1lbnRzLmNhbGwodGhpcyk7CisgICAgICAgICAgICBkZXNlbGVjdFBhdXNlUmVhc29u
Q29udGVudFRyZWVFbGVtZW50cy5jYWxsKHRoaXMpOworICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LnJlc291cmNlU2lkZWJhclBhbmVsLnNob3dTb3VyY2VDb2RlTG9jYXRpb24odHJlZUVsZW1lbnQu
aXNzdWVNZXNzYWdlLnNvdXJjZUNvZGVMb2NhdGlvbik7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKwogICAgICAgICBpZiAoISh0cmVlRWxlbWVudCBpbnN0YW5jZW9mIFdlYkluc3Bl
Y3Rvci5CcmVha3BvaW50VHJlZUVsZW1lbnQpIHx8IHRyZWVFbGVtZW50LnBhcmVudC5jb25zdHJ1
Y3RvciA9PT0gV2ViSW5zcGVjdG9yLkZvbGRlclRyZWVFbGVtZW50KQogICAgICAgICAgICAgcmV0
dXJuOwogCkBAIC02NDQsMTAgKzY3MiwxMyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRlYmFy
UGFuZWwgPSBjbGFzcyBEZWJ1Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlYwogICAg
ICAgICByZXR1cm4gYS5tYWluVGl0bGUubG9jYWxlQ29tcGFyZShiLm1haW5UaXRsZSk7CiAgICAg
fQogCi0gICAgX2NvbXBhcmVCcmVha3BvaW50VHJlZUVsZW1lbnRzKGEsIGIpCisgICAgX2NvbXBh
cmVEZWJ1Z2dlclRyZWVFbGVtZW50cyhhLCBiKQogICAgIHsKLSAgICAgICAgdmFyIGFMb2NhdGlv
biA9IGEuYnJlYWtwb2ludC5zb3VyY2VDb2RlTG9jYXRpb247Ci0gICAgICAgIHZhciBiTG9jYXRp
b24gPSBiLmJyZWFrcG9pbnQuc291cmNlQ29kZUxvY2F0aW9uOworICAgICAgICBpZiAoIWEuZGVi
dWdnZXJPYmplY3QgfHwgIWIuZGVidWdnZXJPYmplY3QpCisgICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgCisgICAgICAgIHZhciBhTG9jYXRpb24gPSBhLmRlYnVnZ2VyT2JqZWN0LnNvdXJj
ZUNvZGVMb2NhdGlvbjsKKyAgICAgICAgdmFyIGJMb2NhdGlvbiA9IGIuZGVidWdnZXJPYmplY3Qu
c291cmNlQ29kZUxvY2F0aW9uOwogCiAgICAgICAgIHZhciBjb21wYXJpc29uUmVzdWx0ID0gYUxv
Y2F0aW9uLmRpc3BsYXlMaW5lTnVtYmVyIC0gYkxvY2F0aW9uLmRpc3BsYXlMaW5lTnVtYmVyOwog
ICAgICAgICBpZiAoY29tcGFyaXNvblJlc3VsdCAhPT0gMCkKQEAgLTc1Miw2ICs3ODMsNTUgQEAg
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyU2lkZWJhclBhbmVsID0gY2xhc3MgRGVidWdnZXJTaWRlYmFy
UGFuZWwgZXh0ZW5kcyBXZWJJbnNwZWMKICAgICAgICAgdmFyIGxpbmtFbGVtZW50ID0gV2ViSW5z
cGVjdG9yLmNyZWF0ZVNvdXJjZUNvZGVMb2NhdGlvbkxpbmsoc291cmNlQ29kZUxvY2F0aW9uLCBm
YWxzZSwgdHJ1ZSk7CiAgICAgICAgIHRoaXMuX3BhdXNlUmVhc29uTGlua0NvbnRhaW5lckVsZW1l
bnQuYXBwZW5kQ2hpbGQobGlua0VsZW1lbnQpOwogICAgIH0KKworICAgIF9hZGREZWJ1Z2dlck9i
amVjdChkZWJ1Z2dlck9iamVjdCkKKyAgICB7CisgICAgICAgIGlmIChkZWJ1Z2dlck9iamVjdCBp
bnN0YW5jZW9mIFdlYkluc3BlY3Rvci5CcmVha3BvaW50KQorICAgICAgICAgICAgcmV0dXJuIHRo
aXMuX2FkZEJyZWFrcG9pbnQoZGVidWdnZXJPYmplY3QpOworCisgICAgICAgIGlmIChkZWJ1Z2dl
ck9iamVjdCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Jc3N1ZU1lc3NhZ2UpCisgICAgICAgICAg
ICByZXR1cm4gdGhpcy5fYWRkSXNzdWUoZGVidWdnZXJPYmplY3QpOworICAgIH0KKworICAgIF9h
ZGRJc3N1ZShpc3N1ZU1lc3NhZ2UpCisgICAgeworICAgICAgICB2YXIgcGFyZW50VHJlZUVsZW1l
bnQgPSB0aGlzLl9hZGRUcmVlRWxlbWVudEZvclNvdXJjZUNvZGVUb0NvbnRlbnRUcmVlT3V0bGlu
ZShpc3N1ZU1lc3NhZ2Uuc291cmNlQ29kZUxvY2F0aW9uLnNvdXJjZUNvZGUpOworICAgICAgICB2
YXIgaXNzdWVUcmVlRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuSXNzdWVUcmVlRWxlbWVudChp
c3N1ZU1lc3NhZ2UpOworCisgICAgICAgIHBhcmVudFRyZWVFbGVtZW50Lmluc2VydENoaWxkKGlz
c3VlVHJlZUVsZW1lbnQsIGluc2VydGlvbkluZGV4Rm9yT2JqZWN0SW5MaXN0U29ydGVkQnlGdW5j
dGlvbihpc3N1ZVRyZWVFbGVtZW50LCBwYXJlbnRUcmVlRWxlbWVudC5jaGlsZHJlbiwgdGhpcy5f
Y29tcGFyZURlYnVnZ2VyVHJlZUVsZW1lbnRzKSk7CisgICAgICAgIGlmIChwYXJlbnRUcmVlRWxl
bWVudC5jaGlsZHJlbi5sZW5ndGggPT09IDEpCisgICAgICAgICAgICBwYXJlbnRUcmVlRWxlbWVu
dC5leHBhbmQoKTsKKworICAgICAgICByZXR1cm4gaXNzdWVUcmVlRWxlbWVudDsKKyAgICB9CisK
KyAgICBfaGFuZGxlSXNzdWVBZGRlZChldmVudCkKKyAgICB7CisgICAgICAgIHZhciBpc3N1ZSA9
IGV2ZW50LmRhdGEuaXNzdWU7CisKKyAgICAgICAgLy8gV2Ugb25seSB3YW50IHRvIHNob3cgaXNz
dWVzIG9yaWdpbmF0aW5nIGZyb20gSmF2YVNjcmlwdCBzb3VyY2UgY29kZS4KKyAgICAgICAgaWYg
KCFpc3N1ZS5saW5lTnVtYmVyIHx8IChpc3N1ZS5zb3VyY2UgIT09ICJqYXZhc2NyaXB0IiAmJiBp
c3N1ZS5zb3VyY2UgIT09ICJjb25zb2xlLWFwaSIpKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIHRoaXMuX2FkZElzc3VlKGlzc3VlKTsKKyAgICB9CisKKyAgICBfaGFuZGxlSXNzdWVz
Q2xlYXJlZChldmVudCkKKyAgICB7CisgICAgICAgIHZhciBjdXJyZW50VHJlZUVsZW1lbnQgPSB0
aGlzLl9jb250ZW50VHJlZU91dGxpbmUuY2hpbGRyZW5bMF07CisgICAgICAgIHZhciBpc3N1ZVRy
ZWVFbGVtZW50cyA9IFtdOworCisgICAgICAgIHdoaWxlIChjdXJyZW50VHJlZUVsZW1lbnQgJiYg
IWN1cnJlbnRUcmVlRWxlbWVudC5yb290KSB7CisgICAgICAgICAgICBpZiAoY3VycmVudFRyZWVF
bGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLklzc3VlVHJlZUVsZW1lbnQpIHsKKyAgICAg
ICAgICAgICAgICBpc3N1ZVRyZWVFbGVtZW50cy5wdXNoKGN1cnJlbnRUcmVlRWxlbWVudCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBjdXJyZW50VHJlZUVsZW1lbnQgPSBjdXJyZW50VHJl
ZUVsZW1lbnQudHJhdmVyc2VOZXh0VHJlZUVsZW1lbnQoZmFsc2UsIG51bGwsIHRydWUpOworICAg
ICAgICB9CisKKyAgICAgICAgZm9yICh2YXIgaXNzdWVUcmVlRWxlbWVudCBvZiBpc3N1ZVRyZWVF
bGVtZW50cykgeworICAgICAgICAgICAgaXNzdWVUcmVlRWxlbWVudC5wYXJlbnQucmVtb3ZlQ2hp
bGQoaXNzdWVUcmVlRWxlbWVudCk7CisgICAgICAgIH0KKyAgICB9CiB9OwogCiBXZWJJbnNwZWN0
b3IuRGVidWdnZXJTaWRlYmFyUGFuZWwuT2Zmc2V0U2VjdGlvbnNTdHlsZUNsYXNzTmFtZSA9ICJv
ZmZzZXQtc2VjdGlvbnMiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvRGVidWdnZXJUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyVHJlZUVsZW1lbnQuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjE3YmUzZTU1YTMyNGNjNjNmMmNhOGZkZTc4NzcwMDEwNmEzNWJjOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2Vy
VHJlZUVsZW1lbnQuanMKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1dlYkluc3BlY3Rv
ci5EZWJ1Z2dlclRyZWVFbGVtZW50ID0gY2xhc3MgRGVidWdnZXJUcmVlRWxlbWVudCBleHRlbmRz
IFdlYkluc3BlY3Rvci5HZW5lcmFsVHJlZUVsZW1lbnQKK3sKKyAgICBjb25zdHJ1Y3RvcihjbGFz
c05hbWVzLCB0aXRsZSwgc3VidGl0bGUsIHJlcHJlc2VudGVkT2JqZWN0LCBoYXNDaGlsZHJlbikK
KyAgICB7CisgICAgICAgIHN1cGVyKGNsYXNzTmFtZXMsIHRpdGxlLCBzdWJ0aXRsZSwgcmVwcmVz
ZW50ZWRPYmplY3QsIGhhc0NoaWxkcmVuKTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAg
IGdldCBkZWJ1Z2dlck9iamVjdCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5yZXByZXNl
bnRlZE9iamVjdDsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvSXNzdWVUcmVlRWxlbWVudC5jc3MgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Jc3N1ZVRyZWVFbGVtZW50LmNzcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iZDdkMTEzNjM1ZDlkZDUwZjVmM2QwODIwOGUyZmFjOTU2NjczZDNkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSXNzdWVU
cmVlRWxlbWVudC5jc3MKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy5pc3N1ZSAuaWNv
biB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uL0ltYWdlcy9XYXJuaW5nLnN2Zyk7Cisg
ICAgY29udGVudDogJyc7Cit9CisKKy5pc3N1ZS5lcnJvciAuaWNvbiB7CisgICAgYmFja2dyb3Vu
ZC1pbWFnZTogdXJsKC4uL0ltYWdlcy9FcnJvci5zdmcpOworfQorCisubmF2aWdhdGlvbi1zaWRl
YmFyLXBhbmVsLWNvbnRlbnQtdHJlZS1vdXRsaW5lLnNtYWxsIC5pdGVtLmlzc3VlIC5pY29uLAor
Lm5hdmlnYXRpb24tc2lkZWJhci1wYW5lbC1jb250ZW50LXRyZWUtb3V0bGluZSAuY2hpbGRyZW4u
c21hbGwgLml0ZW0uaXNzdWUgLmljb24sCisubmF2aWdhdGlvbi1zaWRlYmFyLXBhbmVsLWNvbnRl
bnQtdHJlZS1vdXRsaW5lIC5pdGVtLnNtYWxsLmlzc3VlIC5pY29uIHsKKyAgICBiYWNrZ3JvdW5k
LXBvc2l0aW9uOiBjZW50ZXI7CisgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKKyAg
ICBiYWNrZ3JvdW5kLXNpemU6IDE0cHg7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9Jc3N1ZVRyZWVFbGVtZW50LmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSXNzdWVUcmVlRWxlbWVudC5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jYzgyOTFhOTJjMmFlZGI1YzcwODdkZTA3MGRjODNlMWVjZjg3Nzk5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSXNz
dWVUcmVlRWxlbWVudC5qcwpAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV2ViSW5zcGVj
dG9yLklzc3VlVHJlZUVsZW1lbnQgPSBjbGFzcyBJc3N1ZVRyZWVFbGVtZW50IGV4dGVuZHMgV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyVHJlZUVsZW1lbnQKK3sKKyAgICBjb25zdHJ1Y3Rvcihpc3N1ZU1l
c3NhZ2UpCisgICAgeworICAgICAgICB2YXIgbGV2ZWxTdHlsZUNsYXNzTmFtZTsKKyAgICAgICAg
c3dpdGNoIChpc3N1ZU1lc3NhZ2UubGV2ZWwpIHsKKyAgICAgICAgY2FzZSAiZXJyb3IiOgorICAg
ICAgICAgICAgbGV2ZWxTdHlsZUNsYXNzTmFtZSA9IFdlYkluc3BlY3Rvci5Jc3N1ZVRyZWVFbGVt
ZW50LkVycm9yU3R5bGVDbGFzc05hbWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAid2FybmluZyI6CisgICAgICAgICAgICBsZXZlbFN0eWxlQ2xhc3NOYW1lID0gV2ViSW5zcGVj
dG9yLklzc3VlVHJlZUVsZW1lbnQuV2FybmluZ1N0eWxlQ2xhc3NOYW1lOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBzdXBlcihbV2ViSW5zcGVjdG9yLklzc3VlVHJl
ZUVsZW1lbnQuU3R5bGVDbGFzc05hbWUsIGxldmVsU3R5bGVDbGFzc05hbWVdLCBudWxsLCBudWxs
LCBpc3N1ZU1lc3NhZ2UsIGZhbHNlKTsKKworICAgICAgICB0aGlzLnNtYWxsID0gdHJ1ZTsKKyAg
ICAgICAgdGhpcy5faXNzdWVNZXNzYWdlID0gaXNzdWVNZXNzYWdlOworICAgICAgICB0aGlzLl91
cGRhdGVUaXRsZXMoKTsKKworICAgICAgICB0aGlzLl9pc3N1ZU1lc3NhZ2UuYWRkRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuSXNzdWVNZXNzYWdlLkV2ZW50LkRpc3BsYXlMb2NhdGlvbkRpZENo
YW5nZSwgdGhpcy5fdXBkYXRlVGl0bGVzLCB0aGlzKTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMK
KworICAgIGdldCBpc3N1ZU1lc3NhZ2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2lz
c3VlTWVzc2FnZTsKKyAgICB9CisKKyAgICAvLyBQcml2YXRlCisKKyAgICBfdXBkYXRlVGl0bGVz
KCkKKyAgICB7CisgICAgICAgIHZhciBkaXNwbGF5TGluZU51bWJlciA9IHRoaXMuX2lzc3VlTWVz
c2FnZS5kaXNwbGF5TGluZU51bWJlcjsKKyAgICAgICAgdmFyIGRpc3BsYXlDb2x1bW5OdW1iZXIg
PSB0aGlzLl9pc3N1ZU1lc3NhZ2UuZGlzcGxheUNvbHVtbk51bWJlcjsKKyAgICAgICAgdmFyIHRp
dGxlOworICAgICAgICBpZiAoZGlzcGxheUNvbHVtbk51bWJlciA+IDApCisgICAgICAgICAgICB0
aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTGluZSAlZDolZCIpLmZvcm1hdChkaXNwbGF5
TGluZU51bWJlciArIDEsIGRpc3BsYXlDb2x1bW5OdW1iZXIgKyAxKTsgLy8gVGhlIHVzZXIgdmlz
aWJsZSBsaW5lIGFuZCBjb2x1bW4gbnVtYmVycyBhcmUgMS1iYXNlZC4KKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgdGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxpbmUgJWQiKS5mb3Jt
YXQoZGlzcGxheUxpbmVOdW1iZXIgKyAxKTsgLy8gVGhlIHVzZXIgdmlzaWJsZSBsaW5lIG51bWJl
ciBpcyAxLWJhc2VkLgorCisgICAgICAgIHRoaXMubWFpblRpdGxlID0gdGl0bGUgKyAiICIgKyB0
aGlzLl9pc3N1ZU1lc3NhZ2UudGV4dDsKKyAgICB9Cit9OworCitXZWJJbnNwZWN0b3IuSXNzdWVU
cmVlRWxlbWVudC5TdHlsZUNsYXNzTmFtZSA9ICJpc3N1ZSI7CitXZWJJbnNwZWN0b3IuSXNzdWVU
cmVlRWxlbWVudC5FcnJvclN0eWxlQ2xhc3NOYW1lID0gImVycm9yIjsKK1dlYkluc3BlY3Rvci5J
c3N1ZVRyZWVFbGVtZW50Lldhcm5pbmdTdHlsZUNsYXNzTmFtZSA9ICJ3YXJuaW5nIjsK
</data>

          </attachment>
      

    </bug>

</bugzilla>