<?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>98168</bug_id>
          
          <creation_ts>2012-10-02 09:27:14 -0700</creation_ts>
          <short_desc>Move side-effects on hover/active state out of hit-testing</short_desc>
          <delta_ts>2013-04-11 08:27:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>420+</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>114446</dependson>
          <blocked>18930</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Allan Sandfeld Jensen">allan.jensen</reporter>
          <assigned_to name="Mike West">mkwst</assigned_to>
          <cc>bdakin</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>hyatt</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>mkwst</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>rafael.lobo</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>732714</commentid>
    <comment_count>0</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-02 09:27:14 -0700</bug_when>
    <thetext>In an effort to make hit-testing a mere algorithm and not cause side-effect we should move the call to Document::updateHoverActiveState() out of RenderView()::hitTest. Since Document::updateHoverActiveState() only has an effect when the HitTestRequest is not readonly, only a few places activating hit-testing will need to be modified.

The bug will be followed up by one refactoring updateHoverActiveState to no longer take a HitTestRequest as an argument, and once  bug #96908 is also closed, it will be possible to remove all information about which type of event triggered the hit-test from HitTestRequest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>732718</commentid>
    <comment_count>1</comment_count>
      <attachid>166698</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-02 09:31:29 -0700</bug_when>
    <thetext>Created attachment 166698
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738846</commentid>
    <comment_count>2</comment_count>
      <attachid>167981</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-10 04:54:43 -0700</bug_when>
    <thetext>Created attachment 167981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743292</commentid>
    <comment_count>3</comment_count>
      <attachid>167981</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-10-16 10:48:07 -0700</bug_when>
    <thetext>Comment on attachment 167981
Patch

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

Beth is probably a better reviewer than I am for hit-testing.

&gt; Source/WebCore/ChangeLog:9
&gt; +        a hit-test. This will help enable further clean-up and optimizations.

There is one big issue with that: if the caller doesn&apos;t call updateHoverActiveState then you have a bug, integrating it with hit-testing guaranteed that it was called. From this perspective, I don&apos;t see the code as written as an improvement as it is way more error-prone than the old one.

&gt; Source/WebCore/ChangeLog:23
&gt; +        (WebCore::RenderView::hitTest):

Could you please provide *some* explanations.

&gt; Source/WebCore/dom/Document.cpp:5817
&gt;      if (request.touchRelease()) {
&gt; -        if (oldHoverNode) {
&gt; -            for (RenderObject* curr = oldHoverNode-&gt;renderer(); curr; curr = curr-&gt;hoverAncestor()) {
&gt; -                if (curr-&gt;node() &amp;&amp; !curr-&gt;isText())
&gt; -                    curr-&gt;node()-&gt;setHovered(false);
&gt; -            }
&gt; -            setHoverNode(0);
&gt; -        }
&gt; -        // A touch release can not set new hover or active target.
&gt; -        return;
&gt; +        // A touch release does not set a new hover target.
&gt; +        innerNode = 0;
&gt;      }

This should have been explained, I was going to comment that this was a change in behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745159</commentid>
    <comment_count>4</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-18 04:53:20 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 167981 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=167981&amp;action=review
&gt; 
&gt; Beth is probably a better reviewer than I am for hit-testing.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        a hit-test. This will help enable further clean-up and optimizations.
&gt; 
&gt; There is one big issue with that: if the caller doesn&apos;t call updateHoverActiveState then you have a bug, integrating it with hit-testing guaranteed that it was called. From this perspective, I don&apos;t see the code as written as an improvement as it is way more error-prone than the old one.
&gt; 
Well, even in the old case you still needed to explicitly call Document::updateStyleIfNeeded()  to get the style change. Now updateStyleIfNeeded() is called from updateHoverActiveState(), so there is still only one function you need to call after a non-readonly hitTest. Secondly most calls to hitTest are not readonly.


&gt; &gt; Source/WebCore/ChangeLog:23
&gt; &gt; +        (WebCore::RenderView::hitTest):
&gt; 
&gt; Could you please provide *some* explanations.
&gt; 
&gt; &gt; Source/WebCore/dom/Document.cpp:5817
&gt; &gt;      if (request.touchRelease()) {
&gt; &gt; -        if (oldHoverNode) {
&gt; &gt; -            for (RenderObject* curr = oldHoverNode-&gt;renderer(); curr; curr = curr-&gt;hoverAncestor()) {
&gt; &gt; -                if (curr-&gt;node() &amp;&amp; !curr-&gt;isText())
&gt; &gt; -                    curr-&gt;node()-&gt;setHovered(false);
&gt; &gt; -            }
&gt; &gt; -            setHoverNode(0);
&gt; &gt; -        }
&gt; &gt; -        // A touch release can not set new hover or active target.
&gt; &gt; -        return;
&gt; &gt; +        // A touch release does not set a new hover target.
&gt; &gt; +        innerNode = 0;
&gt; &gt;      }
&gt; 
&gt; This should have been explained, I was going to comment that this was a change in behavior.

Right. The old code was mostly unnecessary, since the rest of the function does what is needed if innerNode is 0, but yes that should be explained.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745160</commentid>
    <comment_count>5</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-18 04:53:57 -0700</bug_when>
    <thetext>(In reply to comment #4)
Secondly most calls to hitTest are not readonly.

Sorry. Most calls are readonly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749503</commentid>
    <comment_count>6</comment_count>
      <attachid>167981</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-24 03:26:14 -0700</bug_when>
    <thetext>Comment on attachment 167981
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        This patch changes hit-testing so that it no longer has any side-effects and is really purely
&gt; +        a hit-test. This will help enable further clean-up and optimizations.
&gt; +
&gt; +        No change in functionality. No new tests.

I think the changelog should explain the long term goal with this change and why it is important</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846352</commentid>
    <comment_count>7</comment_count>
      <attachid>191208</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-03-04 05:22:06 -0800</bug_when>
    <thetext>Created attachment 191208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846356</commentid>
    <comment_count>8</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-03-04 05:31:40 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=191208) [details]
&gt; Patch

I talked with carewolf briefly this morning, and grabbed his patch in this hopes of getting this moving again. The attached patch rebases his last patch on top of trunk, with slight adjustments to both the explanation in the ChangeLog and the logic for hover/active in documents between the hit Element and the current document.

I&apos;ve also moved the bit jchaffraix noted in https://bugs.webkit.org/show_bug.cgi?id=98168#c3 out to a separate bug, as it was tangential to the focus of this patch (bug 111303).

My interest in getting this going is to make implementation of mouseenter/mouseleave events simpler and more performant (bug 18930). It&apos;s one of those things that jQuery is currently working around with about ~20 lines of code that they&apos;d love to drop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846371</commentid>
    <comment_count>9</comment_count>
      <attachid>191208</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-03-04 05:49:38 -0800</bug_when>
    <thetext>Comment on attachment 191208
Patch

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

Wrong assert. Note you need another reviewer once you have added my name to the Changelog.

&gt; Source/WebCore/ChangeLog:6
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).

When continuing other peoples patches you still need to mention them in the Changelog. For instance:
Based on patch by Allan Sandfeld Jensen.

&gt; Source/WebCore/ChangeLog:25
&gt; +        Document::updateHoverActiveState is currently called during hit testing
&gt; +        to update the hover and active states of elements effected by mouse
&gt; +        movements (or their keyboard equivalents). This conflates the hit test
&gt; +        algorithm itself with side-effects associated with specific use-cases.
&gt; +
&gt; +        This conflation makes it very difficult to reuse the hover/active logic
&gt; +        for things other than hit testing. &apos;mouseenter&apos;/&apos;mouseleave&apos; events[1]
&gt; +        are one example of a feature that would be simple to implement on top of
&gt; +        this existing logic if we split it out from the hit testing path, and
&gt; +        instead call it explicitly when necessary. An explicit split between
&gt; +        hit testing and its side-effects will also enable us to simplify
&gt; +
&gt; +        This patch drops the call to Document::updateHoverActiveState from
&gt; +        RenderView::hitTest, and adjusts the three call-sites in EventHandler
&gt; +        to explicitly call out to it rather than Document::updateStyleIfNeeded.
&gt; +        The latter call is still necessary but has been folded into
&gt; +        updateHoverActiveState, as the former is never called without calling
&gt; +        the latter.

Great!

&gt; Source/WebCore/dom/Document.cpp:5847
&gt; +    ASSERT(request.readOnly());

ASSERT(!request.readOnly());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846373</commentid>
    <comment_count>10</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-03-04 05:51:54 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; I&apos;ve also moved the bit jchaffraix noted in https://bugs.webkit.org/show_bug.cgi?id=98168#c3 out to a separate bug, as it was tangential to the focus of this patch (bug 111303).
&gt; 
Note you need to call updateStyleIfNeeded() before that return then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846380</commentid>
    <comment_count>11</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-03-04 05:57:09 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; Source/WebCore/ChangeLog:6
&gt; &gt; +
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; 
&gt; When continuing other peoples patches you still need to mention them in the Changelog. For instance:
&gt; Based on patch by Allan Sandfeld Jensen.

Ugh. Apologies. That&apos;s simple idiocy on my part.

&gt; &gt; Source/WebCore/dom/Document.cpp:5847
&gt; &gt; +    ASSERT(request.readOnly());
&gt; 
&gt; ASSERT(!request.readOnly());

That too. *facepalm*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846395</commentid>
    <comment_count>12</comment_count>
      <attachid>191217</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-03-04 06:10:20 -0800</bug_when>
    <thetext>Created attachment 191217
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850248</commentid>
    <comment_count>13</comment_count>
      <attachid>191217</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-03-07 10:33:55 -0800</bug_when>
    <thetext>Comment on attachment 191217
Patch

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

&gt; Source/WebCore/dom/Document.cpp:5899
&gt; +        updateStyleIfNeeded();

This really looks like it should be some RAII pattern or else the next person adding a return will skip updating the style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850260</commentid>
    <comment_count>14</comment_count>
      <attachid>191217</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-03-07 10:37:27 -0800</bug_when>
    <thetext>Comment on attachment 191217
Patch

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

Thanks!

&gt;&gt; Source/WebCore/dom/Document.cpp:5899
&gt;&gt; +        updateStyleIfNeeded();
&gt; 
&gt; This really looks like it should be some RAII pattern or else the next person adding a return will skip updating the style.

This piece has actually been optimized away in another patch. When I rebase this for landing, it&apos;ll be gone. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850291</commentid>
    <comment_count>15</comment_count>
      <attachid>192048</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-03-07 11:04:45 -0800</bug_when>
    <thetext>Created attachment 192048
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850439</commentid>
    <comment_count>16</comment_count>
      <attachid>192048</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-07 13:26:26 -0800</bug_when>
    <thetext>Comment on attachment 192048
Patch for landing

Clearing flags on attachment: 192048

Committed r145126: &lt;http://trac.webkit.org/changeset/145126&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850440</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-07 13:26:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851010</commentid>
    <comment_count>18</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-03-08 02:19:53 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 191217 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=191217&amp;action=review
&gt; 
&gt; Thanks!
&gt; 
&gt; &gt;&gt; Source/WebCore/dom/Document.cpp:5899
&gt; &gt;&gt; +        updateStyleIfNeeded();
&gt; &gt; 
&gt; &gt; This really looks like it should be some RAII pattern or else the next person adding a return will skip updating the style.
&gt; 
&gt; This piece has actually been optimized away in another patch. When I rebase this for landing, it&apos;ll be gone. :)

He was not asking for updateStyleIfNeeded() to be removed, but to make it more reliable, and less likely to be missed in future returns. I am not sure we should worry about future returns, even this one should be removed soon, but removing updateStyleIfNeeded() just means you have bug now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852133</commentid>
    <comment_count>19</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-03-11 02:32:30 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #14)
&gt; &gt; (From update of attachment 191217 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=191217&amp;action=review
&gt; &gt; 
&gt; &gt; Thanks!
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebCore/dom/Document.cpp:5899
&gt; &gt; &gt;&gt; +        updateStyleIfNeeded();
&gt; &gt; &gt; 
&gt; &gt; &gt; This really looks like it should be some RAII pattern or else the next person adding a return will skip updating the style.
&gt; &gt; 
&gt; &gt; This piece has actually been optimized away in another patch. When I rebase this for landing, it&apos;ll be gone. :)
&gt; 
&gt; He was not asking for updateStyleIfNeeded() to be removed, but to make it more reliable, and less likely to be missed in future returns. I am not sure we should worry about future returns, even this one should be removed soon, but removing updateStyleIfNeeded() just means you have bug now.

I talked about this briefly with careworlf on IRC, but for clarity here: a patch for bug 111303 landed before this patch. The whole return block was removed, so it was no longer necessary to updateStyle here.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166698</attachid>
            <date>2012-10-02 09:31:29 -0700</date>
            <delta_ts>2012-10-10 04:54:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98168-20121002183027.patch</filename>
            <type>text/plain</type>
            <size>8598</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzM3ZDI1MjMxYjIyY2Q4
YWU1MTNlNTU3ODU3ODk2M2EzNDIxN2JhNi4uMjQ2NzhmNWVlZWQwODMwNTMxMzgwMDg1MGQzZGM2
MTMwY2I0NTgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDEyLTEwLTAyICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgogCisgICAgICAgIE1v
dmUgc2lkZS1lZmZlY3RzIG9uIGhvdmVyL2FjdGl2ZSBzdGF0ZSBvdXQgb2YgaGl0LXRlc3Rpbmcu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODE2OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggY2hhbmdlcyBoaXQtdGVzdGluZyBzbyB0aGF0IGl0IG5vIGxvbmdlciBoYXMgYW55IHNpZGUt
ZWZmZWN0cyBhbmQgaXMgcmVhbGx5IHB1cmVseQorICAgICAgICBhIGhpdC10ZXN0LiBUaGlzIHdp
bGwgaGVscCBlbmFibGUgZnVydGhlciBjbGVhbi11cCBhbmQgb3B0aW1pemF0aW9ucy4KKworICAg
ICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4gTm8gbmV3IHRlc3RzLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpwcmVwYXJl
TW91c2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3Rp
dmVTdGF0ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1bWVudCk6
CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpoaXRUZXN0UmVzdWx0QXRQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OnNlbmRDb250ZXh0TWVudUV2ZW50Rm9yS2V5KToKKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6aG92ZXJUaW1lckZpcmVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpoaXRUZXN0KToKKwor
MjAxMi0xMC0wMiAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNv
bT4KKwogICAgICAgICBEaXNhbWJpZ3VhdGUgcmVzdWx0RnJhbWVQb2ludCBhbmQgb3JpZ2luYWwg
aGl0LXRlc3QgcG9pbnQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk4MTM5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDVlZjY0MTEzOTY0NTM5
NzgwNmUwZWE3MGQyODEyMGQwOGQxMWZlYjIuLmVhOTkwNDBhYjYwMjJhYmUwZjg4MzRiNmFkNTFi
MmJmOTM3ZTQ2MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzA2OSw3ICszMDY5LDcg
QEAgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyBEb2N1bWVudDo6cHJlcGFyZU1vdXNlRXZl
bnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHIKICAgICByZW5kZXJWaWV3KCktPmhpdFRlc3QocmVx
dWVzdCwgcmVzdWx0KTsKIAogICAgIGlmICghcmVxdWVzdC5yZWFkT25seSgpKQotICAgICAgICB1
cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisgICAgICAgIHVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUocmVx
dWVzdCwgcmVzdWx0LmlubmVyTm9kZSgpKTsKIAogICAgIHJldHVybiBNb3VzZUV2ZW50V2l0aEhp
dFRlc3RSZXN1bHRzKGV2ZW50LCByZXN1bHQpOwogfQpAQCAtNTc2MCwxNCArNTc2MCwxMCBAQCBz
dGF0aWMgUmVuZGVyT2JqZWN0KiBuZWFyZXN0Q29tbW9uSG92ZXJBbmNlc3RvcihSZW5kZXJPYmpl
Y3QqIG9iajEsIFJlbmRlck9iamVjdAogICAgIHJldHVybiAwOwogfQogCi12b2lkIERvY3VtZW50
Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBI
aXRUZXN0UmVzdWx0JiByZXN1bHQpCit2b2lkIERvY3VtZW50Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0
YXRlKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBOb2RlKiBpbm5lck5vZGUpCiB7Ci0g
ICAgLy8gV2UgZG9uJ3QgdXBkYXRlIDpob3Zlci86YWN0aXZlIHN0YXRlIHdoZW4gdGhlIHJlc3Vs
dCBpcyBtYXJrZWQgYXMgcmVhZE9ubHkuCi0gICAgaWYgKHJlcXVlc3QucmVhZE9ubHkoKSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgTm9kZSogaW5uZXJOb2RlSW5Eb2N1bWVudCA9IHJlc3VsdC5p
bm5lck5vZGUoKTsKLSAgICBBU1NFUlQoIWlubmVyTm9kZUluRG9jdW1lbnQgfHwgaW5uZXJOb2Rl
SW5Eb2N1bWVudC0+ZG9jdW1lbnQoKSA9PSB0aGlzKTsKKyAgICBBU1NFUlQoIXJlcXVlc3QucmVh
ZE9ubHkoKSk7CisgICAgQVNTRVJUKCFpbm5lck5vZGUgfHwgaW5uZXJOb2RlLT5kb2N1bWVudCgp
ID09IHRoaXMpOwogCiAgICAgTm9kZSogb2xkQWN0aXZlTm9kZSA9IGFjdGl2ZU5vZGUoKTsKICAg
ICBpZiAob2xkQWN0aXZlTm9kZSAmJiAhcmVxdWVzdC5hY3RpdmUoKSkgewpAQCAtNTc4MCw3ICs1
Nzc2LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRU
ZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3UKICAgICAgICAgfQogICAgICAgICBzZXRB
Y3RpdmVOb2RlKDApOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIE5vZGUqIG5ld0FjdGl2ZU5vZGUg
PSBpbm5lck5vZGVJbkRvY3VtZW50OworICAgICAgICBOb2RlKiBuZXdBY3RpdmVOb2RlID0gaW5u
ZXJOb2RlOwogICAgICAgICBpZiAoIW9sZEFjdGl2ZU5vZGUgJiYgbmV3QWN0aXZlTm9kZSAmJiBy
ZXF1ZXN0LmFjdGl2ZSgpICYmICFyZXF1ZXN0LnRvdWNoTW92ZSgpKSB7CiAgICAgICAgICAgICAv
LyBXZSBhcmUgc2V0dGluZyB0aGUgOmFjdGl2ZSBjaGFpbiBhbmQgZnJlZXppbmcgaXQuIElmIGZ1
dHVyZSBtb3ZlcyBoYXBwZW4sIHRoZXkKICAgICAgICAgICAgIC8vIHdpbGwgbmVlZCB0byByZWZl
cmVuY2UgdGhpcyBjaGFpbi4KQEAgLTU4MDEsMjIgKzU3OTcsMTUgQEAgdm9pZCBEb2N1bWVudDo6
dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0
VGVzdFJlc3UKICAgICBib29sIG11c3RCZUluQWN0aXZlQ2hhaW4gPSByZXF1ZXN0LmFjdGl2ZSgp
ICYmIHJlcXVlc3QubW92ZSgpOwogCiAgICAgUmVmUHRyPE5vZGU+IG9sZEhvdmVyTm9kZSA9IGhv
dmVyTm9kZSgpOwotICAgIC8vIENsZWFyIHRoZSA6aG92ZXIgY2hhaW4gd2hlbiB0aGUgdG91Y2gg
Z2VzdHVyZSBpcyBvdmVyLgorCiAgICAgaWYgKHJlcXVlc3QudG91Y2hSZWxlYXNlKCkpIHsKLSAg
ICAgICAgaWYgKG9sZEhvdmVyTm9kZSkgewotICAgICAgICAgICAgZm9yIChSZW5kZXJPYmplY3Qq
IGN1cnIgPSBvbGRIb3Zlck5vZGUtPnJlbmRlcmVyKCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5ob3Zl
ckFuY2VzdG9yKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoY3Vyci0+bm9kZSgpICYmICFjdXJy
LT5pc1RleHQoKSkKLSAgICAgICAgICAgICAgICAgICAgY3Vyci0+bm9kZSgpLT5zZXRIb3ZlcmVk
KGZhbHNlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldEhvdmVyTm9kZSgwKTsKLSAg
ICAgICAgfQotICAgICAgICAvLyBBIHRvdWNoIHJlbGVhc2UgY2FuIG5vdCBzZXQgbmV3IGhvdmVy
IG9yIGFjdGl2ZSB0YXJnZXQuCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgLy8gQSB0b3VjaCBy
ZWxlYXNlIGRvZXMgbm90IHNldCBhIG5ldyBob3ZlciB0YXJnZXQuCisgICAgICAgIGlubmVyTm9k
ZSA9IDA7CiAgICAgfQogCiAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSBob3ZlcmVkIG5vZGUg
aGFzIGNoYW5nZWQuCiAgICAgLy8gSWYgaXQgaGFzbid0LCB3ZSBkbyBub3QgbmVlZCB0byBkbyBh
bnl0aGluZy4KLSAgICBOb2RlKiBuZXdIb3Zlck5vZGUgPSBpbm5lck5vZGVJbkRvY3VtZW50Owor
ICAgIE5vZGUqIG5ld0hvdmVyTm9kZSA9IGlubmVyTm9kZTsKICAgICB3aGlsZSAobmV3SG92ZXJO
b2RlICYmICFuZXdIb3Zlck5vZGUtPnJlbmRlcmVyKCkpCiAgICAgICAgIG5ld0hvdmVyTm9kZSA9
IG5ld0hvdmVyTm9kZS0+cGFyZW50T3JIb3N0Tm9kZSgpOwogCkBAIC01ODU3LDYgKzU4NDYsOCBA
QCB2b2lkIERvY3VtZW50Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKGNvbnN0IEhpdFRlc3RSZXF1
ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdQogICAgICAgICAgICAgbm9kZXNUb0FkZFRvQ2hhaW5b
aV0tPnNldEFjdGl2ZSh0cnVlKTsKICAgICAgICAgbm9kZXNUb0FkZFRvQ2hhaW5baV0tPnNldEhv
dmVyZWQodHJ1ZSk7CiAgICAgfQorCisgICAgdXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogfQogCiB2
b2lkIERvY3VtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlP
YmplY3RJbmZvKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA5M2I5N2YyN2VkMzVlM2U1
YTE4NjZmM2ZhNGRhMDE3Y2FmMGNmZWM1Li5lYTBjZjNmNjhhZjEyZjI3ZmY2MmRiMDQzNDFjY2Y3
NzdlMDZkMGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNzAzLDcgKzcwMyw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGhvdmVyZWROb2RlRGV0YWNoZWQoTm9kZSopOwogICAgIHZvaWQgYWN0aXZl
Q2hhaW5Ob2RlRGV0YWNoZWQoTm9kZSopOwogCi0gICAgdm9pZCB1cGRhdGVIb3ZlckFjdGl2ZVN0
YXRlKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYpOworICAgIHZvaWQgdXBk
YXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0UmVxdWVzdCYsIE5vZGUqIGlubmVyTm9k
ZSk7CiAKICAgICAvLyBVcGRhdGVzIGZvciA6dGFyZ2V0IChDU1MzIHNlbGVjdG9yKS4KICAgICB2
b2lkIHNldENTU1RhcmdldChFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKaW5kZXggMjZiNTQ3NTUzZDhmNDZlY2UyM2FlMGI5NDBkNzY4MTIzN2ZiYWFjMS4uZDY0MjY2
OGNjOGZiNzA1MDNkYmYzNjA3ZjE3MTM1OWU0Yzg0ZmZkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcApAQCAtMTA3Niw3ICsxMDc2LDEwIEBAIEhpdFRlc3RSZXN1bHQgRXZlbnRI
YW5kbGVyOjpoaXRUZXN0UmVzdWx0QXRQb2ludChjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQsIGJv
b2wKICAgICAgICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVxdWVzdDo6SWdub3JlQ2xpcHBpbmc7CiAg
ICAgaWYgKGFsbG93U2hhZG93Q29udGVudCkKICAgICAgICAgaGl0VHlwZSB8PSBIaXRUZXN0UmVx
dWVzdDo6QWxsb3dTaGFkb3dDb250ZW50OwotICAgIG1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigp
LT5oaXRUZXN0KEhpdFRlc3RSZXF1ZXN0KGhpdFR5cGUpLCByZXN1bHQpOworICAgIEhpdFRlc3RS
ZXF1ZXN0IHJlcXVlc3QoaGl0VHlwZSk7CisgICAgbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCkt
PmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKKyAgICBpZiAoIXJlcXVlc3QucmVhZE9ubHkoKSkK
KyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShyZXF1
ZXN0LCByZXN1bHQuaW5uZXJOb2RlKCkpOwogCiAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAg
Tm9kZSogbiA9IHJlc3VsdC5pbm5lck5vZGUoKTsKQEAgLTEwOTQsOCArMTA5NywxMCBAQCBIaXRU
ZXN0UmVzdWx0IEV2ZW50SGFuZGxlcjo6aGl0VGVzdFJlc3VsdEF0UG9pbnQoY29uc3QgTGF5b3V0
UG9pbnQmIHBvaW50LCBib29sCiAgICAgICAgICAgICByZXN1bHQubG9jYWxQb2ludCgpLnkoKSAr
IHZpZXctPnNjcm9sbFkoKSAtIHJlbmRlcldpZGdldC0+Ym9yZGVyVG9wKCkgLSByZW5kZXJXaWRn
ZXQtPnBhZGRpbmdUb3AoKSk7CiAgICAgICAgIEhpdFRlc3RSZXN1bHQgd2lkZ2V0SGl0VGVzdFJl
c3VsdCh3aWRnZXRQb2ludCwgcGFkZGluZy5oZWlnaHQoKSwgcGFkZGluZy53aWR0aCgpLCBwYWRk
aW5nLmhlaWdodCgpLCBwYWRkaW5nLndpZHRoKCkpOwogICAgICAgICB3aWRnZXRIaXRUZXN0UmVz
dWx0LnNldE9yaWdpbmFsRnJhbWVQb2ludChyZXN1bHQub3JpZ2luYWxGcmFtZVBvaW50KCkpOwot
ICAgICAgICBmcmFtZS0+Y29udGVudFJlbmRlcmVyKCktPmhpdFRlc3QoSGl0VGVzdFJlcXVlc3Qo
aGl0VHlwZSksIHdpZGdldEhpdFRlc3RSZXN1bHQpOworICAgICAgICBmcmFtZS0+Y29udGVudFJl
bmRlcmVyKCktPmhpdFRlc3QocmVxdWVzdCwgd2lkZ2V0SGl0VGVzdFJlc3VsdCk7CiAgICAgICAg
IHJlc3VsdCA9IHdpZGdldEhpdFRlc3RSZXN1bHQ7CisgICAgICAgIGlmICghcmVxdWVzdC5yZWFk
T25seSgpKQorICAgICAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPnVwZGF0ZUhvdmVyQWN0aXZl
U3RhdGUocmVxdWVzdCwgcmVzdWx0LmlubmVyTm9kZSgpKTsKIAogICAgICAgICBpZiAodGVzdFNj
cm9sbGJhcnMgPT0gU2hvdWxkSGl0VGVzdFNjcm9sbGJhcnMpIHsKICAgICAgICAgICAgIFNjcm9s
bGJhciogZXZlbnRTY3JvbGxiYXIgPSB2aWV3LT5zY3JvbGxiYXJBdFBvaW50KHJvdW5kZWRJbnRQ
b2ludChwb2ludCkpOwpAQCAtMjcyMywxMSArMjcyOCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpz
ZW5kQ29udGV4dE1lbnVFdmVudEZvcktleSgpCiAgICAgICAgIHRhcmdldE5vZGUgPSBkb2M7CiAK
ICAgICAvLyBVc2UgdGhlIGZvY3VzZWQgbm9kZSBhcyB0aGUgdGFyZ2V0IGZvciBob3ZlciBhbmQg
YWN0aXZlLgotICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KHBvc2l0aW9uKTsKLSAgICByZXN1bHQu
c2V0SW5uZXJOb2RlKHRhcmdldE5vZGUpOwotICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoSGl0
VGVzdFJlcXVlc3Q6OkFjdGl2ZSk7Ci0gICAgZG9jLT51cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKHJl
cXVlc3QsIHJlc3VsdCk7Ci0gICAgZG9jLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisgICAgZG9j
LT51cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUsIHRhcmdldE5v
ZGUpOwogICAgCiAgICAgLy8gVGhlIGNvbnRleHRtZW51IGV2ZW50IGlzIGEgbW91c2UgZXZlbnQg
ZXZlbiB3aGVuIGludm9rZWQgdXNpbmcgdGhlIGtleWJvYXJkLgogICAgIC8vIFRoaXMgaXMgcmVx
dWlyZWQgZm9yIHdlYiBjb21wYXRpYmlsaXR5LgpAQCAtMjg1Nyw3ICsyODU4LDcgQEAgdm9pZCBF
dmVudEhhbmRsZXI6OmhvdmVyVGltZXJGaXJlZChUaW1lcjxFdmVudEhhbmRsZXI+KikKICAgICAg
ICAgICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6Ok1vdmUpOwogICAg
ICAgICAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQodmlldy0+d2luZG93VG9Db250ZW50cyhtX2N1
cnJlbnRNb3VzZVBvc2l0aW9uKSk7CiAgICAgICAgICAgICByZW5kZXJlci0+aGl0VGVzdChyZXF1
ZXN0LCByZXN1bHQpOwotICAgICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlU3R5
bGVJZk5lZWRlZCgpOworICAgICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlSG92
ZXJBY3RpdmVTdGF0ZShyZXF1ZXN0LCByZXN1bHQuaW5uZXJOb2RlKCkpOwogICAgICAgICB9CiAg
ICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDY2MWJj
OTRlNGFmNTdkNjgyYzg0ZTA5ODZiNDk4ZjhjNWRlODAzYmQuLjM5NmYxMzBiOTU4YTgxNTJiYmFl
NmExMDgyM2I0ZDhmNWQxMTZiNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAKQEAgLTk0LDkgKzk0LDYgQEAgYm9vbCBSZW5kZXJWaWV3OjpoaXRUZXN0KGNvbnN0IEhp
dFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGwKIHsKICAgICBi
b29sIGluc2lkZSA9IGxheWVyKCktPmhpdFRlc3QocmVxdWVzdCwgbG9jYXRpb24sIHJlc3VsdCk7
CiAKLSAgICAvLyBOZXh0IHNldCB1cCB0aGUgY29ycmVjdCA6aG92ZXIvOmFjdGl2ZSBzdGF0ZSBh
bG9uZyB0aGUgbmV3IGNoYWluLgotICAgIGRvY3VtZW50KCktPnVwZGF0ZUhvdmVyQWN0aXZlU3Rh
dGUocmVxdWVzdCwgcmVzdWx0KTsKLQogICAgIHJldHVybiBpbnNpZGU7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167981</attachid>
            <date>2012-10-10 04:54:43 -0700</date>
            <delta_ts>2013-03-04 05:22:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98168-20121010135326.patch</filename>
            <type>text/plain</type>
            <size>8273</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwODg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzY4Y2ViZjMwZjVkMWMy
MWQwZDg2M2E4MDhjMTE3MGE0OTEzNmI3MS4uMDJjODgzZGI0NGI5ZTNiOTQyYTk0NDI1OTA4ZjNl
Mjk5OTg3ODE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTEwLTEwICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIE1v
dmUgc2lkZS1lZmZlY3RzIG9uIGhvdmVyL2FjdGl2ZSBzdGF0ZSBvdXQgb2YgaGl0LXRlc3Rpbmcu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODE2OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggY2hhbmdlcyBoaXQtdGVzdGluZyBzbyB0aGF0IGl0IG5vIGxvbmdlciBoYXMgYW55IHNpZGUt
ZWZmZWN0cyBhbmQgaXMgcmVhbGx5IHB1cmVseQorICAgICAgICBhIGhpdC10ZXN0LiBUaGlzIHdp
bGwgaGVscCBlbmFibGUgZnVydGhlciBjbGVhbi11cCBhbmQgb3B0aW1pemF0aW9ucy4KKworICAg
ICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4gTm8gbmV3IHRlc3RzLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpwcmVwYXJl
TW91c2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3Rp
dmVTdGF0ZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1bWVudCk6
CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpoaXRUZXN0UmVzdWx0QXRQb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVu
dEhhbmRsZXI6OnNlbmRDb250ZXh0TWVudUV2ZW50Rm9yS2V5KToKKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6aG92ZXJUaW1lckZpcmVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpoaXRUZXN0KToKKwog
MjAxMi0xMC0xMCAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBSRUdSRVNTSU9OIChyMTI5NzM4KTogQ2FsZW5kYXIgcGlja2VyIGlzIHRvbyB3aWRlIHdoZW4g
dGhlIGlucHV0IGlzIHJ0bApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNmM5Nzc3N2NiOGQ0
Njg3ZmZhZDI5NWZhMTEwNzM5NmRiYmEwODhlZS4uZmZhOTg4YTUxOGIxNTQ3M2Q4MTI5OTRkNzEy
MmZhN2Y0ZTBlYzE2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0zMDcxLDcgKzMwNzEs
NyBAQCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzIERvY3VtZW50OjpwcmVwYXJlTW91c2VF
dmVudChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcgogICAgIHJlbmRlclZpZXcoKS0+aGl0VGVzdChy
ZXF1ZXN0LCByZXN1bHQpOwogCiAgICAgaWYgKCFyZXF1ZXN0LnJlYWRPbmx5KCkpCi0gICAgICAg
IHVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICAgICAgdXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShy
ZXF1ZXN0LCByZXN1bHQuaW5uZXJOb2RlKCkpOwogCiAgICAgcmV0dXJuIE1vdXNlRXZlbnRXaXRo
SGl0VGVzdFJlc3VsdHMoZXZlbnQsIHJlc3VsdCk7CiB9CkBAIC01NzczLDE0ICs1NzczLDEwIEBA
IHN0YXRpYyBSZW5kZXJPYmplY3QqIG5lYXJlc3RDb21tb25Ib3ZlckFuY2VzdG9yKFJlbmRlck9i
amVjdCogb2JqMSwgUmVuZGVyT2JqZWN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgRG9jdW1l
bnQ6OnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3Qs
IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCkKK3ZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUhvdmVyQWN0aXZl
U3RhdGUoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIE5vZGUqIGlubmVyTm9kZSkKIHsK
LSAgICAvLyBXZSBkb24ndCB1cGRhdGUgOmhvdmVyLzphY3RpdmUgc3RhdGUgd2hlbiB0aGUgcmVz
dWx0IGlzIG1hcmtlZCBhcyByZWFkT25seS4KLSAgICBpZiAocmVxdWVzdC5yZWFkT25seSgpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBOb2RlKiBpbm5lck5vZGVJbkRvY3VtZW50ID0gcmVzdWx0
LmlubmVyTm9kZSgpOwotICAgIEFTU0VSVCghaW5uZXJOb2RlSW5Eb2N1bWVudCB8fCBpbm5lck5v
ZGVJbkRvY3VtZW50LT5kb2N1bWVudCgpID09IHRoaXMpOworICAgIEFTU0VSVCghcmVxdWVzdC5y
ZWFkT25seSgpKTsKKyAgICBBU1NFUlQoIWlubmVyTm9kZSB8fCBpbm5lck5vZGUtPmRvY3VtZW50
KCkgPT0gdGhpcyk7CiAKICAgICBOb2RlKiBvbGRBY3RpdmVOb2RlID0gYWN0aXZlTm9kZSgpOwog
ICAgIGlmIChvbGRBY3RpdmVOb2RlICYmICFyZXF1ZXN0LmFjdGl2ZSgpKSB7CkBAIC01NzkzLDcg
KzU3ODksNyBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKGNvbnN0IEhp
dFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdQogICAgICAgICB9CiAgICAgICAgIHNl
dEFjdGl2ZU5vZGUoMCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgTm9kZSogbmV3QWN0aXZlTm9k
ZSA9IGlubmVyTm9kZUluRG9jdW1lbnQ7CisgICAgICAgIE5vZGUqIG5ld0FjdGl2ZU5vZGUgPSBp
bm5lck5vZGU7CiAgICAgICAgIGlmICghb2xkQWN0aXZlTm9kZSAmJiBuZXdBY3RpdmVOb2RlICYm
IHJlcXVlc3QuYWN0aXZlKCkgJiYgIXJlcXVlc3QudG91Y2hNb3ZlKCkpIHsKICAgICAgICAgICAg
IC8vIFdlIGFyZSBzZXR0aW5nIHRoZSA6YWN0aXZlIGNoYWluIGFuZCBmcmVlemluZyBpdC4gSWYg
ZnV0dXJlIG1vdmVzIGhhcHBlbiwgdGhleQogICAgICAgICAgICAgLy8gd2lsbCBuZWVkIHRvIHJl
ZmVyZW5jZSB0aGlzIGNoYWluLgpAQCAtNTgxNCwyMiArNTgxMCwxNSBAQCB2b2lkIERvY3VtZW50
Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBI
aXRUZXN0UmVzdQogICAgIGJvb2wgbXVzdEJlSW5BY3RpdmVDaGFpbiA9IHJlcXVlc3QuYWN0aXZl
KCkgJiYgcmVxdWVzdC5tb3ZlKCk7CiAKICAgICBSZWZQdHI8Tm9kZT4gb2xkSG92ZXJOb2RlID0g
aG92ZXJOb2RlKCk7Ci0gICAgLy8gQ2xlYXIgdGhlIDpob3ZlciBjaGFpbiB3aGVuIHRoZSB0b3Vj
aCBnZXN0dXJlIGlzIG92ZXIuCisKICAgICBpZiAocmVxdWVzdC50b3VjaFJlbGVhc2UoKSkgewot
ICAgICAgICBpZiAob2xkSG92ZXJOb2RlKSB7Ci0gICAgICAgICAgICBmb3IgKFJlbmRlck9iamVj
dCogY3VyciA9IG9sZEhvdmVyTm9kZS0+cmVuZGVyZXIoKTsgY3VycjsgY3VyciA9IGN1cnItPmhv
dmVyQW5jZXN0b3IoKSkgewotICAgICAgICAgICAgICAgIGlmIChjdXJyLT5ub2RlKCkgJiYgIWN1
cnItPmlzVGV4dCgpKQotICAgICAgICAgICAgICAgICAgICBjdXJyLT5ub2RlKCktPnNldEhvdmVy
ZWQoZmFsc2UpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc2V0SG92ZXJOb2RlKDApOwot
ICAgICAgICB9Ci0gICAgICAgIC8vIEEgdG91Y2ggcmVsZWFzZSBjYW4gbm90IHNldCBuZXcgaG92
ZXIgb3IgYWN0aXZlIHRhcmdldC4KLSAgICAgICAgcmV0dXJuOworICAgICAgICAvLyBBIHRvdWNo
IHJlbGVhc2UgZG9lcyBub3Qgc2V0IGEgbmV3IGhvdmVyIHRhcmdldC4KKyAgICAgICAgaW5uZXJO
b2RlID0gMDsKICAgICB9CiAKICAgICAvLyBDaGVjayB0byBzZWUgaWYgdGhlIGhvdmVyZWQgbm9k
ZSBoYXMgY2hhbmdlZC4KICAgICAvLyBJZiBpdCBoYXNuJ3QsIHdlIGRvIG5vdCBuZWVkIHRvIGRv
IGFueXRoaW5nLgotICAgIE5vZGUqIG5ld0hvdmVyTm9kZSA9IGlubmVyTm9kZUluRG9jdW1lbnQ7
CisgICAgTm9kZSogbmV3SG92ZXJOb2RlID0gaW5uZXJOb2RlOwogICAgIHdoaWxlIChuZXdIb3Zl
ck5vZGUgJiYgIW5ld0hvdmVyTm9kZS0+cmVuZGVyZXIoKSkKICAgICAgICAgbmV3SG92ZXJOb2Rl
ID0gbmV3SG92ZXJOb2RlLT5wYXJlbnRPckhvc3ROb2RlKCk7CiAKQEAgLTU4NzAsNiArNTg1OSw4
IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUoY29uc3QgSGl0VGVzdFJl
cXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1CiAgICAgICAgICAgICBub2Rlc1RvQWRkVG9DaGFp
bltpXS0+c2V0QWN0aXZlKHRydWUpOwogICAgICAgICBub2Rlc1RvQWRkVG9DaGFpbltpXS0+c2V0
SG92ZXJlZCh0cnVlKTsKICAgICB9CisKKyAgICB1cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiB9CiAK
IHZvaWQgRG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9y
eU9iamVjdEluZm8pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDVkZjViNmNhZTk3Y2My
MTYxZTQ4NTg1NGFmYjhhY2JiZmRhMGM2MmEuLjU2ZjRkYTU5YTYyMGJkNzAyY2UxNzRkZDRiNjJl
MjRkODdjNGQ0NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC03MDAsNyArNzAwLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgaG92ZXJlZE5vZGVEZXRhY2hlZChOb2RlKik7CiAgICAgdm9pZCBhY3Rp
dmVDaGFpbk5vZGVEZXRhY2hlZChOb2RlKik7CiAKLSAgICB2b2lkIHVwZGF0ZUhvdmVyQWN0aXZl
U3RhdGUoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0Jik7CisgICAgdm9pZCB1
cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgTm9kZSogaW5uZXJO
b2RlKTsKIAogICAgIC8vIFVwZGF0ZXMgZm9yIDp0YXJnZXQgKENTUzMgc2VsZWN0b3IpLgogICAg
IHZvaWQgc2V0Q1NTVGFyZ2V0KEVsZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAppbmRleCAyZGNkNDJjMWQ1N2MxYTU1NTEzZWYyN2RlMWE3OTFjMTQ0M2E0NTgzLi4xM2Vh
NWRlZjIyZDdjMmIwMDIyZTk1MjA1MDc0ZTgxMTBhOTFlODliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCkBAIC0xMDg0LDcgKzEwODQsMTAgQEAgSGl0VGVzdFJlc3VsdCBFdmVu
dEhhbmRsZXI6OmhpdFRlc3RSZXN1bHRBdFBvaW50KGNvbnN0IExheW91dFBvaW50JiBwb2ludCwg
Ym9vbAogICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpJZ25vcmVDbGlwcGluZzsK
ICAgICBpZiAoYWxsb3dTaGFkb3dDb250ZW50KQogICAgICAgICBoaXRUeXBlIHw9IEhpdFRlc3RS
ZXF1ZXN0OjpBbGxvd1NoYWRvd0NvbnRlbnQ7Ci0gICAgbV9mcmFtZS0+Y29udGVudFJlbmRlcmVy
KCktPmhpdFRlc3QoSGl0VGVzdFJlcXVlc3QoaGl0VHlwZSksIHJlc3VsdCk7CisgICAgSGl0VGVz
dFJlcXVlc3QgcmVxdWVzdChoaXRUeXBlKTsKKyAgICBtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIo
KS0+aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOworICAgIGlmICghcmVxdWVzdC5yZWFkT25seSgp
KQorICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKHJl
cXVlc3QsIHJlc3VsdC5pbm5lck5vZGUoKSk7CiAKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAg
ICBOb2RlKiBuID0gcmVzdWx0LmlubmVyTm9kZSgpOwpAQCAtMTEwMyw2ICsxMTA2LDggQEAgSGl0
VGVzdFJlc3VsdCBFdmVudEhhbmRsZXI6OmhpdFRlc3RSZXN1bHRBdFBvaW50KGNvbnN0IExheW91
dFBvaW50JiBwb2ludCwgYm9vbAogICAgICAgICBIaXRUZXN0UmVzdWx0IHdpZGdldEhpdFRlc3RS
ZXN1bHQod2lkZ2V0UG9pbnQsIHBhZGRpbmcuaGVpZ2h0KCksIHBhZGRpbmcud2lkdGgoKSwgcGFk
ZGluZy5oZWlnaHQoKSwgcGFkZGluZy53aWR0aCgpKTsKICAgICAgICAgZnJhbWUtPmNvbnRlbnRS
ZW5kZXJlcigpLT5oaXRUZXN0KEhpdFRlc3RSZXF1ZXN0KGhpdFR5cGUpLCB3aWRnZXRIaXRUZXN0
UmVzdWx0KTsKICAgICAgICAgcmVzdWx0ID0gd2lkZ2V0SGl0VGVzdFJlc3VsdDsKKyAgICAgICAg
aWYgKCFyZXF1ZXN0LnJlYWRPbmx5KCkpCisgICAgICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+
dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShyZXF1ZXN0LCByZXN1bHQuaW5uZXJOb2RlKCkpOwogCiAg
ICAgICAgIGlmICh0ZXN0U2Nyb2xsYmFycyA9PSBTaG91bGRIaXRUZXN0U2Nyb2xsYmFycykgewog
ICAgICAgICAgICAgU2Nyb2xsYmFyKiBldmVudFNjcm9sbGJhciA9IHZpZXctPnNjcm9sbGJhckF0
UG9pbnQocm91bmRlZEludFBvaW50KHBvaW50KSk7CkBAIC0yNzQ2LDExICsyNzUxLDcgQEAgYm9v
bCBFdmVudEhhbmRsZXI6OnNlbmRDb250ZXh0TWVudUV2ZW50Rm9yS2V5KCkKICAgICAgICAgdGFy
Z2V0Tm9kZSA9IGRvYzsKIAogICAgIC8vIFVzZSB0aGUgZm9jdXNlZCBub2RlIGFzIHRoZSB0YXJn
ZXQgZm9yIGhvdmVyIGFuZCBhY3RpdmUuCi0gICAgSGl0VGVzdFJlc3VsdCByZXN1bHQocG9zaXRp
b24pOwotICAgIHJlc3VsdC5zZXRJbm5lck5vZGUodGFyZ2V0Tm9kZSk7Ci0gICAgSGl0VGVzdFJl
cXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6QWN0aXZlKTsKLSAgICBkb2MtPnVwZGF0ZUhv
dmVyQWN0aXZlU3RhdGUocmVxdWVzdCwgcmVzdWx0KTsKLSAgICBkb2MtPnVwZGF0ZVN0eWxlSWZO
ZWVkZWQoKTsKKyAgICBkb2MtPnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUoSGl0VGVzdFJlcXVlc3Q6
OkFjdGl2ZSwgdGFyZ2V0Tm9kZSk7CiAgICAKICAgICAvLyBUaGUgY29udGV4dG1lbnUgZXZlbnQg
aXMgYSBtb3VzZSBldmVudCBldmVuIHdoZW4gaW52b2tlZCB1c2luZyB0aGUga2V5Ym9hcmQuCiAg
ICAgLy8gVGhpcyBpcyByZXF1aXJlZCBmb3Igd2ViIGNvbXBhdGliaWxpdHkuCkBAIC0yODgwLDcg
KzI4ODEsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6aG92ZXJUaW1lckZpcmVkKFRpbWVyPEV2ZW50
SGFuZGxlcj4qKQogICAgICAgICAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVx
dWVzdDo6TW92ZSk7CiAgICAgICAgICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCh2aWV3LT53aW5k
b3dUb0NvbnRlbnRzKG1fY3VycmVudE1vdXNlUG9zaXRpb24pKTsKICAgICAgICAgICAgIHJlbmRl
cmVyLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7Ci0gICAgICAgICAgICBtX2ZyYW1lLT5kb2N1
bWVudCgpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisgICAgICAgICAgICBtX2ZyYW1lLT5kb2N1
bWVudCgpLT51cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKHJlcXVlc3QsIHJlc3VsdC5pbm5lck5vZGUo
KSk7CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAKaW5kZXggM2E1MGI3MTAzZDQxMGJjODNjNWQ4NjA2NmRiMjYwMzM4OTNiYjhlMC4uMmU1
MDcxZmZjZDllNmVjZGYwZmVmYTU3ZGE4ZTFhNWEwZDgxODEyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtOTQsOSArOTQsNiBAQCBib29sIFJlbmRlclZpZXc6
OmhpdFRlc3QoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IEhpdFRlc3RMb2Nh
dGlvbiYgbAogewogICAgIGJvb2wgaW5zaWRlID0gbGF5ZXIoKS0+aGl0VGVzdChyZXF1ZXN0LCBs
b2NhdGlvbiwgcmVzdWx0KTsKIAotICAgIC8vIE5leHQgc2V0IHVwIHRoZSBjb3JyZWN0IDpob3Zl
ci86YWN0aXZlIHN0YXRlIGFsb25nIHRoZSBuZXcgY2hhaW4uCi0gICAgZG9jdW1lbnQoKS0+dXBk
YXRlSG92ZXJBY3RpdmVTdGF0ZShyZXF1ZXN0LCByZXN1bHQpOwotCiAgICAgcmV0dXJuIGluc2lk
ZTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191208</attachid>
            <date>2013-03-04 05:22:06 -0800</date>
            <delta_ts>2013-03-04 06:10:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98168-20130304141813.patch</filename>
            <type>text/plain</type>
            <size>8486</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDRkZTUwODYwNGFkOGYw
OGY0ODM5MjczNmIwNzUyZWNjYjZlNDU1Mi4uODRiZTE0Yzk5YzAxNjhlOTdjMWY5NTZmNmQwODBk
Nzc3ZDE1Njk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEzLTAzLTA0ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBzaWRlLWVmZmVjdHMg
b24gaG92ZXIvYWN0aXZlIHN0YXRlIG91dCBvZiBoaXQtdGVzdGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgxNjgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3Rp
dmVTdGF0ZSBpcyBjdXJyZW50bHkgY2FsbGVkIGR1cmluZyBoaXQgdGVzdGluZworICAgICAgICB0
byB1cGRhdGUgdGhlIGhvdmVyIGFuZCBhY3RpdmUgc3RhdGVzIG9mIGVsZW1lbnRzIGVmZmVjdGVk
IGJ5IG1vdXNlCisgICAgICAgIG1vdmVtZW50cyAob3IgdGhlaXIga2V5Ym9hcmQgZXF1aXZhbGVu
dHMpLiBUaGlzIGNvbmZsYXRlcyB0aGUgaGl0IHRlc3QKKyAgICAgICAgYWxnb3JpdGhtIGl0c2Vs
ZiB3aXRoIHNpZGUtZWZmZWN0cyBhc3NvY2lhdGVkIHdpdGggc3BlY2lmaWMgdXNlLWNhc2VzLgor
CisgICAgICAgIFRoaXMgY29uZmxhdGlvbiBtYWtlcyBpdCB2ZXJ5IGRpZmZpY3VsdCB0byByZXVz
ZSB0aGUgaG92ZXIvYWN0aXZlIGxvZ2ljCisgICAgICAgIGZvciB0aGluZ3Mgb3RoZXIgdGhhbiBo
aXQgdGVzdGluZy4gJ21vdXNlZW50ZXInLydtb3VzZWxlYXZlJyBldmVudHNbMV0KKyAgICAgICAg
YXJlIG9uZSBleGFtcGxlIG9mIGEgZmVhdHVyZSB0aGF0IHdvdWxkIGJlIHNpbXBsZSB0byBpbXBs
ZW1lbnQgb24gdG9wIG9mCisgICAgICAgIHRoaXMgZXhpc3RpbmcgbG9naWMgaWYgd2Ugc3BsaXQg
aXQgb3V0IGZyb20gdGhlIGhpdCB0ZXN0aW5nIHBhdGgsIGFuZAorICAgICAgICBpbnN0ZWFkIGNh
bGwgaXQgZXhwbGljaXRseSB3aGVuIG5lY2Vzc2FyeS4gQW4gZXhwbGljaXQgc3BsaXQgYmV0d2Vl
bgorICAgICAgICBoaXQgdGVzdGluZyBhbmQgaXRzIHNpZGUtZWZmZWN0cyB3aWxsIGFsc28gZW5h
YmxlIHVzIHRvIHNpbXBsaWZ5CisKKyAgICAgICAgVGhpcyBwYXRjaCBkcm9wcyB0aGUgY2FsbCB0
byBEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZSBmcm9tCisgICAgICAgIFJlbmRlclZp
ZXc6OmhpdFRlc3QsIGFuZCBhZGp1c3RzIHRoZSB0aHJlZSBjYWxsLXNpdGVzIGluIEV2ZW50SGFu
ZGxlcgorICAgICAgICB0byBleHBsaWNpdGx5IGNhbGwgb3V0IHRvIGl0IHJhdGhlciB0aGFuIERv
Y3VtZW50Ojp1cGRhdGVTdHlsZUlmTmVlZGVkLgorICAgICAgICBUaGUgbGF0dGVyIGNhbGwgaXMg
c3RpbGwgbmVjZXNzYXJ5IGJ1dCBoYXMgYmVlbiBmb2xkZWQgaW50bworICAgICAgICB1cGRhdGVI
b3ZlckFjdGl2ZVN0YXRlLCBhcyB0aGUgZm9ybWVyIGlzIG5ldmVyIGNhbGxlZCB3aXRob3V0IGNh
bGxpbmcKKyAgICAgICAgdGhlIGxhdHRlci4KKworICAgICAgICBbMV06IGh0dHA6Ly93a2J1Zy5j
b20vMTg5MzAKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVT
dGF0ZSk6CisgICAgICAgICAgICBGaXJzdCwgdGhpcyBmdW5jdGlvbiBtdXN0IG5vdyBvbmx5IGJl
IGNhbGxlZCBmcm9tIGNvbnRleHRzIHRoYXQgd2VyZQorICAgICAgICAgICAgcGVyZm9ybWluZyBh
IHJlYWQvd3JpdGUgaGl0LXRlc3Q6IHRoZSBjb2RlIGFzc2VydHMgdGhpcworICAgICAgICAgICAg
cHJlY29uZGl0aW9uLgorCisgICAgICAgICAgICBTZWNvbmQsIHJhdGhlciB0aGFuIGFjY2VwdGlu
ZyBhIEhpdFRlc3RSZXN1bHQsIHRoZSBmdW5jdGlvbiBhY2NlcHRzCisgICAgICAgICAgICBhbiBF
bGVtZW50KiBmcm9tIHdoaWNoIHRvIGJlZ2luIHRoZSBob3Zlci9hY3RpdmUgY2hhaW4gY2hhbmdl
cy4KKworICAgICAgICAgICAgVGhpcmQsIHdlIGhhdmUgdG8gZXhwbGljaXRseSB1cGRhdGUgdGhl
IGhvdmVyL2FjdGl2ZSBzdGF0ZXMgZm9yCisgICAgICAgICAgICBkb2N1bWVudHMgYmV0d2VlbiB0
aGUgdXBkYXRlZCBlbGVtZW50IGFuZCB0aGUgdG9wLWxldmVsIGRvY3VtZW50LgorICAgICAgICAg
ICAgVGhlIGhpdC10ZXN0aW5nIGxvZ2ljIHdhcyB0YWtpbmcgY2FyZSBvZiB0aGlzIGZvciB1cywg
bm93IHdlIG5lZWQgdG8KKyAgICAgICAgICAgIHRha2UgY2FyZSBvZiBpdCBvdXJzZWx2ZXMuCisK
KyAgICAgICAgICAgIEZvdXJ0aCwgY2FsbCBvdXQgdG8gdXBkYXRlU3R5bGVJZk5lZWRlZCByYXRo
ZXIgdGhhbiBtYWtpbmcgb3VyCisgICAgICAgICAgICBjYWxsZXIgZG8gc28uIFRoZSBjYWxscyB3
ZXJlIGFsd2F5cyBwYWlyZWQ7IG5vdyB0aGF0J3MgZXhwbGljaXQuCisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6cHJlcGFyZU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5k
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGl0VGVzdFJlc3VsdEF0
UG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVF
dmVudEZvcktleSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhvdmVyVGltZXJG
aXJlZCk6CisgICAgICAgICAgICBDYWxsIG91dCB0byB1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlIHJh
dGhlciB0aGFuIHVwZGF0ZVN0eWxlSWZOZWVkZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6aGl0VGVzdCk6CisgICAg
ICAgICAgICBEcm9wIHRoZSBjYWxsIHRvIHVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUuCisKIDIwMTMt
MDMtMDQgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiB0b3VjaG1vdmUgbm90IGVtdWxhdGVkIGluc2lkZSBpZnJhbWUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGMzNmU2NWNkNzJhMzU4YmRmYThiNmE1NWQyYjljNzE2
NmM4M2RhZTIuLjJjMTU4MTdhOTkyNTc1MGNlOTRkNWQ3YjVmZWQ2ZDg0NzExMTIxZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMzAxNCw3ICszMDE0LDcgQEAgTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cyBEb2N1bWVudDo6cHJlcGFyZU1vdXNlRXZlbnQoY29uc3QgSGl0VGVzdFJl
cXVlc3QmIHIKICAgICByZW5kZXJWaWV3KCktPmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKIAog
ICAgIGlmICghcmVxdWVzdC5yZWFkT25seSgpKQotICAgICAgICB1cGRhdGVTdHlsZUlmTmVlZGVk
KCk7CisgICAgICAgIHVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUocmVxdWVzdCwgcmVzdWx0LmlubmVy
RWxlbWVudCgpKTsKIAogICAgIHJldHVybiBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzKGV2
ZW50LCByZXN1bHQpOwogfQpAQCAtNTg0MiwxNSArNTg0MiwxNSBAQCBzdGF0aWMgUmVuZGVyT2Jq
ZWN0KiBuZWFyZXN0Q29tbW9uSG92ZXJBbmNlc3RvcihSZW5kZXJPYmplY3QqIG9iajEsIFJlbmRl
ck9iamVjdAogICAgIHJldHVybiAwOwogfQogCi12b2lkIERvY3VtZW50Ojp1cGRhdGVIb3ZlckFj
dGl2ZVN0YXRlKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiBy
ZXN1bHQpCit2b2lkIERvY3VtZW50Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKGNvbnN0IEhpdFRl
c3RSZXF1ZXN0JiByZXF1ZXN0LCBFbGVtZW50KiBpbm5lckVsZW1lbnQpCiB7Ci0gICAgLy8gV2Ug
ZG9uJ3QgdXBkYXRlIDpob3Zlci86YWN0aXZlIHN0YXRlIHdoZW4gdGhlIHJlc3VsdCBpcyBtYXJr
ZWQgYXMgcmVhZE9ubHkuCi0gICAgaWYgKHJlcXVlc3QucmVhZE9ubHkoKSkKLSAgICAgICAgcmV0
dXJuOworICAgIEFTU0VSVChyZXF1ZXN0LnJlYWRPbmx5KCkpOwogCi0gICAgRWxlbWVudCogaW5u
ZXJFbGVtZW50SW5Eb2N1bWVudCA9IHJlc3VsdC5pbm5lckVsZW1lbnQoKTsKLSAgICB3aGlsZSAo
aW5uZXJFbGVtZW50SW5Eb2N1bWVudCAmJiBpbm5lckVsZW1lbnRJbkRvY3VtZW50LT5kb2N1bWVu
dCgpICE9IHRoaXMpCisgICAgRWxlbWVudCogaW5uZXJFbGVtZW50SW5Eb2N1bWVudCA9IGlubmVy
RWxlbWVudDsKKyAgICB3aGlsZSAoaW5uZXJFbGVtZW50SW5Eb2N1bWVudCAmJiBpbm5lckVsZW1l
bnRJbkRvY3VtZW50LT5kb2N1bWVudCgpICE9IHRoaXMpIHsKKyAgICAgICAgaW5uZXJFbGVtZW50
SW5Eb2N1bWVudC0+ZG9jdW1lbnQoKS0+dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShyZXF1ZXN0LCBp
bm5lckVsZW1lbnRJbkRvY3VtZW50KTsKICAgICAgICAgaW5uZXJFbGVtZW50SW5Eb2N1bWVudCA9
IGlubmVyRWxlbWVudEluRG9jdW1lbnQtPmRvY3VtZW50KCktPm93bmVyRWxlbWVudCgpOworICAg
IH0KIAogICAgIEVsZW1lbnQqIG9sZEFjdGl2ZUVsZW1lbnQgPSBhY3RpdmVFbGVtZW50KCk7CiAg
ICAgaWYgKG9sZEFjdGl2ZUVsZW1lbnQgJiYgIXJlcXVlc3QuYWN0aXZlKCkpIHsKQEAgLTU5NDIs
NiArNTk0Miw4IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUoY29uc3Qg
SGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1CiAgICAgICAgICAgICBub2Rlc1Rv
QWRkVG9DaGFpbltpXS0+c2V0QWN0aXZlKHRydWUpOwogICAgICAgICBub2Rlc1RvQWRkVG9DaGFp
bltpXS0+c2V0SG92ZXJlZCh0cnVlKTsKICAgICB9CisKKyAgICB1cGRhdGVTdHlsZUlmTmVlZGVk
KCk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGQ4Yjk4
NjMyOTY5YjE5YmUwOGExYjQ3ZDZhZjk0M2JkNDA3YjQ4ZDguLmY5NWVhNGMyYmZjYTZmY2Y5NTVi
N2IwM2QxYThiYzc4NDQ1NmIyY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC03MTIsNyArNzEy
LDcgQEAgcHVibGljOgogICAgIHZvaWQgaG92ZXJlZE5vZGVEZXRhY2hlZChOb2RlKik7CiAgICAg
dm9pZCBhY3RpdmVDaGFpbk5vZGVEZXRhY2hlZChOb2RlKik7CiAKLSAgICB2b2lkIHVwZGF0ZUhv
dmVyQWN0aXZlU3RhdGUoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0Jik7Cisg
ICAgdm9pZCB1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgRWxl
bWVudCopOwogCiAgICAgLy8gVXBkYXRlcyBmb3IgOnRhcmdldCAoQ1NTMyBzZWxlY3RvcikuCiAg
ICAgdm9pZCBzZXRDU1NUYXJnZXQoRWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCmluZGV4IDQzNmJiMzUyMDYxNDgxN2NkMTdiMjJlMmFhZjdlNjk5N2JiZjM0OTIuLjFi
MWY4NTliY2IyYTRjZGU4MWEzOTIzODYwODA2NGZkMGIwMjM5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKQEAgLTEwMzAsNiArMTAzMCw4IEBAIEhpdFRlc3RSZXN1bHQgRXZl
bnRIYW5kbGVyOjpoaXRUZXN0UmVzdWx0QXRQb2ludChjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQs
IEhpdFRlCiAgICAgLy8gaGl0VGVzdFJlc3VsdEF0UG9pbnQgaXMgc3BlY2lmaWNhbGx5IHVzZWQg
dG8gaGl0VGVzdCBpbnRvIGFsbCBmcmFtZXMsIHRodXMgaXQgYWx3YXlzIGFsbG93cyBjaGlsZCBm
cmFtZSBjb250ZW50LgogICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoaGl0VHlwZSB8IEhpdFRl
c3RSZXF1ZXN0OjpBbGxvd0NoaWxkRnJhbWVDb250ZW50KTsKICAgICBtX2ZyYW1lLT5jb250ZW50
UmVuZGVyZXIoKS0+aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOworICAgIGlmICghcmVxdWVzdC5y
ZWFkT25seSgpKQorICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVIb3ZlckFjdGl2
ZVN0YXRlKHJlcXVlc3QsIHJlc3VsdC5pbm5lckVsZW1lbnQoKSk7CiAKICAgICBpZiAoIXJlcXVl
c3QuYWxsb3dzU2hhZG93Q29udGVudCgpKQogICAgICAgICByZXN1bHQuc2V0VG9Ob25TaGFkb3dB
bmNlc3RvcigpOwpAQCAtMjg4NSwxMCArMjg4Nyw4IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpzZW5k
Q29udGV4dE1lbnVFdmVudEZvcktleSgpCiAgICAgLy8gVXNlIHRoZSBmb2N1c2VkIG5vZGUgYXMg
dGhlIHRhcmdldCBmb3IgaG92ZXIgYW5kIGFjdGl2ZS4KICAgICBIaXRUZXN0UmVzdWx0IHJlc3Vs
dChwb3NpdGlvbik7CiAgICAgcmVzdWx0LnNldElubmVyTm9kZSh0YXJnZXROb2RlKTsKLSAgICBI
aXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUpOwotICAgIGRvYy0+
dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShyZXF1ZXN0LCByZXN1bHQpOwotICAgIGRvYy0+dXBkYXRl
U3R5bGVJZk5lZWRlZCgpOwotICAgCisgICAgZG9jLT51cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKEhp
dFRlc3RSZXF1ZXN0OjpBY3RpdmUsIHJlc3VsdC5pbm5lckVsZW1lbnQoKSk7CisKICAgICAvLyBU
aGUgY29udGV4dG1lbnUgZXZlbnQgaXMgYSBtb3VzZSBldmVudCBldmVuIHdoZW4gaW52b2tlZCB1
c2luZyB0aGUga2V5Ym9hcmQuCiAgICAgLy8gVGhpcyBpcyByZXF1aXJlZCBmb3Igd2ViIGNvbXBh
dGliaWxpdHkuCiAKQEAgLTMwMjQsNyArMzAyNCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpob3Zl
clRpbWVyRmlyZWQoVGltZXI8RXZlbnRIYW5kbGVyPiopCiAgICAgICAgICAgICBIaXRUZXN0UmVx
dWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpNb3ZlKTsKICAgICAgICAgICAgIEhpdFRlc3RS
ZXN1bHQgcmVzdWx0KHZpZXctPndpbmRvd1RvQ29udGVudHMobV9sYXN0S25vd25Nb3VzZVBvc2l0
aW9uKSk7CiAgICAgICAgICAgICByZW5kZXJlci0+aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOwot
ICAgICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwor
ICAgICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShy
ZXF1ZXN0LCByZXN1bHQuaW5uZXJFbGVtZW50KCkpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDJkYzIzMjZhYmZiMzI0OTdh
ZGI4OWIyYWRmY2QzYzYxNjVhNDJiNTYuLjRmYjE3NjI1OWQ1YTRkM2NlYmIxZWE2M2I0YmNiOGY5
MmQwNmUyZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTky
LDEyICs5Miw3IEBAIGJvb2wgUmVuZGVyVmlldzo6aGl0VGVzdChjb25zdCBIaXRUZXN0UmVxdWVz
dCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KQogCiBib29sIFJlbmRlclZpZXc6Omhp
dFRlc3QoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IEhpdFRlc3RMb2NhdGlv
biYgbG9jYXRpb24sIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCkKIHsKLSAgICBib29sIGluc2lkZSA9
IGxheWVyKCktPmhpdFRlc3QocmVxdWVzdCwgbG9jYXRpb24sIHJlc3VsdCk7Ci0KLSAgICAvLyBO
ZXh0IHNldCB1cCB0aGUgY29ycmVjdCA6aG92ZXIvOmFjdGl2ZSBzdGF0ZSBhbG9uZyB0aGUgbmV3
IGNoYWluLgotICAgIGRvY3VtZW50KCktPnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUocmVxdWVzdCwg
cmVzdWx0KTsKLQotICAgIHJldHVybiBpbnNpZGU7CisgICAgcmV0dXJuIGxheWVyKCktPmhpdFRl
c3QocmVxdWVzdCwgbG9jYXRpb24sIHJlc3VsdCk7CiB9CiAKIHZvaWQgUmVuZGVyVmlldzo6Y29t
cHV0ZUxvZ2ljYWxIZWlnaHQoTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0LCBMYXlvdXRVbml0LCBM
b2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMmIGNvbXB1dGVkVmFsdWVzKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191217</attachid>
            <date>2013-03-04 06:10:20 -0800</date>
            <delta_ts>2013-03-07 11:04:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98168-20130304150627.patch</filename>
            <type>text/plain</type>
            <size>8973</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDRkZTUwODYwNGFkOGYw
OGY0ODM5MjczNmIwNzUyZWNjYjZlNDU1Mi4uNGY4ZGY1ZGNmNWIxYzg2MzU4MzU3M2Q3NmJkYzYx
ZjMwMWJkM2Q0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEzLTAzLTA0ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBzaWRlLWVmZmVjdHMg
b24gaG92ZXIvYWN0aXZlIHN0YXRlIG91dCBvZiBoaXQtdGVzdGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgxNjgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPcmlnaW5hbCBwYXRjaCBieSBBbGxhbiBT
YW5kZmVsZCBKZW5zZW47IEknbSBqdXN0IHR3ZWFraW5nIHRoaW5ncy4KKworICAgICAgICBEb2N1
bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZSBpcyBjdXJyZW50bHkgY2FsbGVkIGR1cmluZyBo
aXQgdGVzdGluZworICAgICAgICB0byB1cGRhdGUgdGhlIGhvdmVyIGFuZCBhY3RpdmUgc3RhdGVz
IG9mIGVsZW1lbnRzIGVmZmVjdGVkIGJ5IG1vdXNlCisgICAgICAgIG1vdmVtZW50cyAob3IgdGhl
aXIga2V5Ym9hcmQgZXF1aXZhbGVudHMpLiBUaGlzIGNvbmZsYXRlcyB0aGUgaGl0IHRlc3QKKyAg
ICAgICAgYWxnb3JpdGhtIGl0c2VsZiB3aXRoIHNpZGUtZWZmZWN0cyBhc3NvY2lhdGVkIHdpdGgg
c3BlY2lmaWMgdXNlLWNhc2VzLgorCisgICAgICAgIFRoaXMgY29uZmxhdGlvbiBtYWtlcyBpdCB2
ZXJ5IGRpZmZpY3VsdCB0byByZXVzZSB0aGUgaG92ZXIvYWN0aXZlIGxvZ2ljCisgICAgICAgIGZv
ciB0aGluZ3Mgb3RoZXIgdGhhbiBoaXQgdGVzdGluZy4gJ21vdXNlZW50ZXInLydtb3VzZWxlYXZl
JyBldmVudHNbMV0KKyAgICAgICAgYXJlIG9uZSBleGFtcGxlIG9mIGEgZmVhdHVyZSB0aGF0IHdv
dWxkIGJlIHNpbXBsZSB0byBpbXBsZW1lbnQgb24gdG9wIG9mCisgICAgICAgIHRoaXMgZXhpc3Rp
bmcgbG9naWMgaWYgd2Ugc3BsaXQgaXQgb3V0IGZyb20gdGhlIGhpdCB0ZXN0aW5nIHBhdGgsIGFu
ZAorICAgICAgICBpbnN0ZWFkIGNhbGwgaXQgZXhwbGljaXRseSB3aGVuIG5lY2Vzc2FyeS4gQW4g
ZXhwbGljaXQgc3BsaXQgYmV0d2VlbgorICAgICAgICBoaXQgdGVzdGluZyBhbmQgaXRzIHNpZGUt
ZWZmZWN0cyB3aWxsIGFsc28gZW5hYmxlIHVzIHRvIHNpbXBsaWZ5IHRoZQorICAgICAgICBsb2dp
YyBpbiBmdXR1cmUgcGF0Y2hlcyB3aXRoIHdlbGwtbmFtZWQgcGFyYW1ldGVycywgcmF0aGVyIHRo
YW4gcmVseWluZworICAgICAgICBvbiBzdHVmZmluZyBwcm9wZXJ0aWVzIGludG8gSGl0VGVzdFJl
cXVlc3QuCisKKyAgICAgICAgVGhpcyBwYXRjaCBkcm9wcyB0aGUgY2FsbCB0byBEb2N1bWVudDo6
dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZSBmcm9tCisgICAgICAgIFJlbmRlclZpZXc6OmhpdFRlc3Qs
IGFuZCBhZGp1c3RzIHRoZSB0aHJlZSBjYWxsLXNpdGVzIGluIEV2ZW50SGFuZGxlcgorICAgICAg
ICB0byBleHBsaWNpdGx5IGNhbGwgb3V0IHRvIGl0IHJhdGhlciB0aGFuIERvY3VtZW50Ojp1cGRh
dGVTdHlsZUlmTmVlZGVkLgorICAgICAgICBUaGUgbGF0dGVyIGNhbGwgaXMgc3RpbGwgbmVjZXNz
YXJ5IGJ1dCBoYXMgYmVlbiBmb2xkZWQgaW50bworICAgICAgICB1cGRhdGVIb3ZlckFjdGl2ZVN0
YXRlLCBhcyB0aGUgZm9ybWVyIGlzIG5ldmVyIGNhbGxlZCB3aXRob3V0IGNhbGxpbmcKKyAgICAg
ICAgdGhlIGxhdHRlci4KKworICAgICAgICBbMV06IGh0dHA6Ly93a2J1Zy5jb20vMTg5MzAKKwor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZSk6CisgICAg
ICAgICAgICBGaXJzdCwgdGhpcyBmdW5jdGlvbiBtdXN0IG5vdyBvbmx5IGJlIGNhbGxlZCBmcm9t
IGNvbnRleHRzIHRoYXQgd2VyZQorICAgICAgICAgICAgcGVyZm9ybWluZyBhIHJlYWQvd3JpdGUg
aGl0LXRlc3Q6IHRoZSBjb2RlIGFzc2VydHMgdGhpcworICAgICAgICAgICAgcHJlY29uZGl0aW9u
LgorCisgICAgICAgICAgICBTZWNvbmQsIHJhdGhlciB0aGFuIGFjY2VwdGluZyBhIEhpdFRlc3RS
ZXN1bHQsIHRoZSBmdW5jdGlvbiBhY2NlcHRzCisgICAgICAgICAgICBhbiBFbGVtZW50KiBmcm9t
IHdoaWNoIHRvIGJlZ2luIHRoZSBob3Zlci9hY3RpdmUgY2hhaW4gY2hhbmdlcy4KKworICAgICAg
ICAgICAgVGhpcmQsIHdlIGhhdmUgdG8gZXhwbGljaXRseSB1cGRhdGUgdGhlIGhvdmVyL2FjdGl2
ZSBzdGF0ZXMgZm9yCisgICAgICAgICAgICBkb2N1bWVudHMgYmV0d2VlbiB0aGUgdXBkYXRlZCBl
bGVtZW50IGFuZCB0aGUgdG9wLWxldmVsIGRvY3VtZW50LgorICAgICAgICAgICAgVGhlIGhpdC10
ZXN0aW5nIGxvZ2ljIHdhcyB0YWtpbmcgY2FyZSBvZiB0aGlzIGZvciB1cywgbm93IHdlIG5lZWQg
dG8KKyAgICAgICAgICAgIHRha2UgY2FyZSBvZiBpdCBvdXJzZWx2ZXMuCisKKyAgICAgICAgICAg
IEZvdXJ0aCwgY2FsbCBvdXQgdG8gdXBkYXRlU3R5bGVJZk5lZWRlZCByYXRoZXIgdGhhbiBtYWtp
bmcgb3VyCisgICAgICAgICAgICBjYWxsZXIgZG8gc28uIFRoZSBjYWxscyB3ZXJlIGFsd2F5cyBw
YWlyZWQ7IG5vdyB0aGF0J3MgZXhwbGljaXQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
cHJlcGFyZU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGl0VGVzdFJlc3VsdEF0UG9pbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpzZW5kQ29udGV4dE1lbnVFdmVudEZvcktleSk6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhvdmVyVGltZXJGaXJlZCk6CisgICAg
ICAgICAgICBDYWxsIG91dCB0byB1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlIHJhdGhlciB0aGFuIHVw
ZGF0ZVN0eWxlSWZOZWVkZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6aGl0VGVzdCk6CisgICAgICAgICAgICBEcm9w
IHRoZSBjYWxsIHRvIHVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUuCisKIDIwMTMtMDMtMDQgIEFsZXhh
bmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVj
dG9yOiB0b3VjaG1vdmUgbm90IGVtdWxhdGVkIGluc2lkZSBpZnJhbWUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IGMzNmU2NWNkNzJhMzU4YmRmYThiNmE1NWQyYjljNzE2NmM4M2RhZTIuLmE4
YTFiMmMwODIyMGQ0YTIzNGQxYmI5ZTU5ZTI1ZjQ1MDAxYjk5MzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcApAQCAtMzAxNCw3ICszMDE0LDcgQEAgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0
cyBEb2N1bWVudDo6cHJlcGFyZU1vdXNlRXZlbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHIKICAg
ICByZW5kZXJWaWV3KCktPmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKIAogICAgIGlmICghcmVx
dWVzdC5yZWFkT25seSgpKQotICAgICAgICB1cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisgICAgICAg
IHVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUocmVxdWVzdCwgcmVzdWx0LmlubmVyRWxlbWVudCgpKTsK
IAogICAgIHJldHVybiBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzKGV2ZW50LCByZXN1bHQp
OwogfQpAQCAtNTg0MiwxNSArNTg0MiwxNSBAQCBzdGF0aWMgUmVuZGVyT2JqZWN0KiBuZWFyZXN0
Q29tbW9uSG92ZXJBbmNlc3RvcihSZW5kZXJPYmplY3QqIG9iajEsIFJlbmRlck9iamVjdAogICAg
IHJldHVybiAwOwogfQogCi12b2lkIERvY3VtZW50Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKGNv
bnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQpCit2b2lk
IERvY3VtZW50Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiBy
ZXF1ZXN0LCBFbGVtZW50KiBpbm5lckVsZW1lbnQpCiB7Ci0gICAgLy8gV2UgZG9uJ3QgdXBkYXRl
IDpob3Zlci86YWN0aXZlIHN0YXRlIHdoZW4gdGhlIHJlc3VsdCBpcyBtYXJrZWQgYXMgcmVhZE9u
bHkuCi0gICAgaWYgKHJlcXVlc3QucmVhZE9ubHkoKSkKLSAgICAgICAgcmV0dXJuOworICAgIEFT
U0VSVCghcmVxdWVzdC5yZWFkT25seSgpKTsKIAotICAgIEVsZW1lbnQqIGlubmVyRWxlbWVudElu
RG9jdW1lbnQgPSByZXN1bHQuaW5uZXJFbGVtZW50KCk7Ci0gICAgd2hpbGUgKGlubmVyRWxlbWVu
dEluRG9jdW1lbnQgJiYgaW5uZXJFbGVtZW50SW5Eb2N1bWVudC0+ZG9jdW1lbnQoKSAhPSB0aGlz
KQorICAgIEVsZW1lbnQqIGlubmVyRWxlbWVudEluRG9jdW1lbnQgPSBpbm5lckVsZW1lbnQ7Cisg
ICAgd2hpbGUgKGlubmVyRWxlbWVudEluRG9jdW1lbnQgJiYgaW5uZXJFbGVtZW50SW5Eb2N1bWVu
dC0+ZG9jdW1lbnQoKSAhPSB0aGlzKSB7CisgICAgICAgIGlubmVyRWxlbWVudEluRG9jdW1lbnQt
PmRvY3VtZW50KCktPnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUocmVxdWVzdCwgaW5uZXJFbGVtZW50
SW5Eb2N1bWVudCk7CiAgICAgICAgIGlubmVyRWxlbWVudEluRG9jdW1lbnQgPSBpbm5lckVsZW1l
bnRJbkRvY3VtZW50LT5kb2N1bWVudCgpLT5vd25lckVsZW1lbnQoKTsKKyAgICB9CiAKICAgICBF
bGVtZW50KiBvbGRBY3RpdmVFbGVtZW50ID0gYWN0aXZlRWxlbWVudCgpOwogICAgIGlmIChvbGRB
Y3RpdmVFbGVtZW50ICYmICFyZXF1ZXN0LmFjdGl2ZSgpKSB7CkBAIC01ODk2LDYgKzU4OTYsNyBA
QCB2b2lkIERvY3VtZW50Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKGNvbnN0IEhpdFRlc3RSZXF1
ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdQogICAgICAgICAgICAgc2V0SG92ZXJOb2RlKDApOwog
ICAgICAgICB9CiAgICAgICAgIC8vIEEgdG91Y2ggcmVsZWFzZSBjYW4gbm90IHNldCBuZXcgaG92
ZXIgb3IgYWN0aXZlIHRhcmdldC4KKyAgICAgICAgdXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC01OTQyLDYgKzU5NDMsOCBAQCB2b2lkIERvY3VtZW50
Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBI
aXRUZXN0UmVzdQogICAgICAgICAgICAgbm9kZXNUb0FkZFRvQ2hhaW5baV0tPnNldEFjdGl2ZSh0
cnVlKTsKICAgICAgICAgbm9kZXNUb0FkZFRvQ2hhaW5baV0tPnNldEhvdmVyZWQodHJ1ZSk7CiAg
ICAgfQorCisgICAgdXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogfQogCiB2b2lkIERvY3VtZW50Ojpy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBkOGI5ODYzMjk2OWIxOWJlMDhhMWI0N2Q2YWY5NDNi
ZDQwN2I0OGQ4Li5mOTVlYTRjMmJmY2E2ZmNmOTU1YjdiMDNkMWE4YmM3ODQ0NTZiMmNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaApAQCAtNzEyLDcgKzcxMiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGhv
dmVyZWROb2RlRGV0YWNoZWQoTm9kZSopOwogICAgIHZvaWQgYWN0aXZlQ2hhaW5Ob2RlRGV0YWNo
ZWQoTm9kZSopOwogCi0gICAgdm9pZCB1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKGNvbnN0IEhpdFRl
c3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYpOworICAgIHZvaWQgdXBkYXRlSG92ZXJBY3RpdmVT
dGF0ZShjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEVsZW1lbnQqKTsKIAogICAgIC8vIFVwZGF0ZXMg
Zm9yIDp0YXJnZXQgKENTUzMgc2VsZWN0b3IpLgogICAgIHZvaWQgc2V0Q1NTVGFyZ2V0KEVsZW1l
bnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA0MzZiYjM1MjA2MTQ4
MTdjZDE3YjIyZTJhYWY3ZTY5OTdiYmYzNDkyLi4xYjFmODU5YmNiMmE0Y2RlODFhMzkyMzg2MDgw
NjRmZDBiMDIzOWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xMDMw
LDYgKzEwMzAsOCBAQCBIaXRUZXN0UmVzdWx0IEV2ZW50SGFuZGxlcjo6aGl0VGVzdFJlc3VsdEF0
UG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50LCBIaXRUZQogICAgIC8vIGhpdFRlc3RSZXN1
bHRBdFBvaW50IGlzIHNwZWNpZmljYWxseSB1c2VkIHRvIGhpdFRlc3QgaW50byBhbGwgZnJhbWVz
LCB0aHVzIGl0IGFsd2F5cyBhbGxvd3MgY2hpbGQgZnJhbWUgY29udGVudC4KICAgICBIaXRUZXN0
UmVxdWVzdCByZXF1ZXN0KGhpdFR5cGUgfCBIaXRUZXN0UmVxdWVzdDo6QWxsb3dDaGlsZEZyYW1l
Q29udGVudCk7CiAgICAgbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCktPmhpdFRlc3QocmVxdWVz
dCwgcmVzdWx0KTsKKyAgICBpZiAoIXJlcXVlc3QucmVhZE9ubHkoKSkKKyAgICAgICAgbV9mcmFt
ZS0+ZG9jdW1lbnQoKS0+dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShyZXF1ZXN0LCByZXN1bHQuaW5u
ZXJFbGVtZW50KCkpOwogCiAgICAgaWYgKCFyZXF1ZXN0LmFsbG93c1NoYWRvd0NvbnRlbnQoKSkK
ICAgICAgICAgcmVzdWx0LnNldFRvTm9uU2hhZG93QW5jZXN0b3IoKTsKQEAgLTI4ODUsMTAgKzI4
ODcsOCBAQCBib29sIEV2ZW50SGFuZGxlcjo6c2VuZENvbnRleHRNZW51RXZlbnRGb3JLZXkoKQog
ICAgIC8vIFVzZSB0aGUgZm9jdXNlZCBub2RlIGFzIHRoZSB0YXJnZXQgZm9yIGhvdmVyIGFuZCBh
Y3RpdmUuCiAgICAgSGl0VGVzdFJlc3VsdCByZXN1bHQocG9zaXRpb24pOwogICAgIHJlc3VsdC5z
ZXRJbm5lck5vZGUodGFyZ2V0Tm9kZSk7Ci0gICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRU
ZXN0UmVxdWVzdDo6QWN0aXZlKTsKLSAgICBkb2MtPnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUocmVx
dWVzdCwgcmVzdWx0KTsKLSAgICBkb2MtPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKLSAgIAorICAg
IGRvYy0+dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShIaXRUZXN0UmVxdWVzdDo6QWN0aXZlLCByZXN1
bHQuaW5uZXJFbGVtZW50KCkpOworCiAgICAgLy8gVGhlIGNvbnRleHRtZW51IGV2ZW50IGlzIGEg
bW91c2UgZXZlbnQgZXZlbiB3aGVuIGludm9rZWQgdXNpbmcgdGhlIGtleWJvYXJkLgogICAgIC8v
IFRoaXMgaXMgcmVxdWlyZWQgZm9yIHdlYiBjb21wYXRpYmlsaXR5LgogCkBAIC0zMDI0LDcgKzMw
MjQsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6aG92ZXJUaW1lckZpcmVkKFRpbWVyPEV2ZW50SGFu
ZGxlcj4qKQogICAgICAgICAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVz
dDo6TW92ZSk7CiAgICAgICAgICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCh2aWV3LT53aW5kb3dU
b0NvbnRlbnRzKG1fbGFzdEtub3duTW91c2VQb3NpdGlvbikpOwogICAgICAgICAgICAgcmVuZGVy
ZXItPmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKLSAgICAgICAgICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICAgICAgICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUocmVxdWVzdCwgcmVzdWx0LmlubmVyRWxlbWVu
dCgpKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJW
aWV3LmNwcAppbmRleCAyZGMyMzI2YWJmYjMyNDk3YWRiODliMmFkZmNkM2M2MTY1YTQyYjU2Li40
ZmIxNzYyNTlkNWE0ZDNjZWJiMWVhNjNiNGJjYjhmOTJkMDZlMmU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC05MiwxMiArOTIsNyBAQCBib29sIFJlbmRlclZp
ZXc6OmhpdFRlc3QoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQm
IHJlc3VsdCkKIAogYm9vbCBSZW5kZXJWaWV3OjpoaXRUZXN0KGNvbnN0IEhpdFRlc3RSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uLCBIaXRUZXN0UmVzdWx0
JiByZXN1bHQpCiB7Ci0gICAgYm9vbCBpbnNpZGUgPSBsYXllcigpLT5oaXRUZXN0KHJlcXVlc3Qs
IGxvY2F0aW9uLCByZXN1bHQpOwotCi0gICAgLy8gTmV4dCBzZXQgdXAgdGhlIGNvcnJlY3QgOmhv
dmVyLzphY3RpdmUgc3RhdGUgYWxvbmcgdGhlIG5ldyBjaGFpbi4KLSAgICBkb2N1bWVudCgpLT51
cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKHJlcXVlc3QsIHJlc3VsdCk7Ci0KLSAgICByZXR1cm4gaW5z
aWRlOworICAgIHJldHVybiBsYXllcigpLT5oaXRUZXN0KHJlcXVlc3QsIGxvY2F0aW9uLCByZXN1
bHQpOwogfQogCiB2b2lkIFJlbmRlclZpZXc6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KExheW91dFVu
aXQgbG9naWNhbEhlaWdodCwgTGF5b3V0VW5pdCwgTG9naWNhbEV4dGVudENvbXB1dGVkVmFsdWVz
JiBjb21wdXRlZFZhbHVlcykgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192048</attachid>
            <date>2013-03-07 11:04:45 -0800</date>
            <delta_ts>2013-03-07 13:26:26 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-98168-20130307200047.patch</filename>
            <type>text/plain</type>
            <size>8716</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzY3ZGNmM2I4ZmU1ODI0
YmMxNTYxMDdkYTk3Njc0NTc1NmUwNTJlOC4uNGE1NGRmMTY5MjZlMWI3MmI3YWNkMjVjNmFiZTA4
ZGU0MjgxMjNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEzLTAzLTA3ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBzaWRlLWVmZmVjdHMg
b24gaG92ZXIvYWN0aXZlIHN0YXRlIG91dCBvZiBoaXQtdGVzdGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgxNjgKKworICAgICAgICBSZXZpZXdl
ZCBieSBKdWxpZW4gQ2hhZmZyYWl4LgorCisgICAgICAgIE9yaWdpbmFsIHBhdGNoIGJ5IEFsbGFu
IFNhbmRmZWxkIEplbnNlbjsgSSdtIGp1c3QgdHdlYWtpbmcgdGhpbmdzLgorCisgICAgICAgIERv
Y3VtZW50Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlIGlzIGN1cnJlbnRseSBjYWxsZWQgZHVyaW5n
IGhpdCB0ZXN0aW5nCisgICAgICAgIHRvIHVwZGF0ZSB0aGUgaG92ZXIgYW5kIGFjdGl2ZSBzdGF0
ZXMgb2YgZWxlbWVudHMgZWZmZWN0ZWQgYnkgbW91c2UKKyAgICAgICAgbW92ZW1lbnRzIChvciB0
aGVpciBrZXlib2FyZCBlcXVpdmFsZW50cykuIFRoaXMgY29uZmxhdGVzIHRoZSBoaXQgdGVzdAor
ICAgICAgICBhbGdvcml0aG0gaXRzZWxmIHdpdGggc2lkZS1lZmZlY3RzIGFzc29jaWF0ZWQgd2l0
aCBzcGVjaWZpYyB1c2UtY2FzZXMuCisKKyAgICAgICAgVGhpcyBjb25mbGF0aW9uIG1ha2VzIGl0
IHZlcnkgZGlmZmljdWx0IHRvIHJldXNlIHRoZSBob3Zlci9hY3RpdmUgbG9naWMKKyAgICAgICAg
Zm9yIHRoaW5ncyBvdGhlciB0aGFuIGhpdCB0ZXN0aW5nLiAnbW91c2VlbnRlcicvJ21vdXNlbGVh
dmUnIGV2ZW50c1sxXQorICAgICAgICBhcmUgb25lIGV4YW1wbGUgb2YgYSBmZWF0dXJlIHRoYXQg
d291bGQgYmUgc2ltcGxlIHRvIGltcGxlbWVudCBvbiB0b3Agb2YKKyAgICAgICAgdGhpcyBleGlz
dGluZyBsb2dpYyBpZiB3ZSBzcGxpdCBpdCBvdXQgZnJvbSB0aGUgaGl0IHRlc3RpbmcgcGF0aCwg
YW5kCisgICAgICAgIGluc3RlYWQgY2FsbCBpdCBleHBsaWNpdGx5IHdoZW4gbmVjZXNzYXJ5LiBB
biBleHBsaWNpdCBzcGxpdCBiZXR3ZWVuCisgICAgICAgIGhpdCB0ZXN0aW5nIGFuZCBpdHMgc2lk
ZS1lZmZlY3RzIHdpbGwgYWxzbyBlbmFibGUgdXMgdG8gc2ltcGxpZnkgdGhlCisgICAgICAgIGxv
Z2ljIGluIGZ1dHVyZSBwYXRjaGVzIHdpdGggd2VsbC1uYW1lZCBwYXJhbWV0ZXJzLCByYXRoZXIg
dGhhbiByZWx5aW5nCisgICAgICAgIG9uIHN0dWZmaW5nIHByb3BlcnRpZXMgaW50byBIaXRUZXN0
UmVxdWVzdC4KKworICAgICAgICBUaGlzIHBhdGNoIGRyb3BzIHRoZSBjYWxsIHRvIERvY3VtZW50
Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlIGZyb20KKyAgICAgICAgUmVuZGVyVmlldzo6aGl0VGVz
dCwgYW5kIGFkanVzdHMgdGhlIHRocmVlIGNhbGwtc2l0ZXMgaW4gRXZlbnRIYW5kbGVyCisgICAg
ICAgIHRvIGV4cGxpY2l0bHkgY2FsbCBvdXQgdG8gaXQgcmF0aGVyIHRoYW4gRG9jdW1lbnQ6OnVw
ZGF0ZVN0eWxlSWZOZWVkZWQuCisgICAgICAgIFRoZSBsYXR0ZXIgY2FsbCBpcyBzdGlsbCBuZWNl
c3NhcnkgYnV0IGhhcyBiZWVuIGZvbGRlZCBpbnRvCisgICAgICAgIHVwZGF0ZUhvdmVyQWN0aXZl
U3RhdGUsIGFzIHRoZSBmb3JtZXIgaXMgbmV2ZXIgY2FsbGVkIHdpdGhvdXQgY2FsbGluZworICAg
ICAgICB0aGUgbGF0dGVyLgorCisgICAgICAgIFsxXTogaHR0cDovL3drYnVnLmNvbS8xODkzMAor
CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKToKKyAg
ICAgICAgICAgIEZpcnN0LCB0aGlzIGZ1bmN0aW9uIG11c3Qgbm93IG9ubHkgYmUgY2FsbGVkIGZy
b20gY29udGV4dHMgdGhhdCB3ZXJlCisgICAgICAgICAgICBwZXJmb3JtaW5nIGEgcmVhZC93cml0
ZSBoaXQtdGVzdDogdGhlIGNvZGUgYXNzZXJ0cyB0aGlzCisgICAgICAgICAgICBwcmVjb25kaXRp
b24uCisKKyAgICAgICAgICAgIFNlY29uZCwgcmF0aGVyIHRoYW4gYWNjZXB0aW5nIGEgSGl0VGVz
dFJlc3VsdCwgdGhlIGZ1bmN0aW9uIGFjY2VwdHMKKyAgICAgICAgICAgIGFuIEVsZW1lbnQqIGZy
b20gd2hpY2ggdG8gYmVnaW4gdGhlIGhvdmVyL2FjdGl2ZSBjaGFpbiBjaGFuZ2VzLgorCisgICAg
ICAgICAgICBUaGlyZCwgd2UgaGF2ZSB0byBleHBsaWNpdGx5IHVwZGF0ZSB0aGUgaG92ZXIvYWN0
aXZlIHN0YXRlcyBmb3IKKyAgICAgICAgICAgIGRvY3VtZW50cyBiZXR3ZWVuIHRoZSB1cGRhdGVk
IGVsZW1lbnQgYW5kIHRoZSB0b3AtbGV2ZWwgZG9jdW1lbnQuCisgICAgICAgICAgICBUaGUgaGl0
LXRlc3RpbmcgbG9naWMgd2FzIHRha2luZyBjYXJlIG9mIHRoaXMgZm9yIHVzLCBub3cgd2UgbmVl
ZCB0bworICAgICAgICAgICAgdGFrZSBjYXJlIG9mIGl0IG91cnNlbHZlcy4KKworICAgICAgICAg
ICAgRm91cnRoLCBjYWxsIG91dCB0byB1cGRhdGVTdHlsZUlmTmVlZGVkIHJhdGhlciB0aGFuIG1h
a2luZyBvdXIKKyAgICAgICAgICAgIGNhbGxlciBkbyBzby4gVGhlIGNhbGxzIHdlcmUgYWx3YXlz
IHBhaXJlZDsgbm93IHRoYXQncyBleHBsaWNpdC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpwcmVwYXJlTW91c2VFdmVudCk6CisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoaXRUZXN0UmVzdWx0QXRQb2ludCk6Cisg
ICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNlbmRDb250ZXh0TWVudUV2ZW50Rm9yS2V5
KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aG92ZXJUaW1lckZpcmVkKToKKyAg
ICAgICAgICAgIENhbGwgb3V0IHRvIHVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUgcmF0aGVyIHRoYW4g
dXBkYXRlU3R5bGVJZk5lZWRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpoaXRUZXN0KToKKyAgICAgICAgICAgIERy
b3AgdGhlIGNhbGwgdG8gdXBkYXRlSG92ZXJBY3RpdmVTdGF0ZS4KKwogMjAxMy0wMy0wNyAgQW5k
cmV5IEx1c2huaWtvdiAgPGx1c2huaWtvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIElu
c3BlY3RvcjogW0NvZGVNaXJyb3JdIHVwZGF0ZSBjb2RlbWlycm9yIHRvIHZlcnNpb24gMy4xCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAzNDhlYzg5NzY2OTk5ZmJiNzE5MDI4Yjg0YjEwYjZj
YjM5MDFkNjZmLi4yNmYxY2RiZGQ4MTg5MzI5ZDgwYjQxM2Q0OWVjNzk2OTYyMDc2NDBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI5OTcsNyArMjk5Nyw3IEBAIE1vdXNlRXZlbnRXaXRo
SGl0VGVzdFJlc3VsdHMgRG9jdW1lbnQ6OnByZXBhcmVNb3VzZUV2ZW50KGNvbnN0IEhpdFRlc3RS
ZXF1ZXN0JiByCiAgICAgcmVuZGVyVmlldygpLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CiAK
ICAgICBpZiAoIXJlcXVlc3QucmVhZE9ubHkoKSkKLSAgICAgICAgdXBkYXRlU3R5bGVJZk5lZWRl
ZCgpOworICAgICAgICB1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKHJlcXVlc3QsIHJlc3VsdC5pbm5l
ckVsZW1lbnQoKSk7CiAKICAgICByZXR1cm4gTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyhl
dmVudCwgcmVzdWx0KTsKIH0KQEAgLTU4MzAsMTUgKzU4MzAsMTUgQEAgc3RhdGljIFJlbmRlck9i
amVjdCogbmVhcmVzdENvbW1vbkhvdmVyQW5jZXN0b3IoUmVuZGVyT2JqZWN0KiBvYmoxLCBSZW5k
ZXJPYmplY3QKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBEb2N1bWVudDo6dXBkYXRlSG92ZXJB
Y3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYg
cmVzdWx0KQordm9pZCBEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRU
ZXN0UmVxdWVzdCYgcmVxdWVzdCwgRWxlbWVudCogaW5uZXJFbGVtZW50KQogewotICAgIC8vIFdl
IGRvbid0IHVwZGF0ZSA6aG92ZXIvOmFjdGl2ZSBzdGF0ZSB3aGVuIHRoZSByZXN1bHQgaXMgbWFy
a2VkIGFzIHJlYWRPbmx5LgotICAgIGlmIChyZXF1ZXN0LnJlYWRPbmx5KCkpCi0gICAgICAgIHJl
dHVybjsKKyAgICBBU1NFUlQoIXJlcXVlc3QucmVhZE9ubHkoKSk7CiAKLSAgICBFbGVtZW50KiBp
bm5lckVsZW1lbnRJbkRvY3VtZW50ID0gcmVzdWx0LmlubmVyRWxlbWVudCgpOwotICAgIHdoaWxl
IChpbm5lckVsZW1lbnRJbkRvY3VtZW50ICYmIGlubmVyRWxlbWVudEluRG9jdW1lbnQtPmRvY3Vt
ZW50KCkgIT0gdGhpcykKKyAgICBFbGVtZW50KiBpbm5lckVsZW1lbnRJbkRvY3VtZW50ID0gaW5u
ZXJFbGVtZW50OworICAgIHdoaWxlIChpbm5lckVsZW1lbnRJbkRvY3VtZW50ICYmIGlubmVyRWxl
bWVudEluRG9jdW1lbnQtPmRvY3VtZW50KCkgIT0gdGhpcykgeworICAgICAgICBpbm5lckVsZW1l
bnRJbkRvY3VtZW50LT5kb2N1bWVudCgpLT51cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKHJlcXVlc3Qs
IGlubmVyRWxlbWVudEluRG9jdW1lbnQpOwogICAgICAgICBpbm5lckVsZW1lbnRJbkRvY3VtZW50
ID0gaW5uZXJFbGVtZW50SW5Eb2N1bWVudC0+ZG9jdW1lbnQoKS0+b3duZXJFbGVtZW50KCk7Cisg
ICAgfQogCiAgICAgRWxlbWVudCogb2xkQWN0aXZlRWxlbWVudCA9IGFjdGl2ZUVsZW1lbnQoKTsK
ICAgICBpZiAob2xkQWN0aXZlRWxlbWVudCAmJiAhcmVxdWVzdC5hY3RpdmUoKSkgewpAQCAtNTky
Myw2ICs1OTIzLDggQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25z
dCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3UKICAgICAgICAgICAgIG5vZGVz
VG9BZGRUb0NoYWluW2ldLT5zZXRBY3RpdmUodHJ1ZSk7CiAgICAgICAgIG5vZGVzVG9BZGRUb0No
YWluW2ldLT5zZXRIb3ZlcmVkKHRydWUpOwogICAgIH0KKworICAgIHVwZGF0ZVN0eWxlSWZOZWVk
ZWQoKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMWFk
NjE1MTM1M2I2YWU0Mjg4N2NhZThhNTMyNTc4Mzk5ZTY0ZTZmMy4uMWVmMDMzODUwMzdlODMwYjgw
NWFkODA0MGJjYzY4YTMwNzlmYTBiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTY4OSw3ICs2
ODksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBob3ZlcmVkTm9kZURldGFjaGVkKE5vZGUqKTsKICAg
ICB2b2lkIGFjdGl2ZUNoYWluTm9kZURldGFjaGVkKE5vZGUqKTsKIAotICAgIHZvaWQgdXBkYXRl
SG92ZXJBY3RpdmVTdGF0ZShjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmKTsK
KyAgICB2b2lkIHVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBF
bGVtZW50Kik7CiAKICAgICAvLyBVcGRhdGVzIGZvciA6dGFyZ2V0IChDU1MzIHNlbGVjdG9yKS4K
ICAgICB2b2lkIHNldENTU1RhcmdldChFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKaW5kZXggNWVkNTI5NWYyODgyNmNhMTIxOTY0YjAzNjEzNzQ3MWI5OTE0NjM2ZS4u
OTRhODQwMjRjMzI0YjdmYmE1MTAzZjAwZGE2ZGRmZmEyNDY0ZjdhZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMTAzOSw2ICsxMDM5LDggQEAgSGl0VGVzdFJlc3VsdCBF
dmVudEhhbmRsZXI6OmhpdFRlc3RSZXN1bHRBdFBvaW50KGNvbnN0IExheW91dFBvaW50JiBwb2lu
dCwgSGl0VGUKICAgICAvLyBoaXRUZXN0UmVzdWx0QXRQb2ludCBpcyBzcGVjaWZpY2FsbHkgdXNl
ZCB0byBoaXRUZXN0IGludG8gYWxsIGZyYW1lcywgdGh1cyBpdCBhbHdheXMgYWxsb3dzIGNoaWxk
IGZyYW1lIGNvbnRlbnQuCiAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChoaXRUeXBlIHwgSGl0
VGVzdFJlcXVlc3Q6OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQpOwogICAgIG1fZnJhbWUtPmNvbnRl
bnRSZW5kZXJlcigpLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CisgICAgaWYgKCFyZXF1ZXN0
LnJlYWRPbmx5KCkpCisgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnVwZGF0ZUhvdmVyQWN0
aXZlU3RhdGUocmVxdWVzdCwgcmVzdWx0LmlubmVyRWxlbWVudCgpKTsKIAogICAgIGlmICghcmVx
dWVzdC5hbGxvd3NTaGFkb3dDb250ZW50KCkpCiAgICAgICAgIHJlc3VsdC5zZXRUb05vblNoYWRv
d0FuY2VzdG9yKCk7CkBAIC0yOTM1LDEwICsyOTM3LDggQEAgYm9vbCBFdmVudEhhbmRsZXI6OnNl
bmRDb250ZXh0TWVudUV2ZW50Rm9yS2V5KCkKICAgICAvLyBVc2UgdGhlIGZvY3VzZWQgbm9kZSBh
cyB0aGUgdGFyZ2V0IGZvciBob3ZlciBhbmQgYWN0aXZlLgogICAgIEhpdFRlc3RSZXN1bHQgcmVz
dWx0KHBvc2l0aW9uKTsKICAgICByZXN1bHQuc2V0SW5uZXJOb2RlKHRhcmdldE5vZGUpOwotICAg
IEhpdFRlc3RSZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSk7Ci0gICAgZG9j
LT51cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKHJlcXVlc3QsIHJlc3VsdCk7Ci0gICAgZG9jLT51cGRh
dGVTdHlsZUlmTmVlZGVkKCk7Ci0gICAKKyAgICBkb2MtPnVwZGF0ZUhvdmVyQWN0aXZlU3RhdGUo
SGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSwgcmVzdWx0LmlubmVyRWxlbWVudCgpKTsKKwogICAgIC8v
IFRoZSBjb250ZXh0bWVudSBldmVudCBpcyBhIG1vdXNlIGV2ZW50IGV2ZW4gd2hlbiBpbnZva2Vk
IHVzaW5nIHRoZSBrZXlib2FyZC4KICAgICAvLyBUaGlzIGlzIHJlcXVpcmVkIGZvciB3ZWIgY29t
cGF0aWJpbGl0eS4KIApAQCAtMzA3NCw3ICszMDc0LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6Omhv
dmVyVGltZXJGaXJlZChUaW1lcjxFdmVudEhhbmRsZXI+KikKICAgICAgICAgICAgIEhpdFRlc3RS
ZXF1ZXN0IHJlcXVlc3QoSGl0VGVzdFJlcXVlc3Q6Ok1vdmUpOwogICAgICAgICAgICAgSGl0VGVz
dFJlc3VsdCByZXN1bHQodmlldy0+d2luZG93VG9Db250ZW50cyhtX2xhc3RLbm93bk1vdXNlUG9z
aXRpb24pKTsKICAgICAgICAgICAgIHJlbmRlcmVyLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7
Ci0gICAgICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7
CisgICAgICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVIb3ZlckFjdGl2ZVN0YXRl
KHJlcXVlc3QsIHJlc3VsdC5pbm5lckVsZW1lbnQoKSk7CiAgICAgICAgIH0KICAgICB9CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggZGIyODI0MGVkOWI1MjY5
MmRmNGE5OWI4ZGE5ZGZhMWQwZTNjNmMwMy4uMzIxNzM5NjcyN2Q1YzhjZTdlZmY1MDgxOGMyZjU3
NDRkNWU4OWYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAt
OTIsMTIgKzkyLDcgQEAgYm9vbCBSZW5kZXJWaWV3OjpoaXRUZXN0KGNvbnN0IEhpdFRlc3RSZXF1
ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQpCiAKIGJvb2wgUmVuZGVyVmlldzo6
aGl0VGVzdChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgSGl0VGVzdExvY2F0
aW9uJiBsb2NhdGlvbiwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KQogewotICAgIGJvb2wgaW5zaWRl
ID0gbGF5ZXIoKS0+aGl0VGVzdChyZXF1ZXN0LCBsb2NhdGlvbiwgcmVzdWx0KTsKLQotICAgIC8v
IE5leHQgc2V0IHVwIHRoZSBjb3JyZWN0IDpob3Zlci86YWN0aXZlIHN0YXRlIGFsb25nIHRoZSBu
ZXcgY2hhaW4uCi0gICAgZG9jdW1lbnQoKS0+dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShyZXF1ZXN0
LCByZXN1bHQpOwotCi0gICAgcmV0dXJuIGluc2lkZTsKKyAgICByZXR1cm4gbGF5ZXIoKS0+aGl0
VGVzdChyZXF1ZXN0LCBsb2NhdGlvbiwgcmVzdWx0KTsKIH0KIAogdm9pZCBSZW5kZXJWaWV3Ojpj
b21wdXRlTG9naWNhbEhlaWdodChMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIExheW91dFVuaXQs
IExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYgY29tcHV0ZWRWYWx1ZXMpIGNvbnN0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>