<?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>139443</bug_id>
          
          <creation_ts>2014-12-09 04:31:17 -0800</creation_ts>
          <short_desc>[GTK] Add API to set the web view editable into WebKit2 GTK+ API</short_desc>
          <delta_ts>2015-01-20 03:22:05 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tomas Popela">tpopela</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1053743</commentid>
    <comment_count>0</comment_count>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2014-12-09 04:31:17 -0800</bug_when>
    <thetext>Add the webkit_web_view_set_editable() and webkit_web_view_get_editable() to set the view editable (user can change its content).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053755</commentid>
    <comment_count>1</comment_count>
      <attachid>242912</attachid>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2014-12-09 05:37:52 -0800</bug_when>
    <thetext>Created attachment 242912
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053756</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-09 05:39:09 -0800</bug_when>
    <thetext>Attachment 242912 did not pass style-queue:


WARNING: File exempt from style guide. Skipping: &quot;Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h&quot;
ERROR: Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:890:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:892:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:893:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:894:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:895:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 5 in 13 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>1053763</commentid>
    <comment_count>3</comment_count>
      <attachid>242912</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-12-09 05:50:49 -0800</bug_when>
    <thetext>Comment on attachment 242912
Patch

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

You should also add the new symbols to the documentation

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:885
&gt; +     * information see #webkit_web_view_set_editable.

#webkit_web_view_set_editable -&gt; webkit_web_view_set_editable()

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:895
&gt; +    g_object_class_install_property(gObjectClass,
&gt; +                                    PROP_EDITABLE,
&gt; +                                    g_param_spec_boolean(&quot;editable&quot;,
&gt; +                                                         _(&quot;Editable&quot;),
&gt; +                                                         _(&quot;Whether the content can be modified by the user.&quot;),
&gt; +                                                         FALSE,
&gt; +                                                         WEBKIT_PARAM_READWRITE));

This should be indented following wk coding style.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:3367
&gt; + * it doesn&apos;t. You can change @web_view&apos;s document programmatically regardless of
&gt; + * this setting.

You can change @web_view&apos;s document programmatically regardless of this setting. &lt;- I don&apos;t understand this sentence

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:3369
&gt; + * Return value: a #gboolean indicating the editable state

Use Returns instead of Return value:

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:3391
&gt; + * elements. You can change @web_view&apos;s document programmatically regardless of
&gt; + * this setting. By default a #WebKitWebView is not editable.

Ditto.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:3394
&gt; + * document are editable. This function provides a low-level way to make the

Why low-level?

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:3404
&gt; +    if (editable == webkit_web_view_get_editable(webView))

You could use etPage(webView)-&gt;isEditable() directly here instead of the public method to avoid doing the g_return_if_fail again

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:3410
&gt; +    if (editable)
&gt; +        getPage(webView)-&gt;applyEditingStyleToBodyElement();

Isn&apos;t setEditable() enough? shouldn&apos;t setEditable do this automatically?

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1344
&gt; +#if PLATFORM (GTK)
&gt; +void WebPageProxy::setEditable(bool editable)

Why is this specific to GTK?

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1362
&gt; +    m_process-&gt;send(Messages::WebPage::ApplyEditingStyleToBodyElement(), m_pageID);

Can we get rid of this message and call this in the web process when setEditable is called with true? What happens if setEditable is called with false afterwards?

&gt; Source/WebKit2/UIProcess/WebPageProxy.h:398
&gt; +    void setEditable(bool);
&gt; +    bool isEditable() const { return m_isEditable; };

I think should be either setIsEditable() and isEditable() or setEditable() and editable() I think

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebViewEditor.cpp:121
&gt; +    test-&gt;setEditable(TRUE);

TRUE -&gt; true

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebViewEditor.cpp:174
&gt; +    test-&gt;setEditable(TRUE);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053817</commentid>
    <comment_count>4</comment_count>
      <attachid>242930</attachid>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2014-12-09 09:16:08 -0800</bug_when>
    <thetext>Created attachment 242930
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053818</commentid>
    <comment_count>5</comment_count>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2014-12-09 09:17:27 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:3367
&gt; &gt; + * it doesn&apos;t. You can change @web_view&apos;s document programmatically regardless of
&gt; &gt; + * this setting.
&gt; 
&gt; You can change @web_view&apos;s document programmatically regardless of this
&gt; setting. &lt;- I don&apos;t understand this sentence

Changed to: &quot;You can change @web_view&apos;s document through #WebKitWebInspector or #WebKitWebExtension regardless this setting.&quot;

&gt; &gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1362
&gt; &gt; +    m_process-&gt;send(Messages::WebPage::ApplyEditingStyleToBodyElement(), m_pageID);
&gt; 

Removed this call and code about it as we don&apos;t want to set these defaults (like -webkit-nbsp-mode..).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053820</commentid>
    <comment_count>6</comment_count>
      <attachid>242930</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-12-09 09:21:45 -0800</bug_when>
    <thetext>Comment on attachment 242930
Patch

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

API looks good to me, we need a WebKit2 owner to approve the cross-platform changes. Thanks!

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:632
&gt; +

Remove this extra line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053824</commentid>
    <comment_count>7</comment_count>
      <attachid>242933</attachid>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2014-12-09 09:43:58 -0800</bug_when>
    <thetext>Created attachment 242933
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061783</commentid>
    <comment_count>8</comment_count>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2015-01-15 22:41:05 -0800</bug_when>
    <thetext>This needs to be reworked after http://trac.webkit.org/changeset/178536</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061784</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-01-15 22:48:39 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; This needs to be reworked after http://trac.webkit.org/changeset/178536

Yes, this is a lot easier now that we don&apos;t need to change the cross-platform code :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061792</commentid>
    <comment_count>10</comment_count>
      <attachid>244754</attachid>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2015-01-16 01:29:05 -0800</bug_when>
    <thetext>Created attachment 244754
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061794</commentid>
    <comment_count>11</comment_count>
      <attachid>244754</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-01-16 01:50:09 -0800</bug_when>
    <thetext>Comment on attachment 244754
Patch

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

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:3533
&gt; + * webkit_web_view_get_editable:

hmm, after reading the api again, I wonder if it would be better to use webkit_web_view_is_editable()

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:3542
&gt; + * Returns whether the user is allowed to edit the document.
&gt; + *
&gt; + * Returns %TRUE if @web_view allows the user to edit the HTML document, %FALSE if
&gt; + * it doesn&apos;t. You can change @web_view&apos;s document through #WebKitWebInspector or
&gt; + * #WebKitWebExtension regardless this setting. By default a #WebKitWebView is not editable.
&gt; + *
&gt; + * Returns: a #gboolean indicating the editable state

There are 3 returns here :-) I would reorganiza this a bit. The last one is redundant so I would just remove it. I don&apos;t understand the part &quot;You can change @web_view&apos;s document through #WebKitWebInspector or #WebKitWebExtension regardless this setting&quot;. I guess you mean that you can change the html so make the document editable. I think it&apos;s confusing, I wouldn&apos;t mention the inspector nor web extensions here. We could explain how this affect what the document contains, for example, what happens if the body tag contains contentEditable=True? does this method return true or false? (We could probably add a test case for that indeed).

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:3563
&gt; + * If @editable is %TRUE, @web_view allows the user to edit the document. If
&gt; + * @editable is %FALSE, an element in @web_view&apos;s document can only be edited if the
&gt; + * CONTENTEDITABLE attribute has been set on the element or one of its parent
&gt; + * elements. You can change @web_view&apos;s document through #WebKitWebInspector or

This looks better. We should add something similar to the getter, explaining that the document might still be editable if the conentEditable attr is set, even if the web view is not editable.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:3564
&gt; + * #WebKitWebExtension regardless this setting. By default a #WebKitWebView is not editable.

I wouldn&apos;t mention inspector and extensions here either.

&gt; Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:265
&gt; +    webkit_web_view_set_editable(m_webView, editable);

So, we are only testing the setter, but not the getter. We should check that by default is_editable returns FALSE as the doc says, and that after calling set_editable with TRUE, is_editable also return TRUE. It would be nice to check also that the web view can override the document, so that if body has contentEditable=false, making the view editable allows to edit the web view. So maybe it&apos;s better to add specific test cases for this, instead of reusing the selection ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061797</commentid>
    <comment_count>12</comment_count>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2015-01-16 02:30:01 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; hmm, after reading the api again, I wonder if it would be better to use
&gt; webkit_web_view_is_editable()

That makes sense.

&gt; There are 3 returns here :-) I would reorganiza this a bit. The last one is
&gt; redundant so I would just remove it. I don&apos;t understand the part &quot;You can
&gt; change @web_view&apos;s document through #WebKitWebInspector or
&gt; #WebKitWebExtension regardless this setting&quot;. I guess you mean that you can
&gt; change the html so make the document editable.

That was meant to highlight that the content of the web view is not &quot;readonly&quot;, so you can change it. But it makes sense to not have it there.

&gt; We could explain how
&gt; this affect what the document contains, for example, what happens if the
&gt; body tag contains contentEditable=True? does this method return true or
&gt; false? (We could probably add a test case for that indeed).

In the case that the editable property is set to FALSE and we will load the page with contenteditable set on body it will return FALSE. It could return TRUE only in case that the contenteditable is set on body. But no-one is doing that (other ports).

&gt; So, we are only testing the setter, but not the getter. We should check that
&gt; by default is_editable returns FALSE as the doc says, and that after calling
&gt; set_editable with TRUE, is_editable also return TRUE. It would be nice to
&gt; check also that the web view can override the document, so that if body has
&gt; contentEditable=false, making the view editable allows to edit the web view.
&gt; So maybe it&apos;s better to add specific test cases for this, instead of reusing
&gt; the selection ones.

Ok, makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062294</commentid>
    <comment_count>13</comment_count>
      <attachid>244882</attachid>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2015-01-19 01:20:50 -0800</bug_when>
    <thetext>Created attachment 244882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062318</commentid>
    <comment_count>14</comment_count>
      <attachid>244882</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-01-19 02:37:42 -0800</bug_when>
    <thetext>Comment on attachment 244882
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebViewEditor.cpp:219
&gt; +    test-&gt;loadHtml(selectedSpanHTML, 0);

Use nullptr instad of 0

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebViewEditor.cpp:237
&gt; +    g_assert(test-&gt;isEditable());
&gt; +    test-&gt;setEditable(false);
&gt; +    g_assert(!test-&gt;isEditable());

The WebView is destroyed when the test finishes so we don&apos;t need to reset the state.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebViewEditor.cpp:251
&gt; +    test-&gt;loadHtml(selectedSpanHTML, 0);

nullptr.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebViewEditor.cpp:272
&gt; +}

There&apos;s too much code duplicated here, I think we could try to move the common code to a helper function. We could use a format string for the selectedSpanHTML since the only difference is the true/false. We could also add EditorTest::cutSelection() that returns the selected text. That method would include the asserts to check the CUT and PASTE editing commands can be executed, the call to custClipboard and then it would return gtk_clipboard_wait_for_text().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062320</commentid>
    <comment_count>15</comment_count>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2015-01-19 02:55:58 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebViewEditor.cpp:237
&gt; &gt; +    g_assert(test-&gt;isEditable());
&gt; &gt; +    test-&gt;setEditable(false);
&gt; &gt; +    g_assert(!test-&gt;isEditable());
&gt; 
&gt; The WebView is destroyed when the test finishes so we don&apos;t need to reset
&gt; the state.

I&apos;m resetting it on purpose to test whether setting the view as non-editable works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062322</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-01-19 02:59:41 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebViewEditor.cpp:237
&gt; &gt; &gt; +    g_assert(test-&gt;isEditable());
&gt; &gt; &gt; +    test-&gt;setEditable(false);
&gt; &gt; &gt; +    g_assert(!test-&gt;isEditable());
&gt; &gt; 
&gt; &gt; The WebView is destroyed when the test finishes so we don&apos;t need to reset
&gt; &gt; the state.
&gt; 
&gt; I&apos;m resetting it on purpose to test whether setting the view as non-editable
&gt; works.

I see, maybe we should add a different test case for that, checking also that cut and paste is not allowed either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062662</commentid>
    <comment_count>17</comment_count>
      <attachid>244972</attachid>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2015-01-20 00:18:33 -0800</bug_when>
    <thetext>Created attachment 244972
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062672</commentid>
    <comment_count>18</comment_count>
      <attachid>244972</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-01-20 01:15:12 -0800</bug_when>
    <thetext>Comment on attachment 244972
Patch

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

The implementation and the API looks good to me, we just need to improve a bit the tests.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebViewEditor.cpp:107
&gt; -static void testWebViewEditorCutCopyPasteNonEditable(EditorTest* test, gconstpointer)
&gt; +static void loadTestHtml(EditorTest* test, bool contentEditable)
&gt;  {
&gt; -    static const char* selectedSpanHTML = &quot;&lt;html&gt;&lt;body contentEditable=\&quot;false\&quot;&gt;&quot;
&gt; +    GUniquePtr&lt;char&gt; selectedSpanHTML(g_strdup_printf(
&gt; +        &quot;&lt;html&gt;&lt;body contentEditable=\&quot;%s\&quot;&gt;&quot;
&gt;          &quot;&lt;span id=\&quot;mainspan\&quot;&gt;All work and no play &lt;span id=\&quot;subspan\&quot;&gt;make Jack a dull&lt;/span&gt; boy.&lt;/span&gt;&quot;
&gt;          &quot;&lt;script&gt;document.getSelection().collapse();\n&quot;
&gt;          &quot;document.getSelection().selectAllChildren(document.getElementById(&apos;subspan&apos;));\n&quot;
&gt; -        &quot;&lt;/script&gt;&lt;/body&gt;&lt;/html&gt;&quot;;
&gt; +        &quot;&lt;/script&gt;&lt;/body&gt;&lt;/html&gt;&quot;, contentEditable ? &quot;true&quot; : &quot;false&quot;));
&gt;  
&gt; +    test-&gt;loadHtml(selectedSpanHTML.get(), nullptr);
&gt; +    test-&gt;waitUntilLoadFinished();
&gt; +}

This is too generic, what I meant is that we could make a global

static const char* selectedSpanHTMLFormat = &quot;....&quot;

And then in every test we use the format string to get the actual HTML depedning on whether we want the content editable or not

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebViewEditor.cpp:145
&gt;  
&gt; -    test-&gt;loadHtml(selectedSpanHTML, 0);
&gt; +    g_assert(!test-&gt;isEditable());
&gt; +    test-&gt;setEditable(true);
&gt; +    g_assert(test-&gt;isEditable());
&gt; +    test-&gt;loadHtml(selectedSpanHTML, nullptr);

Can&apos;t we use the common span HTML in this case?

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebViewEditor.cpp:205
&gt; +static void runEditorEditableCutTests(EditorTest* test, bool contentEditable)

What about something more descriptive like loadContentsAndTryToCutSelection?

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebViewEditor.cpp:229
&gt; +static void testWebViewEditorEditableOnNonEditable(EditorTest* test, gconstpointer)
&gt; +{
&gt; +    runEditorEditableCutTests(test, false);
&gt; +}
&gt; +
&gt; +static void testWebViewEditorEditableOnContentEditable(EditorTest* test, gconstpointer)
&gt; +{
&gt; +    runEditorEditableCutTests(test, true);
&gt; +}

These could be the same test.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebViewEditor.cpp:250
&gt; +    EditorTest::add(&quot;WebKitWebView&quot;, &quot;editable/non-editable&quot;, testWebViewEditorNonEditable);
&gt; +    EditorTest::add(&quot;WebKitWebView&quot;, &quot;editable/editable-on-non-editable&quot;, testWebViewEditorEditableOnNonEditable);
&gt; +    EditorTest::add(&quot;WebKitWebView&quot;, &quot;editable/editable-on-content-editable&quot;, testWebViewEditorEditableOnContentEditable);

I find the test names a bit confusing. What&apos;s the difference between non-editable and editable-on-non-editable? I guess the second one should be editable-on-non-editable-content?  Maybe we can even merge the 3 tests into a single one editable/editable and do all the checks there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062681</commentid>
    <comment_count>19</comment_count>
      <attachid>244976</attachid>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2015-01-20 02:20:53 -0800</bug_when>
    <thetext>Created attachment 244976
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062682</commentid>
    <comment_count>20</comment_count>
      <attachid>244977</attachid>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2015-01-20 02:33:56 -0800</bug_when>
    <thetext>Created attachment 244977
Patch

Rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062690</commentid>
    <comment_count>21</comment_count>
      <attachid>244977</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-20 03:22:01 -0800</bug_when>
    <thetext>Comment on attachment 244977
Patch

Clearing flags on attachment: 244977

Committed r178703: &lt;http://trac.webkit.org/changeset/178703&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062691</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-20 03:22:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242912</attachid>
            <date>2014-12-09 05:37:52 -0800</date>
            <delta_ts>2014-12-09 09:15:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139443-20141209143830.patch</filename>
            <type>text/plain</type>
            <size>16625</size>
            <attacher name="Tomas Popela">tpopela</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzM0NTQ2MGZjZjZmYzBi
YWNiNjg0YTk5NmQyOThlZTcwMWVhNDk3Yi4uMjNlOWZlZjRkMjYxYTM0NDI3ZGYxZmFmNzY2M2E0
ZWE1ZTg4MDRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTEyLTA5ICBUb21h
cyBQb3BlbGEgIDx0cG9wZWxhQHJlZGhhdC5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIEFQSSB0
byBzZXQgdGhlIHdlYiB2aWV3IGVkaXRhYmxlIGludG8gV2ViS2l0MiBHVEsrIEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDQzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBhIHdheSB0
byBzZXQgdGhlIHdlYiB2aWV3IGVkaXRhYmxlLCB3aXRob3V0IGFjY2Vzc2luZyB0aGUgRE9NCisg
ICAgICAgIGFuZCBzZXR0aW5nIHRoZSBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIHRvIGVsZW1l
bnRzLiBJbXBsZW1lbnRhdGlvbgorICAgICAgICBpcyBiYXNlZCBvbiBXZWJLaXQxIEFQSS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwOgorICAgICAgICAo
d2Via2l0V2ViVmlld1NldFByb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdHZXRQcm9w
ZXJ0eSk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6CisgICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfZ2V0X2VkaXRhYmxlKToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19z
ZXRfZWRpdGFibGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMu
dHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnNldEVkaXRhYmxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjphcHBseUVkaXRpbmdTdHlsZVRvQm9keUVsZW1lbnQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojppc0Vk
aXRhYmxlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldEVkaXRhYmxlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6YXBwbHlFZGl0aW5nU3R5bGVUb0JvZHlFbGVtZW50KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluOgorCiAyMDE0LTEyLTA3ICBHd2FuZyBZb29uIEh3YW5nICA8eW9vbkBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtDb29yZGluYXRlZEdyYXBoaWNzXSBDaGFuZ2UgdGhlIG5h
bWVzcGFjZSBvZiBDb29yZGluYXRlZEJhY2tpbmdTdG9yZSBhbmQgQ29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXcuY3BwCmluZGV4IDk4NjJmYWU2ZDViZDk1NDk3NzRiZjk4MzRmNWZlNGExMDJmOWU2Y2Eu
LjU0MzMzOWJjODMyY2I3MzU4YTI2YmFmNmMxZmFmYmUyNDcyMWY3NTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCkBAIC0xMzks
NyArMTM5LDggQEAgZW51bSB7CiAgICAgUFJPUF9GQVZJQ09OLAogICAgIFBST1BfVVJJLAogICAg
IFBST1BfWk9PTV9MRVZFTCwKLSAgICBQUk9QX0lTX0xPQURJTkcKKyAgICBQUk9QX0lTX0xPQURJ
TkcsCisgICAgUFJPUF9FRElUQUJMRQogfTsKIAogdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBH
UmVmUHRyPFdlYktpdFdlYlJlc291cmNlPiA+IExvYWRpbmdSZXNvdXJjZXNNYXA7CkBAIC02Mjgs
NiArNjI5LDExIEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdTZXRQcm9wZXJ0eShHT2JqZWN0
KiBvYmplY3QsIGd1aW50IHByb3BJZCwgY29uc3QgR1ZhbHVlCiAgICAgY2FzZSBQUk9QX1pPT01f
TEVWRUw6CiAgICAgICAgIHdlYmtpdF93ZWJfdmlld19zZXRfem9vbV9sZXZlbCh3ZWJWaWV3LCBn
X3ZhbHVlX2dldF9kb3VibGUodmFsdWUpKTsKICAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFBS
T1BfRURJVEFCTEU6CisgICAgICAgIHdlYmtpdF93ZWJfdmlld19zZXRfZWRpdGFibGUod2ViVmll
dywgZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkpOworICAgICAgICBicmVhazsKKwogICAgIGRl
ZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3Qs
IHByb3BJZCwgcGFyYW1TcGVjKTsKICAgICB9CkBAIC02NjUsNiArNjcxLDkgQEAgc3RhdGljIHZv
aWQgd2Via2l0V2ViVmlld0dldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElk
LCBHVmFsdWUqIHZhbHUKICAgICBjYXNlIFBST1BfSVNfTE9BRElORzoKICAgICAgICAgZ192YWx1
ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2lzX2xvYWRpbmcod2ViVmlldykp
OwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfRURJVEFCTEU6CisgICAgICAgIGdfdmFs
dWVfc2V0X2Jvb2xlYW4odmFsdWUsIHdlYmtpdF93ZWJfdmlld19nZXRfZWRpdGFibGUod2ViVmll
dykpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9XQVJO
X0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBhcmFtU3BlYyk7CiAgICAgfQpA
QCAtODcwLDYgKzg3OSwyMiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5p
dChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJM
RSkpOwogCiAgICAgLyoqCisgICAgICogV2ViS2l0V2ViVmlldzplZGl0YWJsZToKKyAgICAgKgor
ICAgICAqIFdoZXRoZXIgdGhlIHBhZ2VzIGxvYWRlZCBpbnNpZGUgI1dlYktpdFdlYlZpZXcgYXJl
IGVkaXRhYmxlLiBGb3IgbW9yZQorICAgICAqIGluZm9ybWF0aW9uIHNlZSAjd2Via2l0X3dlYl92
aWV3X3NldF9lZGl0YWJsZS4KKyAgICAgKgorICAgICAqIFNpbmNlOiAyLjgKKyAgICAgKi8KKyAg
ICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdPYmplY3RDbGFzcywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfRURJVEFCTEUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigiZWRpdGFibGUiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XygiRWRpdGFibGUiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF8oIldoZXRoZXIgdGhlIGNvbnRlbnQgY2FuIGJlIG1vZGlmaWVkIGJ5
IHRoZSB1c2VyLiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgRkFMU0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CisKKyAgICAv
KioKICAgICAgKiBXZWJLaXRXZWJWaWV3Ojpsb2FkLWNoYW5nZWQ6CiAgICAgICogQHdlYl92aWV3
OiB0aGUgI1dlYktpdFdlYlZpZXcgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCiAgICAg
ICogQGxvYWRfZXZlbnQ6IHRoZSAjV2ViS2l0TG9hZEV2ZW50CkBAIC0zMzMxLDMgKzMzNTYsNTkg
QEAgdm9pZCB3ZWJraXRXZWJWaWV3V2ViUHJvY2Vzc0NyYXNoZWQoV2ViS2l0V2ViVmlldyogd2Vi
VmlldykKICAgICBnX3NpZ25hbF9lbWl0KHdlYlZpZXcsIHNpZ25hbHNbV0VCX1BST0NFU1NfQ1JB
U0hFRF0sIDAsICZyZXR1cm5WYWx1ZSk7CiB9CiAKKy8qKgorICogd2Via2l0X3dlYl92aWV3X2dl
dF9lZGl0YWJsZToKKyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICoKKyAqIFJldHVy
bnMgd2hldGhlciB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVkaXQgdGhlIGRvY3VtZW50LgorICoK
KyAqIFJldHVybnMgJVRSVUUgaWYgQHdlYl92aWV3IGFsbG93cyB0aGUgdXNlciB0byBlZGl0IHRo
ZSBIVE1MIGRvY3VtZW50LCAlRkFMU0UgaWYKKyAqIGl0IGRvZXNuJ3QuIFlvdSBjYW4gY2hhbmdl
IEB3ZWJfdmlldydzIGRvY3VtZW50IHByb2dyYW1tYXRpY2FsbHkgcmVnYXJkbGVzcyBvZgorICog
dGhpcyBzZXR0aW5nLgorICoKKyAqIFJldHVybiB2YWx1ZTogYSAjZ2Jvb2xlYW4gaW5kaWNhdGlu
ZyB0aGUgZWRpdGFibGUgc3RhdGUKKyAqCisgKiBTaW5jZTogMi44CisgKi8KK2dib29sZWFuIHdl
YmtpdF93ZWJfdmlld19nZXRfZWRpdGFibGUoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIEZBTFNF
KTsKKworICAgIHJldHVybiBnZXRQYWdlKHdlYlZpZXcpLT5pc0VkaXRhYmxlKCk7Cit9CisKKy8q
KgorICogd2Via2l0X3dlYl92aWV3X3NldF9lZGl0YWJsZToKKyAqIEB3ZWJfdmlldzogYSAjV2Vi
S2l0V2ViVmlldworICogQGVkaXRhYmxlOiBhICNnYm9vbGVhbiBpbmRpY2F0aW5nIHRoZSBlZGl0
YWJsZSBzdGF0ZQorICoKKyAqIFNldHMgd2hldGhlciBAd2ViX3ZpZXcgYWxsb3dzIHRoZSB1c2Vy
IHRvIGVkaXQgaXRzIEhUTUwgZG9jdW1lbnQuCisgKgorICogSWYgQGVkaXRhYmxlIGlzICVUUlVF
LCBAd2ViX3ZpZXcgYWxsb3dzIHRoZSB1c2VyIHRvIGVkaXQgdGhlIGRvY3VtZW50LiBJZgorICog
QGVkaXRhYmxlIGlzICVGQUxTRSwgYW4gZWxlbWVudCBpbiBAd2ViX3ZpZXcncyBkb2N1bWVudCBj
YW4gb25seSBiZSBlZGl0ZWQgaWYgdGhlCisgKiBDT05URU5URURJVEFCTEUgYXR0cmlidXRlIGhh
cyBiZWVuIHNldCBvbiB0aGUgZWxlbWVudCBvciBvbmUgb2YgaXRzIHBhcmVudAorICogZWxlbWVu
dHMuIFlvdSBjYW4gY2hhbmdlIEB3ZWJfdmlldydzIGRvY3VtZW50IHByb2dyYW1tYXRpY2FsbHkg
cmVnYXJkbGVzcyBvZgorICogdGhpcyBzZXR0aW5nLiBCeSBkZWZhdWx0IGEgI1dlYktpdFdlYlZp
ZXcgaXMgbm90IGVkaXRhYmxlLgorCisgKiBOb3JtYWxseSwgYW4gSFRNTCBkb2N1bWVudCBpcyBu
b3QgZWRpdGFibGUgdW5sZXNzIHRoZSBlbGVtZW50cyB3aXRoaW4gdGhlCisgKiBkb2N1bWVudCBh
cmUgZWRpdGFibGUuIFRoaXMgZnVuY3Rpb24gcHJvdmlkZXMgYSBsb3ctbGV2ZWwgd2F5IHRvIG1h
a2UgdGhlCisgKiBjb250ZW50cyBvZiBhICNXZWJLaXRXZWJWaWV3IGVkaXRhYmxlIHdpdGhvdXQg
YWx0ZXJpbmcgdGhlIGRvY3VtZW50IG9yIERPTQorICogc3RydWN0dXJlLgorICoKKyAqIFNpbmNl
OiAyLjgKKyAqLwordm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2VkaXRhYmxlKFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcsIGdib29sZWFuIGVkaXRhYmxlKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwo
V0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKKworICAgIGlmIChlZGl0YWJsZSA9PSB3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X2VkaXRhYmxlKHdlYlZpZXcpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBnZXRQYWdlKHdlYlZpZXcpLT5zZXRFZGl0YWJsZShlZGl0YWJsZSk7CisKKyAgICBpZiAoZWRp
dGFibGUpCisgICAgICAgIGdldFBhZ2Uod2ViVmlldyktPmFwcGx5RWRpdGluZ1N0eWxlVG9Cb2R5
RWxlbWVudCgpOworCisgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHdlYlZpZXcpLCAiZWRp
dGFibGUiKTsKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlldy5oCmluZGV4IGYzZjA1OWNhYTE1MDFjM2RmNDAwMzIyZWI3MzBmOTZlNmZmMGQz
ZGMuLjIyYWNlMzE4YmIwMDQyOWQ4YTBlMTRiMmY2NGZjYzhlY2Y2YmVhZTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKQEAgLTQ2Nyw2
ICs0NjcsMTMgQEAgd2Via2l0X3dlYl92aWV3X2dldF9zbmFwc2hvdF9maW5pc2ggICAgICAgICAg
ICAgICAgICAoV2ViS2l0V2ViVmlldwogV0VCS0lUX0FQSSBXZWJLaXRVc2VyQ29udGVudE1hbmFn
ZXIgKgogd2Via2l0X3dlYl92aWV3X2dldF91c2VyX2NvbnRlbnRfbWFuYWdlciAgICAgICAgICAg
ICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJIGdi
b29sZWFuCit3ZWJraXRfd2ViX3ZpZXdfZ2V0X2VkaXRhYmxlICAgICAgICAgICAgICAgICAgICAg
ICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CisKK1dFQktJVF9BUEkg
dm9pZAord2Via2l0X3dlYl92aWV3X3NldF9lZGl0YWJsZSAgICAgICAgICAgICAgICAgICAgICAg
ICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAg
ICAgICAgIGVkaXRhYmxlKTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMu
dHh0IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNl
Y3Rpb25zLnR4dAppbmRleCBiZTRmZjNjZDdmMTljOTliMGNlMjZjNWFkOWNkODBiNjQxYjY5Nzg2
Li45MTAxYTE1ZWU1NGUwNmQyMzBlODg1Mzg4Zjc3MzdiNzBiYWMwNzhmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0
ay1zZWN0aW9ucy50eHQKQEAgLTE5OCw2ICsxOTgsOCBAQCB3ZWJraXRfd2ViX3ZpZXdfZG93bmxv
YWRfdXJpCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Rsc19pbmZvCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0
X3NuYXBzaG90CiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NuYXBzaG90X2ZpbmlzaAord2Via2l0X3dl
Yl92aWV3X3NldF9lZGl0YWJsZQord2Via2l0X3dlYl92aWV3X2dldF9lZGl0YWJsZQogCiA8U1VC
U0VDVElPTiBXZWJLaXRKYXZhc2NyaXB0UmVzdWx0PgogV2ViS2l0SmF2YXNjcmlwdFJlc3VsdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3MTJhNmU2ZDNk
NzAxYjY3MjIxY2RlNWIyMDFjY2JiYTU2ZmM4YzNmLi43ZDFiMzY3OGMyZTU4ZjExOTdjODBlMThh
NDUwOTQ2MmZmMGQwYjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcApAQCAtMTM0MCw2ICsxMzQwLDI5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp2YWxpZGF0ZUNv
bW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkCiAgICAg
bV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpWYWxpZGF0ZUNvbW1hbmQoY29tbWFu
ZE5hbWUsIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKKyNpZiBQTEFURk9STSAoR1RLKQor
dm9pZCBXZWJQYWdlUHJveHk6OnNldEVkaXRhYmxlKGJvb2wgZWRpdGFibGUpCit7CisgICAgaWYg
KGVkaXRhYmxlID09IG1faXNFZGl0YWJsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFp
c1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1faXNFZGl0YWJsZSA9IGVkaXRhYmxl
OworCisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRFZGl0YWJsZShl
ZGl0YWJsZSksIG1fcGFnZUlEKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmFwcGx5RWRpdGlu
Z1N0eWxlVG9Cb2R5RWxlbWVudCgpCit7CisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6QXBwbHlFZGl0
aW5nU3R5bGVUb0JvZHlFbGVtZW50KCksIG1fcGFnZUlEKTsKK30KKyNlbmRpZgorCiB2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0TWFpbnRhaW5zSW5hY3RpdmVTZWxlY3Rpb24oYm9vbCBuZXdWYWx1ZSkK
IHsKICAgICBtX21haW50YWluc0luYWN0aXZlU2VsZWN0aW9uID0gbmV3VmFsdWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYmU4MjI2ODk3ZWM3N2JhODFhNzg5
NmE4NGFhMGVmYjU2ZTA0NDU4Mi4uMDE1YjgxYTZmYzkwMzg0ZmQ2MWJiYjA2N2M1NzlkMzcwZTcy
YzkyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMzkyLDcg
KzM5MiwxMyBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5EZWxldGUoKSBjb25zdCB7IHJldHVybiBo
YXNTZWxlY3RlZFJhbmdlKCkgJiYgaXNDb250ZW50RWRpdGFibGUoKTsgfQogICAgIGJvb2wgaGFz
U2VsZWN0ZWRSYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fZWRpdG9yU3RhdGUuc2VsZWN0aW9uSXNS
YW5nZTsgfQogICAgIGJvb2wgaXNDb250ZW50RWRpdGFibGUoKSBjb25zdCB7IHJldHVybiBtX2Vk
aXRvclN0YXRlLmlzQ29udGVudEVkaXRhYmxlOyB9Ci0gICAgCisKKyNpZiBQTEFURk9STShHVEsp
CisgICAgdm9pZCBzZXRFZGl0YWJsZShib29sKTsKKyAgICBib29sIGlzRWRpdGFibGUoKSBjb25z
dCB7IHJldHVybiBtX2lzRWRpdGFibGU7IH07CisgICAgdm9pZCBhcHBseUVkaXRpbmdTdHlsZVRv
Qm9keUVsZW1lbnQoKTsKKyNlbmRpZgorCiAgICAgYm9vbCBtYWludGFpbnNJbmFjdGl2ZVNlbGVj
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbnRhaW5zSW5hY3RpdmVTZWxlY3Rpb247IH0KICAg
ICB2b2lkIHNldE1haW50YWluc0luYWN0aXZlU2VsZWN0aW9uKGJvb2wpOwogCkBAIC0xNDI0LDYg
KzE0MzAsOSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3Rvb2xUaXA7CiAKICAgICBFZGl0b3JT
dGF0ZSBtX2VkaXRvclN0YXRlOworI2lmIFBMQVRGT1JNIChHVEspCisgICAgYm9vbCBtX2lzRWRp
dGFibGU7CisjZW5kaWYKICNpZiBQTEFURk9STShNQUMpICYmICFVU0UoQVNZTkNfTlNURVhUSU5Q
VVRDTElFTlQpCiAgICAgYm9vbCBtX3RlbXBvcmFyaWx5Q2xvc2VkQ29tcG9zaXRpb247IC8vIEVk
aXRvciBzdGF0ZSBjaGFuZ2VkIGZyb20gaGFzQ29tcG9zaXRpb24gdG8gIWhhc0NvbXBvc2l0aW9u
LCBidXQgdGhhdCB3YXMgb25seSB3aXRoIHNob3VsZElnbm9yZUNvbXBvc2l0aW9uU2VsZWN0aW9u
Q2hhbmdlIHlldC4KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IDkwYTI0MTVhMTI4OTFlNTc2MzgwYzE4OTQ3OTYyOTQxNjBkMjkw
NTAuLjQ0NDYyYWNkMmZiOTM4ZjgzYjFhYTkzMjgyYTgwM2M1NjIxZDIyMWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTgwOSw2ICs4MDks
MjAgQEAgRWRpdG9yU3RhdGUgV2ViUGFnZTo6ZWRpdG9yU3RhdGUoKSBjb25zdAogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKKyNpZiBQTEFURk9STShHVEspCit2b2lkIFdlYlBhZ2U6OnNldEVkaXRh
YmxlKGJvb2wgZWRpdGFibGUpCit7CisgICAgbV9wYWdlLT5zZXRFZGl0YWJsZShlZGl0YWJsZSk7
Cit9CisKK3ZvaWQgV2ViUGFnZTo6YXBwbHlFZGl0aW5nU3R5bGVUb0JvZHlFbGVtZW50KCkKK3sK
KyAgICBGcmFtZSYgZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1h
aW5GcmFtZSgpOworCisgICAgZnJhbWUuZWRpdG9yKCkuYXBwbHlFZGl0aW5nU3R5bGVUb0JvZHlF
bGVtZW50KCk7Cit9CisjZW5kaWYKKwogU3RyaW5nIFdlYlBhZ2U6OnJlbmRlclRyZWVFeHRlcm5h
bFJlcHJlc2VudGF0aW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gZXh0ZXJuYWxSZXByZXNlbnRh
dGlvbihtX21haW5GcmFtZS0+Y29yZUZyYW1lKCksIFJlbmRlckFzVGV4dEJlaGF2aW9yTm9ybWFs
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGYz
ZjliOTFiOTFhNzc4OWIwZjkxOTAyODVlY2UwOGUzOTVjMTg1NzAuLjEyMmEzZTdlMDMxZGJhMWFm
YTUxMDgyYzdiMGFmMTBmMjc5NGY3NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaApAQCAtMzI4LDYgKzMyOCwxMSBAQCBwdWJsaWM6CiAgICAgCiAgICAg
RWRpdG9yU3RhdGUgZWRpdG9yU3RhdGUoKSBjb25zdDsKIAorI2lmIFBMQVRGT1JNIChHVEspCisg
ICAgdm9pZCBzZXRFZGl0YWJsZShib29sKTsKKyAgICB2b2lkIGFwcGx5RWRpdGluZ1N0eWxlVG9C
b2R5RWxlbWVudCgpOworI2VuZGlmCisKICAgICBTdHJpbmcgcmVuZGVyVHJlZUV4dGVybmFsUmVw
cmVzZW50YXRpb24oKSBjb25zdDsKICAgICBTdHJpbmcgcmVuZGVyVHJlZUV4dGVybmFsUmVwcmVz
ZW50YXRpb25Gb3JQcmludGluZygpIGNvbnN0OwogICAgIHVpbnQ2NF90IHJlbmRlclRyZWVTaXpl
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDA5MTFiYTllNzA0MTY1NDM1ZjhmZGM1MmU4YTFiYTE0
NTZlZDZiMjIuLjE4MzI0MTViZTI4YWNmZDJjM2Y3ZDdiZmQzNWIxYjQxNmFlMGI1MGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCkBAIC0xNDQsNiArMTQ0LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVj
ZWl2ZXIgewogCiAgICAgQ2xlYXJTZWxlY3Rpb24oKQogCisjaWYgUExBVEZPUk0gKEdUSykKKyAg
ICBTZXRFZGl0YWJsZShib29sIGVkaXRhYmxlKQorICAgIEFwcGx5RWRpdGluZ1N0eWxlVG9Cb2R5
RWxlbWVudCgpCisjZW5kaWYKKwogICAgICMgQ2FsbGJhY2tzLgogICAgIEdldENvbnRlbnRzQXNT
dHJpbmcodWludDY0X3QgY2FsbGJhY2tJRCkKICNpZiBFTkFCTEUoTUhUTUwpCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODQwMjMyNTBiZjRhNjll
MGVlMGVhOTE5ZmY2Y2FlNTkxMzlhOTFhOC4uMGFhMmU2NGVlY2RmNWU0NmFiNDcyMGE3MmExN2Jh
Y2E3NmNlMTJlYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0LTEyLTA5ICBUb21hcyBQb3BlbGEgIDx0cG9wZWxh
QHJlZGhhdC5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIEFQSSB0byBzZXQgdGhlIHdlYiB2aWV3
IGVkaXRhYmxlIGludG8gV2ViS2l0MiBHVEsrIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBjcmVhdGluZyBuZXcgdGVzdHMgZm9y
IG5ldyBlZGl0YWJsZSBBUEkganVzdCByZXdvcmsgdGhlIGN1cnJlbnQKKyAgICAgICAgdGVzdHMg
dGhhdCBhcmUgZXhwZWN0aW5nIHRoZSB3ZWIgdmlldyBlZGl0YWJsZS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViVmlld0VkaXRvci5jcHA6CisgICAg
ICAgICh0ZXN0V2ViVmlld0VkaXRvckN1dENvcHlQYXN0ZUVkaXRhYmxlKToKKyAgICAgICAgKHRl
c3RXZWJWaWV3RWRpdG9yU2VsZWN0QWxsRWRpdGFibGUpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuY3BwOgorICAgICAgICAoV2ViVmlld1Rlc3Q6
OnNldEVkaXRhYmxlKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dl
YlZpZXdUZXN0Lmg6CisKIDIwMTQtMTItMDcgIEd3YW5nIFlvb24gSHdhbmcgIDx5b29uQGlnYWxp
YS5jb20+CiAKICAgICAgICAgVXBkYXRlIHN0eWxlIGNoZWNrZXIgdG8gZGVhbCB3aXRoICJjb25z
dCBvdmVycmlkZSIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mkd0ay9UZXN0V2ViVmlld0VkaXRvci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDJHdGsvVGVzdFdlYlZpZXdFZGl0b3IuY3BwCmluZGV4IDllNjliZmE0OGUxYTYwZTg0ZWZh
ZDk0MDA2MWViN2EzOGRiNWZlYjIuLmExMzRiZDM3ZTI3N2Q2OGMxNWRmMWY4ZmUxZTllM2Y5ZWIx
MGQwM2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9U
ZXN0V2ViVmlld0VkaXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyR3RrL1Rlc3RXZWJWaWV3RWRpdG9yLmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIHN0YXRpYyB2
b2lkIHRlc3RXZWJWaWV3RWRpdG9yQ3V0Q29weVBhc3RlTm9uRWRpdGFibGUoRWRpdG9yVGVzdCog
dGVzdCwgZ2NvbnN0cG9pCiAKIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3RWRpdG9yQ3V0Q29weVBh
c3RlRWRpdGFibGUoRWRpdG9yVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKLSAgICBzdGF0
aWMgY29uc3QgY2hhciogc2VsZWN0ZWRTcGFuSFRNTCA9ICI8aHRtbD48Ym9keSBjb250ZW50RWRp
dGFibGU9XCJ0cnVlXCI+IgorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzZWxlY3RlZFNwYW5IVE1M
ID0gIjxodG1sPjxib2R5PiIKICAgICAgICAgIjxzcGFuIGlkPVwibWFpbnNwYW5cIj5BbGwgd29y
ayBhbmQgbm8gcGxheSA8c3Bhbj5tYWtlIEphY2sgYSBkdWxsPC9zcGFuPiBib3kuPC9zcGFuPiIK
ICAgICAgICAgIjxzY3JpcHQ+ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkuY29sbGFwc2UoKTtcbiIK
ICAgICAgICAgImRvY3VtZW50LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdtYWluc3BhbicpKTtcbiIKQEAgLTExOCw2ICsxMTgsNyBAQCBz
dGF0aWMgdm9pZCB0ZXN0V2ViVmlld0VkaXRvckN1dENvcHlQYXN0ZUVkaXRhYmxlKEVkaXRvclRl
c3QqIHRlc3QsIGdjb25zdHBvaW50ZQogICAgIGdfYXNzZXJ0KCF0ZXN0LT5jYW5FeGVjdXRlRWRp
dGluZ0NvbW1hbmQoV0VCS0lUX0VESVRJTkdfQ09NTUFORF9DT1BZKSk7CiAgICAgZ19hc3NlcnQo
IXRlc3QtPmNhbkV4ZWN1dGVFZGl0aW5nQ29tbWFuZChXRUJLSVRfRURJVElOR19DT01NQU5EX1BB
U1RFKSk7CiAKKyAgICB0ZXN0LT5zZXRFZGl0YWJsZShUUlVFKTsKICAgICB0ZXN0LT5sb2FkSHRt
bChzZWxlY3RlZFNwYW5IVE1MLCAwKTsKICAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQo
KTsKIApAQCAtMTYyLDcgKzE2Myw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3RWRpdG9yU2Vs
ZWN0QWxsTm9uRWRpdGFibGUoRWRpdG9yVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlCiAKIHN0YXRp
YyB2b2lkIHRlc3RXZWJWaWV3RWRpdG9yU2VsZWN0QWxsRWRpdGFibGUoRWRpdG9yVGVzdCogdGVz
dCwgZ2NvbnN0cG9pbnRlcikKIHsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogc2VsZWN0ZWRTcGFu
SFRNTCA9ICI8aHRtbD48Ym9keSBjb250ZW50RWRpdGFibGU9XCJ0cnVlXCI+IgorICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBzZWxlY3RlZFNwYW5IVE1MID0gIjxodG1sPjxib2R5PiIKICAgICAgICAg
IjxzcGFuIGlkPVwibWFpbnNwYW5cIj5BbGwgd29yayBhbmQgbm8gcGxheSA8c3BhbiBpZD1cInN1
YnNwYW5cIj5tYWtlIEphY2sgYSBkdWxsPC9zcGFuPiBib3kuPC9zcGFuPiIKICAgICAgICAgIjxz
Y3JpcHQ+ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkuY29sbGFwc2UoKTtcbiIKICAgICAgICAgImRv
Y3VtZW50LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdzdWJzcGFuJykpO1xuIgpAQCAtMTcwLDYgKzE3MSw3IEBAIHN0YXRpYyB2b2lkIHRl
c3RXZWJWaWV3RWRpdG9yU2VsZWN0QWxsRWRpdGFibGUoRWRpdG9yVGVzdCogdGVzdCwgZ2NvbnN0
cG9pbnRlcikKIAogICAgIGdfYXNzZXJ0KHRlc3QtPmNhbkV4ZWN1dGVFZGl0aW5nQ29tbWFuZChX
RUJLSVRfRURJVElOR19DT01NQU5EX1NFTEVDVF9BTEwpKTsKIAorICAgIHRlc3QtPnNldEVkaXRh
YmxlKFRSVUUpOwogICAgIHRlc3QtPmxvYWRIdG1sKHNlbGVjdGVkU3BhbkhUTUwsIDApOwogICAg
IHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgpOwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuY3BwCmluZGV4IGVhOGI2YjNmZWIwNTJl
ODc2NjAzN2U2MTdjMjMxNjczZjBjMWMzYTMuLjBjYmY5YmVmZWUxOGI2MzkwNjY0NWQ1NDRjOTk1
MzkyZjFlY2JhNWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJH
dGsvV2ViVmlld1Rlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJH
dGsvV2ViVmlld1Rlc3QuY3BwCkBAIC0yNjAsNiArMjYwLDExIEBAIHZvaWQgV2ViVmlld1Rlc3Q6
OnNlbGVjdEFsbCgpCiAgICAgd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5k
KG1fd2ViVmlldywgIlNlbGVjdEFsbCIpOwogfQogCit2b2lkIFdlYlZpZXdUZXN0OjpzZXRFZGl0
YWJsZShib29sIGVkaXRhYmxlKQoreworICAgIHdlYmtpdF93ZWJfdmlld19zZXRfZWRpdGFibGUo
bV93ZWJWaWV3LCBlZGl0YWJsZSk7Cit9CisKIHN0YXRpYyB2b2lkIHJlc291cmNlR2V0RGF0YUNh
bGxiYWNrKEdPYmplY3QqIG9iamVjdCwgR0FzeW5jUmVzdWx0KiByZXN1bHQsIGdwb2ludGVyIHVz
ZXJEYXRhKQogewogICAgIHNpemVfdCBkYXRhU2l6ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuaAppbmRleCAyYzM2OTJhNTYyZTU3NDgwYjkw
YjdmZmZlZjc1NjM5ODJkYjI2YTNhLi45NjU0MjUxMzZmMTg4ZDNmZThhNjdkNmM4MDU0ZTRjN2Ri
NWNlZDQ2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dl
YlZpZXdUZXN0LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJW
aWV3VGVzdC5oCkBAIC01Myw2ICs1Myw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbGVjdEFsbCgp
OwogICAgIGNvbnN0IGNoYXIqIG1haW5SZXNvdXJjZURhdGEoc2l6ZV90JiBtYWluUmVzb3VyY2VE
YXRhU2l6ZSk7CiAKKyAgICB2b2lkIHNldEVkaXRhYmxlKGJvb2wpOworCiAgICAgdm9pZCBtb3Vz
ZU1vdmVUbyhpbnQgeCwgaW50IHksIHVuc2lnbmVkIG1vdXNlTW9kaWZpZXJzID0gMCk7CiAgICAg
dm9pZCBjbGlja01vdXNlQnV0dG9uKGludCB4LCBpbnQgeSwgdW5zaWduZWQgYnV0dG9uID0gMSwg
dW5zaWduZWQgbW91c2VNb2RpZmllcnMgPSAwKTsKICAgICB2b2lkIGtleVN0cm9rZSh1bnNpZ25l
ZCBrZXlWYWwsIHVuc2lnbmVkIGtleU1vZGlmaWVycyA9IDApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242930</attachid>
            <date>2014-12-09 09:16:08 -0800</date>
            <delta_ts>2014-12-09 09:43:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139443-20141209181647.patch</filename>
            <type>text/plain</type>
            <size>15681</size>
            <attacher name="Tomas Popela">tpopela</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzM0NTQ2MGZjZjZmYzBi
YWNiNjg0YTk5NmQyOThlZTcwMWVhNDk3Yi4uOGU0NjRiNTQ4NmZiZjVlNDkzZWM4ZjMxYjk1Zjk2
ZmM5OTFlNzIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE0LTEyLTA5ICBUb21h
cyBQb3BlbGEgIDx0cG9wZWxhQHJlZGhhdC5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIEFQSSB0
byBzZXQgdGhlIHdlYiB2aWV3IGVkaXRhYmxlIGludG8gV2ViS2l0MiBHVEsrIEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDQzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBhIHdheSB0
byBzZXQgdGhlIHdlYiB2aWV3IGVkaXRhYmxlLCB3aXRob3V0IGFjY2Vzc2luZyB0aGUgRE9NCisg
ICAgICAgIGFuZCBzZXR0aW5nIHRoZSBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIHRvIGVsZW1l
bnRzLiBJbXBsZW1lbnRhdGlvbgorICAgICAgICBpcyBiYXNlZCBvbiBXZWJLaXQxIEFQSS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwOgorICAgICAgICAo
d2Via2l0V2ViVmlld1NldFByb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdHZXRQcm9w
ZXJ0eSk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6CisgICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfZ2V0X2VkaXRhYmxlKToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19z
ZXRfZWRpdGFibGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMu
dHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnNldElzRWRpdGFibGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojppc0VkaXRhYmxl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmVkaXRvclN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
c2V0RWRpdGFibGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMTQt
MTItMDcgIEd3YW5nIFlvb24gSHdhbmcgIDx5b29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0Nv
b3JkaW5hdGVkR3JhcGhpY3NdIENoYW5nZSB0aGUgbmFtZXNwYWNlIG9mIENvb3JkaW5hdGVkQmFj
a2luZ1N0b3JlIGFuZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggOTg2MmZhZTZk
NWJkOTU0OTc3NGJmOTgzNGY1ZmU0YTEwMmY5ZTZjYS4uMDRiYzM4ZDQ3MWUyMWUwNTBmMzk0Zjg5
MDU1ZTg2MDY0ZjY3YTY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTEzOSw3ICsxMzksOCBAQCBlbnVtIHsKICAgICBQ
Uk9QX0ZBVklDT04sCiAgICAgUFJPUF9VUkksCiAgICAgUFJPUF9aT09NX0xFVkVMLAotICAgIFBS
T1BfSVNfTE9BRElORworICAgIFBST1BfSVNfTE9BRElORywKKyAgICBQUk9QX0VESVRBQkxFCiB9
OwogCiB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIEdSZWZQdHI8V2ViS2l0V2ViUmVzb3VyY2U+
ID4gTG9hZGluZ1Jlc291cmNlc01hcDsKQEAgLTYyOCw2ICs2MjksMTEgQEAgc3RhdGljIHZvaWQg
d2Via2l0V2ViVmlld1NldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBj
b25zdCBHVmFsdWUKICAgICBjYXNlIFBST1BfWk9PTV9MRVZFTDoKICAgICAgICAgd2Via2l0X3dl
Yl92aWV3X3NldF96b29tX2xldmVsKHdlYlZpZXcsIGdfdmFsdWVfZ2V0X2RvdWJsZSh2YWx1ZSkp
OwogICAgICAgICBicmVhazsKKworICAgIGNhc2UgUFJPUF9FRElUQUJMRToKKyAgICAgICAgd2Vi
a2l0X3dlYl92aWV3X3NldF9lZGl0YWJsZSh3ZWJWaWV3LCBnX3ZhbHVlX2dldF9ib29sZWFuKHZh
bHVlKSk7CisgICAgICAgIGJyZWFrOworCiAgICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1Rf
V0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElkLCBwYXJhbVNwZWMpOwogICAg
IH0KQEAgLTY2NSw2ICs2NzEsOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3R2V0UHJvcGVy
dHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIEdWYWx1ZSogdmFsdQogICAgIGNhc2Ug
UFJPUF9JU19MT0FESU5HOgogICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJr
aXRfd2ViX3ZpZXdfaXNfbG9hZGluZyh3ZWJWaWV3KSk7CiAgICAgICAgIGJyZWFrOworICAgIGNh
c2UgUFJPUF9FRElUQUJMRToKKyAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Vi
a2l0X3dlYl92aWV3X2dldF9lZGl0YWJsZSh3ZWJWaWV3KSk7CisgICAgICAgIGJyZWFrOwogICAg
IGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmpl
Y3QsIHByb3BJZCwgcGFyYW1TcGVjKTsKICAgICB9CkBAIC04NzAsNiArODc5LDI0IEBAIHN0YXRp
YyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2Vi
Vmlld0NsYXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CiAKICAgICAvKioKKyAgICAgKiBX
ZWJLaXRXZWJWaWV3OmVkaXRhYmxlOgorICAgICAqCisgICAgICogV2hldGhlciB0aGUgcGFnZXMg
bG9hZGVkIGluc2lkZSAjV2ViS2l0V2ViVmlldyBhcmUgZWRpdGFibGUuIEZvciBtb3JlCisgICAg
ICogaW5mb3JtYXRpb24gc2VlIHdlYmtpdF93ZWJfdmlld19zZXRfZWRpdGFibGUoKS4KKyAgICAg
KgorICAgICAqIFNpbmNlOiAyLjgKKyAgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxs
X3Byb3BlcnR5KAorICAgICAgICBnT2JqZWN0Q2xhc3MsCisgICAgICAgIFBST1BfRURJVEFCTEUs
CisgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAorICAgICAgICAgICAgImVkaXRhYmxlIiwK
KyAgICAgICAgICAgIF8oIkVkaXRhYmxlIiksCisgICAgICAgICAgICBfKCJXaGV0aGVyIHRoZSBj
b250ZW50IGNhbiBiZSBtb2RpZmllZCBieSB0aGUgdXNlci4iKSwKKyAgICAgICAgICAgIEZBTFNF
LAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOworCisgICAgLyoqCiAgICAg
ICogV2ViS2l0V2ViVmlldzo6bG9hZC1jaGFuZ2VkOgogICAgICAqIEB3ZWJfdmlldzogdGhlICNX
ZWJLaXRXZWJWaWV3IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZAogICAgICAqIEBsb2Fk
X2V2ZW50OiB0aGUgI1dlYktpdExvYWRFdmVudApAQCAtMzMzMSwzICszMzU4LDU1IEBAIHZvaWQg
d2Via2l0V2ViVmlld1dlYlByb2Nlc3NDcmFzaGVkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAg
ICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCBzaWduYWxzW1dFQl9QUk9DRVNTX0NSQVNIRURdLCAw
LCAmcmV0dXJuVmFsdWUpOwogfQogCisvKioKKyAqIHdlYmtpdF93ZWJfdmlld19nZXRfZWRpdGFi
bGU6CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqCisgKiBSZXR1cm5zIHdoZXRo
ZXIgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlZGl0IHRoZSBkb2N1bWVudC4KKyAqCisgKiBSZXR1
cm5zICVUUlVFIGlmIEB3ZWJfdmlldyBhbGxvd3MgdGhlIHVzZXIgdG8gZWRpdCB0aGUgSFRNTCBk
b2N1bWVudCwgJUZBTFNFIGlmCisgKiBpdCBkb2Vzbid0LiBZb3UgY2FuIGNoYW5nZSBAd2ViX3Zp
ZXcncyBkb2N1bWVudCB0aHJvdWdoICNXZWJLaXRXZWJJbnNwZWN0b3Igb3IKKyAqICNXZWJLaXRX
ZWJFeHRlbnNpb24gcmVnYXJkbGVzcyB0aGlzIHNldHRpbmcuIEJ5IGRlZmF1bHQgYSAjV2ViS2l0
V2ViVmlldyBpcyBub3QgZWRpdGFibGUuCisgKgorICogUmV0dXJuczogYSAjZ2Jvb2xlYW4gaW5k
aWNhdGluZyB0aGUgZWRpdGFibGUgc3RhdGUKKyAqCisgKiBTaW5jZTogMi44CisgKi8KK2dib29s
ZWFuIHdlYmtpdF93ZWJfdmlld19nZXRfZWRpdGFibGUoV2ViS2l0V2ViVmlldyogd2ViVmlldykK
K3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyks
IEZBTFNFKTsKKworICAgIHJldHVybiBnZXRQYWdlKHdlYlZpZXcpLT5pc0VkaXRhYmxlKCk7Cit9
CisKKy8qKgorICogd2Via2l0X3dlYl92aWV3X3NldF9lZGl0YWJsZToKKyAqIEB3ZWJfdmlldzog
YSAjV2ViS2l0V2ViVmlldworICogQGVkaXRhYmxlOiBhICNnYm9vbGVhbiBpbmRpY2F0aW5nIHRo
ZSBlZGl0YWJsZSBzdGF0ZQorICoKKyAqIFNldHMgd2hldGhlciBAd2ViX3ZpZXcgYWxsb3dzIHRo
ZSB1c2VyIHRvIGVkaXQgaXRzIEhUTUwgZG9jdW1lbnQuCisgKgorICogSWYgQGVkaXRhYmxlIGlz
ICVUUlVFLCBAd2ViX3ZpZXcgYWxsb3dzIHRoZSB1c2VyIHRvIGVkaXQgdGhlIGRvY3VtZW50LiBJ
ZgorICogQGVkaXRhYmxlIGlzICVGQUxTRSwgYW4gZWxlbWVudCBpbiBAd2ViX3ZpZXcncyBkb2N1
bWVudCBjYW4gb25seSBiZSBlZGl0ZWQgaWYgdGhlCisgKiBDT05URU5URURJVEFCTEUgYXR0cmli
dXRlIGhhcyBiZWVuIHNldCBvbiB0aGUgZWxlbWVudCBvciBvbmUgb2YgaXRzIHBhcmVudAorICog
ZWxlbWVudHMuIFlvdSBjYW4gY2hhbmdlIEB3ZWJfdmlldydzIGRvY3VtZW50IHRocm91Z2ggI1dl
YktpdFdlYkluc3BlY3RvciBvcgorICogI1dlYktpdFdlYkV4dGVuc2lvbiByZWdhcmRsZXNzIHRo
aXMgc2V0dGluZy4gQnkgZGVmYXVsdCBhICNXZWJLaXRXZWJWaWV3IGlzIG5vdCBlZGl0YWJsZS4K
KworICogTm9ybWFsbHksIGFuIEhUTUwgZG9jdW1lbnQgaXMgbm90IGVkaXRhYmxlIHVubGVzcyB0
aGUgZWxlbWVudHMgd2l0aGluIHRoZQorICogZG9jdW1lbnQgYXJlIGVkaXRhYmxlLiBUaGlzIGZ1
bmN0aW9uIHByb3ZpZGVzIGEgd2F5IHRvIG1ha2UgdGhlIGNvbnRlbnRzCisgKiBvZiBhICNXZWJL
aXRXZWJWaWV3IGVkaXRhYmxlIHdpdGhvdXQgYWx0ZXJpbmcgdGhlIGRvY3VtZW50IG9yIERPTSBz
dHJ1Y3R1cmUuCisgKgorICogU2luY2U6IDIuOAorICovCit2b2lkIHdlYmtpdF93ZWJfdmlld19z
ZXRfZWRpdGFibGUoV2ViS2l0V2ViVmlldyogd2ViVmlldywgZ2Jvb2xlYW4gZWRpdGFibGUpCit7
CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOworCisg
ICAgaWYgKGVkaXRhYmxlID09IGdldFBhZ2Uod2ViVmlldyktPmlzRWRpdGFibGUoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgZ2V0UGFnZSh3ZWJWaWV3KS0+c2V0SXNFZGl0YWJsZShlZGl0YWJs
ZSk7CisKKyAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViVmlldyksICJlZGl0YWJsZSIp
OworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJW
aWV3LmgKaW5kZXggZjNmMDU5Y2FhMTUwMWMzZGY0MDAzMjJlYjczMGY5NmU2ZmYwZDNkYy4uMjJh
Y2UzMThiYjAwNDI5ZDhhMGUxNGIyZjY0ZmNjOGVjZjZiZWFlNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaApAQCAtNDY3LDYgKzQ2Nywx
MyBAQCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NuYXBzaG90X2ZpbmlzaCAgICAgICAgICAgICAgICAg
IChXZWJLaXRXZWJWaWV3CiBXRUJLSVRfQVBJIFdlYktpdFVzZXJDb250ZW50TWFuYWdlciAqCiB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X3VzZXJfY29udGVudF9tYW5hZ2VyICAgICAgICAgICAgIChXZWJL
aXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CiAKK1dFQktJVF9BUEkgZ2Jvb2xlYW4K
K3dlYmtpdF93ZWJfdmlld19nZXRfZWRpdGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgKFdl
YktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKKworV0VCS0lUX0FQSSB2b2lkCit3
ZWJraXRfd2ViX3ZpZXdfc2V0X2VkaXRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJL
aXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAgICAgICAg
ZWRpdGFibGUpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMu
dHh0CmluZGV4IGJlNGZmM2NkN2YxOWM5OWIwY2UyNmM1YWQ5Y2Q4MGI2NDFiNjk3ODYuLjkxMDFh
MTVlZTU0ZTA2ZDIzMGU4ODUzODhmNzczN2I3MGJhYzA3OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rp
b25zLnR4dApAQCAtMTk4LDYgKzE5OCw4IEBAIHdlYmtpdF93ZWJfdmlld19kb3dubG9hZF91cmkK
IHdlYmtpdF93ZWJfdmlld19nZXRfdGxzX2luZm8KIHdlYmtpdF93ZWJfdmlld19nZXRfc25hcHNo
b3QKIHdlYmtpdF93ZWJfdmlld19nZXRfc25hcHNob3RfZmluaXNoCit3ZWJraXRfd2ViX3ZpZXdf
c2V0X2VkaXRhYmxlCit3ZWJraXRfd2ViX3ZpZXdfZ2V0X2VkaXRhYmxlCiAKIDxTVUJTRUNUSU9O
IFdlYktpdEphdmFzY3JpcHRSZXN1bHQ+CiBXZWJLaXRKYXZhc2NyaXB0UmVzdWx0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDcxMmE2ZTZkM2Q3MDFiNjcy
MjFjZGU1YjIwMWNjYmJhNTZmYzhjM2YuLmU3Yjc2NGNhYWYxOTE0OTdhODM4MDMyNGRhNDFhNjNk
NjBlYWE1ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBA
IC0xMzQwLDYgKzEzNDAsMTkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnZhbGlkYXRlQ29tbWFuZChj
b25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQKICAgICBtX3Byb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlZhbGlkYXRlQ29tbWFuZChjb21tYW5kTmFtZSwg
Y2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnNldElzRWRp
dGFibGUoYm9vbCBlZGl0YWJsZSkKK3sKKyAgICBpZiAoZWRpdGFibGUgPT0gbV9pc0VkaXRhYmxl
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIWlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9pc0VkaXRhYmxlID0gZWRpdGFibGU7CisKKyAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlNldEVkaXRhYmxlKGVkaXRhYmxlKSwgbV9wYWdlSUQpOworfQor
CiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TWFpbnRhaW5zSW5hY3RpdmVTZWxlY3Rpb24oYm9vbCBu
ZXdWYWx1ZSkKIHsKICAgICBtX21haW50YWluc0luYWN0aXZlU2VsZWN0aW9uID0gbmV3VmFsdWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYmU4MjI2ODk3ZWM3
N2JhODFhNzg5NmE4NGFhMGVmYjU2ZTA0NDU4Mi4uYWM0ZDk0ZjY2NDE1ODEzZjczNmY2MjkxODc2
NTk3ZTJlY2U5OWE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApA
QCAtMzkyLDcgKzM5MiwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5EZWxldGUoKSBjb25zdCB7
IHJldHVybiBoYXNTZWxlY3RlZFJhbmdlKCkgJiYgaXNDb250ZW50RWRpdGFibGUoKTsgfQogICAg
IGJvb2wgaGFzU2VsZWN0ZWRSYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fZWRpdG9yU3RhdGUuc2Vs
ZWN0aW9uSXNSYW5nZTsgfQogICAgIGJvb2wgaXNDb250ZW50RWRpdGFibGUoKSBjb25zdCB7IHJl
dHVybiBtX2VkaXRvclN0YXRlLmlzQ29udGVudEVkaXRhYmxlOyB9Ci0gICAgCisKKyAgICB2b2lk
IHNldElzRWRpdGFibGUoYm9vbCk7CisgICAgYm9vbCBpc0VkaXRhYmxlKCkgY29uc3QgeyByZXR1
cm4gbV9pc0VkaXRhYmxlOyB9OworCiAgICAgYm9vbCBtYWludGFpbnNJbmFjdGl2ZVNlbGVjdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbnRhaW5zSW5hY3RpdmVTZWxlY3Rpb247IH0KICAgICB2
b2lkIHNldE1haW50YWluc0luYWN0aXZlU2VsZWN0aW9uKGJvb2wpOwogCkBAIC0xNDI0LDYgKzE0
MjcsOSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3Rvb2xUaXA7CiAKICAgICBFZGl0b3JTdGF0
ZSBtX2VkaXRvclN0YXRlOworCisgICAgYm9vbCBtX2lzRWRpdGFibGU7CisKICNpZiBQTEFURk9S
TShNQUMpICYmICFVU0UoQVNZTkNfTlNURVhUSU5QVVRDTElFTlQpCiAgICAgYm9vbCBtX3RlbXBv
cmFyaWx5Q2xvc2VkQ29tcG9zaXRpb247IC8vIEVkaXRvciBzdGF0ZSBjaGFuZ2VkIGZyb20gaGFz
Q29tcG9zaXRpb24gdG8gIWhhc0NvbXBvc2l0aW9uLCBidXQgdGhhdCB3YXMgb25seSB3aXRoIHNo
b3VsZElnbm9yZUNvbXBvc2l0aW9uU2VsZWN0aW9uQ2hhbmdlIHlldC4KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDkwYTI0MTVh
MTI4OTFlNTc2MzgwYzE4OTQ3OTYyOTQxNjBkMjkwNTAuLjkzMjJjZmQwODNlODFjODFjN2Y1ZjIz
MTc1MGUxOTVjZWRmNDc1OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKQEAgLTgwOSw2ICs4MDksMTEgQEAgRWRpdG9yU3RhdGUgV2ViUGFnZTo6
ZWRpdG9yU3RhdGUoKSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK3ZvaWQgV2ViUGFn
ZTo6c2V0RWRpdGFibGUoYm9vbCBlZGl0YWJsZSkKK3sKKyAgICBtX3BhZ2UtPnNldEVkaXRhYmxl
KGVkaXRhYmxlKTsKK30KKwogU3RyaW5nIFdlYlBhZ2U6OnJlbmRlclRyZWVFeHRlcm5hbFJlcHJl
c2VudGF0aW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gZXh0ZXJuYWxSZXByZXNlbnRhdGlvbiht
X21haW5GcmFtZS0+Y29yZUZyYW1lKCksIFJlbmRlckFzVGV4dEJlaGF2aW9yTm9ybWFsKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGYzZjliOTFi
OTFhNzc4OWIwZjkxOTAyODVlY2UwOGUzOTVjMTg1NzAuLjEwMzMwOTQzMDcyMWIwN2NjZDBhZTc5
NzliNTI3NzgxZTk0YmQ3MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaApAQCAtMzI4LDYgKzMyOCw4IEBAIHB1YmxpYzoKICAgICAKICAgICBFZGl0b3JT
dGF0ZSBlZGl0b3JTdGF0ZSgpIGNvbnN0OwogCisgICAgdm9pZCBzZXRFZGl0YWJsZShib29sKTsK
KwogICAgIFN0cmluZyByZW5kZXJUcmVlRXh0ZXJuYWxSZXByZXNlbnRhdGlvbigpIGNvbnN0Owog
ICAgIFN0cmluZyByZW5kZXJUcmVlRXh0ZXJuYWxSZXByZXNlbnRhdGlvbkZvclByaW50aW5nKCkg
Y29uc3Q7CiAgICAgdWludDY0X3QgcmVuZGVyVHJlZVNpemUoKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5k
ZXggMDkxMWJhOWU3MDQxNjU0MzVmOGZkYzUyZThhMWJhMTQ1NmVkNmIyMi4uNmFlYmFjOGQxMjI3
YTI3YWQ1YmY5YTQ1MDQ0ZGM0NTgxODZjNGZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTE0NCw2ICsxNDQs
OCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIENsZWFyU2Vs
ZWN0aW9uKCkKIAorICAgIFNldEVkaXRhYmxlKGJvb2wgZWRpdGFibGUpCisKICAgICAjIENhbGxi
YWNrcy4KICAgICBHZXRDb250ZW50c0FzU3RyaW5nKHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAjaWYg
RU5BQkxFKE1IVE1MKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDg0MDIzMjUwYmY0YTY5ZTBlZTBlYTkxOWZmNmNhZTU5MTM5YTkxYTguLjA4YjFm
YTU0NTNhYTE3YmU5ZTI5MmIzNmFmMzdkMGE5ZDE0ZGZhODMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNC0xMi0w
OSAgVG9tYXMgUG9wZWxhICA8dHBvcGVsYUByZWRoYXQuY29tPgorCisgICAgICAgIFtHVEtdIEFk
ZCBBUEkgdG8gc2V0IHRoZSB3ZWIgdmlldyBlZGl0YWJsZSBpbnRvIFdlYktpdDIgR1RLKyBBUEkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQ0Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluc3RlYWQg
b2YgY3JlYXRpbmcgbmV3IHRlc3RzIGZvciBuZXcgZWRpdGFibGUgQVBJIGp1c3QgcmV3b3JrIHRo
ZQorICAgICAgICBjdXJyZW50IHRlc3RzIHRoYXQgYXJlIGV4cGVjdGluZyB0aGUgd2ViIHZpZXcg
ZWRpdGFibGUuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVz
dFdlYlZpZXdFZGl0b3IuY3BwOgorICAgICAgICAodGVzdFdlYlZpZXdFZGl0b3JDdXRDb3B5UGFz
dGVFZGl0YWJsZSk6CisgICAgICAgICh0ZXN0V2ViVmlld0VkaXRvclNlbGVjdEFsbEVkaXRhYmxl
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmNw
cDoKKyAgICAgICAgKFdlYlZpZXdUZXN0OjpzZXRFZGl0YWJsZSk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5oOgorCiAyMDE0LTEyLTA3ICBHd2Fu
ZyBZb29uIEh3YW5nICA8eW9vbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVwZGF0ZSBzdHlsZSBj
aGVja2VyIHRvIGRlYWwgd2l0aCAiY29uc3Qgb3ZlcnJpZGUiCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYlZpZXdFZGl0b3IuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJWaWV3RWRpdG9yLmNwcApp
bmRleCA5ZTY5YmZhNDhlMWE2MGU4NGVmYWQ5NDAwNjFlYjdhMzhkYjVmZWIyLi4wMmZhN2UwOTE5
ODQzYjdiNWIyZjc4Nzk5M2JiZjgzYjg3YTdlYWJiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYlZpZXdFZGl0b3IuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViVmlld0VkaXRvci5jcHAKQEAg
LTEwNyw3ICsxMDcsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0VkaXRvckN1dENvcHlQYXN0
ZU5vbkVkaXRhYmxlKEVkaXRvclRlc3QqIHRlc3QsIGdjb25zdHBvaQogCiBzdGF0aWMgdm9pZCB0
ZXN0V2ViVmlld0VkaXRvckN1dENvcHlQYXN0ZUVkaXRhYmxlKEVkaXRvclRlc3QqIHRlc3QsIGdj
b25zdHBvaW50ZXIpCiB7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHNlbGVjdGVkU3BhbkhUTUwg
PSAiPGh0bWw+PGJvZHkgY29udGVudEVkaXRhYmxlPVwidHJ1ZVwiPiIKKyAgICBzdGF0aWMgY29u
c3QgY2hhciogc2VsZWN0ZWRTcGFuSFRNTCA9ICI8aHRtbD48Ym9keT4iCiAgICAgICAgICI8c3Bh
biBpZD1cIm1haW5zcGFuXCI+QWxsIHdvcmsgYW5kIG5vIHBsYXkgPHNwYW4+bWFrZSBKYWNrIGEg
ZHVsbDwvc3Bhbj4gYm95Ljwvc3Bhbj4iCiAgICAgICAgICI8c2NyaXB0PmRvY3VtZW50LmdldFNl
bGVjdGlvbigpLmNvbGxhcHNlKCk7XG4iCiAgICAgICAgICJkb2N1bWVudC5nZXRTZWxlY3Rpb24o
KS5zZWxlY3RBbGxDaGlsZHJlbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbnNwYW4nKSk7
XG4iCkBAIC0xMTgsNiArMTE4LDcgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdFZGl0b3JDdXRD
b3B5UGFzdGVFZGl0YWJsZShFZGl0b3JUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGUKICAgICBnX2Fz
c2VydCghdGVzdC0+Y2FuRXhlY3V0ZUVkaXRpbmdDb21tYW5kKFdFQktJVF9FRElUSU5HX0NPTU1B
TkRfQ09QWSkpOwogICAgIGdfYXNzZXJ0KCF0ZXN0LT5jYW5FeGVjdXRlRWRpdGluZ0NvbW1hbmQo
V0VCS0lUX0VESVRJTkdfQ09NTUFORF9QQVNURSkpOwogCisgICAgdGVzdC0+c2V0RWRpdGFibGUo
dHJ1ZSk7CiAgICAgdGVzdC0+bG9hZEh0bWwoc2VsZWN0ZWRTcGFuSFRNTCwgMCk7CiAgICAgdGVz
dC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CiAKQEAgLTE2Miw3ICsxNjMsNyBAQCBzdGF0aWMg
dm9pZCB0ZXN0V2ViVmlld0VkaXRvclNlbGVjdEFsbE5vbkVkaXRhYmxlKEVkaXRvclRlc3QqIHRl
c3QsIGdjb25zdHBvaW50ZQogCiBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0VkaXRvclNlbGVjdEFs
bEVkaXRhYmxlKEVkaXRvclRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7Ci0gICAgc3RhdGlj
IGNvbnN0IGNoYXIqIHNlbGVjdGVkU3BhbkhUTUwgPSAiPGh0bWw+PGJvZHkgY29udGVudEVkaXRh
YmxlPVwidHJ1ZVwiPiIKKyAgICBzdGF0aWMgY29uc3QgY2hhciogc2VsZWN0ZWRTcGFuSFRNTCA9
ICI8aHRtbD48Ym9keT4iCiAgICAgICAgICI8c3BhbiBpZD1cIm1haW5zcGFuXCI+QWxsIHdvcmsg
YW5kIG5vIHBsYXkgPHNwYW4gaWQ9XCJzdWJzcGFuXCI+bWFrZSBKYWNrIGEgZHVsbDwvc3Bhbj4g
Ym95Ljwvc3Bhbj4iCiAgICAgICAgICI8c2NyaXB0PmRvY3VtZW50LmdldFNlbGVjdGlvbigpLmNv
bGxhcHNlKCk7XG4iCiAgICAgICAgICJkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxD
aGlsZHJlbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3Vic3BhbicpKTtcbiIKQEAgLTE3MCw2
ICsxNzEsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0VkaXRvclNlbGVjdEFsbEVkaXRhYmxl
KEVkaXRvclRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAKICAgICBnX2Fzc2VydCh0ZXN0LT5j
YW5FeGVjdXRlRWRpdGluZ0NvbW1hbmQoV0VCS0lUX0VESVRJTkdfQ09NTUFORF9TRUxFQ1RfQUxM
KSk7CiAKKyAgICB0ZXN0LT5zZXRFZGl0YWJsZSh0cnVlKTsKICAgICB0ZXN0LT5sb2FkSHRtbChz
ZWxlY3RlZFNwYW5IVE1MLCAwKTsKICAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3
VGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0
LmNwcAppbmRleCBlYThiNmIzZmViMDUyZTg3NjYwMzdlNjE3YzIzMTY3M2YwYzFjM2EzLi4wY2Jm
OWJlZmVlMThiNjM5MDY2NDVkNTQ0Yzk5NTM5MmYxZWNiYTVmIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmNwcApAQCAtMjYwLDYgKzI2
MCwxMSBAQCB2b2lkIFdlYlZpZXdUZXN0OjpzZWxlY3RBbGwoKQogICAgIHdlYmtpdF93ZWJfdmll
d19leGVjdXRlX2VkaXRpbmdfY29tbWFuZChtX3dlYlZpZXcsICJTZWxlY3RBbGwiKTsKIH0KIAor
dm9pZCBXZWJWaWV3VGVzdDo6c2V0RWRpdGFibGUoYm9vbCBlZGl0YWJsZSkKK3sKKyAgICB3ZWJr
aXRfd2ViX3ZpZXdfc2V0X2VkaXRhYmxlKG1fd2ViVmlldywgZWRpdGFibGUpOworfQorCiBzdGF0
aWMgdm9pZCByZXNvdXJjZUdldERhdGFDYWxsYmFjayhHT2JqZWN0KiBvYmplY3QsIEdBc3luY1Jl
c3VsdCogcmVzdWx0LCBncG9pbnRlciB1c2VyRGF0YSkKIHsKICAgICBzaXplX3QgZGF0YVNpemU7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdU
ZXN0LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmgK
aW5kZXggMmMzNjkyYTU2MmU1NzQ4MGI5MGI3ZmZmZWY3NTYzOTgyZGIyNmEzYS4uOTY1NDI1MTM2
ZjE4OGQzZmU4YTY3ZDZjODA1NGU0YzdkYjVjZWQ0NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuaApAQCAtNTMsNiArNTMsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZWxlY3RBbGwoKTsKICAgICBjb25zdCBjaGFyKiBtYWluUmVzb3VyY2VE
YXRhKHNpemVfdCYgbWFpblJlc291cmNlRGF0YVNpemUpOwogCisgICAgdm9pZCBzZXRFZGl0YWJs
ZShib29sKTsKKwogICAgIHZvaWQgbW91c2VNb3ZlVG8oaW50IHgsIGludCB5LCB1bnNpZ25lZCBt
b3VzZU1vZGlmaWVycyA9IDApOwogICAgIHZvaWQgY2xpY2tNb3VzZUJ1dHRvbihpbnQgeCwgaW50
IHksIHVuc2lnbmVkIGJ1dHRvbiA9IDEsIHVuc2lnbmVkIG1vdXNlTW9kaWZpZXJzID0gMCk7CiAg
ICAgdm9pZCBrZXlTdHJva2UodW5zaWduZWQga2V5VmFsLCB1bnNpZ25lZCBrZXlNb2RpZmllcnMg
PSAwKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242933</attachid>
            <date>2014-12-09 09:43:58 -0800</date>
            <delta_ts>2015-01-16 01:28:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139443-20141209184438.patch</filename>
            <type>text/plain</type>
            <size>15676</size>
            <attacher name="Tomas Popela">tpopela</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc2OTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzM0NTQ2MGZjZjZmYzBi
YWNiNjg0YTk5NmQyOThlZTcwMWVhNDk3Yi4uOGU0NjRiNTQ4NmZiZjVlNDkzZWM4ZjMxYjk1Zjk2
ZmM5OTFlNzIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE0LTEyLTA5ICBUb21h
cyBQb3BlbGEgIDx0cG9wZWxhQHJlZGhhdC5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIEFQSSB0
byBzZXQgdGhlIHdlYiB2aWV3IGVkaXRhYmxlIGludG8gV2ViS2l0MiBHVEsrIEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDQzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBhIHdheSB0
byBzZXQgdGhlIHdlYiB2aWV3IGVkaXRhYmxlLCB3aXRob3V0IGFjY2Vzc2luZyB0aGUgRE9NCisg
ICAgICAgIGFuZCBzZXR0aW5nIHRoZSBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIHRvIGVsZW1l
bnRzLiBJbXBsZW1lbnRhdGlvbgorICAgICAgICBpcyBiYXNlZCBvbiBXZWJLaXQxIEFQSS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwOgorICAgICAgICAo
d2Via2l0V2ViVmlld1NldFByb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdHZXRQcm9w
ZXJ0eSk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6CisgICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfZ2V0X2VkaXRhYmxlKToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19z
ZXRfZWRpdGFibGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMu
dHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnNldElzRWRpdGFibGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojppc0VkaXRhYmxl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmVkaXRvclN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
c2V0RWRpdGFibGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMTQt
MTItMDcgIEd3YW5nIFlvb24gSHdhbmcgIDx5b29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0Nv
b3JkaW5hdGVkR3JhcGhpY3NdIENoYW5nZSB0aGUgbmFtZXNwYWNlIG9mIENvb3JkaW5hdGVkQmFj
a2luZ1N0b3JlIGFuZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggOTg2MmZhZTZk
NWJkOTU0OTc3NGJmOTgzNGY1ZmU0YTEwMmY5ZTZjYS4uNWQ1YTNlNWFhY2QxMWJjZTU2OWMwZDEx
NzBjNWI2MjNlZDkyMDFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTEzOSw3ICsxMzksOCBAQCBlbnVtIHsKICAgICBQ
Uk9QX0ZBVklDT04sCiAgICAgUFJPUF9VUkksCiAgICAgUFJPUF9aT09NX0xFVkVMLAotICAgIFBS
T1BfSVNfTE9BRElORworICAgIFBST1BfSVNfTE9BRElORywKKyAgICBQUk9QX0VESVRBQkxFCiB9
OwogCiB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIEdSZWZQdHI8V2ViS2l0V2ViUmVzb3VyY2U+
ID4gTG9hZGluZ1Jlc291cmNlc01hcDsKQEAgLTYyOCw2ICs2MjksOSBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRXZWJWaWV3U2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIGNv
bnN0IEdWYWx1ZQogICAgIGNhc2UgUFJPUF9aT09NX0xFVkVMOgogICAgICAgICB3ZWJraXRfd2Vi
X3ZpZXdfc2V0X3pvb21fbGV2ZWwod2ViVmlldywgZ192YWx1ZV9nZXRfZG91YmxlKHZhbHVlKSk7
CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9FRElUQUJMRToKKyAgICAgICAgd2Via2l0
X3dlYl92aWV3X3NldF9lZGl0YWJsZSh3ZWJWaWV3LCBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVl
KSk7CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5f
SU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BJZCwgcGFyYW1TcGVjKTsKICAgICB9CkBA
IC02NjUsNiArNjY5LDkgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0dldFByb3BlcnR5KEdP
YmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBHVmFsdWUqIHZhbHUKICAgICBjYXNlIFBST1Bf
SVNfTE9BRElORzoKICAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X3dl
Yl92aWV3X2lzX2xvYWRpbmcod2ViVmlldykpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBS
T1BfRURJVEFCTEU6CisgICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHdlYmtpdF93
ZWJfdmlld19nZXRfZWRpdGFibGUod2ViVmlldykpOworICAgICAgICBicmVhazsKICAgICBkZWZh
dWx0OgogICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBw
cm9wSWQsIHBhcmFtU3BlYyk7CiAgICAgfQpAQCAtODcwLDYgKzg3NywyNCBAQCBzdGF0aWMgdm9p
ZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdD
bGFzcykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwogCiAgICAgLyoqCisgICAgICogV2ViS2l0
V2ViVmlldzplZGl0YWJsZToKKyAgICAgKgorICAgICAqIFdoZXRoZXIgdGhlIHBhZ2VzIGxvYWRl
ZCBpbnNpZGUgI1dlYktpdFdlYlZpZXcgYXJlIGVkaXRhYmxlLiBGb3IgbW9yZQorICAgICAqIGlu
Zm9ybWF0aW9uIHNlZSB3ZWJraXRfd2ViX3ZpZXdfc2V0X2VkaXRhYmxlKCkuCisgICAgICoKKyAg
ICAgKiBTaW5jZTogMi44CisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9w
ZXJ0eSgKKyAgICAgICAgZ09iamVjdENsYXNzLAorICAgICAgICBQUk9QX0VESVRBQkxFLAorICAg
ICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKKyAgICAgICAgICAgICJlZGl0YWJsZSIsCisgICAg
ICAgICAgICBfKCJFZGl0YWJsZSIpLAorICAgICAgICAgICAgXygiV2hldGhlciB0aGUgY29udGVu
dCBjYW4gYmUgbW9kaWZpZWQgYnkgdGhlIHVzZXIuIiksCisgICAgICAgICAgICBGQUxTRSwKKyAg
ICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKKworICAgIC8qKgogICAgICAqIFdl
YktpdFdlYlZpZXc6OmxvYWQtY2hhbmdlZDoKICAgICAgKiBAd2ViX3ZpZXc6IHRoZSAjV2ViS2l0
V2ViVmlldyBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKICAgICAgKiBAbG9hZF9ldmVu
dDogdGhlICNXZWJLaXRMb2FkRXZlbnQKQEAgLTMzMzEsMyArMzM1Niw1NSBAQCB2b2lkIHdlYmtp
dFdlYlZpZXdXZWJQcm9jZXNzQ3Jhc2hlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgIGdf
c2lnbmFsX2VtaXQod2ViVmlldywgc2lnbmFsc1tXRUJfUFJPQ0VTU19DUkFTSEVEXSwgMCwgJnJl
dHVyblZhbHVlKTsKIH0KIAorLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2VkaXRhYmxlOgor
ICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3CisgKgorICogUmV0dXJucyB3aGV0aGVyIHRo
ZSB1c2VyIGlzIGFsbG93ZWQgdG8gZWRpdCB0aGUgZG9jdW1lbnQuCisgKgorICogUmV0dXJucyAl
VFJVRSBpZiBAd2ViX3ZpZXcgYWxsb3dzIHRoZSB1c2VyIHRvIGVkaXQgdGhlIEhUTUwgZG9jdW1l
bnQsICVGQUxTRSBpZgorICogaXQgZG9lc24ndC4gWW91IGNhbiBjaGFuZ2UgQHdlYl92aWV3J3Mg
ZG9jdW1lbnQgdGhyb3VnaCAjV2ViS2l0V2ViSW5zcGVjdG9yIG9yCisgKiAjV2ViS2l0V2ViRXh0
ZW5zaW9uIHJlZ2FyZGxlc3MgdGhpcyBzZXR0aW5nLiBCeSBkZWZhdWx0IGEgI1dlYktpdFdlYlZp
ZXcgaXMgbm90IGVkaXRhYmxlLgorICoKKyAqIFJldHVybnM6IGEgI2dib29sZWFuIGluZGljYXRp
bmcgdGhlIGVkaXRhYmxlIHN0YXRlCisgKgorICogU2luY2U6IDIuOAorICovCitnYm9vbGVhbiB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X2VkaXRhYmxlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCit7Cisg
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBGQUxT
RSk7CisKKyAgICByZXR1cm4gZ2V0UGFnZSh3ZWJWaWV3KS0+aXNFZGl0YWJsZSgpOworfQorCisv
KioKKyAqIHdlYmtpdF93ZWJfdmlld19zZXRfZWRpdGFibGU6CisgKiBAd2ViX3ZpZXc6IGEgI1dl
YktpdFdlYlZpZXcKKyAqIEBlZGl0YWJsZTogYSAjZ2Jvb2xlYW4gaW5kaWNhdGluZyB0aGUgZWRp
dGFibGUgc3RhdGUKKyAqCisgKiBTZXRzIHdoZXRoZXIgQHdlYl92aWV3IGFsbG93cyB0aGUgdXNl
ciB0byBlZGl0IGl0cyBIVE1MIGRvY3VtZW50LgorICoKKyAqIElmIEBlZGl0YWJsZSBpcyAlVFJV
RSwgQHdlYl92aWV3IGFsbG93cyB0aGUgdXNlciB0byBlZGl0IHRoZSBkb2N1bWVudC4gSWYKKyAq
IEBlZGl0YWJsZSBpcyAlRkFMU0UsIGFuIGVsZW1lbnQgaW4gQHdlYl92aWV3J3MgZG9jdW1lbnQg
Y2FuIG9ubHkgYmUgZWRpdGVkIGlmIHRoZQorICogQ09OVEVOVEVESVRBQkxFIGF0dHJpYnV0ZSBo
YXMgYmVlbiBzZXQgb24gdGhlIGVsZW1lbnQgb3Igb25lIG9mIGl0cyBwYXJlbnQKKyAqIGVsZW1l
bnRzLiBZb3UgY2FuIGNoYW5nZSBAd2ViX3ZpZXcncyBkb2N1bWVudCB0aHJvdWdoICNXZWJLaXRX
ZWJJbnNwZWN0b3Igb3IKKyAqICNXZWJLaXRXZWJFeHRlbnNpb24gcmVnYXJkbGVzcyB0aGlzIHNl
dHRpbmcuIEJ5IGRlZmF1bHQgYSAjV2ViS2l0V2ViVmlldyBpcyBub3QgZWRpdGFibGUuCisKKyAq
IE5vcm1hbGx5LCBhbiBIVE1MIGRvY3VtZW50IGlzIG5vdCBlZGl0YWJsZSB1bmxlc3MgdGhlIGVs
ZW1lbnRzIHdpdGhpbiB0aGUKKyAqIGRvY3VtZW50IGFyZSBlZGl0YWJsZS4gVGhpcyBmdW5jdGlv
biBwcm92aWRlcyBhIHdheSB0byBtYWtlIHRoZSBjb250ZW50cworICogb2YgYSAjV2ViS2l0V2Vi
VmlldyBlZGl0YWJsZSB3aXRob3V0IGFsdGVyaW5nIHRoZSBkb2N1bWVudCBvciBET00gc3RydWN0
dXJlLgorICoKKyAqIFNpbmNlOiAyLjgKKyAqLwordm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2Vk
aXRhYmxlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGdib29sZWFuIGVkaXRhYmxlKQoreworICAg
IGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKKworICAgIGlm
IChlZGl0YWJsZSA9PSBnZXRQYWdlKHdlYlZpZXcpLT5pc0VkaXRhYmxlKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGdldFBhZ2Uod2ViVmlldyktPnNldElzRWRpdGFibGUoZWRpdGFibGUpOwor
CisgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHdlYlZpZXcpLCAiZWRpdGFibGUiKTsKK30K
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5o
CmluZGV4IGYzZjA1OWNhYTE1MDFjM2RmNDAwMzIyZWI3MzBmOTZlNmZmMGQzZGMuLjIyYWNlMzE4
YmIwMDQyOWQ4YTBlMTRiMmY2NGZjYzhlY2Y2YmVhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKQEAgLTQ2Nyw2ICs0NjcsMTMgQEAg
d2Via2l0X3dlYl92aWV3X2dldF9zbmFwc2hvdF9maW5pc2ggICAgICAgICAgICAgICAgICAoV2Vi
S2l0V2ViVmlldwogV0VCS0lUX0FQSSBXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIgKgogd2Via2l0
X3dlYl92aWV3X2dldF91c2VyX2NvbnRlbnRfbWFuYWdlciAgICAgICAgICAgICAoV2ViS2l0V2Vi
VmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X2VkaXRhYmxlICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRX
ZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0
X3dlYl92aWV3X3NldF9lZGl0YWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2Vi
VmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAgIGVkaXRh
YmxlKTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0IGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dApp
bmRleCBiZTRmZjNjZDdmMTljOTliMGNlMjZjNWFkOWNkODBiNjQxYjY5Nzg2Li45MTAxYTE1ZWU1
NGUwNmQyMzBlODg1Mzg4Zjc3MzdiNzBiYWMwNzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50
eHQKQEAgLTE5OCw2ICsxOTgsOCBAQCB3ZWJraXRfd2ViX3ZpZXdfZG93bmxvYWRfdXJpCiB3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X3Rsc19pbmZvCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NuYXBzaG90CiB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X3NuYXBzaG90X2ZpbmlzaAord2Via2l0X3dlYl92aWV3X3NldF9l
ZGl0YWJsZQord2Via2l0X3dlYl92aWV3X2dldF9lZGl0YWJsZQogCiA8U1VCU0VDVElPTiBXZWJL
aXRKYXZhc2NyaXB0UmVzdWx0PgogV2ViS2l0SmF2YXNjcmlwdFJlc3VsdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3MTJhNmU2ZDNkNzAxYjY3MjIxY2Rl
NWIyMDFjY2JiYTU2ZmM4YzNmLi5lN2I3NjRjYWFmMTkxNDk3YTgzODAzMjRkYTQxYTYzZDYwZWFh
NWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTM0
MCw2ICsxMzQwLDE5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp2YWxpZGF0ZUNvbW1hbmQoY29uc3Qg
U3RyaW5nJiBjb21tYW5kTmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lkCiAgICAgbV9wcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpWYWxpZGF0ZUNvbW1hbmQoY29tbWFuZE5hbWUsIGNhbGxi
YWNrSUQpLCBtX3BhZ2VJRCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRJc0VkaXRhYmxl
KGJvb2wgZWRpdGFibGUpCit7CisgICAgaWYgKGVkaXRhYmxlID09IG1faXNFZGl0YWJsZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1faXNFZGl0YWJsZSA9IGVkaXRhYmxlOworCisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpTZXRFZGl0YWJsZShlZGl0YWJsZSksIG1fcGFnZUlEKTsKK30KKwogdm9p
ZCBXZWJQYWdlUHJveHk6OnNldE1haW50YWluc0luYWN0aXZlU2VsZWN0aW9uKGJvb2wgbmV3VmFs
dWUpCiB7CiAgICAgbV9tYWludGFpbnNJbmFjdGl2ZVNlbGVjdGlvbiA9IG5ld1ZhbHVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGJlODIyNjg5N2VjNzdiYTgx
YTc4OTZhODRhYTBlZmI1NmUwNDQ1ODIuLmFjNGQ5NGY2NjQxNTgxM2Y3MzZmNjI5MTg3NjU5N2Uy
ZWNlOTlhOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTM5
Miw3ICszOTIsMTAgQEAgcHVibGljOgogICAgIGJvb2wgY2FuRGVsZXRlKCkgY29uc3QgeyByZXR1
cm4gaGFzU2VsZWN0ZWRSYW5nZSgpICYmIGlzQ29udGVudEVkaXRhYmxlKCk7IH0KICAgICBib29s
IGhhc1NlbGVjdGVkUmFuZ2UoKSBjb25zdCB7IHJldHVybiBtX2VkaXRvclN0YXRlLnNlbGVjdGlv
bklzUmFuZ2U7IH0KICAgICBib29sIGlzQ29udGVudEVkaXRhYmxlKCkgY29uc3QgeyByZXR1cm4g
bV9lZGl0b3JTdGF0ZS5pc0NvbnRlbnRFZGl0YWJsZTsgfQotICAgIAorCisgICAgdm9pZCBzZXRJ
c0VkaXRhYmxlKGJvb2wpOworICAgIGJvb2wgaXNFZGl0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNFZGl0YWJsZTsgfTsKKwogICAgIGJvb2wgbWFpbnRhaW5zSW5hY3RpdmVTZWxlY3Rpb24oKSBj
b25zdCB7IHJldHVybiBtX21haW50YWluc0luYWN0aXZlU2VsZWN0aW9uOyB9CiAgICAgdm9pZCBz
ZXRNYWludGFpbnNJbmFjdGl2ZVNlbGVjdGlvbihib29sKTsKIApAQCAtMTQyNCw2ICsxNDI3LDkg
QEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV90b29sVGlwOwogCiAgICAgRWRpdG9yU3RhdGUgbV9l
ZGl0b3JTdGF0ZTsKKworICAgIGJvb2wgbV9pc0VkaXRhYmxlOworCiAjaWYgUExBVEZPUk0oTUFD
KSAmJiAhVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKQogICAgIGJvb2wgbV90ZW1wb3Jhcmls
eUNsb3NlZENvbXBvc2l0aW9uOyAvLyBFZGl0b3Igc3RhdGUgY2hhbmdlZCBmcm9tIGhhc0NvbXBv
c2l0aW9uIHRvICFoYXNDb21wb3NpdGlvbiwgYnV0IHRoYXQgd2FzIG9ubHkgd2l0aCBzaG91bGRJ
Z25vcmVDb21wb3NpdGlvblNlbGVjdGlvbkNoYW5nZSB5ZXQuCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA5MGEyNDE1YTEyODkx
ZTU3NjM4MGMxODk0Nzk2Mjk0MTYwZDI5MDUwLi45MzIyY2ZkMDgzZTgxYzgxYzdmNWYyMzE3NTBl
MTk1Y2VkZjQ3NThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC04MDksNiArODA5LDExIEBAIEVkaXRvclN0YXRlIFdlYlBhZ2U6OmVkaXRv
clN0YXRlKCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCit2b2lkIFdlYlBhZ2U6OnNl
dEVkaXRhYmxlKGJvb2wgZWRpdGFibGUpCit7CisgICAgbV9wYWdlLT5zZXRFZGl0YWJsZShlZGl0
YWJsZSk7Cit9CisKIFN0cmluZyBXZWJQYWdlOjpyZW5kZXJUcmVlRXh0ZXJuYWxSZXByZXNlbnRh
dGlvbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGV4dGVybmFsUmVwcmVzZW50YXRpb24obV9tYWlu
RnJhbWUtPmNvcmVGcmFtZSgpLCBSZW5kZXJBc1RleHRCZWhhdmlvck5vcm1hbCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBmM2Y5YjkxYjkxYTc3
ODliMGY5MTkwMjg1ZWNlMDhlMzk1YzE4NTcwLi4xMDMzMDk0MzA3MjFiMDdjY2QwYWU3OTc5YjUy
Nzc4MWU5NGJkNzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKQEAgLTMyOCw2ICszMjgsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgRWRpdG9yU3RhdGUg
ZWRpdG9yU3RhdGUoKSBjb25zdDsKIAorICAgIHZvaWQgc2V0RWRpdGFibGUoYm9vbCk7CisKICAg
ICBTdHJpbmcgcmVuZGVyVHJlZUV4dGVybmFsUmVwcmVzZW50YXRpb24oKSBjb25zdDsKICAgICBT
dHJpbmcgcmVuZGVyVHJlZUV4dGVybmFsUmVwcmVzZW50YXRpb25Gb3JQcmludGluZygpIGNvbnN0
OwogICAgIHVpbnQ2NF90IHJlbmRlclRyZWVTaXplKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDA5
MTFiYTllNzA0MTY1NDM1ZjhmZGM1MmU4YTFiYTE0NTZlZDZiMjIuLjZhZWJhYzhkMTIyN2EyN2Fk
NWJmOWE0NTA0NGRjNDU4MTg2YzRmYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xNDQsNiArMTQ0LDggQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBDbGVhclNlbGVjdGlv
bigpCiAKKyAgICBTZXRFZGl0YWJsZShib29sIGVkaXRhYmxlKQorCiAgICAgIyBDYWxsYmFja3Mu
CiAgICAgR2V0Q29udGVudHNBc1N0cmluZyh1aW50NjRfdCBjYWxsYmFja0lEKQogI2lmIEVOQUJM
RShNSFRNTCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCA4NDAyMzI1MGJmNGE2OWUwZWUwZWE5MTlmZjZjYWU1OTEzOWE5MWE4Li4wOGIxZmE1NDUz
YWExN2JlOWUyOTJiMzZhZjM3ZDBhOWQxNGRmYTgzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTQtMTItMDkgIFRv
bWFzIFBvcGVsYSAgPHRwb3BlbGFAcmVkaGF0LmNvbT4KKworICAgICAgICBbR1RLXSBBZGQgQVBJ
IHRvIHNldCB0aGUgd2ViIHZpZXcgZWRpdGFibGUgaW50byBXZWJLaXQyIEdUSysgQVBJCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0NDMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnN0ZWFkIG9mIGNy
ZWF0aW5nIG5ldyB0ZXN0cyBmb3IgbmV3IGVkaXRhYmxlIEFQSSBqdXN0IHJld29yayB0aGUKKyAg
ICAgICAgY3VycmVudCB0ZXN0cyB0aGF0IGFyZSBleHBlY3RpbmcgdGhlIHdlYiB2aWV3IGVkaXRh
YmxlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJW
aWV3RWRpdG9yLmNwcDoKKyAgICAgICAgKHRlc3RXZWJWaWV3RWRpdG9yQ3V0Q29weVBhc3RlRWRp
dGFibGUpOgorICAgICAgICAodGVzdFdlYlZpZXdFZGl0b3JTZWxlY3RBbGxFZGl0YWJsZSk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5jcHA6Cisg
ICAgICAgIChXZWJWaWV3VGVzdDo6c2V0RWRpdGFibGUpOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuaDoKKwogMjAxNC0xMi0wNyAgR3dhbmcgWW9v
biBId2FuZyAgPHlvb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBVcGRhdGUgc3R5bGUgY2hlY2tl
ciB0byBkZWFsIHdpdGggImNvbnN0IG92ZXJyaWRlIgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJWaWV3RWRpdG9yLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViVmlld0VkaXRvci5jcHAKaW5kZXgg
OWU2OWJmYTQ4ZTFhNjBlODRlZmFkOTQwMDYxZWI3YTM4ZGI1ZmViMi4uMDJmYTdlMDkxOTg0M2I3
YjViMmY3ODc5OTNiYmY4M2I4N2E3ZWFiYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJWaWV3RWRpdG9yLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYlZpZXdFZGl0b3IuY3BwCkBAIC0xMDcs
NyArMTA3LDcgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdFZGl0b3JDdXRDb3B5UGFzdGVOb25F
ZGl0YWJsZShFZGl0b3JUZXN0KiB0ZXN0LCBnY29uc3Rwb2kKIAogc3RhdGljIHZvaWQgdGVzdFdl
YlZpZXdFZGl0b3JDdXRDb3B5UGFzdGVFZGl0YWJsZShFZGl0b3JUZXN0KiB0ZXN0LCBnY29uc3Rw
b2ludGVyKQogewotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzZWxlY3RlZFNwYW5IVE1MID0gIjxo
dG1sPjxib2R5IGNvbnRlbnRFZGl0YWJsZT1cInRydWVcIj4iCisgICAgc3RhdGljIGNvbnN0IGNo
YXIqIHNlbGVjdGVkU3BhbkhUTUwgPSAiPGh0bWw+PGJvZHk+IgogICAgICAgICAiPHNwYW4gaWQ9
XCJtYWluc3BhblwiPkFsbCB3b3JrIGFuZCBubyBwbGF5IDxzcGFuPm1ha2UgSmFjayBhIGR1bGw8
L3NwYW4+IGJveS48L3NwYW4+IgogICAgICAgICAiPHNjcmlwdD5kb2N1bWVudC5nZXRTZWxlY3Rp
b24oKS5jb2xsYXBzZSgpO1xuIgogICAgICAgICAiZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkuc2Vs
ZWN0QWxsQ2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21haW5zcGFuJykpO1xuIgpA
QCAtMTE4LDYgKzExOCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3RWRpdG9yQ3V0Q29weVBh
c3RlRWRpdGFibGUoRWRpdG9yVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlCiAgICAgZ19hc3NlcnQo
IXRlc3QtPmNhbkV4ZWN1dGVFZGl0aW5nQ29tbWFuZChXRUJLSVRfRURJVElOR19DT01NQU5EX0NP
UFkpKTsKICAgICBnX2Fzc2VydCghdGVzdC0+Y2FuRXhlY3V0ZUVkaXRpbmdDb21tYW5kKFdFQktJ
VF9FRElUSU5HX0NPTU1BTkRfUEFTVEUpKTsKIAorICAgIHRlc3QtPnNldEVkaXRhYmxlKHRydWUp
OwogICAgIHRlc3QtPmxvYWRIdG1sKHNlbGVjdGVkU3BhbkhUTUwsIDApOwogICAgIHRlc3QtPndh
aXRVbnRpbExvYWRGaW5pc2hlZCgpOwogCkBAIC0xNjIsNyArMTYzLDcgQEAgc3RhdGljIHZvaWQg
dGVzdFdlYlZpZXdFZGl0b3JTZWxlY3RBbGxOb25FZGl0YWJsZShFZGl0b3JUZXN0KiB0ZXN0LCBn
Y29uc3Rwb2ludGUKIAogc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdFZGl0b3JTZWxlY3RBbGxFZGl0
YWJsZShFZGl0b3JUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogewotICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBzZWxlY3RlZFNwYW5IVE1MID0gIjxodG1sPjxib2R5IGNvbnRlbnRFZGl0YWJsZT1c
InRydWVcIj4iCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHNlbGVjdGVkU3BhbkhUTUwgPSAiPGh0
bWw+PGJvZHk+IgogICAgICAgICAiPHNwYW4gaWQ9XCJtYWluc3BhblwiPkFsbCB3b3JrIGFuZCBu
byBwbGF5IDxzcGFuIGlkPVwic3Vic3BhblwiPm1ha2UgSmFjayBhIGR1bGw8L3NwYW4+IGJveS48
L3NwYW4+IgogICAgICAgICAiPHNjcmlwdD5kb2N1bWVudC5nZXRTZWxlY3Rpb24oKS5jb2xsYXBz
ZSgpO1xuIgogICAgICAgICAiZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRy
ZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1YnNwYW4nKSk7XG4iCkBAIC0xNzAsNiArMTcx
LDcgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdFZGl0b3JTZWxlY3RBbGxFZGl0YWJsZShFZGl0
b3JUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogCiAgICAgZ19hc3NlcnQodGVzdC0+Y2FuRXhl
Y3V0ZUVkaXRpbmdDb21tYW5kKFdFQktJVF9FRElUSU5HX0NPTU1BTkRfU0VMRUNUX0FMTCkpOwog
CisgICAgdGVzdC0+c2V0RWRpdGFibGUodHJ1ZSk7CiAgICAgdGVzdC0+bG9hZEh0bWwoc2VsZWN0
ZWRTcGFuSFRNTCwgMCk7CiAgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rlc3Qu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5jcHAK
aW5kZXggZWE4YjZiM2ZlYjA1MmU4NzY2MDM3ZTYxN2MyMzE2NzNmMGMxYzNhMy4uMGNiZjliZWZl
ZTE4YjYzOTA2NjQ1ZDU0NGM5OTUzOTJmMWVjYmE1ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5jcHAKQEAgLTI2MCw2ICsyNjAsMTEg
QEAgdm9pZCBXZWJWaWV3VGVzdDo6c2VsZWN0QWxsKCkKICAgICB3ZWJraXRfd2ViX3ZpZXdfZXhl
Y3V0ZV9lZGl0aW5nX2NvbW1hbmQobV93ZWJWaWV3LCAiU2VsZWN0QWxsIik7CiB9CiAKK3ZvaWQg
V2ViVmlld1Rlc3Q6OnNldEVkaXRhYmxlKGJvb2wgZWRpdGFibGUpCit7CisgICAgd2Via2l0X3dl
Yl92aWV3X3NldF9lZGl0YWJsZShtX3dlYlZpZXcsIGVkaXRhYmxlKTsKK30KKwogc3RhdGljIHZv
aWQgcmVzb3VyY2VHZXREYXRhQ2FsbGJhY2soR09iamVjdCogb2JqZWN0LCBHQXN5bmNSZXN1bHQq
IHJlc3VsdCwgZ3BvaW50ZXIgdXNlckRhdGEpCiB7CiAgICAgc2l6ZV90IGRhdGFTaXplOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5o
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5oCmluZGV4
IDJjMzY5MmE1NjJlNTc0ODBiOTBiN2ZmZmVmNzU2Mzk4MmRiMjZhM2EuLjk2NTQyNTEzNmYxODhk
M2ZlOGE2N2Q2YzgwNTRlNGM3ZGI1Y2VkNDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmgKQEAgLTUzLDYgKzUzLDggQEAgcHVibGljOgog
ICAgIHZvaWQgc2VsZWN0QWxsKCk7CiAgICAgY29uc3QgY2hhciogbWFpblJlc291cmNlRGF0YShz
aXplX3QmIG1haW5SZXNvdXJjZURhdGFTaXplKTsKIAorICAgIHZvaWQgc2V0RWRpdGFibGUoYm9v
bCk7CisKICAgICB2b2lkIG1vdXNlTW92ZVRvKGludCB4LCBpbnQgeSwgdW5zaWduZWQgbW91c2VN
b2RpZmllcnMgPSAwKTsKICAgICB2b2lkIGNsaWNrTW91c2VCdXR0b24oaW50IHgsIGludCB5LCB1
bnNpZ25lZCBidXR0b24gPSAxLCB1bnNpZ25lZCBtb3VzZU1vZGlmaWVycyA9IDApOwogICAgIHZv
aWQga2V5U3Ryb2tlKHVuc2lnbmVkIGtleVZhbCwgdW5zaWduZWQga2V5TW9kaWZpZXJzID0gMCk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244754</attachid>
            <date>2015-01-16 01:29:05 -0800</date>
            <delta_ts>2015-01-19 01:20:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139443-20150116102910.patch</filename>
            <type>text/plain</type>
            <size>11494</size>
            <attacher name="Tomas Popela">tpopela</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4NTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTY2ZmYxNGU1N2EwMWIy
YWFlMDE1ZjAzOTk2OWNmMzMyNDFkMWYzYy4uNDEwMmY2MDA2ODkzMmRmZWM1ZGIwYWIwYmJiM2Q0
NzUzYjc0NjU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTAxLTE2ICBUb21h
cyBQb3BlbGEgIDx0cG9wZWxhQHJlZGhhdC5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIEFQSSB0
byBzZXQgdGhlIHdlYiB2aWV3IGVkaXRhYmxlIGludG8gV2ViS2l0MiBHVEsrIEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDQzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBhIHdheSB0
byBzZXQgdGhlIHdlYiB2aWV3IGVkaXRhYmxlLCB3aXRob3V0IGFjY2Vzc2luZyB0aGUgRE9NCisg
ICAgICAgIGFuZCBzZXR0aW5nIHRoZSBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIHRvIGVsZW1l
bnRzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHA6Cisg
ICAgICAgICh3ZWJraXRXZWJWaWV3U2V0UHJvcGVydHkpOgorICAgICAgICAod2Via2l0V2ViVmll
d0dldFByb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfZWRpdGFibGUpOgorICAgICAgICAod2Via2l0X3dl
Yl92aWV3X3NldF9lZGl0YWJsZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1z
ZWN0aW9ucy50eHQ6CisKIDIwMTUtMDEtMTUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFw
cGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBjb25uZWN0aW9uIHBhcmFtZXRlciB0byBTdG9yYWdl
TWFuYWdlciB3aWxsT3Blbi9kaWRDbG9zZSBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggMTNiZDMzOGIwODg0
MjljOTFmYzgyNzVlNTQyZmIwMmJhODU4NmE3Mi4uYTQyZGQxMGMyZmViZGVhZDQyYjRlYTliMjc0
NDE0MDRhYmU0YjNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTE0OSw3ICsxNDksOCBAQCBlbnVtIHsKICAgICBQUk9Q
X1VSSSwKICAgICBQUk9QX1pPT01fTEVWRUwsCiAgICAgUFJPUF9JU19MT0FESU5HLAotICAgIFBS
T1BfSVNfUExBWUlOR19BVURJTworICAgIFBST1BfSVNfUExBWUlOR19BVURJTywKKyAgICBQUk9Q
X0VESVRBQkxFCiB9OwogCiB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIEdSZWZQdHI8V2ViS2l0
V2ViUmVzb3VyY2U+ID4gTG9hZGluZ1Jlc291cmNlc01hcDsKQEAgLTY4OCw2ICs2ODksOSBAQCBz
dGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3U2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWlu
dCBwcm9wSWQsIGNvbnN0IEdWYWx1ZQogICAgIGNhc2UgUFJPUF9aT09NX0xFVkVMOgogICAgICAg
ICB3ZWJraXRfd2ViX3ZpZXdfc2V0X3pvb21fbGV2ZWwod2ViVmlldywgZ192YWx1ZV9nZXRfZG91
YmxlKHZhbHVlKSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9FRElUQUJMRToKKyAg
ICAgICAgd2Via2l0X3dlYl92aWV3X3NldF9lZGl0YWJsZSh3ZWJWaWV3LCBnX3ZhbHVlX2dldF9i
b29sZWFuKHZhbHVlKSk7CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdf
T0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BJZCwgcGFyYW1TcGVj
KTsKICAgICB9CkBAIC03MjgsNiArNzMyLDkgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0dl
dFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBHVmFsdWUqIHZhbHUKICAg
ICBjYXNlIFBST1BfSVNfUExBWUlOR19BVURJTzoKICAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVh
bih2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8od2ViVmlldykpOwogICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfRURJVEFCTEU6CisgICAgICAgIGdfdmFsdWVfc2V0
X2Jvb2xlYW4odmFsdWUsIHdlYmtpdF93ZWJfdmlld19nZXRfZWRpdGFibGUod2ViVmlldykpOwor
ICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFM
SURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBhcmFtU3BlYyk7CiAgICAgfQpAQCAtOTU5
LDYgKzk2NiwyNCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJL
aXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9S
RUFEQUJMRSkpOwogCiAgICAgLyoqCisgICAgICogV2ViS2l0V2ViVmlldzplZGl0YWJsZToKKyAg
ICAgKgorICAgICAqIFdoZXRoZXIgdGhlIHBhZ2VzIGxvYWRlZCBpbnNpZGUgI1dlYktpdFdlYlZp
ZXcgYXJlIGVkaXRhYmxlLiBGb3IgbW9yZQorICAgICAqIGluZm9ybWF0aW9uIHNlZSB3ZWJraXRf
d2ViX3ZpZXdfc2V0X2VkaXRhYmxlKCkuCisgICAgICoKKyAgICAgKiBTaW5jZTogMi44CisgICAg
ICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ09iamVj
dENsYXNzLAorICAgICAgICBQUk9QX0VESVRBQkxFLAorICAgICAgICBnX3BhcmFtX3NwZWNfYm9v
bGVhbigKKyAgICAgICAgICAgICJlZGl0YWJsZSIsCisgICAgICAgICAgICBfKCJFZGl0YWJsZSIp
LAorICAgICAgICAgICAgXygiV2hldGhlciB0aGUgY29udGVudCBjYW4gYmUgbW9kaWZpZWQgYnkg
dGhlIHVzZXIuIiksCisgICAgICAgICAgICBGQUxTRSwKKyAgICAgICAgICAgIFdFQktJVF9QQVJB
TV9SRUFEV1JJVEUpKTsKKworICAgIC8qKgogICAgICAqIFdlYktpdFdlYlZpZXc6OmxvYWQtY2hh
bmdlZDoKICAgICAgKiBAd2ViX3ZpZXc6IHRoZSAjV2ViS2l0V2ViVmlldyBvbiB3aGljaCB0aGUg
c2lnbmFsIGlzIGVtaXR0ZWQKICAgICAgKiBAbG9hZF9ldmVudDogdGhlICNXZWJLaXRMb2FkRXZl
bnQKQEAgLTM1MDQsMyArMzUyOSw1NSBAQCB2b2lkIHdlYmtpdFdlYlZpZXdXZWJQcm9jZXNzQ3Jh
c2hlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgIGdfc2lnbmFsX2VtaXQod2ViVmlldywg
c2lnbmFsc1tXRUJfUFJPQ0VTU19DUkFTSEVEXSwgMCwgJnJldHVyblZhbHVlKTsKIH0KIAorLyoq
CisgKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2VkaXRhYmxlOgorICogQHdlYl92aWV3OiBhICNXZWJL
aXRXZWJWaWV3CisgKgorICogUmV0dXJucyB3aGV0aGVyIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8g
ZWRpdCB0aGUgZG9jdW1lbnQuCisgKgorICogUmV0dXJucyAlVFJVRSBpZiBAd2ViX3ZpZXcgYWxs
b3dzIHRoZSB1c2VyIHRvIGVkaXQgdGhlIEhUTUwgZG9jdW1lbnQsICVGQUxTRSBpZgorICogaXQg
ZG9lc24ndC4gWW91IGNhbiBjaGFuZ2UgQHdlYl92aWV3J3MgZG9jdW1lbnQgdGhyb3VnaCAjV2Vi
S2l0V2ViSW5zcGVjdG9yIG9yCisgKiAjV2ViS2l0V2ViRXh0ZW5zaW9uIHJlZ2FyZGxlc3MgdGhp
cyBzZXR0aW5nLiBCeSBkZWZhdWx0IGEgI1dlYktpdFdlYlZpZXcgaXMgbm90IGVkaXRhYmxlLgor
ICoKKyAqIFJldHVybnM6IGEgI2dib29sZWFuIGluZGljYXRpbmcgdGhlIGVkaXRhYmxlIHN0YXRl
CisgKgorICogU2luY2U6IDIuOAorICovCitnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2Vk
aXRhYmxlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBGQUxTRSk7CisKKyAgICByZXR1cm4gZ2V0
UGFnZSh3ZWJWaWV3KS0+aXNFZGl0YWJsZSgpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfdmll
d19zZXRfZWRpdGFibGU6CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqIEBlZGl0
YWJsZTogYSAjZ2Jvb2xlYW4gaW5kaWNhdGluZyB0aGUgZWRpdGFibGUgc3RhdGUKKyAqCisgKiBT
ZXRzIHdoZXRoZXIgQHdlYl92aWV3IGFsbG93cyB0aGUgdXNlciB0byBlZGl0IGl0cyBIVE1MIGRv
Y3VtZW50LgorICoKKyAqIElmIEBlZGl0YWJsZSBpcyAlVFJVRSwgQHdlYl92aWV3IGFsbG93cyB0
aGUgdXNlciB0byBlZGl0IHRoZSBkb2N1bWVudC4gSWYKKyAqIEBlZGl0YWJsZSBpcyAlRkFMU0Us
IGFuIGVsZW1lbnQgaW4gQHdlYl92aWV3J3MgZG9jdW1lbnQgY2FuIG9ubHkgYmUgZWRpdGVkIGlm
IHRoZQorICogQ09OVEVOVEVESVRBQkxFIGF0dHJpYnV0ZSBoYXMgYmVlbiBzZXQgb24gdGhlIGVs
ZW1lbnQgb3Igb25lIG9mIGl0cyBwYXJlbnQKKyAqIGVsZW1lbnRzLiBZb3UgY2FuIGNoYW5nZSBA
d2ViX3ZpZXcncyBkb2N1bWVudCB0aHJvdWdoICNXZWJLaXRXZWJJbnNwZWN0b3Igb3IKKyAqICNX
ZWJLaXRXZWJFeHRlbnNpb24gcmVnYXJkbGVzcyB0aGlzIHNldHRpbmcuIEJ5IGRlZmF1bHQgYSAj
V2ViS2l0V2ViVmlldyBpcyBub3QgZWRpdGFibGUuCisKKyAqIE5vcm1hbGx5LCBhbiBIVE1MIGRv
Y3VtZW50IGlzIG5vdCBlZGl0YWJsZSB1bmxlc3MgdGhlIGVsZW1lbnRzIHdpdGhpbiB0aGUKKyAq
IGRvY3VtZW50IGFyZSBlZGl0YWJsZS4gVGhpcyBmdW5jdGlvbiBwcm92aWRlcyBhIHdheSB0byBt
YWtlIHRoZSBjb250ZW50cworICogb2YgYSAjV2ViS2l0V2ViVmlldyBlZGl0YWJsZSB3aXRob3V0
IGFsdGVyaW5nIHRoZSBkb2N1bWVudCBvciBET00gc3RydWN0dXJlLgorICoKKyAqIFNpbmNlOiAy
LjgKKyAqLwordm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2VkaXRhYmxlKFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcsIGdib29sZWFuIGVkaXRhYmxlKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VC
S0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKKworICAgIGlmIChlZGl0YWJsZSA9PSBnZXRQYWdl
KHdlYlZpZXcpLT5pc0VkaXRhYmxlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGdldFBhZ2Uo
d2ViVmlldyktPnNldEVkaXRhYmxlKGVkaXRhYmxlKTsKKworICAgIGdfb2JqZWN0X25vdGlmeShH
X09CSkVDVCh3ZWJWaWV3KSwgImVkaXRhYmxlIik7Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAppbmRleCBkYTNmMTY1ZmRiNmYwMzQ3
NjAxNThmN2I3Njg3ZjUwYTUwM2M0ZjgwLi5jY2QyM2E5YmJiZTI3NTA0Zjc1ODhmN2Q5ZDliMjk5
NjY3YmFlMjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlldy5oCkBAIC00NzQsNiArNDc0LDEzIEBAIHdlYmtpdF93ZWJfdmlld19nZXRfc25h
cHNob3RfZmluaXNoICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcKIFdFQktJVF9BUEkg
V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyICoKIHdlYmtpdF93ZWJfdmlld19nZXRfdXNlcl9jb250
ZW50X21hbmFnZXIgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92
aWV3KTsKIAorV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3dlYl92aWV3X2dldF9lZGl0YWJs
ZSAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2Vi
X3ZpZXcpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19zZXRfZWRpdGFibGUg
ICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92
aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICAgICBlZGl0YWJsZSk7CisKIEdfRU5EX0RFQ0xTCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9j
cy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKaW5kZXggZjM2NmQwYTAyODE0MzY5NTll
Y2Y2OGRiMThkMDIzYjY2OTc4YjJhNy4uNWE5MjZlMjE2N2NmYjdhNTZkYTExM2Q1MDEwMmUxYTg2
YmQ4YjU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9j
cy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CkBAIC0xOTksNiArMTk5LDggQEAg
d2Via2l0X3dlYl92aWV3X2Rvd25sb2FkX3VyaQogd2Via2l0X3dlYl92aWV3X2dldF90bHNfaW5m
bwogd2Via2l0X3dlYl92aWV3X2dldF9zbmFwc2hvdAogd2Via2l0X3dlYl92aWV3X2dldF9zbmFw
c2hvdF9maW5pc2gKK3dlYmtpdF93ZWJfdmlld19zZXRfZWRpdGFibGUKK3dlYmtpdF93ZWJfdmll
d19nZXRfZWRpdGFibGUKIAogPFNVQlNFQ1RJT04gV2ViS2l0SmF2YXNjcmlwdFJlc3VsdD4KIFdl
YktpdEphdmFzY3JpcHRSZXN1bHQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCBjOTIzMWZkY2ExNDM3ZjRjMzdlMWY0ZGMxMWQ2Mjg1ZjZkMDkxY2Vi
Li5lOTAwMTUwOThlNWU4ZWFiNGQ5OGJhMzc5ZTVmMGI2MDJlMzA4YmU2IDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTUtMDEtMTYgIFRvbWFzIFBvcGVsYSAgPHRwb3BlbGFAcmVkaGF0LmNvbT4KKworICAgICAgICBb
R1RLXSBBZGQgQVBJIHRvIHNldCB0aGUgd2ViIHZpZXcgZWRpdGFibGUgaW50byBXZWJLaXQyIEdU
SysgQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mzk0NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bnN0ZWFkIG9mIGNyZWF0aW5nIG5ldyB0ZXN0cyBmb3IgbmV3IGVkaXRhYmxlIEFQSSBqdXN0IHJl
d29yayB0aGUKKyAgICAgICAgY3VycmVudCB0ZXN0cyB0aGF0IGFyZSBleHBlY3RpbmcgdGhlIHdl
YiB2aWV3IGlzIGVkaXRhYmxlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyR3RrL1Rlc3RXZWJWaWV3RWRpdG9yLmNwcDoKKyAgICAgICAgKHRlc3RXZWJWaWV3RWRpdG9y
Q3V0Q29weVBhc3RlRWRpdGFibGUpOgorICAgICAgICAodGVzdFdlYlZpZXdFZGl0b3JTZWxlY3RB
bGxFZGl0YWJsZSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJW
aWV3VGVzdC5jcHA6CisgICAgICAgIChXZWJWaWV3VGVzdDo6c2V0RWRpdGFibGUpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuaDoKKwogMjAxNS0w
MS0xNSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10g
UkVHUkVTU0lPTiAocjE3NDY0Mik6IER1bXBSZW5kZXJUcmVlLmFwcCB0ZXN0IG1heSBkdW1wIHJl
c3VsdCB0d2ljZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
R3RrL1Rlc3RXZWJWaWV3RWRpdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mkd0ay9UZXN0V2ViVmlld0VkaXRvci5jcHAKaW5kZXggOWU2OWJmYTQ4ZTFhNjBlODRlZmFk
OTQwMDYxZWI3YTM4ZGI1ZmViMi4uMDJmYTdlMDkxOTg0M2I3YjViMmY3ODc5OTNiYmY4M2I4N2E3
ZWFiYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rl
c3RXZWJWaWV3RWRpdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJHdGsvVGVzdFdlYlZpZXdFZGl0b3IuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgc3RhdGljIHZv
aWQgdGVzdFdlYlZpZXdFZGl0b3JDdXRDb3B5UGFzdGVOb25FZGl0YWJsZShFZGl0b3JUZXN0KiB0
ZXN0LCBnY29uc3Rwb2kKIAogc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdFZGl0b3JDdXRDb3B5UGFz
dGVFZGl0YWJsZShFZGl0b3JUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogewotICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBzZWxlY3RlZFNwYW5IVE1MID0gIjxodG1sPjxib2R5IGNvbnRlbnRFZGl0
YWJsZT1cInRydWVcIj4iCisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHNlbGVjdGVkU3BhbkhUTUwg
PSAiPGh0bWw+PGJvZHk+IgogICAgICAgICAiPHNwYW4gaWQ9XCJtYWluc3BhblwiPkFsbCB3b3Jr
IGFuZCBubyBwbGF5IDxzcGFuPm1ha2UgSmFjayBhIGR1bGw8L3NwYW4+IGJveS48L3NwYW4+Igog
ICAgICAgICAiPHNjcmlwdD5kb2N1bWVudC5nZXRTZWxlY3Rpb24oKS5jb2xsYXBzZSgpO1xuIgog
ICAgICAgICAiZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ21haW5zcGFuJykpO1xuIgpAQCAtMTE4LDYgKzExOCw3IEBAIHN0
YXRpYyB2b2lkIHRlc3RXZWJWaWV3RWRpdG9yQ3V0Q29weVBhc3RlRWRpdGFibGUoRWRpdG9yVGVz
dCogdGVzdCwgZ2NvbnN0cG9pbnRlCiAgICAgZ19hc3NlcnQoIXRlc3QtPmNhbkV4ZWN1dGVFZGl0
aW5nQ29tbWFuZChXRUJLSVRfRURJVElOR19DT01NQU5EX0NPUFkpKTsKICAgICBnX2Fzc2VydCgh
dGVzdC0+Y2FuRXhlY3V0ZUVkaXRpbmdDb21tYW5kKFdFQktJVF9FRElUSU5HX0NPTU1BTkRfUEFT
VEUpKTsKIAorICAgIHRlc3QtPnNldEVkaXRhYmxlKHRydWUpOwogICAgIHRlc3QtPmxvYWRIdG1s
KHNlbGVjdGVkU3BhbkhUTUwsIDApOwogICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgp
OwogCkBAIC0xNjIsNyArMTYzLDcgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdFZGl0b3JTZWxl
Y3RBbGxOb25FZGl0YWJsZShFZGl0b3JUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGUKIAogc3RhdGlj
IHZvaWQgdGVzdFdlYlZpZXdFZGl0b3JTZWxlY3RBbGxFZGl0YWJsZShFZGl0b3JUZXN0KiB0ZXN0
LCBnY29uc3Rwb2ludGVyKQogewotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzZWxlY3RlZFNwYW5I
VE1MID0gIjxodG1sPjxib2R5IGNvbnRlbnRFZGl0YWJsZT1cInRydWVcIj4iCisgICAgc3RhdGlj
IGNvbnN0IGNoYXIqIHNlbGVjdGVkU3BhbkhUTUwgPSAiPGh0bWw+PGJvZHk+IgogICAgICAgICAi
PHNwYW4gaWQ9XCJtYWluc3BhblwiPkFsbCB3b3JrIGFuZCBubyBwbGF5IDxzcGFuIGlkPVwic3Vi
c3BhblwiPm1ha2UgSmFjayBhIGR1bGw8L3NwYW4+IGJveS48L3NwYW4+IgogICAgICAgICAiPHNj
cmlwdD5kb2N1bWVudC5nZXRTZWxlY3Rpb24oKS5jb2xsYXBzZSgpO1xuIgogICAgICAgICAiZG9j
dW1lbnQuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3N1YnNwYW4nKSk7XG4iCkBAIC0xNzAsNiArMTcxLDcgQEAgc3RhdGljIHZvaWQgdGVz
dFdlYlZpZXdFZGl0b3JTZWxlY3RBbGxFZGl0YWJsZShFZGl0b3JUZXN0KiB0ZXN0LCBnY29uc3Rw
b2ludGVyKQogCiAgICAgZ19hc3NlcnQodGVzdC0+Y2FuRXhlY3V0ZUVkaXRpbmdDb21tYW5kKFdF
QktJVF9FRElUSU5HX0NPTU1BTkRfU0VMRUNUX0FMTCkpOwogCisgICAgdGVzdC0+c2V0RWRpdGFi
bGUodHJ1ZSk7CiAgICAgdGVzdC0+bG9hZEh0bWwoc2VsZWN0ZWRTcGFuSFRNTCwgMCk7CiAgICAg
dGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5jcHAKaW5kZXggZWE4YjZiM2ZlYjA1MmU4
NzY2MDM3ZTYxN2MyMzE2NzNmMGMxYzNhMy4uMGNiZjliZWZlZTE4YjYzOTA2NjQ1ZDU0NGM5OTUz
OTJmMWVjYmE1ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0
ay9XZWJWaWV3VGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0
ay9XZWJWaWV3VGVzdC5jcHAKQEAgLTI2MCw2ICsyNjAsMTEgQEAgdm9pZCBXZWJWaWV3VGVzdDo6
c2VsZWN0QWxsKCkKICAgICB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmQo
bV93ZWJWaWV3LCAiU2VsZWN0QWxsIik7CiB9CiAKK3ZvaWQgV2ViVmlld1Rlc3Q6OnNldEVkaXRh
YmxlKGJvb2wgZWRpdGFibGUpCit7CisgICAgd2Via2l0X3dlYl92aWV3X3NldF9lZGl0YWJsZSht
X3dlYlZpZXcsIGVkaXRhYmxlKTsKK30KKwogc3RhdGljIHZvaWQgcmVzb3VyY2VHZXREYXRhQ2Fs
bGJhY2soR09iamVjdCogb2JqZWN0LCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgZ3BvaW50ZXIgdXNl
ckRhdGEpCiB7CiAgICAgc2l6ZV90IGRhdGFTaXplOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5oIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5oCmluZGV4IDJjMzY5MmE1NjJlNTc0ODBiOTBi
N2ZmZmVmNzU2Mzk4MmRiMjZhM2EuLjk2NTQyNTEzNmYxODhkM2ZlOGE2N2Q2YzgwNTRlNGM3ZGI1
Y2VkNDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2Vi
Vmlld1Rlc3QuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZp
ZXdUZXN0LmgKQEAgLTUzLDYgKzUzLDggQEAgcHVibGljOgogICAgIHZvaWQgc2VsZWN0QWxsKCk7
CiAgICAgY29uc3QgY2hhciogbWFpblJlc291cmNlRGF0YShzaXplX3QmIG1haW5SZXNvdXJjZURh
dGFTaXplKTsKIAorICAgIHZvaWQgc2V0RWRpdGFibGUoYm9vbCk7CisKICAgICB2b2lkIG1vdXNl
TW92ZVRvKGludCB4LCBpbnQgeSwgdW5zaWduZWQgbW91c2VNb2RpZmllcnMgPSAwKTsKICAgICB2
b2lkIGNsaWNrTW91c2VCdXR0b24oaW50IHgsIGludCB5LCB1bnNpZ25lZCBidXR0b24gPSAxLCB1
bnNpZ25lZCBtb3VzZU1vZGlmaWVycyA9IDApOwogICAgIHZvaWQga2V5U3Ryb2tlKHVuc2lnbmVk
IGtleVZhbCwgdW5zaWduZWQga2V5TW9kaWZpZXJzID0gMCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244882</attachid>
            <date>2015-01-19 01:20:50 -0800</date>
            <delta_ts>2015-01-20 00:18:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139443-20150119102056.patch</filename>
            <type>text/plain</type>
            <size>16025</size>
            <attacher name="Tomas Popela">tpopela</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4NjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOThhYjlkZjYxYTI3YTFi
YmZjYjY4YjA2ZDI3ZmE4ZjI3MTc4YjVmYy4uMDdhYTRmNzBhNzZiMDRkNTNjYmNiYzJiZWIxYWRh
YjhmNDYzZmZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTAxLTE5ICBUb21h
cyBQb3BlbGEgIDx0cG9wZWxhQHJlZGhhdC5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIEFQSSB0
byBzZXQgdGhlIHdlYiB2aWV3IGVkaXRhYmxlIGludG8gV2ViS2l0MiBHVEsrIEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDQzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBhIHdheSB0
byBzZXQgdGhlIHdlYiB2aWV3IGVkaXRhYmxlLCB3aXRob3V0IGFjY2Vzc2luZyB0aGUgRE9NCisg
ICAgICAgIGFuZCBzZXR0aW5nIHRoZSBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIHRvIGVsZW1l
bnRzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHA6Cisg
ICAgICAgICh3ZWJraXRXZWJWaWV3U2V0UHJvcGVydHkpOgorICAgICAgICAod2Via2l0V2ViVmll
d0dldFByb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19pc19lZGl0YWJsZSk6CisgICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfc2V0X2VkaXRhYmxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNl
Y3Rpb25zLnR4dDoKKwogMjAxNS0wMS0xOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5j
b20+CiAKICAgICAgICAgQXR0ZW1wdCB0byBmaXggdGhlIGlPUyBidWlsZCBhZnRlciA8aHR0cDov
L3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTc4NjMxPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCAxM2JkMzM4YjA4ODQy
OWM5MWZjODI3NWU1NDJmYjAyYmE4NTg2YTcyLi5iNWI4OTMwMDliNWVlN2E0ZTQ5ODgwODY5MGM4
OGI2ZDE2ZTA5NjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMTQ5LDcgKzE0OSw4IEBAIGVudW0gewogICAgIFBST1Bf
VVJJLAogICAgIFBST1BfWk9PTV9MRVZFTCwKICAgICBQUk9QX0lTX0xPQURJTkcsCi0gICAgUFJP
UF9JU19QTEFZSU5HX0FVRElPCisgICAgUFJPUF9JU19QTEFZSU5HX0FVRElPLAorICAgIFBST1Bf
RURJVEFCTEUKIH07CiAKIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgR1JlZlB0cjxXZWJLaXRX
ZWJSZXNvdXJjZT4gPiBMb2FkaW5nUmVzb3VyY2VzTWFwOwpAQCAtNjg4LDYgKzY4OSw5IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdTZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50
IHByb3BJZCwgY29uc3QgR1ZhbHVlCiAgICAgY2FzZSBQUk9QX1pPT01fTEVWRUw6CiAgICAgICAg
IHdlYmtpdF93ZWJfdmlld19zZXRfem9vbV9sZXZlbCh3ZWJWaWV3LCBnX3ZhbHVlX2dldF9kb3Vi
bGUodmFsdWUpKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0VESVRBQkxFOgorICAg
ICAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0X2VkaXRhYmxlKHdlYlZpZXcsIGdfdmFsdWVfZ2V0X2Jv
b2xlYW4odmFsdWUpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19P
QkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElkLCBwYXJhbVNwZWMp
OwogICAgIH0KQEAgLTcyOCw2ICs3MzIsOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3R2V0
UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIEdWYWx1ZSogdmFsdQogICAg
IGNhc2UgUFJPUF9JU19QTEFZSU5HX0FVRElPOgogICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFu
KHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfaXNfcGxheWluZ19hdWRpbyh3ZWJWaWV3KSk7CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9FRElUQUJMRToKKyAgICAgICAgZ192YWx1ZV9zZXRf
Ym9vbGVhbih2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2lzX2VkaXRhYmxlKHdlYlZpZXcpKTsKKyAg
ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElE
X1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElkLCBwYXJhbVNwZWMpOwogICAgIH0KQEAgLTk1OSw2
ICs5NjYsMjQgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoV2ViS2l0
V2ViVmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVB
REFCTEUpKTsKIAogICAgIC8qKgorICAgICAqIFdlYktpdFdlYlZpZXc6ZWRpdGFibGU6CisgICAg
ICoKKyAgICAgKiBXaGV0aGVyIHRoZSBwYWdlcyBsb2FkZWQgaW5zaWRlICNXZWJLaXRXZWJWaWV3
IGFyZSBlZGl0YWJsZS4gRm9yIG1vcmUKKyAgICAgKiBpbmZvcm1hdGlvbiBzZWUgd2Via2l0X3dl
Yl92aWV3X3NldF9lZGl0YWJsZSgpLgorICAgICAqCisgICAgICogU2luY2U6IDIuOAorICAgICAq
LworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdPYmplY3RD
bGFzcywKKyAgICAgICAgUFJPUF9FRElUQUJMRSwKKyAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xl
YW4oCisgICAgICAgICAgICAiZWRpdGFibGUiLAorICAgICAgICAgICAgXygiRWRpdGFibGUiKSwK
KyAgICAgICAgICAgIF8oIldoZXRoZXIgdGhlIGNvbnRlbnQgY2FuIGJlIG1vZGlmaWVkIGJ5IHRo
ZSB1c2VyLiIpLAorICAgICAgICAgICAgRkFMU0UsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1f
UkVBRFdSSVRFKSk7CisKKyAgICAvKioKICAgICAgKiBXZWJLaXRXZWJWaWV3Ojpsb2FkLWNoYW5n
ZWQ6CiAgICAgICogQHdlYl92aWV3OiB0aGUgI1dlYktpdFdlYlZpZXcgb24gd2hpY2ggdGhlIHNp
Z25hbCBpcyBlbWl0dGVkCiAgICAgICogQGxvYWRfZXZlbnQ6IHRoZSAjV2ViS2l0TG9hZEV2ZW50
CkBAIC0zNTA0LDMgKzM1MjksNTQgQEAgdm9pZCB3ZWJraXRXZWJWaWV3V2ViUHJvY2Vzc0NyYXNo
ZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICBnX3NpZ25hbF9lbWl0KHdlYlZpZXcsIHNp
Z25hbHNbV0VCX1BST0NFU1NfQ1JBU0hFRF0sIDAsICZyZXR1cm5WYWx1ZSk7CiB9CiAKKy8qKgor
ICogd2Via2l0X3dlYl92aWV3X2lzX2VkaXRhYmxlOgorICogQHdlYl92aWV3OiBhICNXZWJLaXRX
ZWJWaWV3CisgKgorICogUmV0dXJucyB3aGV0aGVyIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZWRp
dCB0aGUgZG9jdW1lbnQuCisgKgorICogUmV0dXJucyAlVFJVRSBpZiBAd2ViX3ZpZXcgYWxsb3dz
IHRoZSB1c2VyIHRvIGVkaXQgdGhlIEhUTUwgZG9jdW1lbnQsICVGQUxTRSBpZgorICogaXQgZG9l
c24ndC4gSWYgJVRSVUUsIEB3ZWJfdmlldyBhbGxvd3MgdGhlIHVzZXIgdG8gZWRpdCB0aGUgZG9j
dW1lbnQuIElmICVGQUxTRSwKKyAqIGFuIGVsZW1lbnQgaW4gQHdlYl92aWV3J3MgZG9jdW1lbnQg
Y2FuIG9ubHkgYmUgZWRpdGVkIGlmIHRoZSBDT05URU5URURJVEFCTEUKKyAqIGF0dHJpYnV0ZSBo
YXMgYmVlbiBzZXQgb24gdGhlIGVsZW1lbnQgb3Igb25lIG9mIGl0cyBwYXJlbnQgZWxlbWVudHMu
IEJ5IGRlZmF1bHQKKyAqIGEgI1dlYktpdFdlYlZpZXcgaXMgbm90IGVkaXRhYmxlLgorICoKKyAq
IFNpbmNlOiAyLjgKKyAqLworZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2lzX2VkaXRhYmxlKFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lU
X0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBGQUxTRSk7CisKKyAgICByZXR1cm4gZ2V0UGFnZSh3ZWJW
aWV3KS0+aXNFZGl0YWJsZSgpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfdmlld19zZXRfZWRp
dGFibGU6CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqIEBlZGl0YWJsZTogYSAj
Z2Jvb2xlYW4gaW5kaWNhdGluZyB0aGUgZWRpdGFibGUgc3RhdGUKKyAqCisgKiBTZXRzIHdoZXRo
ZXIgQHdlYl92aWV3IGFsbG93cyB0aGUgdXNlciB0byBlZGl0IGl0cyBIVE1MIGRvY3VtZW50Lgor
ICoKKyAqIElmIEBlZGl0YWJsZSBpcyAlVFJVRSwgQHdlYl92aWV3IGFsbG93cyB0aGUgdXNlciB0
byBlZGl0IHRoZSBkb2N1bWVudC4gSWYKKyAqIEBlZGl0YWJsZSBpcyAlRkFMU0UsIGFuIGVsZW1l
bnQgaW4gQHdlYl92aWV3J3MgZG9jdW1lbnQgY2FuIG9ubHkgYmUgZWRpdGVkIGlmIHRoZQorICog
Q09OVEVOVEVESVRBQkxFIGF0dHJpYnV0ZSBoYXMgYmVlbiBzZXQgb24gdGhlIGVsZW1lbnQgb3Ig
b25lIG9mIGl0cyBwYXJlbnQKKyAqIGVsZW1lbnRzLiBCeSBkZWZhdWx0IGEgI1dlYktpdFdlYlZp
ZXcgaXMgbm90IGVkaXRhYmxlLgorCisgKiBOb3JtYWxseSwgYW4gSFRNTCBkb2N1bWVudCBpcyBu
b3QgZWRpdGFibGUgdW5sZXNzIHRoZSBlbGVtZW50cyB3aXRoaW4gdGhlCisgKiBkb2N1bWVudCBh
cmUgZWRpdGFibGUuIFRoaXMgZnVuY3Rpb24gcHJvdmlkZXMgYSB3YXkgdG8gbWFrZSB0aGUgY29u
dGVudHMKKyAqIG9mIGEgI1dlYktpdFdlYlZpZXcgZWRpdGFibGUgd2l0aG91dCBhbHRlcmluZyB0
aGUgZG9jdW1lbnQgb3IgRE9NIHN0cnVjdHVyZS4KKyAqCisgKiBTaW5jZTogMi44CisgKi8KK3Zv
aWQgd2Via2l0X3dlYl92aWV3X3NldF9lZGl0YWJsZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBn
Ym9vbGVhbiBlZGl0YWJsZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJf
VklFVyh3ZWJWaWV3KSk7CisKKyAgICBpZiAoZWRpdGFibGUgPT0gZ2V0UGFnZSh3ZWJWaWV3KS0+
aXNFZGl0YWJsZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBnZXRQYWdlKHdlYlZpZXcpLT5z
ZXRFZGl0YWJsZShlZGl0YWJsZSk7CisKKyAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2Vi
VmlldyksICJlZGl0YWJsZSIpOworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKaW5kZXggZGEzZjE2NWZkYjZmMDM0NzYwMTU4ZjdiNzY4
N2Y1MGE1MDNjNGY4MC4uNjk2NWQ3MDY3ZDcyMDcxMzM4M2M4OTY1MTllZWRmZGIyODVjZmRhNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmll
dy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcu
aApAQCAtNDc0LDYgKzQ3NCwxMyBAQCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NuYXBzaG90X2Zpbmlz
aCAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3CiBXRUJLSVRfQVBJIFdlYktpdFVzZXJD
b250ZW50TWFuYWdlciAqCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3VzZXJfY29udGVudF9tYW5hZ2Vy
ICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CiAKK1dF
QktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJfdmlld19pc19lZGl0YWJsZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKKwor
V0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfc2V0X2VkaXRhYmxlICAgICAgICAgICAg
ICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFu
ICAgICAgICAgICAgICAgICAgZWRpdGFibGUpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0
ay1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dl
YmtpdDJndGstc2VjdGlvbnMudHh0CmluZGV4IGYzNjZkMGEwMjgxNDM2OTU5ZWNmNjhkYjE4ZDAy
M2I2Njk3OGIyYTcuLjRhOWRkY2EyMTY0ZTJlMDQzNTZhN2VhYTVmMWJhMmU5M2Y5YzAxZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0
ay1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9j
cy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dApAQCAtMTk5LDYgKzE5OSw4IEBAIHdlYmtpdF93ZWJf
dmlld19kb3dubG9hZF91cmkKIHdlYmtpdF93ZWJfdmlld19nZXRfdGxzX2luZm8KIHdlYmtpdF93
ZWJfdmlld19nZXRfc25hcHNob3QKIHdlYmtpdF93ZWJfdmlld19nZXRfc25hcHNob3RfZmluaXNo
Cit3ZWJraXRfd2ViX3ZpZXdfc2V0X2VkaXRhYmxlCit3ZWJraXRfd2ViX3ZpZXdfaXNfZWRpdGFi
bGUKIAogPFNVQlNFQ1RJT04gV2ViS2l0SmF2YXNjcmlwdFJlc3VsdD4KIFdlYktpdEphdmFzY3Jp
cHRSZXN1bHQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCAyZjIyNjYyNzM3MThmMTM3YTY3NmFhNmNmNzdhMjI2NDE5NzgwNzdhLi40NmIyYmFlZWI4
MTRkOTQ5YmI2N2E1MjJmNDliNTQ0NDE2MGFmOGE5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTUtMDEtMTkgIFRv
bWFzIFBvcGVsYSAgPHRwb3BlbGFAcmVkaGF0LmNvbT4KKworICAgICAgICBbR1RLXSBBZGQgQVBJ
IHRvIHNldCB0aGUgd2ViIHZpZXcgZWRpdGFibGUgaW50byBXZWJLaXQyIEdUSysgQVBJCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0NDMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGUgdGhlIG5l
dyB0ZXN0IGNhc2VzIGZvciBzZXR0aW5nIHRoZSBlZGl0YWJsZSBwcm9wZXJ0eSBvbiB0aGUgd2Vi
CisgICAgICAgIHZpZXcgYW5kIG9uIHRoZSBjb250ZW50ZWRpdGFibGUgZW5hYmxlZCBkb2N1bWVu
dC4gQWxzbyByZXdvcmsgdGhlCisgICAgICAgIGN1cnJlbnQgdGVzdHMgdGhhdCBhcmUgZXhwZWN0
aW5nIHRoYXQgdGhlIHdlYiB2aWV3IGlzIGVkaXRhYmxlLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJWaWV3RWRpdG9yLmNwcDoKKyAgICAgICAgKHRl
c3RXZWJWaWV3RWRpdG9yQ3V0Q29weVBhc3RlRWRpdGFibGUpOgorICAgICAgICAodGVzdFdlYlZp
ZXdFZGl0b3JTZWxlY3RBbGxFZGl0YWJsZSk6CisgICAgICAgICh0ZXN0V2ViVmlld0VkaXRvckVk
aXRhYmxlTm9uRWRpdGFibGUpOgorICAgICAgICAodGVzdFdlYlZpZXdFZGl0b3JFZGl0YWJsZUNv
bnRlbnRFZGl0YWJsZSk6CisgICAgICAgIChiZWZvcmVBbGwpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuY3BwOgorICAgICAgICAoV2ViVmlld1Rl
c3Q6OmlzRWRpdGFibGUpOgorICAgICAgICAoV2ViVmlld1Rlc3Q6OnNldEVkaXRhYmxlKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0Lmg6CisKIDIw
MTUtMDEtMTggIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBp
T1MgRVdTIHF1ZXVlIG5hbWUgc2hvdWxkIGJlIGNvbnNpc3RlbnQKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViVmlld0VkaXRvci5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYlZpZXdFZGl0b3IuY3Bw
CmluZGV4IDllNjliZmE0OGUxYTYwZTg0ZWZhZDk0MDA2MWViN2EzOGRiNWZlYjIuLmYzY2NjMDIx
ZjFmNzMxODFhNjUzODNhZjA0MmQ0Y2EyNTdmMTU2NDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViVmlld0VkaXRvci5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJWaWV3RWRpdG9yLmNwcApA
QCAtNzMsNiArNzMsMTYgQEAgcHVibGljOgogICAgICAgICBnX21haW5fbG9vcF9ydW4obV9tYWlu
TG9vcCk7CiAgICAgfQogCisgICAgdm9pZCBjdXRDbGlwYm9hcmQoKQorICAgIHsKKyAgICAgICAg
d2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRpdGluZ19jb21tYW5kKG1fd2ViVmlldywgV0VCS0lU
X0VESVRJTkdfQ09NTUFORF9DVVQpOworICAgICAgICAvLyBUaGVyZSdzIG5vIHdheSB0byBrbm93
IHdoZW4gdGhlIHNlbGVjdGlvbiBoYXMgYmVlbiBjdXQgdG8KKyAgICAgICAgLy8gdGhlIGNsaXBi
b2FyZCwgc28gdXNlIGEgdGltZW91dCBzb3VyY2UgdG8gcXVlcnkgdGhlIGNsaXBib2FyZC4KKyAg
ICAgICAgbV90cmllc0NvdW50ID0gMDsKKyAgICAgICAgZ190aW1lb3V0X2FkZChrQ2xpcGJvYXJk
V2FpdFRpbWVvdXQsIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KHdhaXRGb3JDbGlwYm9h
cmRUZXh0KSwgdGhpcyk7CisgICAgICAgIGdfbWFpbl9sb29wX3J1bihtX21haW5Mb29wKTsKKyAg
ICB9CisKICAgICBHdGtDbGlwYm9hcmQqIG1fY2xpcGJvYXJkOwogICAgIGJvb2wgbV9jYW5FeGVj
dXRlRWRpdGluZ0NvbW1hbmQ7CiAgICAgc2l6ZV90IG1fdHJpZXNDb3VudDsKQEAgLTEwNyw3ICsx
MTcsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0VkaXRvckN1dENvcHlQYXN0ZU5vbkVkaXRh
YmxlKEVkaXRvclRlc3QqIHRlc3QsIGdjb25zdHBvaQogCiBzdGF0aWMgdm9pZCB0ZXN0V2ViVmll
d0VkaXRvckN1dENvcHlQYXN0ZUVkaXRhYmxlKEVkaXRvclRlc3QqIHRlc3QsIGdjb25zdHBvaW50
ZXIpCiB7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHNlbGVjdGVkU3BhbkhUTUwgPSAiPGh0bWw+
PGJvZHkgY29udGVudEVkaXRhYmxlPVwidHJ1ZVwiPiIKKyAgICBzdGF0aWMgY29uc3QgY2hhciog
c2VsZWN0ZWRTcGFuSFRNTCA9ICI8aHRtbD48Ym9keT4iCiAgICAgICAgICI8c3BhbiBpZD1cIm1h
aW5zcGFuXCI+QWxsIHdvcmsgYW5kIG5vIHBsYXkgPHNwYW4+bWFrZSBKYWNrIGEgZHVsbDwvc3Bh
bj4gYm95Ljwvc3Bhbj4iCiAgICAgICAgICI8c2NyaXB0PmRvY3VtZW50LmdldFNlbGVjdGlvbigp
LmNvbGxhcHNlKCk7XG4iCiAgICAgICAgICJkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS5zZWxlY3RB
bGxDaGlsZHJlbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFpbnNwYW4nKSk7XG4iCkBAIC0x
MTgsNiArMTI4LDkgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdFZGl0b3JDdXRDb3B5UGFzdGVF
ZGl0YWJsZShFZGl0b3JUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGUKICAgICBnX2Fzc2VydCghdGVz
dC0+Y2FuRXhlY3V0ZUVkaXRpbmdDb21tYW5kKFdFQktJVF9FRElUSU5HX0NPTU1BTkRfQ09QWSkp
OwogICAgIGdfYXNzZXJ0KCF0ZXN0LT5jYW5FeGVjdXRlRWRpdGluZ0NvbW1hbmQoV0VCS0lUX0VE
SVRJTkdfQ09NTUFORF9QQVNURSkpOwogCisgICAgZ19hc3NlcnQoIXRlc3QtPmlzRWRpdGFibGUo
KSk7CisgICAgdGVzdC0+c2V0RWRpdGFibGUodHJ1ZSk7CisgICAgZ19hc3NlcnQodGVzdC0+aXNF
ZGl0YWJsZSgpKTsKICAgICB0ZXN0LT5sb2FkSHRtbChzZWxlY3RlZFNwYW5IVE1MLCAwKTsKICAg
ICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKIApAQCAtMTYyLDcgKzE3NSw3IEBAIHN0
YXRpYyB2b2lkIHRlc3RXZWJWaWV3RWRpdG9yU2VsZWN0QWxsTm9uRWRpdGFibGUoRWRpdG9yVGVz
dCogdGVzdCwgZ2NvbnN0cG9pbnRlCiAKIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3RWRpdG9yU2Vs
ZWN0QWxsRWRpdGFibGUoRWRpdG9yVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKLSAgICBz
dGF0aWMgY29uc3QgY2hhciogc2VsZWN0ZWRTcGFuSFRNTCA9ICI8aHRtbD48Ym9keSBjb250ZW50
RWRpdGFibGU9XCJ0cnVlXCI+IgorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzZWxlY3RlZFNwYW5I
VE1MID0gIjxodG1sPjxib2R5PiIKICAgICAgICAgIjxzcGFuIGlkPVwibWFpbnNwYW5cIj5BbGwg
d29yayBhbmQgbm8gcGxheSA8c3BhbiBpZD1cInN1YnNwYW5cIj5tYWtlIEphY2sgYSBkdWxsPC9z
cGFuPiBib3kuPC9zcGFuPiIKICAgICAgICAgIjxzY3JpcHQ+ZG9jdW1lbnQuZ2V0U2VsZWN0aW9u
KCkuY29sbGFwc2UoKTtcbiIKICAgICAgICAgImRvY3VtZW50LmdldFNlbGVjdGlvbigpLnNlbGVj
dEFsbENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJzcGFuJykpO1xuIgpAQCAt
MTcwLDYgKzE4Myw5IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3RWRpdG9yU2VsZWN0QWxsRWRp
dGFibGUoRWRpdG9yVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIAogICAgIGdfYXNzZXJ0KHRl
c3QtPmNhbkV4ZWN1dGVFZGl0aW5nQ29tbWFuZChXRUJLSVRfRURJVElOR19DT01NQU5EX1NFTEVD
VF9BTEwpKTsKIAorICAgIGdfYXNzZXJ0KCF0ZXN0LT5pc0VkaXRhYmxlKCkpOworICAgIHRlc3Qt
PnNldEVkaXRhYmxlKHRydWUpOworICAgIGdfYXNzZXJ0KHRlc3QtPmlzRWRpdGFibGUoKSk7CiAg
ICAgdGVzdC0+bG9hZEh0bWwoc2VsZWN0ZWRTcGFuSFRNTCwgMCk7CiAgICAgdGVzdC0+d2FpdFVu
dGlsTG9hZEZpbmlzaGVkKCk7CiAKQEAgLTE4OSw4ICsyMDUsNzYgQEAgc3RhdGljIHZvaWQgdGVz
dFdlYlZpZXdFZGl0b3JTZWxlY3RBbGxFZGl0YWJsZShFZGl0b3JUZXN0KiB0ZXN0LCBnY29uc3Rw
b2ludGVyKQogICAgIGdfYXNzZXJ0X2NtcHN0cihjbGlwYm9hcmRUZXh0LmdldCgpLCA9PSwgIkFs
bCB3b3JrIGFuZCBubyBwbGF5IG1ha2UgSmFjayBhIGR1bGwgYm95LiIpOwogfQogCitzdGF0aWMg
dm9pZCB0ZXN0V2ViVmlld0VkaXRvckVkaXRhYmxlTm9uRWRpdGFibGUoRWRpdG9yVGVzdCogdGVz
dCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICBzdGF0aWMgY29uc3QgY2hhciogc2VsZWN0ZWRTcGFu
SFRNTCA9ICI8aHRtbD48Ym9keSBjb250ZW50RWRpdGFibGU9XCJmYWxzZVwiPiIKKyAgICAgICAg
IjxzcGFuIGlkPVwibWFpbnNwYW5cIj5BbGwgd29yayBhbmQgbm8gcGxheSA8c3BhbiBpZD1cInN1
YnNwYW5cIj5tYWtlIEphY2sgYSBkdWxsPC9zcGFuPiBib3kuPC9zcGFuPiIKKyAgICAgICAgIjxz
Y3JpcHQ+ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkuY29sbGFwc2UoKTtcbiIKKyAgICAgICAgImRv
Y3VtZW50LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdzdWJzcGFuJykpO1xuIgorICAgICAgICAiPC9zY3JpcHQ+PC9ib2R5PjwvaHRtbD4i
OworCisgICAgLy8gVmlldyBpcyBub3QgZWRpdGFibGUgYnkgZGVmYXVsdC4KKyAgICBnX2Fzc2Vy
dCghdGVzdC0+aXNFZGl0YWJsZSgpKTsKKworICAgIHRlc3QtPmxvYWRIdG1sKHNlbGVjdGVkU3Bh
bkhUTUwsIDApOworICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgpOworCisgICAgZ19h
c3NlcnQoIXRlc3QtPmlzRWRpdGFibGUoKSk7CisgICAgdGVzdC0+c2V0RWRpdGFibGUodHJ1ZSk7
CisgICAgZ19hc3NlcnQodGVzdC0+aXNFZGl0YWJsZSgpKTsKKworICAgIC8vIEN1dCBhbmQgcGFz
dGUgY29tbWFuZHMgY2FuIGJlIHVzZWQgb25seSBpbiBlZGl0YWJsZSB2aWV3LgorICAgIGdfYXNz
ZXJ0KHRlc3QtPmNhbkV4ZWN1dGVFZGl0aW5nQ29tbWFuZChXRUJLSVRfRURJVElOR19DT01NQU5E
X0NVVCkpOworICAgIGdfYXNzZXJ0KHRlc3QtPmNhbkV4ZWN1dGVFZGl0aW5nQ29tbWFuZChXRUJL
SVRfRURJVElOR19DT01NQU5EX1BBU1RFKSk7CisKKyAgICAvLyBDdXQgdGhlIHNlbGVjdGlvbiB0
byB0aGUgY2xpcGJvYXJkIHRvIHNlZSBpZiB0aGUgdmlldyBpcyBpbmRlZWQgZWRpdGFibGUuCisg
ICAgdGVzdC0+Y3V0Q2xpcGJvYXJkKCk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBjbGlwYm9hcmRU
ZXh0KGd0a19jbGlwYm9hcmRfd2FpdF9mb3JfdGV4dCh0ZXN0LT5tX2NsaXBib2FyZCkpOworICAg
IGdfYXNzZXJ0X2NtcHN0cihjbGlwYm9hcmRUZXh0LmdldCgpLCA9PSwgIm1ha2UgSmFjayBhIGR1
bGwiKTsKKworICAgIGdfYXNzZXJ0KHRlc3QtPmlzRWRpdGFibGUoKSk7CisgICAgdGVzdC0+c2V0
RWRpdGFibGUoZmFsc2UpOworICAgIGdfYXNzZXJ0KCF0ZXN0LT5pc0VkaXRhYmxlKCkpOworfQor
CitzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0VkaXRvckVkaXRhYmxlQ29udGVudEVkaXRhYmxlKEVk
aXRvclRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIq
IHNlbGVjdGVkU3BhbkhUTUwgPSAiPGh0bWw+PGJvZHkgY29udGVudEVkaXRhYmxlPVwidHJ1ZVwi
PiIKKyAgICAgICAgIjxzcGFuIGlkPVwibWFpbnNwYW5cIj5BbGwgd29yayBhbmQgbm8gcGxheSA8
c3BhbiBpZD1cInN1YnNwYW5cIj5tYWtlIEphY2sgYSBkdWxsPC9zcGFuPiBib3kuPC9zcGFuPiIK
KyAgICAgICAgIjxzY3JpcHQ+ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkuY29sbGFwc2UoKTtcbiIK
KyAgICAgICAgImRvY3VtZW50LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdzdWJzcGFuJykpO1xuIgorICAgICAgICAiPC9zY3JpcHQ+PC9i
b2R5PjwvaHRtbD4iOworCisgICAgLy8gVmlldyBpcyBub3QgZWRpdGFibGUgYnkgZGVmYXVsdC4K
KyAgICBnX2Fzc2VydCghdGVzdC0+aXNFZGl0YWJsZSgpKTsKKworICAgIHRlc3QtPmxvYWRIdG1s
KHNlbGVjdGVkU3BhbkhUTUwsIDApOworICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgp
OworCisgICAgLy8gRXZlbiB3aGVuIHRoZSBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIGlzIHNl
dCBvbiB0aGUgYm9keSB0aGUgdmlldydzIGVkaXRhYmxlCisgICAgLy8gcHJvcGVydHkgd2lsbCBz
dGlsbCBiZSBmYWxzZS4KKyAgICBnX2Fzc2VydCghdGVzdC0+aXNFZGl0YWJsZSgpKTsKKyAgICB0
ZXN0LT5zZXRFZGl0YWJsZSh0cnVlKTsKKyAgICBnX2Fzc2VydCh0ZXN0LT5pc0VkaXRhYmxlKCkp
OworCisgICAgLy8gQ3V0IGFuZCBwYXN0ZSBjb21tYW5kcyBjYW4gYmUgdXNlZCBvbmx5IGluIGVk
aXRhYmxlIHZpZXcuCisgICAgZ19hc3NlcnQodGVzdC0+Y2FuRXhlY3V0ZUVkaXRpbmdDb21tYW5k
KFdFQktJVF9FRElUSU5HX0NPTU1BTkRfQ1VUKSk7CisgICAgZ19hc3NlcnQodGVzdC0+Y2FuRXhl
Y3V0ZUVkaXRpbmdDb21tYW5kKFdFQktJVF9FRElUSU5HX0NPTU1BTkRfUEFTVEUpKTsKKworICAg
IC8vIEN1dCB0aGUgc2VsZWN0aW9uIHRvIHRoZSBjbGlwYm9hcmQgdG8gc2VlIGlmIHRoZSB2aWV3
IGlzIGluZGVlZCBlZGl0YWJsZS4KKyAgICB0ZXN0LT5jdXRDbGlwYm9hcmQoKTsKKyAgICBHVW5p
cXVlUHRyPGNoYXI+IGNsaXBib2FyZFRleHQoZ3RrX2NsaXBib2FyZF93YWl0X2Zvcl90ZXh0KHRl
c3QtPm1fY2xpcGJvYXJkKSk7CisgICAgZ19hc3NlcnRfY21wc3RyKGNsaXBib2FyZFRleHQuZ2V0
KCksID09LCAibWFrZSBKYWNrIGEgZHVsbCIpOworCisgICAgZ19hc3NlcnQodGVzdC0+aXNFZGl0
YWJsZSgpKTsKKyAgICB0ZXN0LT5zZXRFZGl0YWJsZShmYWxzZSk7CisgICAgZ19hc3NlcnQoIXRl
c3QtPmlzRWRpdGFibGUoKSk7Cit9CisKIHZvaWQgYmVmb3JlQWxsKCkKIHsKKyAgICBFZGl0b3JU
ZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAiZWRpdGFibGUvbm9uLWVkaXRhYmxlIiwgdGVzdFdl
YlZpZXdFZGl0b3JFZGl0YWJsZU5vbkVkaXRhYmxlKTsKKyAgICBFZGl0b3JUZXN0OjphZGQoIldl
YktpdFdlYlZpZXciLCAiZWRpdGFibGUvY29udGVudC1lZGl0YWJsZSIsIHRlc3RXZWJWaWV3RWRp
dG9yRWRpdGFibGVDb250ZW50RWRpdGFibGUpOwogICAgIEVkaXRvclRlc3Q6OmFkZCgiV2ViS2l0
V2ViVmlldyIsICJjdXQtY29weS1wYXN0ZS9ub24tZWRpdGFibGUiLCB0ZXN0V2ViVmlld0VkaXRv
ckN1dENvcHlQYXN0ZU5vbkVkaXRhYmxlKTsKICAgICBFZGl0b3JUZXN0OjphZGQoIldlYktpdFdl
YlZpZXciLCAiY3V0LWNvcHktcGFzdGUvZWRpdGFibGUiLCB0ZXN0V2ViVmlld0VkaXRvckN1dENv
cHlQYXN0ZUVkaXRhYmxlKTsKICAgICBFZGl0b3JUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAi
c2VsZWN0LWFsbC9ub24tZWRpdGFibGUiLCB0ZXN0V2ViVmlld0VkaXRvclNlbGVjdEFsbE5vbkVk
aXRhYmxlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsv
V2ViVmlld1Rlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJW
aWV3VGVzdC5jcHAKaW5kZXggZWE4YjZiM2ZlYjA1MmU4NzY2MDM3ZTYxN2MyMzE2NzNmMGMxYzNh
My4uNzZmZjdhNWRjMDY0N2Q3NDMxMGNjMTliMzE0NGYzNzJhZDQyYWVmMyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5jcHAKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5jcHAKQEAgLTI2
MCw2ICsyNjAsMTYgQEAgdm9pZCBXZWJWaWV3VGVzdDo6c2VsZWN0QWxsKCkKICAgICB3ZWJraXRf
d2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmQobV93ZWJWaWV3LCAiU2VsZWN0QWxsIik7
CiB9CiAKK2Jvb2wgV2ViVmlld1Rlc3Q6OmlzRWRpdGFibGUoKQoreworICAgIHdlYmtpdF93ZWJf
dmlld19pc19lZGl0YWJsZShtX3dlYlZpZXcpOworfQorCit2b2lkIFdlYlZpZXdUZXN0OjpzZXRF
ZGl0YWJsZShib29sIGVkaXRhYmxlKQoreworICAgIHdlYmtpdF93ZWJfdmlld19zZXRfZWRpdGFi
bGUobV93ZWJWaWV3LCBlZGl0YWJsZSk7Cit9CisKIHN0YXRpYyB2b2lkIHJlc291cmNlR2V0RGF0
YUNhbGxiYWNrKEdPYmplY3QqIG9iamVjdCwgR0FzeW5jUmVzdWx0KiByZXN1bHQsIGdwb2ludGVy
IHVzZXJEYXRhKQogewogICAgIHNpemVfdCBkYXRhU2l6ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuaCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuaAppbmRleCAyYzM2OTJhNTYyZTU3NDgw
YjkwYjdmZmZlZjc1NjM5ODJkYjI2YTNhLi5hZDM5ZWY2MGJlOGZhNTczY2EyZDc1YzYyZTk0M2Yz
ZDY1MTFlYTFlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3Rr
L1dlYlZpZXdUZXN0LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9X
ZWJWaWV3VGVzdC5oCkBAIC01Myw2ICs1Myw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbGVjdEFs
bCgpOwogICAgIGNvbnN0IGNoYXIqIG1haW5SZXNvdXJjZURhdGEoc2l6ZV90JiBtYWluUmVzb3Vy
Y2VEYXRhU2l6ZSk7CiAKKyAgICBib29sIGlzRWRpdGFibGUoKTsKKyAgICB2b2lkIHNldEVkaXRh
YmxlKGJvb2wpOworCiAgICAgdm9pZCBtb3VzZU1vdmVUbyhpbnQgeCwgaW50IHksIHVuc2lnbmVk
IG1vdXNlTW9kaWZpZXJzID0gMCk7CiAgICAgdm9pZCBjbGlja01vdXNlQnV0dG9uKGludCB4LCBp
bnQgeSwgdW5zaWduZWQgYnV0dG9uID0gMSwgdW5zaWduZWQgbW91c2VNb2RpZmllcnMgPSAwKTsK
ICAgICB2b2lkIGtleVN0cm9rZSh1bnNpZ25lZCBrZXlWYWwsIHVuc2lnbmVkIGtleU1vZGlmaWVy
cyA9IDApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244972</attachid>
            <date>2015-01-20 00:18:33 -0800</date>
            <delta_ts>2015-01-20 02:20:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139443-20150120091839.patch</filename>
            <type>text/plain</type>
            <size>16819</size>
            <attacher name="Tomas Popela">tpopela</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4NjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOThhYjlkZjYxYTI3YTFi
YmZjYjY4YjA2ZDI3ZmE4ZjI3MTc4YjVmYy4uMmVhM2I1YWI0MTY5NjVkNGUzNmQzOThkNWQ5ZDIy
NGZlNDY1YmY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTAxLTIwICBUb21h
cyBQb3BlbGEgIDx0cG9wZWxhQHJlZGhhdC5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIEFQSSB0
byBzZXQgdGhlIHdlYiB2aWV3IGVkaXRhYmxlIGludG8gV2ViS2l0MiBHVEsrIEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDQzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBhIHdheSB0
byBzZXQgdGhlIHdlYiB2aWV3IGVkaXRhYmxlLCB3aXRob3V0IGFjY2Vzc2luZyB0aGUgRE9NCisg
ICAgICAgIGFuZCBzZXR0aW5nIHRoZSBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIHRvIGVsZW1l
bnRzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHA6Cisg
ICAgICAgICh3ZWJraXRXZWJWaWV3U2V0UHJvcGVydHkpOgorICAgICAgICAod2Via2l0V2ViVmll
d0dldFByb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19pc19lZGl0YWJsZSk6CisgICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfc2V0X2VkaXRhYmxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNl
Y3Rpb25zLnR4dDoKKwogMjAxNS0wMS0xOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5j
b20+CiAKICAgICAgICAgQXR0ZW1wdCB0byBmaXggdGhlIGlPUyBidWlsZCBhZnRlciA8aHR0cDov
L3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTc4NjMxPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCAxM2JkMzM4YjA4ODQy
OWM5MWZjODI3NWU1NDJmYjAyYmE4NTg2YTcyLi44OTEwYzUyZjEzYWFhN2RhMGJiY2MxNDM3Zjk5
NzZhMDEzNDg5OGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMTQ5LDcgKzE0OSw4IEBAIGVudW0gewogICAgIFBST1Bf
VVJJLAogICAgIFBST1BfWk9PTV9MRVZFTCwKICAgICBQUk9QX0lTX0xPQURJTkcsCi0gICAgUFJP
UF9JU19QTEFZSU5HX0FVRElPCisgICAgUFJPUF9JU19QTEFZSU5HX0FVRElPLAorICAgIFBST1Bf
RURJVEFCTEUKIH07CiAKIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgR1JlZlB0cjxXZWJLaXRX
ZWJSZXNvdXJjZT4gPiBMb2FkaW5nUmVzb3VyY2VzTWFwOwpAQCAtNjg4LDYgKzY4OSw5IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdTZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50
IHByb3BJZCwgY29uc3QgR1ZhbHVlCiAgICAgY2FzZSBQUk9QX1pPT01fTEVWRUw6CiAgICAgICAg
IHdlYmtpdF93ZWJfdmlld19zZXRfem9vbV9sZXZlbCh3ZWJWaWV3LCBnX3ZhbHVlX2dldF9kb3Vi
bGUodmFsdWUpKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0VESVRBQkxFOgorICAg
ICAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0X2VkaXRhYmxlKHdlYlZpZXcsIGdfdmFsdWVfZ2V0X2Jv
b2xlYW4odmFsdWUpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19P
QkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElkLCBwYXJhbVNwZWMp
OwogICAgIH0KQEAgLTcyOCw2ICs3MzIsOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3R2V0
UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIEdWYWx1ZSogdmFsdQogICAg
IGNhc2UgUFJPUF9JU19QTEFZSU5HX0FVRElPOgogICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFu
KHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfaXNfcGxheWluZ19hdWRpbyh3ZWJWaWV3KSk7CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9FRElUQUJMRToKKyAgICAgICAgZ192YWx1ZV9zZXRf
Ym9vbGVhbih2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2lzX2VkaXRhYmxlKHdlYlZpZXcpKTsKKyAg
ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElE
X1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElkLCBwYXJhbVNwZWMpOwogICAgIH0KQEAgLTk1OSw2
ICs5NjYsMjQgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoV2ViS2l0
V2ViVmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVB
REFCTEUpKTsKIAogICAgIC8qKgorICAgICAqIFdlYktpdFdlYlZpZXc6ZWRpdGFibGU6CisgICAg
ICoKKyAgICAgKiBXaGV0aGVyIHRoZSBwYWdlcyBsb2FkZWQgaW5zaWRlICNXZWJLaXRXZWJWaWV3
IGFyZSBlZGl0YWJsZS4gRm9yIG1vcmUKKyAgICAgKiBpbmZvcm1hdGlvbiBzZWUgd2Via2l0X3dl
Yl92aWV3X3NldF9lZGl0YWJsZSgpLgorICAgICAqCisgICAgICogU2luY2U6IDIuOAorICAgICAq
LworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdPYmplY3RD
bGFzcywKKyAgICAgICAgUFJPUF9FRElUQUJMRSwKKyAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xl
YW4oCisgICAgICAgICAgICAiZWRpdGFibGUiLAorICAgICAgICAgICAgXygiRWRpdGFibGUiKSwK
KyAgICAgICAgICAgIF8oIldoZXRoZXIgdGhlIGNvbnRlbnQgY2FuIGJlIG1vZGlmaWVkIGJ5IHRo
ZSB1c2VyLiIpLAorICAgICAgICAgICAgRkFMU0UsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1f
UkVBRFdSSVRFKSk7CisKKyAgICAvKioKICAgICAgKiBXZWJLaXRXZWJWaWV3Ojpsb2FkLWNoYW5n
ZWQ6CiAgICAgICogQHdlYl92aWV3OiB0aGUgI1dlYktpdFdlYlZpZXcgb24gd2hpY2ggdGhlIHNp
Z25hbCBpcyBlbWl0dGVkCiAgICAgICogQGxvYWRfZXZlbnQ6IHRoZSAjV2ViS2l0TG9hZEV2ZW50
CkBAIC0zNTA0LDMgKzM1MjksNTMgQEAgdm9pZCB3ZWJraXRXZWJWaWV3V2ViUHJvY2Vzc0NyYXNo
ZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICBnX3NpZ25hbF9lbWl0KHdlYlZpZXcsIHNp
Z25hbHNbV0VCX1BST0NFU1NfQ1JBU0hFRF0sIDAsICZyZXR1cm5WYWx1ZSk7CiB9CiAKKy8qKgor
ICogd2Via2l0X3dlYl92aWV3X2lzX2VkaXRhYmxlOgorICogQHdlYl92aWV3OiBhICNXZWJLaXRX
ZWJWaWV3CisgKgorICogR2V0cyB3aGV0aGVyIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZWRpdCB0
aGUgSFRNTCBkb2N1bWVudC4gV2hlbiBAd2ViX3ZpZXcKKyAqIGlzIG5vdCBlZGl0YWJsZSBhbiBl
bGVtZW50IGluIHRoZSBIVE1MIGRvY3VtZW50IGNhbiBvbmx5IGJlIGVkaXRlZCBpZiB0aGUKKyAq
IENPTlRFTlRFRElUQUJMRSBhdHRyaWJ1dGUgaGFzIGJlZW4gc2V0IG9uIHRoZSBlbGVtZW50IG9y
IG9uZSBvZiBpdHMgcGFyZW50CisgKiBlbGVtZW50cy4gQnkgZGVmYXVsdCBhICNXZWJLaXRXZWJW
aWV3IGlzIG5vdCBlZGl0YWJsZS4KKyAqCisgKiBSZXR1cm5zOiAlVFJVRSBpZiB0aGUgdXNlciBp
cyBhbGxvd2VkIHRvIGVkaXQgdGhlIEhUTUwgZG9jdW1lbnQsIG9yICVGQUxTRSBvdGhlcndpc2Uu
CisgKgorICogU2luY2U6IDIuOAorICovCitnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfaXNfZWRp
dGFibGUoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIEZBTFNFKTsKKworICAgIHJldHVybiBnZXRQ
YWdlKHdlYlZpZXcpLT5pc0VkaXRhYmxlKCk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl92aWV3
X3NldF9lZGl0YWJsZToKKyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICogQGVkaXRh
YmxlOiBhICNnYm9vbGVhbiBpbmRpY2F0aW5nIHRoZSBlZGl0YWJsZSBzdGF0ZQorICoKKyAqIFNl
dHMgd2hldGhlciB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVkaXQgdGhlIEhUTUwgZG9jdW1lbnQu
CisgKgorICogSWYgQGVkaXRhYmxlIGlzICVUUlVFLCBAd2ViX3ZpZXcgYWxsb3dzIHRoZSB1c2Vy
IHRvIGVkaXQgdGhlIEhUTUwgZG9jdW1lbnQuIElmCisgKiBAZWRpdGFibGUgaXMgJUZBTFNFLCBh
biBlbGVtZW50IGluIEB3ZWJfdmlldydzIGRvY3VtZW50IGNhbiBvbmx5IGJlIGVkaXRlZCBpZiB0
aGUKKyAqIENPTlRFTlRFRElUQUJMRSBhdHRyaWJ1dGUgaGFzIGJlZW4gc2V0IG9uIHRoZSBlbGVt
ZW50IG9yIG9uZSBvZiBpdHMgcGFyZW50CisgKiBlbGVtZW50cy4gQnkgZGVmYXVsdCBhICNXZWJL
aXRXZWJWaWV3IGlzIG5vdCBlZGl0YWJsZS4KKyAqCisgKiBOb3JtYWxseSwgYSBIVE1MIGRvY3Vt
ZW50IGlzIG5vdCBlZGl0YWJsZSB1bmxlc3MgdGhlIGVsZW1lbnRzIHdpdGhpbiB0aGUKKyAqIGRv
Y3VtZW50IGFyZSBlZGl0YWJsZS4gVGhpcyBmdW5jdGlvbiBwcm92aWRlcyBhIHdheSB0byBtYWtl
IHRoZSBjb250ZW50cworICogb2YgYSAjV2ViS2l0V2ViVmlldyBlZGl0YWJsZSB3aXRob3V0IGFs
dGVyaW5nIHRoZSBkb2N1bWVudCBvciBET00gc3RydWN0dXJlLgorICoKKyAqIFNpbmNlOiAyLjgK
KyAqLwordm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2VkaXRhYmxlKFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcsIGdib29sZWFuIGVkaXRhYmxlKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lU
X0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKKworICAgIGlmIChlZGl0YWJsZSA9PSBnZXRQYWdlKHdl
YlZpZXcpLT5pc0VkaXRhYmxlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGdldFBhZ2Uod2Vi
VmlldyktPnNldEVkaXRhYmxlKGVkaXRhYmxlKTsKKworICAgIGdfb2JqZWN0X25vdGlmeShHX09C
SkVDVCh3ZWJWaWV3KSwgImVkaXRhYmxlIik7Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAppbmRleCBkYTNmMTY1ZmRiNmYwMzQ3NjAx
NThmN2I3Njg3ZjUwYTUwM2M0ZjgwLi42OTY1ZDcwNjdkNzIwNzEzMzgzYzg5NjUxOWVlZGZkYjI4
NWNmZGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlldy5oCkBAIC00NzQsNiArNDc0LDEzIEBAIHdlYmtpdF93ZWJfdmlld19nZXRfc25hcHNo
b3RfZmluaXNoICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcKIFdFQktJVF9BUEkgV2Vi
S2l0VXNlckNvbnRlbnRNYW5hZ2VyICoKIHdlYmtpdF93ZWJfdmlld19nZXRfdXNlcl9jb250ZW50
X21hbmFnZXIgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3
KTsKIAorV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3dlYl92aWV3X2lzX2VkaXRhYmxlICAg
ICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3Zp
ZXcpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19zZXRfZWRpdGFibGUgICAg
ICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z2Jvb2xlYW4gICAgICAgICAgICAgICAgICBlZGl0YWJsZSk7CisKIEdfRU5EX0RFQ0xTCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93
ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKaW5kZXggZjM2NmQwYTAyODE0MzY5NTllY2Y2
OGRiMThkMDIzYjY2OTc4YjJhNy4uNGE5ZGRjYTIxNjRlMmUwNDM1NmE3ZWFhNWYxYmEyZTkzZjlj
MDFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93
ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CkBAIC0xOTksNiArMTk5LDggQEAgd2Vi
a2l0X3dlYl92aWV3X2Rvd25sb2FkX3VyaQogd2Via2l0X3dlYl92aWV3X2dldF90bHNfaW5mbwog
d2Via2l0X3dlYl92aWV3X2dldF9zbmFwc2hvdAogd2Via2l0X3dlYl92aWV3X2dldF9zbmFwc2hv
dF9maW5pc2gKK3dlYmtpdF93ZWJfdmlld19zZXRfZWRpdGFibGUKK3dlYmtpdF93ZWJfdmlld19p
c19lZGl0YWJsZQogCiA8U1VCU0VDVElPTiBXZWJLaXRKYXZhc2NyaXB0UmVzdWx0PgogV2ViS2l0
SmF2YXNjcmlwdFJlc3VsdApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDJmMjI2NjI3MzcxOGYxMzdhNjc2YWE2Y2Y3N2EyMjY0MTk3ODA3N2EuLjU1
OTg3MmRjYmIxNTNmYTJiYTRmZmViYzc0MmVjOWQxNGQwNzA4NGQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxNS0w
MS0yMCAgVG9tYXMgUG9wZWxhICA8dHBvcGVsYUByZWRoYXQuY29tPgorCisgICAgICAgIFtHVEtd
IEFkZCBBUEkgdG8gc2V0IHRoZSB3ZWIgdmlldyBlZGl0YWJsZSBpbnRvIFdlYktpdDIgR1RLKyBB
UEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQ0
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0
ZSB0aGUgbmV3IHRlc3QgY2FzZXMgZm9yIHNldHRpbmcgdGhlIGVkaXRhYmxlIHByb3BlcnR5IG9u
IHRoZSB3ZWIKKyAgICAgICAgdmlldyBhbmQgb24gdGhlIGNvbnRlbnRlZGl0YWJsZSBlbmFibGVk
IGRvY3VtZW50LiBBbHNvIHJld29yayB0aGUKKyAgICAgICAgY3VycmVudCB0ZXN0cyB0aGF0IGFy
ZSBleHBlY3RpbmcgdGhhdCB0aGUgd2ViIHZpZXcgaXMgZWRpdGFibGUuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYlZpZXdFZGl0b3IuY3BwOgorICAg
ICAgICAobG9hZFRlc3RIdG1sKToKKyAgICAgICAgKHRlc3RXZWJWaWV3RWRpdG9yQ3V0Q29weVBh
c3RlTm9uRWRpdGFibGUpOgorICAgICAgICAodGVzdFdlYlZpZXdFZGl0b3JDdXRDb3B5UGFzdGVF
ZGl0YWJsZSk6CisgICAgICAgICh0ZXN0V2ViVmlld0VkaXRvclNlbGVjdEFsbE5vbkVkaXRhYmxl
KToKKyAgICAgICAgKHRlc3RXZWJWaWV3RWRpdG9yU2VsZWN0QWxsRWRpdGFibGUpOgorICAgICAg
ICAocnVuRWRpdG9yRWRpdGFibGVDdXRUZXN0cyk6CisgICAgICAgICh0ZXN0V2ViVmlld0VkaXRv
ckVkaXRhYmxlT25Ob25FZGl0YWJsZSk6CisgICAgICAgICh0ZXN0V2ViVmlld0VkaXRvckVkaXRh
YmxlT25Db250ZW50RWRpdGFibGUpOgorICAgICAgICAodGVzdFdlYlZpZXdFZGl0b3JOb25FZGl0
YWJsZSk6CisgICAgICAgIChiZWZvcmVBbGwpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ3Rr
L1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuY3BwOgorICAgICAgICAoV2ViVmlld1Rlc3Q6OmlzRWRp
dGFibGUpOgorICAgICAgICAoV2ViVmlld1Rlc3Q6OnNldEVkaXRhYmxlKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0Lmg6CisKIDIwMTUtMDEtMTgg
IERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBpT1MgRVdTIHF1
ZXVlIG5hbWUgc2hvdWxkIGJlIGNvbnNpc3RlbnQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViVmlld0VkaXRvci5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYlZpZXdFZGl0b3IuY3BwCmluZGV4IDll
NjliZmE0OGUxYTYwZTg0ZWZhZDk0MDA2MWViN2EzOGRiNWZlYjIuLjk4MzUxYTY2NWJjZGFhNGQ4
Y2IyMTdkM2Q3OGE1MzczZDhhNTM3NDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViVmlld0VkaXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJWaWV3RWRpdG9yLmNwcApAQCAtNzMsMjYg
KzczLDQ3IEBAIHB1YmxpYzoKICAgICAgICAgZ19tYWluX2xvb3BfcnVuKG1fbWFpbkxvb3ApOwog
ICAgIH0KIAorICAgIGdjaGFyKiBjdXRTZWxlY3Rpb24oKQorICAgIHsKKyAgICAgICAgZ19hc3Nl
cnQoY2FuRXhlY3V0ZUVkaXRpbmdDb21tYW5kKFdFQktJVF9FRElUSU5HX0NPTU1BTkRfQ1VUKSk7
CisgICAgICAgIGdfYXNzZXJ0KGNhbkV4ZWN1dGVFZGl0aW5nQ29tbWFuZChXRUJLSVRfRURJVElO
R19DT01NQU5EX1BBU1RFKSk7CisKKyAgICAgICAgd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRp
dGluZ19jb21tYW5kKG1fd2ViVmlldywgV0VCS0lUX0VESVRJTkdfQ09NTUFORF9DVVQpOworICAg
ICAgICAvLyBUaGVyZSdzIG5vIHdheSB0byBrbm93IHdoZW4gdGhlIHNlbGVjdGlvbiBoYXMgYmVl
biBjdXQgdG8KKyAgICAgICAgLy8gdGhlIGNsaXBib2FyZCwgc28gdXNlIGEgdGltZW91dCBzb3Vy
Y2UgdG8gcXVlcnkgdGhlIGNsaXBib2FyZC4KKyAgICAgICAgbV90cmllc0NvdW50ID0gMDsKKyAg
ICAgICAgZ190aW1lb3V0X2FkZChrQ2xpcGJvYXJkV2FpdFRpbWVvdXQsIHJlaW50ZXJwcmV0X2Nh
c3Q8R1NvdXJjZUZ1bmM+KHdhaXRGb3JDbGlwYm9hcmRUZXh0KSwgdGhpcyk7CisgICAgICAgIGdf
bWFpbl9sb29wX3J1bihtX21haW5Mb29wKTsKKworICAgICAgICByZXR1cm4gZ3RrX2NsaXBib2Fy
ZF93YWl0X2Zvcl90ZXh0IChtX2NsaXBib2FyZCk7CisgICAgfQorCiAgICAgR3RrQ2xpcGJvYXJk
KiBtX2NsaXBib2FyZDsKICAgICBib29sIG1fY2FuRXhlY3V0ZUVkaXRpbmdDb21tYW5kOwogICAg
IHNpemVfdCBtX3RyaWVzQ291bnQ7CiB9OwogCi1zdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0VkaXRv
ckN1dENvcHlQYXN0ZU5vbkVkaXRhYmxlKEVkaXRvclRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIp
CitzdGF0aWMgdm9pZCBsb2FkVGVzdEh0bWwoRWRpdG9yVGVzdCogdGVzdCwgYm9vbCBjb250ZW50
RWRpdGFibGUpCiB7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHNlbGVjdGVkU3BhbkhUTUwgPSAi
PGh0bWw+PGJvZHkgY29udGVudEVkaXRhYmxlPVwiZmFsc2VcIj4iCisgICAgR1VuaXF1ZVB0cjxj
aGFyPiBzZWxlY3RlZFNwYW5IVE1MKGdfc3RyZHVwX3ByaW50ZigKKyAgICAgICAgIjxodG1sPjxi
b2R5IGNvbnRlbnRFZGl0YWJsZT1cIiVzXCI+IgogICAgICAgICAiPHNwYW4gaWQ9XCJtYWluc3Bh
blwiPkFsbCB3b3JrIGFuZCBubyBwbGF5IDxzcGFuIGlkPVwic3Vic3BhblwiPm1ha2UgSmFjayBh
IGR1bGw8L3NwYW4+IGJveS48L3NwYW4+IgogICAgICAgICAiPHNjcmlwdD5kb2N1bWVudC5nZXRT
ZWxlY3Rpb24oKS5jb2xsYXBzZSgpO1xuIgogICAgICAgICAiZG9jdW1lbnQuZ2V0U2VsZWN0aW9u
KCkuc2VsZWN0QWxsQ2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1YnNwYW4nKSk7
XG4iCi0gICAgICAgICI8L3NjcmlwdD48L2JvZHk+PC9odG1sPiI7CisgICAgICAgICI8L3Njcmlw
dD48L2JvZHk+PC9odG1sPiIsIGNvbnRlbnRFZGl0YWJsZSA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsK
IAorICAgIHRlc3QtPmxvYWRIdG1sKHNlbGVjdGVkU3BhbkhUTUwuZ2V0KCksIG51bGxwdHIpOwor
ICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0
V2ViVmlld0VkaXRvckN1dENvcHlQYXN0ZU5vbkVkaXRhYmxlKEVkaXRvclRlc3QqIHRlc3QsIGdj
b25zdHBvaW50ZXIpCit7CiAgICAgLy8gTm90aGluZyBsb2FkZWQgeWV0LgogICAgIGdfYXNzZXJ0
KCF0ZXN0LT5jYW5FeGVjdXRlRWRpdGluZ0NvbW1hbmQoV0VCS0lUX0VESVRJTkdfQ09NTUFORF9D
VVQpKTsKICAgICBnX2Fzc2VydCghdGVzdC0+Y2FuRXhlY3V0ZUVkaXRpbmdDb21tYW5kKFdFQktJ
VF9FRElUSU5HX0NPTU1BTkRfQ09QWSkpOwogICAgIGdfYXNzZXJ0KCF0ZXN0LT5jYW5FeGVjdXRl
RWRpdGluZ0NvbW1hbmQoV0VCS0lUX0VESVRJTkdfQ09NTUFORF9QQVNURSkpOwogCi0gICAgdGVz
dC0+bG9hZEh0bWwoc2VsZWN0ZWRTcGFuSFRNTCwgMCk7Ci0gICAgdGVzdC0+d2FpdFVudGlsTG9h
ZEZpbmlzaGVkKCk7CisgICAgbG9hZFRlc3RIdG1sKHRlc3QsIGZhbHNlKTsKIAogICAgIGdfYXNz
ZXJ0KHRlc3QtPmNhbkV4ZWN1dGVFZGl0aW5nQ29tbWFuZChXRUJLSVRfRURJVElOR19DT01NQU5E
X0NPUFkpKTsKICAgICAvLyBJdCdzIG5vdCBwb3NzaWJsZSB0byBjdXQgYW5kIHBhc3RlIHdoZW4g
Y29udGVudCBpcyBub3QgZWRpdGFibGUKQEAgLTExOCw3ICsxMzksMTAgQEAgc3RhdGljIHZvaWQg
dGVzdFdlYlZpZXdFZGl0b3JDdXRDb3B5UGFzdGVFZGl0YWJsZShFZGl0b3JUZXN0KiB0ZXN0LCBn
Y29uc3Rwb2ludGUKICAgICBnX2Fzc2VydCghdGVzdC0+Y2FuRXhlY3V0ZUVkaXRpbmdDb21tYW5k
KFdFQktJVF9FRElUSU5HX0NPTU1BTkRfQ09QWSkpOwogICAgIGdfYXNzZXJ0KCF0ZXN0LT5jYW5F
eGVjdXRlRWRpdGluZ0NvbW1hbmQoV0VCS0lUX0VESVRJTkdfQ09NTUFORF9QQVNURSkpOwogCi0g
ICAgdGVzdC0+bG9hZEh0bWwoc2VsZWN0ZWRTcGFuSFRNTCwgMCk7CisgICAgZ19hc3NlcnQoIXRl
c3QtPmlzRWRpdGFibGUoKSk7CisgICAgdGVzdC0+c2V0RWRpdGFibGUodHJ1ZSk7CisgICAgZ19h
c3NlcnQodGVzdC0+aXNFZGl0YWJsZSgpKTsKKyAgICB0ZXN0LT5sb2FkSHRtbChzZWxlY3RlZFNw
YW5IVE1MLCBudWxscHRyKTsKICAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKIAog
ICAgIC8vIFRoZXJlJ3MgYSBzZWxlY3Rpb24uCkBAIC0xMzMsMTYgKzE1Nyw5IEBAIHN0YXRpYyB2
b2lkIHRlc3RXZWJWaWV3RWRpdG9yQ3V0Q29weVBhc3RlRWRpdGFibGUoRWRpdG9yVGVzdCogdGVz
dCwgZ2NvbnN0cG9pbnRlCiAKIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3RWRpdG9yU2VsZWN0QWxs
Tm9uRWRpdGFibGUoRWRpdG9yVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKLSAgICBzdGF0
aWMgY29uc3QgY2hhciogc2VsZWN0ZWRTcGFuSFRNTCA9ICI8aHRtbD48Ym9keSBjb250ZW50RWRp
dGFibGU9XCJmYWxzZVwiPiIKLSAgICAgICAgIjxzcGFuIGlkPVwibWFpbnNwYW5cIj5BbGwgd29y
ayBhbmQgbm8gcGxheSA8c3BhbiBpZD1cInN1YnNwYW5cIj5tYWtlIEphY2sgYSBkdWxsPC9zcGFu
PiBib3kuPC9zcGFuPiIKLSAgICAgICAgIjxzY3JpcHQ+ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCku
Y29sbGFwc2UoKTtcbiIKLSAgICAgICAgImRvY3VtZW50LmdldFNlbGVjdGlvbigpLnNlbGVjdEFs
bENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJzcGFuJykpO1xuIgotICAgICAg
ICAiPC9zY3JpcHQ+PC9ib2R5PjwvaHRtbD4iOwotCiAgICAgZ19hc3NlcnQodGVzdC0+Y2FuRXhl
Y3V0ZUVkaXRpbmdDb21tYW5kKFdFQktJVF9FRElUSU5HX0NPTU1BTkRfU0VMRUNUX0FMTCkpOwog
Ci0gICAgdGVzdC0+bG9hZEh0bWwoc2VsZWN0ZWRTcGFuSFRNTCwgMCk7Ci0gICAgdGVzdC0+d2Fp
dFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgbG9hZFRlc3RIdG1sKHRlc3QsIGZhbHNlKTsKIAog
ICAgIGdfYXNzZXJ0KHRlc3QtPmNhbkV4ZWN1dGVFZGl0aW5nQ29tbWFuZChXRUJLSVRfRURJVElO
R19DT01NQU5EX1NFTEVDVF9BTEwpKTsKIApAQCAtMTYyLDE2ICsxNzksMTIgQEAgc3RhdGljIHZv
aWQgdGVzdFdlYlZpZXdFZGl0b3JTZWxlY3RBbGxOb25FZGl0YWJsZShFZGl0b3JUZXN0KiB0ZXN0
LCBnY29uc3Rwb2ludGUKIAogc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdFZGl0b3JTZWxlY3RBbGxF
ZGl0YWJsZShFZGl0b3JUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogewotICAgIHN0YXRpYyBj
b25zdCBjaGFyKiBzZWxlY3RlZFNwYW5IVE1MID0gIjxodG1sPjxib2R5IGNvbnRlbnRFZGl0YWJs
ZT1cInRydWVcIj4iCi0gICAgICAgICI8c3BhbiBpZD1cIm1haW5zcGFuXCI+QWxsIHdvcmsgYW5k
IG5vIHBsYXkgPHNwYW4gaWQ9XCJzdWJzcGFuXCI+bWFrZSBKYWNrIGEgZHVsbDwvc3Bhbj4gYm95
Ljwvc3Bhbj4iCi0gICAgICAgICI8c2NyaXB0PmRvY3VtZW50LmdldFNlbGVjdGlvbigpLmNvbGxh
cHNlKCk7XG4iCi0gICAgICAgICJkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGls
ZHJlbihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3Vic3BhbicpKTtcbiIKLSAgICAgICAgIjwv
c2NyaXB0PjwvYm9keT48L2h0bWw+IjsKLQogICAgIGdfYXNzZXJ0KHRlc3QtPmNhbkV4ZWN1dGVF
ZGl0aW5nQ29tbWFuZChXRUJLSVRfRURJVElOR19DT01NQU5EX1NFTEVDVF9BTEwpKTsKIAotICAg
IHRlc3QtPmxvYWRIdG1sKHNlbGVjdGVkU3BhbkhUTUwsIDApOwotICAgIHRlc3QtPndhaXRVbnRp
bExvYWRGaW5pc2hlZCgpOworICAgIGdfYXNzZXJ0KCF0ZXN0LT5pc0VkaXRhYmxlKCkpOworICAg
IHRlc3QtPnNldEVkaXRhYmxlKHRydWUpOworICAgIGdfYXNzZXJ0KHRlc3QtPmlzRWRpdGFibGUo
KSk7CisgICAgbG9hZFRlc3RIdG1sKHRlc3QsIGZhbHNlKTsKIAogICAgIGdfYXNzZXJ0KHRlc3Qt
PmNhbkV4ZWN1dGVFZGl0aW5nQ29tbWFuZChXRUJLSVRfRURJVElOR19DT01NQU5EX1NFTEVDVF9B
TEwpKTsKIApAQCAtMTg5LDggKzIwMiw1MiBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0VkaXRv
clNlbGVjdEFsbEVkaXRhYmxlKEVkaXRvclRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAg
Z19hc3NlcnRfY21wc3RyKGNsaXBib2FyZFRleHQuZ2V0KCksID09LCAiQWxsIHdvcmsgYW5kIG5v
IHBsYXkgbWFrZSBKYWNrIGEgZHVsbCBib3kuIik7CiB9CiAKK3N0YXRpYyB2b2lkIHJ1bkVkaXRv
ckVkaXRhYmxlQ3V0VGVzdHMoRWRpdG9yVGVzdCogdGVzdCwgYm9vbCBjb250ZW50RWRpdGFibGUp
Cit7CisgICAgLy8gVmlldyBpcyBub3QgZWRpdGFibGUgYnkgZGVmYXVsdC4KKyAgICBnX2Fzc2Vy
dCghdGVzdC0+aXNFZGl0YWJsZSgpKTsKKworICAgIGxvYWRUZXN0SHRtbCh0ZXN0LCBjb250ZW50
RWRpdGFibGUpOworCisgICAgZ19hc3NlcnQoIXRlc3QtPmlzRWRpdGFibGUoKSk7CisgICAgdGVz
dC0+c2V0RWRpdGFibGUodHJ1ZSk7CisgICAgZ19hc3NlcnQodGVzdC0+aXNFZGl0YWJsZSgpKTsK
KworICAgIC8vIEN1dCB0aGUgc2VsZWN0aW9uIHRvIHRoZSBjbGlwYm9hcmQgdG8gc2VlIGlmIHRo
ZSB2aWV3IGlzIGluZGVlZCBlZGl0YWJsZS4KKyAgICBHVW5pcXVlUHRyPGNoYXI+IGNsaXBib2Fy
ZFRleHQodGVzdC0+Y3V0U2VsZWN0aW9uKCkpOworICAgIGdfYXNzZXJ0X2NtcHN0cihjbGlwYm9h
cmRUZXh0LmdldCgpLCA9PSwgIm1ha2UgSmFjayBhIGR1bGwiKTsKK30KKworc3RhdGljIHZvaWQg
dGVzdFdlYlZpZXdFZGl0b3JFZGl0YWJsZU9uTm9uRWRpdGFibGUoRWRpdG9yVGVzdCogdGVzdCwg
Z2NvbnN0cG9pbnRlcikKK3sKKyAgICBydW5FZGl0b3JFZGl0YWJsZUN1dFRlc3RzKHRlc3QsIGZh
bHNlKTsKK30KKworc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdFZGl0b3JFZGl0YWJsZU9uQ29udGVu
dEVkaXRhYmxlKEVkaXRvclRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgcnVuRWRp
dG9yRWRpdGFibGVDdXRUZXN0cyh0ZXN0LCB0cnVlKTsKK30KKworc3RhdGljIHZvaWQgdGVzdFdl
YlZpZXdFZGl0b3JOb25FZGl0YWJsZShFZGl0b3JUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQor
eworICAgIGxvYWRUZXN0SHRtbCh0ZXN0LCBmYWxzZSk7CisKKyAgICBnX2Fzc2VydCghdGVzdC0+
aXNFZGl0YWJsZSgpKTsKKyAgICB0ZXN0LT5zZXRFZGl0YWJsZSh0cnVlKTsKKyAgICBnX2Fzc2Vy
dCh0ZXN0LT5pc0VkaXRhYmxlKCkpOworICAgIHRlc3QtPnNldEVkaXRhYmxlKGZhbHNlKTsKKyAg
ICBnX2Fzc2VydCghdGVzdC0+aXNFZGl0YWJsZSgpKTsKKworICAgIC8vIENoZWNrIGlmIHZpZXcg
aXMgaW5kZWVkIG5vbi1lZGl0YWJsZS4KKyAgICBnX2Fzc2VydCghdGVzdC0+Y2FuRXhlY3V0ZUVk
aXRpbmdDb21tYW5kKFdFQktJVF9FRElUSU5HX0NPTU1BTkRfQ1VUKSk7CisgICAgZ19hc3NlcnQo
IXRlc3QtPmNhbkV4ZWN1dGVFZGl0aW5nQ29tbWFuZChXRUJLSVRfRURJVElOR19DT01NQU5EX1BB
U1RFKSk7Cit9CisKIHZvaWQgYmVmb3JlQWxsKCkKIHsKKyAgICBFZGl0b3JUZXN0OjphZGQoIldl
YktpdFdlYlZpZXciLCAiZWRpdGFibGUvbm9uLWVkaXRhYmxlIiwgdGVzdFdlYlZpZXdFZGl0b3JO
b25FZGl0YWJsZSk7CisgICAgRWRpdG9yVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImVkaXRh
YmxlL2VkaXRhYmxlLW9uLW5vbi1lZGl0YWJsZSIsIHRlc3RXZWJWaWV3RWRpdG9yRWRpdGFibGVP
bk5vbkVkaXRhYmxlKTsKKyAgICBFZGl0b3JUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAiZWRp
dGFibGUvZWRpdGFibGUtb24tY29udGVudC1lZGl0YWJsZSIsIHRlc3RXZWJWaWV3RWRpdG9yRWRp
dGFibGVPbkNvbnRlbnRFZGl0YWJsZSk7CiAgICAgRWRpdG9yVGVzdDo6YWRkKCJXZWJLaXRXZWJW
aWV3IiwgImN1dC1jb3B5LXBhc3RlL25vbi1lZGl0YWJsZSIsIHRlc3RXZWJWaWV3RWRpdG9yQ3V0
Q29weVBhc3RlTm9uRWRpdGFibGUpOwogICAgIEVkaXRvclRlc3Q6OmFkZCgiV2ViS2l0V2ViVmll
dyIsICJjdXQtY29weS1wYXN0ZS9lZGl0YWJsZSIsIHRlc3RXZWJWaWV3RWRpdG9yQ3V0Q29weVBh
c3RlRWRpdGFibGUpOwogICAgIEVkaXRvclRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJzZWxl
Y3QtYWxsL25vbi1lZGl0YWJsZSIsIHRlc3RXZWJWaWV3RWRpdG9yU2VsZWN0QWxsTm9uRWRpdGFi
bGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJW
aWV3VGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdU
ZXN0LmNwcAppbmRleCBlYThiNmIzZmViMDUyZTg3NjYwMzdlNjE3YzIzMTY3M2YwYzFjM2EzLi43
NmZmN2E1ZGMwNjQ3ZDc0MzEwY2MxOWIzMTQ0ZjM3MmFkNDJhZWYzIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmNwcApAQCAtMjYwLDYg
KzI2MCwxNiBAQCB2b2lkIFdlYlZpZXdUZXN0OjpzZWxlY3RBbGwoKQogICAgIHdlYmtpdF93ZWJf
dmlld19leGVjdXRlX2VkaXRpbmdfY29tbWFuZChtX3dlYlZpZXcsICJTZWxlY3RBbGwiKTsKIH0K
IAorYm9vbCBXZWJWaWV3VGVzdDo6aXNFZGl0YWJsZSgpCit7CisgICAgd2Via2l0X3dlYl92aWV3
X2lzX2VkaXRhYmxlKG1fd2ViVmlldyk7Cit9CisKK3ZvaWQgV2ViVmlld1Rlc3Q6OnNldEVkaXRh
YmxlKGJvb2wgZWRpdGFibGUpCit7CisgICAgd2Via2l0X3dlYl92aWV3X3NldF9lZGl0YWJsZSht
X3dlYlZpZXcsIGVkaXRhYmxlKTsKK30KKwogc3RhdGljIHZvaWQgcmVzb3VyY2VHZXREYXRhQ2Fs
bGJhY2soR09iamVjdCogb2JqZWN0LCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgZ3BvaW50ZXIgdXNl
ckRhdGEpCiB7CiAgICAgc2l6ZV90IGRhdGFTaXplOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5oIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5oCmluZGV4IDJjMzY5MmE1NjJlNTc0ODBiOTBi
N2ZmZmVmNzU2Mzk4MmRiMjZhM2EuLmFkMzllZjYwYmU4ZmE1NzNjYTJkNzVjNjJlOTQzZjNkNjUx
MWVhMWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2Vi
Vmlld1Rlc3QuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZp
ZXdUZXN0LmgKQEAgLTUzLDYgKzUzLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2VsZWN0QWxsKCk7
CiAgICAgY29uc3QgY2hhciogbWFpblJlc291cmNlRGF0YShzaXplX3QmIG1haW5SZXNvdXJjZURh
dGFTaXplKTsKIAorICAgIGJvb2wgaXNFZGl0YWJsZSgpOworICAgIHZvaWQgc2V0RWRpdGFibGUo
Ym9vbCk7CisKICAgICB2b2lkIG1vdXNlTW92ZVRvKGludCB4LCBpbnQgeSwgdW5zaWduZWQgbW91
c2VNb2RpZmllcnMgPSAwKTsKICAgICB2b2lkIGNsaWNrTW91c2VCdXR0b24oaW50IHgsIGludCB5
LCB1bnNpZ25lZCBidXR0b24gPSAxLCB1bnNpZ25lZCBtb3VzZU1vZGlmaWVycyA9IDApOwogICAg
IHZvaWQga2V5U3Ryb2tlKHVuc2lnbmVkIGtleVZhbCwgdW5zaWduZWQga2V5TW9kaWZpZXJzID0g
MCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244976</attachid>
            <date>2015-01-20 02:20:53 -0800</date>
            <delta_ts>2015-01-20 02:33:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139443-20150120112100.patch</filename>
            <type>text/plain</type>
            <size>18301</size>
            <attacher name="Tomas Popela">tpopela</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4NjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOThhYjlkZjYxYTI3YTFi
YmZjYjY4YjA2ZDI3ZmE4ZjI3MTc4YjVmYy4uMmVhM2I1YWI0MTY5NjVkNGUzNmQzOThkNWQ5ZDIy
NGZlNDY1YmY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTAxLTIwICBUb21h
cyBQb3BlbGEgIDx0cG9wZWxhQHJlZGhhdC5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIEFQSSB0
byBzZXQgdGhlIHdlYiB2aWV3IGVkaXRhYmxlIGludG8gV2ViS2l0MiBHVEsrIEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDQzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBhIHdheSB0
byBzZXQgdGhlIHdlYiB2aWV3IGVkaXRhYmxlLCB3aXRob3V0IGFjY2Vzc2luZyB0aGUgRE9NCisg
ICAgICAgIGFuZCBzZXR0aW5nIHRoZSBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIHRvIGVsZW1l
bnRzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHA6Cisg
ICAgICAgICh3ZWJraXRXZWJWaWV3U2V0UHJvcGVydHkpOgorICAgICAgICAod2Via2l0V2ViVmll
d0dldFByb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19pc19lZGl0YWJsZSk6CisgICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfc2V0X2VkaXRhYmxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNl
Y3Rpb25zLnR4dDoKKwogMjAxNS0wMS0xOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5j
b20+CiAKICAgICAgICAgQXR0ZW1wdCB0byBmaXggdGhlIGlPUyBidWlsZCBhZnRlciA8aHR0cDov
L3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTc4NjMxPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCAxM2JkMzM4YjA4ODQy
OWM5MWZjODI3NWU1NDJmYjAyYmE4NTg2YTcyLi44OTEwYzUyZjEzYWFhN2RhMGJiY2MxNDM3Zjk5
NzZhMDEzNDg5OGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMTQ5LDcgKzE0OSw4IEBAIGVudW0gewogICAgIFBST1Bf
VVJJLAogICAgIFBST1BfWk9PTV9MRVZFTCwKICAgICBQUk9QX0lTX0xPQURJTkcsCi0gICAgUFJP
UF9JU19QTEFZSU5HX0FVRElPCisgICAgUFJPUF9JU19QTEFZSU5HX0FVRElPLAorICAgIFBST1Bf
RURJVEFCTEUKIH07CiAKIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgR1JlZlB0cjxXZWJLaXRX
ZWJSZXNvdXJjZT4gPiBMb2FkaW5nUmVzb3VyY2VzTWFwOwpAQCAtNjg4LDYgKzY4OSw5IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdTZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50
IHByb3BJZCwgY29uc3QgR1ZhbHVlCiAgICAgY2FzZSBQUk9QX1pPT01fTEVWRUw6CiAgICAgICAg
IHdlYmtpdF93ZWJfdmlld19zZXRfem9vbV9sZXZlbCh3ZWJWaWV3LCBnX3ZhbHVlX2dldF9kb3Vi
bGUodmFsdWUpKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0VESVRBQkxFOgorICAg
ICAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0X2VkaXRhYmxlKHdlYlZpZXcsIGdfdmFsdWVfZ2V0X2Jv
b2xlYW4odmFsdWUpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19P
QkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElkLCBwYXJhbVNwZWMp
OwogICAgIH0KQEAgLTcyOCw2ICs3MzIsOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3R2V0
UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIEdWYWx1ZSogdmFsdQogICAg
IGNhc2UgUFJPUF9JU19QTEFZSU5HX0FVRElPOgogICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFu
KHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfaXNfcGxheWluZ19hdWRpbyh3ZWJWaWV3KSk7CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9FRElUQUJMRToKKyAgICAgICAgZ192YWx1ZV9zZXRf
Ym9vbGVhbih2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2lzX2VkaXRhYmxlKHdlYlZpZXcpKTsKKyAg
ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElE
X1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElkLCBwYXJhbVNwZWMpOwogICAgIH0KQEAgLTk1OSw2
ICs5NjYsMjQgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoV2ViS2l0
V2ViVmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVB
REFCTEUpKTsKIAogICAgIC8qKgorICAgICAqIFdlYktpdFdlYlZpZXc6ZWRpdGFibGU6CisgICAg
ICoKKyAgICAgKiBXaGV0aGVyIHRoZSBwYWdlcyBsb2FkZWQgaW5zaWRlICNXZWJLaXRXZWJWaWV3
IGFyZSBlZGl0YWJsZS4gRm9yIG1vcmUKKyAgICAgKiBpbmZvcm1hdGlvbiBzZWUgd2Via2l0X3dl
Yl92aWV3X3NldF9lZGl0YWJsZSgpLgorICAgICAqCisgICAgICogU2luY2U6IDIuOAorICAgICAq
LworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdPYmplY3RD
bGFzcywKKyAgICAgICAgUFJPUF9FRElUQUJMRSwKKyAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xl
YW4oCisgICAgICAgICAgICAiZWRpdGFibGUiLAorICAgICAgICAgICAgXygiRWRpdGFibGUiKSwK
KyAgICAgICAgICAgIF8oIldoZXRoZXIgdGhlIGNvbnRlbnQgY2FuIGJlIG1vZGlmaWVkIGJ5IHRo
ZSB1c2VyLiIpLAorICAgICAgICAgICAgRkFMU0UsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1f
UkVBRFdSSVRFKSk7CisKKyAgICAvKioKICAgICAgKiBXZWJLaXRXZWJWaWV3Ojpsb2FkLWNoYW5n
ZWQ6CiAgICAgICogQHdlYl92aWV3OiB0aGUgI1dlYktpdFdlYlZpZXcgb24gd2hpY2ggdGhlIHNp
Z25hbCBpcyBlbWl0dGVkCiAgICAgICogQGxvYWRfZXZlbnQ6IHRoZSAjV2ViS2l0TG9hZEV2ZW50
CkBAIC0zNTA0LDMgKzM1MjksNTMgQEAgdm9pZCB3ZWJraXRXZWJWaWV3V2ViUHJvY2Vzc0NyYXNo
ZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICBnX3NpZ25hbF9lbWl0KHdlYlZpZXcsIHNp
Z25hbHNbV0VCX1BST0NFU1NfQ1JBU0hFRF0sIDAsICZyZXR1cm5WYWx1ZSk7CiB9CiAKKy8qKgor
ICogd2Via2l0X3dlYl92aWV3X2lzX2VkaXRhYmxlOgorICogQHdlYl92aWV3OiBhICNXZWJLaXRX
ZWJWaWV3CisgKgorICogR2V0cyB3aGV0aGVyIHRoZSB1c2VyIGlzIGFsbG93ZWQgdG8gZWRpdCB0
aGUgSFRNTCBkb2N1bWVudC4gV2hlbiBAd2ViX3ZpZXcKKyAqIGlzIG5vdCBlZGl0YWJsZSBhbiBl
bGVtZW50IGluIHRoZSBIVE1MIGRvY3VtZW50IGNhbiBvbmx5IGJlIGVkaXRlZCBpZiB0aGUKKyAq
IENPTlRFTlRFRElUQUJMRSBhdHRyaWJ1dGUgaGFzIGJlZW4gc2V0IG9uIHRoZSBlbGVtZW50IG9y
IG9uZSBvZiBpdHMgcGFyZW50CisgKiBlbGVtZW50cy4gQnkgZGVmYXVsdCBhICNXZWJLaXRXZWJW
aWV3IGlzIG5vdCBlZGl0YWJsZS4KKyAqCisgKiBSZXR1cm5zOiAlVFJVRSBpZiB0aGUgdXNlciBp
cyBhbGxvd2VkIHRvIGVkaXQgdGhlIEhUTUwgZG9jdW1lbnQsIG9yICVGQUxTRSBvdGhlcndpc2Uu
CisgKgorICogU2luY2U6IDIuOAorICovCitnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfaXNfZWRp
dGFibGUoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIEZBTFNFKTsKKworICAgIHJldHVybiBnZXRQ
YWdlKHdlYlZpZXcpLT5pc0VkaXRhYmxlKCk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl92aWV3
X3NldF9lZGl0YWJsZToKKyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICogQGVkaXRh
YmxlOiBhICNnYm9vbGVhbiBpbmRpY2F0aW5nIHRoZSBlZGl0YWJsZSBzdGF0ZQorICoKKyAqIFNl
dHMgd2hldGhlciB0aGUgdXNlciBpcyBhbGxvd2VkIHRvIGVkaXQgdGhlIEhUTUwgZG9jdW1lbnQu
CisgKgorICogSWYgQGVkaXRhYmxlIGlzICVUUlVFLCBAd2ViX3ZpZXcgYWxsb3dzIHRoZSB1c2Vy
IHRvIGVkaXQgdGhlIEhUTUwgZG9jdW1lbnQuIElmCisgKiBAZWRpdGFibGUgaXMgJUZBTFNFLCBh
biBlbGVtZW50IGluIEB3ZWJfdmlldydzIGRvY3VtZW50IGNhbiBvbmx5IGJlIGVkaXRlZCBpZiB0
aGUKKyAqIENPTlRFTlRFRElUQUJMRSBhdHRyaWJ1dGUgaGFzIGJlZW4gc2V0IG9uIHRoZSBlbGVt
ZW50IG9yIG9uZSBvZiBpdHMgcGFyZW50CisgKiBlbGVtZW50cy4gQnkgZGVmYXVsdCBhICNXZWJL
aXRXZWJWaWV3IGlzIG5vdCBlZGl0YWJsZS4KKyAqCisgKiBOb3JtYWxseSwgYSBIVE1MIGRvY3Vt
ZW50IGlzIG5vdCBlZGl0YWJsZSB1bmxlc3MgdGhlIGVsZW1lbnRzIHdpdGhpbiB0aGUKKyAqIGRv
Y3VtZW50IGFyZSBlZGl0YWJsZS4gVGhpcyBmdW5jdGlvbiBwcm92aWRlcyBhIHdheSB0byBtYWtl
IHRoZSBjb250ZW50cworICogb2YgYSAjV2ViS2l0V2ViVmlldyBlZGl0YWJsZSB3aXRob3V0IGFs
dGVyaW5nIHRoZSBkb2N1bWVudCBvciBET00gc3RydWN0dXJlLgorICoKKyAqIFNpbmNlOiAyLjgK
KyAqLwordm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2VkaXRhYmxlKFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcsIGdib29sZWFuIGVkaXRhYmxlKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lU
X0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKKworICAgIGlmIChlZGl0YWJsZSA9PSBnZXRQYWdlKHdl
YlZpZXcpLT5pc0VkaXRhYmxlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGdldFBhZ2Uod2Vi
VmlldyktPnNldEVkaXRhYmxlKGVkaXRhYmxlKTsKKworICAgIGdfb2JqZWN0X25vdGlmeShHX09C
SkVDVCh3ZWJWaWV3KSwgImVkaXRhYmxlIik7Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAppbmRleCBkYTNmMTY1ZmRiNmYwMzQ3NjAx
NThmN2I3Njg3ZjUwYTUwM2M0ZjgwLi42OTY1ZDcwNjdkNzIwNzEzMzgzYzg5NjUxOWVlZGZkYjI4
NWNmZGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlldy5oCkBAIC00NzQsNiArNDc0LDEzIEBAIHdlYmtpdF93ZWJfdmlld19nZXRfc25hcHNo
b3RfZmluaXNoICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcKIFdFQktJVF9BUEkgV2Vi
S2l0VXNlckNvbnRlbnRNYW5hZ2VyICoKIHdlYmtpdF93ZWJfdmlld19nZXRfdXNlcl9jb250ZW50
X21hbmFnZXIgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3
KTsKIAorV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3dlYl92aWV3X2lzX2VkaXRhYmxlICAg
ICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3Zp
ZXcpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19zZXRfZWRpdGFibGUgICAg
ICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z2Jvb2xlYW4gICAgICAgICAgICAgICAgICBlZGl0YWJsZSk7CisKIEdfRU5EX0RFQ0xTCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93
ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKaW5kZXggZjM2NmQwYTAyODE0MzY5NTllY2Y2
OGRiMThkMDIzYjY2OTc4YjJhNy4uNGE5ZGRjYTIxNjRlMmUwNDM1NmE3ZWFhNWYxYmEyZTkzZjlj
MDFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93
ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CkBAIC0xOTksNiArMTk5LDggQEAgd2Vi
a2l0X3dlYl92aWV3X2Rvd25sb2FkX3VyaQogd2Via2l0X3dlYl92aWV3X2dldF90bHNfaW5mbwog
d2Via2l0X3dlYl92aWV3X2dldF9zbmFwc2hvdAogd2Via2l0X3dlYl92aWV3X2dldF9zbmFwc2hv
dF9maW5pc2gKK3dlYmtpdF93ZWJfdmlld19zZXRfZWRpdGFibGUKK3dlYmtpdF93ZWJfdmlld19p
c19lZGl0YWJsZQogCiA8U1VCU0VDVElPTiBXZWJLaXRKYXZhc2NyaXB0UmVzdWx0PgogV2ViS2l0
SmF2YXNjcmlwdFJlc3VsdApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDJmMjI2NjI3MzcxOGYxMzdhNjc2YWE2Y2Y3N2EyMjY0MTk3ODA3N2EuLjU1
OTg3MmRjYmIxNTNmYTJiYTRmZmViYzc0MmVjOWQxNGQwNzA4NGQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxNS0w
MS0yMCAgVG9tYXMgUG9wZWxhICA8dHBvcGVsYUByZWRoYXQuY29tPgorCisgICAgICAgIFtHVEtd
IEFkZCBBUEkgdG8gc2V0IHRoZSB3ZWIgdmlldyBlZGl0YWJsZSBpbnRvIFdlYktpdDIgR1RLKyBB
UEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQ0
MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0
ZSB0aGUgbmV3IHRlc3QgY2FzZXMgZm9yIHNldHRpbmcgdGhlIGVkaXRhYmxlIHByb3BlcnR5IG9u
IHRoZSB3ZWIKKyAgICAgICAgdmlldyBhbmQgb24gdGhlIGNvbnRlbnRlZGl0YWJsZSBlbmFibGVk
IGRvY3VtZW50LiBBbHNvIHJld29yayB0aGUKKyAgICAgICAgY3VycmVudCB0ZXN0cyB0aGF0IGFy
ZSBleHBlY3RpbmcgdGhhdCB0aGUgd2ViIHZpZXcgaXMgZWRpdGFibGUuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYlZpZXdFZGl0b3IuY3BwOgorICAg
ICAgICAobG9hZFRlc3RIdG1sKToKKyAgICAgICAgKHRlc3RXZWJWaWV3RWRpdG9yQ3V0Q29weVBh
c3RlTm9uRWRpdGFibGUpOgorICAgICAgICAodGVzdFdlYlZpZXdFZGl0b3JDdXRDb3B5UGFzdGVF
ZGl0YWJsZSk6CisgICAgICAgICh0ZXN0V2ViVmlld0VkaXRvclNlbGVjdEFsbE5vbkVkaXRhYmxl
KToKKyAgICAgICAgKHRlc3RXZWJWaWV3RWRpdG9yU2VsZWN0QWxsRWRpdGFibGUpOgorICAgICAg
ICAocnVuRWRpdG9yRWRpdGFibGVDdXRUZXN0cyk6CisgICAgICAgICh0ZXN0V2ViVmlld0VkaXRv
ckVkaXRhYmxlT25Ob25FZGl0YWJsZSk6CisgICAgICAgICh0ZXN0V2ViVmlld0VkaXRvckVkaXRh
YmxlT25Db250ZW50RWRpdGFibGUpOgorICAgICAgICAodGVzdFdlYlZpZXdFZGl0b3JOb25FZGl0
YWJsZSk6CisgICAgICAgIChiZWZvcmVBbGwpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ3Rr
L1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuY3BwOgorICAgICAgICAoV2ViVmlld1Rlc3Q6OmlzRWRp
dGFibGUpOgorICAgICAgICAoV2ViVmlld1Rlc3Q6OnNldEVkaXRhYmxlKToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0Lmg6CisKIDIwMTUtMDEtMTgg
IERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBpT1MgRVdTIHF1
ZXVlIG5hbWUgc2hvdWxkIGJlIGNvbnNpc3RlbnQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViVmlld0VkaXRvci5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYlZpZXdFZGl0b3IuY3BwCmluZGV4IDll
NjliZmE0OGUxYTYwZTg0ZWZhZDk0MDA2MWViN2EzOGRiNWZlYjIuLjIzY2ZkMTlkZWY5MjNkZjM1
NGJjZGFiNzk4MWE2MTkyODljNWRlNWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViVmlld0VkaXRvci5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJWaWV3RWRpdG9yLmNwcApAQCAtNzMsMjUg
KzczLDQyIEBAIHB1YmxpYzoKICAgICAgICAgZ19tYWluX2xvb3BfcnVuKG1fbWFpbkxvb3ApOwog
ICAgIH0KIAorICAgIGdjaGFyKiBjdXRTZWxlY3Rpb24oKQorICAgIHsKKyAgICAgICAgZ19hc3Nl
cnQoY2FuRXhlY3V0ZUVkaXRpbmdDb21tYW5kKFdFQktJVF9FRElUSU5HX0NPTU1BTkRfQ1VUKSk7
CisgICAgICAgIGdfYXNzZXJ0KGNhbkV4ZWN1dGVFZGl0aW5nQ29tbWFuZChXRUJLSVRfRURJVElO
R19DT01NQU5EX1BBU1RFKSk7CisKKyAgICAgICAgd2Via2l0X3dlYl92aWV3X2V4ZWN1dGVfZWRp
dGluZ19jb21tYW5kKG1fd2ViVmlldywgV0VCS0lUX0VESVRJTkdfQ09NTUFORF9DVVQpOworICAg
ICAgICAvLyBUaGVyZSdzIG5vIHdheSB0byBrbm93IHdoZW4gdGhlIHNlbGVjdGlvbiBoYXMgYmVl
biBjdXQgdG8KKyAgICAgICAgLy8gdGhlIGNsaXBib2FyZCwgc28gdXNlIGEgdGltZW91dCBzb3Vy
Y2UgdG8gcXVlcnkgdGhlIGNsaXBib2FyZC4KKyAgICAgICAgbV90cmllc0NvdW50ID0gMDsKKyAg
ICAgICAgZ190aW1lb3V0X2FkZChrQ2xpcGJvYXJkV2FpdFRpbWVvdXQsIHJlaW50ZXJwcmV0X2Nh
c3Q8R1NvdXJjZUZ1bmM+KHdhaXRGb3JDbGlwYm9hcmRUZXh0KSwgdGhpcyk7CisgICAgICAgIGdf
bWFpbl9sb29wX3J1bihtX21haW5Mb29wKTsKKworICAgICAgICByZXR1cm4gZ3RrX2NsaXBib2Fy
ZF93YWl0X2Zvcl90ZXh0IChtX2NsaXBib2FyZCk7CisgICAgfQorCiAgICAgR3RrQ2xpcGJvYXJk
KiBtX2NsaXBib2FyZDsKICAgICBib29sIG1fY2FuRXhlY3V0ZUVkaXRpbmdDb21tYW5kOwogICAg
IHNpemVfdCBtX3RyaWVzQ291bnQ7CiB9OwogCitzdGF0aWMgY29uc3QgY2hhciogc2VsZWN0ZWRT
cGFuSFRNTEZvcm1hdCA9CisgICAgIjxodG1sPjxib2R5IGNvbnRlbnRFZGl0YWJsZT1cIiVzXCI+
IgorICAgICI8c3BhbiBpZD1cIm1haW5zcGFuXCI+QWxsIHdvcmsgYW5kIG5vIHBsYXkgPHNwYW4g
aWQ9XCJzdWJzcGFuXCI+bWFrZSBKYWNrIGEgZHVsbDwvc3Bhbj4gYm95Ljwvc3Bhbj4iCisgICAg
IjxzY3JpcHQ+ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkuY29sbGFwc2UoKTtcbiIKKyAgICAiZG9j
dW1lbnQuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3N1YnNwYW4nKSk7XG4iCisgICAgIjwvc2NyaXB0PjwvYm9keT48L2h0bWw+IjsKKwog
c3RhdGljIHZvaWQgdGVzdFdlYlZpZXdFZGl0b3JDdXRDb3B5UGFzdGVOb25FZGl0YWJsZShFZGl0
b3JUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogewotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBz
ZWxlY3RlZFNwYW5IVE1MID0gIjxodG1sPjxib2R5IGNvbnRlbnRFZGl0YWJsZT1cImZhbHNlXCI+
IgotICAgICAgICAiPHNwYW4gaWQ9XCJtYWluc3BhblwiPkFsbCB3b3JrIGFuZCBubyBwbGF5IDxz
cGFuIGlkPVwic3Vic3BhblwiPm1ha2UgSmFjayBhIGR1bGw8L3NwYW4+IGJveS48L3NwYW4+Igot
ICAgICAgICAiPHNjcmlwdD5kb2N1bWVudC5nZXRTZWxlY3Rpb24oKS5jb2xsYXBzZSgpO1xuIgot
ICAgICAgICAiZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3N1YnNwYW4nKSk7XG4iCi0gICAgICAgICI8L3NjcmlwdD48L2Jv
ZHk+PC9odG1sPiI7Ci0KICAgICAvLyBOb3RoaW5nIGxvYWRlZCB5ZXQuCiAgICAgZ19hc3NlcnQo
IXRlc3QtPmNhbkV4ZWN1dGVFZGl0aW5nQ29tbWFuZChXRUJLSVRfRURJVElOR19DT01NQU5EX0NV
VCkpOwogICAgIGdfYXNzZXJ0KCF0ZXN0LT5jYW5FeGVjdXRlRWRpdGluZ0NvbW1hbmQoV0VCS0lU
X0VESVRJTkdfQ09NTUFORF9DT1BZKSk7CiAgICAgZ19hc3NlcnQoIXRlc3QtPmNhbkV4ZWN1dGVF
ZGl0aW5nQ29tbWFuZChXRUJLSVRfRURJVElOR19DT01NQU5EX1BBU1RFKSk7CiAKLSAgICB0ZXN0
LT5sb2FkSHRtbChzZWxlY3RlZFNwYW5IVE1MLCAwKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IHNl
bGVjdGVkU3BhbkhUTUwoZ19zdHJkdXBfcHJpbnRmKHNlbGVjdGVkU3BhbkhUTUxGb3JtYXQsICJm
YWxzZSIpKTsKKyAgICB0ZXN0LT5sb2FkSHRtbChzZWxlY3RlZFNwYW5IVE1MLmdldCgpLCBudWxs
cHRyKTsKICAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKIAogICAgIGdfYXNzZXJ0
KHRlc3QtPmNhbkV4ZWN1dGVFZGl0aW5nQ29tbWFuZChXRUJLSVRfRURJVElOR19DT01NQU5EX0NP
UFkpKTsKQEAgLTEwNywxOCArMTI0LDE3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3RWRpdG9y
Q3V0Q29weVBhc3RlTm9uRWRpdGFibGUoRWRpdG9yVGVzdCogdGVzdCwgZ2NvbnN0cG9pCiAKIHN0
YXRpYyB2b2lkIHRlc3RXZWJWaWV3RWRpdG9yQ3V0Q29weVBhc3RlRWRpdGFibGUoRWRpdG9yVGVz
dCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogc2VsZWN0
ZWRTcGFuSFRNTCA9ICI8aHRtbD48Ym9keSBjb250ZW50RWRpdGFibGU9XCJ0cnVlXCI+IgotICAg
ICAgICAiPHNwYW4gaWQ9XCJtYWluc3BhblwiPkFsbCB3b3JrIGFuZCBubyBwbGF5IDxzcGFuPm1h
a2UgSmFjayBhIGR1bGw8L3NwYW4+IGJveS48L3NwYW4+IgotICAgICAgICAiPHNjcmlwdD5kb2N1
bWVudC5nZXRTZWxlY3Rpb24oKS5jb2xsYXBzZSgpO1xuIgotICAgICAgICAiZG9jdW1lbnQuZ2V0
U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21h
aW5zcGFuJykpO1xuIgotICAgICAgICAiPC9zY3JpcHQ+PC9ib2R5PjwvaHRtbD4iOwotCiAgICAg
Ly8gTm90aGluZyBsb2FkZWQgeWV0LgogICAgIGdfYXNzZXJ0KCF0ZXN0LT5jYW5FeGVjdXRlRWRp
dGluZ0NvbW1hbmQoV0VCS0lUX0VESVRJTkdfQ09NTUFORF9DVVQpKTsKICAgICBnX2Fzc2VydCgh
dGVzdC0+Y2FuRXhlY3V0ZUVkaXRpbmdDb21tYW5kKFdFQktJVF9FRElUSU5HX0NPTU1BTkRfQ09Q
WSkpOwogICAgIGdfYXNzZXJ0KCF0ZXN0LT5jYW5FeGVjdXRlRWRpdGluZ0NvbW1hbmQoV0VCS0lU
X0VESVRJTkdfQ09NTUFORF9QQVNURSkpOwogCi0gICAgdGVzdC0+bG9hZEh0bWwoc2VsZWN0ZWRT
cGFuSFRNTCwgMCk7CisgICAgZ19hc3NlcnQoIXRlc3QtPmlzRWRpdGFibGUoKSk7CisgICAgdGVz
dC0+c2V0RWRpdGFibGUodHJ1ZSk7CisgICAgZ19hc3NlcnQodGVzdC0+aXNFZGl0YWJsZSgpKTsK
KworICAgIEdVbmlxdWVQdHI8Y2hhcj4gc2VsZWN0ZWRTcGFuSFRNTChnX3N0cmR1cF9wcmludGYo
c2VsZWN0ZWRTcGFuSFRNTEZvcm1hdCwgImZhbHNlIikpOworICAgIHRlc3QtPmxvYWRIdG1sKHNl
bGVjdGVkU3BhbkhUTUwuZ2V0KCksIG51bGxwdHIpOwogICAgIHRlc3QtPndhaXRVbnRpbExvYWRG
aW5pc2hlZCgpOwogCiAgICAgLy8gVGhlcmUncyBhIHNlbGVjdGlvbi4KQEAgLTEyOCwyMCArMTQ0
LDE1IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3RWRpdG9yQ3V0Q29weVBhc3RlRWRpdGFibGUo
RWRpdG9yVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlCiAKICAgICB0ZXN0LT5jb3B5Q2xpcGJvYXJk
KCk7CiAgICAgR1VuaXF1ZVB0cjxjaGFyPiBjbGlwYm9hcmRUZXh0KGd0a19jbGlwYm9hcmRfd2Fp
dF9mb3JfdGV4dCh0ZXN0LT5tX2NsaXBib2FyZCkpOwotICAgIGdfYXNzZXJ0X2NtcHN0cihjbGlw
Ym9hcmRUZXh0LmdldCgpLCA9PSwgIkFsbCB3b3JrIGFuZCBubyBwbGF5IG1ha2UgSmFjayBhIGR1
bGwgYm95LiIpOworICAgIGdfYXNzZXJ0X2NtcHN0cihjbGlwYm9hcmRUZXh0LmdldCgpLCA9PSwg
Im1ha2UgSmFjayBhIGR1bGwiKTsKIH0KIAogc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdFZGl0b3JT
ZWxlY3RBbGxOb25FZGl0YWJsZShFZGl0b3JUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogewot
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzZWxlY3RlZFNwYW5IVE1MID0gIjxodG1sPjxib2R5IGNv
bnRlbnRFZGl0YWJsZT1cImZhbHNlXCI+IgotICAgICAgICAiPHNwYW4gaWQ9XCJtYWluc3Bhblwi
PkFsbCB3b3JrIGFuZCBubyBwbGF5IDxzcGFuIGlkPVwic3Vic3BhblwiPm1ha2UgSmFjayBhIGR1
bGw8L3NwYW4+IGJveS48L3NwYW4+IgotICAgICAgICAiPHNjcmlwdD5kb2N1bWVudC5nZXRTZWxl
Y3Rpb24oKS5jb2xsYXBzZSgpO1xuIgotICAgICAgICAiZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCku
c2VsZWN0QWxsQ2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1YnNwYW4nKSk7XG4i
Ci0gICAgICAgICI8L3NjcmlwdD48L2JvZHk+PC9odG1sPiI7Ci0KICAgICBnX2Fzc2VydCh0ZXN0
LT5jYW5FeGVjdXRlRWRpdGluZ0NvbW1hbmQoV0VCS0lUX0VESVRJTkdfQ09NTUFORF9TRUxFQ1Rf
QUxMKSk7CiAKLSAgICB0ZXN0LT5sb2FkSHRtbChzZWxlY3RlZFNwYW5IVE1MLCAwKTsKKyAgICBH
VW5pcXVlUHRyPGNoYXI+IHNlbGVjdGVkU3BhbkhUTUwoZ19zdHJkdXBfcHJpbnRmKHNlbGVjdGVk
U3BhbkhUTUxGb3JtYXQsICJmYWxzZSIpKTsKKyAgICB0ZXN0LT5sb2FkSHRtbChzZWxlY3RlZFNw
YW5IVE1MLmdldCgpLCBudWxscHRyKTsKICAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQo
KTsKIAogICAgIGdfYXNzZXJ0KHRlc3QtPmNhbkV4ZWN1dGVFZGl0aW5nQ29tbWFuZChXRUJLSVRf
RURJVElOR19DT01NQU5EX1NFTEVDVF9BTEwpKTsKQEAgLTE2MiwxNSArMTczLDE0IEBAIHN0YXRp
YyB2b2lkIHRlc3RXZWJWaWV3RWRpdG9yU2VsZWN0QWxsTm9uRWRpdGFibGUoRWRpdG9yVGVzdCog
dGVzdCwgZ2NvbnN0cG9pbnRlCiAKIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3RWRpdG9yU2VsZWN0
QWxsRWRpdGFibGUoRWRpdG9yVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKLSAgICBzdGF0
aWMgY29uc3QgY2hhciogc2VsZWN0ZWRTcGFuSFRNTCA9ICI8aHRtbD48Ym9keSBjb250ZW50RWRp
dGFibGU9XCJ0cnVlXCI+IgotICAgICAgICAiPHNwYW4gaWQ9XCJtYWluc3BhblwiPkFsbCB3b3Jr
IGFuZCBubyBwbGF5IDxzcGFuIGlkPVwic3Vic3BhblwiPm1ha2UgSmFjayBhIGR1bGw8L3NwYW4+
IGJveS48L3NwYW4+IgotICAgICAgICAiPHNjcmlwdD5kb2N1bWVudC5nZXRTZWxlY3Rpb24oKS5j
b2xsYXBzZSgpO1xuIgotICAgICAgICAiZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxs
Q2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1YnNwYW4nKSk7XG4iCi0gICAgICAg
ICI8L3NjcmlwdD48L2JvZHk+PC9odG1sPiI7Ci0KICAgICBnX2Fzc2VydCh0ZXN0LT5jYW5FeGVj
dXRlRWRpdGluZ0NvbW1hbmQoV0VCS0lUX0VESVRJTkdfQ09NTUFORF9TRUxFQ1RfQUxMKSk7CiAK
LSAgICB0ZXN0LT5sb2FkSHRtbChzZWxlY3RlZFNwYW5IVE1MLCAwKTsKKyAgICBnX2Fzc2VydCgh
dGVzdC0+aXNFZGl0YWJsZSgpKTsKKyAgICB0ZXN0LT5zZXRFZGl0YWJsZSh0cnVlKTsKKyAgICBn
X2Fzc2VydCh0ZXN0LT5pc0VkaXRhYmxlKCkpOworCisgICAgR1VuaXF1ZVB0cjxjaGFyPiBzZWxl
Y3RlZFNwYW5IVE1MKGdfc3RyZHVwX3ByaW50ZihzZWxlY3RlZFNwYW5IVE1MRm9ybWF0LCAiZmFs
c2UiKSk7CisgICAgdGVzdC0+bG9hZEh0bWwoc2VsZWN0ZWRTcGFuSFRNTC5nZXQoKSwgbnVsbHB0
cik7CiAgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CiAKICAgICBnX2Fzc2VydCh0
ZXN0LT5jYW5FeGVjdXRlRWRpdGluZ0NvbW1hbmQoV0VCS0lUX0VESVRJTkdfQ09NTUFORF9TRUxF
Q1RfQUxMKSk7CkBAIC0xODksOCArMTk5LDY1IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3RWRp
dG9yU2VsZWN0QWxsRWRpdGFibGUoRWRpdG9yVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAg
ICBnX2Fzc2VydF9jbXBzdHIoY2xpcGJvYXJkVGV4dC5nZXQoKSwgPT0sICJBbGwgd29yayBhbmQg
bm8gcGxheSBtYWtlIEphY2sgYSBkdWxsIGJveS4iKTsKIH0KIAorc3RhdGljIHZvaWQgbG9hZENv
bnRlbnRzQW5kVHJ5VG9DdXRTZWxlY3Rpb24oRWRpdG9yVGVzdCogdGVzdCwgYm9vbCBjb250ZW50
RWRpdGFibGUpCit7CisgICAgLy8gVmlldyBpcyBub3QgZWRpdGFibGUgYnkgZGVmYXVsdC4KKyAg
ICBnX2Fzc2VydCghdGVzdC0+aXNFZGl0YWJsZSgpKTsKKworICAgIEdVbmlxdWVQdHI8Y2hhcj4g
c2VsZWN0ZWRTcGFuSFRNTChnX3N0cmR1cF9wcmludGYoc2VsZWN0ZWRTcGFuSFRNTEZvcm1hdCwg
Y29udGVudEVkaXRhYmxlID8gInRydWUiIDogImZhbHNlIikpOworICAgIHRlc3QtPmxvYWRIdG1s
KHNlbGVjdGVkU3BhbkhUTUwuZ2V0KCksIG51bGxwdHIpOworICAgIHRlc3QtPndhaXRVbnRpbExv
YWRGaW5pc2hlZCgpOworCisgICAgZ19hc3NlcnQoIXRlc3QtPmlzRWRpdGFibGUoKSk7CisgICAg
dGVzdC0+c2V0RWRpdGFibGUodHJ1ZSk7CisgICAgZ19hc3NlcnQodGVzdC0+aXNFZGl0YWJsZSgp
KTsKKworICAgIC8vIEN1dCB0aGUgc2VsZWN0aW9uIHRvIHRoZSBjbGlwYm9hcmQgdG8gc2VlIGlm
IHRoZSB2aWV3IGlzIGluZGVlZCBlZGl0YWJsZS4KKyAgICBHVW5pcXVlUHRyPGNoYXI+IGNsaXBi
b2FyZFRleHQodGVzdC0+Y3V0U2VsZWN0aW9uKCkpOworICAgIGdfYXNzZXJ0X2NtcHN0cihjbGlw
Ym9hcmRUZXh0LmdldCgpLCA9PSwgIm1ha2UgSmFjayBhIGR1bGwiKTsKKworICAgIC8vIFJlc2V0
IHRoZSBlZGl0YWJsZSBmb3IgbmV4dCB0ZXN0LgorICAgIHRlc3QtPnNldEVkaXRhYmxlKGZhbHNl
KTsKKyAgICBnX2Fzc2VydCghdGVzdC0+aXNFZGl0YWJsZSgpKTsKK30KKworc3RhdGljIHZvaWQg
dGVzdFdlYlZpZXdFZGl0b3JOb25FZGl0YWJsZShFZGl0b3JUZXN0KiB0ZXN0KQoreworICAgIEdV
bmlxdWVQdHI8Y2hhcj4gc2VsZWN0ZWRTcGFuSFRNTChnX3N0cmR1cF9wcmludGYoc2VsZWN0ZWRT
cGFuSFRNTEZvcm1hdCwgImZhbHNlIikpOworICAgIHRlc3QtPmxvYWRIdG1sKHNlbGVjdGVkU3Bh
bkhUTUwuZ2V0KCksIG51bGxwdHIpOworICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgp
OworCisgICAgZ19hc3NlcnQoIXRlc3QtPmlzRWRpdGFibGUoKSk7CisgICAgdGVzdC0+c2V0RWRp
dGFibGUodHJ1ZSk7CisgICAgZ19hc3NlcnQodGVzdC0+aXNFZGl0YWJsZSgpKTsKKyAgICB0ZXN0
LT5zZXRFZGl0YWJsZShmYWxzZSk7CisgICAgZ19hc3NlcnQoIXRlc3QtPmlzRWRpdGFibGUoKSk7
CisKKyAgICAvLyBDaGVjayBpZiB2aWV3IGlzIGluZGVlZCBub24tZWRpdGFibGUuCisgICAgZ19h
c3NlcnQoIXRlc3QtPmNhbkV4ZWN1dGVFZGl0aW5nQ29tbWFuZChXRUJLSVRfRURJVElOR19DT01N
QU5EX0NVVCkpOworICAgIGdfYXNzZXJ0KCF0ZXN0LT5jYW5FeGVjdXRlRWRpdGluZ0NvbW1hbmQo
V0VCS0lUX0VESVRJTkdfQ09NTUFORF9QQVNURSkpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0V2Vi
Vmlld0VkaXRvckVkaXRhYmxlKEVkaXRvclRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7Cisg
ICAgdGVzdFdlYlZpZXdFZGl0b3JOb25FZGl0YWJsZSh0ZXN0KTsKKworICAgIC8vIFJlc2V0IHRo
ZSBlZGl0YWJsZSBmb3IgbmV4dCB0ZXN0LgorICAgIHRlc3QtPnNldEVkaXRhYmxlKGZhbHNlKTsK
KyAgICBnX2Fzc2VydCghdGVzdC0+aXNFZGl0YWJsZSgpKTsKKworICAgIGxvYWRDb250ZW50c0Fu
ZFRyeVRvQ3V0U2VsZWN0aW9uKHRlc3QsIHRydWUpOworCisgICAgLy8gUmVzZXQgdGhlIGVkaXRh
YmxlIGZvciBuZXh0IHRlc3QuCisgICAgdGVzdC0+c2V0RWRpdGFibGUoZmFsc2UpOworICAgIGdf
YXNzZXJ0KCF0ZXN0LT5pc0VkaXRhYmxlKCkpOworCisgICAgbG9hZENvbnRlbnRzQW5kVHJ5VG9D
dXRTZWxlY3Rpb24odGVzdCwgZmFsc2UpOworfQorCiB2b2lkIGJlZm9yZUFsbCgpCiB7CisgICAg
RWRpdG9yVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImVkaXRhYmxlL2VkaXRhYmxlIiwgdGVz
dFdlYlZpZXdFZGl0b3JFZGl0YWJsZSk7CiAgICAgRWRpdG9yVGVzdDo6YWRkKCJXZWJLaXRXZWJW
aWV3IiwgImN1dC1jb3B5LXBhc3RlL25vbi1lZGl0YWJsZSIsIHRlc3RXZWJWaWV3RWRpdG9yQ3V0
Q29weVBhc3RlTm9uRWRpdGFibGUpOwogICAgIEVkaXRvclRlc3Q6OmFkZCgiV2ViS2l0V2ViVmll
dyIsICJjdXQtY29weS1wYXN0ZS9lZGl0YWJsZSIsIHRlc3RXZWJWaWV3RWRpdG9yQ3V0Q29weVBh
c3RlRWRpdGFibGUpOwogICAgIEVkaXRvclRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJzZWxl
Y3QtYWxsL25vbi1lZGl0YWJsZSIsIHRlc3RXZWJWaWV3RWRpdG9yU2VsZWN0QWxsTm9uRWRpdGFi
bGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJW
aWV3VGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdU
ZXN0LmNwcAppbmRleCBlYThiNmIzZmViMDUyZTg3NjYwMzdlNjE3YzIzMTY3M2YwYzFjM2EzLi43
NmZmN2E1ZGMwNjQ3ZDc0MzEwY2MxOWIzMTQ0ZjM3MmFkNDJhZWYzIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmNwcApAQCAtMjYwLDYg
KzI2MCwxNiBAQCB2b2lkIFdlYlZpZXdUZXN0OjpzZWxlY3RBbGwoKQogICAgIHdlYmtpdF93ZWJf
dmlld19leGVjdXRlX2VkaXRpbmdfY29tbWFuZChtX3dlYlZpZXcsICJTZWxlY3RBbGwiKTsKIH0K
IAorYm9vbCBXZWJWaWV3VGVzdDo6aXNFZGl0YWJsZSgpCit7CisgICAgd2Via2l0X3dlYl92aWV3
X2lzX2VkaXRhYmxlKG1fd2ViVmlldyk7Cit9CisKK3ZvaWQgV2ViVmlld1Rlc3Q6OnNldEVkaXRh
YmxlKGJvb2wgZWRpdGFibGUpCit7CisgICAgd2Via2l0X3dlYl92aWV3X3NldF9lZGl0YWJsZSht
X3dlYlZpZXcsIGVkaXRhYmxlKTsKK30KKwogc3RhdGljIHZvaWQgcmVzb3VyY2VHZXREYXRhQ2Fs
bGJhY2soR09iamVjdCogb2JqZWN0LCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgZ3BvaW50ZXIgdXNl
ckRhdGEpCiB7CiAgICAgc2l6ZV90IGRhdGFTaXplOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5oIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5oCmluZGV4IDJjMzY5MmE1NjJlNTc0ODBiOTBi
N2ZmZmVmNzU2Mzk4MmRiMjZhM2EuLmFkMzllZjYwYmU4ZmE1NzNjYTJkNzVjNjJlOTQzZjNkNjUx
MWVhMWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2Vi
Vmlld1Rlc3QuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZp
ZXdUZXN0LmgKQEAgLTUzLDYgKzUzLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2VsZWN0QWxsKCk7
CiAgICAgY29uc3QgY2hhciogbWFpblJlc291cmNlRGF0YShzaXplX3QmIG1haW5SZXNvdXJjZURh
dGFTaXplKTsKIAorICAgIGJvb2wgaXNFZGl0YWJsZSgpOworICAgIHZvaWQgc2V0RWRpdGFibGUo
Ym9vbCk7CisKICAgICB2b2lkIG1vdXNlTW92ZVRvKGludCB4LCBpbnQgeSwgdW5zaWduZWQgbW91
c2VNb2RpZmllcnMgPSAwKTsKICAgICB2b2lkIGNsaWNrTW91c2VCdXR0b24oaW50IHgsIGludCB5
LCB1bnNpZ25lZCBidXR0b24gPSAxLCB1bnNpZ25lZCBtb3VzZU1vZGlmaWVycyA9IDApOwogICAg
IHZvaWQga2V5U3Ryb2tlKHVuc2lnbmVkIGtleVZhbCwgdW5zaWduZWQga2V5TW9kaWZpZXJzID0g
MCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244977</attachid>
            <date>2015-01-20 02:33:56 -0800</date>
            <delta_ts>2015-01-20 03:22:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139443-20150120113403.patch</filename>
            <type>text/plain</type>
            <size>18317</size>
            <attacher name="Tomas Popela">tpopela</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4NzAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOWU2NzgxMTAwMDc2YTA4
ZWE1MzA3ZmRkYzc4ODk3YmNjOTQyZGMzNi4uMjE5OGZiYjA3NWI5NjNiMWM5YThiM2E4YzNjNDZm
YTQzYTU2NWMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE1LTAxLTIwICBUb21h
cyBQb3BlbGEgIDx0cG9wZWxhQHJlZGhhdC5jb20+CisKKyAgICAgICAgW0dUS10gQWRkIEFQSSB0
byBzZXQgdGhlIHdlYiB2aWV3IGVkaXRhYmxlIGludG8gV2ViS2l0MiBHVEsrIEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDQzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSBhIHdheSB0
byBzZXQgdGhlIHdlYiB2aWV3IGVkaXRhYmxlLCB3aXRob3V0IGFjY2Vzc2luZyB0aGUgRE9NCisg
ICAgICAgIGFuZCBzZXR0aW5nIHRoZSBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIHRvIGVsZW1l
bnRzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHA6Cisg
ICAgICAgICh3ZWJraXRXZWJWaWV3U2V0UHJvcGVydHkpOgorICAgICAgICAod2Via2l0V2ViVmll
d0dldFByb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19pc19lZGl0YWJsZSk6CisgICAgICAgICh3ZWJraXRfd2Vi
X3ZpZXdfc2V0X2VkaXRhYmxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNl
Y3Rpb25zLnR4dDoKKwogMjAxNS0wMS0yMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQWRkIGFuIG9wdGlvbiB0byBjcmVhdGUgV2Vi
S2l0V2ViVmlldyBzbmFwc2hvdHMgd2l0aCB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4
IDY0MTIwZWNlYTIzYWE4YjQ0NzU2NWZkNGJhODJkZGMzZDc3ZjU1MWQuLmQ4ZGJlYjgxODNiMWUx
OWI5ZDY4YTFlZDBjYmZlNDg0ZmRhMzhmY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCkBAIC0xNDksNyArMTQ5LDggQEAgZW51
bSB7CiAgICAgUFJPUF9VUkksCiAgICAgUFJPUF9aT09NX0xFVkVMLAogICAgIFBST1BfSVNfTE9B
RElORywKLSAgICBQUk9QX0lTX1BMQVlJTkdfQVVESU8KKyAgICBQUk9QX0lTX1BMQVlJTkdfQVVE
SU8sCisgICAgUFJPUF9FRElUQUJMRQogfTsKIAogdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBH
UmVmUHRyPFdlYktpdFdlYlJlc291cmNlPiA+IExvYWRpbmdSZXNvdXJjZXNNYXA7CkBAIC02ODgs
NiArNjg5LDkgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld1NldFByb3BlcnR5KEdPYmplY3Qq
IG9iamVjdCwgZ3VpbnQgcHJvcElkLCBjb25zdCBHVmFsdWUKICAgICBjYXNlIFBST1BfWk9PTV9M
RVZFTDoKICAgICAgICAgd2Via2l0X3dlYl92aWV3X3NldF96b29tX2xldmVsKHdlYlZpZXcsIGdf
dmFsdWVfZ2V0X2RvdWJsZSh2YWx1ZSkpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1Bf
RURJVEFCTEU6CisgICAgICAgIHdlYmtpdF93ZWJfdmlld19zZXRfZWRpdGFibGUod2ViVmlldywg
Z192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0
OgogICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9w
SWQsIHBhcmFtU3BlYyk7CiAgICAgfQpAQCAtNzI4LDYgKzczMiw5IEBAIHN0YXRpYyB2b2lkIHdl
YmtpdFdlYlZpZXdHZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgR1Zh
bHVlKiB2YWx1CiAgICAgY2FzZSBQUk9QX0lTX1BMQVlJTkdfQVVESU86CiAgICAgICAgIGdfdmFs
dWVfc2V0X2Jvb2xlYW4odmFsdWUsIHdlYmtpdF93ZWJfdmlld19pc19wbGF5aW5nX2F1ZGlvKHdl
YlZpZXcpKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0VESVRBQkxFOgorICAgICAg
ICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfaXNfZWRpdGFibGUo
d2ViVmlldykpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVD
VF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBhcmFtU3BlYyk7CiAg
ICAgfQpAQCAtOTU5LDYgKzk2NiwyNCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xh
c3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgICAgICAgIFdF
QktJVF9QQVJBTV9SRUFEQUJMRSkpOwogCiAgICAgLyoqCisgICAgICogV2ViS2l0V2ViVmlldzpl
ZGl0YWJsZToKKyAgICAgKgorICAgICAqIFdoZXRoZXIgdGhlIHBhZ2VzIGxvYWRlZCBpbnNpZGUg
I1dlYktpdFdlYlZpZXcgYXJlIGVkaXRhYmxlLiBGb3IgbW9yZQorICAgICAqIGluZm9ybWF0aW9u
IHNlZSB3ZWJraXRfd2ViX3ZpZXdfc2V0X2VkaXRhYmxlKCkuCisgICAgICoKKyAgICAgKiBTaW5j
ZTogMi44CisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAg
ICAgICAgZ09iamVjdENsYXNzLAorICAgICAgICBQUk9QX0VESVRBQkxFLAorICAgICAgICBnX3Bh
cmFtX3NwZWNfYm9vbGVhbigKKyAgICAgICAgICAgICJlZGl0YWJsZSIsCisgICAgICAgICAgICBf
KCJFZGl0YWJsZSIpLAorICAgICAgICAgICAgXygiV2hldGhlciB0aGUgY29udGVudCBjYW4gYmUg
bW9kaWZpZWQgYnkgdGhlIHVzZXIuIiksCisgICAgICAgICAgICBGQUxTRSwKKyAgICAgICAgICAg
IFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKKworICAgIC8qKgogICAgICAqIFdlYktpdFdlYlZp
ZXc6OmxvYWQtY2hhbmdlZDoKICAgICAgKiBAd2ViX3ZpZXc6IHRoZSAjV2ViS2l0V2ViVmlldyBv
biB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKICAgICAgKiBAbG9hZF9ldmVudDogdGhlICNX
ZWJLaXRMb2FkRXZlbnQKQEAgLTM1NzMsMyArMzU5OCw1MyBAQCB2b2lkIHdlYmtpdF93ZWJfdmll
d19nZXRfYmFja2dyb3VuZF9jb2xvcihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBHZGtSR0JBKiBy
Z2JhKQogCiAgICAgKnJnYmEgPSBnZXRQYWdlKHdlYlZpZXcpLT5iYWNrZ3JvdW5kQ29sb3IoKTsK
IH0KKworLyoKKyAqIHdlYmtpdF93ZWJfdmlld19pc19lZGl0YWJsZToKKyAqIEB3ZWJfdmlldzog
YSAjV2ViS2l0V2ViVmlldworICoKKyAqIEdldHMgd2hldGhlciB0aGUgdXNlciBpcyBhbGxvd2Vk
IHRvIGVkaXQgdGhlIEhUTUwgZG9jdW1lbnQuIFdoZW4gQHdlYl92aWV3CisgKiBpcyBub3QgZWRp
dGFibGUgYW4gZWxlbWVudCBpbiB0aGUgSFRNTCBkb2N1bWVudCBjYW4gb25seSBiZSBlZGl0ZWQg
aWYgdGhlCisgKiBDT05URU5URURJVEFCTEUgYXR0cmlidXRlIGhhcyBiZWVuIHNldCBvbiB0aGUg
ZWxlbWVudCBvciBvbmUgb2YgaXRzIHBhcmVudAorICogZWxlbWVudHMuIEJ5IGRlZmF1bHQgYSAj
V2ViS2l0V2ViVmlldyBpcyBub3QgZWRpdGFibGUuCisgKgorICogUmV0dXJuczogJVRSVUUgaWYg
dGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlZGl0IHRoZSBIVE1MIGRvY3VtZW50LCBvciAlRkFMU0Ug
b3RoZXJ3aXNlLgorICoKKyAqIFNpbmNlOiAyLjgKKyAqLworZ2Jvb2xlYW4gd2Via2l0X3dlYl92
aWV3X2lzX2VkaXRhYmxlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCit7CisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBGQUxTRSk7CisKKyAgICBy
ZXR1cm4gZ2V0UGFnZSh3ZWJWaWV3KS0+aXNFZGl0YWJsZSgpOworfQorCisvKioKKyAqIHdlYmtp
dF93ZWJfdmlld19zZXRfZWRpdGFibGU6CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcK
KyAqIEBlZGl0YWJsZTogYSAjZ2Jvb2xlYW4gaW5kaWNhdGluZyB0aGUgZWRpdGFibGUgc3RhdGUK
KyAqCisgKiBTZXRzIHdoZXRoZXIgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBlZGl0IHRoZSBIVE1M
IGRvY3VtZW50LgorICoKKyAqIElmIEBlZGl0YWJsZSBpcyAlVFJVRSwgQHdlYl92aWV3IGFsbG93
cyB0aGUgdXNlciB0byBlZGl0IHRoZSBIVE1MIGRvY3VtZW50LiBJZgorICogQGVkaXRhYmxlIGlz
ICVGQUxTRSwgYW4gZWxlbWVudCBpbiBAd2ViX3ZpZXcncyBkb2N1bWVudCBjYW4gb25seSBiZSBl
ZGl0ZWQgaWYgdGhlCisgKiBDT05URU5URURJVEFCTEUgYXR0cmlidXRlIGhhcyBiZWVuIHNldCBv
biB0aGUgZWxlbWVudCBvciBvbmUgb2YgaXRzIHBhcmVudAorICogZWxlbWVudHMuIEJ5IGRlZmF1
bHQgYSAjV2ViS2l0V2ViVmlldyBpcyBub3QgZWRpdGFibGUuCisgKgorICogTm9ybWFsbHksIGEg
SFRNTCBkb2N1bWVudCBpcyBub3QgZWRpdGFibGUgdW5sZXNzIHRoZSBlbGVtZW50cyB3aXRoaW4g
dGhlCisgKiBkb2N1bWVudCBhcmUgZWRpdGFibGUuIFRoaXMgZnVuY3Rpb24gcHJvdmlkZXMgYSB3
YXkgdG8gbWFrZSB0aGUgY29udGVudHMKKyAqIG9mIGEgI1dlYktpdFdlYlZpZXcgZWRpdGFibGUg
d2l0aG91dCBhbHRlcmluZyB0aGUgZG9jdW1lbnQgb3IgRE9NIHN0cnVjdHVyZS4KKyAqCisgKiBT
aW5jZTogMi44CisgKi8KK3ZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9lZGl0YWJsZShXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3LCBnYm9vbGVhbiBlZGl0YWJsZSkKK3sKKyAgICBnX3JldHVybl9pZl9m
YWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CisKKyAgICBpZiAoZWRpdGFibGUgPT0g
Z2V0UGFnZSh3ZWJWaWV3KS0+aXNFZGl0YWJsZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBn
ZXRQYWdlKHdlYlZpZXcpLT5zZXRFZGl0YWJsZShlZGl0YWJsZSk7CisKKyAgICBnX29iamVjdF9u
b3RpZnkoR19PQkpFQ1Qod2ViVmlldyksICJlZGl0YWJsZSIpOworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCmluZGV4IGE2MDNkNDc1OGJm
M2QzOGUxMWFlYzAxM2M4OTkyZjk3ZmQ2MGZmYzUuLmZmODE0MmRmNGNkYWU5ZGI1MDc1YTgzZTNj
NGQ1NzFlNWRiMGE3NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3LmgKQEAgLTQ4NSw2ICs0ODUsMTMgQEAgV0VCS0lUX0FQSSB2b2lkCiB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X2JhY2tncm91bmRfY29sb3IgICAgICAgICAgICAgICAgIChXZWJL
aXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdka1JHQkEgICAgICAgICAgICAgICAgICAg
KnJnYmEpOwogCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfd2ViX3ZpZXdfaXNfZWRpdGFi
bGUgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3
ZWJfdmlldyk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3X3NldF9lZGl0YWJs
ZSAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2Vi
X3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAgIGVkaXRhYmxlKTsKKwogR19FTkRfREVDTFMK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9k
b2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAppbmRleCA3NDlmODU2YTEyZjU3OTQ1
ZTMzNDBmMjZjMjU3Y2I1YTM2NGQ0Nzg5Li40MjM2ZTA2OWY4NWQxMDFkNjY1OGNmY2M2NjdlNTc5
Y2I1MjczNjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9k
b2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKQEAgLTIwMSw2ICsyMDEsOCBA
QCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NuYXBzaG90CiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NuYXBz
aG90X2ZpbmlzaAogd2Via2l0X3dlYl92aWV3X3NldF9iYWNrZ3JvdW5kX2NvbG9yCiB3ZWJraXRf
d2ViX3ZpZXdfZ2V0X2JhY2tncm91bmRfY29sb3IKK3dlYmtpdF93ZWJfdmlld19zZXRfZWRpdGFi
bGUKK3dlYmtpdF93ZWJfdmlld19pc19lZGl0YWJsZQogCiA8U1VCU0VDVElPTiBXZWJLaXRKYXZh
c2NyaXB0UmVzdWx0PgogV2ViS2l0SmF2YXNjcmlwdFJlc3VsdApkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDk2NmQyMThlYmYxMWQ5YWI2MWE2MDQx
ZWFjMmQ0YjA2NDA0ODc3NTUuLmE1ZmQ4YmY1ZGIzY2ZlZjdhMjBjMWRhYzMyYTliYTlmNTYzNzE5
OWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyOSBAQAorMjAxNS0wMS0yMCAgVG9tYXMgUG9wZWxhICA8dHBvcGVsYUByZWRoYXQu
Y29tPgorCisgICAgICAgIFtHVEtdIEFkZCBBUEkgdG8gc2V0IHRoZSB3ZWIgdmlldyBlZGl0YWJs
ZSBpbnRvIFdlYktpdDIgR1RLKyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzOTQ0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENyZWF0ZSB0aGUgbmV3IHRlc3QgY2FzZXMgZm9yIHNldHRpbmcgdGhl
IGVkaXRhYmxlIHByb3BlcnR5IG9uIHRoZSB3ZWIKKyAgICAgICAgdmlldyBhbmQgb24gdGhlIGNv
bnRlbnRlZGl0YWJsZSBlbmFibGVkIGRvY3VtZW50LiBBbHNvIHJld29yayB0aGUKKyAgICAgICAg
Y3VycmVudCB0ZXN0cyB0aGF0IGFyZSBleHBlY3RpbmcgdGhhdCB0aGUgd2ViIHZpZXcgaXMgZWRp
dGFibGUuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdl
YlZpZXdFZGl0b3IuY3BwOgorICAgICAgICAobG9hZFRlc3RIdG1sKToKKyAgICAgICAgKHRlc3RX
ZWJWaWV3RWRpdG9yQ3V0Q29weVBhc3RlTm9uRWRpdGFibGUpOgorICAgICAgICAodGVzdFdlYlZp
ZXdFZGl0b3JDdXRDb3B5UGFzdGVFZGl0YWJsZSk6CisgICAgICAgICh0ZXN0V2ViVmlld0VkaXRv
clNlbGVjdEFsbE5vbkVkaXRhYmxlKToKKyAgICAgICAgKHRlc3RXZWJWaWV3RWRpdG9yU2VsZWN0
QWxsRWRpdGFibGUpOgorICAgICAgICAocnVuRWRpdG9yRWRpdGFibGVDdXRUZXN0cyk6CisgICAg
ICAgICh0ZXN0V2ViVmlld0VkaXRvckVkaXRhYmxlT25Ob25FZGl0YWJsZSk6CisgICAgICAgICh0
ZXN0V2ViVmlld0VkaXRvckVkaXRhYmxlT25Db250ZW50RWRpdGFibGUpOgorICAgICAgICAodGVz
dFdlYlZpZXdFZGl0b3JOb25FZGl0YWJsZSk6CisgICAgICAgIChiZWZvcmVBbGwpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuY3BwOgorICAgICAg
ICAoV2ViVmlld1Rlc3Q6OmlzRWRpdGFibGUpOgorICAgICAgICAoV2ViVmlld1Rlc3Q6OnNldEVk
aXRhYmxlKToKKwogMjAxNS0wMS0yMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQWRkIGFuIG9wdGlvbiB0byBjcmVhdGUgV2ViS2l0
V2ViVmlldyBzbmFwc2hvdHMgd2l0aCB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYlZpZXdFZGl0b3Iu
Y3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJWaWV3RWRp
dG9yLmNwcAppbmRleCA5ZTY5YmZhNDhlMWE2MGU4NGVmYWQ5NDAwNjFlYjdhMzhkYjVmZWIyLi4y
M2NmZDE5ZGVmOTIzZGYzNTRiY2RhYjc5ODFhNjE5Mjg5YzVkZTVmIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYlZpZXdFZGl0b3IuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViVmlld0VkaXRv
ci5jcHAKQEAgLTczLDI1ICs3Myw0MiBAQCBwdWJsaWM6CiAgICAgICAgIGdfbWFpbl9sb29wX3J1
bihtX21haW5Mb29wKTsKICAgICB9CiAKKyAgICBnY2hhciogY3V0U2VsZWN0aW9uKCkKKyAgICB7
CisgICAgICAgIGdfYXNzZXJ0KGNhbkV4ZWN1dGVFZGl0aW5nQ29tbWFuZChXRUJLSVRfRURJVElO
R19DT01NQU5EX0NVVCkpOworICAgICAgICBnX2Fzc2VydChjYW5FeGVjdXRlRWRpdGluZ0NvbW1h
bmQoV0VCS0lUX0VESVRJTkdfQ09NTUFORF9QQVNURSkpOworCisgICAgICAgIHdlYmtpdF93ZWJf
dmlld19leGVjdXRlX2VkaXRpbmdfY29tbWFuZChtX3dlYlZpZXcsIFdFQktJVF9FRElUSU5HX0NP
TU1BTkRfQ1VUKTsKKyAgICAgICAgLy8gVGhlcmUncyBubyB3YXkgdG8ga25vdyB3aGVuIHRoZSBz
ZWxlY3Rpb24gaGFzIGJlZW4gY3V0IHRvCisgICAgICAgIC8vIHRoZSBjbGlwYm9hcmQsIHNvIHVz
ZSBhIHRpbWVvdXQgc291cmNlIHRvIHF1ZXJ5IHRoZSBjbGlwYm9hcmQuCisgICAgICAgIG1fdHJp
ZXNDb3VudCA9IDA7CisgICAgICAgIGdfdGltZW91dF9hZGQoa0NsaXBib2FyZFdhaXRUaW1lb3V0
LCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPih3YWl0Rm9yQ2xpcGJvYXJkVGV4dCksIHRo
aXMpOworICAgICAgICBnX21haW5fbG9vcF9ydW4obV9tYWluTG9vcCk7CisKKyAgICAgICAgcmV0
dXJuIGd0a19jbGlwYm9hcmRfd2FpdF9mb3JfdGV4dCAobV9jbGlwYm9hcmQpOworICAgIH0KKwog
ICAgIEd0a0NsaXBib2FyZCogbV9jbGlwYm9hcmQ7CiAgICAgYm9vbCBtX2NhbkV4ZWN1dGVFZGl0
aW5nQ29tbWFuZDsKICAgICBzaXplX3QgbV90cmllc0NvdW50OwogfTsKIAorc3RhdGljIGNvbnN0
IGNoYXIqIHNlbGVjdGVkU3BhbkhUTUxGb3JtYXQgPQorICAgICI8aHRtbD48Ym9keSBjb250ZW50
RWRpdGFibGU9XCIlc1wiPiIKKyAgICAiPHNwYW4gaWQ9XCJtYWluc3BhblwiPkFsbCB3b3JrIGFu
ZCBubyBwbGF5IDxzcGFuIGlkPVwic3Vic3BhblwiPm1ha2UgSmFjayBhIGR1bGw8L3NwYW4+IGJv
eS48L3NwYW4+IgorICAgICI8c2NyaXB0PmRvY3VtZW50LmdldFNlbGVjdGlvbigpLmNvbGxhcHNl
KCk7XG4iCisgICAgImRvY3VtZW50LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJzcGFuJykpO1xuIgorICAgICI8L3NjcmlwdD48L2Jv
ZHk+PC9odG1sPiI7CisKIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3RWRpdG9yQ3V0Q29weVBhc3Rl
Tm9uRWRpdGFibGUoRWRpdG9yVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKLSAgICBzdGF0
aWMgY29uc3QgY2hhciogc2VsZWN0ZWRTcGFuSFRNTCA9ICI8aHRtbD48Ym9keSBjb250ZW50RWRp
dGFibGU9XCJmYWxzZVwiPiIKLSAgICAgICAgIjxzcGFuIGlkPVwibWFpbnNwYW5cIj5BbGwgd29y
ayBhbmQgbm8gcGxheSA8c3BhbiBpZD1cInN1YnNwYW5cIj5tYWtlIEphY2sgYSBkdWxsPC9zcGFu
PiBib3kuPC9zcGFuPiIKLSAgICAgICAgIjxzY3JpcHQ+ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCku
Y29sbGFwc2UoKTtcbiIKLSAgICAgICAgImRvY3VtZW50LmdldFNlbGVjdGlvbigpLnNlbGVjdEFs
bENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJzcGFuJykpO1xuIgotICAgICAg
ICAiPC9zY3JpcHQ+PC9ib2R5PjwvaHRtbD4iOwotCiAgICAgLy8gTm90aGluZyBsb2FkZWQgeWV0
LgogICAgIGdfYXNzZXJ0KCF0ZXN0LT5jYW5FeGVjdXRlRWRpdGluZ0NvbW1hbmQoV0VCS0lUX0VE
SVRJTkdfQ09NTUFORF9DVVQpKTsKICAgICBnX2Fzc2VydCghdGVzdC0+Y2FuRXhlY3V0ZUVkaXRp
bmdDb21tYW5kKFdFQktJVF9FRElUSU5HX0NPTU1BTkRfQ09QWSkpOwogICAgIGdfYXNzZXJ0KCF0
ZXN0LT5jYW5FeGVjdXRlRWRpdGluZ0NvbW1hbmQoV0VCS0lUX0VESVRJTkdfQ09NTUFORF9QQVNU
RSkpOwogCi0gICAgdGVzdC0+bG9hZEh0bWwoc2VsZWN0ZWRTcGFuSFRNTCwgMCk7CisgICAgR1Vu
aXF1ZVB0cjxjaGFyPiBzZWxlY3RlZFNwYW5IVE1MKGdfc3RyZHVwX3ByaW50ZihzZWxlY3RlZFNw
YW5IVE1MRm9ybWF0LCAiZmFsc2UiKSk7CisgICAgdGVzdC0+bG9hZEh0bWwoc2VsZWN0ZWRTcGFu
SFRNTC5nZXQoKSwgbnVsbHB0cik7CiAgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7
CiAKICAgICBnX2Fzc2VydCh0ZXN0LT5jYW5FeGVjdXRlRWRpdGluZ0NvbW1hbmQoV0VCS0lUX0VE
SVRJTkdfQ09NTUFORF9DT1BZKSk7CkBAIC0xMDcsMTggKzEyNCwxNyBAQCBzdGF0aWMgdm9pZCB0
ZXN0V2ViVmlld0VkaXRvckN1dENvcHlQYXN0ZU5vbkVkaXRhYmxlKEVkaXRvclRlc3QqIHRlc3Qs
IGdjb25zdHBvaQogCiBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0VkaXRvckN1dENvcHlQYXN0ZUVk
aXRhYmxlKEVkaXRvclRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7Ci0gICAgc3RhdGljIGNv
bnN0IGNoYXIqIHNlbGVjdGVkU3BhbkhUTUwgPSAiPGh0bWw+PGJvZHkgY29udGVudEVkaXRhYmxl
PVwidHJ1ZVwiPiIKLSAgICAgICAgIjxzcGFuIGlkPVwibWFpbnNwYW5cIj5BbGwgd29yayBhbmQg
bm8gcGxheSA8c3Bhbj5tYWtlIEphY2sgYSBkdWxsPC9zcGFuPiBib3kuPC9zcGFuPiIKLSAgICAg
ICAgIjxzY3JpcHQ+ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkuY29sbGFwc2UoKTtcbiIKLSAgICAg
ICAgImRvY3VtZW50LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdtYWluc3BhbicpKTtcbiIKLSAgICAgICAgIjwvc2NyaXB0PjwvYm9keT48
L2h0bWw+IjsKLQogICAgIC8vIE5vdGhpbmcgbG9hZGVkIHlldC4KICAgICBnX2Fzc2VydCghdGVz
dC0+Y2FuRXhlY3V0ZUVkaXRpbmdDb21tYW5kKFdFQktJVF9FRElUSU5HX0NPTU1BTkRfQ1VUKSk7
CiAgICAgZ19hc3NlcnQoIXRlc3QtPmNhbkV4ZWN1dGVFZGl0aW5nQ29tbWFuZChXRUJLSVRfRURJ
VElOR19DT01NQU5EX0NPUFkpKTsKICAgICBnX2Fzc2VydCghdGVzdC0+Y2FuRXhlY3V0ZUVkaXRp
bmdDb21tYW5kKFdFQktJVF9FRElUSU5HX0NPTU1BTkRfUEFTVEUpKTsKIAotICAgIHRlc3QtPmxv
YWRIdG1sKHNlbGVjdGVkU3BhbkhUTUwsIDApOworICAgIGdfYXNzZXJ0KCF0ZXN0LT5pc0VkaXRh
YmxlKCkpOworICAgIHRlc3QtPnNldEVkaXRhYmxlKHRydWUpOworICAgIGdfYXNzZXJ0KHRlc3Qt
PmlzRWRpdGFibGUoKSk7CisKKyAgICBHVW5pcXVlUHRyPGNoYXI+IHNlbGVjdGVkU3BhbkhUTUwo
Z19zdHJkdXBfcHJpbnRmKHNlbGVjdGVkU3BhbkhUTUxGb3JtYXQsICJmYWxzZSIpKTsKKyAgICB0
ZXN0LT5sb2FkSHRtbChzZWxlY3RlZFNwYW5IVE1MLmdldCgpLCBudWxscHRyKTsKICAgICB0ZXN0
LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKIAogICAgIC8vIFRoZXJlJ3MgYSBzZWxlY3Rpb24u
CkBAIC0xMjgsMjAgKzE0NCwxNSBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0VkaXRvckN1dENv
cHlQYXN0ZUVkaXRhYmxlKEVkaXRvclRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZQogCiAgICAgdGVz
dC0+Y29weUNsaXBib2FyZCgpOwogICAgIEdVbmlxdWVQdHI8Y2hhcj4gY2xpcGJvYXJkVGV4dChn
dGtfY2xpcGJvYXJkX3dhaXRfZm9yX3RleHQodGVzdC0+bV9jbGlwYm9hcmQpKTsKLSAgICBnX2Fz
c2VydF9jbXBzdHIoY2xpcGJvYXJkVGV4dC5nZXQoKSwgPT0sICJBbGwgd29yayBhbmQgbm8gcGxh
eSBtYWtlIEphY2sgYSBkdWxsIGJveS4iKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIoY2xpcGJvYXJk
VGV4dC5nZXQoKSwgPT0sICJtYWtlIEphY2sgYSBkdWxsIik7CiB9CiAKIHN0YXRpYyB2b2lkIHRl
c3RXZWJWaWV3RWRpdG9yU2VsZWN0QWxsTm9uRWRpdGFibGUoRWRpdG9yVGVzdCogdGVzdCwgZ2Nv
bnN0cG9pbnRlcikKIHsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogc2VsZWN0ZWRTcGFuSFRNTCA9
ICI8aHRtbD48Ym9keSBjb250ZW50RWRpdGFibGU9XCJmYWxzZVwiPiIKLSAgICAgICAgIjxzcGFu
IGlkPVwibWFpbnNwYW5cIj5BbGwgd29yayBhbmQgbm8gcGxheSA8c3BhbiBpZD1cInN1YnNwYW5c
Ij5tYWtlIEphY2sgYSBkdWxsPC9zcGFuPiBib3kuPC9zcGFuPiIKLSAgICAgICAgIjxzY3JpcHQ+
ZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkuY29sbGFwc2UoKTtcbiIKLSAgICAgICAgImRvY3VtZW50
LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdzdWJzcGFuJykpO1xuIgotICAgICAgICAiPC9zY3JpcHQ+PC9ib2R5PjwvaHRtbD4iOwotCiAg
ICAgZ19hc3NlcnQodGVzdC0+Y2FuRXhlY3V0ZUVkaXRpbmdDb21tYW5kKFdFQktJVF9FRElUSU5H
X0NPTU1BTkRfU0VMRUNUX0FMTCkpOwogCi0gICAgdGVzdC0+bG9hZEh0bWwoc2VsZWN0ZWRTcGFu
SFRNTCwgMCk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBzZWxlY3RlZFNwYW5IVE1MKGdfc3RyZHVw
X3ByaW50ZihzZWxlY3RlZFNwYW5IVE1MRm9ybWF0LCAiZmFsc2UiKSk7CisgICAgdGVzdC0+bG9h
ZEh0bWwoc2VsZWN0ZWRTcGFuSFRNTC5nZXQoKSwgbnVsbHB0cik7CiAgICAgdGVzdC0+d2FpdFVu
dGlsTG9hZEZpbmlzaGVkKCk7CiAKICAgICBnX2Fzc2VydCh0ZXN0LT5jYW5FeGVjdXRlRWRpdGlu
Z0NvbW1hbmQoV0VCS0lUX0VESVRJTkdfQ09NTUFORF9TRUxFQ1RfQUxMKSk7CkBAIC0xNjIsMTUg
KzE3MywxNCBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0VkaXRvclNlbGVjdEFsbE5vbkVkaXRh
YmxlKEVkaXRvclRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZQogCiBzdGF0aWMgdm9pZCB0ZXN0V2Vi
Vmlld0VkaXRvclNlbGVjdEFsbEVkaXRhYmxlKEVkaXRvclRlc3QqIHRlc3QsIGdjb25zdHBvaW50
ZXIpCiB7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHNlbGVjdGVkU3BhbkhUTUwgPSAiPGh0bWw+
PGJvZHkgY29udGVudEVkaXRhYmxlPVwidHJ1ZVwiPiIKLSAgICAgICAgIjxzcGFuIGlkPVwibWFp
bnNwYW5cIj5BbGwgd29yayBhbmQgbm8gcGxheSA8c3BhbiBpZD1cInN1YnNwYW5cIj5tYWtlIEph
Y2sgYSBkdWxsPC9zcGFuPiBib3kuPC9zcGFuPiIKLSAgICAgICAgIjxzY3JpcHQ+ZG9jdW1lbnQu
Z2V0U2VsZWN0aW9uKCkuY29sbGFwc2UoKTtcbiIKLSAgICAgICAgImRvY3VtZW50LmdldFNlbGVj
dGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJzcGFu
JykpO1xuIgotICAgICAgICAiPC9zY3JpcHQ+PC9ib2R5PjwvaHRtbD4iOwotCiAgICAgZ19hc3Nl
cnQodGVzdC0+Y2FuRXhlY3V0ZUVkaXRpbmdDb21tYW5kKFdFQktJVF9FRElUSU5HX0NPTU1BTkRf
U0VMRUNUX0FMTCkpOwogCi0gICAgdGVzdC0+bG9hZEh0bWwoc2VsZWN0ZWRTcGFuSFRNTCwgMCk7
CisgICAgZ19hc3NlcnQoIXRlc3QtPmlzRWRpdGFibGUoKSk7CisgICAgdGVzdC0+c2V0RWRpdGFi
bGUodHJ1ZSk7CisgICAgZ19hc3NlcnQodGVzdC0+aXNFZGl0YWJsZSgpKTsKKworICAgIEdVbmlx
dWVQdHI8Y2hhcj4gc2VsZWN0ZWRTcGFuSFRNTChnX3N0cmR1cF9wcmludGYoc2VsZWN0ZWRTcGFu
SFRNTEZvcm1hdCwgImZhbHNlIikpOworICAgIHRlc3QtPmxvYWRIdG1sKHNlbGVjdGVkU3BhbkhU
TUwuZ2V0KCksIG51bGxwdHIpOwogICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hlZCgpOwog
CiAgICAgZ19hc3NlcnQodGVzdC0+Y2FuRXhlY3V0ZUVkaXRpbmdDb21tYW5kKFdFQktJVF9FRElU
SU5HX0NPTU1BTkRfU0VMRUNUX0FMTCkpOwpAQCAtMTg5LDggKzE5OSw2NSBAQCBzdGF0aWMgdm9p
ZCB0ZXN0V2ViVmlld0VkaXRvclNlbGVjdEFsbEVkaXRhYmxlKEVkaXRvclRlc3QqIHRlc3QsIGdj
b25zdHBvaW50ZXIpCiAgICAgZ19hc3NlcnRfY21wc3RyKGNsaXBib2FyZFRleHQuZ2V0KCksID09
LCAiQWxsIHdvcmsgYW5kIG5vIHBsYXkgbWFrZSBKYWNrIGEgZHVsbCBib3kuIik7CiB9CiAKK3N0
YXRpYyB2b2lkIGxvYWRDb250ZW50c0FuZFRyeVRvQ3V0U2VsZWN0aW9uKEVkaXRvclRlc3QqIHRl
c3QsIGJvb2wgY29udGVudEVkaXRhYmxlKQoreworICAgIC8vIFZpZXcgaXMgbm90IGVkaXRhYmxl
IGJ5IGRlZmF1bHQuCisgICAgZ19hc3NlcnQoIXRlc3QtPmlzRWRpdGFibGUoKSk7CisKKyAgICBH
VW5pcXVlUHRyPGNoYXI+IHNlbGVjdGVkU3BhbkhUTUwoZ19zdHJkdXBfcHJpbnRmKHNlbGVjdGVk
U3BhbkhUTUxGb3JtYXQsIGNvbnRlbnRFZGl0YWJsZSA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAg
ICB0ZXN0LT5sb2FkSHRtbChzZWxlY3RlZFNwYW5IVE1MLmdldCgpLCBudWxscHRyKTsKKyAgICB0
ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKworICAgIGdfYXNzZXJ0KCF0ZXN0LT5pc0Vk
aXRhYmxlKCkpOworICAgIHRlc3QtPnNldEVkaXRhYmxlKHRydWUpOworICAgIGdfYXNzZXJ0KHRl
c3QtPmlzRWRpdGFibGUoKSk7CisKKyAgICAvLyBDdXQgdGhlIHNlbGVjdGlvbiB0byB0aGUgY2xp
cGJvYXJkIHRvIHNlZSBpZiB0aGUgdmlldyBpcyBpbmRlZWQgZWRpdGFibGUuCisgICAgR1VuaXF1
ZVB0cjxjaGFyPiBjbGlwYm9hcmRUZXh0KHRlc3QtPmN1dFNlbGVjdGlvbigpKTsKKyAgICBnX2Fz
c2VydF9jbXBzdHIoY2xpcGJvYXJkVGV4dC5nZXQoKSwgPT0sICJtYWtlIEphY2sgYSBkdWxsIik7
CisKKyAgICAvLyBSZXNldCB0aGUgZWRpdGFibGUgZm9yIG5leHQgdGVzdC4KKyAgICB0ZXN0LT5z
ZXRFZGl0YWJsZShmYWxzZSk7CisgICAgZ19hc3NlcnQoIXRlc3QtPmlzRWRpdGFibGUoKSk7Cit9
CisKK3N0YXRpYyB2b2lkIHRlc3RXZWJWaWV3RWRpdG9yTm9uRWRpdGFibGUoRWRpdG9yVGVzdCog
dGVzdCkKK3sKKyAgICBHVW5pcXVlUHRyPGNoYXI+IHNlbGVjdGVkU3BhbkhUTUwoZ19zdHJkdXBf
cHJpbnRmKHNlbGVjdGVkU3BhbkhUTUxGb3JtYXQsICJmYWxzZSIpKTsKKyAgICB0ZXN0LT5sb2Fk
SHRtbChzZWxlY3RlZFNwYW5IVE1MLmdldCgpLCBudWxscHRyKTsKKyAgICB0ZXN0LT53YWl0VW50
aWxMb2FkRmluaXNoZWQoKTsKKworICAgIGdfYXNzZXJ0KCF0ZXN0LT5pc0VkaXRhYmxlKCkpOwor
ICAgIHRlc3QtPnNldEVkaXRhYmxlKHRydWUpOworICAgIGdfYXNzZXJ0KHRlc3QtPmlzRWRpdGFi
bGUoKSk7CisgICAgdGVzdC0+c2V0RWRpdGFibGUoZmFsc2UpOworICAgIGdfYXNzZXJ0KCF0ZXN0
LT5pc0VkaXRhYmxlKCkpOworCisgICAgLy8gQ2hlY2sgaWYgdmlldyBpcyBpbmRlZWQgbm9uLWVk
aXRhYmxlLgorICAgIGdfYXNzZXJ0KCF0ZXN0LT5jYW5FeGVjdXRlRWRpdGluZ0NvbW1hbmQoV0VC
S0lUX0VESVRJTkdfQ09NTUFORF9DVVQpKTsKKyAgICBnX2Fzc2VydCghdGVzdC0+Y2FuRXhlY3V0
ZUVkaXRpbmdDb21tYW5kKFdFQktJVF9FRElUSU5HX0NPTU1BTkRfUEFTVEUpKTsKK30KKworc3Rh
dGljIHZvaWQgdGVzdFdlYlZpZXdFZGl0b3JFZGl0YWJsZShFZGl0b3JUZXN0KiB0ZXN0LCBnY29u
c3Rwb2ludGVyKQoreworICAgIHRlc3RXZWJWaWV3RWRpdG9yTm9uRWRpdGFibGUodGVzdCk7CisK
KyAgICAvLyBSZXNldCB0aGUgZWRpdGFibGUgZm9yIG5leHQgdGVzdC4KKyAgICB0ZXN0LT5zZXRF
ZGl0YWJsZShmYWxzZSk7CisgICAgZ19hc3NlcnQoIXRlc3QtPmlzRWRpdGFibGUoKSk7CisKKyAg
ICBsb2FkQ29udGVudHNBbmRUcnlUb0N1dFNlbGVjdGlvbih0ZXN0LCB0cnVlKTsKKworICAgIC8v
IFJlc2V0IHRoZSBlZGl0YWJsZSBmb3IgbmV4dCB0ZXN0LgorICAgIHRlc3QtPnNldEVkaXRhYmxl
KGZhbHNlKTsKKyAgICBnX2Fzc2VydCghdGVzdC0+aXNFZGl0YWJsZSgpKTsKKworICAgIGxvYWRD
b250ZW50c0FuZFRyeVRvQ3V0U2VsZWN0aW9uKHRlc3QsIGZhbHNlKTsKK30KKwogdm9pZCBiZWZv
cmVBbGwoKQogeworICAgIEVkaXRvclRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJlZGl0YWJs
ZS9lZGl0YWJsZSIsIHRlc3RXZWJWaWV3RWRpdG9yRWRpdGFibGUpOwogICAgIEVkaXRvclRlc3Q6
OmFkZCgiV2ViS2l0V2ViVmlldyIsICJjdXQtY29weS1wYXN0ZS9ub24tZWRpdGFibGUiLCB0ZXN0
V2ViVmlld0VkaXRvckN1dENvcHlQYXN0ZU5vbkVkaXRhYmxlKTsKICAgICBFZGl0b3JUZXN0Ojph
ZGQoIldlYktpdFdlYlZpZXciLCAiY3V0LWNvcHktcGFzdGUvZWRpdGFibGUiLCB0ZXN0V2ViVmll
d0VkaXRvckN1dENvcHlQYXN0ZUVkaXRhYmxlKTsKICAgICBFZGl0b3JUZXN0OjphZGQoIldlYktp
dFdlYlZpZXciLCAic2VsZWN0LWFsbC9ub24tZWRpdGFibGUiLCB0ZXN0V2ViVmlld0VkaXRvclNl
bGVjdEFsbE5vbkVkaXRhYmxlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3Rr
L1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2Vi
S2l0Mkd0ay9XZWJWaWV3VGVzdC5jcHAKaW5kZXggZGJhYzJkNmIzOWUyNDI1Y2ZjYWNjYjRmODgw
YmNhMDczMGYxYTJiMi4uYjAzMjlmZTAxYzNhZmE1OWJlZTljMTg1ZTNiODYyNDQyMDRhZDU1MCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVz
dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVz
dC5jcHAKQEAgLTI2Miw2ICsyNjIsMTYgQEAgdm9pZCBXZWJWaWV3VGVzdDo6c2VsZWN0QWxsKCkK
ICAgICB3ZWJraXRfd2ViX3ZpZXdfZXhlY3V0ZV9lZGl0aW5nX2NvbW1hbmQobV93ZWJWaWV3LCAi
U2VsZWN0QWxsIik7CiB9CiAKK2Jvb2wgV2ViVmlld1Rlc3Q6OmlzRWRpdGFibGUoKQoreworICAg
IHdlYmtpdF93ZWJfdmlld19pc19lZGl0YWJsZShtX3dlYlZpZXcpOworfQorCit2b2lkIFdlYlZp
ZXdUZXN0OjpzZXRFZGl0YWJsZShib29sIGVkaXRhYmxlKQoreworICAgIHdlYmtpdF93ZWJfdmll
d19zZXRfZWRpdGFibGUobV93ZWJWaWV3LCBlZGl0YWJsZSk7Cit9CisKIHN0YXRpYyB2b2lkIHJl
c291cmNlR2V0RGF0YUNhbGxiYWNrKEdPYmplY3QqIG9iamVjdCwgR0FzeW5jUmVzdWx0KiByZXN1
bHQsIGdwb2ludGVyIHVzZXJEYXRhKQogewogICAgIHNpemVfdCBkYXRhU2l6ZTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuaCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rlc3QuaAppbmRleCA4ZTA2
MDM4MDFmNjhiYWU1YTk3N2ViNGNiZmFiNDgwYzRlMGYzMzkwLi5jZTVmODA4MTBiYjM2ZWUyMWIy
OWVhNGU4Y2ZkZTIwYTY4MjEwZTk4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0
ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsv
V2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5oCkBAIC01Myw2ICs1Myw5IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNlbGVjdEFsbCgpOwogICAgIGNvbnN0IGNoYXIqIG1haW5SZXNvdXJjZURhdGEoc2l6ZV90
JiBtYWluUmVzb3VyY2VEYXRhU2l6ZSk7CiAKKyAgICBib29sIGlzRWRpdGFibGUoKTsKKyAgICB2
b2lkIHNldEVkaXRhYmxlKGJvb2wpOworCiAgICAgdm9pZCBtb3VzZU1vdmVUbyhpbnQgeCwgaW50
IHksIHVuc2lnbmVkIG1vdXNlTW9kaWZpZXJzID0gMCk7CiAgICAgdm9pZCBjbGlja01vdXNlQnV0
dG9uKGludCB4LCBpbnQgeSwgdW5zaWduZWQgYnV0dG9uID0gMSwgdW5zaWduZWQgbW91c2VNb2Rp
ZmllcnMgPSAwKTsKICAgICB2b2lkIGtleVN0cm9rZSh1bnNpZ25lZCBrZXlWYWwsIHVuc2lnbmVk
IGtleU1vZGlmaWVycyA9IDApOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>