<?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>152456</bug_id>
          
          <creation_ts>2015-12-18 18:12:40 -0800</creation_ts>
          <short_desc>Web Inspector: Styling of invalid selector persists when changing the selected node</short_desc>
          <delta_ts>2015-12-29 10:16:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</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>1150462</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-12-18 18:12:40 -0800</bug_when>
    <thetext>* STEPS TO REPRODUCE:
1. Open Web Inspector to the &quot;Elements&quot; tab with the &quot;Styles - Rules&quot; panel open on https://www.apple.com/
2. Select the &quot;&lt;body&gt;&quot; element and append &quot;{&quot; to the first non-inline style selector and hit enter
3. The modified selector will turn red and have a warning icon appear instead of the type icon (this is expected)
4. Change nodes to something other than &quot;&lt;body&gt;&quot; and then re-select &quot;&lt;body&gt;&quot;

* EXPECTED:
There is no strikethrough on the selector of the previously modified rule

* ACTUAL:
The selector changed to the pre-modified value, but the strikethrough and error icon persist</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150471</commentid>
    <comment_count>1</comment_count>
      <attachid>267672</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-12-18 18:18:58 -0800</bug_when>
    <thetext>Created attachment 267672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150492</commentid>
    <comment_count>2</comment_count>
      <attachid>267672</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-12-18 20:22:21 -0800</bug_when>
    <thetext>Comment on attachment 267672
Patch

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

Looks good to me. I&apos;d prefer if Tim reviewed as he has more experience in the Style sidebar.

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.js:456
&gt; +        if (this._hasInvalidSelector) {
&gt; +            this.refresh();

This is new and should be described somewhere in the ChangeLog.

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleSelectorTreeItem.js:222
&gt; +    _handleIconElementClicked(event) {

Style: Brace should be on its own line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150495</commentid>
    <comment_count>3</comment_count>
      <attachid>267672</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-12-18 21:06:21 -0800</bug_when>
    <thetext>Comment on attachment 267672
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.js:456
&gt;&gt; +            this.refresh();
&gt; 
&gt; This is new and should be described somewhere in the ChangeLog.

Would it be better to have it in the changelog or as a comment right above the if statement?

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleSelectorTreeItem.js:222
&gt;&gt; +    _handleIconElementClicked(event) {
&gt; 
&gt; Style: Brace should be on its own line.

hehe sorry forgot about that</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150500</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-12-18 22:04:38 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 267672 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=267672&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.js:456
&gt; &gt;&gt; +            this.refresh();
&gt; &gt; 
&gt; &gt; This is new and should be described somewhere in the ChangeLog.
&gt; 
&gt; Would it be better to have it in the changelog or as a comment right above
&gt; the if statement?

My logic tends to be: if even someone familiar with this code might have trouble remembering why this this is here then put a comment here. Otherwise, if it is obvious to someone reading this class that we would need a refresh here, just put it in the ChangeLog.

How I justify this is that comments in source code tend to get stale / incorrect. So for those quirky, not easy to understand cases comments do make sense to give context / explanation / reasoning. Otherwise, it probably doesn&apos;t deserve a comment that needs maintenance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1150502</commentid>
    <comment_count>5</comment_count>
      <attachid>267682</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-12-18 22:21:56 -0800</bug_when>
    <thetext>Created attachment 267682
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151429</commentid>
    <comment_count>6</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-12-27 14:54:07 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Comment on attachment 267672 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=267672&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.js:456
&gt; &gt; &gt;&gt; +            this.refresh();
&gt; &gt; &gt; 
&gt; &gt; &gt; This is new and should be described somewhere in the ChangeLog.
&gt; &gt; 
&gt; &gt; Would it be better to have it in the changelog or as a comment right above
&gt; &gt; the if statement?
&gt; 
&gt; My logic tends to be: if even someone familiar with this code might have
&gt; trouble remembering why this this is here then put a comment here.
&gt; Otherwise, if it is obvious to someone reading this class that we would need
&gt; a refresh here, just put it in the ChangeLog.
&gt; 
&gt; How I justify this is that comments in source code tend to get stale /
&gt; incorrect. So for those quirky, not easy to understand cases comments do
&gt; make sense to give context / explanation / reasoning. Otherwise, it probably
&gt; doesn&apos;t deserve a comment that needs maintenance.

I put low-level details or explain counterintuitive/obscure things in comments. Otherwise, changelog is better for almost everything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151430</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-12-27 14:54:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/24012864&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151436</commentid>
    <comment_count>8</comment_count>
      <attachid>267682</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-12-27 18:54:45 -0800</bug_when>
    <thetext>Comment on attachment 267682
Patch

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

Nice work, Devin. Just a few naming nits and style suggestions.

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.css:76
&gt;      filter: brightness(0.9);

Please add appropriate :hover styles for the cursor. It doesn&apos;t look clickable on TOT.

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.css:79
&gt; +.style-declaration-section &gt; .header &gt; .icon.toggle-able:active {

If the selector is invalid, then the rule won&apos;t ever apply, so there&apos;s no reason to add an active style. (edit: looks like we use the unmodified value in this case, which is guaranteed to have parsed or it wouldn&apos;t have shown up. never mind!)

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.js:455
&gt; +        if (this._hasInvalidSelector) {

I would add a comment here that this will cause a revert to the unmodified selector text. It was not obvious to me, even having just read the changelog :)

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.js:565
&gt; +    _markSelector(event = false)

The &apos; = false&apos; seems unnecessary here.

I don&apos;t like this method name because it doesn&apos;t necessarily add a mark. I&apos;d call it _updateSelectorIcon or something like that, and update the visual sidebar section to match it (or just revert that renaming).

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.js:575
&gt; +        this._iconElement.title = WebInspector.UIString(&quot;The selector &apos;%s&apos; is invalid.\nClick to revert to the previous selector.&quot;).format(this._selectorElement.textContent.trim());

Please add an appropriate hover cursor to match the tooltip, this doesn&apos;t look clickable right now.

&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.js:-576
&gt; -    get _hasInvalidSelector()

Nice.

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleSelectorTreeItem.css:77
&gt; +    filter: brightness(0.9);

Please add a cursor change.

&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleSelectorTreeItem.js:208
&gt; +    _markSelector(event = false)

the &apos; = false&apos; seems unnecessary here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151483</commentid>
    <comment_count>9</comment_count>
      <attachid>267682</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-12-28 12:55:14 -0800</bug_when>
    <thetext>Comment on attachment 267682
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/CSSStyleDeclarationSection.css:76
&gt;&gt;      filter: brightness(0.9);
&gt; 
&gt; Please add appropriate :hover styles for the cursor. It doesn&apos;t look clickable on TOT.

As far as I understood with Tim, we didn&apos;t like adding &quot;cursor: pointer;&quot; unless the element is clearly a button (from what I can tell, the only time we use &quot;cursor: pointer;&quot; is for links).  I think that the hover styles as they are now are enough of an indicator that they are clickable.  If we add &quot;cursor: pointer;&quot;, since some of the rules do not have clickable icons (user agent styles), it might be confusing to have some be &quot;cursor: pointer;&quot; and others not.

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/VisualStyleSelectorTreeItem.css:77
&gt;&gt; +    filter: brightness(0.9);
&gt; 
&gt; Please add a cursor change.

See above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151517</commentid>
    <comment_count>10</comment_count>
      <attachid>267978</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-12-28 20:15:49 -0800</bug_when>
    <thetext>Created attachment 267978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151518</commentid>
    <comment_count>11</comment_count>
      <attachid>267979</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-12-28 20:17:26 -0800</bug_when>
    <thetext>Created attachment 267979
Patch

Whoops.  Forgot to change the date.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151540</commentid>
    <comment_count>12</comment_count>
      <attachid>267979</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-29 07:03:45 -0800</bug_when>
    <thetext>Comment on attachment 267979
Patch

Rejecting attachment 267979 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 267979, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
file without the binary data in line: &quot;Binary files a/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js and b/Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js differ&quot;.  Be sure to use the --binary flag when invoking &quot;git diff&quot; with diffs containing binary files. at /Volumes/Data/EWS/WebKit/Tools/Scripts/VCSUtils.pm line 805, &lt;ARGV&gt; line 59.

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;]&quot; exit_code: 25 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.webkit.org/results/622192</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151544</commentid>
    <comment_count>13</comment_count>
      <attachid>267985</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-12-29 09:17:49 -0800</bug_when>
    <thetext>Created attachment 267985
Patch

Forgot --binary.  Sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151551</commentid>
    <comment_count>14</comment_count>
      <attachid>267985</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-29 10:16:06 -0800</bug_when>
    <thetext>Comment on attachment 267985
Patch

Clearing flags on attachment: 267985

Committed r194437: &lt;http://trac.webkit.org/changeset/194437&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151552</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-29 10:16:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267672</attachid>
            <date>2015-12-18 18:18:58 -0800</date>
            <delta_ts>2015-12-18 22:21:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152456-20151218191820.patch</filename>
            <type>text/plain</type>
            <size>13557</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGI2ZTFlYjVkYWRhZTljNjJkNzUyNDQyZThlNGE3
NDI4ZDI4YmQyZjguLmJmMDk0YjM5NWFmZGU4OTE3ODQ4YWRmNDI2OGEyMzZhOGQ3YzI4NDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE1LTEyLTE4ICBEZXZp
biBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFN0eWxpbmcgb2YgaW52YWxpZCBzZWxlY3RvciBwZXJzaXN0cyB3aGVuIGNoYW5naW5n
IHRoZSBzZWxlY3RlZCBub2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTI0NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJZiB0aGUgdXNlciBjaGFuZ2VzIHRoZSBzZWxlY3RvciBvZiBhIENTUyBydWxl
IHRvIGJlIGludmFsaWQgKGUuZy4gaGF2aW5nCisgICAgICAgIGEgeyBvciA7IGNoYXJhY3Rlciks
IGl0IGlzIGV4cGVjdGVkIHRoYXQgdGhlIGludmFsaWQgaW5kaWNhdG9yIHdpbGwgYmUgcmVtb3Zl
ZAorICAgICAgICBvbmNlIHRoZSB1c2VyIGNoYW5nZXMgbm9kZXMgb3IgcmV2ZXJ0cyB0aGUgc2Vs
ZWN0b3IgdG8gaXRzIHByZXZpb3VzIHZhbHVlLgorCisgICAgICAgICogTG9jYWxpemF0aW9ucy9l
bi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uY3NzOgorICAgICAgICAoLnN0eWxlLWRlY2xh
cmF0aW9uLXNlY3Rpb24gPiAuaGVhZGVyID4gLmljb24udG9nZ2xlLWFibGU6aG92ZXIpOgorICAg
ICAgICAoLnN0eWxlLWRlY2xhcmF0aW9uLXNlY3Rpb24gPiAuaGVhZGVyID4gLmljb24udG9nZ2xl
LWFibGU6YWN0aXZlKToKKyAgICAgICAgKC5zdHlsZS1kZWNsYXJhdGlvbi1zZWN0aW9uOm5vdCgu
aW52YWxpZC1zZWxlY3RvcikgPiAuaGVhZGVyID4gLmljb24udG9nZ2xlLWFibGU6aG92ZXIpOiBE
ZWxldGVkLgorICAgICAgICBBZGRlZCBiZXR0ZXIgOmhvdmVyIGFuZCA6YWN0aXZlIHN0eWxlcy4K
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rp
b24uanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLnByb3Rv
dHlwZS5yZWZyZXNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9u
U2VjdGlvbi5wcm90b3R5cGUuX2hhbmRsZVNlbGVjdG9yUGFzdGUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLnByb3RvdHlwZS5faGFuZGxlU2VsZWN0
b3JQYXN0ZS5nZXQgX2hhc0ludmFsaWRTZWxlY3Rvcik6IERlbGV0ZWQuCisgICAgICAgIE1vdmVk
IHRoZSBzdGF0ZSBvZiB0aGUgaW52YWxpZCBzZWxlY3RvciB0byBhIG1lbWJlcgorICAgICAgICB2
YXJpYWJsZSBpbnN0ZWFkIG9mIGEgRE9NIGNsYXNzLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0uY3NzOgorICAgICAgICAoLml0ZW0u
dmlzdWFsLXN0eWxlLXNlbGVjdG9yLWl0ZW0uc2VsZWN0b3ItaW52YWxpZCA+IC5pY29uOmhvdmVy
KToKKyAgICAgICAgKC5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVtLnNlbGVjdG9yLWlu
dmFsaWQgPiAuaWNvbjphY3RpdmUpOgorICAgICAgICAoLml0ZW0udmlzdWFsLXN0eWxlLXNlbGVj
dG9yLWl0ZW0uc2VsZWN0b3ItaW52YWxpZCA+IC5pY29uKTogRGVsZXRlZC4KKyAgICAgICAgQWRk
ZWQgOmhvdmVyIGFuZCA6YWN0aXZlIHN0eWxlcy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLnByb3RvdHlwZS5vbmF0dGFjaCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLnByb3RvdHlwZS5fY29t
bWl0U2VsZWN0b3IpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JU
cmVlSXRlbS5wcm90b3R5cGUuX21hcmtTZWxlY3Rvcik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLnByb3RvdHlwZS5faGFuZGxlSWNvbkVsZW1lbnRD
bGlja2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0
ZW0ucHJvdG90eXBlLl9zZWxlY3RvckNoYW5nZWQpOiBEZWxldGVkLgorICAgICAgICBDaGFuZ2Vk
IHRoZSBuYW1lcyBvZiBhIGZldyBmdW5jdGlvbnMgdG8gcHJvdmlkZSBiZXR0ZXIKKyAgICAgICAg
Y29uc2lzdGVuY3kgYWNyb3NzIHRoZSBjbGFzc2VzIGluIHRoZSBTdHlsZSBzaWRlYmFyLgorCiAy
MDE1LTEyLTE3ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgUHJvdmlkZSBhIHdheSB0byBkaXN0aW5ndWlzaCBhIG5lc3RlZCBsZXhpY2FsIGJsb2NrIGZy
b20gYSBmdW5jdGlvbidzIGxleGljYWwgYmxvY2sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdz
LmpzCmluZGV4IGE3NzJmYzdkNjMzZDI3MjYzMzFjY2MwNzZhY2Y4YTFmYTM5ZjgwM2IuLjg0OTNm
NjNjNGY1YjIwNzZhMjIyZGNhOTY3YWFlMDNkMzU3MTM1ZDUgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0
Y2gKZGVsdGEgOTAKemNtZG4rbiZyK0xtV0N+aWppUXFzUV5XKnw3KlpMXmZWaGFFZ2gyc19eUVRB
WUZ6UVpVRDlrN31lWDF5PDVndFg4ClRBND0mPT8teXMzK3MtZT54S0pKZCgkeUpDCgpkZWx0YSAy
NwpqY21jY2ZoR29OUm1XQ35pamlTPlIzcDB2TGU9VypydzdwbzJAdWZUZnM5XzRNCgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVE
ZWNsYXJhdGlvblNlY3Rpb24uY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uY3NzCmluZGV4IGRjM2EzYjhkZWNi
OTM5Y2MwMjEzM2U1ZTYzMDM2ZjU0OTY2MGIwYjcuLjllY2I5NWRkY2Q5NzdhM2FiZTVmNDFkNjQ4
YmEwYzQzNjdkNWI3MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmNzcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2Vj
dGlvbi5jc3MKQEAgLTcyLDEwICs3MiwxNCBAQAogICAgIGhlaWdodDogMTZweDsKIH0KIAotLnN0
eWxlLWRlY2xhcmF0aW9uLXNlY3Rpb246bm90KC5pbnZhbGlkLXNlbGVjdG9yKSA+IC5oZWFkZXIg
PiAuaWNvbi50b2dnbGUtYWJsZTpob3ZlciB7Cisuc3R5bGUtZGVjbGFyYXRpb24tc2VjdGlvbiA+
IC5oZWFkZXIgPiAuaWNvbi50b2dnbGUtYWJsZTpob3ZlciB7CiAgICAgZmlsdGVyOiBicmlnaHRu
ZXNzKDAuOSk7CiB9CiAKKy5zdHlsZS1kZWNsYXJhdGlvbi1zZWN0aW9uID4gLmhlYWRlciA+IC5p
Y29uLnRvZ2dsZS1hYmxlOmFjdGl2ZSB7CisgICAgZmlsdGVyOiBicmlnaHRuZXNzKDAuOCk7Cit9
CisKIC5zdHlsZS1kZWNsYXJhdGlvbi1zZWN0aW9uOm5vdCguaW52YWxpZC1zZWxlY3RvcikucnVs
ZS1kaXNhYmxlZCA+IC5oZWFkZXIgPiAuaWNvbiB7CiAgICAgb3BhY2l0eTogMC41OwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5
bGVEZWNsYXJhdGlvblNlY3Rpb24uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qcwppbmRleCAxOTQxYzdjN2Jh
NWU4MDAxNjIxODRiZTRiNWRjMjMxNzkxNzk0Y2JiLi5kY2MxNWQwYTAzMmVkNmVlOWM1ZjRhYjdk
MzAyY2Q5MjE5OThiNGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2Vj
dGlvbi5qcwpAQCAtMzYsNiArMzYsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlv
blNlY3Rpb24gPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbiBleHRlbgogICAgICAg
ICB0aGlzLl9zdHlsZSA9IHN0eWxlIHx8IG51bGw7CiAgICAgICAgIHRoaXMuX3NlbGVjdG9yRWxl
bWVudHMgPSBbXTsKICAgICAgICAgdGhpcy5fcnVsZURpc2FibGVkID0gZmFsc2U7CisgICAgICAg
IHRoaXMuX2hhc0ludmFsaWRTZWxlY3RvciA9IGZhbHNlOwogCiAgICAgICAgIHRoaXMuX2VsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAgdGhpcy5fZWxlbWVu
dC5jbGFzc0xpc3QuYWRkKCJzdHlsZS1kZWNsYXJhdGlvbi1zZWN0aW9uIik7CkBAIC0xMDQsNyAr
MTA1LDcgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uID0gY2xhc3Mg
Q1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24gZXh0ZW4KICAgICAgICAgaWYgKHN0eWxlLmVkaXRh
YmxlKSB7CiAgICAgICAgICAgICB0aGlzLl9pY29uRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ0b2dn
bGUtYWJsZSIpOwogICAgICAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQudGl0bGUgPSBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIkNvbW1lbnQgQWxsIFByb3BlcnRpZXMiKTsKLSAgICAgICAgICAgIHRo
aXMuX2ljb25FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9nZ2xlUnVs
ZU9uT2ZmLmJpbmQodGhpcykpOworICAgICAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9oYW5kbGVJY29uRWxlbWVudENsaWNrZWQuYmluZCh0
aGlzKSk7CiAgICAgICAgIH0KIAogICAgICAgICBjb25zb2xlLmFzc2VydChpY29uQ2xhc3NOYW1l
KTsKQEAgLTI2Myw2ICsyNjQsOCBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNl
Y3Rpb24gPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbiBleHRlbgogICAgICAgICAg
ICAgdGhpcy5fb3JpZ2luRWxlbWVudC5hcHBlbmQoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJIVE1M
IEF0dHJpYnV0ZXMiKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorCisgICAgICAg
IHRoaXMuX21hcmtTZWxlY3RvcigpOwogICAgIH0KIAogICAgIGhpZ2hsaWdodFByb3BlcnR5KHBy
b3BlcnR5KQpAQCAtNDQ3LDEwICs0NTAsMTIgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFy
YXRpb25TZWN0aW9uID0gY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24gZXh0ZW4KICAg
ICAgICAgfSk7CiAgICAgfQogCi0gICAgX3RvZ2dsZVJ1bGVPbk9mZigpCisgICAgX2hhbmRsZUlj
b25FbGVtZW50Q2xpY2tlZCgpCiAgICAgewotICAgICAgICBpZiAodGhpcy5faGFzSW52YWxpZFNl
bGVjdG9yKQorICAgICAgICBpZiAodGhpcy5faGFzSW52YWxpZFNlbGVjdG9yKSB7CisgICAgICAg
ICAgICB0aGlzLnJlZnJlc2goKTsKICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCiAg
ICAgICAgIHRoaXMuX3J1bGVEaXNhYmxlZCA9IHRoaXMuX3J1bGVEaXNhYmxlZCA/ICF0aGlzLl9w
cm9wZXJ0aWVzVGV4dEVkaXRvci51bmNvbW1lbnRBbGxQcm9wZXJ0aWVzKCkgOiB0aGlzLl9wcm9w
ZXJ0aWVzVGV4dEVkaXRvci5jb21tZW50QWxsUHJvcGVydGllcygpOwogICAgICAgICB0aGlzLl9p
Y29uRWxlbWVudC50aXRsZSA9IHRoaXMuX3J1bGVEaXNhYmxlZCA/IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiVW5jb21tZW50IEFsbCBQcm9wZXJ0aWVzIikgOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IkNvbW1lbnQgQWxsIFByb3BlcnRpZXMiKTsKQEAgLTU1NywyNyArNTYyLDIyIEBAIFdlYkluc3Bl
Y3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbiA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRp
b25TZWN0aW9uIGV4dGVuCiAgICAgICAgIHRoaXMuX3N0eWxlLm93bmVyUnVsZS5zZWxlY3RvclRl
eHQgPSBuZXdTZWxlY3RvclRleHQ7CiAgICAgfQogCi0gICAgX21hcmtTZWxlY3RvcihldmVudCkK
KyAgICBfbWFya1NlbGVjdG9yKGV2ZW50ID0gZmFsc2UpCiAgICAgewotICAgICAgICB2YXIgdmFs
aWQgPSBldmVudCAmJiBldmVudC5kYXRhICYmIGV2ZW50LmRhdGEudmFsaWQ7Ci0gICAgICAgIHRo
aXMuX2VsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZShXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJh
dGlvblNlY3Rpb24uU2VsZWN0b3JJbnZhbGlkQ2xhc3NOYW1lLCAhdmFsaWQpOwotICAgICAgICBp
ZiAodmFsaWQpIHsKKyAgICAgICAgdGhpcy5faGFzSW52YWxpZFNlbGVjdG9yID0gZXZlbnQgJiYg
ZXZlbnQuZGF0YSAmJiAhZXZlbnQuZGF0YS52YWxpZDsKKyAgICAgICAgdGhpcy5fZWxlbWVudC5j
bGFzc0xpc3QudG9nZ2xlKCJpbnZhbGlkLXNlbGVjdG9yIiwgISF0aGlzLl9oYXNJbnZhbGlkU2Vs
ZWN0b3IpOworICAgICAgICBpZiAoIXRoaXMuX2hhc0ludmFsaWRTZWxlY3RvcikgewogICAgICAg
ICAgICAgdGhpcy5faWNvbkVsZW1lbnQudGl0bGUgPSB0aGlzLl9ydWxlRGlzYWJsZWQgPyBXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIlVuY29tbWVudCBBbGwgUHJvcGVydGllcyIpIDogV2ViSW5zcGVj
dG9yLlVJU3RyaW5nKCJDb21tZW50IEFsbCBQcm9wZXJ0aWVzIik7CiAgICAgICAgICAgICB0aGlz
Ll9zZWxlY3RvckVsZW1lbnQudGl0bGUgPSBudWxsOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAKLSAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQudGl0bGUgPSBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIlRoZSBzZWxlY3RvciAnJXMnIGlzIGludmFsaWQuIikuZm9ybWF0KHRoaXMuX3Nl
bGVjdG9yRWxlbWVudC50ZXh0Q29udGVudC50cmltKCkpOworICAgICAgICB0aGlzLl9pY29uRWxl
bWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGhlIHNlbGVjdG9yICclcycgaXMg
aW52YWxpZC5cbkNsaWNrIHRvIHJldmVydCB0byB0aGUgcHJldmlvdXMgc2VsZWN0b3IuIikuZm9y
bWF0KHRoaXMuX3NlbGVjdG9yRWxlbWVudC50ZXh0Q29udGVudC50cmltKCkpOwogICAgICAgICB0
aGlzLl9zZWxlY3RvckVsZW1lbnQudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlVzaW5n
IHRoZSBwcmV2aW91cyBzZWxlY3RvciAnJXMnLiIpLmZvcm1hdCh0aGlzLl9zdHlsZS5vd25lclJ1
bGUuc2VsZWN0b3JUZXh0KTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9zZWxl
Y3RvckVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoOyArK2kpCisgICAgICAgIGZvciAobGV0IGkgPSAw
OyBpIDwgdGhpcy5fc2VsZWN0b3JFbGVtZW50LmNoaWxkcmVuLmxlbmd0aDsgKytpKQogICAgICAg
ICAgICAgdGhpcy5fc2VsZWN0b3JFbGVtZW50LmNoaWxkcmVuW2ldLnRpdGxlID0gbnVsbDsKICAg
ICB9CiAKLSAgICBnZXQgX2hhc0ludmFsaWRTZWxlY3RvcigpCi0gICAgewotICAgICAgICByZXR1
cm4gdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoV2ViSW5zcGVjdG9yLkNTU1N0eWxl
RGVjbGFyYXRpb25TZWN0aW9uLlNlbGVjdG9ySW52YWxpZENsYXNzTmFtZSk7Ci0gICAgfQotCiAg
ICAgX2VkaXRvckNvbnRlbnRDaGFuZ2VkKGV2ZW50KQogICAgIHsKICAgICAgICAgdGhpcy5fZWRp
dG9yQWN0aXZlID0gdHJ1ZTsKQEAgLTU5Niw3ICs1OTYsNiBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5
bGVEZWNsYXJhdGlvblNlY3Rpb24uRXZlbnQgPSB7CiAKIFdlYkluc3BlY3Rvci5DU1NTdHlsZURl
Y2xhcmF0aW9uU2VjdGlvbi5Mb2NrZWRTdHlsZUNsYXNzTmFtZSA9ICJsb2NrZWQiOwogV2ViSW5z
cGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLlNlbGVjdG9yTG9ja2VkU3R5bGVDbGFz
c05hbWUgPSAic2VsZWN0b3ItbG9ja2VkIjsKLVdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0
aW9uU2VjdGlvbi5TZWxlY3RvckludmFsaWRDbGFzc05hbWUgPSAiaW52YWxpZC1zZWxlY3RvciI7
CiBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uTGFzdEluR3JvdXBTdHls
ZUNsYXNzTmFtZSA9ICJsYXN0LWluLWdyb3VwIjsKIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xh
cmF0aW9uU2VjdGlvbi5NYXRjaGVkU2VsZWN0b3JFbGVtZW50U3R5bGVDbGFzc05hbWUgPSAibWF0
Y2hlZCI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0uY3Nz
CmluZGV4IDk2NTI5YzE3NzdiMzRhZTA3NDk1NzlkMWQ2ZjU3ZTlkZDA2YzFjMzcuLmEwN2NmZDQz
NGRhOTI3YWUxZGZiYTJkMGVkYzFjNDMzM2IyNTdiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRl
bS5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlz
dWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLmNzcwpAQCAtNjksMTEgKzY5LDE4IEBAIGJvZHk6bm90
KC53aW5kb3ctaW5hY3RpdmUsIC53aW5kb3ctZG9ja2VkLWluYWN0aXZlKSAuaXRlbS52aXN1YWwt
c3R5bGUtc2VsZWN0b3ItCiB9CiAKIC5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVtLnNl
bGVjdG9yLWludmFsaWQgPiAuaWNvbiB7Ci0gICAgd2lkdGg6IDE0cHg7CiAgICAgaGVpZ2h0OiAx
NHB4OwogICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvRXJyb3Iuc3ZnKTsKIH0KIAorLml0ZW0u
dmlzdWFsLXN0eWxlLXNlbGVjdG9yLWl0ZW0uc2VsZWN0b3ItaW52YWxpZCA+IC5pY29uOmhvdmVy
IHsKKyAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMC45KTsKK30KKworLml0ZW0udmlzdWFsLXN0eWxl
LXNlbGVjdG9yLWl0ZW0uc2VsZWN0b3ItaW52YWxpZCA+IC5pY29uOmFjdGl2ZSB7CisgICAgZmls
dGVyOiBicmlnaHRuZXNzKDAuOCk7Cit9CisKIC5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1p
dGVtLnNlbGVjdG9yLWludmFsaWQgPiAudGl0bGVzID4gLnRpdGxlIHsKICAgICBwb3NpdGlvbjog
cmVsYXRpdmU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0uanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0u
anMKaW5kZXggOTMxNGJhODdhNDQ5ZGI3YzI5NGVlOGE0MWE2MDRkOGVlMjgxNDg0MC4uOTQ2ZDAx
NDdjYTRjYzI0MjQ4YzcxOTdjN2E2MDI1YTFjM2Q4MzI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJ
dGVtLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zp
c3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5qcwpAQCAtNjAsNiArNjAsNyBAQCBXZWJJbnNwZWN0
b3IuVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtID0gY2xhc3MgVmlzdWFsU3R5bGVTZWxlY3Rv
clRyZWVJdGVtIGV4dAogICAgICAgICB0aGlzLl9pY29uQ2xhc3NOYW1lID0gaWNvbkNsYXNzTmFt
ZTsKICAgICAgICAgdGhpcy5fbGFzdFZhbHVlID0gdGl0bGU7CiAgICAgICAgIHRoaXMuX2VuYWJs
ZUVkaXRpbmcgPSB0cnVlOworICAgICAgICB0aGlzLl9oYXNJbnZhbGlkU2VsZWN0b3IgPSBmYWxz
ZTsKICAgICB9CiAKICAgICAvLyBQdWJsaWMKQEAgLTk1LDYgKzk2LDggQEAgV2ViSW5zcGVjdG9y
LlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbSA9IGNsYXNzIFZpc3VhbFN0eWxlU2VsZWN0b3JU
cmVlSXRlbSBleHQKICAgICAgICAgdGhpcy5fY2hlY2tib3hFbGVtZW50LmFkZEV2ZW50TGlzdGVu
ZXIoImNoYW5nZSIsIHRoaXMuX2hhbmRsZUNoZWNrYm94Q2hhbmdlZC5iaW5kKHRoaXMpKTsKICAg
ICAgICAgdGhpcy5fbGlzdEl0ZW1Ob2RlLmluc2VydEJlZm9yZSh0aGlzLl9jaGVja2JveEVsZW1l
bnQsIHRoaXMuX2ljb25FbGVtZW50KTsKIAorICAgICAgICB0aGlzLl9pY29uRWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2hhbmRsZUljb25FbGVtZW50Q2xpY2tlZC5iaW5k
KHRoaXMpKTsKKwogICAgICAgICB0aGlzLl9tYWluVGl0bGVFbGVtZW50LnNwZWxsY2hlY2sgPSBm
YWxzZTsKICAgICAgICAgdGhpcy5fbWFpblRpdGxlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJt
b3VzZWRvd24iLCB0aGlzLl9oYW5kbGVNYWluVGl0bGVNb3VzZURvd24uYmluZCh0aGlzKSk7CiAg
ICAgICAgIHRoaXMuX21haW5UaXRsZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIs
IHRoaXMuX2hhbmRsZU1haW5UaXRsZUtleURvd24uYmluZCh0aGlzKSk7CkBAIC0xMDMsNyArMTA2
LDcgQEAgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbSA9IGNsYXNzIFZp
c3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbSBleHQKIAogICAgICAgICB0aGlzLnJlcHJlc2VudGVk
T2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24u
RXZlbnQuSW5pdGlhbFRleHRNb2RpZmllZCwgdGhpcy5fc3R5bGVUZXh0TW9kaWZpZWQsIHRoaXMp
OwogICAgICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5vd25lclJ1bGUpCi0gICAgICAg
ICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm93bmVyUnVsZS5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5DU1NSdWxlLkV2ZW50LlNlbGVjdG9yQ2hhbmdlZCwgdGhpcy5fc2VsZWN0b3JD
aGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qub3duZXJS
dWxlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1J1bGUuRXZlbnQuU2VsZWN0b3JD
aGFuZ2VkLCB0aGlzLl9tYXJrU2VsZWN0b3IsIHRoaXMpOwogCiAgICAgICAgIHRoaXMuX3N0eWxl
VGV4dE1vZGlmaWVkKCk7CiAgICAgfQpAQCAtMTkxLDcgKzE5NCw3IEBAIFdlYkluc3BlY3Rvci5W
aXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0gPSBjbGFzcyBWaXN1YWxTdHlsZVNlbGVjdG9yVHJl
ZUl0ZW0gZXh0CiAgICAgICAgIHRoaXMuX3VwZGF0ZVRpdGxlVG9vbHRpcCgpOwogCiAgICAgICAg
IGxldCB2YWx1ZSA9IHRoaXMuc2VsZWN0b3JUZXh0OwotICAgICAgICBpZiAodmFsdWUgPT09IHRo
aXMuX2xhc3RWYWx1ZSAmJiB0aGlzLl92YWxpZCkKKyAgICAgICAgaWYgKHZhbHVlID09PSB0aGlz
Ll9sYXN0VmFsdWUgJiYgIXRoaXMuX2hhc0ludmFsaWRTZWxlY3RvcikKICAgICAgICAgICAgIHJl
dHVybjsKIAogICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm93bmVyUnVsZS5zZWxlY3Rv
clRleHQgPSB2YWx1ZTsKQEAgLTIwMiwxMiArMjA1LDI2IEBAIFdlYkluc3BlY3Rvci5WaXN1YWxT
dHlsZVNlbGVjdG9yVHJlZUl0ZW0gPSBjbGFzcyBWaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0g
ZXh0CiAgICAgICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5jbGFzc0xpc3QudG9nZ2xlKCJtb2RpZmll
ZCIsIHRoaXMucmVwcmVzZW50ZWRPYmplY3QubW9kaWZpZWQpOwogICAgIH0KIAotICAgIF9zZWxl
Y3RvckNoYW5nZWQoZXZlbnQpCisgICAgX21hcmtTZWxlY3RvcihldmVudCA9IGZhbHNlKQogICAg
IHsKLSAgICAgICAgdGhpcy5fdmFsaWQgPSBldmVudCAmJiBldmVudC5kYXRhICYmIGV2ZW50LmRh
dGEudmFsaWQ7Ci0gICAgICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5jbGFzc0xpc3QudG9nZ2xlKCJz
ZWxlY3Rvci1pbnZhbGlkIiwgIXRoaXMuX3ZhbGlkKTsKLSAgICAgICAgbGV0IGludmFsaWRUaXRs
ZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGhlIHNlbGVjdG9yICclcycgaXMgaW52YWxpZC4i
KS5mb3JtYXQodGhpcy5zZWxlY3RvclRleHQpOwotICAgICAgICB0aGlzLl9pY29uRWxlbWVudC50
aXRsZSA9ICF0aGlzLl92YWxpZCA/IGludmFsaWRUaXRsZSA6IG51bGw7CisgICAgICAgIHRoaXMu
X2hhc0ludmFsaWRTZWxlY3RvciA9IGV2ZW50ICYmIGV2ZW50LmRhdGEgJiYgIWV2ZW50LmRhdGEu
dmFsaWQ7CisgICAgICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5jbGFzc0xpc3QudG9nZ2xlKCJzZWxl
Y3Rvci1pbnZhbGlkIiwgISF0aGlzLl9oYXNJbnZhbGlkU2VsZWN0b3IpOworICAgICAgICBpZiAo
dGhpcy5faGFzSW52YWxpZFNlbGVjdG9yKSB7CisgICAgICAgICAgICB0aGlzLl9pY29uRWxlbWVu
dC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGhlIHNlbGVjdG9yICclcycgaXMgaW52
YWxpZC5cbkNsaWNrIHRvIHJldmVydCB0byB0aGUgcHJldmlvdXMgc2VsZWN0b3IuIikuZm9ybWF0
KHRoaXMuc2VsZWN0b3JUZXh0KTsKKyAgICAgICAgICAgIHRoaXMubWFpblRpdGxlRWxlbWVudC50
aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVXNpbmcgdGhlIHByZXZpb3VzIHNlbGVjdG9y
ICclcycuIikuZm9ybWF0KHRoaXMucmVwcmVzZW50ZWRPYmplY3Qub3duZXJSdWxlLnNlbGVjdG9y
VGV4dCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9p
Y29uRWxlbWVudC50aXRsZSA9IG51bGw7CisgICAgICAgIHRoaXMubWFpblRpdGxlRWxlbWVudC50
aXRsZSA9IG51bGw7CisgICAgfQorCisgICAgX2hhbmRsZUljb25FbGVtZW50Q2xpY2tlZChldmVu
dCkgeworICAgICAgICBpZiAodGhpcy5faGFzSW52YWxpZFNlbGVjdG9yICYmIHRoaXMucmVwcmVz
ZW50ZWRPYmplY3Qub3duZXJSdWxlKSB7CisgICAgICAgICAgICB0aGlzLm1haW5UaXRsZUVsZW1l
bnQudGV4dENvbnRlbnQgPSB0aGlzLl9sYXN0VmFsdWUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0
Lm93bmVyUnVsZS5zZWxlY3RvclRleHQ7CisgICAgICAgICAgICB0aGlzLl9tYXJrU2VsZWN0b3Io
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogICAgIH0KIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267682</attachid>
            <date>2015-12-18 22:21:56 -0800</date>
            <delta_ts>2015-12-28 20:15:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152456-20151218232118.patch</filename>
            <type>text/plain</type>
            <size>13701</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGI2ZTFlYjVkYWRhZTljNjJkNzUyNDQyZThlNGE3
NDI4ZDI4YmQyZjguLmE4OThlMjIzZDk4NWI0MzhjOGVkNTljNzUxMWY2YzEwNGUyMjllM2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE1LTEyLTE4ICBEZXZp
biBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFN0eWxpbmcgb2YgaW52YWxpZCBzZWxlY3RvciBwZXJzaXN0cyB3aGVuIGNoYW5naW5n
IHRoZSBzZWxlY3RlZCBub2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTI0NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBJZiB0aGUgdXNlciBjaGFuZ2VzIHRoZSBzZWxlY3RvciBvZiBhIENTUyBydWxl
IHRvIGJlIGludmFsaWQgKGUuZy4gaGF2aW5nCisgICAgICAgIGEgeyBvciA7IGNoYXJhY3Rlciks
IGl0IGlzIGV4cGVjdGVkIHRoYXQgdGhlIGludmFsaWQgaW5kaWNhdG9yIHdpbGwgYmUgcmVtb3Zl
ZAorICAgICAgICBvbmNlIHRoZSB1c2VyIGNoYW5nZXMgbm9kZXMgb3IgcmV2ZXJ0cyB0aGUgc2Vs
ZWN0b3IgdG8gaXRzIHByZXZpb3VzIHZhbHVlLgorCisgICAgICAgICogTG9jYWxpemF0aW9ucy9l
bi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmll
d3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uY3NzOgorICAgICAgICAoLnN0eWxlLWRlY2xh
cmF0aW9uLXNlY3Rpb24gPiAuaGVhZGVyID4gLmljb24udG9nZ2xlLWFibGU6aG92ZXIpOgorICAg
ICAgICAoLnN0eWxlLWRlY2xhcmF0aW9uLXNlY3Rpb24gPiAuaGVhZGVyID4gLmljb24udG9nZ2xl
LWFibGU6YWN0aXZlKToKKyAgICAgICAgKC5zdHlsZS1kZWNsYXJhdGlvbi1zZWN0aW9uOm5vdCgu
aW52YWxpZC1zZWxlY3RvcikgPiAuaGVhZGVyID4gLmljb24udG9nZ2xlLWFibGU6aG92ZXIpOiBE
ZWxldGVkLgorICAgICAgICBBZGRlZCBiZXR0ZXIgOmhvdmVyIGFuZCA6YWN0aXZlIHN0eWxlcy4K
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rp
b24uanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLnByb3Rv
dHlwZS5yZWZyZXNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9u
U2VjdGlvbi5wcm90b3R5cGUuX2hhbmRsZUljb25FbGVtZW50Q2xpY2tlZCk6CisgICAgICAgIElm
IHRoZSBzZWxlY3RvciBpcyBpbnZhbGlkLCBzaW1wbHkgcmVmcmVzaCB0aGUgc2VjdGlvbiB0byBy
ZWdlbmVyYXRlIHRoZQorICAgICAgICBvcmlnaW5hbCBzZWxlY3RvciB3aXRoIGNvcnJlY3QgY29u
dGVudCwgc3BlY2lmaWNpdHksIGFuZCBoaWdobGlnaHRpbmcuCisKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5wcm90b3R5cGUuZ2V0IF9oYXNJbnZhbGlk
U2VsZWN0b3IpOiBEZWxldGVkLgorICAgICAgICBNb3ZlZCB0aGUgc3RhdGUgb2YgdGhlIGludmFs
aWQgc2VsZWN0b3IgdG8gYSBtZW1iZXIKKyAgICAgICAgdmFyaWFibGUgaW5zdGVhZCBvZiBhIERP
TSBjbGFzcy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxl
Y3RvclRyZWVJdGVtLmNzczoKKyAgICAgICAgKC5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1p
dGVtLnNlbGVjdG9yLWludmFsaWQgPiAuaWNvbjpob3Zlcik6CisgICAgICAgICguaXRlbS52aXN1
YWwtc3R5bGUtc2VsZWN0b3ItaXRlbS5zZWxlY3Rvci1pbnZhbGlkID4gLmljb246YWN0aXZlKToK
KyAgICAgICAgKC5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVtLnNlbGVjdG9yLWludmFs
aWQgPiAuaWNvbik6CisgICAgICAgIEFkZGVkIDpob3ZlciBhbmQgOmFjdGl2ZSBzdHlsZXMuCisK
KyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRl
bS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5wcm90
b3R5cGUub25hdHRhY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0
b3JUcmVlSXRlbS5wcm90b3R5cGUuX2NvbW1pdFNlbGVjdG9yKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0ucHJvdG90eXBlLl9tYXJrU2VsZWN0b3Ip
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5wcm90
b3R5cGUuX2hhbmRsZUljb25FbGVtZW50Q2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLnByb3RvdHlwZS5fc2VsZWN0b3JDaGFuZ2VkKTog
RGVsZXRlZC4KKyAgICAgICAgQ2hhbmdlZCB0aGUgbmFtZXMgb2YgYSBmZXcgZnVuY3Rpb25zIHRv
IHByb3ZpZGUgYmV0dGVyCisgICAgICAgIGNvbnNpc3RlbmN5IGFjcm9zcyB0aGUgY2xhc3NlcyBp
biB0aGUgU3R5bGUgc2lkZWJhci4KKwogMjAxNS0xMi0xNyAgSm9zZXBoIFBlY29yYXJvICA8cGVj
b3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFByb3ZpZGUgYSB3YXkgdG8gZGlzdGluZ3Vpc2gg
YSBuZXN0ZWQgbGV4aWNhbCBibG9jayBmcm9tIGEgZnVuY3Rpb24ncyBsZXhpY2FsIGJsb2NrCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9s
b2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMv
ZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCBhNzcyZmM3ZDYzM2QyNzI2MzMxY2Nj
MDc2YWNmOGExZmEzOWY4MDNiLi44NDkzZjYzYzRmNWIyMDc2YTIyMmRjYTk2N2FhZTAzZDM1NzEz
NWQ1IDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDkwCnpjbWRuK24mcitMbVdDfmlqaVFx
c1FeVyp8NypaTF5mVmhhRWdoMnNfXlFUQVlGelFaVUQ5azd9ZVgxeTw1Z3RYOApUQTQ9Jj0/LXlz
MytzLWU+eEtKSmQoJHlKQwoKZGVsdGEgMjcKamNtY2NmaEdvTlJtV0N+aWppUz5SM3AwdkxlPVcq
cnc3cG8yQHVmVGZzOV80TQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmNzcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25TZWN0
aW9uLmNzcwppbmRleCBkYzNhM2I4ZGVjYjkzOWNjMDIxMzNlNWU2MzAzNmY1NDk2NjBiMGI3Li45
ZWNiOTVkZGNkOTc3YTNhYmU1ZjQxZDY0OGJhMGM0MzY3ZDViNzE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9u
U2VjdGlvbi5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uY3NzCkBAIC03MiwxMCArNzIsMTQgQEAKICAg
ICBoZWlnaHQ6IDE2cHg7CiB9CiAKLS5zdHlsZS1kZWNsYXJhdGlvbi1zZWN0aW9uOm5vdCguaW52
YWxpZC1zZWxlY3RvcikgPiAuaGVhZGVyID4gLmljb24udG9nZ2xlLWFibGU6aG92ZXIgeworLnN0
eWxlLWRlY2xhcmF0aW9uLXNlY3Rpb24gPiAuaGVhZGVyID4gLmljb24udG9nZ2xlLWFibGU6aG92
ZXIgewogICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwLjkpOwogfQogCisuc3R5bGUtZGVjbGFyYXRp
b24tc2VjdGlvbiA+IC5oZWFkZXIgPiAuaWNvbi50b2dnbGUtYWJsZTphY3RpdmUgeworICAgIGZp
bHRlcjogYnJpZ2h0bmVzcygwLjgpOworfQorCiAuc3R5bGUtZGVjbGFyYXRpb24tc2VjdGlvbjpu
b3QoLmludmFsaWQtc2VsZWN0b3IpLnJ1bGUtZGlzYWJsZWQgPiAuaGVhZGVyID4gLmljb24gewog
ICAgIG9wYWNpdHk6IDAuNTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNl
Y3Rpb24uanMKaW5kZXggMTk0MWM3YzdiYTVlODAwMTYyMTg0YmU0YjVkYzIzMTc5MTc5NGNiYi4u
ZGNjMTVkMGEwMzJlZDZlZTljNWY0YWI3ZDMwMmNkOTIxOTk4YjRlMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlv
blNlY3Rpb24uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uanMKQEAgLTM2LDYgKzM2LDcgQEAgV2ViSW5z
cGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uID0gY2xhc3MgQ1NTU3R5bGVEZWNsYXJh
dGlvblNlY3Rpb24gZXh0ZW4KICAgICAgICAgdGhpcy5fc3R5bGUgPSBzdHlsZSB8fCBudWxsOwog
ICAgICAgICB0aGlzLl9zZWxlY3RvckVsZW1lbnRzID0gW107CiAgICAgICAgIHRoaXMuX3J1bGVE
aXNhYmxlZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9oYXNJbnZhbGlkU2VsZWN0b3IgPSBmYWxz
ZTsKIAogICAgICAgICB0aGlzLl9lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2
Iik7CiAgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZCgic3R5bGUtZGVjbGFyYXRp
b24tc2VjdGlvbiIpOwpAQCAtMTA0LDcgKzEwNSw3IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURl
Y2xhcmF0aW9uU2VjdGlvbiA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uIGV4dGVu
CiAgICAgICAgIGlmIChzdHlsZS5lZGl0YWJsZSkgewogICAgICAgICAgICAgdGhpcy5faWNvbkVs
ZW1lbnQuY2xhc3NMaXN0LmFkZCgidG9nZ2xlLWFibGUiKTsKICAgICAgICAgICAgIHRoaXMuX2lj
b25FbGVtZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb21tZW50IEFsbCBQcm9w
ZXJ0aWVzIik7Ci0gICAgICAgICAgICB0aGlzLl9pY29uRWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCJjbGljayIsIHRoaXMuX3RvZ2dsZVJ1bGVPbk9mZi5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAg
IHRoaXMuX2ljb25FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5faGFuZGxl
SWNvbkVsZW1lbnRDbGlja2VkLmJpbmQodGhpcykpOwogICAgICAgICB9CiAKICAgICAgICAgY29u
c29sZS5hc3NlcnQoaWNvbkNsYXNzTmFtZSk7CkBAIC0yNjMsNiArMjY0LDggQEAgV2ViSW5zcGVj
dG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uID0gY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlv
blNlY3Rpb24gZXh0ZW4KICAgICAgICAgICAgIHRoaXMuX29yaWdpbkVsZW1lbnQuYXBwZW5kKFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiSFRNTCBBdHRyaWJ1dGVzIikpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KKworICAgICAgICB0aGlzLl9tYXJrU2VsZWN0b3IoKTsKICAgICB9CiAK
ICAgICBoaWdobGlnaHRQcm9wZXJ0eShwcm9wZXJ0eSkKQEAgLTQ0NywxMCArNDUwLDEyIEBAIFdl
Ykluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbiA9IGNsYXNzIENTU1N0eWxlRGVj
bGFyYXRpb25TZWN0aW9uIGV4dGVuCiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIF90b2dnbGVS
dWxlT25PZmYoKQorICAgIF9oYW5kbGVJY29uRWxlbWVudENsaWNrZWQoKQogICAgIHsKLSAgICAg
ICAgaWYgKHRoaXMuX2hhc0ludmFsaWRTZWxlY3RvcikKKyAgICAgICAgaWYgKHRoaXMuX2hhc0lu
dmFsaWRTZWxlY3RvcikgeworICAgICAgICAgICAgdGhpcy5yZWZyZXNoKCk7CiAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KIAogICAgICAgICB0aGlzLl9ydWxlRGlzYWJsZWQgPSB0aGlz
Ll9ydWxlRGlzYWJsZWQgPyAhdGhpcy5fcHJvcGVydGllc1RleHRFZGl0b3IudW5jb21tZW50QWxs
UHJvcGVydGllcygpIDogdGhpcy5fcHJvcGVydGllc1RleHRFZGl0b3IuY29tbWVudEFsbFByb3Bl
cnRpZXMoKTsKICAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQudGl0bGUgPSB0aGlzLl9ydWxlRGlz
YWJsZWQgPyBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlVuY29tbWVudCBBbGwgUHJvcGVydGllcyIp
IDogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb21tZW50IEFsbCBQcm9wZXJ0aWVzIik7CkBAIC01
NTcsMjcgKzU2MiwyMiBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24g
PSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbiBleHRlbgogICAgICAgICB0aGlzLl9z
dHlsZS5vd25lclJ1bGUuc2VsZWN0b3JUZXh0ID0gbmV3U2VsZWN0b3JUZXh0OwogICAgIH0KIAot
ICAgIF9tYXJrU2VsZWN0b3IoZXZlbnQpCisgICAgX21hcmtTZWxlY3RvcihldmVudCA9IGZhbHNl
KQogICAgIHsKLSAgICAgICAgdmFyIHZhbGlkID0gZXZlbnQgJiYgZXZlbnQuZGF0YSAmJiBldmVu
dC5kYXRhLnZhbGlkOwotICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLlNlbGVjdG9ySW52YWxpZENsYXNz
TmFtZSwgIXZhbGlkKTsKLSAgICAgICAgaWYgKHZhbGlkKSB7CisgICAgICAgIHRoaXMuX2hhc0lu
dmFsaWRTZWxlY3RvciA9IGV2ZW50ICYmIGV2ZW50LmRhdGEgJiYgIWV2ZW50LmRhdGEudmFsaWQ7
CisgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW52YWxpZC1zZWxlY3Rv
ciIsICEhdGhpcy5faGFzSW52YWxpZFNlbGVjdG9yKTsKKyAgICAgICAgaWYgKCF0aGlzLl9oYXNJ
bnZhbGlkU2VsZWN0b3IpIHsKICAgICAgICAgICAgIHRoaXMuX2ljb25FbGVtZW50LnRpdGxlID0g
dGhpcy5fcnVsZURpc2FibGVkID8gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJVbmNvbW1lbnQgQWxs
IFByb3BlcnRpZXMiKSA6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ29tbWVudCBBbGwgUHJvcGVy
dGllcyIpOwogICAgICAgICAgICAgdGhpcy5fc2VsZWN0b3JFbGVtZW50LnRpdGxlID0gbnVsbDsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIHRoaXMuX2ljb25FbGVt
ZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJUaGUgc2VsZWN0b3IgJyVzJyBpcyBp
bnZhbGlkLiIpLmZvcm1hdCh0aGlzLl9zZWxlY3RvckVsZW1lbnQudGV4dENvbnRlbnQudHJpbSgp
KTsKKyAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlRoZSBzZWxlY3RvciAnJXMnIGlzIGludmFsaWQuXG5DbGljayB0byByZXZlcnQgdG8gdGhl
IHByZXZpb3VzIHNlbGVjdG9yLiIpLmZvcm1hdCh0aGlzLl9zZWxlY3RvckVsZW1lbnQudGV4dENv
bnRlbnQudHJpbSgpKTsKICAgICAgICAgdGhpcy5fc2VsZWN0b3JFbGVtZW50LnRpdGxlID0gV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJVc2luZyB0aGUgcHJldmlvdXMgc2VsZWN0b3IgJyVzJy4iKS5m
b3JtYXQodGhpcy5fc3R5bGUub3duZXJSdWxlLnNlbGVjdG9yVGV4dCk7Ci0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgdGhpcy5fc2VsZWN0b3JFbGVtZW50LmNoaWxkcmVuLmxlbmd0aDsgKytp
KQorICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3NlbGVjdG9yRWxlbWVudC5jaGls
ZHJlbi5sZW5ndGg7ICsraSkKICAgICAgICAgICAgIHRoaXMuX3NlbGVjdG9yRWxlbWVudC5jaGls
ZHJlbltpXS50aXRsZSA9IG51bGw7CiAgICAgfQogCi0gICAgZ2V0IF9oYXNJbnZhbGlkU2VsZWN0
b3IoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmNvbnRh
aW5zKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5TZWxlY3RvckludmFs
aWRDbGFzc05hbWUpOwotICAgIH0KLQogICAgIF9lZGl0b3JDb250ZW50Q2hhbmdlZChldmVudCkK
ICAgICB7CiAgICAgICAgIHRoaXMuX2VkaXRvckFjdGl2ZSA9IHRydWU7CkBAIC01OTYsNyArNTk2
LDYgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLkV2ZW50ID0gewog
CiBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uTG9ja2VkU3R5bGVDbGFz
c05hbWUgPSAibG9ja2VkIjsKIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlv
bi5TZWxlY3RvckxvY2tlZFN0eWxlQ2xhc3NOYW1lID0gInNlbGVjdG9yLWxvY2tlZCI7Ci1XZWJJ
bnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uU2VsZWN0b3JJbnZhbGlkQ2xhc3NO
YW1lID0gImludmFsaWQtc2VsZWN0b3IiOwogV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRp
b25TZWN0aW9uLkxhc3RJbkdyb3VwU3R5bGVDbGFzc05hbWUgPSAibGFzdC1pbi1ncm91cCI7CiBX
ZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uTWF0Y2hlZFNlbGVjdG9yRWxl
bWVudFN0eWxlQ2xhc3NOYW1lID0gIm1hdGNoZWQiOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0
ZW0uY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFs
U3R5bGVTZWxlY3RvclRyZWVJdGVtLmNzcwppbmRleCA5NjUyOWMxNzc3YjM0YWUwNzQ5NTc5ZDFk
NmY1N2U5ZGQwNmMxYzM3Li5hMDdjZmQ0MzRkYTkyN2FlMWRmYmEyZDBlZGMxYzQzMzNiMjU3YmZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9W
aXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0uY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5jc3MKQEAg
LTY5LDExICs2OSwxOCBAQCBib2R5Om5vdCgud2luZG93LWluYWN0aXZlLCAud2luZG93LWRvY2tl
ZC1pbmFjdGl2ZSkgLml0ZW0udmlzdWFsLXN0eWxlLXNlbGVjdG9yLQogfQogCiAuaXRlbS52aXN1
YWwtc3R5bGUtc2VsZWN0b3ItaXRlbS5zZWxlY3Rvci1pbnZhbGlkID4gLmljb24gewotICAgIHdp
ZHRoOiAxNHB4OwogICAgIGhlaWdodDogMTRweDsKICAgICBjb250ZW50OiB1cmwoLi4vSW1hZ2Vz
L0Vycm9yLnN2Zyk7CiB9CiAKKy5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVtLnNlbGVj
dG9yLWludmFsaWQgPiAuaWNvbjpob3ZlciB7CisgICAgZmlsdGVyOiBicmlnaHRuZXNzKDAuOSk7
Cit9CisKKy5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVtLnNlbGVjdG9yLWludmFsaWQg
PiAuaWNvbjphY3RpdmUgeworICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwLjgpOworfQorCiAuaXRl
bS52aXN1YWwtc3R5bGUtc2VsZWN0b3ItaXRlbS5zZWxlY3Rvci1pbnZhbGlkID4gLnRpdGxlcyA+
IC50aXRsZSB7CiAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclRy
ZWVJdGVtLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlz
dWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLmpzCmluZGV4IDkzMTRiYTg3YTQ0OWRiN2MyOTRlZThh
NDFhNjA0ZDhlZTI4MTQ4NDAuLjQ0MWJlMDk0N2MzZmIwYWQ3NTU1ZWE3MjdmMzhkMTU5Y2I5M2Q3
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1Zpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0uanMKQEAg
LTYwLDYgKzYwLDcgQEAgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbSA9
IGNsYXNzIFZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbSBleHQKICAgICAgICAgdGhpcy5faWNv
bkNsYXNzTmFtZSA9IGljb25DbGFzc05hbWU7CiAgICAgICAgIHRoaXMuX2xhc3RWYWx1ZSA9IHRp
dGxlOwogICAgICAgICB0aGlzLl9lbmFibGVFZGl0aW5nID0gdHJ1ZTsKKyAgICAgICAgdGhpcy5f
aGFzSW52YWxpZFNlbGVjdG9yID0gZmFsc2U7CiAgICAgfQogCiAgICAgLy8gUHVibGljCkBAIC05
NSw2ICs5Niw4IEBAIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0gPSBj
bGFzcyBWaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0gZXh0CiAgICAgICAgIHRoaXMuX2NoZWNr
Ym94RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCB0aGlzLl9oYW5kbGVDaGVja2Jv
eENoYW5nZWQuYmluZCh0aGlzKSk7CiAgICAgICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5pbnNlcnRC
ZWZvcmUodGhpcy5fY2hlY2tib3hFbGVtZW50LCB0aGlzLl9pY29uRWxlbWVudCk7CiAKKyAgICAg
ICAgdGhpcy5faWNvbkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9oYW5k
bGVJY29uRWxlbWVudENsaWNrZWQuYmluZCh0aGlzKSk7CisKICAgICAgICAgdGhpcy5fbWFpblRp
dGxlRWxlbWVudC5zcGVsbGNoZWNrID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX21haW5UaXRsZUVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5faGFuZGxlTWFpblRpdGxl
TW91c2VEb3duLmJpbmQodGhpcykpOwogICAgICAgICB0aGlzLl9tYWluVGl0bGVFbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl9oYW5kbGVNYWluVGl0bGVLZXlEb3duLmJp
bmQodGhpcykpOwpAQCAtMTAzLDcgKzEwNiw3IEBAIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVNl
bGVjdG9yVHJlZUl0ZW0gPSBjbGFzcyBWaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0gZXh0CiAK
ICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLkV2ZW50LkluaXRpYWxUZXh0TW9kaWZpZWQsIHRoaXMu
X3N0eWxlVGV4dE1vZGlmaWVkLCB0aGlzKTsKICAgICAgICAgaWYgKHRoaXMucmVwcmVzZW50ZWRP
YmplY3Qub3duZXJSdWxlKQotICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5vd25l
clJ1bGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTUnVsZS5FdmVudC5TZWxlY3Rv
ckNoYW5nZWQsIHRoaXMuX3NlbGVjdG9yQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgICAgICB0aGlz
LnJlcHJlc2VudGVkT2JqZWN0Lm93bmVyUnVsZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5DU1NSdWxlLkV2ZW50LlNlbGVjdG9yQ2hhbmdlZCwgdGhpcy5fbWFya1NlbGVjdG9yLCB0aGlz
KTsKIAogICAgICAgICB0aGlzLl9zdHlsZVRleHRNb2RpZmllZCgpOwogICAgIH0KQEAgLTE5MSw3
ICsxOTQsNyBAQCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtID0gY2xh
c3MgVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtIGV4dAogICAgICAgICB0aGlzLl91cGRhdGVU
aXRsZVRvb2x0aXAoKTsKIAogICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLnNlbGVjdG9yVGV4dDsK
LSAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9sYXN0VmFsdWUgJiYgdGhpcy5fdmFsaWQpCisg
ICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fbGFzdFZhbHVlICYmICF0aGlzLl9oYXNJbnZhbGlk
U2VsZWN0b3IpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdGhpcy5yZXByZXNlbnRl
ZE9iamVjdC5vd25lclJ1bGUuc2VsZWN0b3JUZXh0ID0gdmFsdWU7CkBAIC0yMDIsMTIgKzIwNSwy
NyBAQCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtID0gY2xhc3MgVmlz
dWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtIGV4dAogICAgICAgICB0aGlzLl9saXN0SXRlbU5vZGUu
Y2xhc3NMaXN0LnRvZ2dsZSgibW9kaWZpZWQiLCB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm1vZGlm
aWVkKTsKICAgICB9CiAKLSAgICBfc2VsZWN0b3JDaGFuZ2VkKGV2ZW50KQorICAgIF9tYXJrU2Vs
ZWN0b3IoZXZlbnQgPSBmYWxzZSkKICAgICB7Ci0gICAgICAgIHRoaXMuX3ZhbGlkID0gZXZlbnQg
JiYgZXZlbnQuZGF0YSAmJiBldmVudC5kYXRhLnZhbGlkOwotICAgICAgICB0aGlzLl9saXN0SXRl
bU5vZGUuY2xhc3NMaXN0LnRvZ2dsZSgic2VsZWN0b3ItaW52YWxpZCIsICF0aGlzLl92YWxpZCk7
Ci0gICAgICAgIGxldCBpbnZhbGlkVGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRoZSBz
ZWxlY3RvciAnJXMnIGlzIGludmFsaWQuIikuZm9ybWF0KHRoaXMuc2VsZWN0b3JUZXh0KTsKLSAg
ICAgICAgdGhpcy5faWNvbkVsZW1lbnQudGl0bGUgPSAhdGhpcy5fdmFsaWQgPyBpbnZhbGlkVGl0
bGUgOiBudWxsOworICAgICAgICB0aGlzLl9oYXNJbnZhbGlkU2VsZWN0b3IgPSBldmVudCAmJiBl
dmVudC5kYXRhICYmICFldmVudC5kYXRhLnZhbGlkOworICAgICAgICB0aGlzLl9saXN0SXRlbU5v
ZGUuY2xhc3NMaXN0LnRvZ2dsZSgic2VsZWN0b3ItaW52YWxpZCIsICEhdGhpcy5faGFzSW52YWxp
ZFNlbGVjdG9yKTsKKyAgICAgICAgaWYgKHRoaXMuX2hhc0ludmFsaWRTZWxlY3RvcikgeworICAg
ICAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IlRoZSBzZWxlY3RvciAnJXMnIGlzIGludmFsaWQuXG5DbGljayB0byByZXZlcnQgdG8gdGhlIHBy
ZXZpb3VzIHNlbGVjdG9yLiIpLmZvcm1hdCh0aGlzLnNlbGVjdG9yVGV4dCk7CisgICAgICAgICAg
ICB0aGlzLm1haW5UaXRsZUVsZW1lbnQudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlVz
aW5nIHRoZSBwcmV2aW91cyBzZWxlY3RvciAnJXMnLiIpLmZvcm1hdCh0aGlzLnJlcHJlc2VudGVk
T2JqZWN0Lm93bmVyUnVsZS5zZWxlY3RvclRleHQpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQudGl0bGUgPSBudWxsOworICAgICAg
ICB0aGlzLm1haW5UaXRsZUVsZW1lbnQudGl0bGUgPSBudWxsOworICAgIH0KKworICAgIF9oYW5k
bGVJY29uRWxlbWVudENsaWNrZWQoZXZlbnQpCisgICAgeworICAgICAgICBpZiAodGhpcy5faGFz
SW52YWxpZFNlbGVjdG9yICYmIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qub3duZXJSdWxlKSB7Cisg
ICAgICAgICAgICB0aGlzLm1haW5UaXRsZUVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLl9sYXN0
VmFsdWUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm93bmVyUnVsZS5zZWxlY3RvclRleHQ7Cisg
ICAgICAgICAgICB0aGlzLl9tYXJrU2VsZWN0b3IoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQogICAgIH0KIH07CiAK
</data>
<flag name="review"
          id="292701"
          type_id="1"
          status="+"
          setter="bburg"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267978</attachid>
            <date>2015-12-28 20:15:49 -0800</date>
            <delta_ts>2015-12-28 20:18:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>152456.diff</filename>
            <type>text/plain</type>
            <size>14592</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDFiYTZkN2YuLmRkMzhkZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMTQzLDYgKzE0Myw1NCBAQAogICAgICAgICBUaGlzIGF0dGVtcHRz
IHRvIGNyZWF0ZSBhIENhbGxGcmFtZSBmcm9tIGEgQ29uc29sZS5DYWxsRnJhbWUgcGF5bG9hZCwK
ICAgICAgICAgYnV0IHRoaXMgd2FzIG1pc3NpbmcgdGhlIHJlcXVpcmVkIGZ1bmN0aW9uTmFtZSBz
dHJpbmcgcGFyYW1ldGVyLgogCisyMDE1LTEyLTE4ICBEZXZpbiBSb3Vzc28gIDxkY3JvdXNzbyt3
ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFN0eWxpbmcgb2YgaW52
YWxpZCBzZWxlY3RvciBwZXJzaXN0cyB3aGVuIGNoYW5naW5nIHRoZSBzZWxlY3RlZCBub2RlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI0NTYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBCcmlhbiBCdXJnLgorCisgICAgICAgIElmIHRoZSB1c2VyIGNo
YW5nZXMgdGhlIHNlbGVjdG9yIG9mIGEgQ1NTIHJ1bGUgdG8gYmUgaW52YWxpZCAoZS5nLiBoYXZp
bmcKKyAgICAgICAgYSB7IG9yIDsgY2hhcmFjdGVyKSwgaXQgaXMgZXhwZWN0ZWQgdGhhdCB0aGUg
aW52YWxpZCBpbmRpY2F0b3Igd2lsbCBiZSByZW1vdmVkCisgICAgICAgIG9uY2UgdGhlIHVzZXIg
Y2hhbmdlcyBub2RlcyBvciByZXZlcnRzIHRoZSBzZWxlY3RvciB0byBpdHMgcHJldmlvdXMgdmFs
dWUuCisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3Mu
anM6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2Vj
dGlvbi5jc3M6CisgICAgICAgICguc3R5bGUtZGVjbGFyYXRpb24tc2VjdGlvbiA+IC5oZWFkZXIg
PiAuaWNvbi50b2dnbGUtYWJsZTpob3Zlcik6CisgICAgICAgICguc3R5bGUtZGVjbGFyYXRpb24t
c2VjdGlvbiA+IC5oZWFkZXIgPiAuaWNvbi50b2dnbGUtYWJsZTphY3RpdmUpOgorICAgICAgICAo
LnN0eWxlLWRlY2xhcmF0aW9uLXNlY3Rpb246bm90KC5pbnZhbGlkLXNlbGVjdG9yKSA+IC5oZWFk
ZXIgPiAuaWNvbi50b2dnbGUtYWJsZTpob3Zlcik6IERlbGV0ZWQuCisgICAgICAgIEFkZGVkIGJl
dHRlciA6aG92ZXIgYW5kIDphY3RpdmUgc3R5bGVzLgorCisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
Q1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24ucHJvdG90eXBlLnJlZnJlc2gpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLnByb3RvdHlwZS5faGFuZGxl
SWNvbkVsZW1lbnRDbGlja2VkKToKKyAgICAgICAgSWYgdGhlIHNlbGVjdG9yIGlzIGludmFsaWQs
IHNpbXBseSByZWZyZXNoIHRoZSBzZWN0aW9uIHRvIHJlZ2VuZXJhdGUgdGhlCisgICAgICAgIG9y
aWdpbmFsIHNlbGVjdG9yIHdpdGggY29ycmVjdCBjb250ZW50LCBzcGVjaWZpY2l0eSwgYW5kIGhp
Z2hsaWdodGluZy4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25T
ZWN0aW9uLnByb3RvdHlwZS5nZXQgX2hhc0ludmFsaWRTZWxlY3Rvcik6IERlbGV0ZWQuCisgICAg
ICAgIE1vdmVkIHRoZSBzdGF0ZSBvZiB0aGUgaW52YWxpZCBzZWxlY3RvciB0byBhIG1lbWJlcgor
ICAgICAgICB2YXJpYWJsZSBpbnN0ZWFkIG9mIGEgRE9NIGNsYXNzLgorCisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24ucHJvdG90eXBlLl91cGRhdGVTZWxl
Y3Rvckljb24pOgorICAgICAgICBSZW5hbWVkIGZyb20gX21hcmtTZWxlY3RvciBmb3IgY2xhcml0
eS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclRy
ZWVJdGVtLmNzczoKKyAgICAgICAgKC5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVtLnNl
bGVjdG9yLWludmFsaWQgPiAuaWNvbjpob3Zlcik6CisgICAgICAgICguaXRlbS52aXN1YWwtc3R5
bGUtc2VsZWN0b3ItaXRlbS5zZWxlY3Rvci1pbnZhbGlkID4gLmljb246YWN0aXZlKToKKyAgICAg
ICAgKC5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVtLnNlbGVjdG9yLWludmFsaWQgPiAu
aWNvbik6CisgICAgICAgIEFkZGVkIDpob3ZlciBhbmQgOmFjdGl2ZSBzdHlsZXMuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0pOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5wcm90b3R5cGUu
b25hdHRhY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVl
SXRlbS5wcm90b3R5cGUuX2NvbW1pdFNlbGVjdG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5W
aXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0ucHJvdG90eXBlLl91cGRhdGVTZWxlY3Rvckljb24p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5wcm90
b3R5cGUuX2hhbmRsZUljb25FbGVtZW50Q2xpY2tlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLnByb3RvdHlwZS5fc2VsZWN0b3JDaGFuZ2VkKTog
RGVsZXRlZC4KKyAgICAgICAgQ2hhbmdlZCB0aGUgbmFtZXMgb2YgYSBmZXcgZnVuY3Rpb25zIHRv
IHByb3ZpZGUgYmV0dGVyCisgICAgICAgIGNvbnNpc3RlbmN5IGFjcm9zcyB0aGUgY2xhc3NlcyBp
biB0aGUgU3R5bGUgc2lkZWJhci4KKwogMjAxNS0xMi0xNyAgSm9zZXBoIFBlY29yYXJvICA8cGVj
b3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFByb3ZpZGUgYSB3YXkgdG8gZGlzdGluZ3Vpc2gg
YSBuZXN0ZWQgbGV4aWNhbCBibG9jayBmcm9tIGEgZnVuY3Rpb24ncyBsZXhpY2FsIGJsb2NrCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9s
b2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMv
ZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCBhNzcyZmM3Li44NDkzZjYzIDEwMDY0
NApCaW5hcnkgZmlsZXMgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5s
cHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGFuZCBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2Nh
bGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgZGlmZmVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xh
cmF0aW9uU2VjdGlvbi5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5jc3MKaW5kZXggZGMzYTNiOC4uOWVjYjk1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
Q1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uY3NzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmNzcwpAQCAt
NzIsMTAgKzcyLDE0IEBACiAgICAgaGVpZ2h0OiAxNnB4OwogfQogCi0uc3R5bGUtZGVjbGFyYXRp
b24tc2VjdGlvbjpub3QoLmludmFsaWQtc2VsZWN0b3IpID4gLmhlYWRlciA+IC5pY29uLnRvZ2ds
ZS1hYmxlOmhvdmVyIHsKKy5zdHlsZS1kZWNsYXJhdGlvbi1zZWN0aW9uID4gLmhlYWRlciA+IC5p
Y29uLnRvZ2dsZS1hYmxlOmhvdmVyIHsKICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMC45KTsKIH0K
IAorLnN0eWxlLWRlY2xhcmF0aW9uLXNlY3Rpb24gPiAuaGVhZGVyID4gLmljb24udG9nZ2xlLWFi
bGU6YWN0aXZlIHsKKyAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMC44KTsKK30KKwogLnN0eWxlLWRl
Y2xhcmF0aW9uLXNlY3Rpb246bm90KC5pbnZhbGlkLXNlbGVjdG9yKS5ydWxlLWRpc2FibGVkID4g
LmhlYWRlciA+IC5pY29uIHsKICAgICBvcGFjaXR5OiAwLjU7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9u
U2VjdGlvbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NT
U1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpzCmluZGV4IDE5NDFjN2MuLjgxZjBlZDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxl
RGVjbGFyYXRpb25TZWN0aW9uLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmpzCkBAIC0zNiw2ICszNiw3
IEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbiA9IGNsYXNzIENTU1N0
eWxlRGVjbGFyYXRpb25TZWN0aW9uIGV4dGVuCiAgICAgICAgIHRoaXMuX3N0eWxlID0gc3R5bGUg
fHwgbnVsbDsKICAgICAgICAgdGhpcy5fc2VsZWN0b3JFbGVtZW50cyA9IFtdOwogICAgICAgICB0
aGlzLl9ydWxlRGlzYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5faGFzSW52YWxpZFNlbGVj
dG9yID0gZmFsc2U7CiAKICAgICAgICAgdGhpcy5fZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOwogICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoInN0eWxl
LWRlY2xhcmF0aW9uLXNlY3Rpb24iKTsKQEAgLTEwNCw3ICsxMDUsNyBAQCBXZWJJbnNwZWN0b3Iu
Q1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24gPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uU2Vj
dGlvbiBleHRlbgogICAgICAgICBpZiAoc3R5bGUuZWRpdGFibGUpIHsKICAgICAgICAgICAgIHRo
aXMuX2ljb25FbGVtZW50LmNsYXNzTGlzdC5hZGQoInRvZ2dsZS1hYmxlIik7CiAgICAgICAgICAg
ICB0aGlzLl9pY29uRWxlbWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ29tbWVu
dCBBbGwgUHJvcGVydGllcyIpOwotICAgICAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl90b2dnbGVSdWxlT25PZmYuYmluZCh0aGlzKSk7Cisg
ICAgICAgICAgICB0aGlzLl9pY29uRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRo
aXMuX2hhbmRsZUljb25FbGVtZW50Q2xpY2tlZC5iaW5kKHRoaXMpKTsKICAgICAgICAgfQogCiAg
ICAgICAgIGNvbnNvbGUuYXNzZXJ0KGljb25DbGFzc05hbWUpOwpAQCAtMTEzLDcgKzExNCw3IEBA
IFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbiA9IGNsYXNzIENTU1N0eWxl
RGVjbGFyYXRpb25TZWN0aW9uIGV4dGVuCiAgICAgICAgIGlmICghc3R5bGUuZWRpdGFibGUpCiAg
ICAgICAgICAgICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoV2ViSW5zcGVjdG9yLkNTU1N0
eWxlRGVjbGFyYXRpb25TZWN0aW9uLkxvY2tlZFN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgZWxz
ZSBpZiAoc3R5bGUub3duZXJSdWxlKSB7Ci0gICAgICAgICAgICB0aGlzLl9zdHlsZS5vd25lclJ1
bGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTUnVsZS5FdmVudC5TZWxlY3RvckNo
YW5nZWQsIHRoaXMuX21hcmtTZWxlY3Rvci5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgIHRoaXMu
X3N0eWxlLm93bmVyUnVsZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5DU1NSdWxlLkV2
ZW50LlNlbGVjdG9yQ2hhbmdlZCwgdGhpcy5fdXBkYXRlU2VsZWN0b3JJY29uLmJpbmQodGhpcykp
OwogICAgICAgICAgICAgdGhpcy5fY29tbWl0U2VsZWN0b3JLZXlib2FyZFNob3J0Y3V0ID0gbmV3
IFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0KG51bGwsIFdlYkluc3BlY3Rvci5LZXlib2Fy
ZFNob3J0Y3V0LktleS5FbnRlciwgdGhpcy5fY29tbWl0U2VsZWN0b3IuYmluZCh0aGlzKSwgdGhp
cy5fc2VsZWN0b3JFbGVtZW50KTsKICAgICAgICAgICAgIHRoaXMuX3NlbGVjdG9yRWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCJibHVyIiwgdGhpcy5fY29tbWl0U2VsZWN0b3IuYmluZCh0aGlzKSk7
CiAgICAgICAgIH0gZWxzZQpAQCAtMjYzLDYgKzI2NCw4IEBAIFdlYkluc3BlY3Rvci5DU1NTdHls
ZURlY2xhcmF0aW9uU2VjdGlvbiA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uIGV4
dGVuCiAgICAgICAgICAgICB0aGlzLl9vcmlnaW5FbGVtZW50LmFwcGVuZChXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIkhUTUwgQXR0cmlidXRlcyIpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CisKKyAgICAgICAgdGhpcy5fdXBkYXRlU2VsZWN0b3JJY29uKCk7CiAgICAgfQogCiAgICAg
aGlnaGxpZ2h0UHJvcGVydHkocHJvcGVydHkpCkBAIC00NDcsMTAgKzQ1MCwxMyBAQCBXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24gPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0
aW9uU2VjdGlvbiBleHRlbgogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBfdG9nZ2xlUnVsZU9u
T2ZmKCkKKyAgICBfaGFuZGxlSWNvbkVsZW1lbnRDbGlja2VkKCkKICAgICB7Ci0gICAgICAgIGlm
ICh0aGlzLl9oYXNJbnZhbGlkU2VsZWN0b3IpCisgICAgICAgIGlmICh0aGlzLl9oYXNJbnZhbGlk
U2VsZWN0b3IpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgd2lsbCByZXZlcnQgdGhlIHNlbGVjdG9y
IHRleHQgdG8gdGhlIG9yaWdpbmFsIHZhbGlkIHZhbHVlLgorICAgICAgICAgICAgdGhpcy5yZWZy
ZXNoKCk7CiAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAogICAgICAgICB0aGlzLl9y
dWxlRGlzYWJsZWQgPSB0aGlzLl9ydWxlRGlzYWJsZWQgPyAhdGhpcy5fcHJvcGVydGllc1RleHRF
ZGl0b3IudW5jb21tZW50QWxsUHJvcGVydGllcygpIDogdGhpcy5fcHJvcGVydGllc1RleHRFZGl0
b3IuY29tbWVudEFsbFByb3BlcnRpZXMoKTsKICAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQudGl0
bGUgPSB0aGlzLl9ydWxlRGlzYWJsZWQgPyBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlVuY29tbWVu
dCBBbGwgUHJvcGVydGllcyIpIDogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb21tZW50IEFsbCBQ
cm9wZXJ0aWVzIik7CkBAIC01NTcsMjcgKzU2MywyNSBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVE
ZWNsYXJhdGlvblNlY3Rpb24gPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbiBleHRl
bgogICAgICAgICB0aGlzLl9zdHlsZS5vd25lclJ1bGUuc2VsZWN0b3JUZXh0ID0gbmV3U2VsZWN0
b3JUZXh0OwogICAgIH0KIAotICAgIF9tYXJrU2VsZWN0b3IoZXZlbnQpCisgICAgX3VwZGF0ZVNl
bGVjdG9ySWNvbihldmVudCkKICAgICB7Ci0gICAgICAgIHZhciB2YWxpZCA9IGV2ZW50ICYmIGV2
ZW50LmRhdGEgJiYgZXZlbnQuZGF0YS52YWxpZDsKLSAgICAgICAgdGhpcy5fZWxlbWVudC5jbGFz
c0xpc3QudG9nZ2xlKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5TZWxl
Y3RvckludmFsaWRDbGFzc05hbWUsICF2YWxpZCk7Ci0gICAgICAgIGlmICh2YWxpZCkgeworICAg
ICAgICBpZiAoIXRoaXMuX3N0eWxlLm93bmVyUnVsZSB8fCAhdGhpcy5fc3R5bGUuZWRpdGFibGUp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5faGFzSW52YWxpZFNlbGVjdG9y
ID0gZXZlbnQgJiYgZXZlbnQuZGF0YSAmJiAhZXZlbnQuZGF0YS52YWxpZDsKKyAgICAgICAgdGhp
cy5fZWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCJpbnZhbGlkLXNlbGVjdG9yIiwgISF0aGlzLl9o
YXNJbnZhbGlkU2VsZWN0b3IpOworICAgICAgICBpZiAoIXRoaXMuX2hhc0ludmFsaWRTZWxlY3Rv
cikgewogICAgICAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQudGl0bGUgPSB0aGlzLl9ydWxlRGlz
YWJsZWQgPyBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlVuY29tbWVudCBBbGwgUHJvcGVydGllcyIp
IDogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJDb21tZW50IEFsbCBQcm9wZXJ0aWVzIik7CiAgICAg
ICAgICAgICB0aGlzLl9zZWxlY3RvckVsZW1lbnQudGl0bGUgPSBudWxsOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQudGl0bGUgPSBX
ZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRoZSBzZWxlY3RvciAnJXMnIGlzIGludmFsaWQuIikuZm9y
bWF0KHRoaXMuX3NlbGVjdG9yRWxlbWVudC50ZXh0Q29udGVudC50cmltKCkpOworICAgICAgICB0
aGlzLl9pY29uRWxlbWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGhlIHNlbGVj
dG9yICclcycgaXMgaW52YWxpZC5cbkNsaWNrIHRvIHJldmVydCB0byB0aGUgcHJldmlvdXMgc2Vs
ZWN0b3IuIikuZm9ybWF0KHRoaXMuX3NlbGVjdG9yRWxlbWVudC50ZXh0Q29udGVudC50cmltKCkp
OwogICAgICAgICB0aGlzLl9zZWxlY3RvckVsZW1lbnQudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlVzaW5nIHRoZSBwcmV2aW91cyBzZWxlY3RvciAnJXMnLiIpLmZvcm1hdCh0aGlzLl9z
dHlsZS5vd25lclJ1bGUuc2VsZWN0b3JUZXh0KTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCB0aGlzLl9zZWxlY3RvckVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoOyArK2kpCisgICAgICAgIGZv
ciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fc2VsZWN0b3JFbGVtZW50LmNoaWxkcmVuLmxlbmd0aDsg
KytpKQogICAgICAgICAgICAgdGhpcy5fc2VsZWN0b3JFbGVtZW50LmNoaWxkcmVuW2ldLnRpdGxl
ID0gbnVsbDsKICAgICB9CiAKLSAgICBnZXQgX2hhc0ludmFsaWRTZWxlY3RvcigpCi0gICAgewot
ICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoV2ViSW5zcGVj
dG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLlNlbGVjdG9ySW52YWxpZENsYXNzTmFtZSk7
Ci0gICAgfQotCiAgICAgX2VkaXRvckNvbnRlbnRDaGFuZ2VkKGV2ZW50KQogICAgIHsKICAgICAg
ICAgdGhpcy5fZWRpdG9yQWN0aXZlID0gdHJ1ZTsKQEAgLTU5Niw3ICs2MDAsNiBAQCBXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uRXZlbnQgPSB7CiAKIFdlYkluc3BlY3Rv
ci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5Mb2NrZWRTdHlsZUNsYXNzTmFtZSA9ICJsb2Nr
ZWQiOwogV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLlNlbGVjdG9yTG9j
a2VkU3R5bGVDbGFzc05hbWUgPSAic2VsZWN0b3ItbG9ja2VkIjsKLVdlYkluc3BlY3Rvci5DU1NT
dHlsZURlY2xhcmF0aW9uU2VjdGlvbi5TZWxlY3RvckludmFsaWRDbGFzc05hbWUgPSAiaW52YWxp
ZC1zZWxlY3RvciI7CiBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uTGFz
dEluR3JvdXBTdHlsZUNsYXNzTmFtZSA9ICJsYXN0LWluLWdyb3VwIjsKIFdlYkluc3BlY3Rvci5D
U1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5NYXRjaGVkU2VsZWN0b3JFbGVtZW50U3R5bGVDbGFz
c05hbWUgPSAibWF0Y2hlZCI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5jc3MgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9y
VHJlZUl0ZW0uY3NzCmluZGV4IDk2NTI5YzEuLmEwN2NmZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JUcmVl
SXRlbS5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
VmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLmNzcwpAQCAtNjksMTEgKzY5LDE4IEBAIGJvZHk6
bm90KC53aW5kb3ctaW5hY3RpdmUsIC53aW5kb3ctZG9ja2VkLWluYWN0aXZlKSAuaXRlbS52aXN1
YWwtc3R5bGUtc2VsZWN0b3ItCiB9CiAKIC5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVt
LnNlbGVjdG9yLWludmFsaWQgPiAuaWNvbiB7Ci0gICAgd2lkdGg6IDE0cHg7CiAgICAgaGVpZ2h0
OiAxNHB4OwogICAgIGNvbnRlbnQ6IHVybCguLi9JbWFnZXMvRXJyb3Iuc3ZnKTsKIH0KIAorLml0
ZW0udmlzdWFsLXN0eWxlLXNlbGVjdG9yLWl0ZW0uc2VsZWN0b3ItaW52YWxpZCA+IC5pY29uOmhv
dmVyIHsKKyAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMC45KTsKK30KKworLml0ZW0udmlzdWFsLXN0
eWxlLXNlbGVjdG9yLWl0ZW0uc2VsZWN0b3ItaW52YWxpZCA+IC5pY29uOmFjdGl2ZSB7CisgICAg
ZmlsdGVyOiBicmlnaHRuZXNzKDAuOCk7Cit9CisKIC5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rv
ci1pdGVtLnNlbGVjdG9yLWludmFsaWQgPiAudGl0bGVzID4gLnRpdGxlIHsKICAgICBwb3NpdGlv
bjogcmVsYXRpdmU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0uanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0
ZW0uanMKaW5kZXggOTMxNGJhOC4uMjJhOGNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0
eWxlU2VsZWN0b3JUcmVlSXRlbS5qcwpAQCAtNjAsNiArNjAsNyBAQCBXZWJJbnNwZWN0b3IuVmlz
dWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtID0gY2xhc3MgVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJ
dGVtIGV4dAogICAgICAgICB0aGlzLl9pY29uQ2xhc3NOYW1lID0gaWNvbkNsYXNzTmFtZTsKICAg
ICAgICAgdGhpcy5fbGFzdFZhbHVlID0gdGl0bGU7CiAgICAgICAgIHRoaXMuX2VuYWJsZUVkaXRp
bmcgPSB0cnVlOworICAgICAgICB0aGlzLl9oYXNJbnZhbGlkU2VsZWN0b3IgPSBmYWxzZTsKICAg
ICB9CiAKICAgICAvLyBQdWJsaWMKQEAgLTk1LDYgKzk2LDggQEAgV2ViSW5zcGVjdG9yLlZpc3Vh
bFN0eWxlU2VsZWN0b3JUcmVlSXRlbSA9IGNsYXNzIFZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRl
bSBleHQKICAgICAgICAgdGhpcy5fY2hlY2tib3hFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNo
YW5nZSIsIHRoaXMuX2hhbmRsZUNoZWNrYm94Q2hhbmdlZC5iaW5kKHRoaXMpKTsKICAgICAgICAg
dGhpcy5fbGlzdEl0ZW1Ob2RlLmluc2VydEJlZm9yZSh0aGlzLl9jaGVja2JveEVsZW1lbnQsIHRo
aXMuX2ljb25FbGVtZW50KTsKIAorICAgICAgICB0aGlzLl9pY29uRWxlbWVudC5hZGRFdmVudExp
c3RlbmVyKCJjbGljayIsIHRoaXMuX2hhbmRsZUljb25FbGVtZW50Q2xpY2tlZC5iaW5kKHRoaXMp
KTsKKwogICAgICAgICB0aGlzLl9tYWluVGl0bGVFbGVtZW50LnNwZWxsY2hlY2sgPSBmYWxzZTsK
ICAgICAgICAgdGhpcy5fbWFpblRpdGxlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRv
d24iLCB0aGlzLl9oYW5kbGVNYWluVGl0bGVNb3VzZURvd24uYmluZCh0aGlzKSk7CiAgICAgICAg
IHRoaXMuX21haW5UaXRsZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMu
X2hhbmRsZU1haW5UaXRsZUtleURvd24uYmluZCh0aGlzKSk7CkBAIC0xMDMsNyArMTA2LDcgQEAg
V2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbSA9IGNsYXNzIFZpc3VhbFN0
eWxlU2VsZWN0b3JUcmVlSXRlbSBleHQKIAogICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0
LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24uRXZlbnQu
SW5pdGlhbFRleHRNb2RpZmllZCwgdGhpcy5fc3R5bGVUZXh0TW9kaWZpZWQsIHRoaXMpOwogICAg
ICAgICBpZiAodGhpcy5yZXByZXNlbnRlZE9iamVjdC5vd25lclJ1bGUpCi0gICAgICAgICAgICB0
aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm93bmVyUnVsZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5DU1NSdWxlLkV2ZW50LlNlbGVjdG9yQ2hhbmdlZCwgdGhpcy5fc2VsZWN0b3JDaGFuZ2Vk
LCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qub3duZXJSdWxlLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1J1bGUuRXZlbnQuU2VsZWN0b3JDaGFuZ2Vk
LCB0aGlzLl91cGRhdGVTZWxlY3Rvckljb24sIHRoaXMpOwogCiAgICAgICAgIHRoaXMuX3N0eWxl
VGV4dE1vZGlmaWVkKCk7CiAgICAgfQpAQCAtMTkxLDcgKzE5NCw3IEBAIFdlYkluc3BlY3Rvci5W
aXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0gPSBjbGFzcyBWaXN1YWxTdHlsZVNlbGVjdG9yVHJl
ZUl0ZW0gZXh0CiAgICAgICAgIHRoaXMuX3VwZGF0ZVRpdGxlVG9vbHRpcCgpOwogCiAgICAgICAg
IGxldCB2YWx1ZSA9IHRoaXMuc2VsZWN0b3JUZXh0OwotICAgICAgICBpZiAodmFsdWUgPT09IHRo
aXMuX2xhc3RWYWx1ZSAmJiB0aGlzLl92YWxpZCkKKyAgICAgICAgaWYgKHZhbHVlID09PSB0aGlz
Ll9sYXN0VmFsdWUgJiYgIXRoaXMuX2hhc0ludmFsaWRTZWxlY3RvcikKICAgICAgICAgICAgIHJl
dHVybjsKIAogICAgICAgICB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm93bmVyUnVsZS5zZWxlY3Rv
clRleHQgPSB2YWx1ZTsKQEAgLTIwMiwxMiArMjA1LDI3IEBAIFdlYkluc3BlY3Rvci5WaXN1YWxT
dHlsZVNlbGVjdG9yVHJlZUl0ZW0gPSBjbGFzcyBWaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0g
ZXh0CiAgICAgICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5jbGFzc0xpc3QudG9nZ2xlKCJtb2RpZmll
ZCIsIHRoaXMucmVwcmVzZW50ZWRPYmplY3QubW9kaWZpZWQpOwogICAgIH0KIAotICAgIF9zZWxl
Y3RvckNoYW5nZWQoZXZlbnQpCisgICAgX3VwZGF0ZVNlbGVjdG9ySWNvbihldmVudCkKICAgICB7
Ci0gICAgICAgIHRoaXMuX3ZhbGlkID0gZXZlbnQgJiYgZXZlbnQuZGF0YSAmJiBldmVudC5kYXRh
LnZhbGlkOwotICAgICAgICB0aGlzLl9saXN0SXRlbU5vZGUuY2xhc3NMaXN0LnRvZ2dsZSgic2Vs
ZWN0b3ItaW52YWxpZCIsICF0aGlzLl92YWxpZCk7Ci0gICAgICAgIGxldCBpbnZhbGlkVGl0bGUg
PSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRoZSBzZWxlY3RvciAnJXMnIGlzIGludmFsaWQuIiku
Zm9ybWF0KHRoaXMuc2VsZWN0b3JUZXh0KTsKLSAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQudGl0
bGUgPSAhdGhpcy5fdmFsaWQgPyBpbnZhbGlkVGl0bGUgOiBudWxsOworICAgICAgICB0aGlzLl9o
YXNJbnZhbGlkU2VsZWN0b3IgPSBldmVudCAmJiBldmVudC5kYXRhICYmICFldmVudC5kYXRhLnZh
bGlkOworICAgICAgICB0aGlzLl9saXN0SXRlbU5vZGUuY2xhc3NMaXN0LnRvZ2dsZSgic2VsZWN0
b3ItaW52YWxpZCIsICEhdGhpcy5faGFzSW52YWxpZFNlbGVjdG9yKTsKKyAgICAgICAgaWYgKHRo
aXMuX2hhc0ludmFsaWRTZWxlY3RvcikgeworICAgICAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQu
dGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRoZSBzZWxlY3RvciAnJXMnIGlzIGludmFs
aWQuXG5DbGljayB0byByZXZlcnQgdG8gdGhlIHByZXZpb3VzIHNlbGVjdG9yLiIpLmZvcm1hdCh0
aGlzLnNlbGVjdG9yVGV4dCk7CisgICAgICAgICAgICB0aGlzLm1haW5UaXRsZUVsZW1lbnQudGl0
bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlVzaW5nIHRoZSBwcmV2aW91cyBzZWxlY3RvciAn
JXMnLiIpLmZvcm1hdCh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm93bmVyUnVsZS5zZWxlY3RvclRl
eHQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5faWNv
bkVsZW1lbnQudGl0bGUgPSBudWxsOworICAgICAgICB0aGlzLm1haW5UaXRsZUVsZW1lbnQudGl0
bGUgPSBudWxsOworICAgIH0KKworICAgIF9oYW5kbGVJY29uRWxlbWVudENsaWNrZWQoZXZlbnQp
CisgICAgeworICAgICAgICBpZiAodGhpcy5faGFzSW52YWxpZFNlbGVjdG9yICYmIHRoaXMucmVw
cmVzZW50ZWRPYmplY3Qub3duZXJSdWxlKSB7CisgICAgICAgICAgICB0aGlzLm1haW5UaXRsZUVs
ZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLl9sYXN0VmFsdWUgPSB0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0Lm93bmVyUnVsZS5zZWxlY3RvclRleHQ7CisgICAgICAgICAgICB0aGlzLl91cGRhdGVTZWxl
Y3Rvckljb24oKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogICAgIH0KIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267979</attachid>
            <date>2015-12-28 20:17:26 -0800</date>
            <delta_ts>2015-12-29 09:17:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>152456.diff</filename>
            <type>text/plain</type>
            <size>14426</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDFiYTZkN2YuLjkxYjQ0NjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE1LTEyLTI4ICBEZXZpbiBSb3Vzc28g
IDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFN0
eWxpbmcgb2YgaW52YWxpZCBzZWxlY3RvciBwZXJzaXN0cyB3aGVuIGNoYW5naW5nIHRoZSBzZWxl
Y3RlZCBub2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTI0NTYKKworICAgICAgICBSZXZpZXdlZCBieSBCcmlhbiBCdXJnLgorCisgICAgICAgIElm
IHRoZSB1c2VyIGNoYW5nZXMgdGhlIHNlbGVjdG9yIG9mIGEgQ1NTIHJ1bGUgdG8gYmUgaW52YWxp
ZCAoZS5nLiBoYXZpbmcKKyAgICAgICAgYSB7IG9yIDsgY2hhcmFjdGVyKSwgaXQgaXMgZXhwZWN0
ZWQgdGhhdCB0aGUgaW52YWxpZCBpbmRpY2F0b3Igd2lsbCBiZSByZW1vdmVkCisgICAgICAgIG9u
Y2UgdGhlIHVzZXIgY2hhbmdlcyBub2RlcyBvciByZXZlcnRzIHRoZSBzZWxlY3RvciB0byBpdHMg
cHJldmlvdXMgdmFsdWUuCisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2Fs
aXplZFN0cmluZ3MuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURl
Y2xhcmF0aW9uU2VjdGlvbi5jc3M6CisgICAgICAgICguc3R5bGUtZGVjbGFyYXRpb24tc2VjdGlv
biA+IC5oZWFkZXIgPiAuaWNvbi50b2dnbGUtYWJsZTpob3Zlcik6CisgICAgICAgICguc3R5bGUt
ZGVjbGFyYXRpb24tc2VjdGlvbiA+IC5oZWFkZXIgPiAuaWNvbi50b2dnbGUtYWJsZTphY3RpdmUp
OgorICAgICAgICAoLnN0eWxlLWRlY2xhcmF0aW9uLXNlY3Rpb246bm90KC5pbnZhbGlkLXNlbGVj
dG9yKSA+IC5oZWFkZXIgPiAuaWNvbi50b2dnbGUtYWJsZTpob3Zlcik6IERlbGV0ZWQuCisgICAg
ICAgIEFkZGVkIGJldHRlciA6aG92ZXIgYW5kIDphY3RpdmUgc3R5bGVzLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24ucHJvdG90eXBlLnJlZnJlc2gp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLnByb3Rv
dHlwZS5faGFuZGxlSWNvbkVsZW1lbnRDbGlja2VkKToKKyAgICAgICAgSWYgdGhlIHNlbGVjdG9y
IGlzIGludmFsaWQsIHNpbXBseSByZWZyZXNoIHRoZSBzZWN0aW9uIHRvIHJlZ2VuZXJhdGUgdGhl
CisgICAgICAgIG9yaWdpbmFsIHNlbGVjdG9yIHdpdGggY29ycmVjdCBjb250ZW50LCBzcGVjaWZp
Y2l0eSwgYW5kIGhpZ2hsaWdodGluZy4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxl
RGVjbGFyYXRpb25TZWN0aW9uLnByb3RvdHlwZS5nZXQgX2hhc0ludmFsaWRTZWxlY3Rvcik6IERl
bGV0ZWQuCisgICAgICAgIE1vdmVkIHRoZSBzdGF0ZSBvZiB0aGUgaW52YWxpZCBzZWxlY3RvciB0
byBhIG1lbWJlcgorICAgICAgICB2YXJpYWJsZSBpbnN0ZWFkIG9mIGEgRE9NIGNsYXNzLgorCisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24ucHJvdG90eXBl
Ll91cGRhdGVTZWxlY3Rvckljb24pOgorICAgICAgICBSZW5hbWVkIGZyb20gX21hcmtTZWxlY3Rv
ciBmb3IgY2xhcml0eS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5
bGVTZWxlY3RvclRyZWVJdGVtLmNzczoKKyAgICAgICAgKC5pdGVtLnZpc3VhbC1zdHlsZS1zZWxl
Y3Rvci1pdGVtLnNlbGVjdG9yLWludmFsaWQgPiAuaWNvbjpob3Zlcik6CisgICAgICAgICguaXRl
bS52aXN1YWwtc3R5bGUtc2VsZWN0b3ItaXRlbS5zZWxlY3Rvci1pbnZhbGlkID4gLmljb246YWN0
aXZlKToKKyAgICAgICAgKC5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVtLnNlbGVjdG9y
LWludmFsaWQgPiAuaWNvbik6CisgICAgICAgIEFkZGVkIDpob3ZlciBhbmQgOmFjdGl2ZSBzdHls
ZXMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JU
cmVlSXRlbS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yVHJl
ZUl0ZW0pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRl
bS5wcm90b3R5cGUub25hdHRhY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxl
U2VsZWN0b3JUcmVlSXRlbS5wcm90b3R5cGUuX2NvbW1pdFNlbGVjdG9yKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0ucHJvdG90eXBlLl91cGRhdGVT
ZWxlY3Rvckljb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JU
cmVlSXRlbS5wcm90b3R5cGUuX2hhbmRsZUljb25FbGVtZW50Q2xpY2tlZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLnByb3RvdHlwZS5fc2VsZWN0
b3JDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgQ2hhbmdlZCB0aGUgbmFtZXMgb2YgYSBmZXcg
ZnVuY3Rpb25zIHRvIHByb3ZpZGUgYmV0dGVyCisgICAgICAgIGNvbnNpc3RlbmN5IGFjcm9zcyB0
aGUgY2xhc3NlcyBpbiB0aGUgU3R5bGUgc2lkZWJhci4KKwogMjAxNS0xMi0yNyAgQnJpYW4gQnVy
ZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBpbXByb3ZlIHBy
ZS1maWxsZWQgYnVnemlsbGEgbGluayBvbiBVbmNhdWdodCBFeGNlcHRpb24gcmVwb3J0ZXIgc2hl
ZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxw
cm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0
aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IGE3NzJmYzcuLjg0OTNmNjMg
MTAwNjQ0CkJpbmFyeSBmaWxlcyBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25z
L2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYW5kIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBkaWZmZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxl
RGVjbGFyYXRpb25TZWN0aW9uLmNzcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLmNzcwppbmRleCBkYzNhM2I4Li45
ZWNiOTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5jc3MKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uY3Nz
CkBAIC03MiwxMCArNzIsMTQgQEAKICAgICBoZWlnaHQ6IDE2cHg7CiB9CiAKLS5zdHlsZS1kZWNs
YXJhdGlvbi1zZWN0aW9uOm5vdCguaW52YWxpZC1zZWxlY3RvcikgPiAuaGVhZGVyID4gLmljb24u
dG9nZ2xlLWFibGU6aG92ZXIgeworLnN0eWxlLWRlY2xhcmF0aW9uLXNlY3Rpb24gPiAuaGVhZGVy
ID4gLmljb24udG9nZ2xlLWFibGU6aG92ZXIgewogICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwLjkp
OwogfQogCisuc3R5bGUtZGVjbGFyYXRpb24tc2VjdGlvbiA+IC5oZWFkZXIgPiAuaWNvbi50b2dn
bGUtYWJsZTphY3RpdmUgeworICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwLjgpOworfQorCiAuc3R5
bGUtZGVjbGFyYXRpb24tc2VjdGlvbjpub3QoLmludmFsaWQtc2VsZWN0b3IpLnJ1bGUtZGlzYWJs
ZWQgPiAuaGVhZGVyID4gLmljb24gewogICAgIG9wYWNpdHk6IDAuNTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFy
YXRpb25TZWN0aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uanMKaW5kZXggMTk0MWM3Yy4uODFmMGVkMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NT
U3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uanMKQEAgLTM2LDYg
KzM2LDcgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uID0gY2xhc3Mg
Q1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24gZXh0ZW4KICAgICAgICAgdGhpcy5fc3R5bGUgPSBz
dHlsZSB8fCBudWxsOwogICAgICAgICB0aGlzLl9zZWxlY3RvckVsZW1lbnRzID0gW107CiAgICAg
ICAgIHRoaXMuX3J1bGVEaXNhYmxlZCA9IGZhbHNlOworICAgICAgICB0aGlzLl9oYXNJbnZhbGlk
U2VsZWN0b3IgPSBmYWxzZTsKIAogICAgICAgICB0aGlzLl9lbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZCgi
c3R5bGUtZGVjbGFyYXRpb24tc2VjdGlvbiIpOwpAQCAtMTA0LDcgKzEwNSw3IEBAIFdlYkluc3Bl
Y3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbiA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRp
b25TZWN0aW9uIGV4dGVuCiAgICAgICAgIGlmIChzdHlsZS5lZGl0YWJsZSkgewogICAgICAgICAg
ICAgdGhpcy5faWNvbkVsZW1lbnQuY2xhc3NMaXN0LmFkZCgidG9nZ2xlLWFibGUiKTsKICAgICAg
ICAgICAgIHRoaXMuX2ljb25FbGVtZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJD
b21tZW50IEFsbCBQcm9wZXJ0aWVzIik7Ci0gICAgICAgICAgICB0aGlzLl9pY29uRWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3RvZ2dsZVJ1bGVPbk9mZi5iaW5kKHRoaXMp
KTsKKyAgICAgICAgICAgIHRoaXMuX2ljb25FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNr
IiwgdGhpcy5faGFuZGxlSWNvbkVsZW1lbnRDbGlja2VkLmJpbmQodGhpcykpOwogICAgICAgICB9
CiAKICAgICAgICAgY29uc29sZS5hc3NlcnQoaWNvbkNsYXNzTmFtZSk7CkBAIC0xMTMsNyArMTE0
LDcgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uID0gY2xhc3MgQ1NT
U3R5bGVEZWNsYXJhdGlvblNlY3Rpb24gZXh0ZW4KICAgICAgICAgaWYgKCFzdHlsZS5lZGl0YWJs
ZSkKICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LmFkZChXZWJJbnNwZWN0b3Iu
Q1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uTG9ja2VkU3R5bGVDbGFzc05hbWUpOwogICAgICAg
ICBlbHNlIGlmIChzdHlsZS5vd25lclJ1bGUpIHsKLSAgICAgICAgICAgIHRoaXMuX3N0eWxlLm93
bmVyUnVsZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5DU1NSdWxlLkV2ZW50LlNlbGVj
dG9yQ2hhbmdlZCwgdGhpcy5fbWFya1NlbGVjdG9yLmJpbmQodGhpcykpOworICAgICAgICAgICAg
dGhpcy5fc3R5bGUub3duZXJSdWxlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1J1
bGUuRXZlbnQuU2VsZWN0b3JDaGFuZ2VkLCB0aGlzLl91cGRhdGVTZWxlY3Rvckljb24uYmluZCh0
aGlzKSk7CiAgICAgICAgICAgICB0aGlzLl9jb21taXRTZWxlY3RvcktleWJvYXJkU2hvcnRjdXQg
PSBuZXcgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQobnVsbCwgV2ViSW5zcGVjdG9yLktl
eWJvYXJkU2hvcnRjdXQuS2V5LkVudGVyLCB0aGlzLl9jb21taXRTZWxlY3Rvci5iaW5kKHRoaXMp
LCB0aGlzLl9zZWxlY3RvckVsZW1lbnQpOwogICAgICAgICAgICAgdGhpcy5fc2VsZWN0b3JFbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCB0aGlzLl9jb21taXRTZWxlY3Rvci5iaW5kKHRo
aXMpKTsKICAgICAgICAgfSBlbHNlCkBAIC0yNjMsNiArMjY0LDggQEAgV2ViSW5zcGVjdG9yLkNT
U1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uID0gY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rp
b24gZXh0ZW4KICAgICAgICAgICAgIHRoaXMuX29yaWdpbkVsZW1lbnQuYXBwZW5kKFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiSFRNTCBBdHRyaWJ1dGVzIikpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KKworICAgICAgICB0aGlzLl91cGRhdGVTZWxlY3Rvckljb24oKTsKICAgICB9CiAK
ICAgICBoaWdobGlnaHRQcm9wZXJ0eShwcm9wZXJ0eSkKQEAgLTQ0NywxMCArNDUwLDEzIEBAIFdl
Ykluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbiA9IGNsYXNzIENTU1N0eWxlRGVj
bGFyYXRpb25TZWN0aW9uIGV4dGVuCiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIF90b2dnbGVS
dWxlT25PZmYoKQorICAgIF9oYW5kbGVJY29uRWxlbWVudENsaWNrZWQoKQogICAgIHsKLSAgICAg
ICAgaWYgKHRoaXMuX2hhc0ludmFsaWRTZWxlY3RvcikKKyAgICAgICAgaWYgKHRoaXMuX2hhc0lu
dmFsaWRTZWxlY3RvcikgeworICAgICAgICAgICAgLy8gVGhpcyB3aWxsIHJldmVydCB0aGUgc2Vs
ZWN0b3IgdGV4dCB0byB0aGUgb3JpZ2luYWwgdmFsaWQgdmFsdWUuCisgICAgICAgICAgICB0aGlz
LnJlZnJlc2goKTsKICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCiAgICAgICAgIHRo
aXMuX3J1bGVEaXNhYmxlZCA9IHRoaXMuX3J1bGVEaXNhYmxlZCA/ICF0aGlzLl9wcm9wZXJ0aWVz
VGV4dEVkaXRvci51bmNvbW1lbnRBbGxQcm9wZXJ0aWVzKCkgOiB0aGlzLl9wcm9wZXJ0aWVzVGV4
dEVkaXRvci5jb21tZW50QWxsUHJvcGVydGllcygpOwogICAgICAgICB0aGlzLl9pY29uRWxlbWVu
dC50aXRsZSA9IHRoaXMuX3J1bGVEaXNhYmxlZCA/IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVW5j
b21tZW50IEFsbCBQcm9wZXJ0aWVzIikgOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNvbW1lbnQg
QWxsIFByb3BlcnRpZXMiKTsKQEAgLTU1NywyNyArNTYzLDI1IEBAIFdlYkluc3BlY3Rvci5DU1NT
dHlsZURlY2xhcmF0aW9uU2VjdGlvbiA9IGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9u
IGV4dGVuCiAgICAgICAgIHRoaXMuX3N0eWxlLm93bmVyUnVsZS5zZWxlY3RvclRleHQgPSBuZXdT
ZWxlY3RvclRleHQ7CiAgICAgfQogCi0gICAgX21hcmtTZWxlY3RvcihldmVudCkKKyAgICBfdXBk
YXRlU2VsZWN0b3JJY29uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIHZhbGlkID0gZXZlbnQg
JiYgZXZlbnQuZGF0YSAmJiBldmVudC5kYXRhLnZhbGlkOwotICAgICAgICB0aGlzLl9lbGVtZW50
LmNsYXNzTGlzdC50b2dnbGUoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9u
LlNlbGVjdG9ySW52YWxpZENsYXNzTmFtZSwgIXZhbGlkKTsKLSAgICAgICAgaWYgKHZhbGlkKSB7
CisgICAgICAgIGlmICghdGhpcy5fc3R5bGUub3duZXJSdWxlIHx8ICF0aGlzLl9zdHlsZS5lZGl0
YWJsZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLl9oYXNJbnZhbGlkU2Vs
ZWN0b3IgPSBldmVudCAmJiBldmVudC5kYXRhICYmICFldmVudC5kYXRhLnZhbGlkOworICAgICAg
ICB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoImludmFsaWQtc2VsZWN0b3IiLCAhIXRo
aXMuX2hhc0ludmFsaWRTZWxlY3Rvcik7CisgICAgICAgIGlmICghdGhpcy5faGFzSW52YWxpZFNl
bGVjdG9yKSB7CiAgICAgICAgICAgICB0aGlzLl9pY29uRWxlbWVudC50aXRsZSA9IHRoaXMuX3J1
bGVEaXNhYmxlZCA/IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVW5jb21tZW50IEFsbCBQcm9wZXJ0
aWVzIikgOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNvbW1lbnQgQWxsIFByb3BlcnRpZXMiKTsK
ICAgICAgICAgICAgIHRoaXMuX3NlbGVjdG9yRWxlbWVudC50aXRsZSA9IG51bGw7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICB0aGlzLl9pY29uRWxlbWVudC50aXRs
ZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGhlIHNlbGVjdG9yICclcycgaXMgaW52YWxpZC4i
KS5mb3JtYXQodGhpcy5fc2VsZWN0b3JFbGVtZW50LnRleHRDb250ZW50LnRyaW0oKSk7CisgICAg
ICAgIHRoaXMuX2ljb25FbGVtZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJUaGUg
c2VsZWN0b3IgJyVzJyBpcyBpbnZhbGlkLlxuQ2xpY2sgdG8gcmV2ZXJ0IHRvIHRoZSBwcmV2aW91
cyBzZWxlY3Rvci4iKS5mb3JtYXQodGhpcy5fc2VsZWN0b3JFbGVtZW50LnRleHRDb250ZW50LnRy
aW0oKSk7CiAgICAgICAgIHRoaXMuX3NlbGVjdG9yRWxlbWVudC50aXRsZSA9IFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiVXNpbmcgdGhlIHByZXZpb3VzIHNlbGVjdG9yICclcycuIikuZm9ybWF0KHRo
aXMuX3N0eWxlLm93bmVyUnVsZS5zZWxlY3RvclRleHQpOwotICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHRoaXMuX3NlbGVjdG9yRWxlbWVudC5jaGlsZHJlbi5sZW5ndGg7ICsraSkKKyAgICAg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9zZWxlY3RvckVsZW1lbnQuY2hpbGRyZW4ubGVu
Z3RoOyArK2kpCiAgICAgICAgICAgICB0aGlzLl9zZWxlY3RvckVsZW1lbnQuY2hpbGRyZW5baV0u
dGl0bGUgPSBudWxsOwogICAgIH0KIAotICAgIGdldCBfaGFzSW52YWxpZFNlbGVjdG9yKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhXZWJJ
bnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uU2VsZWN0b3JJbnZhbGlkQ2xhc3NO
YW1lKTsKLSAgICB9Ci0KICAgICBfZWRpdG9yQ29udGVudENoYW5nZWQoZXZlbnQpCiAgICAgewog
ICAgICAgICB0aGlzLl9lZGl0b3JBY3RpdmUgPSB0cnVlOwpAQCAtNTk2LDcgKzYwMCw2IEBAIFdl
Ykluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5FdmVudCA9IHsKIAogV2ViSW5z
cGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLkxvY2tlZFN0eWxlQ2xhc3NOYW1lID0g
ImxvY2tlZCI7CiBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uU2VsZWN0
b3JMb2NrZWRTdHlsZUNsYXNzTmFtZSA9ICJzZWxlY3Rvci1sb2NrZWQiOwotV2ViSW5zcGVjdG9y
LkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLlNlbGVjdG9ySW52YWxpZENsYXNzTmFtZSA9ICJp
bnZhbGlkLXNlbGVjdG9yIjsKIFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlv
bi5MYXN0SW5Hcm91cFN0eWxlQ2xhc3NOYW1lID0gImxhc3QtaW4tZ3JvdXAiOwogV2ViSW5zcGVj
dG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLk1hdGNoZWRTZWxlY3RvckVsZW1lbnRTdHls
ZUNsYXNzTmFtZSA9ICJtYXRjaGVkIjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLmNzcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2Vs
ZWN0b3JUcmVlSXRlbS5jc3MKaW5kZXggOTY1MjljMS4uYTA3Y2ZkNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3Rv
clRyZWVJdGVtLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0uY3NzCkBAIC02OSwxMSArNjksMTggQEAg
Ym9keTpub3QoLndpbmRvdy1pbmFjdGl2ZSwgLndpbmRvdy1kb2NrZWQtaW5hY3RpdmUpIC5pdGVt
LnZpc3VhbC1zdHlsZS1zZWxlY3Rvci0KIH0KIAogLml0ZW0udmlzdWFsLXN0eWxlLXNlbGVjdG9y
LWl0ZW0uc2VsZWN0b3ItaW52YWxpZCA+IC5pY29uIHsKLSAgICB3aWR0aDogMTRweDsKICAgICBo
ZWlnaHQ6IDE0cHg7CiAgICAgY29udGVudDogdXJsKC4uL0ltYWdlcy9FcnJvci5zdmcpOwogfQog
CisuaXRlbS52aXN1YWwtc3R5bGUtc2VsZWN0b3ItaXRlbS5zZWxlY3Rvci1pbnZhbGlkID4gLmlj
b246aG92ZXIgeworICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwLjkpOworfQorCisuaXRlbS52aXN1
YWwtc3R5bGUtc2VsZWN0b3ItaXRlbS5zZWxlY3Rvci1pbnZhbGlkID4gLmljb246YWN0aXZlIHsK
KyAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMC44KTsKK30KKwogLml0ZW0udmlzdWFsLXN0eWxlLXNl
bGVjdG9yLWl0ZW0uc2VsZWN0b3ItaW52YWxpZCA+IC50aXRsZXMgPiAudGl0bGUgewogICAgIHBv
c2l0aW9uOiByZWxhdGl2ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JU
cmVlSXRlbS5qcwppbmRleCA5MzE0YmE4Li4yMmE4Y2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0
ZW0uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlz
dWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLmpzCkBAIC02MCw2ICs2MCw3IEBAIFdlYkluc3BlY3Rv
ci5WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0gPSBjbGFzcyBWaXN1YWxTdHlsZVNlbGVjdG9y
VHJlZUl0ZW0gZXh0CiAgICAgICAgIHRoaXMuX2ljb25DbGFzc05hbWUgPSBpY29uQ2xhc3NOYW1l
OwogICAgICAgICB0aGlzLl9sYXN0VmFsdWUgPSB0aXRsZTsKICAgICAgICAgdGhpcy5fZW5hYmxl
RWRpdGluZyA9IHRydWU7CisgICAgICAgIHRoaXMuX2hhc0ludmFsaWRTZWxlY3RvciA9IGZhbHNl
OwogICAgIH0KIAogICAgIC8vIFB1YmxpYwpAQCAtOTUsNiArOTYsOCBAQCBXZWJJbnNwZWN0b3Iu
VmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtID0gY2xhc3MgVmlzdWFsU3R5bGVTZWxlY3RvclRy
ZWVJdGVtIGV4dAogICAgICAgICB0aGlzLl9jaGVja2JveEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigiY2hhbmdlIiwgdGhpcy5faGFuZGxlQ2hlY2tib3hDaGFuZ2VkLmJpbmQodGhpcykpOwogICAg
ICAgICB0aGlzLl9saXN0SXRlbU5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMuX2NoZWNrYm94RWxlbWVu
dCwgdGhpcy5faWNvbkVsZW1lbnQpOwogCisgICAgICAgIHRoaXMuX2ljb25FbGVtZW50LmFkZEV2
ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5faGFuZGxlSWNvbkVsZW1lbnRDbGlja2VkLmJpbmQo
dGhpcykpOworCiAgICAgICAgIHRoaXMuX21haW5UaXRsZUVsZW1lbnQuc3BlbGxjaGVjayA9IGZh
bHNlOwogICAgICAgICB0aGlzLl9tYWluVGl0bGVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1v
dXNlZG93biIsIHRoaXMuX2hhbmRsZU1haW5UaXRsZU1vdXNlRG93bi5iaW5kKHRoaXMpKTsKICAg
ICAgICAgdGhpcy5fbWFpblRpdGxlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwg
dGhpcy5faGFuZGxlTWFpblRpdGxlS2V5RG93bi5iaW5kKHRoaXMpKTsKQEAgLTEwMyw3ICsxMDYs
NyBAQCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtID0gY2xhc3MgVmlz
dWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtIGV4dAogCiAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRP
YmplY3QuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5F
dmVudC5Jbml0aWFsVGV4dE1vZGlmaWVkLCB0aGlzLl9zdHlsZVRleHRNb2RpZmllZCwgdGhpcyk7
CiAgICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm93bmVyUnVsZSkKLSAgICAgICAg
ICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qub3duZXJSdWxlLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkNTU1J1bGUuRXZlbnQuU2VsZWN0b3JDaGFuZ2VkLCB0aGlzLl9zZWxlY3RvckNo
YW5nZWQsIHRoaXMpOworICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5vd25lclJ1
bGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTUnVsZS5FdmVudC5TZWxlY3RvckNo
YW5nZWQsIHRoaXMuX3VwZGF0ZVNlbGVjdG9ySWNvbiwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5f
c3R5bGVUZXh0TW9kaWZpZWQoKTsKICAgICB9CkBAIC0xOTEsNyArMTk0LDcgQEAgV2ViSW5zcGVj
dG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbSA9IGNsYXNzIFZpc3VhbFN0eWxlU2VsZWN0
b3JUcmVlSXRlbSBleHQKICAgICAgICAgdGhpcy5fdXBkYXRlVGl0bGVUb29sdGlwKCk7CiAKICAg
ICAgICAgbGV0IHZhbHVlID0gdGhpcy5zZWxlY3RvclRleHQ7Ci0gICAgICAgIGlmICh2YWx1ZSA9
PT0gdGhpcy5fbGFzdFZhbHVlICYmIHRoaXMuX3ZhbGlkKQorICAgICAgICBpZiAodmFsdWUgPT09
IHRoaXMuX2xhc3RWYWx1ZSAmJiAhdGhpcy5faGFzSW52YWxpZFNlbGVjdG9yKQogICAgICAgICAg
ICAgcmV0dXJuOwogCiAgICAgICAgIHRoaXMucmVwcmVzZW50ZWRPYmplY3Qub3duZXJSdWxlLnNl
bGVjdG9yVGV4dCA9IHZhbHVlOwpAQCAtMjAyLDEyICsyMDUsMjcgQEAgV2ViSW5zcGVjdG9yLlZp
c3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbSA9IGNsYXNzIFZpc3VhbFN0eWxlU2VsZWN0b3JUcmVl
SXRlbSBleHQKICAgICAgICAgdGhpcy5fbGlzdEl0ZW1Ob2RlLmNsYXNzTGlzdC50b2dnbGUoIm1v
ZGlmaWVkIiwgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5tb2RpZmllZCk7CiAgICAgfQogCi0gICAg
X3NlbGVjdG9yQ2hhbmdlZChldmVudCkKKyAgICBfdXBkYXRlU2VsZWN0b3JJY29uKGV2ZW50KQog
ICAgIHsKLSAgICAgICAgdGhpcy5fdmFsaWQgPSBldmVudCAmJiBldmVudC5kYXRhICYmIGV2ZW50
LmRhdGEudmFsaWQ7Ci0gICAgICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5jbGFzc0xpc3QudG9nZ2xl
KCJzZWxlY3Rvci1pbnZhbGlkIiwgIXRoaXMuX3ZhbGlkKTsKLSAgICAgICAgbGV0IGludmFsaWRU
aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGhlIHNlbGVjdG9yICclcycgaXMgaW52YWxp
ZC4iKS5mb3JtYXQodGhpcy5zZWxlY3RvclRleHQpOwotICAgICAgICB0aGlzLl9pY29uRWxlbWVu
dC50aXRsZSA9ICF0aGlzLl92YWxpZCA/IGludmFsaWRUaXRsZSA6IG51bGw7CisgICAgICAgIHRo
aXMuX2hhc0ludmFsaWRTZWxlY3RvciA9IGV2ZW50ICYmIGV2ZW50LmRhdGEgJiYgIWV2ZW50LmRh
dGEudmFsaWQ7CisgICAgICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5jbGFzc0xpc3QudG9nZ2xlKCJz
ZWxlY3Rvci1pbnZhbGlkIiwgISF0aGlzLl9oYXNJbnZhbGlkU2VsZWN0b3IpOworICAgICAgICBp
ZiAodGhpcy5faGFzSW52YWxpZFNlbGVjdG9yKSB7CisgICAgICAgICAgICB0aGlzLl9pY29uRWxl
bWVudC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVGhlIHNlbGVjdG9yICclcycgaXMg
aW52YWxpZC5cbkNsaWNrIHRvIHJldmVydCB0byB0aGUgcHJldmlvdXMgc2VsZWN0b3IuIikuZm9y
bWF0KHRoaXMuc2VsZWN0b3JUZXh0KTsKKyAgICAgICAgICAgIHRoaXMubWFpblRpdGxlRWxlbWVu
dC50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVXNpbmcgdGhlIHByZXZpb3VzIHNlbGVj
dG9yICclcycuIikuZm9ybWF0KHRoaXMucmVwcmVzZW50ZWRPYmplY3Qub3duZXJSdWxlLnNlbGVj
dG9yVGV4dCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlz
Ll9pY29uRWxlbWVudC50aXRsZSA9IG51bGw7CisgICAgICAgIHRoaXMubWFpblRpdGxlRWxlbWVu
dC50aXRsZSA9IG51bGw7CisgICAgfQorCisgICAgX2hhbmRsZUljb25FbGVtZW50Q2xpY2tlZChl
dmVudCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLl9oYXNJbnZhbGlkU2VsZWN0b3IgJiYgdGhp
cy5yZXByZXNlbnRlZE9iamVjdC5vd25lclJ1bGUpIHsKKyAgICAgICAgICAgIHRoaXMubWFpblRp
dGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHRoaXMuX2xhc3RWYWx1ZSA9IHRoaXMucmVwcmVzZW50
ZWRPYmplY3Qub3duZXJSdWxlLnNlbGVjdG9yVGV4dDsKKyAgICAgICAgICAgIHRoaXMuX3VwZGF0
ZVNlbGVjdG9ySWNvbigpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CiAgICAgfQog
fTsKIAo=
</data>
<flag name="commit-queue"
          id="292941"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267985</attachid>
            <date>2015-12-29 09:17:49 -0800</date>
            <delta_ts>2015-12-29 10:16:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>152456.diff</filename>
            <type>text/plain</type>
            <size>14512</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDFiYTZkN2YuLjkxYjQ0NjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE1LTEyLTI4ICBEZXZpbiBSb3Vzc28g
IDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFN0
eWxpbmcgb2YgaW52YWxpZCBzZWxlY3RvciBwZXJzaXN0cyB3aGVuIGNoYW5naW5nIHRoZSBzZWxl
Y3RlZCBub2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTI0NTYKKworICAgICAgICBSZXZpZXdlZCBieSBCcmlhbiBCdXJnLgorCisgICAgICAgIElm
IHRoZSB1c2VyIGNoYW5nZXMgdGhlIHNlbGVjdG9yIG9mIGEgQ1NTIHJ1bGUgdG8gYmUgaW52YWxp
ZCAoZS5nLiBoYXZpbmcKKyAgICAgICAgYSB7IG9yIDsgY2hhcmFjdGVyKSwgaXQgaXMgZXhwZWN0
ZWQgdGhhdCB0aGUgaW52YWxpZCBpbmRpY2F0b3Igd2lsbCBiZSByZW1vdmVkCisgICAgICAgIG9u
Y2UgdGhlIHVzZXIgY2hhbmdlcyBub2RlcyBvciByZXZlcnRzIHRoZSBzZWxlY3RvciB0byBpdHMg
cHJldmlvdXMgdmFsdWUuCisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2Fs
aXplZFN0cmluZ3MuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURl
Y2xhcmF0aW9uU2VjdGlvbi5jc3M6CisgICAgICAgICguc3R5bGUtZGVjbGFyYXRpb24tc2VjdGlv
biA+IC5oZWFkZXIgPiAuaWNvbi50b2dnbGUtYWJsZTpob3Zlcik6CisgICAgICAgICguc3R5bGUt
ZGVjbGFyYXRpb24tc2VjdGlvbiA+IC5oZWFkZXIgPiAuaWNvbi50b2dnbGUtYWJsZTphY3RpdmUp
OgorICAgICAgICAoLnN0eWxlLWRlY2xhcmF0aW9uLXNlY3Rpb246bm90KC5pbnZhbGlkLXNlbGVj
dG9yKSA+IC5oZWFkZXIgPiAuaWNvbi50b2dnbGUtYWJsZTpob3Zlcik6IERlbGV0ZWQuCisgICAg
ICAgIEFkZGVkIGJldHRlciA6aG92ZXIgYW5kIDphY3RpdmUgc3R5bGVzLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24ucHJvdG90eXBlLnJlZnJlc2gp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLnByb3Rv
dHlwZS5faGFuZGxlSWNvbkVsZW1lbnRDbGlja2VkKToKKyAgICAgICAgSWYgdGhlIHNlbGVjdG9y
IGlzIGludmFsaWQsIHNpbXBseSByZWZyZXNoIHRoZSBzZWN0aW9uIHRvIHJlZ2VuZXJhdGUgdGhl
CisgICAgICAgIG9yaWdpbmFsIHNlbGVjdG9yIHdpdGggY29ycmVjdCBjb250ZW50LCBzcGVjaWZp
Y2l0eSwgYW5kIGhpZ2hsaWdodGluZy4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxl
RGVjbGFyYXRpb25TZWN0aW9uLnByb3RvdHlwZS5nZXQgX2hhc0ludmFsaWRTZWxlY3Rvcik6IERl
bGV0ZWQuCisgICAgICAgIE1vdmVkIHRoZSBzdGF0ZSBvZiB0aGUgaW52YWxpZCBzZWxlY3RvciB0
byBhIG1lbWJlcgorICAgICAgICB2YXJpYWJsZSBpbnN0ZWFkIG9mIGEgRE9NIGNsYXNzLgorCisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24ucHJvdG90eXBl
Ll91cGRhdGVTZWxlY3Rvckljb24pOgorICAgICAgICBSZW5hbWVkIGZyb20gX21hcmtTZWxlY3Rv
ciBmb3IgY2xhcml0eS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5
bGVTZWxlY3RvclRyZWVJdGVtLmNzczoKKyAgICAgICAgKC5pdGVtLnZpc3VhbC1zdHlsZS1zZWxl
Y3Rvci1pdGVtLnNlbGVjdG9yLWludmFsaWQgPiAuaWNvbjpob3Zlcik6CisgICAgICAgICguaXRl
bS52aXN1YWwtc3R5bGUtc2VsZWN0b3ItaXRlbS5zZWxlY3Rvci1pbnZhbGlkID4gLmljb246YWN0
aXZlKToKKyAgICAgICAgKC5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVtLnNlbGVjdG9y
LWludmFsaWQgPiAuaWNvbik6CisgICAgICAgIEFkZGVkIDpob3ZlciBhbmQgOmFjdGl2ZSBzdHls
ZXMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JU
cmVlSXRlbS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yVHJl
ZUl0ZW0pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRl
bS5wcm90b3R5cGUub25hdHRhY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxl
U2VsZWN0b3JUcmVlSXRlbS5wcm90b3R5cGUuX2NvbW1pdFNlbGVjdG9yKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0ucHJvdG90eXBlLl91cGRhdGVT
ZWxlY3Rvckljb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JU
cmVlSXRlbS5wcm90b3R5cGUuX2hhbmRsZUljb25FbGVtZW50Q2xpY2tlZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLnByb3RvdHlwZS5fc2VsZWN0
b3JDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgQ2hhbmdlZCB0aGUgbmFtZXMgb2YgYSBmZXcg
ZnVuY3Rpb25zIHRvIHByb3ZpZGUgYmV0dGVyCisgICAgICAgIGNvbnNpc3RlbmN5IGFjcm9zcyB0
aGUgY2xhc3NlcyBpbiB0aGUgU3R5bGUgc2lkZWJhci4KKwogMjAxNS0xMi0yNyAgQnJpYW4gQnVy
ZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBpbXByb3ZlIHBy
ZS1maWxsZWQgYnVnemlsbGEgbGluayBvbiBVbmNhdWdodCBFeGNlcHRpb24gcmVwb3J0ZXIgc2hl
ZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxw
cm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0
aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IGE3NzJmYzdkNjMzZDI3MjYz
MzFjY2MwNzZhY2Y4YTFmYTM5ZjgwM2IuLjg0OTNmNjNjNGY1YjIwNzZhMjIyZGNhOTY3YWFlMDNk
MzU3MTM1ZDUgMTAwNjQ0CkdJVCBiaW5hcnkgcGF0Y2gKZGVsdGEgOTAKemNtZG4rbiZyK0xtV0N+
aWppUXFzUV5XKnw3KlpMXmZWaGFFZ2gyc19eUVRBWUZ6UVpVRDlrN31lWDF5PDVndFg4ClRBND0m
PT8teXMzK3MtZT54S0pKZCgkeUpDCgpkZWx0YSAyNwpqY21jY2ZoR29OUm1XQ35pamlTPlIzcDB2
TGU9VypydzdwbzJAdWZUZnM5XzRNCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uY3NzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlv
blNlY3Rpb24uY3NzCmluZGV4IGRjM2EzYjguLjllY2I5NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0NTU1N0eWxlRGVjbGFyYXRpb25TZWN0
aW9uLmNzcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9D
U1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5jc3MKQEAgLTcyLDEwICs3MiwxNCBAQAogICAgIGhl
aWdodDogMTZweDsKIH0KIAotLnN0eWxlLWRlY2xhcmF0aW9uLXNlY3Rpb246bm90KC5pbnZhbGlk
LXNlbGVjdG9yKSA+IC5oZWFkZXIgPiAuaWNvbi50b2dnbGUtYWJsZTpob3ZlciB7Cisuc3R5bGUt
ZGVjbGFyYXRpb24tc2VjdGlvbiA+IC5oZWFkZXIgPiAuaWNvbi50b2dnbGUtYWJsZTpob3ZlciB7
CiAgICAgZmlsdGVyOiBicmlnaHRuZXNzKDAuOSk7CiB9CiAKKy5zdHlsZS1kZWNsYXJhdGlvbi1z
ZWN0aW9uID4gLmhlYWRlciA+IC5pY29uLnRvZ2dsZS1hYmxlOmFjdGl2ZSB7CisgICAgZmlsdGVy
OiBicmlnaHRuZXNzKDAuOCk7Cit9CisKIC5zdHlsZS1kZWNsYXJhdGlvbi1zZWN0aW9uOm5vdCgu
aW52YWxpZC1zZWxlY3RvcikucnVsZS1kaXNhYmxlZCA+IC5oZWFkZXIgPiAuaWNvbiB7CiAgICAg
b3BhY2l0eTogMC41OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlv
bi5qcwppbmRleCAxOTQxYzdjLi44MWYwZWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9DU1NTdHlsZURl
Y2xhcmF0aW9uU2VjdGlvbi5qcwpAQCAtMzYsNiArMzYsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5
bGVEZWNsYXJhdGlvblNlY3Rpb24gPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbiBl
eHRlbgogICAgICAgICB0aGlzLl9zdHlsZSA9IHN0eWxlIHx8IG51bGw7CiAgICAgICAgIHRoaXMu
X3NlbGVjdG9yRWxlbWVudHMgPSBbXTsKICAgICAgICAgdGhpcy5fcnVsZURpc2FibGVkID0gZmFs
c2U7CisgICAgICAgIHRoaXMuX2hhc0ludmFsaWRTZWxlY3RvciA9IGZhbHNlOwogCiAgICAgICAg
IHRoaXMuX2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAg
dGhpcy5fZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJzdHlsZS1kZWNsYXJhdGlvbi1zZWN0aW9uIik7
CkBAIC0xMDQsNyArMTA1LDcgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0
aW9uID0gY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24gZXh0ZW4KICAgICAgICAgaWYg
KHN0eWxlLmVkaXRhYmxlKSB7CiAgICAgICAgICAgICB0aGlzLl9pY29uRWxlbWVudC5jbGFzc0xp
c3QuYWRkKCJ0b2dnbGUtYWJsZSIpOwogICAgICAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQudGl0
bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNvbW1lbnQgQWxsIFByb3BlcnRpZXMiKTsKLSAg
ICAgICAgICAgIHRoaXMuX2ljb25FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhp
cy5fdG9nZ2xlUnVsZU9uT2ZmLmJpbmQodGhpcykpOworICAgICAgICAgICAgdGhpcy5faWNvbkVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9oYW5kbGVJY29uRWxlbWVudENs
aWNrZWQuYmluZCh0aGlzKSk7CiAgICAgICAgIH0KIAogICAgICAgICBjb25zb2xlLmFzc2VydChp
Y29uQ2xhc3NOYW1lKTsKQEAgLTExMyw3ICsxMTQsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVE
ZWNsYXJhdGlvblNlY3Rpb24gPSBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbiBleHRl
bgogICAgICAgICBpZiAoIXN0eWxlLmVkaXRhYmxlKQogICAgICAgICAgICAgdGhpcy5fZWxlbWVu
dC5jbGFzc0xpc3QuYWRkKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbi5M
b2NrZWRTdHlsZUNsYXNzTmFtZSk7CiAgICAgICAgIGVsc2UgaWYgKHN0eWxlLm93bmVyUnVsZSkg
ewotICAgICAgICAgICAgdGhpcy5fc3R5bGUub3duZXJSdWxlLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkNTU1J1bGUuRXZlbnQuU2VsZWN0b3JDaGFuZ2VkLCB0aGlzLl9tYXJrU2VsZWN0
b3IuYmluZCh0aGlzKSk7CisgICAgICAgICAgICB0aGlzLl9zdHlsZS5vd25lclJ1bGUuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTUnVsZS5FdmVudC5TZWxlY3RvckNoYW5nZWQsIHRo
aXMuX3VwZGF0ZVNlbGVjdG9ySWNvbi5iaW5kKHRoaXMpKTsKICAgICAgICAgICAgIHRoaXMuX2Nv
bW1pdFNlbGVjdG9yS2V5Ym9hcmRTaG9ydGN1dCA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRT
aG9ydGN1dChudWxsLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuRW50ZXIsIHRo
aXMuX2NvbW1pdFNlbGVjdG9yLmJpbmQodGhpcyksIHRoaXMuX3NlbGVjdG9yRWxlbWVudCk7CiAg
ICAgICAgICAgICB0aGlzLl9zZWxlY3RvckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIs
IHRoaXMuX2NvbW1pdFNlbGVjdG9yLmJpbmQodGhpcykpOwogICAgICAgICB9IGVsc2UKQEAgLTI2
Myw2ICsyNjQsOCBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24gPSBj
bGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uU2VjdGlvbiBleHRlbgogICAgICAgICAgICAgdGhpcy5f
b3JpZ2luRWxlbWVudC5hcHBlbmQoV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJIVE1MIEF0dHJpYnV0
ZXMiKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorCisgICAgICAgIHRoaXMuX3Vw
ZGF0ZVNlbGVjdG9ySWNvbigpOwogICAgIH0KIAogICAgIGhpZ2hsaWdodFByb3BlcnR5KHByb3Bl
cnR5KQpAQCAtNDQ3LDEwICs0NTAsMTMgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRp
b25TZWN0aW9uID0gY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24gZXh0ZW4KICAgICAg
ICAgfSk7CiAgICAgfQogCi0gICAgX3RvZ2dsZVJ1bGVPbk9mZigpCisgICAgX2hhbmRsZUljb25F
bGVtZW50Q2xpY2tlZCgpCiAgICAgewotICAgICAgICBpZiAodGhpcy5faGFzSW52YWxpZFNlbGVj
dG9yKQorICAgICAgICBpZiAodGhpcy5faGFzSW52YWxpZFNlbGVjdG9yKSB7CisgICAgICAgICAg
ICAvLyBUaGlzIHdpbGwgcmV2ZXJ0IHRoZSBzZWxlY3RvciB0ZXh0IHRvIHRoZSBvcmlnaW5hbCB2
YWxpZCB2YWx1ZS4KKyAgICAgICAgICAgIHRoaXMucmVmcmVzaCgpOwogICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CiAKICAgICAgICAgdGhpcy5fcnVsZURpc2FibGVkID0gdGhpcy5fcnVs
ZURpc2FibGVkID8gIXRoaXMuX3Byb3BlcnRpZXNUZXh0RWRpdG9yLnVuY29tbWVudEFsbFByb3Bl
cnRpZXMoKSA6IHRoaXMuX3Byb3BlcnRpZXNUZXh0RWRpdG9yLmNvbW1lbnRBbGxQcm9wZXJ0aWVz
KCk7CiAgICAgICAgIHRoaXMuX2ljb25FbGVtZW50LnRpdGxlID0gdGhpcy5fcnVsZURpc2FibGVk
ID8gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJVbmNvbW1lbnQgQWxsIFByb3BlcnRpZXMiKSA6IFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiQ29tbWVudCBBbGwgUHJvcGVydGllcyIpOwpAQCAtNTU3LDI3
ICs1NjMsMjUgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uID0gY2xh
c3MgQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24gZXh0ZW4KICAgICAgICAgdGhpcy5fc3R5bGUu
b3duZXJSdWxlLnNlbGVjdG9yVGV4dCA9IG5ld1NlbGVjdG9yVGV4dDsKICAgICB9CiAKLSAgICBf
bWFya1NlbGVjdG9yKGV2ZW50KQorICAgIF91cGRhdGVTZWxlY3Rvckljb24oZXZlbnQpCiAgICAg
ewotICAgICAgICB2YXIgdmFsaWQgPSBldmVudCAmJiBldmVudC5kYXRhICYmIGV2ZW50LmRhdGEu
dmFsaWQ7Ci0gICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZShXZWJJbnNwZWN0
b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uU2VsZWN0b3JJbnZhbGlkQ2xhc3NOYW1lLCAh
dmFsaWQpOwotICAgICAgICBpZiAodmFsaWQpIHsKKyAgICAgICAgaWYgKCF0aGlzLl9zdHlsZS5v
d25lclJ1bGUgfHwgIXRoaXMuX3N0eWxlLmVkaXRhYmxlKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIHRoaXMuX2hhc0ludmFsaWRTZWxlY3RvciA9IGV2ZW50ICYmIGV2ZW50LmRhdGEg
JiYgIWV2ZW50LmRhdGEudmFsaWQ7CisgICAgICAgIHRoaXMuX2VsZW1lbnQuY2xhc3NMaXN0LnRv
Z2dsZSgiaW52YWxpZC1zZWxlY3RvciIsICEhdGhpcy5faGFzSW52YWxpZFNlbGVjdG9yKTsKKyAg
ICAgICAgaWYgKCF0aGlzLl9oYXNJbnZhbGlkU2VsZWN0b3IpIHsKICAgICAgICAgICAgIHRoaXMu
X2ljb25FbGVtZW50LnRpdGxlID0gdGhpcy5fcnVsZURpc2FibGVkID8gV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJVbmNvbW1lbnQgQWxsIFByb3BlcnRpZXMiKSA6IFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiQ29tbWVudCBBbGwgUHJvcGVydGllcyIpOwogICAgICAgICAgICAgdGhpcy5fc2VsZWN0b3JF
bGVtZW50LnRpdGxlID0gbnVsbDsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0g
ICAgICAgIHRoaXMuX2ljb25FbGVtZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJU
aGUgc2VsZWN0b3IgJyVzJyBpcyBpbnZhbGlkLiIpLmZvcm1hdCh0aGlzLl9zZWxlY3RvckVsZW1l
bnQudGV4dENvbnRlbnQudHJpbSgpKTsKKyAgICAgICAgdGhpcy5faWNvbkVsZW1lbnQudGl0bGUg
PSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlRoZSBzZWxlY3RvciAnJXMnIGlzIGludmFsaWQuXG5D
bGljayB0byByZXZlcnQgdG8gdGhlIHByZXZpb3VzIHNlbGVjdG9yLiIpLmZvcm1hdCh0aGlzLl9z
ZWxlY3RvckVsZW1lbnQudGV4dENvbnRlbnQudHJpbSgpKTsKICAgICAgICAgdGhpcy5fc2VsZWN0
b3JFbGVtZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJVc2luZyB0aGUgcHJldmlv
dXMgc2VsZWN0b3IgJyVzJy4iKS5mb3JtYXQodGhpcy5fc3R5bGUub3duZXJSdWxlLnNlbGVjdG9y
VGV4dCk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fc2VsZWN0b3JFbGVtZW50
LmNoaWxkcmVuLmxlbmd0aDsgKytpKQorICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMu
X3NlbGVjdG9yRWxlbWVudC5jaGlsZHJlbi5sZW5ndGg7ICsraSkKICAgICAgICAgICAgIHRoaXMu
X3NlbGVjdG9yRWxlbWVudC5jaGlsZHJlbltpXS50aXRsZSA9IG51bGw7CiAgICAgfQogCi0gICAg
Z2V0IF9oYXNJbnZhbGlkU2VsZWN0b3IoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2Vs
ZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9u
U2VjdGlvbi5TZWxlY3RvckludmFsaWRDbGFzc05hbWUpOwotICAgIH0KLQogICAgIF9lZGl0b3JD
b250ZW50Q2hhbmdlZChldmVudCkKICAgICB7CiAgICAgICAgIHRoaXMuX2VkaXRvckFjdGl2ZSA9
IHRydWU7CkBAIC01OTYsNyArNjAwLDYgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRp
b25TZWN0aW9uLkV2ZW50ID0gewogCiBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNl
Y3Rpb24uTG9ja2VkU3R5bGVDbGFzc05hbWUgPSAibG9ja2VkIjsKIFdlYkluc3BlY3Rvci5DU1NT
dHlsZURlY2xhcmF0aW9uU2VjdGlvbi5TZWxlY3RvckxvY2tlZFN0eWxlQ2xhc3NOYW1lID0gInNl
bGVjdG9yLWxvY2tlZCI7Ci1XZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24u
U2VsZWN0b3JJbnZhbGlkQ2xhc3NOYW1lID0gImludmFsaWQtc2VsZWN0b3IiOwogV2ViSW5zcGVj
dG9yLkNTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uLkxhc3RJbkdyb3VwU3R5bGVDbGFzc05hbWUg
PSAibGFzdC1pbi1ncm91cCI7CiBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rp
b24uTWF0Y2hlZFNlbGVjdG9yRWxlbWVudFN0eWxlQ2xhc3NOYW1lID0gIm1hdGNoZWQiOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1
YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0uY3NzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLmNzcwppbmRleCA5NjUy
OWMxLi5hMDdjZmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0uY3NzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JUcmVl
SXRlbS5jc3MKQEAgLTY5LDExICs2OSwxOCBAQCBib2R5Om5vdCgud2luZG93LWluYWN0aXZlLCAu
d2luZG93LWRvY2tlZC1pbmFjdGl2ZSkgLml0ZW0udmlzdWFsLXN0eWxlLXNlbGVjdG9yLQogfQog
CiAuaXRlbS52aXN1YWwtc3R5bGUtc2VsZWN0b3ItaXRlbS5zZWxlY3Rvci1pbnZhbGlkID4gLmlj
b24gewotICAgIHdpZHRoOiAxNHB4OwogICAgIGhlaWdodDogMTRweDsKICAgICBjb250ZW50OiB1
cmwoLi4vSW1hZ2VzL0Vycm9yLnN2Zyk7CiB9CiAKKy5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rv
ci1pdGVtLnNlbGVjdG9yLWludmFsaWQgPiAuaWNvbjpob3ZlciB7CisgICAgZmlsdGVyOiBicmln
aHRuZXNzKDAuOSk7Cit9CisKKy5pdGVtLnZpc3VhbC1zdHlsZS1zZWxlY3Rvci1pdGVtLnNlbGVj
dG9yLWludmFsaWQgPiAuaWNvbjphY3RpdmUgeworICAgIGZpbHRlcjogYnJpZ2h0bmVzcygwLjgp
OworfQorCiAuaXRlbS52aXN1YWwtc3R5bGUtc2VsZWN0b3ItaXRlbS5zZWxlY3Rvci1pbnZhbGlk
ID4gLnRpdGxlcyA+IC50aXRsZSB7CiAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVmlzdWFsU3R5
bGVTZWxlY3RvclRyZWVJdGVtLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtLmpzCmluZGV4IDkzMTRiYTguLjIy
YThjYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL1Zpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0uanMK
QEAgLTYwLDYgKzYwLDcgQEAgV2ViSW5zcGVjdG9yLlZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRl
bSA9IGNsYXNzIFZpc3VhbFN0eWxlU2VsZWN0b3JUcmVlSXRlbSBleHQKICAgICAgICAgdGhpcy5f
aWNvbkNsYXNzTmFtZSA9IGljb25DbGFzc05hbWU7CiAgICAgICAgIHRoaXMuX2xhc3RWYWx1ZSA9
IHRpdGxlOwogICAgICAgICB0aGlzLl9lbmFibGVFZGl0aW5nID0gdHJ1ZTsKKyAgICAgICAgdGhp
cy5faGFzSW52YWxpZFNlbGVjdG9yID0gZmFsc2U7CiAgICAgfQogCiAgICAgLy8gUHVibGljCkBA
IC05NSw2ICs5Niw4IEBAIFdlYkluc3BlY3Rvci5WaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0g
PSBjbGFzcyBWaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0gZXh0CiAgICAgICAgIHRoaXMuX2No
ZWNrYm94RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCB0aGlzLl9oYW5kbGVDaGVj
a2JveENoYW5nZWQuYmluZCh0aGlzKSk7CiAgICAgICAgIHRoaXMuX2xpc3RJdGVtTm9kZS5pbnNl
cnRCZWZvcmUodGhpcy5fY2hlY2tib3hFbGVtZW50LCB0aGlzLl9pY29uRWxlbWVudCk7CiAKKyAg
ICAgICAgdGhpcy5faWNvbkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9o
YW5kbGVJY29uRWxlbWVudENsaWNrZWQuYmluZCh0aGlzKSk7CisKICAgICAgICAgdGhpcy5fbWFp
blRpdGxlRWxlbWVudC5zcGVsbGNoZWNrID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX21haW5UaXRs
ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5faGFuZGxlTWFpblRp
dGxlTW91c2VEb3duLmJpbmQodGhpcykpOwogICAgICAgICB0aGlzLl9tYWluVGl0bGVFbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCB0aGlzLl9oYW5kbGVNYWluVGl0bGVLZXlEb3du
LmJpbmQodGhpcykpOwpAQCAtMTAzLDcgKzEwNiw3IEBAIFdlYkluc3BlY3Rvci5WaXN1YWxTdHls
ZVNlbGVjdG9yVHJlZUl0ZW0gPSBjbGFzcyBWaXN1YWxTdHlsZVNlbGVjdG9yVHJlZUl0ZW0gZXh0
CiAKICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLkV2ZW50LkluaXRpYWxUZXh0TW9kaWZpZWQsIHRo
aXMuX3N0eWxlVGV4dE1vZGlmaWVkLCB0aGlzKTsKICAgICAgICAgaWYgKHRoaXMucmVwcmVzZW50
ZWRPYmplY3Qub3duZXJSdWxlKQotICAgICAgICAgICAgdGhpcy5yZXByZXNlbnRlZE9iamVjdC5v
d25lclJ1bGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ1NTUnVsZS5FdmVudC5TZWxl
Y3RvckNoYW5nZWQsIHRoaXMuX3NlbGVjdG9yQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgICAgICB0
aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm93bmVyUnVsZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5DU1NSdWxlLkV2ZW50LlNlbGVjdG9yQ2hhbmdlZCwgdGhpcy5fdXBkYXRlU2VsZWN0b3JJ
Y29uLCB0aGlzKTsKIAogICAgICAgICB0aGlzLl9zdHlsZVRleHRNb2RpZmllZCgpOwogICAgIH0K
QEAgLTE5MSw3ICsxOTQsNyBAQCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJ
dGVtID0gY2xhc3MgVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtIGV4dAogICAgICAgICB0aGlz
Ll91cGRhdGVUaXRsZVRvb2x0aXAoKTsKIAogICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLnNlbGVj
dG9yVGV4dDsKLSAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9sYXN0VmFsdWUgJiYgdGhpcy5f
dmFsaWQpCisgICAgICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fbGFzdFZhbHVlICYmICF0aGlzLl9o
YXNJbnZhbGlkU2VsZWN0b3IpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdGhpcy5y
ZXByZXNlbnRlZE9iamVjdC5vd25lclJ1bGUuc2VsZWN0b3JUZXh0ID0gdmFsdWU7CkBAIC0yMDIs
MTIgKzIwNSwyNyBAQCBXZWJJbnNwZWN0b3IuVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtID0g
Y2xhc3MgVmlzdWFsU3R5bGVTZWxlY3RvclRyZWVJdGVtIGV4dAogICAgICAgICB0aGlzLl9saXN0
SXRlbU5vZGUuY2xhc3NMaXN0LnRvZ2dsZSgibW9kaWZpZWQiLCB0aGlzLnJlcHJlc2VudGVkT2Jq
ZWN0Lm1vZGlmaWVkKTsKICAgICB9CiAKLSAgICBfc2VsZWN0b3JDaGFuZ2VkKGV2ZW50KQorICAg
IF91cGRhdGVTZWxlY3Rvckljb24oZXZlbnQpCiAgICAgewotICAgICAgICB0aGlzLl92YWxpZCA9
IGV2ZW50ICYmIGV2ZW50LmRhdGEgJiYgZXZlbnQuZGF0YS52YWxpZDsKLSAgICAgICAgdGhpcy5f
bGlzdEl0ZW1Ob2RlLmNsYXNzTGlzdC50b2dnbGUoInNlbGVjdG9yLWludmFsaWQiLCAhdGhpcy5f
dmFsaWQpOwotICAgICAgICBsZXQgaW52YWxpZFRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJUaGUgc2VsZWN0b3IgJyVzJyBpcyBpbnZhbGlkLiIpLmZvcm1hdCh0aGlzLnNlbGVjdG9yVGV4
dCk7Ci0gICAgICAgIHRoaXMuX2ljb25FbGVtZW50LnRpdGxlID0gIXRoaXMuX3ZhbGlkID8gaW52
YWxpZFRpdGxlIDogbnVsbDsKKyAgICAgICAgdGhpcy5faGFzSW52YWxpZFNlbGVjdG9yID0gZXZl
bnQgJiYgZXZlbnQuZGF0YSAmJiAhZXZlbnQuZGF0YS52YWxpZDsKKyAgICAgICAgdGhpcy5fbGlz
dEl0ZW1Ob2RlLmNsYXNzTGlzdC50b2dnbGUoInNlbGVjdG9yLWludmFsaWQiLCAhIXRoaXMuX2hh
c0ludmFsaWRTZWxlY3Rvcik7CisgICAgICAgIGlmICh0aGlzLl9oYXNJbnZhbGlkU2VsZWN0b3Ip
IHsKKyAgICAgICAgICAgIHRoaXMuX2ljb25FbGVtZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJUaGUgc2VsZWN0b3IgJyVzJyBpcyBpbnZhbGlkLlxuQ2xpY2sgdG8gcmV2ZXJ0IHRv
IHRoZSBwcmV2aW91cyBzZWxlY3Rvci4iKS5mb3JtYXQodGhpcy5zZWxlY3RvclRleHQpOworICAg
ICAgICAgICAgdGhpcy5tYWluVGl0bGVFbGVtZW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJVc2luZyB0aGUgcHJldmlvdXMgc2VsZWN0b3IgJyVzJy4iKS5mb3JtYXQodGhpcy5yZXBy
ZXNlbnRlZE9iamVjdC5vd25lclJ1bGUuc2VsZWN0b3JUZXh0KTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX2ljb25FbGVtZW50LnRpdGxlID0gbnVsbDsK
KyAgICAgICAgdGhpcy5tYWluVGl0bGVFbGVtZW50LnRpdGxlID0gbnVsbDsKKyAgICB9CisKKyAg
ICBfaGFuZGxlSWNvbkVsZW1lbnRDbGlja2VkKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKHRo
aXMuX2hhc0ludmFsaWRTZWxlY3RvciAmJiB0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm93bmVyUnVs
ZSkgeworICAgICAgICAgICAgdGhpcy5tYWluVGl0bGVFbGVtZW50LnRleHRDb250ZW50ID0gdGhp
cy5fbGFzdFZhbHVlID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdC5vd25lclJ1bGUuc2VsZWN0b3JU
ZXh0OworICAgICAgICAgICAgdGhpcy5fdXBkYXRlU2VsZWN0b3JJY29uKCk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KICAgICB9CiB9OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>