<?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>108990</bug_id>
          
          <creation_ts>2013-02-05 16:27:28 -0800</creation_ts>
          <short_desc>[CoordinatedGraphics] Use ScrollingCoordinator to track fixed layers</short_desc>
          <delta_ts>2013-02-11 07:09:16 -0800</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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>109431</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Caio Marcelo de Oliveira Filho">cmarcelo</reporter>
          <assigned_to name="Caio Marcelo de Oliveira Filho">cmarcelo</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>andersca</cc>
    
    <cc>anilsson</cc>
    
    <cc>cdumez</cc>
    
    <cc>dongseong.hwang</cc>
    
    <cc>gavinp</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jamesr</cc>
    
    <cc>jbriance</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kenneth</cc>
    
    <cc>luiz</cc>
    
    <cc>mikhail.pozdnyakov</cc>
    
    <cc>noam</cc>
    
    <cc>rafael.lobo</cc>
    
    <cc>rakuco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>825926</commentid>
    <comment_count>0</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2013-02-05 16:27:28 -0800</bug_when>
    <thetext>[CoordinatedGraphics] Use ScrollingCoordinator to track fixed layers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825930</commentid>
    <comment_count>1</comment_count>
      <attachid>186723</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2013-02-05 16:30:14 -0800</bug_when>
    <thetext>Created attachment 186723
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825931</commentid>
    <comment_count>2</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2013-02-05 16:31:44 -0800</bug_when>
    <thetext>I&apos;ll elaborate the ChangeLog tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825963</commentid>
    <comment_count>3</comment_count>
      <attachid>186723</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-05 17:35:05 -0800</bug_when>
    <thetext>Comment on attachment 186723
Patch

Attachment 186723 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16388038</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826252</commentid>
    <comment_count>4</comment_count>
      <attachid>186723</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2013-02-06 02:22:40 -0800</bug_when>
    <thetext>Comment on attachment 186723
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:-519
&gt; -

Great!

where is client that uses ScrollingCoordinatorCoordinatedGraphics? is this patch WIP yet?

&gt; Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp:76
&gt; +    webPage-&gt;corePage()-&gt;settings()-&gt;setScrollingCoordinatorEnabled(true);

There are many settings related to CG in WebPage::setUseFixedLayout, although I&apos;m not sure it is right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826374</commentid>
    <comment_count>5</comment_count>
      <attachid>186837</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2013-02-06 05:50:28 -0800</bug_when>
    <thetext>Created attachment 186837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826376</commentid>
    <comment_count>6</comment_count>
      <attachid>186837</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-06 05:54:27 -0800</bug_when>
    <thetext>Comment on attachment 186837
Patch

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

&gt; Source/WebCore/ChangeLog:19
&gt; +        not the other way round.
&gt; +
&gt; +        * Target.pri:

info abuot testing

&gt; Source/WebKit2/ChangeLog:8
&gt; +        WebCore keeps ScrollingCoordinator up-to-date about whether Layers are fixed or not, so we

layers*

&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:471
&gt; +    if (m_fixedToViewport == isFixed)
&gt; +        return;
&gt; +    m_fixedToViewport = isFixed;

newline after return is common to make is more obvious to spot

&gt; Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp:77
&gt;  #if USE(COORDINATED_GRAPHICS)
&gt;      m_alwaysUseCompositing = true;
&gt; +    webPage-&gt;corePage()-&gt;settings()-&gt;setScrollingCoordinatorEnabled(true);
&gt;  #endif

I am not sure this is the right place. We do similar things together with construction of our view or when setfixedlayout is turned on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826379</commentid>
    <comment_count>7</comment_count>
      <attachid>186723</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2013-02-06 05:57:02 -0800</bug_when>
    <thetext>Comment on attachment 186723
Patch

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

Thanks for looking into the patch.

&gt;&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:-519
&gt;&gt; -
&gt; 
&gt; Great!
&gt; 
&gt; where is client that uses ScrollingCoordinatorCoordinatedGraphics? is this patch WIP yet?

Note sure what was your question. If it was about where&apos;s the code that calls ScrollingCoordinator, I&apos;ve explained a bit in the ChangeLog: RenderLayerBacking currently informs the ScrollingCoordinator about changes to its GraphicsLayers.

&gt;&gt; Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp:76
&gt;&gt; +    webPage-&gt;corePage()-&gt;settings()-&gt;setScrollingCoordinatorEnabled(true);
&gt; 
&gt; There are many settings related to CG in WebPage::setUseFixedLayout, although I&apos;m not sure it is right.

In the updated patch added a check for accelerated compositing for fixed layers in the code for ScrollingCoordinator so that we don&apos;t send updates if we are not using fixed layout.

Adding a check here would be not enough since at this point we not necessarily set the FixedLayout option, we would have to hook into that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826380</commentid>
    <comment_count>8</comment_count>
      <attachid>186837</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2013-02-06 05:58:00 -0800</bug_when>
    <thetext>Comment on attachment 186837
Patch

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

&gt;&gt; Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp:77
&gt;&gt;  #endif
&gt; 
&gt; I am not sure this is the right place. We do similar things together with construction of our view or when setfixedlayout is turned on.

See my comment to the other review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826386</commentid>
    <comment_count>9</comment_count>
      <attachid>186837</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-06 06:14:34 -0800</bug_when>
    <thetext>Comment on attachment 186837
Patch

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

&gt; Source/WebCore/page/scrolling/coordinated/ScrollingCoordinatorCoordinatedGraphics.cpp:28
&gt; +

You either need to also wrap this file in USE(COORDINATED_GRAPHICS), or only include it on build level when it is enabled.

&gt; Source/WebCore/page/scrolling/coordinated/ScrollingCoordinatorCoordinatedGraphics.h:40
&gt; +#include &quot;ScrollingCoordinator.h&quot;
&gt; +
&gt; +namespace WebCore {
&gt; +
&gt; +class ScrollingCoordinatorCoordinatedGraphics : public ScrollingCoordinator {
&gt; +public:
&gt; +    explicit ScrollingCoordinatorCoordinatedGraphics(Page*);
&gt; +
&gt; +    virtual void setLayerIsFixedToContainerLayer(GraphicsLayer*, bool);
&gt; +};
&gt; +
&gt; +} // namespace WebCore

#if USE(COORDINATED_GRAPHICS)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826387</commentid>
    <comment_count>10</comment_count>
      <attachid>186837</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2013-02-06 06:16:01 -0800</bug_when>
    <thetext>Comment on attachment 186837
Patch

Caio asked me to remove r? because the patch is missing buildsystem stuff for GTK and EFL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826421</commentid>
    <comment_count>11</comment_count>
      <attachid>186837</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-06 07:14:38 -0800</bug_when>
    <thetext>Comment on attachment 186837
Patch

Attachment 186837 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16388323</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826449</commentid>
    <comment_count>12</comment_count>
      <attachid>186837</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-02-06 07:51:29 -0800</bug_when>
    <thetext>Comment on attachment 186837
Patch

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

&gt; Source/WebCore/ChangeLog:25
&gt; +        (WebCore::ScrollingCoordinatorCoordinatedGraphics::ScrollingCoordinatorCoordinatedGraphics):

The name is very verbose...
How about ScrollingCoordinatorCGfx?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826535</commentid>
    <comment_count>13</comment_count>
      <attachid>186876</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2013-02-06 10:35:52 -0800</bug_when>
    <thetext>Created attachment 186876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826545</commentid>
    <comment_count>14</comment_count>
      <attachid>186876</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2013-02-06 10:44:14 -0800</bug_when>
    <thetext>Comment on attachment 186876
Patch

Fixing some issues pointed by Allan and Kenneth. Added a manual test.

I think CGfx could still be confusing with CG. The current name is consistent with the USE() flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826546</commentid>
    <comment_count>15</comment_count>
      <attachid>186876</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-06 10:45:06 -0800</bug_when>
    <thetext>Comment on attachment 186876
Patch

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

&gt; Source/WebCore/ChangeLog:15
&gt; +        The new code also works in new situations where the previous was broken: if a layer changed
&gt; +        from being fixed to not fixed (but still kept as a layer for other reasons), the layer will

sticky position you mean?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826547</commentid>
    <comment_count>16</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-06 10:45:52 -0800</bug_when>
    <thetext>Simon Fraser, could you review this? thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826550</commentid>
    <comment_count>17</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2013-02-06 10:50:46 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 186876 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186876&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:15
&gt; &gt; +        The new code also works in new situations where the previous was broken: if a layer changed
&gt; &gt; +        from being fixed to not fixed (but still kept as a layer for other reasons), the layer will
&gt; 
&gt; sticky position you mean?

No, the manual test he is adding shows a test case where we currently fails to track whether a layer is fixed or not. Once we start with a fixed layer, if javascript changes its fixed state to false, we&apos;ve never changed this back on CoordinatedGraphics, besides it really happened on WebProcess. Using ScrollingCoordinator will make us avoid cases like this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826552</commentid>
    <comment_count>18</comment_count>
      <attachid>186876</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-06 10:52:42 -0800</bug_when>
    <thetext>Comment on attachment 186876
Patch

I&apos;m not a CoordinatedGraphics expert but this seems fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826553</commentid>
    <comment_count>19</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2013-02-06 10:53:21 -0800</bug_when>
    <thetext>Also, I think we should not worry about sticky right now. Let&apos;s move forward and properly support fixed layers on CoordinatedGraphics as a first step. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826562</commentid>
    <comment_count>20</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-06 11:00:05 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 186876 [details])
&gt; I&apos;m not a CoordinatedGraphics expert but this seems fine.

Can you sign off on the WebKit2 changes, so that one of our reviewers (Noam?) can review it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826567</commentid>
    <comment_count>21</comment_count>
      <attachid>186876</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-06 11:03:40 -0800</bug_when>
    <thetext>Comment on attachment 186876
Patch

r=me on the webkit2 changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826670</commentid>
    <comment_count>22</comment_count>
      <attachid>186876</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-02-06 12:51:48 -0800</bug_when>
    <thetext>Comment on attachment 186876
Patch

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

&gt; Source/WebCore/ChangeLog:19
&gt; +        Testing was done with the existing manual tests that make use of &quot;position:fixed&quot;.

Please explain here why this cannot be tested with a pixel test.

&gt; Source/WebCore/CMakeLists.txt:47
&gt; +    &quot;${WEBCORE_DIR}/page/scrolling/coordinated&quot;

Let&apos;s use scrolling/CoordinatedGraphics</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827217</commentid>
    <comment_count>23</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-07 02:44:57 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; (From update of attachment 186876 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186876&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:19
&gt; &gt; +        Testing was done with the existing manual tests that make use of &quot;position:fixed&quot;.
&gt; 
&gt; Please explain here why this cannot be tested with a pixel test.
&gt; 
&gt; &gt; Source/WebCore/CMakeLists.txt:47
&gt; &gt; +    &quot;${WEBCORE_DIR}/page/scrolling/coordinated&quot;
&gt; 
&gt; Let&apos;s use scrolling/CoordinatedGraphics

It is &apos;coordinated&apos; under WebCore/platform/graphics, and lower-case seems to be the norm for port directory names under WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827229</commentid>
    <comment_count>24</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-02-07 02:56:15 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #22)
&gt; &gt; (From update of attachment 186876 [details] [details])
&gt; &gt; &gt; Source/WebCore/CMakeLists.txt:47
&gt; &gt; &gt; +    &quot;${WEBCORE_DIR}/page/scrolling/coordinated&quot;
&gt; &gt; 
&gt; &gt; Let&apos;s use scrolling/CoordinatedGraphics
&gt; 
&gt; It is &apos;coordinated&apos; under WebCore/platform/graphics, and lower-case seems to be the norm for port directory names under WebCore.

&quot;scrolling/coordinated&quot; is ambiguous given that the whole thing is called ScrollingCoordinator.

Suggestions: scrolling/coordinatedgraphics or scrolling/coordgfx</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827273</commentid>
    <comment_count>25</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-02-07 03:49:27 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #23)
&gt; &gt; (In reply to comment #22)
&gt; &gt; &gt; (From update of attachment 186876 [details] [details] [details])
&gt; &gt; &gt; &gt; Source/WebCore/CMakeLists.txt:47
&gt; &gt; &gt; &gt; +    &quot;${WEBCORE_DIR}/page/scrolling/coordinated&quot;
&gt; &gt; &gt; 
&gt; &gt; &gt; Let&apos;s use scrolling/CoordinatedGraphics
&gt; &gt; 
&gt; &gt; It is &apos;coordinated&apos; under WebCore/platform/graphics, and lower-case seems to be the norm for port directory names under WebCore.
&gt; 
&gt; &quot;scrolling/coordinated&quot; is ambiguous given that the whole thing is called ScrollingCoordinator.
&gt; 
&gt; Suggestions: scrolling/coordinatedgraphics or scrolling/coordgfx

scrolling/coordgfx should be fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827430</commentid>
    <comment_count>26</comment_count>
      <attachid>187087</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2013-02-07 06:26:57 -0800</bug_when>
    <thetext>Created attachment 187087
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827456</commentid>
    <comment_count>27</comment_count>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2013-02-07 06:51:06 -0800</bug_when>
    <thetext>Committed r142112: &lt;http://trac.webkit.org/changeset/142112&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827505</commentid>
    <comment_count>28</comment_count>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-02-07 07:37:57 -0800</bug_when>
    <thetext>This changeset breaks our build slave: http://build.webkit.org/builders/Qt%20Linux%20SH4%20Release/builds/19475

I think the files added in Target.pri are not OpenGL dependant and should not be in conditionnal use?(3D_GRAPHICS)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827537</commentid>
    <comment_count>29</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-07 08:19:03 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #24)
&gt; &gt; (In reply to comment #23)
&gt; &gt; &gt; (In reply to comment #22)
&gt; &gt; &gt; &gt; (From update of attachment 186876 [details] [details] [details] [details])
&gt; &gt; &gt; &gt; &gt; Source/WebCore/CMakeLists.txt:47
&gt; &gt; &gt; &gt; &gt; +    &quot;${WEBCORE_DIR}/page/scrolling/coordinated&quot;
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Let&apos;s use scrolling/CoordinatedGraphics
&gt; &gt; &gt; 
&gt; &gt; &gt; It is &apos;coordinated&apos; under WebCore/platform/graphics, and lower-case seems to be the norm for port directory names under WebCore.
&gt; &gt; 
&gt; &gt; &quot;scrolling/coordinated&quot; is ambiguous given that the whole thing is called ScrollingCoordinator.
&gt; &gt; 
&gt; &gt; Suggestions: scrolling/coordinatedgraphics or scrolling/coordgfx
&gt; 
&gt; scrolling/coordgfx should be fine.

I&apos;d prefer scrolling/coordinatedgraphics. We don&apos;t use the &quot;gfx&quot; abomination anywhere else, do we?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827539</commentid>
    <comment_count>30</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-02-07 08:23:46 -0800</bug_when>
    <thetext>&gt; I&apos;d prefer scrolling/coordinatedgraphics. We don&apos;t use the &quot;gfx&quot; abomination anywhere else, do we?
That&apos;s what we ended up using.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827615</commentid>
    <comment_count>31</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2013-02-07 09:33:47 -0800</bug_when>
    <thetext>Reverted r142112 for reason:

New scrolling test crashes on Lion.

Committed r142141: &lt;http://trac.webkit.org/changeset/142141&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827617</commentid>
    <comment_count>32</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2013-02-07 09:34:49 -0800</bug_when>
    <thetext>See http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=scrollingcoordinator%2Fnon-fast-scrollable-region-transformed-iframe.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827623</commentid>
    <comment_count>33</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-02-07 09:44:13 -0800</bug_when>
    <thetext>(In reply to comment #31)
&gt; Reverted r142112 for reason:
&gt; 
&gt; New scrolling test crashes on Lion.
&gt; 
&gt; Committed r142141: &lt;http://trac.webkit.org/changeset/142141&gt;

The patch does not touch Chromium or Mac code in any way. If the new test crashes, it is a pre-existing bug in your code, and you should skip the test until you fix the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827624</commentid>
    <comment_count>34</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2013-02-07 09:45:14 -0800</bug_when>
    <thetext>If you&apos;re certain of that, I&apos;m happy to reland it, and create a bug in Chromium for fixing the test. Thanks.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827626</commentid>
    <comment_count>35</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-02-07 09:47:00 -0800</bug_when>
    <thetext>(In reply to comment #34)
&gt; If you&apos;re certain of that, I&apos;m happy to reland it, and create a bug in Chromium for fixing the test. Thanks.
&gt; 
&gt; Thanks.

Yes, we&apos;re certain of that. The code in the patch touches Qt/EFL only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827631</commentid>
    <comment_count>36</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2013-02-07 09:53:29 -0800</bug_when>
    <thetext>Reverted r142141 for reason:

Reland r142112, will update Chromium expectations and create a Chromium bug instead for the crash.

Committed r142143: &lt;http://trac.webkit.org/changeset/142143&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827634</commentid>
    <comment_count>37</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-02-07 09:54:44 -0800</bug_when>
    <thetext>(In reply to comment #36)
&gt; Reverted r142141 for reason:
&gt; 
&gt; Reland r142112, will update Chromium expectations and create a Chromium bug instead for the crash.
&gt; 
&gt; Committed r142143: &lt;http://trac.webkit.org/changeset/142143&gt;

Thank you for responding proactively, Gavin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827635</commentid>
    <comment_count>38</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2013-02-07 09:56:02 -0800</bug_when>
    <thetext>I&apos;m going to file the Chromium bug.

Thanks for the test case.  :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829646</commentid>
    <comment_count>39</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-02-11 07:06:57 -0800</bug_when>
    <thetext>This patches appears to be causing a few regressions on WK2 EFL:
compositing/iframes/iframe-composited-scrolling.html
compositing/layer-creation/fixed-position-in-view-dynamic.html
compositing/layer-creation/fixed-position-out-of-view-dynamic.html
compositing/layer-creation/fixed-position-out-of-view-scroll-reason.html
compositing/layer-creation/no-compositing-for-fixed-position-under-transform.html

The diff looks like:
-PASS
+FAIL: Has viewport constrained objects without supporting fixed layers</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186723</attachid>
            <date>2013-02-05 16:30:14 -0800</date>
            <delta_ts>2013-02-06 05:57:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108990-20130205212653.patch</filename>
            <type>text/plain</type>
            <size>15920</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDgwYzQ5YTIzMmI0MGRm
YjQ5MGNkZjRmMWE2ZDY5NGZlNTlkMGEzZS4uZjVkMmQyMzljZTkwNjdkMzkzOTQ3NzJjMGY4Yjky
MjExMzM4MDAxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAyLTA1ICBDYWlv
IE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgW0Nvb3JkaW5hdGVkR3JhcGhpY3NdIFVzZSBTY3JvbGxpbmdDb29yZGluYXRv
ciB0byB0cmFjayBmaXhlZCBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwODk5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5PVEU6IFdvcmsgaW4gcHJvZ3Jlc3MuIEknbGwgdXBsb2FkIGEgdmVy
c2lvbiB3aXRoIHByb3BlciBDaGFuZ2VMb2cgc29vbi4KKworICAgICAgICAqIFRhcmdldC5wcmk6
CisgICAgICAgICogV2ViQ29yZS5wcmk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0
b3I6OmNyZWF0ZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWQvU2Nyb2xs
aW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0
ZWRHcmFwaGljczo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljczo6
c2V0TGF5ZXJJc0ZpeGVkVG9Db250YWluZXJMYXllcik6CisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvY29vcmRpbmF0ZWQvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTY3JvbGxpbmdDb29yZGluYXRv
ckNvb3JkaW5hdGVkR3JhcGhpY3MpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRGaXhlZFRvVmlld3BvcnQpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oOgorICAgICAgICAo
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KToKKyAgICAgICAgKENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcik6CisKIDIwMTMtMDItMDUgIEpvY2VseW4gVHVyY290dGUgIDxqb2NlbHluLnR1
cmNvdHRlQGRpZ2lhLmNvbT4KIAogICAgICAgICBbUXRdIFJFR1JFU1NJT04ocjEzNzQzNik6IEl0
IG1hZGUgYWxsIGluc3BlY3RvciB0ZXN0cyB0aW1lb3V0IG9uIGRldmVsb3BlciBidWlsZHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCBlYzkzMzEyMDFjZTcyMmU4ZDg0ODgyMDI0NzFjNzY2ZGZjMTE5MTc4Li40NTI5
OWVjYzhmN2ZhYjM4Zjg1YmRjODcwMzNmYTc1ZDAwMGY5MTcwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTMtMDItMDUgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNh
aW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbQ29vcmRpbmF0ZWRHcmFwaGlj
c10gVXNlIFNjcm9sbGluZ0Nvb3JkaW5hdG9yIHRvIHRyYWNrIGZpeGVkIGxheWVycworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4OTkwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTk9URTogV29yayBpbiBw
cm9ncmVzcy4gSSdsbCB1cGxvYWQgYSB2ZXJzaW9uIHdpdGggcHJvcGVyIENoYW5nZUxvZyBzb29u
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RHJhd2luZ0FyZWFJbXBsOjpEcmF3aW5nQXJlYUltcGwpOgorCiAyMDEzLTAyLTA1ICBTaW1v
biBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQGRpZ2lhLmNvbT4KIAogICAgICAgICBbUXRdW1dL
Ml0gUmVwbGFjZSBtb3JlIHVzZXMgb2YgV2ViUGFnZVByb3h5IHdpdGggV0tQYWdlIGluIFFRdWlj
a1dlYlZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGNhNmE3MWQ1ZDg5NzA2NjgxMDg0Y2UyNjlmZDNkODJj
Yzc2YTY3NzkuLjBkZTI4YjI0ODczYzE0MDJkOGY5NDM4M2I3NzBjNWFhMmU1ZDc1NzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQpAQCAtOTUwLDYgKzk1MCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBhZ2UvU2NyZWVu
LmNwcCBcCiAgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29uc3RyYWludHMuY3BwIFwKICAg
ICBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAgXAorICAgIHBhZ2Uvc2Ny
b2xsaW5nL2Nvb3JkaW5hdGVkL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGlj
cy5jcHAgXAogICAgIHBhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwIFwKICAgICBwYWdlL1NlY3VyaXR5
UG9saWN5LmNwcCBcCiAgICAgcGFnZS9TZXR0aW5ncy5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRleCAx
NTI1YjY3MWE5NWM4YTZkN2IwMTE1YmM3ZWRkZDFlNGVjMjEzMzU3Li4yYWU5YTI2OWQ0Y2UwOGZj
MDE2ZmM2OGNjNTQyM2Y5NGEyOWZjOWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtNTAsNiArNTAsNyBA
QCBJTkNMVURFUEFUSCArPSBcCiAgICAgJCRTT1VSQ0VfRElSL3BhZ2UvYW5pbWF0aW9uIFwKICAg
ICAkJFNPVVJDRV9ESVIvcGFnZS9xdCBcCiAgICAgJCRTT1VSQ0VfRElSL3BhZ2Uvc2Nyb2xsaW5n
IFwKKyAgICAkJFNPVVJDRV9ESVIvcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWQgXAogICAgICQk
U09VUkNFX0RJUi9wbGF0Zm9ybSBcCiAgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2FuaW1hdGlv
biBcCiAgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2F1ZGlvIFwKQEAgLTYzLDYgKzY0LDcgQEAg
SU5DTFVERVBBVEggKz0gXAogICAgICQkU09VUkNFX0RJUi9wbGF0Zm9ybS9ncmFwaGljcy9xdCBc
CiAgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzIFwKICAgICAkJFNP
VVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwIFwKKyAgICAkJFNPVVJDRV9ESVIvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkIFwKICAgICAkJFNPVVJDRV9ESVIvcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3JtcyBcCiAgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2lt
YWdlLWRlY29kZXJzIFwKICAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
Ym1wIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmNwcAppbmRleCBmMTJjMjgwYWQ5NDJjMGU3YTMzOWZlZGY2ZDVlN2VhMDAz
ODUzNjY4Li4yZWM3MTY1NDg1ZTdjMWM1MWFjZDQwZjUxMWY2YTFhN2VhOTA4ODk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwCkBAIC01Miw2ICs1MiwxMCBAQAogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9y
Q2hyb21pdW0uaCIKICNlbmRpZgogCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQorI2lu
Y2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5oIgorI2VuZGlm
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGFzc1JlZlB0cjxTY3JvbGxpbmdDb29yZGluYXRv
cj4gU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNyZWF0ZShQYWdlKiBwYWdlKQpAQCAtNjQsNiArNjgs
MTAgQEAgUGFzc1JlZlB0cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gU2Nyb2xsaW5nQ29vcmRpbmF0
b3I6OmNyZWF0ZShQYWdlKiBwYWdlKQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2Nyb2xsaW5n
Q29vcmRpbmF0b3JDaHJvbWl1bShwYWdlKSk7CiAjZW5kaWYKIAorI2lmIFVTRShDT09SRElOQVRF
RF9HUkFQSElDUykKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNjcm9sbGluZ0Nvb3JkaW5hdG9y
Q29vcmRpbmF0ZWRHcmFwaGljcyhwYWdlKSk7CisjZW5kaWYKKwogICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgU2Nyb2xsaW5nQ29vcmRpbmF0b3IocGFnZSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZC9TY3JvbGxpbmdDb29yZGluYXRv
ckNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
Y29vcmRpbmF0ZWQvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iMmJhYTU4MzE2MWY4MGQ1MzZiMzMxYTllNDg2MGI0YzJkZWM0OWViCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWQv
U2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzLmNwcApAQCAtMCwwICsxLDQz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJTY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuaCIKKworI2luY2x1
ZGUgIkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljczo6U2Nyb2xsaW5nQ29vcmRp
bmF0b3JDb29yZGluYXRlZEdyYXBoaWNzKFBhZ2UqIHBhZ2UpCisgICAgOiBTY3JvbGxpbmdDb29y
ZGluYXRvcihwYWdlKQoreworfQorCit2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0
ZWRHcmFwaGljczo6c2V0TGF5ZXJJc0ZpeGVkVG9Db250YWluZXJMYXllcihHcmFwaGljc0xheWVy
KiBsYXllciwgYm9vbCBlbmFibGUpCit7CisgICAgdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIo
bGF5ZXIpLT5zZXRGaXhlZFRvVmlld3BvcnQoZW5hYmxlKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29vcmRp
bmF0ZWQvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZC9TY3JvbGxpbmdDb29yZGluYXRvckNv
b3JkaW5hdGVkR3JhcGhpY3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDFjODkzNGIyYzk2NDI2MmJkNDE3Mzgx
NjJiY2Q2ODM4ZjM5ZmYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvY29vcmRpbmF0ZWQvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBo
aWNzLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljc19oCisjZGVmaW5lIFNjcm9s
bGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljc19oCisKKyNpbmNsdWRlICJTY3JvbGxp
bmdDb29yZGluYXRvci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcyA6IHB1YmxpYyBTY3JvbGxpbmdDb29yZGlu
YXRvciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGlu
YXRlZEdyYXBoaWNzKFBhZ2UqKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllcklzRml4ZWRU
b0NvbnRhaW5lckxheWVyKEdyYXBoaWNzTGF5ZXIqLCBib29sKTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDM3MzZmMjYwNGMwYzEwNDM5OTk1N2I5
OGEyNTI1ZWU3ZGJjZGQ5YmIuLjU3NjE1NjRhY2EwNTkxMDQzNTQ5MGRiZGM2YjU1OTI5OTdkNmVm
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuY3BwCkBAIC00NjQsNiArNDY0LDE0IEBAIENvb3JkaW5hdGVkTGF5ZXJJRCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmlkKCkgY29uc3QKICAgICByZXR1cm4gbV9pZDsKIH0KIAor
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldEZpeGVkVG9WaWV3cG9ydChib29sIGlz
Rml4ZWQpCit7CisgICAgaWYgKG1fZml4ZWRUb1ZpZXdwb3J0ID09IGlzRml4ZWQpCisgICAgICAg
IHJldHVybjsKKyAgICBtX2ZpeGVkVG9WaWV3cG9ydCA9IGlzRml4ZWQ7CisgICAgZGlkQ2hhbmdl
TGF5ZXJTdGF0ZSgpOworfQorCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Zmx1c2hD
b21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAoIW1fY29v
cmRpbmF0b3ItPmlzRmx1c2hpbmdMYXllckNoYW5nZXMoKSkgewpAQCAtNDc4LDggKzQ4Niw2IEBA
IHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGUoY29u
c3QgRmxvYXRSZWN0JiByZWN0KQogICAgIGlmIChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIHJl
cGxpY2EgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihyZXBsaWNhTGF5ZXIoKSkpCiAgICAg
ICAgIHJlcGxpY2EtPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKIAot
ICAgIG1fY29vcmRpbmF0b3ItPnN5bmNGaXhlZExheWVycygpOwotCiAgICAgZmx1c2hDb21wb3Np
dGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBjaGlsZHJlbigpLnNpemUoKTsgKytpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4IGE1NTFkMzUxMWFkYTY0NGViZjczMmJl
ZjYyZTg2YWQ5ZDg3ZjFhMjAuLmEzZjBhMDhmZDk4MjE1ZDEwMTZkMjc4NTlmNTI3NTgzMzQwMjBm
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyLmgKQEAgLTcyLDcgKzcyLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRM
YXllckFuaW1hdGlvbnMoQ29vcmRpbmF0ZWRMYXllcklELCBjb25zdCBHcmFwaGljc0xheWVyQW5p
bWF0aW9ucyYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hMYXllcihDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHN5bmNGaXhlZExheWVycygp
ID0gMDsKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0PiBiZWdpbkNvbnRl
bnRVcGRhdGUoY29uc3QgSW50U2l6ZSYsIENvb3JkaW5hdGVkU3VyZmFjZTo6RmxhZ3MsIHVpbnQz
Ml90JiBhdGxhc0lELCBJbnRQb2ludCYpID0gMDsKIH07CiAKQEAgLTEzNyw3ICsxMzYsNyBAQCBw
dWJsaWM6CiAKICAgICBDb29yZGluYXRlZExheWVySUQgaWQoKSBjb25zdDsKIAotICAgIHZvaWQg
c2V0Rml4ZWRUb1ZpZXdwb3J0KGJvb2wgaXNGaXhlZCkgeyBtX2ZpeGVkVG9WaWV3cG9ydCA9IGlz
Rml4ZWQ7IH0KKyAgICB2b2lkIHNldEZpeGVkVG9WaWV3cG9ydChib29sIGlzRml4ZWQpOwogCiAg
ICAgSW50UmVjdCBjb3ZlclJlY3QoKSBjb25zdCB7IHJldHVybiBtX21haW5CYWNraW5nU3RvcmUg
PyBtX21haW5CYWNraW5nU3RvcmUtPm1hcFRvQ29udGVudHMobV9tYWluQmFja2luZ1N0b3JlLT5j
b3ZlclJlY3QoKSkgOiBJbnRSZWN0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggOWJhYjEwOGE4NDQ3
NWI2ZTY4Mzg4MzBjODY5YjQyYjBkNjgxM2QxNC4uYzNiNjNiZWZjNzViMjRhMWU3Y2ViZTQzNDIw
NmNkZWE3NGNkZmUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCkBAIC00NjksNTQgKzQ2OSw2IEBAIHZvaWQgQ29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0OjpkZXRhY2hMYXllcihDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIqIGxheWVyKQogICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOwogfQogCi1zdGF0aWMgdm9pZCB1
cGRhdGVPZmZzZXRGcm9tVmlld3BvcnRGb3JTZWxmKFJlbmRlckxheWVyKiByZW5kZXJMYXllcikK
LXsKLSAgICAvLyBUaGVzZSBjb25kaXRpb25zIG11c3QgbWF0Y2ggdGhlIGNvbmRpdGlvbnMgaW4g
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yUG9zaXRpb24uCi0g
ICAgUmVuZGVyTGF5ZXJCYWNraW5nKiBiYWNraW5nID0gcmVuZGVyTGF5ZXItPmJhY2tpbmcoKTsK
LSAgICBpZiAoIWJhY2tpbmcpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlbmRlclN0eWxlKiBz
dHlsZSA9IHJlbmRlckxheWVyLT5yZW5kZXJlcigpLT5zdHlsZSgpOwotICAgIGlmICghc3R5bGUp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghcmVuZGVyTGF5ZXItPnJlbmRlcmVyKCktPmlz
T3V0T2ZGbG93UG9zaXRpb25lZCgpIHx8IHJlbmRlckxheWVyLT5yZW5kZXJlcigpLT5zdHlsZSgp
LT5wb3NpdGlvbigpICE9IEZpeGVkUG9zaXRpb24pCi0gICAgICAgIHJldHVybjsKLQotICAgIGlm
ICghcmVuZGVyTGF5ZXItPnJlbmRlcmVyKCktPmNvbnRhaW5lcigpLT5pc1JlbmRlclZpZXcoKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFyZW5kZXJMYXllci0+aXNTdGFja2luZ0NvbnRh
aW5lcigpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIq
IGdyYXBoaWNzTGF5ZXIgPSB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllcihiYWNraW5nLT5ncmFw
aGljc0xheWVyKCkpOwotICAgIGdyYXBoaWNzTGF5ZXItPnNldEZpeGVkVG9WaWV3cG9ydCh0cnVl
KTsKLX0KLQotc3RhdGljIHZvaWQgdXBkYXRlT2Zmc2V0RnJvbVZpZXdwb3J0Rm9yTGF5ZXIoUmVu
ZGVyTGF5ZXIqIHJlbmRlckxheWVyKQotewotICAgIHVwZGF0ZU9mZnNldEZyb21WaWV3cG9ydEZv
clNlbGYocmVuZGVyTGF5ZXIpOwotCi0gICAgaWYgKHJlbmRlckxheWVyLT5maXJzdENoaWxkKCkp
Ci0gICAgICAgIHVwZGF0ZU9mZnNldEZyb21WaWV3cG9ydEZvckxheWVyKHJlbmRlckxheWVyLT5m
aXJzdENoaWxkKCkpOwotICAgIGlmIChyZW5kZXJMYXllci0+bmV4dFNpYmxpbmcoKSkKLSAgICAg
ICAgdXBkYXRlT2Zmc2V0RnJvbVZpZXdwb3J0Rm9yTGF5ZXIocmVuZGVyTGF5ZXItPm5leHRTaWJs
aW5nKCkpOwotfQotCi12b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c3luY0ZpeGVkTGF5
ZXJzKCkKLXsKLSAgICBpZiAoIW1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKSB8fCAh
bV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5n
Rm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFt
X3dlYlBhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCktPmhhc1ZpZXdwb3J0Q29uc3RyYWluZWRPYmpl
Y3RzKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlbmRlckxheWVyKiByb290UmVuZGVyTGF5
ZXIgPSBtX3dlYlBhZ2UtPm1haW5GcmFtZSgpLT5jb250ZW50UmVuZGVyZXIoKS0+Y29tcG9zaXRv
cigpLT5yb290UmVuZGVyTGF5ZXIoKTsKLSAgICBBU1NFUlQocm9vdFJlbmRlckxheWVyKTsKLSAg
ICBpZiAocm9vdFJlbmRlckxheWVyLT5maXJzdENoaWxkKCkpCi0gICAgICAgIHVwZGF0ZU9mZnNl
dEZyb21WaWV3cG9ydEZvckxheWVyKHJvb3RSZW5kZXJMYXllci0+Zmlyc3RDaGlsZCgpKTsKLX0K
LQogdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OmxvY2tBbmltYXRpb25zKCkKIHsKICAg
ICBtX2FuaW1hdGlvbnNMb2NrZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuaAppbmRleCA3Mjk3ZWVkODFlMDVhMmVl
MGYwMDVlZWEzZGY4MTg4NWZlYzNmMmI1Li41NDRlYTdhMDliNzk4ZGMyY2Q0YzcxNGFkYzgxNjY3
NjgyZWJiODljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZExheWVyVHJlZUhvc3QuaApAQCAtMTA1LDcgKzEwNSw2IEBAIHB1YmxpYzoKICNlbmRpZgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllclJlcGFpbnRDb3VudChXZWJDb3JlOjpDb29yZGluYXRl
ZExheWVySUQsIGludCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaExheWVyKFdl
YkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllciopOwotICAgIHZpcnR1YWwgdm9pZCBzeW5j
Rml4ZWRMYXllcnMoKTsKIAogICAgIHZpcnR1YWwgUGFzc093blB0cjxXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQ+IGJlZ2luQ29udGVudFVwZGF0ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRTdXJmYWNlOjpGbGFncywgdWludDMyX3QmIGF0bGFzSUQsIFdlYkNv
cmU6OkludFBvaW50Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAKaW5kZXggMjllYTAyMTI4NDEwYWJkODY4YzdmYzlk
Nzk3MGUyMTk4YTA0NGE2Yy4uNGFmMTUzZGQ2MGJiZmMzMzEyYTI5MmNhZTBkM2JiOTYwNDljYTAz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdB
cmVhSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhSW1wbC5jcHAKQEAgLTczLDYgKzczLDcgQEAgRHJhd2luZ0FyZWFJbXBsOjpEcmF3aW5n
QXJlYUltcGwoV2ViUGFnZSogd2ViUGFnZSwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGUK
IAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBtX2Fsd2F5c1VzZUNvbXBvc2l0
aW5nID0gdHJ1ZTsKKyAgICB3ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5zZXRTY3Jv
bGxpbmdDb29yZGluYXRvckVuYWJsZWQodHJ1ZSk7CiAjZW5kaWYKIAogICAgIGlmIChtX2Fsd2F5
c1VzZUNvbXBvc2l0aW5nKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186837</attachid>
            <date>2013-02-06 05:50:28 -0800</date>
            <delta_ts>2013-02-06 10:35:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108990-20130206104707.patch</filename>
            <type>text/plain</type>
            <size>17319</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDgwYzQ5YTIzMmI0MGRm
YjQ5MGNkZjRmMWE2ZDY5NGZlNTlkMGEzZS4uODQ3Njk3MTA5NzU2ODRjMDc0ZGI2YmY4MmQ5NGNj
NTlhZGI1ZmI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEzLTAyLTA2ICBDYWlv
IE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgW0Nvb3JkaW5hdGVkR3JhcGhpY3NdIFVzZSBTY3JvbGxpbmdDb29yZGluYXRv
ciB0byB0cmFjayBmaXhlZCBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwODk5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdlYkNvcmUga2VlcHMgU2Nyb2xsaW5nQ29vcmRpbmF0b3IgdXAtdG8t
ZGF0ZSBhYm91dCB3aGV0aGVyIExheWVycyBhcmUgZml4ZWQgb3Igbm90LCBzbyB3ZQorICAgICAg
ICBkb24ndCBuZWVkIHRvIHRyYXZlcnNlIHRoZSB0cmVlIGV2ZXJ5IGZyYW1lIHRvIGdldCB0aGlz
IGluZm9ybWF0aW9uLgorCisgICAgICAgIFRoZSBmdW5jdGlvbiBTY3JvbGxpbmdDb29yZGluYXRv
cjo6c2V0TGF5ZXJJc0ZpeGVkVG9Db250YWluZXJMYXllcigpIGlzIGNhbGxlZCB3aGVuCisgICAg
ICAgIFJlbmRlckxheWVyQmFja2luZyBpcyB1cGRhdGluZyBpdHMgZ3JhcGhpY3MgbGF5ZXJzLgor
CisgICAgICAgIFRoZSBuZXcgY29kZSBhbHNvIHdvcmtzIGluIG5ldyBzaXR1YXRpb25zIHdoZXJl
IHRoZSBwcmV2aW91cyB3YXMgYnJva2VuOiBpZiBhIGxheWVyIGNoYW5nZWQKKyAgICAgICAgZnJv
bSBiZWluZyBmaXhlZCB0byBub3QgZml4ZWQgKGJ1dCBzdGlsbCBrZXB0IGFzIGEgbGF5ZXIgZm9y
IG90aGVyIHJlYXNvbnMpLCB0aGUgbGF5ZXIgd2lsbAorICAgICAgICBiZSBjb3JyZWN0bHkgdXBk
YXRlZC4gUHJldmlvdXMgaW1wbGVtZW50YXRpb24gb25seSBoYWQgbG9naWMgdG8gbWFyayBsYXll
cnMgYXMgZml4ZWQsIGJ1dAorICAgICAgICBub3QgdGhlIG90aGVyIHdheSByb3VuZC4KKworICAg
ICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5wcmk6CisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNyZWF0ZSk6IGNyZWF0ZSBzcGVjaWZpYyB2ZXJzaW9uIG9m
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5h
dGVkL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRv
ckNvb3JkaW5hdGVkR3JhcGhpY3M6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFw
aGljcyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVk
R3JhcGhpY3M6OnNldExheWVySXNGaXhlZFRvQ29udGFpbmVyTGF5ZXIpOgorICAgICAgICB1cGRh
dGUgbGF5ZXIgaW5mb3JtYXRpb24gdXNpbmcgZXhpc3RpbmcgaG9vayBpbiBTY3JvbGxpbmdDb29y
ZGluYXRvci4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZC9TY3JvbGxpbmdD
b29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnNldEZpeGVkVG9WaWV3cG9ydCk6IG5vdyB0aGF0IHNldHRpbmcgdmlld3BvcnQgaXMg
bm90CisgICAgICAgIGVtYmVkZGVkIGluIHRoZSBzeW5jaHJvbml6YXRpb24gd29yaywgd2UgbmVl
ZCB0byBtYXJrIHRoZSBsYXllciBzbyBpdCBpcyB1cGRhdGVkIGluIHRoZQorICAgICAgICBuZXh0
IGZyYW1lLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSk6IHJlbW92ZSBjYWxsIHRvIHN5
bmNGaXhlZExheWVycygpLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllckNsaWVudCk6IHJlbW92ZSBub3cgdW51c2VkIHN5bmNGaXhlZExheWVycygp
IGZyb20gY2xpZW50LgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKToKKwogMjAx
My0wMi0wNSAgSm9jZWx5biBUdXJjb3R0ZSAgPGpvY2VseW4udHVyY290dGVAZGlnaWEuY29tPgog
CiAgICAgICAgIFtRdF0gUkVHUkVTU0lPTihyMTM3NDM2KTogSXQgbWFkZSBhbGwgaW5zcGVjdG9y
IHRlc3RzIHRpbWVvdXQgb24gZGV2ZWxvcGVyIGJ1aWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGVjOTMzMTIw
MWNlNzIyZThkODQ4ODIwMjQ3MWM3NjZkZmMxMTkxNzguLjMyMTcxZGY2OTdlMTY0ZTY3ZGE0ZjJj
NmJjMzI4YWM2ZGI1MTk0MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMy0wMi0w
NiAgQ2FpbyBNYXJjZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9z
c2Eub3JnPgorCisgICAgICAgIFtDb29yZGluYXRlZEdyYXBoaWNzXSBVc2UgU2Nyb2xsaW5nQ29v
cmRpbmF0b3IgdG8gdHJhY2sgZml4ZWQgbGF5ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg5OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZWJDb3JlIGtlZXBzIFNjcm9sbGluZ0Nvb3JkaW5hdG9y
IHVwLXRvLWRhdGUgYWJvdXQgd2hldGhlciBMYXllcnMgYXJlIGZpeGVkIG9yIG5vdCwgc28gd2UK
KyAgICAgICAgZG9uJ3QgbmVlZCB0byB0cmF2ZXJzZSB0aGUgdHJlZSBldmVyeSBmcmFtZSB0byBn
ZXQgdGhpcyBpbmZvcm1hdGlvbi4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHA6IHJlbW92ZQorICAg
ICAgICBzeW5jRml4ZWRMYXllcnMoKSBhbmQgaXRzIGhlbHBlciBmdW5jdGlvbnMuIFRob3NlIHdl
cmUgdXNlZCB0byBpZGVudGlmeSB0aGUgZml4ZWQgbGF5ZXJzCisgICAgICAgIGFuZCBhcmUgbm90
IG5lZWRlZCBhbnltb3JlLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5n
QXJlYUltcGw6OkRyYXdpbmdBcmVhSW1wbCk6IGVuYWJsZSB0aGUgc2Nyb2xsaW5nIGNvb3JkaW5h
dG9yIHVzYWdlIGZvcgorICAgICAgICBDb29yZGluYXRlZCBHcmFwaGljcy4KKwogMjAxMy0wMi0w
NSAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBkaWdpYS5jb20+CiAKICAgICAgICAg
W1F0XVtXSzJdIFJlcGxhY2UgbW9yZSB1c2VzIG9mIFdlYlBhZ2VQcm94eSB3aXRoIFdLUGFnZSBp
biBRUXVpY2tXZWJWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBjYTZhNzFkNWQ4OTcwNjY4MTA4NGNlMjY5
ZmQzZDgyY2M3NmE2Nzc5Li4wZGUyOGIyNDg3M2MxNDAyZDhmOTQzODNiNzcwYzVhYTJlNWQ3NTc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKQEAgLTk1MCw2ICs5NTAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwYWdl
L1NjcmVlbi5jcHAgXAogICAgIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0NvbnN0cmFpbnRzLmNw
cCBcCiAgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwIFwKKyAgICBw
YWdlL3Njcm9sbGluZy9jb29yZGluYXRlZC9TY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVk
R3JhcGhpY3MuY3BwIFwKICAgICBwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcCBcCiAgICAgcGFnZS9T
ZWN1cml0eVBvbGljeS5jcHAgXAogICAgIHBhZ2UvU2V0dGluZ3MuY3BwIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkK
aW5kZXggMTUyNWI2NzFhOTVjOGE2ZDdiMDExNWJjN2VkZGQxZTRlYzIxMzM1Ny4uMmFlOWEyNjlk
NGNlMDhmYzAxNmZjNjhjYzU0MjNmOTRhMjlmYzlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkKQEAgLTUwLDYg
KzUwLDcgQEAgSU5DTFVERVBBVEggKz0gXAogICAgICQkU09VUkNFX0RJUi9wYWdlL2FuaW1hdGlv
biBcCiAgICAgJCRTT1VSQ0VfRElSL3BhZ2UvcXQgXAogICAgICQkU09VUkNFX0RJUi9wYWdlL3Nj
cm9sbGluZyBcCisgICAgJCRTT1VSQ0VfRElSL3BhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkIFwK
ICAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0gXAogICAgICQkU09VUkNFX0RJUi9wbGF0Zm9ybS9h
bmltYXRpb24gXAogICAgICQkU09VUkNFX0RJUi9wbGF0Zm9ybS9hdWRpbyBcCkBAIC02Myw2ICs2
NCw3IEBAIElOQ0xVREVQQVRIICs9IFwKICAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQgXAogICAgICQkU09VUkNFX0RJUi9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcyBcCiAg
ICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcCBcCisgICAgJCRTT1VSQ0Vf
RElSL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZCBcCiAgICAgJCRTT1VSQ0Vf
RElSL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMgXAogICAgICQkU09VUkNFX0RJUi9wbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycyBcCiAgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2ltYWdlLWRl
Y29kZXJzL2JtcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdDb29yZGluYXRvci5jcHAKaW5kZXggZjEyYzI4MGFkOTQyYzBlN2EzMzlmZWRmNmQ1
ZTdlYTAwMzg1MzY2OC4uMmVjNzE2NTQ4NWU3YzFjNTFhY2Q0MGY1MTFmNmExYTdlYTkwODg5NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmNwcApAQCAtNTIsNiArNTIsMTAgQEAKICNpbmNsdWRlICJTY3JvbGxpbmdDb29y
ZGluYXRvckNocm9taXVtLmgiCiAjZW5kaWYKIAorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElD
UykKKyNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuaCIK
KyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBhc3NSZWZQdHI8U2Nyb2xsaW5nQ29v
cmRpbmF0b3I+IFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGUoUGFnZSogcGFnZSkKQEAgLTY0
LDYgKzY4LDEwIEBAIFBhc3NSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IFNjcm9sbGluZ0Nv
b3JkaW5hdG9yOjpjcmVhdGUoUGFnZSogcGFnZSkKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNj
cm9sbGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW0ocGFnZSkpOwogI2VuZGlmCiAKKyNpZiBVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1MpCisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTY3JvbGxpbmdDb29y
ZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MocGFnZSkpOworI2VuZGlmCisKICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNjcm9sbGluZ0Nvb3JkaW5hdG9yKHBhZ2UpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWQvU2Nyb2xsaW5nQ29v
cmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL2Nvb3JkaW5hdGVkL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGlj
cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTg4ZGM3MmM4YzJiNmM4ZjY5ZmM0ZTZmNzU2ZjZkMGY5NDUxMjJh
NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nvb3Jk
aW5hdGVkL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKQEAgLTAs
MCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBh
bmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzLmgiCisK
KyNpbmNsdWRlICJDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaCIKKyNpbmNsdWRlICJQYWdlLmgi
CisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTY3JvbGxp
bmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3M6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29v
cmRpbmF0ZWRHcmFwaGljcyhQYWdlKiBwYWdlKQorICAgIDogU2Nyb2xsaW5nQ29vcmRpbmF0b3Io
cGFnZSkKK3sKK30KKwordm9pZCBTY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhp
Y3M6OnNldExheWVySXNGaXhlZFRvQ29udGFpbmVyTGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIs
IGJvb2wgZW5hYmxlKQoreworICAgIGlmICghbV9wYWdlLT5zZXR0aW5ncygpLT5hY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIHRvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGxheWVyKS0+c2V0Rml4ZWRUb1ZpZXdwb3J0
KGVuYWJsZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Q29vcmRpbmF0ZWRHcmFwaGljcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29v
cmRpbmF0ZWQvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmQxYzg5MzRiMmM5NjQyNjJiZDQxNzM4MTYyYmNkNjgzOGYzOWZmMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5oCkBAIC0wLDAgKzEsNDIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVJTIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTY3JvbGxpbmdDb29yZGluYXRvckNvb3Jk
aW5hdGVkR3JhcGhpY3NfaAorI2RlZmluZSBTY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVk
R3JhcGhpY3NfaAorCisjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3Jh
cGhpY3MgOiBwdWJsaWMgU2Nyb2xsaW5nQ29vcmRpbmF0b3IgeworcHVibGljOgorICAgIGV4cGxp
Y2l0IFNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcyhQYWdlKik7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJJc0ZpeGVkVG9Db250YWluZXJMYXllcihHcmFwaGljc0xh
eWVyKiwgYm9vbCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNw
cAppbmRleCAzNzM2ZjI2MDRjMGMxMDQzOTk5NTdiOThhMjUyNWVlN2RiY2RkOWJiLi41NzYxNTY0
YWNhMDU5MTA0MzU0OTBkYmRjNmI1NTkyOTk3ZDZlZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtNDY0LDYgKzQ2
NCwxNCBAQCBDb29yZGluYXRlZExheWVySUQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjppZCgp
IGNvbnN0CiAgICAgcmV0dXJuIG1faWQ7CiB9CiAKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpzZXRGaXhlZFRvVmlld3BvcnQoYm9vbCBpc0ZpeGVkKQoreworICAgIGlmIChtX2ZpeGVk
VG9WaWV3cG9ydCA9PSBpc0ZpeGVkKQorICAgICAgICByZXR1cm47CisgICAgbV9maXhlZFRvVmll
d3BvcnQgPSBpc0ZpeGVkOworICAgIGRpZENoYW5nZUxheWVyU3RhdGUoKTsKK30KKwogdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShjb25zdCBGbG9h
dFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFtX2Nvb3JkaW5hdG9yLT5pc0ZsdXNoaW5nTGF5ZXJD
aGFuZ2VzKCkpIHsKQEAgLTQ3OCw4ICs0ODYsNiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKICAgICBp
ZiAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiByZXBsaWNhID0gdG9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIocmVwbGljYUxheWVyKCkpKQogICAgICAgICByZXBsaWNhLT5mbHVzaENvbXBvc2l0
aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAKLSAgICBtX2Nvb3JkaW5hdG9yLT5zeW5jRml4
ZWRMYXllcnMoKTsKLQogICAgIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHko
KTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2hpbGRyZW4oKS5zaXplKCk7ICsraSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIu
aAppbmRleCBhNTUxZDM1MTFhZGE2NDRlYmY3MzJiZWY2MmU4NmFkOWQ4N2YxYTIwLi5hM2YwYTA4
ZmQ5ODIxNWQxMDE2ZDI3ODU5ZjUyNzU4MzM0MDIwZmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCkBAIC03Miw3ICs3Miw2IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJBbmltYXRpb25zKENvb3JkaW5hdGVk
TGF5ZXJJRCwgY29uc3QgR3JhcGhpY3NMYXllckFuaW1hdGlvbnMmKSA9IDA7CiAKICAgICB2aXJ0
dWFsIHZvaWQgZGV0YWNoTGF5ZXIoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBzeW5jRml4ZWRMYXllcnMoKSA9IDA7CiAgICAgdmlydHVhbCBQYXNzT3du
UHRyPEdyYXBoaWNzQ29udGV4dD4gYmVnaW5Db250ZW50VXBkYXRlKGNvbnN0IEludFNpemUmLCBD
b29yZGluYXRlZFN1cmZhY2U6OkZsYWdzLCB1aW50MzJfdCYgYXRsYXNJRCwgSW50UG9pbnQmKSA9
IDA7CiB9OwogCkBAIC0xMzcsNyArMTM2LDcgQEAgcHVibGljOgogCiAgICAgQ29vcmRpbmF0ZWRM
YXllcklEIGlkKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldEZpeGVkVG9WaWV3cG9ydChib29sIGlz
Rml4ZWQpIHsgbV9maXhlZFRvVmlld3BvcnQgPSBpc0ZpeGVkOyB9CisgICAgdm9pZCBzZXRGaXhl
ZFRvVmlld3BvcnQoYm9vbCBpc0ZpeGVkKTsKIAogICAgIEludFJlY3QgY292ZXJSZWN0KCkgY29u
c3QgeyByZXR1cm4gbV9tYWluQmFja2luZ1N0b3JlID8gbV9tYWluQmFja2luZ1N0b3JlLT5tYXBU
b0NvbnRlbnRzKG1fbWFpbkJhY2tpbmdTdG9yZS0+Y292ZXJSZWN0KCkpIDogSW50UmVjdCgpOyB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVy
VHJlZUhvc3QuY3BwCmluZGV4IDliYWIxMDhhODQ0NzViNmU2ODM4ODMwYzg2OWI0MmIwZDY4MTNk
MTQuLmMzYjYzYmVmYzc1YjI0YTFlN2NlYmU0MzQyMDZjZGVhNzRjZGZlMjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNw
cApAQCAtNDY5LDU0ICs0NjksNiBAQCB2b2lkIENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6ZGV0
YWNoTGF5ZXIoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBsYXllcikKICAgICBzY2hlZHVsZUxh
eWVyRmx1c2goKTsKIH0KIAotc3RhdGljIHZvaWQgdXBkYXRlT2Zmc2V0RnJvbVZpZXdwb3J0Rm9y
U2VsZihSZW5kZXJMYXllciogcmVuZGVyTGF5ZXIpCi17Ci0gICAgLy8gVGhlc2UgY29uZGl0aW9u
cyBtdXN0IG1hdGNoIHRoZSBjb25kaXRpb25zIGluIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVx
dWlyZXNDb21wb3NpdGluZ0ZvclBvc2l0aW9uLgotICAgIFJlbmRlckxheWVyQmFja2luZyogYmFj
a2luZyA9IHJlbmRlckxheWVyLT5iYWNraW5nKCk7Ci0gICAgaWYgKCFiYWNraW5nKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSByZW5kZXJMYXllci0+cmVuZGVy
ZXIoKS0+c3R5bGUoKTsKLSAgICBpZiAoIXN0eWxlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBp
ZiAoIXJlbmRlckxheWVyLT5yZW5kZXJlcigpLT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSB8fCBy
ZW5kZXJMYXllci0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+cG9zaXRpb24oKSAhPSBGaXhlZFBvc2l0
aW9uKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIXJlbmRlckxheWVyLT5yZW5kZXJlcigp
LT5jb250YWluZXIoKS0+aXNSZW5kZXJWaWV3KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlm
ICghcmVuZGVyTGF5ZXItPmlzU3RhY2tpbmdDb250YWluZXIoKSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyID0gdG9Db29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIoYmFja2luZy0+Z3JhcGhpY3NMYXllcigpKTsKLSAgICBncmFwaGlj
c0xheWVyLT5zZXRGaXhlZFRvVmlld3BvcnQodHJ1ZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHVwZGF0
ZU9mZnNldEZyb21WaWV3cG9ydEZvckxheWVyKFJlbmRlckxheWVyKiByZW5kZXJMYXllcikKLXsK
LSAgICB1cGRhdGVPZmZzZXRGcm9tVmlld3BvcnRGb3JTZWxmKHJlbmRlckxheWVyKTsKLQotICAg
IGlmIChyZW5kZXJMYXllci0+Zmlyc3RDaGlsZCgpKQotICAgICAgICB1cGRhdGVPZmZzZXRGcm9t
Vmlld3BvcnRGb3JMYXllcihyZW5kZXJMYXllci0+Zmlyc3RDaGlsZCgpKTsKLSAgICBpZiAocmVu
ZGVyTGF5ZXItPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIHVwZGF0ZU9mZnNldEZyb21WaWV3cG9y
dEZvckxheWVyKHJlbmRlckxheWVyLT5uZXh0U2libGluZygpKTsKLX0KLQotdm9pZCBDb29yZGlu
YXRlZExheWVyVHJlZUhvc3Q6OnN5bmNGaXhlZExheWVycygpCi17Ci0gICAgaWYgKCFtX3dlYlBh
Z2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCkgfHwgIW1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0
dGluZ3MoKS0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkKCkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghbV93ZWJQYWdlLT5tYWluRnJhbWUoKS0+dmll
dygpLT5oYXNWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cygpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBSZW5kZXJMYXllciogcm9vdFJlbmRlckxheWVyID0gbV93ZWJQYWdlLT5tYWluRnJhbWUo
KS0+Y29udGVudFJlbmRlcmVyKCktPmNvbXBvc2l0b3IoKS0+cm9vdFJlbmRlckxheWVyKCk7Ci0g
ICAgQVNTRVJUKHJvb3RSZW5kZXJMYXllcik7Ci0gICAgaWYgKHJvb3RSZW5kZXJMYXllci0+Zmly
c3RDaGlsZCgpKQotICAgICAgICB1cGRhdGVPZmZzZXRGcm9tVmlld3BvcnRGb3JMYXllcihyb290
UmVuZGVyTGF5ZXItPmZpcnN0Q2hpbGQoKSk7Ci19Ci0KIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0Ojpsb2NrQW5pbWF0aW9ucygpCiB7CiAgICAgbV9hbmltYXRpb25zTG9ja2VkID0gdHJ1
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRy
ZWVIb3N0LmgKaW5kZXggNzI5N2VlZDgxZTA1YTJlZTBmMDA1ZWVhM2RmODE4ODVmZWMzZjJiNS4u
NTQ0ZWE3YTA5Yjc5OGRjMmNkNGM3MTRhZGM4MTY2NzY4MmViYjg5YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgKQEAgLTEw
NSw3ICsxMDUsNiBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJS
ZXBhaW50Q291bnQoV2ViQ29yZTo6Q29vcmRpbmF0ZWRMYXllcklELCBpbnQpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hMYXllcihXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgc3luY0ZpeGVkTGF5ZXJzKCk7CiAKICAgICB2aXJ0
dWFsIFBhc3NPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PiBiZWdpbkNvbnRlbnRVcGRh
dGUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkNvb3JkaW5hdGVkU3VyZmFjZTo6
RmxhZ3MsIHVpbnQzMl90JiBhdGxhc0lELCBXZWJDb3JlOjpJbnRQb2ludCYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3Bw
CmluZGV4IDI5ZWEwMjEyODQxMGFiZDg2OGM3ZmM5ZDc5NzBlMjE5OGEwNDRhNmMuLjRhZjE1M2Rk
NjBiYmZjMzMxMmEyOTJjYWUwZDNiYjk2MDQ5Y2EwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCkBAIC03Myw2ICs3
Myw3IEBAIERyYXdpbmdBcmVhSW1wbDo6RHJhd2luZ0FyZWFJbXBsKFdlYlBhZ2UqIHdlYlBhZ2Us
IGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlCiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JB
UEhJQ1MpCiAgICAgbV9hbHdheXNVc2VDb21wb3NpdGluZyA9IHRydWU7CisgICAgd2ViUGFnZS0+
Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0U2Nyb2xsaW5nQ29vcmRpbmF0b3JFbmFibGVkKHRy
dWUpOwogI2VuZGlmCiAKICAgICBpZiAobV9hbHdheXNVc2VDb21wb3NpdGluZykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186876</attachid>
            <date>2013-02-06 10:35:52 -0800</date>
            <delta_ts>2013-02-07 06:26:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108990-20130206153231.patch</filename>
            <type>text/plain</type>
            <size>20998</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDgwYzQ5YTIzMmI0MGRm
YjQ5MGNkZjRmMWE2ZDY5NGZlNTlkMGEzZS4uNDA1NzY1OTg1MWNhM2M2NDhhOGVkNjc3M2M5OGE4
ZmRmZmI4YjY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEzLTAyLTA2ICBDYWlv
IE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgW0Nvb3JkaW5hdGVkR3JhcGhpY3NdIFVzZSBTY3JvbGxpbmdDb29yZGluYXRv
ciB0byB0cmFjayBmaXhlZCBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwODk5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdlYkNvcmUga2VlcHMgU2Nyb2xsaW5nQ29vcmRpbmF0b3IgdXAtdG8t
ZGF0ZSBhYm91dCB3aGV0aGVyIGxheWVycyBhcmUgZml4ZWQgb3Igbm90LCBzbyB3ZQorICAgICAg
ICBkb24ndCBuZWVkIHRvIHRyYXZlcnNlIHRoZSB0cmVlIGV2ZXJ5IGZyYW1lIHRvIGdldCB0aGlz
IGluZm9ybWF0aW9uLgorCisgICAgICAgIFRoZSBmdW5jdGlvbiBTY3JvbGxpbmdDb29yZGluYXRv
cjo6c2V0TGF5ZXJJc0ZpeGVkVG9Db250YWluZXJMYXllcigpIGlzIGNhbGxlZCB3aGVuCisgICAg
ICAgIFJlbmRlckxheWVyQmFja2luZyBpcyB1cGRhdGluZyBpdHMgZ3JhcGhpY3MgbGF5ZXJzLgor
CisgICAgICAgIFRoZSBuZXcgY29kZSBhbHNvIHdvcmtzIGluIG5ldyBzaXR1YXRpb25zIHdoZXJl
IHRoZSBwcmV2aW91cyB3YXMgYnJva2VuOiBpZiBhIGxheWVyIGNoYW5nZWQKKyAgICAgICAgZnJv
bSBiZWluZyBmaXhlZCB0byBub3QgZml4ZWQgKGJ1dCBzdGlsbCBrZXB0IGFzIGEgbGF5ZXIgZm9y
IG90aGVyIHJlYXNvbnMpLCB0aGUgbGF5ZXIgd2lsbAorICAgICAgICBiZSBjb3JyZWN0bHkgdXBk
YXRlZC4gUHJldmlvdXMgaW1wbGVtZW50YXRpb24gb25seSBoYWQgbG9naWMgdG8gbWFyayBsYXll
cnMgYXMgZml4ZWQsIGJ1dAorICAgICAgICBub3QgdGhlIG90aGVyIHdheSByb3VuZC4gQSBtYW51
YWwgdGVzdCB3YXMgYWRkZWQgdG8gaWxsdXN0cmF0ZSB0aGUgc29sdmVkIHByb2JsZW0uCisKKyAg
ICAgICAgVGVzdGluZyB3YXMgZG9uZSB3aXRoIHRoZSBleGlzdGluZyBtYW51YWwgdGVzdHMgdGhh
dCBtYWtlIHVzZSBvZiAicG9zaXRpb246Zml4ZWQiLgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6Y3JlYXRlKTogY3JlYXRlIHNwZWNpZmljIHZl
cnNpb24gb2YgU2Nyb2xsaW5nQ29vcmRpbmF0b3IuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcv
Y29vcmRpbmF0ZWQvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nv
b3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljczo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGlu
YXRlZEdyYXBoaWNzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29v
cmRpbmF0ZWRHcmFwaGljczo6c2V0TGF5ZXJJc0ZpeGVkVG9Db250YWluZXJMYXllcik6CisgICAg
ICAgIHVwZGF0ZSBsYXllciBpbmZvcm1hdGlvbiB1c2luZyBleGlzdGluZyBob29rIGluIFNjcm9s
bGluZ0Nvb3JkaW5hdG9yLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBo
aWNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6c2V0Rml4ZWRUb1ZpZXdwb3J0KTogbm93IHRoYXQgc2V0dGluZyB2aWV3
cG9ydCBpcyBub3QKKyAgICAgICAgZW1iZWRkZWQgaW4gdGhlIHN5bmNocm9uaXphdGlvbiB3b3Jr
LCB3ZSBuZWVkIHRvIG1hcmsgdGhlIGxheWVyIHNvIGl0IGlzIHVwZGF0ZWQgaW4gdGhlCisgICAg
ICAgIG5leHQgZnJhbWUuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlKTogcmVtb3ZlIGNh
bGwgdG8gc3luY0ZpeGVkTGF5ZXJzKCkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oOgorICAgICAgICAoQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KTogcmVtb3ZlIG5vdyB1bnVzZWQgc3luY0ZpeGVk
TGF5ZXJzKCkgZnJvbSBjbGllbnQuCisgICAgICAgIChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIp
OgorCiAyMDEzLTAyLTA1ICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBkaWdp
YS5jb20+CiAKICAgICAgICAgW1F0XSBSRUdSRVNTSU9OKHIxMzc0MzYpOiBJdCBtYWRlIGFsbCBp
bnNwZWN0b3IgdGVzdHMgdGltZW91dCBvbiBkZXZlbG9wZXIgYnVpbGRzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ZWM5MzMxMjAxY2U3MjJlOGQ4NDg4MjAyNDcxYzc2NmRmYzExOTE3OC4uNzcyYmUyZTc0ZjZiZWU3
MjMyNTExOTFiMjRmY2ZmOTZlYjA4NjcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisy
MDEzLTAyLTA2ICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJh
QG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW0Nvb3JkaW5hdGVkR3JhcGhpY3NdIFVzZSBTY3Jv
bGxpbmdDb29yZGluYXRvciB0byB0cmFjayBmaXhlZCBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODk5MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYkNvcmUga2VlcHMgU2Nyb2xsaW5nQ29v
cmRpbmF0b3IgdXAtdG8tZGF0ZSBhYm91dCB3aGV0aGVyIGxheWVycyBhcmUgZml4ZWQgb3Igbm90
LCBzbyB3ZQorICAgICAgICBkb24ndCBuZWVkIHRvIHRyYXZlcnNlIHRoZSB0cmVlIGV2ZXJ5IGZy
YW1lIHRvIGdldCB0aGlzIGluZm9ybWF0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcDogcmVt
b3ZlCisgICAgICAgIHN5bmNGaXhlZExheWVycygpIGFuZCBpdHMgaGVscGVyIGZ1bmN0aW9ucy4g
VGhvc2Ugd2VyZSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBmaXhlZCBsYXllcnMKKyAgICAgICAgYW5k
IGFyZSBub3QgbmVlZGVkIGFueW1vcmUuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkRyYXdpbmdBcmVhSW1wbDo6RHJhd2luZ0FyZWFJbXBsKTogZW5hYmxlIHRoZSBzY3JvbGxpbmcg
Y29vcmRpbmF0b3IgdXNhZ2UgZm9yCisgICAgICAgIENvb3JkaW5hdGVkIEdyYXBoaWNzLgorCiAy
MDEzLTAyLTA1ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQGRpZ2lhLmNvbT4KIAog
ICAgICAgICBbUXRdW1dLMl0gUmVwbGFjZSBtb3JlIHVzZXMgb2YgV2ViUGFnZVByb3h5IHdpdGgg
V0tQYWdlIGluIFFRdWlja1dlYlZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZmUzZDc3ZDg5
ZjAyZDZkNGQ0NDBlMDQ2MzZjZDQ2ZDM1ZGYwN2IzYy4uZDQ1ZTI3MTAyYzQzNzBhM2NjYWRlZWVm
ZmIwN2ZlN2IyYzkzNmM3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQ0LDYgKzQ0LDcgQEAg
c2V0KFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9wYWdl
IgogICAgICIke1dFQkNPUkVfRElSfS9wYWdlL2FuaW1hdGlvbiIKICAgICAiJHtXRUJDT1JFX0RJ
Un0vcGFnZS9zY3JvbGxpbmciCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BhZ2Uvc2Nyb2xsaW5nL2Nv
b3JkaW5hdGVkIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybSIKICAgICAiJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vYW5pbWF0aW9uIgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9h
dWRpbyIKQEAgLTE4MTAsNiArMTgxMSw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKIAogICAgIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0NvbnN0cmFpbnRzLmNwcAogICAgIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorICAgIHBhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVk
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKIAogICAgIHBsYXRm
b3JtL0FyZW5hLmNwcAogICAgIHBsYXRmb3JtL0FzeW5jRmlsZVN5c3RlbS5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CmluZGV4IGNhNmE3MWQ1ZDg5NzA2NjgxMDg0Y2UyNjlmZDNkODJjYzc2YTY3NzkuLmZhNjg3YmE0
NjI3YmU2NGNjZDliZDU1ODMwZjM5ZTMyZWUxZGNlYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNDA1Myw2
ICs0MDUzLDcgQEAgZW5hYmxlPyhDQU5WQVNfUFJPWFkpIHsKIAogdXNlPygzRF9HUkFQSElDUykg
ewogICAgIEhFQURFUlMgKz0gXAorICAgICAgICBwYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZC9T
Y3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuaCBcCiAgICAgICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2NwdS9hcm0vR3JhcGhpY3NDb250ZXh0M0RORU9OLmggXAogICAgICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oIFwKICAgICAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvRXh0ZW5zaW9uczNELmggXApAQCAtNDA3Nyw2ICs0MDc4LDcgQEAgdXNlPygzRF9H
UkFQSElDUykgewogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
VXBkYXRlQXRsYXMuaAogCiAgICAgU09VUkNFUyArPSBcCisgICAgICAgIHBhZ2Uvc2Nyb2xsaW5n
L2Nvb3JkaW5hdGVkL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAg
XAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5jcHAgXAogICAg
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAgXAogICAgICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQppbmRl
eCAxNTI1YjY3MWE5NWM4YTZkN2IwMTE1YmM3ZWRkZDFlNGVjMjEzMzU3Li4yYWU5YTI2OWQ0Y2Uw
OGZjMDE2ZmM2OGNjNTQyM2Y5NGEyOWZjOWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtNTAsNiArNTAs
NyBAQCBJTkNMVURFUEFUSCArPSBcCiAgICAgJCRTT1VSQ0VfRElSL3BhZ2UvYW5pbWF0aW9uIFwK
ICAgICAkJFNPVVJDRV9ESVIvcGFnZS9xdCBcCiAgICAgJCRTT1VSQ0VfRElSL3BhZ2Uvc2Nyb2xs
aW5nIFwKKyAgICAkJFNPVVJDRV9ESVIvcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWQgXAogICAg
ICQkU09VUkNFX0RJUi9wbGF0Zm9ybSBcCiAgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2FuaW1h
dGlvbiBcCiAgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2F1ZGlvIFwKQEAgLTYzLDYgKzY0LDcg
QEAgSU5DTFVERVBBVEggKz0gXAogICAgICQkU09VUkNFX0RJUi9wbGF0Zm9ybS9ncmFwaGljcy9x
dCBcCiAgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzIFwKICAgICAk
JFNPVVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwIFwKKyAgICAkJFNPVVJDRV9ESVIv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkIFwKICAgICAkJFNPVVJDRV9ESVIv
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3JtcyBcCiAgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzIFwKICAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vaW1hZ2UtZGVjb2Rl
cnMvYm1wIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCBmMTJjMjgwYWQ5NDJjMGU3YTMzOWZlZGY2ZDVlN2Vh
MDAzODUzNjY4Li4yZWM3MTY1NDg1ZTdjMWM1MWFjZDQwZjUxMWY2YTFhN2VhOTA4ODk0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwCkBAIC01Miw2ICs1MiwxMCBAQAogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5h
dG9yQ2hyb21pdW0uaCIKICNlbmRpZgogCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQor
I2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5oIgorI2Vu
ZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGFzc1JlZlB0cjxTY3JvbGxpbmdDb29yZGlu
YXRvcj4gU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNyZWF0ZShQYWdlKiBwYWdlKQpAQCAtNjQsNiAr
NjgsMTAgQEAgUGFzc1JlZlB0cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gU2Nyb2xsaW5nQ29vcmRp
bmF0b3I6OmNyZWF0ZShQYWdlKiBwYWdlKQogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2Nyb2xs
aW5nQ29vcmRpbmF0b3JDaHJvbWl1bShwYWdlKSk7CiAjZW5kaWYKIAorI2lmIFVTRShDT09SRElO
QVRFRF9HUkFQSElDUykKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNjcm9sbGluZ0Nvb3JkaW5h
dG9yQ29vcmRpbmF0ZWRHcmFwaGljcyhwYWdlKSk7CisjZW5kaWYKKwogICAgIHJldHVybiBhZG9w
dFJlZihuZXcgU2Nyb2xsaW5nQ29vcmRpbmF0b3IocGFnZSkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZC9TY3JvbGxpbmdDb29yZGlu
YXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvY29vcmRpbmF0ZWQvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hMWJmM2JkNDJmZmI2MjUzMWQ5NGZkNjEzZWMzZjQ0MzVkNzRlMTJjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0
ZWQvU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzLmNwcApAQCAtMCwwICsx
LDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKwor
I2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKworI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3Jk
aW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5oIgorCisjaW5jbHVkZSAiQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyLmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdy
YXBoaWNzOjpTY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MoUGFnZSogcGFn
ZSkKKyAgICA6IFNjcm9sbGluZ0Nvb3JkaW5hdG9yKHBhZ2UpCit7Cit9CisKK3ZvaWQgU2Nyb2xs
aW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzOjpzZXRMYXllcklzRml4ZWRUb0NvbnRh
aW5lckxheWVyKEdyYXBoaWNzTGF5ZXIqIGxheWVyLCBib29sIGVuYWJsZSkKK3sKKyAgICBpZiAo
IW1fcGFnZS0+c2V0dGluZ3MoKS0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRp
b25FbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKyAgICB0b0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcihsYXllciktPnNldEZpeGVkVG9WaWV3cG9ydChlbmFibGUpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZC9TY3JvbGxp
bmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL2Nvb3JkaW5hdGVkL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFw
aGljcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjg3YzJjNzJlYzdkYzcwZDE0NGEyMzgyYzIwOTRiNmI3ZWI3MmJh
NDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb29y
ZGluYXRlZC9TY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuaApAQCAtMCww
ICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSUyBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2Nyb2xsaW5nQ29v
cmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzX2gKKyNkZWZpbmUgU2Nyb2xsaW5nQ29vcmRpbmF0
b3JDb29yZGluYXRlZEdyYXBoaWNzX2gKKworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykK
KworI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzIDogcHVi
bGljIFNjcm9sbGluZ0Nvb3JkaW5hdG9yIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBTY3JvbGxp
bmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MoUGFnZSopOworCisgICAgdmlydHVhbCB2
b2lkIHNldExheWVySXNGaXhlZFRvQ29udGFpbmVyTGF5ZXIoR3JhcGhpY3NMYXllciosIGJvb2wp
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKaW5kZXggMzczNmYyNjA0YzBjMTA0Mzk5OTU3
Yjk4YTI1MjVlZTdkYmNkZDliYi4uMGVlOTdjZGMwMGJhZTU5ZWU4NGRlYjY5NjQ0ZTQ1YmIzNzEy
MTNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5jcHAKQEAgLTQ2NCw2ICs0NjQsMTUgQEAgQ29vcmRpbmF0ZWRMYXllcklEIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6aWQoKSBjb25zdAogICAgIHJldHVybiBtX2lkOwogfQog
Cit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Rml4ZWRUb1ZpZXdwb3J0KGJvb2wg
aXNGaXhlZCkKK3sKKyAgICBpZiAobV9maXhlZFRvVmlld3BvcnQgPT0gaXNGaXhlZCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9maXhlZFRvVmlld3BvcnQgPSBpc0ZpeGVkOworICAgIGRpZENo
YW5nZUxheWVyU3RhdGUoKTsKK30KKwogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZs
dXNoQ29tcG9zaXRpbmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFt
X2Nvb3JkaW5hdG9yLT5pc0ZsdXNoaW5nTGF5ZXJDaGFuZ2VzKCkpIHsKQEAgLTQ3OCw4ICs0ODcs
NiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRl
KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKICAgICBpZiAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
KiByZXBsaWNhID0gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIocmVwbGljYUxheWVyKCkpKQog
ICAgICAgICByZXBsaWNhLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7
CiAKLSAgICBtX2Nvb3JkaW5hdG9yLT5zeW5jRml4ZWRMYXllcnMoKTsKLQogICAgIGZsdXNoQ29t
cG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgY2hpbGRyZW4oKS5zaXplKCk7ICsraSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAppbmRleCBhNTUxZDM1MTFhZGE2NDRlYmY3
MzJiZWY2MmU4NmFkOWQ4N2YxYTIwLi5hM2YwYTA4ZmQ5ODIxNWQxMDE2ZDI3ODU5ZjUyNzU4MzM0
MDIwZmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5oCkBAIC03Miw3ICs3Miw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0TGF5ZXJBbmltYXRpb25zKENvb3JkaW5hdGVkTGF5ZXJJRCwgY29uc3QgR3JhcGhpY3NMYXll
ckFuaW1hdGlvbnMmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoTGF5ZXIoQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzeW5jRml4ZWRMYXll
cnMoKSA9IDA7CiAgICAgdmlydHVhbCBQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dD4gYmVnaW5D
b250ZW50VXBkYXRlKGNvbnN0IEludFNpemUmLCBDb29yZGluYXRlZFN1cmZhY2U6OkZsYWdzLCB1
aW50MzJfdCYgYXRsYXNJRCwgSW50UG9pbnQmKSA9IDA7CiB9OwogCkBAIC0xMzcsNyArMTM2LDcg
QEAgcHVibGljOgogCiAgICAgQ29vcmRpbmF0ZWRMYXllcklEIGlkKCkgY29uc3Q7CiAKLSAgICB2
b2lkIHNldEZpeGVkVG9WaWV3cG9ydChib29sIGlzRml4ZWQpIHsgbV9maXhlZFRvVmlld3BvcnQg
PSBpc0ZpeGVkOyB9CisgICAgdm9pZCBzZXRGaXhlZFRvVmlld3BvcnQoYm9vbCBpc0ZpeGVkKTsK
IAogICAgIEludFJlY3QgY292ZXJSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9tYWluQmFja2luZ1N0
b3JlID8gbV9tYWluQmFja2luZ1N0b3JlLT5tYXBUb0NvbnRlbnRzKG1fbWFpbkJhY2tpbmdTdG9y
ZS0+Y292ZXJSZWN0KCkpIDogSW50UmVjdCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCmluZGV4IDliYWIxMDhh
ODQ0NzViNmU2ODM4ODMwYzg2OWI0MmIwZDY4MTNkMTQuLmMzYjYzYmVmYzc1YjI0YTFlN2NlYmU0
MzQyMDZjZGVhNzRjZGZlMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcApAQCAtNDY5LDU0ICs0NjksNiBAQCB2b2lk
IENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6ZGV0YWNoTGF5ZXIoQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKiBsYXllcikKICAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKIH0KIAotc3RhdGljIHZv
aWQgdXBkYXRlT2Zmc2V0RnJvbVZpZXdwb3J0Rm9yU2VsZihSZW5kZXJMYXllciogcmVuZGVyTGF5
ZXIpCi17Ci0gICAgLy8gVGhlc2UgY29uZGl0aW9ucyBtdXN0IG1hdGNoIHRoZSBjb25kaXRpb25z
IGluIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0ZvclBvc2l0aW9u
LgotICAgIFJlbmRlckxheWVyQmFja2luZyogYmFja2luZyA9IHJlbmRlckxheWVyLT5iYWNraW5n
KCk7Ci0gICAgaWYgKCFiYWNraW5nKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZW5kZXJTdHls
ZSogc3R5bGUgPSByZW5kZXJMYXllci0+cmVuZGVyZXIoKS0+c3R5bGUoKTsKLSAgICBpZiAoIXN0
eWxlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIXJlbmRlckxheWVyLT5yZW5kZXJlcigp
LT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSB8fCByZW5kZXJMYXllci0+cmVuZGVyZXIoKS0+c3R5
bGUoKS0+cG9zaXRpb24oKSAhPSBGaXhlZFBvc2l0aW9uKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBpZiAoIXJlbmRlckxheWVyLT5yZW5kZXJlcigpLT5jb250YWluZXIoKS0+aXNSZW5kZXJWaWV3
KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghcmVuZGVyTGF5ZXItPmlzU3RhY2tpbmdD
b250YWluZXIoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyKiBncmFwaGljc0xheWVyID0gdG9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoYmFja2luZy0+
Z3JhcGhpY3NMYXllcigpKTsKLSAgICBncmFwaGljc0xheWVyLT5zZXRGaXhlZFRvVmlld3BvcnQo
dHJ1ZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHVwZGF0ZU9mZnNldEZyb21WaWV3cG9ydEZvckxheWVy
KFJlbmRlckxheWVyKiByZW5kZXJMYXllcikKLXsKLSAgICB1cGRhdGVPZmZzZXRGcm9tVmlld3Bv
cnRGb3JTZWxmKHJlbmRlckxheWVyKTsKLQotICAgIGlmIChyZW5kZXJMYXllci0+Zmlyc3RDaGls
ZCgpKQotICAgICAgICB1cGRhdGVPZmZzZXRGcm9tVmlld3BvcnRGb3JMYXllcihyZW5kZXJMYXll
ci0+Zmlyc3RDaGlsZCgpKTsKLSAgICBpZiAocmVuZGVyTGF5ZXItPm5leHRTaWJsaW5nKCkpCi0g
ICAgICAgIHVwZGF0ZU9mZnNldEZyb21WaWV3cG9ydEZvckxheWVyKHJlbmRlckxheWVyLT5uZXh0
U2libGluZygpKTsKLX0KLQotdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnN5bmNGaXhl
ZExheWVycygpCi17Ci0gICAgaWYgKCFtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCkg
fHwgIW1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+YWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlm
ICghbV93ZWJQYWdlLT5tYWluRnJhbWUoKS0+dmlldygpLT5oYXNWaWV3cG9ydENvbnN0cmFpbmVk
T2JqZWN0cygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSZW5kZXJMYXllciogcm9vdFJlbmRl
ckxheWVyID0gbV93ZWJQYWdlLT5tYWluRnJhbWUoKS0+Y29udGVudFJlbmRlcmVyKCktPmNvbXBv
c2l0b3IoKS0+cm9vdFJlbmRlckxheWVyKCk7Ci0gICAgQVNTRVJUKHJvb3RSZW5kZXJMYXllcik7
Ci0gICAgaWYgKHJvb3RSZW5kZXJMYXllci0+Zmlyc3RDaGlsZCgpKQotICAgICAgICB1cGRhdGVP
ZmZzZXRGcm9tVmlld3BvcnRGb3JMYXllcihyb290UmVuZGVyTGF5ZXItPmZpcnN0Q2hpbGQoKSk7
Ci19Ci0KIHZvaWQgQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0Ojpsb2NrQW5pbWF0aW9ucygpCiB7
CiAgICAgbV9hbmltYXRpb25zTG9ja2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5
ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgKaW5kZXggNzI5N2VlZDgxZTA1
YTJlZTBmMDA1ZWVhM2RmODE4ODVmZWMzZjJiNS4uNTQ0ZWE3YTA5Yjc5OGRjMmNkNGM3MTRhZGM4
MTY2NzY4MmViYjg5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRMYXllclRyZWVIb3N0LmgKQEAgLTEwNSw3ICsxMDUsNiBAQCBwdWJsaWM6CiAjZW5k
aWYKICAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJSZXBhaW50Q291bnQoV2ViQ29yZTo6Q29vcmRp
bmF0ZWRMYXllcklELCBpbnQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hMYXll
cihXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQg
c3luY0ZpeGVkTGF5ZXJzKCk7CiAKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0PiBiZWdpbkNvbnRlbnRVcGRhdGUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYs
IFdlYkNvcmU6OkNvb3JkaW5hdGVkU3VyZmFjZTo6RmxhZ3MsIHVpbnQzMl90JiBhdGxhc0lELCBX
ZWJDb3JlOjpJbnRQb2ludCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCmluZGV4IDI5ZWEwMjEyODQxMGFiZDg2OGM3
ZmM5ZDc5NzBlMjE5OGEwNDRhNmMuLjRhZjE1M2RkNjBiYmZjMzMxMmEyOTJjYWUwZDNiYjk2MDQ5
Y2EwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYUltcGwuY3BwCkBAIC03Myw2ICs3Myw3IEBAIERyYXdpbmdBcmVhSW1wbDo6RHJh
d2luZ0FyZWFJbXBsKFdlYlBhZ2UqIHdlYlBhZ2UsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlCiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgbV9hbHdheXNVc2VDb21w
b3NpdGluZyA9IHRydWU7CisgICAgd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0
U2Nyb2xsaW5nQ29vcmRpbmF0b3JFbmFibGVkKHRydWUpOwogI2VuZGlmCiAKICAgICBpZiAobV9h
bHdheXNVc2VDb21wb3NpdGluZykKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwpp
bmRleCBmZGIzNTk0YWM1MDU0NmU4YTY4MTAyZWM0ODljZmU2ODRhOGQ3ZDY5Li5iNzQ3ZGYwZDdm
ZWZmZTcwYTA0OWQ0NmM3MzE1YTdiNzUyOWUxNjZiIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysr
IGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDItMDYgIENhaW8gTWFyY2VsbyBk
ZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KKworICAgICAg
ICBbQ29vcmRpbmF0ZWRHcmFwaGljc10gVXNlIFNjcm9sbGluZ0Nvb3JkaW5hdG9yIHRvIHRyYWNr
IGZpeGVkIGxheWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA4OTkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgbmV3IHRlc3QgdGhhdCBhbGxvdyB1cyB0byByZW1vdmUgdGhlIGZpeGVkIHBv
c2l0aW9uaW5nIG9mIGEgbGF5ZXIgYnV0IHN0aWxsIGtlZXBpbmcKKyAgICAgICAgaXQgY29tcG9z
aXRpbmcuIENvb3JkaW5hdGVkIEdyYXBoaWNzIGhhZCBhIGJ1ZyB3aGVyZSB0aGUgQ29vcmRpbmF0
ZWRTY2VuZUdyYXBoIHdvdWxkIHN0aWxsCisgICAgICAgIGNvdW50IHRoaXMgbGF5ZXIgYXMgZml4
ZWQgcG9zaXRpb24uCisKKyAgICAgICAgKiBNYW51YWxUZXN0cy9yZW1vdmUtZml4ZWQtcG9zaXRp
b24tYnV0LWtlZXAtY29tcG9zaXRpbmcuaHRtbDogQWRkZWQuCisKIDIwMTMtMDItMDUgIEpvY2Vs
eW4gVHVyY290dGUgIDxqb2NlbHluLnR1cmNvdHRlQGRpZ2lhLmNvbT4KIAogICAgICAgICBbUXRd
IFJFR1JFU1NJT04ocjEzNzQzNik6IEl0IG1hZGUgYWxsIGluc3BlY3RvciB0ZXN0cyB0aW1lb3V0
IG9uIGRldmVsb3BlciBidWlsZHMKZGlmZiAtLWdpdCBhL01hbnVhbFRlc3RzL3JlbW92ZS1maXhl
ZC1wb3NpdGlvbi1idXQta2VlcC1jb21wb3NpdGluZy5odG1sIGIvTWFudWFsVGVzdHMvcmVtb3Zl
LWZpeGVkLXBvc2l0aW9uLWJ1dC1rZWVwLWNvbXBvc2l0aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTJk
YmM0NDA2M2ViOGMwOWZhOWI0NThhOWE5NDJiMWFkMWQ5MGNkYQotLS0gL2Rldi9udWxsCisrKyBi
L01hbnVhbFRlc3RzL3JlbW92ZS1maXhlZC1wb3NpdGlvbi1idXQta2VlcC1jb21wb3NpdGluZy5o
dG1sCkBAIC0wLDAgKzEsNDYgQEAKKzxodG1sPgorCisgIDxib2R5IHN0eWxlPSJoZWlnaHQ6IDEw
MDAwcHgiPgorCisgIDxidXR0b24gaWQ9InRvZ2dsZSI+VG9nZ2xlPC9idXR0b24+CisKKyAgPHA+
CisgIFRoZSBibGFjayByZWN0YW5nbGUgc3RhcnRzIGZpeGVkLCBhbmQgZHVlIHRvIGEgLXdlYmtp
dC10cmFuc2Zvcm0gd2lsbCBiZSBjb21wb3NpdGVkLiBUb2dnbGUgdG8gdW5maXggaXQgYW5kIHNj
cm9sbDogdGhlIGJsYWNrIHJlY3RhbmdsZSBzaG91bGQgc2Nyb2xsIHdpdGggdGhlIHBhZ2UgYW5k
IG5vdCBvdmVybGFwIHRoZSBudW1iZXJzLgorICA8L3A+CisKKyAgPGRpdiBpZD0icmVjdCIgc3R5
bGU9ImJhY2tncm91bmQtY29sb3I6IGJsYWNrOyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHg7
IHBvc2l0aW9uOiBmaXhlZDsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsMCwwKSI+
CisgIDwvZGl2PgorCisxPGJyPgorMjxicj4KKzM8YnI+Cis0PGJyPgorNTxicj4KKzY8YnI+Cis3
PGJyPgorODxicj4KKzk8YnI+CisxMDxicj4KKzExPGJyPgorMTI8YnI+CisxMzxicj4KKzE0PGJy
PgorMTU8YnI+CisxNjxicj4KKzE3PGJyPgorMTg8YnI+CisxOTxicj4KKzIwPGJyPgorCis8c2Ny
aXB0PgordmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjdCIpOwordmFyIHRv
Z2dsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2dnbGUiKTsKKwordG9nZ2xlLmFkZEV2
ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24gKGV2KSB7CisgICAgaWYgKHJlY3Quc3R5bGUu
cG9zaXRpb24gPT09ICJmaXhlZCIpIHsKKyAgICAgICAgcmVjdC5zdHlsZS5wb3NpdGlvbiA9ICIi
OworICAgIH0gZWxzZSB7CisgICAgICAgIHJlY3Quc3R5bGUucG9zaXRpb24gPSAiZml4ZWQiOwor
ICAgIH0KK30pOworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187087</attachid>
            <date>2013-02-07 06:26:57 -0800</date>
            <delta_ts>2013-02-07 06:29:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108990-20130207112336.patch</filename>
            <type>text/plain</type>
            <size>21342</size>
            <attacher name="Caio Marcelo de Oliveira Filho">cmarcelo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc1ZjU4ZDNkNTAxM2Ey
NGU3YTExYTBmY2I1OWY4OGMwZTQ5YjI3Yy4uMjNjYTBkOTM0M2EwZWI0Y2RjZWRiNTQxNGE4MDA3
YTQxZjhiYzE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEzLTAyLTA3ICBDYWlv
IE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+
CisKKyAgICAgICAgW0Nvb3JkaW5hdGVkR3JhcGhpY3NdIFVzZSBTY3JvbGxpbmdDb29yZGluYXRv
ciB0byB0cmFjayBmaXhlZCBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwODk5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdlYkNvcmUga2VlcHMgU2Nyb2xsaW5nQ29vcmRpbmF0b3IgdXAtdG8t
ZGF0ZSBhYm91dCB3aGV0aGVyIGxheWVycyBhcmUgZml4ZWQgb3Igbm90LCBzbyB3ZQorICAgICAg
ICBkb24ndCBuZWVkIHRvIHRyYXZlcnNlIHRoZSB0cmVlIGV2ZXJ5IGZyYW1lIHRvIGdldCB0aGlz
IGluZm9ybWF0aW9uLgorCisgICAgICAgIFRoZSBmdW5jdGlvbiBTY3JvbGxpbmdDb29yZGluYXRv
cjo6c2V0TGF5ZXJJc0ZpeGVkVG9Db250YWluZXJMYXllcigpIGlzIGNhbGxlZCB3aGVuCisgICAg
ICAgIFJlbmRlckxheWVyQmFja2luZyBpcyB1cGRhdGluZyBpdHMgZ3JhcGhpY3MgbGF5ZXJzLgor
CisgICAgICAgIFRoZSBuZXcgY29kZSBhbHNvIHdvcmtzIGluIG5ldyBzaXR1YXRpb25zIHdoZXJl
IHRoZSBwcmV2aW91cyB3YXMgYnJva2VuOiBpZiBhIGxheWVyIGNoYW5nZWQKKyAgICAgICAgZnJv
bSBiZWluZyBmaXhlZCB0byBub3QgZml4ZWQgKGJ1dCBzdGlsbCBrZXB0IGFzIGEgbGF5ZXIgZm9y
IG90aGVyIHJlYXNvbnMpLCB0aGUgbGF5ZXIgd2lsbAorICAgICAgICBiZSBjb3JyZWN0bHkgdXBk
YXRlZC4gUHJldmlvdXMgaW1wbGVtZW50YXRpb24gb25seSBoYWQgbG9naWMgdG8gbWFyayBsYXll
cnMgYXMgZml4ZWQsIGJ1dAorICAgICAgICBub3QgdGhlIG90aGVyIHdheSByb3VuZC4gQSBtYW51
YWwgdGVzdCB3YXMgYWRkZWQgdG8gaWxsdXN0cmF0ZSB0aGUgc29sdmVkIHByb2JsZW0uCisKKyAg
ICAgICAgVGVzdGluZyB3YXMgZG9uZSB3aXRoIHRoZSBleGlzdGluZyBtYW51YWwgdGVzdHMgdGhh
dCBtYWtlIHVzZSBvZiAicG9zaXRpb246Zml4ZWQiLiBBdXRvbWF0aWMKKyAgICAgICAgdGVzdHMg
YXJlIG1vc3RseSBub3QgYWZmZWN0ZWQgYnkgdGhpcyBiZWNhdXNlIHVzYWdlIG9mIHRoaXMgaW5m
b3JtYXRpb24gYWZmZWN0cyBvbmx5IHRoZQorICAgICAgICBVc2VGaXhlZExheW91dCBtb2RlLCBu
b3QgdXNlZCBieSBkZWZhdWx0IGluIFdlYktpdFRlc3RSdW5uZXIuIFdvcmsgdG8gaW1wcm92ZSB0
aGlzIHNpdHVhdGlvbgorICAgICAgICB3aWxsIGJlIHRyYWNrZWQgaW4gYnVnIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkxNzUuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUucHJpOgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGUpOiBjcmVhdGUgc3BlY2lm
aWMgdmVyc2lvbiBvZiBTY3JvbGxpbmdDb29yZGluYXRvci4KKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRH
cmFwaGljcy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3M6OlNjcm9sbGluZ0Nvb3Jk
aW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdD
b29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3M6OnNldExheWVySXNGaXhlZFRvQ29udGFpbmVy
TGF5ZXIpOgorICAgICAgICB1cGRhdGUgbGF5ZXIgaW5mb3JtYXRpb24gdXNpbmcgZXhpc3Rpbmcg
aG9vayBpbiBTY3JvbGxpbmdDb29yZGluYXRvci4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9j
b29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGlj
cy5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU2Nyb2xsaW5nQ29vcmRp
bmF0b3JDb29yZGluYXRlZEdyYXBoaWNzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Rml4ZWRUb1ZpZXdwb3J0KTog
bm93IHRoYXQgc2V0dGluZyB2aWV3cG9ydCBpcyBub3QKKyAgICAgICAgZW1iZWRkZWQgaW4gdGhl
IHN5bmNocm9uaXphdGlvbiB3b3JrLCB3ZSBuZWVkIHRvIG1hcmsgdGhlIGxheWVyIHNvIGl0IGlz
IHVwZGF0ZWQgaW4gdGhlCisgICAgICAgIG5leHQgZnJhbWUuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Zmx1c2hDb21wb3Np
dGluZ1N0YXRlKTogcmVtb3ZlIGNhbGwgdG8gc3luY0ZpeGVkTGF5ZXJzKCkuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5oOgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KTogcmVtb3Zl
IG5vdyB1bnVzZWQgc3luY0ZpeGVkTGF5ZXJzKCkgZnJvbSBjbGllbnQuCisgICAgICAgIChDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIpOgorCiAyMDEzLTAyLTA3ICBHdXN0YXZvIE5vcm9uaGEgU2ls
dmEgIDxnbnNAZ25vbWUub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4LiBsaWJX
ZWJDb3JlLmxhIG5lZWRzIHRvIGJlIHJlbGlua2VkIHdoZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhNzNlNjQ0
ZGYyYzg5NGNjZDNmZDcwY2E5ZGE1MTRiZGNhOWZlM2FjLi44MTU3YjI5NjUzZGRiYjZmMTYxOTBm
ODQxYjRkYjNlOTM5MWNhMzhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMDIt
MDcgIENhaW8gTWFyY2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJv
c3NhLm9yZz4KKworICAgICAgICBbQ29vcmRpbmF0ZWRHcmFwaGljc10gVXNlIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yIHRvIHRyYWNrIGZpeGVkIGxheWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4OTkwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViQ29yZSBrZWVwcyBTY3JvbGxpbmdDb29yZGluYXRv
ciB1cC10by1kYXRlIGFib3V0IHdoZXRoZXIgbGF5ZXJzIGFyZSBmaXhlZCBvciBub3QsIHNvIHdl
CisgICAgICAgIGRvbid0IG5lZWQgdG8gdHJhdmVyc2UgdGhlIHRyZWUgZXZlcnkgZnJhbWUgdG8g
Z2V0IHRoaXMgaW5mb3JtYXRpb24uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwOiByZW1vdmUKKyAg
ICAgICAgc3luY0ZpeGVkTGF5ZXJzKCkgYW5kIGl0cyBoZWxwZXIgZnVuY3Rpb25zLiBUaG9zZSB3
ZXJlIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGZpeGVkIGxheWVycworICAgICAgICBhbmQgYXJlIG5v
dCBuZWVkZWQgYW55bW9yZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2lu
Z0FyZWFJbXBsOjpEcmF3aW5nQXJlYUltcGwpOiBlbmFibGUgdGhlIHNjcm9sbGluZyBjb29yZGlu
YXRvciB1c2FnZSBmb3IKKyAgICAgICAgQ29vcmRpbmF0ZWQgR3JhcGhpY3MuCisKIDIwMTMtMDIt
MDcgIE1pY2hhZWwgQnLDvG5pbmcgIDxtaWNoYWVsLmJydW5pbmdAZGlnaWEuY29tPgogCiAgICAg
ICAgIFtRdF1bV0syXSBGb2xkIFF0V2ViUGFnZUxvYWRDbGllbnQgaW50byBRUXVpY2tXZWJWaWV3
UHJpdmF0ZSBhbmQgbW92ZSB0byBDIEFQSS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYmZkNTFm
ZDgxYTM0NjI3MjJjODI0MzJlM2EzZWQ4NGE5MmFlMWE3ZC4uNTAyMGUyOTQzYTc3ZTVlZmY2YjYw
ZjM3N2U2ODhiYzJmMDVjMTE0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQ0LDYgKzQ0LDcg
QEAgc2V0KFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9w
YWdlIgogICAgICIke1dFQkNPUkVfRElSfS9wYWdlL2FuaW1hdGlvbiIKICAgICAiJHtXRUJDT1JF
X0RJUn0vcGFnZS9zY3JvbGxpbmciCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BhZ2Uvc2Nyb2xsaW5n
L2Nvb3JkaW5hdGVkZ3JhcGhpY3MiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtIgogICAg
ICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9hbmltYXRpb24iCiAgICAgIiR7V0VCQ09SRV9ESVJ9
L3BsYXRmb3JtL2F1ZGlvIgpAQCAtMTgyMCw2ICsxODIxLDcgQEAgc2V0KFdlYkNvcmVfU09VUkNF
UwogCiAgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29uc3RyYWludHMuY3BwCiAgICAgcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcv
Y29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhp
Y3MuY3BwCiAKICAgICBwbGF0Zm9ybS9BcmVuYS5jcHAKICAgICBwbGF0Zm9ybS9Bc3luY0ZpbGVT
eXN0ZW0uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBiNjk4M2JhNjViM2UwYmEwOGY0MzY5MTljOTgxYmFl
NWZhNWYzZmM2Li5hYjA4ZDdkNzAyMzE5MTAxODJjMGE0Mzg0YzU4YzFiMGY1MzA2NGQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKQEAgLTQwNjYsNiArNDA2Niw3IEBAIGVuYWJsZT8oQ0FOVkFTX1BST1hZKSB7CiAK
IHVzZT8oM0RfR1JBUEhJQ1MpIHsKICAgICBIRUFERVJTICs9IFwKKyAgICAgICAgcGFnZS9zY3Jv
bGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVk
R3JhcGhpY3MuaCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NwdS9hcm0vR3JhcGhpY3ND
b250ZXh0M0RORU9OLmggXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJy
aWRnZS5oIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uczNELmggXApAQCAt
NDA5MCw2ICs0MDkxLDcgQEAgdXNlPygzRF9HUkFQSElDUykgewogICAgICAgICBwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvVXBkYXRlQXRsYXMuaAogCiAgICAgU09VUkNFUyAr
PSBcCisgICAgICAgIHBhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5n
Q29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dy
YXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNELmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9E
cmF3aW5nQnVmZmVyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
aSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDE1MjViNjcxYTk1YzhhNmQ3YjAx
MTViYzdlZGRkMWU0ZWMyMTMzNTcuLjhmNTljNWQyNmE3ZjE5OTdkYjM3YmM3ZjMxMmI2MDA4ZTdm
NDViZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC01MCw2ICs1MCw3IEBAIElOQ0xVREVQQVRIICs9IFwK
ICAgICAkJFNPVVJDRV9ESVIvcGFnZS9hbmltYXRpb24gXAogICAgICQkU09VUkNFX0RJUi9wYWdl
L3F0IFwKICAgICAkJFNPVVJDRV9ESVIvcGFnZS9zY3JvbGxpbmcgXAorICAgICQkU09VUkNFX0RJ
Ui9wYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzIFwKICAgICAkJFNPVVJDRV9ESVIv
cGxhdGZvcm0gXAogICAgICQkU09VUkNFX0RJUi9wbGF0Zm9ybS9hbmltYXRpb24gXAogICAgICQk
U09VUkNFX0RJUi9wbGF0Zm9ybS9hdWRpbyBcCkBAIC02Myw2ICs2NCw3IEBAIElOQ0xVREVQQVRI
ICs9IFwKICAgICAkJFNPVVJDRV9ESVIvcGxhdGZvcm0vZ3JhcGhpY3MvcXQgXAogICAgICQkU09V
UkNFX0RJUi9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcyBcCiAgICAgJCRTT1VSQ0VfRElSL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcCBcCisgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZCBcCiAgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMgXAogICAgICQkU09VUkNFX0RJUi9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cyBcCiAgICAgJCRTT1VSQ0VfRElSL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2JtcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5jcHAKaW5kZXggZjEyYzI4MGFkOTQyYzBlN2EzMzlmZWRmNmQ1ZTdlYTAwMzg1MzY2OC4uMmVj
NzE2NTQ4NWU3YzFjNTFhY2Q0MGY1MTFmNmExYTdlYTkwODg5NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAt
NTIsNiArNTIsMTAgQEAKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtLmgi
CiAjZW5kaWYKIAorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyNpbmNsdWRlICJTY3Jv
bGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuaCIKKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIFBhc3NSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpjcmVhdGUoUGFnZSogcGFnZSkKQEAgLTY0LDYgKzY4LDEwIEBAIFBhc3NS
ZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGUo
UGFnZSogcGFnZSkKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNjcm9sbGluZ0Nvb3JkaW5hdG9y
Q2hyb21pdW0ocGFnZSkpOwogI2VuZGlmCiAKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Mp
CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVk
R3JhcGhpY3MocGFnZSkpOworI2VuZGlmCisKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNjcm9s
bGluZ0Nvb3JkaW5hdG9yKHBhZ2UpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNv
b3JkaW5hdGVkR3JhcGhpY3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29v
cmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3Mu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmExYmYzYmQ0MmZmYjYyNTMxZDk0ZmQ2MTNlYzNmNDQzNWQ3NGUxMmMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb29yZGlu
YXRlZGdyYXBoaWNzL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAK
QEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisKKyNpbmNsdWRlICJTY3Jv
bGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuaCIKKworI2luY2x1ZGUgIkNvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllci5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJTZXR0
aW5ncy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29v
cmRpbmF0ZWRHcmFwaGljczo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNz
KFBhZ2UqIHBhZ2UpCisgICAgOiBTY3JvbGxpbmdDb29yZGluYXRvcihwYWdlKQoreworfQorCit2
b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljczo6c2V0TGF5ZXJJc0Zp
eGVkVG9Db250YWluZXJMYXllcihHcmFwaGljc0xheWVyKiBsYXllciwgYm9vbCBlbmFibGUpCit7
CisgICAgaWYgKCFtX3BhZ2UtPnNldHRpbmdzKCktPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JG
aXhlZFBvc2l0aW9uRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgdG9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIobGF5ZXIpLT5zZXRGaXhlZFRvVmlld3BvcnQoZW5hYmxlKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0
ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5n
Q29vcmRpbmF0b3JDb29yZGluYXRlZEdyYXBoaWNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODdjMmM3MmVjN2Rj
NzBkMTQ0YTIzODJjMjA5NGI2YjdlYjcyYmE0OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRp
bmF0b3JDb29yZGluYXRlZEdyYXBoaWNzLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFw
aGljc19oCisjZGVmaW5lIFNjcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljc19o
CisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCisKKyNpbmNsdWRlICJTY3JvbGxpbmdD
b29yZGluYXRvci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcyA6IHB1YmxpYyBTY3JvbGxpbmdDb29yZGluYXRv
ciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JDb29yZGluYXRl
ZEdyYXBoaWNzKFBhZ2UqKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllcklzRml4ZWRUb0Nv
bnRhaW5lckxheWVyKEdyYXBoaWNzTGF5ZXIqLCBib29sKTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuY3BwCmluZGV4IDM3MzZmMjYwNGMwYzEwNDM5OTk1N2I5OGEyNTI1ZWU3ZGJjZGQ5YmIuLjBl
ZTk3Y2RjMDBiYWU1OWVlODRkZWI2OTY0NGU0NWJiMzcxMjEzYjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC00NjQs
NiArNDY0LDE1IEBAIENvb3JkaW5hdGVkTGF5ZXJJRCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
OmlkKCkgY29uc3QKICAgICByZXR1cm4gbV9pZDsKIH0KIAordm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OnNldEZpeGVkVG9WaWV3cG9ydChib29sIGlzRml4ZWQpCit7CisgICAgaWYgKG1f
Zml4ZWRUb1ZpZXdwb3J0ID09IGlzRml4ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZml4
ZWRUb1ZpZXdwb3J0ID0gaXNGaXhlZDsKKyAgICBkaWRDaGFuZ2VMYXllclN0YXRlKCk7Cit9CisK
IHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGUoY29u
c3QgRmxvYXRSZWN0JiByZWN0KQogewogICAgIGlmICghbV9jb29yZGluYXRvci0+aXNGbHVzaGlu
Z0xheWVyQ2hhbmdlcygpKSB7CkBAIC00NzgsOCArNDg3LDYgQEAgdm9pZCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmIHJlY3Qp
CiAgICAgaWYgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogcmVwbGljYSA9IHRvQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyKHJlcGxpY2FMYXllcigpKSkKICAgICAgICAgcmVwbGljYS0+Zmx1c2hD
b21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogCi0gICAgbV9jb29yZGluYXRvci0+
c3luY0ZpeGVkTGF5ZXJzKCk7Ci0KICAgICBmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5
ZXJPbmx5KCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNoaWxkcmVuKCkuc2l6ZSgp
OyArK2kpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyLmgKaW5kZXggYTU1MWQzNTExYWRhNjQ0ZWJmNzMyYmVmNjJlODZhZDlkODdmMWEyMC4u
YTNmMGEwOGZkOTgyMTVkMTAxNmQyNzg1OWY1Mjc1ODMzNDAyMGZhMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApAQCAtNzIsNyAr
NzIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldExheWVyQW5pbWF0aW9ucyhDb29y
ZGluYXRlZExheWVySUQsIGNvbnN0IEdyYXBoaWNzTGF5ZXJBbmltYXRpb25zJikgPSAwOwogCiAg
ICAgdmlydHVhbCB2b2lkIGRldGFjaExheWVyKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciopID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgc3luY0ZpeGVkTGF5ZXJzKCkgPSAwOwogICAgIHZpcnR1YWwg
UGFzc093blB0cjxHcmFwaGljc0NvbnRleHQ+IGJlZ2luQ29udGVudFVwZGF0ZShjb25zdCBJbnRT
aXplJiwgQ29vcmRpbmF0ZWRTdXJmYWNlOjpGbGFncywgdWludDMyX3QmIGF0bGFzSUQsIEludFBv
aW50JikgPSAwOwogfTsKIApAQCAtMTM3LDcgKzEzNiw3IEBAIHB1YmxpYzoKIAogICAgIENvb3Jk
aW5hdGVkTGF5ZXJJRCBpZCgpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRGaXhlZFRvVmlld3BvcnQo
Ym9vbCBpc0ZpeGVkKSB7IG1fZml4ZWRUb1ZpZXdwb3J0ID0gaXNGaXhlZDsgfQorICAgIHZvaWQg
c2V0Rml4ZWRUb1ZpZXdwb3J0KGJvb2wgaXNGaXhlZCk7CiAKICAgICBJbnRSZWN0IGNvdmVyUmVj
dCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkJhY2tpbmdTdG9yZSA/IG1fbWFpbkJhY2tpbmdTdG9y
ZS0+bWFwVG9Db250ZW50cyhtX21haW5CYWNraW5nU3RvcmUtPmNvdmVyUmVjdCgpKSA6IEludFJl
Y3QoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0LmNwcAppbmRleCA5YmFiMTA4YTg0NDc1YjZlNjgzODgzMGM4NjliNDJi
MGQ2ODEzZDE0Li5jM2I2M2JlZmM3NWIyNGExZTdjZWJlNDM0MjA2Y2RlYTc0Y2RmZTI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdC5jcHAKQEAgLTQ2OSw1NCArNDY5LDYgQEAgdm9pZCBDb29yZGluYXRlZExheWVyVHJlZUhv
c3Q6OmRldGFjaExheWVyKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAgc2No
ZWR1bGVMYXllckZsdXNoKCk7CiB9CiAKLXN0YXRpYyB2b2lkIHVwZGF0ZU9mZnNldEZyb21WaWV3
cG9ydEZvclNlbGYoUmVuZGVyTGF5ZXIqIHJlbmRlckxheWVyKQotewotICAgIC8vIFRoZXNlIGNv
bmRpdGlvbnMgbXVzdCBtYXRjaCB0aGUgY29uZGl0aW9ucyBpbiBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQb3NpdGlvbi4KLSAgICBSZW5kZXJMYXllckJhY2tp
bmcqIGJhY2tpbmcgPSByZW5kZXJMYXllci0+YmFja2luZygpOwotICAgIGlmICghYmFja2luZykK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gcmVuZGVyTGF5ZXIt
PnJlbmRlcmVyKCktPnN0eWxlKCk7Ci0gICAgaWYgKCFzdHlsZSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgaWYgKCFyZW5kZXJMYXllci0+cmVuZGVyZXIoKS0+aXNPdXRPZkZsb3dQb3NpdGlvbmVk
KCkgfHwgcmVuZGVyTGF5ZXItPnJlbmRlcmVyKCktPnN0eWxlKCktPnBvc2l0aW9uKCkgIT0gRml4
ZWRQb3NpdGlvbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFyZW5kZXJMYXllci0+cmVu
ZGVyZXIoKS0+Y29udGFpbmVyKCktPmlzUmVuZGVyVmlldygpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBpZiAoIXJlbmRlckxheWVyLT5pc1N0YWNraW5nQ29udGFpbmVyKCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciA9IHRv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKGJhY2tpbmctPmdyYXBoaWNzTGF5ZXIoKSk7Ci0gICAg
Z3JhcGhpY3NMYXllci0+c2V0Rml4ZWRUb1ZpZXdwb3J0KHRydWUpOwotfQotCi1zdGF0aWMgdm9p
ZCB1cGRhdGVPZmZzZXRGcm9tVmlld3BvcnRGb3JMYXllcihSZW5kZXJMYXllciogcmVuZGVyTGF5
ZXIpCi17Ci0gICAgdXBkYXRlT2Zmc2V0RnJvbVZpZXdwb3J0Rm9yU2VsZihyZW5kZXJMYXllcik7
Ci0KLSAgICBpZiAocmVuZGVyTGF5ZXItPmZpcnN0Q2hpbGQoKSkKLSAgICAgICAgdXBkYXRlT2Zm
c2V0RnJvbVZpZXdwb3J0Rm9yTGF5ZXIocmVuZGVyTGF5ZXItPmZpcnN0Q2hpbGQoKSk7Ci0gICAg
aWYgKHJlbmRlckxheWVyLT5uZXh0U2libGluZygpKQotICAgICAgICB1cGRhdGVPZmZzZXRGcm9t
Vmlld3BvcnRGb3JMYXllcihyZW5kZXJMYXllci0+bmV4dFNpYmxpbmcoKSk7Ci19Ci0KLXZvaWQg
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzeW5jRml4ZWRMYXllcnMoKQotewotICAgIGlmICgh
bV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpIHx8ICFtX3dlYlBhZ2UtPmNvcmVQYWdl
KCktPnNldHRpbmdzKCktPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5h
YmxlZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIW1fd2ViUGFnZS0+bWFpbkZyYW1l
KCktPnZpZXcoKS0+aGFzVmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMoKSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgUmVuZGVyTGF5ZXIqIHJvb3RSZW5kZXJMYXllciA9IG1fd2ViUGFnZS0+bWFp
bkZyYW1lKCktPmNvbnRlbnRSZW5kZXJlcigpLT5jb21wb3NpdG9yKCktPnJvb3RSZW5kZXJMYXll
cigpOwotICAgIEFTU0VSVChyb290UmVuZGVyTGF5ZXIpOwotICAgIGlmIChyb290UmVuZGVyTGF5
ZXItPmZpcnN0Q2hpbGQoKSkKLSAgICAgICAgdXBkYXRlT2Zmc2V0RnJvbVZpZXdwb3J0Rm9yTGF5
ZXIocm9vdFJlbmRlckxheWVyLT5maXJzdENoaWxkKCkpOwotfQotCiB2b2lkIENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdDo6bG9ja0FuaW1hdGlvbnMoKQogewogICAgIG1fYW5pbWF0aW9uc0xvY2tl
ZCA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdC5oCmluZGV4IDcyOTdlZWQ4MWUwNWEyZWUwZjAwNWVlYTNkZjgxODg1ZmVj
M2YyYjUuLjU0NGVhN2EwOWI3OThkYzJjZDRjNzE0YWRjODE2Njc2ODJlYmI4OWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5o
CkBAIC0xMDUsNyArMTA1LDYgQEAgcHVibGljOgogI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIHNl
dExheWVyUmVwYWludENvdW50KFdlYkNvcmU6OkNvb3JkaW5hdGVkTGF5ZXJJRCwgaW50KSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoTGF5ZXIoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyKik7Ci0gICAgdmlydHVhbCB2b2lkIHN5bmNGaXhlZExheWVycygpOwogCiAg
ICAgdmlydHVhbCBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dD4gYmVnaW5Db250
ZW50VXBkYXRlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpDb29yZGluYXRlZFN1
cmZhY2U6OkZsYWdzLCB1aW50MzJfdCYgYXRsYXNJRCwgV2ViQ29yZTo6SW50UG9pbnQmKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVh
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJ
bXBsLmNwcAppbmRleCAyOWVhMDIxMjg0MTBhYmQ4NjhjN2ZjOWQ3OTcwZTIxOThhMDQ0YTZjLi40
YWYxNTNkZDYwYmJmYzMzMTJhMjkyY2FlMGQzYmI5NjA0OWNhMDM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmNwcApAQCAt
NzMsNiArNzMsNyBAQCBEcmF3aW5nQXJlYUltcGw6OkRyYXdpbmdBcmVhSW1wbChXZWJQYWdlKiB3
ZWJQYWdlLCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZQogCiAjaWYgVVNFKENPT1JESU5B
VEVEX0dSQVBISUNTKQogICAgIG1fYWx3YXlzVXNlQ29tcG9zaXRpbmcgPSB0cnVlOworICAgIHdl
YlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCktPnNldFNjcm9sbGluZ0Nvb3JkaW5hdG9yRW5h
YmxlZCh0cnVlKTsKICNlbmRpZgogCiAgICAgaWYgKG1fYWx3YXlzVXNlQ29tcG9zaXRpbmcpCmRp
ZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggNTc4OGUzZTUyYzQxMTczOTZh
YTBiN2UzMTQxMDEzMTBiMmU1ODE1OS4uZWM2ZjQzODk4MjZmNzY2MDgzZmY5OWViZGZhMzZmMWE4
Y2IyOTBjMiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDEzLTAyLTA3ICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlv
Lm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW0Nvb3JkaW5hdGVkR3JhcGhpY3Nd
IFVzZSBTY3JvbGxpbmdDb29yZGluYXRvciB0byB0cmFjayBmaXhlZCBsYXllcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODk5MAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyB0ZXN0IHRo
YXQgYWxsb3cgdXMgdG8gcmVtb3ZlIHRoZSBmaXhlZCBwb3NpdGlvbmluZyBvZiBhIGxheWVyIGJ1
dCBzdGlsbCBrZWVwaW5nCisgICAgICAgIGl0IGNvbXBvc2l0aW5nLiBDb29yZGluYXRlZCBHcmFw
aGljcyBoYWQgYSBidWcgd2hlcmUgdGhlIENvb3JkaW5hdGVkU2NlbmVHcmFwaCB3b3VsZCBzdGls
bAorICAgICAgICBjb3VudCB0aGlzIGxheWVyIGFzIGZpeGVkIHBvc2l0aW9uLgorCisgICAgICAg
ICogTWFudWFsVGVzdHMvcmVtb3ZlLWZpeGVkLXBvc2l0aW9uLWJ1dC1rZWVwLWNvbXBvc2l0aW5n
Lmh0bWw6IEFkZGVkLgorCiAyMDEzLTAyLTA3ICBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxnbnNA
Z25vbWUub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIxNDExOTYg
Zm9yIDMyIGJpdHMgYXV0b3Rvb2xzLgpkaWZmIC0tZ2l0IGEvTWFudWFsVGVzdHMvcmVtb3ZlLWZp
eGVkLXBvc2l0aW9uLWJ1dC1rZWVwLWNvbXBvc2l0aW5nLmh0bWwgYi9NYW51YWxUZXN0cy9yZW1v
dmUtZml4ZWQtcG9zaXRpb24tYnV0LWtlZXAtY29tcG9zaXRpbmcuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
MmRiYzQ0MDYzZWI4YzA5ZmE5YjQ1OGE5YTk0MmIxYWQxZDkwY2RhCi0tLSAvZGV2L251bGwKKysr
IGIvTWFudWFsVGVzdHMvcmVtb3ZlLWZpeGVkLXBvc2l0aW9uLWJ1dC1rZWVwLWNvbXBvc2l0aW5n
Lmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPGh0bWw+CisKKyAgPGJvZHkgc3R5bGU9ImhlaWdodDog
MTAwMDBweCI+CisKKyAgPGJ1dHRvbiBpZD0idG9nZ2xlIj5Ub2dnbGU8L2J1dHRvbj4KKworICA8
cD4KKyAgVGhlIGJsYWNrIHJlY3RhbmdsZSBzdGFydHMgZml4ZWQsIGFuZCBkdWUgdG8gYSAtd2Vi
a2l0LXRyYW5zZm9ybSB3aWxsIGJlIGNvbXBvc2l0ZWQuIFRvZ2dsZSB0byB1bmZpeCBpdCBhbmQg
c2Nyb2xsOiB0aGUgYmxhY2sgcmVjdGFuZ2xlIHNob3VsZCBzY3JvbGwgd2l0aCB0aGUgcGFnZSBh
bmQgbm90IG92ZXJsYXAgdGhlIG51bWJlcnMuCisgIDwvcD4KKworICA8ZGl2IGlkPSJyZWN0IiBz
dHlsZT0iYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBw
eDsgcG9zaXRpb246IGZpeGVkOyAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwwLDAp
Ij4KKyAgPC9kaXY+CisKKzE8YnI+CisyPGJyPgorMzxicj4KKzQ8YnI+Cis1PGJyPgorNjxicj4K
Kzc8YnI+Cis4PGJyPgorOTxicj4KKzEwPGJyPgorMTE8YnI+CisxMjxicj4KKzEzPGJyPgorMTQ8
YnI+CisxNTxicj4KKzE2PGJyPgorMTc8YnI+CisxODxicj4KKzE5PGJyPgorMjA8YnI+CisKKzxz
Y3JpcHQ+Cit2YXIgcmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWN0Iik7Cit2YXIg
dG9nZ2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZ2dsZSIpOworCit0b2dnbGUuYWRk
RXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoZXYpIHsKKyAgICBpZiAocmVjdC5zdHls
ZS5wb3NpdGlvbiA9PT0gImZpeGVkIikgeworICAgICAgICByZWN0LnN0eWxlLnBvc2l0aW9uID0g
IiI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmVjdC5zdHlsZS5wb3NpdGlvbiA9ICJmaXhlZCI7
CisgICAgfQorfSk7Cis8L3NjcmlwdD4K
</data>
<flag name="review"
          id="206771"
          type_id="1"
          status="+"
          setter="noam"
    />
          </attachment>
      

    </bug>

</bugzilla>