<?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>101753</bug_id>
          
          <creation_ts>2012-11-09 06:23:41 -0800</creation_ts>
          <short_desc>[WK2] TiledBackingStore: User events are sent to web page before it is shown</short_desc>
          <delta_ts>2015-10-19 18:11:56 -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>
          
          <blocked>148470</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>abecsi</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>andersca</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kenneth</cc>
    
    <cc>koivisto</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>noam</cc>
    
    <cc>rafael.lobo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>762948</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-09 06:23:41 -0800</bug_when>
    <thetext>To see the problem:
1) go to maps.google.com from any other page
2) start move mouse over the upper part of the viewport while maps.google.com hasn&apos;t turned up
3) See &quot;Maps&quot; balloon that should not be there yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771878</commentid>
    <comment_count>1</comment_count>
      <attachid>175223</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-20 08:08:37 -0800</bug_when>
    <thetext>Created attachment 175223
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771908</commentid>
    <comment_count>2</comment_count>
      <attachid>175228</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-20 08:54:28 -0800</bug_when>
    <thetext>Created attachment 175228
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771917</commentid>
    <comment_count>3</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-11-20 09:15:32 -0800</bug_when>
    <thetext>I think the problem statement is not correct.
The bug is not that user events are sent to the page before it is showing.
The real bug is that it takes so much time to show the page after it was loaded and layout has finished.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771925</commentid>
    <comment_count>4</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-20 09:22:43 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; I think the problem statement is not correct.
&gt; The bug is not that user events are sent to the page before it is showing.
&gt; The real bug is that it takes so much time to show the page after it was loaded and layout has finished.
Off course, but even if the delay were not that obvious I think there would still some raise condition, so that unlucky user (lucky tester ;-) ) is able to interact with a page which is not yet fully in place..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771935</commentid>
    <comment_count>5</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-11-20 09:40:51 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; I think the problem statement is not correct.
&gt; &gt; The bug is not that user events are sent to the page before it is showing.
&gt; &gt; The real bug is that it takes so much time to show the page after it was loaded and layout has finished.
&gt; Off course, but even if the delay were not that obvious I think there would still some raise condition, so that unlucky user (lucky tester ;-) ) is able to interact with a page which is not yet fully in place..
If you can interact with the page, it means that hit test was successful, which means that the page IS there.
If the page is not there yet, you cannot interact with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771946</commentid>
    <comment_count>6</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-20 09:49:15 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; I think the problem statement is not correct.
&gt; &gt; &gt; The bug is not that user events are sent to the page before it is showing.
&gt; &gt; &gt; The real bug is that it takes so much time to show the page after it was loaded and layout has finished.
&gt; &gt; Off course, but even if the delay were not that obvious I think there would still some raise condition, so that unlucky user (lucky tester ;-) ) is able to interact with a page which is not yet fully in place..
&gt; If you can interact with the page, it means that hit test was successful, which means that the page IS there.
&gt; If the page is not there yet, you cannot interact with it.
From the User perspective it&apos;s not there until it is rendered.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771978</commentid>
    <comment_count>7</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-11-20 10:27:35 -0800</bug_when>
    <thetext>Let me try again: we should fix the huge delay that we have in painting and not put band-aid on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771979</commentid>
    <comment_count>8</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-20 10:31:03 -0800</bug_when>
    <thetext>This is not bandaiding. There is another issue, right, but a document is created and can accept events before the initial layout is complete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771984</commentid>
    <comment_count>9</comment_count>
      <attachid>175228</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-20 10:32:13 -0800</bug_when>
    <thetext>Comment on attachment 175228
patch

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

&gt; Source/WebKit2/UIProcess/WebPageProxy.h:1245
&gt; +    bool m_suppressUserEvents;

Isn&apos;t a m_isPageTransitionFinished more descriptive?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771985</commentid>
    <comment_count>10</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-20 10:33:08 -0800</bug_when>
    <thetext>We had similar issues on the N9. Other cases include not changing contents while the user is still interacting with the page, ie doing pinch, pan or similar. This should also postpose orientation change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771995</commentid>
    <comment_count>11</comment_count>
      <attachid>175228</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-11-20 10:43:59 -0800</bug_when>
    <thetext>Comment on attachment 175228
patch

This is affecting ports that use TILED_BACKING_STORE, so you should remove [EFL] as it&apos;s not EFL-specific. Maybe there&apos;s a flag for tiled backing store?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772000</commentid>
    <comment_count>12</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-11-20 10:47:26 -0800</bug_when>
    <thetext>Also, is there anything we could do to test this? Maybe a layout test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772020</commentid>
    <comment_count>13</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2012-11-20 10:57:08 -0800</bug_when>
    <thetext>Since this also affects other ports I think the [EFL] tag should be dropped from the title.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772104</commentid>
    <comment_count>14</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-20 13:08:15 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 175228 [details])
&gt; This is affecting ports that use TILED_BACKING_STORE, so you should remove [EFL] as it&apos;s not EFL-specific. Maybe there&apos;s a flag for tiled backing store?

Indeed. Completely forgot about title. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772111</commentid>
    <comment_count>15</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-20 13:18:00 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Also, is there anything we could do to test this? Maybe a layout test?

Think it is hard to do reliable layout test for this issue as on JS side there is no way to get information about when the layout is actually complete (correct me if I&apos;m wrong). And the time of the delay between document creation and layout completion may very (should be as short as possible :) ).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772113</commentid>
    <comment_count>16</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-20 13:20:21 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #12)
&gt; &gt; Also, is there anything we could do to test this? Maybe a layout test?
&gt; 
&gt; Think it is hard to do reliable layout test for this issue as on JS side there is no way to get information about when the layout is actually complete (correct me if I&apos;m wrong). And the time of the delay between document creation and layout completion may very (should be as short as possible :) ).

We should find a way to add didLayout to pageLoaderClient in WTR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772258</commentid>
    <comment_count>17</comment_count>
      <attachid>175228</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-11-20 16:13:22 -0800</bug_when>
    <thetext>Comment on attachment 175228
patch

Please don&apos;t add all these #ifdefs in the middle of WebPage like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772810</commentid>
    <comment_count>18</comment_count>
      <attachid>175228</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-11-21 04:52:30 -0800</bug_when>
    <thetext>Comment on attachment 175228
patch

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

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:3348
&gt;  void WebPage::commitPageTransitionViewport()
&gt;  {
&gt;      m_drawingArea-&gt;setLayerTreeStateIsFrozen(false);
&gt; +    send(Messages::WebPageProxy::PageTransitionFinished());

This is a UI process message handler and as a result you&apos;re sending back a message with a different meaning unconditionally. I don&apos;t think it&apos;s necessary to send those messages back and forth and you&apos;re actually going to cause more traffic between processes than what you save by not sending user events during that short lapse.
In other words: you could discard those events directly in the web process or use information that the UI process already have instead to switch it on/off.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772820</commentid>
    <comment_count>19</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-21 05:09:30 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 175228 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=175228&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:3348
&gt; &gt;  void WebPage::commitPageTransitionViewport()
&gt; &gt;  {
&gt; &gt;      m_drawingArea-&gt;setLayerTreeStateIsFrozen(false);
&gt; &gt; +    send(Messages::WebPageProxy::PageTransitionFinished());
&gt; 
&gt; This is a UI process message handler and as a result you&apos;re sending back a message with a different meaning unconditionally. I don&apos;t think it&apos;s necessary to send those messages back and forth and you&apos;re actually going to cause more traffic between processes than what you save by not sending user events during that short lapse.
&gt; In other words: you could discard those events directly in the web process or use information that the UI process already have instead to switch it on/off.

If we assume that time delta is short enough, so that the User is not able to initiate a lot of events (now s/he can, but hopefully the delay will be fixed) than yes, I agree with you. 

Will prepare a patch based on new approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772898</commentid>
    <comment_count>20</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-21 06:39:35 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; &gt; (From update of attachment 175228 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=175228&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:3348
&gt; &gt; &gt;  void WebPage::commitPageTransitionViewport()
&gt; &gt; &gt;  {
&gt; &gt; &gt;      m_drawingArea-&gt;setLayerTreeStateIsFrozen(false);
&gt; &gt; &gt; +    send(Messages::WebPageProxy::PageTransitionFinished());
&gt; &gt; 
&gt; &gt; This is a UI process message handler and as a result you&apos;re sending back a message with a different meaning unconditionally. I don&apos;t think it&apos;s necessary to send those messages back and forth and you&apos;re actually going to cause more traffic between processes than what you save by not sending user events during that short lapse.
&gt; &gt; In other words: you could discard those events directly in the web process or use information that the UI process already have instead to switch it on/off.
&gt; 
&gt; If we assume that time delta is short enough, so that the User is not able to initiate a lot of events (now s/he can, but hopefully the delay will be fixed) than yes, I agree with you. 
&gt; 
&gt; Will prepare a patch based on new approach.
Now I see that it is not that good idea as web process sends message back to UI process once it handles an event and UI process is relying on it, so think that ignoring of user events on web process side will affect the existing logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772910</commentid>
    <comment_count>21</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-11-21 06:46:15 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; Now I see that it is not that good idea as web process sends message back to UI process once it handles an event and UI process is relying on it, so think that ignoring of user events on web process side will affect the existing logic.

Couldn&apos;t you send them back as unhandled all the time instead of ignoring them?

I&apos;m not sure if I&apos;m following, since it seems like doing an early return in WebPageProxy::handleTouchEvent as your previous patch does would cause the same issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772912</commentid>
    <comment_count>22</comment_count>
      <attachid>175432</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-21 06:47:58 -0800</bug_when>
    <thetext>Created attachment 175432
patch v2

Took comments from Sam and Kenneth into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772971</commentid>
    <comment_count>23</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-21 07:53:18 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; Now I see that it is not that good idea as web process sends message back to UI process once it handles an event and UI process is relying on it, so think that ignoring of user events on web process side will affect the existing logic.
&gt; 
&gt; Couldn&apos;t you send them back as unhandled all the time instead of ignoring them?

This should be ok.
&gt; 
&gt; I&apos;m not sure if I&apos;m following, since it seems like doing an early return in WebPageProxy::handleTouchEvent as your previous patch does would cause the same issue.

It wouldn&apos;t cause the same issue as it returns at very beginning when neither UI process nor WEB process states are changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773016</commentid>
    <comment_count>24</comment_count>
      <attachid>175459</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-21 09:18:35 -0800</bug_when>
    <thetext>Created attachment 175459
patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773021</commentid>
    <comment_count>25</comment_count>
      <attachid>175459</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-21 09:20:47 -0800</bug_when>
    <thetext>Comment on attachment 175459
patch v3

Events are suppressed on WEB process side as proposed by Jocelyn.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773038</commentid>
    <comment_count>26</comment_count>
      <attachid>175459</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-11-21 09:36:57 -0800</bug_when>
    <thetext>Comment on attachment 175459
patch v3

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

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1753
&gt;  void WebPage::touchEvent(const WebTouchEvent&amp; touchEvent)
&gt;  {
&gt; +    if (sendIfUserEventCannotBeHandled(touchEvent))
&gt; +        return;
&gt; +
&gt;      CurrentEvent currentEvent(touchEvent);
&gt;  
&gt;      bool handled = handleTouchEvent(touchEvent, m_page.get());

send(Messages::WebPageProxy::DidReceiveEvent(static_cast&lt;uint32_t&gt;(touchEvent.type()), handled));
}

I think it is weird that the sendIfUserEventCannotBeHandled does the above but in a kind of non transparent way.

Why not 

bool handled = false;

if (canHandleEvent()) {
    CurrentEvent currentEvent(touchEvent);
    handled = handleTouchEvent(touchEvent, m_page.get());
}

send(Messages::WebPageProxy::DidReceiveEvent(static_cast&lt;uint32_t&gt;(touchEvent.type()), handled));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773049</commentid>
    <comment_count>27</comment_count>
      <attachid>175459</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-11-21 09:54:38 -0800</bug_when>
    <thetext>Comment on attachment 175459
patch v3

I wonder if it is the burden of WebPage to care when it should suppress or not those events. You could have not sent the event at all on the webview at the first place, right? You may need to add a way to detect when the first render is done (if it doesn&apos;t exist yet) and then you can turn the events on again on your client. My point is why this is a issue now for WK2, but not for other ports, like mac?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773885</commentid>
    <comment_count>28</comment_count>
      <attachid>175656</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-22 06:02:01 -0800</bug_when>
    <thetext>Created attachment 175656
patch v4

Took input from Kenneth into consideration. Thanks, Kenneth!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773886</commentid>
    <comment_count>29</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-22 06:05:31 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; (From update of attachment 175459 [details])
&gt; I wonder if it is the burden of WebPage to care when it should suppress or not those events. You could have not sent the event at all on the webview at the first place, right? You may need to add a way to detect when the first render is done (if it doesn&apos;t exist yet) and then you can turn the events on again on your client.

That would bring IPC overhead, see comment #18</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774030</commentid>
    <comment_count>30</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-11-22 10:31:16 -0800</bug_when>
    <thetext>(In reply to comment #29)
&gt; (In reply to comment #27)
&gt; &gt; (From update of attachment 175459 [details] [details])
&gt; &gt; I wonder if it is the burden of WebPage to care when it should suppress or not those events. You could have not sent the event at all on the webview at the first place, right? You may need to add a way to detect when the first render is done (if it doesn&apos;t exist yet) and then you can turn the events on again on your client.
&gt; 
&gt; That would bring IPC overhead, see comment #18

I don&apos;t see the overhead, it would be a single message for the client saying the first render happened. And then you could turn the suppressing events flag off right there on the client. I believe this kind of message is already there (layout milestones, see bug #95397), but I&apos;m not sure if it fits into the problem you&apos;re trying to solve. I was just wondering if we are not going into the wrong direction here.

Does WK1 also ignore events until the first render is done?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774142</commentid>
    <comment_count>31</comment_count>
      <attachid>175656</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-22 16:52:31 -0800</bug_when>
    <thetext>Comment on attachment 175656
patch v4

Attachment 175656 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14967529

New failing tests:
transforms/3d/hit-testing/backface-hit-test.html
transforms/3d/hit-testing/backface-no-transform-hit-test.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774381</commentid>
    <comment_count>32</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-11-23 03:41:02 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; Does WK1 also ignore events until the first render is done?

The problem is that we&apos;re not showing the committed content to the UI process immediately like WK1 does since we need to know at which zoom scale to render the  page, which is handled in the UI process and depends on the laid out contents size.
During that time, the old page is shown to the user but the the newly committed page is handling events in the web process.

This is not a problem for WK1 since the FrameView knows already that it should render at scale 1, handles all this synchronously and present everything it has to the user. And while it does this it&apos;s not handling user events, so the only window where the user might start interacting with the new page is while the rendered content is sent to the UI process.

If we want to handle this in the UI process, this should be done in cooperation with the PageViewportController which handles this delay and knows when it would be fine to eat events instead of the WebPageProxy. The nasty part is that it currently has nothing to do with events and it would require us to handle this outside of cross-platform code. It would also require adding more asynchronous logic to the problem, which wouldn&apos;t make things any simpler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774646</commentid>
    <comment_count>33</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-23 10:52:46 -0800</bug_when>
    <thetext>(In reply to comment #31)
&gt; (From update of attachment 175656 [details])
&gt; Attachment 175656 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/14967529
&gt; 
&gt; New failing tests:
&gt; transforms/3d/hit-testing/backface-hit-test.html
&gt; transforms/3d/hit-testing/backface-no-transform-hit-test.html

Has to be unrelated as patch concerns WK2. Could please anyone review it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777883</commentid>
    <comment_count>34</comment_count>
      <attachid>175656</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-11-28 07:02:15 -0800</bug_when>
    <thetext>Comment on attachment 175656
patch v4

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

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1515
&gt; +    if (canHandleUserEvents()) {
&gt; +        if (m_pageOverlay) {
&gt; +            // Let the page overlay handle the event.
&gt; +            handled = m_pageOverlay-&gt;mouseEvent(mouseEvent);
&gt; +        }

The page overlay isn&apos;t bound to individual pages lifetime and isn&apos;t affected by their transition, so I would let it handle events first anyhow.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1904
&gt; +    return !m_drawingArea-&gt;layerTreeStateIsFrozen();

Please add a comment that this only should only apply if the tree was frozen by didStartPageTransition. This will be a problem is this state is used in other cases in the future, especially in the middle of user interactions.
Ideally we would have a separate boolean to block user inputs and avoid mixing things, but I guess this isn&apos;t needed now.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1945
&gt; -        m_drawingArea-&gt;setLayerTreeStateIsFrozen(false);
&gt; +    m_drawingArea-&gt;setLayerTreeStateIsFrozen(false);

That over-indentation is because this might be handled by the else inside the #ifdef.
So unless the style check complains, I would leave it like it was.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778985</commentid>
    <comment_count>35</comment_count>
      <attachid>176724</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-11-29 07:10:59 -0800</bug_when>
    <thetext>Created attachment 176724
patch v5

Took comments from Jocelyn into consideration. Thanks Jocelyn!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779018</commentid>
    <comment_count>36</comment_count>
      <attachid>176724</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-29 07:49:23 -0800</bug_when>
    <thetext>Comment on attachment 176724
patch v5

Clearing flags on attachment: 176724

Committed r136133: &lt;http://trac.webkit.org/changeset/136133&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779019</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-29 07:49:32 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175223</attachid>
            <date>2012-11-20 08:08:37 -0800</date>
            <delta_ts>2012-11-20 08:54:28 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>events_patch</filename>
            <type>text/plain</type>
            <size>5529</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMTkyYzVjYi4u
ZWE1YjUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTIzNCw2ICsyMzQsOSBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50KiBw
YWdlQ2xpZW50LCBQYXNzUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gcAogICAgICwgbV9zaG91bGRT
ZW5kRXZlbnRzU3luY2hyb25vdXNseShmYWxzZSkKICAgICAsIG1fc3VwcHJlc3NWaXNpYmlsaXR5
VXBkYXRlcyhmYWxzZSkKICAgICAsIG1fbWVkaWFWb2x1bWUoMSkKKyNpZiBVU0UoVElMRURfQkFD
S0lOR19TVE9SRSkKKyAgICAsIG1fc3VwcHJlc3NVc2VyRXZlbnRzKGZhbHNlKQorI2VuZGlmCiAj
aWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCiAgICAgLCBtX3Zpc2liaWxpdHlTdGF0ZShQ
YWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZSkKICNlbmRpZgpAQCAtMTA2NCw2ICsxMDY3LDExIEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVNb3VzZUV2ZW50KGNvbnN0IE5hdGl2ZVdlYk1vdXNl
RXZlbnQmIGV2ZW50KQogICAgIGlmICghaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CiAKKyNp
ZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyAgICBpZiAobV9zdXBwcmVzc1VzZXJFdmVudHMp
CisgICAgICAgIHJldHVybjsKKyNlbmRpZgorCiAgICAgLy8gTk9URTogVGhpcyBkb2VzIG5vdCBz
dGFydCB0aGUgcmVzcG9uc2l2ZW5lc3MgdGltZXIgYmVjYXVzZSBtb3VzZSBtb3ZlIHNob3VsZCBu
b3QgaW5kaWNhdGUgaW50ZXJhY3Rpb24uCiAgICAgaWYgKGV2ZW50LnR5cGUoKSAhPSBXZWJFdmVu
dDo6TW91c2VNb3ZlKQogICAgICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS0+
c3RhcnQoKTsKQEAgLTExNjAsNiArMTE2OCwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxl
V2hlZWxFdmVudChjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50JiBldmVudCkKICAgICBpZiAoIWlz
VmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUp
CisgICAgaWYgKG1fc3VwcHJlc3NVc2VyRXZlbnRzKQorICAgICAgICByZXR1cm47CisjZW5kaWYK
KwogICAgIGlmICghbV9jdXJyZW50bHlQcm9jZXNzZWRXaGVlbEV2ZW50cy5pc0VtcHR5KCkpIHsK
ICAgICAgICAgbV93aGVlbEV2ZW50UXVldWUuYXBwZW5kKGV2ZW50KTsKICAgICAgICAgaWYgKG1f
d2hlZWxFdmVudFF1ZXVlLnNpemUoKSA8IHdoZWVsRXZlbnRRdWV1ZVNpemVUaHJlc2hvbGQpCkBA
IC0xMjA0LDcgKzEyMTcsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZUtleWJvYXJkRXZl
bnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiB7CiAgICAgaWYgKCFpc1Zh
bGlkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKKworI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NU
T1JFKQorICAgIGlmIChtX3N1cHByZXNzVXNlckV2ZW50cykKKyAgICAgICAgcmV0dXJuOworI2Vu
ZGlmCisKICAgICBMT0coS2V5SGFuZGxpbmcsICJXZWJQYWdlUHJveHk6OmhhbmRsZUtleWJvYXJk
RXZlbnQ6ICVzIiwgd2ViS2V5Ym9hcmRFdmVudFR5cGVTdHJpbmcoZXZlbnQudHlwZSgpKSk7CiAK
ICAgICBtX2tleUV2ZW50UXVldWUuYXBwZW5kKGV2ZW50KTsKQEAgLTEyMjQsNiArMTI0MiwxMSBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdlc3R1cmVF
dmVudCYgZXZlbnQpCiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKIAorI2lm
IFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgIGlmIChtX3N1cHByZXNzVXNlckV2ZW50cykK
KyAgICAgICAgcmV0dXJuOworI2VuZGlmCisKICAgICBtX2dlc3R1cmVFdmVudFF1ZXVlLmFwcGVu
ZChldmVudCk7CiAKICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS0+c3RhcnQo
KTsKQEAgLTEyNDQsNiArMTI2NywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hF
dmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiBldmVudCkKICAgICBpZiAoIWlzVmFsaWQo
KSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisgICAg
aWYgKG1fc3VwcHJlc3NVc2VyRXZlbnRzKQorICAgICAgICByZXR1cm47CisjZW5kaWYKKwogICAg
IC8vIElmIHRoZSBwYWdlIGlzIHN1c3BlbmRlZCwgd2hpY2ggc2hvdWxkIGJlIHRoZSBjYXNlIGR1
cmluZyBwYW5uaW5nLCBwaW5jaGluZwogICAgIC8vIGFuZCBhbmltYXRpb24gb24gdGhlIHBhZ2Ug
aXRzZWxmIChraW5ldGljIHNjcm9sbGluZywgdGFwIHRvIHpvb20pIGV0YywgdGhlbgogICAgIC8v
IHdlIGRvIG5vdCBzZW5kIGFueSBvZiB0aGUgZXZlbnRzIHRvIHRoZSBwYWdlIGV2ZW4gaWYgaXMg
aGFzIGxpc3RlbmVycy4KQEAgLTI3MDgsNiArMjczNiwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
cGFnZURpZFJlcXVlc3RTY3JvbGwoY29uc3QgSW50UG9pbnQmIHBvaW50KQogdm9pZCBXZWJQYWdl
UHJveHk6OnBhZ2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSgpCiB7CiAgICAgbV9wYWdlQ2xpZW50
LT5wYWdlVHJhbnNpdGlvblZpZXdwb3J0UmVhZHkoKTsKKyAgICBtX3N1cHByZXNzVXNlckV2ZW50
cyA9IGZhbHNlOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6cGFnZVRyYW5zaXRpb25TdGFydGVk
KCkKK3sKKyAgICBtX3N1cHByZXNzVXNlckV2ZW50cyA9IHRydWU7CiB9CiAKIHZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRSZW5kZXJGcmFtZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBjb250ZW50c1Np
emUsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNvdmVyZWRSZWN0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDkxZmFkMzAuLjM4NGQxMWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTg3Miw2ICs4NzIsNyBAQCBwcml2YXRl
OgogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIHZvaWQgcGFnZURpZFJlcXVlc3RT
Y3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKICAgICB2b2lkIHBhZ2VUcmFuc2l0aW9u
Vmlld3BvcnRSZWFkeSgpOworICAgIHZvaWQgcGFnZVRyYW5zaXRpb25TdGFydGVkKCk7CiAjZW5k
aWYKICNpZiBQTEFURk9STShRVCkKICAgICB2b2lkIGRpZEZpbmRab29tYWJsZUFyZWEoY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CkBAIC0xMjM5LDYg
KzEyNDAsMTAgQEAgcHJpdmF0ZToKIAogICAgIGZsb2F0IG1fbWVkaWFWb2x1bWU7CiAKKyNpZiBV
U0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyAgICBib29sIG1fc3VwcHJlc3NVc2VyRXZlbnRzOwor
I2VuZGlmCisKICNpZiBQTEFURk9STShRVCkKICAgICBXVEY6Okhhc2hTZXQ8UmVmUHRyPFF0UmVm
Q291bnRlZE5ldHdvcmtSZXF1ZXN0RGF0YT4gPiBtX2FwcGxpY2F0aW9uU2NoZW1lUmVxdWVzdHM7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluCmluZGV4IDcxNThkODEuLmIxOWE0ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNzYsNiArNzYsNyBAQCBt
ZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQog
ICAgIFBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKFdlYkNvcmU6OkludFBvaW50IHBvaW50KQogICAgIFBh
Z2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSgpCisgICAgUGFnZVRyYW5zaXRpb25TdGFydGVkKCkK
ICNlbmRpZgogI2lmIFBMQVRGT1JNKFFUKQogICAgIERpZEZpbmRab29tYWJsZUFyZWEoV2ViQ29y
ZTo6SW50UG9pbnQgdGFyZ2V0LCBXZWJDb3JlOjpJbnRSZWN0IGFyZWEpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZDkwMzZjYi4uZWI4MGY0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApA
QCAtMTkwNSwxNyArMTkwNSwyMCBAQCB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVQb2xpY3lEZWNp
c2lvbih1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklELCB1aQogdm9pZCBXZWJQ
YWdlOjpkaWRTdGFydFBhZ2VUcmFuc2l0aW9uKCkKIHsKICAgICBtX2RyYXdpbmdBcmVhLT5zZXRM
YXllclRyZWVTdGF0ZUlzRnJvemVuKHRydWUpOworI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JF
KQorICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UGFnZVRyYW5zaXRpb25TdGFydGVk
KCkpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUGFnZTo6ZGlkQ29tcGxldGVQYWdlVHJhbnNpdGlv
bigpCiB7CisgICAgaWYgKCFtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPnZpZXcoKS0+ZGVsZWdh
dGVzU2Nyb2xsaW5nKCkpCisgICAgICAgIG1fZHJhd2luZ0FyZWEtPnNldExheWVyVHJlZVN0YXRl
SXNGcm96ZW4oZmFsc2UpOwogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQotICAgIGlmICht
X21haW5GcmFtZS0+Y29yZUZyYW1lKCktPnZpZXcoKS0+ZGVsZWdhdGVzU2Nyb2xsaW5nKCkpCi0g
ICAgICAgIC8vIFdhaXQgdW50aWwgdGhlIFVJIHByb2Nlc3Mgc2VudCB1cyB0aGUgdmlzaWJsZSBy
ZWN0IGl0IHdhbnRzIHJlbmRlcmVkLgotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlBhZ2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSgpKTsKLSAgICBlbHNlCisgICAgLy8gV2Fp
dCB1bnRpbCB0aGUgVUkgcHJvY2VzcyBzZW50IHVzIHRoZSB2aXNpYmxlIHJlY3QgaXQgd2FudHMg
cmVuZGVyZWQuCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQYWdlVHJhbnNpdGlv
blZpZXdwb3J0UmVhZHkoKSk7CiAjZW5kaWYKLSAgICAgICAgbV9kcmF3aW5nQXJlYS0+c2V0TGF5
ZXJUcmVlU3RhdGVJc0Zyb3plbihmYWxzZSk7CisKIH0KIAogdm9pZCBXZWJQYWdlOjpzaG93KCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175228</attachid>
            <date>2012-11-20 08:54:28 -0800</date>
            <delta_ts>2012-11-21 06:47:58 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug101753</filename>
            <type>text/plain</type>
            <size>7532</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGJlZDhjODY5MmY0MzU2MzIwMzQ3MjhmMTYwMGM5NDcyMjJhNTk5ZWMKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VHVlIE5vdiAyMCAxODo0OToxNCAyMDEyICswMjAwCgogICAgYnVnMTAxNzUzCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDZkNTU5MmIuLjJhNWRlMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMi0x
MS0yMCAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIFVzZXIgZXZlbnRzIGFyZSBzZW50IHRvIHdlYiBwYWdlIGJl
Zm9yZSBpdCBpcyBzaG93bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAxNzUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW50cm9kdWNlZCB0d28gbmV3IElQQyBub3RpZmljYXRpb24gbWV0aG9kcyB0byBX
ZWJQYWdlUHJveHkgc28gdGhhdCBpdCBpcyBhd2FyZSBvZgorICAgICAgICB3aGV0aGVyIHBhZ2Ug
dHJhbnNpdGlvbiBzdGFydGVkL2ZpbmlzaGVkLiBVc2VyIGV2ZW50cyBhcmUgc3VwcHJlc3NlZCB3
aGlsZSB0aGUKKyAgICAgICAgcGFnZSB0cmFuc2l0aW9uIGlzIG9uZ29pbmcuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpXZWJQYWdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRs
ZU1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZVdoZWVs
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZUtleWJvYXJkRXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZUdlc3R1cmVFdmVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cGFnZVRyYW5zaXRpb25TdGFydGVkKToKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cGFnZVRyYW5zaXRp
b25GaW5pc2hlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAg
ICAoV2ViUGFnZVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkU3RhcnRQYWdlVHJhbnNpdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmRpZENvbXBsZXRlUGFnZVRyYW5zaXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpjb21taXRQYWdlVHJhbnNpdGlvblZpZXdwb3J0KToKKwogMjAxMi0xMS0x
OSAgS3l1bmdUYWUgS2ltICA8a3RmLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbV0syXSBV
bnVzZWQgcGFyYW1ldGVycyBvbiBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDE5MmM1Y2IuLmEzNWI2MmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMzQsNiAr
MjM0LDkgQEAgV2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCogcGFnZUNsaWVu
dCwgUGFzc1JlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHAKICAgICAsIG1fc2hvdWxkU2VuZEV2ZW50
c1N5bmNocm9ub3VzbHkoZmFsc2UpCiAgICAgLCBtX3N1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMo
ZmFsc2UpCiAgICAgLCBtX21lZGlhVm9sdW1lKDEpCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCisgICAgLCBtX3N1cHByZXNzVXNlckV2ZW50cyhmYWxzZSkKKyNlbmRpZgogI2lmIEVOQUJM
RShQQUdFX1ZJU0lCSUxJVFlfQVBJKQogICAgICwgbV92aXNpYmlsaXR5U3RhdGUoUGFnZVZpc2li
aWxpdHlTdGF0ZVZpc2libGUpCiAjZW5kaWYKQEAgLTEwNjQsNiArMTA2NywxMSBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6aGFuZGxlTW91c2VFdmVudChjb25zdCBOYXRpdmVXZWJNb3VzZUV2ZW50JiBl
dmVudCkKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgVVNFKFRJ
TEVEX0JBQ0tJTkdfU1RPUkUpCisgICAgaWYgKG1fc3VwcHJlc3NVc2VyRXZlbnRzKQorICAgICAg
ICByZXR1cm47CisjZW5kaWYKKwogICAgIC8vIE5PVEU6IFRoaXMgZG9lcyBub3Qgc3RhcnQgdGhl
IHJlc3BvbnNpdmVuZXNzIHRpbWVyIGJlY2F1c2UgbW91c2UgbW92ZSBzaG91bGQgbm90IGluZGlj
YXRlIGludGVyYWN0aW9uLgogICAgIGlmIChldmVudC50eXBlKCkgIT0gV2ViRXZlbnQ6Ok1vdXNl
TW92ZSkKICAgICAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0YXJ0KCk7
CkBAIC0xMTYwLDYgKzExNjgsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVdoZWVsRXZl
bnQoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYgZXZlbnQpCiAgICAgaWYgKCFpc1ZhbGlkKCkp
CiAgICAgICAgIHJldHVybjsKIAorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgIGlm
IChtX3N1cHByZXNzVXNlckV2ZW50cykKKyAgICAgICAgcmV0dXJuOworI2VuZGlmCisKICAgICBp
ZiAoIW1fY3VycmVudGx5UHJvY2Vzc2VkV2hlZWxFdmVudHMuaXNFbXB0eSgpKSB7CiAgICAgICAg
IG1fd2hlZWxFdmVudFF1ZXVlLmFwcGVuZChldmVudCk7CiAgICAgICAgIGlmIChtX3doZWVsRXZl
bnRRdWV1ZS5zaXplKCkgPCB3aGVlbEV2ZW50UXVldWVTaXplVGhyZXNob2xkKQpAQCAtMTIwNCw3
ICsxMjE3LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVLZXlib2FyZEV2ZW50KGNvbnN0
IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmIGV2ZW50KQogewogICAgIGlmICghaXNWYWxpZCgpKQog
ICAgICAgICByZXR1cm47Ci0gICAgCisKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyAg
ICBpZiAobV9zdXBwcmVzc1VzZXJFdmVudHMpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgorCiAg
ICAgTE9HKEtleUhhbmRsaW5nLCAiV2ViUGFnZVByb3h5OjpoYW5kbGVLZXlib2FyZEV2ZW50OiAl
cyIsIHdlYktleWJvYXJkRXZlbnRUeXBlU3RyaW5nKGV2ZW50LnR5cGUoKSkpOwogCiAgICAgbV9r
ZXlFdmVudFF1ZXVlLmFwcGVuZChldmVudCk7CkBAIC0xMjI0LDYgKzEyNDIsMTEgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmhhbmRsZUdlc3R1cmVFdmVudChjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGV2
ZW50KQogICAgIGlmICghaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBVU0UoVElM
RURfQkFDS0lOR19TVE9SRSkKKyAgICBpZiAobV9zdXBwcmVzc1VzZXJFdmVudHMpCisgICAgICAg
IHJldHVybjsKKyNlbmRpZgorCiAgICAgbV9nZXN0dXJlRXZlbnRRdWV1ZS5hcHBlbmQoZXZlbnQp
OwogCiAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0YXJ0KCk7CkBAIC0x
MjQ0LDYgKzEyNjcsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVRvdWNoRXZlbnQoY29u
c3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgZXZlbnQpCiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAg
ICAgIHJldHVybjsKIAorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgIGlmIChtX3N1
cHByZXNzVXNlckV2ZW50cykKKyAgICAgICAgcmV0dXJuOworI2VuZGlmCisKICAgICAvLyBJZiB0
aGUgcGFnZSBpcyBzdXNwZW5kZWQsIHdoaWNoIHNob3VsZCBiZSB0aGUgY2FzZSBkdXJpbmcgcGFu
bmluZywgcGluY2hpbmcKICAgICAvLyBhbmQgYW5pbWF0aW9uIG9uIHRoZSBwYWdlIGl0c2VsZiAo
a2luZXRpYyBzY3JvbGxpbmcsIHRhcCB0byB6b29tKSBldGMsIHRoZW4KICAgICAvLyB3ZSBkbyBu
b3Qgc2VuZCBhbnkgb2YgdGhlIGV2ZW50cyB0byB0aGUgcGFnZSBldmVuIGlmIGlzIGhhcyBsaXN0
ZW5lcnMuCkBAIC0yNzEwLDYgKzI3MzgsMTYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnBhZ2VUcmFu
c2l0aW9uVmlld3BvcnRSZWFkeSgpCiAgICAgbV9wYWdlQ2xpZW50LT5wYWdlVHJhbnNpdGlvblZp
ZXdwb3J0UmVhZHkoKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnBhZ2VUcmFuc2l0aW9uU3Rh
cnRlZCgpCit7CisgICAgbV9zdXBwcmVzc1VzZXJFdmVudHMgPSB0cnVlOworfQorCit2b2lkIFdl
YlBhZ2VQcm94eTo6cGFnZVRyYW5zaXRpb25GaW5pc2hlZCgpCit7CisgICAgbV9zdXBwcmVzc1Vz
ZXJFdmVudHMgPSBmYWxzZTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlbmRlckZyYW1l
KGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgY292ZXJlZFJlY3QpCiB7CiAgICAgbV9wYWdlQ2xpZW50LT5kaWRSZW5kZXJGcmFtZShj
b250ZW50c1NpemUsIGNvdmVyZWRSZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAppbmRleCA5MWZhZDMwLi5mZjEwZTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC04NzIsNiArODcyLDggQEAgcHJpdmF0ZToKICNpZiBVU0UoVElM
RURfQkFDS0lOR19TVE9SRSkKICAgICB2b2lkIHBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKGNvbnN0IFdl
YkNvcmU6OkludFBvaW50Jik7CiAgICAgdm9pZCBwYWdlVHJhbnNpdGlvblZpZXdwb3J0UmVhZHko
KTsKKyAgICB2b2lkIHBhZ2VUcmFuc2l0aW9uU3RhcnRlZCgpOworICAgIHZvaWQgcGFnZVRyYW5z
aXRpb25GaW5pc2hlZCgpOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgdm9pZCBkaWRG
aW5kWm9vbWFibGVBcmVhKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpOwpAQCAtMTIzOSw2ICsxMjQxLDEwIEBAIHByaXZhdGU6CiAKICAgICBmbG9hdCBt
X21lZGlhVm9sdW1lOwogCisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisgICAgYm9vbCBt
X3N1cHByZXNzVXNlckV2ZW50czsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgV1RG
OjpIYXNoU2V0PFJlZlB0cjxRdFJlZkNvdW50ZWROZXR3b3JrUmVxdWVzdERhdGE+ID4gbV9hcHBs
aWNhdGlvblNjaGVtZVJlcXVlc3RzOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3MTU4ZDgxLi4zZjU0ODYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KQEAgLTc2LDYgKzc2LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNpZiBVU0Uo
VElMRURfQkFDS0lOR19TVE9SRSkKICAgICBQYWdlRGlkUmVxdWVzdFNjcm9sbChXZWJDb3JlOjpJ
bnRQb2ludCBwb2ludCkKICAgICBQYWdlVHJhbnNpdGlvblZpZXdwb3J0UmVhZHkoKQorICAgIFBh
Z2VUcmFuc2l0aW9uU3RhcnRlZCgpCisgICAgUGFnZVRyYW5zaXRpb25GaW5pc2hlZCgpCiAjZW5k
aWYKICNpZiBQTEFURk9STShRVCkKICAgICBEaWRGaW5kWm9vbWFibGVBcmVhKFdlYkNvcmU6Oklu
dFBvaW50IHRhcmdldCwgV2ViQ29yZTo6SW50UmVjdCBhcmVhKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGQ5MDM2Y2IuLjE4ZWRiZjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE5
MDUsNiArMTkwNSw5IEBAIHZvaWQgV2ViUGFnZTo6ZGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKHVp
bnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IGxpc3RlbmVySUQsIHVpCiB2b2lkIFdlYlBhZ2U6OmRp
ZFN0YXJ0UGFnZVRyYW5zaXRpb24oKQogewogICAgIG1fZHJhd2luZ0FyZWEtPnNldExheWVyVHJl
ZVN0YXRlSXNGcm96ZW4odHJ1ZSk7CisjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQYWdlVHJhbnNpdGlvblN0YXJ0ZWQoKSk7Cisj
ZW5kaWYKIH0KIAogdm9pZCBXZWJQYWdlOjpkaWRDb21wbGV0ZVBhZ2VUcmFuc2l0aW9uKCkKQEAg
LTE5MTMsOSArMTkxNiwxMyBAQCB2b2lkIFdlYlBhZ2U6OmRpZENvbXBsZXRlUGFnZVRyYW5zaXRp
b24oKQogICAgIGlmIChtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPnZpZXcoKS0+ZGVsZWdhdGVz
U2Nyb2xsaW5nKCkpCiAgICAgICAgIC8vIFdhaXQgdW50aWwgdGhlIFVJIHByb2Nlc3Mgc2VudCB1
cyB0aGUgdmlzaWJsZSByZWN0IGl0IHdhbnRzIHJlbmRlcmVkLgogICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlBhZ2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSgpKTsKLSAgICBl
bHNlCi0jZW5kaWYKKyAgICBlbHNlIHsKICAgICAgICAgbV9kcmF3aW5nQXJlYS0+c2V0TGF5ZXJU
cmVlU3RhdGVJc0Zyb3plbihmYWxzZSk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6UGFnZVRyYW5zaXRpb25GaW5pc2hlZCgpKTsKKyAgICB9CisjZWxzZQorICAgIG1fZHJh
d2luZ0FyZWEtPnNldExheWVyVHJlZVN0YXRlSXNGcm96ZW4oZmFsc2UpOworI2VuZGlmCiB9CiAK
IHZvaWQgV2ViUGFnZTo6c2hvdygpCkBAIC0zMzM4LDYgKzMzNDUsNyBAQCBib29sIFdlYlBhZ2U6
OmNhbkhhbmRsZVJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
KQogdm9pZCBXZWJQYWdlOjpjb21taXRQYWdlVHJhbnNpdGlvblZpZXdwb3J0KCkKIHsKICAgICBt
X2RyYXdpbmdBcmVhLT5zZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGZhbHNlKTsKKyAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlBhZ2VUcmFuc2l0aW9uRmluaXNoZWQoKSk7CiB9CiAj
ZW5kaWYKIAo=
</data>
<flag name="review"
          id="190609"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175432</attachid>
            <date>2012-11-21 06:47:58 -0800</date>
            <delta_ts>2012-11-21 06:50:16 -0800</delta_ts>
            <desc>patch v2</desc>
            <filename>bug101753_v2</filename>
            <type>text/plain</type>
            <size>8515</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDNjODI5OTU1ZjQ1NDMxNDNmNDhlN2UzM2MxNzY5NzM4NjUwM2YxOGYKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VHVlIE5vdiAyMCAxODo0OToxNCAyMDEyICswMjAwCgogICAgYnVnMTAxNzUzCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDg4YjkwOWUuLjJiYjVjNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMi0x
MS0yMSAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbV0syXSBUaWxlZEJhY2tpbmdTdG9yZTogVXNlciBldmVudHMgYXJlIHNlbnQg
dG8gd2ViIHBhZ2UgYmVmb3JlIGl0IGlzIHNob3duCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2VkIHR3byBuZXcgSVBDIG5vdGlmaWNhdGlv
biBtZXRob2RzIHRvIFdlYlBhZ2VQcm94eSBzbyB0aGF0IGl0IGlzIGF3YXJlIG9mCisgICAgICAg
IHdoZXRoZXIgcGFnZSB0cmFuc2l0aW9uIHN0YXJ0ZWQvZmluaXNoZWQuIFVzZXIgZXZlbnRzIGFy
ZSBzdXBwcmVzc2VkIG9uIFVJIHByb2Nlc3Mgc2lkZQorICAgICAgICB3aGlsZSB0aGUgcGFnZSB0
cmFuc2l0aW9uIGlzIG9uZ29pbmcuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmlzVmFsaWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmhhbmRsZU1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmNhbkhhbmRsZVVzZXJFdmVudHMpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpoYW5kbGVHZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmhhbmRsZVRvdWNoRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OnBhZ2VUcmFuc2l0aW9uU3RhcnRlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6cGFnZVRyYW5zaXRpb25GaW5pc2hlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oOgorICAgICAgICAoV2ViUGFnZVByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkU3RhcnRQYWdlVHJhbnNpdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZENvbXBsZXRlUGFnZVRyYW5zaXRpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb21taXRQYWdlVHJhbnNpdGlvblZpZXdwb3J0
KToKKwogMjAxMi0xMS0yMSAgSm9uZ3Nlb2sgWWFuZyAgPGpzNDUueWFuZ0BzYW1zdW5nLmNvbT4K
IAogICAgICAgICBbRUZMXVtXSzJdIFJlbmFtZSBld2tfdmlld19zZXR0aW5nX2VuY29kaW5nX2N1
c3RvbV9YWFggdG8gZXdrX3ZpZXdfY3VzdG9tX2VuY29kaW5nX1hYWApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAxOTJjNWNiLi40MDk4YThiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjM0LDYgKzIzNCw5IEBA
IFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQqIHBhZ2VDbGllbnQsIFBhc3NS
ZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiBwCiAgICAgLCBtX3Nob3VsZFNlbmRFdmVudHNTeW5jaHJv
bm91c2x5KGZhbHNlKQogICAgICwgbV9zdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzKGZhbHNlKQog
ICAgICwgbV9tZWRpYVZvbHVtZSgxKQorI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAg
ICwgbV9pc1BhZ2VUcmFuc2l0aW9uRmluaXNoZWQodHJ1ZSkKKyNlbmRpZgogI2lmIEVOQUJMRShQ
QUdFX1ZJU0lCSUxJVFlfQVBJKQogICAgICwgbV92aXNpYmlsaXR5U3RhdGUoUGFnZVZpc2liaWxp
dHlTdGF0ZVZpc2libGUpCiAjZW5kaWYKQEAgLTI4NSw3ICsyODgsNyBAQCBQbGF0Zm9ybVByb2Nl
c3NJZGVudGlmaWVyIFdlYlBhZ2VQcm94eTo6cHJvY2Vzc0lkZW50aWZpZXIoKSBjb25zdAogICAg
IHJldHVybiBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCk7CiB9CiAKLWJvb2wgV2ViUGFn
ZVByb3h5Ojppc1ZhbGlkKCkKK2Jvb2wgV2ViUGFnZVByb3h5Ojppc1ZhbGlkKCkgY29uc3QKIHsK
ICAgICAvLyBBIHBhZ2UgdGhhdCBoYXMgYmVlbiBleHBsaWNpdGx5IGNsb3NlZCBpcyBuZXZlciB2
YWxpZC4KICAgICBpZiAobV9pc0Nsb3NlZCkKQEAgLTEwNjEsNyArMTA2NCw3IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpkcmFnRW5kZWQoY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25z
dCBJbnRQb2ludCYgZ2xvCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVNb3VzZUV2ZW50KGNv
bnN0IE5hdGl2ZVdlYk1vdXNlRXZlbnQmIGV2ZW50KQogewotICAgIGlmICghaXNWYWxpZCgpKQor
ICAgIGlmICghY2FuSGFuZGxlVXNlckV2ZW50cygpKQogICAgICAgICByZXR1cm47CiAKICAgICAv
LyBOT1RFOiBUaGlzIGRvZXMgbm90IHN0YXJ0IHRoZSByZXNwb25zaXZlbmVzcyB0aW1lciBiZWNh
dXNlIG1vdXNlIG1vdmUgc2hvdWxkIG5vdCBpbmRpY2F0ZSBpbnRlcmFjdGlvbi4KQEAgLTExNTcs
NyArMTE2MCw3IEBAIHN0YXRpYyBXZWJXaGVlbEV2ZW50IGNvYWxlc2NlZFdoZWVsRXZlbnQoRGVx
dWU8TmF0aXZlV2ViV2hlZWxFdmVudD4mIHF1ZXVlLCBWZWN0CiAKIHZvaWQgV2ViUGFnZVByb3h5
OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmIGV2ZW50KQogewot
ICAgIGlmICghaXNWYWxpZCgpKQorICAgIGlmICghY2FuSGFuZGxlVXNlckV2ZW50cygpKQogICAg
ICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fY3VycmVudGx5UHJvY2Vzc2VkV2hlZWxFdmVudHMu
aXNFbXB0eSgpKSB7CkBAIC0xMjAwLDExICsxMjAzLDIwIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpz
ZW5kV2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiBldmVudCkKICAgICBtX3Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OkV2ZW50RGlzcGF0Y2hlcjo6V2hlZWxFdmVudChtX3BhZ2VJRCwgZXZl
bnQsIGNhbkdvQmFjaygpLCBjYW5Hb0ZvcndhcmQoKSksIDApOwogfQogCitpbmxpbmUgYm9vbCBX
ZWJQYWdlUHJveHk6OmNhbkhhbmRsZVVzZXJFdmVudHMoKSBjb25zdAoreworI2lmIFVTRShUSUxF
RF9CQUNLSU5HX1NUT1JFKQorICAgIHJldHVybiBpc1ZhbGlkKCkgJiYgbV9pc1BhZ2VUcmFuc2l0
aW9uRmluaXNoZWQ7CisjZWxzZQorICAgIHJldHVybiBpc1ZhbGlkKCk7CisjZW5kaWYKK30KKwog
dm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZUtleWJvYXJkRXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudCYgZXZlbnQpCiB7Ci0gICAgaWYgKCFpc1ZhbGlkKCkpCisgICAgaWYgKCFjYW5I
YW5kbGVVc2VyRXZlbnRzKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIExPRyhLZXlI
YW5kbGluZywgIldlYlBhZ2VQcm94eTo6aGFuZGxlS2V5Ym9hcmRFdmVudDogJXMiLCB3ZWJLZXli
b2FyZEV2ZW50VHlwZVN0cmluZyhldmVudC50eXBlKCkpKTsKIAogICAgIG1fa2V5RXZlbnRRdWV1
ZS5hcHBlbmQoZXZlbnQpOwpAQCAtMTIyMSw3ICsxMjMzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmhhbmRsZUtleWJvYXJkRXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYgZXZlbnQp
CiAjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQogdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZUdl
c3R1cmVFdmVudChjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGV2ZW50KQogewotICAgIGlmICghaXNW
YWxpZCgpKQorICAgIGlmICghc2hvdWxkSGFuZGxlVXNlckV2ZW50cygpKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX2dlc3R1cmVFdmVudFF1ZXVlLmFwcGVuZChldmVudCk7CkBAIC0xMjQxLDcg
KzEyNTMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlUG90ZW50aWFsQWN0aXZhdGlvbihj
b25zdCBJbnRQb2ludCYgdG91Y2hQb2ludCwgY29uc3QgSQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
aGFuZGxlVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2ZW50JiBldmVudCkKIHsKLSAg
ICBpZiAoIWlzVmFsaWQoKSkKKyAgICBpZiAoIXNob3VsZEhhbmRsZVVzZXJFdmVudHMoKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgLy8gSWYgdGhlIHBhZ2UgaXMgc3VzcGVuZGVkLCB3aGljaCBz
aG91bGQgYmUgdGhlIGNhc2UgZHVyaW5nIHBhbm5pbmcsIHBpbmNoaW5nCkBAIC0yNzEwLDYgKzI3
MjIsMTYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnBhZ2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSgp
CiAgICAgbV9wYWdlQ2xpZW50LT5wYWdlVHJhbnNpdGlvblZpZXdwb3J0UmVhZHkoKTsKIH0KIAor
dm9pZCBXZWJQYWdlUHJveHk6OnBhZ2VUcmFuc2l0aW9uU3RhcnRlZCgpCit7CisgICAgbV9pc1Bh
Z2VUcmFuc2l0aW9uRmluaXNoZWQgPSBmYWxzZTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnBh
Z2VUcmFuc2l0aW9uRmluaXNoZWQoKQoreworICAgIG1faXNQYWdlVHJhbnNpdGlvbkZpbmlzaGVk
ID0gdHJ1ZTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlbmRlckZyYW1lKGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY292
ZXJlZFJlY3QpCiB7CiAgICAgbV9wYWdlQ2xpZW50LT5kaWRSZW5kZXJGcmFtZShjb250ZW50c1Np
emUsIGNvdmVyZWRSZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCA5MWZhZDMwLi41OTNmZDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCkBAIC02NDEsNyArNjQxLDcgQEAgcHVibGljOgogCiAgICAgV2ViUGFnZUdyb3VwKiBw
YWdlR3JvdXAoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VHcm91cC5nZXQoKTsgfQogCi0gICAgYm9v
bCBpc1ZhbGlkKCk7CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CiAKICAgICBQYXNzUmVmUHRy
PEltbXV0YWJsZUFycmF5PiByZWxhdGVkUGFnZXMoKSBjb25zdDsKIApAQCAtODcyLDYgKzg3Miw4
IEBAIHByaXZhdGU6CiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdm9pZCBwYWdl
RGlkUmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwogICAgIHZvaWQgcGFn
ZVRyYW5zaXRpb25WaWV3cG9ydFJlYWR5KCk7CisgICAgdm9pZCBwYWdlVHJhbnNpdGlvblN0YXJ0
ZWQoKTsKKyAgICB2b2lkIHBhZ2VUcmFuc2l0aW9uRmluaXNoZWQoKTsKICNlbmRpZgogI2lmIFBM
QVRGT1JNKFFUKQogICAgIHZvaWQgZGlkRmluZFpvb21hYmxlQXJlYShjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKQEAgLTEwNDQsNiArMTA0Niw4IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBwcm9jZXNzTmV4dFF1ZXVlZFdoZWVsRXZlbnQoKTsKICAgICB2
b2lkIHNlbmRXaGVlbEV2ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQmKTsKIAorICAgIGJvb2wgY2Fu
SGFuZGxlVXNlckV2ZW50cygpIGNvbnN0OworCiAgICAgUGFnZUNsaWVudCogbV9wYWdlQ2xpZW50
OwogICAgIFdlYkxvYWRlckNsaWVudCBtX2xvYWRlckNsaWVudDsKICAgICBXZWJQb2xpY3lDbGll
bnQgbV9wb2xpY3lDbGllbnQ7CkBAIC0xMjM5LDYgKzEyNDMsMTAgQEAgcHJpdmF0ZToKIAogICAg
IGZsb2F0IG1fbWVkaWFWb2x1bWU7CiAKKyNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKKyAg
ICBib29sIG1faXNQYWdlVHJhbnNpdGlvbkZpbmlzaGVkOworI2VuZGlmCisKICNpZiBQTEFURk9S
TShRVCkKICAgICBXVEY6Okhhc2hTZXQ8UmVmUHRyPFF0UmVmQ291bnRlZE5ldHdvcmtSZXF1ZXN0
RGF0YT4gPiBtX2FwcGxpY2F0aW9uU2NoZW1lUmVxdWVzdHM7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDcxNThk
ODEuLjNmNTQ4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtNzYsNiArNzYsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJv
eHkgewogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIFBhZ2VEaWRSZXF1ZXN0U2Ny
b2xsKFdlYkNvcmU6OkludFBvaW50IHBvaW50KQogICAgIFBhZ2VUcmFuc2l0aW9uVmlld3BvcnRS
ZWFkeSgpCisgICAgUGFnZVRyYW5zaXRpb25TdGFydGVkKCkKKyAgICBQYWdlVHJhbnNpdGlvbkZp
bmlzaGVkKCkKICNlbmRpZgogI2lmIFBMQVRGT1JNKFFUKQogICAgIERpZEZpbmRab29tYWJsZUFy
ZWEoV2ViQ29yZTo6SW50UG9pbnQgdGFyZ2V0LCBXZWJDb3JlOjpJbnRSZWN0IGFyZWEpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYzkxYzcz
ZS4uNmFjNGZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtMTkwOSw2ICsxOTA5LDkgQEAgdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlUG9s
aWN5RGVjaXNpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgdWkKIHZv
aWQgV2ViUGFnZTo6ZGlkU3RhcnRQYWdlVHJhbnNpdGlvbigpCiB7CiAgICAgbV9kcmF3aW5nQXJl
YS0+c2V0TGF5ZXJUcmVlU3RhdGVJc0Zyb3plbih0cnVlKTsKKyNpZiBVU0UoVElMRURfQkFDS0lO
R19TVE9SRSkKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlBhZ2VUcmFuc2l0aW9u
U3RhcnRlZCgpKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlBhZ2U6OmRpZENvbXBsZXRlUGFnZVRy
YW5zaXRpb24oKQpAQCAtMTkxNyw5ICsxOTIwLDEzIEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ29tcGxl
dGVQYWdlVHJhbnNpdGlvbigpCiAgICAgaWYgKG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+dmll
dygpLT5kZWxlZ2F0ZXNTY3JvbGxpbmcoKSkKICAgICAgICAgLy8gV2FpdCB1bnRpbCB0aGUgVUkg
cHJvY2VzcyBzZW50IHVzIHRoZSB2aXNpYmxlIHJlY3QgaXQgd2FudHMgcmVuZGVyZWQuCiAgICAg
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UGFnZVRyYW5zaXRpb25WaWV3cG9ydFJl
YWR5KCkpOwotICAgIGVsc2UKLSNlbmRpZgorICAgIGVsc2UgewogICAgICAgICBtX2RyYXdpbmdB
cmVhLT5zZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGZhbHNlKTsKKyAgICAgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpQYWdlVHJhbnNpdGlvbkZpbmlzaGVkKCkpOworICAgIH0KKyNl
bHNlCisgICAgbV9kcmF3aW5nQXJlYS0+c2V0TGF5ZXJUcmVlU3RhdGVJc0Zyb3plbihmYWxzZSk7
CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQYWdlOjpzaG93KCkKQEAgLTMzNDIsNiArMzM0OSw3IEBA
IGJvb2wgV2ViUGFnZTo6Y2FuSGFuZGxlUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QpCiB2b2lkIFdlYlBhZ2U6OmNvbW1pdFBhZ2VUcmFuc2l0aW9uVmlld3Bv
cnQoKQogewogICAgIG1fZHJhd2luZ0FyZWEtPnNldExheWVyVHJlZVN0YXRlSXNGcm96ZW4oZmFs
c2UpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UGFnZVRyYW5zaXRpb25GaW5p
c2hlZCgpKTsKIH0KICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175459</attachid>
            <date>2012-11-21 09:18:35 -0800</date>
            <delta_ts>2012-11-22 06:02:01 -0800</delta_ts>
            <desc>patch v3</desc>
            <filename>bug101753_v3</filename>
            <type>text/plain</type>
            <size>4529</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGExOTljZGZhMzU3YzU1MDhiMzdiMzE1NWE4Y2EwMzUxNDZlZjcwY2EKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
V2VkIE5vdiAyMSAxOToxMDoyNCAyMDEyICswMjAwCgogICAgYnVnMTAxNzUzCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDg4YjkwOWUuLjVhMWI3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMi0x
MS0yMSAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbV0syXSBUaWxlZEJhY2tpbmdTdG9yZTogVXNlciBldmVudHMgYXJlIHNlbnQg
dG8gd2ViIHBhZ2UgYmVmb3JlIGl0IGlzIHNob3duCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVc2VyIGV2ZW50cyBhcmUgc3VwcHJlc3NlZCBvbiBXRUIg
cHJvY2VzcyBzaWRlIHdoaWxlIGRyYXdpbmcgYXJlYSBpcyBmcm96ZW4uCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
Om1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp3aGVlbEV2ZW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6a2V5RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpnZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp0b3VjaEV2ZW50
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2VuZElmRXZlbnRDYW5ub3RCZUhhbmRsZWQp
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ29tcGxl
dGVQYWdlVHJhbnNpdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKyAgICAgICAgKFdlYlBhZ2UpOgorCiAyMDEyLTExLTIxICBKb25nc2VvayBZYW5nICA8anM0
NS55YW5nQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0gUmVuYW1lIGV3a192aWV3
X3NldHRpbmdfZW5jb2RpbmdfY3VzdG9tX1hYWCB0byBld2tfdmlld19jdXN0b21fZW5jb2Rpbmdf
WFhYCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggYzkxYzczZS4uZTY2NDU5MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE1MDYsNyArMTUwNiwxMCBAQCB2b2lkIFdlYlBhZ2U6Om1v
dXNlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYgbW91c2VFdmVudCkKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICNlbmRpZgotICAgIAorCisgICAgaWYgKHNlbmRJZlVzZXJFdmVudENhbm5vdEJl
SGFuZGxlZChtb3VzZUV2ZW50KSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgYm9vbCBoYW5kbGVk
ID0gZmFsc2U7CiAgICAgCiAgICAgaWYgKG1fcGFnZU92ZXJsYXkpIHsKQEAgLTE1NTgsNiArMTU2
MSw5IEBAIHN0YXRpYyBib29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgV2ViV2hlZWxFdmVudCYg
d2hlZWxFdmVudCwgUGFnZSogcGFnZSkKIAogdm9pZCBXZWJQYWdlOjp3aGVlbEV2ZW50KGNvbnN0
IFdlYldoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiB7CisgICAgaWYgKHNlbmRJZlVzZXJFdmVudENh
bm5vdEJlSGFuZGxlZCh3aGVlbEV2ZW50KSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgQ3VycmVu
dEV2ZW50IGN1cnJlbnRFdmVudCh3aGVlbEV2ZW50KTsKIAogICAgIGJvb2wgaGFuZGxlZCA9IGhh
bmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCwgbV9wYWdlLmdldCgpKTsKQEAgLTE1ODMsNiArMTU4
OSw5IEBAIHN0YXRpYyBib29sIGhhbmRsZUtleUV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQm
IGtleWJvYXJkRXZlbnQsIFBhZ2UqIHBhZ2UpCiAKIHZvaWQgV2ViUGFnZTo6a2V5RXZlbnQoY29u
c3QgV2ViS2V5Ym9hcmRFdmVudCYga2V5Ym9hcmRFdmVudCkKIHsKKyAgICBpZiAoc2VuZElmVXNl
ckV2ZW50Q2Fubm90QmVIYW5kbGVkKGtleWJvYXJkRXZlbnQpKQorICAgICAgICByZXR1cm47CisK
ICAgICBDdXJyZW50RXZlbnQgY3VycmVudEV2ZW50KGtleWJvYXJkRXZlbnQpOwogCiAgICAgYm9v
bCBoYW5kbGVkID0gaGFuZGxlS2V5RXZlbnQoa2V5Ym9hcmRFdmVudCwgbV9wYWdlLmdldCgpKTsK
QEAgLTE2MTUsNiArMTYyNCw5IEBAIHN0YXRpYyBib29sIGhhbmRsZUdlc3R1cmVFdmVudChjb25z
dCBXZWJHZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCwgUGFnZSogcGFnZSkKIAogdm9pZCBXZWJQ
YWdlOjpnZXN0dXJlRXZlbnQoY29uc3QgV2ViR2VzdHVyZUV2ZW50JiBnZXN0dXJlRXZlbnQpCiB7
CisgICAgaWYgKHNlbmRJZlVzZXJFdmVudENhbm5vdEJlSGFuZGxlZChnZXN0dXJlRXZlbnQpKQor
ICAgICAgICByZXR1cm47CisKICAgICBDdXJyZW50RXZlbnQgY3VycmVudEV2ZW50KGdlc3R1cmVF
dmVudCk7CiAKICAgICBib29sIGhhbmRsZWQgPSBoYW5kbGVHZXN0dXJlRXZlbnQoZ2VzdHVyZUV2
ZW50LCBtX3BhZ2UuZ2V0KCkpOwpAQCAtMTczMyw2ICsxNzQ1LDkgQEAgc3RhdGljIGJvb2wgaGFu
ZGxlVG91Y2hFdmVudChjb25zdCBXZWJUb3VjaEV2ZW50JiB0b3VjaEV2ZW50LCBQYWdlKiBwYWdl
KQogCiB2b2lkIFdlYlBhZ2U6OnRvdWNoRXZlbnQoY29uc3QgV2ViVG91Y2hFdmVudCYgdG91Y2hF
dmVudCkKIHsKKyAgICBpZiAoc2VuZElmVXNlckV2ZW50Q2Fubm90QmVIYW5kbGVkKHRvdWNoRXZl
bnQpKQorICAgICAgICByZXR1cm47CisKICAgICBDdXJyZW50RXZlbnQgY3VycmVudEV2ZW50KHRv
dWNoRXZlbnQpOwogCiAgICAgYm9vbCBoYW5kbGVkID0gaGFuZGxlVG91Y2hFdmVudCh0b3VjaEV2
ZW50LCBtX3BhZ2UuZ2V0KCkpOwpAQCAtMTg4Myw2ICsxODk4LDIwIEBAIHZvaWQgV2ViUGFnZTo6
c2V0Q2FuU3RhcnRNZWRpYVRpbWVyRmlyZWQoKQogICAgICAgICBtX3BhZ2UtPnNldENhblN0YXJ0
TWVkaWEodHJ1ZSk7CiB9CiAKK2lubGluZSBib29sIFdlYlBhZ2U6OnNlbmRJZlVzZXJFdmVudENh
bm5vdEJlSGFuZGxlZChjb25zdCBXZWJFdmVudCYgZXZlbnQpCit7CisjaWYgVVNFKFRJTEVEX0JB
Q0tJTkdfU1RPUkUpCisgICAgaWYgKG1fZHJhd2luZ0FyZWEtPmxheWVyVHJlZVN0YXRlSXNGcm96
ZW4oKSkgeworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJlY2VpdmVF
dmVudChzdGF0aWNfY2FzdDx1aW50MzJfdD4oZXZlbnQudHlwZSgpKSwgZmFsc2UpKTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKGV2ZW50KTsKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogdm9pZCBX
ZWJQYWdlOjpzZXRJc0luV2luZG93KGJvb2wgaXNJbldpbmRvdykKIHsKICAgICBpZiAoIWlzSW5X
aW5kb3cpIHsKQEAgLTE5MTksNyArMTk0OCw3IEBAIHZvaWQgV2ViUGFnZTo6ZGlkQ29tcGxldGVQ
YWdlVHJhbnNpdGlvbigpCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UGFn
ZVRyYW5zaXRpb25WaWV3cG9ydFJlYWR5KCkpOwogICAgIGVsc2UKICNlbmRpZgotICAgICAgICBt
X2RyYXdpbmdBcmVhLT5zZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGZhbHNlKTsKKyAgICBtX2Ry
YXdpbmdBcmVhLT5zZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGZhbHNlKTsKIH0KIAogdm9pZCBX
ZWJQYWdlOjpzaG93KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCmluZGV4IDE5YWYzOWMuLmJiMmI3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNzgwLDYgKzc4MCw4IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBjaGFuZ2VTZWxlY3RlZEluZGV4KGludDMyX3QgaW5kZXgpOwogICAgIHZvaWQgc2V0Q2FuU3Rh
cnRNZWRpYVRpbWVyRmlyZWQoKTsKIAorICAgIGJvb2wgc2VuZElmVXNlckV2ZW50Q2Fubm90QmVI
YW5kbGVkKGNvbnN0IFdlYkV2ZW50Jik7CisKICAgICBzdGF0aWMgYm9vbCBwbGF0Zm9ybUNhbkhh
bmRsZVJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAKICAgICBPd25Q
dHI8V2ViQ29yZTo6UGFnZT4gbV9wYWdlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175656</attachid>
            <date>2012-11-22 06:02:01 -0800</date>
            <delta_ts>2012-11-29 07:10:59 -0800</delta_ts>
            <desc>patch v4</desc>
            <filename>bug101753_v4</filename>
            <type>text/plain</type>
            <size>7645</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDliYTNmMTdkYzhkYjgzNWVkOWE2ZDY3NWQzMTMwODQzNGEyNWVlM2YKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
V2VkIE5vdiAyMSAxOToxMDoyNCAyMDEyICswMjAwCgogICAgYnVnMTAxNzUzCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDcxYjk5OTEuLmVjYTk3N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMi0x
MS0yMSAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbV0syXSBUaWxlZEJhY2tpbmdTdG9yZTogVXNlciBldmVudHMgYXJlIHNlbnQg
dG8gd2ViIHBhZ2UgYmVmb3JlIGl0IGlzIHNob3duCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVc2VyIGV2ZW50cyBhcmUgc3VwcHJlc3NlZCBvbiBXRUIg
cHJvY2VzcyBzaWRlIHdoaWxlIGRyYXdpbmcgYXJlYSBpcyBmcm96ZW4uCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
Om1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp3aGVlbEV2ZW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6a2V5RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpnZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp0b3VjaEV2ZW50
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2VuZElmRXZlbnRDYW5ub3RCZUhhbmRsZWQp
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ29tcGxl
dGVQYWdlVHJhbnNpdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKyAgICAgICAgKFdlYlBhZ2UpOgorCiAyMDEyLTExLTIyICBNaWtoYWlsIFBvemRueWFrb3Yg
IDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjEz
NTM5OSk6IFdyb25nIGFzc2VydGlvbiBjYXVzaW5nIGFuIGFzc2VydGlvbiBmYWlsdXJlOiBtX3Jh
d0F0dHJpYnV0ZXMuaW5pdGlhbFNjYWxlID4gMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGM5MWM3M2UuLjliZmQ0ZmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE1MDYsMjQgKzE1
MDYsMjUgQEAgdm9pZCBXZWJQYWdlOjptb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmIG1v
dXNlRXZlbnQpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKLSAgICAKICAgICBib29s
IGhhbmRsZWQgPSBmYWxzZTsKLSAgICAKLSAgICBpZiAobV9wYWdlT3ZlcmxheSkgewotICAgICAg
ICAvLyBMZXQgdGhlIHBhZ2Ugb3ZlcmxheSBoYW5kbGUgdGhlIGV2ZW50LgotICAgICAgICBoYW5k
bGVkID0gbV9wYWdlT3ZlcmxheS0+bW91c2VFdmVudChtb3VzZUV2ZW50KTsKLSAgICB9CiAKLSAg
ICBpZiAoIWhhbmRsZWQpIHsKLSAgICAgICAgQ3VycmVudEV2ZW50IGN1cnJlbnRFdmVudChtb3Vz
ZUV2ZW50KTsKKyAgICBpZiAoY2FuSGFuZGxlVXNlckV2ZW50cygpKSB7CisgICAgICAgIGlmICht
X3BhZ2VPdmVybGF5KSB7CisgICAgICAgICAgICAvLyBMZXQgdGhlIHBhZ2Ugb3ZlcmxheSBoYW5k
bGUgdGhlIGV2ZW50LgorICAgICAgICAgICAgaGFuZGxlZCA9IG1fcGFnZU92ZXJsYXktPm1vdXNl
RXZlbnQobW91c2VFdmVudCk7CisgICAgICAgIH0KIAotICAgICAgICAvLyBXZSBuZWVkIHRvIGRv
IGEgZnVsbCwgbm9ybWFsIGhpdCB0ZXN0IGR1cmluZyB0aGlzIG1vdXNlIGV2ZW50IGlmIHRoZSBw
YWdlIGlzIGFjdGl2ZSBvciBpZiBhIG1vdXNlCi0gICAgICAgIC8vIGJ1dHRvbiBpcyBjdXJyZW50
bHkgcHJlc3NlZC4gSXQgaXMgcG9zc2libGUgdGhhdCBuZWl0aGVyIG9mIHRob3NlIHRoaW5ncyB3
aWxsIGJlIHRydWUgc2luY2Ugb24gCi0gICAgICAgIC8vIExpb24gd2hlbiBsZWdhY3kgc2Nyb2xs
YmFycyBhcmUgZW5hYmxlZCwgV2ViS2l0IHJlY2VpdmVzIG1vdXNlIGV2ZW50cyBhbGwgdGhlIHRp
bWUuIElmIGl0IGlzIG9uZSAKLSAgICAgICAgLy8gb2YgdGhvc2UgY2FzZXMgd2hlcmUgdGhlIHBh
Z2UgaXMgbm90IGFjdGl2ZSBhbmQgdGhlIG1vdXNlIGlzIG5vdCBwcmVzc2VkLCB0aGVuIHdlIGNh
biBmaXJlIGEgbW9yZQotICAgICAgICAvLyBlZmZpY2llbnQgc2Nyb2xsYmFycy1vbmx5IHZlcnNp
b24gb2YgdGhlIGV2ZW50LgotICAgICAgICBib29sIG9ubHlVcGRhdGVTY3JvbGxiYXJzID0gISht
X3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5pc0FjdGl2ZSgpIHx8IChtb3VzZUV2ZW50LmJ1dHRv
bigpICE9IFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9uKSk7Ci0gICAgICAgIGhhbmRsZWQgPSBoYW5k
bGVNb3VzZUV2ZW50KG1vdXNlRXZlbnQsIHRoaXMsIG9ubHlVcGRhdGVTY3JvbGxiYXJzKTsKKyAg
ICAgICAgaWYgKCFoYW5kbGVkKSB7CisgICAgICAgICAgICBDdXJyZW50RXZlbnQgY3VycmVudEV2
ZW50KG1vdXNlRXZlbnQpOworCisgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGRvIGEgZnVsbCwg
bm9ybWFsIGhpdCB0ZXN0IGR1cmluZyB0aGlzIG1vdXNlIGV2ZW50IGlmIHRoZSBwYWdlIGlzIGFj
dGl2ZSBvciBpZiBhIG1vdXNlCisgICAgICAgICAgICAvLyBidXR0b24gaXMgY3VycmVudGx5IHBy
ZXNzZWQuIEl0IGlzIHBvc3NpYmxlIHRoYXQgbmVpdGhlciBvZiB0aG9zZSB0aGluZ3Mgd2lsbCBi
ZSB0cnVlIHNpbmNlIG9uCisgICAgICAgICAgICAvLyBMaW9uIHdoZW4gbGVnYWN5IHNjcm9sbGJh
cnMgYXJlIGVuYWJsZWQsIFdlYktpdCByZWNlaXZlcyBtb3VzZSBldmVudHMgYWxsIHRoZSB0aW1l
LiBJZiBpdCBpcyBvbmUKKyAgICAgICAgICAgIC8vIG9mIHRob3NlIGNhc2VzIHdoZXJlIHRoZSBw
YWdlIGlzIG5vdCBhY3RpdmUgYW5kIHRoZSBtb3VzZSBpcyBub3QgcHJlc3NlZCwgdGhlbiB3ZSBj
YW4gZmlyZSBhIG1vcmUKKyAgICAgICAgICAgIC8vIGVmZmljaWVudCBzY3JvbGxiYXJzLW9ubHkg
dmVyc2lvbiBvZiB0aGUgZXZlbnQuCisgICAgICAgICAgICBib29sIG9ubHlVcGRhdGVTY3JvbGxi
YXJzID0gIShtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5pc0FjdGl2ZSgpIHx8IChtb3VzZUV2
ZW50LmJ1dHRvbigpICE9IFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9uKSk7CisgICAgICAgICAgICBo
YW5kbGVkID0gaGFuZGxlTW91c2VFdmVudChtb3VzZUV2ZW50LCB0aGlzLCBvbmx5VXBkYXRlU2Ny
b2xsYmFycyk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkRpZFJlY2VpdmVFdmVudChzdGF0aWNfY2FzdDx1aW50MzJfdD4obW91c2VFdmVudC50
eXBlKCkpLCBoYW5kbGVkKSk7CkBAIC0xNTU4LDkgKzE1NTksMTMgQEAgc3RhdGljIGJvb2wgaGFu
ZGxlV2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBQYWdlKiBwYWdl
KQogCiB2b2lkIFdlYlBhZ2U6OndoZWVsRXZlbnQoY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlZWxF
dmVudCkKIHsKLSAgICBDdXJyZW50RXZlbnQgY3VycmVudEV2ZW50KHdoZWVsRXZlbnQpOworICAg
IGJvb2wgaGFuZGxlZCA9IGZhbHNlOworCisgICAgaWYgKGNhbkhhbmRsZVVzZXJFdmVudHMoKSkg
eworICAgICAgICBDdXJyZW50RXZlbnQgY3VycmVudEV2ZW50KHdoZWVsRXZlbnQpOwogCi0gICAg
Ym9vbCBoYW5kbGVkID0gaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50LCBtX3BhZ2UuZ2V0KCkp
OworICAgICAgICBoYW5kbGVkID0gaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50LCBtX3BhZ2Uu
Z2V0KCkpOworICAgIH0KICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJlY2Vp
dmVFdmVudChzdGF0aWNfY2FzdDx1aW50MzJfdD4od2hlZWxFdmVudC50eXBlKCkpLCBoYW5kbGVk
KSk7CiB9CiAKQEAgLTE1ODMsMTMgKzE1ODgsMTYgQEAgc3RhdGljIGJvb2wgaGFuZGxlS2V5RXZl
bnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYga2V5Ym9hcmRFdmVudCwgUGFnZSogcGFnZSkKIAog
dm9pZCBXZWJQYWdlOjprZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50JiBrZXlib2FyZEV2
ZW50KQogewotICAgIEN1cnJlbnRFdmVudCBjdXJyZW50RXZlbnQoa2V5Ym9hcmRFdmVudCk7Cisg
ICAgYm9vbCBoYW5kbGVkID0gZmFsc2U7CiAKLSAgICBib29sIGhhbmRsZWQgPSBoYW5kbGVLZXlF
dmVudChrZXlib2FyZEV2ZW50LCBtX3BhZ2UuZ2V0KCkpOwotICAgIC8vIEZJWE1FOiBQbGF0Zm9y
bSBkZWZhdWx0IGJlaGF2aW9ycyBzaG91bGQgYmUgcGVyZm9ybWVkIGR1cmluZyBub3JtYWwgRE9N
IGV2ZW50IGRpc3BhdGNoIChpbiBtb3N0IGNhc2VzLCBpbiBkZWZhdWx0IGtleWRvd24gZXZlbnQg
aGFuZGxlcikuCi0gICAgaWYgKCFoYW5kbGVkKQotICAgICAgICBoYW5kbGVkID0gcGVyZm9ybURl
ZmF1bHRCZWhhdmlvckZvcktleUV2ZW50KGtleWJvYXJkRXZlbnQpOworICAgIGlmIChjYW5IYW5k
bGVVc2VyRXZlbnRzKCkpIHsKKyAgICAgICAgQ3VycmVudEV2ZW50IGN1cnJlbnRFdmVudChrZXli
b2FyZEV2ZW50KTsKIAorICAgICAgICBoYW5kbGVkID0gaGFuZGxlS2V5RXZlbnQoa2V5Ym9hcmRF
dmVudCwgbV9wYWdlLmdldCgpKTsKKyAgICAgICAgLy8gRklYTUU6IFBsYXRmb3JtIGRlZmF1bHQg
YmVoYXZpb3JzIHNob3VsZCBiZSBwZXJmb3JtZWQgZHVyaW5nIG5vcm1hbCBET00gZXZlbnQgZGlz
cGF0Y2ggKGluIG1vc3QgY2FzZXMsIGluIGRlZmF1bHQga2V5ZG93biBldmVudCBoYW5kbGVyKS4K
KyAgICAgICAgaWYgKCFoYW5kbGVkKQorICAgICAgICAgICAgaGFuZGxlZCA9IHBlcmZvcm1EZWZh
dWx0QmVoYXZpb3JGb3JLZXlFdmVudChrZXlib2FyZEV2ZW50KTsKKyAgICB9CiAgICAgc2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRSZWNlaXZlRXZlbnQoc3RhdGljX2Nhc3Q8dWludDMy
X3Q+KGtleWJvYXJkRXZlbnQudHlwZSgpKSwgaGFuZGxlZCkpOwogfQogCkBAIC0xNjE1LDkgKzE2
MjMsMTMgQEAgc3RhdGljIGJvb2wgaGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0IFdlYkdlc3R1cmVF
dmVudCYgZ2VzdHVyZUV2ZW50LCBQYWdlKiBwYWdlKQogCiB2b2lkIFdlYlBhZ2U6Omdlc3R1cmVF
dmVudChjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKIHsKLSAgICBDdXJyZW50
RXZlbnQgY3VycmVudEV2ZW50KGdlc3R1cmVFdmVudCk7CisgICAgYm9vbCBoYW5kbGVkID0gZmFs
c2U7CiAKLSAgICBib29sIGhhbmRsZWQgPSBoYW5kbGVHZXN0dXJlRXZlbnQoZ2VzdHVyZUV2ZW50
LCBtX3BhZ2UuZ2V0KCkpOworICAgIGlmIChjYW5IYW5kbGVVc2VyRXZlbnRzKCkpIHsKKyAgICAg
ICAgQ3VycmVudEV2ZW50IGN1cnJlbnRFdmVudChnZXN0dXJlRXZlbnQpOworCisgICAgICAgIGhh
bmRsZWQgPSBoYW5kbGVHZXN0dXJlRXZlbnQoZ2VzdHVyZUV2ZW50LCBtX3BhZ2UuZ2V0KCkpOwor
ICAgIH0KICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJlY2VpdmVFdmVudChz
dGF0aWNfY2FzdDx1aW50MzJfdD4oZ2VzdHVyZUV2ZW50LnR5cGUoKSksIGhhbmRsZWQpKTsKIH0K
ICNlbmRpZgpAQCAtMTczMywxMCArMTc0NSwxMyBAQCBzdGF0aWMgYm9vbCBoYW5kbGVUb3VjaEV2
ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmIHRvdWNoRXZlbnQsIFBhZ2UqIHBhZ2UpCiAKIHZvaWQg
V2ViUGFnZTo6dG91Y2hFdmVudChjb25zdCBXZWJUb3VjaEV2ZW50JiB0b3VjaEV2ZW50KQogewot
ICAgIEN1cnJlbnRFdmVudCBjdXJyZW50RXZlbnQodG91Y2hFdmVudCk7CisgICAgYm9vbCBoYW5k
bGVkID0gZmFsc2U7CiAKLSAgICBib29sIGhhbmRsZWQgPSBoYW5kbGVUb3VjaEV2ZW50KHRvdWNo
RXZlbnQsIG1fcGFnZS5nZXQoKSk7CisgICAgaWYgKGNhbkhhbmRsZVVzZXJFdmVudHMoKSkgewor
ICAgICAgICBDdXJyZW50RXZlbnQgY3VycmVudEV2ZW50KHRvdWNoRXZlbnQpOwogCisgICAgICAg
IGhhbmRsZWQgPSBoYW5kbGVUb3VjaEV2ZW50KHRvdWNoRXZlbnQsIG1fcGFnZS5nZXQoKSk7Cisg
ICAgfQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUmVjZWl2ZUV2ZW50KHN0
YXRpY19jYXN0PHVpbnQzMl90Pih0b3VjaEV2ZW50LnR5cGUoKSksIGhhbmRsZWQpKTsKIH0KIApA
QCAtMTg4Myw2ICsxODk4LDE0IEBAIHZvaWQgV2ViUGFnZTo6c2V0Q2FuU3RhcnRNZWRpYVRpbWVy
RmlyZWQoKQogICAgICAgICBtX3BhZ2UtPnNldENhblN0YXJ0TWVkaWEodHJ1ZSk7CiB9CiAKK2lu
bGluZSBib29sIFdlYlBhZ2U6OmNhbkhhbmRsZVVzZXJFdmVudHMoKSBjb25zdAoreworI2lmIFVT
RShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgIHJldHVybiAhbV9kcmF3aW5nQXJlYS0+bGF5ZXJU
cmVlU3RhdGVJc0Zyb3plbigpOworI2VuZGlmCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQg
V2ViUGFnZTo6c2V0SXNJbldpbmRvdyhib29sIGlzSW5XaW5kb3cpCiB7CiAgICAgaWYgKCFpc0lu
V2luZG93KSB7CkBAIC0xOTE5LDcgKzE5NDIsNyBAQCB2b2lkIFdlYlBhZ2U6OmRpZENvbXBsZXRl
UGFnZVRyYW5zaXRpb24oKQogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlBh
Z2VUcmFuc2l0aW9uVmlld3BvcnRSZWFkeSgpKTsKICAgICBlbHNlCiAjZW5kaWYKLSAgICAgICAg
bV9kcmF3aW5nQXJlYS0+c2V0TGF5ZXJUcmVlU3RhdGVJc0Zyb3plbihmYWxzZSk7CisgICAgbV9k
cmF3aW5nQXJlYS0+c2V0TGF5ZXJUcmVlU3RhdGVJc0Zyb3plbihmYWxzZSk7CiB9CiAKIHZvaWQg
V2ViUGFnZTo6c2hvdygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAppbmRleCAxOWFmMzljLi4wMzg4N2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTc4MCw2ICs3ODAsOCBAQCBwcml2YXRlOgogICAgIHZv
aWQgY2hhbmdlU2VsZWN0ZWRJbmRleChpbnQzMl90IGluZGV4KTsKICAgICB2b2lkIHNldENhblN0
YXJ0TWVkaWFUaW1lckZpcmVkKCk7CiAKKyAgICBib29sIGNhbkhhbmRsZVVzZXJFdmVudHMoKSBj
b25zdDsKKwogICAgIHN0YXRpYyBib29sIHBsYXRmb3JtQ2FuSGFuZGxlUmVxdWVzdChjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIAogICAgIE93blB0cjxXZWJDb3JlOjpQYWdlPiBt
X3BhZ2U7Cg==
</data>
<flag name="commit-queue"
          id="191163"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176724</attachid>
            <date>2012-11-29 07:10:59 -0800</date>
            <delta_ts>2012-11-29 07:49:23 -0800</delta_ts>
            <desc>patch v5</desc>
            <filename>bug101753_v5</filename>
            <type>text/plain</type>
            <size>6476</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDgzNGRmZjFmNDM4ZThhNGI3MDM3MTFhNzg3ZDVlY2IzNDE5MGMyODIKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IE5vdiAyOSAxNjo1NTo0MSAyMDEyICswMjAwCgogICAgYnVnMTAxNzUzCgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDA1NDliMmEuLjgyMTBhNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMi0x
MS0yMSAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbV0syXSBUaWxlZEJhY2tpbmdTdG9yZTogVXNlciBldmVudHMgYXJlIHNlbnQg
dG8gd2ViIHBhZ2UgYmVmb3JlIGl0IGlzIHNob3duCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3NTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVc2VyIGV2ZW50cyBhcmUgc3VwcHJlc3NlZCBvbiBXRUIg
cHJvY2VzcyBzaWRlIHdoaWxlIGRyYXdpbmcgYXJlYSBpcyBmcm96ZW4uCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
Om1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp3aGVlbEV2ZW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6a2V5RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpnZXN0dXJlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp0b3VjaEV2ZW50
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2VuZElmRXZlbnRDYW5ub3RCZUhhbmRsZWQp
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkQ29tcGxl
dGVQYWdlVHJhbnNpdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKyAgICAgICAgKFdlYlBhZ2UpOgorCiAyMDEyLTExLTI5ICBNaWNoYWVsIEJyw7xuaW5nICA8
bWljaGFlbC5icnVuaW5nQGRpZ2lhLmNvbT4KIAogICAgICAgICBbUXRdW1dLMl0gQ29tbWl0IHRo
ZSBwcmVlZGl0IHN0cmluZyBpbiB0aGUgaW5wdXQgbWV0aG9kIHdoZW4gZm9jdXMgaXMgYWJvdXQg
dG8gYmUgbW92ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKaW5kZXggODNjMGFlNy4uNDM1ZTI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTUwNiwyMCArMTUwNiwxOCBAQCB2b2lkIFdl
YlBhZ2U6Om1vdXNlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYgbW91c2VFdmVudCkKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgotICAgIAogICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNl
OwotICAgIAogICAgIGlmIChtX3BhZ2VPdmVybGF5KSB7CiAgICAgICAgIC8vIExldCB0aGUgcGFn
ZSBvdmVybGF5IGhhbmRsZSB0aGUgZXZlbnQuCiAgICAgICAgIGhhbmRsZWQgPSBtX3BhZ2VPdmVy
bGF5LT5tb3VzZUV2ZW50KG1vdXNlRXZlbnQpOwogICAgIH0KIAotICAgIGlmICghaGFuZGxlZCkg
eworICAgIGlmICghaGFuZGxlZCAmJiBjYW5IYW5kbGVVc2VyRXZlbnRzKCkpIHsKICAgICAgICAg
Q3VycmVudEV2ZW50IGN1cnJlbnRFdmVudChtb3VzZUV2ZW50KTsKIAogICAgICAgICAvLyBXZSBu
ZWVkIHRvIGRvIGEgZnVsbCwgbm9ybWFsIGhpdCB0ZXN0IGR1cmluZyB0aGlzIG1vdXNlIGV2ZW50
IGlmIHRoZSBwYWdlIGlzIGFjdGl2ZSBvciBpZiBhIG1vdXNlCi0gICAgICAgIC8vIGJ1dHRvbiBp
cyBjdXJyZW50bHkgcHJlc3NlZC4gSXQgaXMgcG9zc2libGUgdGhhdCBuZWl0aGVyIG9mIHRob3Nl
IHRoaW5ncyB3aWxsIGJlIHRydWUgc2luY2Ugb24gCi0gICAgICAgIC8vIExpb24gd2hlbiBsZWdh
Y3kgc2Nyb2xsYmFycyBhcmUgZW5hYmxlZCwgV2ViS2l0IHJlY2VpdmVzIG1vdXNlIGV2ZW50cyBh
bGwgdGhlIHRpbWUuIElmIGl0IGlzIG9uZSAKKyAgICAgICAgLy8gYnV0dG9uIGlzIGN1cnJlbnRs
eSBwcmVzc2VkLiBJdCBpcyBwb3NzaWJsZSB0aGF0IG5laXRoZXIgb2YgdGhvc2UgdGhpbmdzIHdp
bGwgYmUgdHJ1ZSBzaW5jZSBvbgorICAgICAgICAvLyBMaW9uIHdoZW4gbGVnYWN5IHNjcm9sbGJh
cnMgYXJlIGVuYWJsZWQsIFdlYktpdCByZWNlaXZlcyBtb3VzZSBldmVudHMgYWxsIHRoZSB0aW1l
LiBJZiBpdCBpcyBvbmUKICAgICAgICAgLy8gb2YgdGhvc2UgY2FzZXMgd2hlcmUgdGhlIHBhZ2Ug
aXMgbm90IGFjdGl2ZSBhbmQgdGhlIG1vdXNlIGlzIG5vdCBwcmVzc2VkLCB0aGVuIHdlIGNhbiBm
aXJlIGEgbW9yZQogICAgICAgICAvLyBlZmZpY2llbnQgc2Nyb2xsYmFycy1vbmx5IHZlcnNpb24g
b2YgdGhlIGV2ZW50LgogICAgICAgICBib29sIG9ubHlVcGRhdGVTY3JvbGxiYXJzID0gIShtX3Bh
Z2UtPmZvY3VzQ29udHJvbGxlcigpLT5pc0FjdGl2ZSgpIHx8IChtb3VzZUV2ZW50LmJ1dHRvbigp
ICE9IFdlYk1vdXNlRXZlbnQ6Ok5vQnV0dG9uKSk7CkBAIC0xNTU4LDkgKzE1NTYsMTMgQEAgc3Rh
dGljIGJvb2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiB3aGVlbEV2ZW50
LCBQYWdlKiBwYWdlKQogCiB2b2lkIFdlYlBhZ2U6OndoZWVsRXZlbnQoY29uc3QgV2ViV2hlZWxF
dmVudCYgd2hlZWxFdmVudCkKIHsKLSAgICBDdXJyZW50RXZlbnQgY3VycmVudEV2ZW50KHdoZWVs
RXZlbnQpOworICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOwogCi0gICAgYm9vbCBoYW5kbGVkID0g
aGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50LCBtX3BhZ2UuZ2V0KCkpOworICAgIGlmIChjYW5I
YW5kbGVVc2VyRXZlbnRzKCkpIHsKKyAgICAgICAgQ3VycmVudEV2ZW50IGN1cnJlbnRFdmVudCh3
aGVlbEV2ZW50KTsKKworICAgICAgICBoYW5kbGVkID0gaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2
ZW50LCBtX3BhZ2UuZ2V0KCkpOworICAgIH0KICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkRpZFJlY2VpdmVFdmVudChzdGF0aWNfY2FzdDx1aW50MzJfdD4od2hlZWxFdmVudC50eXBl
KCkpLCBoYW5kbGVkKSk7CiB9CiAKQEAgLTE1ODMsMTMgKzE1ODUsMTYgQEAgc3RhdGljIGJvb2wg
aGFuZGxlS2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYga2V5Ym9hcmRFdmVudCwgUGFn
ZSogcGFnZSkKIAogdm9pZCBXZWJQYWdlOjprZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50
JiBrZXlib2FyZEV2ZW50KQogewotICAgIEN1cnJlbnRFdmVudCBjdXJyZW50RXZlbnQoa2V5Ym9h
cmRFdmVudCk7CisgICAgYm9vbCBoYW5kbGVkID0gZmFsc2U7CiAKLSAgICBib29sIGhhbmRsZWQg
PSBoYW5kbGVLZXlFdmVudChrZXlib2FyZEV2ZW50LCBtX3BhZ2UuZ2V0KCkpOwotICAgIC8vIEZJ
WE1FOiBQbGF0Zm9ybSBkZWZhdWx0IGJlaGF2aW9ycyBzaG91bGQgYmUgcGVyZm9ybWVkIGR1cmlu
ZyBub3JtYWwgRE9NIGV2ZW50IGRpc3BhdGNoIChpbiBtb3N0IGNhc2VzLCBpbiBkZWZhdWx0IGtl
eWRvd24gZXZlbnQgaGFuZGxlcikuCi0gICAgaWYgKCFoYW5kbGVkKQotICAgICAgICBoYW5kbGVk
ID0gcGVyZm9ybURlZmF1bHRCZWhhdmlvckZvcktleUV2ZW50KGtleWJvYXJkRXZlbnQpOworICAg
IGlmIChjYW5IYW5kbGVVc2VyRXZlbnRzKCkpIHsKKyAgICAgICAgQ3VycmVudEV2ZW50IGN1cnJl
bnRFdmVudChrZXlib2FyZEV2ZW50KTsKIAorICAgICAgICBoYW5kbGVkID0gaGFuZGxlS2V5RXZl
bnQoa2V5Ym9hcmRFdmVudCwgbV9wYWdlLmdldCgpKTsKKyAgICAgICAgLy8gRklYTUU6IFBsYXRm
b3JtIGRlZmF1bHQgYmVoYXZpb3JzIHNob3VsZCBiZSBwZXJmb3JtZWQgZHVyaW5nIG5vcm1hbCBE
T00gZXZlbnQgZGlzcGF0Y2ggKGluIG1vc3QgY2FzZXMsIGluIGRlZmF1bHQga2V5ZG93biBldmVu
dCBoYW5kbGVyKS4KKyAgICAgICAgaWYgKCFoYW5kbGVkKQorICAgICAgICAgICAgaGFuZGxlZCA9
IHBlcmZvcm1EZWZhdWx0QmVoYXZpb3JGb3JLZXlFdmVudChrZXlib2FyZEV2ZW50KTsKKyAgICB9
CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRSZWNlaXZlRXZlbnQoc3RhdGlj
X2Nhc3Q8dWludDMyX3Q+KGtleWJvYXJkRXZlbnQudHlwZSgpKSwgaGFuZGxlZCkpOwogfQogCkBA
IC0xNjE1LDkgKzE2MjAsMTMgQEAgc3RhdGljIGJvb2wgaGFuZGxlR2VzdHVyZUV2ZW50KGNvbnN0
IFdlYkdlc3R1cmVFdmVudCYgZ2VzdHVyZUV2ZW50LCBQYWdlKiBwYWdlKQogCiB2b2lkIFdlYlBh
Z2U6Omdlc3R1cmVFdmVudChjb25zdCBXZWJHZXN0dXJlRXZlbnQmIGdlc3R1cmVFdmVudCkKIHsK
LSAgICBDdXJyZW50RXZlbnQgY3VycmVudEV2ZW50KGdlc3R1cmVFdmVudCk7CisgICAgYm9vbCBo
YW5kbGVkID0gZmFsc2U7CisKKyAgICBpZiAoY2FuSGFuZGxlVXNlckV2ZW50cygpKSB7CisgICAg
ICAgIEN1cnJlbnRFdmVudCBjdXJyZW50RXZlbnQoZ2VzdHVyZUV2ZW50KTsKIAotICAgIGJvb2wg
aGFuZGxlZCA9IGhhbmRsZUdlc3R1cmVFdmVudChnZXN0dXJlRXZlbnQsIG1fcGFnZS5nZXQoKSk7
CisgICAgICAgIGhhbmRsZWQgPSBoYW5kbGVHZXN0dXJlRXZlbnQoZ2VzdHVyZUV2ZW50LCBtX3Bh
Z2UuZ2V0KCkpOworICAgIH0KICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJl
Y2VpdmVFdmVudChzdGF0aWNfY2FzdDx1aW50MzJfdD4oZ2VzdHVyZUV2ZW50LnR5cGUoKSksIGhh
bmRsZWQpKTsKIH0KICNlbmRpZgpAQCAtMTczMywxMCArMTc0MiwxMyBAQCBzdGF0aWMgYm9vbCBo
YW5kbGVUb3VjaEV2ZW50KGNvbnN0IFdlYlRvdWNoRXZlbnQmIHRvdWNoRXZlbnQsIFBhZ2UqIHBh
Z2UpCiAKIHZvaWQgV2ViUGFnZTo6dG91Y2hFdmVudChjb25zdCBXZWJUb3VjaEV2ZW50JiB0b3Vj
aEV2ZW50KQogewotICAgIEN1cnJlbnRFdmVudCBjdXJyZW50RXZlbnQodG91Y2hFdmVudCk7Cisg
ICAgYm9vbCBoYW5kbGVkID0gZmFsc2U7CiAKLSAgICBib29sIGhhbmRsZWQgPSBoYW5kbGVUb3Vj
aEV2ZW50KHRvdWNoRXZlbnQsIG1fcGFnZS5nZXQoKSk7CisgICAgaWYgKGNhbkhhbmRsZVVzZXJF
dmVudHMoKSkgeworICAgICAgICBDdXJyZW50RXZlbnQgY3VycmVudEV2ZW50KHRvdWNoRXZlbnQp
OwogCisgICAgICAgIGhhbmRsZWQgPSBoYW5kbGVUb3VjaEV2ZW50KHRvdWNoRXZlbnQsIG1fcGFn
ZS5nZXQoKSk7CisgICAgfQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUmVj
ZWl2ZUV2ZW50KHN0YXRpY19jYXN0PHVpbnQzMl90Pih0b3VjaEV2ZW50LnR5cGUoKSksIGhhbmRs
ZWQpKTsKIH0KIApAQCAtMTg4Myw2ICsxODk1LDE1IEBAIHZvaWQgV2ViUGFnZTo6c2V0Q2FuU3Rh
cnRNZWRpYVRpbWVyRmlyZWQoKQogICAgICAgICBtX3BhZ2UtPnNldENhblN0YXJ0TWVkaWEodHJ1
ZSk7CiB9CiAKK2lubGluZSBib29sIFdlYlBhZ2U6OmNhbkhhbmRsZVVzZXJFdmVudHMoKSBjb25z
dAoreworI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgIC8vIFNob3VsZCBhcHBseSBv
bmx5IGlmIHRoZSBhcmVhIHdhcyBmcm96ZW4gYnkgZGlkU3RhcnRQYWdlVHJhbnNpdGlvbigpLgor
ICAgIHJldHVybiAhbV9kcmF3aW5nQXJlYS0+bGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpOworI2Vu
ZGlmCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgV2ViUGFnZTo6c2V0SXNJbldpbmRvdyhi
b29sIGlzSW5XaW5kb3cpCiB7CiAgICAgaWYgKCFpc0luV2luZG93KSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAwMGVhODFjOC4uZDQ4MTdjMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC03ODEs
NiArNzgxLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGNoYW5nZVNlbGVjdGVkSW5kZXgoaW50MzJf
dCBpbmRleCk7CiAgICAgdm9pZCBzZXRDYW5TdGFydE1lZGlhVGltZXJGaXJlZCgpOwogCisgICAg
Ym9vbCBjYW5IYW5kbGVVc2VyRXZlbnRzKCkgY29uc3Q7CisKICAgICBzdGF0aWMgYm9vbCBwbGF0
Zm9ybUNhbkhhbmRsZVJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAK
ICAgICBPd25QdHI8V2ViQ29yZTo6UGFnZT4gbV9wYWdlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>