<?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>136999</bug_id>
          
          <creation_ts>2014-09-22 04:24:56 -0700</creation_ts>
          <short_desc>[EFL] Restore previous scroll position using restoreViewState()</short_desc>
          <delta_ts>2014-10-06 19:33:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</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>
          <dependson>126022</dependson>
    
    <dependson>136917</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>lucas.de.marchi</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1036514</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-09-22 04:24:56 -0700</bug_when>
    <thetext>EFL port begins to support FrameLoaderClient::restoreViewState() to be aligned with iOS port. Scroll position update behavior has been optimized for iOS and Mac port. That&apos;s why EFL port tries to follow iOS implementation.

In addition, EFL port has supported to use ScrollingCoordinatorCoordinatedGraphics::requestScrollPositionUpdate() since r173785. Thus, EFL port doesn&apos;t need to have own code path to pass scroll position to WK2, because ScrollView::setScrollPosition() can support EFL port since r173785.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036516</commentid>
    <comment_count>1</comment_count>
      <attachid>238477</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-09-22 04:36:23 -0700</bug_when>
    <thetext>Created attachment 238477
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036517</commentid>
    <comment_count>2</comment_count>
      <attachid>238478</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-09-22 04:51:49 -0700</bug_when>
    <thetext>Created attachment 238478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036518</commentid>
    <comment_count>3</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-09-22 05:08:06 -0700</bug_when>
    <thetext>CC&apos;ing Darin and Benjamin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036528</commentid>
    <comment_count>4</comment_count>
      <attachid>238482</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-09-22 07:33:48 -0700</bug_when>
    <thetext>Created attachment 238482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036679</commentid>
    <comment_count>5</comment_count>
      <attachid>238482</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2014-09-23 02:04:36 -0700</bug_when>
    <thetext>Comment on attachment 238482
Patch

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

I got the positive impression while I looking at the code. However, I&apos;d suggest reusing the iOS implementation instead of duplicating WebFrameLoaderClient&apos; saveViewStateToItem() and restoreViewState() in EFL.

&gt; Source/WebCore/loader/HistoryController.cpp:146
&gt;      // through to the client.
&gt;      m_frame.loader().client().restoreViewState();

Due to EFL is another port that is going to use this functionality, it might be good opportunity to follow FIXME suggestion and move that part to WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036682</commentid>
    <comment_count>6</comment_count>
      <attachid>238482</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-09-23 02:10:17 -0700</bug_when>
    <thetext>Comment on attachment 238482
Patch

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

&gt;&gt; Source/WebCore/loader/HistoryController.cpp:146
&gt;&gt;      m_frame.loader().client().restoreViewState();
&gt; 
&gt; Due to EFL is another port that is going to use this functionality, it might be good opportunity to follow FIXME suggestion and move that part to WebCore.

yes, right. However, I thought it would be good if new bug handles it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036684</commentid>
    <comment_count>7</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-09-23 02:13:19 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 238482 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=238482&amp;action=review
&gt; 
&gt; I got the positive impression while I looking at the code. However, I&apos;d suggest reusing the iOS implementation instead of duplicating WebFrameLoaderClient&apos; saveViewStateToItem() and restoreViewState() in EFL.

I already thought about that. However there is already other implementation on those function. If we share iOS implementation, we need to consider how to handle existing implementation.


#if !PLATFORM(IOS)
void WebFrameLoaderClient::saveViewStateToItem(HistoryItem*)
{
    notImplemented();
}

void WebFrameLoaderClient::restoreViewState()
{
    // Inform the UI process of the scale factor.
    double scaleFactor = m_frame-&gt;coreFrame()-&gt;loader().history().currentItem()-&gt;pageScaleFactor();

    // A scale factor of 0 means the history item has the default scale factor, thus we do not need to update it.
    if (scaleFactor)
        m_frame-&gt;page()-&gt;send(Messages::WebPageProxy::PageScaleFactorDidChange(scaleFactor));

    // FIXME: This should not be necessary. WebCore should be correctly invalidating
    // the view on restores from the back/forward cache.
    if (m_frame == m_frame-&gt;page()-&gt;mainWebFrame())
        m_frame-&gt;page()-&gt;drawingArea()-&gt;setNeedsDisplay();
}
#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037472</commentid>
    <comment_count>8</comment_count>
      <attachid>238713</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-09-26 07:25:15 -0700</bug_when>
    <thetext>Created attachment 238713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1037475</commentid>
    <comment_count>9</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-09-26 07:31:00 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; (From update of attachment 238482 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=238482&amp;action=review
&gt; &gt; 
&gt; &gt; I got the positive impression while I looking at the code. However, I&apos;d suggest reusing the iOS implementation instead of duplicating WebFrameLoaderClient&apos; saveViewStateToItem() and restoreViewState() in EFL.
&gt; 
&gt; I already thought about that. However there is already other implementation on those function. If we share iOS implementation, we need to consider how to handle existing implementation.
&gt; 
&gt; 
&gt; #if !PLATFORM(IOS)
&gt; void WebFrameLoaderClient::saveViewStateToItem(HistoryItem*)
&gt; {
&gt;     notImplemented();
&gt; }
&gt; 
&gt; void WebFrameLoaderClient::restoreViewState()
&gt; {
&gt;     // Inform the UI process of the scale factor.
&gt;     double scaleFactor = m_frame-&gt;coreFrame()-&gt;loader().history().currentItem()-&gt;pageScaleFactor();
&gt; 
&gt;     // A scale factor of 0 means the history item has the default scale factor, thus we do not need to update it.
&gt;     if (scaleFactor)
&gt;         m_frame-&gt;page()-&gt;send(Messages::WebPageProxy::PageScaleFactorDidChange(scaleFactor));
&gt; 
&gt;     // FIXME: This should not be necessary. WebCore should be correctly invalidating
&gt;     // the view on restores from the back/forward cache.
&gt;     if (m_frame == m_frame-&gt;page()-&gt;mainWebFrame())
&gt;         m_frame-&gt;page()-&gt;drawingArea()-&gt;setNeedsDisplay();
&gt; }
&gt; #endif

As I said in comment #7, Mac and GTK port use restoreViewState() in WebFrameLoaderClient.cpp. Thus it looks this patch can&apos;t move iOS implementation to WebFrameLoaderClient.cpp yet. Besides restoreViewState() can be changed by each port in near future. I think it would be good if each port has own implementation at the moment. I upload same patch again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038438</commentid>
    <comment_count>10</comment_count>
      <attachid>238713</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-09-30 19:56:37 -0700</bug_when>
    <thetext>Comment on attachment 238713
Patch

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

I am quite confused by this patch... If there are good reasons for the concerns I raised, you should improve the changelog to give the rationale.

&gt; Source/WebCore/page/Page.cpp:-742
&gt; -            if (!view-&gt;delegatesScrolling())
&gt; -                view-&gt;setScrollPosition(origin);

The check for delegatesScrolling() is necessary, see r165652 and r165913.

You cannot have the delegate changing the position asynchronously followed by a message telling it to go back to the old position.

&gt; Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:118
&gt; -    if (!frameView-&gt;delegatesScrolling())
&gt; +    if (!frameView-&gt;delegatesScrolling() || frameView-&gt;wasScrolledByUser())

This change is not explained in your changelog.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/efl/WebFrameLoaderClientEfl.cpp:2
&gt; + * Copyright (C) 2014 Samsung Electronics. All rights reserved.

Gosh. You can&apos;t just copy Apple&apos;s code and put your copyright on top.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/efl/WebFrameLoaderClientEfl.cpp:57
&gt; +void WebFrameLoaderClient::saveViewStateToItem(HistoryItem* historyItem)
&gt; +{
&gt; +    if (m_frame-&gt;isMainFrame())
&gt; +        m_frame-&gt;page()-&gt;savePageState(*historyItem);
&gt; +}
&gt; +
&gt; +void WebFrameLoaderClient::restoreViewState()
&gt; +{
&gt; +    Frame&amp; frame = *m_frame-&gt;coreFrame();
&gt; +    HistoryItem* currentItem = frame.loader().history().currentItem();
&gt; +    if (FrameView* view = frame.view()) {
&gt; +        if (m_frame-&gt;isMainFrame())
&gt; +            m_frame-&gt;page()-&gt;restorePageState(*currentItem);
&gt; +        else if (!view-&gt;wasScrolledByUser())
&gt; +            view-&gt;setScrollPosition(currentItem-&gt;scrollPoint());
&gt; +    }
&gt; +}

Since this code is now shared, you can just move it to WebFrameLoaderClient.

&gt; Source/WebKit2/WebProcess/WebPage/efl/WebPageEfl.cpp:236
&gt; +    // When a HistoryItem is cleared, its scale factor and scroll point are set to zero. We should not try to restore the other
&gt; +    // parameters in those conditions.
&gt; +    float pageScaleFactor = historyItem.pageScaleFactor();
&gt; +    if (!pageScaleFactor)
&gt; +        return;
&gt; +
&gt; +    scalePage(pageScaleFactor, historyItem.scrollPoint());

I don&apos;t get this.

The reason state restoration is going up to the WebKit layer in iOS is the asynchronous model with delegate scrolling.

Here you are going back to WebCore through scalePage(), why go to the WebKit layer at all? Wouldn&apos;t HistoryController::restoreScrollPositionAndViewState() do everything you need?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038819</commentid>
    <comment_count>11</comment_count>
      <attachid>238713</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-02 02:14:42 -0700</bug_when>
    <thetext>Comment on attachment 238713
Patch

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

&gt;&gt; Source/WebCore/page/Page.cpp:-742
&gt;&gt; -                view-&gt;setScrollPosition(origin);
&gt; 
&gt; The check for delegatesScrolling() is necessary, see r165652 and r165913.
&gt; 
&gt; You cannot have the delegate changing the position asynchronously followed by a message telling it to go back to the old position.

ok, I didn&apos;t know iOS needed to use &quot;!view-&gt;delegatesScrolling()&quot; condition. In next patch, I will keep this code.

&gt;&gt; Source/WebCore/page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:118
&gt;&gt; +    if (!frameView-&gt;delegatesScrolling() || frameView-&gt;wasScrolledByUser())
&gt; 
&gt; This change is not explained in your changelog.

This is a try to fix regression by r173785. I think this should be fixed by new bug. A bug is filed - https://bugs.webkit.org/show_bug.cgi?id=137336.

&gt;&gt; Source/WebKit2/WebProcess/WebCoreSupport/efl/WebFrameLoaderClientEfl.cpp:2
&gt;&gt; + * Copyright (C) 2014 Samsung Electronics. All rights reserved.
&gt; 
&gt; Gosh. You can&apos;t just copy Apple&apos;s code and put your copyright on top.

Oops. Sorry about that. This file is going to be removed in next patch.

&gt;&gt; Source/WebKit2/WebProcess/WebCoreSupport/efl/WebFrameLoaderClientEfl.cpp:57
&gt;&gt; +}
&gt; 
&gt; Since this code is now shared, you can just move it to WebFrameLoaderClient.

Fixed.

&gt;&gt; Source/WebKit2/WebProcess/WebPage/efl/WebPageEfl.cpp:236
&gt;&gt; +    scalePage(pageScaleFactor, historyItem.scrollPoint());
&gt; 
&gt; I don&apos;t get this.
&gt; 
&gt; The reason state restoration is going up to the WebKit layer in iOS is the asynchronous model with delegate scrolling.
&gt; 
&gt; Here you are going back to WebCore through scalePage(), why go to the WebKit layer at all? Wouldn&apos;t HistoryController::restoreScrollPositionAndViewState() do everything you need?

Thank you for your nice catch ! I missed that scalePage() calls m_page-&gt;setPageScaleFactor() of WebCore. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038820</commentid>
    <comment_count>12</comment_count>
      <attachid>239095</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-02 02:15:52 -0700</bug_when>
    <thetext>Created attachment 239095
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039122</commentid>
    <comment_count>13</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-02 21:56:59 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 238713 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=238713&amp;action=review
&gt; 
&gt; I am quite confused by this patch... If there are good reasons for the concerns I raised, you should improve the changelog to give the rationale.

Benjamin, I update my patch title and description. Please take a look again !</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039434</commentid>
    <comment_count>14</comment_count>
      <attachid>239095</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-03 19:47:47 -0700</bug_when>
    <thetext>Comment on attachment 239095
Patch

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

Those are really two fixes in one patch.

The WebCore part seems to be a step in the right direction. My only question has to do with bypassing ScrollView, if there is a good rationale, it should be explained in the changelog.

The WebKit2 part still don&apos;t make any sense as it is implemented. The code looks correct but the semantic does not fit with anything I know in the architecture. Again, this may be correct but it would need an improved changelog.

&gt; Source/WebCore/page/Page.cpp:745
&gt; -                view-&gt;hostWindow()-&gt;delegatedScrollRequested(origin);
&gt; +                view-&gt;requestScrollPositionUpdate(origin);

I find it odd that you are calling requestScrollPositionUpdate() directly instead of going through setScrollPosition(). What&apos;s the reason for that?

&gt; Source/WebCore/page/Page.cpp:782
&gt; -            view-&gt;hostWindow()-&gt;delegatedScrollRequested(origin);
&gt; +            view-&gt;requestScrollPositionUpdate(origin);

ditto.

&gt; Source/WebKit2/WebProcess/WebPage/efl/WebPageEfl.cpp:237
&gt; +    send(Messages::WebPageProxy::PageScaleFactorDidChange(pageScaleFactor));

This does not really make sense. PageScaleFactorDidChange should only happen after the Page&apos;s pageScaleFactor has been updated.

Where is it updated here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039435</commentid>
    <comment_count>15</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-10-03 19:48:59 -0700</bug_when>
    <thetext>By the way, do not hesitate to poke me on IRC. I am swamped in review emails so I frequently miss updates on bugzilla.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039748</commentid>
    <comment_count>16</comment_count>
      <attachid>239095</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-06 09:49:36 -0700</bug_when>
    <thetext>Comment on attachment 239095
Patch

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

I try to improve my ChangeLog. If it is still poor, please let me know. And let me try to ping you on irc, not bugzilla from now on.

&gt;&gt; Source/WebCore/page/Page.cpp:745
&gt;&gt; +                view-&gt;requestScrollPositionUpdate(origin);
&gt; 
&gt; I find it odd that you are calling requestScrollPositionUpdate() directly instead of going through setScrollPosition(). What&apos;s the reason for that?

In my first patch, I called setScrollPosition(origin) instead of requestScallPositionUpdate() directly. But, as you said, mac port and iOS port needs to call setScrollPosition() only when delegatesScrolling() is disabled. However, EFL port based on USE(TILED_BACKING_STORE) supports setScrollPosition() through requestScrollPositionUpdate() only when delegatesScrolling() is enabled. That&apos;s why I call requestScrollPositionUpdate() directly.

&gt;&gt; Source/WebKit2/WebProcess/WebPage/efl/WebPageEfl.cpp:237
&gt;&gt; +    send(Messages::WebPageProxy::PageScaleFactorDidChange(pageScaleFactor));
&gt; 
&gt; This does not really make sense. PageScaleFactorDidChange should only happen after the Page&apos;s pageScaleFactor has been updated.
&gt; 
&gt; Where is it updated here?

I&apos;m sorry. I think here needs to call scalePage() again. Because this is to restore previous pageScaleFactor and scrollPosition through WebCore&apos;s HistoryController. So we need to update the pageScalFactor of historyItem both WebProcess and UIProcess. Existing EFL code path has updated the pageScaleFactor of historyItem to WebCore and WebKit2 through below path. However, this patch tries to restore it using restorePageState() only, thus I think pageScaleFactor|scrollPosition of historyItem needs to apply both WebCore and UIProcess through scalePage().

#if !PLATFORM(IOS)
    // Don&apos;t restore scroll point on iOS as FrameLoaderClient::restoreViewState() does that.
    if (view &amp;&amp; !view-&gt;wasScrolledByUser()) {
        Page* page = m_frame.page();
        if (page &amp;&amp; m_frame.isMainFrame() &amp;&amp; m_currentItem-&gt;pageScaleFactor())
            page-&gt;setPageScaleFactor(m_currentItem-&gt;pageScaleFactor(), m_currentItem-&gt;scrollPoint());
        else
            view-&gt;setScrollPosition(m_currentItem-&gt;scrollPoint());
    }
#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039751</commentid>
    <comment_count>17</comment_count>
      <attachid>239340</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-06 09:57:32 -0700</bug_when>
    <thetext>Created attachment 239340
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039880</commentid>
    <comment_count>18</comment_count>
      <attachid>239340</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-06 17:12:04 -0700</bug_when>
    <thetext>Comment on attachment 239340
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/efl/WebPageEfl.cpp:237
&gt; +        scalePage(restorePageScaleFactor, restoreScrollPoint);

FYI, WebPageIOS::restorePageState() also calls scalePage().

http://trac.webkit.org/browser/trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm#L223
http://trac.webkit.org/browser/trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm#L251

However, this is one of layer violation. Thus, as mentioned in http://trac.webkit.org/browser/trunk/Source/WebCore/loader/HistoryController.cpp#L144, restoreViewState() needs to be moved from WebKit2 to WebCore. Then, IMHO, we can fix this issue more efficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039921</commentid>
    <comment_count>19</comment_count>
      <attachid>239340</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-06 19:33:22 -0700</bug_when>
    <thetext>Comment on attachment 239340
Patch

Clearing flags on attachment: 239340

Committed r174380: &lt;http://trac.webkit.org/changeset/174380&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039922</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-06 19:33:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238477</attachid>
            <date>2014-09-22 04:36:23 -0700</date>
            <delta_ts>2014-09-22 04:51:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136999-20140922203620.patch</filename>
            <type>text/plain</type>
            <size>12414</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTQ0ZDZhZmIwMWEyNjU0
ZGJjYzk0ZTlmYjk4OGZjODg0NjM4MGU3Mi4uMjM4ZmU5Njg0YTJjZmJlY2ZhZTQ2NDNkNjJlNTQx
OWY4Y2NlYjU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTA5LTIyICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gSW1w
bGVtZW50IHJlc3RvcmVQYWdlU3RhdGUoKSBmb3IgYmFja3dhcmQgbmF2aWdhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2OTk5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRUZMIHBvcnQgaGFzIHN1
cHBvcnRlZCB0byB1c2UgU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzOjpy
ZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoKSBzaW5jZSByMTczNzg1LgorICAgICAgICBUaHVz
LCBFRkwgcG9ydCBkb2Vzbid0IG5lZWQgdG8gaGF2ZSBvd24gY29kZSBwYXRoIHRvIHBhc3Mgc2Ny
b2xsIHBvc2l0aW9uIHRvIFdLMiwgYmVjYXVzZSBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlv
bigpCisgICAgICAgIGNhbiBzdXBwb3J0IEVGTCBwb3J0IGFzIHdlbGwuCisKKyAgICAgICAgSW4g
YWRkaXRpb24sIEVGTCBwb3J0IGJlZ2lucyB0byBzdXBwb3J0IEZyYW1lTG9hZGVyQ2xpZW50Ojpy
ZXN0b3JlVmlld1N0YXRlKCkgdG8gYmUgYWxpZ25lZCB3aXRoIGlPUyBwb3J0LiBTY3JvbGwgcG9z
aXRpb24KKyAgICAgICAgdXBkYXRlIGJlaGF2aW9yIGhhcyBiZWVuIG9wdGltaXplZCBmb3IgaU9T
IHBvcnQuIFRoYXQncyB3aHkgRUZMIHBvcnQgdHJpZXMgdG8gZm9sbG93IGlPUyBpbXBsZW1lbnRh
dGlvbi4KKworICAgICAgICBUZXN0IGNvdmVyZWQgYnkgV0tWaWV3UmVzdG9yZVpvb21BbmRTY3Jv
bGxCYWNrRm9yd2FyZCBBUEkgdGVzdC4KKworICAgICAgICAqIGxvYWRlci9IaXN0b3J5Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNj
cm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0UGFnZVNjYWxlRmFjdG9yKToKKyAgICAgICAgKiBwYWdl
L3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRp
bmF0ZWRHcmFwaGljcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRv
ckNvb3JkaW5hdGVkR3JhcGhpY3M6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6CisKIDIw
MTQtMDktMjEgIENocmlzdG9waGUgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IEZpeCBwb3N0LW1vcnRlbSBuaXRzIGZvciByMTczNzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2ZkZmVmMmM3
NDYxMTI1MzA4ZmMwNDhmN2RmMzcyY2YzNmRiNTA5Yi4uOGM1N2VmNmI2NTdmYzc0YzgxMGU5Nzhk
NDlmNjE4Mzg0ZjYwMjdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE0LTA5LTIy
ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VG
TF0gSW1wbGVtZW50IHJlc3RvcmVQYWdlU3RhdGUoKSBmb3IgYmFja3dhcmQgbmF2aWdhdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2OTk5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRUZMIHBvcnQg
YmVnaW5zIHRvIHVzZSBGcmFtZUxvYWRlckNsaWVudDo6cmVzdG9yZVZpZXdTdGF0ZSgpIHRvIGJl
IGFsaWduZWQgd2l0aCBpT1MgcG9ydC4gU2Nyb2xsIHBvc2l0aW9uIHVwZGF0ZQorICAgICAgICBi
ZWhhdmlvciBoYXMgYmVlbiBvcHRpbWl6ZWQgZm9yIGlPUyBwb3J0LiBUaGF0J3Mgd2h5IEVGTCBw
b3J0IHRyaWVzIHRvIGZvbGxvdyBpT1MgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBQbGF0
Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L2VmbC9XZWJGcmFtZUxvYWRlckNsaWVudEVmbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6c2F2ZVZpZXdTdGF0ZVRvSXRlbSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZXN0b3JlVmlld1N0YXRlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9lZmwvV2ViUGFnZUVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlc3Rv
cmVQYWdlU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzYXZlUGFnZVN0YXRlKToK
KwogMjAxNC0wOS0xOSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBXZWJDb250ZW50IGNyYXNoIGluIFdlYktpdDo6V2ViUGFnZTo6ZXhwYW5kZWRSYW5nZUZyb21I
YW5kbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCmluZGV4
IDIwNWVjM2IyMGI5ZGYwMTYxYzQyY2VjNGY3YjY1ZmVhNTZkYjE5NGMuLmZlOWEzMGE4MTUwYjZh
YjgxMTM0N2ZmMzcxYmM3ODBhNWZlODczZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hp
c3RvcnlDb250cm9sbGVyLmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgSGlzdG9yeUNvbnRy
b2xsZXI6OnJlc3RvcmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSgpCiAgICAgLy8gdGhyb3Vn
aCB0byB0aGUgY2xpZW50LgogICAgIG1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkucmVzdG9yZVZp
ZXdTdGF0ZSgpOwogCi0jaWYgIVBMQVRGT1JNKElPUykKKyNpZiAhUExBVEZPUk0oSU9TKSAmJiAh
UExBVEZPUk0oRUZMKQogICAgIC8vIERvbid0IHJlc3RvcmUgc2Nyb2xsIHBvaW50IG9uIGlPUyBh
cyBGcmFtZUxvYWRlckNsaWVudDo6cmVzdG9yZVZpZXdTdGF0ZSgpIGRvZXMgdGhhdC4KICAgICBp
ZiAodmlldyAmJiAhdmlldy0+d2FzU2Nyb2xsZWRCeVVzZXIoKSkgewogICAgICAgICBQYWdlKiBw
YWdlID0gbV9mcmFtZS5wYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCAyNmI4ZDE3M2FjNmVm
MjAwZDUwNzQyYzc1NmIwYzM2M2JhNzNiZGRlLi40YjFkMWIxODY3NDA4N2Y4YmEyMzhjN2I2YTY4
Y2Y5NGI4M2I1NjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTczOCwxMiArNzM4LDcgQEAgdm9p
ZCBQYWdlOjpzZXRQYWdlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGUsIGNvbnN0IEludFBvaW50JiBv
cmlnaW4sIGJvb2wgaW5TdGFibGUKICAgICAgICAgICAgIGlmICghbV9zZXR0aW5ncy0+ZGVsZWdh
dGVzUGFnZVNjYWxpbmcoKSkKICAgICAgICAgICAgICAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKLSAgICAgICAgICAgIGlmICghdmlldy0+ZGVs
ZWdhdGVzU2Nyb2xsaW5nKCkpCi0gICAgICAgICAgICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRp
b24ob3JpZ2luKTsKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKLSAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICB2aWV3LT5ob3N0V2luZG93KCktPmRlbGVnYXRlZFNjcm9sbFJl
cXVlc3RlZChvcmlnaW4pOwotI2VuZGlmCisgICAgICAgICAgICB2aWV3LT5zZXRTY3JvbGxQb3Np
dGlvbihvcmlnaW4pOwogICAgICAgICB9CiAjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX1NDUklQ
VCkKICAgICAgICAgaWYgKGluU3RhYmxlU3RhdGUpIHsKQEAgLTc3NSwxMiArNzcwLDcgQEAgdm9p
ZCBQYWdlOjpzZXRQYWdlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGUsIGNvbnN0IEludFBvaW50JiBv
cmlnaW4sIGJvb2wgaW5TdGFibGUKICAgICAgICAgaWYgKCFtX3NldHRpbmdzLT5kZWxlZ2F0ZXNQ
YWdlU2NhbGluZygpICYmIGRvY3VtZW50LT5yZW5kZXJWaWV3KCkgJiYgZG9jdW1lbnQtPnJlbmRl
clZpZXcoKS0+bmVlZHNMYXlvdXQoKSAmJiB2aWV3LT5kaWRGaXJzdExheW91dCgpKQogICAgICAg
ICAgICAgdmlldy0+bGF5b3V0KCk7CiAgICAgICAgIAotICAgICAgICBpZiAoIXZpZXctPmRlbGVn
YXRlc1Njcm9sbGluZygpKQotICAgICAgICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24ob3Jp
Z2luKTsKLSNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgdmlldy0+aG9zdFdpbmRvdygpLT5kZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQob3JpZ2lu
KTsKLSNlbmRpZgorICAgICAgICB2aWV3LT5zZXRTY3JvbGxQb3NpdGlvbihvcmlnaW4pOwogICAg
IH0KIAogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19TQ1JJUFQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0
ZWRHcmFwaGljcy5jcHAKaW5kZXggZmViNjVlMjU0NjczMGEwOGZiMDJjY2RhOTRlYjIwYzNkOGQz
Y2JiNS4uMDNiN2YyYzQ3ZGY5YTU1NGViNjg3OGM5YzBjODRkOGNmMmFhY2Y3MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3Jv
bGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRpbmF0
b3JDb29yZGluYXRlZEdyYXBoaWNzLmNwcApAQCAtMTE1LDcgKzExNSw3IEBAIHZvaWQgU2Nyb2xs
aW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzOjp3aWxsRGVzdHJveVNjcm9sbGFibGVB
cmVhKFNjcm9sbGFiCiAKIGJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBo
aWNzOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoRnJhbWVWaWV3KiBmcmFtZVZpZXcsIGNv
bnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbikKIHsKLSAgICBpZiAoIWZyYW1lVmlldy0+ZGVs
ZWdhdGVzU2Nyb2xsaW5nKCkpCisgICAgaWYgKCFmcmFtZVZpZXctPmRlbGVnYXRlc1Njcm9sbGlu
ZygpIHx8IGZyYW1lVmlldy0+d2FzU2Nyb2xsZWRCeVVzZXIoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgZnJhbWVWaWV3LT5zZXRGaXhlZFZpc2libGVDb250ZW50UmVjdChJbnRSZWN0
KHNjcm9sbFBvc2l0aW9uLCBmcmFtZVZpZXctPnZpc2libGVDb250ZW50UmVjdCgpLnNpemUoKSkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCAwMWUzNGVhMGJmOWY4OGZiNmZlOTZhNDY5
YTNlMjIzNjFmMGE4ZDFjLi5hMjNiZjBlYTcyM2ZjMDRlNDgxMDM5Y2ZhMWRhMzdjYzI0MzZlZjlm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTg0LDYgKzE4NCw3IEBAIGxpc3QoQVBQ
RU5EIFdlYktpdDJfU09VUkNFUwogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dl
YkNvbnRleHRNZW51Q2xpZW50RWZsLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
ZWZsL1dlYkVkaXRvckNsaWVudEVmbC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L2VmbC9XZWJFcnJvcnNFZmwuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwv
V2ViRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9lZmwvV2ViUG9wdXBNZW51RWZsLmNwcAogCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCmluZGV4IDcxYmFhMjRlYTE2YjQ2OTZmOWYzYWJjMDY0MDhiZmIwZjgxZmEy
ODcuLmE5NGVlZjMyZTlkMWJiZGEzMTc2NTU1M2U4MDFiMDlhNWY1OGQwNGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xMTM3LDcgKzExMzcsNyBAQCB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpmcmFtZUxvYWRDb21wbGV0ZWQoKQogICAgIH0KIH0KIAotI2lmICFQ
TEFURk9STShJT1MpCisjaWYgIVBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKEVGTCkKIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNhdmVWaWV3U3RhdGVUb0l0ZW0oSGlzdG9yeUl0ZW0qKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJGcmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJGcmFtZUxvYWRl
ckNsaWVudEVmbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg3OWZmMDhiMDM1YWUwNTMxN2I5MjNmYzEwMWVl
YzYyMDc3NmQwNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvZWZsL1dlYkZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAtMCwwICsx
LDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXZWJGcmFtZUxvYWRlckNsaWVudC5oIgorCisjaWYgUExBVEZPUk0oRUZMKQorCisjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVWaWV3Lmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9IaXN0b3J5Q29udHJvbGxlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
SGlzdG9yeUl0ZW0uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJG
cmFtZS5oPgorI2luY2x1ZGUgPFdlYlBhZ2UuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzYXZl
Vmlld1N0YXRlVG9JdGVtKEhpc3RvcnlJdGVtKiBoaXN0b3J5SXRlbSkKK3sKKyAgICBpZiAobV9m
cmFtZS0+aXNNYWluRnJhbWUoKSkKKyAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5zYXZlUGFnZVN0
YXRlKCpoaXN0b3J5SXRlbSk7Cit9CisKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlc3Rv
cmVWaWV3U3RhdGUoKQoreworICAgIEZyYW1lJiBmcmFtZSA9ICptX2ZyYW1lLT5jb3JlRnJhbWUo
KTsKKyAgICBIaXN0b3J5SXRlbSogY3VycmVudEl0ZW0gPSBmcmFtZS5sb2FkZXIoKS5oaXN0b3J5
KCkuY3VycmVudEl0ZW0oKTsKKyAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUudmlldygp
KSB7CisgICAgICAgIGlmIChtX2ZyYW1lLT5pc01haW5GcmFtZSgpKQorICAgICAgICAgICAgbV9m
cmFtZS0+cGFnZSgpLT5yZXN0b3JlUGFnZVN0YXRlKCpjdXJyZW50SXRlbSk7CisgICAgICAgIGVs
c2UgaWYgKCF2aWV3LT53YXNTY3JvbGxlZEJ5VXNlcigpKQorICAgICAgICAgICAgdmlldy0+c2V0
U2Nyb2xsUG9zaXRpb24oY3VycmVudEl0ZW0tPnNjcm9sbFBvaW50KCkpOworICAgIH0KK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShFRkwpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBiYWJhNTA2ZWMyMGY0
MjM1NjMzOWFlZWE2MmE4OTU3NDY4NjViYzg4Li5hNjEzZTliOGE5NGJiMDE4ZjExOTRiNGRlZTIw
ODYzMjdjYTM5ZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKQEAgLTQ0NywxNCArNDQ3LDE3IEBAIHB1YmxpYzoKICAgICBHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlciYgZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIo
KSB7IHJldHVybiBtX2dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOyB9CiAjZW5k
aWYKIAorI2lmIFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oRUZMKQordm9pZCBzYXZlUGFnZVN0
YXRlKFdlYkNvcmU6Okhpc3RvcnlJdGVtJik7Cit2b2lkIHJlc3RvcmVQYWdlU3RhdGUoY29uc3Qg
V2ViQ29yZTo6SGlzdG9yeUl0ZW0mKTsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQogICAg
IFdlYkNvcmU6OkZsb2F0U2l6ZSBzY3JlZW5TaXplKCkgY29uc3Q7CiAgICAgV2ViQ29yZTo6Rmxv
YXRTaXplIGF2YWlsYWJsZVNjcmVlblNpemUoKSBjb25zdDsKICAgICBpbnQzMl90IGRldmljZU9y
aWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VPcmllbnRhdGlvbjsgfQogICAgIHZv
aWQgdmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJn
dW1lbnRzJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlTW9iaWxlRG9jVHlwZShib29sKTsKLSAgICB2
b2lkIHNhdmVQYWdlU3RhdGUoV2ViQ29yZTo6SGlzdG9yeUl0ZW0mKTsKLSAgICB2b2lkIHJlc3Rv
cmVQYWdlU3RhdGUoY29uc3QgV2ViQ29yZTo6SGlzdG9yeUl0ZW0mKTsKIAogICAgIHZvaWQgc2V0
VXNlVGVzdGluZ1ZpZXdwb3J0Q29uZmlndXJhdGlvbihib29sIHVzZVRlc3RpbmdWaWV3cG9ydCkg
eyBtX3VzZVRlc3RpbmdWaWV3cG9ydENvbmZpZ3VyYXRpb24gPSB1c2VUZXN0aW5nVmlld3BvcnQ7
IH0KICAgICBib29sIGlzVXNpbmdUZXN0aW5nVmlld3BvcnRDb25maWd1cmF0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbV91c2VUZXN0aW5nVmlld3BvcnRDb25maWd1cmF0aW9uOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZWZsL1dlYlBhZ2VFZmwuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2VmbC9XZWJQYWdlRWZsLmNwcAppbmRl
eCAxYWFiNGQ1MjNiNTUyYTk0ODE2M2UzZGM4ZjcxMTUxOWRkOThiYjA2Li40OWU5NDc5YmNiMDUz
Y2UzN2JlNjE3NzhiOThjYmI0YzQwZDkyNzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvZWZsL1dlYlBhZ2VFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9lZmwvV2ViUGFnZUVmbC5jcHAKQEAgLTM4LDYgKzM4LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lVmlldy5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvSGlzdG9yeUl0ZW0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudC5oPgpAQCAtMjI0LDQgKzIyNSwyMCBAQCBTdHJpbmcgV2ViUGFnZTo6cGxhdGZvcm1V
c2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK3Zv
aWQgV2ViUGFnZTo6cmVzdG9yZVBhZ2VTdGF0ZShjb25zdCBIaXN0b3J5SXRlbSYgaGlzdG9yeUl0
ZW0pCit7CisgICAgLy8gV2hlbiBhIEhpc3RvcnlJdGVtIGlzIGNsZWFyZWQsIGl0cyBzY2FsZSBm
YWN0b3IgYW5kIHNjcm9sbCBwb2ludCBhcmUgc2V0IHRvIHplcm8uIFdlIHNob3VsZCBub3QgdHJ5
IHRvIHJlc3RvcmUgdGhlIG90aGVyCisgICAgLy8gcGFyYW1ldGVycyBpbiB0aG9zZSBjb25kaXRp
b25zLgorICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IGhpc3RvcnlJdGVtLnBhZ2VTY2FsZUZh
Y3RvcigpOworICAgIGlmICghcGFnZVNjYWxlRmFjdG9yKQorICAgICAgICByZXR1cm47CisKKyAg
ICBzY2FsZVBhZ2UocGFnZVNjYWxlRmFjdG9yLCBoaXN0b3J5SXRlbS5zY3JvbGxQb2ludCgpKTsK
K30KKwordm9pZCBXZWJQYWdlOjpzYXZlUGFnZVN0YXRlKEhpc3RvcnlJdGVtJikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238478</attachid>
            <date>2014-09-22 04:51:49 -0700</date>
            <delta_ts>2014-09-22 07:33:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136999-20140922205147.patch</filename>
            <type>text/plain</type>
            <size>12408</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY4MjZjMzliNjI3M2Qz
YjE2OWEyZGE0OWZhNzY1ZjRmMThmYzgzMy4uYTlkMDIzY2NiY2Y5ZTZkNmZhYzhhNjYzYzQ0ZjU0
NmM5YzFhZWUzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTA5LTIyICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gSW1w
bGVtZW50IHJlc3RvcmVQYWdlU3RhdGUoKSBmb3IgYmFja3dhcmQgbmF2aWdhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2OTk5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRUZMIHBvcnQgaGFzIHN1
cHBvcnRlZCB0byB1c2UgU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzOjpy
ZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoKSBzaW5jZSByMTczNzg1LgorICAgICAgICBUaHVz
LCBFRkwgcG9ydCBkb2Vzbid0IG5lZWQgdG8gaGF2ZSBvd24gY29kZSBwYXRoIHRvIHBhc3Mgc2Ny
b2xsIHBvc2l0aW9uIHRvIFdLMiwgYmVjYXVzZSBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlv
bigpCisgICAgICAgIGNhbiBzdXBwb3J0IEVGTCBwb3J0IGFzIHdlbGwuCisKKyAgICAgICAgSW4g
YWRkaXRpb24sIEVGTCBwb3J0IGJlZ2lucyB0byBzdXBwb3J0IEZyYW1lTG9hZGVyQ2xpZW50Ojpy
ZXN0b3JlVmlld1N0YXRlKCkgdG8gYmUgYWxpZ25lZCB3aXRoIGlPUyBwb3J0LiBTY3JvbGwgcG9z
aXRpb24KKyAgICAgICAgdXBkYXRlIGJlaGF2aW9yIGhhcyBiZWVuIG9wdGltaXplZCBmb3IgaU9T
IHBvcnQuIFRoYXQncyB3aHkgRUZMIHBvcnQgdHJpZXMgdG8gZm9sbG93IGlPUyBpbXBsZW1lbnRh
dGlvbi4KKworICAgICAgICBUZXN0IGNvdmVyZWQgYnkgV0tWaWV3UmVzdG9yZVpvb21BbmRTY3Jv
bGxCYWNrRm9yd2FyZCBBUEkgdGVzdC4KKworICAgICAgICAqIGxvYWRlci9IaXN0b3J5Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNj
cm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0UGFnZVNjYWxlRmFjdG9yKToKKyAgICAgICAgKiBwYWdl
L3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRp
bmF0ZWRHcmFwaGljcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRv
ckNvb3JkaW5hdGVkR3JhcGhpY3M6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6CisKIDIw
MTQtMDktMTcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHU3RyZWFtZXJdIENhbm5vdCBwbGF5IFZpbWVvIHZpZGVvCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzgx
Y2JkNTIzNTkyNGQzNGU4MzNlZjc3ZTI2ZDk1MWQ4MTJiMThiOC4uMzNlNmQ1ZTdjMjEzMWVkZTdl
Zjc2MDE2NWIwMDJmMTYwZTE4ZTAxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE0
LTA5LTIyICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAg
ICAgW0VGTF0gSW1wbGVtZW50IHJlc3RvcmVQYWdlU3RhdGUoKSBmb3IgYmFja3dhcmQgbmF2aWdh
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2
OTk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRUZM
IHBvcnQgYmVnaW5zIHRvIHVzZSBGcmFtZUxvYWRlckNsaWVudDo6cmVzdG9yZVZpZXdTdGF0ZSgp
IHRvIGJlIGFsaWduZWQgd2l0aCBpT1MgcG9ydC4gU2Nyb2xsIHBvc2l0aW9uIHVwZGF0ZQorICAg
ICAgICBiZWhhdmlvciBoYXMgYmVlbiBvcHRpbWl6ZWQgZm9yIGlPUyBwb3J0LiBUaGF0J3Mgd2h5
IEVGTCBwb3J0IHRyaWVzIHRvIGZvbGxvdyBpT1MgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAg
KiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L2VmbC9XZWJGcmFtZUxvYWRlckNsaWVudEVmbC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6c2F2ZVZpZXdTdGF0ZVRvSXRlbSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZXN0b3JlVmlld1N0YXRlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9lZmwvV2ViUGFnZUVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnJlc3RvcmVQYWdlU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzYXZlUGFnZVN0
YXRlKToKKwogMjAxNC0wOS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIEdlbmVyYXRlIEVsZW1lbnQgY2FzdGluZyBoZWxwZXIgZnVuY3Rpb25zCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAppbmRleCAyMDVlYzNiMjBiOWRm
MDE2MWM0MmNlYzRmN2I2NWZlYTU2ZGIxOTRjLi5mZTlhMzBhODE1MGI2YWI4MTEzNDdmZjM3MWJj
NzgwYTVmZTg3M2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxl
ci5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjpyZXN0b3Jl
U2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGUoKQogICAgIC8vIHRocm91Z2ggdG8gdGhlIGNsaWVu
dC4KICAgICBtX2ZyYW1lLmxvYWRlcigpLmNsaWVudCgpLnJlc3RvcmVWaWV3U3RhdGUoKTsKIAot
I2lmICFQTEFURk9STShJT1MpCisjaWYgIVBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKEVGTCkK
ICAgICAvLyBEb24ndCByZXN0b3JlIHNjcm9sbCBwb2ludCBvbiBpT1MgYXMgRnJhbWVMb2FkZXJD
bGllbnQ6OnJlc3RvcmVWaWV3U3RhdGUoKSBkb2VzIHRoYXQuCiAgICAgaWYgKHZpZXcgJiYgIXZp
ZXctPndhc1Njcm9sbGVkQnlVc2VyKCkpIHsKICAgICAgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUu
cGFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMjZiOGQxNzNhYzZlZjIwMGQ1MDc0MmM3NTZi
MGMzNjNiYTczYmRkZS4uNGIxZDFiMTg2NzQwODdmOGJhMjM4YzdiNmE2OGNmOTRiODNiNTYzOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCkBAIC03MzgsMTIgKzczOCw3IEBAIHZvaWQgUGFnZTo6c2V0UGFn
ZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlLCBjb25zdCBJbnRQb2ludCYgb3JpZ2luLCBib29sIGlu
U3RhYmxlCiAgICAgICAgICAgICBpZiAoIW1fc2V0dGluZ3MtPmRlbGVnYXRlc1BhZ2VTY2FsaW5n
KCkpCiAgICAgICAgICAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdT
dHlsZXNoZWV0cygpOwogCi0gICAgICAgICAgICBpZiAoIXZpZXctPmRlbGVnYXRlc1Njcm9sbGlu
ZygpKQotICAgICAgICAgICAgICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKG9yaWdpbik7Ci0j
aWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgdmlldy0+aG9zdFdpbmRvdygpLT5kZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQob3JpZ2lu
KTsKLSNlbmRpZgorICAgICAgICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24ob3JpZ2luKTsK
ICAgICAgICAgfQogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19TQ1JJUFQpCiAgICAgICAgIGlm
IChpblN0YWJsZVN0YXRlKSB7CkBAIC03NzUsMTIgKzc3MCw3IEBAIHZvaWQgUGFnZTo6c2V0UGFn
ZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlLCBjb25zdCBJbnRQb2ludCYgb3JpZ2luLCBib29sIGlu
U3RhYmxlCiAgICAgICAgIGlmICghbV9zZXR0aW5ncy0+ZGVsZWdhdGVzUGFnZVNjYWxpbmcoKSAm
JiBkb2N1bWVudC0+cmVuZGVyVmlldygpICYmIGRvY3VtZW50LT5yZW5kZXJWaWV3KCktPm5lZWRz
TGF5b3V0KCkgJiYgdmlldy0+ZGlkRmlyc3RMYXlvdXQoKSkKICAgICAgICAgICAgIHZpZXctPmxh
eW91dCgpOwogICAgICAgICAKLSAgICAgICAgaWYgKCF2aWV3LT5kZWxlZ2F0ZXNTY3JvbGxpbmco
KSkKLSAgICAgICAgICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKG9yaWdpbik7Ci0jaWYgVVNF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZpZXctPmhv
c3RXaW5kb3coKS0+ZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKG9yaWdpbik7Ci0jZW5kaWYKKyAg
ICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24ob3JpZ2luKTsKICAgICB9CiAKICNpZiBFTkFC
TEUoTUVESUFfQ09OVFJPTFNfU0NSSVBUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3Jk
aW5hdGVkR3JhcGhpY3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29vcmRp
bmF0ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuY3Bw
CmluZGV4IGZlYjY1ZTI1NDY3MzBhMDhmYjAyY2NkYTk0ZWIyMGMzZDhkM2NiYjUuLjAzYjdmMmM0
N2RmOWE1NTRlYjY4NzhjOWMwYzg0ZDhjZjJhYWNmNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRpbmF0
b3JDb29yZGluYXRlZEdyYXBoaWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRH
cmFwaGljcy5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9y
Q29vcmRpbmF0ZWRHcmFwaGljczo6d2lsbERlc3Ryb3lTY3JvbGxhYmxlQXJlYShTY3JvbGxhYgog
CiBib29sIFNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljczo6cmVxdWVzdFNj
cm9sbFBvc2l0aW9uVXBkYXRlKEZyYW1lVmlldyogZnJhbWVWaWV3LCBjb25zdCBJbnRQb2ludCYg
c2Nyb2xsUG9zaXRpb24pCiB7Ci0gICAgaWYgKCFmcmFtZVZpZXctPmRlbGVnYXRlc1Njcm9sbGlu
ZygpKQorICAgIGlmICghZnJhbWVWaWV3LT5kZWxlZ2F0ZXNTY3JvbGxpbmcoKSB8fCBmcmFtZVZp
ZXctPndhc1Njcm9sbGVkQnlVc2VyKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGZy
YW1lVmlldy0+c2V0Rml4ZWRWaXNpYmxlQ29udGVudFJlY3QoSW50UmVjdChzY3JvbGxQb3NpdGlv
biwgZnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3QoKS5zaXplKCkpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1FZmwuY21ha2UKaW5kZXggMDFlMzRlYTBiZjlmODhmYjZmZTk2YTQ2OWEzZTIyMzYxZjBhOGQx
Yy4uYTIzYmYwZWE3MjNmYzA0ZTQ4MTAzOWNmYTFkYTM3Y2MyNDM2ZWY5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm1FZmwuY21ha2UKQEAgLTE4NCw2ICsxODQsNyBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NP
VVJDRVMKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJDb250ZXh0TWVudUNs
aWVudEVmbC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFZGl0b3JD
bGllbnRFZmwuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRXJyb3Jz
RWZsLmNwcAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkZyYW1lTG9hZGVy
Q2xpZW50RWZsLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYlBvcHVw
TWVudUVmbC5jcHAKIAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApp
bmRleCA3MWJhYTI0ZWExNmI0Njk2ZjlmM2FiYzA2NDA4YmZiMGY4MWZhMjg3Li5hOTRlZWYzMmU5
ZDFiYmRhMzE3NjU1NTNlODAxYjA5YTVmNThkMDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcApAQCAtMTEzNyw3ICsxMTM3LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZnJhbWVMb2FkQ29tcGxldGVkKCkKICAgICB9CiB9CiAKLSNpZiAhUExBVEZPUk0oSU9TKQor
I2lmICFQTEFURk9STShJT1MpICYmICFQTEFURk9STShFRkwpCiB2b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpzYXZlVmlld1N0YXRlVG9JdGVtKEhpc3RvcnlJdGVtKikKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9lZmwvV2ViRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRnJhbWVMb2FkZXJDbGllbnRFZmwuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmM4NzlmZjA4YjAzNWFlMDUzMTdiOTIzZmMxMDFlZWM2MjA3NzZkMDQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L2VmbC9XZWJGcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViRnJhbWVM
b2FkZXJDbGllbnQuaCIKKworI2lmIFBMQVRGT1JNKEVGTCkKKworI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lVmlldy5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvSGlzdG9yeUNvbnRyb2xsZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hpc3RvcnlJdGVtLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8V2ViRnJhbWUuaD4KKyNpbmNs
dWRlIDxXZWJQYWdlLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2Ug
V2ViS2l0IHsKKwordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2F2ZVZpZXdTdGF0ZVRvSXRl
bShIaXN0b3J5SXRlbSogaGlzdG9yeUl0ZW0pCit7CisgICAgaWYgKG1fZnJhbWUtPmlzTWFpbkZy
YW1lKCkpCisgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+c2F2ZVBhZ2VTdGF0ZSgqaGlzdG9yeUl0
ZW0pOworfQorCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZXN0b3JlVmlld1N0YXRlKCkK
K3sKKyAgICBGcmFtZSYgZnJhbWUgPSAqbV9mcmFtZS0+Y29yZUZyYW1lKCk7CisgICAgSGlzdG9y
eUl0ZW0qIGN1cnJlbnRJdGVtID0gZnJhbWUubG9hZGVyKCkuaGlzdG9yeSgpLmN1cnJlbnRJdGVt
KCk7CisgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IGZyYW1lLnZpZXcoKSkgeworICAgICAgICBp
ZiAobV9mcmFtZS0+aXNNYWluRnJhbWUoKSkKKyAgICAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+
cmVzdG9yZVBhZ2VTdGF0ZSgqY3VycmVudEl0ZW0pOworICAgICAgICBlbHNlIGlmICghdmlldy0+
d2FzU2Nyb2xsZWRCeVVzZXIoKSkKKyAgICAgICAgICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9u
KGN1cnJlbnRJdGVtLT5zY3JvbGxQb2ludCgpKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oRUZMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYmFiYTUwNmVjMjBmNDIzNTYzMzlhZWVhNjJh
ODk1NzQ2ODY1YmM4OC4uN2JmYjRjNTc2ZDllNTQ3MGE1OTU1MmE4ZTkyMDRjMWE5ZmQzYTczNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC00NDcs
MTQgKzQ0NywxNyBAQCBwdWJsaWM6CiAgICAgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXImIGdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkgeyByZXR1cm4gbV9n
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsgfQogI2VuZGlmCiAKKyNpZiBQTEFU
Rk9STShJT1MpIHx8IFBMQVRGT1JNKEVGTCkKKyAgICB2b2lkIHNhdmVQYWdlU3RhdGUoV2ViQ29y
ZTo6SGlzdG9yeUl0ZW0mKTsKKyAgICB2b2lkIHJlc3RvcmVQYWdlU3RhdGUoY29uc3QgV2ViQ29y
ZTo6SGlzdG9yeUl0ZW0mKTsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdlYkNv
cmU6OkZsb2F0U2l6ZSBzY3JlZW5TaXplKCkgY29uc3Q7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXpl
IGF2YWlsYWJsZVNjcmVlblNpemUoKSBjb25zdDsKICAgICBpbnQzMl90IGRldmljZU9yaWVudGF0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VPcmllbnRhdGlvbjsgfQogICAgIHZvaWQgdmll
d3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRz
Jik7CiAgICAgdm9pZCBkaWRSZWNlaXZlTW9iaWxlRG9jVHlwZShib29sKTsKLSAgICB2b2lkIHNh
dmVQYWdlU3RhdGUoV2ViQ29yZTo6SGlzdG9yeUl0ZW0mKTsKLSAgICB2b2lkIHJlc3RvcmVQYWdl
U3RhdGUoY29uc3QgV2ViQ29yZTo6SGlzdG9yeUl0ZW0mKTsKIAogICAgIHZvaWQgc2V0VXNlVGVz
dGluZ1ZpZXdwb3J0Q29uZmlndXJhdGlvbihib29sIHVzZVRlc3RpbmdWaWV3cG9ydCkgeyBtX3Vz
ZVRlc3RpbmdWaWV3cG9ydENvbmZpZ3VyYXRpb24gPSB1c2VUZXN0aW5nVmlld3BvcnQ7IH0KICAg
ICBib29sIGlzVXNpbmdUZXN0aW5nVmlld3BvcnRDb25maWd1cmF0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV91c2VUZXN0aW5nVmlld3BvcnRDb25maWd1cmF0aW9uOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZWZsL1dlYlBhZ2VFZmwuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2VmbC9XZWJQYWdlRWZsLmNwcAppbmRleCAxYWFi
NGQ1MjNiNTUyYTk0ODE2M2UzZGM4ZjcxMTUxOWRkOThiYjA2Li40OWU5NDc5YmNiMDUzY2UzN2Jl
NjE3NzhiOThjYmI0YzQwZDkyNzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvZWZsL1dlYlBhZ2VFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9lZmwvV2ViUGFnZUVmbC5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0ZvY3VzQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lVmlldy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSGlz
dG9yeUl0ZW0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dC5oPgpAQCAtMjI0LDQgKzIyNSwyMCBAQCBTdHJpbmcgV2ViUGFnZTo6cGxhdGZvcm1Vc2VyQWdl
bnQoY29uc3QgVVJMJikgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK3ZvaWQgV2Vi
UGFnZTo6cmVzdG9yZVBhZ2VTdGF0ZShjb25zdCBIaXN0b3J5SXRlbSYgaGlzdG9yeUl0ZW0pCit7
CisgICAgLy8gV2hlbiBhIEhpc3RvcnlJdGVtIGlzIGNsZWFyZWQsIGl0cyBzY2FsZSBmYWN0b3Ig
YW5kIHNjcm9sbCBwb2ludCBhcmUgc2V0IHRvIHplcm8uIFdlIHNob3VsZCBub3QgdHJ5IHRvIHJl
c3RvcmUgdGhlIG90aGVyCisgICAgLy8gcGFyYW1ldGVycyBpbiB0aG9zZSBjb25kaXRpb25zLgor
ICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IGhpc3RvcnlJdGVtLnBhZ2VTY2FsZUZhY3Rvcigp
OworICAgIGlmICghcGFnZVNjYWxlRmFjdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBzY2Fs
ZVBhZ2UocGFnZVNjYWxlRmFjdG9yLCBoaXN0b3J5SXRlbS5zY3JvbGxQb2ludCgpKTsKK30KKwor
dm9pZCBXZWJQYWdlOjpzYXZlUGFnZVN0YXRlKEhpc3RvcnlJdGVtJikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238482</attachid>
            <date>2014-09-22 07:33:48 -0700</date>
            <delta_ts>2014-09-26 07:25:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136999-20140922233346.patch</filename>
            <type>text/plain</type>
            <size>12360</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY4MjZjMzliNjI3M2Qz
YjE2OWEyZGE0OWZhNzY1ZjRmMThmYzgzMy4uYTlkMDIzY2NiY2Y5ZTZkNmZhYzhhNjYzYzQ0ZjU0
NmM5YzFhZWUzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTA5LTIyICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gSW1w
bGVtZW50IHJlc3RvcmVQYWdlU3RhdGUoKSBmb3IgYmFja3dhcmQgbmF2aWdhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2OTk5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRUZMIHBvcnQgaGFzIHN1
cHBvcnRlZCB0byB1c2UgU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzOjpy
ZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoKSBzaW5jZSByMTczNzg1LgorICAgICAgICBUaHVz
LCBFRkwgcG9ydCBkb2Vzbid0IG5lZWQgdG8gaGF2ZSBvd24gY29kZSBwYXRoIHRvIHBhc3Mgc2Ny
b2xsIHBvc2l0aW9uIHRvIFdLMiwgYmVjYXVzZSBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlv
bigpCisgICAgICAgIGNhbiBzdXBwb3J0IEVGTCBwb3J0IGFzIHdlbGwuCisKKyAgICAgICAgSW4g
YWRkaXRpb24sIEVGTCBwb3J0IGJlZ2lucyB0byBzdXBwb3J0IEZyYW1lTG9hZGVyQ2xpZW50Ojpy
ZXN0b3JlVmlld1N0YXRlKCkgdG8gYmUgYWxpZ25lZCB3aXRoIGlPUyBwb3J0LiBTY3JvbGwgcG9z
aXRpb24KKyAgICAgICAgdXBkYXRlIGJlaGF2aW9yIGhhcyBiZWVuIG9wdGltaXplZCBmb3IgaU9T
IHBvcnQuIFRoYXQncyB3aHkgRUZMIHBvcnQgdHJpZXMgdG8gZm9sbG93IGlPUyBpbXBsZW1lbnRh
dGlvbi4KKworICAgICAgICBUZXN0IGNvdmVyZWQgYnkgV0tWaWV3UmVzdG9yZVpvb21BbmRTY3Jv
bGxCYWNrRm9yd2FyZCBBUEkgdGVzdC4KKworICAgICAgICAqIGxvYWRlci9IaXN0b3J5Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNj
cm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0UGFnZVNjYWxlRmFjdG9yKToKKyAgICAgICAgKiBwYWdl
L3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRp
bmF0ZWRHcmFwaGljcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRv
ckNvb3JkaW5hdGVkR3JhcGhpY3M6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6CisKIDIw
MTQtMDktMTcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHU3RyZWFtZXJdIENhbm5vdCBwbGF5IFZpbWVvIHZpZGVvCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzgx
Y2JkNTIzNTkyNGQzNGU4MzNlZjc3ZTI2ZDk1MWQ4MTJiMThiOC4uMzNlNmQ1ZTdjMjEzMWVkZTdl
Zjc2MDE2NWIwMDJmMTYwZTE4ZTAxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE0
LTA5LTIyICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAg
ICAgW0VGTF0gSW1wbGVtZW50IHJlc3RvcmVQYWdlU3RhdGUoKSBmb3IgYmFja3dhcmQgbmF2aWdh
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2
OTk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRUZM
IHBvcnQgYmVnaW5zIHRvIHVzZSBGcmFtZUxvYWRlckNsaWVudDo6cmVzdG9yZVZpZXdTdGF0ZSgp
IHRvIGJlIGFsaWduZWQgd2l0aCBpT1MgcG9ydC4gU2Nyb2xsIHBvc2l0aW9uIHVwZGF0ZQorICAg
ICAgICBiZWhhdmlvciBoYXMgYmVlbiBvcHRpbWl6ZWQgZm9yIGlPUyBwb3J0LiBUaGF0J3Mgd2h5
IEVGTCBwb3J0IHRyaWVzIHRvIGZvbGxvdyBpT1MgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAg
KiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L2VmbC9XZWJGcmFtZUxvYWRlckNsaWVudEVmbC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6c2F2ZVZpZXdTdGF0ZVRvSXRlbSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZXN0b3JlVmlld1N0YXRlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9lZmwvV2ViUGFnZUVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnJlc3RvcmVQYWdlU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzYXZlUGFnZVN0
YXRlKToKKwogMjAxNC0wOS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIEdlbmVyYXRlIEVsZW1lbnQgY2FzdGluZyBoZWxwZXIgZnVuY3Rpb25zCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAppbmRleCAyMDVlYzNiMjBiOWRm
MDE2MWM0MmNlYzRmN2I2NWZlYTU2ZGIxOTRjLi5mZTlhMzBhODE1MGI2YWI4MTEzNDdmZjM3MWJj
NzgwYTVmZTg3M2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxl
ci5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjpyZXN0b3Jl
U2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGUoKQogICAgIC8vIHRocm91Z2ggdG8gdGhlIGNsaWVu
dC4KICAgICBtX2ZyYW1lLmxvYWRlcigpLmNsaWVudCgpLnJlc3RvcmVWaWV3U3RhdGUoKTsKIAot
I2lmICFQTEFURk9STShJT1MpCisjaWYgIVBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKEVGTCkK
ICAgICAvLyBEb24ndCByZXN0b3JlIHNjcm9sbCBwb2ludCBvbiBpT1MgYXMgRnJhbWVMb2FkZXJD
bGllbnQ6OnJlc3RvcmVWaWV3U3RhdGUoKSBkb2VzIHRoYXQuCiAgICAgaWYgKHZpZXcgJiYgIXZp
ZXctPndhc1Njcm9sbGVkQnlVc2VyKCkpIHsKICAgICAgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUu
cGFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMjZiOGQxNzNhYzZlZjIwMGQ1MDc0MmM3NTZi
MGMzNjNiYTczYmRkZS4uNGIxZDFiMTg2NzQwODdmOGJhMjM4YzdiNmE2OGNmOTRiODNiNTYzOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCkBAIC03MzgsMTIgKzczOCw3IEBAIHZvaWQgUGFnZTo6c2V0UGFn
ZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlLCBjb25zdCBJbnRQb2ludCYgb3JpZ2luLCBib29sIGlu
U3RhYmxlCiAgICAgICAgICAgICBpZiAoIW1fc2V0dGluZ3MtPmRlbGVnYXRlc1BhZ2VTY2FsaW5n
KCkpCiAgICAgICAgICAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdT
dHlsZXNoZWV0cygpOwogCi0gICAgICAgICAgICBpZiAoIXZpZXctPmRlbGVnYXRlc1Njcm9sbGlu
ZygpKQotICAgICAgICAgICAgICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKG9yaWdpbik7Ci0j
aWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgdmlldy0+aG9zdFdpbmRvdygpLT5kZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQob3JpZ2lu
KTsKLSNlbmRpZgorICAgICAgICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24ob3JpZ2luKTsK
ICAgICAgICAgfQogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19TQ1JJUFQpCiAgICAgICAgIGlm
IChpblN0YWJsZVN0YXRlKSB7CkBAIC03NzUsMTIgKzc3MCw3IEBAIHZvaWQgUGFnZTo6c2V0UGFn
ZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlLCBjb25zdCBJbnRQb2ludCYgb3JpZ2luLCBib29sIGlu
U3RhYmxlCiAgICAgICAgIGlmICghbV9zZXR0aW5ncy0+ZGVsZWdhdGVzUGFnZVNjYWxpbmcoKSAm
JiBkb2N1bWVudC0+cmVuZGVyVmlldygpICYmIGRvY3VtZW50LT5yZW5kZXJWaWV3KCktPm5lZWRz
TGF5b3V0KCkgJiYgdmlldy0+ZGlkRmlyc3RMYXlvdXQoKSkKICAgICAgICAgICAgIHZpZXctPmxh
eW91dCgpOwogICAgICAgICAKLSAgICAgICAgaWYgKCF2aWV3LT5kZWxlZ2F0ZXNTY3JvbGxpbmco
KSkKLSAgICAgICAgICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKG9yaWdpbik7Ci0jaWYgVVNF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZpZXctPmhv
c3RXaW5kb3coKS0+ZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKG9yaWdpbik7Ci0jZW5kaWYKKyAg
ICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24ob3JpZ2luKTsKICAgICB9CiAKICNpZiBFTkFC
TEUoTUVESUFfQ09OVFJPTFNfU0NSSVBUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3Jk
aW5hdGVkR3JhcGhpY3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29vcmRp
bmF0ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuY3Bw
CmluZGV4IGZlYjY1ZTI1NDY3MzBhMDhmYjAyY2NkYTk0ZWIyMGMzZDhkM2NiYjUuLjAzYjdmMmM0
N2RmOWE1NTRlYjY4NzhjOWMwYzg0ZDhjZjJhYWNmNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRpbmF0
b3JDb29yZGluYXRlZEdyYXBoaWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRH
cmFwaGljcy5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9y
Q29vcmRpbmF0ZWRHcmFwaGljczo6d2lsbERlc3Ryb3lTY3JvbGxhYmxlQXJlYShTY3JvbGxhYgog
CiBib29sIFNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljczo6cmVxdWVzdFNj
cm9sbFBvc2l0aW9uVXBkYXRlKEZyYW1lVmlldyogZnJhbWVWaWV3LCBjb25zdCBJbnRQb2ludCYg
c2Nyb2xsUG9zaXRpb24pCiB7Ci0gICAgaWYgKCFmcmFtZVZpZXctPmRlbGVnYXRlc1Njcm9sbGlu
ZygpKQorICAgIGlmICghZnJhbWVWaWV3LT5kZWxlZ2F0ZXNTY3JvbGxpbmcoKSB8fCBmcmFtZVZp
ZXctPndhc1Njcm9sbGVkQnlVc2VyKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGZy
YW1lVmlldy0+c2V0Rml4ZWRWaXNpYmxlQ29udGVudFJlY3QoSW50UmVjdChzY3JvbGxQb3NpdGlv
biwgZnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3QoKS5zaXplKCkpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1FZmwuY21ha2UKaW5kZXggMDFlMzRlYTBiZjlmODhmYjZmZTk2YTQ2OWEzZTIyMzYxZjBhOGQx
Yy4uYTIzYmYwZWE3MjNmYzA0ZTQ4MTAzOWNmYTFkYTM3Y2MyNDM2ZWY5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm1FZmwuY21ha2UKQEAgLTE4NCw2ICsxODQsNyBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NP
VVJDRVMKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJDb250ZXh0TWVudUNs
aWVudEVmbC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFZGl0b3JD
bGllbnRFZmwuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRXJyb3Jz
RWZsLmNwcAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkZyYW1lTG9hZGVy
Q2xpZW50RWZsLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYlBvcHVw
TWVudUVmbC5jcHAKIAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApp
bmRleCA3MWJhYTI0ZWExNmI0Njk2ZjlmM2FiYzA2NDA4YmZiMGY4MWZhMjg3Li5hOTRlZWYzMmU5
ZDFiYmRhMzE3NjU1NTNlODAxYjA5YTVmNThkMDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcApAQCAtMTEzNyw3ICsxMTM3LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZnJhbWVMb2FkQ29tcGxldGVkKCkKICAgICB9CiB9CiAKLSNpZiAhUExBVEZPUk0oSU9TKQor
I2lmICFQTEFURk9STShJT1MpICYmICFQTEFURk9STShFRkwpCiB2b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpzYXZlVmlld1N0YXRlVG9JdGVtKEhpc3RvcnlJdGVtKikKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9lZmwvV2ViRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRnJhbWVMb2FkZXJDbGllbnRFZmwuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmE4OWRjYTIwNDFkYjQ4ZTU4YTU4MTNmZTM2OGI4Zjk1NDkzZGE3OGUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L2VmbC9XZWJGcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViRnJhbWVM
b2FkZXJDbGllbnQuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0ZyYW1lVmlldy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSGlzdG9yeUNvbnRyb2xsZXIu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hpc3RvcnlJdGVtLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Q
YWdlLmg+CisjaW5jbHVkZSA8V2ViRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJQYWdlLmg+CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6c2F2ZVZpZXdTdGF0ZVRvSXRlbShIaXN0b3J5SXRlbSogaGlzdG9y
eUl0ZW0pCit7CisgICAgaWYgKG1fZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisgICAgICAgIG1fZnJh
bWUtPnBhZ2UoKS0+c2F2ZVBhZ2VTdGF0ZSgqaGlzdG9yeUl0ZW0pOworfQorCit2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpyZXN0b3JlVmlld1N0YXRlKCkKK3sKKyAgICBGcmFtZSYgZnJhbWUg
PSAqbV9mcmFtZS0+Y29yZUZyYW1lKCk7CisgICAgSGlzdG9yeUl0ZW0qIGN1cnJlbnRJdGVtID0g
ZnJhbWUubG9hZGVyKCkuaGlzdG9yeSgpLmN1cnJlbnRJdGVtKCk7CisgICAgaWYgKEZyYW1lVmll
dyogdmlldyA9IGZyYW1lLnZpZXcoKSkgeworICAgICAgICBpZiAobV9mcmFtZS0+aXNNYWluRnJh
bWUoKSkKKyAgICAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+cmVzdG9yZVBhZ2VTdGF0ZSgqY3Vy
cmVudEl0ZW0pOworICAgICAgICBlbHNlIGlmICghdmlldy0+d2FzU2Nyb2xsZWRCeVVzZXIoKSkK
KyAgICAgICAgICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKGN1cnJlbnRJdGVtLT5zY3JvbGxQ
b2ludCgpKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYmFiYTUwNmVjMjBmNDIzNTYz
MzlhZWVhNjJhODk1NzQ2ODY1YmM4OC4uN2JmYjRjNTc2ZDllNTQ3MGE1OTU1MmE4ZTkyMDRjMWE5
ZmQzYTczNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CkBAIC00NDcsMTQgKzQ0NywxNyBAQCBwdWJsaWM6CiAgICAgR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXImIGdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkgeyBy
ZXR1cm4gbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsgfQogI2VuZGlmCiAK
KyNpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKEVGTCkKKyAgICB2b2lkIHNhdmVQYWdlU3Rh
dGUoV2ViQ29yZTo6SGlzdG9yeUl0ZW0mKTsKKyAgICB2b2lkIHJlc3RvcmVQYWdlU3RhdGUoY29u
c3QgV2ViQ29yZTo6SGlzdG9yeUl0ZW0mKTsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQog
ICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBzY3JlZW5TaXplKCkgY29uc3Q7CiAgICAgV2ViQ29yZTo6
RmxvYXRTaXplIGF2YWlsYWJsZVNjcmVlblNpemUoKSBjb25zdDsKICAgICBpbnQzMl90IGRldmlj
ZU9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VPcmllbnRhdGlvbjsgfQogICAg
IHZvaWQgdmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0
QXJndW1lbnRzJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlTW9iaWxlRG9jVHlwZShib29sKTsKLSAg
ICB2b2lkIHNhdmVQYWdlU3RhdGUoV2ViQ29yZTo6SGlzdG9yeUl0ZW0mKTsKLSAgICB2b2lkIHJl
c3RvcmVQYWdlU3RhdGUoY29uc3QgV2ViQ29yZTo6SGlzdG9yeUl0ZW0mKTsKIAogICAgIHZvaWQg
c2V0VXNlVGVzdGluZ1ZpZXdwb3J0Q29uZmlndXJhdGlvbihib29sIHVzZVRlc3RpbmdWaWV3cG9y
dCkgeyBtX3VzZVRlc3RpbmdWaWV3cG9ydENvbmZpZ3VyYXRpb24gPSB1c2VUZXN0aW5nVmlld3Bv
cnQ7IH0KICAgICBib29sIGlzVXNpbmdUZXN0aW5nVmlld3BvcnRDb25maWd1cmF0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV91c2VUZXN0aW5nVmlld3BvcnRDb25maWd1cmF0aW9uOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZWZsL1dlYlBhZ2VFZmwuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2VmbC9XZWJQYWdlRWZsLmNwcApp
bmRleCAxYWFiNGQ1MjNiNTUyYTk0ODE2M2UzZGM4ZjcxMTUxOWRkOThiYjA2Li40OWU5NDc5YmNi
MDUzY2UzN2JlNjE3NzhiOThjYmI0YzQwZDkyNzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZWZsL1dlYlBhZ2VFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9lZmwvV2ViUGFnZUVmbC5jcHAKQEAgLTM4LDYgKzM4LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lVmlldy5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvSGlzdG9yeUl0ZW0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5
Ym9hcmRFdmVudC5oPgpAQCAtMjI0LDQgKzIyNSwyMCBAQCBTdHJpbmcgV2ViUGFnZTo6cGxhdGZv
cm1Vc2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAK
K3ZvaWQgV2ViUGFnZTo6cmVzdG9yZVBhZ2VTdGF0ZShjb25zdCBIaXN0b3J5SXRlbSYgaGlzdG9y
eUl0ZW0pCit7CisgICAgLy8gV2hlbiBhIEhpc3RvcnlJdGVtIGlzIGNsZWFyZWQsIGl0cyBzY2Fs
ZSBmYWN0b3IgYW5kIHNjcm9sbCBwb2ludCBhcmUgc2V0IHRvIHplcm8uIFdlIHNob3VsZCBub3Qg
dHJ5IHRvIHJlc3RvcmUgdGhlIG90aGVyCisgICAgLy8gcGFyYW1ldGVycyBpbiB0aG9zZSBjb25k
aXRpb25zLgorICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IGhpc3RvcnlJdGVtLnBhZ2VTY2Fs
ZUZhY3RvcigpOworICAgIGlmICghcGFnZVNjYWxlRmFjdG9yKQorICAgICAgICByZXR1cm47CisK
KyAgICBzY2FsZVBhZ2UocGFnZVNjYWxlRmFjdG9yLCBoaXN0b3J5SXRlbS5zY3JvbGxQb2ludCgp
KTsKK30KKwordm9pZCBXZWJQYWdlOjpzYXZlUGFnZVN0YXRlKEhpc3RvcnlJdGVtJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238713</attachid>
            <date>2014-09-26 07:25:15 -0700</date>
            <delta_ts>2014-10-02 02:15:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136999-20140926232514.patch</filename>
            <type>text/plain</type>
            <size>12414</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczOTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDNkMjc0YmY1N2I4ODg3
N2MxNWMzMWUzMzQzZjMwYWFjNjk5ZDA1Yy4uMTA1OTg0YWIyMjA5NmY2NDNmZjRmZDRlYmNhNWZi
ZWNkODRlY2NkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTA5LTI1ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gSW1w
bGVtZW50IHJlc3RvcmVQYWdlU3RhdGUoKSBmb3IgYmFja3dhcmQgbmF2aWdhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2OTk5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRUZMIHBvcnQgaGFzIHN1
cHBvcnRlZCB0byB1c2UgU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzOjpy
ZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoKSBzaW5jZSByMTczNzg1LgorICAgICAgICBUaHVz
LCBFRkwgcG9ydCBkb2Vzbid0IG5lZWQgdG8gaGF2ZSBvd24gY29kZSBwYXRoIHRvIHBhc3Mgc2Ny
b2xsIHBvc2l0aW9uIHRvIFdLMiwgYmVjYXVzZSBTY3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlv
bigpCisgICAgICAgIGNhbiBzdXBwb3J0IEVGTCBwb3J0IGFzIHdlbGwuCisKKyAgICAgICAgSW4g
YWRkaXRpb24sIEVGTCBwb3J0IGJlZ2lucyB0byBzdXBwb3J0IEZyYW1lTG9hZGVyQ2xpZW50Ojpy
ZXN0b3JlVmlld1N0YXRlKCkgdG8gYmUgYWxpZ25lZCB3aXRoIGlPUyBwb3J0LiBTY3JvbGwgcG9z
aXRpb24KKyAgICAgICAgdXBkYXRlIGJlaGF2aW9yIGhhcyBiZWVuIG9wdGltaXplZCBmb3IgaU9T
IHBvcnQuIFRoYXQncyB3aHkgRUZMIHBvcnQgdHJpZXMgdG8gZm9sbG93IGlPUyBpbXBsZW1lbnRh
dGlvbi4KKworICAgICAgICBUZXN0IGNvdmVyZWQgYnkgV0tWaWV3UmVzdG9yZVpvb21BbmRTY3Jv
bGxCYWNrRm9yd2FyZCBBUEkgdGVzdC4KKworICAgICAgICAqIGxvYWRlci9IaXN0b3J5Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNj
cm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0UGFnZVNjYWxlRmFjdG9yKToKKyAgICAgICAgKiBwYWdl
L3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRp
bmF0ZWRHcmFwaGljcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRv
ckNvb3JkaW5hdGVkR3JhcGhpY3M6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSk6CisKIDIw
MTQtMDktMjUgIEJyaWFuIEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24uZWR1PgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IEZ1bmN0aW9uQ2FsbCB0aW1lbGluZSByZWNvcmRzIG9taXQgcHJv
ZmlsZSBkYXRhIGlmIHRoZSBkZWJ1Z2dlciBoYXMgcGF1c2VkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODcxOTkx
NGVlOWMwOTM4Zjg2MTY2MWI0YjhmZmVjZTZhMWNmM2Q1Ni4uMjgzOTQxNmE0NDdiNDBmYTk4MWQy
ZmRmMzRhMzk0MDFlZTJhYTAxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE0LTA5
LTI1ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAg
W0VGTF0gSW1wbGVtZW50IHJlc3RvcmVQYWdlU3RhdGUoKSBmb3IgYmFja3dhcmQgbmF2aWdhdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2OTk5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRUZMIHBv
cnQgYmVnaW5zIHRvIHVzZSBGcmFtZUxvYWRlckNsaWVudDo6cmVzdG9yZVZpZXdTdGF0ZSgpIHRv
IGJlIGFsaWduZWQgd2l0aCBpT1MgcG9ydC4gU2Nyb2xsIHBvc2l0aW9uIHVwZGF0ZQorICAgICAg
ICBiZWhhdmlvciBoYXMgYmVlbiBvcHRpbWl6ZWQgZm9yIGlPUyBwb3J0LiBUaGF0J3Mgd2h5IEVG
TCBwb3J0IHRyaWVzIHRvIGZvbGxvdyBpT1MgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBQ
bGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L2VmbC9XZWJGcmFtZUxvYWRlckNsaWVudEVmbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6c2F2ZVZpZXdTdGF0ZVRvSXRlbSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZXN0b3JlVmlld1N0YXRlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9lZmwvV2ViUGFnZUVmbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJl
c3RvcmVQYWdlU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzYXZlUGFnZVN0YXRl
KToKKwogMjAxNC0wOS0yNSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4K
IAogICAgICAgICBDbGVhbiB1cCB1bnVzZWQgcGFyYW1ldGVyIHdhcm5pbmdzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAppbmRleCAyMDVlYzNiMjBiOWRmMDE2
MWM0MmNlYzRmN2I2NWZlYTU2ZGIxOTRjLi5mZTlhMzBhODE1MGI2YWI4MTEzNDdmZjM3MWJjNzgw
YTVmZTg3M2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5j
cHAKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjpyZXN0b3JlU2Ny
b2xsUG9zaXRpb25BbmRWaWV3U3RhdGUoKQogICAgIC8vIHRocm91Z2ggdG8gdGhlIGNsaWVudC4K
ICAgICBtX2ZyYW1lLmxvYWRlcigpLmNsaWVudCgpLnJlc3RvcmVWaWV3U3RhdGUoKTsKIAotI2lm
ICFQTEFURk9STShJT1MpCisjaWYgIVBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKEVGTCkKICAg
ICAvLyBEb24ndCByZXN0b3JlIHNjcm9sbCBwb2ludCBvbiBpT1MgYXMgRnJhbWVMb2FkZXJDbGll
bnQ6OnJlc3RvcmVWaWV3U3RhdGUoKSBkb2VzIHRoYXQuCiAgICAgaWYgKHZpZXcgJiYgIXZpZXct
Pndhc1Njcm9sbGVkQnlVc2VyKCkpIHsKICAgICAgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUucGFn
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMjZiOGQxNzNhYzZlZjIwMGQ1MDc0MmM3NTZiMGMz
NjNiYTczYmRkZS4uNGIxZDFiMTg2NzQwODdmOGJhMjM4YzdiNmE2OGNmOTRiODNiNTYzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCkBAIC03MzgsMTIgKzczOCw3IEBAIHZvaWQgUGFnZTo6c2V0UGFnZVNj
YWxlRmFjdG9yKGZsb2F0IHNjYWxlLCBjb25zdCBJbnRQb2ludCYgb3JpZ2luLCBib29sIGluU3Rh
YmxlCiAgICAgICAgICAgICBpZiAoIW1fc2V0dGluZ3MtPmRlbGVnYXRlc1BhZ2VTY2FsaW5nKCkp
CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHls
ZXNoZWV0cygpOwogCi0gICAgICAgICAgICBpZiAoIXZpZXctPmRlbGVnYXRlc1Njcm9sbGluZygp
KQotICAgICAgICAgICAgICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKG9yaWdpbik7Ci0jaWYg
VVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCi0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgdmlldy0+aG9zdFdpbmRvdygpLT5kZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQob3JpZ2luKTsK
LSNlbmRpZgorICAgICAgICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24ob3JpZ2luKTsKICAg
ICAgICAgfQogI2lmIEVOQUJMRShNRURJQV9DT05UUk9MU19TQ1JJUFQpCiAgICAgICAgIGlmIChp
blN0YWJsZVN0YXRlKSB7CkBAIC03NzUsMTIgKzc3MCw3IEBAIHZvaWQgUGFnZTo6c2V0UGFnZVNj
YWxlRmFjdG9yKGZsb2F0IHNjYWxlLCBjb25zdCBJbnRQb2ludCYgb3JpZ2luLCBib29sIGluU3Rh
YmxlCiAgICAgICAgIGlmICghbV9zZXR0aW5ncy0+ZGVsZWdhdGVzUGFnZVNjYWxpbmcoKSAmJiBk
b2N1bWVudC0+cmVuZGVyVmlldygpICYmIGRvY3VtZW50LT5yZW5kZXJWaWV3KCktPm5lZWRzTGF5
b3V0KCkgJiYgdmlldy0+ZGlkRmlyc3RMYXlvdXQoKSkKICAgICAgICAgICAgIHZpZXctPmxheW91
dCgpOwogICAgICAgICAKLSAgICAgICAgaWYgKCF2aWV3LT5kZWxlZ2F0ZXNTY3JvbGxpbmcoKSkK
LSAgICAgICAgICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKG9yaWdpbik7Ci0jaWYgVVNFKFRJ
TEVEX0JBQ0tJTkdfU1RPUkUpCi0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZpZXctPmhvc3RX
aW5kb3coKS0+ZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKG9yaWdpbik7Ci0jZW5kaWYKKyAgICAg
ICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24ob3JpZ2luKTsKICAgICB9CiAKICNpZiBFTkFCTEUo
TUVESUFfQ09OVFJPTFNfU0NSSVBUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5h
dGVkR3JhcGhpY3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0
ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwCmlu
ZGV4IGZlYjY1ZTI1NDY3MzBhMDhmYjAyY2NkYTk0ZWIyMGMzZDhkM2NiYjUuLjAzYjdmMmM0N2Rm
OWE1NTRlYjY4NzhjOWMwYzg0ZDhjZjJhYWNmNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JD
b29yZGluYXRlZEdyYXBoaWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFw
aGljcy5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29v
cmRpbmF0ZWRHcmFwaGljczo6d2lsbERlc3Ryb3lTY3JvbGxhYmxlQXJlYShTY3JvbGxhYgogCiBi
b29sIFNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljczo6cmVxdWVzdFNjcm9s
bFBvc2l0aW9uVXBkYXRlKEZyYW1lVmlldyogZnJhbWVWaWV3LCBjb25zdCBJbnRQb2ludCYgc2Ny
b2xsUG9zaXRpb24pCiB7Ci0gICAgaWYgKCFmcmFtZVZpZXctPmRlbGVnYXRlc1Njcm9sbGluZygp
KQorICAgIGlmICghZnJhbWVWaWV3LT5kZWxlZ2F0ZXNTY3JvbGxpbmcoKSB8fCBmcmFtZVZpZXct
Pndhc1Njcm9sbGVkQnlVc2VyKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGZyYW1l
Vmlldy0+c2V0Rml4ZWRWaXNpYmxlQ29udGVudFJlY3QoSW50UmVjdChzY3JvbGxQb3NpdGlvbiwg
ZnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3QoKS5zaXplKCkpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1F
ZmwuY21ha2UKaW5kZXggZjA3ZmI2MzkxMTVlYjE0MjY5Y2RjMTY3MmMwNzk0YzFiY2QwYjM1My4u
NGJjYTdiM2E5Y2ZhNmFkOTM4YzcxZmNmOWMxODMzYjU3NDRlYTk4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1FZmwuY21ha2UKQEAgLTE4NCw2ICsxODQsNyBAQCBsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJD
RVMKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJDb250ZXh0TWVudUNsaWVu
dEVmbC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2VmbC9XZWJFZGl0b3JDbGll
bnRFZmwuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRXJyb3JzRWZs
LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYkZyYW1lTG9hZGVyQ2xp
ZW50RWZsLmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZWZsL1dlYlBvcHVwTWVu
dUVmbC5jcHAKIAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRl
eCA3MWJhYTI0ZWExNmI0Njk2ZjlmM2FiYzA2NDA4YmZiMGY4MWZhMjg3Li5hOTRlZWYzMmU5ZDFi
YmRhMzE3NjU1NTNlODAxYjA5YTVmNThkMDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcApAQCAtMTEzNyw3ICsxMTM3LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZnJhbWVMb2FkQ29tcGxldGVkKCkKICAgICB9CiB9CiAKLSNpZiAhUExBVEZPUk0oSU9TKQorI2lm
ICFQTEFURk9STShJT1MpICYmICFQTEFURk9STShFRkwpCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpzYXZlVmlld1N0YXRlVG9JdGVtKEhpc3RvcnlJdGVtKikKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9lZmwvV2ViRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9lZmwvV2ViRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE4OWRjYTIwNDFkYjQ4ZTU4YTU4MTNmZTM2OGI4Zjk1NDkzZGE3OGUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2Vm
bC9XZWJGcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lVmlldy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSGlzdG9yeUNvbnRyb2xsZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0hpc3RvcnlJdGVtLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdl
Lmg+CisjaW5jbHVkZSA8V2ViRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJQYWdlLmg+CisKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6c2F2ZVZpZXdTdGF0ZVRvSXRlbShIaXN0b3J5SXRlbSogaGlzdG9yeUl0
ZW0pCit7CisgICAgaWYgKG1fZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisgICAgICAgIG1fZnJhbWUt
PnBhZ2UoKS0+c2F2ZVBhZ2VTdGF0ZSgqaGlzdG9yeUl0ZW0pOworfQorCit2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpyZXN0b3JlVmlld1N0YXRlKCkKK3sKKyAgICBGcmFtZSYgZnJhbWUgPSAq
bV9mcmFtZS0+Y29yZUZyYW1lKCk7CisgICAgSGlzdG9yeUl0ZW0qIGN1cnJlbnRJdGVtID0gZnJh
bWUubG9hZGVyKCkuaGlzdG9yeSgpLmN1cnJlbnRJdGVtKCk7CisgICAgaWYgKEZyYW1lVmlldyog
dmlldyA9IGZyYW1lLnZpZXcoKSkgeworICAgICAgICBpZiAobV9mcmFtZS0+aXNNYWluRnJhbWUo
KSkKKyAgICAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+cmVzdG9yZVBhZ2VTdGF0ZSgqY3VycmVu
dEl0ZW0pOworICAgICAgICBlbHNlIGlmICghdmlldy0+d2FzU2Nyb2xsZWRCeVVzZXIoKSkKKyAg
ICAgICAgICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKGN1cnJlbnRJdGVtLT5zY3JvbGxQb2lu
dCgpKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYjdkNDQ4Yzk2ODAwYWY5ZmRiZDdh
NDAyNGViZTQ4MzgzNjI2MzMzZS4uYTYzODU0NDNjY2YzOThiNmYxNDhkNWYyN2E0M2JiZDg2N2Uy
M2Q2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBA
IC00NTAsMTQgKzQ1MCwxNyBAQCBwdWJsaWM6CiAgICAgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXImIGdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkgeyByZXR1
cm4gbV9nZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsgfQogI2VuZGlmCiAKKyNp
ZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKEVGTCkKKyAgICB2b2lkIHNhdmVQYWdlU3RhdGUo
V2ViQ29yZTo6SGlzdG9yeUl0ZW0mKTsKKyAgICB2b2lkIHJlc3RvcmVQYWdlU3RhdGUoY29uc3Qg
V2ViQ29yZTo6SGlzdG9yeUl0ZW0mKTsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQogICAg
IFdlYkNvcmU6OkZsb2F0U2l6ZSBzY3JlZW5TaXplKCkgY29uc3Q7CiAgICAgV2ViQ29yZTo6Rmxv
YXRTaXplIGF2YWlsYWJsZVNjcmVlblNpemUoKSBjb25zdDsKICAgICBpbnQzMl90IGRldmljZU9y
aWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXZpY2VPcmllbnRhdGlvbjsgfQogICAgIHZv
aWQgdmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJn
dW1lbnRzJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlTW9iaWxlRG9jVHlwZShib29sKTsKLSAgICB2
b2lkIHNhdmVQYWdlU3RhdGUoV2ViQ29yZTo6SGlzdG9yeUl0ZW0mKTsKLSAgICB2b2lkIHJlc3Rv
cmVQYWdlU3RhdGUoY29uc3QgV2ViQ29yZTo6SGlzdG9yeUl0ZW0mKTsKIAogICAgIHZvaWQgc2V0
VXNlVGVzdGluZ1ZpZXdwb3J0Q29uZmlndXJhdGlvbihib29sIHVzZVRlc3RpbmdWaWV3cG9ydCkg
eyBtX3VzZVRlc3RpbmdWaWV3cG9ydENvbmZpZ3VyYXRpb24gPSB1c2VUZXN0aW5nVmlld3BvcnQ7
IH0KICAgICBib29sIGlzVXNpbmdUZXN0aW5nVmlld3BvcnRDb25maWd1cmF0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbV91c2VUZXN0aW5nVmlld3BvcnRDb25maWd1cmF0aW9uOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZWZsL1dlYlBhZ2VFZmwuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2VmbC9XZWJQYWdlRWZsLmNwcAppbmRl
eCAxYWFiNGQ1MjNiNTUyYTk0ODE2M2UzZGM4ZjcxMTUxOWRkOThiYjA2Li40OWU5NDc5YmNiMDUz
Y2UzN2JlNjE3NzhiOThjYmI0YzQwZDkyNzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvZWZsL1dlYlBhZ2VFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9lZmwvV2ViUGFnZUVmbC5jcHAKQEAgLTM4LDYgKzM4LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lVmlldy5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvSGlzdG9yeUl0ZW0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudC5oPgpAQCAtMjI0LDQgKzIyNSwyMCBAQCBTdHJpbmcgV2ViUGFnZTo6cGxhdGZvcm1V
c2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK3Zv
aWQgV2ViUGFnZTo6cmVzdG9yZVBhZ2VTdGF0ZShjb25zdCBIaXN0b3J5SXRlbSYgaGlzdG9yeUl0
ZW0pCit7CisgICAgLy8gV2hlbiBhIEhpc3RvcnlJdGVtIGlzIGNsZWFyZWQsIGl0cyBzY2FsZSBm
YWN0b3IgYW5kIHNjcm9sbCBwb2ludCBhcmUgc2V0IHRvIHplcm8uIFdlIHNob3VsZCBub3QgdHJ5
IHRvIHJlc3RvcmUgdGhlIG90aGVyCisgICAgLy8gcGFyYW1ldGVycyBpbiB0aG9zZSBjb25kaXRp
b25zLgorICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IGhpc3RvcnlJdGVtLnBhZ2VTY2FsZUZh
Y3RvcigpOworICAgIGlmICghcGFnZVNjYWxlRmFjdG9yKQorICAgICAgICByZXR1cm47CisKKyAg
ICBzY2FsZVBhZ2UocGFnZVNjYWxlRmFjdG9yLCBoaXN0b3J5SXRlbS5zY3JvbGxQb2ludCgpKTsK
K30KKwordm9pZCBXZWJQYWdlOjpzYXZlUGFnZVN0YXRlKEhpc3RvcnlJdGVtJikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239095</attachid>
            <date>2014-10-02 02:15:52 -0700</date>
            <delta_ts>2014-10-06 09:57:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136999-20141002181553.patch</filename>
            <type>text/plain</type>
            <size>11198</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MjA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTQ1YmUxY2JhZTk5ZWFk
NjA5YmQ2NGYxMmExYmMyZDJmMWIxNmIzZC4uNzE5MWExMTBiZjVmMGFmZWU3NjEwOWI4OWZlNTM0
MWRlODc5MmJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTEwLTAxICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gUmVz
dG9yZSBwcmV2aW91cyBzY3JvbGwgcG9zaXRpb24gdXNpbmcgcmVzdG9yZVZpZXdTdGF0ZSgpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY5OTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVyZSBhcmUg
ZHVwbGljYXRpbmcgY29kZSBwYXRocyB0byByZXN0b3JlIHByZXZpb3VzIHNjcm9sbCBwb3NpdGlv
biBhbmQgc2NhbGUgZmFjdG9yIGluCisgICAgICAgIEhpc3RvcnlDb250cm9sbGVyOjpyZXN0b3Jl
U2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGUuIEVGTCBwb3J0IGhhcyBwcm9jZXNzZWQgdGhlIHR3
byBjb2RlIHBhdGhzLgorICAgICAgICBJdCBjYXVzZXMgd3JvbmcgcmVuZGVyaW5nIHVwZGF0ZSBv
ciBzY3JvbGwgcG9zaXRpb24gY2hhbmdlIHdoZW4gcHJldmlvdXMgcGFnZSdzIHNjcm9sbCBwb3Np
dGlvbgorICAgICAgICBpcyByZXN0b3JlZC4gVGh1cyBFRkwgcG9ydCBiZWdpbnMgdG8gdXNlIHJl
c3RvcmVWaWV3U3RhdGUoKSB0byByZXN0b3JlIHNjcm9sbCBwb3NpdGlvbiBhbmQgc2NhbGUgZmFj
dG9yLgorICAgICAgICBUaGlzIHBhdGNoIGlzIGZpcnN0IHN0ZXAgdG8gc3VwcG9ydCBpdC4KKwor
ICAgICAgICBBZGRpdGlvbmFsbHkgRUZMIHBvcnQgaGFzIHN1cHBvcnRlZCB0byB1c2UgU2Nyb2xs
aW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25V
cGRhdGUoKQorICAgICAgICBzaW5jZSByMTczNzg1LiBTbyBFRkwgcG9ydCBjYW4gdXNlIHRoZSBy
ZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoKSB0byByZXN0b3JlIHNjcm9sbCBwb3NpdGlvbiBv
biBwcmV2aW91cyBwYWdlCisgICAgICAgIGluc3RlYWQgb2YgZGVsZWdhdGVkU2Nyb2xsUmVxdWVz
dGVkKCkuCisKKyAgICAgICAgVGVzdCBjb3ZlcmVkIGJ5IFdLVmlld1Jlc3RvcmVab29tQW5kU2Ny
b2xsQmFja0ZvcndhcmQgQVBJIHRlc3QuCisKKyAgICAgICAgKiBsb2FkZXIvSGlzdG9yeUNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6OnJlc3RvcmVT
Y3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSk6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldFBhZ2VTY2FsZUZhY3Rvcik6CisKIDIwMTQtMTAtMDEg
IEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xpY2sg
ZXZlbnRzIG9mZnNldCBpbiB3ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nIGlmcmFtZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCAyODJmYzUwMDU3YjVlYWVjMGU5YjYyZTgwODkwYzExN2RiYjQzOTg3Li41YTcxYmM2
NjcxYTYzZTQ0MzdlMjU0NjcyMjhjOWE1MDNiMTllYWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzEgQEAKKzIwMTQtMTAtMDIgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNv
bT4KKworICAgICAgICBbRUZMXSBSZXN0b3JlIHByZXZpb3VzIHNjcm9sbCBwb3NpdGlvbiB1c2lu
ZyByZXN0b3JlVmlld1N0YXRlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzNjk5OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoZXJlIGFyZSBkdXBsaWNhdGluZyBjb2RlIHBhdGhzIHRvIHJlc3RvcmUg
cHJldmlvdXMgc2Nyb2xsIHBvc2l0aW9uIGFuZCBzY2FsZSBmYWN0b3IgaW4KKyAgICAgICAgSGlz
dG9yeUNvbnRyb2xsZXI6OnJlc3RvcmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZS4gRUZMIHBv
cnQgaGFzIHByb2Nlc3NlZCB0aGUgdHdvIGNvZGUgcGF0aHMuCisgICAgICAgIEl0IGNhdXNlcyB3
cm9uZyByZW5kZXJpbmcgdXBkYXRlIG9yIHNjcm9sbCBwb3NpdGlvbiBjaGFuZ2Ugd2hlbiBwcmV2
aW91cyBwYWdlJ3Mgc2Nyb2xsIHBvc2l0aW9uCisgICAgICAgIGlzIHJlc3RvcmVkLiBUaHVzIEVG
TCBwb3J0IGJlZ2lucyB0byB1c2UgcmVzdG9yZVZpZXdTdGF0ZSgpIHRvIHJlc3RvcmUgc2Nyb2xs
IHBvc2l0aW9uIGFuZCBzY2FsZSBmYWN0b3IuCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgZmlyc3Qg
c3RlcCB0byBzdXBwb3J0IGl0LgorCisgICAgICAgIEFkZGl0aW9uYWxseSBFRkwgcG9ydCBoYXMg
c3VwcG9ydGVkIHRvIHVzZSBTY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3M6
OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgpCisgICAgICAgIHNpbmNlIHIxNzM3ODUuIFNv
IEVGTCBwb3J0IGNhbiB1c2UgdGhlIHJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZSgpIHRvIHJl
c3RvcmUgc2Nyb2xsIHBvc2l0aW9uIG9uIHByZXZpb3VzIHBhZ2UKKyAgICAgICAgaW5zdGVhZCBv
ZiBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJGcmFtZUxvYWRlckNsaWVudDo6c2F2ZVZpZXdTdGF0ZVRvSXRlbSk6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZXN0b3JlVmlld1N0YXRlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNhdmVWaWV3U3RhdGVUb0l0
ZW0pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVz
dG9yZVZpZXdTdGF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZWZsL1dlYlBhZ2VFZmwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZXN0b3JlUGFnZVN0YXRlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6c2F2ZVBhZ2VTdGF0ZSk6CisKIDIwMTQtMTAtMDIgIEppbllvdW5n
IEh1ciAgPGh1cmltc0BnbWFpbC5jb20+CiAKICAgICAgICAgTWlub3IgYnVnIGluIFVJQ2xpZW50
OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5
Q29udHJvbGxlci5jcHAKaW5kZXggMjA1ZWMzYjIwYjlkZjAxNjFjNDJjZWM0ZjdiNjVmZWE1NmRi
MTk0Yy4uZmU5YTMwYTgxNTBiNmFiODExMzQ3ZmYzNzFiYzc4MGE1ZmU4NzNkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCkBAIC0xNDUsNyArMTQ1LDcg
QEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0
YXRlKCkKICAgICAvLyB0aHJvdWdoIHRvIHRoZSBjbGllbnQuCiAgICAgbV9mcmFtZS5sb2FkZXIo
KS5jbGllbnQoKS5yZXN0b3JlVmlld1N0YXRlKCk7CiAKLSNpZiAhUExBVEZPUk0oSU9TKQorI2lm
ICFQTEFURk9STShJT1MpICYmICFQTEFURk9STShFRkwpCiAgICAgLy8gRG9uJ3QgcmVzdG9yZSBz
Y3JvbGwgcG9pbnQgb24gaU9TIGFzIEZyYW1lTG9hZGVyQ2xpZW50OjpyZXN0b3JlVmlld1N0YXRl
KCkgZG9lcyB0aGF0LgogICAgIGlmICh2aWV3ICYmICF2aWV3LT53YXNTY3JvbGxlZEJ5VXNlcigp
KSB7CiAgICAgICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CmluZGV4IDI2YjhkMTczYWM2ZWYyMDBkNTA3NDJjNzU2YjBjMzYzYmE3M2JkZGUuLjQ3ZGY4ZWFl
YWFmZDMzYTg1M2QwM2I1N2Q4MGJjNWM5YTZhODdmMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAt
NzQyLDcgKzc0Miw3IEBAIHZvaWQgUGFnZTo6c2V0UGFnZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxl
LCBjb25zdCBJbnRQb2ludCYgb3JpZ2luLCBib29sIGluU3RhYmxlCiAgICAgICAgICAgICAgICAg
dmlldy0+c2V0U2Nyb2xsUG9zaXRpb24ob3JpZ2luKTsKICNpZiBVU0UoVElMRURfQkFDS0lOR19T
VE9SRSkKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB2aWV3LT5ob3N0V2luZG93
KCktPmRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChvcmlnaW4pOworICAgICAgICAgICAgICAgIHZp
ZXctPnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShvcmlnaW4pOwogI2VuZGlmCiAgICAgICAg
IH0KICNpZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfU0NSSVBUKQpAQCAtNzc0LDEyICs3NzQsMTIg
QEAgdm9pZCBQYWdlOjpzZXRQYWdlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGUsIGNvbnN0IEludFBv
aW50JiBvcmlnaW4sIGJvb2wgaW5TdGFibGUKICAgICBpZiAodmlldyAmJiB2aWV3LT5zY3JvbGxQ
b3NpdGlvbigpICE9IG9yaWdpbikgewogICAgICAgICBpZiAoIW1fc2V0dGluZ3MtPmRlbGVnYXRl
c1BhZ2VTY2FsaW5nKCkgJiYgZG9jdW1lbnQtPnJlbmRlclZpZXcoKSAmJiBkb2N1bWVudC0+cmVu
ZGVyVmlldygpLT5uZWVkc0xheW91dCgpICYmIHZpZXctPmRpZEZpcnN0TGF5b3V0KCkpCiAgICAg
ICAgICAgICB2aWV3LT5sYXlvdXQoKTsKLSAgICAgICAgCisKICAgICAgICAgaWYgKCF2aWV3LT5k
ZWxlZ2F0ZXNTY3JvbGxpbmcoKSkKICAgICAgICAgICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9u
KG9yaWdpbik7CiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIHZpZXctPmhvc3RXaW5kb3coKS0+ZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKG9y
aWdpbik7CisgICAgICAgICAgICB2aWV3LT5yZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUob3Jp
Z2luKTsKICNlbmRpZgogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApp
bmRleCA3MWJhYTI0ZWExNmI0Njk2ZjlmM2FiYzA2NDA4YmZiMGY4MWZhMjg3Li5jZWZhYmYwMDAy
YmVlYzljM2MwNjdkNjg3YjM2MTc0ZGY5NTk5MTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcApAQCAtMTEzNywxNCArMTEzNywyOCBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpmcmFtZUxvYWRDb21wbGV0ZWQoKQogICAgIH0KIH0KIAotI2lmICFQTEFURk9STShJT1Mp
Ci12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzYXZlVmlld1N0YXRlVG9JdGVtKEhpc3RvcnlJ
dGVtKikKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNhdmVWaWV3U3RhdGVUb0l0ZW0oSGlz
dG9yeUl0ZW0qIGhpc3RvcnlJdGVtKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisjaWYgUExB
VEZPUk0oSU9TKSB8fCBQTEFURk9STShFRkwpCisgICAgaWYgKG1fZnJhbWUtPmlzTWFpbkZyYW1l
KCkpCisgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+c2F2ZVBhZ2VTdGF0ZSgqaGlzdG9yeUl0ZW0p
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oaGlzdG9yeUl0ZW0pOworI2VuZGlmCiB9CiAKIHZv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlc3RvcmVWaWV3U3RhdGUoKQogeworI2lmIFBMQVRG
T1JNKElPUykgfHwgUExBVEZPUk0oRUZMKQorICAgIEZyYW1lJiBmcmFtZSA9ICptX2ZyYW1lLT5j
b3JlRnJhbWUoKTsKKyAgICBIaXN0b3J5SXRlbSogY3VycmVudEl0ZW0gPSBmcmFtZS5sb2FkZXIo
KS5oaXN0b3J5KCkuY3VycmVudEl0ZW0oKTsKKyAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gZnJh
bWUudmlldygpKSB7CisgICAgICAgIGlmIChtX2ZyYW1lLT5pc01haW5GcmFtZSgpKQorICAgICAg
ICAgICAgbV9mcmFtZS0+cGFnZSgpLT5yZXN0b3JlUGFnZVN0YXRlKCpjdXJyZW50SXRlbSk7Cisg
ICAgICAgIGVsc2UgaWYgKCF2aWV3LT53YXNTY3JvbGxlZEJ5VXNlcigpKQorICAgICAgICAgICAg
dmlldy0+c2V0U2Nyb2xsUG9zaXRpb24oY3VycmVudEl0ZW0tPnNjcm9sbFBvaW50KCkpOworICAg
IH0KKyNlbHNlCiAgICAgLy8gSW5mb3JtIHRoZSBVSSBwcm9jZXNzIG9mIHRoZSBzY2FsZSBmYWN0
b3IuCiAgICAgZG91YmxlIHNjYWxlRmFjdG9yID0gbV9mcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRl
cigpLmhpc3RvcnkoKS5jdXJyZW50SXRlbSgpLT5wYWdlU2NhbGVGYWN0b3IoKTsKIApAQCAtMTE1
Niw4ICsxMTcwLDggQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVzdG9yZVZpZXdTdGF0
ZSgpCiAgICAgLy8gdGhlIHZpZXcgb24gcmVzdG9yZXMgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNh
Y2hlLgogICAgIGlmIChtX2ZyYW1lID09IG1fZnJhbWUtPnBhZ2UoKS0+bWFpbldlYkZyYW1lKCkp
CiAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+ZHJhd2luZ0FyZWEoKS0+c2V0TmVlZHNEaXNwbGF5
KCk7Ci19CiAjZW5kaWYKK30KIAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cHJvdmlzaW9u
YWxMb2FkU3RhcnRlZCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkZyYW1lTG9hZGVyQ2xpZW50
SU9TLm1tCmluZGV4IGI3Mzc5Yzg5ZGRlZDNmY2M5Y2RhOTkzMDYwYjVlOWNmZGI4YTkxYzUuLjAz
Nzc0ZWMzOGI5ODI2OGI1MTY0N2E3NzllMjRhODA1OTUzNWVlYjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkZyYW1lTG9hZGVyQ2xp
ZW50SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
aW9zL1dlYkZyYW1lTG9hZGVyQ2xpZW50SU9TLm1tCkBAIC03OSwyNCArNzksNiBAQCB2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRDcmVhdGVRdWlja0xvb2tIYW5kbGUoV2ViQ29yZTo6UXVp
Y2tMb29rSGFuZGxlJiBoYQogfQogI2VuZGlmCiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OnNhdmVWaWV3U3RhdGVUb0l0ZW0oSGlzdG9yeUl0ZW0qIGhpc3RvcnlJdGVtKQotewotICAgIGlm
IChtX2ZyYW1lLT5pc01haW5GcmFtZSgpKQotICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPnNhdmVQ
YWdlU3RhdGUoKmhpc3RvcnlJdGVtKTsKLX0KLQotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
cmVzdG9yZVZpZXdTdGF0ZSgpCi17Ci0gICAgRnJhbWUmIGZyYW1lID0gKm1fZnJhbWUtPmNvcmVG
cmFtZSgpOwotICAgIEhpc3RvcnlJdGVtKiBjdXJyZW50SXRlbSA9IGZyYW1lLmxvYWRlcigpLmhp
c3RvcnkoKS5jdXJyZW50SXRlbSgpOwotICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS52
aWV3KCkpIHsKLSAgICAgICAgaWYgKG1fZnJhbWUtPmlzTWFpbkZyYW1lKCkpCi0gICAgICAgICAg
ICBtX2ZyYW1lLT5wYWdlKCktPnJlc3RvcmVQYWdlU3RhdGUoKmN1cnJlbnRJdGVtKTsKLSAgICAg
ICAgZWxzZSBpZiAoIXZpZXctPndhc1Njcm9sbGVkQnlVc2VyKCkpCi0gICAgICAgICAgICB2aWV3
LT5zZXRTY3JvbGxQb3NpdGlvbihjdXJyZW50SXRlbS0+c2Nyb2xsUG9pbnQoKSk7Ci0gICAgfQot
fQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGNhNDZiYTBh
OGE0NTRlNjlmNzMyOWUyMzAzNDc3MjJlMzEwOTAwMTkuLmZjMjhhNDk4OTI1NDRkNmRlNzIzYmQ2
NmM5ZjAwZjNlZGQ5NDRhZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaApAQCAtNDUwLDE0ICs0NTAsMTcgQEAgcHVibGljOgogICAgIEdlb2xvY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyJiBnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcigpIHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7IH0K
ICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShFRkwpCisgICAgdm9pZCBz
YXZlUGFnZVN0YXRlKFdlYkNvcmU6Okhpc3RvcnlJdGVtJik7CisgICAgdm9pZCByZXN0b3JlUGFn
ZVN0YXRlKGNvbnN0IFdlYkNvcmU6Okhpc3RvcnlJdGVtJik7CisjZW5kaWYKKwogI2lmIFBMQVRG
T1JNKElPUykKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgc2NyZWVuU2l6ZSgpIGNvbnN0OwogICAg
IFdlYkNvcmU6OkZsb2F0U2l6ZSBhdmFpbGFibGVTY3JlZW5TaXplKCkgY29uc3Q7CiAgICAgaW50
MzJfdCBkZXZpY2VPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlT3JpZW50YXRp
b247IH0KICAgICB2b2lkIHZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBXZWJDb3Jl
OjpWaWV3cG9ydEFyZ3VtZW50cyYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUo
Ym9vbCk7Ci0gICAgdm9pZCBzYXZlUGFnZVN0YXRlKFdlYkNvcmU6Okhpc3RvcnlJdGVtJik7Ci0g
ICAgdm9pZCByZXN0b3JlUGFnZVN0YXRlKGNvbnN0IFdlYkNvcmU6Okhpc3RvcnlJdGVtJik7CiAK
ICAgICB2b2lkIHNldFVzZVRlc3RpbmdWaWV3cG9ydENvbmZpZ3VyYXRpb24oYm9vbCB1c2VUZXN0
aW5nVmlld3BvcnQpIHsgbV91c2VUZXN0aW5nVmlld3BvcnRDb25maWd1cmF0aW9uID0gdXNlVGVz
dGluZ1ZpZXdwb3J0OyB9CiAgICAgYm9vbCBpc1VzaW5nVGVzdGluZ1ZpZXdwb3J0Q29uZmlndXJh
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdXNlVGVzdGluZ1ZpZXdwb3J0Q29uZmlndXJhdGlvbjsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2VmbC9XZWJQ
YWdlRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9lZmwvV2ViUGFn
ZUVmbC5jcHAKaW5kZXggMWFhYjRkNTIzYjU1MmE5NDgxNjNlM2RjOGY3MTE1MTlkZDk4YmIwNi4u
YWFhNGY3MjM2YTcyNGU2YmZhZjNhNmU0MDI2OGJlOGEzMjYyNjRlZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2VmbC9XZWJQYWdlRWZsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZWZsL1dlYlBhZ2VFZmwuY3BwCkBAIC0z
MiwxMiArMzIsMTQgQEAKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViUGFnZVBy
b3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQmFja0ZvcndhcmRDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9F
ZmxLZXlib2FyZFV0aWxpdGllcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNDb250cm9sbGVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVW
aWV3Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CkBAIC0yMjQsNCArMjI2LDIxIEBAIFN0
cmluZyBXZWJQYWdlOjpwbGF0Zm9ybVVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdAogICAgIHJl
dHVybiBTdHJpbmcoKTsKIH0KIAordm9pZCBXZWJQYWdlOjpyZXN0b3JlUGFnZVN0YXRlKGNvbnN0
IEhpc3RvcnlJdGVtJiBoaXN0b3J5SXRlbSkKK3sKKyAgICAvLyBXaGVuIGEgSGlzdG9yeUl0ZW0g
aXMgY2xlYXJlZCwgaXRzIHNjYWxlIGZhY3RvciBhbmQgc2Nyb2xsIHBvaW50IGFyZSBzZXQgdG8g
emVyby4gV2Ugc2hvdWxkIG5vdCB0cnkgdG8gcmVzdG9yZSB0aGUgb3RoZXIKKyAgICAvLyBwYXJh
bWV0ZXJzIGluIHRob3NlIGNvbmRpdGlvbnMuCisgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0g
aGlzdG9yeUl0ZW0ucGFnZVNjYWxlRmFjdG9yKCk7CisgICAgaWYgKCFwYWdlU2NhbGVGYWN0b3Ip
CisgICAgICAgIHJldHVybjsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UGFn
ZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKHBhZ2VTY2FsZUZhY3RvcikpOworICAgIHBhZ2VEaWRSZXF1
ZXN0U2Nyb2xsKGhpc3RvcnlJdGVtLnNjcm9sbFBvaW50KCkpOworfQorCit2b2lkIFdlYlBhZ2U6
OnNhdmVQYWdlU3RhdGUoSGlzdG9yeUl0ZW0mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239340</attachid>
            <date>2014-10-06 09:57:32 -0700</date>
            <delta_ts>2014-10-06 19:33:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136999-20141007015735.patch</filename>
            <type>text/plain</type>
            <size>12172</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjgyYmM4YTg0MDgyYzVh
NmM4NGQ0ZDYwOWNjMmUwMjNhYzIwMGZhMC4uMzgzNDM0MjMwZmI5OWY1NjdkMzU5MDM5MjRmM2E1
MTY0MmFiZTAwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE0LTEwLTA2ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0gUmVz
dG9yZSBwcmV2aW91cyBzY3JvbGwgcG9zaXRpb24gdXNpbmcgcmVzdG9yZVZpZXdTdGF0ZSgpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzY5OTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVyZSBhcmUg
ZHVwbGljYXRpbmcgY29kZSBwYXRocyB0byByZXN0b3JlIHByZXZpb3VzIHNjcm9sbCBwb3NpdGlv
biBhbmQgc2NhbGUgZmFjdG9yIGluCisgICAgICAgIEhpc3RvcnlDb250cm9sbGVyOjpyZXN0b3Jl
U2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGUuIEVGTCBwb3J0IGhhcyBwcm9jZXNzZWQgdGhlIHR3
byBjb2RlIHBhdGhzLgorICAgICAgICBJdCBjYXVzZXMgd3JvbmcgcmVuZGVyaW5nIHVwZGF0ZSBv
ciBzY3JvbGwgcG9zaXRpb24gY2hhbmdlIHdoZW4gcHJldmlvdXMgcGFnZSdzIHNjcm9sbCBwb3Np
dGlvbgorICAgICAgICBpcyByZXN0b3JlZC4gVGh1cyBFRkwgcG9ydCBiZWdpbnMgdG8gdXNlIHJl
c3RvcmVWaWV3U3RhdGUoKSB0byByZXN0b3JlIHNjcm9sbCBwb3NpdGlvbiBhbmQgc2NhbGUgZmFj
dG9yLgorICAgICAgICBUaGlzIHBhdGNoIGlzIGZpcnN0IHN0ZXAgdG8gc3VwcG9ydCBpdC4KKwor
ICAgICAgICBBZGRpdGlvbmFsbHkgRUZMIHBvcnQgaGFzIHN1cHBvcnRlZCB0byB1c2UgU2Nyb2xs
aW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25V
cGRhdGUoKQorICAgICAgICBzaW5jZSByMTczNzg1LiBTbyBFRkwgcG9ydCBjYW4gdXNlIHRoZSBy
ZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUoKSB0byByZXN0b3JlIHNjcm9sbCBwb3NpdGlvbiBv
biBwcmV2aW91cyBwYWdlCisgICAgICAgIGluc3RlYWQgb2YgZGVsZWdhdGVkU2Nyb2xsUmVxdWVz
dGVkKCkuIEhvd2V2ZXIgc2V0U2Nyb2xsUG9zaXRpb24oKSBjYW4ndCBiZSB1c2VkIHRoZXJlIGZv
ciBub3csIGJlY2F1c2UgaU9TIHBvcnQKKyAgICAgICAgc2hvdWxkIGNhbGwgaXQgd2hlbiBkZWxl
Z2F0ZXNTY3JvbGxpbmcgaXMgZGlzYWJsZWQuIE9uIHRoZSBvdGhlciBoYW5kLCBFRkwgcG9ydCBz
dXBwb3J0cyBpdCBvbmx5IHdoZW4gZGVsZWdhdGVzU2Nyb2xsaW5nCisgICAgICAgIGlzIGVuYWJs
ZWQuCisKKyAgICAgICAgVGVzdCBjb3ZlcmVkIGJ5IFdLVmlld1Jlc3RvcmVab29tQW5kU2Nyb2xs
QmFja0ZvcndhcmQgQVBJIHRlc3QuCisKKyAgICAgICAgKiBsb2FkZXIvSGlzdG9yeUNvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6OnJlc3RvcmVTY3Jv
bGxQb3NpdGlvbkFuZFZpZXdTdGF0ZSk6CisgICAgICAgIEVGTCBwb3J0IG9ubHkgY2FsbHMgcmVz
dG9yZVZpZXdTdGF0ZSgpIHRvIHJlc3RvcmUgcHJldmlvdXMgcGFnZSdzIHZpZXcgc3RhdGUuCisK
KyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0UGFn
ZVNjYWxlRmFjdG9yKToKKwogMjAxNC0xMC0wNSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgVXNlIGlzPD4oKSAvIGRvd25jYXN0PD4oKSBmb3IgU2Nyb2xs
aW5nQ29vcmRpbmF0b3IgLyBTY3JvbGxpbmdTdGF0ZU5vZGUgc3ViY2xhc3NlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDY3NDBiNTYzY2MzOGU5ZmJhMTI2OTE1Y2UyMjBkYzNjNjg3MjZhYTcuLjIyZTgwYTA0YmRi
MDNiMTNlNjQ5ZjJhMmZkODU3NDQ2Mjk4Yjg1YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBA
QAorMjAxNC0xMC0wNiAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgor
CisgICAgICAgIFtFRkxdIFJlc3RvcmUgcHJldmlvdXMgc2Nyb2xsIHBvc2l0aW9uIHVzaW5nIHJl
c3RvcmVWaWV3U3RhdGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM2OTk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhlcmUgYXJlIGR1cGxpY2F0aW5nIGNvZGUgcGF0aHMgdG8gcmVzdG9yZSBwcmV2
aW91cyBzY3JvbGwgcG9zaXRpb24gYW5kIHNjYWxlIGZhY3RvciBpbgorICAgICAgICBIaXN0b3J5
Q29udHJvbGxlcjo6cmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlLiBFRkwgcG9ydCBo
YXMgcHJvY2Vzc2VkIHRoZSB0d28gY29kZSBwYXRocy4KKyAgICAgICAgSXQgY2F1c2VzIHdyb25n
IHJlbmRlcmluZyB1cGRhdGUgb3Igc2Nyb2xsIHBvc2l0aW9uIGNoYW5nZSB3aGVuIHByZXZpb3Vz
IHBhZ2UncyBzY3JvbGwgcG9zaXRpb24KKyAgICAgICAgaXMgcmVzdG9yZWQuIFRodXMgRUZMIHBv
cnQgYmVnaW5zIHRvIHVzZSByZXN0b3JlVmlld1N0YXRlKCkgdG8gcmVzdG9yZSBzY3JvbGwgcG9z
aXRpb24gYW5kIHNjYWxlIGZhY3Rvci4KKyAgICAgICAgVGhpcyBwYXRjaCBpcyBmaXJzdCBzdGVw
IHRvIHN1cHBvcnQgaXQuCisKKyAgICAgICAgQWRkaXRpb25hbGx5IEVGTCBwb3J0IGhhcyBzdXBw
b3J0ZWQgdG8gdXNlIFNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljczo6cmVx
dWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKCkKKyAgICAgICAgc2luY2UgcjE3Mzc4NS4gU28gRUZM
IHBvcnQgY2FuIHVzZSB0aGUgcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKCkgdG8gcmVzdG9y
ZSBzY3JvbGwgcG9zaXRpb24gb24gcHJldmlvdXMgcGFnZQorICAgICAgICBpbnN0ZWFkIG9mIGRl
bGVnYXRlZFNjcm9sbFJlcXVlc3RlZCgpLiBIb3dldmVyIHNldFNjcm9sbFBvc2l0aW9uKCkgY2Fu
J3QgYmUgdXNlZCB0aGVyZSBmb3Igbm93LCBiZWNhdXNlIGlPUyBwb3J0CisgICAgICAgIHNob3Vs
ZCBjYWxsIGl0IHdoZW4gZGVsZWdhdGVzU2Nyb2xsaW5nIGlzIGRpc2FibGVkLiBPbiB0aGUgb3Ro
ZXIgaGFuZCwgRUZMIHBvcnQgc3VwcG9ydHMgaXQgb25seSB3aGVuIGRlbGVnYXRlc1Njcm9sbGlu
ZworICAgICAgICBpcyBlbmFibGVkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
TG9hZGVyQ2xpZW50OjpzYXZlVmlld1N0YXRlVG9JdGVtKToKKyAgICAgICAgTW92ZSBpT1Mgc2F2
ZVZpZXdTdGF0ZVRvSXRlbSgpIHRvIGNvbW1vbiBwbGFjZSBpbiBvcmRlciB0byBzaGFyZSBpT1Mg
aW1wbGVtZW50YXRpb24gd2l0aCBFRkwgcG9ydC4KKworICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZUxvYWRlckNsaWVudDo6cmVzdG9yZVZpZXdTdGF0ZSk6CisgICAgICAgIEVGTCBiZWdpbnMgdG8g
c2hhcmUgcmVzdG9yZVZpZXdTdGF0ZSgpIG9mIGlPUywgdGh1cyBtb3ZlIGlPUyByZXN0b3JlVmll
d1N0YXRlKCkgdG8gY29tbW9uIHBsYWNlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9pb3MvV2ViRnJhbWVMb2FkZXJDbGllbnRJT1MubW06CisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpzYXZlVmlld1N0YXRlVG9JdGVtKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlc3RvcmVWaWV3U3RhdGUpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL2VmbC9XZWJQYWdlRWZsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6cmVzdG9yZVBhZ2VTdGF0ZSk6CisgICAgICAgIENhbGwgc2NhbGVQYWdlKCkg
dG8gdXBkYXRlIHByZXZpb3VzIHNjYWxlRmFjdG9yIGFuZCBzY3JvbGxQb3NpdGlvbiBvZiBoaXN0
b3J5SXRlbSBib3RoIHRvIFdlYlByb2Nlc3MgYW5kIFVJUHJvY2Vzcy4KKworICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpzYXZlUGFnZVN0YXRlKToKKwogMjAxNC0xMC0wNSAgQ2hyaXN0b3BoZSBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIGlzPD4oKSAvIGRvd25jYXN0
PD4oKSBmb3IgU2Nyb2xsaW5nQ29vcmRpbmF0b3IgLyBTY3JvbGxpbmdTdGF0ZU5vZGUgc3ViY2xh
c3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKaW5kZXgg
MjA1ZWMzYjIwYjlkZjAxNjFjNDJjZWM0ZjdiNjVmZWE1NmRiMTk0Yy4uZmU5YTMwYTgxNTBiNmFi
ODExMzQ3ZmYzNzFiYzc4MGE1ZmU4NzNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlz
dG9yeUNvbnRyb2xsZXIuY3BwCkBAIC0xNDUsNyArMTQ1LDcgQEAgdm9pZCBIaXN0b3J5Q29udHJv
bGxlcjo6cmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKCkKICAgICAvLyB0aHJvdWdo
IHRvIHRoZSBjbGllbnQuCiAgICAgbV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5yZXN0b3JlVmll
d1N0YXRlKCk7CiAKLSNpZiAhUExBVEZPUk0oSU9TKQorI2lmICFQTEFURk9STShJT1MpICYmICFQ
TEFURk9STShFRkwpCiAgICAgLy8gRG9uJ3QgcmVzdG9yZSBzY3JvbGwgcG9pbnQgb24gaU9TIGFz
IEZyYW1lTG9hZGVyQ2xpZW50OjpyZXN0b3JlVmlld1N0YXRlKCkgZG9lcyB0aGF0LgogICAgIGlm
ICh2aWV3ICYmICF2aWV3LT53YXNTY3JvbGxlZEJ5VXNlcigpKSB7CiAgICAgICAgIFBhZ2UqIHBh
Z2UgPSBtX2ZyYW1lLnBhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGE2YTQ5OWEyMDdmZTY4
ZWI0ZTllZTNhM2RkZjY0Nzg3YjQzYjVhZGYuLjZhOTI4MTJiYjhiNjI4YWY4ZjNiYjY0YjcyZDky
MWE5ZWNjYWI4YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtNzQzLDcgKzc0Myw3IEBAIHZvaWQg
UGFnZTo6c2V0UGFnZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlLCBjb25zdCBJbnRQb2ludCYgb3Jp
Z2luLCBib29sIGluU3RhYmxlCiAgICAgICAgICAgICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRp
b24ob3JpZ2luKTsKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICB2aWV3LT5ob3N0V2luZG93KCktPmRlbGVnYXRlZFNjcm9sbFJl
cXVlc3RlZChvcmlnaW4pOworICAgICAgICAgICAgICAgIHZpZXctPnJlcXVlc3RTY3JvbGxQb3Np
dGlvblVwZGF0ZShvcmlnaW4pOwogI2VuZGlmCiAgICAgICAgIH0KICNpZiBFTkFCTEUoTUVESUFf
Q09OVFJPTFNfU0NSSVBUKQpAQCAtNzc1LDEyICs3NzUsMTIgQEAgdm9pZCBQYWdlOjpzZXRQYWdl
U2NhbGVGYWN0b3IoZmxvYXQgc2NhbGUsIGNvbnN0IEludFBvaW50JiBvcmlnaW4sIGJvb2wgaW5T
dGFibGUKICAgICBpZiAodmlldyAmJiB2aWV3LT5zY3JvbGxQb3NpdGlvbigpICE9IG9yaWdpbikg
ewogICAgICAgICBpZiAoIW1fc2V0dGluZ3MtPmRlbGVnYXRlc1BhZ2VTY2FsaW5nKCkgJiYgZG9j
dW1lbnQtPnJlbmRlclZpZXcoKSAmJiBkb2N1bWVudC0+cmVuZGVyVmlldygpLT5uZWVkc0xheW91
dCgpICYmIHZpZXctPmRpZEZpcnN0TGF5b3V0KCkpCiAgICAgICAgICAgICB2aWV3LT5sYXlvdXQo
KTsKLSAgICAgICAgCisKICAgICAgICAgaWYgKCF2aWV3LT5kZWxlZ2F0ZXNTY3JvbGxpbmcoKSkK
ICAgICAgICAgICAgIHZpZXctPnNldFNjcm9sbFBvc2l0aW9uKG9yaWdpbik7CiAjaWYgVVNFKFRJ
TEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZpZXctPmhvc3RX
aW5kb3coKS0+ZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKG9yaWdpbik7CisgICAgICAgICAgICB2
aWV3LT5yZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRhdGUob3JpZ2luKTsKICNlbmRpZgogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA3MWJhYTI0ZWExNmI0Njk2
ZjlmM2FiYzA2NDA4YmZiMGY4MWZhMjg3Li5jZWZhYmYwMDAyYmVlYzljM2MwNjdkNjg3YjM2MTc0
ZGY5NTk5MTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTEzNywx
NCArMTEzNywyOCBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUxvYWRDb21wbGV0
ZWQoKQogICAgIH0KIH0KIAotI2lmICFQTEFURk9STShJT1MpCi12b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpzYXZlVmlld1N0YXRlVG9JdGVtKEhpc3RvcnlJdGVtKikKK3ZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OnNhdmVWaWV3U3RhdGVUb0l0ZW0oSGlzdG9yeUl0ZW0qIGhpc3RvcnlJdGVt
KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisjaWYgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9S
TShFRkwpCisgICAgaWYgKG1fZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisgICAgICAgIG1fZnJhbWUt
PnBhZ2UoKS0+c2F2ZVBhZ2VTdGF0ZSgqaGlzdG9yeUl0ZW0pOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0oaGlzdG9yeUl0ZW0pOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OnJlc3RvcmVWaWV3U3RhdGUoKQogeworI2lmIFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0o
RUZMKQorICAgIEZyYW1lJiBmcmFtZSA9ICptX2ZyYW1lLT5jb3JlRnJhbWUoKTsKKyAgICBIaXN0
b3J5SXRlbSogY3VycmVudEl0ZW0gPSBmcmFtZS5sb2FkZXIoKS5oaXN0b3J5KCkuY3VycmVudEl0
ZW0oKTsKKyAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUudmlldygpKSB7CisgICAgICAg
IGlmIChtX2ZyYW1lLT5pc01haW5GcmFtZSgpKQorICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgp
LT5yZXN0b3JlUGFnZVN0YXRlKCpjdXJyZW50SXRlbSk7CisgICAgICAgIGVsc2UgaWYgKCF2aWV3
LT53YXNTY3JvbGxlZEJ5VXNlcigpKQorICAgICAgICAgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRp
b24oY3VycmVudEl0ZW0tPnNjcm9sbFBvaW50KCkpOworICAgIH0KKyNlbHNlCiAgICAgLy8gSW5m
b3JtIHRoZSBVSSBwcm9jZXNzIG9mIHRoZSBzY2FsZSBmYWN0b3IuCiAgICAgZG91YmxlIHNjYWxl
RmFjdG9yID0gbV9mcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLmhpc3RvcnkoKS5jdXJyZW50
SXRlbSgpLT5wYWdlU2NhbGVGYWN0b3IoKTsKIApAQCAtMTE1Niw4ICsxMTcwLDggQEAgdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6cmVzdG9yZVZpZXdTdGF0ZSgpCiAgICAgLy8gdGhlIHZpZXcg
b24gcmVzdG9yZXMgZnJvbSB0aGUgYmFjay9mb3J3YXJkIGNhY2hlLgogICAgIGlmIChtX2ZyYW1l
ID09IG1fZnJhbWUtPnBhZ2UoKS0+bWFpbldlYkZyYW1lKCkpCiAgICAgICAgIG1fZnJhbWUtPnBh
Z2UoKS0+ZHJhd2luZ0FyZWEoKS0+c2V0TmVlZHNEaXNwbGF5KCk7Ci19CiAjZW5kaWYKK30KIAog
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cHJvdmlzaW9uYWxMb2FkU3RhcnRlZCgpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9X
ZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvaW9zL1dlYkZyYW1lTG9hZGVyQ2xpZW50SU9TLm1tCmluZGV4IGI3Mzc5Yzg5
ZGRlZDNmY2M5Y2RhOTkzMDYwYjVlOWNmZGI4YTkxYzUuLjAzNzc0ZWMzOGI5ODI2OGI1MTY0N2E3
NzllMjRhODA1OTUzNWVlYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvaW9zL1dlYkZyYW1lTG9hZGVyQ2xpZW50SU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkZyYW1lTG9hZGVyQ2xp
ZW50SU9TLm1tCkBAIC03OSwyNCArNzksNiBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aWRDcmVhdGVRdWlja0xvb2tIYW5kbGUoV2ViQ29yZTo6UXVpY2tMb29rSGFuZGxlJiBoYQogfQog
I2VuZGlmCiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNhdmVWaWV3U3RhdGVUb0l0ZW0o
SGlzdG9yeUl0ZW0qIGhpc3RvcnlJdGVtKQotewotICAgIGlmIChtX2ZyYW1lLT5pc01haW5GcmFt
ZSgpKQotICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPnNhdmVQYWdlU3RhdGUoKmhpc3RvcnlJdGVt
KTsKLX0KLQotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVzdG9yZVZpZXdTdGF0ZSgpCi17
Ci0gICAgRnJhbWUmIGZyYW1lID0gKm1fZnJhbWUtPmNvcmVGcmFtZSgpOwotICAgIEhpc3RvcnlJ
dGVtKiBjdXJyZW50SXRlbSA9IGZyYW1lLmxvYWRlcigpLmhpc3RvcnkoKS5jdXJyZW50SXRlbSgp
OwotICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBmcmFtZS52aWV3KCkpIHsKLSAgICAgICAgaWYg
KG1fZnJhbWUtPmlzTWFpbkZyYW1lKCkpCi0gICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPnJl
c3RvcmVQYWdlU3RhdGUoKmN1cnJlbnRJdGVtKTsKLSAgICAgICAgZWxzZSBpZiAoIXZpZXctPndh
c1Njcm9sbGVkQnlVc2VyKCkpCi0gICAgICAgICAgICB2aWV3LT5zZXRTY3JvbGxQb3NpdGlvbihj
dXJyZW50SXRlbS0+c2Nyb2xsUG9pbnQoKSk7Ci0gICAgfQotfQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDg2YjE1YTdiZDRjOGE2MGRjMWExOGMyNDhhOWVm
YWY3NTYxMTgwZmYuLjFiMDc2NzE0NjQ1NWZiNTU5NzI1MmNlYTk0NmQ5ZWIyNmUwY2ZmY2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNDQ1LDE0
ICs0NDUsMTcgQEAgcHVibGljOgogICAgIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyJiBnZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpIHsgcmV0dXJuIG1fZ2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7IH0KICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oSU9TKSB8fCBQTEFURk9STShFRkwpCisgICAgdm9pZCBzYXZlUGFnZVN0YXRlKFdlYkNvcmU6
Okhpc3RvcnlJdGVtJik7CisgICAgdm9pZCByZXN0b3JlUGFnZVN0YXRlKGNvbnN0IFdlYkNvcmU6
Okhpc3RvcnlJdGVtJik7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXZWJDb3Jl
OjpGbG9hdFNpemUgc2NyZWVuU2l6ZSgpIGNvbnN0OwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBh
dmFpbGFibGVTY3JlZW5TaXplKCkgY29uc3Q7CiAgICAgaW50MzJfdCBkZXZpY2VPcmllbnRhdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlT3JpZW50YXRpb247IH0KICAgICB2b2lkIHZpZXdw
b3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYp
OwogICAgIHZvaWQgZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoYm9vbCk7Ci0gICAgdm9pZCBzYXZl
UGFnZVN0YXRlKFdlYkNvcmU6Okhpc3RvcnlJdGVtJik7Ci0gICAgdm9pZCByZXN0b3JlUGFnZVN0
YXRlKGNvbnN0IFdlYkNvcmU6Okhpc3RvcnlJdGVtJik7CiAKICAgICB2b2lkIHNldFVzZVRlc3Rp
bmdWaWV3cG9ydENvbmZpZ3VyYXRpb24oYm9vbCB1c2VUZXN0aW5nVmlld3BvcnQpIHsgbV91c2VU
ZXN0aW5nVmlld3BvcnRDb25maWd1cmF0aW9uID0gdXNlVGVzdGluZ1ZpZXdwb3J0OyB9CiAgICAg
Ym9vbCBpc1VzaW5nVGVzdGluZ1ZpZXdwb3J0Q29uZmlndXJhdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fdXNlVGVzdGluZ1ZpZXdwb3J0Q29uZmlndXJhdGlvbjsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2VmbC9XZWJQYWdlRWZsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9lZmwvV2ViUGFnZUVmbC5jcHAKaW5kZXggMWFhYjRk
NTIzYjU1MmE5NDgxNjNlM2RjOGY3MTE1MTlkZDk4YmIwNi4uOGVhMjhlM2IxYWZjNjBmOGVjY2Nk
ZDMwZWI3YTk0NTk5M2ExZWI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL2VmbC9XZWJQYWdlRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvZWZsL1dlYlBhZ2VFZmwuY3BwCkBAIC0zMiwxMiArMzIsMTQgQEAKICNpbmNs
dWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1
ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNs
dWRlICJXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQmFja0Zvcndh
cmRDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FZmxLZXlib2FyZFV0aWxpdGllcy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVWaWV3Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9IaXN0b3J5SXRlbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1LZXli
b2FyZEV2ZW50Lmg+CkBAIC0yMjQsNCArMjI2LDIwIEBAIFN0cmluZyBXZWJQYWdlOjpwbGF0Zm9y
bVVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAor
dm9pZCBXZWJQYWdlOjpyZXN0b3JlUGFnZVN0YXRlKGNvbnN0IEhpc3RvcnlJdGVtJiBoaXN0b3J5
SXRlbSkKK3sKKyAgICBmbG9hdCByZXN0b3JlUGFnZVNjYWxlRmFjdG9yID0gaGlzdG9yeUl0ZW0u
cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgSW50UG9pbnQgcmVzdG9yZVNjcm9sbFBvaW50ID0gaGlz
dG9yeUl0ZW0uc2Nyb2xsUG9pbnQoKTsKKworICAgIC8vIEEgc2NhbGUgZmFjdG9yIG9yIHNjcm9s
bCBwb2ludCBvZiB6ZXJvIG1lYW5zIHRoYXQgdGhlIGhpc3RvcnkgaXRlbSBoYXMgdGhlIGRlZmF1
bHQgc2NhbGUgZmFjdG9yIG9yIHNjcm9sbCBwb3NpdGlvbiwKKyAgICAvLyB0aHVzIHdlIGRvbid0
IG5lZWQgdG8gdXBkYXRlIGl0LgorICAgIGlmIChyZXN0b3JlUGFnZVNjYWxlRmFjdG9yIHx8IHJl
c3RvcmVTY3JvbGxQb2ludCAhPSBJbnRQb2ludCgwLCAwKSkKKyAgICAgICAgc2NhbGVQYWdlKHJl
c3RvcmVQYWdlU2NhbGVGYWN0b3IsIHJlc3RvcmVTY3JvbGxQb2ludCk7Cit9CisKK3ZvaWQgV2Vi
UGFnZTo6c2F2ZVBhZ2VTdGF0ZShIaXN0b3J5SXRlbSYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>