<?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>122016</bug_id>
          
          <creation_ts>2013-09-27 09:13:12 -0700</creation_ts>
          <short_desc>[CoordinatedGraphics] ASSERTION FAILED: !m_flushingLayers (after r156291)</short_desc>
          <delta_ts>2013-10-09 13:59:43 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergio Correia (qrwteyrutiyoup)">sergio</reporter>
          <assigned_to name="Sergio Correia (qrwteyrutiyoup)">sergio</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>nick.diego</cc>
    
    <cc>noam</cc>
    
    <cc>ossy</cc>
    
    <cc>rhodovan.u-szeged</cc>
    
    <cc>r.plociennik</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>yoon</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>933959</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-09-27 09:13:12 -0700</bug_when>
    <thetext>After r156291, we are hitting the !m_flushingLayers assert in WebCore/rendering/RenderLayerCompositor.cpp(358), which was added in such revision.

The EFL trace follows:

./WebKitBuild/Debug/bin/MiniBrowser 
HTML5 local storage is enabled for this view.
GLib-GIO-Message: Using the &apos;memory&apos; GSettings backend.  Your settings will not be saved or shared with other applications.
ASSERTION FAILED: !m_flushingLayers
/home/sergio/projects/webkit/Source/WebCore/rendering/RenderLayerCompositor.cpp(358) : void WebCore::RenderLayerCompositor::scheduleLayerFlush(bool)
1   0x7feeaa8d4bb7 WTFCrash
2   0x7feea68e7d1a WebCore::RenderLayerCompositor::scheduleLayerFlush(bool)
3   0x7feea68e7c7e WebCore::RenderLayerCompositor::notifyFlushRequired(WebCore::GraphicsLayer const*)
4   0x7feea66d9d7c WebCore::CoordinatedGraphicsLayer::didChangeLayerState()
5   0x7feea66dbf30 WebCore::CoordinatedGraphicsLayer::syncImageBacking()
6   0x7feea66dc7b0 WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly()
7   0x7feea66dbb8c WebCore::CoordinatedGraphicsLayer::flushCompositingState(WebCore::FloatRect const&amp;)
8   0x7feea68e7f4b WebCore::RenderLayerCompositor::flushPendingLayerChanges(bool)
9   0x7feea65511b3 WebCore::FrameView::flushCompositingStateForThisFrame(WebCore::Frame*)
10  0x7feea65515f7 WebCore::FrameView::flushCompositingStateIncludingSubframes()
11  0x7feea66cb199 WebCore::CompositingCoordinator::flushPendingLayerChanges()
12  0x7feea2df3d59 WebKit::CoordinatedLayerTreeHost::forceRepaint()
13  0x7feea2db9586 WebKit::DrawingAreaImpl::sendDidUpdateBackingStoreState()
14  0x7feea2db9348 WebKit::DrawingAreaImpl::updateBackingStoreState(unsigned long, bool, float, WebCore::IntSize const&amp;, WebCore::IntSize const&amp;)
15  0x7feea2eac63f void CoreIPC::callMemberFunction&lt;WebKit::DrawingArea, void (WebKit::DrawingArea::*)(unsigned long, bool, float, WebCore::IntSize const&amp;, WebCore::IntSize const&amp;), unsigned long, bool, float, WebCore::IntSize, WebCore::IntSize&gt;(std::tuple&lt;unsigned long, bool, float, WebCore::IntSize, WebCore::IntSize&gt;&amp;&amp;, WebKit::DrawingArea*, void (WebKit::DrawingArea::*)(unsigned long, bool, float, WebCore::IntSize const&amp;, WebCore::IntSize const&amp;))
16  0x7feea2eac230 void CoreIPC::handleMessage&lt;Messages::DrawingArea::UpdateBackingStoreState, WebKit::DrawingArea, void (WebKit::DrawingArea::*)(unsigned long, bool, float, WebCore::IntSize const&amp;, WebCore::IntSize const&amp;)&gt;(CoreIPC::MessageDecoder&amp;, WebKit::DrawingArea*, void (WebKit::DrawingArea::*)(unsigned long, bool, float, WebCore::IntSize const&amp;, WebCore::IntSize const&amp;))
17  0x7feea2eabe97 WebKit::DrawingArea::didReceiveDrawingAreaMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&amp;)
18  0x7feea2ddc97a WebKit::WebPage::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&amp;)
19  0x7feea2b85fd6 CoreIPC::MessageReceiverMap::dispatchMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&amp;)
20  0x7feea2d0745d WebKit::WebProcess::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&amp;)
21  0x7feea2b73d8e CoreIPC::Connection::dispatchMessage(CoreIPC::MessageDecoder&amp;)
22  0x7feea2b73e5a CoreIPC::Connection::dispatchMessage(std::unique_ptr&lt;CoreIPC::MessageDecoder, std::default_delete&lt;CoreIPC::MessageDecoder&gt; &gt;)
23  0x7feea2b7401b CoreIPC::Connection::dispatchOneMessage()
24  0x7feea2b852e3 WTF::FunctionWrapper&lt;void (CoreIPC::Connection::*)()&gt;::operator()(CoreIPC::Connection*)
25  0x7feea2b84e6a WTF::BoundFunctionImpl&lt;WTF::FunctionWrapper&lt;void (CoreIPC::Connection::*)()&gt;, void (CoreIPC::Connection*)&gt;::operator()()
26  0x7feeaa8da4d7 WTF::Function&lt;void ()&gt;::operator()() const
27  0x7feea65ef658 WebCore::RunLoop::performWork()
28  0x7feea70d7b0a WebCore::RunLoop::wakeUpEvent(void*, void*, unsigned int)
29  0x7fee9e20b1cb
30  0x7fee9e20a271
31  0x7fee9e20a6b7 ecore_main_loop_begin
ERR&lt;17489&gt;:elementary els_tooltip.c:906 elm_object_tooltip_unset() Object does not have tooltip: obj</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937192</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-10-07 12:42:32 -0700</bug_when>
    <thetext>It is incorrect to call scheduleLayerFlush() inside of flushCompositingState().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937499</commentid>
    <comment_count>2</comment_count>
    <who name="Rob Płóciennik">r.plociennik</who>
    <bug_when>2013-10-08 07:03:16 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; It is incorrect to call scheduleLayerFlush() inside of flushCompositingState().

Is any attempt to reenter RenderLayerCompositor considered incorrect at that point?
In other words, could a simple check whether a flush is underway inside any implementation of GraphicsLayerClient::notifyFlushRequired() (like in this very case) be considered a right step?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937500</commentid>
    <comment_count>3</comment_count>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-10-08 07:08:06 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; It is incorrect to call scheduleLayerFlush() inside of flushCompositingState().
&gt; 
&gt; Is any attempt to reenter RenderLayerCompositor considered incorrect at that point?
&gt; In other words, could a simple check whether a flush is underway inside any implementation of GraphicsLayerClient::notifyFlushRequired() (like in this very case) be considered a right step?

Heh, I was going to attempt something like that: https://gist.github.com/qrwteyrutiyoup/647d9ca085b2dc13d1d7

To prevent calling scheduleLayerFlush() inside flushCompositingState(),         which is incorrect, we now only call m_client-&gt;notifyFlushRequired() --         which will trigger scheduleLayerFlush() -- if we are not already flushing         layer changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937501</commentid>
    <comment_count>4</comment_count>
    <who name="Rob Płóciennik">r.plociennik</who>
    <bug_when>2013-10-08 07:24:04 -0700</bug_when>
    <thetext>I was thinking about something as simple as:

http://pastebin.com/g9WBQXsb</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937503</commentid>
    <comment_count>5</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-10-08 07:31:38 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; It is incorrect to call scheduleLayerFlush() inside of flushCompositingState().
&gt; &gt; 
&gt; &gt; Is any attempt to reenter RenderLayerCompositor considered incorrect at that point?
&gt; &gt; In other words, could a simple check whether a flush is underway inside any implementation of GraphicsLayerClient::notifyFlushRequired() (like in this very case) be considered a right step?
&gt; 
&gt; Heh, I was going to attempt something like that: https://gist.github.com/qrwteyrutiyoup/647d9ca085b2dc13d1d7
&gt; 
&gt; To prevent calling scheduleLayerFlush() inside flushCompositingState(),         which is incorrect, we now only call m_client-&gt;notifyFlushRequired() --         which will trigger scheduleLayerFlush() -- if we are not already flushing         layer changes.

I think this is a good approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937526</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-10-08 08:32:10 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; &gt; It is incorrect to call scheduleLayerFlush() inside of flushCompositingState().
&gt; &gt; &gt; 
&gt; &gt; &gt; Is any attempt to reenter RenderLayerCompositor considered incorrect at that point?
&gt; &gt; &gt; In other words, could a simple check whether a flush is underway inside any implementation of GraphicsLayerClient::notifyFlushRequired() (like in this very case) be considered a right step?
&gt; &gt; 
&gt; &gt; Heh, I was going to attempt something like that: https://gist.github.com/qrwteyrutiyoup/647d9ca085b2dc13d1d7
&gt; &gt; 
&gt; &gt; To prevent calling scheduleLayerFlush() inside flushCompositingState(),         which is incorrect, we now only call m_client-&gt;notifyFlushRequired() --         which will trigger scheduleLayerFlush() -- if we are not already flushing         layer changes.
&gt; 
&gt; I think this is a good approach.

The fix should be in your GraphicsLayer implementation, not up in RLB/RLC, so I think that approach is OK.

The reason it&apos;s an error to do this is that there&apos;s ambiguity about whether doing this would trigger a later flush, or just get dropped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937527</commentid>
    <comment_count>7</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-10-08 08:36: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; (In reply to comment #2)
&gt; &gt; &gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; &gt; &gt; It is incorrect to call scheduleLayerFlush() inside of flushCompositingState().
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Is any attempt to reenter RenderLayerCompositor considered incorrect at that point?
&gt; &gt; &gt; &gt; In other words, could a simple check whether a flush is underway inside any implementation of GraphicsLayerClient::notifyFlushRequired() (like in this very case) be considered a right step?
&gt; &gt; &gt; 
&gt; &gt; &gt; Heh, I was going to attempt something like that: https://gist.github.com/qrwteyrutiyoup/647d9ca085b2dc13d1d7
&gt; &gt; &gt; 
&gt; &gt; &gt; To prevent calling scheduleLayerFlush() inside flushCompositingState(),         which is incorrect, we now only call m_client-&gt;notifyFlushRequired() --         which will trigger scheduleLayerFlush() -- if we are not already flushing         layer changes.
&gt; &gt; 
&gt; &gt; I think this is a good approach.
&gt; 
&gt; The fix should be in your GraphicsLayer implementation, not up in RLB/RLC, so I think that approach is OK.
&gt; 
&gt; The reason it&apos;s an error to do this is that there&apos;s ambiguity about whether doing this would trigger a later flush, or just get dropped.

This ambiguity can maybe fixed by proper naming. I think if I see a patch with this approach with r? we can discuss the naming :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937528</commentid>
    <comment_count>8</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-10-08 08:37:13 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; &gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; &gt; &gt; &gt; It is incorrect to call scheduleLayerFlush() inside of flushCompositingState().
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Is any attempt to reenter RenderLayerCompositor considered incorrect at that point?
&gt; &gt; &gt; &gt; &gt; In other words, could a simple check whether a flush is underway inside any implementation of GraphicsLayerClient::notifyFlushRequired() (like in this very case) be considered a right step?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Heh, I was going to attempt something like that: https://gist.github.com/qrwteyrutiyoup/647d9ca085b2dc13d1d7
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; To prevent calling scheduleLayerFlush() inside flushCompositingState(),         which is incorrect, we now only call m_client-&gt;notifyFlushRequired() --         which will trigger scheduleLayerFlush() -- if we are not already flushing         layer changes.
&gt; &gt; &gt; 
&gt; &gt; &gt; I think this is a good approach.
&gt; &gt; 
&gt; &gt; The fix should be in your GraphicsLayer implementation, not up in RLB/RLC, so I think that approach is OK.
&gt; &gt; 
&gt; &gt; The reason it&apos;s an error to do this is that there&apos;s ambiguity about whether doing this would trigger a later flush, or just get dropped.
&gt; 
&gt; This ambiguity can maybe fixed by proper naming. I think if I see a patch with this approach with r? we can discuss the naming :)
Though if you were referring to the RLC/RLB patch, I totally agree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937540</commentid>
    <comment_count>9</comment_count>
      <attachid>213691</attachid>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-10-08 09:22:24 -0700</bug_when>
    <thetext>Created attachment 213691
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937847</commentid>
    <comment_count>10</comment_count>
      <attachid>213691</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-10-09 02:01:37 -0700</bug_when>
    <thetext>Comment on attachment 213691
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        To prevent calling scheduleLayerFlush() inside flushCompositingState(),
&gt; +        which is incorrect, we now only call m_client-&gt;notifyFlushRequired() --
&gt; +        which will trigger scheduleLayerFlush() -- if we are not already flushing
&gt; +        layer changes.

Please use - instead of --, and remove &quot;, which is incorrect&quot;, which is unnecessary :)

&gt; Source/WebCore/platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:93
&gt; +    notifyFlushRequired(nullptr);

I think we should pass the layer here, even if it&apos;s currently not in use.
Having nullptr here is hard to read. Alternatively, have a nullptr default for CompositingCoordinator::notifyFlushRequired

&gt; Source/WebCore/platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:275
&gt; +    notifyFlushRequired(nullptr);

Ditto

&gt; Source/WebCore/platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:356
&gt; +    notifyFlushRequired(nullptr);

Ditto

&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:54
&gt; +    if (client() &amp;&amp; m_coordinator &amp;&amp; !m_coordinator-&gt;isFlushingLayerChanges()) {

Why do we need &amp;&amp; m_coordinator? you already assert for this earlier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937892</commentid>
    <comment_count>11</comment_count>
      <attachid>213768</attachid>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-10-09 06:02:47 -0700</bug_when>
    <thetext>Created attachment 213768
v2

Updated as per Noam&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937894</commentid>
    <comment_count>12</comment_count>
      <attachid>213691</attachid>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-10-09 06:06:24 -0700</bug_when>
    <thetext>Comment on attachment 213691
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt; +        layer changes.
&gt; 
&gt; Please use - instead of --, and remove &quot;, which is incorrect&quot;, which is unnecessary :)

Fixed in v2 :)

&gt;&gt; Source/WebCore/platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:93
&gt;&gt; +    notifyFlushRequired(nullptr);
&gt; 
&gt; I think we should pass the layer here, even if it&apos;s currently not in use.
&gt; Having nullptr here is hard to read. Alternatively, have a nullptr default for CompositingCoordinator::notifyFlushRequired

I don&apos;t think a default value adds much to readability, so I chose to instead pass the layer obtained from mainContentsLayer().

&gt;&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:54
&gt;&gt; +    if (client() &amp;&amp; m_coordinator &amp;&amp; !m_coordinator-&gt;isFlushingLayerChanges()) {
&gt; 
&gt; Why do we need &amp;&amp; m_coordinator? you already assert for this earlier.

Removed this check in v2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938044</commentid>
    <comment_count>13</comment_count>
      <attachid>213803</attachid>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-10-09 13:26:27 -0700</bug_when>
    <thetext>Created attachment 213803
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938062</commentid>
    <comment_count>14</comment_count>
      <attachid>213803</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-09 13:59:40 -0700</bug_when>
    <thetext>Comment on attachment 213803
Patch

Clearing flags on attachment: 213803

Committed r157184: &lt;http://trac.webkit.org/changeset/157184&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938063</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-09 13:59:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213691</attachid>
            <date>2013-10-08 09:22:24 -0700</date>
            <delta_ts>2013-10-09 06:06:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122016-20131008132223.patch</filename>
            <type>text/plain</type>
            <size>8705</size>
            <attacher name="Sergio Correia (qrwteyrutiyoup)">sergio</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3MDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2VhNWE0ODM2MmQwZDQz
ZWExZDgyY2Q4ODc4YWQyNjk3NzQ3MGRiNS4uM2EzNjQ4ZGUwM2Q0ZjBkYzkzZDE5NTA1YmFhZmY0
NTdjZjRkODA3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEzLTEwLTA4ICBTZXJn
aW8gQ29ycmVpYSAgPHNlcmdpby5jb3JyZWlhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW0Nv
b3JkaW5hdGVkR3JhcGhpY3NdIEFTU0VSVElPTiBGQUlMRUQ6ICFtX2ZsdXNoaW5nTGF5ZXJzIChh
ZnRlciByMTU2MjkxKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTIyMDE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVG8gcHJldmVudCBjYWxsaW5nIHNjaGVkdWxlTGF5ZXJGbHVzaCgpIGluc2lkZSBmbHVz
aENvbXBvc2l0aW5nU3RhdGUoKSwKKyAgICAgICAgd2hpY2ggaXMgaW5jb3JyZWN0LCB3ZSBub3cg
b25seSBjYWxsIG1fY2xpZW50LT5ub3RpZnlGbHVzaFJlcXVpcmVkKCkgLS0KKyAgICAgICAgd2hp
Y2ggd2lsbCB0cmlnZ2VyIHNjaGVkdWxlTGF5ZXJGbHVzaCgpIC0tIGlmIHdlIGFyZSBub3QgYWxy
ZWFkeSBmbHVzaGluZworICAgICAgICBsYXllciBjaGFuZ2VzLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgY292ZXJlZCBieSBleGlzdGluZyBvbmVzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6bm90aWZ5Rmx1c2hSZXF1aXJl
ZCk6IENoZWNrIGlmIHdlCisgICAgICAgIGFyZSBhbHJlYWR5IGZsdXNoaW5nIGxheWVyIGNoYW5n
ZXMgYmVmb3JlIGNhbGxpbmcgbm90aWZ5Rmx1c2hSZXF1aXJlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnNpemVEaWRDaGFuZ2UpOiBVc2Ugbm90aWZ5Rmx1c2hS
ZXF1aXJlZCgpCisgICAgICAgIGZyb20gQ29tcG9zaXRpbmdDb29yZGluYXRvciBpbnN0ZWFkIG9m
IGNhbGxpbmcgdGhlIG9uZSBmcm9tIG1fY2xpZW50CisgICAgICAgIGRpcmVjdGx5LgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6Y3JlYXRlR3JhcGhpY3NMYXllcik6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6ZGV0YWNo
TGF5ZXIpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6bm90aWZ5Rmx1c2hSZXF1aXJlZCk6IEFkZGVkIGhlbHBl
cgorICAgICAgICB0byBjaGVjayB3aGV0aGVyIHdlIGFyZSBmbHVzaGluZyBsYXllciBjaGFuZ2Vz
IGJlZm9yZSBjYWxsaW5nIGNsaWVudCgpJ3MKKyAgICAgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgp
LiBJdCByZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgaXQKKyAgICAgICAgY2Fs
bGVkIHRoZSBjbGllbnQncyBtZXRob2QuCisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OmRpZENoYW5nZUxheWVyU3RhdGUpOiBVc2UgdGhlCisgICAgICAgIG5vdGlm
eUZsdXNoUmVxdWlyZWQoKSBoZWxwZXIuCisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OmRpZENoYW5nZUFuaW1hdGlvbnMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlQ2hpbGRyZW4pOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlRmls
dGVycyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpkaWRDaGFuZ2VJbWFnZUJhY2tpbmcpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNOZWVkc0Rpc3BsYXkpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb0Nh
bnZhcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpmbHVzaENvbXBvc2l0aW5nU3RhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6dGlsZWRCYWNraW5nU3RvcmVIYXNQZW5kaW5nVGlsZUNyZWF0
aW9uKTpEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmg6CisgICAgICAgIERlY2xhcmF0aW9uIG9mIHRo
ZSBub3RpZnlGbHVzaFJlcXVpcmVkKCkgaGVscGVyLgorCiAyMDEzLTEwLTA4ICBHeXV5b3VuZyBL
aW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgVXNlIHRvQ1NTRm9vVmFs
dWUoKSBpbnN0ZWFkIG9mIHVzaW5nIHN0YXRpY19jYXN0PGNvbnN0IENTU0Zvb1ZhbHVlKj4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcApp
bmRleCA0MDc4MjFjZjFjNzc1YjIwYTBjNmZjYmMzZTZlOGZiODlmOTY4MTJkLi5mNDAwMWZlOTQz
ZGQxNjA1ZmJhMjQ4NGU1ODUyOWNjZTM3NzU4MGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGlu
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCkBAIC05MCw3ICs5MCw3IEBAIHZv
aWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoR3JhcGhp
Y3NMYXllciogbGF5ZXIpCiB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnNpemVEaWRDaGFu
Z2UoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKIHsKICAgICBtX3Jvb3RMYXllci0+c2V0U2l6ZShu
ZXdTaXplKTsKLSAgICBtX2NsaWVudC0+bm90aWZ5Rmx1c2hSZXF1aXJlZCgpOworICAgIG5vdGlm
eUZsdXNoUmVxdWlyZWQobnVsbHB0cik7CiB9CiAKIGJvb2wgQ29tcG9zaXRpbmdDb29yZGluYXRv
cjo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKCkKQEAgLTI1NSw3ICsyNTUsOCBAQCB2b2lkIENv
bXBvc2l0aW5nQ29vcmRpbmF0b3I6Om5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoY29uc3QgR3JhcGhp
Y3NMYXllciosIGRvdWJsZQogCiB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6Om5vdGlmeUZs
dXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCiB7Ci0gICAgbV9jbGllbnQtPm5vdGlm
eUZsdXNoUmVxdWlyZWQoKTsKKyAgICBpZiAoIWlzRmx1c2hpbmdMYXllckNoYW5nZXMoKSkKKyAg
ICAgICAgbV9jbGllbnQtPm5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIH0KIAogCkBAIC0yNzEsNyAr
MjcyLDcgQEAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IENvbXBvc2l0aW5nQ29vcmRp
bmF0b3I6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGgKICAgICBtX3JlZ2lzdGVyZWRMYXllcnMu
YWRkKGxheWVyLT5pZCgpLCBsYXllcik7CiAgICAgbV9zdGF0ZS5sYXllcnNUb0NyZWF0ZS5hcHBl
bmQobGF5ZXItPmlkKCkpOwogICAgIGxheWVyLT5zZXROZWVkc1Zpc2libGVSZWN0QWRqdXN0bWVu
dCgpOwotICAgIG1fY2xpZW50LT5ub3RpZnlGbHVzaFJlcXVpcmVkKCk7CisgICAgbm90aWZ5Rmx1
c2hSZXF1aXJlZChudWxscHRyKTsKICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNz
TGF5ZXI+KGxheWVyKTsKIH0KIApAQCAtMzUyLDcgKzM1Myw3IEBAIHZvaWQgQ29tcG9zaXRpbmdD
b29yZGluYXRvcjo6ZGV0YWNoTGF5ZXIoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBsYXllcikK
ICAgICB9CiAKICAgICBtX3N0YXRlLmxheWVyc1RvUmVtb3ZlLmFwcGVuZChsYXllci0+aWQoKSk7
Ci0gICAgbV9jbGllbnQtPm5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKKyAgICBub3RpZnlGbHVzaFJl
cXVpcmVkKG51bGxwdHIpOwogfQogCiB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmNvbW1p
dFNjcm9sbE9mZnNldCh1aW50MzJfdCBsYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBv
ZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuY3BwCmluZGV4IDgzMzA1ZTBjMDJmZWYxZWEwZWQ1OTFiZmJmYjFmN2Q1MTA4MDg0
YzAuLjA1NDZlMWMyODk4ZmVmNjUzMzdlMzYxN2YxYjhhY2NhYWIyYWNlYmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBA
IC00OCw0MSArNDgsNDYgQEAgc3RhdGljIENvb3JkaW5hdGVkTGF5ZXJJRCB0b0Nvb3JkaW5hdGVk
TGF5ZXJJRChHcmFwaGljc0xheWVyKiBsYXllcikKICAgICByZXR1cm4gbGF5ZXIgPyB0b0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcihsYXllciktPmlkKCkgOiAwOwogfQogCitib29sIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6bm90aWZ5Rmx1c2hSZXF1aXJlZCgpCit7CisgICAgQVNTRVJUKG1f
Y29vcmRpbmF0b3IpOworICAgIGlmIChjbGllbnQoKSAmJiBtX2Nvb3JkaW5hdG9yICYmICFtX2Nv
b3JkaW5hdG9yLT5pc0ZsdXNoaW5nTGF5ZXJDaGFuZ2VzKCkpIHsKKyAgICAgICAgY2xpZW50KCkt
Pm5vdGlmeUZsdXNoUmVxdWlyZWQodGhpcyk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpk
aWRDaGFuZ2VMYXllclN0YXRlKCkKIHsKICAgICBtX3Nob3VsZFN5bmNMYXllclN0YXRlID0gdHJ1
ZTsKLSAgICBpZiAoY2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5ub3RpZnlGbHVzaFJlcXVp
cmVkKHRoaXMpOworICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIH0KIAogdm9pZCBDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENoYW5nZUFuaW1hdGlvbnMoKQogewogICAgIG1fc2hvdWxk
U3luY0FuaW1hdGlvbnMgPSB0cnVlOwotICAgIGlmIChjbGllbnQoKSkKLSAgICAgICAgY2xpZW50
KCktPm5vdGlmeUZsdXNoUmVxdWlyZWQodGhpcyk7CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgp
OwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlQ2hpbGRyZW4o
KQogewogICAgIG1fc2hvdWxkU3luY0NoaWxkcmVuID0gdHJ1ZTsKLSAgICBpZiAoY2xpZW50KCkp
Ci0gICAgICAgIGNsaWVudCgpLT5ub3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMpOworICAgIG5vdGlm
eUZsdXNoUmVxdWlyZWQoKTsKIH0KIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKIHZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkaWRDaGFuZ2VGaWx0ZXJzKCkKIHsKICAgICBtX3Nob3Vs
ZFN5bmNGaWx0ZXJzID0gdHJ1ZTsKLSAgICBpZiAoY2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgp
LT5ub3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMpOworICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsK
IH0KICNlbmRpZgogCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlSW1h
Z2VCYWNraW5nKCkKIHsKICAgICBtX3Nob3VsZFN5bmNJbWFnZUJhY2tpbmcgPSB0cnVlOwotICAg
IGlmIChjbGllbnQoKSkKLSAgICAgICAgY2xpZW50KCktPm5vdGlmeUZsdXNoUmVxdWlyZWQodGhp
cyk7CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6c2V0U2hvdWxkVXBkYXRlVmlzaWJsZVJlY3QoKQpAQCAtMzgyLDkgKzM4Nyw3
IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c05lZWRzRGlzcGxh
eSgpCiAgICAgICAgIG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiB8PSBTeW5jQ2FudmFzOwogI2Vu
ZGlmCiAKLSAgICBpZiAoY2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5ub3RpZnlGbHVzaFJl
cXVpcmVkKHRoaXMpOwotCisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogICAgIGFkZFJlcGFp
bnRSZWN0KGNvbnRlbnRzUmVjdCgpKTsKIH0KIApAQCAtNDExLDggKzQxNCw3IEBAIHZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RvQ2FudmFzKFBsYXRmb3JtTGF5ZXIq
IHBsYXRmb3JtTGF5ZXIpCiAgICAgbV9jYW52YXNUb2tlbiA9IG1fY2FudmFzUGxhdGZvcm1MYXll
ciA/IG1fY2FudmFzUGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlVG9rZW4oKSA6IEdyYXBo
aWNzU3VyZmFjZVRva2VuKCk7CiAgICAgQVNTRVJUKCEoIW1fY2FudmFzVG9rZW4uaXNWYWxpZCgp
ICYmIG1fY2FudmFzUGxhdGZvcm1MYXllcikpOwogCi0gICAgaWYgKGNsaWVudCgpKQotICAgICAg
ICBjbGllbnQoKS0+bm90aWZ5Rmx1c2hSZXF1aXJlZCh0aGlzKTsKKyAgICBub3RpZnlGbHVzaFJl
cXVpcmVkKCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShwbGF0Zm9ybUxheWVyKTsKICNlbmRp
ZgpAQCAtNTg4LDExICs1OTAsOCBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0
Rml4ZWRUb1ZpZXdwb3J0KGJvb2wgaXNGaXhlZCkKIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0g
ICAgaWYgKCFtX2Nvb3JkaW5hdG9yLT5pc0ZsdXNoaW5nTGF5ZXJDaGFuZ2VzKCkpIHsKLSAgICAg
ICAgaWYgKGNsaWVudCgpKQotICAgICAgICAgICAgY2xpZW50KCktPm5vdGlmeUZsdXNoUmVxdWly
ZWQodGhpcyk7CisgICAgaWYgKG5vdGlmeUZsdXNoUmVxdWlyZWQoKSkKICAgICAgICAgcmV0dXJu
OwotICAgIH0KIAogICAgIGlmIChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIG1hc2sgPSB0b0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcihtYXNrTGF5ZXIoKSkpCiAgICAgICAgIG1hc2stPmZsdXNo
Q29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKQEAgLTkxOCw4ICs5MTcsNyBAQCB2
b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dGlsZWRCYWNraW5nU3RvcmVQYWludEVuZChj
b25zdCBWZWN0b3I8SW50UmVjdD4mCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dGls
ZWRCYWNraW5nU3RvcmVIYXNQZW5kaW5nVGlsZUNyZWF0aW9uKCkKIHsKICAgICBzZXROZWVkc1Zp
c2libGVSZWN0QWRqdXN0bWVudCgpOwotICAgIGlmIChjbGllbnQoKSkKLSAgICAgICAgY2xpZW50
KCktPm5vdGlmeUZsdXNoUmVxdWlyZWQodGhpcyk7CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgp
OwogfQogCiBJbnRSZWN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dGlsZWRCYWNraW5nU3Rv
cmVDb250ZW50c1JlY3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5oCmluZGV4IDYxMDVlMjMxMWRlMzAzNjU0ZjQwZTFlMjNlMjM3ZGUw
NjJmOWZkN2MuLjAwOTNkMWZmY2I2M2NjNzk0MWMzMDBiNjAzZDA3MDVlMjIzMDA1YzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgK
QEAgLTE5Niw2ICsxOTYsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlQmFja2luZ1N0b3Jl
KCk7CiAgICAgdm9pZCByZWxlYXNlSW1hZ2VCYWNraW5nSWZOZWVkZWQoKTsKIAorICAgIGJvb2wg
bm90aWZ5Rmx1c2hSZXF1aXJlZCgpOworCiAgICAgLy8gQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6
Okhvc3QKICAgICB2aXJ0dWFsIGJvb2wgaW1hZ2VCYWNraW5nVmlzaWJsZSgpIE9WRVJSSURFOwog
ICAgIGJvb2wgc2hvdWxkSGF2ZUJhY2tpbmdTdG9yZSgpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213768</attachid>
            <date>2013-10-09 06:02:47 -0700</date>
            <delta_ts>2013-10-09 13:26:21 -0700</delta_ts>
            <desc>v2</desc>
            <filename>bug-122016-20131009100247.patch</filename>
            <type>text/plain</type>
            <size>8670</size>
            <attacher name="Sergio Correia (qrwteyrutiyoup)">sergio</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3MTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmMwY2VlNGMzMzYxMmNm
OWI0N2ZkOWE2Yjg1NzU3Zjg3MmZiMjc3ZS4uZmMyOGYwYWYyN2YxMmNkZjk0ZjJiYmJkOTI4YTA5
NzcwOWNhMjM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEzLTEwLTA5ICBTZXJn
aW8gQ29ycmVpYSAgPHNlcmdpby5jb3JyZWlhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW0Nv
b3JkaW5hdGVkR3JhcGhpY3NdIEFTU0VSVElPTiBGQUlMRUQ6ICFtX2ZsdXNoaW5nTGF5ZXJzIChh
ZnRlciByMTU2MjkxKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTIyMDE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVG8gcHJldmVudCBjYWxsaW5nIHNjaGVkdWxlTGF5ZXJGbHVzaCgpIGluc2lkZSBmbHVz
aENvbXBvc2l0aW5nU3RhdGUoKSwKKyAgICAgICAgd2Ugbm93IG9ubHkgY2FsbCBtX2NsaWVudC0+
bm90aWZ5Rmx1c2hSZXF1aXJlZCgpIC0gd2hpY2ggd2lsbCB0cmlnZ2VyCisgICAgICAgIHNjaGVk
dWxlTGF5ZXJGbHVzaCgpIC0gaWYgd2UgYXJlIG5vdCBhbHJlYWR5IGZsdXNoaW5nIGxheWVyIGNo
YW5nZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIG9uZXMu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9z
aXRpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGluZ0Nvb3Jk
aW5hdG9yOjpub3RpZnlGbHVzaFJlcXVpcmVkKTogQ2hlY2sgaWYgd2UKKyAgICAgICAgYXJlIGFs
cmVhZHkgZmx1c2hpbmcgbGF5ZXIgY2hhbmdlcyBiZWZvcmUgY2FsbGluZyBub3RpZnlGbHVzaFJl
cXVpcmVkLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6c2l6ZURp
ZENoYW5nZSk6IFVzZSBub3RpZnlGbHVzaFJlcXVpcmVkKCkKKyAgICAgICAgZnJvbSBDb21wb3Np
dGluZ0Nvb3JkaW5hdG9yIGluc3RlYWQgb2YgY2FsbGluZyB0aGUgb25lIGZyb20gbV9jbGllbnQK
KyAgICAgICAgZGlyZWN0bHkuCisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGluZ0Nvb3JkaW5h
dG9yOjpjcmVhdGVHcmFwaGljc0xheWVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDb21w
b3NpdGluZ0Nvb3JkaW5hdG9yOjpkZXRhY2hMYXllcik6IERpdHRvLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpub3RpZnlG
bHVzaFJlcXVpcmVkKTogQWRkZWQgaGVscGVyCisgICAgICAgIHRvIGNoZWNrIHdoZXRoZXIgd2Ug
YXJlIGZsdXNoaW5nIGxheWVyIGNoYW5nZXMgYmVmb3JlIGNhbGxpbmcgY2xpZW50KCkncworICAg
ICAgICBub3RpZnlGbHVzaFJlcXVpcmVkKCkuIEl0IHJldHVybnMgYSBib29sZWFuIGluZGljYXRp
bmcgd2hldGhlciBpdAorICAgICAgICBjYWxsZWQgdGhlIGNsaWVudCdzIG1ldGhvZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlTGF5ZXJTdGF0
ZSk6IFVzZSB0aGUKKyAgICAgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpIGhlbHBlci4KKyAgICAg
ICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlQW5pbWF0aW9u
cyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpk
aWRDaGFuZ2VDaGlsZHJlbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjpkaWRDaGFuZ2VGaWx0ZXJzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENoYW5nZUltYWdlQmFja2luZyk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50
c05lZWRzRGlzcGxheSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyOjpzZXRDb250ZW50c1RvQ2FudmFzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tp
bmdTdG9yZUhhc1BlbmRpbmdUaWxlQ3JlYXRpb24pOkRpdHRvLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaDoK
KyAgICAgICAgRGVjbGFyYXRpb24gb2YgdGhlIG5vdGlmeUZsdXNoUmVxdWlyZWQoKSBoZWxwZXIu
CisKIDIwMTMtMTAtMDggIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLiBGaXggRUZMIGJ1aWxkYnJlYWsgc2luY2UgcjE1NzE1Mi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNw
cAppbmRleCA0MDc4MjFjZjFjNzc1YjIwYTBjNmZjYmMzZTZlOGZiODlmOTY4MTJkLi4xMjU1OTMx
MTRmZTRhNzZhNTAwNmIxMGRlMDQwOGRlYTRiNGRjY2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29y
ZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCkBAIC05MCw3ICs5MCw3IEBA
IHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoR3Jh
cGhpY3NMYXllciogbGF5ZXIpCiB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnNpemVEaWRD
aGFuZ2UoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKIHsKICAgICBtX3Jvb3RMYXllci0+c2V0U2l6
ZShuZXdTaXplKTsKLSAgICBtX2NsaWVudC0+bm90aWZ5Rmx1c2hSZXF1aXJlZCgpOworICAgIG5v
dGlmeUZsdXNoUmVxdWlyZWQobWFpbkNvbnRlbnRzTGF5ZXIoKSk7CiB9CiAKIGJvb2wgQ29tcG9z
aXRpbmdDb29yZGluYXRvcjo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKCkKQEAgLTI1NSw3ICsy
NTUsOCBAQCB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6Om5vdGlmeUFuaW1hdGlvblN0YXJ0
ZWQoY29uc3QgR3JhcGhpY3NMYXllciosIGRvdWJsZQogCiB2b2lkIENvbXBvc2l0aW5nQ29vcmRp
bmF0b3I6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCiB7Ci0gICAg
bV9jbGllbnQtPm5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKKyAgICBpZiAoIWlzRmx1c2hpbmdMYXll
ckNoYW5nZXMoKSkKKyAgICAgICAgbV9jbGllbnQtPm5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIH0K
IAogCkBAIC0yNzEsNyArMjcyLDcgQEAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IENv
bXBvc2l0aW5nQ29vcmRpbmF0b3I6OmNyZWF0ZUdyYXBoaWNzTGF5ZXIoR3JhcGgKICAgICBtX3Jl
Z2lzdGVyZWRMYXllcnMuYWRkKGxheWVyLT5pZCgpLCBsYXllcik7CiAgICAgbV9zdGF0ZS5sYXll
cnNUb0NyZWF0ZS5hcHBlbmQobGF5ZXItPmlkKCkpOwogICAgIGxheWVyLT5zZXROZWVkc1Zpc2li
bGVSZWN0QWRqdXN0bWVudCgpOwotICAgIG1fY2xpZW50LT5ub3RpZnlGbHVzaFJlcXVpcmVkKCk7
CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZChtYWluQ29udGVudHNMYXllcigpKTsKICAgICByZXR1
cm4gc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+KGxheWVyKTsKIH0KIApAQCAtMzUyLDcg
KzM1Myw3IEBAIHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6ZGV0YWNoTGF5ZXIoQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyKiBsYXllcikKICAgICB9CiAKICAgICBtX3N0YXRlLmxheWVyc1Rv
UmVtb3ZlLmFwcGVuZChsYXllci0+aWQoKSk7Ci0gICAgbV9jbGllbnQtPm5vdGlmeUZsdXNoUmVx
dWlyZWQoKTsKKyAgICBub3RpZnlGbHVzaFJlcXVpcmVkKG1haW5Db250ZW50c0xheWVyKCkpOwog
fQogCiB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmNvbW1pdFNjcm9sbE9mZnNldCh1aW50
MzJfdCBsYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBvZmZzZXQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4
IDgzMzA1ZTBjMDJmZWYxZWEwZWQ1OTFiZmJmYjFmN2Q1MTA4MDg0YzAuLjNjYzhkNTViNjMwNDU2
MGQ1YTQwOGMzYmYxMWQ4OGJlNmY0YWRjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC00OCw0MSArNDgsNDYgQEAg
c3RhdGljIENvb3JkaW5hdGVkTGF5ZXJJRCB0b0Nvb3JkaW5hdGVkTGF5ZXJJRChHcmFwaGljc0xh
eWVyKiBsYXllcikKICAgICByZXR1cm4gbGF5ZXIgPyB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cihsYXllciktPmlkKCkgOiAwOwogfQogCitib29sIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
bm90aWZ5Rmx1c2hSZXF1aXJlZCgpCit7CisgICAgQVNTRVJUKG1fY29vcmRpbmF0b3IpOworICAg
IGlmIChjbGllbnQoKSAmJiAhbV9jb29yZGluYXRvci0+aXNGbHVzaGluZ0xheWVyQ2hhbmdlcygp
KSB7CisgICAgICAgIGNsaWVudCgpLT5ub3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMpOworICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlTGF5ZXJTdGF0ZSgpCiB7CiAgICAgbV9zaG91
bGRTeW5jTGF5ZXJTdGF0ZSA9IHRydWU7Ci0gICAgaWYgKGNsaWVudCgpKQotICAgICAgICBjbGll
bnQoKS0+bm90aWZ5Rmx1c2hSZXF1aXJlZCh0aGlzKTsKKyAgICBub3RpZnlGbHVzaFJlcXVpcmVk
KCk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkaWRDaGFuZ2VBbmltYXRp
b25zKCkKIHsKICAgICBtX3Nob3VsZFN5bmNBbmltYXRpb25zID0gdHJ1ZTsKLSAgICBpZiAoY2xp
ZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5ub3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMpOworICAg
IG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OmRpZENoYW5nZUNoaWxkcmVuKCkKIHsKICAgICBtX3Nob3VsZFN5bmNDaGlsZHJlbiA9IHRy
dWU7Ci0gICAgaWYgKGNsaWVudCgpKQotICAgICAgICBjbGllbnQoKS0+bm90aWZ5Rmx1c2hSZXF1
aXJlZCh0aGlzKTsKKyAgICBub3RpZnlGbHVzaFJlcXVpcmVkKCk7CiB9CiAKICNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlRmls
dGVycygpCiB7CiAgICAgbV9zaG91bGRTeW5jRmlsdGVycyA9IHRydWU7Ci0gICAgaWYgKGNsaWVu
dCgpKQotICAgICAgICBjbGllbnQoKS0+bm90aWZ5Rmx1c2hSZXF1aXJlZCh0aGlzKTsKKyAgICBu
b3RpZnlGbHVzaFJlcXVpcmVkKCk7CiB9CiAjZW5kaWYKIAogdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OmRpZENoYW5nZUltYWdlQmFja2luZygpCiB7CiAgICAgbV9zaG91bGRTeW5jSW1h
Z2VCYWNraW5nID0gdHJ1ZTsKLSAgICBpZiAoY2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5u
b3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMpOworICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIH0K
IAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldFNob3VsZFVwZGF0ZVZpc2libGVS
ZWN0KCkKQEAgLTM4Miw5ICszODcsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6
c2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKQogICAgICAgICBtX3BlbmRpbmdDYW52YXNPcGVyYXRp
b24gfD0gU3luY0NhbnZhczsKICNlbmRpZgogCi0gICAgaWYgKGNsaWVudCgpKQotICAgICAgICBj
bGllbnQoKS0+bm90aWZ5Rmx1c2hSZXF1aXJlZCh0aGlzKTsKLQorICAgIG5vdGlmeUZsdXNoUmVx
dWlyZWQoKTsKICAgICBhZGRSZXBhaW50UmVjdChjb250ZW50c1JlY3QoKSk7CiB9CiAKQEAgLTQx
MSw4ICs0MTQsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNU
b0NhbnZhcyhQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKQogICAgIG1fY2FudmFzVG9rZW4g
PSBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIgPyBtX2NhbnZhc1BsYXRmb3JtTGF5ZXItPmdyYXBoaWNz
U3VyZmFjZVRva2VuKCkgOiBHcmFwaGljc1N1cmZhY2VUb2tlbigpOwogICAgIEFTU0VSVCghKCFt
X2NhbnZhc1Rva2VuLmlzVmFsaWQoKSAmJiBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIpKTsKIAotICAg
IGlmIChjbGllbnQoKSkKLSAgICAgICAgY2xpZW50KCktPm5vdGlmeUZsdXNoUmVxdWlyZWQodGhp
cyk7CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
cGxhdGZvcm1MYXllcik7CiAjZW5kaWYKQEAgLTU4OCwxMSArNTkwLDggQEAgdm9pZCBDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OnNldEZpeGVkVG9WaWV3cG9ydChib29sIGlzRml4ZWQpCiAKIHZv
aWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGUoY29uc3Qg
RmxvYXRSZWN0JiByZWN0KQogewotICAgIGlmICghbV9jb29yZGluYXRvci0+aXNGbHVzaGluZ0xh
eWVyQ2hhbmdlcygpKSB7Ci0gICAgICAgIGlmIChjbGllbnQoKSkKLSAgICAgICAgICAgIGNsaWVu
dCgpLT5ub3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMpOworICAgIGlmIChub3RpZnlGbHVzaFJlcXVp
cmVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICB9CiAKICAgICBpZiAoQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyKiBtYXNrID0gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIobWFza0xheWVyKCkp
KQogICAgICAgICBtYXNrLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7
CkBAIC05MTgsOCArOTE3LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVk
QmFja2luZ1N0b3JlUGFpbnRFbmQoY29uc3QgVmVjdG9yPEludFJlY3Q+Jgogdm9pZCBDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlSGFzUGVuZGluZ1RpbGVDcmVhdGlv
bigpCiB7CiAgICAgc2V0TmVlZHNWaXNpYmxlUmVjdEFkanVzdG1lbnQoKTsKLSAgICBpZiAoY2xp
ZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5ub3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMpOworICAg
IG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIH0KIAogSW50UmVjdCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlQ29udGVudHNSZWN0KCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAppbmRleCA2MTA1ZTIzMTFk
ZTMwMzY1NGY0MGUxZTIzZTIzN2RlMDYyZjlmZDdjLi4wMDkzZDFmZmNiNjNjYzc5NDFjMzAwYjYw
M2QwNzA1ZTIyMzAwNWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllci5oCkBAIC0xOTYsNiArMTk2LDggQEAgcHJpdmF0ZToKICAgICB2
b2lkIGNyZWF0ZUJhY2tpbmdTdG9yZSgpOwogICAgIHZvaWQgcmVsZWFzZUltYWdlQmFja2luZ0lm
TmVlZGVkKCk7CiAKKyAgICBib29sIG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKKwogICAgIC8vIENv
b3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpIb3N0CiAgICAgdmlydHVhbCBib29sIGltYWdlQmFja2lu
Z1Zpc2libGUoKSBPVkVSUklERTsKICAgICBib29sIHNob3VsZEhhdmVCYWNraW5nU3RvcmUoKSBj
b25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213803</attachid>
            <date>2013-10-09 13:26:27 -0700</date>
            <delta_ts>2013-10-09 13:59:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122016-20131009172627.patch</filename>
            <type>text/plain</type>
            <size>8640</size>
            <attacher name="Sergio Correia (qrwteyrutiyoup)">sergio</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU3MTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmMwY2VlNGMzMzYxMmNm
OWI0N2ZkOWE2Yjg1NzU3Zjg3MmZiMjc3ZS4uZmMyOGYwYWYyN2YxMmNkZjk0ZjJiYmJkOTI4YTA5
NzcwOWNhMjM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEzLTEwLTA5ICBTZXJn
aW8gQ29ycmVpYSAgPHNlcmdpby5jb3JyZWlhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW0Nv
b3JkaW5hdGVkR3JhcGhpY3NdIEFTU0VSVElPTiBGQUlMRUQ6ICFtX2ZsdXNoaW5nTGF5ZXJzIChh
ZnRlciByMTU2MjkxKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTIyMDE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVG8gcHJldmVudCBjYWxsaW5nIHNjaGVkdWxlTGF5ZXJGbHVzaCgpIGluc2lkZSBmbHVz
aENvbXBvc2l0aW5nU3RhdGUoKSwKKyAgICAgICAgd2Ugbm93IG9ubHkgY2FsbCBtX2NsaWVudC0+
bm90aWZ5Rmx1c2hSZXF1aXJlZCgpIC0gd2hpY2ggd2lsbCB0cmlnZ2VyCisgICAgICAgIHNjaGVk
dWxlTGF5ZXJGbHVzaCgpIC0gaWYgd2UgYXJlIG5vdCBhbHJlYWR5IGZsdXNoaW5nIGxheWVyIGNo
YW5nZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIG9uZXMu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9z
aXRpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGluZ0Nvb3Jk
aW5hdG9yOjpub3RpZnlGbHVzaFJlcXVpcmVkKTogQ2hlY2sgaWYgd2UKKyAgICAgICAgYXJlIGFs
cmVhZHkgZmx1c2hpbmcgbGF5ZXIgY2hhbmdlcyBiZWZvcmUgY2FsbGluZyBub3RpZnlGbHVzaFJl
cXVpcmVkLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6c2l6ZURp
ZENoYW5nZSk6IFVzZSBub3RpZnlGbHVzaFJlcXVpcmVkKCkKKyAgICAgICAgZnJvbSBDb21wb3Np
dGluZ0Nvb3JkaW5hdG9yIGluc3RlYWQgb2YgY2FsbGluZyB0aGUgb25lIGZyb20gbV9jbGllbnQK
KyAgICAgICAgZGlyZWN0bHkuCisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGluZ0Nvb3JkaW5h
dG9yOjpjcmVhdGVHcmFwaGljc0xheWVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDb21w
b3NpdGluZ0Nvb3JkaW5hdG9yOjpkZXRhY2hMYXllcik6IERpdHRvLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpub3RpZnlG
bHVzaFJlcXVpcmVkKTogQWRkZWQgaGVscGVyCisgICAgICAgIHRvIGNoZWNrIHdoZXRoZXIgd2Ug
YXJlIGZsdXNoaW5nIGxheWVyIGNoYW5nZXMgYmVmb3JlIGNhbGxpbmcgY2xpZW50KCkncworICAg
ICAgICBub3RpZnlGbHVzaFJlcXVpcmVkKCkuIEl0IHJldHVybnMgYSBib29sZWFuIGluZGljYXRp
bmcgd2hldGhlciBpdAorICAgICAgICBjYWxsZWQgdGhlIGNsaWVudCdzIG1ldGhvZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlTGF5ZXJTdGF0
ZSk6IFVzZSB0aGUKKyAgICAgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpIGhlbHBlci4KKyAgICAg
ICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlQW5pbWF0aW9u
cyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpk
aWRDaGFuZ2VDaGlsZHJlbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjpkaWRDaGFuZ2VGaWx0ZXJzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENoYW5nZUltYWdlQmFja2luZyk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50
c05lZWRzRGlzcGxheSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyOjpzZXRDb250ZW50c1RvQ2FudmFzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjp0aWxlZEJhY2tp
bmdTdG9yZUhhc1BlbmRpbmdUaWxlQ3JlYXRpb24pOkRpdHRvLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaDoK
KyAgICAgICAgRGVjbGFyYXRpb24gb2YgdGhlIG5vdGlmeUZsdXNoUmVxdWlyZWQoKSBoZWxwZXIu
CisKIDIwMTMtMTAtMDggIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLiBGaXggRUZMIGJ1aWxkYnJlYWsgc2luY2UgcjE1NzE1Mi4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNw
cAppbmRleCA0MDc4MjFjZjFjNzc1YjIwYTBjNmZjYmMzZTZlOGZiODlmOTY4MTJkLi42MzU1ZjE4
YjU0ZWIxY2JiYzZjODZkN2IyNmFkMDY3ZjExZTdjNjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29y
ZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCkBAIC05MCw3ICs5MCw3IEBA
IHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoR3Jh
cGhpY3NMYXllciogbGF5ZXIpCiB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnNpemVEaWRD
aGFuZ2UoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKIHsKICAgICBtX3Jvb3RMYXllci0+c2V0U2l6
ZShuZXdTaXplKTsKLSAgICBtX2NsaWVudC0+bm90aWZ5Rmx1c2hSZXF1aXJlZCgpOworICAgIG5v
dGlmeUZsdXNoUmVxdWlyZWQobV9yb290TGF5ZXIuZ2V0KCkpOwogfQogCiBib29sIENvbXBvc2l0
aW5nQ29vcmRpbmF0b3I6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpCkBAIC0yNTUsNyArMjU1
LDggQEAgdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpub3RpZnlBbmltYXRpb25TdGFydGVk
KGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBkb3VibGUKIAogdm9pZCBDb21wb3NpdGluZ0Nvb3JkaW5h
dG9yOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQogewotICAgIG1f
Y2xpZW50LT5ub3RpZnlGbHVzaFJlcXVpcmVkKCk7CisgICAgaWYgKCFpc0ZsdXNoaW5nTGF5ZXJD
aGFuZ2VzKCkpCisgICAgICAgIG1fY2xpZW50LT5ub3RpZnlGbHVzaFJlcXVpcmVkKCk7CiB9CiAK
IApAQCAtMjcxLDcgKzI3Miw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBDb21w
b3NpdGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVHcmFwaGljc0xheWVyKEdyYXBoCiAgICAgbV9yZWdp
c3RlcmVkTGF5ZXJzLmFkZChsYXllci0+aWQoKSwgbGF5ZXIpOwogICAgIG1fc3RhdGUubGF5ZXJz
VG9DcmVhdGUuYXBwZW5kKGxheWVyLT5pZCgpKTsKICAgICBsYXllci0+c2V0TmVlZHNWaXNpYmxl
UmVjdEFkanVzdG1lbnQoKTsKLSAgICBtX2NsaWVudC0+bm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwor
ICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQobGF5ZXIpOwogICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9w
dHI8R3JhcGhpY3NMYXllcj4obGF5ZXIpOwogfQogCkBAIC0zNTIsNyArMzUzLDcgQEAgdm9pZCBD
b21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpkZXRhY2hMYXllcihDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIqIGxheWVyKQogICAgIH0KIAogICAgIG1fc3RhdGUubGF5ZXJzVG9SZW1vdmUuYXBwZW5kKGxh
eWVyLT5pZCgpKTsKLSAgICBtX2NsaWVudC0+bm90aWZ5Rmx1c2hSZXF1aXJlZCgpOworICAgIG5v
dGlmeUZsdXNoUmVxdWlyZWQobGF5ZXIpOwogfQogCiB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0
b3I6OmNvbW1pdFNjcm9sbE9mZnNldCh1aW50MzJfdCBsYXllcklELCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBvZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDgzMzA1ZTBjMDJmZWYxZWEwZWQ1OTFiZmJmYjFm
N2Q1MTA4MDg0YzAuLjNjYzhkNTViNjMwNDU2MGQ1YTQwOGMzYmYxMWQ4OGJlNmY0YWRjMDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuY3BwCkBAIC00OCw0MSArNDgsNDYgQEAgc3RhdGljIENvb3JkaW5hdGVkTGF5ZXJJRCB0b0Nv
b3JkaW5hdGVkTGF5ZXJJRChHcmFwaGljc0xheWVyKiBsYXllcikKICAgICByZXR1cm4gbGF5ZXIg
PyB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihsYXllciktPmlkKCkgOiAwOwogfQogCitib29s
IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6bm90aWZ5Rmx1c2hSZXF1aXJlZCgpCit7CisgICAg
QVNTRVJUKG1fY29vcmRpbmF0b3IpOworICAgIGlmIChjbGllbnQoKSAmJiAhbV9jb29yZGluYXRv
ci0+aXNGbHVzaGluZ0xheWVyQ2hhbmdlcygpKSB7CisgICAgICAgIGNsaWVudCgpLT5ub3RpZnlG
bHVzaFJlcXVpcmVkKHRoaXMpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0
dXJuIGZhbHNlOworfQorCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdl
TGF5ZXJTdGF0ZSgpCiB7CiAgICAgbV9zaG91bGRTeW5jTGF5ZXJTdGF0ZSA9IHRydWU7Ci0gICAg
aWYgKGNsaWVudCgpKQotICAgICAgICBjbGllbnQoKS0+bm90aWZ5Rmx1c2hSZXF1aXJlZCh0aGlz
KTsKKyAgICBub3RpZnlGbHVzaFJlcXVpcmVkKCk7CiB9CiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyOjpkaWRDaGFuZ2VBbmltYXRpb25zKCkKIHsKICAgICBtX3Nob3VsZFN5bmNBbmlt
YXRpb25zID0gdHJ1ZTsKLSAgICBpZiAoY2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5ub3Rp
ZnlGbHVzaFJlcXVpcmVkKHRoaXMpOworICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIH0KIAog
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENoYW5nZUNoaWxkcmVuKCkKIHsKICAg
ICBtX3Nob3VsZFN5bmNDaGlsZHJlbiA9IHRydWU7Ci0gICAgaWYgKGNsaWVudCgpKQotICAgICAg
ICBjbGllbnQoKS0+bm90aWZ5Rmx1c2hSZXF1aXJlZCh0aGlzKTsKKyAgICBub3RpZnlGbHVzaFJl
cXVpcmVkKCk7CiB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiB2b2lkIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6ZGlkQ2hhbmdlRmlsdGVycygpCiB7CiAgICAgbV9zaG91bGRTeW5jRmls
dGVycyA9IHRydWU7Ci0gICAgaWYgKGNsaWVudCgpKQotICAgICAgICBjbGllbnQoKS0+bm90aWZ5
Rmx1c2hSZXF1aXJlZCh0aGlzKTsKKyAgICBub3RpZnlGbHVzaFJlcXVpcmVkKCk7CiB9CiAjZW5k
aWYKIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRpZENoYW5nZUltYWdlQmFja2lu
ZygpCiB7CiAgICAgbV9zaG91bGRTeW5jSW1hZ2VCYWNraW5nID0gdHJ1ZTsKLSAgICBpZiAoY2xp
ZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5ub3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMpOworICAg
IG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnNldFNob3VsZFVwZGF0ZVZpc2libGVSZWN0KCkKQEAgLTM4Miw5ICszODcsNyBAQCB2b2lk
IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKQogICAg
ICAgICBtX3BlbmRpbmdDYW52YXNPcGVyYXRpb24gfD0gU3luY0NhbnZhczsKICNlbmRpZgogCi0g
ICAgaWYgKGNsaWVudCgpKQotICAgICAgICBjbGllbnQoKS0+bm90aWZ5Rmx1c2hSZXF1aXJlZCh0
aGlzKTsKLQorICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKICAgICBhZGRSZXBhaW50UmVjdChj
b250ZW50c1JlY3QoKSk7CiB9CiAKQEAgLTQxMSw4ICs0MTQsNyBAQCB2b2lkIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVyKiBwbGF0Zm9y
bUxheWVyKQogICAgIG1fY2FudmFzVG9rZW4gPSBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIgPyBtX2Nh
bnZhc1BsYXRmb3JtTGF5ZXItPmdyYXBoaWNzU3VyZmFjZVRva2VuKCkgOiBHcmFwaGljc1N1cmZh
Y2VUb2tlbigpOwogICAgIEFTU0VSVCghKCFtX2NhbnZhc1Rva2VuLmlzVmFsaWQoKSAmJiBtX2Nh
bnZhc1BsYXRmb3JtTGF5ZXIpKTsKIAotICAgIGlmIChjbGllbnQoKSkKLSAgICAgICAgY2xpZW50
KCktPm5vdGlmeUZsdXNoUmVxdWlyZWQodGhpcyk7CisgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgp
OwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ocGxhdGZvcm1MYXllcik7CiAjZW5kaWYKQEAgLTU4
OCwxMSArNTkwLDggQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldEZpeGVkVG9W
aWV3cG9ydChib29sIGlzRml4ZWQpCiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpm
bHVzaENvbXBvc2l0aW5nU3RhdGUoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewotICAgIGlmICgh
bV9jb29yZGluYXRvci0+aXNGbHVzaGluZ0xheWVyQ2hhbmdlcygpKSB7Ci0gICAgICAgIGlmIChj
bGllbnQoKSkKLSAgICAgICAgICAgIGNsaWVudCgpLT5ub3RpZnlGbHVzaFJlcXVpcmVkKHRoaXMp
OworICAgIGlmIChub3RpZnlGbHVzaFJlcXVpcmVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICB9
CiAKICAgICBpZiAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBtYXNrID0gdG9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIobWFza0xheWVyKCkpKQogICAgICAgICBtYXNrLT5mbHVzaENvbXBvc2l0
aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CkBAIC05MTgsOCArOTE3LDcgQEAgdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlUGFpbnRFbmQoY29uc3QgVmVj
dG9yPEludFJlY3Q+Jgogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2lu
Z1N0b3JlSGFzUGVuZGluZ1RpbGVDcmVhdGlvbigpCiB7CiAgICAgc2V0TmVlZHNWaXNpYmxlUmVj
dEFkanVzdG1lbnQoKTsKLSAgICBpZiAoY2xpZW50KCkpCi0gICAgICAgIGNsaWVudCgpLT5ub3Rp
ZnlGbHVzaFJlcXVpcmVkKHRoaXMpOworICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKIH0KIAog
SW50UmVjdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnRpbGVkQmFja2luZ1N0b3JlQ29udGVu
dHNSZWN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuaAppbmRleCA2MTA1ZTIzMTFkZTMwMzY1NGY0MGUxZTIzZTIzN2RlMDYyZjlmZDdj
Li4wMDkzZDFmZmNiNjNjYzc5NDFjMzAwYjYwM2QwNzA1ZTIyMzAwNWM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCkBAIC0xOTYs
NiArMTk2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZUJhY2tpbmdTdG9yZSgpOwogICAg
IHZvaWQgcmVsZWFzZUltYWdlQmFja2luZ0lmTmVlZGVkKCk7CiAKKyAgICBib29sIG5vdGlmeUZs
dXNoUmVxdWlyZWQoKTsKKwogICAgIC8vIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpIb3N0CiAg
ICAgdmlydHVhbCBib29sIGltYWdlQmFja2luZ1Zpc2libGUoKSBPVkVSUklERTsKICAgICBib29s
IHNob3VsZEhhdmVCYWNraW5nU3RvcmUoKSBjb25zdDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>