<?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>90662</bug_id>
          
          <creation_ts>2012-07-06 00:29:20 -0700</creation_ts>
          <short_desc>[EFL][WK2] Add NativeWebTouchEvent and handle the Touch event.</short_desc>
          <delta_ts>2012-09-17 23:44:51 -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>88631</dependson>
          <blocked>61838</blocked>
    
    <blocked>96465</blocked>
    
    <blocked>96903</blocked>
    
    <blocked>96906</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Eunmi Lee">enmi.lee</reporter>
          <assigned_to name="Eunmi Lee">enmi.lee</assigned_to>
          <cc>cdumez</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>sw0524.lee</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>663922</commentid>
    <comment_count>0</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-06 00:29:20 -0700</bug_when>
    <thetext>I will make Touch event patch for WK2 EFL port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663931</commentid>
    <comment_count>1</comment_count>
      <attachid>151031</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-07-06 01:13:45 -0700</bug_when>
    <thetext>Created attachment 151031
[WIP] Patch for the Touch event.

This patch is work in progress. I will update patch when Bug 88631 is finished.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721780</commentid>
    <comment_count>2</comment_count>
      <attachid>164362</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-09-17 03:05:55 -0700</bug_when>
    <thetext>Created attachment 164362
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721787</commentid>
    <comment_count>3</comment_count>
      <attachid>164362</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-17 03:27:31 -0700</bug_when>
    <thetext>Comment on attachment 164362
Patch

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

Don&apos;t you need to add ewk_touch.h file to installation file list ?

&gt; Source/WebKit2/PlatformEfl.cmake:113
&gt; +IF (ENABLE_TOUCH_EVENTS)

Why don&apos;t you move this macro to file side? Then, move this file to existing file list.

&gt; Source/WebKit2/Shared/efl/WebEventFactory.cpp:245
&gt; +        touchPoints.append(WebPlatformTouchPoint(point-&gt;id, state, IntPoint(point-&gt;x, point-&gt;y), IntPoint(point-&gt;x - position-&gt;x, point-&gt;y - position-&gt;y)));

Could you explain how to make touch point item ? I mean what is point, what is position.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721791</commentid>
    <comment_count>4</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-09-17 03:41:15 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 164362 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164362&amp;action=review
&gt; 
&gt; Don&apos;t you need to add ewk_touch.h file to installation file list ?
&gt; 

I don&apos;t need to do that here because it is not used in the outside yet :)

&gt; &gt; Source/WebKit2/PlatformEfl.cmake:113
&gt; &gt; +IF (ENABLE_TOUCH_EVENTS)
&gt; 
&gt; Why don&apos;t you move this macro to file side? Then, move this file to existing file list.
&gt; 

OK, I will move that.

&gt; &gt; Source/WebKit2/Shared/efl/WebEventFactory.cpp:245
&gt; &gt; +        touchPoints.append(WebPlatformTouchPoint(point-&gt;id, state, IntPoint(point-&gt;x, point-&gt;y), IntPoint(point-&gt;x - position-&gt;x, point-&gt;y - position-&gt;y)));
&gt; 
&gt; Could you explain how to make touch point item ? I mean what is point, what is position.

We can make touch point item by creating new Ewk_Touch_Point and make list of touch points by adding pointer of Ewk_Touch_Point to the Eina_List. The point is Ewk_Touch_Point and the position is ewk_view&apos;s position in the screen.

I will add API to feed touch event in the Bug 96903 and codes in this patch will be used there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721794</commentid>
    <comment_count>5</comment_count>
      <attachid>164365</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-09-17 04:13:39 -0700</bug_when>
    <thetext>Created attachment 164365
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721824</commentid>
    <comment_count>6</comment_count>
      <attachid>164365</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-09-17 05:43:22 -0700</bug_when>
    <thetext>Comment on attachment 164365
Patch

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

&gt; Source/WebKit2/Shared/efl/WebEventFactory.cpp:218
&gt; +    WebPlatformTouchPoint::TouchPointState state = static_cast&lt;WebPlatformTouchPoint::TouchPointState&gt;(0);

I think that 0 may be TouchReleased.
If you want to set default value for error case(default), I think that TouchCancelled looks better.

And I think that it should be moved into EINA_LIST_FOREACH.
Now this is only for first item.
The state of second item will be the state of previous item when point-&gt;state is error case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721850</commentid>
    <comment_count>7</comment_count>
      <attachid>164365</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-09-17 06:21:24 -0700</bug_when>
    <thetext>Comment on attachment 164365
Patch

Unit tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721851</commentid>
    <comment_count>8</comment_count>
      <attachid>164365</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-17 06:22:00 -0700</bug_when>
    <thetext>Comment on attachment 164365
Patch

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

Set r? again. It looks take a look further a little bit.

&gt; Source/WebKit2/Shared/efl/WebEventFactory.cpp:199
&gt; +    switch (type) {

It looks it is better to add new function to convert from EFL event type to WebKit event type as QT port. I think this function can be used by other functions.

http://trac.webkit.org/browser/trunk/Source/WebKit2/Shared/qt/WebEventFactoryQt.cpp#L66

&gt;&gt; Source/WebKit2/Shared/efl/WebEventFactory.cpp:218
&gt;&gt; +    WebPlatformTouchPoint::TouchPointState state = static_cast&lt;WebPlatformTouchPoint::TouchPointState&gt;(0);
&gt; 
&gt; I think that 0 may be TouchReleased.
&gt; If you want to set default value for error case(default), I think that TouchCancelled looks better.
&gt; 
&gt; And I think that it should be moved into EINA_LIST_FOREACH.
&gt; Now this is only for first item.
&gt; The state of second item will be the state of previous item when point-&gt;state is error case.

Should we move *state* initialization into EINA_LIST_FOREACH loop? Evas only supports 5 states as below,

  504 /**
  505  * State of Evas_Coord_Touch_Point
  506  */
  507 typedef enum _Evas_Touch_Point_State
  508 {
  509    EVAS_TOUCH_POINT_DOWN, /**&lt; Touch point is pressed down */
  510    EVAS_TOUCH_POINT_UP, /**&lt; Touch point is released */
  511    EVAS_TOUCH_POINT_MOVE, /**&lt; Touch point is moved */
  512    EVAS_TOUCH_POINT_STILL, /**&lt; Touch point is not moved after pressed */
  513    EVAS_TOUCH_POINT_CANCEL /**&lt; Touch point is cancelled */
  514 } Evas_Touch_Point_State;

It looks QT port just sets this out of loop. But, I don&apos;t mind to move it into loop inside.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721884</commentid>
    <comment_count>9</comment_count>
      <attachid>164365</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-09-17 06:57:25 -0700</bug_when>
    <thetext>Comment on attachment 164365
Patch

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

&gt;&gt;&gt; Source/WebKit2/Shared/efl/WebEventFactory.cpp:218
&gt;&gt;&gt; +    WebPlatformTouchPoint::TouchPointState state = static_cast&lt;WebPlatformTouchPoint::TouchPointState&gt;(0);
&gt;&gt; 
&gt;&gt; I think that 0 may be TouchReleased.
&gt;&gt; If you want to set default value for error case(default), I think that TouchCancelled looks better.
&gt;&gt; 
&gt;&gt; And I think that it should be moved into EINA_LIST_FOREACH.
&gt;&gt; Now this is only for first item.
&gt;&gt; The state of second item will be the state of previous item when point-&gt;state is error case.
&gt; 
&gt; Should we move *state* initialization into EINA_LIST_FOREACH loop? Evas only supports 5 states as below,
&gt; 
&gt;   504 /**
&gt;   505  * State of Evas_Coord_Touch_Point
&gt;   506  */
&gt;   507 typedef enum _Evas_Touch_Point_State
&gt;   508 {
&gt;   509    EVAS_TOUCH_POINT_DOWN, /**&lt; Touch point is pressed down */
&gt;   510    EVAS_TOUCH_POINT_UP, /**&lt; Touch point is released */
&gt;   511    EVAS_TOUCH_POINT_MOVE, /**&lt; Touch point is moved */
&gt;   512    EVAS_TOUCH_POINT_STILL, /**&lt; Touch point is not moved after pressed */
&gt;   513    EVAS_TOUCH_POINT_CANCEL /**&lt; Touch point is cancelled */
&gt;   514 } Evas_Touch_Point_State;
&gt; 
&gt; It looks QT port just sets this out of loop. But, I don&apos;t mind to move it into loop inside.

If we consider error case (case default:), yes it should be moved because the state of previous item will be remained and used.

Anyway, this is not pretty common case.
So, I think that it looks better to declare state simply and assign it to reasonable error value in case of `default:`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722417</commentid>
    <comment_count>10</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-09-17 18:59:59 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 164365 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164365&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Shared/efl/WebEventFactory.cpp:218
&gt; &gt; +    WebPlatformTouchPoint::TouchPointState state = static_cast&lt;WebPlatformTouchPoint::TouchPointState&gt;(0);
&gt; 
&gt; I think that 0 may be TouchReleased.
&gt; If you want to set default value for error case(default), I think that TouchCancelled looks better.
&gt; 
&gt; And I think that it should be moved into EINA_LIST_FOREACH.
&gt; Now this is only for first item.
&gt; The state of second item will be the state of previous item when point-&gt;state is error case.

OK, it looks better to use TouchCancelled.
and,
we don&apos;t have to move that into the EINA_LIST_FOREACH because we don&apos;t add point to the points list in error case. (214 line)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722418</commentid>
    <comment_count>11</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-09-17 19:01:55 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 164365 [details])
&gt; Unit tests?

I didn&apos;t add new API, so I don&apos;t have to make EFL API unit tests.
Do you mean different unit tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722420</commentid>
    <comment_count>12</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-09-17 19:10:50 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 164365 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164365&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/Shared/efl/WebEventFactory.cpp:218
&gt; &gt; &gt; +    WebPlatformTouchPoint::TouchPointState state = static_cast&lt;WebPlatformTouchPoint::TouchPointState&gt;(0);
&gt; &gt; 
&gt; &gt; I think that 0 may be TouchReleased.
&gt; &gt; If you want to set default value for error case(default), I think that TouchCancelled looks better.
&gt; &gt; 
&gt; &gt; And I think that it should be moved into EINA_LIST_FOREACH.
&gt; &gt; Now this is only for first item.
&gt; &gt; The state of second item will be the state of previous item when point-&gt;state is error case.
&gt; 
&gt; OK, it looks better to use TouchCancelled.
&gt; and,
&gt; we don&apos;t have to move that into the EINA_LIST_FOREACH because we don&apos;t add point to the points list in error case. (214 line)

ah, I&apos;ve understand what you mean.
Yes, we need to set state for error case. I will modify the codes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722421</commentid>
    <comment_count>13</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-09-17 19:19:40 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 164365 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164365&amp;action=review
&gt; 
&gt; Set r? again. It looks take a look further a little bit.
&gt; 
&gt; &gt; Source/WebKit2/Shared/efl/WebEventFactory.cpp:199
&gt; &gt; +    switch (type) {
&gt; 
&gt; It looks it is better to add new function to convert from EFL event type to WebKit event type as QT port. I think this function can be used by other functions.
&gt; 
&gt; http://trac.webkit.org/browser/trunk/Source/WebKit2/Shared/qt/WebEventFactoryQt.cpp#L66
&gt; 

I can make type converting function but I don&apos;t think it will be used by other functions.

In the Qt port, they have common type of events (QEvent), so it is useful to make type converting function.
but in the EFL port, we don&apos;t have common type of events and we have types for each event. (Evas_Event_Mouse_Move, Evas_Event_Mouse_Wheel and so on)
So, we need type converting function only for Touch event types which is defined for WebKit2 EFL port and it will be used only in the createWebTouchEvent().
Do I have to make converting function in this case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722425</commentid>
    <comment_count>14</comment_count>
      <attachid>164365</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-17 19:30:26 -0700</bug_when>
    <thetext>Comment on attachment 164365
Patch

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

&gt;&gt;&gt; Source/WebKit2/Shared/efl/WebEventFactory.cpp:199
&gt;&gt;&gt; +    switch (type) {
&gt;&gt; 
&gt;&gt; It looks it is better to add new function to convert from EFL event type to WebKit event type as QT port. I think this function can be used by other functions.
&gt;&gt; 
&gt;&gt; http://trac.webkit.org/browser/trunk/Source/WebKit2/Shared/qt/WebEventFactoryQt.cpp#L66
&gt; 
&gt; I can make type converting function but I don&apos;t think it will be used by other functions.
&gt; 
&gt; In the Qt port, they have common type of events (QEvent), so it is useful to make type converting function.
&gt; but in the EFL port, we don&apos;t have common type of events and we have types for each event. (Evas_Event_Mouse_Move, Evas_Event_Mouse_Wheel and so on)
&gt; So, we need type converting function only for Touch event types which is defined for WebKit2 EFL port and it will be used only in the createWebTouchEvent().
&gt; Do I have to make converting function in this case?

If so, I don&apos;t mind to keep this here. Nevertheless, I prefer to move this to new function for code readability as below,


static inline WebMouseEvent::Button buttonForEvent(int button)
{
    if (button == LeftButton)
        return WebMouseEvent::LeftButton;
    if (button == MiddleButton)
        return WebMouseEvent::MiddleButton;
    if (button == RightButton)
        return WebMouseEvent::RightButton;

    return WebMouseEvent::NoButton;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722443</commentid>
    <comment_count>15</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-09-17 20:11:59 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; (From update of attachment 164365 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164365&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit2/Shared/efl/WebEventFactory.cpp:218
&gt; &gt; &gt; &gt; +    WebPlatformTouchPoint::TouchPointState state = static_cast&lt;WebPlatformTouchPoint::TouchPointState&gt;(0);
&gt; &gt; &gt; 
&gt; &gt; &gt; I think that 0 may be TouchReleased.
&gt; &gt; &gt; If you want to set default value for error case(default), I think that TouchCancelled looks better.
&gt; &gt; &gt; 
&gt; &gt; &gt; And I think that it should be moved into EINA_LIST_FOREACH.
&gt; &gt; &gt; Now this is only for first item.
&gt; &gt; &gt; The state of second item will be the state of previous item when point-&gt;state is error case.
&gt; &gt; 
&gt; &gt; OK, it looks better to use TouchCancelled.
&gt; &gt; and,
&gt; &gt; we don&apos;t have to move that into the EINA_LIST_FOREACH because we don&apos;t add point to the points list in error case. (214 line)
&gt; 
&gt; ah, I&apos;ve understand what you mean.
&gt; Yes, we need to set state for error case. I will modify the codes.

As we talked about this in the IRC,
the default case should not be reached and I&apos;ve added ASSERT_NOT_REACHED.
So, I think we don&apos;t have to add defense code for that again.
That means, we also don&apos;t have to initialize state variable because it will be always set (except ASSERT_NOT_REACHED case).
So, I will modify codes to remove initializing code simply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722444</commentid>
    <comment_count>16</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-09-17 20:17:40 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 164365 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164365&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit2/Shared/efl/WebEventFactory.cpp:199
&gt; &gt;&gt;&gt; +    switch (type) {
&gt; &gt;&gt; 
&gt; &gt;&gt; It looks it is better to add new function to convert from EFL event type to WebKit event type as QT port. I think this function can be used by other functions.
&gt; &gt;&gt; 
&gt; &gt;&gt; http://trac.webkit.org/browser/trunk/Source/WebKit2/Shared/qt/WebEventFactoryQt.cpp#L66
&gt; &gt; 
&gt; &gt; I can make type converting function but I don&apos;t think it will be used by other functions.
&gt; &gt; 
&gt; &gt; In the Qt port, they have common type of events (QEvent), so it is useful to make type converting function.
&gt; &gt; but in the EFL port, we don&apos;t have common type of events and we have types for each event. (Evas_Event_Mouse_Move, Evas_Event_Mouse_Wheel and so on)
&gt; &gt; So, we need type converting function only for Touch event types which is defined for WebKit2 EFL port and it will be used only in the createWebTouchEvent().
&gt; &gt; Do I have to make converting function in this case?
&gt; 
&gt; If so, I don&apos;t mind to keep this here. Nevertheless, I prefer to move this to new function for code readability as below,
&gt; 
&gt; 
&gt; static inline WebMouseEvent::Button buttonForEvent(int button)
&gt; {
&gt;     if (button == LeftButton)
&gt;         return WebMouseEvent::LeftButton;
&gt;     if (button == MiddleButton)
&gt;         return WebMouseEvent::MiddleButton;
&gt;     if (button == RightButton)
&gt;         return WebMouseEvent::RightButton;
&gt; 
&gt;     return WebMouseEvent::NoButton;
&gt; }

The buttonForEvent() function is used 3 times in the WebEventFactory.cpp file.
It seems that you like to make new function for touch type converting, so I will make function for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722474</commentid>
    <comment_count>17</comment_count>
      <attachid>164491</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2012-09-17 21:49:39 -0700</bug_when>
    <thetext>Created attachment 164491
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722491</commentid>
    <comment_count>18</comment_count>
      <attachid>164491</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-17 22:21:42 -0700</bug_when>
    <thetext>Comment on attachment 164491
Patch

LGTM now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722498</commentid>
    <comment_count>19</comment_count>
      <attachid>164491</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-17 22:55:35 -0700</bug_when>
    <thetext>Comment on attachment 164491
Patch

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

&gt; Source/WebKit2/Shared/efl/WebEventFactory.cpp:243
&gt; +    return WebTouchEvent(typeForTouchEvent(type), touchPoints, modifiersForEvent(modifiers), timestamp);

Why can&apos;t we simply cast type here? We already have COMPILE_ASSERT_MATCHING_ENUM() to make sure the enums match at compile time. This would be more efficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722499</commentid>
    <comment_count>20</comment_count>
      <attachid>164491</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-17 22:58:54 -0700</bug_when>
    <thetext>Comment on attachment 164491
Patch

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

&gt; Source/WebKit2/UIProcess/API/efl/ewk_touch.h:26
&gt; +#ifndef ewk_touch_h

Is this supposed to be a public header? If not, then the naming is not correct (ewk_touch_private.h) ?
If it is supposed to be public, then it should be added to EWebKit2.h and Cmake Headers install.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722503</commentid>
    <comment_count>21</comment_count>
      <attachid>164491</attachid>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-09-17 23:03:34 -0700</bug_when>
    <thetext>Comment on attachment 164491
Patch

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

&gt;&gt; Source/WebKit2/Shared/efl/WebEventFactory.cpp:243
&gt;&gt; +    return WebTouchEvent(typeForTouchEvent(type), touchPoints, modifiersForEvent(modifiers), timestamp);
&gt; 
&gt; Why can&apos;t we simply cast type here? We already have COMPILE_ASSERT_MATCHING_ENUM() to make sure the enums match at compile time. This would be more efficient.

I am pan of COMPILE_ASSERT_MATCHING_ENUM.
but WebEvent::Type contains all event types including TouchXXX.

Unfortunately, we can not cast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722513</commentid>
    <comment_count>22</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-17 23:36:29 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 164491 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164491&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit2/Shared/efl/WebEventFactory.cpp:243
&gt; &gt;&gt; +    return WebTouchEvent(typeForTouchEvent(type), touchPoints, modifiersForEvent(modifiers), timestamp);
&gt; &gt; 
&gt; &gt; Why can&apos;t we simply cast type here? We already have COMPILE_ASSERT_MATCHING_ENUM() to make sure the enums match at compile time. This would be more efficient.
&gt; 
&gt; I am pan of COMPILE_ASSERT_MATCHING_ENUM.
&gt; but WebEvent::Type contains all event types including TouchXXX.
&gt; 
&gt; Unfortunately, we can not cast.

After discussing this on IRC, I no longer have any objection to this landing. Please go ahead and sorry I joined the discussion a bit late (many meetings...).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722516</commentid>
    <comment_count>23</comment_count>
      <attachid>164491</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-17 23:44:46 -0700</bug_when>
    <thetext>Comment on attachment 164491
Patch

Clearing flags on attachment: 164491

Committed r128853: &lt;http://trac.webkit.org/changeset/128853&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722517</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-17 23:44:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151031</attachid>
            <date>2012-07-06 01:13:45 -0700</date>
            <delta_ts>2012-09-17 03:05:47 -0700</delta_ts>
            <desc>[WIP] Patch for the Touch event.</desc>
            <filename>touch_event.patch</filename>
            <type>text/plain</type>
            <size>10008</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkZTQ1YzQ2Li42NGU4NjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTItMDctMDYgIEV1bm1pIExlZSAgPGV1bm1pMTUubGVlQHNhbXN1bmcuY29tPgorCisg
ICAgICAgIFtFRkxdW1dLMl0gQWRkIE5hdGl2ZVdlYlRvdWNoRXZlbnQgYW5kIGhhbmRsZSB0aGUg
VG91Y2ggZXZlbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MDY2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIENvbnZlcnQgdGhlIFRvdWNoIGV2ZW50IG9mIEV2YXMgdG8gdGhlIE5hdGl2ZVdlYlRvdWNo
RXZlbnQuIEl0IHdpbGwgYmUKKyAgICAgICAgdXNlZCBpbiB0aGUgV2ViIHBhZ2VzIGFuZCBXZWIg
YXBwbGljYXRpb25zIHdoaWNoIHVzZSB0aGUgVG91Y2ggZXZlbnQuCisKKyAgICAgICAgKiBQbGF0
Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oOgor
ICAgICAgICAoTmF0aXZlV2ViVG91Y2hFdmVudCk6CisgICAgICAgICogU2hhcmVkL2VmbC9OYXRp
dmVXZWJUb3VjaEV2ZW50RWZsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoV2ViS2l0OjpOYXRpdmVXZWJUb3VjaEV2ZW50OjpOYXRpdmVXZWJUb3VjaEV2ZW50KToKKyAg
ICAgICAgKiBTaGFyZWQvZWZsL1dlYkV2ZW50RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQp
OgorICAgICAgICAqIFNoYXJlZC9lZmwvV2ViRXZlbnRGYWN0b3J5Lmg6CisgICAgICAgIChXZWJF
dmVudEZhY3RvcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcDoK
KyAgICAgICAgKF9ld2tfdmlld19vbl90b3VjaF9kb3duKToKKyAgICAgICAgKF9ld2tfdmlld19v
bl90b3VjaF91cCk6CisgICAgICAgIChfZXdrX3ZpZXdfb25fdG91Y2hfbW92ZSk6CisgICAgICAg
IChfZXdrX3ZpZXdfc21hcnRfYWRkKToKKwogMjAxMi0wNy0wNSAgQ2hyaXN0b3BoZSBEdW1leiAg
PGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAgIFtXSzJdW0VGTF0gRXdrX1Zp
ZXcgc2hvdWxkIHByb3ZpZGUgQVBJIHRvIHNldC9nZXQgZGV2aWNlIHBpeGVsIHJhdGlvCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDdkMDYxODQuLjczY2EyYzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtRWZsLmNtYWtlCkBAIC0yNCw2ICsyNCw3IEBAIExJU1QoQVBQRU5EIFdlYktpdDJfU09VUkNF
UwogICAgIFNoYXJlZC9lZmwvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudEVmbC5jcHAKICAgICBTaGFy
ZWQvZWZsL05hdGl2ZVdlYldoZWVsRXZlbnRFZmwuY3BwCiAgICAgU2hhcmVkL2VmbC9OYXRpdmVX
ZWJNb3VzZUV2ZW50RWZsLmNwcAorICAgIFNoYXJlZC9lZmwvTmF0aXZlV2ViVG91Y2hFdmVudEVm
bC5jcHAKICAgICBTaGFyZWQvZWZsL1dlYkV2ZW50RmFjdG9yeS5jcHAKICAgICBTaGFyZWQvZWZs
L1dlYkNvcmVBcmd1bWVudENvZGVyc0VmbC5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9O
YXRpdmVXZWJUb3VjaEV2ZW50LmgKaW5kZXggZjIwMjE0YS4uZTQyMDQ2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oCkBAIC0zMCw2ICszMCw4IEBACiAK
ICNpZiBQTEFURk9STShRVCkKICNpbmNsdWRlIDxRVG91Y2hFdmVudD4KKyNlbGlmIFBMQVRGT1JN
KEVGTCkKKyNpbmNsdWRlIDxFdmFzLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBA
IC0zOCw2ICs0MCw4IEBAIGNsYXNzIE5hdGl2ZVdlYlRvdWNoRXZlbnQgOiBwdWJsaWMgV2ViVG91
Y2hFdmVudCB7CiBwdWJsaWM6CiAjaWYgUExBVEZPUk0oUVQpCiAgICAgZXhwbGljaXQgTmF0aXZl
V2ViVG91Y2hFdmVudChjb25zdCBRVG91Y2hFdmVudCosIGNvbnN0IFFUcmFuc2Zvcm0mIGZyb21J
dGVtVHJhbnNmb3JtKTsKKyNlbGlmIFBMQVRGT1JNKEVGTCkKKyAgICBleHBsaWNpdCBOYXRpdmVX
ZWJUb3VjaEV2ZW50KFdlYkV2ZW50OjpUeXBlLCBFdmFzKiwgY29uc3QgRXZhc19Qb2ludCopOwog
I2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9lZmwvTmF0aXZlV2ViVG91Y2hFdmVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvZWZsL05hdGl2ZVdlYlRvdWNoRXZlbnRFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjBhOTM0N2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvZWZsL05hdGl2ZVdlYlRvdWNoRXZlbnRFZmwuY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViVG91Y2hFdmVudC5oIgorCisj
aW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitOYXRp
dmVXZWJUb3VjaEV2ZW50OjpOYXRpdmVXZWJUb3VjaEV2ZW50KFdlYkV2ZW50OjpUeXBlIHR5cGUs
IEV2YXMqIGV2YXMsIGNvbnN0IEV2YXNfUG9pbnQqIHBvc2l0aW9uKQorICAgIDogV2ViVG91Y2hF
dmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQodHlwZSwgZXZhcywgcG9z
aXRpb24pKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9lZmwvV2ViRXZlbnRGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9lZmwvV2ViRXZlbnRGYWN0b3J5LmNwcAppbmRleCBmZmUyY2I1Li4wNDNmNDBmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1dlYkV2ZW50RmFjdG9yeS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9XZWJFdmVudEZhY3RvcnkuY3BwCkBAIC0y
Nyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCiAKICNpbmNsdWRlICJF
ZmxLZXlib2FyZFV0aWxpdGllcy5oIgorI2luY2x1ZGUgPEVjb3JlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TY3JvbGxiYXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xOTAsNCAr
MTkxLDQ0IEBAIFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXli
b2FyZEV2ZW50KGNvbnN0IEV2YXNfRXZlbnRfS2V5X1VwCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXZlbnQtPnRpbWVzdGFtcCk7CiB9CiAKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQor
V2ViVG91Y2hFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQoV2ViRXZl
bnQ6OlR5cGUgdHlwZSwgRXZhcyogZXZhcywgY29uc3QgRXZhc19Qb2ludCogcG9zaXRpb24pCit7
CisgICAgdW5zaWduZWQgaW50IGlkOworICAgIFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQ
b2ludFN0YXRlIHN0YXRlID0gc3RhdGljX2Nhc3Q8V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3Vj
aFBvaW50U3RhdGU+KDApOworICAgIFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzID0gbW9k
aWZpZXJzRm9yRXZlbnQoZXZhc19rZXlfbW9kaWZpZXJfZ2V0KGV2YXMpKTsKKyAgICBkb3VibGUg
dGltZXN0YW1wID0gZWNvcmVfdGltZV9nZXQoKTsKKworICAgIFZlY3RvcjxXZWJQbGF0Zm9ybVRv
dWNoUG9pbnQ+IHRvdWNoUG9pbnRzOworICAgIGZvciAoaW50IGkgPSAwLCB4ID0gMCwgeSA9IDAs
IGNvdW50ID0gZXZhc190b3VjaF9wb2ludF9saXN0X2NvdW50KGV2YXMpOyBpIDwgY291bnQ7ICsr
aSkgeworICAgICAgICBpZCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihldmFzX3RvdWNoX3BvaW50
X2xpc3RfbnRoX2lkX2dldChldmFzLCBpKSk7CisgICAgICAgIGV2YXNfdG91Y2hfcG9pbnRfbGlz
dF9udGhfeHlfZ2V0KGV2YXMsIGksICZ4LCAmeSk7CisgICAgICAgIHN3aXRjaCAoZXZhc190b3Vj
aF9wb2ludF9saXN0X250aF9zdGF0ZV9nZXQoZXZhcywgaSkpIHsKKyAgICAgICAgY2FzZSBFVkFT
X1RPVUNIX1BPSU5UX1VQOgorICAgICAgICAgICAgc3RhdGUgPSBXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ6OlRvdWNoUmVsZWFzZWQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBFVkFT
X1RPVUNIX1BPSU5UX01PVkU6CisgICAgICAgICAgICBzdGF0ZSA9IFdlYlBsYXRmb3JtVG91Y2hQ
b2ludDo6VG91Y2hNb3ZlZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEVWQVNf
VE9VQ0hfUE9JTlRfRE9XTjoKKyAgICAgICAgICAgIHN0YXRlID0gV2ViUGxhdGZvcm1Ub3VjaFBv
aW50OjpUb3VjaFByZXNzZWQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBFVkFT
X1RPVUNIX1BPSU5UX1NUSUxMOgorICAgICAgICAgICAgc3RhdGUgPSBXZWJQbGF0Zm9ybVRvdWNo
UG9pbnQ6OlRvdWNoU3RhdGlvbmFyeTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IEVWQVNfVE9VQ0hfUE9JTlRfQ0FOQ0VMOgorICAgICAgICAgICAgc3RhdGUgPSBXZWJQbGF0Zm9y
bVRvdWNoUG9pbnQ6OlRvdWNoQ2FuY2VsbGVkOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgdG91Y2hQb2ludHMuYXBwZW5kKFdlYlBsYXRm
b3JtVG91Y2hQb2ludChpZCwgc3RhdGUsIEludFBvaW50KHgsIHkpLCBJbnRQb2ludCh4IC0gcG9z
aXRpb24tPngsIHkgLSBwb3NpdGlvbi0+eSkpKTsKKyAgICB9CisKKyAgICByZXR1cm4gV2ViVG91
Y2hFdmVudCh0eXBlLCB0b3VjaFBvaW50cywgbW9kaWZpZXJzLCB0aW1lc3RhbXApOworfQorI2Vu
ZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL2VmbC9XZWJFdmVudEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwv
V2ViRXZlbnRGYWN0b3J5LmgKaW5kZXggZjQ3YTNjYS4uOWU2NGQ4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9XZWJFdmVudEZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvZWZsL1dlYkV2ZW50RmFjdG9yeS5oCkBAIC0zOSw2ICszOSw5IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgV2ViV2hlZWxFdmVudCBjcmVhdGVXZWJXaGVlbEV2ZW50KGNvbnN0IEV2
YXNfRXZlbnRfTW91c2VfV2hlZWwqLCBjb25zdCBFdmFzX1BvaW50Kik7CiAgICAgc3RhdGljIFdl
YktleWJvYXJkRXZlbnQgY3JlYXRlV2ViS2V5Ym9hcmRFdmVudChjb25zdCBFdmFzX0V2ZW50X0tl
eV9Eb3duKik7CiAgICAgc3RhdGljIFdlYktleWJvYXJkRXZlbnQgY3JlYXRlV2ViS2V5Ym9hcmRF
dmVudChjb25zdCBFdmFzX0V2ZW50X0tleV9VcCopOworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CisgICAgc3RhdGljIFdlYlRvdWNoRXZlbnQgY3JlYXRlV2ViVG91Y2hFdmVudChXZWJFdmVudDo6
VHlwZSwgRXZhcyosIGNvbnN0IEV2YXNfUG9pbnQqKTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmll
dy5jcHAKaW5kZXggNjViZjBiMy4uZmNlNTI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApAQCAtMjUxLDYgKzI1MSwzNSBAQCBzdGF0aWMgdm9p
ZCBfZXdrX3ZpZXdfb25fa2V5X3VwKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsCiAgICAgc21hcnREYXRhLT5hcGktPmtleV91cChzbWFydERhdGEsIHVwRXZl
bnQpOwogfQogCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKK3N0YXRpYyB2b2lkIF9ld2tfdmll
d19vbl90b3VjaF9kb3duKHZvaWQqIGRhdGEsIEV2YXMqIGNhbnZhcywgRXZhc19PYmplY3QqIGV3
a1ZpZXcsIHZvaWQqIGV2ZW50SW5mbykKK3sKKyAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJO
KGV3a1ZpZXcsIHNtYXJ0RGF0YSk7CisgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNt
YXJ0RGF0YSwgcHJpdikKKworICAgIEV2YXNfUG9pbnQgcG9zaXRpb24gPSB7c21hcnREYXRhLT52
aWV3LngsIHNtYXJ0RGF0YS0+dmlldy55fTsKKyAgICBwcml2LT5wYWdlQ2xpZW50LT5wYWdlKCkt
PmhhbmRsZVRvdWNoRXZlbnQoTmF0aXZlV2ViVG91Y2hFdmVudChXZWJFdmVudDo6VG91Y2hTdGFy
dCwgc21hcnREYXRhLT5iYXNlLmV2YXMsICZwb3NpdGlvbikpOworfQorCitzdGF0aWMgdm9pZCBf
ZXdrX3ZpZXdfb25fdG91Y2hfdXAodm9pZCogZGF0YSwgRXZhcyogY2FudmFzLCBFdmFzX09iamVj
dCogZXdrVmlldywgdm9pZCogZXZlbnRJbmZvKQoreworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9S
RVRVUk4oZXdrVmlldywgc21hcnREYXRhKTsKKyAgICBFV0tfVklFV19QUklWX0dFVF9PUl9SRVRV
Uk4oc21hcnREYXRhLCBwcml2KQorCisgICAgRXZhc19Qb2ludCBwb3NpdGlvbiA9IHtzbWFydERh
dGEtPnZpZXcueCwgc21hcnREYXRhLT52aWV3Lnl9OworICAgIHByaXYtPnBhZ2VDbGllbnQtPnBh
Z2UoKS0+aGFuZGxlVG91Y2hFdmVudChOYXRpdmVXZWJUb3VjaEV2ZW50KFdlYkV2ZW50OjpUb3Vj
aEVuZCwgc21hcnREYXRhLT5iYXNlLmV2YXMsICZwb3NpdGlvbikpOworfQorCitzdGF0aWMgdm9p
ZCBfZXdrX3ZpZXdfb25fdG91Y2hfbW92ZSh2b2lkKiBkYXRhLCBFdmFzKiBjYW52YXMsIEV2YXNf
T2JqZWN0KiBld2tWaWV3LCB2b2lkKiBldmVudEluZm8pCit7CisgICAgRVdLX1ZJRVdfU0RfR0VU
X09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEpOworICAgIEVXS19WSUVXX1BSSVZfR0VUX09S
X1JFVFVSTihzbWFydERhdGEsIHByaXYpCisKKyAgICBFdmFzX1BvaW50IHBvc2l0aW9uID0ge3Nt
YXJ0RGF0YS0+dmlldy54LCBzbWFydERhdGEtPnZpZXcueX07CisgICAgcHJpdi0+cGFnZUNsaWVu
dC0+cGFnZSgpLT5oYW5kbGVUb3VjaEV2ZW50KE5hdGl2ZVdlYlRvdWNoRXZlbnQoV2ViRXZlbnQ6
OlRvdWNoTW92ZSwgc21hcnREYXRhLT5iYXNlLmV2YXMsICZwb3NpdGlvbikpOworfQorI2VuZGlm
CisKIHN0YXRpYyBFdmFzX1NtYXJ0X0NsYXNzIGdfcGFyZW50U21hcnRDbGFzcyA9IEVWQVNfU01B
UlRfQ0xBU1NfSU5JVF9OVUxMOwogCiBzdGF0aWMgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKiBfZXdr
X3ZpZXdfcHJpdl9uZXcoRXdrX1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhKQpAQCAtMzIxLDYg
KzM1MCwxNyBAQCBzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfc21hcnRfYWRkKEV2YXNfT2JqZWN0KiBl
d2tWaWV3KQogICAgIENPTk5FQ1QoRVZBU19DQUxMQkFDS19NT1VTRV9NT1ZFLCBfZXdrX3ZpZXdf
b25fbW91c2VfbW92ZSk7CiAgICAgQ09OTkVDVChFVkFTX0NBTExCQUNLX0tFWV9ET1dOLCBfZXdr
X3ZpZXdfb25fa2V5X2Rvd24pOwogICAgIENPTk5FQ1QoRVZBU19DQUxMQkFDS19LRVlfVVAsIF9l
d2tfdmlld19vbl9rZXlfdXApOworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgLy8gRklY
TUU6IFdlIGhhdmUgdG8gY29ubmVjdCB0b3VjaCBjYWxsYmFja3Mgd2l0aCBNb3VzZSBhbmQgTXVs
dGkgZXZlbnQKKyAgICAvLyBiZWNhdXNlIHRoZSBFdmFzIHNlbmRzIHRoZSBUb3VjaCBldmVudCB1
c2luZyB0aGVtLgorICAgIC8vIEl0IHNob3VsZCBiZSBmaXhlZCB3aGVuIHRoZSBFdmFzIHN1cHBv
cnRzIHRoZSBUb3VjaCBldmVudC4KKyAgICBDT05ORUNUKEVWQVNfQ0FMTEJBQ0tfTU9VU0VfRE9X
TiwgX2V3a192aWV3X29uX3RvdWNoX2Rvd24pOworICAgIENPTk5FQ1QoRVZBU19DQUxMQkFDS19N
T1VTRV9VUCwgX2V3a192aWV3X29uX3RvdWNoX3VwKTsKKyAgICBDT05ORUNUKEVWQVNfQ0FMTEJB
Q0tfTU9VU0VfTU9WRSwgX2V3a192aWV3X29uX3RvdWNoX21vdmUpOworICAgIENPTk5FQ1QoRVZB
U19DQUxMQkFDS19NVUxUSV9ET1dOLCBfZXdrX3ZpZXdfb25fdG91Y2hfZG93bik7CisgICAgQ09O
TkVDVChFVkFTX0NBTExCQUNLX01VTFRJX1VQLCBfZXdrX3ZpZXdfb25fdG91Y2hfdXApOworICAg
IENPTk5FQ1QoRVZBU19DQUxMQkFDS19NVUxUSV9NT1ZFLCBfZXdrX3ZpZXdfb25fdG91Y2hfbW92
ZSk7CisjZW5kaWYKICN1bmRlZiBDT05ORUNUCiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164362</attachid>
            <date>2012-09-17 03:05:55 -0700</date>
            <delta_ts>2012-09-17 04:13:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90662-20120917190523.patch</filename>
            <type>text/plain</type>
            <size>10672</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGY5YmU2ZDBhNmYwNzE3
MGM3Njc0NTQ5Y2Y5NTBkODdlMGFlNGJjYi4uN2FjZDBkMWZjNmVjMzhmOWIxYjJkMmQ4MDE5NDFk
NWVkODVmNzAxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA5LTE3ICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFk
ZCBOYXRpdmVXZWJUb3VjaEV2ZW50IGFuZCBoYW5kbGUgdGhlIFRvdWNoIGV2ZW50LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA2NjIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgY29kZXMg
dG8gaGFuZGxlIHRvdWNoIGV2ZW50IGZvciBXZWJLaXQyIEVGTCBwb3J0LgorICAgICAgICBBZGRp
dGlvbmFsbHksIHR5cGVzIGFuZCBzdHJ1Y3R1cmUgZm9yIHRvdWNoIGV2ZW50IGFyZSBkZWZpbmVk
IGJlY2F1c2UKKyAgICAgICAgdGhleSBhcmUgbm90IGluIHRoZSBFdmFzLgorCisgICAgICAgICog
UGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQu
aDoKKyAgICAgICAgKE5hdGl2ZVdlYlRvdWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9lZmwv
TmF0aXZlV2ViVG91Y2hFdmVudEVmbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKFdlYktpdDo6TmF0aXZlV2ViVG91Y2hFdmVudDo6TmF0aXZlV2ViVG91Y2hFdmVudCk6
CisgICAgICAgICogU2hhcmVkL2VmbC9XZWJFdmVudEZhY3RvcnkuY3BwOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2
ZW50KToKKyAgICAgICAgKiBTaGFyZWQvZWZsL1dlYkV2ZW50RmFjdG9yeS5oOgorICAgICAgICAo
V2ViRXZlbnRGYWN0b3J5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdG91Y2gu
aDogQWRkZWQuCisKIDIwMTItMDktMTUgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWtnYWxhdGFnZUBn
bWFpbC5jb20+CiAKICAgICAgICAgV2luQ2Fpcm8gYnVpbGQgZml4IGR1ZSB0byBtaXNzaW5nIHN5
bWJvbHMgZm9yIHNldEltYWdlc0VuYWJsZWQgYW5kIHNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCAzY2JiODQ2MjFhZTY4ZjRjZTdmODg5M2M0M2Qw
NmFlNDFkNmJlM2I1Li5jMDE0ZWEzMmI5OTFjZDM3ZDQ5MmUzODU2YTc0NDdkYzYwNmFiN2UxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTEwLDYgKzExMCwxMiBAQCBMSVNUKEFQUEVO
RCBXZWJLaXQyX1NPVVJDRVMKICAgICBXZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJ
bnB1dFN0cmVhbS5jcHAKICkKIAorSUYgKEVOQUJMRV9UT1VDSF9FVkVOVFMpCisgICAgTElTVChB
UFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCisgICAgICAgIFNoYXJlZC9lZmwvTmF0aXZlV2ViVG91Y2hF
dmVudEVmbC5jcHAKKyAgICApCitFTkRJRiAoKQorCiBMSVNUKEFQUEVORCBXZWJLaXQyX01FU1NB
R0VTX0lOX0ZJTEVTCiAgICAgVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4KICAgICBXZWJQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2Vi
VG91Y2hFdmVudC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQu
aAppbmRleCBmMjAyMTRhOGY3NzhjMTg2NDRhYmUxODM5Zjk3Yzg2NzIxMzQwZTgzLi40OWJiZjgw
MTBmZTFlOGFiNWI3MTE2NDE1MzY1ZTg0ZWIyNTU5OWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmgKQEAgLTMwLDYgKzMwLDkgQEAKIAogI2lmIFBMQVRG
T1JNKFFUKQogI2luY2x1ZGUgPFFUb3VjaEV2ZW50PgorI2VsaWYgUExBVEZPUk0oRUZMKQorI2lu
Y2x1ZGUgImV3a190b3VjaC5oIgorI2luY2x1ZGUgPEV2YXMuaD4KICNlbmRpZgogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKQEAgLTM4LDYgKzQxLDggQEAgY2xhc3MgTmF0aXZlV2ViVG91Y2hFdmVudCA6
IHB1YmxpYyBXZWJUb3VjaEV2ZW50IHsKIHB1YmxpYzoKICNpZiBQTEFURk9STShRVCkKICAgICBl
eHBsaWNpdCBOYXRpdmVXZWJUb3VjaEV2ZW50KGNvbnN0IFFUb3VjaEV2ZW50KiwgY29uc3QgUVRy
YW5zZm9ybSYgZnJvbUl0ZW1UcmFuc2Zvcm0pOworI2VsaWYgUExBVEZPUk0oRUZMKQorICAgIE5h
dGl2ZVdlYlRvdWNoRXZlbnQoRXdrX1RvdWNoX0V2ZW50X1R5cGUsIGNvbnN0IEVpbmFfTGlzdCos
IGNvbnN0IEV2YXNfTW9kaWZpZXIqLCBjb25zdCBFdmFzX1BvaW50KiwgZG91YmxlIHRpbWVzdGFt
cCk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFFUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL2VmbC9OYXRpdmVXZWJUb3VjaEV2ZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9lZmwvTmF0aXZlV2ViVG91Y2hFdmVudEVmbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWY1MWVh
NDM0OTEwYTAwYWQwMWUzZDhlNDZmMjkzOWI4NWMxNjEzMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvTmF0aXZlV2ViVG91Y2hFdmVudEVmbC5jcHAKQEAgLTAs
MCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNz
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJUb3Vj
aEV2ZW50LmgiCisKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK05hdGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQoRXdrX1Rv
dWNoX0V2ZW50X1R5cGUgdHlwZSwgY29uc3QgRWluYV9MaXN0KiBwb2ludHMsIGNvbnN0IEV2YXNf
TW9kaWZpZXIqIG1vZGlmaWVycywgY29uc3QgRXZhc19Qb2ludCogcG9zaXRpb24sIGRvdWJsZSB0
aW1lc3RhbXApCisgICAgOiBXZWJUb3VjaEV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2Vi
VG91Y2hFdmVudCh0eXBlLCBwb2ludHMsIG1vZGlmaWVycywgcG9zaXRpb24sIHRpbWVzdGFtcCkp
Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL2VmbC9XZWJFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L2VmbC9XZWJFdmVudEZhY3RvcnkuY3BwCmluZGV4IDc0YTA1MzBhMzEyYmE5MWU1MmZmYzFjYjU3
M2JhZWRhNGI2NjVkZDguLjk4NjVkYzMwZThiOWYwYmMzN2I2Yzc3ZDgwODI0NjllZDc2MDBkYzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvV2ViRXZlbnRGYWN0b3J5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1dlYkV2ZW50RmFjdG9yeS5jcHAKQEAg
LTE5Miw0ICsxOTIsNjEgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0
ZVdlYktleWJvYXJkRXZlbnQoY29uc3QgRXZhc19FdmVudF9LZXlfVXAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBldmVudC0+dGltZXN0YW1wKTsKIH0KIAorI2lmIEVOQUJMRShUT1VDSF9F
VkVOVFMpCitXZWJUb3VjaEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVu
dChFd2tfVG91Y2hfRXZlbnRfVHlwZSB0eXBlLCBjb25zdCBFaW5hX0xpc3QqIHBvaW50cywgY29u
c3QgRXZhc19Nb2RpZmllciogbW9kaWZpZXJzLCBjb25zdCBFdmFzX1BvaW50KiBwb3NpdGlvbiwg
ZG91YmxlIHRpbWVzdGFtcCkKK3sKKyAgICBXZWJFdmVudDo6VHlwZSB3ZWJFdmVudFR5cGU7Cisg
ICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBFV0tfVE9VQ0hfU1RBUlQ6CisgICAgICAgIHdl
YkV2ZW50VHlwZSA9IFdlYkV2ZW50OjpUb3VjaFN0YXJ0OworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEVXS19UT1VDSF9NT1ZFOgorICAgICAgICB3ZWJFdmVudFR5cGUgPSBXZWJFdmVudDo6VG91
Y2hNb3ZlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEVXS19UT1VDSF9FTkQ6CisgICAgICAg
IHdlYkV2ZW50VHlwZSA9IFdlYkV2ZW50OjpUb3VjaEVuZDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBFV0tfVE9VQ0hfQ0FOQ0VMOgorICAgICAgICB3ZWJFdmVudFR5cGUgPSBXZWJFdmVudDo6
VG91Y2hDYW5jZWw7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBWZWN0b3I8V2Vi
UGxhdGZvcm1Ub3VjaFBvaW50PiB0b3VjaFBvaW50czsKKyAgICBXZWJQbGF0Zm9ybVRvdWNoUG9p
bnQ6OlRvdWNoUG9pbnRTdGF0ZSBzdGF0ZSA9IHN0YXRpY19jYXN0PFdlYlBsYXRmb3JtVG91Y2hQ
b2ludDo6VG91Y2hQb2ludFN0YXRlPigwKTsKKyAgICBjb25zdCBFaW5hX0xpc3QqIGxpc3Q7Cisg
ICAgdm9pZCogaXRlbTsKKyAgICBFSU5BX0xJU1RfRk9SRUFDSChwb2ludHMsIGxpc3QsIGl0ZW0p
IHsKKyAgICAgICAgRXdrX1RvdWNoX1BvaW50KiBwb2ludCA9IHN0YXRpY19jYXN0PEV3a19Ub3Vj
aF9Qb2ludCo+KGl0ZW0pOworCisgICAgICAgIHN3aXRjaCAocG9pbnQtPnN0YXRlKSB7CisgICAg
ICAgIGNhc2UgRVZBU19UT1VDSF9QT0lOVF9VUDoKKyAgICAgICAgICAgIHN0YXRlID0gV2ViUGxh
dGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgRVZBU19UT1VDSF9QT0lOVF9NT1ZFOgorICAgICAgICAgICAgc3RhdGUgPSBXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoTW92ZWQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBFVkFTX1RPVUNIX1BPSU5UX0RPV046CisgICAgICAgICAgICBzdGF0ZSA9IFdlYlBs
YXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQcmVzc2VkOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgRVZBU19UT1VDSF9QT0lOVF9TVElMTDoKKyAgICAgICAgICAgIHN0YXRlID0gV2Vi
UGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFN0YXRpb25hcnk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBFVkFTX1RPVUNIX1BPSU5UX0NBTkNFTDoKKyAgICAgICAgICAgIHN0YXRl
ID0gV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaENhbmNlbGxlZDsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIHRvdWNoUG9pbnRzLmFw
cGVuZChXZWJQbGF0Zm9ybVRvdWNoUG9pbnQocG9pbnQtPmlkLCBzdGF0ZSwgSW50UG9pbnQocG9p
bnQtPngsIHBvaW50LT55KSwgSW50UG9pbnQocG9pbnQtPnggLSBwb3NpdGlvbi0+eCwgcG9pbnQt
PnkgLSBwb3NpdGlvbi0+eSkpKTsKKyAgICB9CisKKyAgICByZXR1cm4gV2ViVG91Y2hFdmVudCh3
ZWJFdmVudFR5cGUsIHRvdWNoUG9pbnRzLCBtb2RpZmllcnNGb3JFdmVudChtb2RpZmllcnMpLCB0
aW1lc3RhbXApOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9XZWJFdmVudEZhY3RvcnkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9lZmwvV2ViRXZlbnRGYWN0b3J5LmgKaW5kZXggZjQ3YTNjYWVkZDc4ZTNh
ZGU0NDU3MTNkY2FhNzkwMmMxZjBkNDg1MC4uOWE4YjFkNmJkYThhZGM0Nzk3OWJlYWI5ODRhOWNk
YzRjNmUwMWViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9XZWJFdmVu
dEZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1dlYkV2ZW50RmFjdG9y
eS5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFdlYkV2ZW50RmFjdG9yeV9oCiAKICNpbmNs
dWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgImV3a190b3VjaC5oIgogI2luY2x1ZGUgPEV2YXMu
aD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0zOSw2ICs0MCw5IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgV2ViV2hlZWxFdmVudCBjcmVhdGVXZWJXaGVlbEV2ZW50KGNvbnN0IEV2YXNfRXZlbnRf
TW91c2VfV2hlZWwqLCBjb25zdCBFdmFzX1BvaW50Kik7CiAgICAgc3RhdGljIFdlYktleWJvYXJk
RXZlbnQgY3JlYXRlV2ViS2V5Ym9hcmRFdmVudChjb25zdCBFdmFzX0V2ZW50X0tleV9Eb3duKik7
CiAgICAgc3RhdGljIFdlYktleWJvYXJkRXZlbnQgY3JlYXRlV2ViS2V5Ym9hcmRFdmVudChjb25z
dCBFdmFzX0V2ZW50X0tleV9VcCopOworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgc3Rh
dGljIFdlYlRvdWNoRXZlbnQgY3JlYXRlV2ViVG91Y2hFdmVudChFd2tfVG91Y2hfRXZlbnRfVHlw
ZSwgY29uc3QgRWluYV9MaXN0KiwgY29uc3QgRXZhc19Nb2RpZmllciosIGNvbnN0IEV2YXNfUG9p
bnQqLCBkb3VibGUgdGltZXN0YW1wKTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdG91
Y2guaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a190b3VjaC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjFjOWNkZDU5ZDg1YmU2NzBjODc3YWM4OWY3ZTM1Y2IwZTBiY2Y0ZWYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdG91Y2guaApA
QCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ry
b25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBld2tfdG91Y2hfaAorI2RlZmluZSBld2tfdG91Y2hf
aAorCisjaW5jbHVkZSA8RXZhcy5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIg
eworI2VuZGlmCisKKy8vLyBSZXByZXNlbnRzIHR5cGVzIG9mIHRvdWNoIGV2ZW50LgordHlwZWRl
ZiBlbnVtIHsKKyAgICBFV0tfVE9VQ0hfU1RBUlQsCisgICAgRVdLX1RPVUNIX01PVkUsCisgICAg
RVdLX1RPVUNIX0VORCwKKyAgICBFV0tfVE9VQ0hfQ0FOQ0VMCit9IEV3a19Ub3VjaF9FdmVudF9U
eXBlOworCisvLy8gQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgX0V3a19Ub3VjaF9Qb2ludC4KK3R5
cGVkZWYgc3RydWN0IF9Fd2tfVG91Y2hfUG9pbnQgRXdrX1RvdWNoX1BvaW50OworCisvLy8gUmVw
cmVzZW50cyBhIHRvdWNoIHBvaW50Lgorc3RydWN0IF9Fd2tfVG91Y2hfUG9pbnQgeworICAgIGlu
dCBpZDsgLyoqPCBpZGVudGlmaWVyIG9mIHRoZSB0b3VjaCBldmVudCAqLworICAgIGludCB4OyAv
Kio8IHRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSB0b3VjaCBldmVudCAqLworICAgIGlu
dCB5OyAvKio8IHRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGUgdG91Y2ggZXZlbnQgKi8KKyAg
ICBFdmFzX1RvdWNoX1BvaW50X1N0YXRlIHN0YXRlOyAvKio8IHN0YXRlIG9mIHRoZSB0b3VjaCBl
dmVudCAqLworfTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8v
IGV3a190b3VjaF9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164365</attachid>
            <date>2012-09-17 04:13:39 -0700</date>
            <delta_ts>2012-09-17 21:49:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90662-20120917201307.patch</filename>
            <type>text/plain</type>
            <size>10628</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGY5YmU2ZDBhNmYwNzE3
MGM3Njc0NTQ5Y2Y5NTBkODdlMGFlNGJjYi4uN2FjZDBkMWZjNmVjMzhmOWIxYjJkMmQ4MDE5NDFk
NWVkODVmNzAxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA5LTE3ICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFk
ZCBOYXRpdmVXZWJUb3VjaEV2ZW50IGFuZCBoYW5kbGUgdGhlIFRvdWNoIGV2ZW50LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA2NjIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgY29kZXMg
dG8gaGFuZGxlIHRvdWNoIGV2ZW50IGZvciBXZWJLaXQyIEVGTCBwb3J0LgorICAgICAgICBBZGRp
dGlvbmFsbHksIHR5cGVzIGFuZCBzdHJ1Y3R1cmUgZm9yIHRvdWNoIGV2ZW50IGFyZSBkZWZpbmVk
IGJlY2F1c2UKKyAgICAgICAgdGhleSBhcmUgbm90IGluIHRoZSBFdmFzLgorCisgICAgICAgICog
UGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQu
aDoKKyAgICAgICAgKE5hdGl2ZVdlYlRvdWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9lZmwv
TmF0aXZlV2ViVG91Y2hFdmVudEVmbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKFdlYktpdDo6TmF0aXZlV2ViVG91Y2hFdmVudDo6TmF0aXZlV2ViVG91Y2hFdmVudCk6
CisgICAgICAgICogU2hhcmVkL2VmbC9XZWJFdmVudEZhY3RvcnkuY3BwOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2
ZW50KToKKyAgICAgICAgKiBTaGFyZWQvZWZsL1dlYkV2ZW50RmFjdG9yeS5oOgorICAgICAgICAo
V2ViRXZlbnRGYWN0b3J5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdG91Y2gu
aDogQWRkZWQuCisKIDIwMTItMDktMTUgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWtnYWxhdGFnZUBn
bWFpbC5jb20+CiAKICAgICAgICAgV2luQ2Fpcm8gYnVpbGQgZml4IGR1ZSB0byBtaXNzaW5nIHN5
bWJvbHMgZm9yIHNldEltYWdlc0VuYWJsZWQgYW5kIHNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCAzY2JiODQ2MjFhZTY4ZjRjZTdmODg5M2M0M2Qw
NmFlNDFkNmJlM2I1Li44MDIxMGI5ZjRlMzllNTViMGQyMzBmNjlhMGQxYjAzYTQxZWUyNmE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTcsNiArMTcsNyBAQCBMSVNUKEFQUEVORCBX
ZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvZWZsL05hdGl2ZVdlYktleWJvYXJkRXZlbnRFZmwu
Y3BwCiAgICAgU2hhcmVkL2VmbC9OYXRpdmVXZWJXaGVlbEV2ZW50RWZsLmNwcAogICAgIFNoYXJl
ZC9lZmwvTmF0aXZlV2ViTW91c2VFdmVudEVmbC5jcHAKKyAgICBTaGFyZWQvZWZsL05hdGl2ZVdl
YlRvdWNoRXZlbnRFZmwuY3BwCiAgICAgU2hhcmVkL2VmbC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhF
ZmwuY3BwCiAgICAgU2hhcmVkL2VmbC9XZWJFdmVudEZhY3RvcnkuY3BwCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oCmluZGV4IGYyMDIxNGE4Zjc3OGMxODY0
NGFiZTE4MzlmOTdjODY3MjEzNDBlODMuLjQ5YmJmODAxMGZlMWU4YWI1YjcxMTY0MTUzNjVlODRl
YjI1NTk5YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJUb3Vj
aEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQu
aApAQCAtMzAsNiArMzAsOSBAQAogCiAjaWYgUExBVEZPUk0oUVQpCiAjaW5jbHVkZSA8UVRvdWNo
RXZlbnQ+CisjZWxpZiBQTEFURk9STShFRkwpCisjaW5jbHVkZSAiZXdrX3RvdWNoLmgiCisjaW5j
bHVkZSA8RXZhcy5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzgsNiArNDEs
OCBAQCBjbGFzcyBOYXRpdmVXZWJUb3VjaEV2ZW50IDogcHVibGljIFdlYlRvdWNoRXZlbnQgewog
cHVibGljOgogI2lmIFBMQVRGT1JNKFFUKQogICAgIGV4cGxpY2l0IE5hdGl2ZVdlYlRvdWNoRXZl
bnQoY29uc3QgUVRvdWNoRXZlbnQqLCBjb25zdCBRVHJhbnNmb3JtJiBmcm9tSXRlbVRyYW5zZm9y
bSk7CisjZWxpZiBQTEFURk9STShFRkwpCisgICAgTmF0aXZlV2ViVG91Y2hFdmVudChFd2tfVG91
Y2hfRXZlbnRfVHlwZSwgY29uc3QgRWluYV9MaXN0KiwgY29uc3QgRXZhc19Nb2RpZmllciosIGNv
bnN0IEV2YXNfUG9pbnQqLCBkb3VibGUgdGltZXN0YW1wKTsKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oUVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL05hdGl2ZVdlYlRv
dWNoRXZlbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9OYXRpdmVXZWJUb3Vj
aEV2ZW50RWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MGQ4YmI3YzcxZjQzZmE4NDViZTFjOGI2OGMzZTYy
Mjk4YWMwMGNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9O
YXRpdmVXZWJUb3VjaEV2ZW50RWZsLmNwcApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYlRvdWNoRXZlbnQuaCIKKworI2luY2x1ZGUgIldl
YkV2ZW50RmFjdG9yeS5oIgorCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK05hdGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQoRXdr
X1RvdWNoX0V2ZW50X1R5cGUgdHlwZSwgY29uc3QgRWluYV9MaXN0KiBwb2ludHMsIGNvbnN0IEV2
YXNfTW9kaWZpZXIqIG1vZGlmaWVycywgY29uc3QgRXZhc19Qb2ludCogcG9zaXRpb24sIGRvdWJs
ZSB0aW1lc3RhbXApCisgICAgOiBXZWJUb3VjaEV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRl
V2ViVG91Y2hFdmVudCh0eXBlLCBwb2ludHMsIG1vZGlmaWVycywgcG9zaXRpb24sIHRpbWVzdGFt
cCkpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvV2ViRXZlbnRGYWN0b3J5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9lZmwvV2ViRXZlbnRGYWN0b3J5LmNwcAppbmRleCA3NGEwNTMwYTMxMmJh
OTFlNTJmZmMxY2I1NzNiYWVkYTRiNjY1ZGQ4Li45ODY1ZGMzMGU4YjlmMGJjMzdiNmM3N2Q4MDgy
NDY5ZWQ3NjAwZGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1dlYkV2
ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9XZWJFdmVudEZh
Y3RvcnkuY3BwCkBAIC0xOTIsNCArMTkyLDYxIEBAIFdlYktleWJvYXJkRXZlbnQgV2ViRXZlbnRG
YWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGNvbnN0IEV2YXNfRXZlbnRfS2V5X1VwCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQtPnRpbWVzdGFtcCk7CiB9CiAKKyNpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQorV2ViVG91Y2hFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0
ZVdlYlRvdWNoRXZlbnQoRXdrX1RvdWNoX0V2ZW50X1R5cGUgdHlwZSwgY29uc3QgRWluYV9MaXN0
KiBwb2ludHMsIGNvbnN0IEV2YXNfTW9kaWZpZXIqIG1vZGlmaWVycywgY29uc3QgRXZhc19Qb2lu
dCogcG9zaXRpb24sIGRvdWJsZSB0aW1lc3RhbXApCit7CisgICAgV2ViRXZlbnQ6OlR5cGUgd2Vi
RXZlbnRUeXBlOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgRVdLX1RPVUNIX1NUQVJU
OgorICAgICAgICB3ZWJFdmVudFR5cGUgPSBXZWJFdmVudDo6VG91Y2hTdGFydDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBFV0tfVE9VQ0hfTU9WRToKKyAgICAgICAgd2ViRXZlbnRUeXBlID0g
V2ViRXZlbnQ6OlRvdWNoTW92ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBFV0tfVE9VQ0hf
RU5EOgorICAgICAgICB3ZWJFdmVudFR5cGUgPSBXZWJFdmVudDo6VG91Y2hFbmQ7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgRVdLX1RPVUNIX0NBTkNFTDoKKyAgICAgICAgd2ViRXZlbnRUeXBl
ID0gV2ViRXZlbnQ6OlRvdWNoQ2FuY2VsOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisg
ICAgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQb2ludD4gdG91Y2hQb2ludHM7CisgICAgV2ViUGxh
dGZvcm1Ub3VjaFBvaW50OjpUb3VjaFBvaW50U3RhdGUgc3RhdGUgPSBzdGF0aWNfY2FzdDxXZWJQ
bGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUG9pbnRTdGF0ZT4oMCk7CisgICAgY29uc3QgRWluYV9M
aXN0KiBsaXN0OworICAgIHZvaWQqIGl0ZW07CisgICAgRUlOQV9MSVNUX0ZPUkVBQ0gocG9pbnRz
LCBsaXN0LCBpdGVtKSB7CisgICAgICAgIEV3a19Ub3VjaF9Qb2ludCogcG9pbnQgPSBzdGF0aWNf
Y2FzdDxFd2tfVG91Y2hfUG9pbnQqPihpdGVtKTsKKworICAgICAgICBzd2l0Y2ggKHBvaW50LT5z
dGF0ZSkgeworICAgICAgICBjYXNlIEVWQVNfVE9VQ0hfUE9JTlRfVVA6CisgICAgICAgICAgICBz
dGF0ZSA9IFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hSZWxlYXNlZDsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEVWQVNfVE9VQ0hfUE9JTlRfTU9WRToKKyAgICAgICAgICAg
IHN0YXRlID0gV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaE1vdmVkOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgRVZBU19UT1VDSF9QT0lOVF9ET1dOOgorICAgICAgICAgICAg
c3RhdGUgPSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUHJlc3NlZDsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIEVWQVNfVE9VQ0hfUE9JTlRfU1RJTEw6CisgICAgICAgICAg
ICBzdGF0ZSA9IFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hTdGF0aW9uYXJ5OworICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRVZBU19UT1VDSF9QT0lOVF9DQU5DRUw6CisgICAg
ICAgICAgICBzdGF0ZSA9IFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hDYW5jZWxsZWQ7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICB0
b3VjaFBvaW50cy5hcHBlbmQoV2ViUGxhdGZvcm1Ub3VjaFBvaW50KHBvaW50LT5pZCwgc3RhdGUs
IEludFBvaW50KHBvaW50LT54LCBwb2ludC0+eSksIEludFBvaW50KHBvaW50LT54IC0gcG9zaXRp
b24tPngsIHBvaW50LT55IC0gcG9zaXRpb24tPnkpKSk7CisgICAgfQorCisgICAgcmV0dXJuIFdl
YlRvdWNoRXZlbnQod2ViRXZlbnRUeXBlLCB0b3VjaFBvaW50cywgbW9kaWZpZXJzRm9yRXZlbnQo
bW9kaWZpZXJzKSwgdGltZXN0YW1wKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvV2ViRXZlbnRGYWN0b3J5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1dlYkV2ZW50RmFjdG9yeS5oCmluZGV4IGY0
N2EzY2FlZGQ3OGUzYWRlNDQ1NzEzZGNhYTc5MDJjMWYwZDQ4NTAuLjlhOGIxZDZiZGE4YWRjNDc5
NzliZWFiOTg0YTljZGM0YzZlMDFlYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9lZmwvV2ViRXZlbnRGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9X
ZWJFdmVudEZhY3RvcnkuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBXZWJFdmVudEZhY3Rv
cnlfaAogCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlICJld2tfdG91Y2guaCIKICNp
bmNsdWRlIDxFdmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzksNiArNDAsOSBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIFdlYldoZWVsRXZlbnQgY3JlYXRlV2ViV2hlZWxFdmVudChjb25z
dCBFdmFzX0V2ZW50X01vdXNlX1doZWVsKiwgY29uc3QgRXZhc19Qb2ludCopOwogICAgIHN0YXRp
YyBXZWJLZXlib2FyZEV2ZW50IGNyZWF0ZVdlYktleWJvYXJkRXZlbnQoY29uc3QgRXZhc19FdmVu
dF9LZXlfRG93biopOwogICAgIHN0YXRpYyBXZWJLZXlib2FyZEV2ZW50IGNyZWF0ZVdlYktleWJv
YXJkRXZlbnQoY29uc3QgRXZhc19FdmVudF9LZXlfVXAqKTsKKyNpZiBFTkFCTEUoVE9VQ0hfRVZF
TlRTKQorICAgIHN0YXRpYyBXZWJUb3VjaEV2ZW50IGNyZWF0ZVdlYlRvdWNoRXZlbnQoRXdrX1Rv
dWNoX0V2ZW50X1R5cGUsIGNvbnN0IEVpbmFfTGlzdCosIGNvbnN0IEV2YXNfTW9kaWZpZXIqLCBj
b25zdCBFdmFzX1BvaW50KiwgZG91YmxlIHRpbWVzdGFtcCk7CisjZW5kaWYKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3RvdWNoLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dG91Y2guaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xYzljZGQ1OWQ4NWJlNjcwYzg3N2FjODlmN2UzNWNiMGUwYmNm
NGVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3RvdWNoLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBT
YW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgZXdrX3RvdWNoX2gKKyNkZWZp
bmUgZXdrX3RvdWNoX2gKKworI2luY2x1ZGUgPEV2YXMuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVz
CitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvLy8gUmVwcmVzZW50cyB0eXBlcyBvZiB0b3VjaCBl
dmVudC4KK3R5cGVkZWYgZW51bSB7CisgICAgRVdLX1RPVUNIX1NUQVJULAorICAgIEVXS19UT1VD
SF9NT1ZFLAorICAgIEVXS19UT1VDSF9FTkQsCisgICAgRVdLX1RPVUNIX0NBTkNFTAorfSBFd2tf
VG91Y2hfRXZlbnRfVHlwZTsKKworLy8vIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfVG91
Y2hfUG9pbnQuCit0eXBlZGVmIHN0cnVjdCBfRXdrX1RvdWNoX1BvaW50IEV3a19Ub3VjaF9Qb2lu
dDsKKworLy8vIFJlcHJlc2VudHMgYSB0b3VjaCBwb2ludC4KK3N0cnVjdCBfRXdrX1RvdWNoX1Bv
aW50IHsKKyAgICBpbnQgaWQ7IC8qKjwgaWRlbnRpZmllciBvZiB0aGUgdG91Y2ggZXZlbnQgKi8K
KyAgICBpbnQgeDsgLyoqPCB0aGUgaG9yaXpvbnRhbCBwb3NpdGlvbiBvZiB0aGUgdG91Y2ggZXZl
bnQgKi8KKyAgICBpbnQgeTsgLyoqPCB0aGUgdmVydGljYWwgcG9zaXRpb24gb2YgdGhlIHRvdWNo
IGV2ZW50ICovCisgICAgRXZhc19Ub3VjaF9Qb2ludF9TdGF0ZSBzdGF0ZTsgLyoqPCBzdGF0ZSBv
ZiB0aGUgdG91Y2ggZXZlbnQgKi8KK307CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlm
CisKKyNlbmRpZiAvLyBld2tfdG91Y2hfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164491</attachid>
            <date>2012-09-17 21:49:39 -0700</date>
            <delta_ts>2012-09-17 23:44:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90662-20120918134906.patch</filename>
            <type>text/plain</type>
            <size>10542</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGY5YmU2ZDBhNmYwNzE3
MGM3Njc0NTQ5Y2Y5NTBkODdlMGFlNGJjYi4uNzlmMTA1OWY4ZGI4YzRiNjczZTUxZWVmNTFiOWI4
Njc4OTk1YTJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA5LTE3ICBFdW5t
aSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFk
ZCBOYXRpdmVXZWJUb3VjaEV2ZW50IGFuZCBoYW5kbGUgdGhlIFRvdWNoIGV2ZW50LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA2NjIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgY29kZXMg
dG8gaGFuZGxlIHRvdWNoIGV2ZW50IGZvciBXZWJLaXQyIEVGTCBwb3J0LgorICAgICAgICBBZGRp
dGlvbmFsbHksIHR5cGVzIGFuZCBzdHJ1Y3R1cmUgZm9yIHRvdWNoIGV2ZW50IGFyZSBkZWZpbmVk
IGJlY2F1c2UKKyAgICAgICAgdGhleSBhcmUgbm90IGluIHRoZSBFdmFzLgorCisgICAgICAgICog
UGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQu
aDoKKyAgICAgICAgKE5hdGl2ZVdlYlRvdWNoRXZlbnQpOgorICAgICAgICAqIFNoYXJlZC9lZmwv
TmF0aXZlV2ViVG91Y2hFdmVudEVmbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKFdlYktpdDo6TmF0aXZlV2ViVG91Y2hFdmVudDo6TmF0aXZlV2ViVG91Y2hFdmVudCk6
CisgICAgICAgICogU2hhcmVkL2VmbC9XZWJFdmVudEZhY3RvcnkuY3BwOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKFdlYktpdDo6dHlwZUZvclRvdWNoRXZlbnQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQpOgorICAgICAgICAqIFNo
YXJlZC9lZmwvV2ViRXZlbnRGYWN0b3J5Lmg6CisgICAgICAgIChXZWJFdmVudEZhY3RvcnkpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a190b3VjaC5oOiBBZGRlZC4KKwogMjAxMi0w
OS0xNSAgVml2ZWsgR2FsYXRhZ2UgIDx2aXZla2dhbGF0YWdlQGdtYWlsLmNvbT4KIAogICAgICAg
ICBXaW5DYWlybyBidWlsZCBmaXggZHVlIHRvIG1pc3Npbmcgc3ltYm9scyBmb3Igc2V0SW1hZ2Vz
RW5hYmxlZCBhbmQgc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNt
YWtlCmluZGV4IDNjYmI4NDYyMWFlNjhmNGNlN2Y4ODkzYzQzZDA2YWU0MWQ2YmUzYjUuLjgwMjEw
YjlmNGUzOWU1NWIwZDIzMGY2OWEwZDFiMDNhNDFlZTI2YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZs
LmNtYWtlCkBAIC0xNyw2ICsxNyw3IEBAIExJU1QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAg
IFNoYXJlZC9lZmwvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudEVmbC5jcHAKICAgICBTaGFyZWQvZWZs
L05hdGl2ZVdlYldoZWVsRXZlbnRFZmwuY3BwCiAgICAgU2hhcmVkL2VmbC9OYXRpdmVXZWJNb3Vz
ZUV2ZW50RWZsLmNwcAorICAgIFNoYXJlZC9lZmwvTmF0aXZlV2ViVG91Y2hFdmVudEVmbC5jcHAK
ICAgICBTaGFyZWQvZWZsL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEVmbC5jcHAKICAgICBTaGFyZWQv
ZWZsL1dlYkV2ZW50RmFjdG9yeS5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVX
ZWJUb3VjaEV2ZW50LmgKaW5kZXggZjIwMjE0YThmNzc4YzE4NjQ0YWJlMTgzOWY5N2M4NjcyMTM0
MGU4My4uNDliYmY4MDEwZmUxZThhYjViNzExNjQxNTM2NWU4NGViMjU1OTlhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oCkBAIC0zMCw2ICszMCw5IEBA
CiAKICNpZiBQTEFURk9STShRVCkKICNpbmNsdWRlIDxRVG91Y2hFdmVudD4KKyNlbGlmIFBMQVRG
T1JNKEVGTCkKKyNpbmNsdWRlICJld2tfdG91Y2guaCIKKyNpbmNsdWRlIDxFdmFzLmg+CiAjZW5k
aWYKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0zOCw2ICs0MSw4IEBAIGNsYXNzIE5hdGl2ZVdl
YlRvdWNoRXZlbnQgOiBwdWJsaWMgV2ViVG91Y2hFdmVudCB7CiBwdWJsaWM6CiAjaWYgUExBVEZP
Uk0oUVQpCiAgICAgZXhwbGljaXQgTmF0aXZlV2ViVG91Y2hFdmVudChjb25zdCBRVG91Y2hFdmVu
dCosIGNvbnN0IFFUcmFuc2Zvcm0mIGZyb21JdGVtVHJhbnNmb3JtKTsKKyNlbGlmIFBMQVRGT1JN
KEVGTCkKKyAgICBOYXRpdmVXZWJUb3VjaEV2ZW50KEV3a19Ub3VjaF9FdmVudF9UeXBlLCBjb25z
dCBFaW5hX0xpc3QqLCBjb25zdCBFdmFzX01vZGlmaWVyKiwgY29uc3QgRXZhc19Qb2ludCosIGRv
dWJsZSB0aW1lc3RhbXApOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShRVCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvTmF0aXZlV2ViVG91Y2hFdmVudEVmbC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL05hdGl2ZVdlYlRvdWNoRXZlbnRFZmwuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjcwZDhiYjdjNzFmNDNmYTg0NWJlMWM4YjY4YzNlNjIyOThhYzAwY2YKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL05hdGl2ZVdlYlRvdWNoRXZlbnRF
ZmwuY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3Vu
ZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
TmF0aXZlV2ViVG91Y2hFdmVudC5oIgorCisjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisK
KyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworTmF0aXZl
V2ViVG91Y2hFdmVudDo6TmF0aXZlV2ViVG91Y2hFdmVudChFd2tfVG91Y2hfRXZlbnRfVHlwZSB0
eXBlLCBjb25zdCBFaW5hX0xpc3QqIHBvaW50cywgY29uc3QgRXZhc19Nb2RpZmllciogbW9kaWZp
ZXJzLCBjb25zdCBFdmFzX1BvaW50KiBwb3NpdGlvbiwgZG91YmxlIHRpbWVzdGFtcCkKKyAgICA6
IFdlYlRvdWNoRXZlbnQoV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KHR5cGUs
IHBvaW50cywgbW9kaWZpZXJzLCBwb3NpdGlvbiwgdGltZXN0YW1wKSkKK3sKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL2VmbC9XZWJFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9X
ZWJFdmVudEZhY3RvcnkuY3BwCmluZGV4IDc0YTA1MzBhMzEyYmE5MWU1MmZmYzFjYjU3M2JhZWRh
NGI2NjVkZDguLjZlNTBlZDE5OTkzZTYyNTdjMjNiOGZmN2IzYTZhOTZmMWVkZmM4MjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvV2ViRXZlbnRGYWN0b3J5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1dlYkV2ZW50RmFjdG9yeS5jcHAKQEAgLTE5Miw0
ICsxOTIsNTYgQEAgV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktl
eWJvYXJkRXZlbnQoY29uc3QgRXZhc19FdmVudF9LZXlfVXAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBldmVudC0+dGltZXN0YW1wKTsKIH0KIAorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CitzdGF0aWMgaW5saW5lIFdlYkV2ZW50OjpUeXBlIHR5cGVGb3JUb3VjaEV2ZW50KEV3a19Ub3Vj
aF9FdmVudF9UeXBlIHR5cGUpCit7CisgICAgaWYgKHR5cGUgPT0gRVdLX1RPVUNIX1NUQVJUKQor
ICAgICAgICByZXR1cm4gV2ViRXZlbnQ6OlRvdWNoU3RhcnQ7CisgICAgaWYgKHR5cGUgPT0gRVdL
X1RPVUNIX01PVkUpCisgICAgICAgIHJldHVybiBXZWJFdmVudDo6VG91Y2hNb3ZlOworICAgIGlm
ICh0eXBlID09IEVXS19UT1VDSF9FTkQpCisgICAgICAgIHJldHVybiBXZWJFdmVudDo6VG91Y2hF
bmQ7CisgICAgaWYgKHR5cGUgPT0gRVdLX1RPVUNIX0NBTkNFTCkKKyAgICAgICAgcmV0dXJuIFdl
YkV2ZW50OjpUb3VjaENhbmNlbDsKKworICAgIHJldHVybiBXZWJFdmVudDo6Tm9UeXBlOworfQor
CitXZWJUb3VjaEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChFd2tf
VG91Y2hfRXZlbnRfVHlwZSB0eXBlLCBjb25zdCBFaW5hX0xpc3QqIHBvaW50cywgY29uc3QgRXZh
c19Nb2RpZmllciogbW9kaWZpZXJzLCBjb25zdCBFdmFzX1BvaW50KiBwb3NpdGlvbiwgZG91Ymxl
IHRpbWVzdGFtcCkKK3sKKyAgICBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiB0b3VjaFBv
aW50czsKKyAgICBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUG9pbnRTdGF0ZSBzdGF0ZTsK
KyAgICBjb25zdCBFaW5hX0xpc3QqIGxpc3Q7CisgICAgdm9pZCogaXRlbTsKKyAgICBFSU5BX0xJ
U1RfRk9SRUFDSChwb2ludHMsIGxpc3QsIGl0ZW0pIHsKKyAgICAgICAgRXdrX1RvdWNoX1BvaW50
KiBwb2ludCA9IHN0YXRpY19jYXN0PEV3a19Ub3VjaF9Qb2ludCo+KGl0ZW0pOworCisgICAgICAg
IHN3aXRjaCAocG9pbnQtPnN0YXRlKSB7CisgICAgICAgIGNhc2UgRVZBU19UT1VDSF9QT0lOVF9V
UDoKKyAgICAgICAgICAgIHN0YXRlID0gV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVh
c2VkOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRVZBU19UT1VDSF9QT0lOVF9N
T1ZFOgorICAgICAgICAgICAgc3RhdGUgPSBXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoTW92
ZWQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBFVkFTX1RPVUNIX1BPSU5UX0RP
V046CisgICAgICAgICAgICBzdGF0ZSA9IFdlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQcmVz
c2VkOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRVZBU19UT1VDSF9QT0lOVF9T
VElMTDoKKyAgICAgICAgICAgIHN0YXRlID0gV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFN0
YXRpb25hcnk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBFVkFTX1RPVUNIX1BP
SU5UX0NBTkNFTDoKKyAgICAgICAgICAgIHN0YXRlID0gV2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpU
b3VjaENhbmNlbGxlZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorCisgICAgICAgIHRvdWNoUG9pbnRzLmFwcGVuZChXZWJQbGF0Zm9ybVRvdWNoUG9pbnQo
cG9pbnQtPmlkLCBzdGF0ZSwgSW50UG9pbnQocG9pbnQtPngsIHBvaW50LT55KSwgSW50UG9pbnQo
cG9pbnQtPnggLSBwb3NpdGlvbi0+eCwgcG9pbnQtPnkgLSBwb3NpdGlvbi0+eSkpKTsKKyAgICB9
CisKKyAgICByZXR1cm4gV2ViVG91Y2hFdmVudCh0eXBlRm9yVG91Y2hFdmVudCh0eXBlKSwgdG91
Y2hQb2ludHMsIG1vZGlmaWVyc0ZvckV2ZW50KG1vZGlmaWVycyksIHRpbWVzdGFtcCk7Cit9Cisj
ZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvZWZsL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2Vm
bC9XZWJFdmVudEZhY3RvcnkuaAppbmRleCBmNDdhM2NhZWRkNzhlM2FkZTQ0NTcxM2RjYWE3OTAy
YzFmMGQ0ODUwLi45YThiMWQ2YmRhOGFkYzQ3OTc5YmVhYjk4NGE5Y2RjNGM2ZTAxZWJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1dlYkV2ZW50RmFjdG9yeS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvV2ViRXZlbnRGYWN0b3J5LmgKQEAgLTI3LDYgKzI3
LDcgQEAKICNkZWZpbmUgV2ViRXZlbnRGYWN0b3J5X2gKIAogI2luY2x1ZGUgIldlYkV2ZW50Lmgi
CisjaW5jbHVkZSAiZXdrX3RvdWNoLmgiCiAjaW5jbHVkZSA8RXZhcy5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKQEAgLTM5LDYgKzQwLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBXZWJXaGVlbEV2
ZW50IGNyZWF0ZVdlYldoZWVsRXZlbnQoY29uc3QgRXZhc19FdmVudF9Nb3VzZV9XaGVlbCosIGNv
bnN0IEV2YXNfUG9pbnQqKTsKICAgICBzdGF0aWMgV2ViS2V5Ym9hcmRFdmVudCBjcmVhdGVXZWJL
ZXlib2FyZEV2ZW50KGNvbnN0IEV2YXNfRXZlbnRfS2V5X0Rvd24qKTsKICAgICBzdGF0aWMgV2Vi
S2V5Ym9hcmRFdmVudCBjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGNvbnN0IEV2YXNfRXZlbnRfS2V5
X1VwKik7CisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBzdGF0aWMgV2ViVG91Y2hFdmVu
dCBjcmVhdGVXZWJUb3VjaEV2ZW50KEV3a19Ub3VjaF9FdmVudF9UeXBlLCBjb25zdCBFaW5hX0xp
c3QqLCBjb25zdCBFdmFzX01vZGlmaWVyKiwgY29uc3QgRXZhc19Qb2ludCosIGRvdWJsZSB0aW1l
c3RhbXApOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a190b3VjaC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3RvdWNoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWM5Y2RkNTlk
ODViZTY3MGM4NzdhYzg5ZjdlMzVjYjBlMGJjZjRlZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a190b3VjaC5oCkBAIC0wLDAgKzEsNTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIGV3a190b3VjaF9oCisjZGVmaW5lIGV3a190b3VjaF9oCisKKyNpbmNsdWRlIDxF
dmFzLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLy8v
IFJlcHJlc2VudHMgdHlwZXMgb2YgdG91Y2ggZXZlbnQuCit0eXBlZGVmIGVudW0geworICAgIEVX
S19UT1VDSF9TVEFSVCwKKyAgICBFV0tfVE9VQ0hfTU9WRSwKKyAgICBFV0tfVE9VQ0hfRU5ELAor
ICAgIEVXS19UT1VDSF9DQU5DRUwKK30gRXdrX1RvdWNoX0V2ZW50X1R5cGU7CisKKy8vLyBDcmVh
dGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX1RvdWNoX1BvaW50LgordHlwZWRlZiBzdHJ1Y3QgX0V3
a19Ub3VjaF9Qb2ludCBFd2tfVG91Y2hfUG9pbnQ7CisKKy8vLyBSZXByZXNlbnRzIGEgdG91Y2gg
cG9pbnQuCitzdHJ1Y3QgX0V3a19Ub3VjaF9Qb2ludCB7CisgICAgaW50IGlkOyAvKio8IGlkZW50
aWZpZXIgb2YgdGhlIHRvdWNoIGV2ZW50ICovCisgICAgaW50IHg7IC8qKjwgdGhlIGhvcml6b250
YWwgcG9zaXRpb24gb2YgdGhlIHRvdWNoIGV2ZW50ICovCisgICAgaW50IHk7IC8qKjwgdGhlIHZl
cnRpY2FsIHBvc2l0aW9uIG9mIHRoZSB0b3VjaCBldmVudCAqLworICAgIEV2YXNfVG91Y2hfUG9p
bnRfU3RhdGUgc3RhdGU7IC8qKjwgc3RhdGUgb2YgdGhlIHRvdWNoIGV2ZW50ICovCit9OworCisj
aWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gZXdrX3RvdWNoX2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>