<?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>63502</bug_id>
          
          <creation_ts>2011-06-27 18:56:16 -0700</creation_ts>
          <short_desc>[EFL] Move GtkWidgetBackingStoreCairo to the cairo directory and modify to use in the EFL.</short_desc>
          <delta_ts>2011-09-25 23:52:28 -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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Eunmi Lee">enmi.lee</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>antognolli+webkit</cc>
    
    <cc>eric</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>leandro</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sangseok.lim</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>youngtaeck.song</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>428561</commentid>
    <comment_count>0</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-06-27 18:56:16 -0700</bug_when>
    <thetext>I&apos;ve added EflWidgetBackingStoreCairo, and it will be used in the WebKit2 EFL&apos;s BackingStore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428574</commentid>
    <comment_count>1</comment_count>
      <attachid>98845</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-06-27 19:46:51 -0700</bug_when>
    <thetext>Created attachment 98845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428576</commentid>
    <comment_count>2</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-06-27 19:53:57 -0700</bug_when>
    <thetext>LGTM. CC&apos;ing Rafael.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428711</commentid>
    <comment_count>3</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-06-28 01:19:23 -0700</bug_when>
    <thetext>Could we avoid cc&apos;ing everyone who has reviewed an EFL patch at some point? and just cc people who have particular interest or experience in the area the patch touches?

I guess you can get an unassigned-bugs mailing list and subscribe the EFL developers to that?

Eric, do you know how to get this set up?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428818</commentid>
    <comment_count>4</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-06-28 05:48:09 -0700</bug_when>
    <thetext>&gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:48
&gt; +        int w = size.width();

These two variables could be const.

&gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:51
&gt; +        /* get cairo_surface from widget */

Is this comment really needed? If so, could you change it to a C++ comment? Remember you need to start with a capital letter and end with a period.

&gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:57
&gt; +        /* create scroll surface */

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>428824</commentid>
    <comment_count>5</comment_count>
    <who name="Lucas De Marchi">lucas.de.marchi</who>
    <bug_when>2011-06-28 05:58:52 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Could we avoid cc&apos;ing everyone who has reviewed an EFL patch at some point? and just cc people who have particular interest or experience in the area the patch touches?
&gt; 
&gt; I guess you can get an unassigned-bugs mailing list and subscribe the EFL developers to that?

Yes, I think this is the right thing to do. However I&apos;m thinking what we should do since there are no official reviewers for EFL port. Maybe CC some reviewers *after* the informal reviews?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429222</commentid>
    <comment_count>6</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2011-06-28 16:08:53 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #3)
&gt; &gt; Could we avoid cc&apos;ing everyone who has reviewed an EFL patch at some point? and just cc people who have particular interest or experience in the area the patch touches?
&gt; &gt; 
&gt; &gt; I guess you can get an unassigned-bugs mailing list and subscribe the EFL developers to that?
&gt; 
&gt; Yes, I think this is the right thing to do. However I&apos;m thinking what we should do since there are no official reviewers for EFL port. Maybe CC some reviewers *after* the informal reviews?

Or maybe try to poke the candidate reviewer on IRC first?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>429388</commentid>
    <comment_count>7</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-06-28 20:03:38 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; Could we avoid cc&apos;ing everyone who has reviewed an EFL patch at some point? and just cc people who have particular interest or experience in the area the patch touches?
&gt; &gt; &gt; 
&gt; &gt; &gt; I guess you can get an unassigned-bugs mailing list and subscribe the EFL developers to that?
&gt; &gt; 
&gt; &gt; Yes, I think this is the right thing to do. However I&apos;m thinking what we should do since there are no official reviewers for EFL port. Maybe CC some reviewers *after* the informal reviews?
&gt; 
&gt; Or maybe try to poke the candidate reviewer on IRC first?

In my opinion, it is better to find reviewers on irc after the informal reviews.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465889</commentid>
    <comment_count>8</comment_count>
      <attachid>98845</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-09-12 15:54:25 -0700</bug_when>
    <thetext>Comment on attachment 98845
Patch

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

&gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:51
&gt; +        /* get cairo_surface from widget */

Comments in webkit begin with a capital and end with a period (full sentences).  I don&apos;t hintk this comment is helpign undrestand what&apos;s going on.

&gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:54
&gt; +        m_surface = adoptRef(cairo_image_surface_create_for_data
&gt; +                             ((unsigned char*)pixels, CAIRO_FORMAT_ARGB32, w, h, w * 4));

c++ cast in a c++ file please.

&gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:57
&gt; +        /* create scroll surface */

Not helpful.  Also, you&apos;d use a // comment anyway.

&gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:86
&gt; +    targetRect.shiftMaxXEdgeTo(targetRect.maxX() - scrollOffset.width());
&gt; +    targetRect.shiftMaxYEdgeTo(targetRect.maxY() - scrollOffset.height());

I&apos;m surprised there isn&apos;t a combined function which takes an IntSize?  Is this just the same as calling setSize on the rect?

&gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:93
&gt; +    copyRectFromOneSurfaceToAnother(m_private-&gt;m_surface.get(), m_private-&gt;m_scrollSurface.get(),
&gt; +                                    scrollOffset, targetRect);
&gt; +    copyRectFromOneSurfaceToAnother(m_private-&gt;m_scrollSurface.get(), m_private-&gt;m_surface.get(),
&gt; +                                    IntSize(), targetRect);

I&apos;m not sure wrapping is helping readability here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469831</commentid>
    <comment_count>9</comment_count>
      <attachid>107949</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-09-19 17:50:34 -0700</bug_when>
    <thetext>Created attachment 107949
Add EflWidgetBackingStoreCairo.

I modified to create m_surface as a pure cairo_image_surface instead of using widget&apos;s data,
because widget&apos;s data size and WidgetBackingStore&apos;s size can be different.
And I fixed wrong comment style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469832</commentid>
    <comment_count>10</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-09-19 17:53:27 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:48
&gt; &gt; +        int w = size.width();
&gt; 
&gt; These two variables could be const.
&gt; 
&gt; &gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:51
&gt; &gt; +        /* get cairo_surface from widget */
&gt; 
&gt; Is this comment really needed? If so, could you change it to a C++ comment? Remember you need to start with a capital letter and end with a period.
&gt; 
&gt; &gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:57
&gt; &gt; +        /* create scroll surface */
&gt; 
&gt; Ditto.

Thanks for your comments :)
int w = size.width() is removed because it is not used anymore,
but I will be careful to use &quot;const&quot; for IntSize.
And I modified all comments to right style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469845</commentid>
    <comment_count>11</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-09-19 18:17:47 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 98845 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=98845&amp;action=review
&gt; 

Thank you for your comments.

&gt; &gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:51
&gt; &gt; +        /* get cairo_surface from widget */
&gt; 
&gt; Comments in webkit begin with a capital and end with a period (full sentences).  I don&apos;t hintk this comment is helpign undrestand what&apos;s going on.
&gt; 
&gt; &gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:54
&gt; &gt; +        m_surface = adoptRef(cairo_image_surface_create_for_data
&gt; &gt; +                             ((unsigned char*)pixels, CAIRO_FORMAT_ARGB32, w, h, w * 4));
&gt; 
&gt; c++ cast in a c++ file please.
&gt; 
&gt; &gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:57
&gt; &gt; +        /* create scroll surface */
&gt; 
&gt; Not helpful.  Also, you&apos;d use a // comment anyway.
&gt; 

I modified all comments in the code as your advice,
and type-casting code is removed but I will be careful to use type-casting.

&gt; &gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:86
&gt; &gt; +    targetRect.shiftMaxXEdgeTo(targetRect.maxX() - scrollOffset.width());
&gt; &gt; +    targetRect.shiftMaxYEdgeTo(targetRect.maxY() - scrollOffset.height());
&gt; 
&gt; I&apos;m surprised there isn&apos;t a combined function which takes an IntSize?  Is this just the same as calling setSize on the rect?
&gt; 

Yes, actually it is same with setSize with checking that size is bigger than 0.
So, I modified above two line as follows:
+    targetRect.setWidth(std::max(0, targetRect.width() - scrollOffset.width()));
+    targetRect.setHeight(std::max(0, targetRect.height() - scrollOffset.height()));

&gt; &gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:93
&gt; &gt; +    copyRectFromOneSurfaceToAnother(m_private-&gt;m_surface.get(), m_private-&gt;m_scrollSurface.get(),
&gt; &gt; +                                    scrollOffset, targetRect);
&gt; &gt; +    copyRectFromOneSurfaceToAnother(m_private-&gt;m_scrollSurface.get(), m_private-&gt;m_surface.get(),
&gt; &gt; +                                    IntSize(), targetRect);
&gt; 
&gt; I&apos;m not sure wrapping is helping readability here.

That codes are for coping reusable area within the m_surface when scrolling.
m_surface&apos;s reusable area is copied to m_scrollSurface (temporary),
and then copied area of m_scrollSurface is copied to the m_surface again.
For that, I use the copyRectFromOneSurfaceToAnother function in the CairoUtilities.cpp.
Do you think it is better to use cairo operation directly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469947</commentid>
    <comment_count>12</comment_count>
      <attachid>98845</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-09-20 01:13:13 -0700</bug_when>
    <thetext>Comment on attachment 98845
Patch

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

&gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:42
&gt; +private:

When you make a private class it is common to have everything just public as it is protected anyway.

&gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:49
&gt; +        int w = size.width();
&gt; +        int h = size.height();

We normally write things out, ie. width, height and not w, h

&gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:81
&gt; +void WidgetBackingStore::scroll(const IntRect&amp; scrollRect, const IntSize&amp; scrollOffset)

Maybe const IntRect&amp; areaToScroll, const IntSize&amp; delta) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469960</commentid>
    <comment_count>13</comment_count>
      <attachid>107977</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-09-20 02:05:57 -0700</bug_when>
    <thetext>Created attachment 107977
Add EflWidgetBackingStoreCairo.

Remove unnecessary private keyword.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469961</commentid>
    <comment_count>14</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-09-20 02:12:13 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 98845 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=98845&amp;action=review
&gt; 

Kenneth, thanks for your review :)

&gt; &gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:42
&gt; &gt; +private:
&gt; 
&gt; When you make a private class it is common to have everything just public as it is protected anyway.

Ok, you are right, so I removed private keyword.

&gt; 
&gt; &gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:49
&gt; &gt; +        int w = size.width();
&gt; &gt; +        int h = size.height();
&gt; 
&gt; We normally write things out, ie. width, height and not w, h
&gt;

That codes are not used anymore, but I will be careful to use full word for variable&apos;s name.
 
&gt; &gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:81
&gt; &gt; +void WidgetBackingStore::scroll(const IntRect&amp; scrollRect, const IntSize&amp; scrollOffset)
&gt; 
&gt; Maybe const IntRect&amp; areaToScroll, const IntSize&amp; delta) ?

Yes, scrollRect means areaToScroll and scrollOffset means delta of scroll.
But, scroll function will be used at WebKit2&apos;s BackingStore and its parameters will be filled with updateInfo.scrollRect and updateInfo.scrollOffset.
So, I think current parameter name will be useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470056</commentid>
    <comment_count>15</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-09-20 07:39:30 -0700</bug_when>
    <thetext>This code is 99% equal to WebCore/platform/gtk/GtkWidgetBackingStoreCairo.cpp, the only difference in functionality is in the code to set m_surface and m_scrollSurface.

mrobinson, wouldn&apos;t it make sense to move this code to cairo/WidgetBackingStore.cpp, leaving only the surface creation to each platform?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470390</commentid>
    <comment_count>16</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-09-20 15:16:41 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; This code is 99% equal to WebCore/platform/gtk/GtkWidgetBackingStoreCairo.cpp, the only difference in functionality is in the code to set m_surface and m_scrollSurface.
&gt; 
&gt; mrobinson, wouldn&apos;t it make sense to move this code to cairo/WidgetBackingStore.cpp, leaving only the surface creation to each platform?

This was one of the reasons I originally made a private data section for this class. Can&apos;t we just put the common code in cairo/WidgetBackingStoreCairo.cpp and then move the private data structures to platform-dependent files?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470593</commentid>
    <comment_count>17</comment_count>
      <attachid>107977</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-09-20 21:59:19 -0700</bug_when>
    <thetext>Comment on attachment 107977
Add EflWidgetBackingStoreCairo.

Yeah, I also think this is the way to go, so I&apos;m r-&apos;ing this patch.

Eunmi, could you please try to work on that direction and submit a new patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470594</commentid>
    <comment_count>18</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-09-20 22:05:56 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 107977 [details])
&gt; Yeah, I also think this is the way to go, so I&apos;m r-&apos;ing this patch.
&gt; 

As far as I know, we should not set r+ nor r- in unofficial review.

&quot; Note that you should not put r+ nor r- on patches in such unofficial reviews.&quot;
http://www.webkit.org/coding/commit-review-policy.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470596</commentid>
    <comment_count>19</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-09-20 22:12:26 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 107977 [details])
&gt; Yeah, I also think this is the way to go, so I&apos;m r-&apos;ing this patch.
&gt; 
&gt; Eunmi, could you please try to work on that direction and submit a new patch?

Ok, I agree with you and mrobinson.
I will make a new patch soon. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470741</commentid>
    <comment_count>20</comment_count>
    <who name="Lucas De Marchi">lucas.de.marchi</who>
    <bug_when>2011-09-21 06:25:46 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; (From update of attachment 107977 [details] [details])
&gt; &gt; Yeah, I also think this is the way to go, so I&apos;m r-&apos;ing this patch.
&gt; &gt; 
&gt; 
&gt; As far as I know, we should not set r+ nor r- in unofficial review.
&gt; 
&gt; &quot; Note that you should not put r+ nor r- on patches in such unofficial reviews.&quot;
&gt; http://www.webkit.org/coding/commit-review-policy.html

This is not how things are working. Since official reviewers want our informal r+, letting it as &quot;r?&quot; will only make a lot of bugs appear as unreviewed on  &quot;webkit-patch patches-to-review&quot;. And this is what Eric Seidel, for e.g., uses to review EFL bug requests. In fact he said me it&apos;s fine for informal-reviewers to set r- after we had some problems with him rubber-stamping bugs that were already informally r- but without removing the &quot;r?&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471313</commentid>
    <comment_count>21</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-09-21 18:34:18 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #18)
&gt; &gt; (In reply to comment #17)
&gt; &gt; &gt; (From update of attachment 107977 [details] [details] [details])
&gt; &gt; &gt; Yeah, I also think this is the way to go, so I&apos;m r-&apos;ing this patch.
&gt; &gt; &gt; 
&gt; &gt; 
&gt; &gt; As far as I know, we should not set r+ nor r- in unofficial review.
&gt; &gt; 
&gt; &gt; &quot; Note that you should not put r+ nor r- on patches in such unofficial reviews.&quot;
&gt; &gt; http://www.webkit.org/coding/commit-review-policy.html
&gt; 
&gt; This is not how things are working. Since official reviewers want our informal r+, letting it as &quot;r?&quot; will only make a lot of bugs appear as unreviewed on  &quot;webkit-patch patches-to-review&quot;. And this is what Eric Seidel, for e.g., uses to review EFL bug requests. In fact he said me it&apos;s fine for informal-reviewers to set r- after we had some problems with him rubber-stamping bugs that were already informally r- but without removing the &quot;r?&quot;.

If reviewers said that is ok, I&apos;m no problem, thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471321</commentid>
    <comment_count>22</comment_count>
      <attachid>108266</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-09-21 19:08:14 -0700</bug_when>
    <thetext>Created attachment 108266
Add EflWidgetBackingStoreCairo.

I&apos;ve created platform/cairo/WidgetBackingStoreCairo.cpp and moved common code of Efl and Gtk there.
Only WidgetBackingStorePrivate related code is remained in the each platform&apos;s WidgetBackingStoreCairo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471335</commentid>
    <comment_count>23</comment_count>
      <attachid>108266</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-09-21 20:57:09 -0700</bug_when>
    <thetext>Comment on attachment 108266
Add EflWidgetBackingStoreCairo.

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

There&apos;s more code to share here. I really meant it when I said 99% of the files were equal. The only difference between EflWidgetBackingStoreCairo and GtkWidgetBackingStoreCairo is that the former uses cairo_image_surface_create and the latter uses gdk_window_create_similar_surface to set WidgetBackingStorePrivate::{m_surface,m_scrollSurface}.

Please try to factor out even more common code.

&gt; Source/WebCore/ChangeLog:20
&gt; +        * platform/cairo/WidgetBackingStoreCairo.cpp: Added.

To me, it makes more sense to name it WidgetBackingStore.cpp to match its header.

&gt; Source/WebCore/platform/cairo/WidgetBackingStoreCairo.cpp:39
&gt; +    targetRect.setWidth(std::max(0, targetRect.width() - scrollOffset.width()));

targetRect.shiftMaxXEdgeTo() looks cleaner -- Eric&apos;s question in comment #8 was really a question, not a request for you to change the code.

&gt; Source/WebCore/platform/cairo/WidgetBackingStoreCairo.cpp:40
&gt; +    targetRect.setHeight(std::max(0, targetRect.height() - scrollOffset.height()));

Ditto.

&gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:44
&gt; +    WidgetBackingStorePrivate(const IntSize&amp; size)

I prefer gtk&apos;s approach of setting m_surface and m_scrollSurface in the initialization list.

&gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:53
&gt; +WidgetBackingStore::WidgetBackingStore(Evas_Object* widget, const IntSize&amp; size)

widget is not being used, and its type should be PlatformWidget.

&gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:62
&gt; +cairo_surface_t* WidgetBackingStore::cairoSurface()

This is common code.

&gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:67
&gt; +void WidgetBackingStore::scroll(const IntRect&amp; scrollRect, const IntSize&amp; scrollOffset)

This is common code.

&gt; Source/WebCore/platform/gtk/GtkWidgetBackingStoreCairo.cpp:62
&gt;  WidgetBackingStore::WidgetBackingStore(GtkWidget* widget, const IntSize&amp; size)

widget&apos;s type could be changed to PlatformWidget.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471336</commentid>
    <comment_count>24</comment_count>
      <attachid>108266</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-21 20:57:36 -0700</bug_when>
    <thetext>Comment on attachment 108266
Add EflWidgetBackingStoreCairo.

Rejecting attachment 108266 from commit-queue.

kubo@profusion.mobi does not have committer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/committers.py.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471344</commentid>
    <comment_count>25</comment_count>
      <attachid>108266</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-09-21 21:08:48 -0700</bug_when>
    <thetext>Comment on attachment 108266
Add EflWidgetBackingStoreCairo.

I agree that much more of this code could be shared. It seems like you could create PassRefPtr&lt;cairo_surface_t&gt; createSurfaceForBackingStore(GtkWidget* widget, const IntSize&amp; size)  for each both GTK+ and EFL and share the rest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472038</commentid>
    <comment_count>26</comment_count>
      <attachid>108437</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-09-22 20:28:39 -0700</bug_when>
    <thetext>Created attachment 108437
Patch for WidgetBackingStoreCairo

I moved gtk/GtkWidgetBackingStoreCairo.cpp to the cairo/WidgetBackingStoreCairo.cpp
to share the WidgetBackingStoreCairo with EFL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472045</commentid>
    <comment_count>27</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-09-22 20:45:05 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (From update of attachment 108266 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=108266&amp;action=review
&gt; 

Thank you for your detailed comments!
Now, I&apos;ve moved every duplicated codes to the WidgetBackingStoreCairo.

&gt; There&apos;s more code to share here. I really meant it when I said 99% of the files were equal. The only difference between EflWidgetBackingStoreCairo and GtkWidgetBackingStoreCairo is that the former uses cairo_image_surface_create and the latter uses gdk_window_create_similar_surface to set WidgetBackingStorePrivate::{m_surface,m_scrollSurface}.
&gt; 
&gt; Please try to factor out even more common code.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:20
&gt; &gt; +        * platform/cairo/WidgetBackingStoreCairo.cpp: Added.
&gt; 
&gt; To me, it makes more sense to name it WidgetBackingStore.cpp to match its header.

I think it is better to use WidgetBackingStoreCairo.cpp in order to distinguish with GtkWidgetBackingStoreX11.cpp. Both of them use WidgetBackingStore.h.

&gt; 
&gt; &gt; Source/WebCore/platform/cairo/WidgetBackingStoreCairo.cpp:39
&gt; &gt; +    targetRect.setWidth(std::max(0, targetRect.width() - scrollOffset.width()));
&gt; 
&gt; targetRect.shiftMaxXEdgeTo() looks cleaner -- Eric&apos;s question in comment #8 was really a question, not a request for you to change the code.
&gt; 
&gt; &gt; Source/WebCore/platform/cairo/WidgetBackingStoreCairo.cpp:40
&gt; &gt; +    targetRect.setHeight(std::max(0, targetRect.height() - scrollOffset.height()));
&gt; 
&gt; Ditto.
&gt;

There was a misunderstanding because of my limited English.
So, I leaved shiftMaxXEdgeTo for readability.

&gt; &gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:44
&gt; &gt; +    WidgetBackingStorePrivate(const IntSize&amp; size)
&gt; 
&gt; I prefer gtk&apos;s approach of setting m_surface and m_scrollSurface in the initialization list.
&gt; 

I integrated with gtk&apos;s approach.

&gt; &gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:53
&gt; &gt; +WidgetBackingStore::WidgetBackingStore(Evas_Object* widget, const IntSize&amp; size)
&gt; 
&gt; widget is not being used, and its type should be PlatformWidget.
&gt; 
&gt; &gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:62
&gt; &gt; +cairo_surface_t* WidgetBackingStore::cairoSurface()
&gt; 
&gt; This is common code.
&gt; 
&gt; &gt; Source/WebCore/platform/efl/EflWidgetBackingStoreCairo.cpp:67
&gt; &gt; +void WidgetBackingStore::scroll(const IntRect&amp; scrollRect, const IntSize&amp; scrollOffset)
&gt; 
&gt; This is common code.
&gt; 

All common codes have been integrated.

&gt; &gt; Source/WebCore/platform/gtk/GtkWidgetBackingStoreCairo.cpp:62
&gt; &gt;  WidgetBackingStore::WidgetBackingStore(GtkWidget* widget, const IntSize&amp; size)
&gt; 
&gt; widget&apos;s type could be changed to PlatformWidget.

I used PlatformWidget in the cairo/WidgetBackingStoreCairo.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472046</commentid>
    <comment_count>28</comment_count>
      <attachid>108437</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-09-22 20:45:57 -0700</bug_when>
    <thetext>Comment on attachment 108437
Patch for WidgetBackingStoreCairo

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

Informal r+ from my side once you answer the question below, the patch looks much better now.

My only concern is the way you created WidgetbackingStoreCairo.cpp -- did you properly copy GtkWidgetBackingStore.cpp and then changed it? Preserving history across renames is very important.

&gt; Source/WebCore/ChangeLog:17
&gt; +        * platform/cairo/WidgetBackingStoreCairo.cpp: Added.

Shouldn&apos;t this say &apos;Copied from foo/bar.cpp&apos;? Make sure you use svn cp (or the git equivalent here).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472048</commentid>
    <comment_count>29</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-09-22 20:47:49 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (From update of attachment 108266 [details])
&gt; I agree that much more of this code could be shared. It seems like you could create PassRefPtr&lt;cairo_surface_t&gt; createSurfaceForBackingStore(GtkWidget* widget, const IntSize&amp; size)  for each both GTK+ and EFL and share the rest.

Thanks for your comment.
I&apos;ve integrated all codes in the cairo/WidgetBackingStoreCairo.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472049</commentid>
    <comment_count>30</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-09-22 20:51:09 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; (From update of attachment 108437 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=108437&amp;action=review
&gt; 
&gt; Informal r+ from my side once you answer the question below, the patch looks much better now.
&gt; 
&gt; My only concern is the way you created WidgetbackingStoreCairo.cpp -- did you properly copy GtkWidgetBackingStore.cpp and then changed it? Preserving history across renames is very important.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:17
&gt; &gt; +        * platform/cairo/WidgetBackingStoreCairo.cpp: Added.
&gt; 
&gt; Shouldn&apos;t this say &apos;Copied from foo/bar.cpp&apos;? Make sure you use svn cp (or the git equivalent here).

Yes, it is better to understand history of change. I will modify changelog as your comment :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472050</commentid>
    <comment_count>31</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-09-22 20:53:10 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; (In reply to comment #28)
&gt; &gt; &gt; Source/WebCore/ChangeLog:17
&gt; &gt; &gt; +        * platform/cairo/WidgetBackingStoreCairo.cpp: Added.
&gt; &gt; 
&gt; &gt; Shouldn&apos;t this say &apos;Copied from foo/bar.cpp&apos;? Make sure you use svn cp (or the git equivalent here).
&gt; 
&gt; Yes, it is better to understand history of change. I will modify changelog as your comment :)

My point is that the tools you used to generate this patch (webkit-patch or prepare-ChangeLog) should have done this automatically. If they have not, I fear the commit bot will just svn rm GtkWidgetBackingStoreCairo.cpp and svn add WidgetBackingStoreCairo.cpp instead of using svn mv (I&apos;m not sure, though).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472057</commentid>
    <comment_count>32</comment_count>
      <attachid>108438</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-09-22 21:18:18 -0700</bug_when>
    <thetext>Created attachment 108438
Patch for WidgetBackingStoreCairo

I created changelog again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472061</commentid>
    <comment_count>33</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-09-22 21:22:21 -0700</bug_when>
    <thetext>(In reply to comment #32)
&gt; Created an attachment (id=108438) [details]
&gt; Patch for WidgetBackingStoreCairo
&gt; 
&gt; I created changelog again.

Was the &quot;Renamed from&quot; part automatically generated (ie. you did a proper svn mv when creating the patch)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472062</commentid>
    <comment_count>34</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-09-22 21:27:36 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; (In reply to comment #32)
&gt; &gt; Created an attachment (id=108438) [details] [details]
&gt; &gt; Patch for WidgetBackingStoreCairo
&gt; &gt; 
&gt; &gt; I created changelog again.
&gt; 
&gt; Was the &quot;Renamed from&quot; part automatically generated (ie. you did a proper svn mv when creating the patch)?

Yes, it was automatically generated.

I reused changelog of old patch and modify that by hand, and it was a problem.
So, I made patch again in the scratch.
I did &quot;git mv gtk/GtkWidgetBackingStoreCairo.cpp cairo/WidgetBackingStoreCairo.cpp&quot; and then modified all codes again.
Finally, I could get new ChangeLog using &quot;Tools/Scripts/prepare-ChangeLog&quot;.

I&apos;m using git, so I use &quot;git mv&quot; because there is no &quot;git copy&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472063</commentid>
    <comment_count>35</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-09-22 21:32:33 -0700</bug_when>
    <thetext>Right, informal r+ then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472202</commentid>
    <comment_count>36</comment_count>
      <attachid>108437</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-09-23 06:35:13 -0700</bug_when>
    <thetext>Comment on attachment 108437
Patch for WidgetBackingStoreCairo

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

Much nicer, but please fix the minor stuff below. :)

&gt; Source/WebCore/platform/cairo/WidgetBackingStoreCairo.cpp:23
&gt; +#if (PLATFORM(GTK) &amp;&amp; !defined(XP_UNIX)) || PLATFORM(EFL)

You shouldn&apos;t need this line. If a platform doesn&apos;t want to compile this file, they just won&apos;t have it on their source list.

&gt; Source/WebCore/platform/cairo/WidgetBackingStoreCairo.cpp:45
&gt; +#elif PLATFORM(EFL)
&gt; +    return adoptRef(cairo_image_surface_create(CAIRO_FORMAT_ARGB32, size.width(), size.height()));
&gt; +#else
&gt; +    return nullptr;
&gt; +#endif

It would be better to simply have

#if PLATFORM(GTK)
...
#else
    return adoptRef(cairo_image_surface_create(CAIRO_FORMAT_ARGB32, size.width(), size.height()));
#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472942</commentid>
    <comment_count>37</comment_count>
      <attachid>108620</attachid>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-09-25 19:13:47 -0700</bug_when>
    <thetext>Created attachment 108620
Patch for WidgetBackingStoreCairo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472943</commentid>
    <comment_count>38</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-09-25 19:18:15 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; (From update of attachment 108437 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=108437&amp;action=review
&gt; 
&gt; Much nicer, but please fix the minor stuff below. :)
&gt; 

Thanks for your comments again :)

&gt; &gt; Source/WebCore/platform/cairo/WidgetBackingStoreCairo.cpp:23
&gt; &gt; +#if (PLATFORM(GTK) &amp;&amp; !defined(XP_UNIX)) || PLATFORM(EFL)
&gt; 
&gt; You shouldn&apos;t need this line. If a platform doesn&apos;t want to compile this file, they just won&apos;t have it on their source list.
&gt; 

Ok, so I removed that line and modified GNUmakefile.list.am to add GtkWidgetBackingStoreX11.cpp for TARGET_X11 and WidgetBackingStoreCairo.cpp for TARGET_WIN32.

&gt; &gt; Source/WebCore/platform/cairo/WidgetBackingStoreCairo.cpp:45
&gt; &gt; +#elif PLATFORM(EFL)
&gt; &gt; +    return adoptRef(cairo_image_surface_create(CAIRO_FORMAT_ARGB32, size.width(), size.height()));
&gt; &gt; +#else
&gt; &gt; +    return nullptr;
&gt; &gt; +#endif
&gt; 
&gt; It would be better to simply have
&gt; 
&gt; #if PLATFORM(GTK)
&gt; ...
&gt; #else
&gt;     return adoptRef(cairo_image_surface_create(CAIRO_FORMAT_ARGB32, size.width(), size.height()));
&gt; #endif

Done. I modified as your comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472944</commentid>
    <comment_count>39</comment_count>
      <attachid>108620</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-09-25 19:19:45 -0700</bug_when>
    <thetext>Comment on attachment 108620
Patch for WidgetBackingStoreCairo

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

&gt; Source/WebCore/platform/cairo/WidgetBackingStoreCairo.cpp:94
&gt; +        return;

Despite of trivial nit, it seems there is an unneeded space in front of return keyword.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472946</commentid>
    <comment_count>40</comment_count>
    <who name="Eunmi Lee">enmi.lee</who>
    <bug_when>2011-09-25 19:26:10 -0700</bug_when>
    <thetext>(In reply to comment #39)
&gt; (From update of attachment 108620 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=108620&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/cairo/WidgetBackingStoreCairo.cpp:94
&gt; &gt; +        return;
&gt; 
&gt; Despite of trivial nit, it seems there is an unneeded space in front of return keyword.

There are 8 spaces in front of &apos;return&apos;. What is wrong?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472947</commentid>
    <comment_count>41</comment_count>
      <attachid>108620</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-09-25 19:32:13 -0700</bug_when>
    <thetext>Comment on attachment 108620
Patch for WidgetBackingStoreCairo

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

&gt;&gt;&gt; Source/WebCore/platform/cairo/WidgetBackingStoreCairo.cpp:94
&gt;&gt;&gt; +        return;
&gt;&gt; 
&gt;&gt; Despite of trivial nit, it seems there is an unneeded space in front of return keyword.
&gt; 
&gt; There are 8 spaces in front of &apos;return&apos;. What is wrong?

Sorry, there is no problem. I mistake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472980</commentid>
    <comment_count>42</comment_count>
      <attachid>108620</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-25 23:52:20 -0700</bug_when>
    <thetext>Comment on attachment 108620
Patch for WidgetBackingStoreCairo

Clearing flags on attachment: 108620

Committed r95935: &lt;http://trac.webkit.org/changeset/95935&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472981</commentid>
    <comment_count>43</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-25 23:52:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98845</attachid>
            <date>2011-06-27 19:46:51 -0700</date>
            <delta_ts>2011-09-20 01:13:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63502-20110628114726.patch</filename>
            <type>text/plain</type>
            <size>6419</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODk4ODUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHNFZmwudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKaW5kZXgg
ZWNlZmUwMGUyMDFlZDdlM2Y2ZGJiZGM4OWI2MjU3ZjNlNjQ2ZGE4Mi4uYWM0ZDNjYzgzMjliMWRh
NDgzZDBlNjE0N2E0ODk3Y2YzYzJmNGUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0c0VmbC50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKQEAg
LTgzLDkgKzgzLDExIEBAIExJU1QoQVBQRU5EIFdlYkNvcmVfVVNFUl9BR0VOVF9TVFlMRV9TSEVF
VFMKIAogSUYgKFdURl9VU0VfQ0FJUk8pCiAgIExJU1QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9E
SVJFQ1RPUklFUworICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9jYWlybyIKICAgICAiJHtX
RUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8iCiAgICkKICAgTElTVChBUFBFTkQg
V2ViQ29yZV9TT1VSQ0VTCisgICAgcGxhdGZvcm0vZWZsL0VmbFdpZGdldEJhY2tpbmdTdG9yZUNh
aXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NvbnRleHRTaGFkb3dDYWlyby5jcHAKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDM4Yzkx
Y2FmYTBjMTE1Nzk1ZTYxNDExMWU2NDIxY2Q3MzJmYWNiMy4uNjZlNWI1NTg0ODliOGVmNDcxNjg0
YWJjY2FjODg3MTRmMjU1NGQyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDExLTA2
LTI3ICBFdW5taSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbRUZMXSBBZGQgRWZsV2lkZ2V0QmFj
a2luZ1N0b3JlQ2Fpcm8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYzNTAyCisKKyAgICAgICAgQWRkIFdpZGdldEJhY2tpbmdTdG9yZUNhaXJvIGZvciBF
RkwgcG9ydC4KKyAgICAgICAgSXQgd2lsbCBiZSB1c2VkIGluIHRoZSBXZWJLaXQyIEVGTCBwb3J0
J3MgQmFja2luZ1N0b3JlLgorCisgICAgICAgICogQ01ha2VMaXN0c0VmbC50eHQ6CisgICAgICAg
ICogcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlLmg6CisgICAgICAgICogcGxhdGZv
cm0vZWZsL0VmbFdpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZTo6V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5nU3RvcmU6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5nU3RvcmU6OldpZGdldEJhY2tpbmdTdG9yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXaWRnZXRCYWNraW5nU3RvcmU6On5XaWRnZXRCYWNraW5nU3RvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlOjpjYWlyb1N1cmZhY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlOjpzY3JvbGwpOgorCiAyMDExLTA2
LTI3ICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KIAogICAgICAgICBG
aXggdGhlIFdlYkNvcmUgdmNwcm9qIGZpbGUgYWZ0ZXIgcjg5ODUxLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmUuaAppbmRleCA3MGQxYzkx
MDZlZWZlNDJhMzg1ZDUwYTdmYWU3ZDg4YzU5NzJiOGYzLi5lMzdlOTllNjE3MzUzNWYyMTJkYjA4
NzAwZTkyOWJmN2U5YWJkYjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
YWlyby9XaWRnZXRCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
YWlyby9XaWRnZXRCYWNraW5nU3RvcmUuaApAQCAtMjcsNiArMjcsOCBAQAogCiAjaWYgUExBVEZP
Uk0oR1RLKQogI2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNlbGlmIFBMQVRGT1JNKEVGTCkKKyNpbmNs
dWRlIDxFdmFzLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUsNiArMzcs
OCBAQCBjbGFzcyBXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOwogCiAjaWYgUExBVEZPUk0oR1RL
KQogdHlwZWRlZiBHdGtXaWRnZXQqIFBsYXRmb3JtV2lkZ2V0OworI2VsaWYgUExBVEZPUk0oRUZM
KQordHlwZWRlZiBFdmFzX09iamVjdCogUGxhdGZvcm1XaWRnZXQ7CiAjZW5kaWYKIAogY2xhc3Mg
V2lkZ2V0QmFja2luZ1N0b3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9FZmxXaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvRWZsV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzMWNh
NjU3ZGU0ZTk5OTFjMjEyNDM2ZDBlY2RiYTgwYThlM2EzOGYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZsV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3Bw
CkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIElnYWxpYSBTLkwu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIx
MTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldpZGdl
dEJhY2tpbmdTdG9yZS5oIgorCisjaW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXMuY3BwIgorI2luY2x1
ZGUgIlJlZlB0ckNhaXJvLmgiCisjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlIHsKKyAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKTsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKKworcHVibGljOgorICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+
IG1fc3VyZmFjZTsKKyAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBtX3Njcm9sbFN1cmZhY2U7
CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlPiBjcmVh
dGUoRXZhc19PYmplY3QqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSh3aWRnZXQs
IHNpemUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgLy8gV2Uga2VlcCB0d28gY29waWVzIG9m
IHRoZSBzdXJmYWNlIGhlcmUsIHdoaWNoIHdpbGwgZG91YmxlIHRoZSBtZW1vcnkgdXNhZ2UsIGJ1
dCBpbmNyZWFzZQorICAgIC8vIHNjcm9sbGluZyBwZXJmb3JtYW5jZSBzaW5jZSB3ZSBkbyBub3Qg
aGF2ZSB0byBrZWVwIHJlYWxsb2NhdGluZyBhIG1lbW9yeSByZWdpb24gZHVyaW5nCisgICAgLy8g
cXVpY2sgc2Nyb2xsaW5nIHJlcXVlc3RzLgorICAgIFdpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUo
RXZhc19PYmplY3QqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICB7CisgICAgICAg
IGludCB3ID0gc2l6ZS53aWR0aCgpOworICAgICAgICBpbnQgaCA9IHNpemUuaGVpZ2h0KCk7CisK
KyAgICAgICAgLyogZ2V0IGNhaXJvX3N1cmZhY2UgZnJvbSB3aWRnZXQgKi8KKyAgICAgICAgdm9p
ZCogcGl4ZWxzID0gZXZhc19vYmplY3RfaW1hZ2VfZGF0YV9nZXQod2lkZ2V0LCAxKTsKKyAgICAg
ICAgbV9zdXJmYWNlID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2Rh
dGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh1bnNpZ25lZCBjaGFyKilwaXhlbHMs
IENBSVJPX0ZPUk1BVF9BUkdCMzIsIHcsIGgsIHcgKiA0KSk7CisgICAgICAgIGV2YXNfb2JqZWN0
X2ltYWdlX2RhdGFfc2V0KHdpZGdldCwgcGl4ZWxzKTsgLyogZGVjcmVhc2UgcmVmZXJlbmNlIGNv
dW50ICovCisKKyAgICAgICAgLyogY3JlYXRlIHNjcm9sbCBzdXJmYWNlICovCisgICAgICAgIG1f
c2Nyb2xsU3VyZmFjZSA9IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlKENBSVJP
X0ZPUk1BVF9BUkdCMzIsIHcsIGgpKTsKKyAgICB9Cit9OworCitQYXNzT3duUHRyPFdpZGdldEJh
Y2tpbmdTdG9yZT4gV2lkZ2V0QmFja2luZ1N0b3JlOjpjcmVhdGUoRXZhc19PYmplY3QqIHdpZGdl
dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdpZGdl
dEJhY2tpbmdTdG9yZSh3aWRnZXQsIHNpemUpKTsKK30KKworV2lkZ2V0QmFja2luZ1N0b3JlOjpX
aWRnZXRCYWNraW5nU3RvcmUoRXZhc19PYmplY3QqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6
ZSkKKyAgICA6IG1fcHJpdmF0ZShXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOjpjcmVhdGUod2lk
Z2V0LCBzaXplKSkKK3sKK30KKworV2lkZ2V0QmFja2luZ1N0b3JlOjp+V2lkZ2V0QmFja2luZ1N0
b3JlKCkKK3sKK30KKworY2Fpcm9fc3VyZmFjZV90KiBXaWRnZXRCYWNraW5nU3RvcmU6OmNhaXJv
U3VyZmFjZSgpCit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bV9zdXJmYWNlLmdldCgpOworfQor
Cit2b2lkIFdpZGdldEJhY2tpbmdTdG9yZTo6c2Nyb2xsKGNvbnN0IEludFJlY3QmIHNjcm9sbFJl
Y3QsIGNvbnN0IEludFNpemUmIHNjcm9sbE9mZnNldCkKK3sKKyAgICBJbnRSZWN0IHRhcmdldFJl
Y3Qoc2Nyb2xsUmVjdCk7CisgICAgdGFyZ2V0UmVjdC5tb3ZlKHNjcm9sbE9mZnNldCk7CisgICAg
dGFyZ2V0UmVjdC5zaGlmdE1heFhFZGdlVG8odGFyZ2V0UmVjdC5tYXhYKCkgLSBzY3JvbGxPZmZz
ZXQud2lkdGgoKSk7CisgICAgdGFyZ2V0UmVjdC5zaGlmdE1heFlFZGdlVG8odGFyZ2V0UmVjdC5t
YXhZKCkgLSBzY3JvbGxPZmZzZXQuaGVpZ2h0KCkpOworICAgIGlmICh0YXJnZXRSZWN0LmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29weVJlY3RGcm9tT25lU3VyZmFjZVRvQW5v
dGhlcihtX3ByaXZhdGUtPm1fc3VyZmFjZS5nZXQoKSwgbV9wcml2YXRlLT5tX3Njcm9sbFN1cmZh
Y2UuZ2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxPZmZz
ZXQsIHRhcmdldFJlY3QpOworICAgIGNvcHlSZWN0RnJvbU9uZVN1cmZhY2VUb0Fub3RoZXIobV9w
cml2YXRlLT5tX3Njcm9sbFN1cmZhY2UuZ2V0KCksIG1fcHJpdmF0ZS0+bV9zdXJmYWNlLmdldCgp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50U2l6ZSgpLCB0YXJnZXRS
ZWN0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>
<flag name="review"
          id="93178"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107949</attachid>
            <date>2011-09-19 17:50:34 -0700</date>
            <delta_ts>2011-09-20 02:05:57 -0700</delta_ts>
            <desc>Add EflWidgetBackingStoreCairo.</desc>
            <filename>EflWidgetBackingStoreCairo.patch</filename>
            <type>text/plain</type>
            <size>5695</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHNFZmwudHh0IGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKaW5kZXggMzNjZmFkNC4uN2FlNDk5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0c0VmbC50eHQKQEAgLTgzLDkgKzgzLDExIEBAIExJU1QoQVBQRU5EIFdlYkNvcmVf
VVNFUl9BR0VOVF9TVFlMRV9TSEVFVFMKIAogSUYgKFdURl9VU0VfQ0FJUk8pCiAgIExJU1QoQVBQ
RU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICIke1dFQkNPUkVfRElSfS9wbGF0
Zm9ybS9jYWlybyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8i
CiAgICkKICAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgcGxhdGZvcm0vZWZsL0Vm
bFdpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0NhaXJvVXRpbGl0aWVzLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWly
by5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFkaWVudENhaXJvLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDYwOTA3NWUuLjE1MDIyZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAxMS0wOS0xOSAgRXVubWkgTGVlICA8ZXVubWkxNS5sZWVAc2Ftc3VuZy5jb20+CisKKyAgICAg
ICAgW0VGTF0gQWRkIEVmbFdpZGdldEJhY2tpbmdTdG9yZUNhaXJvCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzUwMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXaWRnZXRCYWNraW5nU3RvcmVDYWly
byBmb3IgRUZMIHBvcnQuCisgICAgICAgIEl0IGNyZWF0ZXMgY2Fpcm9faW1hZ2Vfc3VyZmFjZSBh
bmQgaGFzIGEgcm9sZSB0byBjb3B5IHJldXNhYmxlIGFyZWEgd2hlbiBzY3JvbGxpbmcuCisgICAg
ICAgIEl0IHdpbGwgYmUgdXNlZCBpbiB0aGUgV2ViS2l0MiBFRkwgcG9ydCdzIEJhY2tpbmdTdG9y
ZS4KKworICAgICAgICAqIENNYWtlTGlzdHNFZmwudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nh
aXJvL1dpZGdldEJhY2tpbmdTdG9yZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9FZmxXaWRn
ZXRCYWNraW5nU3RvcmVDYWlyby5jcHA6IEFkZGVkLgorCiAyMDExLTA5LTE5ICBTaGF3biBTaW5n
aCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlLW5hbWUgTGF5ZXJDaHJv
bWl1bSBib3JkZXIgZnVuY3Rpb25zIHRvIHJlZmxlY3QgdGhhdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmUuaAppbmRleCA3MGQxYzkxLi5l
MzdlOTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRC
YWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRC
YWNraW5nU3RvcmUuaApAQCAtMjcsNiArMjcsOCBAQAogCiAjaWYgUExBVEZPUk0oR1RLKQogI2lu
Y2x1ZGUgPGd0ay9ndGsuaD4KKyNlbGlmIFBMQVRGT1JNKEVGTCkKKyNpbmNsdWRlIDxFdmFzLmg+
CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUsNiArMzcsOCBAQCBjbGFzcyBX
aWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOwogCiAjaWYgUExBVEZPUk0oR1RLKQogdHlwZWRlZiBH
dGtXaWRnZXQqIFBsYXRmb3JtV2lkZ2V0OworI2VsaWYgUExBVEZPUk0oRUZMKQordHlwZWRlZiBF
dmFzX09iamVjdCogUGxhdGZvcm1XaWRnZXQ7CiAjZW5kaWYKIAogY2xhc3MgV2lkZ2V0QmFja2lu
Z1N0b3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxXaWRn
ZXRCYWNraW5nU3RvcmVDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZs
V2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmEyNzA3NTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvRWZsV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCkBAIC0wLDAgKzEsODkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExl
c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRl
IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldpZGdldEJhY2tpbmdTdG9yZS5oIgorCisj
aW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXMuY3BwIgorI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCisj
aW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBX
aWRnZXRCYWNraW5nU3RvcmVQcml2YXRlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXaWRn
ZXRCYWNraW5nU3RvcmVQcml2YXRlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKwor
cHVibGljOgorICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG1fc3VyZmFjZTsKKyAgICBSZWZQ
dHI8Y2Fpcm9fc3VyZmFjZV90PiBtX3Njcm9sbFN1cmZhY2U7CisKKyAgICBzdGF0aWMgUGFzc093
blB0cjxXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlPiBjcmVhdGUoUGxhdGZvcm1XaWRnZXQgd2lk
Z2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKHdpZGdldCwgc2l6ZSkpOworICAgIH0KKwor
cHJpdmF0ZToKKyAgICAvLyBXZSBrZWVwIHR3byBjb3BpZXMgb2YgdGhlIHN1cmZhY2UgaGVyZSwg
d2hpY2ggd2lsbCBkb3VibGUgdGhlIG1lbW9yeSB1c2FnZSwgYnV0IGluY3JlYXNlCisgICAgLy8g
c2Nyb2xsaW5nIHBlcmZvcm1hbmNlIHNpbmNlIHdlIGRvIG5vdCBoYXZlIHRvIGtlZXAgcmVhbGxv
Y2F0aW5nIGEgbWVtb3J5IHJlZ2lvbiBkdXJpbmcKKyAgICAvLyBxdWljayBzY3JvbGxpbmcgcmVx
dWVzdHMuCisgICAgV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZShQbGF0Zm9ybVdpZGdldCB3aWRn
ZXQsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgeworICAgICAgICAvLyBUaGUgbV9zdXJmYWNl
IGlzIGZvciBkcmF3aW5nIGNvbXBsZXRlZCB3ZWJwYWdlIGltYWdlLAorICAgICAgICAvLyBhbmQg
dGhlIG1fc2Nyb2xsU3VyZmFjZSBpcyBhIGJ1ZmZlciBhcmVhIHVzZWQgdG8gY29weSByZXVzYWJs
ZSBhcmVhIGR1cmluZyBzY3JvbGxpbmcuCisgICAgICAgIG1fc3VyZmFjZSA9IGFkb3B0UmVmKGNh
aXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlKENBSVJPX0ZPUk1BVF9BUkdCMzIsIHNpemUud2lkdGgo
KSwgc2l6ZS5oZWlnaHQoKSkpOworICAgICAgICBtX3Njcm9sbFN1cmZhY2UgPSBhZG9wdFJlZihj
YWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZShDQUlST19GT1JNQVRfQVJHQjMyLCBzaXplLndpZHRo
KCksIHNpemUuaGVpZ2h0KCkpKTsKKyAgICB9Cit9OworCitQYXNzT3duUHRyPFdpZGdldEJhY2tp
bmdTdG9yZT4gV2lkZ2V0QmFja2luZ1N0b3JlOjpjcmVhdGUoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0
LCBjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2lkZ2V0
QmFja2luZ1N0b3JlKHdpZGdldCwgc2l6ZSkpOworfQorCitXaWRnZXRCYWNraW5nU3RvcmU6Oldp
ZGdldEJhY2tpbmdTdG9yZShQbGF0Zm9ybVdpZGdldCB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNp
emUpCisgICAgOiBtX3ByaXZhdGUoV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZTo6Y3JlYXRlKHdp
ZGdldCwgc2l6ZSkpCit7Cit9CisKK1dpZGdldEJhY2tpbmdTdG9yZTo6fldpZGdldEJhY2tpbmdT
dG9yZSgpCit7Cit9CisKK2NhaXJvX3N1cmZhY2VfdCogV2lkZ2V0QmFja2luZ1N0b3JlOjpjYWly
b1N1cmZhY2UoKQoreworICAgIHJldHVybiBtX3ByaXZhdGUtPm1fc3VyZmFjZS5nZXQoKTsKK30K
Kwordm9pZCBXaWRnZXRCYWNraW5nU3RvcmU6OnNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxS
ZWN0LCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQpCit7CisgICAgSW50UmVjdCB0YXJnZXRS
ZWN0KHNjcm9sbFJlY3QpOworICAgIHRhcmdldFJlY3QubW92ZShzY3JvbGxPZmZzZXQpOworICAg
IHRhcmdldFJlY3Quc2V0V2lkdGgoc3RkOjptYXgoMCwgdGFyZ2V0UmVjdC53aWR0aCgpIC0gc2Ny
b2xsT2Zmc2V0LndpZHRoKCkpKTsKKyAgICB0YXJnZXRSZWN0LnNldEhlaWdodChzdGQ6Om1heCgw
LCB0YXJnZXRSZWN0LmhlaWdodCgpIC0gc2Nyb2xsT2Zmc2V0LmhlaWdodCgpKSk7CisgICAgaWYg
KHRhcmdldFJlY3QuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb3B5UmVjdEZy
b21PbmVTdXJmYWNlVG9Bbm90aGVyKG1fcHJpdmF0ZS0+bV9zdXJmYWNlLmdldCgpLCBtX3ByaXZh
dGUtPm1fc2Nyb2xsU3VyZmFjZS5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNjcm9sbE9mZnNldCwgdGFyZ2V0UmVjdCk7CisgICAgY29weVJlY3RGcm9tT25lU3Vy
ZmFjZVRvQW5vdGhlcihtX3ByaXZhdGUtPm1fc2Nyb2xsU3VyZmFjZS5nZXQoKSwgbV9wcml2YXRl
LT5tX3N1cmZhY2UuZ2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ
bnRTaXplKCksIHRhcmdldFJlY3QpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107977</attachid>
            <date>2011-09-20 02:05:57 -0700</date>
            <delta_ts>2011-09-21 19:08:14 -0700</delta_ts>
            <desc>Add EflWidgetBackingStoreCairo.</desc>
            <filename>EflWidgetBackingStoreCairo.patch</filename>
            <type>text/plain</type>
            <size>5685</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHNFZmwudHh0IGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKaW5kZXggMzNjZmFkNC4uN2FlNDk5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0c0VmbC50eHQKQEAgLTgzLDkgKzgzLDExIEBAIExJU1QoQVBQRU5EIFdlYkNvcmVf
VVNFUl9BR0VOVF9TVFlMRV9TSEVFVFMKIAogSUYgKFdURl9VU0VfQ0FJUk8pCiAgIExJU1QoQVBQ
RU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICIke1dFQkNPUkVfRElSfS9wbGF0
Zm9ybS9jYWlybyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8i
CiAgICkKICAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgcGxhdGZvcm0vZWZsL0Vm
bFdpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0NhaXJvVXRpbGl0aWVzLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWly
by5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFkaWVudENhaXJvLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDYwOTA3NWUuLjE1MDIyZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAxMS0wOS0xOSAgRXVubWkgTGVlICA8ZXVubWkxNS5sZWVAc2Ftc3VuZy5jb20+CisKKyAgICAg
ICAgW0VGTF0gQWRkIEVmbFdpZGdldEJhY2tpbmdTdG9yZUNhaXJvCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzUwMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXaWRnZXRCYWNraW5nU3RvcmVDYWly
byBmb3IgRUZMIHBvcnQuCisgICAgICAgIEl0IGNyZWF0ZXMgY2Fpcm9faW1hZ2Vfc3VyZmFjZSBh
bmQgaGFzIGEgcm9sZSB0byBjb3B5IHJldXNhYmxlIGFyZWEgd2hlbiBzY3JvbGxpbmcuCisgICAg
ICAgIEl0IHdpbGwgYmUgdXNlZCBpbiB0aGUgV2ViS2l0MiBFRkwgcG9ydCdzIEJhY2tpbmdTdG9y
ZS4KKworICAgICAgICAqIENNYWtlTGlzdHNFZmwudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nh
aXJvL1dpZGdldEJhY2tpbmdTdG9yZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9FZmxXaWRn
ZXRCYWNraW5nU3RvcmVDYWlyby5jcHA6IEFkZGVkLgorCiAyMDExLTA5LTE5ICBTaGF3biBTaW5n
aCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlLW5hbWUgTGF5ZXJDaHJv
bWl1bSBib3JkZXIgZnVuY3Rpb25zIHRvIHJlZmxlY3QgdGhhdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmUuaAppbmRleCA3MGQxYzkxLi5l
MzdlOTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRC
YWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRC
YWNraW5nU3RvcmUuaApAQCAtMjcsNiArMjcsOCBAQAogCiAjaWYgUExBVEZPUk0oR1RLKQogI2lu
Y2x1ZGUgPGd0ay9ndGsuaD4KKyNlbGlmIFBMQVRGT1JNKEVGTCkKKyNpbmNsdWRlIDxFdmFzLmg+
CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUsNiArMzcsOCBAQCBjbGFzcyBX
aWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOwogCiAjaWYgUExBVEZPUk0oR1RLKQogdHlwZWRlZiBH
dGtXaWRnZXQqIFBsYXRmb3JtV2lkZ2V0OworI2VsaWYgUExBVEZPUk0oRUZMKQordHlwZWRlZiBF
dmFzX09iamVjdCogUGxhdGZvcm1XaWRnZXQ7CiAjZW5kaWYKIAogY2xhc3MgV2lkZ2V0QmFja2lu
Z1N0b3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxXaWRn
ZXRCYWNraW5nU3RvcmVDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRWZs
V2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjUyODliNDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvRWZsV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCkBAIC0wLDAgKzEsODggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExl
c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRl
IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldpZGdldEJhY2tpbmdTdG9yZS5oIgorCisj
aW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXMuY3BwIgorI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCisj
aW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBX
aWRnZXRCYWNraW5nU3RvcmVQcml2YXRlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXaWRn
ZXRCYWNraW5nU3RvcmVQcml2YXRlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKwor
cHVibGljOgorICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG1fc3VyZmFjZTsKKyAgICBSZWZQ
dHI8Y2Fpcm9fc3VyZmFjZV90PiBtX3Njcm9sbFN1cmZhY2U7CisKKyAgICBzdGF0aWMgUGFzc093
blB0cjxXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlPiBjcmVhdGUoUGxhdGZvcm1XaWRnZXQgd2lk
Z2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKHdpZGdldCwgc2l6ZSkpOworICAgIH0KKwor
ICAgIC8vIFdlIGtlZXAgdHdvIGNvcGllcyBvZiB0aGUgc3VyZmFjZSBoZXJlLCB3aGljaCB3aWxs
IGRvdWJsZSB0aGUgbWVtb3J5IHVzYWdlLCBidXQgaW5jcmVhc2UKKyAgICAvLyBzY3JvbGxpbmcg
cGVyZm9ybWFuY2Ugc2luY2Ugd2UgZG8gbm90IGhhdmUgdG8ga2VlcCByZWFsbG9jYXRpbmcgYSBt
ZW1vcnkgcmVnaW9uIGR1cmluZworICAgIC8vIHF1aWNrIHNjcm9sbGluZyByZXF1ZXN0cy4KKyAg
ICBXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKFBsYXRmb3JtV2lkZ2V0IHdpZGdldCwgY29uc3Qg
SW50U2l6ZSYgc2l6ZSkKKyAgICB7CisgICAgICAgIC8vIFRoZSBtX3N1cmZhY2UgaXMgZm9yIGRy
YXdpbmcgY29tcGxldGVkIHdlYnBhZ2UgaW1hZ2UsCisgICAgICAgIC8vIGFuZCB0aGUgbV9zY3Jv
bGxTdXJmYWNlIGlzIGEgYnVmZmVyIGFyZWEgdXNlZCB0byBjb3B5IHJldXNhYmxlIGFyZWEgZHVy
aW5nIHNjcm9sbGluZy4KKyAgICAgICAgbV9zdXJmYWNlID0gYWRvcHRSZWYoY2Fpcm9faW1hZ2Vf
c3VyZmFjZV9jcmVhdGUoQ0FJUk9fRk9STUFUX0FSR0IzMiwgc2l6ZS53aWR0aCgpLCBzaXplLmhl
aWdodCgpKSk7CisgICAgICAgIG1fc2Nyb2xsU3VyZmFjZSA9IGFkb3B0UmVmKGNhaXJvX2ltYWdl
X3N1cmZhY2VfY3JlYXRlKENBSVJPX0ZPUk1BVF9BUkdCMzIsIHNpemUud2lkdGgoKSwgc2l6ZS5o
ZWlnaHQoKSkpOworICAgIH0KK307CisKK1Bhc3NPd25QdHI8V2lkZ2V0QmFja2luZ1N0b3JlPiBX
aWRnZXRCYWNraW5nU3RvcmU6OmNyZWF0ZShQbGF0Zm9ybVdpZGdldCB3aWRnZXQsIGNvbnN0IElu
dFNpemUmIHNpemUpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXaWRnZXRCYWNraW5nU3Rv
cmUod2lkZ2V0LCBzaXplKSk7Cit9CisKK1dpZGdldEJhY2tpbmdTdG9yZTo6V2lkZ2V0QmFja2lu
Z1N0b3JlKFBsYXRmb3JtV2lkZ2V0IHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAgICA6
IG1fcHJpdmF0ZShXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOjpjcmVhdGUod2lkZ2V0LCBzaXpl
KSkKK3sKK30KKworV2lkZ2V0QmFja2luZ1N0b3JlOjp+V2lkZ2V0QmFja2luZ1N0b3JlKCkKK3sK
K30KKworY2Fpcm9fc3VyZmFjZV90KiBXaWRnZXRCYWNraW5nU3RvcmU6OmNhaXJvU3VyZmFjZSgp
Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bV9zdXJmYWNlLmdldCgpOworfQorCit2b2lkIFdp
ZGdldEJhY2tpbmdTdG9yZTo6c2Nyb2xsKGNvbnN0IEludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0
IEludFNpemUmIHNjcm9sbE9mZnNldCkKK3sKKyAgICBJbnRSZWN0IHRhcmdldFJlY3Qoc2Nyb2xs
UmVjdCk7CisgICAgdGFyZ2V0UmVjdC5tb3ZlKHNjcm9sbE9mZnNldCk7CisgICAgdGFyZ2V0UmVj
dC5zZXRXaWR0aChzdGQ6Om1heCgwLCB0YXJnZXRSZWN0LndpZHRoKCkgLSBzY3JvbGxPZmZzZXQu
d2lkdGgoKSkpOworICAgIHRhcmdldFJlY3Quc2V0SGVpZ2h0KHN0ZDo6bWF4KDAsIHRhcmdldFJl
Y3QuaGVpZ2h0KCkgLSBzY3JvbGxPZmZzZXQuaGVpZ2h0KCkpKTsKKyAgICBpZiAodGFyZ2V0UmVj
dC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvcHlSZWN0RnJvbU9uZVN1cmZh
Y2VUb0Fub3RoZXIobV9wcml2YXRlLT5tX3N1cmZhY2UuZ2V0KCksIG1fcHJpdmF0ZS0+bV9zY3Jv
bGxTdXJmYWNlLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Ny
b2xsT2Zmc2V0LCB0YXJnZXRSZWN0KTsKKyAgICBjb3B5UmVjdEZyb21PbmVTdXJmYWNlVG9Bbm90
aGVyKG1fcHJpdmF0ZS0+bV9zY3JvbGxTdXJmYWNlLmdldCgpLCBtX3ByaXZhdGUtPm1fc3VyZmFj
ZS5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludFNpemUoKSwg
dGFyZ2V0UmVjdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="104818"
          type_id="1"
          status="-"
          setter="rakuco"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108266</attachid>
            <date>2011-09-21 19:08:14 -0700</date>
            <delta_ts>2011-09-22 20:28:39 -0700</delta_ts>
            <desc>Add EflWidgetBackingStoreCairo.</desc>
            <filename>EflWidgetBackingStoreCairo.patch</filename>
            <type>text/plain</type>
            <size>10240</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHNFZmwudHh0IGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKaW5kZXggMDU0YjRmMC4uOGNiYWRjOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0c0VmbC50eHQKQEAgLTgyLDkgKzgyLDEyIEBAIExJU1QoQVBQRU5EIFdlYkNvcmVf
VVNFUl9BR0VOVF9TVFlMRV9TSEVFVFMKIAogSUYgKFdURl9VU0VfQ0FJUk8pCiAgIExJU1QoQVBQ
RU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICIke1dFQkNPUkVfRElSfS9wbGF0
Zm9ybS9jYWlybyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8i
CiAgICkKICAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgcGxhdGZvcm0vY2Fpcm8v
V2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZWZsL0VmbFdpZGdldEJh
Y2tpbmdTdG9yZUNhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRp
bGl0aWVzLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyby5jcHAKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFkaWVudENhaXJvLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDdiYWFkZWEuLjUzZmZiZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMS0wOS0y
MSAgRXVubWkgTGVlICA8ZXVubWkxNS5sZWVAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF0g
QWRkIEVmbFdpZGdldEJhY2tpbmdTdG9yZUNhaXJvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzUwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXaWRnZXRCYWNraW5nU3RvcmVDYWlybyBmb3IgRUZM
IHBvcnQuCisgICAgICAgIEl0IGNyZWF0ZXMgY2Fpcm9faW1hZ2Vfc3VyZmFjZSBhbmQgaGFzIGEg
cm9sZSB0byBjb3B5IHJldXNhYmxlIGFyZWEgd2hlbiBzY3JvbGxpbmcuCisgICAgICAgIEl0IHdp
bGwgYmUgdXNlZCBpbiB0aGUgV2ViS2l0MiBFRkwgcG9ydCdzIEJhY2tpbmdTdG9yZS4KKyAgICAg
ICAgQWRkaXRpb25hbGx5LCBjYWlyby9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAgZmlsZSBp
cyBhZGRlZAorICAgICAgICBhbmQgY29tbW9uIGNvZGVzIG9mIEVmbCBhbmQgR3RrIGFyZSBtb3Zl
ZCB0aGVyZS4KKworICAgICAgICAqIENNYWtlTGlzdHNFZmwudHh0OgorICAgICAgICAqIEdOVW1h
a2VmaWxlLmxpc3QuYW06CisgICAgICAgICogcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0
b3JlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZUNhaXJv
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZTo6c2Nyb2xsKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9lZmwvRWZsV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHA6
IEFkZGVkLgorCiAyMDExLTA5LTIxICBBbmRyYXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAbm9raWEu
Y29tPgogCiAgICAgICAgIFtRdF0gUmVtb3ZlIFF0IHNwZWNpZmljIGNvZGUgZnJvbSBjc3MvU2Vs
ZWN0b3JDaGVja2VyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggOGE0NjQz
NC4uZjY0MDIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zOTQyLDYgKzM5
NDIsNyBAQCB3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvZ3Rr
L0RyYWdDb250cm9sbGVyR3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRI
YW5kbGVyR3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRnJhbWVHdGsuY3BwIFwK
KwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhaXJvL1dpZGdldEJhY2tpbmdTdG9yZS5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRl
eHRDYWlyby5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dy
YXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNhaXJvLmggXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmUuaAppbmRleCA3MGQxYzkxLi5k
MDVlZTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRC
YWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRC
YWNraW5nU3RvcmUuaApAQCAtMjcsNiArMjcsOCBAQAogCiAjaWYgUExBVEZPUk0oR1RLKQogI2lu
Y2x1ZGUgPGd0ay9ndGsuaD4KKyNlbGlmIFBMQVRGT1JNKEVGTCkKKyNpbmNsdWRlIDxFdmFzLmg+
CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUsNiArMzcsOCBAQCBjbGFzcyBX
aWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOwogCiAjaWYgUExBVEZPUk0oR1RLKQogdHlwZWRlZiBH
dGtXaWRnZXQqIFBsYXRmb3JtV2lkZ2V0OworI2VsaWYgUExBVEZPUk0oRUZMKQordHlwZWRlZiBF
dmFzX09iamVjdCogUGxhdGZvcm1XaWRnZXQ7CiAjZW5kaWYKIAogY2xhc3MgV2lkZ2V0QmFja2lu
Z1N0b3JlIHsKQEAgLTQ4LDYgKzUyLDEwIEBAIHB1YmxpYzoKICAgICBjYWlyb19zdXJmYWNlX3Qq
IGNhaXJvU3VyZmFjZSgpOwogICAgIHZvaWQgc2Nyb2xsKGNvbnN0IEludFJlY3QmIHNjcm9sbFJl
Y3QsIGNvbnN0IEludFNpemUmIHNjcm9sbE9mZnNldCk7CiAKKyNpZiAoUExBVEZPUk0oR1RLKSAm
JiAhZGVmaW5lZChYUF9VTklYKSkgfHwgUExBVEZPUk0oRUZMKQorICAgIHZvaWQgc2Nyb2xsKGNh
aXJvX3N1cmZhY2VfdCogdGFyZ2V0U3VyZmFjZSwgY2Fpcm9fc3VyZmFjZV90KiBidWZmZXJTdXJm
YWNlLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50U2l6ZSYpOworI2VuZGlmCisKIHByaXZhdGU6
CiAgICAgV2lkZ2V0QmFja2luZ1N0b3JlKFBsYXRmb3JtV2lkZ2V0LCBjb25zdCBJbnRTaXplJik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhaXJvL1dpZGdldEJhY2tp
bmdTdG9yZUNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhaXJvL1dpZGdldEJh
Y2tpbmdTdG9yZUNhaXJvLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5h
MDVkMzE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8v
V2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEsIElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3Vu
ZyBFbGVjdHJvbmljcworICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
ICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG
cmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldpZGdldEJhY2tpbmdTdG9yZS5oIgorCisjaWYgKFBMQVRG
T1JNKEdUSykgJiYgIWRlZmluZWQoWFBfVU5JWCkpIHx8IFBMQVRGT1JNKEVGTCkKKworI2luY2x1
ZGUgIkNhaXJvVXRpbGl0aWVzLmgiCisjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitQYXNzT3duUHRyPFdpZGdldEJhY2tpbmdTdG9yZT4gV2lkZ2V0QmFj
a2luZ1N0b3JlOjpjcmVhdGUoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBz
aXplKQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2lkZ2V0QmFja2luZ1N0b3JlKHdpZGdl
dCwgc2l6ZSkpOworfQorCit2b2lkIFdpZGdldEJhY2tpbmdTdG9yZTo6c2Nyb2xsKGNhaXJvX3N1
cmZhY2VfdCogdGFyZ2V0U3VyZmFjZSwgY2Fpcm9fc3VyZmFjZV90KiBidWZmZXJTdXJmYWNlLCBj
b25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQpCit7
CisgICAgSW50UmVjdCB0YXJnZXRSZWN0KHNjcm9sbFJlY3QpOworICAgIHRhcmdldFJlY3QubW92
ZShzY3JvbGxPZmZzZXQpOworICAgIHRhcmdldFJlY3Quc2V0V2lkdGgoc3RkOjptYXgoMCwgdGFy
Z2V0UmVjdC53aWR0aCgpIC0gc2Nyb2xsT2Zmc2V0LndpZHRoKCkpKTsKKyAgICB0YXJnZXRSZWN0
LnNldEhlaWdodChzdGQ6Om1heCgwLCB0YXJnZXRSZWN0LmhlaWdodCgpIC0gc2Nyb2xsT2Zmc2V0
LmhlaWdodCgpKSk7CisgICAgaWYgKHRhcmdldFJlY3QuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBjb3B5UmVjdEZyb21PbmVTdXJmYWNlVG9Bbm90aGVyKHRhcmdldFN1cmZhY2Us
IGJ1ZmZlclN1cmZhY2UsIHNjcm9sbE9mZnNldCwgdGFyZ2V0UmVjdCk7CisgICAgY29weVJlY3RG
cm9tT25lU3VyZmFjZVRvQW5vdGhlcihidWZmZXJTdXJmYWNlLCB0YXJnZXRTdXJmYWNlLCBJbnRT
aXplKCksIHRhcmdldFJlY3QpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyAoUExBVEZPUk0oR1RLKSAmJiAhZGVmaW5lZChYUF9VTklYKSkgfHwgUExBVEZPUk0oRUZM
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0VmbFdpZGdldEJhY2tp
bmdTdG9yZUNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9FZmxXaWRnZXRC
YWNraW5nU3RvcmVDYWlyby5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NmUyY2NjMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9F
ZmxXaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSwgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1z
dW5nIEVsZWN0cm9uaWNzCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
ICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhl
IEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2lkZ2V0QmFja2luZ1N0b3JlLmgiCisKKyNpbmNsdWRl
ICJSZWZQdHJDYWlyby5oIgorI2luY2x1ZGUgPGNhaXJvL2NhaXJvLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSB7CisgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSk7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CisKK3B1YmxpYzoKKyAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBt
X3N1cmZhY2U7CisgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gbV9zY3JvbGxTdXJmYWNlOwor
CisgICAgc3RhdGljIFBhc3NPd25QdHI8V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZT4gY3JlYXRl
KGNvbnN0IEludFNpemUmIHNpemUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3
IFdpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUoc2l6ZSkpOworICAgIH0KKworICAgIC8vIFdlIGtl
ZXAgdHdvIGNvcGllcyBvZiB0aGUgc3VyZmFjZSBoZXJlLCB3aGljaCB3aWxsIGRvdWJsZSB0aGUg
bWVtb3J5IHVzYWdlLCBidXQgaW5jcmVhc2UKKyAgICAvLyBzY3JvbGxpbmcgcGVyZm9ybWFuY2Ug
c2luY2Ugd2UgZG8gbm90IGhhdmUgdG8ga2VlcCByZWFsbG9jYXRpbmcgYSBtZW1vcnkgcmVnaW9u
IGR1cmluZworICAgIC8vIHF1aWNrIHNjcm9sbGluZyByZXF1ZXN0cy4KKyAgICBXaWRnZXRCYWNr
aW5nU3RvcmVQcml2YXRlKGNvbnN0IEludFNpemUmIHNpemUpCisgICAgeworICAgICAgICAvLyBU
aGUgbV9zdXJmYWNlIGlzIGZvciBkcmF3aW5nIGNvbXBsZXRlZCB3ZWJwYWdlIGltYWdlLAorICAg
ICAgICAvLyBhbmQgdGhlIG1fc2Nyb2xsU3VyZmFjZSBpcyBhIGJ1ZmZlciBhcmVhIHVzZWQgdG8g
Y29weSByZXVzYWJsZSBhcmVhIGR1cmluZyBzY3JvbGxpbmcuCisgICAgICAgIG1fc3VyZmFjZSA9
IGFkb3B0UmVmKGNhaXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlKENBSVJPX0ZPUk1BVF9BUkdCMzIs
IHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSkpOworICAgICAgICBtX3Njcm9sbFN1cmZhY2Ug
PSBhZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZShDQUlST19GT1JNQVRfQVJHQjMy
LCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpKTsKKyAgICB9Cit9OworCitXaWRnZXRCYWNr
aW5nU3RvcmU6OldpZGdldEJhY2tpbmdTdG9yZShFdmFzX09iamVjdCogd2lkZ2V0LCBjb25zdCBJ
bnRTaXplJiBzaXplKQorICAgIDogbV9wcml2YXRlKFdpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU6
OmNyZWF0ZShzaXplKSkKK3sKK30KKworV2lkZ2V0QmFja2luZ1N0b3JlOjp+V2lkZ2V0QmFja2lu
Z1N0b3JlKCkKK3sKK30KKworY2Fpcm9fc3VyZmFjZV90KiBXaWRnZXRCYWNraW5nU3RvcmU6OmNh
aXJvU3VyZmFjZSgpCit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bV9zdXJmYWNlLmdldCgpOwor
fQorCit2b2lkIFdpZGdldEJhY2tpbmdTdG9yZTo6c2Nyb2xsKGNvbnN0IEludFJlY3QmIHNjcm9s
bFJlY3QsIGNvbnN0IEludFNpemUmIHNjcm9sbE9mZnNldCkKK3sKKyAgICBzY3JvbGwobV9wcml2
YXRlLT5tX3N1cmZhY2UuZ2V0KCksIG1fcHJpdmF0ZS0+bV9zY3JvbGxTdXJmYWNlLmdldCgpLCBz
Y3JvbGxSZWN0LCBzY3JvbGxPZmZzZXQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0
b3JlQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tp
bmdTdG9yZUNhaXJvLmNwcAppbmRleCA2Njc1NWY5Li41ODQ3ODBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVDYWly
by5jcHAKQEAgLTIxLDcgKzIxLDcgQEAKIAogI2lmbmRlZiBYUF9VTklYCiAKLSNpbmNsdWRlICJD
YWlyb1V0aWxpdGllcy5oIgorI2luY2x1ZGUgIkd0a1ZlcnNpb25pbmcuaCIKICNpbmNsdWRlICJS
ZWZQdHJDYWlyby5oIgogI2luY2x1ZGUgPGNhaXJvL2NhaXJvLmg+CiAKQEAgLTU5LDExICs1OSw2
IEBAIHByaXZhdGU6CiAgICAgfQogfTsKIAotUGFzc093blB0cjxXaWRnZXRCYWNraW5nU3RvcmU+
IFdpZGdldEJhY2tpbmdTdG9yZTo6Y3JlYXRlKEd0a1dpZGdldCogd2lkZ2V0LCBjb25zdCBJbnRT
aXplJiBzaXplKQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2lkZ2V0QmFja2luZ1N0b3Jl
KHdpZGdldCwgc2l6ZSkpOwotfQotCiBXaWRnZXRCYWNraW5nU3RvcmU6OldpZGdldEJhY2tpbmdT
dG9yZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICA6IG1fcHJp
dmF0ZShXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOjpjcmVhdGUod2lkZ2V0LCBzaXplKSkKIHsK
QEAgLTgwLDE3ICs3NSw3IEBAIGNhaXJvX3N1cmZhY2VfdCogV2lkZ2V0QmFja2luZ1N0b3JlOjpj
YWlyb1N1cmZhY2UoKQogCiB2b2lkIFdpZGdldEJhY2tpbmdTdG9yZTo6c2Nyb2xsKGNvbnN0IElu
dFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IEludFNpemUmIHNjcm9sbE9mZnNldCkKIHsKLSAgICBJ
bnRSZWN0IHRhcmdldFJlY3Qoc2Nyb2xsUmVjdCk7Ci0gICAgdGFyZ2V0UmVjdC5tb3ZlKHNjcm9s
bE9mZnNldCk7Ci0gICAgdGFyZ2V0UmVjdC5zaGlmdE1heFhFZGdlVG8odGFyZ2V0UmVjdC5tYXhY
KCkgLSBzY3JvbGxPZmZzZXQud2lkdGgoKSk7Ci0gICAgdGFyZ2V0UmVjdC5zaGlmdE1heFlFZGdl
VG8odGFyZ2V0UmVjdC5tYXhZKCkgLSBzY3JvbGxPZmZzZXQuaGVpZ2h0KCkpOwotICAgIGlmICh0
YXJnZXRSZWN0LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY29weVJlY3RGcm9t
T25lU3VyZmFjZVRvQW5vdGhlcihtX3ByaXZhdGUtPm1fc3VyZmFjZS5nZXQoKSwgbV9wcml2YXRl
LT5tX3Njcm9sbFN1cmZhY2UuZ2V0KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzY3JvbGxPZmZzZXQsIHRhcmdldFJlY3QpOwotICAgIGNvcHlSZWN0RnJvbU9uZVN1cmZh
Y2VUb0Fub3RoZXIobV9wcml2YXRlLT5tX3Njcm9sbFN1cmZhY2UuZ2V0KCksIG1fcHJpdmF0ZS0+
bV9zdXJmYWNlLmdldCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW50
U2l6ZSgpLCB0YXJnZXRSZWN0KTsKKyAgICBzY3JvbGwobV9wcml2YXRlLT5tX3N1cmZhY2UuZ2V0
KCksIG1fcHJpdmF0ZS0+bV9zY3JvbGxTdXJmYWNlLmdldCgpLCBzY3JvbGxSZWN0LCBzY3JvbGxP
ZmZzZXQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>
<flag name="review"
          id="105196"
          type_id="1"
          status="-"
          setter="rakuco"
    />
    <flag name="commit-queue"
          id="105197"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108437</attachid>
            <date>2011-09-22 20:28:39 -0700</date>
            <delta_ts>2011-09-23 06:35:13 -0700</delta_ts>
            <desc>Patch for WidgetBackingStoreCairo</desc>
            <filename>WidgetBackingStoreCairo.patch</filename>
            <type>text/plain</type>
            <size>11306</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">Y29tbWl0IDlkNGVjZmRmODZlZmE3ZmVlZGZhNzE4MzkxZGEyMWZmYjNjZDc4YzcKQXV0aG9yOiBF
dW5taSBMZWUgPGV1bm1pMTUubGVlQHNhbXN1bmcuY29tPgpEYXRlOiAgIEZyaSBTZXAgMjMgMTI6
MjA6NTAgMjAxMSArMDkwMAoKICAgIHBhdGNoCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0c0VmbC50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzRWZsLnR4dAppbmRl
eCAwNTRiNGYwLi41YjhlY2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
RWZsLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzRWZsLnR4dApAQCAtODIsOSAr
ODIsMTEgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9VU0VSX0FHRU5UX1NUWUxFX1NIRUVUUwogCiBJ
RiAoV1RGX1VTRV9DQUlSTykKICAgTElTVChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9S
SUVTCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2NhaXJvIgogICAgICIke1dFQkNPUkVf
RElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlybyIKICAgKQogICBMSVNUKEFQUEVORCBXZWJDb3Jl
X1NPVVJDRVMKKyAgICBwbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5jcHAKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vR3JhZGllbnRDYWlyby5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3YmFhZGVhLi5mZmI3ZTI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDktMjIgIEV1bm1pIExlZSAgPGV1bm1p
MTUubGVlQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtFRkxdIE1vdmUgR3RrV2lkZ2V0QmFja2lu
Z1N0b3JlQ2Fpcm8gdG8gdGhlIGNhaXJvIGRpcmVjdG9yeSBhbmQgbW9kaWZ5IHRvIHVzZSBpbiB0
aGUgRUZMLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjM1MDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGUgZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcCBpcyBtb3ZlZCB0byB0aGUgY2Fp
cm8vV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwIGFuZAorICAgICAgICBzb21lIGNvZGVzIGZv
ciBFRkwgYXJlIGFkZGVkLgorICAgICAgICBXaWRnZXRCYWNraW5nU3RvcmVDYWlybyBjcmVhdGVz
IGNhaXJvX2ltYWdlX3N1cmZhY2UgYW5kIGhhcyBhIHJvbGUgdG8gY29weSByZXVzYWJsZSBhcmVh
CisgICAgICAgIHdoZW4gc2Nyb2xsaW5nLiBTbywgaXQgd2lsbCBiZSB1c2VkIGluIHRoZSBXZWJL
aXQyIEVGTCBwb3J0J3MgQmFja2luZ1N0b3JlLgorCisgICAgICAgICogQ01ha2VMaXN0c0VmbC50
eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBwbGF0Zm9ybS9j
YWlyby9XaWRnZXRCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvR3RrV2lk
Z2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nh
aXJvL1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcDogQWRkZWQuCisKIDIwMTEtMDktMjEgIEFu
ZHJhcyBCZWNzaSAgPGFuZHJhcy5iZWNzaUBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBSZW1v
dmUgUXQgc3BlY2lmaWMgY29kZSBmcm9tIGNzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA4YTQ2NDM0Li5hYjBkMzEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM5NDIsNiArMzk0Miw3IEBAIHdlYmNvcmVndGtfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRHJhZ0NvbnRyb2xsZXJHdGsuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9FdmVudEhhbmRsZXJHdGsuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wYWdlL2d0ay9GcmFtZUd0ay5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NhaXJvL1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2
YXRlQ2Fpcm8uaCBcCkBAIC0zOTg3LDcgKzM5ODgsNiBAQCB3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtDbGlja0NvdW50ZXIuaCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuaCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZVgxMS5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9HZW9sb2NhdGlvblNlcnZpY2VHdGsuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvR2VvbG9jYXRpb25TZXJ2aWNlR3RrLmggXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmUuaAppbmRleCA3MGQx
YzkxLi5lMzdlOTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9X
aWRnZXRCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9X
aWRnZXRCYWNraW5nU3RvcmUuaApAQCAtMjcsNiArMjcsOCBAQAogCiAjaWYgUExBVEZPUk0oR1RL
KQogI2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNlbGlmIFBMQVRGT1JNKEVGTCkKKyNpbmNsdWRlIDxF
dmFzLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUsNiArMzcsOCBAQCBj
bGFzcyBXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOwogCiAjaWYgUExBVEZPUk0oR1RLKQogdHlw
ZWRlZiBHdGtXaWRnZXQqIFBsYXRmb3JtV2lkZ2V0OworI2VsaWYgUExBVEZPUk0oRUZMKQordHlw
ZWRlZiBFdmFzX09iamVjdCogUGxhdGZvcm1XaWRnZXQ7CiAjZW5kaWYKIAogY2xhc3MgV2lkZ2V0
QmFja2luZ1N0b3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhaXJv
L1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nh
aXJvL1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5kNDE1NWFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCkBAIC0wLDAgKzEsMTA4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLCBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChD
KSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
ICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3
cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXaWRnZXRCYWNraW5nU3RvcmUuaCIK
KworI2lmIChQTEFURk9STShHVEspICYmICFkZWZpbmVkKFhQX1VOSVgpKSB8fCBQTEFURk9STShF
RkwpCisKKyNpbmNsdWRlICJDYWlyb1V0aWxpdGllcy5oIgorI2luY2x1ZGUgIlJlZlB0ckNhaXJv
LmgiCisjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KKworI2lmIFBMQVRGT1JNKEdUSykKKyNpbmNs
dWRlICJHdGtWZXJzaW9uaW5nLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitz
dGF0aWMgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGNyZWF0ZVN1cmZhY2VGb3JCYWNraW5n
U3RvcmUoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQoreworI2lm
IFBMQVRGT1JNKEdUSykKKyAgICByZXR1cm4gZ2RrX3dpbmRvd19jcmVhdGVfc2ltaWxhcl9zdXJm
YWNlKGd0a193aWRnZXRfZ2V0X3dpbmRvdyh3aWRnZXQpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ0FJUk9fQ09OVEVOVF9DT0xPUl9BTFBIQSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUud2lkdGgoKSwgc2l6
ZS5oZWlnaHQoKSk7CisjZWxpZiBQTEFURk9STShFRkwpCisgICAgcmV0dXJuIGFkb3B0UmVmKGNh
aXJvX2ltYWdlX3N1cmZhY2VfY3JlYXRlKENBSVJPX0ZPUk1BVF9BUkdCMzIsIHNpemUud2lkdGgo
KSwgc2l6ZS5oZWlnaHQoKSkpOworI2Vsc2UKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgor
fQorCitjbGFzcyBXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlIHsKKyAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKKworcHVibGljOgorICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG1fc3VyZmFj
ZTsKKyAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBtX3Njcm9sbFN1cmZhY2U7CisKKyAgICBz
dGF0aWMgUGFzc093blB0cjxXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlPiBjcmVhdGUoUGxhdGZv
cm1XaWRnZXQgd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKHdpZGdldCwgc2l6ZSkp
OworICAgIH0KKworcHJpdmF0ZToKKyAgICAvLyBXZSBrZWVwIHR3byBjb3BpZXMgb2YgdGhlIHN1
cmZhY2UgaGVyZSwgd2hpY2ggd2lsbCBkb3VibGUgdGhlIG1lbW9yeSB1c2FnZSwgYnV0IGluY3Jl
YXNlCisgICAgLy8gc2Nyb2xsaW5nIHBlcmZvcm1hbmNlIHNpbmNlIHdlIGRvIG5vdCBoYXZlIHRv
IGtlZXAgcmVhbGxvY2F0aW5nIGEgbWVtb3J5IHJlZ2lvbiBkdXJpbmcKKyAgICAvLyBxdWljayBz
Y3JvbGxpbmcgcmVxdWVzdHMuCisgICAgV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZShQbGF0Zm9y
bVdpZGdldCB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgICAgIDogbV9zdXJmYWNl
KGNyZWF0ZVN1cmZhY2VGb3JCYWNraW5nU3RvcmUod2lkZ2V0LCBzaXplKSkKKyAgICAgICAgLCBt
X3Njcm9sbFN1cmZhY2UoY3JlYXRlU3VyZmFjZUZvckJhY2tpbmdTdG9yZSh3aWRnZXQsIHNpemUp
KQorICAgIHsKKyAgICB9Cit9OworCitQYXNzT3duUHRyPFdpZGdldEJhY2tpbmdTdG9yZT4gV2lk
Z2V0QmFja2luZ1N0b3JlOjpjcmVhdGUoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0LCBjb25zdCBJbnRT
aXplJiBzaXplKQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2lkZ2V0QmFja2luZ1N0b3Jl
KHdpZGdldCwgc2l6ZSkpOworfQorCitXaWRnZXRCYWNraW5nU3RvcmU6OldpZGdldEJhY2tpbmdT
dG9yZShQbGF0Zm9ybVdpZGdldCB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCisgICAgOiBt
X3ByaXZhdGUoV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZTo6Y3JlYXRlKHdpZGdldCwgc2l6ZSkp
Cit7Cit9CisKK1dpZGdldEJhY2tpbmdTdG9yZTo6fldpZGdldEJhY2tpbmdTdG9yZSgpCit7Cit9
CisKK2NhaXJvX3N1cmZhY2VfdCogV2lkZ2V0QmFja2luZ1N0b3JlOjpjYWlyb1N1cmZhY2UoKQor
eworICAgIHJldHVybiBtX3ByaXZhdGUtPm1fc3VyZmFjZS5nZXQoKTsKK30KKwordm9pZCBXaWRn
ZXRCYWNraW5nU3RvcmU6OnNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJ
bnRTaXplJiBzY3JvbGxPZmZzZXQpCit7CisgICAgSW50UmVjdCB0YXJnZXRSZWN0KHNjcm9sbFJl
Y3QpOworICAgIHRhcmdldFJlY3QubW92ZShzY3JvbGxPZmZzZXQpOworICAgIHRhcmdldFJlY3Qu
c2hpZnRNYXhYRWRnZVRvKHRhcmdldFJlY3QubWF4WCgpIC0gc2Nyb2xsT2Zmc2V0LndpZHRoKCkp
OworICAgIHRhcmdldFJlY3Quc2hpZnRNYXhZRWRnZVRvKHRhcmdldFJlY3QubWF4WSgpIC0gc2Ny
b2xsT2Zmc2V0LmhlaWdodCgpKTsKKyAgICBpZiAodGFyZ2V0UmVjdC5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGNvcHlSZWN0RnJvbU9uZVN1cmZhY2VUb0Fub3RoZXIobV9wcml2
YXRlLT5tX3N1cmZhY2UuZ2V0KCksIG1fcHJpdmF0ZS0+bV9zY3JvbGxTdXJmYWNlLmdldCgpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsT2Zmc2V0LCB0YXJnZXRS
ZWN0KTsKKyAgICBjb3B5UmVjdEZyb21PbmVTdXJmYWNlVG9Bbm90aGVyKG1fcHJpdmF0ZS0+bV9z
Y3JvbGxTdXJmYWNlLmdldCgpLCBtX3ByaXZhdGUtPm1fc3VyZmFjZS5nZXQoKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludFNpemUoKSwgdGFyZ2V0UmVjdCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIChQTEFURk9STShHVEspICYmICFk
ZWZpbmVkKFhQX1VOSVgpKSB8fCBQTEFURk9STShFRkwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjY3NTVmOS4uMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsOTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSwgSWdh
bGlhIFMuTC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgot
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJXaWRnZXRCYWNraW5nU3RvcmUuaCIKLQotI2lmbmRlZiBYUF9VTklY
Ci0KLSNpbmNsdWRlICJDYWlyb1V0aWxpdGllcy5oIgotI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgi
Ci0jaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0
aWMgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGNyZWF0ZVN1cmZhY2VGb3JCYWNraW5nU3Rv
cmUoR3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCi17Ci0gICAgcmV0dXJu
IGdka193aW5kb3dfY3JlYXRlX3NpbWlsYXJfc3VyZmFjZShndGtfd2lkZ2V0X2dldF93aW5kb3co
d2lkZ2V0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENB
SVJPX0NPTlRFTlRfQ09MT1JfQUxQSEEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpOwotfQotCi0KLWNsYXNz
IFdpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdp
ZGdldEJhY2tpbmdTdG9yZVByaXZhdGUpOwotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwot
Ci1wdWJsaWM6Ci0gICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gbV9zdXJmYWNlOwotICAgIFJl
ZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG1fc2Nyb2xsU3VyZmFjZTsKLQotICAgIHN0YXRpYyBQYXNz
T3duUHRyPFdpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU+IGNyZWF0ZShHdGtXaWRnZXQqIHdpZGdl
dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSh3aWRnZXQsIHNpemUpKTsKLSAgICB9Ci0KLXBy
aXZhdGU6Ci0gICAgLy8gV2Uga2VlcCB0d28gY29waWVzIG9mIHRoZSBzdXJmYWNlIGhlcmUsIHdo
aWNoIHdpbGwgZG91YmxlIHRoZSBtZW1vcnkgdXNhZ2UsIGJ1dCBpbmNyZWFzZQotICAgIC8vIHNj
cm9sbGluZyBwZXJmb3JtYW5jZSBzaW5jZSB3ZSBkbyBub3QgaGF2ZSB0byBrZWVwIHJlYWxsb2Nh
dGluZyBhIG1lbW9yeSByZWdpb24gZHVyaW5nCi0gICAgLy8gcXVpY2sgc2Nyb2xsaW5nIHJlcXVl
c3RzLgotICAgIFdpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUoR3RrV2lkZ2V0KiB3aWRnZXQsIGNv
bnN0IEludFNpemUmIHNpemUpCi0gICAgICAgIDogbV9zdXJmYWNlKGNyZWF0ZVN1cmZhY2VGb3JC
YWNraW5nU3RvcmUod2lkZ2V0LCBzaXplKSkKLSAgICAgICAgLCBtX3Njcm9sbFN1cmZhY2UoY3Jl
YXRlU3VyZmFjZUZvckJhY2tpbmdTdG9yZSh3aWRnZXQsIHNpemUpKQotICAgIHsKLSAgICB9Ci19
OwotCi1QYXNzT3duUHRyPFdpZGdldEJhY2tpbmdTdG9yZT4gV2lkZ2V0QmFja2luZ1N0b3JlOjpj
cmVhdGUoR3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCi17Ci0gICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBXaWRnZXRCYWNraW5nU3RvcmUod2lkZ2V0LCBzaXplKSk7Ci19Ci0K
LVdpZGdldEJhY2tpbmdTdG9yZTo6V2lkZ2V0QmFja2luZ1N0b3JlKEd0a1dpZGdldCogd2lkZ2V0
LCBjb25zdCBJbnRTaXplJiBzaXplKQotICAgIDogbV9wcml2YXRlKFdpZGdldEJhY2tpbmdTdG9y
ZVByaXZhdGU6OmNyZWF0ZSh3aWRnZXQsIHNpemUpKQotewotfQotCi1XaWRnZXRCYWNraW5nU3Rv
cmU6On5XaWRnZXRCYWNraW5nU3RvcmUoKQotewotfQotCi1jYWlyb19zdXJmYWNlX3QqIFdpZGdl
dEJhY2tpbmdTdG9yZTo6Y2Fpcm9TdXJmYWNlKCkKLXsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5t
X3N1cmZhY2UuZ2V0KCk7Ci19Ci0KLXZvaWQgV2lkZ2V0QmFja2luZ1N0b3JlOjpzY3JvbGwoY29u
c3QgSW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQotewot
ICAgIEludFJlY3QgdGFyZ2V0UmVjdChzY3JvbGxSZWN0KTsKLSAgICB0YXJnZXRSZWN0Lm1vdmUo
c2Nyb2xsT2Zmc2V0KTsKLSAgICB0YXJnZXRSZWN0LnNoaWZ0TWF4WEVkZ2VUbyh0YXJnZXRSZWN0
Lm1heFgoKSAtIHNjcm9sbE9mZnNldC53aWR0aCgpKTsKLSAgICB0YXJnZXRSZWN0LnNoaWZ0TWF4
WUVkZ2VUbyh0YXJnZXRSZWN0Lm1heFkoKSAtIHNjcm9sbE9mZnNldC5oZWlnaHQoKSk7Ci0gICAg
aWYgKHRhcmdldFJlY3QuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBjb3B5UmVj
dEZyb21PbmVTdXJmYWNlVG9Bbm90aGVyKG1fcHJpdmF0ZS0+bV9zdXJmYWNlLmdldCgpLCBtX3By
aXZhdGUtPm1fc2Nyb2xsU3VyZmFjZS5nZXQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNjcm9sbE9mZnNldCwgdGFyZ2V0UmVjdCk7Ci0gICAgY29weVJlY3RGcm9tT25l
U3VyZmFjZVRvQW5vdGhlcihtX3ByaXZhdGUtPm1fc2Nyb2xsU3VyZmFjZS5nZXQoKSwgbV9wcml2
YXRlLT5tX3N1cmZhY2UuZ2V0KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBJbnRTaXplKCksIHRhcmdldFJlY3QpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAvLyAhWFBfVU5JWAo=
</data>
<flag name="review"
          id="105439"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108438</attachid>
            <date>2011-09-22 21:18:18 -0700</date>
            <delta_ts>2011-09-25 19:13:47 -0700</delta_ts>
            <desc>Patch for WidgetBackingStoreCairo</desc>
            <filename>WidgetBackingStoreCairo.patch</filename>
            <type>text/plain</type>
            <size>11607</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHNFZmwudHh0IGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKaW5kZXggMDU0YjRmMC4uNWI4ZWNiYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0c0VmbC50eHQKQEAgLTgyLDkgKzgyLDExIEBAIExJU1QoQVBQRU5EIFdlYkNvcmVf
VVNFUl9BR0VOVF9TVFlMRV9TSEVFVFMKIAogSUYgKFdURl9VU0VfQ0FJUk8pCiAgIExJU1QoQVBQ
RU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICIke1dFQkNPUkVfRElSfS9wbGF0
Zm9ybS9jYWlybyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8i
CiAgICkKICAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgcGxhdGZvcm0vY2Fpcm8v
V2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
Q2Fpcm9VdGlsaXRpZXMuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJv
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYWRpZW50Q2Fpcm8uY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggNmQ2ZWZjYi4uYzE2ZGUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisy
MDExLTA5LTIyICBFdW5taSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAg
ICBbRUZMXSBNb3ZlIEd0a1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvIHRvIHRoZSBjYWlybyBkaXJl
Y3RvcnkgYW5kIG1vZGlmeSB0byB1c2UgaW4gdGhlIEVGTC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzNTAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGd0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVD
YWlyby5jcHAgaXMgbW92ZWQgdG8gdGhlIGNhaXJvL1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNw
cCBhbmQKKyAgICAgICAgc29tZSBjb2RlcyBmb3IgRUZMIGFyZSBhZGRlZC4KKyAgICAgICAgV2lk
Z2V0QmFja2luZ1N0b3JlQ2Fpcm8gY3JlYXRlcyBjYWlyb19pbWFnZV9zdXJmYWNlIGFuZCBoYXMg
YSByb2xlIHRvIGNvcHkgcmV1c2FibGUgYXJlYQorICAgICAgICB3aGVuIHNjcm9sbGluZy4gU28s
IGl0IHdpbGwgYmUgdXNlZCBpbiB0aGUgV2ViS2l0MiBFRkwgcG9ydCdzIEJhY2tpbmdTdG9yZS4K
KworICAgICAgICAqIENNYWtlTGlzdHNFZmwudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxp
c3QuYW06CisgICAgICAgICogcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9y
ZUNhaXJvLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVN1cmZhY2VGb3JCYWNraW5nU3Rv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU6OldpZGdldEJh
Y2tpbmdTdG9yZVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3Jl
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlOjpXaWRnZXRC
YWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlOjp+V2lk
Z2V0QmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZTo6
Y2Fpcm9TdXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZTo6c2Ny
b2xsKToKKwogMjAxMS0wOS0yMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIHVubmVlZGVkIHR5cGUgY29udmVyc2lvbiBmcm9tIGJhY2tncm91bmQgYmxl
ZWQgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggOGE0NjQzNC4uYWIwZDMx
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zOTQyLDYgKzM5NDIsNyBAQCB3
ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0RyYWdDb250
cm9sbGVyR3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3Rr
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRnJhbWVHdGsuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhaXJvL1dpZGdldEJhY2tpbmdTdG9yZS5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29u
dGV4dFBsYXRmb3JtUHJpdmF0ZUNhaXJvLmggXApAQCAtMzk4Nyw3ICszOTg4LDYgQEAgd2ViY29y
ZWd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrQ2xpY2tD
b3VudGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmggXAotCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVYMTEuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2VvbG9jYXRpb25TZXJ2aWNlR3RrLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0dlb2xvY2F0aW9uU2VydmljZUd0ay5o
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhaXJvL1dpZGdldEJhY2tp
bmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0
b3JlLmgKaW5kZXggNzBkMWM5MS4uZTM3ZTk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlLmgKQEAgLTI3LDYgKzI3LDggQEAKIAog
I2lmIFBMQVRGT1JNKEdUSykKICNpbmNsdWRlIDxndGsvZ3RrLmg+CisjZWxpZiBQTEFURk9STShF
RkwpCisjaW5jbHVkZSA8RXZhcy5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTM1LDYgKzM3LDggQEAgY2xhc3MgV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZTsKIAogI2lmIFBM
QVRGT1JNKEdUSykKIHR5cGVkZWYgR3RrV2lkZ2V0KiBQbGF0Zm9ybVdpZGdldDsKKyNlbGlmIFBM
QVRGT1JNKEVGTCkKK3R5cGVkZWYgRXZhc19PYmplY3QqIFBsYXRmb3JtV2lkZ2V0OwogI2VuZGlm
CiAKIGNsYXNzIFdpZGdldEJhY2tpbmdTdG9yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDQxNTVhZQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhaXJvL1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcApA
QCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSwgSWdhbGlhIFMuTC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2lkZ2V0
QmFja2luZ1N0b3JlLmgiCisKKyNpZiAoUExBVEZPUk0oR1RLKSAmJiAhZGVmaW5lZChYUF9VTklY
KSkgfHwgUExBVEZPUk0oRUZMKQorCisjaW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXMuaCIKKyNpbmNs
dWRlICJSZWZQdHJDYWlyby5oIgorI2luY2x1ZGUgPGNhaXJvL2NhaXJvLmg+CisKKyNpZiBQTEFU
Rk9STShHVEspCisjaW5jbHVkZSAiR3RrVmVyc2lvbmluZy5oIgorI2VuZGlmCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworc3RhdGljIFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBjcmVhdGVT
dXJmYWNlRm9yQmFja2luZ1N0b3JlKFBsYXRmb3JtV2lkZ2V0IHdpZGdldCwgY29uc3QgSW50U2l6
ZSYgc2l6ZSkKK3sKKyNpZiBQTEFURk9STShHVEspCisgICAgcmV0dXJuIGdka193aW5kb3dfY3Jl
YXRlX3NpbWlsYXJfc3VyZmFjZShndGtfd2lkZ2V0X2dldF93aW5kb3cod2lkZ2V0KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENBSVJPX0NPTlRFTlRfQ09M
T1JfQUxQSEEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpOworI2VsaWYgUExBVEZPUk0oRUZMKQorICAgIHJl
dHVybiBhZG9wdFJlZihjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZShDQUlST19GT1JNQVRfQVJH
QjMyLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpKTsKKyNlbHNlCisgICAgcmV0dXJuIG51
bGxwdHI7CisjZW5kaWYKK30KKworY2xhc3MgV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSB7Cisg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSk7CisgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisKK3B1YmxpYzoKKyAgICBSZWZQdHI8Y2Fpcm9fc3Vy
ZmFjZV90PiBtX3N1cmZhY2U7CisgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gbV9zY3JvbGxT
dXJmYWNlOworCisgICAgc3RhdGljIFBhc3NPd25QdHI8V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0
ZT4gY3JlYXRlKFBsYXRmb3JtV2lkZ2V0IHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0
ZSh3aWRnZXQsIHNpemUpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgLy8gV2Uga2VlcCB0d28g
Y29waWVzIG9mIHRoZSBzdXJmYWNlIGhlcmUsIHdoaWNoIHdpbGwgZG91YmxlIHRoZSBtZW1vcnkg
dXNhZ2UsIGJ1dCBpbmNyZWFzZQorICAgIC8vIHNjcm9sbGluZyBwZXJmb3JtYW5jZSBzaW5jZSB3
ZSBkbyBub3QgaGF2ZSB0byBrZWVwIHJlYWxsb2NhdGluZyBhIG1lbW9yeSByZWdpb24gZHVyaW5n
CisgICAgLy8gcXVpY2sgc2Nyb2xsaW5nIHJlcXVlc3RzLgorICAgIFdpZGdldEJhY2tpbmdTdG9y
ZVByaXZhdGUoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQorICAg
ICAgICA6IG1fc3VyZmFjZShjcmVhdGVTdXJmYWNlRm9yQmFja2luZ1N0b3JlKHdpZGdldCwgc2l6
ZSkpCisgICAgICAgICwgbV9zY3JvbGxTdXJmYWNlKGNyZWF0ZVN1cmZhY2VGb3JCYWNraW5nU3Rv
cmUod2lkZ2V0LCBzaXplKSkKKyAgICB7CisgICAgfQorfTsKKworUGFzc093blB0cjxXaWRnZXRC
YWNraW5nU3RvcmU+IFdpZGdldEJhY2tpbmdTdG9yZTo6Y3JlYXRlKFBsYXRmb3JtV2lkZ2V0IHdp
ZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdp
ZGdldEJhY2tpbmdTdG9yZSh3aWRnZXQsIHNpemUpKTsKK30KKworV2lkZ2V0QmFja2luZ1N0b3Jl
OjpXaWRnZXRCYWNraW5nU3RvcmUoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0LCBjb25zdCBJbnRTaXpl
JiBzaXplKQorICAgIDogbV9wcml2YXRlKFdpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU6OmNyZWF0
ZSh3aWRnZXQsIHNpemUpKQoreworfQorCitXaWRnZXRCYWNraW5nU3RvcmU6On5XaWRnZXRCYWNr
aW5nU3RvcmUoKQoreworfQorCitjYWlyb19zdXJmYWNlX3QqIFdpZGdldEJhY2tpbmdTdG9yZTo6
Y2Fpcm9TdXJmYWNlKCkKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5tX3N1cmZhY2UuZ2V0KCk7
Cit9CisKK3ZvaWQgV2lkZ2V0QmFja2luZ1N0b3JlOjpzY3JvbGwoY29uc3QgSW50UmVjdCYgc2Ny
b2xsUmVjdCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQoreworICAgIEludFJlY3QgdGFy
Z2V0UmVjdChzY3JvbGxSZWN0KTsKKyAgICB0YXJnZXRSZWN0Lm1vdmUoc2Nyb2xsT2Zmc2V0KTsK
KyAgICB0YXJnZXRSZWN0LnNoaWZ0TWF4WEVkZ2VUbyh0YXJnZXRSZWN0Lm1heFgoKSAtIHNjcm9s
bE9mZnNldC53aWR0aCgpKTsKKyAgICB0YXJnZXRSZWN0LnNoaWZ0TWF4WUVkZ2VUbyh0YXJnZXRS
ZWN0Lm1heFkoKSAtIHNjcm9sbE9mZnNldC5oZWlnaHQoKSk7CisgICAgaWYgKHRhcmdldFJlY3Qu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb3B5UmVjdEZyb21PbmVTdXJmYWNl
VG9Bbm90aGVyKG1fcHJpdmF0ZS0+bV9zdXJmYWNlLmdldCgpLCBtX3ByaXZhdGUtPm1fc2Nyb2xs
U3VyZmFjZS5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9s
bE9mZnNldCwgdGFyZ2V0UmVjdCk7CisgICAgY29weVJlY3RGcm9tT25lU3VyZmFjZVRvQW5vdGhl
cihtX3ByaXZhdGUtPm1fc2Nyb2xsU3VyZmFjZS5nZXQoKSwgbV9wcml2YXRlLT5tX3N1cmZhY2Uu
Z2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRTaXplKCksIHRh
cmdldFJlY3QpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyAoUExB
VEZPUk0oR1RLKSAmJiAhZGVmaW5lZChYUF9VTklYKSkgfHwgUExBVEZPUk0oRUZMKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZUNh
aXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3Rv
cmVDYWlyby5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2NzU1ZjkuLjAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9y
ZUNhaXJvLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEsIElnYWxpYSBTLkwuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0g
KiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAg
TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3Jp
dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2lkZ2V0QmFja2luZ1N0b3JlLmgiCi0K
LSNpZm5kZWYgWFBfVU5JWAotCi0jaW5jbHVkZSAiQ2Fpcm9VdGlsaXRpZXMuaCIKLSNpbmNsdWRl
ICJSZWZQdHJDYWlyby5oIgotI2luY2x1ZGUgPGNhaXJvL2NhaXJvLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotc3RhdGljIFBhc3NSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBjcmVhdGVTdXJm
YWNlRm9yQmFja2luZ1N0b3JlKEd0a1dpZGdldCogd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXpl
KQotewotICAgIHJldHVybiBnZGtfd2luZG93X2NyZWF0ZV9zaW1pbGFyX3N1cmZhY2UoZ3RrX3dp
ZGdldF9nZXRfd2luZG93KHdpZGdldCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBDQUlST19DT05URU5UX0NPTE9SX0FMUEhBLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgp
KTsKLX0KLQotCi1jbGFzcyBXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlIHsKLSAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKTsKLSAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKLQotcHVibGljOgotICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG1f
c3VyZmFjZTsKLSAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBtX3Njcm9sbFN1cmZhY2U7Ci0K
LSAgICBzdGF0aWMgUGFzc093blB0cjxXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlPiBjcmVhdGUo
R3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCi0gICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IFdpZGdldEJhY2tpbmdTdG9yZVByaXZhdGUod2lkZ2V0LCBzaXpl
KSk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIC8vIFdlIGtlZXAgdHdvIGNvcGllcyBvZiB0aGUg
c3VyZmFjZSBoZXJlLCB3aGljaCB3aWxsIGRvdWJsZSB0aGUgbWVtb3J5IHVzYWdlLCBidXQgaW5j
cmVhc2UKLSAgICAvLyBzY3JvbGxpbmcgcGVyZm9ybWFuY2Ugc2luY2Ugd2UgZG8gbm90IGhhdmUg
dG8ga2VlcCByZWFsbG9jYXRpbmcgYSBtZW1vcnkgcmVnaW9uIGR1cmluZwotICAgIC8vIHF1aWNr
IHNjcm9sbGluZyByZXF1ZXN0cy4KLSAgICBXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKEd0a1dp
ZGdldCogd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQotICAgICAgICA6IG1fc3VyZmFjZShj
cmVhdGVTdXJmYWNlRm9yQmFja2luZ1N0b3JlKHdpZGdldCwgc2l6ZSkpCi0gICAgICAgICwgbV9z
Y3JvbGxTdXJmYWNlKGNyZWF0ZVN1cmZhY2VGb3JCYWNraW5nU3RvcmUod2lkZ2V0LCBzaXplKSkK
LSAgICB7Ci0gICAgfQotfTsKLQotUGFzc093blB0cjxXaWRnZXRCYWNraW5nU3RvcmU+IFdpZGdl
dEJhY2tpbmdTdG9yZTo6Y3JlYXRlKEd0a1dpZGdldCogd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBz
aXplKQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2lkZ2V0QmFja2luZ1N0b3JlKHdpZGdl
dCwgc2l6ZSkpOwotfQotCi1XaWRnZXRCYWNraW5nU3RvcmU6OldpZGdldEJhY2tpbmdTdG9yZShH
dGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKLSAgICA6IG1fcHJpdmF0ZShX
aWRnZXRCYWNraW5nU3RvcmVQcml2YXRlOjpjcmVhdGUod2lkZ2V0LCBzaXplKSkKLXsKLX0KLQot
V2lkZ2V0QmFja2luZ1N0b3JlOjp+V2lkZ2V0QmFja2luZ1N0b3JlKCkKLXsKLX0KLQotY2Fpcm9f
c3VyZmFjZV90KiBXaWRnZXRCYWNraW5nU3RvcmU6OmNhaXJvU3VyZmFjZSgpCi17Ci0gICAgcmV0
dXJuIG1fcHJpdmF0ZS0+bV9zdXJmYWNlLmdldCgpOwotfQotCi12b2lkIFdpZGdldEJhY2tpbmdT
dG9yZTo6c2Nyb2xsKGNvbnN0IEludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IEludFNpemUmIHNj
cm9sbE9mZnNldCkKLXsKLSAgICBJbnRSZWN0IHRhcmdldFJlY3Qoc2Nyb2xsUmVjdCk7Ci0gICAg
dGFyZ2V0UmVjdC5tb3ZlKHNjcm9sbE9mZnNldCk7Ci0gICAgdGFyZ2V0UmVjdC5zaGlmdE1heFhF
ZGdlVG8odGFyZ2V0UmVjdC5tYXhYKCkgLSBzY3JvbGxPZmZzZXQud2lkdGgoKSk7Ci0gICAgdGFy
Z2V0UmVjdC5zaGlmdE1heFlFZGdlVG8odGFyZ2V0UmVjdC5tYXhZKCkgLSBzY3JvbGxPZmZzZXQu
aGVpZ2h0KCkpOwotICAgIGlmICh0YXJnZXRSZWN0LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgY29weVJlY3RGcm9tT25lU3VyZmFjZVRvQW5vdGhlcihtX3ByaXZhdGUtPm1fc3Vy
ZmFjZS5nZXQoKSwgbV9wcml2YXRlLT5tX3Njcm9sbFN1cmZhY2UuZ2V0KCksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxPZmZzZXQsIHRhcmdldFJlY3QpOwotICAg
IGNvcHlSZWN0RnJvbU9uZVN1cmZhY2VUb0Fub3RoZXIobV9wcml2YXRlLT5tX3Njcm9sbFN1cmZh
Y2UuZ2V0KCksIG1fcHJpdmF0ZS0+bV9zdXJmYWNlLmdldCgpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSW50U2l6ZSgpLCB0YXJnZXRSZWN0KTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gIVhQX1VOSVgK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108620</attachid>
            <date>2011-09-25 19:13:47 -0700</date>
            <delta_ts>2011-09-25 23:52:20 -0700</delta_ts>
            <desc>Patch for WidgetBackingStoreCairo</desc>
            <filename>WidgetBackingStoreCairo.patch</filename>
            <type>text/plain</type>
            <size>12330</size>
            <attacher name="Eunmi Lee">enmi.lee</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHNFZmwudHh0IGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKaW5kZXggMDU0YjRmMC4uNWI4ZWNiYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0c0VmbC50eHQKKysrIGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0c0VmbC50eHQKQEAgLTgyLDkgKzgyLDExIEBAIExJU1QoQVBQRU5EIFdlYkNvcmVf
VVNFUl9BR0VOVF9TVFlMRV9TSEVFVFMKIAogSUYgKFdURl9VU0VfQ0FJUk8pCiAgIExJU1QoQVBQ
RU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICIke1dFQkNPUkVfRElSfS9wbGF0
Zm9ybS9jYWlybyIKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8i
CiAgICkKICAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgcGxhdGZvcm0vY2Fpcm8v
V2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
Q2Fpcm9VdGlsaXRpZXMuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJv
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYWRpZW50Q2Fpcm8uY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggNmQ2ZWZjYi4uZjQ3ZDIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisy
MDExLTA5LTI1ICBFdW5taSBMZWUgIDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAg
ICBbRUZMXSBNb3ZlIEd0a1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvIHRvIHRoZSBjYWlybyBkaXJl
Y3RvcnkgYW5kIG1vZGlmeSB0byB1c2UgaW4gdGhlIEVGTC4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzNTAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGd0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVD
YWlyby5jcHAgaXMgbW92ZWQgdG8gdGhlIGNhaXJvL1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNw
cCBhbmQKKyAgICAgICAgc29tZSBjb2RlcyBmb3IgRUZMIGFyZSBhZGRlZC4KKyAgICAgICAgV2lk
Z2V0QmFja2luZ1N0b3JlQ2Fpcm8gY3JlYXRlcyBjYWlyb19pbWFnZV9zdXJmYWNlIGFuZCBoYXMg
YSByb2xlIHRvIGNvcHkgcmV1c2FibGUgYXJlYQorICAgICAgICB3aGVuIHNjcm9sbGluZy4gU28s
IGl0IHdpbGwgYmUgdXNlZCBpbiB0aGUgV2ViS2l0MiBFRkwgcG9ydCdzIEJhY2tpbmdTdG9yZS4K
KworICAgICAgICAqIENNYWtlTGlzdHNFZmwudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxp
c3QuYW06CisgICAgICAgICogcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9y
ZUNhaXJvLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVN1cmZhY2VGb3JCYWNraW5nU3Rv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZVByaXZhdGU6OldpZGdldEJh
Y2tpbmdTdG9yZVByaXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3Jl
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlOjpXaWRnZXRC
YWNraW5nU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0QmFja2luZ1N0b3JlOjp+V2lk
Z2V0QmFja2luZ1N0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZTo6
Y2Fpcm9TdXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldEJhY2tpbmdTdG9yZTo6c2Ny
b2xsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlWDExLmNw
cDoKKwogMjAxMS0wOS0yMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVtb3ZlIHVubmVlZGVkIHR5cGUgY29udmVyc2lvbiBmcm9tIGJhY2tncm91bmQgYmxlZWQg
Y29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggOGE0NjQzNC4uZDcyZTgzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zOTg3LDggKzM5ODcsNiBAQCB3ZWJj
b3JlZ3RrX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtDbGlj
a0NvdW50ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuaCBcCi0JU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcCBc
Ci0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1dpZGdldEJhY2tpbmdTdG9yZVgxMS5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HZW9sb2NhdGlvblNlcnZpY2VHdGsu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR2VvbG9jYXRpb25TZXJ2aWNlR3Rr
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HT3duUHRyR3RrLmNwcCBcCkBAIC00
MDM4LDYgKzQwMzYsNyBAQCB3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAogCiBpZiBUQVJHRVRfWDEx
CiB3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9H
dGtXaWRnZXRCYWNraW5nU3RvcmVYMTEuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL2d0
ay9ndGsyeHRiaW4uYyBcCiAJU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ndGsvZ3RrMnh0YmluLmgg
XAogCVNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZ3RrL3hlbWJlZC5oCkBAIC00MDQ3LDYgKzQwNDYs
NyBAQCBpZiBUQVJHRVRfV0lOMzIKIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JXaW4uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvcldpbi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jYWly
by9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9TeXN0ZW1JbmZvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1N5c3Rl
bUluZm8uaCBcCiAJU291cmNlL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luRGF0YWJhc2VXaW4u
Y3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhaXJvL1dpZGdldEJh
Y2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2lu
Z1N0b3JlLmgKaW5kZXggNzBkMWM5MS4uZTM3ZTk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlLmgKQEAgLTI3LDYgKzI3LDggQEAK
IAogI2lmIFBMQVRGT1JNKEdUSykKICNpbmNsdWRlIDxndGsvZ3RrLmg+CisjZWxpZiBQTEFURk9S
TShFRkwpCisjaW5jbHVkZSA8RXZhcy5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTM1LDYgKzM3LDggQEAgY2xhc3MgV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZTsKIAogI2lm
IFBMQVRGT1JNKEdUSykKIHR5cGVkZWYgR3RrV2lkZ2V0KiBQbGF0Zm9ybVdpZGdldDsKKyNlbGlm
IFBMQVRGT1JNKEVGTCkKK3R5cGVkZWYgRXZhc19PYmplY3QqIFBsYXRmb3JtV2lkZ2V0OwogI2Vu
ZGlmCiAKIGNsYXNzIFdpZGdldEJhY2tpbmdTdG9yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jYWlyby9XaWRnZXRCYWNraW5nU3RvcmVDYWlyby5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjk2Nzg0YQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NhaXJvL1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNw
cApAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSwgSWdhbGlhIFMu
TC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAw
MjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2lk
Z2V0QmFja2luZ1N0b3JlLmgiCisKKyNpbmNsdWRlICJDYWlyb1V0aWxpdGllcy5oIgorI2luY2x1
ZGUgIlJlZlB0ckNhaXJvLmgiCisjaW5jbHVkZSA8Y2Fpcm8vY2Fpcm8uaD4KKworI2lmIFBMQVRG
T1JNKEdUSykKKyNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgiCisjZW5kaWYKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdGF0aWMgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IGNyZWF0ZVN1
cmZhY2VGb3JCYWNraW5nU3RvcmUoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0LCBjb25zdCBJbnRTaXpl
JiBzaXplKQoreworI2lmIFBMQVRGT1JNKEdUSykKKyAgICByZXR1cm4gZ2RrX3dpbmRvd19jcmVh
dGVfc2ltaWxhcl9zdXJmYWNlKGd0a193aWRnZXRfZ2V0X3dpbmRvdyh3aWRnZXQpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0FJUk9fQ09OVEVOVF9DT0xP
Ul9BTFBIQSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp
emUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSk7CisjZWxzZQorICAgIHJldHVybiBhZG9wdFJlZihj
YWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZShDQUlST19GT1JNQVRfQVJHQjMyLCBzaXplLndpZHRo
KCksIHNpemUuaGVpZ2h0KCkpKTsKKyNlbmRpZgorfQorCitjbGFzcyBXaWRnZXRCYWNraW5nU3Rv
cmVQcml2YXRlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXaWRnZXRCYWNraW5nU3RvcmVQ
cml2YXRlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKworcHVibGljOgorICAgIFJl
ZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG1fc3VyZmFjZTsKKyAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFj
ZV90PiBtX3Njcm9sbFN1cmZhY2U7CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxXaWRnZXRCYWNr
aW5nU3RvcmVQcml2YXRlPiBjcmVhdGUoUGxhdGZvcm1XaWRnZXQgd2lkZ2V0LCBjb25zdCBJbnRT
aXplJiBzaXplKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXaWRnZXRCYWNr
aW5nU3RvcmVQcml2YXRlKHdpZGdldCwgc2l6ZSkpOworICAgIH0KKworcHJpdmF0ZToKKyAgICAv
LyBXZSBrZWVwIHR3byBjb3BpZXMgb2YgdGhlIHN1cmZhY2UgaGVyZSwgd2hpY2ggd2lsbCBkb3Vi
bGUgdGhlIG1lbW9yeSB1c2FnZSwgYnV0IGluY3JlYXNlCisgICAgLy8gc2Nyb2xsaW5nIHBlcmZv
cm1hbmNlIHNpbmNlIHdlIGRvIG5vdCBoYXZlIHRvIGtlZXAgcmVhbGxvY2F0aW5nIGEgbWVtb3J5
IHJlZ2lvbiBkdXJpbmcKKyAgICAvLyBxdWljayBzY3JvbGxpbmcgcmVxdWVzdHMuCisgICAgV2lk
Z2V0QmFja2luZ1N0b3JlUHJpdmF0ZShQbGF0Zm9ybVdpZGdldCB3aWRnZXQsIGNvbnN0IEludFNp
emUmIHNpemUpCisgICAgICAgIDogbV9zdXJmYWNlKGNyZWF0ZVN1cmZhY2VGb3JCYWNraW5nU3Rv
cmUod2lkZ2V0LCBzaXplKSkKKyAgICAgICAgLCBtX3Njcm9sbFN1cmZhY2UoY3JlYXRlU3VyZmFj
ZUZvckJhY2tpbmdTdG9yZSh3aWRnZXQsIHNpemUpKQorICAgIHsKKyAgICB9Cit9OworCitQYXNz
T3duUHRyPFdpZGdldEJhY2tpbmdTdG9yZT4gV2lkZ2V0QmFja2luZ1N0b3JlOjpjcmVhdGUoUGxh
dGZvcm1XaWRnZXQgd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgV2lkZ2V0QmFja2luZ1N0b3JlKHdpZGdldCwgc2l6ZSkpOworfQorCitXaWRn
ZXRCYWNraW5nU3RvcmU6OldpZGdldEJhY2tpbmdTdG9yZShQbGF0Zm9ybVdpZGdldCB3aWRnZXQs
IGNvbnN0IEludFNpemUmIHNpemUpCisgICAgOiBtX3ByaXZhdGUoV2lkZ2V0QmFja2luZ1N0b3Jl
UHJpdmF0ZTo6Y3JlYXRlKHdpZGdldCwgc2l6ZSkpCit7Cit9CisKK1dpZGdldEJhY2tpbmdTdG9y
ZTo6fldpZGdldEJhY2tpbmdTdG9yZSgpCit7Cit9CisKK2NhaXJvX3N1cmZhY2VfdCogV2lkZ2V0
QmFja2luZ1N0b3JlOjpjYWlyb1N1cmZhY2UoKQoreworICAgIHJldHVybiBtX3ByaXZhdGUtPm1f
c3VyZmFjZS5nZXQoKTsKK30KKwordm9pZCBXaWRnZXRCYWNraW5nU3RvcmU6OnNjcm9sbChjb25z
dCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQpCit7Cisg
ICAgSW50UmVjdCB0YXJnZXRSZWN0KHNjcm9sbFJlY3QpOworICAgIHRhcmdldFJlY3QubW92ZShz
Y3JvbGxPZmZzZXQpOworICAgIHRhcmdldFJlY3Quc2hpZnRNYXhYRWRnZVRvKHRhcmdldFJlY3Qu
bWF4WCgpIC0gc2Nyb2xsT2Zmc2V0LndpZHRoKCkpOworICAgIHRhcmdldFJlY3Quc2hpZnRNYXhZ
RWRnZVRvKHRhcmdldFJlY3QubWF4WSgpIC0gc2Nyb2xsT2Zmc2V0LmhlaWdodCgpKTsKKyAgICBp
ZiAodGFyZ2V0UmVjdC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvcHlSZWN0
RnJvbU9uZVN1cmZhY2VUb0Fub3RoZXIobV9wcml2YXRlLT5tX3N1cmZhY2UuZ2V0KCksIG1fcHJp
dmF0ZS0+bV9zY3JvbGxTdXJmYWNlLmdldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2Nyb2xsT2Zmc2V0LCB0YXJnZXRSZWN0KTsKKyAgICBjb3B5UmVjdEZyb21PbmVT
dXJmYWNlVG9Bbm90aGVyKG1fcHJpdmF0ZS0+bV9zY3JvbGxTdXJmYWNlLmdldCgpLCBtX3ByaXZh
dGUtPm1fc3VyZmFjZS5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEludFNpemUoKSwgdGFyZ2V0UmVjdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3Rv
cmVDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2lu
Z1N0b3JlQ2Fpcm8uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Njc1NWY5Li4w
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5n
U3RvcmVDYWlyby5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5OCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDExLCBJZ2FsaWEgUy5MLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot
ICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgot
ICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3Qs
IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldpZGdldEJhY2tpbmdTdG9yZS5o
IgotCi0jaWZuZGVmIFhQX1VOSVgKLQotI2luY2x1ZGUgIkNhaXJvVXRpbGl0aWVzLmgiCi0jaW5j
bHVkZSAiUmVmUHRyQ2Fpcm8uaCIKLSNpbmNsdWRlIDxjYWlyby9jYWlyby5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gY3JlYXRl
U3VyZmFjZUZvckJhY2tpbmdTdG9yZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYg
c2l6ZSkKLXsKLSAgICByZXR1cm4gZ2RrX3dpbmRvd19jcmVhdGVfc2ltaWxhcl9zdXJmYWNlKGd0
a193aWRnZXRfZ2V0X3dpbmRvdyh3aWRnZXQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgQ0FJUk9fQ09OVEVOVF9DT0xPUl9BTFBIQSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemUud2lkdGgoKSwgc2l6ZS5oZWln
aHQoKSk7Ci19Ci0KLQotY2xhc3MgV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSB7Ci0gICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZSk7Ci0gICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7Ci0KLXB1YmxpYzoKLSAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90
PiBtX3N1cmZhY2U7Ci0gICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gbV9zY3JvbGxTdXJmYWNl
OwotCi0gICAgc3RhdGljIFBhc3NPd25QdHI8V2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZT4gY3Jl
YXRlKEd0a1dpZGdldCogd2lkZ2V0LCBjb25zdCBJbnRTaXplJiBzaXplKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXaWRnZXRCYWNraW5nU3RvcmVQcml2YXRlKHdpZGdldCwg
c2l6ZSkpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICAvLyBXZSBrZWVwIHR3byBjb3BpZXMgb2Yg
dGhlIHN1cmZhY2UgaGVyZSwgd2hpY2ggd2lsbCBkb3VibGUgdGhlIG1lbW9yeSB1c2FnZSwgYnV0
IGluY3JlYXNlCi0gICAgLy8gc2Nyb2xsaW5nIHBlcmZvcm1hbmNlIHNpbmNlIHdlIGRvIG5vdCBo
YXZlIHRvIGtlZXAgcmVhbGxvY2F0aW5nIGEgbWVtb3J5IHJlZ2lvbiBkdXJpbmcKLSAgICAvLyBx
dWljayBzY3JvbGxpbmcgcmVxdWVzdHMuCi0gICAgV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZShH
dGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKLSAgICAgICAgOiBtX3N1cmZh
Y2UoY3JlYXRlU3VyZmFjZUZvckJhY2tpbmdTdG9yZSh3aWRnZXQsIHNpemUpKQotICAgICAgICAs
IG1fc2Nyb2xsU3VyZmFjZShjcmVhdGVTdXJmYWNlRm9yQmFja2luZ1N0b3JlKHdpZGdldCwgc2l6
ZSkpCi0gICAgewotICAgIH0KLX07Ci0KLVBhc3NPd25QdHI8V2lkZ2V0QmFja2luZ1N0b3JlPiBX
aWRnZXRCYWNraW5nU3RvcmU6OmNyZWF0ZShHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50U2l6
ZSYgc2l6ZSkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdpZGdldEJhY2tpbmdTdG9yZSh3
aWRnZXQsIHNpemUpKTsKLX0KLQotV2lkZ2V0QmFja2luZ1N0b3JlOjpXaWRnZXRCYWNraW5nU3Rv
cmUoR3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEludFNpemUmIHNpemUpCi0gICAgOiBtX3ByaXZh
dGUoV2lkZ2V0QmFja2luZ1N0b3JlUHJpdmF0ZTo6Y3JlYXRlKHdpZGdldCwgc2l6ZSkpCi17Ci19
Ci0KLVdpZGdldEJhY2tpbmdTdG9yZTo6fldpZGdldEJhY2tpbmdTdG9yZSgpCi17Ci19Ci0KLWNh
aXJvX3N1cmZhY2VfdCogV2lkZ2V0QmFja2luZ1N0b3JlOjpjYWlyb1N1cmZhY2UoKQotewotICAg
IHJldHVybiBtX3ByaXZhdGUtPm1fc3VyZmFjZS5nZXQoKTsKLX0KLQotdm9pZCBXaWRnZXRCYWNr
aW5nU3RvcmU6OnNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXpl
JiBzY3JvbGxPZmZzZXQpCi17Ci0gICAgSW50UmVjdCB0YXJnZXRSZWN0KHNjcm9sbFJlY3QpOwot
ICAgIHRhcmdldFJlY3QubW92ZShzY3JvbGxPZmZzZXQpOwotICAgIHRhcmdldFJlY3Quc2hpZnRN
YXhYRWRnZVRvKHRhcmdldFJlY3QubWF4WCgpIC0gc2Nyb2xsT2Zmc2V0LndpZHRoKCkpOwotICAg
IHRhcmdldFJlY3Quc2hpZnRNYXhZRWRnZVRvKHRhcmdldFJlY3QubWF4WSgpIC0gc2Nyb2xsT2Zm
c2V0LmhlaWdodCgpKTsKLSAgICBpZiAodGFyZ2V0UmVjdC5pc0VtcHR5KCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGNvcHlSZWN0RnJvbU9uZVN1cmZhY2VUb0Fub3RoZXIobV9wcml2YXRlLT5t
X3N1cmZhY2UuZ2V0KCksIG1fcHJpdmF0ZS0+bV9zY3JvbGxTdXJmYWNlLmdldCgpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsT2Zmc2V0LCB0YXJnZXRSZWN0KTsK
LSAgICBjb3B5UmVjdEZyb21PbmVTdXJmYWNlVG9Bbm90aGVyKG1fcHJpdmF0ZS0+bV9zY3JvbGxT
dXJmYWNlLmdldCgpLCBtX3ByaXZhdGUtPm1fc3VyZmFjZS5nZXQoKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEludFNpemUoKSwgdGFyZ2V0UmVjdCk7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vICFYUF9VTklYCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlWDExLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVYMTEuY3BwCmlu
ZGV4IDY1YjNhNDcuLmFkNWJhYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVYMTEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9HdGtXaWRnZXRCYWNraW5nU3RvcmVYMTEuY3BwCkBAIC0xOSw4ICsxOSw2IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2lkZ2V0QmFja2luZ1N0b3JlLmgiCiAK
LSNpZmRlZiBYUF9VTklYCi0KICNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgiCiAjaW5jbHVkZSAi
UmVmUHRyQ2Fpcm8uaCIKICNpbmNsdWRlIDxYMTEvWGxpYi5oPgpAQCAtMTA3LDUgKzEwNSwzIEBA
IHZvaWQgV2lkZ2V0QmFja2luZ1N0b3JlOjpzY3JvbGwoY29uc3QgSW50UmVjdCYgc2Nyb2xsUmVj
dCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xsCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQot
I2VuZGlmIC8vIFhQX1VOSVgK
</data>

          </attachment>
      

    </bug>

</bugzilla>