<?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>158035</bug_id>
          
          <creation_ts>2016-05-24 11:53:30 -0700</creation_ts>
          <short_desc>Web Inspector: resource tree elements should provide &quot;Download File&quot; context menu items</short_desc>
          <delta_ts>2016-08-23 15:25:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>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="Blaze Burg">bburg</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>hi</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>1195941</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-05-24 11:53:30 -0700</bug_when>
    <thetext>It&apos;s strange that we don&apos;t have this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197049</commentid>
    <comment_count>1</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-05-27 07:18:15 -0700</bug_when>
    <thetext>Ping for import.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1197060</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-05-27 07:20:36 -0700</bug_when>
    <thetext>&lt;rdar://problem/26516684&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219925</commentid>
    <comment_count>3</comment_count>
      <attachid>286022</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-13 23:57:53 -0700</bug_when>
    <thetext>Created attachment 286022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219933</commentid>
    <comment_count>4</comment_count>
      <attachid>286022</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2016-08-14 11:50:27 -0700</bug_when>
    <thetext>Comment on attachment 286022
Patch

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

Works as described!

You should add &quot;Download File&quot; to localizedStrings.js.

&gt; Source/WebInspectorUI/UserInterface/Views/ResourceTreeElement.js:201
&gt; +            return;

Why is this needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219935</commentid>
    <comment_count>5</comment_count>
      <attachid>286022</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-14 12:44:42 -0700</bug_when>
    <thetext>Comment on attachment 286022
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/ResourceTreeElement.js:201
&gt;&gt; +            return;
&gt; 
&gt; Why is this needed?

I don&apos;t actually think it is needed.  I think I just copied more than I should have :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219936</commentid>
    <comment_count>6</comment_count>
      <attachid>286025</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-14 12:46:33 -0700</bug_when>
    <thetext>Created attachment 286025
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219945</commentid>
    <comment_count>7</comment_count>
      <attachid>286025</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2016-08-14 14:03:24 -0700</bug_when>
    <thetext>Comment on attachment 286025
Patch

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

In the Resources tab, the main resource tree element doesn&apos;t have a context menu.

&gt; Source/WebInspectorUI/UserInterface/Views/ResourceTreeElement.js:94
&gt; +        this.element.addEventListener(&quot;contextmenu&quot;, this._handleContextMenuEvent.bind(this));

It would be nice to add this to ResourceTimelineDataGridNode too, so it would work for the entire row (and in the Network timeline view).

&gt; Source/WebInspectorUI/UserInterface/Views/ResourceTreeElement.js:202
&gt; +        contextMenu.appendItem(WebInspector.UIString(&quot;Download File&quot;), () =&gt; {

Maybe we should use &quot;Save File&quot; instead, since this also operates on local files. Chrome uses &quot;Save&quot;.

&gt; Source/WebInspectorUI/UserInterface/Views/ResourceTreeElement.js:205
&gt; +                content: this._resource.content

WebInspector.saveDataToFile asserts for blob content (image files), doesn&apos;t save:

Main.js:806:
console.assert(typeof saveData.content === &quot;string&quot;);

FWIW, Chrome dev tools doesn&apos;t show a context menu item for blob file types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219949</commentid>
    <comment_count>8</comment_count>
      <attachid>286032</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-14 14:19:36 -0700</bug_when>
    <thetext>Created attachment 286032
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219997</commentid>
    <comment_count>9</comment_count>
      <attachid>286032</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2016-08-14 18:37:10 -0700</bug_when>
    <thetext>Comment on attachment 286032
Patch

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

This still needs to work for frame resources in the Resources tab. It looks like we don&apos;t get a context menu b/c FrameTreeElement overrides TreeElement.onattach, and skips the base class (intentionally, according to comment).

&gt; Source/WebInspectorUI/ChangeLog:7
&gt; +

Add a short description. I&apos;d mention that this is for text resources only.

&gt; Source/WebInspectorUI/UserInterface/Views/ResourceTreeElement.js:209
&gt; +        }

It would be nice to break all this out into a helper function that both the data grid node and tree element use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220005</commentid>
    <comment_count>10</comment_count>
      <attachid>286051</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-15 00:13:02 -0700</bug_when>
    <thetext>Created attachment 286051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220259</commentid>
    <comment_count>11</comment_count>
      <attachid>286051</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-08-15 17:31:05 -0700</bug_when>
    <thetext>Comment on attachment 286051
Patch

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

r- if we can&apos;t handle images. We should be able to write some tests too.

&gt; Source/WebInspectorUI/UserInterface/Models/Resource.js:685
&gt; +    isTextWithUrl() {
&gt; +        return this.url &amp;&amp; typeof this._resource.content === &quot;string&quot;;
&gt; +    }

This function looks dangerous. The contents of resources (any WebInspector.SourceCode) are downloaded asynchronously, so a text file might not have been downloaded yet and so could fail this &quot;content&quot; check.

I&apos;d expect something more like:

    canDownloadResource()
    {
        // Is there any reason we wouldn&apos;t want to download?
        return true;
    }

&gt; Source/WebInspectorUI/UserInterface/Models/Resource.js:696
&gt; +    saveContentsToFile()
&gt; +    {
&gt; +        if (!this.isTextWithUrl())
&gt; +            return;
&gt; +
&gt; +        WebInspector.saveDataToFile({
&gt; +            url: this.url,
&gt; +            content: this.content
&gt; +        });
&gt; +    }

We should be able to handle binary data just fine! WebInspector.saveDataToFile calls InspectorFrontendHost.save currently always passes &quot;false&quot; for the base64 parameter. However, if hooked up properly it looks like it should just work. Implementations of InspectorFrontendHost.save looks like they would be able to handle converting base64 data to binary data when saving, and the filename should do the rest. For example WebInspectorProxy::platformSave in Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm.

This should be testable!

Also, the URL we are passing in seems poor. The URL is the suggested save dialog URL to use, which doesn&apos;t make much sense with the full URL of the resource. Other ContentViews get the display name which roughly matches the last path component. For example:

    get saveData()
    {
        var url = &quot;web-inspector:///&quot; + encodeURI(WebInspector.UIString(&quot;Untitled&quot;)) + &quot;.txt&quot;;
        return {url, content: this._textEditor.string, forceSaveAs: true};
    }

Maybe we should do something like that here, using the URL&apos;s last path component.

And finally, to handle any resource, this should download the contents if it hasn&apos;t already downloaded the contents.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1220801</commentid>
    <comment_count>12</comment_count>
      <attachid>286284</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-16 23:54:24 -0700</bug_when>
    <thetext>Created attachment 286284
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222080</commentid>
    <comment_count>13</comment_count>
      <attachid>286284</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-08-22 20:22:44 -0700</bug_when>
    <thetext>Comment on attachment 286284
Patch

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

r- for a few things that should be easy to update. Also some open questions.

&gt; Source/WebInspectorUI/ChangeLog:9
&gt; +        Add a context menu item to elements representing text resources that
&gt; +        allows initiates a download of that resource.

Grammaro: &quot;allows initiates a&quot;
Nit: This says &quot;text resources&quot; but supports non-text. Needs an update.

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:813
&gt; +    let url = parseURL(saveData.url).lastPathComponent;

Nit: This variable name is misleading. It should be lastPathComponent.

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:815
&gt; +    if (typeof saveData.content === &quot;string&quot;) {

What does this do for a data URL? For example the data URL resources on:
&lt;http://dopiaza.org/tools/datauri/examples/index.php&gt;

I suspect the content in that case will be a string. Does this properly save an image, or a text file? And what is the suggested save name?

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:823
&gt; +        let base64 = parseDataURL(fileReader.result);

Nit: This variable name is poor. It should be something like dataURLComponents.

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:824
&gt; +        InspectorFrontendHost.save(url || &quot;data&quot;, base64.data, true, forceSaveAs || saveData.forceSaveAs);

Nit: The `true` and `false` in these call sites should be nicely named locals, like: `const base64Encoded = false;`

I feel like there should be a better suggested name than &quot;data&quot;, heh. Maybe we need a mapping from common mime types to extensions? E.g. &quot;image/jpeg&quot; =&gt; &quot;jpg&quot; to better support some cases like dataURLs?

&gt; Source/WebInspectorUI/UserInterface/Models/Resource.js:686
&gt; +    saveContentsToFile()
&gt; +    {
&gt; +        this.requestContent().then(() =&gt; {
&gt; +            WebInspector.saveDataToFile({

It feels like a layering violation to have the Resource model object know about WebInspector.saveDataToFile. Lets do this at the callsites.

&gt; Source/WebInspectorUI/UserInterface/Views/ResourceTreeElement.js:161
&gt; +    _handleContextMenuEvent(event)

Ugh seems we should have some shared place that adds context menu items for a resource. Having this code duplicated (and different, since one has cURL the other doesn&apos;t) kinda stinks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222143</commentid>
    <comment_count>14</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-22 23:16:25 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; Source/WebInspectorUI/UserInterface/Base/Main.js:815
&gt; &gt; +    if (typeof saveData.content === &quot;string&quot;) {
&gt; 
&gt; What does this do for a data URL? For example the data URL resources on:
&gt; &lt;http://dopiaza.org/tools/datauri/examples/index.php&gt;
&gt; 
&gt; I suspect the content in that case will be a string. Does this properly save
&gt; an image, or a text file? And what is the suggested save name?

Yes it works for both data objects.  It suggests &quot;null&quot; for both since there is no lastPathComponent.

&gt; &gt; Source/WebInspectorUI/UserInterface/Base/Main.js:824
&gt; &gt; +        InspectorFrontendHost.save(url || &quot;data&quot;, base64.data, true, forceSaveAs || saveData.forceSaveAs);
&gt; 
&gt; I feel like there should be a better suggested name than &quot;data&quot;, heh. Maybe
&gt; we need a mapping from common mime types to extensions? E.g. &quot;image/jpeg&quot; =&gt;
&gt; &quot;jpg&quot; to better support some cases like dataURLs?

Good idea (☞ﾟヮﾟ)☞

&gt; &gt; Source/WebInspectorUI/UserInterface/Views/ResourceTreeElement.js:161
&gt; &gt; +    _handleContextMenuEvent(event)
&gt; 
&gt; Ugh seems we should have some shared place that adds context menu items for
&gt; a resource. Having this code duplicated (and different, since one has cURL
&gt; the other doesn&apos;t) kinda stinks.

Other than creating a utility/static function somewhere that adds these items to a context menu, I&apos;m not really sure how to solve this.  ¯\_(ツ)_/¯  I do agree that it is annoying though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222144</commentid>
    <comment_count>15</comment_count>
      <attachid>286681</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-22 23:17:55 -0700</bug_when>
    <thetext>Created attachment 286681
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222159</commentid>
    <comment_count>16</comment_count>
      <attachid>286685</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-23 00:18:54 -0700</bug_when>
    <thetext>Created attachment 286685
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222161</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-23 00:21:14 -0700</bug_when>
    <thetext>Attachment 286685 did not pass style-queue:


ERROR: Source/WebInspectorUI/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222232</commentid>
    <comment_count>18</comment_count>
      <attachid>286714</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-23 08:52:26 -0700</bug_when>
    <thetext>Created attachment 286714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222311</commentid>
    <comment_count>19</comment_count>
      <attachid>286714</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-08-23 11:19:01 -0700</bug_when>
    <thetext>Comment on attachment 286714
Patch

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

r=me, but you may want to put up a follow-up to fix the file extension handling for data URLs. At least file a bugzilla bug for it if you do not address it.

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:817
&gt; +        let dataURLTypeMatch = /^data:([^\/]+)\/([^;]+)/.exec(saveData.url);
&gt; +        if (dataURLTypeMatch)
&gt; +            suggestedName = `${dataURLTypeMatch[1]}.${dataURLTypeMatch[2]}`;

This might work okay for image types, but it won&apos;t work well for text mime types:

    text/plain
    text/javascript
    application/javascript

Turns out we already have a reasonable mapping from File Extension to MIME Type in MIMETypeUtilities.js. Can we flip that and create a WebInspector.fileExtensionForMIMEType(mimeType)?

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:819
&gt; +            suggestedName = &quot;untitled&quot;;

Nit: On macOS the default is normally capitalized, &quot;Untitled&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222312</commentid>
    <comment_count>20</comment_count>
      <attachid>286714</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-08-23 11:19:40 -0700</bug_when>
    <thetext>Comment on attachment 286714
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:819
&gt;&gt; +            suggestedName = &quot;untitled&quot;;
&gt; 
&gt; Nit: On macOS the default is normally capitalized, &quot;Untitled&quot;.

And maybe this should be localized.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222361</commentid>
    <comment_count>21</comment_count>
      <attachid>286756</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-23 12:35:27 -0700</bug_when>
    <thetext>Created attachment 286756
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222368</commentid>
    <comment_count>22</comment_count>
      <attachid>286756</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-08-23 12:53:44 -0700</bug_when>
    <thetext>Comment on attachment 286756
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Base/MIMETypeUtilities.js:82
&gt; +WebInspector.fileExtensionForMIMEType = function(mimeType)

cq-. Shouldn&apos;t include the &apos;.&apos; in all of these. Should just add it at the end if not undefined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222370</commentid>
    <comment_count>23</comment_count>
      <attachid>286756</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-08-23 12:54:50 -0700</bug_when>
    <thetext>Comment on attachment 286756
Patch

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

&gt; Source/WebInspectorUI/UserInterface/Base/Main.js:819
&gt; +        if (dataURLTypeMatch) {
&gt; +            suggestedName += WebInspector.fileExtensionForMIMEType(dataURLTypeMatch[1]) || &quot;&quot;;
&gt; +        }

Style: No braces for single statement blocks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222413</commentid>
    <comment_count>24</comment_count>
      <attachid>286775</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2016-08-23 14:22:00 -0700</bug_when>
    <thetext>Created attachment 286775
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222462</commentid>
    <comment_count>25</comment_count>
      <attachid>286775</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-23 15:25:13 -0700</bug_when>
    <thetext>Comment on attachment 286775
Patch

Clearing flags on attachment: 286775

Committed r204862: &lt;http://trac.webkit.org/changeset/204862&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1222463</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-23 15:25:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286022</attachid>
            <date>2016-08-13 23:57:53 -0700</date>
            <delta_ts>2016-08-14 12:46:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158035-20160813235611.patch</filename>
            <type>text/plain</type>
            <size>2451</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDc3YjliMjNiYjA0ZWZiMGVjNTMzZWI4MDU2NGEy
NDdkNzFmZjJiZWMuLjVmNTg5YWQ4NGRlMDBhZjIyMTE4Y2YwMjBiNzZlMGU2ZDdhNWY2OWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE2LTA4LTEzICBEZXZp
biBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHJlc291cmNlIHRyZWUgZWxlbWVudHMgc2hvdWxkIHByb3ZpZGUgIkRvd25sb2FkIEZp
bGUiIGNvbnRleHQgbWVudSBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU4MDM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRWxlbWVudC5wcm90b3R5cGUu
b25hdHRhY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQucHJv
dG90eXBlLl9oYW5kbGVDb250ZXh0TWVudUV2ZW50KToKKwogMjAxNi0wOC0xMiAgVGltb3RoeSBI
YXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQWRk
IGFwcGxpY2F0aW9uL3ZuZC5hcGkranNvbiBhcyBhIHZhbGlkIEpTT04gTUlNRS10eXBlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJj
ZVRyZWVFbGVtZW50LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvUmVzb3VyY2VUcmVlRWxlbWVudC5qcwppbmRleCBhZjk2YzI1ODBlYjgzNTI4MmM1ZDRiZTQ4
NTQ4NzVmOTVhNjNmNDU2Li4wYzUwZDU3NmY0YWE1Nzg5ZjkwYjBkNTYyMjljNjhhMmM4NjZlOTc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9S
ZXNvdXJjZVRyZWVFbGVtZW50LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanMKQEAgLTg3LDYgKzg3LDEzIEBAIFdl
Ykluc3BlY3Rvci5SZXNvdXJjZVRyZWVFbGVtZW50ID0gY2xhc3MgUmVzb3VyY2VUcmVlRWxlbWVu
dCBleHRlbmRzIFdlYkluc3BlY3RvCiAgICAgICAgIHJldHVybiB7dGV4dDogW3VybENvbXBvbmVu
dHMubGFzdFBhdGhDb21wb25lbnQsIHVybENvbXBvbmVudHMucGF0aCwgdGhpcy5fcmVzb3VyY2Uu
dXJsXX07CiAgICAgfQogCisgICAgb25hdHRhY2goKQorICAgIHsKKyAgICAgICAgc3VwZXIub25h
dHRhY2goKTsKKworICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4
dG1lbnUiLCB0aGlzLl9oYW5kbGVDb250ZXh0TWVudUV2ZW50LmJpbmQodGhpcykpOworICAgIH0K
KwogICAgIG9uZGJsY2xpY2soKQogICAgIHsKICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0
Lm9wZW5Jbk5ld1RhYih0aGlzLl9yZXNvdXJjZS51cmwpOwpAQCAtMTg3LDYgKzE5NCwyMSBAQCBX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRWxlbWVudCA9IGNsYXNzIFJlc291cmNlVHJlZUVsZW1l
bnQgZXh0ZW5kcyBXZWJJbnNwZWN0bwogCiAgICAgICAgIHRoaXMuY2FsbEZpcnN0QW5jZXN0b3JG
dW5jdGlvbigiZGVzY2VuZGFudFJlc291cmNlVHJlZUVsZW1lbnRUeXBlRGlkQ2hhbmdlIiwgW3Ro
aXMsIGV2ZW50LmRhdGEub2xkVHlwZV0pOwogICAgIH0KKworICAgIF9oYW5kbGVDb250ZXh0TWVu
dUV2ZW50KGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKHdpbmRvdy5nZXRTZWxlY3Rpb24oKS50
b1N0cmluZygpLmxlbmd0aCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsZXQgY29u
dGV4dE1lbnUgPSBXZWJJbnNwZWN0b3IuQ29udGV4dE1lbnUuY3JlYXRlRnJvbUV2ZW50KGV2ZW50
KTsKKworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiRG93bmxvYWQgRmlsZSIpLCAoKSA9PiB7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2F2
ZURhdGFUb0ZpbGUoeworICAgICAgICAgICAgICAgIHVybDogdGhpcy5fcmVzb3VyY2UudXJsLAor
ICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX3Jlc291cmNlLmNvbnRlbnQKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CiB9OwogCiBXZWJJbnNwZWN0b3IuUmVzb3VyY2VU
cmVlRWxlbWVudC5SZXNvdXJjZUljb25TdHlsZUNsYXNzTmFtZSA9ICJyZXNvdXJjZS1pY29uIjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286025</attachid>
            <date>2016-08-14 12:46:33 -0700</date>
            <delta_ts>2016-08-14 14:19:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158035-20160814124450.patch</filename>
            <type>text/plain</type>
            <size>2796</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDc3YjliMjNiYjA0ZWZiMGVjNTMzZWI4MDU2NGEy
NDdkNzFmZjJiZWMuLjczOWNiMTFhYzk3Mjc5YWFhYTEwMGQwMjRiYTg1ODU1NDhiNTJiNjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTA4LTE0ICBEZXZp
biBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHJlc291cmNlIHRyZWUgZWxlbWVudHMgc2hvdWxkIHByb3ZpZGUgIkRvd25sb2FkIEZp
bGUiIGNvbnRleHQgbWVudSBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU4MDM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3Mu
anM6CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50Lmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQucHJvdG90eXBlLm9u
YXR0YWNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVFbGVtZW50LnByb3Rv
dHlwZS5faGFuZGxlQ29udGV4dE1lbnVFdmVudCk6CisKIDIwMTYtMDgtMTIgIFRpbW90aHkgSGF0
Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBh
cHBsaWNhdGlvbi92bmQuYXBpK2pzb24gYXMgYSB2YWxpZCBKU09OIE1JTUUtdHlwZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxp
emVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxw
cm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggOTk5OTYyMzYwNmQzYmY4ZTc0MmZkMzBmYmJh
OTc0N2UyOGI2ZjU4ZS4uNzIyNDQ4YjVhZWUzZDhjYjk0YzQyY2FmNzMwN2NhZjJkOTdiYjIwMiAx
MDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSAzMgpuY21lQT0lbGhSaz54U310UnlUJUJoTWRW
PWBISVh5KjVte0Jga1BicFJsZnJPKF97PnMKCmRlbHRhIDE4CmFjbWV4em1iTDNGPnhUMEQkKVdg
a259NnAye3NzVjliX3crVwoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50LmpzCmluZGV4IGFm
OTZjMjU4MGViODM1MjgyYzVkNGJlNDg1NDg3NWY5NWE2M2Y0NTYuLjMxNmRjYmM0YzlkOGNiZGNk
ZDYwN2QyMmFhZTY2MmYyYTdhNmIxYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VUcmVlRWxlbWVudC5q
cwpAQCAtODcsNiArODcsMTMgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQgPSBj
bGFzcyBSZXNvdXJjZVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG8KICAgICAgICAgcmV0
dXJuIHt0ZXh0OiBbdXJsQ29tcG9uZW50cy5sYXN0UGF0aENvbXBvbmVudCwgdXJsQ29tcG9uZW50
cy5wYXRoLCB0aGlzLl9yZXNvdXJjZS51cmxdfTsKICAgICB9CiAKKyAgICBvbmF0dGFjaCgpCisg
ICAgeworICAgICAgICBzdXBlci5vbmF0dGFjaCgpOworCisgICAgICAgIHRoaXMuZWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIHRoaXMuX2hhbmRsZUNvbnRleHRNZW51RXZl
bnQuYmluZCh0aGlzKSk7CisgICAgfQorCiAgICAgb25kYmxjbGljaygpCiAgICAgewogICAgICAg
ICBJbnNwZWN0b3JGcm9udGVuZEhvc3Qub3BlbkluTmV3VGFiKHRoaXMuX3Jlc291cmNlLnVybCk7
CkBAIC0xODcsNiArMTk0LDE4IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVFbGVtZW50ID0g
Y2xhc3MgUmVzb3VyY2VUcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3RvCiAKICAgICAgICAg
dGhpcy5jYWxsRmlyc3RBbmNlc3RvckZ1bmN0aW9uKCJkZXNjZW5kYW50UmVzb3VyY2VUcmVlRWxl
bWVudFR5cGVEaWRDaGFuZ2UiLCBbdGhpcywgZXZlbnQuZGF0YS5vbGRUeXBlXSk7CiAgICAgfQor
CisgICAgX2hhbmRsZUNvbnRleHRNZW51RXZlbnQoZXZlbnQpCisgICAgeworICAgICAgICBsZXQg
Y29udGV4dE1lbnUgPSBXZWJJbnNwZWN0b3IuQ29udGV4dE1lbnUuY3JlYXRlRnJvbUV2ZW50KGV2
ZW50KTsKKworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0
cmluZygiRG93bmxvYWQgRmlsZSIpLCAoKSA9PiB7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
c2F2ZURhdGFUb0ZpbGUoeworICAgICAgICAgICAgICAgIHVybDogdGhpcy5fcmVzb3VyY2UudXJs
LAorICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX3Jlc291cmNlLmNvbnRlbnQKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CiB9OwogCiBXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VUcmVlRWxlbWVudC5SZXNvdXJjZUljb25TdHlsZUNsYXNzTmFtZSA9ICJyZXNvdXJjZS1pY29u
IjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286032</attachid>
            <date>2016-08-14 14:19:36 -0700</date>
            <delta_ts>2016-08-15 00:12:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158035-20160814141753.patch</filename>
            <type>text/plain</type>
            <size>4217</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDc3YjliMjNiYjA0ZWZiMGVjNTMzZWI4MDU2NGEy
NDdkNzFmZjJiZWMuLjAxYzNlZTkwZmZmY2YxNmY2YWNlNTZlY2ZjMzg3MDRkYjRhYmMwMGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE2LTA4LTE0ICBEZXZp
biBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHJlc291cmNlIHRyZWUgZWxlbWVudHMgc2hvdWxkIHByb3ZpZGUgIkRvd25sb2FkIEZp
bGUiIGNvbnRleHQgbWVudSBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU4MDM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3Mu
anM6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVGltZWxpbmVEYXRh
R3JpZE5vZGUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUaW1lbGluZURhdGFH
cmlkTm9kZS5wcm90b3R5cGUuYXBwZW5kQ29udGV4dE1lbnVJdGVtcyk6CisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VUcmVlRWxlbWVudC5wcm90b3R5cGUub25hdHRhY2gpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQucHJvdG90eXBlLl9oYW5kbGVDb250
ZXh0TWVudUV2ZW50KToKKwogMjAxNi0wOC0xMiAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIGFwcGxpY2F0aW9uL3ZuZC5h
cGkranNvbiBhcyBhIHZhbGlkIEpTT04gTUlNRS10eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qcwppbmRleCA5OTk5NjIzNjA2ZDNiZjhlNzQyZmQzMGZiYmE5NzQ3ZTI4YjZmNThlLi45
OTkyZGI3YjJlOGFkYmM2OTViNjk1Njc2MmJhMmJmYTAwODY3MmFkIDEwMDY0NApHSVQgYmluYXJ5
IHBhdGNoCmRlbHRhIDU2CnpjbWVBPSVsaE9qWXJfYENnWnpxYTQ0RGkkNDU8dUM0NnpJZjQ3TmI1
IzFQRG8kV1I2cFEoeXFmUDhTZW1HfkIrRQpJcFlkV0MwSVM+JCReWlpXCgpkZWx0YSAxNwpaY21h
RUltYkwzRllyX2BDZ1okZzIxc0czOzBSVHZVMk8wblgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRpbWVsaW5lRGF0YUdyaWRO
b2RlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3Vy
Y2VUaW1lbGluZURhdGFHcmlkTm9kZS5qcwppbmRleCBkNDU2ZDc5NWQ1ZDRlZWM2MWYwYzRkNTky
OWRhOTQxMDIzYmZlODk2Li4wYTQzYjJhMDY1YmFjMDgxZWY3ZGNiMmUwYWQ5NzliNjEwNTYzNGE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9S
ZXNvdXJjZVRpbWVsaW5lRGF0YUdyaWROb2RlLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVGltZWxpbmVEYXRhR3JpZE5vZGUuanMKQEAg
LTE0OCw2ICsxNDgsMTUgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVGltZWxpbmVEYXRhR3JpZE5v
ZGUgPSBjbGFzcyBSZXNvdXJjZVRpbWVsaW5lRGF0YUdyaWROb2RlIGUKIAogICAgIGFwcGVuZENv
bnRleHRNZW51SXRlbXMoY29udGV4dE1lbnUpCiAgICAgeworICAgICAgICBpZiAodGhpcy5fcmVz
b3VyY2UudXJsICYmIHR5cGVvZiB0aGlzLl9yZXNvdXJjZS5jb250ZW50ID09PSAic3RyaW5nIikg
eworICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJp
bmcoIlNhdmUgRmlsZSIpLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNh
dmVEYXRhVG9GaWxlKHsKKyAgICAgICAgICAgICAgICAgICAgdXJsOiB0aGlzLl9yZXNvdXJjZS51
cmwsCisgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX3Jlc291cmNlLmNvbnRlbnQK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKICAgICAg
ICAgaWYgKHRoaXMuX3Jlc291cmNlLnVybENvbXBvbmVudHMuc2NoZW1lICE9PSAiZGF0YSIpCiAg
ICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygi
Q29weSBhcyBjVVJMIiksICgpID0+IHsgdGhpcy5fcmVzb3VyY2UuZ2VuZXJhdGVDVVJMQ29tbWFu
ZCgpOyB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50LmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VUcmVlRWxlbWVudC5qcwppbmRleCBhZjk2
YzI1ODBlYjgzNTI4MmM1ZDRiZTQ4NTQ4NzVmOTVhNjNmNDU2Li40ZGJmMTBhMjBhM2IwMTVhZDFk
MjY5MGM4Nzc5MjMwMzYyNTM2ZGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50LmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanMK
QEAgLTg3LDYgKzg3LDEzIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVFbGVtZW50ID0gY2xh
c3MgUmVzb3VyY2VUcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3RvCiAgICAgICAgIHJldHVy
biB7dGV4dDogW3VybENvbXBvbmVudHMubGFzdFBhdGhDb21wb25lbnQsIHVybENvbXBvbmVudHMu
cGF0aCwgdGhpcy5fcmVzb3VyY2UudXJsXX07CiAgICAgfQogCisgICAgb25hdHRhY2goKQorICAg
IHsKKyAgICAgICAgc3VwZXIub25hdHRhY2goKTsKKworICAgICAgICB0aGlzLmVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCB0aGlzLl9oYW5kbGVDb250ZXh0TWVudUV2ZW50
LmJpbmQodGhpcykpOworICAgIH0KKwogICAgIG9uZGJsY2xpY2soKQogICAgIHsKICAgICAgICAg
SW5zcGVjdG9yRnJvbnRlbmRIb3N0Lm9wZW5Jbk5ld1RhYih0aGlzLl9yZXNvdXJjZS51cmwpOwpA
QCAtMTg3LDYgKzE5NCwyMCBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRWxlbWVudCA9IGNs
YXNzIFJlc291cmNlVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0bwogCiAgICAgICAgIHRo
aXMuY2FsbEZpcnN0QW5jZXN0b3JGdW5jdGlvbigiZGVzY2VuZGFudFJlc291cmNlVHJlZUVsZW1l
bnRUeXBlRGlkQ2hhbmdlIiwgW3RoaXMsIGV2ZW50LmRhdGEub2xkVHlwZV0pOwogICAgIH0KKwor
ICAgIF9oYW5kbGVDb250ZXh0TWVudUV2ZW50KGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IGNv
bnRleHRNZW51ID0gV2ViSW5zcGVjdG9yLkNvbnRleHRNZW51LmNyZWF0ZUZyb21FdmVudChldmVu
dCk7CisKKyAgICAgICAgaWYgKHRoaXMuX3Jlc291cmNlLnVybCAmJiB0eXBlb2YgdGhpcy5fcmVz
b3VyY2UuY29udGVudCA9PT0gInN0cmluZyIpIHsKKyAgICAgICAgICAgIGNvbnRleHRNZW51LmFw
cGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTYXZlIEZpbGUiKSwgKCkgPT4geworICAg
ICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zYXZlRGF0YVRvRmlsZSh7CisgICAgICAgICAgICAg
ICAgICAgIHVybDogdGhpcy5fcmVzb3VyY2UudXJsLAorICAgICAgICAgICAgICAgICAgICBjb250
ZW50OiB0aGlzLl9yZXNvdXJjZS5jb250ZW50CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KIH07CiAKIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRy
ZWVFbGVtZW50LlJlc291cmNlSWNvblN0eWxlQ2xhc3NOYW1lID0gInJlc291cmNlLWljb24iOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286051</attachid>
            <date>2016-08-15 00:13:02 -0700</date>
            <delta_ts>2016-08-16 23:54:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158035-20160815001118.patch</filename>
            <type>text/plain</type>
            <size>5927</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDc3YjliMjNiYjA0ZWZiMGVjNTMzZWI4MDU2NGEy
NDdkNzFmZjJiZWMuLjJkZmRlM2ZiN2E1N2Q3MWJhM2JmODA3OGFlOGI1YmIwNzE3MzhlN2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE2LTA4LTE1ICBEZXZp
biBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHJlc291cmNlIHRyZWUgZWxlbWVudHMgc2hvdWxkIHByb3ZpZGUgIkRvd25sb2FkIEZp
bGUiIGNvbnRleHQgbWVudSBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU4MDM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGEgY29udGV4dCBtZW51IGl0ZW0gdG8gZWxlbWVudHMgcmVwcmVz
ZW50aW5nIHRleHQgcmVzb3VyY2VzIHRoYXQKKyAgICAgICAgYWxsb3dzIGluaXRpYXRlcyBhIGRv
d25sb2FkIG9mIHRoYXQgcmVzb3VyY2UuCisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxw
cm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVs
cy9SZXNvdXJjZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZS5wcm90b3R5cGUu
aXNUZXh0V2l0aFVybCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2UucHJvdG90eXBl
LnNhdmVDb250ZW50c1RvRmlsZSk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0Zy
YW1lVHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVUcmVlRWxlbWVu
dC5wcm90b3R5cGUub25hdHRhY2gpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9S
ZXNvdXJjZVRpbWVsaW5lRGF0YUdyaWROb2RlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJl
c291cmNlVGltZWxpbmVEYXRhR3JpZE5vZGUucHJvdG90eXBlLmFwcGVuZENvbnRleHRNZW51SXRl
bXMpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQucHJvdG90eXBl
Lm9uYXR0YWNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVFbGVtZW50LnBy
b3RvdHlwZS5faGFuZGxlQ29udGV4dE1lbnVFdmVudCk6CisKIDIwMTYtMDgtMTIgIFRpbW90aHkg
SGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFk
ZCBhcHBsaWNhdGlvbi92bmQuYXBpK2pzb24gYXMgYSB2YWxpZCBKU09OIE1JTUUtdHlwZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2Vu
Lmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggOTk5OTYyMzYwNmQzYmY4ZTc0MmZkMzBm
YmJhOTc0N2UyOGI2ZjU4ZS4uOTk5MmRiN2IyZThhZGJjNjk1YjY5NTY3NjJiYTJiZmEwMDg2NzJh
ZCAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSA1Ngp6Y21lQT0lbGhPallyX2BDZ1p6cWE0
NERpJDQ1PHVDNDZ6SWY0N05iNSMxUERvJFdSNnBRKHlxZlA4U2VtR35CK0UKSXBZZFdDMElTPiQk
XlpaVwoKZGVsdGEgMTcKWmNtYUVJbWJMM0ZZcl9gQ2daJGcyMXNHMzswUlR2VTJPMG5YCgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Jlc291
cmNlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL1Jlc291
cmNlLmpzCmluZGV4IDVlZTg2ZTBjZWQ5MWUxNjMzNjM1OTI3MjNkZjk4ZTE4YTVhZmNmZGMuLmFi
NmExZmYyYTY5NTYyNDQ3ZGJkNTRmY2Q0ZWM1NDRjMjFlN2FiNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9SZXNvdXJjZS5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvUmVzb3VyY2UuanMKQEAg
LTY4MCw2ICs2ODAsMjEgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlID0gY2xhc3MgUmVzb3VyY2Ug
ZXh0ZW5kcyBXZWJJbnNwZWN0b3IuU291cmNlQ29kZQogICAgICAgICBjb29raWVbV2ViSW5zcGVj
dG9yLlJlc291cmNlLk1haW5SZXNvdXJjZUNvb2tpZUtleV0gPSB0aGlzLmlzTWFpblJlc291cmNl
KCk7CiAgICAgfQogCisgICAgaXNUZXh0V2l0aFVybCgpIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
dXJsICYmIHR5cGVvZiB0aGlzLl9yZXNvdXJjZS5jb250ZW50ID09PSAic3RyaW5nIjsKKyAgICB9
CisKKyAgICBzYXZlQ29udGVudHNUb0ZpbGUoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlz
VGV4dFdpdGhVcmwoKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBXZWJJbnNwZWN0
b3Iuc2F2ZURhdGFUb0ZpbGUoeworICAgICAgICAgICAgdXJsOiB0aGlzLnVybCwKKyAgICAgICAg
ICAgIGNvbnRlbnQ6IHRoaXMuY29udGVudAorICAgICAgICB9KTsKKyAgICB9CisKICAgICBnZW5l
cmF0ZUNVUkxDb21tYW5kKCkKICAgICB7CiAgICAgICAgIGZ1bmN0aW9uIGVzY2FwZVN0cmluZ1Bv
c2l4KHN0cikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvRnJhbWVUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL0ZyYW1lVHJlZUVsZW1lbnQuanMKaW5kZXggZjBhMzlhZGE4NTc2NTJi
OTVmMjJjZWJjY2E0NmE5MTEwMzYyNzU5MS4uMzQ2NjJjNTQwNjllMmUyNWI3YzQ4NjJlZTU3ODJl
ZTc2MTJmNTgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvRnJhbWVUcmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9GcmFtZVRyZWVFbGVtZW50LmpzCkBAIC0xNDIsNiArMTQyLDgg
QEAgV2ViSW5zcGVjdG9yLkZyYW1lVHJlZUVsZW1lbnQgPSBjbGFzcyBGcmFtZVRyZWVFbGVtZW50
IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlJlc28KICAgICB7CiAgICAgICAgIC8vIEltbWVkaWF0ZSBz
dXBlcmNsYXNzZXMgYXJlIHNraXBwZWQsIHNpbmNlIEZyYW1lcyBoYW5kbGUgdGhlaXIgb3duIFNv
dXJjZU1hcFJlc291cmNlcy4KICAgICAgICAgV2ViSW5zcGVjdG9yLkdlbmVyYWxUcmVlRWxlbWVu
dC5wcm90b3R5cGUub25hdHRhY2guY2FsbCh0aGlzKTsKKworICAgICAgICB0aGlzLmVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCB0aGlzLl9oYW5kbGVDb250ZXh0TWVudUV2
ZW50LmJpbmQodGhpcykpOwogICAgIH0KIAogICAgIC8vIE92ZXJyaWRlcyBmcm9tIEZvbGRlcml6
ZWRUcmVlRWxlbWVudCAoUHJvdGVjdGVkKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVGltZWxpbmVEYXRhR3JpZE5vZGUuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRpbWVs
aW5lRGF0YUdyaWROb2RlLmpzCmluZGV4IGQ0NTZkNzk1ZDVkNGVlYzYxZjBjNGQ1OTI5ZGE5NDEw
MjNiZmU4OTYuLmE2Y2RhNGE0NzlkNzg2YmY0MDgzYzNjYTg0YWZmOWU0Zjg5MWZmNzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNl
VGltZWxpbmVEYXRhR3JpZE5vZGUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvUmVzb3VyY2VUaW1lbGluZURhdGFHcmlkTm9kZS5qcwpAQCAtMTQ4LDYg
KzE0OCw5IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRpbWVsaW5lRGF0YUdyaWROb2RlID0gY2xh
c3MgUmVzb3VyY2VUaW1lbGluZURhdGFHcmlkTm9kZSBlCiAKICAgICBhcHBlbmRDb250ZXh0TWVu
dUl0ZW1zKGNvbnRleHRNZW51KQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3Jlc291cmNlLmlz
VGV4dFdpdGhVcmwoKSkKKyAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJTYXZlIEZpbGUiKSwgdGhpcy5fcmVzb3VyY2Uuc2F2ZUNvbnRlbnRz
VG9GaWxlKCkpOworCiAgICAgICAgIGlmICh0aGlzLl9yZXNvdXJjZS51cmxDb21wb25lbnRzLnNj
aGVtZSAhPT0gImRhdGEiKQogICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJ
bnNwZWN0b3IuVUlTdHJpbmcoIkNvcHkgYXMgY1VSTCIpLCAoKSA9PiB7IHRoaXMuX3Jlc291cmNl
LmdlbmVyYXRlQ1VSTENvbW1hbmQoKTsgfSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VUcmVlRWxlbWVudC5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVs
ZW1lbnQuanMKaW5kZXggYWY5NmMyNTgwZWI4MzUyODJjNWQ0YmU0ODU0ODc1Zjk1YTYzZjQ1Ni4u
NGRmYjFmMGRjMjJkYjJjZTk0NmYwZWM5YWIxMmRhODJhZjE5NjBjNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VUcmVlRWxlbWVu
dC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNv
dXJjZVRyZWVFbGVtZW50LmpzCkBAIC04Nyw2ICs4NywxMyBAQCBXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VUcmVlRWxlbWVudCA9IGNsYXNzIFJlc291cmNlVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNw
ZWN0bwogICAgICAgICByZXR1cm4ge3RleHQ6IFt1cmxDb21wb25lbnRzLmxhc3RQYXRoQ29tcG9u
ZW50LCB1cmxDb21wb25lbnRzLnBhdGgsIHRoaXMuX3Jlc291cmNlLnVybF19OwogICAgIH0KIAor
ICAgIG9uYXR0YWNoKCkKKyAgICB7CisgICAgICAgIHN1cGVyLm9uYXR0YWNoKCk7CisKKyAgICAg
ICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwgdGhpcy5faGFu
ZGxlQ29udGV4dE1lbnVFdmVudC5iaW5kKHRoaXMpKTsKKyAgICB9CisKICAgICBvbmRibGNsaWNr
KCkKICAgICB7CiAgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5vcGVuSW5OZXdUYWIodGhp
cy5fcmVzb3VyY2UudXJsKTsKQEAgLTE1MSw2ICsxNTgsMTQgQEAgV2ViSW5zcGVjdG9yLlJlc291
cmNlVHJlZUVsZW1lbnQgPSBjbGFzcyBSZXNvdXJjZVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5z
cGVjdG8KICAgICAgICAgICAgIHRoaXMuY2FsbEZpcnN0QW5jZXN0b3JGdW5jdGlvbigiZGVzY2Vu
ZGFudFJlc291cmNlVHJlZUVsZW1lbnRNYWluVGl0bGVEaWRDaGFuZ2UiLCBbdGhpcywgb2xkTWFp
blRpdGxlXSk7CiAgICAgfQogCisgICAgX2hhbmRsZUNvbnRleHRNZW51RXZlbnQoZXZlbnQpCisg
ICAgeworICAgICAgICBsZXQgY29udGV4dE1lbnUgPSBXZWJJbnNwZWN0b3IuQ29udGV4dE1lbnUu
Y3JlYXRlRnJvbUV2ZW50KGV2ZW50KTsKKworICAgICAgICBpZiAodGhpcy5fcmVzb3VyY2UuaXNU
ZXh0V2l0aFVybCgpKQorICAgICAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIlNhdmUgRmlsZSIpLCB0aGlzLl9yZXNvdXJjZS5zYXZlQ29udGVudHNU
b0ZpbGUpOworICAgIH0KKwogICAgIC8vIFByaXZhdGUKIAogICAgIF91cGRhdGVTdGF0dXMoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286284</attachid>
            <date>2016-08-16 23:54:24 -0700</date>
            <delta_ts>2016-08-22 23:17:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158035-20160816235236.patch</filename>
            <type>text/plain</type>
            <size>7213</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDg1NmU5Yjk0MWE1MDc4OGNiM2I4ZTExMTFiM2Yx
Mzk0NzVkYjJjODYuLjZkN2NmMWI5YWNmMWMwYjgwNTI2MDNkOTBlZTUxZDM3MDdhMzNhNjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE2LTA4LTE2ICBEZXZp
biBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHJlc291cmNlIHRyZWUgZWxlbWVudHMgc2hvdWxkIHByb3ZpZGUgIkRvd25sb2FkIEZp
bGUiIGNvbnRleHQgbWVudSBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU4MDM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGEgY29udGV4dCBtZW51IGl0ZW0gdG8gZWxlbWVudHMgcmVwcmVz
ZW50aW5nIHRleHQgcmVzb3VyY2VzIHRoYXQKKyAgICAgICAgYWxsb3dzIGluaXRpYXRlcyBhIGRv
d25sb2FkIG9mIHRoYXQgcmVzb3VyY2UuCisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxw
cm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Jhc2Uv
TWFpbi5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5zYXZlRGF0YVRvRmlsZSk6CisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBzYXZpbmcgYmFzZTY0IG9iamVjdHMuCisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL01vZGVscy9SZXNvdXJjZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNv
dXJjZS5wcm90b3R5cGUuc2F2ZUNvbnRlbnRzVG9GaWxlKToKKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvRnJhbWVUcmVlRWxlbWVudC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5G
cmFtZVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbmF0dGFjaCk6CisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVGltZWxpbmVEYXRhR3JpZE5vZGUuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VUaW1lbGluZURhdGFHcmlkTm9kZS5wcm90b3R5cGUuYXBwZW5k
Q29udGV4dE1lbnVJdGVtcyk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291
cmNlVHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRWxl
bWVudC5wcm90b3R5cGUub25hdHRhY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNl
VHJlZUVsZW1lbnQucHJvdG90eXBlLl9oYW5kbGVDb250ZXh0TWVudUV2ZW50KToKKwogMjAxNi0w
OC0xNiAgTmlraXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBET00gbm9kZXMgc2hpZnQgd2hlbiBob3ZlcmluZyBvdmVyIHRoZW0gaW4g
Q29uc29sZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMv
ZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2Nh
bGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggNmZmM2M4NDgwYTRm
ZDM1MzNmY2RmNmQ1YmE4ZGE2ZjY3YjhjNGQxMC4uYzgwMWIxMjNiNjg1NmYyNDNjYzEwOTgxNmUz
NmYwZTRlOGMxNWM2OSAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApkZWx0YSA1Ngp6Y21leHptaTYy
QClgbCZOKzUoRGg0NERpJDQ1PHVDNDZ6SWY0N05iNSMxUERvJFdSNnBRKHlxZlBHNyohWHVNcmoK
SWZibzE3MEh4eztmZEJ2aQoKZGVsdGEgMTcKWmNtWD9pamBobn4pYGwmTis1KzJLMXNHMzswUlQh
KTJTZms+CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
QmFzZS9NYWluLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9N
YWluLmpzCmluZGV4IDgyMGU1YmE5YTlkOTU5Mzk5Zjg3Y2VkOWM0NmE3OTNiNWNjYjJjODMuLjE3
YzMwM2NmZTA0MDQ2MGViZjA2OTZjYTlkMjU5Mjk0ZGM0MGUwYTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcworKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKQEAgLTgwNiwxMSArODA2
LDIzIEBAIFdlYkluc3BlY3Rvci5zYXZlRGF0YVRvRmlsZSA9IGZ1bmN0aW9uKHNhdmVEYXRhLCBm
b3JjZVNhdmVBcykKICAgICB9CiAKICAgICBjb25zb2xlLmFzc2VydChzYXZlRGF0YS51cmwpOwot
ICAgIGNvbnNvbGUuYXNzZXJ0KHR5cGVvZiBzYXZlRGF0YS5jb250ZW50ID09PSAic3RyaW5nIik7
Ci0gICAgaWYgKCFzYXZlRGF0YS51cmwgfHwgdHlwZW9mIHNhdmVEYXRhLmNvbnRlbnQgIT09ICJz
dHJpbmciKQorICAgIGNvbnNvbGUuYXNzZXJ0KHNhdmVEYXRhLmNvbnRlbnQpOworICAgIGlmICgh
c2F2ZURhdGEudXJsIHx8ICFzYXZlRGF0YS5jb250ZW50KQogICAgICAgICByZXR1cm47CiAKLSAg
ICBJbnNwZWN0b3JGcm9udGVuZEhvc3Quc2F2ZShzYXZlRGF0YS51cmwsIHNhdmVEYXRhLmNvbnRl
bnQsIGZhbHNlLCBmb3JjZVNhdmVBcyB8fCBzYXZlRGF0YS5mb3JjZVNhdmVBcyk7CisgICAgbGV0
IHVybCA9IHBhcnNlVVJMKHNhdmVEYXRhLnVybCkubGFzdFBhdGhDb21wb25lbnQ7CisKKyAgICBp
ZiAodHlwZW9mIHNhdmVEYXRhLmNvbnRlbnQgPT09ICJzdHJpbmciKSB7CisgICAgICAgIEluc3Bl
Y3RvckZyb250ZW5kSG9zdC5zYXZlKHVybCwgc2F2ZURhdGEuY29udGVudCwgZmFsc2UsIGZvcmNl
U2F2ZUFzIHx8IHNhdmVEYXRhLmZvcmNlU2F2ZUFzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGxldCBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXI7CisgICAgZmlsZVJlYWRlci5y
ZWFkQXNEYXRhVVJMKHNhdmVEYXRhLmNvbnRlbnQpOworICAgIGZpbGVSZWFkZXIuYWRkRXZlbnRM
aXN0ZW5lcigibG9hZGVuZCIsICgpID0+IHsKKyAgICAgICAgbGV0IGJhc2U2NCA9IHBhcnNlRGF0
YVVSTChmaWxlUmVhZGVyLnJlc3VsdCk7CisgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5z
YXZlKHVybCB8fCAiZGF0YSIsIGJhc2U2NC5kYXRhLCB0cnVlLCBmb3JjZVNhdmVBcyB8fCBzYXZl
RGF0YS5mb3JjZVNhdmVBcyk7CisgICAgfSk7CiB9OwogCiBXZWJJbnNwZWN0b3IuaXNDb25zb2xl
Rm9jdXNlZCA9IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9SZXNvdXJjZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9SZXNvdXJjZS5qcwppbmRleCA1ZWU4NmUwY2VkOTFlMTYzMzYz
NTkyNzIzZGY5OGUxOGE1YWZjZmRjLi4yNTY0YWM4NTZhYmU2NTBlNTY0OTk0OTIyMmEzOWIwODBl
YzEyYzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
b2RlbHMvUmVzb3VyY2UuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTW9kZWxzL1Jlc291cmNlLmpzCkBAIC02ODAsNiArNjgwLDE2IEBAIFdlYkluc3BlY3Rvci5S
ZXNvdXJjZSA9IGNsYXNzIFJlc291cmNlIGV4dGVuZHMgV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGUK
ICAgICAgICAgY29va2llW1dlYkluc3BlY3Rvci5SZXNvdXJjZS5NYWluUmVzb3VyY2VDb29raWVL
ZXldID0gdGhpcy5pc01haW5SZXNvdXJjZSgpOwogICAgIH0KIAorICAgIHNhdmVDb250ZW50c1Rv
RmlsZSgpCisgICAgeworICAgICAgICB0aGlzLnJlcXVlc3RDb250ZW50KCkudGhlbigoKSA9PiB7
CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2F2ZURhdGFUb0ZpbGUoeworICAgICAgICAgICAg
ICAgIHVybDogdGhpcy51cmwsCisgICAgICAgICAgICAgICAgY29udGVudDogdGhpcy5jb250ZW50
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorCiAgICAgZ2VuZXJhdGVDVVJM
Q29tbWFuZCgpCiAgICAgewogICAgICAgICBmdW5jdGlvbiBlc2NhcGVTdHJpbmdQb3NpeChzdHIp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0ZyYW1lVHJlZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9GcmFtZVRyZWVFbGVtZW50LmpzCmluZGV4IGYwYTM5YWRhODU3NjUyYjk1ZjIyY2Vi
Y2NhNDZhOTExMDM2Mjc1OTEuLjM0NjYyYzU0MDY5ZTJlMjViN2M0ODYyZWU1NzgyZWU3NjEyZjU4
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0ZyYW1lVHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvRnJhbWVUcmVlRWxlbWVudC5qcwpAQCAtMTQyLDYgKzE0Miw4IEBAIFdlYklu
c3BlY3Rvci5GcmFtZVRyZWVFbGVtZW50ID0gY2xhc3MgRnJhbWVUcmVlRWxlbWVudCBleHRlbmRz
IFdlYkluc3BlY3Rvci5SZXNvCiAgICAgewogICAgICAgICAvLyBJbW1lZGlhdGUgc3VwZXJjbGFz
c2VzIGFyZSBza2lwcGVkLCBzaW5jZSBGcmFtZXMgaGFuZGxlIHRoZWlyIG93biBTb3VyY2VNYXBS
ZXNvdXJjZXMuCiAgICAgICAgIFdlYkluc3BlY3Rvci5HZW5lcmFsVHJlZUVsZW1lbnQucHJvdG90
eXBlLm9uYXR0YWNoLmNhbGwodGhpcyk7CisKKyAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoImNvbnRleHRtZW51IiwgdGhpcy5faGFuZGxlQ29udGV4dE1lbnVFdmVudC5iaW5k
KHRoaXMpKTsKICAgICB9CiAKICAgICAvLyBPdmVycmlkZXMgZnJvbSBGb2xkZXJpemVkVHJlZUVs
ZW1lbnQgKFByb3RlY3RlZCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRpbWVsaW5lRGF0YUdyaWROb2RlLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VUaW1lbGluZURhdGFH
cmlkTm9kZS5qcwppbmRleCBkNDU2ZDc5NWQ1ZDRlZWM2MWYwYzRkNTkyOWRhOTQxMDIzYmZlODk2
Li4xODVmMjBiMGU4OWYwNWJhYjY4Yzc2OTRkMzJkMDlkMDFlMDMzZTc4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRpbWVsaW5l
RGF0YUdyaWROb2RlLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1Jlc291cmNlVGltZWxpbmVEYXRhR3JpZE5vZGUuanMKQEAgLTE0OCw2ICsxNDgsOCBA
QCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUaW1lbGluZURhdGFHcmlkTm9kZSA9IGNsYXNzIFJlc291
cmNlVGltZWxpbmVEYXRhR3JpZE5vZGUgZQogCiAgICAgYXBwZW5kQ29udGV4dE1lbnVJdGVtcyhj
b250ZXh0TWVudSkKICAgICB7CisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJTYXZlIEZpbGUiKSwgKCkgPT4geyB0aGlzLl9yZXNvdXJjZS5zYXZl
Q29udGVudHNUb0ZpbGUoKTsgfSk7CisKICAgICAgICAgaWYgKHRoaXMuX3Jlc291cmNlLnVybENv
bXBvbmVudHMuc2NoZW1lICE9PSAiZGF0YSIpCiAgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBl
bmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ29weSBhcyBjVVJMIiksICgpID0+IHsgdGhp
cy5fcmVzb3VyY2UuZ2VuZXJhdGVDVVJMQ29tbWFuZCgpOyB9KTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVF
bGVtZW50LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVz
b3VyY2VUcmVlRWxlbWVudC5qcwppbmRleCBhZjk2YzI1ODBlYjgzNTI4MmM1ZDRiZTQ4NTQ4NzVm
OTVhNjNmNDU2Li5lYzM5NTZjMDcwYmEzODg5ZDUwODk0MWE2MWRjYjU4ZDliYTFkOGI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJj
ZVRyZWVFbGVtZW50LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanMKQEAgLTg3LDYgKzg3LDEzIEBAIFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVRyZWVFbGVtZW50ID0gY2xhc3MgUmVzb3VyY2VUcmVlRWxlbWVudCBleHRl
bmRzIFdlYkluc3BlY3RvCiAgICAgICAgIHJldHVybiB7dGV4dDogW3VybENvbXBvbmVudHMubGFz
dFBhdGhDb21wb25lbnQsIHVybENvbXBvbmVudHMucGF0aCwgdGhpcy5fcmVzb3VyY2UudXJsXX07
CiAgICAgfQogCisgICAgb25hdHRhY2goKQorICAgIHsKKyAgICAgICAgc3VwZXIub25hdHRhY2go
KTsKKworICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUi
LCB0aGlzLl9oYW5kbGVDb250ZXh0TWVudUV2ZW50LmJpbmQodGhpcykpOworICAgIH0KKwogICAg
IG9uZGJsY2xpY2soKQogICAgIHsKICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lm9wZW5J
bk5ld1RhYih0aGlzLl9yZXNvdXJjZS51cmwpOwpAQCAtMTUxLDYgKzE1OCwxMyBAQCBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VUcmVlRWxlbWVudCA9IGNsYXNzIFJlc291cmNlVHJlZUVsZW1lbnQgZXh0
ZW5kcyBXZWJJbnNwZWN0bwogICAgICAgICAgICAgdGhpcy5jYWxsRmlyc3RBbmNlc3RvckZ1bmN0
aW9uKCJkZXNjZW5kYW50UmVzb3VyY2VUcmVlRWxlbWVudE1haW5UaXRsZURpZENoYW5nZSIsIFt0
aGlzLCBvbGRNYWluVGl0bGVdKTsKICAgICB9CiAKKyAgICBfaGFuZGxlQ29udGV4dE1lbnVFdmVu
dChldmVudCkKKyAgICB7CisgICAgICAgIGxldCBjb250ZXh0TWVudSA9IFdlYkluc3BlY3Rvci5D
b250ZXh0TWVudS5jcmVhdGVGcm9tRXZlbnQoZXZlbnQpOworCisgICAgICAgIGNvbnRleHRNZW51
LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTYXZlIEZpbGUiKSwgKCkgPT4geyB0
aGlzLl9yZXNvdXJjZS5zYXZlQ29udGVudHNUb0ZpbGUoKTsgfSk7CisgICAgfQorCiAgICAgLy8g
UHJpdmF0ZQogCiAgICAgX3VwZGF0ZVN0YXR1cygpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286681</attachid>
            <date>2016-08-22 23:17:55 -0700</date>
            <delta_ts>2016-08-23 00:18:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158035-20160822231557.patch</filename>
            <type>text/plain</type>
            <size>7161</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDM2NWUwZTRhMDY0MTc3ODFjMmVhMDMxMDVmNzhj
ODJlMDg2MTk3ZWUuLmIxMzc5YjFmMTczY2Y5NTgyMjFmYzRkODhlNDBhYzlmOWVkZjJlNTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMxIEBACiAyMDE2LTA4LTIyICBEZXZp
biBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgogCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHJlc291cmNlIHRyZWUgZWxlbWVudHMgc2hvdWxkIHByb3ZpZGUgIkRvd25sb2FkIEZp
bGUiIGNvbnRleHQgbWVudSBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU4MDM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGEgY29udGV4dCBtZW51IGl0ZW0gdG8gZWxlbWVudHMgcmVwcmVz
ZW50aW5nIHJlc291cmNlcyB0aGF0CisgICAgICAgIGluaXRpYXRlcyBhIGRvd25sb2FkIG9mIHRo
YXQgcmVzb3VyY2UuCisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXpl
ZFN0cmluZ3MuanM6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5zYXZlRGF0YVRvRmlsZSk6CisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBzYXZpbmcgYmFzZTY0IG9iamVjdHMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL0ZyYW1lVHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVUcmVl
RWxlbWVudC5wcm90b3R5cGUub25hdHRhY2gpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9W
aWV3cy9SZXNvdXJjZVRpbWVsaW5lRGF0YUdyaWROb2RlLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlJlc291cmNlVGltZWxpbmVEYXRhR3JpZE5vZGUucHJvdG90eXBlLmFwcGVuZENvbnRleHRN
ZW51SXRlbXMpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVF
bGVtZW50LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQucHJv
dG90eXBlLm9uYXR0YWNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVFbGVt
ZW50LnByb3RvdHlwZS5faGFuZGxlQ29udGV4dE1lbnVFdmVudCk6CisKKzIwMTYtMDgtMjIgIERl
dmluIFJvdXNzbyAgPGRjcm91c3NvK3dlYmtpdEBnbWFpbC5jb20+CisKICAgICAgICAgV2ViIElu
c3BlY3RvcjogVmlzdWFsIFN0eWxlczogIlRleHQgLT4gQ29udGVudCIgc2VjdGlvbiBzaG91bGQg
b25seSBiZSB2aXNpYmxlIGZvciBwc2V1ZG8tZWxlbWVudAogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MjcyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzCmluZGV4IGYwMTZjMjVlNTgzYjRjNTU1NGE2MDcyNzg5NDU4ZDc0YjMxMjRiNTMu
LmQ1YWE0NmVmMzcwZDMyNmFkNzM2NmY1OTMwOGM5N2RmNmQ4NjM3ZjggMTAwNjQ0CkdJVCBiaW5h
cnkgcGF0Y2gKZGVsdGEgMzQKcWNtYUVOcDdxMjkpYGwmTnMpRm9wNDREaSQ0NWAhWTFSMkZBPnpe
XiZFLWxELUlTY15Qb0NfVFEKCmRlbHRhIDE3ClpjbVg/Y2YlVjthKWBsJk5zKUYwPTFzUDk8MFJU
eWgyUW1OdgoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0Jhc2UvTWFpbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2Uv
TWFpbi5qcwppbmRleCA4MjBlNWJhOWE5ZDk1OTM5OWY4N2NlZDljNDZhNzkzYjVjY2IyYzgzLi5h
N2M3NTlmMjI2MDI4MzcyNzRlYzRjYWVjZWZiNGU2NzM4MzkxODRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCkBAIC04MDYsMTEgKzgw
NiwzMyBAQCBXZWJJbnNwZWN0b3Iuc2F2ZURhdGFUb0ZpbGUgPSBmdW5jdGlvbihzYXZlRGF0YSwg
Zm9yY2VTYXZlQXMpCiAgICAgfQogCiAgICAgY29uc29sZS5hc3NlcnQoc2F2ZURhdGEudXJsKTsK
LSAgICBjb25zb2xlLmFzc2VydCh0eXBlb2Ygc2F2ZURhdGEuY29udGVudCA9PT0gInN0cmluZyIp
OwotICAgIGlmICghc2F2ZURhdGEudXJsIHx8IHR5cGVvZiBzYXZlRGF0YS5jb250ZW50ICE9PSAi
c3RyaW5nIikKKyAgICBjb25zb2xlLmFzc2VydChzYXZlRGF0YS5jb250ZW50KTsKKyAgICBpZiAo
IXNhdmVEYXRhLnVybCB8fCAhc2F2ZURhdGEuY29udGVudCkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNhdmUoc2F2ZURhdGEudXJsLCBzYXZlRGF0YS5jb250
ZW50LCBmYWxzZSwgZm9yY2VTYXZlQXMgfHwgc2F2ZURhdGEuZm9yY2VTYXZlQXMpOworICAgIGxl
dCBzdWdnZXN0ZWROYW1lID0gcGFyc2VVUkwoc2F2ZURhdGEudXJsKS5sYXN0UGF0aENvbXBvbmVu
dDsKKyAgICBpZiAoIXN1Z2dlc3RlZE5hbWUpIHsKKyAgICAgICAgbGV0IGRhdGFVUkxUeXBlTWF0
Y2ggPSAvXmRhdGE6KFteXC9dKylcLyhbXjtdKykvLmV4ZWMoc2F2ZURhdGEudXJsKTsKKyAgICAg
ICAgaWYgKGRhdGFVUkxUeXBlTWF0Y2gpCisgICAgICAgICAgICBzdWdnZXN0ZWROYW1lID0gYCR7
ZGF0YVVSTFR5cGVNYXRjaFsxXX0uJHtkYXRhVVJMVHlwZU1hdGNoWzJdfWA7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHN1Z2dlc3RlZE5hbWUgPSAidW50aXRsZWQiOworICAgIH0KKworICAg
IGlmICh0eXBlb2Ygc2F2ZURhdGEuY29udGVudCA9PT0gInN0cmluZyIpIHsKKyAgICAgICAgY29u
c3QgYmFzZTY0RW5jb2RlZCA9IGZhbHNlOworICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3Qu
c2F2ZShzdWdnZXN0ZWROYW1lLCBzYXZlRGF0YS5jb250ZW50LCBiYXNlNjRFbmNvZGVkLCBmb3Jj
ZVNhdmVBcyB8fCBzYXZlRGF0YS5mb3JjZVNhdmVBcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBsZXQgZmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyOworICAgIGZpbGVSZWFkZXIu
cmVhZEFzRGF0YVVSTChzYXZlRGF0YS5jb250ZW50KTsKKyAgICBmaWxlUmVhZGVyLmFkZEV2ZW50
TGlzdGVuZXIoImxvYWRlbmQiLCAoKSA9PiB7CisgICAgICAgIGxldCBkYXRhVVJMQ29tcG9uZW50
cyA9IHBhcnNlRGF0YVVSTChmaWxlUmVhZGVyLnJlc3VsdCk7CisKKyAgICAgICAgY29uc3QgYmFz
ZTY0RW5jb2RlZCA9IHRydWU7CisgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5zYXZlKHN1
Z2dlc3RlZE5hbWUsIGRhdGFVUkxDb21wb25lbnRzLmRhdGEsIGJhc2U2NEVuY29kZWQsIGZvcmNl
U2F2ZUFzIHx8IHNhdmVEYXRhLmZvcmNlU2F2ZUFzKTsKKyAgICB9KTsKIH07CiAKIFdlYkluc3Bl
Y3Rvci5pc0NvbnNvbGVGb2N1c2VkID0gZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRnJhbWVUcmVlRWxlbWVudC5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZyYW1lVHJlZUVsZW1lbnQu
anMKaW5kZXggZjBhMzlhZGE4NTc2NTJiOTVmMjJjZWJjY2E0NmE5MTEwMzYyNzU5MS4uMzQ2NjJj
NTQwNjllMmUyNWI3YzQ4NjJlZTU3ODJlZTc2MTJmNTgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRnJhbWVUcmVlRWxlbWVudC5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9GcmFtZVRyZWVFbGVt
ZW50LmpzCkBAIC0xNDIsNiArMTQyLDggQEAgV2ViSW5zcGVjdG9yLkZyYW1lVHJlZUVsZW1lbnQg
PSBjbGFzcyBGcmFtZVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlJlc28KICAgICB7
CiAgICAgICAgIC8vIEltbWVkaWF0ZSBzdXBlcmNsYXNzZXMgYXJlIHNraXBwZWQsIHNpbmNlIEZy
YW1lcyBoYW5kbGUgdGhlaXIgb3duIFNvdXJjZU1hcFJlc291cmNlcy4KICAgICAgICAgV2ViSW5z
cGVjdG9yLkdlbmVyYWxUcmVlRWxlbWVudC5wcm90b3R5cGUub25hdHRhY2guY2FsbCh0aGlzKTsK
KworICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCB0
aGlzLl9oYW5kbGVDb250ZXh0TWVudUV2ZW50LmJpbmQodGhpcykpOwogICAgIH0KIAogICAgIC8v
IE92ZXJyaWRlcyBmcm9tIEZvbGRlcml6ZWRUcmVlRWxlbWVudCAoUHJvdGVjdGVkKS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNl
VGltZWxpbmVEYXRhR3JpZE5vZGUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9SZXNvdXJjZVRpbWVsaW5lRGF0YUdyaWROb2RlLmpzCmluZGV4IGQ0NTZkNzk1
ZDVkNGVlYzYxZjBjNGQ1OTI5ZGE5NDEwMjNiZmU4OTYuLmZhMzg3MmE4ZWM4MTIzZmU3ZjZjMGY0
NzJlYTA4ZGQ0YmI5ODkxY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVGltZWxpbmVEYXRhR3JpZE5vZGUuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VUaW1lbGluZURh
dGFHcmlkTm9kZS5qcwpAQCAtMTQ4LDYgKzE0OCwxNSBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VU
aW1lbGluZURhdGFHcmlkTm9kZSA9IGNsYXNzIFJlc291cmNlVGltZWxpbmVEYXRhR3JpZE5vZGUg
ZQogCiAgICAgYXBwZW5kQ29udGV4dE1lbnVJdGVtcyhjb250ZXh0TWVudSkKICAgICB7CisgICAg
ICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTYXZlIEZp
bGUiKSwgKCkgPT4geworICAgICAgICAgICAgdGhpcy5fcmVzb3VyY2UucmVxdWVzdENvbnRlbnQo
KS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2F2ZURhdGFUb0Zp
bGUoeworICAgICAgICAgICAgICAgICAgICB1cmw6IHRoaXMuX3Jlc291cmNlLnVybCwKKyAgICAg
ICAgICAgICAgICAgICAgY29udGVudDogdGhpcy5fcmVzb3VyY2UuY29udGVudAorICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCiAgICAgICAgIGlmICh0
aGlzLl9yZXNvdXJjZS51cmxDb21wb25lbnRzLnNjaGVtZSAhPT0gImRhdGEiKQogICAgICAgICAg
ICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNvcHkgYXMg
Y1VSTCIpLCAoKSA9PiB7IHRoaXMuX3Jlc291cmNlLmdlbmVyYXRlQ1VSTENvbW1hbmQoKTsgfSk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvUmVzb3VyY2VUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanMKaW5kZXggYWY5NmMyNTgwZWI4
MzUyODJjNWQ0YmU0ODU0ODc1Zjk1YTYzZjQ1Ni4uYmVkYjU1ZDBmOTc4YTcxMjQxMGJmMzBlYTVi
ZWNkZjBmYTdhMzJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvUmVzb3VyY2VUcmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50LmpzCkBAIC04Nyw2
ICs4NywxMyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRWxlbWVudCA9IGNsYXNzIFJlc291
cmNlVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0bwogICAgICAgICByZXR1cm4ge3RleHQ6
IFt1cmxDb21wb25lbnRzLmxhc3RQYXRoQ29tcG9uZW50LCB1cmxDb21wb25lbnRzLnBhdGgsIHRo
aXMuX3Jlc291cmNlLnVybF19OwogICAgIH0KIAorICAgIG9uYXR0YWNoKCkKKyAgICB7CisgICAg
ICAgIHN1cGVyLm9uYXR0YWNoKCk7CisKKyAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlz
dGVuZXIoImNvbnRleHRtZW51IiwgdGhpcy5faGFuZGxlQ29udGV4dE1lbnVFdmVudC5iaW5kKHRo
aXMpKTsKKyAgICB9CisKICAgICBvbmRibGNsaWNrKCkKICAgICB7CiAgICAgICAgIEluc3BlY3Rv
ckZyb250ZW5kSG9zdC5vcGVuSW5OZXdUYWIodGhpcy5fcmVzb3VyY2UudXJsKTsKQEAgLTE1MSw2
ICsxNTgsMjAgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQgPSBjbGFzcyBSZXNv
dXJjZVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG8KICAgICAgICAgICAgIHRoaXMuY2Fs
bEZpcnN0QW5jZXN0b3JGdW5jdGlvbigiZGVzY2VuZGFudFJlc291cmNlVHJlZUVsZW1lbnRNYWlu
VGl0bGVEaWRDaGFuZ2UiLCBbdGhpcywgb2xkTWFpblRpdGxlXSk7CiAgICAgfQogCisgICAgX2hh
bmRsZUNvbnRleHRNZW51RXZlbnQoZXZlbnQpCisgICAgeworICAgICAgICBsZXQgY29udGV4dE1l
bnUgPSBXZWJJbnNwZWN0b3IuQ29udGV4dE1lbnUuY3JlYXRlRnJvbUV2ZW50KGV2ZW50KTsKKwor
ICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2F2
ZSBGaWxlIiksICgpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlLnJlcXVlc3RDb250
ZW50KCkudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNhdmVEYXRh
VG9GaWxlKHsKKyAgICAgICAgICAgICAgICAgICAgdXJsOiB0aGlzLl9yZXNvdXJjZS51cmwsCisg
ICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX3Jlc291cmNlLmNvbnRlbnQKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CisKICAg
ICAvLyBQcml2YXRlCiAKICAgICBfdXBkYXRlU3RhdHVzKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286685</attachid>
            <date>2016-08-23 00:18:54 -0700</date>
            <delta_ts>2016-08-23 08:52:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158035-20160823001656.patch</filename>
            <type>text/plain</type>
            <size>8539</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDJlNDkyNTRlMGRiMWVmYjJlMDg4ZDhhZGIxNmU3
ZTllMzM3Y2YwYmYuLjA1OGY1MGRmZTE3MjQ5YTJlOTM4ZmM0YmQxYmJhNWQ3OWE4ZGFlZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwxNyArMSwyOCBAQAotMjAxNi0wOC0yMiAgRGV2
aW4gUm91c3NvICA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNvbT4KKzIwMTYtMDgtMjMgIERldmlu
IFJvdXNzbyAgPGRjcm91c3NvK3dlYmtpdEBnbWFpbC5jb20+CiAKLSAgICAgICAgV2ViIEluc3Bl
Y3RvcjogU3R5bGVzIC0+IENvbXB1dGVkIC0+IEJveCBNb2RlbCBzaG93cyBOYU4geCBOYU4gZm9y
IGludmlzaWJsZSBlbGVtZW50cwotICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTYxMDM4CisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlc291cmNlIHRyZWUg
ZWxlbWVudHMgc2hvdWxkIHByb3ZpZGUgIkRvd25sb2FkIEZpbGUiIGNvbnRleHQgbWVudSBpdGVt
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU4MDM1
CiAKLSAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KIAotICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9VdGls
aXRpZXMuanM6Ci0gICAgICAgIEFkZCBmaWd1cmVEYXNoIHZhcmlhYmxlLgorICAgICAgICBBZGQg
YSBjb250ZXh0IG1lbnUgaXRlbSB0byBlbGVtZW50cyByZXByZXNlbnRpbmcgcmVzb3VyY2VzIHRo
YXQKKyAgICAgICAgaW5pdGlhdGVzIGEgZG93bmxvYWQgb2YgdGhhdCByZXNvdXJjZS4KIAotICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQm94TW9kZWxEZXRhaWxzU2VjdGlvblJvdy5qczoK
LSAgICAgICAgKFdlYkluc3BlY3Rvci5Cb3hNb2RlbERldGFpbHNTZWN0aW9uUm93LnByb3RvdHlw
ZS5fdXBkYXRlTWV0cmljcy5jcmVhdGVFbGVtZW50KToKLSAgICAgICAgKFdlYkluc3BlY3Rvci5C
b3hNb2RlbERldGFpbHNTZWN0aW9uUm93LnByb3RvdHlwZS5fdXBkYXRlTWV0cmljcy5jcmVhdGVC
b3hQYXJ0RWxlbWVudCk6Ci0gICAgICAgIE1vdmVkIGlzTmFOIGNoZWNrIG9mIHZhbHVlIHRvIGNv
bW1vbiBjcmVhdGVFbGVtZW50LgorICAgICAgICAqIExvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9j
YWxpemVkU3RyaW5ncy5qczoKKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLnNhdmVEYXRhVG9GaWxlKToKKyAgICAgICAgQWRkIHN1
cHBvcnQgZm9yIHNhdmluZyBiYXNlNjQgb2JqZWN0cy4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvRnJhbWVUcmVlRWxlbWVudC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFt
ZVRyZWVFbGVtZW50LnByb3RvdHlwZS5vbmF0dGFjaCk6CisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL1Jlc291cmNlVGltZWxpbmVEYXRhR3JpZE5vZGUuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmVzb3VyY2VUaW1lbGluZURhdGFHcmlkTm9kZS5wcm90b3R5cGUuYXBwZW5kQ29u
dGV4dE1lbnVJdGVtcyk6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNl
VHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRWxlbWVu
dC5wcm90b3R5cGUub25hdHRhY2gpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJl
ZUVsZW1lbnQucHJvdG90eXBlLl9oYW5kbGVDb250ZXh0TWVudUV2ZW50KToKIAogMjAxNi0wOC0y
MiAgRGV2aW4gUm91c3NvICA8ZGNyb3Vzc28rd2Via2l0QGdtYWlsLmNvbT4KIApAQCAtNDksNiAr
NjAsMjEgQEAKIAogMjAxNi0wOC0yMiAgRGV2aW4gUm91c3NvICA8ZGNyb3Vzc28rd2Via2l0QGdt
YWlsLmNvbT4KIAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBTdHlsZXMgLT4gQ29tcHV0ZWQgLT4g
Qm94IE1vZGVsIHNob3dzIE5hTiB4IE5hTiBmb3IgaW52aXNpYmxlIGVsZW1lbnRzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwMzgKKworICAgICAg
ICBSZXZpZXdlZCBieSBKb3NlcGggUGVjb3Jhcm8uCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNl
L0Jhc2UvVXRpbGl0aWVzLmpzOgorICAgICAgICBBZGQgZmlndXJlRGFzaCB2YXJpYWJsZS4KKwor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQm94TW9kZWxEZXRhaWxzU2VjdGlvblJvdy5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Cb3hNb2RlbERldGFpbHNTZWN0aW9uUm93LnByb3Rv
dHlwZS5fdXBkYXRlTWV0cmljcy5jcmVhdGVFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Cb3hNb2RlbERldGFpbHNTZWN0aW9uUm93LnByb3RvdHlwZS5fdXBkYXRlTWV0cmljcy5jcmVh
dGVCb3hQYXJ0RWxlbWVudCk6CisgICAgICAgIE1vdmVkIGlzTmFOIGNoZWNrIG9mIHZhbHVlIHRv
IGNvbW1vbiBjcmVhdGVFbGVtZW50LgorCisyMDE2LTA4LTIyICBEZXZpbiBSb3Vzc28gIDxkY3Jv
dXNzbyt3ZWJraXRAZ21haWwuY29tPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFZpc3VhbCBT
dHlsZXM6ICJUZXh0IC0+IENvbnRlbnQiIHNlY3Rpb24gc2hvdWxkIG9ubHkgYmUgdmlzaWJsZSBm
b3IgcHNldWRvLWVsZW1lbnQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1ODI3MgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9j
YWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCA3
MDRhNGFiNTc5MDNiZTg1ZDMxYjg5N2ViZTM1NDc4NTk0OTdhNjVkLi41YjVlNGRhYTg4ZDU4ZGEw
MGY3YTgwNTdjZWJlZGI2MTVkYmViYjNlIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDU2
CnpjbWV4IWxsOXN5KWBsJk5sX0g5NjQ0RGkkNDU8dUM0NnpJZjQ3TmI1IzFQRG8kV1I2cFEoeXFm
UFFQSHFYdD0jbApJZ3QwcFUwS3ZOc1ZnTFhECgpkZWx0YSAxNwpaY21jYjFpfWxZPClgbCZObF9K
fE9pIWU0djAwMi1yMmgwRWYKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9CYXNlL01haW4uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9CYXNlL01haW4uanMKaW5kZXggODIwZTViYTlhOWQ5NTkzOTlmODdjZWQ5YzQ2YTc5M2I1
Y2NiMmM4My4uYTdjNzU5ZjIyNjAyODM3Mjc0ZWM0Y2FlY2VmYjRlNjczODM5MTg0YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAt
ODA2LDExICs4MDYsMzMgQEAgV2ViSW5zcGVjdG9yLnNhdmVEYXRhVG9GaWxlID0gZnVuY3Rpb24o
c2F2ZURhdGEsIGZvcmNlU2F2ZUFzKQogICAgIH0KIAogICAgIGNvbnNvbGUuYXNzZXJ0KHNhdmVE
YXRhLnVybCk7Ci0gICAgY29uc29sZS5hc3NlcnQodHlwZW9mIHNhdmVEYXRhLmNvbnRlbnQgPT09
ICJzdHJpbmciKTsKLSAgICBpZiAoIXNhdmVEYXRhLnVybCB8fCB0eXBlb2Ygc2F2ZURhdGEuY29u
dGVudCAhPT0gInN0cmluZyIpCisgICAgY29uc29sZS5hc3NlcnQoc2F2ZURhdGEuY29udGVudCk7
CisgICAgaWYgKCFzYXZlRGF0YS51cmwgfHwgIXNhdmVEYXRhLmNvbnRlbnQpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5zYXZlKHNhdmVEYXRhLnVybCwgc2F2
ZURhdGEuY29udGVudCwgZmFsc2UsIGZvcmNlU2F2ZUFzIHx8IHNhdmVEYXRhLmZvcmNlU2F2ZUFz
KTsKKyAgICBsZXQgc3VnZ2VzdGVkTmFtZSA9IHBhcnNlVVJMKHNhdmVEYXRhLnVybCkubGFzdFBh
dGhDb21wb25lbnQ7CisgICAgaWYgKCFzdWdnZXN0ZWROYW1lKSB7CisgICAgICAgIGxldCBkYXRh
VVJMVHlwZU1hdGNoID0gL15kYXRhOihbXlwvXSspXC8oW147XSspLy5leGVjKHNhdmVEYXRhLnVy
bCk7CisgICAgICAgIGlmIChkYXRhVVJMVHlwZU1hdGNoKQorICAgICAgICAgICAgc3VnZ2VzdGVk
TmFtZSA9IGAke2RhdGFVUkxUeXBlTWF0Y2hbMV19LiR7ZGF0YVVSTFR5cGVNYXRjaFsyXX1gOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBzdWdnZXN0ZWROYW1lID0gInVudGl0bGVkIjsKKyAg
ICB9CisKKyAgICBpZiAodHlwZW9mIHNhdmVEYXRhLmNvbnRlbnQgPT09ICJzdHJpbmciKSB7Cisg
ICAgICAgIGNvbnN0IGJhc2U2NEVuY29kZWQgPSBmYWxzZTsKKyAgICAgICAgSW5zcGVjdG9yRnJv
bnRlbmRIb3N0LnNhdmUoc3VnZ2VzdGVkTmFtZSwgc2F2ZURhdGEuY29udGVudCwgYmFzZTY0RW5j
b2RlZCwgZm9yY2VTYXZlQXMgfHwgc2F2ZURhdGEuZm9yY2VTYXZlQXMpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgbGV0IGZpbGVSZWFkZXIgPSBuZXcgRmlsZVJlYWRlcjsKKyAgICBm
aWxlUmVhZGVyLnJlYWRBc0RhdGFVUkwoc2F2ZURhdGEuY29udGVudCk7CisgICAgZmlsZVJlYWRl
ci5hZGRFdmVudExpc3RlbmVyKCJsb2FkZW5kIiwgKCkgPT4geworICAgICAgICBsZXQgZGF0YVVS
TENvbXBvbmVudHMgPSBwYXJzZURhdGFVUkwoZmlsZVJlYWRlci5yZXN1bHQpOworCisgICAgICAg
IGNvbnN0IGJhc2U2NEVuY29kZWQgPSB0cnVlOworICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhv
c3Quc2F2ZShzdWdnZXN0ZWROYW1lLCBkYXRhVVJMQ29tcG9uZW50cy5kYXRhLCBiYXNlNjRFbmNv
ZGVkLCBmb3JjZVNhdmVBcyB8fCBzYXZlRGF0YS5mb3JjZVNhdmVBcyk7CisgICAgfSk7CiB9Owog
CiBXZWJJbnNwZWN0b3IuaXNDb25zb2xlRm9jdXNlZCA9IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZyYW1lVHJlZUVsZW1l
bnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9GcmFtZVRy
ZWVFbGVtZW50LmpzCmluZGV4IGYwYTM5YWRhODU3NjUyYjk1ZjIyY2ViY2NhNDZhOTExMDM2Mjc1
OTEuLjM0NjYyYzU0MDY5ZTJlMjViN2M0ODYyZWU1NzgyZWU3NjEyZjU4MjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZyYW1lVHJlZUVsZW1l
bnQuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRnJh
bWVUcmVlRWxlbWVudC5qcwpAQCAtMTQyLDYgKzE0Miw4IEBAIFdlYkluc3BlY3Rvci5GcmFtZVRy
ZWVFbGVtZW50ID0gY2xhc3MgRnJhbWVUcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3Rvci5S
ZXNvCiAgICAgewogICAgICAgICAvLyBJbW1lZGlhdGUgc3VwZXJjbGFzc2VzIGFyZSBza2lwcGVk
LCBzaW5jZSBGcmFtZXMgaGFuZGxlIHRoZWlyIG93biBTb3VyY2VNYXBSZXNvdXJjZXMuCiAgICAg
ICAgIFdlYkluc3BlY3Rvci5HZW5lcmFsVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uYXR0YWNoLmNh
bGwodGhpcyk7CisKKyAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRl
eHRtZW51IiwgdGhpcy5faGFuZGxlQ29udGV4dE1lbnVFdmVudC5iaW5kKHRoaXMpKTsKICAgICB9
CiAKICAgICAvLyBPdmVycmlkZXMgZnJvbSBGb2xkZXJpemVkVHJlZUVsZW1lbnQgKFByb3RlY3Rl
ZCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9SZXNvdXJjZVRpbWVsaW5lRGF0YUdyaWROb2RlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VUaW1lbGluZURhdGFHcmlkTm9kZS5qcwppbmRl
eCBkNDU2ZDc5NWQ1ZDRlZWM2MWYwYzRkNTkyOWRhOTQxMDIzYmZlODk2Li5mYTM4NzJhOGVjODEy
M2ZlN2Y2YzBmNDcyZWEwOGRkNGJiOTg5MWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRpbWVsaW5lRGF0YUdyaWROb2RlLmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNl
VGltZWxpbmVEYXRhR3JpZE5vZGUuanMKQEAgLTE0OCw2ICsxNDgsMTUgQEAgV2ViSW5zcGVjdG9y
LlJlc291cmNlVGltZWxpbmVEYXRhR3JpZE5vZGUgPSBjbGFzcyBSZXNvdXJjZVRpbWVsaW5lRGF0
YUdyaWROb2RlIGUKIAogICAgIGFwcGVuZENvbnRleHRNZW51SXRlbXMoY29udGV4dE1lbnUpCiAg
ICAgeworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmlu
ZygiU2F2ZSBGaWxlIiksICgpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlLnJlcXVl
c3RDb250ZW50KCkudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNh
dmVEYXRhVG9GaWxlKHsKKyAgICAgICAgICAgICAgICAgICAgdXJsOiB0aGlzLl9yZXNvdXJjZS51
cmwsCisgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX3Jlc291cmNlLmNvbnRlbnQK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKwogICAg
ICAgICBpZiAodGhpcy5fcmVzb3VyY2UudXJsQ29tcG9uZW50cy5zY2hlbWUgIT09ICJkYXRhIikK
ICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJDb3B5IGFzIGNVUkwiKSwgKCkgPT4geyB0aGlzLl9yZXNvdXJjZS5nZW5lcmF0ZUNVUkxDb21t
YW5kKCk7IH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50LmpzCmluZGV4IGFm
OTZjMjU4MGViODM1MjgyYzVkNGJlNDg1NDg3NWY5NWE2M2Y0NTYuLmJlZGI1NWQwZjk3OGE3MTI0
MTBiZjMwZWE1YmVjZGYwZmE3YTMyY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VUcmVlRWxlbWVudC5q
cwpAQCAtODcsNiArODcsMTMgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQgPSBj
bGFzcyBSZXNvdXJjZVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG8KICAgICAgICAgcmV0
dXJuIHt0ZXh0OiBbdXJsQ29tcG9uZW50cy5sYXN0UGF0aENvbXBvbmVudCwgdXJsQ29tcG9uZW50
cy5wYXRoLCB0aGlzLl9yZXNvdXJjZS51cmxdfTsKICAgICB9CiAKKyAgICBvbmF0dGFjaCgpCisg
ICAgeworICAgICAgICBzdXBlci5vbmF0dGFjaCgpOworCisgICAgICAgIHRoaXMuZWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIHRoaXMuX2hhbmRsZUNvbnRleHRNZW51RXZl
bnQuYmluZCh0aGlzKSk7CisgICAgfQorCiAgICAgb25kYmxjbGljaygpCiAgICAgewogICAgICAg
ICBJbnNwZWN0b3JGcm9udGVuZEhvc3Qub3BlbkluTmV3VGFiKHRoaXMuX3Jlc291cmNlLnVybCk7
CkBAIC0xNTEsNiArMTU4LDIwIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVFbGVtZW50ID0g
Y2xhc3MgUmVzb3VyY2VUcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3BlY3RvCiAgICAgICAgICAg
ICB0aGlzLmNhbGxGaXJzdEFuY2VzdG9yRnVuY3Rpb24oImRlc2NlbmRhbnRSZXNvdXJjZVRyZWVF
bGVtZW50TWFpblRpdGxlRGlkQ2hhbmdlIiwgW3RoaXMsIG9sZE1haW5UaXRsZV0pOwogICAgIH0K
IAorICAgIF9oYW5kbGVDb250ZXh0TWVudUV2ZW50KGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0
IGNvbnRleHRNZW51ID0gV2ViSW5zcGVjdG9yLkNvbnRleHRNZW51LmNyZWF0ZUZyb21FdmVudChl
dmVudCk7CisKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlNhdmUgRmlsZSIpLCAoKSA9PiB7CisgICAgICAgICAgICB0aGlzLl9yZXNvdXJjZS5y
ZXF1ZXN0Q29udGVudCgpLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5zYXZlRGF0YVRvRmlsZSh7CisgICAgICAgICAgICAgICAgICAgIHVybDogdGhpcy5fcmVzb3Vy
Y2UudXJsLAorICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB0aGlzLl9yZXNvdXJjZS5jb250
ZW50CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7Cisg
ICAgfQorCiAgICAgLy8gUHJpdmF0ZQogCiAgICAgX3VwZGF0ZVN0YXR1cygpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286714</attachid>
            <date>2016-08-23 08:52:26 -0700</date>
            <delta_ts>2016-08-23 12:35:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-158035-20160823085028.patch</filename>
            <type>text/plain</type>
            <size>7335</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGEzODkzY2QzYTg4ZWRhZTA5MDVmZTgxYTU1ZmQz
OWU0ZjhlZmQyMGYuLmYzODhiOGYwMTE4MmRlZmNjNDUwM2IwYzQwNDc4YTEwYzg4NWYxMmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDE2LTA4LTIzICBEZXZp
biBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgogCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IHJlc291cmNlIHRyZWUgZWxlbWVudHMgc2hvdWxkIHByb3ZpZGUgIkRvd25sb2FkIEZp
bGUiIGNvbnRleHQgbWVudSBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU4MDM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGEgY29udGV4dCBtZW51IGl0ZW0gdG8gZWxlbWVudHMgcmVwcmVz
ZW50aW5nIHJlc291cmNlcyB0aGF0CisgICAgICAgIGluaXRpYXRlcyBhIGRvd25sb2FkIG9mIHRo
YXQgcmVzb3VyY2UuCisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXpl
ZFN0cmluZ3MuanM6CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5zYXZlRGF0YVRvRmlsZSk6CisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBzYXZpbmcgYmFzZTY0IG9iamVjdHMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Zp
ZXdzL0ZyYW1lVHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRnJhbWVUcmVl
RWxlbWVudC5wcm90b3R5cGUub25hdHRhY2gpOgorICAgICAgICBBZGQgY29udGV4dG1lbnUgZXZl
bnQgbGlzdGVuZXIgc2luY2Ugc3VwZXJjbGFzcyBvbmF0dGFjaCBjYWxsIGlzIGV4cGxpY2l0bHkg
bm90IHVzZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVGltZWxp
bmVEYXRhR3JpZE5vZGUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUaW1lbGlu
ZURhdGFHcmlkTm9kZS5wcm90b3R5cGUuYXBwZW5kQ29udGV4dE1lbnVJdGVtcyk6CisgICAgICAg
IEFkZCBTYXZlIEZpbGUgY29udGV4dCBtZW51IGl0ZW0uCisKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VUcmVlRWxlbWVudC5wcm90b3R5cGUub25hdHRhY2gpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQucHJvdG90eXBlLl9oYW5kbGVDb250ZXh0TWVudUV2
ZW50KToKKyAgICAgICAgQWRkIGNvbnRleHRtZW51IGV2ZW50IGxpc3RlbmVyIGFuZCBTYXZlIEZp
bGUgY29udGV4dCBtZW51IGl0ZW0uCisKKzIwMTYtMDgtMjMgIERldmluIFJvdXNzbyAgPGRjcm91
c3NvK3dlYmtpdEBnbWFpbC5jb20+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIHZpc3Vh
bCBlZGl0b3IgZm9yIHNwcmluZygpIHRpbWluZy1mdW5jdGlvbgogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5MzE1CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3Mu
anMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6
ZWRTdHJpbmdzLmpzCmluZGV4IDhlYmFlMmE3Mjc0YjVkYTJjZmQxYTEyYjdhNWQyMDhhMWJjNDkx
NTguLjVkZDEwYjY2ZWFjMmIyNWRkNmJlYmZkNDI5MzI0YWRlZWRjZTI2OTggMTAwNjQ0CkdJVCBi
aW5hcnkgcGF0Y2gKZGVsdGEgMzQKcWNtYUVHazlGNjUpYGwmTnJlZkBGNDREaSQ0NWAhbyMyQ2RW
Pz4lcHtVMGFPTkchZypZREdPOHAKCmRlbHRhIDE3ClljbWRtV3BZXzIjKWBsJk5yZWZScyNUZDBD
MFpDZDAhdkZ2UAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0Jhc2UvTWFpbi5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jh
c2UvTWFpbi5qcwppbmRleCA4MjBlNWJhOWE5ZDk1OTM5OWY4N2NlZDljNDZhNzkzYjVjY2IyYzgz
Li5hN2M3NTlmMjI2MDI4MzcyNzRlYzRjYWVjZWZiNGU2NzM4MzkxODRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCkBAIC04MDYsMTEg
KzgwNiwzMyBAQCBXZWJJbnNwZWN0b3Iuc2F2ZURhdGFUb0ZpbGUgPSBmdW5jdGlvbihzYXZlRGF0
YSwgZm9yY2VTYXZlQXMpCiAgICAgfQogCiAgICAgY29uc29sZS5hc3NlcnQoc2F2ZURhdGEudXJs
KTsKLSAgICBjb25zb2xlLmFzc2VydCh0eXBlb2Ygc2F2ZURhdGEuY29udGVudCA9PT0gInN0cmlu
ZyIpOwotICAgIGlmICghc2F2ZURhdGEudXJsIHx8IHR5cGVvZiBzYXZlRGF0YS5jb250ZW50ICE9
PSAic3RyaW5nIikKKyAgICBjb25zb2xlLmFzc2VydChzYXZlRGF0YS5jb250ZW50KTsKKyAgICBp
ZiAoIXNhdmVEYXRhLnVybCB8fCAhc2F2ZURhdGEuY29udGVudCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNhdmUoc2F2ZURhdGEudXJsLCBzYXZlRGF0YS5j
b250ZW50LCBmYWxzZSwgZm9yY2VTYXZlQXMgfHwgc2F2ZURhdGEuZm9yY2VTYXZlQXMpOworICAg
IGxldCBzdWdnZXN0ZWROYW1lID0gcGFyc2VVUkwoc2F2ZURhdGEudXJsKS5sYXN0UGF0aENvbXBv
bmVudDsKKyAgICBpZiAoIXN1Z2dlc3RlZE5hbWUpIHsKKyAgICAgICAgbGV0IGRhdGFVUkxUeXBl
TWF0Y2ggPSAvXmRhdGE6KFteXC9dKylcLyhbXjtdKykvLmV4ZWMoc2F2ZURhdGEudXJsKTsKKyAg
ICAgICAgaWYgKGRhdGFVUkxUeXBlTWF0Y2gpCisgICAgICAgICAgICBzdWdnZXN0ZWROYW1lID0g
YCR7ZGF0YVVSTFR5cGVNYXRjaFsxXX0uJHtkYXRhVVJMVHlwZU1hdGNoWzJdfWA7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHN1Z2dlc3RlZE5hbWUgPSAidW50aXRsZWQiOworICAgIH0KKwor
ICAgIGlmICh0eXBlb2Ygc2F2ZURhdGEuY29udGVudCA9PT0gInN0cmluZyIpIHsKKyAgICAgICAg
Y29uc3QgYmFzZTY0RW5jb2RlZCA9IGZhbHNlOworICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhv
c3Quc2F2ZShzdWdnZXN0ZWROYW1lLCBzYXZlRGF0YS5jb250ZW50LCBiYXNlNjRFbmNvZGVkLCBm
b3JjZVNhdmVBcyB8fCBzYXZlRGF0YS5mb3JjZVNhdmVBcyk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBsZXQgZmlsZVJlYWRlciA9IG5ldyBGaWxlUmVhZGVyOworICAgIGZpbGVSZWFk
ZXIucmVhZEFzRGF0YVVSTChzYXZlRGF0YS5jb250ZW50KTsKKyAgICBmaWxlUmVhZGVyLmFkZEV2
ZW50TGlzdGVuZXIoImxvYWRlbmQiLCAoKSA9PiB7CisgICAgICAgIGxldCBkYXRhVVJMQ29tcG9u
ZW50cyA9IHBhcnNlRGF0YVVSTChmaWxlUmVhZGVyLnJlc3VsdCk7CisKKyAgICAgICAgY29uc3Qg
YmFzZTY0RW5jb2RlZCA9IHRydWU7CisgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5zYXZl
KHN1Z2dlc3RlZE5hbWUsIGRhdGFVUkxDb21wb25lbnRzLmRhdGEsIGJhc2U2NEVuY29kZWQsIGZv
cmNlU2F2ZUFzIHx8IHNhdmVEYXRhLmZvcmNlU2F2ZUFzKTsKKyAgICB9KTsKIH07CiAKIFdlYklu
c3BlY3Rvci5pc0NvbnNvbGVGb2N1c2VkID0gZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRnJhbWVUcmVlRWxlbWVudC5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZyYW1lVHJlZUVsZW1l
bnQuanMKaW5kZXggZjBhMzlhZGE4NTc2NTJiOTVmMjJjZWJjY2E0NmE5MTEwMzYyNzU5MS4uMzQ2
NjJjNTQwNjllMmUyNWI3YzQ4NjJlZTU3ODJlZTc2MTJmNTgyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRnJhbWVUcmVlRWxlbWVudC5qcwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9GcmFtZVRyZWVF
bGVtZW50LmpzCkBAIC0xNDIsNiArMTQyLDggQEAgV2ViSW5zcGVjdG9yLkZyYW1lVHJlZUVsZW1l
bnQgPSBjbGFzcyBGcmFtZVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG9yLlJlc28KICAg
ICB7CiAgICAgICAgIC8vIEltbWVkaWF0ZSBzdXBlcmNsYXNzZXMgYXJlIHNraXBwZWQsIHNpbmNl
IEZyYW1lcyBoYW5kbGUgdGhlaXIgb3duIFNvdXJjZU1hcFJlc291cmNlcy4KICAgICAgICAgV2Vi
SW5zcGVjdG9yLkdlbmVyYWxUcmVlRWxlbWVudC5wcm90b3R5cGUub25hdHRhY2guY2FsbCh0aGlz
KTsKKworICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUi
LCB0aGlzLl9oYW5kbGVDb250ZXh0TWVudUV2ZW50LmJpbmQodGhpcykpOwogICAgIH0KIAogICAg
IC8vIE92ZXJyaWRlcyBmcm9tIEZvbGRlcml6ZWRUcmVlRWxlbWVudCAoUHJvdGVjdGVkKS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291
cmNlVGltZWxpbmVEYXRhR3JpZE5vZGUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRpbWVsaW5lRGF0YUdyaWROb2RlLmpzCmluZGV4IGQ0NTZk
Nzk1ZDVkNGVlYzYxZjBjNGQ1OTI5ZGE5NDEwMjNiZmU4OTYuLmZhMzg3MmE4ZWM4MTIzZmU3ZjZj
MGY0NzJlYTA4ZGQ0YmI5ODkxY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVGltZWxpbmVEYXRhR3JpZE5vZGUuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VUaW1lbGlu
ZURhdGFHcmlkTm9kZS5qcwpAQCAtMTQ4LDYgKzE0OCwxNSBAQCBXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VUaW1lbGluZURhdGFHcmlkTm9kZSA9IGNsYXNzIFJlc291cmNlVGltZWxpbmVEYXRhR3JpZE5v
ZGUgZQogCiAgICAgYXBwZW5kQ29udGV4dE1lbnVJdGVtcyhjb250ZXh0TWVudSkKICAgICB7Cisg
ICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTYXZl
IEZpbGUiKSwgKCkgPT4geworICAgICAgICAgICAgdGhpcy5fcmVzb3VyY2UucmVxdWVzdENvbnRl
bnQoKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2F2ZURhdGFU
b0ZpbGUoeworICAgICAgICAgICAgICAgICAgICB1cmw6IHRoaXMuX3Jlc291cmNlLnVybCwKKyAg
ICAgICAgICAgICAgICAgICAgY29udGVudDogdGhpcy5fcmVzb3VyY2UuY29udGVudAorICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworCiAgICAgICAgIGlm
ICh0aGlzLl9yZXNvdXJjZS51cmxDb21wb25lbnRzLnNjaGVtZSAhPT0gImRhdGEiKQogICAgICAg
ICAgICAgY29udGV4dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkNvcHkg
YXMgY1VSTCIpLCAoKSA9PiB7IHRoaXMuX3Jlc291cmNlLmdlbmVyYXRlQ1VSTENvbW1hbmQoKTsg
fSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvUmVzb3VyY2VUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanMKaW5kZXggYWY5NmMyNTgw
ZWI4MzUyODJjNWQ0YmU0ODU0ODc1Zjk1YTYzZjQ1Ni4uYmVkYjU1ZDBmOTc4YTcxMjQxMGJmMzBl
YTViZWNkZjBmYTdhMzJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvUmVzb3VyY2VUcmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50LmpzCkBAIC04
Nyw2ICs4NywxMyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlRWxlbWVudCA9IGNsYXNzIFJl
c291cmNlVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0bwogICAgICAgICByZXR1cm4ge3Rl
eHQ6IFt1cmxDb21wb25lbnRzLmxhc3RQYXRoQ29tcG9uZW50LCB1cmxDb21wb25lbnRzLnBhdGgs
IHRoaXMuX3Jlc291cmNlLnVybF19OwogICAgIH0KIAorICAgIG9uYXR0YWNoKCkKKyAgICB7Cisg
ICAgICAgIHN1cGVyLm9uYXR0YWNoKCk7CisKKyAgICAgICAgdGhpcy5lbGVtZW50LmFkZEV2ZW50
TGlzdGVuZXIoImNvbnRleHRtZW51IiwgdGhpcy5faGFuZGxlQ29udGV4dE1lbnVFdmVudC5iaW5k
KHRoaXMpKTsKKyAgICB9CisKICAgICBvbmRibGNsaWNrKCkKICAgICB7CiAgICAgICAgIEluc3Bl
Y3RvckZyb250ZW5kSG9zdC5vcGVuSW5OZXdUYWIodGhpcy5fcmVzb3VyY2UudXJsKTsKQEAgLTE1
MSw2ICsxNTgsMjAgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZUVsZW1lbnQgPSBjbGFzcyBS
ZXNvdXJjZVRyZWVFbGVtZW50IGV4dGVuZHMgV2ViSW5zcGVjdG8KICAgICAgICAgICAgIHRoaXMu
Y2FsbEZpcnN0QW5jZXN0b3JGdW5jdGlvbigiZGVzY2VuZGFudFJlc291cmNlVHJlZUVsZW1lbnRN
YWluVGl0bGVEaWRDaGFuZ2UiLCBbdGhpcywgb2xkTWFpblRpdGxlXSk7CiAgICAgfQogCisgICAg
X2hhbmRsZUNvbnRleHRNZW51RXZlbnQoZXZlbnQpCisgICAgeworICAgICAgICBsZXQgY29udGV4
dE1lbnUgPSBXZWJJbnNwZWN0b3IuQ29udGV4dE1lbnUuY3JlYXRlRnJvbUV2ZW50KGV2ZW50KTsK
KworICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygi
U2F2ZSBGaWxlIiksICgpID0+IHsKKyAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlLnJlcXVlc3RD
b250ZW50KCkudGhlbigoKSA9PiB7CisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNhdmVE
YXRhVG9GaWxlKHsKKyAgICAgICAgICAgICAgICAgICAgdXJsOiB0aGlzLl9yZXNvdXJjZS51cmws
CisgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX3Jlc291cmNlLmNvbnRlbnQKKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CisK
ICAgICAvLyBQcml2YXRlCiAKICAgICBfdXBkYXRlU3RhdHVzKCkK
</data>
<flag name="review"
          id="310219"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286756</attachid>
            <date>2016-08-23 12:35:27 -0700</date>
            <delta_ts>2016-08-23 14:22:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>158035.diff</filename>
            <type>text/plain</type>
            <size>8840</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGQ5Mjc5NjcuLjljOGIzNzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM4IEBACiAyMDE2LTA4LTIzICBEZXZpbiBSb3Vzc28g
IDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJl
c291cmNlIHRyZWUgZWxlbWVudHMgc2hvdWxkIHByb3ZpZGUgIkRvd25sb2FkIEZpbGUiIGNvbnRl
eHQgbWVudSBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU4MDM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisg
ICAgICAgIEFkZCBhIGNvbnRleHQgbWVudSBpdGVtIHRvIGVsZW1lbnRzIHJlcHJlc2VudGluZyBy
ZXNvdXJjZXMgdGhhdAorICAgICAgICBpbml0aWF0ZXMgYSBkb3dubG9hZCBvZiB0aGF0IHJlc291
cmNlLgorCisgICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdz
LmpzOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL01haW4uanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3Iuc2F2ZURhdGFUb0ZpbGUpOgorICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2F2
aW5nIGJhc2U2NCBvYmplY3RzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL01JTUVU
eXBlVXRpbGl0aWVzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmZpbGVFeHRlbnNpb25Gb3JN
SU1FVHlwZSk6CisgICAgICAgIFJldHVybnMgYSBmaWxlIGV4dGVuc2lvbiBmb3IgdGhlIGdpdmVu
IE1JTUUgdHlwZSBpZiBhYmxlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9GcmFt
ZVRyZWVFbGVtZW50LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZyYW1lVHJlZUVsZW1lbnQu
cHJvdG90eXBlLm9uYXR0YWNoKToKKyAgICAgICAgQWRkIGNvbnRleHRtZW51IGV2ZW50IGxpc3Rl
bmVyIHNpbmNlIHN1cGVyY2xhc3Mgb25hdHRhY2ggY2FsbCBpcyBleHBsaWNpdGx5IG5vdCB1c2Vk
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRpbWVsaW5lRGF0YUdy
aWROb2RlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVGltZWxpbmVEYXRhR3Jp
ZE5vZGUucHJvdG90eXBlLmFwcGVuZENvbnRleHRNZW51SXRlbXMpOgorICAgICAgICBBZGQgU2F2
ZSBGaWxlIGNvbnRleHQgbWVudSBpdGVtLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9SZXNvdXJjZVRyZWVFbGVtZW50LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNl
VHJlZUVsZW1lbnQucHJvdG90eXBlLm9uYXR0YWNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZVRyZWVFbGVtZW50LnByb3RvdHlwZS5faGFuZGxlQ29udGV4dE1lbnVFdmVudCk6Cisg
ICAgICAgIEFkZCBjb250ZXh0bWVudSBldmVudCBsaXN0ZW5lciBhbmQgU2F2ZSBGaWxlIGNvbnRl
eHQgbWVudSBpdGVtLgorCisyMDE2LTA4LTIzICBEZXZpbiBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJr
aXRAZ21haWwuY29tPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5vIG9wZW4vY29weSBzcmMg
cmVzb3VyY2UgaW4gY29udGV4dCBtZW51CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTkwMjgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMK
aW5kZXggMDRhNjgwYTMyYmY4MzYzMzE5ODMxMzg3MTkwZjIwNzFhZGFmNjI5Mi4uNTE2M2JmNWJi
NzNmNzVjMzM4ZDEwYzAwNDlhMzNmZDQxNmRmYTQ0NCAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApk
ZWx0YSA1NQp6Y21jY2prYWZvKylgbCZObzVkQn43JX59aDcqWkxPNy1BVXw3O0olOWk2TkxGaylh
R0lyb2FHe29xVjhPZkJRO3QKSE0kPD9EeG8tfVMKCmRlbHRhIDE3ClpjbWRuLWkxcHE+KWBsJk5v
NWk+RE4tJTBpMHN1PHIyRStnVwoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0Jhc2UvTUlNRVR5cGVVdGlsaXRpZXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01JTUVUeXBlVXRpbGl0aWVzLmpzCmluZGV4IDY3ZTg2
NDguLmY1NjliYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0Jhc2UvTUlNRVR5cGVVdGlsaXRpZXMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQmFzZS9NSU1FVHlwZVV0aWxpdGllcy5qcwpAQCAtNzgsMyArNzgsNDYg
QEAgV2ViSW5zcGVjdG9yLm1pbWVUeXBlRm9yRmlsZUV4dGVuc2lvbiA9IGZ1bmN0aW9uKGV4dGVu
c2lvbikKIAogICAgIHJldHVybiBleHRlbnNpb25Ub01JTUVUeXBlW2V4dGVuc2lvbl0gfHwgbnVs
bDsKIH07CisKK1dlYkluc3BlY3Rvci5maWxlRXh0ZW5zaW9uRm9yTUlNRVR5cGUgPSBmdW5jdGlv
bihtaW1lVHlwZSkKK3sKKyAgICBjb25zdCBtaW1lVHlwZVRvRXh0ZW5zaW9uID0geworICAgICAg
ICAvLyBEb2N1bWVudCB0eXBlcy4KKyAgICAgICAgInRleHQvaHRtbCI6ICIuaHRtbCIsCisgICAg
ICAgICJhcHBsaWNhdGlvbi94aHRtbCt4bWwiOiAiLnhodG1sIiwKKyAgICAgICAgInRleHQveG1s
IjogIi54bWwiLAorCisgICAgICAgIC8vIFNjcmlwdCB0eXBlcy4KKyAgICAgICAgInRleHQvamF2
YXNjcmlwdCI6ICIuanMiLAorICAgICAgICAiYXBwbGljYXRpb24vanNvbiI6ICIuanNvbiIsCisg
ICAgICAgICJ0ZXh0L3gtY2xvanVyZSI6ICIuY2xqIiwKKyAgICAgICAgInRleHQveC1jb2ZmZWVz
Y3JpcHQiOiAiLmNvZmZlZSIsCisgICAgICAgICJ0ZXh0L3gtbGl2ZXNjcmlwdCI6ICIubHMiLAor
ICAgICAgICAidGV4dC90eXBlc2NyaXB0IjogIi50cyIsCisKKyAgICAgICAgLy8gU3R5bGVzaGVl
dCB0eXBlcy4KKyAgICAgICAgInRleHQvY3NzIjogIi5jc3MiLAorICAgICAgICAidGV4dC94LWxl
c3MiOiAiLmxlc3MiLAorICAgICAgICAidGV4dC94LXNhc3MiOiAiLnNhc3MiLAorICAgICAgICAi
dGV4dC94LXNjc3MiOiAiLnNjc3MiLAorCisgICAgICAgIC8vIEltYWdlIHR5cGVzLgorICAgICAg
ICAiaW1hZ2UvYm1wIjogIi5ibXAiLAorICAgICAgICAiaW1hZ2UvZ2lmIjogIi5naWYiLAorICAg
ICAgICAiaW1hZ2UvanBlZyI6ICIuanBlZyIsCisgICAgICAgICJpbWFnZS9qcGVnIjogIi5qcGci
LAorICAgICAgICAiYXBwbGljYXRpb24vcGRmIjogIi5wZGYiLAorICAgICAgICAiaW1hZ2UvcG5n
IjogIi5wbmciLAorICAgICAgICAiaW1hZ2UvdGlmZiI6ICIudGlmIiwKKyAgICAgICAgImltYWdl
L3RpZmYiOiAiLnRpZmYiLAorCisgICAgICAgIC8vIEZvbnQgdHlwZXMgYW5kIE1lZGlhIHR5cGVz
IGFyZSBpZ25vcmVkIGZvciBub3cuCisKKyAgICAgICAgLy8gTWlzY2VsbGFuZW91cyB0eXBlcy4K
KyAgICAgICAgImltYWdlL3N2Zyt4bWwiOiAiLnN2ZyIsCisgICAgICAgICJ0ZXh0L3BsYWluIjog
Ii50eHQiLAorICAgICAgICAidGV4dC94c2wiOiAiLnhzbCIsCisgICAgfTsKKworICAgIHJldHVy
biBtaW1lVHlwZVRvRXh0ZW5zaW9uW21pbWVUeXBlXSB8fCBudWxsOworfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwppbmRleCA4MjBlNWJh
Li4zNDg1MTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9CYXNlL01haW4uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
QmFzZS9NYWluLmpzCkBAIC04MDYsMTEgKzgwNiwzMyBAQCBXZWJJbnNwZWN0b3Iuc2F2ZURhdGFU
b0ZpbGUgPSBmdW5jdGlvbihzYXZlRGF0YSwgZm9yY2VTYXZlQXMpCiAgICAgfQogCiAgICAgY29u
c29sZS5hc3NlcnQoc2F2ZURhdGEudXJsKTsKLSAgICBjb25zb2xlLmFzc2VydCh0eXBlb2Ygc2F2
ZURhdGEuY29udGVudCA9PT0gInN0cmluZyIpOwotICAgIGlmICghc2F2ZURhdGEudXJsIHx8IHR5
cGVvZiBzYXZlRGF0YS5jb250ZW50ICE9PSAic3RyaW5nIikKKyAgICBjb25zb2xlLmFzc2VydChz
YXZlRGF0YS5jb250ZW50KTsKKyAgICBpZiAoIXNhdmVEYXRhLnVybCB8fCAhc2F2ZURhdGEuY29u
dGVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNhdmUo
c2F2ZURhdGEudXJsLCBzYXZlRGF0YS5jb250ZW50LCBmYWxzZSwgZm9yY2VTYXZlQXMgfHwgc2F2
ZURhdGEuZm9yY2VTYXZlQXMpOworICAgIGxldCBzdWdnZXN0ZWROYW1lID0gcGFyc2VVUkwoc2F2
ZURhdGEudXJsKS5sYXN0UGF0aENvbXBvbmVudDsKKyAgICBpZiAoIXN1Z2dlc3RlZE5hbWUpIHsK
KyAgICAgICAgc3VnZ2VzdGVkTmFtZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVW50aXRsZWQi
KTsKKyAgICAgICAgbGV0IGRhdGFVUkxUeXBlTWF0Y2ggPSAvXmRhdGE6KFteO10rKS8uZXhlYyhz
YXZlRGF0YS51cmwpOworICAgICAgICBpZiAoZGF0YVVSTFR5cGVNYXRjaCkgeworICAgICAgICAg
ICAgc3VnZ2VzdGVkTmFtZSArPSBXZWJJbnNwZWN0b3IuZmlsZUV4dGVuc2lvbkZvck1JTUVUeXBl
KGRhdGFVUkxUeXBlTWF0Y2hbMV0pIHx8ICIiOworICAgICAgICB9CisgICAgfQorCisgICAgaWYg
KHR5cGVvZiBzYXZlRGF0YS5jb250ZW50ID09PSAic3RyaW5nIikgeworICAgICAgICBjb25zdCBi
YXNlNjRFbmNvZGVkID0gZmFsc2U7CisgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5zYXZl
KHN1Z2dlc3RlZE5hbWUsIHNhdmVEYXRhLmNvbnRlbnQsIGJhc2U2NEVuY29kZWQsIGZvcmNlU2F2
ZUFzIHx8IHNhdmVEYXRhLmZvcmNlU2F2ZUFzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGxldCBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXI7CisgICAgZmlsZVJlYWRlci5yZWFk
QXNEYXRhVVJMKHNhdmVEYXRhLmNvbnRlbnQpOworICAgIGZpbGVSZWFkZXIuYWRkRXZlbnRMaXN0
ZW5lcigibG9hZGVuZCIsICgpID0+IHsKKyAgICAgICAgbGV0IGRhdGFVUkxDb21wb25lbnRzID0g
cGFyc2VEYXRhVVJMKGZpbGVSZWFkZXIucmVzdWx0KTsKKworICAgICAgICBjb25zdCBiYXNlNjRF
bmNvZGVkID0gdHJ1ZTsKKyAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNhdmUoc3VnZ2Vz
dGVkTmFtZSwgZGF0YVVSTENvbXBvbmVudHMuZGF0YSwgYmFzZTY0RW5jb2RlZCwgZm9yY2VTYXZl
QXMgfHwgc2F2ZURhdGEuZm9yY2VTYXZlQXMpOworICAgIH0pOwogfTsKIAogV2ViSW5zcGVjdG9y
LmlzQ29uc29sZUZvY3VzZWQgPSBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9GcmFtZVRyZWVFbGVtZW50LmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRnJhbWVUcmVlRWxlbWVudC5qcwpp
bmRleCBmMGEzOWFkLi4zNDY2MmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9GcmFtZVRyZWVFbGVtZW50LmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZyYW1lVHJlZUVsZW1lbnQuanMKQEAgLTE0
Miw2ICsxNDIsOCBAQCBXZWJJbnNwZWN0b3IuRnJhbWVUcmVlRWxlbWVudCA9IGNsYXNzIEZyYW1l
VHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuUmVzbwogICAgIHsKICAgICAgICAgLy8g
SW1tZWRpYXRlIHN1cGVyY2xhc3NlcyBhcmUgc2tpcHBlZCwgc2luY2UgRnJhbWVzIGhhbmRsZSB0
aGVpciBvd24gU291cmNlTWFwUmVzb3VyY2VzLgogICAgICAgICBXZWJJbnNwZWN0b3IuR2VuZXJh
bFRyZWVFbGVtZW50LnByb3RvdHlwZS5vbmF0dGFjaC5jYWxsKHRoaXMpOworCisgICAgICAgIHRo
aXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIHRoaXMuX2hhbmRsZUNv
bnRleHRNZW51RXZlbnQuYmluZCh0aGlzKSk7CiAgICAgfQogCiAgICAgLy8gT3ZlcnJpZGVzIGZy
b20gRm9sZGVyaXplZFRyZWVFbGVtZW50IChQcm90ZWN0ZWQpLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VUaW1lbGluZURhdGFH
cmlkTm9kZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jl
c291cmNlVGltZWxpbmVEYXRhR3JpZE5vZGUuanMKaW5kZXggZDQ1NmQ3OS4uZmEzODcyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3Vy
Y2VUaW1lbGluZURhdGFHcmlkTm9kZS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRpbWVsaW5lRGF0YUdyaWROb2RlLmpzCkBAIC0xNDgs
NiArMTQ4LDE1IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRpbWVsaW5lRGF0YUdyaWROb2RlID0g
Y2xhc3MgUmVzb3VyY2VUaW1lbGluZURhdGFHcmlkTm9kZSBlCiAKICAgICBhcHBlbmRDb250ZXh0
TWVudUl0ZW1zKGNvbnRleHRNZW51KQogICAgIHsKKyAgICAgICAgY29udGV4dE1lbnUuYXBwZW5k
SXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNhdmUgRmlsZSIpLCAoKSA9PiB7CisgICAgICAg
ICAgICB0aGlzLl9yZXNvdXJjZS5yZXF1ZXN0Q29udGVudCgpLnRoZW4oKCkgPT4geworICAgICAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5zYXZlRGF0YVRvRmlsZSh7CisgICAgICAgICAgICAgICAg
ICAgIHVybDogdGhpcy5fcmVzb3VyY2UudXJsLAorICAgICAgICAgICAgICAgICAgICBjb250ZW50
OiB0aGlzLl9yZXNvdXJjZS5jb250ZW50CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfSk7CisKICAgICAgICAgaWYgKHRoaXMuX3Jlc291cmNlLnVybENvbXBv
bmVudHMuc2NoZW1lICE9PSAiZGF0YSIpCiAgICAgICAgICAgICBjb250ZXh0TWVudS5hcHBlbmRJ
dGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ29weSBhcyBjVVJMIiksICgpID0+IHsgdGhpcy5f
cmVzb3VyY2UuZ2VuZXJhdGVDVVJMQ29tbWFuZCgpOyB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVFbGVt
ZW50LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3Vy
Y2VUcmVlRWxlbWVudC5qcwppbmRleCBhZjk2YzI1Li5iZWRiNTVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291
cmNlVHJlZUVsZW1lbnQuanMKQEAgLTg3LDYgKzg3LDEzIEBAIFdlYkluc3BlY3Rvci5SZXNvdXJj
ZVRyZWVFbGVtZW50ID0gY2xhc3MgUmVzb3VyY2VUcmVlRWxlbWVudCBleHRlbmRzIFdlYkluc3Bl
Y3RvCiAgICAgICAgIHJldHVybiB7dGV4dDogW3VybENvbXBvbmVudHMubGFzdFBhdGhDb21wb25l
bnQsIHVybENvbXBvbmVudHMucGF0aCwgdGhpcy5fcmVzb3VyY2UudXJsXX07CiAgICAgfQogCisg
ICAgb25hdHRhY2goKQorICAgIHsKKyAgICAgICAgc3VwZXIub25hdHRhY2goKTsKKworICAgICAg
ICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCB0aGlzLl9oYW5k
bGVDb250ZXh0TWVudUV2ZW50LmJpbmQodGhpcykpOworICAgIH0KKwogICAgIG9uZGJsY2xpY2so
KQogICAgIHsKICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lm9wZW5Jbk5ld1RhYih0aGlz
Ll9yZXNvdXJjZS51cmwpOwpAQCAtMTUxLDYgKzE1OCwyMCBAQCBXZWJJbnNwZWN0b3IuUmVzb3Vy
Y2VUcmVlRWxlbWVudCA9IGNsYXNzIFJlc291cmNlVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNw
ZWN0bwogICAgICAgICAgICAgdGhpcy5jYWxsRmlyc3RBbmNlc3RvckZ1bmN0aW9uKCJkZXNjZW5k
YW50UmVzb3VyY2VUcmVlRWxlbWVudE1haW5UaXRsZURpZENoYW5nZSIsIFt0aGlzLCBvbGRNYWlu
VGl0bGVdKTsKICAgICB9CiAKKyAgICBfaGFuZGxlQ29udGV4dE1lbnVFdmVudChldmVudCkKKyAg
ICB7CisgICAgICAgIGxldCBjb250ZXh0TWVudSA9IFdlYkluc3BlY3Rvci5Db250ZXh0TWVudS5j
cmVhdGVGcm9tRXZlbnQoZXZlbnQpOworCisgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZEl0ZW0o
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTYXZlIEZpbGUiKSwgKCkgPT4geworICAgICAgICAgICAg
dGhpcy5fcmVzb3VyY2UucmVxdWVzdENvbnRlbnQoKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAg
ICAgICBXZWJJbnNwZWN0b3Iuc2F2ZURhdGFUb0ZpbGUoeworICAgICAgICAgICAgICAgICAgICB1
cmw6IHRoaXMuX3Jlc291cmNlLnVybCwKKyAgICAgICAgICAgICAgICAgICAgY29udGVudDogdGhp
cy5fcmVzb3VyY2UuY29udGVudAorICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0pOworICAgIH0KKwogICAgIC8vIFByaXZhdGUKIAogICAgIF91cGRhdGVTdGF0
dXMoKQo=
</data>
<flag name="commit-queue"
          id="310264"
          type_id="3"
          status="-"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286775</attachid>
            <date>2016-08-23 14:22:00 -0700</date>
            <delta_ts>2016-08-23 15:25:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>158035.diff</filename>
            <type>text/plain</type>
            <size>8852</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGQ5Mjc5NjcuLjljOGIzNzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM4IEBACiAyMDE2LTA4LTIzICBEZXZpbiBSb3Vzc28g
IDxkY3JvdXNzbyt3ZWJraXRAZ21haWwuY29tPgogCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJl
c291cmNlIHRyZWUgZWxlbWVudHMgc2hvdWxkIHByb3ZpZGUgIkRvd25sb2FkIEZpbGUiIGNvbnRl
eHQgbWVudSBpdGVtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTU4MDM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisg
ICAgICAgIEFkZCBhIGNvbnRleHQgbWVudSBpdGVtIHRvIGVsZW1lbnRzIHJlcHJlc2VudGluZyBy
ZXNvdXJjZXMgdGhhdAorICAgICAgICBpbml0aWF0ZXMgYSBkb3dubG9hZCBvZiB0aGF0IHJlc291
cmNlLgorCisgICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdz
LmpzOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL01haW4uanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3Iuc2F2ZURhdGFUb0ZpbGUpOgorICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2F2
aW5nIGJhc2U2NCBvYmplY3RzLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL01JTUVU
eXBlVXRpbGl0aWVzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmZpbGVFeHRlbnNpb25Gb3JN
SU1FVHlwZSk6CisgICAgICAgIFJldHVybnMgYSBmaWxlIGV4dGVuc2lvbiBmb3IgdGhlIGdpdmVu
IE1JTUUgdHlwZSBpZiBhYmxlLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9GcmFt
ZVRyZWVFbGVtZW50LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZyYW1lVHJlZUVsZW1lbnQu
cHJvdG90eXBlLm9uYXR0YWNoKToKKyAgICAgICAgQWRkIGNvbnRleHRtZW51IGV2ZW50IGxpc3Rl
bmVyIHNpbmNlIHN1cGVyY2xhc3Mgb25hdHRhY2ggY2FsbCBpcyBleHBsaWNpdGx5IG5vdCB1c2Vk
LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRpbWVsaW5lRGF0YUdy
aWROb2RlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVGltZWxpbmVEYXRhR3Jp
ZE5vZGUucHJvdG90eXBlLmFwcGVuZENvbnRleHRNZW51SXRlbXMpOgorICAgICAgICBBZGQgU2F2
ZSBGaWxlIGNvbnRleHQgbWVudSBpdGVtLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9SZXNvdXJjZVRyZWVFbGVtZW50LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNl
VHJlZUVsZW1lbnQucHJvdG90eXBlLm9uYXR0YWNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5S
ZXNvdXJjZVRyZWVFbGVtZW50LnByb3RvdHlwZS5faGFuZGxlQ29udGV4dE1lbnVFdmVudCk6Cisg
ICAgICAgIEFkZCBjb250ZXh0bWVudSBldmVudCBsaXN0ZW5lciBhbmQgU2F2ZSBGaWxlIGNvbnRl
eHQgbWVudSBpdGVtLgorCisyMDE2LTA4LTIzICBEZXZpbiBSb3Vzc28gIDxkY3JvdXNzbyt3ZWJr
aXRAZ21haWwuY29tPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5vIG9wZW4vY29weSBzcmMg
cmVzb3VyY2UgaW4gY29udGV4dCBtZW51CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTkwMjgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMK
aW5kZXggMDRhNjgwYTMyYmY4MzYzMzE5ODMxMzg3MTkwZjIwNzFhZGFmNjI5Mi4uNTE2M2JmNWJi
NzNmNzVjMzM4ZDEwYzAwNDlhMzNmZDQxNmRmYTQ0NCAxMDA2NDQKR0lUIGJpbmFyeSBwYXRjaApk
ZWx0YSA1NQp6Y21jY2prYWZvKylgbCZObzVkQn43JX59aDcqWkxPNy1BVXw3O0olOWk2TkxGaylh
R0lyb2FHe29xVjhPZkJRO3QKSE0kPD9EeG8tfVMKCmRlbHRhIDE3ClpjbWRuLWkxcHE+KWBsJk5v
NWk+RE4tJTBpMHN1PHIyRStnVwoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0Jhc2UvTUlNRVR5cGVVdGlsaXRpZXMuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01JTUVUeXBlVXRpbGl0aWVzLmpzCmluZGV4IDY3ZTg2
NDguLjgxOWQxMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0Jhc2UvTUlNRVR5cGVVdGlsaXRpZXMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQmFzZS9NSU1FVHlwZVV0aWxpdGllcy5qcwpAQCAtNzgsMyArNzgsNDcg
QEAgV2ViSW5zcGVjdG9yLm1pbWVUeXBlRm9yRmlsZUV4dGVuc2lvbiA9IGZ1bmN0aW9uKGV4dGVu
c2lvbikKIAogICAgIHJldHVybiBleHRlbnNpb25Ub01JTUVUeXBlW2V4dGVuc2lvbl0gfHwgbnVs
bDsKIH07CisKK1dlYkluc3BlY3Rvci5maWxlRXh0ZW5zaW9uRm9yTUlNRVR5cGUgPSBmdW5jdGlv
bihtaW1lVHlwZSkKK3sKKyAgICBjb25zdCBtaW1lVHlwZVRvRXh0ZW5zaW9uID0geworICAgICAg
ICAvLyBEb2N1bWVudCB0eXBlcy4KKyAgICAgICAgInRleHQvaHRtbCI6ICJodG1sIiwKKyAgICAg
ICAgImFwcGxpY2F0aW9uL3hodG1sK3htbCI6ICJ4aHRtbCIsCisgICAgICAgICJ0ZXh0L3htbCI6
ICJ4bWwiLAorCisgICAgICAgIC8vIFNjcmlwdCB0eXBlcy4KKyAgICAgICAgInRleHQvamF2YXNj
cmlwdCI6ICJqcyIsCisgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIjogImpzb24iLAorICAgICAg
ICAidGV4dC94LWNsb2p1cmUiOiAiY2xqIiwKKyAgICAgICAgInRleHQveC1jb2ZmZWVzY3JpcHQi
OiAiY29mZmVlIiwKKyAgICAgICAgInRleHQveC1saXZlc2NyaXB0IjogImxzIiwKKyAgICAgICAg
InRleHQvdHlwZXNjcmlwdCI6ICJ0cyIsCisKKyAgICAgICAgLy8gU3R5bGVzaGVldCB0eXBlcy4K
KyAgICAgICAgInRleHQvY3NzIjogImNzcyIsCisgICAgICAgICJ0ZXh0L3gtbGVzcyI6ICJsZXNz
IiwKKyAgICAgICAgInRleHQveC1zYXNzIjogInNhc3MiLAorICAgICAgICAidGV4dC94LXNjc3Mi
OiAic2NzcyIsCisKKyAgICAgICAgLy8gSW1hZ2UgdHlwZXMuCisgICAgICAgICJpbWFnZS9ibXAi
OiAiYm1wIiwKKyAgICAgICAgImltYWdlL2dpZiI6ICJnaWYiLAorICAgICAgICAiaW1hZ2UvanBl
ZyI6ICJqcGVnIiwKKyAgICAgICAgImltYWdlL2pwZWciOiAianBnIiwKKyAgICAgICAgImFwcGxp
Y2F0aW9uL3BkZiI6ICJwZGYiLAorICAgICAgICAiaW1hZ2UvcG5nIjogInBuZyIsCisgICAgICAg
ICJpbWFnZS90aWZmIjogInRpZiIsCisgICAgICAgICJpbWFnZS90aWZmIjogInRpZmYiLAorCisg
ICAgICAgIC8vIEZvbnQgdHlwZXMgYW5kIE1lZGlhIHR5cGVzIGFyZSBpZ25vcmVkIGZvciBub3cu
CisKKyAgICAgICAgLy8gTWlzY2VsbGFuZW91cyB0eXBlcy4KKyAgICAgICAgImltYWdlL3N2Zyt4
bWwiOiAic3ZnIiwKKyAgICAgICAgInRleHQvcGxhaW4iOiAidHh0IiwKKyAgICAgICAgInRleHQv
eHNsIjogInhzbCIsCisgICAgfTsKKworICAgIGxldCBleHRlbnNpb24gPSBtaW1lVHlwZVRvRXh0
ZW5zaW9uW21pbWVUeXBlXTsKKyAgICByZXR1cm4gZXh0ZW5zaW9uID8gYC4ke2V4dGVuc2lvbn1g
IDogbnVsbDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9CYXNlL01haW4uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9C
YXNlL01haW4uanMKaW5kZXggODIwZTViYS4uYzNiMDY0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtODA2LDExICs4MDYsMzIg
QEAgV2ViSW5zcGVjdG9yLnNhdmVEYXRhVG9GaWxlID0gZnVuY3Rpb24oc2F2ZURhdGEsIGZvcmNl
U2F2ZUFzKQogICAgIH0KIAogICAgIGNvbnNvbGUuYXNzZXJ0KHNhdmVEYXRhLnVybCk7Ci0gICAg
Y29uc29sZS5hc3NlcnQodHlwZW9mIHNhdmVEYXRhLmNvbnRlbnQgPT09ICJzdHJpbmciKTsKLSAg
ICBpZiAoIXNhdmVEYXRhLnVybCB8fCB0eXBlb2Ygc2F2ZURhdGEuY29udGVudCAhPT0gInN0cmlu
ZyIpCisgICAgY29uc29sZS5hc3NlcnQoc2F2ZURhdGEuY29udGVudCk7CisgICAgaWYgKCFzYXZl
RGF0YS51cmwgfHwgIXNhdmVEYXRhLmNvbnRlbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIElu
c3BlY3RvckZyb250ZW5kSG9zdC5zYXZlKHNhdmVEYXRhLnVybCwgc2F2ZURhdGEuY29udGVudCwg
ZmFsc2UsIGZvcmNlU2F2ZUFzIHx8IHNhdmVEYXRhLmZvcmNlU2F2ZUFzKTsKKyAgICBsZXQgc3Vn
Z2VzdGVkTmFtZSA9IHBhcnNlVVJMKHNhdmVEYXRhLnVybCkubGFzdFBhdGhDb21wb25lbnQ7Cisg
ICAgaWYgKCFzdWdnZXN0ZWROYW1lKSB7CisgICAgICAgIHN1Z2dlc3RlZE5hbWUgPSBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIlVudGl0bGVkIik7CisgICAgICAgIGxldCBkYXRhVVJMVHlwZU1hdGNo
ID0gL15kYXRhOihbXjtdKykvLmV4ZWMoc2F2ZURhdGEudXJsKTsKKyAgICAgICAgaWYgKGRhdGFV
UkxUeXBlTWF0Y2gpCisgICAgICAgICAgICBzdWdnZXN0ZWROYW1lICs9IFdlYkluc3BlY3Rvci5m
aWxlRXh0ZW5zaW9uRm9yTUlNRVR5cGUoZGF0YVVSTFR5cGVNYXRjaFsxXSkgfHwgIiI7CisgICAg
fQorCisgICAgaWYgKHR5cGVvZiBzYXZlRGF0YS5jb250ZW50ID09PSAic3RyaW5nIikgeworICAg
ICAgICBjb25zdCBiYXNlNjRFbmNvZGVkID0gZmFsc2U7CisgICAgICAgIEluc3BlY3RvckZyb250
ZW5kSG9zdC5zYXZlKHN1Z2dlc3RlZE5hbWUsIHNhdmVEYXRhLmNvbnRlbnQsIGJhc2U2NEVuY29k
ZWQsIGZvcmNlU2F2ZUFzIHx8IHNhdmVEYXRhLmZvcmNlU2F2ZUFzKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGxldCBmaWxlUmVhZGVyID0gbmV3IEZpbGVSZWFkZXI7CisgICAgZmls
ZVJlYWRlci5yZWFkQXNEYXRhVVJMKHNhdmVEYXRhLmNvbnRlbnQpOworICAgIGZpbGVSZWFkZXIu
YWRkRXZlbnRMaXN0ZW5lcigibG9hZGVuZCIsICgpID0+IHsKKyAgICAgICAgbGV0IGRhdGFVUkxD
b21wb25lbnRzID0gcGFyc2VEYXRhVVJMKGZpbGVSZWFkZXIucmVzdWx0KTsKKworICAgICAgICBj
b25zdCBiYXNlNjRFbmNvZGVkID0gdHJ1ZTsKKyAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0
LnNhdmUoc3VnZ2VzdGVkTmFtZSwgZGF0YVVSTENvbXBvbmVudHMuZGF0YSwgYmFzZTY0RW5jb2Rl
ZCwgZm9yY2VTYXZlQXMgfHwgc2F2ZURhdGEuZm9yY2VTYXZlQXMpOworICAgIH0pOwogfTsKIAog
V2ViSW5zcGVjdG9yLmlzQ29uc29sZUZvY3VzZWQgPSBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9GcmFtZVRyZWVFbGVtZW50
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRnJhbWVUcmVl
RWxlbWVudC5qcwppbmRleCBmMGEzOWFkLi4zNDY2MmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9GcmFtZVRyZWVFbGVtZW50LmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0ZyYW1lVHJlZUVsZW1l
bnQuanMKQEAgLTE0Miw2ICsxNDIsOCBAQCBXZWJJbnNwZWN0b3IuRnJhbWVUcmVlRWxlbWVudCA9
IGNsYXNzIEZyYW1lVHJlZUVsZW1lbnQgZXh0ZW5kcyBXZWJJbnNwZWN0b3IuUmVzbwogICAgIHsK
ICAgICAgICAgLy8gSW1tZWRpYXRlIHN1cGVyY2xhc3NlcyBhcmUgc2tpcHBlZCwgc2luY2UgRnJh
bWVzIGhhbmRsZSB0aGVpciBvd24gU291cmNlTWFwUmVzb3VyY2VzLgogICAgICAgICBXZWJJbnNw
ZWN0b3IuR2VuZXJhbFRyZWVFbGVtZW50LnByb3RvdHlwZS5vbmF0dGFjaC5jYWxsKHRoaXMpOwor
CisgICAgICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIHRo
aXMuX2hhbmRsZUNvbnRleHRNZW51RXZlbnQuYmluZCh0aGlzKSk7CiAgICAgfQogCiAgICAgLy8g
T3ZlcnJpZGVzIGZyb20gRm9sZGVyaXplZFRyZWVFbGVtZW50IChQcm90ZWN0ZWQpLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VU
aW1lbGluZURhdGFHcmlkTm9kZS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL1Jlc291cmNlVGltZWxpbmVEYXRhR3JpZE5vZGUuanMKaW5kZXggZDQ1NmQ3OS4u
ZmEzODcyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvUmVzb3VyY2VUaW1lbGluZURhdGFHcmlkTm9kZS5qcworKysgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRpbWVsaW5lRGF0YUdyaWROb2Rl
LmpzCkBAIC0xNDgsNiArMTQ4LDE1IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRpbWVsaW5lRGF0
YUdyaWROb2RlID0gY2xhc3MgUmVzb3VyY2VUaW1lbGluZURhdGFHcmlkTm9kZSBlCiAKICAgICBh
cHBlbmRDb250ZXh0TWVudUl0ZW1zKGNvbnRleHRNZW51KQogICAgIHsKKyAgICAgICAgY29udGV4
dE1lbnUuYXBwZW5kSXRlbShXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNhdmUgRmlsZSIpLCAoKSA9
PiB7CisgICAgICAgICAgICB0aGlzLl9yZXNvdXJjZS5yZXF1ZXN0Q29udGVudCgpLnRoZW4oKCkg
PT4geworICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zYXZlRGF0YVRvRmlsZSh7CisgICAg
ICAgICAgICAgICAgICAgIHVybDogdGhpcy5fcmVzb3VyY2UudXJsLAorICAgICAgICAgICAgICAg
ICAgICBjb250ZW50OiB0aGlzLl9yZXNvdXJjZS5jb250ZW50CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisKICAgICAgICAgaWYgKHRoaXMuX3Jlc291
cmNlLnVybENvbXBvbmVudHMuc2NoZW1lICE9PSAiZGF0YSIpCiAgICAgICAgICAgICBjb250ZXh0
TWVudS5hcHBlbmRJdGVtKFdlYkluc3BlY3Rvci5VSVN0cmluZygiQ29weSBhcyBjVVJMIiksICgp
ID0+IHsgdGhpcy5fcmVzb3VyY2UuZ2VuZXJhdGVDVVJMQ29tbWFuZCgpOyB9KTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNv
dXJjZVRyZWVFbGVtZW50LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvUmVzb3VyY2VUcmVlRWxlbWVudC5qcwppbmRleCBhZjk2YzI1Li5iZWRiNTVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJj
ZVRyZWVFbGVtZW50LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanMKQEAgLTg3LDYgKzg3LDEzIEBAIFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVRyZWVFbGVtZW50ID0gY2xhc3MgUmVzb3VyY2VUcmVlRWxlbWVudCBleHRl
bmRzIFdlYkluc3BlY3RvCiAgICAgICAgIHJldHVybiB7dGV4dDogW3VybENvbXBvbmVudHMubGFz
dFBhdGhDb21wb25lbnQsIHVybENvbXBvbmVudHMucGF0aCwgdGhpcy5fcmVzb3VyY2UudXJsXX07
CiAgICAgfQogCisgICAgb25hdHRhY2goKQorICAgIHsKKyAgICAgICAgc3VwZXIub25hdHRhY2go
KTsKKworICAgICAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUi
LCB0aGlzLl9oYW5kbGVDb250ZXh0TWVudUV2ZW50LmJpbmQodGhpcykpOworICAgIH0KKwogICAg
IG9uZGJsY2xpY2soKQogICAgIHsKICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lm9wZW5J
bk5ld1RhYih0aGlzLl9yZXNvdXJjZS51cmwpOwpAQCAtMTUxLDYgKzE1OCwyMCBAQCBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VUcmVlRWxlbWVudCA9IGNsYXNzIFJlc291cmNlVHJlZUVsZW1lbnQgZXh0
ZW5kcyBXZWJJbnNwZWN0bwogICAgICAgICAgICAgdGhpcy5jYWxsRmlyc3RBbmNlc3RvckZ1bmN0
aW9uKCJkZXNjZW5kYW50UmVzb3VyY2VUcmVlRWxlbWVudE1haW5UaXRsZURpZENoYW5nZSIsIFt0
aGlzLCBvbGRNYWluVGl0bGVdKTsKICAgICB9CiAKKyAgICBfaGFuZGxlQ29udGV4dE1lbnVFdmVu
dChldmVudCkKKyAgICB7CisgICAgICAgIGxldCBjb250ZXh0TWVudSA9IFdlYkluc3BlY3Rvci5D
b250ZXh0TWVudS5jcmVhdGVGcm9tRXZlbnQoZXZlbnQpOworCisgICAgICAgIGNvbnRleHRNZW51
LmFwcGVuZEl0ZW0oV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTYXZlIEZpbGUiKSwgKCkgPT4gewor
ICAgICAgICAgICAgdGhpcy5fcmVzb3VyY2UucmVxdWVzdENvbnRlbnQoKS50aGVuKCgpID0+IHsK
KyAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc2F2ZURhdGFUb0ZpbGUoeworICAgICAgICAg
ICAgICAgICAgICB1cmw6IHRoaXMuX3Jlc291cmNlLnVybCwKKyAgICAgICAgICAgICAgICAgICAg
Y29udGVudDogdGhpcy5fcmVzb3VyY2UuY29udGVudAorICAgICAgICAgICAgICAgIH0pOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKwogICAgIC8vIFByaXZhdGUKIAogICAg
IF91cGRhdGVTdGF0dXMoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>