<?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>66531</bug_id>
          
          <creation_ts>2011-08-18 20:43:22 -0700</creation_ts>
          <short_desc>Don&apos;t detach elements from the render tree when entering fullscreen mode</short_desc>
          <delta_ts>2011-10-15 00:09:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Jeremy Apthorp">jeremya</reporter>
          <assigned_to name="James Kozianski">koz</assigned_to>
          <cc>fishd</cc>
    
    <cc>gustavo</cc>
    
    <cc>inferno</cc>
    
    <cc>jamesr</cc>
    
    <cc>jeremya</cc>
    
    <cc>jer.noble</cc>
    
    <cc>koz</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>453591</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Apthorp">jeremya</who>
    <bug_when>2011-08-18 20:43:22 -0700</bug_when>
    <thetext>Don&apos;t detach elements from the render tree when entering fullscreen mode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453592</commentid>
    <comment_count>1</comment_count>
      <attachid>104448</attachid>
    <who name="Jeremy Apthorp">jeremya</who>
    <bug_when>2011-08-18 20:48:20 -0700</bug_when>
    <thetext>Created attachment 104448
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453598</commentid>
    <comment_count>2</comment_count>
      <attachid>104448</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-08-18 20:58:35 -0700</bug_when>
    <thetext>Comment on attachment 104448
Patch

Attachment 104448 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/9433030</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453602</commentid>
    <comment_count>3</comment_count>
      <attachid>104452</attachid>
    <who name="Jeremy Apthorp">jeremya</who>
    <bug_when>2011-08-18 21:06:12 -0700</bug_when>
    <thetext>Created attachment 104452
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453606</commentid>
    <comment_count>4</comment_count>
      <attachid>104452</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-08-18 21:09:31 -0700</bug_when>
    <thetext>Comment on attachment 104452
Patch

Attachment 104452 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/9437044</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453609</commentid>
    <comment_count>5</comment_count>
      <attachid>104453</attachid>
    <who name="Jeremy Apthorp">jeremya</who>
    <bug_when>2011-08-18 21:12:28 -0700</bug_when>
    <thetext>Created attachment 104453
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453821</commentid>
    <comment_count>6</comment_count>
      <attachid>104453</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-08-19 07:47:37 -0700</bug_when>
    <thetext>Comment on attachment 104453
Patch

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

&gt; Source/WebCore/dom/Document.cpp:4820
&gt; +    if (m_fullScreenElement != documentElement()) {
&gt; +        RenderFullScreen* fullscreenRenderer = new (renderArena()) RenderFullScreen(this);
&gt; +        fullscreenRenderer-&gt;setStyle(RenderFullScreen::createFullScreenStyle());
&gt; +        fullscreenRenderer-&gt;wrapRenderer(renderer);
&gt; +        setFullScreenRenderer(fullscreenRenderer);
&gt; +    }

This is mostly duplicating existing code in NodeRenderingContext.cpp: wrapWithRenderFullScreen(...).

&gt; Source/WebCore/rendering/RenderFullScreen.cpp:114
&gt; +void RenderFullScreen::wrapRenderer(RenderObject* renderer)
&gt; +{
&gt; +    RenderObject* parent = renderer-&gt;parent();
&gt; +    parent-&gt;addChild(this, renderer);
&gt; +    renderer-&gt;remove();
&gt; +    addChild(renderer);
&gt; +}

As is this.  Perhaps that function could be promoted to a public class method or moved into RenderFullScreen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454463</commentid>
    <comment_count>7</comment_count>
      <attachid>104645</attachid>
    <who name="Jeremy Apthorp">jeremya</who>
    <bug_when>2011-08-21 23:05:40 -0700</bug_when>
    <thetext>Created attachment 104645
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454464</commentid>
    <comment_count>8</comment_count>
      <attachid>104453</attachid>
    <who name="Jeremy Apthorp">jeremya</who>
    <bug_when>2011-08-21 23:06:22 -0700</bug_when>
    <thetext>Comment on attachment 104453
Patch

I&apos;ve refactored the wrap/unwrapRenderer functions. wrapRenderer is now a static method that creates and styles the RenderFullScreen object, and unwrapRenderer removes the wrappings.  RFS::createFullScreenStyle was only being called from RenderFullScreen.cpp, so I&apos;ve made that method private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454632</commentid>
    <comment_count>9</comment_count>
      <attachid>104645</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-22 09:36:41 -0700</bug_when>
    <thetext>Comment on attachment 104645
Patch

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

&gt; Source/WebCore/ChangeLog:7
&gt; +        This prevents plugin instances from being destroyed and reinstantiated
&gt; +        when entering fullscreen mode.

Then there should be a test demonstrating this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454683</commentid>
    <comment_count>10</comment_count>
      <attachid>104645</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-08-22 10:48:44 -0700</bug_when>
    <thetext>Comment on attachment 104645
Patch

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

&gt; Source/WebCore/rendering/RenderFullScreen.cpp:114
&gt; +        RenderObject* parent = object-&gt;parent();
&gt; +        if (parent) {

I think this can be written as:

if (RenderObject* parent = object-&gt;parent()) {

&gt; Source/WebCore/rendering/RenderFullScreen.h:50
&gt; +    RenderObject* m_wrappedRenderer;

The wrapped renderer will always be the first and only child of the RenderFullScreen, so this extra ivar is probably unnecessary.  All the instances above which reference m_wrappedRenderer can be replaced with firstChild().

&gt; Source/WebCore/rendering/RenderFullScreen.h:51
&gt; +    static PassRefPtr&lt;RenderStyle&gt; createFullScreenStyle();

If this is only ever accessed from RenderFullScreen.cpp now, it can be made a file static.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455152</commentid>
    <comment_count>11</comment_count>
      <attachid>104782</attachid>
    <who name="Jeremy Apthorp">jeremya</who>
    <bug_when>2011-08-22 19:12:59 -0700</bug_when>
    <thetext>Created attachment 104782
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455153</commentid>
    <comment_count>12</comment_count>
      <attachid>104645</attachid>
    <who name="Jeremy Apthorp">jeremya</who>
    <bug_when>2011-08-22 19:14:06 -0700</bug_when>
    <thetext>Comment on attachment 104645
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:7
&gt;&gt; +        when entering fullscreen mode.
&gt; 
&gt; Then there should be a test demonstrating this.

Done.

&gt;&gt; Source/WebCore/rendering/RenderFullScreen.cpp:114
&gt;&gt; +        if (parent) {
&gt; 
&gt; I think this can be written as:
&gt; 
&gt; if (RenderObject* parent = object-&gt;parent()) {

Done.

&gt;&gt; Source/WebCore/rendering/RenderFullScreen.h:50
&gt;&gt; +    RenderObject* m_wrappedRenderer;
&gt; 
&gt; The wrapped renderer will always be the first and only child of the RenderFullScreen, so this extra ivar is probably unnecessary.  All the instances above which reference m_wrappedRenderer can be replaced with firstChild().

Done.

&gt;&gt; Source/WebCore/rendering/RenderFullScreen.h:51
&gt;&gt; +    static PassRefPtr&lt;RenderStyle&gt; createFullScreenStyle();
&gt; 
&gt; If this is only ever accessed from RenderFullScreen.cpp now, it can be made a file static.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455176</commentid>
    <comment_count>13</comment_count>
      <attachid>104784</attachid>
    <who name="Jeremy Apthorp">jeremya</who>
    <bug_when>2011-08-22 20:51:05 -0700</bug_when>
    <thetext>Created attachment 104784
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455460</commentid>
    <comment_count>14</comment_count>
      <attachid>104784</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-08-23 10:06:48 -0700</bug_when>
    <thetext>Comment on attachment 104784
Patch

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

&gt; Source/WebCore/rendering/RenderFullScreen.cpp:101
&gt; -    fullscreenStyle-&gt;setLeft(Length(0, Fixed));
&gt; -    fullscreenStyle-&gt;setTop(Length(0, Fixed));
&gt; +    fullscreenStyle-&gt;setLeft(Length(0, WebCore::Fixed));
&gt; +    fullscreenStyle-&gt;setTop(Length(0, WebCore::Fixed));

I&apos;m curious why this is necessary, given the &quot;using namespace WebCore;&quot; directive above.

&gt; Source/WebCore/rendering/RenderFullScreen.cpp:133
&gt; +    if (wrappedRenderer)
&gt; +        wrappedRenderer-&gt;remove();
&gt; +    RenderObject* holder = placeholder() ? placeholder() : this;
&gt; +    RenderObject* parent = holder-&gt;parent();
&gt; +    if (parent)
&gt; +        parent-&gt;addChild(wrappedRenderer, holder);

You null-check wrappedRenderer before calling remove(), but not before passing wrappedRenderer to parent-&gt;addChild().  It appears it&apos;s not safe to pass a null value into that function (see RenderObject.cpp), so the second if statement should check wrappedRenderer as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455739</commentid>
    <comment_count>15</comment_count>
      <attachid>104918</attachid>
    <who name="Jeremy Apthorp">jeremya</who>
    <bug_when>2011-08-23 15:18:07 -0700</bug_when>
    <thetext>Created attachment 104918
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455740</commentid>
    <comment_count>16</comment_count>
      <attachid>104784</attachid>
    <who name="Jeremy Apthorp">jeremya</who>
    <bug_when>2011-08-23 15:18:41 -0700</bug_when>
    <thetext>Comment on attachment 104784
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderFullScreen.cpp:101
&gt;&gt; +    fullscreenStyle-&gt;setTop(Length(0, WebCore::Fixed));
&gt; 
&gt; I&apos;m curious why this is necessary, given the &quot;using namespace WebCore;&quot; directive above.

It&apos;s ambiguous with &apos;typedef SInt32 Fixed&apos; in a system header (MacTypes.h) if I don&apos;t include the namespace resolution.

&gt;&gt; Source/WebCore/rendering/RenderFullScreen.cpp:133
&gt;&gt; +        parent-&gt;addChild(wrappedRenderer, holder);
&gt; 
&gt; You null-check wrappedRenderer before calling remove(), but not before passing wrappedRenderer to parent-&gt;addChild().  It appears it&apos;s not safe to pass a null value into that function (see RenderObject.cpp), so the second if statement should check wrappedRenderer as well.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461610</commentid>
    <comment_count>17</comment_count>
    <who name="Jeremy Apthorp">jeremya</who>
    <bug_when>2011-09-02 16:11:44 -0700</bug_when>
    <thetext>Ping- what more needs to be done here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461845</commentid>
    <comment_count>18</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-09-03 13:28:01 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Ping- what more needs to be done here?

Nothing; looks good to me!  (I can&apos;t r+ your patch though; sorry :-( )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462011</commentid>
    <comment_count>19</comment_count>
      <attachid>104918</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-09-04 20:46:06 -0700</bug_when>
    <thetext>Comment on attachment 104918
Patch

R=me based on Jer&apos;s unofficial review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462022</commentid>
    <comment_count>20</comment_count>
      <attachid>104918</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-04 21:45:29 -0700</bug_when>
    <thetext>Comment on attachment 104918
Patch

Clearing flags on attachment: 104918

Committed r94510: &lt;http://trac.webkit.org/changeset/94510&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462023</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-04 21:45:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462041</commentid>
    <comment_count>22</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2011-09-04 23:19:52 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; All reviewed patches have been landed.  Closing bug.

Tests that crashed:
+fullscreen/full-screen-twice.html	crash log
+fullscreen/full-screen-css.html	crash log
+fullscreen/full-screen-keyboard-enabled.html	crash log
+fullscreen/full-screen-zIndex-after.html	crash log
+fullscreen/full-screen-placeholder.html	crash log
+fullscreen/full-screen-keyboard-disabled.html	crash log

6 new crashes starting this commit, can you please fix/revert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462048</commentid>
    <comment_count>23</comment_count>
    <who name="James Kozianski">koz</who>
    <bug_when>2011-09-04 23:42:54 -0700</bug_when>
    <thetext>Reverted r94510 for reason:

Causes

Committed r94513: &lt;http://trac.webkit.org/changeset/94513&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462301</commentid>
    <comment_count>24</comment_count>
      <attachid>106371</attachid>
    <who name="James Kozianski">koz</who>
    <bug_when>2011-09-05 18:17:14 -0700</bug_when>
    <thetext>Created attachment 106371
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462307</commentid>
    <comment_count>25</comment_count>
    <who name="James Kozianski">koz</who>
    <bug_when>2011-09-05 18:27:23 -0700</bug_when>
    <thetext>The previous patch crashed when we attempted to enter fullscreen mode when we were already in fullscreen mode. This patch avoids that crash by removing the old fullscreen renderer from the render tree before amending the new one.

The new lines are at the start of Document::webkitWillEnterFullScreenForElement(), namely:

if (m_fullScreenRenderer)
    m_fullScreenRenderer-&gt;unwrapRenderer();


Another way to solve this problem is to exit fullscreen mode completely when a page enters fullscreen again, which would be more work, but should leave less room for bugs like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>465490</commentid>
    <comment_count>26</comment_count>
    <who name="James Kozianski">koz</who>
    <bug_when>2011-09-11 22:37:16 -0700</bug_when>
    <thetext>Ping. Is anybody able to take a look at this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466842</commentid>
    <comment_count>27</comment_count>
      <attachid>106371</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-09-13 22:16:12 -0700</bug_when>
    <thetext>Comment on attachment 106371
Patch

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

The C++ changes all look good, but I have some concerns about how the test is working.

&gt; LayoutTests/plugins/fullscreen-plugins-dont-reload-expected.txt:4
&gt; +ALERT: Plugin Loaded!
&gt; +layer at (0,0) size 800x600
&gt; +  RenderView at (0,0) size 800x600
&gt; +layer at (0,0) size 800x600

I can&apos;t really tell what this test output is trying to tell me.  What happens if the test fails?  Is the render tree part of the expected test output?

Are you trying to tell if the plugin is loading once or twice?  If so then this should be dumpAsText() and probably have some sort of text in the output indicating what is supposed to be there.

&gt; LayoutTests/plugins/fullscreen-plugins-dont-reload.html:21
&gt; +    }, 100);

why setTimeout(..., 100)? that seems like a recipe for flake - is there something in particular you are waiting for?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468803</commentid>
    <comment_count>28</comment_count>
      <attachid>107720</attachid>
    <who name="Jeremy Apthorp">jeremya</who>
    <bug_when>2011-09-16 14:18:25 -0700</bug_when>
    <thetext>Created attachment 107720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468804</commentid>
    <comment_count>29</comment_count>
    <who name="Jeremy Apthorp">jeremya</who>
    <bug_when>2011-09-16 14:19:24 -0700</bug_when>
    <thetext>James- I&apos;ve updated the test so it uses the events instead of timeouts, and updated the expected text to reflect what is actually expected. Could you take another look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468816</commentid>
    <comment_count>30</comment_count>
      <attachid>107725</attachid>
    <who name="Jeremy Apthorp">jeremya</who>
    <bug_when>2011-09-16 14:42:20 -0700</bug_when>
    <thetext>Created attachment 107725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468817</commentid>
    <comment_count>31</comment_count>
      <attachid>107725</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-09-16 14:44:25 -0700</bug_when>
    <thetext>Comment on attachment 107725
Patch

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469044</commentid>
    <comment_count>32</comment_count>
      <attachid>107725</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-16 23:06:49 -0700</bug_when>
    <thetext>Comment on attachment 107725
Patch

Clearing flags on attachment: 107725

Committed r95371: &lt;http://trac.webkit.org/changeset/95371&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469045</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-16 23:06:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470385</commentid>
    <comment_count>34</comment_count>
      <attachid>108060</attachid>
    <who name="Jeremy Apthorp">jeremya</who>
    <bug_when>2011-09-20 15:15:46 -0700</bug_when>
    <thetext>Created attachment 108060
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470391</commentid>
    <comment_count>35</comment_count>
    <who name="Jeremy Apthorp">jeremya</who>
    <bug_when>2011-09-20 15:17:17 -0700</bug_when>
    <thetext>Using firstChild() is not correct in the case of inline elements containing block elements. since the inline elements get split into parts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470450</commentid>
    <comment_count>36</comment_count>
      <attachid>108060</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-20 16:23:49 -0700</bug_when>
    <thetext>Comment on attachment 108060
Patch

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

Why no test case?

&gt; Source/WebCore/rendering/RenderFullScreen.cpp:128
&gt; -    RenderObject* wrappedRenderer = firstChild();
&gt; +    RenderObject* wrappedRenderer = m_wrappedRenderer;

What guarantees this renderer is has not been deallocated? Maybe its style was changed to display: none?

&gt; Source/WebCore/rendering/RenderFullScreen.cpp:137
&gt; +    document()-&gt;recalcStyle(Node::Force);

This needs a comment. It’s unclear why it’s helpful. The comment in the change log saying “do this here in order to avoid destroying elements that haven&apos;t yet followed the wrapped element out of the RenderFullScreen” doesn’t make it clear to me what the issue is. Maybe there’s a clearer way to explain it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470455</commentid>
    <comment_count>37</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2011-09-20 16:28:45 -0700</bug_when>
    <thetext>(In reply to comment #35)
&gt; Using firstChild() is not correct in the case of inline elements containing block elements. since the inline elements get split into parts.

We should have filed this as a separate security bug with credit: and crbug link. That makes it easy to track for all webkit consumers. Please do attach the testcase as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484518</commentid>
    <comment_count>38</comment_count>
      <attachid>108060</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-15 00:09:03 -0700</bug_when>
    <thetext>Comment on attachment 108060
Patch

Cleared review? from attachment 108060 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104448</attachid>
            <date>2011-08-18 20:48:20 -0700</date>
            <delta_ts>2011-08-18 21:06:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66531-20110819134818.patch</filename>
            <type>text/plain</type>
            <size>4257</size>
            <attacher name="Jeremy Apthorp">jeremya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMzMjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiMzFkZWY1NjM2NWM2Nzc1
MDk4ZGJjNTJiMzY3MGJkOGI0YmYzZTFkLi45NTI3Y2JjZGY0N2VmYzYxNjk2N2UwOGEzNjlmMmZk
MzlmNWZiNGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDgtMTggIEplcmVt
eSBBcHRob3JwICA8amVyZW15YUBnb29nbGUuY29tPgorCisgICAgICAgIERvbid0IGRldGFjaCBl
bGVtZW50cyBmcm9tIHRoZSByZW5kZXIgdHJlZSB3aGVuIGVudGVyaW5nIGZ1bGxzY3JlZW4gbW9k
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1MzEK
KworICAgICAgICBUaGlzIHByZXZlbnRzIHBsdWdpbiBpbnN0YW5jZXMgZnJvbSBiZWluZyBkZXN0
cm95ZWQgYW5kIHJlaW5zdGFudGlhdGVkCisgICAgICAgIHdoZW4gZW50ZXJpbmcgZnVsbHNjcmVl
biBtb2RlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0RGlkRXhpdEZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHA6
CisgICAgICAgIChSZW5kZXJGdWxsU2NyZWVuOjp3cmFwUmVuZGVyZXIpOgorICAgICAgICAoUmVu
ZGVyRnVsbFNjcmVlbjo6dW53cmFwUmVuZGVyZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJGdWxsU2NyZWVuLmg6CisKIDIwMTEtMDgtMTggIE5pY28gV2ViZXIgIDx0aGFraXNAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIEZpeCAibWlzc2luZyByZXR1cm4iIGdjYyB3YXJuaW5nIGluIFNj
cm9sbEFuaW1hdG9yTm9uZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMTUwYzBmY2VjNGQ3
YjE1MjNmNGFlZmQ3ZmFmOTdmOWY1YzViOTcyMy4uMjc5MGI1ODlhMWI0ODUyMTFmYjA4Y2ZiYjI4
OGI4OGEwODA5YTdmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00ODEyLDggKzQ4MTIs
MTIgQEAgdm9pZCBEb2N1bWVudDo6d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQo
RWxlbWVudCogZWxlbWVudCkKICAgICAgICAgbV9zYXZlZFBsYWNlaG9sZGVyUmVuZGVyU3R5bGUg
PSBSZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXItPnN0eWxlKCkpOwogICAgIH0KIAotICAgIGlm
IChtX2Z1bGxTY3JlZW5FbGVtZW50ICE9IGRvY3VtZW50RWxlbWVudCgpKQotICAgICAgICBtX2Z1
bGxTY3JlZW5FbGVtZW50LT5kZXRhY2goKTsKKyAgICBpZiAobV9mdWxsU2NyZWVuRWxlbWVudCAh
PSBkb2N1bWVudEVsZW1lbnQoKSkgeworICAgICAgICBSZW5kZXJGdWxsU2NyZWVuKiBmdWxsc2Ny
ZWVuUmVuZGVyZXIgPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlckZ1bGxTY3JlZW4odGhpcyk7
CisgICAgICAgIGZ1bGxzY3JlZW5SZW5kZXJlci0+c2V0U3R5bGUoUmVuZGVyRnVsbFNjcmVlbjo6
Y3JlYXRlRnVsbFNjcmVlblN0eWxlKCkpOworICAgICAgICBmdWxsc2NyZWVuUmVuZGVyZXItPndy
YXBSZW5kZXJlcihyZW5kZXJlcik7CisgICAgICAgIHNldEZ1bGxTY3JlZW5SZW5kZXJlcihmdWxs
c2NyZWVuUmVuZGVyZXIpOworICAgIH0KIAogICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQtPnNldENv
bnRhaW5zRnVsbFNjcmVlbkVsZW1lbnRPbkFuY2VzdG9yc0Nyb3NzaW5nRnJhbWVCb3VuZGFyaWVz
KHRydWUpOwogICAgIApAQCAtNDg2NCwxMiArNDg2OCwxMSBAQCB2b2lkIERvY3VtZW50Ojp3ZWJr
aXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopCiB7CiAgICAgbV9hcmVLZXlz
RW5hYmxlZEluRnVsbFNjcmVlbiA9IGZhbHNlOwogICAgIHNldEFuaW1hdGluZ0Z1bGxTY3JlZW4o
ZmFsc2UpOwotCi0gICAgaWYgKG1fZnVsbFNjcmVlblJlbmRlcmVyKQotICAgICAgICBtX2Z1bGxT
Y3JlZW5SZW5kZXJlci0+cmVtb3ZlKCk7CiAgICAgCi0gICAgaWYgKG1fZnVsbFNjcmVlbkVsZW1l
bnQgIT0gZG9jdW1lbnRFbGVtZW50KCkpCi0gICAgICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQtPmRl
dGFjaCgpOworICAgIGlmIChtX2Z1bGxTY3JlZW5FbGVtZW50ICE9IGRvY3VtZW50RWxlbWVudCgp
KSB7CisgICAgICAgIG1fZnVsbFNjcmVlblJlbmRlcmVyLT51bndyYXBSZW5kZXJlcihtX2Z1bGxT
Y3JlZW5FbGVtZW50LT5yZW5kZXJlcigpKTsKKyAgICAgICAgbV9mdWxsU2NyZWVuUmVuZGVyZXIt
PnJlbW92ZSgpOworICAgIH0KIAogICAgIG1fZnVsbFNjcmVlbkNoYW5nZUV2ZW50VGFyZ2V0UXVl
dWUuYXBwZW5kKG1fZnVsbFNjcmVlbkVsZW1lbnQucmVsZWFzZSgpKTsKICAgICBzZXRGdWxsU2Ny
ZWVuUmVuZGVyZXIoMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRnVsbFNjcmVlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNj
cmVlbi5jcHAKaW5kZXggMThkYmM5ZjQ4NzMzY2YwNTBjOThiMmM0Y2UxYmM5Y2Y3NmU1YWNkYi4u
MDQzNWVhYjUxNWE2M2U5MTJlOTFjOTVjNjNhNjY1YjNkMmQ2OWM1MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcApAQCAtMTA1LDYgKzEwNSwyMSBA
QCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBSZW5kZXJGdWxsU2NyZWVuOjpjcmVhdGVGdWxsU2Ny
ZWVuU3R5bGUoKQogICAgIHJldHVybiBmdWxsc2NyZWVuU3R5bGUucmVsZWFzZSgpOwogfQogCitS
ZW5kZXJGdWxsU2NyZWVuKiBSZW5kZXJGdWxsU2NyZWVuOjp3cmFwUmVuZGVyZXIoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlcikKK3sKKyAgICBSZW5kZXJPYmplY3QqIHBhcmVudCA9IHJlbmRlcmVyLT5w
YXJlbnQoKTsKKyAgICBwYXJlbnQtPmFkZENoaWxkKGZ1bGxzY3JlZW5SZW5kZXJlciwgcmVuZGVy
ZXIpOworICAgIHJlbmRlcmVyLT5yZW1vdmUoKTsKKyAgICBmdWxsc2NyZWVuUmVuZGVyZXItPmFk
ZENoaWxkKHJlbmRlcmVyKTsKK30KKworUmVuZGVyRnVsbFNjcmVlbiogUmVuZGVyRnVsbFNjcmVl
bjo6dW53cmFwUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK3sKKyAgICBSZW5kZXJP
YmplY3QqIGhvbGRlciA9IHBsYWNlaG9sZGVyKCkgPyBwbGFjZWhvbGRlcigpIDogdGhpczsKKyAg
ICByZW5kZXJlci0+cmVtb3ZlKCk7CisgICAgaG9sZGVyLT5wYXJlbnQoKS0+YWRkQ2hpbGQocmVu
ZGVyZXIsIGhvbGRlcik7Cit9CisKIHZvaWQgUmVuZGVyRnVsbFNjcmVlbjo6c2V0UGxhY2Vob2xk
ZXIoUmVuZGVyQmxvY2sqIHBsYWNlaG9sZGVyKQogewogICAgIG1fcGxhY2Vob2xkZXIgPSBwbGFj
ZWhvbGRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxs
U2NyZWVuLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5oCmlu
ZGV4IDZmNGM3ODMxY2RkYzFkNjNmYTAzMWRiODcwNzg2MjJlYTVhYjY3ZDUuLjkwZDc4MjM1Yjc5
NzlmZDU3OGMxNDk5Yzg4NTk5NTI2ZmZlM2QwNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZ1bGxTY3JlZW4uaApAQCAtNDMsNiArNDMsOSBAQCBwdWJsaWM6CiAKICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gY3JlYXRlRnVsbFNjcmVlblN0eWxlKCk7CiAK
KyAgICB2b2lkIHdyYXBSZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKTsKKyAgICB2b2lk
IHVud3JhcFJlbmRlcmVyKFJlbmRlck9iamVjdCogcmVuZGVyZXIpOworCiBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104452</attachid>
            <date>2011-08-18 21:06:12 -0700</date>
            <delta_ts>2011-08-18 21:12:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66531-20110819140610.patch</filename>
            <type>text/plain</type>
            <size>4231</size>
            <attacher name="Jeremy Apthorp">jeremya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMzMjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiMzFkZWY1NjM2NWM2Nzc1
MDk4ZGJjNTJiMzY3MGJkOGI0YmYzZTFkLi45NTI3Y2JjZGY0N2VmYzYxNjk2N2UwOGEzNjlmMmZk
MzlmNWZiNGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDgtMTggIEplcmVt
eSBBcHRob3JwICA8amVyZW15YUBnb29nbGUuY29tPgorCisgICAgICAgIERvbid0IGRldGFjaCBl
bGVtZW50cyBmcm9tIHRoZSByZW5kZXIgdHJlZSB3aGVuIGVudGVyaW5nIGZ1bGxzY3JlZW4gbW9k
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1MzEK
KworICAgICAgICBUaGlzIHByZXZlbnRzIHBsdWdpbiBpbnN0YW5jZXMgZnJvbSBiZWluZyBkZXN0
cm95ZWQgYW5kIHJlaW5zdGFudGlhdGVkCisgICAgICAgIHdoZW4gZW50ZXJpbmcgZnVsbHNjcmVl
biBtb2RlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0RGlkRXhpdEZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHA6
CisgICAgICAgIChSZW5kZXJGdWxsU2NyZWVuOjp3cmFwUmVuZGVyZXIpOgorICAgICAgICAoUmVu
ZGVyRnVsbFNjcmVlbjo6dW53cmFwUmVuZGVyZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJGdWxsU2NyZWVuLmg6CisKIDIwMTEtMDgtMTggIE5pY28gV2ViZXIgIDx0aGFraXNAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIEZpeCAibWlzc2luZyByZXR1cm4iIGdjYyB3YXJuaW5nIGluIFNj
cm9sbEFuaW1hdG9yTm9uZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMTUwYzBmY2VjNGQ3
YjE1MjNmNGFlZmQ3ZmFmOTdmOWY1YzViOTcyMy4uMjc5MGI1ODlhMWI0ODUyMTFmYjA4Y2ZiYjI4
OGI4OGEwODA5YTdmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00ODEyLDggKzQ4MTIs
MTIgQEAgdm9pZCBEb2N1bWVudDo6d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQo
RWxlbWVudCogZWxlbWVudCkKICAgICAgICAgbV9zYXZlZFBsYWNlaG9sZGVyUmVuZGVyU3R5bGUg
PSBSZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXItPnN0eWxlKCkpOwogICAgIH0KIAotICAgIGlm
IChtX2Z1bGxTY3JlZW5FbGVtZW50ICE9IGRvY3VtZW50RWxlbWVudCgpKQotICAgICAgICBtX2Z1
bGxTY3JlZW5FbGVtZW50LT5kZXRhY2goKTsKKyAgICBpZiAobV9mdWxsU2NyZWVuRWxlbWVudCAh
PSBkb2N1bWVudEVsZW1lbnQoKSkgeworICAgICAgICBSZW5kZXJGdWxsU2NyZWVuKiBmdWxsc2Ny
ZWVuUmVuZGVyZXIgPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlckZ1bGxTY3JlZW4odGhpcyk7
CisgICAgICAgIGZ1bGxzY3JlZW5SZW5kZXJlci0+c2V0U3R5bGUoUmVuZGVyRnVsbFNjcmVlbjo6
Y3JlYXRlRnVsbFNjcmVlblN0eWxlKCkpOworICAgICAgICBmdWxsc2NyZWVuUmVuZGVyZXItPndy
YXBSZW5kZXJlcihyZW5kZXJlcik7CisgICAgICAgIHNldEZ1bGxTY3JlZW5SZW5kZXJlcihmdWxs
c2NyZWVuUmVuZGVyZXIpOworICAgIH0KIAogICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQtPnNldENv
bnRhaW5zRnVsbFNjcmVlbkVsZW1lbnRPbkFuY2VzdG9yc0Nyb3NzaW5nRnJhbWVCb3VuZGFyaWVz
KHRydWUpOwogICAgIApAQCAtNDg2NCwxMiArNDg2OCwxMSBAQCB2b2lkIERvY3VtZW50Ojp3ZWJr
aXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopCiB7CiAgICAgbV9hcmVLZXlz
RW5hYmxlZEluRnVsbFNjcmVlbiA9IGZhbHNlOwogICAgIHNldEFuaW1hdGluZ0Z1bGxTY3JlZW4o
ZmFsc2UpOwotCi0gICAgaWYgKG1fZnVsbFNjcmVlblJlbmRlcmVyKQotICAgICAgICBtX2Z1bGxT
Y3JlZW5SZW5kZXJlci0+cmVtb3ZlKCk7CiAgICAgCi0gICAgaWYgKG1fZnVsbFNjcmVlbkVsZW1l
bnQgIT0gZG9jdW1lbnRFbGVtZW50KCkpCi0gICAgICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQtPmRl
dGFjaCgpOworICAgIGlmIChtX2Z1bGxTY3JlZW5FbGVtZW50ICE9IGRvY3VtZW50RWxlbWVudCgp
KSB7CisgICAgICAgIG1fZnVsbFNjcmVlblJlbmRlcmVyLT51bndyYXBSZW5kZXJlcihtX2Z1bGxT
Y3JlZW5FbGVtZW50LT5yZW5kZXJlcigpKTsKKyAgICAgICAgbV9mdWxsU2NyZWVuUmVuZGVyZXIt
PnJlbW92ZSgpOworICAgIH0KIAogICAgIG1fZnVsbFNjcmVlbkNoYW5nZUV2ZW50VGFyZ2V0UXVl
dWUuYXBwZW5kKG1fZnVsbFNjcmVlbkVsZW1lbnQucmVsZWFzZSgpKTsKICAgICBzZXRGdWxsU2Ny
ZWVuUmVuZGVyZXIoMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRnVsbFNjcmVlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNj
cmVlbi5jcHAKaW5kZXggMThkYmM5ZjQ4NzMzY2YwNTBjOThiMmM0Y2UxYmM5Y2Y3NmU1YWNkYi4u
MDliNDA4ZjliNjczNGNkMzhmZThkMTUwNTM4YzRmN2Y5NDZlNGVjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcApAQCAtMTA1LDYgKzEwNSwyMSBA
QCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBSZW5kZXJGdWxsU2NyZWVuOjpjcmVhdGVGdWxsU2Ny
ZWVuU3R5bGUoKQogICAgIHJldHVybiBmdWxsc2NyZWVuU3R5bGUucmVsZWFzZSgpOwogfQogCit2
b2lkIFJlbmRlckZ1bGxTY3JlZW46OndyYXBSZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVy
KQoreworICAgIFJlbmRlck9iamVjdCogcGFyZW50ID0gcmVuZGVyZXItPnBhcmVudCgpOworICAg
IHBhcmVudC0+YWRkQ2hpbGQoZnVsbHNjcmVlblJlbmRlcmVyLCByZW5kZXJlcik7CisgICAgcmVu
ZGVyZXItPnJlbW92ZSgpOworICAgIGZ1bGxzY3JlZW5SZW5kZXJlci0+YWRkQ2hpbGQocmVuZGVy
ZXIpOworfQorCit2b2lkIFJlbmRlckZ1bGxTY3JlZW46OnVud3JhcFJlbmRlcmVyKFJlbmRlck9i
amVjdCogcmVuZGVyZXIpCit7CisgICAgUmVuZGVyT2JqZWN0KiBob2xkZXIgPSBwbGFjZWhvbGRl
cigpID8gcGxhY2Vob2xkZXIoKSA6IHRoaXM7CisgICAgcmVuZGVyZXItPnJlbW92ZSgpOworICAg
IGhvbGRlci0+cGFyZW50KCktPmFkZENoaWxkKHJlbmRlcmVyLCBob2xkZXIpOworfQorCiB2b2lk
IFJlbmRlckZ1bGxTY3JlZW46OnNldFBsYWNlaG9sZGVyKFJlbmRlckJsb2NrKiBwbGFjZWhvbGRl
cikKIHsKICAgICBtX3BsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaAppbmRleCA2ZjRjNzgzMWNkZGMxZDYzZmEwMzFk
Yjg3MDc4NjIyZWE1YWI2N2Q1Li45MGQ3ODIzNWI3OTc5ZmQ1NzhjMTQ5OWM4ODU5OTUyNmZmZTNk
MDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVl
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmgKQEAg
LTQzLDYgKzQzLDkgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVuZGVyU3R5
bGU+IGNyZWF0ZUZ1bGxTY3JlZW5TdHlsZSgpOwogCisgICAgdm9pZCB3cmFwUmVuZGVyZXIoUmVu
ZGVyT2JqZWN0KiByZW5kZXJlcik7CisgICAgdm9pZCB1bndyYXBSZW5kZXJlcihSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyKTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJv
eWVkKCk7CiAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104453</attachid>
            <date>2011-08-18 21:12:28 -0700</date>
            <delta_ts>2011-08-21 23:06:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66531-20110819141226.patch</filename>
            <type>text/plain</type>
            <size>4197</size>
            <attacher name="Jeremy Apthorp">jeremya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMzMjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiMzFkZWY1NjM2NWM2Nzc1
MDk4ZGJjNTJiMzY3MGJkOGI0YmYzZTFkLi45NTI3Y2JjZGY0N2VmYzYxNjk2N2UwOGEzNjlmMmZk
MzlmNWZiNGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDgtMTggIEplcmVt
eSBBcHRob3JwICA8amVyZW15YUBnb29nbGUuY29tPgorCisgICAgICAgIERvbid0IGRldGFjaCBl
bGVtZW50cyBmcm9tIHRoZSByZW5kZXIgdHJlZSB3aGVuIGVudGVyaW5nIGZ1bGxzY3JlZW4gbW9k
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1MzEK
KworICAgICAgICBUaGlzIHByZXZlbnRzIHBsdWdpbiBpbnN0YW5jZXMgZnJvbSBiZWluZyBkZXN0
cm95ZWQgYW5kIHJlaW5zdGFudGlhdGVkCisgICAgICAgIHdoZW4gZW50ZXJpbmcgZnVsbHNjcmVl
biBtb2RlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0RGlkRXhpdEZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHA6
CisgICAgICAgIChSZW5kZXJGdWxsU2NyZWVuOjp3cmFwUmVuZGVyZXIpOgorICAgICAgICAoUmVu
ZGVyRnVsbFNjcmVlbjo6dW53cmFwUmVuZGVyZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJGdWxsU2NyZWVuLmg6CisKIDIwMTEtMDgtMTggIE5pY28gV2ViZXIgIDx0aGFraXNAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIEZpeCAibWlzc2luZyByZXR1cm4iIGdjYyB3YXJuaW5nIGluIFNj
cm9sbEFuaW1hdG9yTm9uZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMTUwYzBmY2VjNGQ3
YjE1MjNmNGFlZmQ3ZmFmOTdmOWY1YzViOTcyMy4uMjc5MGI1ODlhMWI0ODUyMTFmYjA4Y2ZiYjI4
OGI4OGEwODA5YTdmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00ODEyLDggKzQ4MTIs
MTIgQEAgdm9pZCBEb2N1bWVudDo6d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQo
RWxlbWVudCogZWxlbWVudCkKICAgICAgICAgbV9zYXZlZFBsYWNlaG9sZGVyUmVuZGVyU3R5bGUg
PSBSZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXItPnN0eWxlKCkpOwogICAgIH0KIAotICAgIGlm
IChtX2Z1bGxTY3JlZW5FbGVtZW50ICE9IGRvY3VtZW50RWxlbWVudCgpKQotICAgICAgICBtX2Z1
bGxTY3JlZW5FbGVtZW50LT5kZXRhY2goKTsKKyAgICBpZiAobV9mdWxsU2NyZWVuRWxlbWVudCAh
PSBkb2N1bWVudEVsZW1lbnQoKSkgeworICAgICAgICBSZW5kZXJGdWxsU2NyZWVuKiBmdWxsc2Ny
ZWVuUmVuZGVyZXIgPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlckZ1bGxTY3JlZW4odGhpcyk7
CisgICAgICAgIGZ1bGxzY3JlZW5SZW5kZXJlci0+c2V0U3R5bGUoUmVuZGVyRnVsbFNjcmVlbjo6
Y3JlYXRlRnVsbFNjcmVlblN0eWxlKCkpOworICAgICAgICBmdWxsc2NyZWVuUmVuZGVyZXItPndy
YXBSZW5kZXJlcihyZW5kZXJlcik7CisgICAgICAgIHNldEZ1bGxTY3JlZW5SZW5kZXJlcihmdWxs
c2NyZWVuUmVuZGVyZXIpOworICAgIH0KIAogICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQtPnNldENv
bnRhaW5zRnVsbFNjcmVlbkVsZW1lbnRPbkFuY2VzdG9yc0Nyb3NzaW5nRnJhbWVCb3VuZGFyaWVz
KHRydWUpOwogICAgIApAQCAtNDg2NCwxMiArNDg2OCwxMSBAQCB2b2lkIERvY3VtZW50Ojp3ZWJr
aXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopCiB7CiAgICAgbV9hcmVLZXlz
RW5hYmxlZEluRnVsbFNjcmVlbiA9IGZhbHNlOwogICAgIHNldEFuaW1hdGluZ0Z1bGxTY3JlZW4o
ZmFsc2UpOwotCi0gICAgaWYgKG1fZnVsbFNjcmVlblJlbmRlcmVyKQotICAgICAgICBtX2Z1bGxT
Y3JlZW5SZW5kZXJlci0+cmVtb3ZlKCk7CiAgICAgCi0gICAgaWYgKG1fZnVsbFNjcmVlbkVsZW1l
bnQgIT0gZG9jdW1lbnRFbGVtZW50KCkpCi0gICAgICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQtPmRl
dGFjaCgpOworICAgIGlmIChtX2Z1bGxTY3JlZW5FbGVtZW50ICE9IGRvY3VtZW50RWxlbWVudCgp
KSB7CisgICAgICAgIG1fZnVsbFNjcmVlblJlbmRlcmVyLT51bndyYXBSZW5kZXJlcihtX2Z1bGxT
Y3JlZW5FbGVtZW50LT5yZW5kZXJlcigpKTsKKyAgICAgICAgbV9mdWxsU2NyZWVuUmVuZGVyZXIt
PnJlbW92ZSgpOworICAgIH0KIAogICAgIG1fZnVsbFNjcmVlbkNoYW5nZUV2ZW50VGFyZ2V0UXVl
dWUuYXBwZW5kKG1fZnVsbFNjcmVlbkVsZW1lbnQucmVsZWFzZSgpKTsKICAgICBzZXRGdWxsU2Ny
ZWVuUmVuZGVyZXIoMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRnVsbFNjcmVlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNj
cmVlbi5jcHAKaW5kZXggMThkYmM5ZjQ4NzMzY2YwNTBjOThiMmM0Y2UxYmM5Y2Y3NmU1YWNkYi4u
NzVlMzg3MWFiODIyYTI5MTEwOGYwNTllNTdjYjk4NWIyY2RmN2IzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcApAQCAtMTA1LDYgKzEwNSwyMSBA
QCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBSZW5kZXJGdWxsU2NyZWVuOjpjcmVhdGVGdWxsU2Ny
ZWVuU3R5bGUoKQogICAgIHJldHVybiBmdWxsc2NyZWVuU3R5bGUucmVsZWFzZSgpOwogfQogCit2
b2lkIFJlbmRlckZ1bGxTY3JlZW46OndyYXBSZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVy
KQoreworICAgIFJlbmRlck9iamVjdCogcGFyZW50ID0gcmVuZGVyZXItPnBhcmVudCgpOworICAg
IHBhcmVudC0+YWRkQ2hpbGQodGhpcywgcmVuZGVyZXIpOworICAgIHJlbmRlcmVyLT5yZW1vdmUo
KTsKKyAgICBhZGRDaGlsZChyZW5kZXJlcik7Cit9CisKK3ZvaWQgUmVuZGVyRnVsbFNjcmVlbjo6
dW53cmFwUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKK3sKKyAgICBSZW5kZXJPYmpl
Y3QqIGhvbGRlciA9IHBsYWNlaG9sZGVyKCkgPyBwbGFjZWhvbGRlcigpIDogdGhpczsKKyAgICBy
ZW5kZXJlci0+cmVtb3ZlKCk7CisgICAgaG9sZGVyLT5wYXJlbnQoKS0+YWRkQ2hpbGQocmVuZGVy
ZXIsIGhvbGRlcik7Cit9CisKIHZvaWQgUmVuZGVyRnVsbFNjcmVlbjo6c2V0UGxhY2Vob2xkZXIo
UmVuZGVyQmxvY2sqIHBsYWNlaG9sZGVyKQogewogICAgIG1fcGxhY2Vob2xkZXIgPSBwbGFjZWhv
bGRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2Ny
ZWVuLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5oCmluZGV4
IDZmNGM3ODMxY2RkYzFkNjNmYTAzMWRiODcwNzg2MjJlYTVhYjY3ZDUuLjkwZDc4MjM1Yjc5Nzlm
ZDU3OGMxNDk5Yzg4NTk5NTI2ZmZlM2QwNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZ1bGxTY3JlZW4uaApAQCAtNDMsNiArNDMsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gY3JlYXRlRnVsbFNjcmVlblN0eWxlKCk7CiAKKyAg
ICB2b2lkIHdyYXBSZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKTsKKyAgICB2b2lkIHVu
d3JhcFJlbmRlcmVyKFJlbmRlck9iamVjdCogcmVuZGVyZXIpOworCiBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsKICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104645</attachid>
            <date>2011-08-21 23:05:40 -0700</date>
            <delta_ts>2011-08-22 19:14:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66531-20110822160538.patch</filename>
            <type>text/plain</type>
            <size>6455</size>
            <attacher name="Jeremy Apthorp">jeremya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM0MjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhM2EwZjFlY2JlYTJmNzBk
MTg5OTY3ZjBiMWE3NzI0Y2ZlMGIyYmYxLi42YjBkOWY1NWMyNmVkMWNiNjhmYTAyMTUwYTAwNWNl
NTgxM2Q2NDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDgtMTggIEplcmVt
eSBBcHRob3JwICA8amVyZW15YUBnb29nbGUuY29tPgorCisgICAgICAgIERvbid0IGRldGFjaCBl
bGVtZW50cyBmcm9tIHRoZSByZW5kZXIgdHJlZSB3aGVuIGVudGVyaW5nIGZ1bGxzY3JlZW4gbW9k
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1MzEK
KworICAgICAgICBUaGlzIHByZXZlbnRzIHBsdWdpbiBpbnN0YW5jZXMgZnJvbSBiZWluZyBkZXN0
cm95ZWQgYW5kIHJlaW5zdGFudGlhdGVkCisgICAgICAgIHdoZW4gZW50ZXJpbmcgZnVsbHNjcmVl
biBtb2RlLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0RGlkRXhpdEZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHA6
CisgICAgICAgIChSZW5kZXJGdWxsU2NyZWVuOjp3cmFwUmVuZGVyZXIpOgorICAgICAgICAoUmVu
ZGVyRnVsbFNjcmVlbjo6dW53cmFwUmVuZGVyZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJGdWxsU2NyZWVuLmg6CisKIDIwMTEtMDgtMTkgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxl
LmNvbT4KIAogICAgICAgICBCZXR0ZXIgYnVpbGQgZml4IGFmdGVyIHI5MzM4NC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCmluZGV4IDE1MGMwZmNlYzRkN2IxNTIzZjRhZWZkN2ZhZjk3ZjlmNWM1Yjk3
MjMuLjEwZDYwYTgwZDMxMjA0N2VjYjMwOTMxYjYxOTU1NTRhYzY2MjMxNDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtNDgxMyw3ICs0ODEzLDcgQEAgdm9pZCBEb2N1bWVudDo6d2Via2l0
V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKICAgICB9CiAK
ICAgICBpZiAobV9mdWxsU2NyZWVuRWxlbWVudCAhPSBkb2N1bWVudEVsZW1lbnQoKSkKLSAgICAg
ICAgbV9mdWxsU2NyZWVuRWxlbWVudC0+ZGV0YWNoKCk7CisgICAgICAgIFJlbmRlckZ1bGxTY3Jl
ZW46OndyYXBSZW5kZXJlcihyZW5kZXJlciwgdGhpcyk7CiAKICAgICBtX2Z1bGxTY3JlZW5FbGVt
ZW50LT5zZXRDb250YWluc0Z1bGxTY3JlZW5FbGVtZW50T25BbmNlc3RvcnNDcm9zc2luZ0ZyYW1l
Qm91bmRhcmllcyh0cnVlKTsKICAgICAKQEAgLTQ4NjQsMTUgKzQ4NjQsMTEgQEAgdm9pZCBEb2N1
bWVudDo6d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKQogewogICAg
IG1fYXJlS2V5c0VuYWJsZWRJbkZ1bGxTY3JlZW4gPSBmYWxzZTsKICAgICBzZXRBbmltYXRpbmdG
dWxsU2NyZWVuKGZhbHNlKTsKLQotICAgIGlmIChtX2Z1bGxTY3JlZW5SZW5kZXJlcikKLSAgICAg
ICAgbV9mdWxsU2NyZWVuUmVuZGVyZXItPnJlbW92ZSgpOwogICAgIAotICAgIGlmIChtX2Z1bGxT
Y3JlZW5FbGVtZW50ICE9IGRvY3VtZW50RWxlbWVudCgpKQotICAgICAgICBtX2Z1bGxTY3JlZW5F
bGVtZW50LT5kZXRhY2goKTsKKyAgICBpZiAobV9mdWxsU2NyZWVuUmVuZGVyZXIpCisgICAgICAg
IG1fZnVsbFNjcmVlblJlbmRlcmVyLT51bndyYXBSZW5kZXJlcigpOwogCiAgICAgbV9mdWxsU2Ny
ZWVuQ2hhbmdlRXZlbnRUYXJnZXRRdWV1ZS5hcHBlbmQobV9mdWxsU2NyZWVuRWxlbWVudC5yZWxl
YXNlKCkpOwotICAgIHNldEZ1bGxTY3JlZW5SZW5kZXJlcigwKTsKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgcGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPnNldFJvb3RG
dWxsU2NyZWVuTGF5ZXIoMCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRl
cmluZ0NvbnRleHQuY3BwCmluZGV4IDAxNWUyOTQ0MmQ1MzNlMWRkZDkxYWQyZjYxZjUzY2RiZGQ3
Y2U0MjcuLjViZDIzYjhlNmZmNDBmOWFjNzhiNWY2MDcxZTU0NWYxYzBmZWU1NGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMzIwLDIyICszMjAs
NiBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5kZXJlckZhY3Rvcnk6OmNyZWF0ZVJlbmRlcmVyQW5k
U3R5bGUoKQogICAgIHJldHVybiBuZXdSZW5kZXJlcjsKIH0KIAotI2lmIEVOQUJMRShGVUxMU0NS
RUVOX0FQSSkKLXN0YXRpYyBSZW5kZXJPYmplY3QqIHdyYXBXaXRoUmVuZGVyRnVsbFNjcmVlbihS
ZW5kZXJPYmplY3QqIG9iamVjdCwgRG9jdW1lbnQqIGRvY3VtZW50KQotewotICAgIFJlbmRlckZ1
bGxTY3JlZW4qIGZ1bGxzY3JlZW5SZW5kZXJlciA9IG5ldyAoZG9jdW1lbnQtPnJlbmRlckFyZW5h
KCkpIFJlbmRlckZ1bGxTY3JlZW4oZG9jdW1lbnQpOwotICAgIGZ1bGxzY3JlZW5SZW5kZXJlci0+
c2V0U3R5bGUoUmVuZGVyRnVsbFNjcmVlbjo6Y3JlYXRlRnVsbFNjcmVlblN0eWxlKCkpOwotICAg
IC8vIEl0J3MgcG9zc2libGUgdGhhdCB3ZSBmYWlsZWQgdG8gY3JlYXRlIHRoZSBuZXcgcmVuZGVy
IGFuZCBlbmQgdXAgd3JhcHBpbmcgbm90aGluZy4KLSAgICAvLyBXZSdsbCBlbmQgdXAgZGlzcGxh
eWluZyBhIGJsYWNrIHNjcmVlbiwgYnV0IEplciBzYXlzIHRoaXMgaXMgZXhwZWN0ZWQuCi0gICAg
aWYgKG9iamVjdCkKLSAgICAgICAgZnVsbHNjcmVlblJlbmRlcmVyLT5hZGRDaGlsZChvYmplY3Qp
OwotICAgIGRvY3VtZW50LT5zZXRGdWxsU2NyZWVuUmVuZGVyZXIoZnVsbHNjcmVlblJlbmRlcmVy
KTsKLSAgICBpZiAoZnVsbHNjcmVlblJlbmRlcmVyLT5wbGFjZWhvbGRlcigpKQotICAgICAgICBy
ZXR1cm4gZnVsbHNjcmVlblJlbmRlcmVyLT5wbGFjZWhvbGRlcigpOwotICAgIHJldHVybiBmdWxs
c2NyZWVuUmVuZGVyZXI7Ci19Ci0jZW5kaWYKLQogdm9pZCBOb2RlUmVuZGVyZXJGYWN0b3J5Ojpj
cmVhdGVSZW5kZXJlcklmTmVlZGVkKCkKIHsKICAgICBOb2RlKiBub2RlID0gbV9jb250ZXh0Lm5v
ZGUoKTsKQEAgLTM1Niw3ICszNDAsNyBAQCB2b2lkIE5vZGVSZW5kZXJlckZhY3Rvcnk6OmNyZWF0
ZVJlbmRlcmVySWZOZWVkZWQoKQogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGlm
IChkb2N1bWVudC0+d2Via2l0SXNGdWxsU2NyZWVuKCkgJiYgZG9jdW1lbnQtPndlYmtpdEN1cnJl
bnRGdWxsU2NyZWVuRWxlbWVudCgpID09IG5vZGUpCi0gICAgICAgIG5ld1JlbmRlcmVyID0gd3Jh
cFdpdGhSZW5kZXJGdWxsU2NyZWVuKG5ld1JlbmRlcmVyLCBkb2N1bWVudCk7CisgICAgICAgIG5l
d1JlbmRlcmVyID0gUmVuZGVyRnVsbFNjcmVlbjo6d3JhcFJlbmRlcmVyKG5ld1JlbmRlcmVyLCBk
b2N1bWVudCk7CiAjZW5kaWYKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNpZGUgZWZmZWN0IHNob3Vs
ZCBiZSB2aXNpYmxlIGZyb20gYXR0YWNoKCkgY29kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcAppbmRleCAxOGRiYzlmNDg3MzNjZjA1MGM5OGIyYzRj
ZTFiYzljZjc2ZTVhY2RiLi4zMzY5Mzg4MDE1ZTVkNzU0ZjFkZTVlMDM0YjcxODI3YjY2NzRkZDY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCkBA
IC0xMDUsNiArMTA1LDM3IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFJlbmRlckZ1bGxTY3Jl
ZW46OmNyZWF0ZUZ1bGxTY3JlZW5TdHlsZSgpCiAgICAgcmV0dXJuIGZ1bGxzY3JlZW5TdHlsZS5y
ZWxlYXNlKCk7CiB9CiAKK1JlbmRlck9iamVjdCogUmVuZGVyRnVsbFNjcmVlbjo6d3JhcFJlbmRl
cmVyKFJlbmRlck9iamVjdCogb2JqZWN0LCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgUmVu
ZGVyRnVsbFNjcmVlbiogZnVsbHNjcmVlblJlbmRlcmVyID0gbmV3IChkb2N1bWVudC0+cmVuZGVy
QXJlbmEoKSkgUmVuZGVyRnVsbFNjcmVlbihkb2N1bWVudCk7CisgICAgZnVsbHNjcmVlblJlbmRl
cmVyLT5zZXRTdHlsZShSZW5kZXJGdWxsU2NyZWVuOjpjcmVhdGVGdWxsU2NyZWVuU3R5bGUoKSk7
CisgICAgaWYgKG9iamVjdCkgeworICAgICAgICBSZW5kZXJPYmplY3QqIHBhcmVudCA9IG9iamVj
dC0+cGFyZW50KCk7CisgICAgICAgIGlmIChwYXJlbnQpIHsKKyAgICAgICAgICAgIHBhcmVudC0+
YWRkQ2hpbGQoZnVsbHNjcmVlblJlbmRlcmVyLCBvYmplY3QpOworICAgICAgICAgICAgb2JqZWN0
LT5yZW1vdmUoKTsKKyAgICAgICAgfQorICAgICAgICBmdWxsc2NyZWVuUmVuZGVyZXItPmFkZENo
aWxkKG9iamVjdCk7CisgICAgfQorICAgIGZ1bGxzY3JlZW5SZW5kZXJlci0+bV93cmFwcGVkUmVu
ZGVyZXIgPSBvYmplY3Q7CisgICAgZG9jdW1lbnQtPnNldEZ1bGxTY3JlZW5SZW5kZXJlcihmdWxs
c2NyZWVuUmVuZGVyZXIpOworICAgIGlmIChmdWxsc2NyZWVuUmVuZGVyZXItPnBsYWNlaG9sZGVy
KCkpCisgICAgICAgIHJldHVybiBmdWxsc2NyZWVuUmVuZGVyZXItPnBsYWNlaG9sZGVyKCk7Cisg
ICAgcmV0dXJuIGZ1bGxzY3JlZW5SZW5kZXJlcjsKK30KKwordm9pZCBSZW5kZXJGdWxsU2NyZWVu
Ojp1bndyYXBSZW5kZXJlcigpCit7CisgICAgaWYgKG1fd3JhcHBlZFJlbmRlcmVyKQorICAgICAg
ICBtX3dyYXBwZWRSZW5kZXJlci0+cmVtb3ZlKCk7CisgICAgUmVuZGVyT2JqZWN0KiBob2xkZXIg
PSBwbGFjZWhvbGRlcigpID8gcGxhY2Vob2xkZXIoKSA6IHRoaXM7CisgICAgUmVuZGVyT2JqZWN0
KiBwYXJlbnQgPSBob2xkZXItPnBhcmVudCgpOworICAgIGlmIChwYXJlbnQpCisgICAgICAgIHBh
cmVudC0+YWRkQ2hpbGQobV93cmFwcGVkUmVuZGVyZXIsIGhvbGRlcik7CisgICAgcmVtb3ZlKCk7
CisgICAgZG9jdW1lbnQoKS0+c2V0RnVsbFNjcmVlblJlbmRlcmVyKDApOworfQorCiB2b2lkIFJl
bmRlckZ1bGxTY3JlZW46OnNldFBsYWNlaG9sZGVyKFJlbmRlckJsb2NrKiBwbGFjZWhvbGRlcikK
IHsKICAgICBtX3BsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaAppbmRleCA2ZjRjNzgzMWNkZGMxZDYzZmEwMzFkYjg3
MDc4NjIyZWE1YWI2N2Q1Li4zMjBlNDI3ZWE4NjMwNzE5YjkyYjNkN2RjMzA2Y2VlMzk5N2VlMzhi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmgKQEAgLTQx
LDEwICs0MSwxNCBAQCBwdWJsaWM6CiAgICAgUmVuZGVyQmxvY2sqIHBsYWNlaG9sZGVyKCkgeyBy
ZXR1cm4gbV9wbGFjZWhvbGRlcjsgfQogICAgIHZvaWQgY3JlYXRlUGxhY2Vob2xkZXIoUGFzc1Jl
ZlB0cjxSZW5kZXJTdHlsZT4sIGNvbnN0IEludFJlY3QmIGZyYW1lUmVjdCk7CiAKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gY3JlYXRlRnVsbFNjcmVlblN0eWxlKCk7CisKKyAg
ICBzdGF0aWMgUmVuZGVyT2JqZWN0KiB3cmFwUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJl
ciwgRG9jdW1lbnQqKTsKKyAgICB2b2lkIHVud3JhcFJlbmRlcmVyKCk7CiAKIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRlck9iamVjdCogbV93
cmFwcGVkUmVuZGVyZXI7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IGNyZWF0
ZUZ1bGxTY3JlZW5TdHlsZSgpOwogICAgIAogcHJvdGVjdGVkOgogICAgIFJlbmRlckJsb2NrKiBt
X3BsYWNlaG9sZGVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104782</attachid>
            <date>2011-08-22 19:12:59 -0700</date>
            <delta_ts>2011-08-22 20:50:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66531-20110823121256.patch</filename>
            <type>text/plain</type>
            <size>10222</size>
            <attacher name="Jeremy Apthorp">jeremya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM0MjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1YWVlNDM3MDUzZWUwNTY4MDkxMTI0
NjMwOGY3NjUwM2E4ZjBkZTliLi4yOTJjZjRhNTU0NGE4MWEyNWMxMzdjOTI1ZWJiMGQ4MmU2MGFi
NzA2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDgtMjIgIEplcmVteSBBcHRob3JwICA8
amVyZW15YUBnb29nbGUuY29tPgorCisgICAgICAgIERvbid0IGRldGFjaCBlbGVtZW50cyBmcm9t
IHRoZSByZW5kZXIgdHJlZSB3aGVuIGVudGVyaW5nIGZ1bGxzY3JlZW4gbW9kZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1MzEKKworICAgICAgICBU
ZXN0IHRoYXQgdGhlIHBsdWdpbiBpcyBub3QgcmVsb2FkZWQgd2hlbiBlbnRlcmluZyBmdWxsc2Ny
ZWVuLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGx1Z2lucy9mdWxsc2NyZWVuLXBsdWdpbnMtZG9udC1yZWxvYWQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbHVnaW5zL2Z1bGxzY3JlZW4tcGx1Z2lucy1kb250LXJlbG9hZC5odG1s
OiBBZGRlZC4KKwogMjAxMS0wOC0xOCAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHRyYWN0IGJyZWFrcG9pbnQgbWFu
YWdlbWVudCBjb2RlIHRvIGEgc2VwYXJhdGUgY2xhc3MgYW5kIGFkZCB0ZXN0cy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsdWdpbnMvZnVsbHNjcmVlbi1wbHVnaW5zLWRvbnQtcmVsb2FkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsdWdpbnMvZnVsbHNjcmVlbi1wbHVnaW5zLWRvbnQt
cmVsb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODIwOGYxYzJkYjFhZmQ4MzA5M2QzZjM3
ZmE0NjU0ZmQ2MGIwNTlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGx1Z2lucy9m
dWxsc2NyZWVuLXBsdWdpbnMtZG9udC1yZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTgg
QEAKK0FMRVJUOiBQbHVnaW4gTG9hZGVkIQorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisg
IFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVySW5saW5l
IHtBfSBhdCAoMCwwKSBzaXplIDgxeDE4IFtjb2xvcj0jMDAwMEVFXQorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMTM2KSBzaXplIDgxeDE4CisgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMTM2KSB3aWR0aCA4MTogImdvIGZ1bGxzY3JlZW4iCisgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDgxLDEzNikgc2l6ZSA0eDE4CisgICAgICAgIHRleHQgcnVuIGF0ICg4MSwxMzYpIHdp
ZHRoIDQ6ICIgIgorICAgICAgUmVuZGVyQmxvY2sgKGdlbmVyYXRlZCkgYXQgKDg1LDApIHNpemUg
MzAweDE1MAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJGdWxsU2NyZWVuIHpJOiAyMTQ3NDgzNjQ3IGF0ICgwLDApIHNp
emUgODAweDYwMCBbYmdjb2xvcj0jMDAwMDAwXQorICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMp
IGF0ICgyNTAsMjI1KSBzaXplIDMwMHgxNTAKKyAgICAgIFJlbmRlckVtYmVkZGVkT2JqZWN0IHtF
TUJFRH0gYXQgKDAsMCkgc2l6ZSAzMDB4MTUwIFtiZ2NvbG9yPSNGRkZGRkZdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbHVnaW5zL2Z1bGxzY3JlZW4tcGx1Z2lucy1kb250LXJlbG9hZC5odG1s
IGIvTGF5b3V0VGVzdHMvcGx1Z2lucy9mdWxsc2NyZWVuLXBsdWdpbnMtZG9udC1yZWxvYWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wMTgyNDM4MjAxOGRmOTU5ODFkOWFmYmY2MGI2OGM0MjMwZDcwMzFjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGx1Z2lucy9mdWxsc2NyZWVuLXBsdWdpbnMt
ZG9udC1yZWxvYWQuaHRtbApAQCAtMCwwICsxLDI2IEBACis8aHRtbD4KKzxhIGlkPSdsaW5rJyBo
cmVmPSJqYXZhc2NyaXB0OmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwbGcnKS53ZWJraXRSZXF1
ZXN0RnVsbFNjcmVlbigpIj5nbworZnVsbHNjcmVlbjwvYT4KKzxlbWJlZCBpZD0icGxnIiB0eXBl
PSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIiBzcmM9ImRhdGE6YXBwbGljYXRp
b24veC13ZWJraXQtdGVzdC1uZXRzY2FwZSxhbGVydHdoZW5sb2FkZWQiPjwvaWZyYW1lPgorCis8
c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24g
KCkgeworICAgICAgICB2YXIgbGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaW5rJyk7
CisgICAgICAgIHZhciB4ID0gbGluay5vZmZzZXRMZWZ0ICsgNTsKKyAgICAgICAgdmFyIHkgPSBs
aW5rLm9mZnNldFRvcCArIDU7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkp
OworICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VVcCgpOworCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKKyAg
ICB9LCAxMDApOworfQorCisKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGEzYTBm
MWVjYmVhMmY3MGQxODk5NjdmMGIxYTc3MjRjZmUwYjJiZjEuLjNlNDQyNDI0YmU1NWUzYmE1Zjkx
OGNlNjQ5YTYyMDc0OTcwMDJmZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMS0w
OC0yMiAgSmVyZW15IEFwdGhvcnAgIDxqZXJlbXlhQGdvb2dsZS5jb20+CisKKyAgICAgICAgRG9u
J3QgZGV0YWNoIGVsZW1lbnRzIGZyb20gdGhlIHJlbmRlciB0cmVlIHdoZW4gZW50ZXJpbmcgZnVs
bHNjcmVlbiBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NjUzMQorCisgICAgICAgIFRoaXMgcHJldmVudHMgcGx1Z2luIGluc3RhbmNlcyBmcm9t
IGJlaW5nIGRlc3Ryb3llZCBhbmQgcmVpbnN0YW50aWF0ZWQKKyAgICAgICAgd2hlbiBlbnRlcmlu
ZyBmdWxsc2NyZWVuIG1vZGUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogcGx1Z2lucy9mdWxsc2NyZWVuLXBsdWdpbnMtZG9udC1yZWxvYWQu
aHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojp3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAg
ICAgICAgKiBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZVJlbmRlcmVyRmFjdG9yeTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwOgorICAgICAgICAoY3JlYXRlRnVsbFNjcmVl
blN0eWxlKToKKyAgICAgICAgKFJlbmRlckZ1bGxTY3JlZW46OndyYXBSZW5kZXJlcik6CisgICAg
ICAgIChSZW5kZXJGdWxsU2NyZWVuOjp1bndyYXBSZW5kZXJlcik6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckZ1bGxTY3JlZW4uaDoKKwogMjAxMS0wOC0xOSAgRGFuIEJlcm5zdGVpbiAgPG1p
dHpAYXBwbGUuY29tPgogCiAgICAgICAgIEJldHRlciBidWlsZCBmaXggYWZ0ZXIgcjkzMzg0Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMTUwYzBmY2VjNGQ3YjE1MjNmNGFlZmQ3ZmFmOTdm
OWY1YzViOTcyMy4uMTBkNjBhODBkMzEyMDQ3ZWNiMzA5MzFiNjE5NTU1NGFjNjYyMzE0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00ODEzLDcgKzQ4MTMsNyBAQCB2b2lkIERvY3VtZW50
Ojp3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQog
ICAgIH0KIAogICAgIGlmIChtX2Z1bGxTY3JlZW5FbGVtZW50ICE9IGRvY3VtZW50RWxlbWVudCgp
KQotICAgICAgICBtX2Z1bGxTY3JlZW5FbGVtZW50LT5kZXRhY2goKTsKKyAgICAgICAgUmVuZGVy
RnVsbFNjcmVlbjo6d3JhcFJlbmRlcmVyKHJlbmRlcmVyLCB0aGlzKTsKIAogICAgIG1fZnVsbFNj
cmVlbkVsZW1lbnQtPnNldENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnRPbkFuY2VzdG9yc0Nyb3Nz
aW5nRnJhbWVCb3VuZGFyaWVzKHRydWUpOwogICAgIApAQCAtNDg2NCwxNSArNDg2NCwxMSBAQCB2
b2lkIERvY3VtZW50Ojp3ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCop
CiB7CiAgICAgbV9hcmVLZXlzRW5hYmxlZEluRnVsbFNjcmVlbiA9IGZhbHNlOwogICAgIHNldEFu
aW1hdGluZ0Z1bGxTY3JlZW4oZmFsc2UpOwotCi0gICAgaWYgKG1fZnVsbFNjcmVlblJlbmRlcmVy
KQotICAgICAgICBtX2Z1bGxTY3JlZW5SZW5kZXJlci0+cmVtb3ZlKCk7CiAgICAgCi0gICAgaWYg
KG1fZnVsbFNjcmVlbkVsZW1lbnQgIT0gZG9jdW1lbnRFbGVtZW50KCkpCi0gICAgICAgIG1fZnVs
bFNjcmVlbkVsZW1lbnQtPmRldGFjaCgpOworICAgIGlmIChtX2Z1bGxTY3JlZW5SZW5kZXJlcikK
KyAgICAgICAgbV9mdWxsU2NyZWVuUmVuZGVyZXItPnVud3JhcFJlbmRlcmVyKCk7CiAKICAgICBt
X2Z1bGxTY3JlZW5DaGFuZ2VFdmVudFRhcmdldFF1ZXVlLmFwcGVuZChtX2Z1bGxTY3JlZW5FbGVt
ZW50LnJlbGVhc2UoKSk7Ci0gICAgc2V0RnVsbFNjcmVlblJlbmRlcmVyKDApOwogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBwYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKS0+
c2V0Um9vdEZ1bGxTY3JlZW5MYXllcigwKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggMDE1ZTI5NDQyZDUzM2UxZGRkOTFhZDJmNjFm
NTNjZGJkZDdjZTQyNy4uNWJkMjNiOGU2ZmY0MGY5YWM3OGI1ZjYwNzFlNTQ1ZjFjMGZlZTU0YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0zMjAs
MjIgKzMyMCw2IEBAIFJlbmRlck9iamVjdCogTm9kZVJlbmRlcmVyRmFjdG9yeTo6Y3JlYXRlUmVu
ZGVyZXJBbmRTdHlsZSgpCiAgICAgcmV0dXJuIG5ld1JlbmRlcmVyOwogfQogCi0jaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQotc3RhdGljIFJlbmRlck9iamVjdCogd3JhcFdpdGhSZW5kZXJGdWxs
U2NyZWVuKFJlbmRlck9iamVjdCogb2JqZWN0LCBEb2N1bWVudCogZG9jdW1lbnQpCi17Ci0gICAg
UmVuZGVyRnVsbFNjcmVlbiogZnVsbHNjcmVlblJlbmRlcmVyID0gbmV3IChkb2N1bWVudC0+cmVu
ZGVyQXJlbmEoKSkgUmVuZGVyRnVsbFNjcmVlbihkb2N1bWVudCk7Ci0gICAgZnVsbHNjcmVlblJl
bmRlcmVyLT5zZXRTdHlsZShSZW5kZXJGdWxsU2NyZWVuOjpjcmVhdGVGdWxsU2NyZWVuU3R5bGUo
KSk7Ci0gICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHdlIGZhaWxlZCB0byBjcmVhdGUgdGhlIG5l
dyByZW5kZXIgYW5kIGVuZCB1cCB3cmFwcGluZyBub3RoaW5nLgotICAgIC8vIFdlJ2xsIGVuZCB1
cCBkaXNwbGF5aW5nIGEgYmxhY2sgc2NyZWVuLCBidXQgSmVyIHNheXMgdGhpcyBpcyBleHBlY3Rl
ZC4KLSAgICBpZiAob2JqZWN0KQotICAgICAgICBmdWxsc2NyZWVuUmVuZGVyZXItPmFkZENoaWxk
KG9iamVjdCk7Ci0gICAgZG9jdW1lbnQtPnNldEZ1bGxTY3JlZW5SZW5kZXJlcihmdWxsc2NyZWVu
UmVuZGVyZXIpOwotICAgIGlmIChmdWxsc2NyZWVuUmVuZGVyZXItPnBsYWNlaG9sZGVyKCkpCi0g
ICAgICAgIHJldHVybiBmdWxsc2NyZWVuUmVuZGVyZXItPnBsYWNlaG9sZGVyKCk7Ci0gICAgcmV0
dXJuIGZ1bGxzY3JlZW5SZW5kZXJlcjsKLX0KLSNlbmRpZgotCiB2b2lkIE5vZGVSZW5kZXJlckZh
Y3Rvcnk6OmNyZWF0ZVJlbmRlcmVySWZOZWVkZWQoKQogewogICAgIE5vZGUqIG5vZGUgPSBtX2Nv
bnRleHQubm9kZSgpOwpAQCAtMzU2LDcgKzM0MCw3IEBAIHZvaWQgTm9kZVJlbmRlcmVyRmFjdG9y
eTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCgpCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CiAgICAgaWYgKGRvY3VtZW50LT53ZWJraXRJc0Z1bGxTY3JlZW4oKSAmJiBkb2N1bWVudC0+d2Vi
a2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkgPT0gbm9kZSkKLSAgICAgICAgbmV3UmVuZGVy
ZXIgPSB3cmFwV2l0aFJlbmRlckZ1bGxTY3JlZW4obmV3UmVuZGVyZXIsIGRvY3VtZW50KTsKKyAg
ICAgICAgbmV3UmVuZGVyZXIgPSBSZW5kZXJGdWxsU2NyZWVuOjp3cmFwUmVuZGVyZXIobmV3UmVu
ZGVyZXIsIGRvY3VtZW50KTsKICNlbmRpZgogCiAgICAgLy8gRklYTUU6IFRoaXMgc2lkZSBlZmZl
Y3Qgc2hvdWxkIGJlIHZpc2libGUgZnJvbSBhdHRhY2goKSBjb2RlLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCmluZGV4IDE4ZGJjOWY0ODczM2NmMDUw
Yzk4YjJjNGNlMWJjOWNmNzZlNWFjZGIuLjA2MDE0NzY4YThlMmZjNWRhOGIyNGFlNjc3Y2FjN2Rk
YjE0ZjI5NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxs
U2NyZWVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVl
bi5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBSZW5kZXJGdWxsU2NyZWVuOjp3aWxsQmVEZXN0
cm95ZWQoKQogICAgIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6d2lsbEJlRGVzdHJveWVk
KCk7CiB9CiAKLVBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFJlbmRlckZ1bGxTY3JlZW46OmNyZWF0
ZUZ1bGxTY3JlZW5TdHlsZSgpCitzdGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gY3JlYXRl
RnVsbFNjcmVlblN0eWxlKCkKIHsKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IGZ1bGxzY3JlZW5T
dHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVEZWZhdWx0U3R5bGUoKTsKIApAQCAtOTcsMTQgKzk3
LDQzIEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFJlbmRlckZ1bGxTY3JlZW46OmNyZWF0ZUZ1
bGxTY3JlZW5TdHlsZSgpCiAgICAgZnVsbHNjcmVlblN0eWxlLT5zZXRQb3NpdGlvbihGaXhlZFBv
c2l0aW9uKTsKICAgICBmdWxsc2NyZWVuU3R5bGUtPnNldFdpZHRoKExlbmd0aCgxMDAuMCwgUGVy
Y2VudCkpOwogICAgIGZ1bGxzY3JlZW5TdHlsZS0+c2V0SGVpZ2h0KExlbmd0aCgxMDAuMCwgUGVy
Y2VudCkpOwotICAgIGZ1bGxzY3JlZW5TdHlsZS0+c2V0TGVmdChMZW5ndGgoMCwgRml4ZWQpKTsK
LSAgICBmdWxsc2NyZWVuU3R5bGUtPnNldFRvcChMZW5ndGgoMCwgRml4ZWQpKTsKKyAgICBmdWxs
c2NyZWVuU3R5bGUtPnNldExlZnQoTGVuZ3RoKDAsIFdlYkNvcmU6OkZpeGVkKSk7CisgICAgZnVs
bHNjcmVlblN0eWxlLT5zZXRUb3AoTGVuZ3RoKDAsIFdlYkNvcmU6OkZpeGVkKSk7CiAgICAgCiAg
ICAgZnVsbHNjcmVlblN0eWxlLT5zZXRCYWNrZ3JvdW5kQ29sb3IoQ29sb3I6OmJsYWNrKTsKICAg
ICAKICAgICByZXR1cm4gZnVsbHNjcmVlblN0eWxlLnJlbGVhc2UoKTsKIH0KIAorUmVuZGVyT2Jq
ZWN0KiBSZW5kZXJGdWxsU2NyZWVuOjp3cmFwUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiBvYmplY3Qs
IERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBSZW5kZXJGdWxsU2NyZWVuKiBmdWxsc2NyZWVu
UmVuZGVyZXIgPSBuZXcgKGRvY3VtZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJGdWxsU2NyZWVu
KGRvY3VtZW50KTsKKyAgICBmdWxsc2NyZWVuUmVuZGVyZXItPnNldFN0eWxlKGNyZWF0ZUZ1bGxT
Y3JlZW5TdHlsZSgpKTsKKyAgICBpZiAob2JqZWN0KSB7CisgICAgICAgIGlmIChSZW5kZXJPYmpl
Y3QqIHBhcmVudCA9IG9iamVjdC0+cGFyZW50KCkpIHsKKyAgICAgICAgICAgIHBhcmVudC0+YWRk
Q2hpbGQoZnVsbHNjcmVlblJlbmRlcmVyLCBvYmplY3QpOworICAgICAgICAgICAgb2JqZWN0LT5y
ZW1vdmUoKTsKKyAgICAgICAgfQorICAgICAgICBmdWxsc2NyZWVuUmVuZGVyZXItPmFkZENoaWxk
KG9iamVjdCk7CisgICAgfQorICAgIGRvY3VtZW50LT5zZXRGdWxsU2NyZWVuUmVuZGVyZXIoZnVs
bHNjcmVlblJlbmRlcmVyKTsKKyAgICBpZiAoZnVsbHNjcmVlblJlbmRlcmVyLT5wbGFjZWhvbGRl
cigpKQorICAgICAgICByZXR1cm4gZnVsbHNjcmVlblJlbmRlcmVyLT5wbGFjZWhvbGRlcigpOwor
ICAgIHJldHVybiBmdWxsc2NyZWVuUmVuZGVyZXI7Cit9CisKK3ZvaWQgUmVuZGVyRnVsbFNjcmVl
bjo6dW53cmFwUmVuZGVyZXIoKQoreworICAgIGlmIChmaXJzdENoaWxkKCkpCisgICAgICAgIGZp
cnN0Q2hpbGQoKS0+cmVtb3ZlKCk7CisgICAgUmVuZGVyT2JqZWN0KiBob2xkZXIgPSBwbGFjZWhv
bGRlcigpID8gcGxhY2Vob2xkZXIoKSA6IHRoaXM7CisgICAgUmVuZGVyT2JqZWN0KiBwYXJlbnQg
PSBob2xkZXItPnBhcmVudCgpOworICAgIGlmIChwYXJlbnQpCisgICAgICAgIHBhcmVudC0+YWRk
Q2hpbGQoZmlyc3RDaGlsZCgpLCBob2xkZXIpOworICAgIHJlbW92ZSgpOworICAgIGRvY3VtZW50
KCktPnNldEZ1bGxTY3JlZW5SZW5kZXJlcigwKTsKK30KKwogdm9pZCBSZW5kZXJGdWxsU2NyZWVu
OjpzZXRQbGFjZWhvbGRlcihSZW5kZXJCbG9jayogcGxhY2Vob2xkZXIpCiB7CiAgICAgbV9wbGFj
ZWhvbGRlciA9IHBsYWNlaG9sZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZ1bGxTY3JlZW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
dWxsU2NyZWVuLmgKaW5kZXggNmY0Yzc4MzFjZGRjMWQ2M2ZhMDMxZGI4NzA3ODYyMmVhNWFiNjdk
NS4uNzk2ODc5MmIyZjVlZjk1MjRkNTkxZGFlMjE3NTRhNDExYjc3ZWM2ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5oCkBAIC00MSw3ICs0MSw5IEBAIHB1
YmxpYzoKICAgICBSZW5kZXJCbG9jayogcGxhY2Vob2xkZXIoKSB7IHJldHVybiBtX3BsYWNlaG9s
ZGVyOyB9CiAgICAgdm9pZCBjcmVhdGVQbGFjZWhvbGRlcihQYXNzUmVmUHRyPFJlbmRlclN0eWxl
PiwgY29uc3QgSW50UmVjdCYgZnJhbWVSZWN0KTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBjcmVhdGVGdWxsU2NyZWVuU3R5bGUoKTsKKworICAgIHN0YXRpYyBSZW5kZXJP
YmplY3QqIHdyYXBSZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBEb2N1bWVudCopOwor
ICAgIHZvaWQgdW53cmFwUmVuZGVyZXIoKTsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
d2lsbEJlRGVzdHJveWVkKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104784</attachid>
            <date>2011-08-22 20:51:05 -0700</date>
            <delta_ts>2011-08-23 15:19:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66531-20110823135102.patch</filename>
            <type>text/plain</type>
            <size>10282</size>
            <attacher name="Jeremy Apthorp">jeremya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM0MjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1YWVlNDM3MDUzZWUwNTY4MDkxMTI0
NjMwOGY3NjUwM2E4ZjBkZTliLi4yOTJjZjRhNTU0NGE4MWEyNWMxMzdjOTI1ZWJiMGQ4MmU2MGFi
NzA2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDgtMjIgIEplcmVteSBBcHRob3JwICA8
amVyZW15YUBnb29nbGUuY29tPgorCisgICAgICAgIERvbid0IGRldGFjaCBlbGVtZW50cyBmcm9t
IHRoZSByZW5kZXIgdHJlZSB3aGVuIGVudGVyaW5nIGZ1bGxzY3JlZW4gbW9kZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1MzEKKworICAgICAgICBU
ZXN0IHRoYXQgdGhlIHBsdWdpbiBpcyBub3QgcmVsb2FkZWQgd2hlbiBlbnRlcmluZyBmdWxsc2Ny
ZWVuLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGx1Z2lucy9mdWxsc2NyZWVuLXBsdWdpbnMtZG9udC1yZWxvYWQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbHVnaW5zL2Z1bGxzY3JlZW4tcGx1Z2lucy1kb250LXJlbG9hZC5odG1s
OiBBZGRlZC4KKwogMjAxMS0wOC0xOCAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHRyYWN0IGJyZWFrcG9pbnQgbWFu
YWdlbWVudCBjb2RlIHRvIGEgc2VwYXJhdGUgY2xhc3MgYW5kIGFkZCB0ZXN0cy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsdWdpbnMvZnVsbHNjcmVlbi1wbHVnaW5zLWRvbnQtcmVsb2FkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsdWdpbnMvZnVsbHNjcmVlbi1wbHVnaW5zLWRvbnQt
cmVsb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODIwOGYxYzJkYjFhZmQ4MzA5M2QzZjM3
ZmE0NjU0ZmQ2MGIwNTlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGx1Z2lucy9m
dWxsc2NyZWVuLXBsdWdpbnMtZG9udC1yZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTgg
QEAKK0FMRVJUOiBQbHVnaW4gTG9hZGVkIQorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisg
IFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVySW5saW5l
IHtBfSBhdCAoMCwwKSBzaXplIDgxeDE4IFtjb2xvcj0jMDAwMEVFXQorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMTM2KSBzaXplIDgxeDE4CisgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMTM2KSB3aWR0aCA4MTogImdvIGZ1bGxzY3JlZW4iCisgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDgxLDEzNikgc2l6ZSA0eDE4CisgICAgICAgIHRleHQgcnVuIGF0ICg4MSwxMzYpIHdp
ZHRoIDQ6ICIgIgorICAgICAgUmVuZGVyQmxvY2sgKGdlbmVyYXRlZCkgYXQgKDg1LDApIHNpemUg
MzAweDE1MAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJGdWxsU2NyZWVuIHpJOiAyMTQ3NDgzNjQ3IGF0ICgwLDApIHNp
emUgODAweDYwMCBbYmdjb2xvcj0jMDAwMDAwXQorICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMp
IGF0ICgyNTAsMjI1KSBzaXplIDMwMHgxNTAKKyAgICAgIFJlbmRlckVtYmVkZGVkT2JqZWN0IHtF
TUJFRH0gYXQgKDAsMCkgc2l6ZSAzMDB4MTUwIFtiZ2NvbG9yPSNGRkZGRkZdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbHVnaW5zL2Z1bGxzY3JlZW4tcGx1Z2lucy1kb250LXJlbG9hZC5odG1s
IGIvTGF5b3V0VGVzdHMvcGx1Z2lucy9mdWxsc2NyZWVuLXBsdWdpbnMtZG9udC1yZWxvYWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wMTgyNDM4MjAxOGRmOTU5ODFkOWFmYmY2MGI2OGM0MjMwZDcwMzFjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGx1Z2lucy9mdWxsc2NyZWVuLXBsdWdpbnMt
ZG9udC1yZWxvYWQuaHRtbApAQCAtMCwwICsxLDI2IEBACis8aHRtbD4KKzxhIGlkPSdsaW5rJyBo
cmVmPSJqYXZhc2NyaXB0OmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwbGcnKS53ZWJraXRSZXF1
ZXN0RnVsbFNjcmVlbigpIj5nbworZnVsbHNjcmVlbjwvYT4KKzxlbWJlZCBpZD0icGxnIiB0eXBl
PSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIiBzcmM9ImRhdGE6YXBwbGljYXRp
b24veC13ZWJraXQtdGVzdC1uZXRzY2FwZSxhbGVydHdoZW5sb2FkZWQiPjwvaWZyYW1lPgorCis8
c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24g
KCkgeworICAgICAgICB2YXIgbGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaW5rJyk7
CisgICAgICAgIHZhciB4ID0gbGluay5vZmZzZXRMZWZ0ICsgNTsKKyAgICAgICAgdmFyIHkgPSBs
aW5rLm9mZnNldFRvcCArIDU7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkp
OworICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VVcCgpOworCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKKyAg
ICB9LCAxMDApOworfQorCisKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGEzYTBm
MWVjYmVhMmY3MGQxODk5NjdmMGIxYTc3MjRjZmUwYjJiZjEuLjNlNDQyNDI0YmU1NWUzYmE1Zjkx
OGNlNjQ5YTYyMDc0OTcwMDJmZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMS0w
OC0yMiAgSmVyZW15IEFwdGhvcnAgIDxqZXJlbXlhQGdvb2dsZS5jb20+CisKKyAgICAgICAgRG9u
J3QgZGV0YWNoIGVsZW1lbnRzIGZyb20gdGhlIHJlbmRlciB0cmVlIHdoZW4gZW50ZXJpbmcgZnVs
bHNjcmVlbiBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NjUzMQorCisgICAgICAgIFRoaXMgcHJldmVudHMgcGx1Z2luIGluc3RhbmNlcyBmcm9t
IGJlaW5nIGRlc3Ryb3llZCBhbmQgcmVpbnN0YW50aWF0ZWQKKyAgICAgICAgd2hlbiBlbnRlcmlu
ZyBmdWxsc2NyZWVuIG1vZGUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogcGx1Z2lucy9mdWxsc2NyZWVuLXBsdWdpbnMtZG9udC1yZWxvYWQu
aHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojp3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAg
ICAgICAgKiBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZVJlbmRlcmVyRmFjdG9yeTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwOgorICAgICAgICAoY3JlYXRlRnVsbFNjcmVl
blN0eWxlKToKKyAgICAgICAgKFJlbmRlckZ1bGxTY3JlZW46OndyYXBSZW5kZXJlcik6CisgICAg
ICAgIChSZW5kZXJGdWxsU2NyZWVuOjp1bndyYXBSZW5kZXJlcik6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckZ1bGxTY3JlZW4uaDoKKwogMjAxMS0wOC0xOSAgRGFuIEJlcm5zdGVpbiAgPG1p
dHpAYXBwbGUuY29tPgogCiAgICAgICAgIEJldHRlciBidWlsZCBmaXggYWZ0ZXIgcjkzMzg0Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMTUwYzBmY2VjNGQ3YjE1MjNmNGFlZmQ3ZmFmOTdm
OWY1YzViOTcyMy4uMTBkNjBhODBkMzEyMDQ3ZWNiMzA5MzFiNjE5NTU1NGFjNjYyMzE0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00ODEzLDcgKzQ4MTMsNyBAQCB2b2lkIERvY3VtZW50
Ojp3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQog
ICAgIH0KIAogICAgIGlmIChtX2Z1bGxTY3JlZW5FbGVtZW50ICE9IGRvY3VtZW50RWxlbWVudCgp
KQotICAgICAgICBtX2Z1bGxTY3JlZW5FbGVtZW50LT5kZXRhY2goKTsKKyAgICAgICAgUmVuZGVy
RnVsbFNjcmVlbjo6d3JhcFJlbmRlcmVyKHJlbmRlcmVyLCB0aGlzKTsKIAogICAgIG1fZnVsbFNj
cmVlbkVsZW1lbnQtPnNldENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnRPbkFuY2VzdG9yc0Nyb3Nz
aW5nRnJhbWVCb3VuZGFyaWVzKHRydWUpOwogICAgIApAQCAtNDg2NCwxNSArNDg2NCwxMSBAQCB2
b2lkIERvY3VtZW50Ojp3ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCop
CiB7CiAgICAgbV9hcmVLZXlzRW5hYmxlZEluRnVsbFNjcmVlbiA9IGZhbHNlOwogICAgIHNldEFu
aW1hdGluZ0Z1bGxTY3JlZW4oZmFsc2UpOwotCi0gICAgaWYgKG1fZnVsbFNjcmVlblJlbmRlcmVy
KQotICAgICAgICBtX2Z1bGxTY3JlZW5SZW5kZXJlci0+cmVtb3ZlKCk7CiAgICAgCi0gICAgaWYg
KG1fZnVsbFNjcmVlbkVsZW1lbnQgIT0gZG9jdW1lbnRFbGVtZW50KCkpCi0gICAgICAgIG1fZnVs
bFNjcmVlbkVsZW1lbnQtPmRldGFjaCgpOworICAgIGlmIChtX2Z1bGxTY3JlZW5SZW5kZXJlcikK
KyAgICAgICAgbV9mdWxsU2NyZWVuUmVuZGVyZXItPnVud3JhcFJlbmRlcmVyKCk7CiAKICAgICBt
X2Z1bGxTY3JlZW5DaGFuZ2VFdmVudFRhcmdldFF1ZXVlLmFwcGVuZChtX2Z1bGxTY3JlZW5FbGVt
ZW50LnJlbGVhc2UoKSk7Ci0gICAgc2V0RnVsbFNjcmVlblJlbmRlcmVyKDApOwogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBwYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKS0+
c2V0Um9vdEZ1bGxTY3JlZW5MYXllcigwKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggMDE1ZTI5NDQyZDUzM2UxZGRkOTFhZDJmNjFm
NTNjZGJkZDdjZTQyNy4uNWJkMjNiOGU2ZmY0MGY5YWM3OGI1ZjYwNzFlNTQ1ZjFjMGZlZTU0YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0zMjAs
MjIgKzMyMCw2IEBAIFJlbmRlck9iamVjdCogTm9kZVJlbmRlcmVyRmFjdG9yeTo6Y3JlYXRlUmVu
ZGVyZXJBbmRTdHlsZSgpCiAgICAgcmV0dXJuIG5ld1JlbmRlcmVyOwogfQogCi0jaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQotc3RhdGljIFJlbmRlck9iamVjdCogd3JhcFdpdGhSZW5kZXJGdWxs
U2NyZWVuKFJlbmRlck9iamVjdCogb2JqZWN0LCBEb2N1bWVudCogZG9jdW1lbnQpCi17Ci0gICAg
UmVuZGVyRnVsbFNjcmVlbiogZnVsbHNjcmVlblJlbmRlcmVyID0gbmV3IChkb2N1bWVudC0+cmVu
ZGVyQXJlbmEoKSkgUmVuZGVyRnVsbFNjcmVlbihkb2N1bWVudCk7Ci0gICAgZnVsbHNjcmVlblJl
bmRlcmVyLT5zZXRTdHlsZShSZW5kZXJGdWxsU2NyZWVuOjpjcmVhdGVGdWxsU2NyZWVuU3R5bGUo
KSk7Ci0gICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHdlIGZhaWxlZCB0byBjcmVhdGUgdGhlIG5l
dyByZW5kZXIgYW5kIGVuZCB1cCB3cmFwcGluZyBub3RoaW5nLgotICAgIC8vIFdlJ2xsIGVuZCB1
cCBkaXNwbGF5aW5nIGEgYmxhY2sgc2NyZWVuLCBidXQgSmVyIHNheXMgdGhpcyBpcyBleHBlY3Rl
ZC4KLSAgICBpZiAob2JqZWN0KQotICAgICAgICBmdWxsc2NyZWVuUmVuZGVyZXItPmFkZENoaWxk
KG9iamVjdCk7Ci0gICAgZG9jdW1lbnQtPnNldEZ1bGxTY3JlZW5SZW5kZXJlcihmdWxsc2NyZWVu
UmVuZGVyZXIpOwotICAgIGlmIChmdWxsc2NyZWVuUmVuZGVyZXItPnBsYWNlaG9sZGVyKCkpCi0g
ICAgICAgIHJldHVybiBmdWxsc2NyZWVuUmVuZGVyZXItPnBsYWNlaG9sZGVyKCk7Ci0gICAgcmV0
dXJuIGZ1bGxzY3JlZW5SZW5kZXJlcjsKLX0KLSNlbmRpZgotCiB2b2lkIE5vZGVSZW5kZXJlckZh
Y3Rvcnk6OmNyZWF0ZVJlbmRlcmVySWZOZWVkZWQoKQogewogICAgIE5vZGUqIG5vZGUgPSBtX2Nv
bnRleHQubm9kZSgpOwpAQCAtMzU2LDcgKzM0MCw3IEBAIHZvaWQgTm9kZVJlbmRlcmVyRmFjdG9y
eTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCgpCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CiAgICAgaWYgKGRvY3VtZW50LT53ZWJraXRJc0Z1bGxTY3JlZW4oKSAmJiBkb2N1bWVudC0+d2Vi
a2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkgPT0gbm9kZSkKLSAgICAgICAgbmV3UmVuZGVy
ZXIgPSB3cmFwV2l0aFJlbmRlckZ1bGxTY3JlZW4obmV3UmVuZGVyZXIsIGRvY3VtZW50KTsKKyAg
ICAgICAgbmV3UmVuZGVyZXIgPSBSZW5kZXJGdWxsU2NyZWVuOjp3cmFwUmVuZGVyZXIobmV3UmVu
ZGVyZXIsIGRvY3VtZW50KTsKICNlbmRpZgogCiAgICAgLy8gRklYTUU6IFRoaXMgc2lkZSBlZmZl
Y3Qgc2hvdWxkIGJlIHZpc2libGUgZnJvbSBhdHRhY2goKSBjb2RlLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCmluZGV4IDE4ZGJjOWY0ODczM2NmMDUw
Yzk4YjJjNGNlMWJjOWNmNzZlNWFjZGIuLjdiN2RjNDA3ZDNiOTRmYTgwNjUwMWViYTAxZWM2ZDk2
ZWUyNjkzOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxs
U2NyZWVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVl
bi5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBSZW5kZXJGdWxsU2NyZWVuOjp3aWxsQmVEZXN0
cm95ZWQoKQogICAgIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6d2lsbEJlRGVzdHJveWVk
KCk7CiB9CiAKLVBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFJlbmRlckZ1bGxTY3JlZW46OmNyZWF0
ZUZ1bGxTY3JlZW5TdHlsZSgpCitzdGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gY3JlYXRl
RnVsbFNjcmVlblN0eWxlKCkKIHsKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IGZ1bGxzY3JlZW5T
dHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVEZWZhdWx0U3R5bGUoKTsKIApAQCAtOTcsMTQgKzk3
LDQ0IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFJlbmRlckZ1bGxTY3JlZW46OmNyZWF0ZUZ1
bGxTY3JlZW5TdHlsZSgpCiAgICAgZnVsbHNjcmVlblN0eWxlLT5zZXRQb3NpdGlvbihGaXhlZFBv
c2l0aW9uKTsKICAgICBmdWxsc2NyZWVuU3R5bGUtPnNldFdpZHRoKExlbmd0aCgxMDAuMCwgUGVy
Y2VudCkpOwogICAgIGZ1bGxzY3JlZW5TdHlsZS0+c2V0SGVpZ2h0KExlbmd0aCgxMDAuMCwgUGVy
Y2VudCkpOwotICAgIGZ1bGxzY3JlZW5TdHlsZS0+c2V0TGVmdChMZW5ndGgoMCwgRml4ZWQpKTsK
LSAgICBmdWxsc2NyZWVuU3R5bGUtPnNldFRvcChMZW5ndGgoMCwgRml4ZWQpKTsKKyAgICBmdWxs
c2NyZWVuU3R5bGUtPnNldExlZnQoTGVuZ3RoKDAsIFdlYkNvcmU6OkZpeGVkKSk7CisgICAgZnVs
bHNjcmVlblN0eWxlLT5zZXRUb3AoTGVuZ3RoKDAsIFdlYkNvcmU6OkZpeGVkKSk7CiAgICAgCiAg
ICAgZnVsbHNjcmVlblN0eWxlLT5zZXRCYWNrZ3JvdW5kQ29sb3IoQ29sb3I6OmJsYWNrKTsKICAg
ICAKICAgICByZXR1cm4gZnVsbHNjcmVlblN0eWxlLnJlbGVhc2UoKTsKIH0KIAorUmVuZGVyT2Jq
ZWN0KiBSZW5kZXJGdWxsU2NyZWVuOjp3cmFwUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiBvYmplY3Qs
IERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBSZW5kZXJGdWxsU2NyZWVuKiBmdWxsc2NyZWVu
UmVuZGVyZXIgPSBuZXcgKGRvY3VtZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJGdWxsU2NyZWVu
KGRvY3VtZW50KTsKKyAgICBmdWxsc2NyZWVuUmVuZGVyZXItPnNldFN0eWxlKGNyZWF0ZUZ1bGxT
Y3JlZW5TdHlsZSgpKTsKKyAgICBpZiAob2JqZWN0KSB7CisgICAgICAgIGlmIChSZW5kZXJPYmpl
Y3QqIHBhcmVudCA9IG9iamVjdC0+cGFyZW50KCkpIHsKKyAgICAgICAgICAgIHBhcmVudC0+YWRk
Q2hpbGQoZnVsbHNjcmVlblJlbmRlcmVyLCBvYmplY3QpOworICAgICAgICAgICAgb2JqZWN0LT5y
ZW1vdmUoKTsKKyAgICAgICAgfQorICAgICAgICBmdWxsc2NyZWVuUmVuZGVyZXItPmFkZENoaWxk
KG9iamVjdCk7CisgICAgfQorICAgIGRvY3VtZW50LT5zZXRGdWxsU2NyZWVuUmVuZGVyZXIoZnVs
bHNjcmVlblJlbmRlcmVyKTsKKyAgICBpZiAoZnVsbHNjcmVlblJlbmRlcmVyLT5wbGFjZWhvbGRl
cigpKQorICAgICAgICByZXR1cm4gZnVsbHNjcmVlblJlbmRlcmVyLT5wbGFjZWhvbGRlcigpOwor
ICAgIHJldHVybiBmdWxsc2NyZWVuUmVuZGVyZXI7Cit9CisKK3ZvaWQgUmVuZGVyRnVsbFNjcmVl
bjo6dW53cmFwUmVuZGVyZXIoKQoreworICAgIFJlbmRlck9iamVjdCogd3JhcHBlZFJlbmRlcmVy
ID0gZmlyc3RDaGlsZCgpOworICAgIGlmICh3cmFwcGVkUmVuZGVyZXIpCisgICAgICAgIHdyYXBw
ZWRSZW5kZXJlci0+cmVtb3ZlKCk7CisgICAgUmVuZGVyT2JqZWN0KiBob2xkZXIgPSBwbGFjZWhv
bGRlcigpID8gcGxhY2Vob2xkZXIoKSA6IHRoaXM7CisgICAgUmVuZGVyT2JqZWN0KiBwYXJlbnQg
PSBob2xkZXItPnBhcmVudCgpOworICAgIGlmIChwYXJlbnQpCisgICAgICAgIHBhcmVudC0+YWRk
Q2hpbGQod3JhcHBlZFJlbmRlcmVyLCBob2xkZXIpOworICAgIHJlbW92ZSgpOworICAgIGRvY3Vt
ZW50KCktPnNldEZ1bGxTY3JlZW5SZW5kZXJlcigwKTsKK30KKwogdm9pZCBSZW5kZXJGdWxsU2Ny
ZWVuOjpzZXRQbGFjZWhvbGRlcihSZW5kZXJCbG9jayogcGxhY2Vob2xkZXIpCiB7CiAgICAgbV9w
bGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGdWxsU2NyZWVuLmgKaW5kZXggNmY0Yzc4MzFjZGRjMWQ2M2ZhMDMxZGI4NzA3ODYyMmVhNWFi
NjdkNS4uNzk2ODc5MmIyZjVlZjk1MjRkNTkxZGFlMjE3NTRhNDExYjc3ZWM2ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5oCkBAIC00MSw3ICs0MSw5IEBA
IHB1YmxpYzoKICAgICBSZW5kZXJCbG9jayogcGxhY2Vob2xkZXIoKSB7IHJldHVybiBtX3BsYWNl
aG9sZGVyOyB9CiAgICAgdm9pZCBjcmVhdGVQbGFjZWhvbGRlcihQYXNzUmVmUHRyPFJlbmRlclN0
eWxlPiwgY29uc3QgSW50UmVjdCYgZnJhbWVSZWN0KTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFJlbmRlclN0eWxlPiBjcmVhdGVGdWxsU2NyZWVuU3R5bGUoKTsKKworICAgIHN0YXRpYyBSZW5k
ZXJPYmplY3QqIHdyYXBSZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBEb2N1bWVudCop
OworICAgIHZvaWQgdW53cmFwUmVuZGVyZXIoKTsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgd2lsbEJlRGVzdHJveWVkKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104918</attachid>
            <date>2011-08-23 15:18:07 -0700</date>
            <delta_ts>2011-09-05 18:16:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66531-20110824081804.patch</filename>
            <type>text/plain</type>
            <size>10307</size>
            <attacher name="Jeremy Apthorp">jeremya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM0MjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1YWVlNDM3MDUzZWUwNTY4MDkxMTI0
NjMwOGY3NjUwM2E4ZjBkZTliLi4yOTJjZjRhNTU0NGE4MWEyNWMxMzdjOTI1ZWJiMGQ4MmU2MGFi
NzA2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDgtMjIgIEplcmVteSBBcHRob3JwICA8
amVyZW15YUBnb29nbGUuY29tPgorCisgICAgICAgIERvbid0IGRldGFjaCBlbGVtZW50cyBmcm9t
IHRoZSByZW5kZXIgdHJlZSB3aGVuIGVudGVyaW5nIGZ1bGxzY3JlZW4gbW9kZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1MzEKKworICAgICAgICBU
ZXN0IHRoYXQgdGhlIHBsdWdpbiBpcyBub3QgcmVsb2FkZWQgd2hlbiBlbnRlcmluZyBmdWxsc2Ny
ZWVuLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGx1Z2lucy9mdWxsc2NyZWVuLXBsdWdpbnMtZG9udC1yZWxvYWQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbHVnaW5zL2Z1bGxzY3JlZW4tcGx1Z2lucy1kb250LXJlbG9hZC5odG1s
OiBBZGRlZC4KKwogMjAxMS0wOC0xOCAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHRyYWN0IGJyZWFrcG9pbnQgbWFu
YWdlbWVudCBjb2RlIHRvIGEgc2VwYXJhdGUgY2xhc3MgYW5kIGFkZCB0ZXN0cy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsdWdpbnMvZnVsbHNjcmVlbi1wbHVnaW5zLWRvbnQtcmVsb2FkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsdWdpbnMvZnVsbHNjcmVlbi1wbHVnaW5zLWRvbnQt
cmVsb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODIwOGYxYzJkYjFhZmQ4MzA5M2QzZjM3
ZmE0NjU0ZmQ2MGIwNTlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGx1Z2lucy9m
dWxsc2NyZWVuLXBsdWdpbnMtZG9udC1yZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTgg
QEAKK0FMRVJUOiBQbHVnaW4gTG9hZGVkIQorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisg
IFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVySW5saW5l
IHtBfSBhdCAoMCwwKSBzaXplIDgxeDE4IFtjb2xvcj0jMDAwMEVFXQorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMTM2KSBzaXplIDgxeDE4CisgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMTM2KSB3aWR0aCA4MTogImdvIGZ1bGxzY3JlZW4iCisgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDgxLDEzNikgc2l6ZSA0eDE4CisgICAgICAgIHRleHQgcnVuIGF0ICg4MSwxMzYpIHdp
ZHRoIDQ6ICIgIgorICAgICAgUmVuZGVyQmxvY2sgKGdlbmVyYXRlZCkgYXQgKDg1LDApIHNpemUg
MzAweDE1MAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJGdWxsU2NyZWVuIHpJOiAyMTQ3NDgzNjQ3IGF0ICgwLDApIHNp
emUgODAweDYwMCBbYmdjb2xvcj0jMDAwMDAwXQorICAgIFJlbmRlckJsb2NrIChhbm9ueW1vdXMp
IGF0ICgyNTAsMjI1KSBzaXplIDMwMHgxNTAKKyAgICAgIFJlbmRlckVtYmVkZGVkT2JqZWN0IHtF
TUJFRH0gYXQgKDAsMCkgc2l6ZSAzMDB4MTUwIFtiZ2NvbG9yPSNGRkZGRkZdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbHVnaW5zL2Z1bGxzY3JlZW4tcGx1Z2lucy1kb250LXJlbG9hZC5odG1s
IGIvTGF5b3V0VGVzdHMvcGx1Z2lucy9mdWxsc2NyZWVuLXBsdWdpbnMtZG9udC1yZWxvYWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wMTgyNDM4MjAxOGRmOTU5ODFkOWFmYmY2MGI2OGM0MjMwZDcwMzFjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGx1Z2lucy9mdWxsc2NyZWVuLXBsdWdpbnMt
ZG9udC1yZWxvYWQuaHRtbApAQCAtMCwwICsxLDI2IEBACis8aHRtbD4KKzxhIGlkPSdsaW5rJyBo
cmVmPSJqYXZhc2NyaXB0OmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwbGcnKS53ZWJraXRSZXF1
ZXN0RnVsbFNjcmVlbigpIj5nbworZnVsbHNjcmVlbjwvYT4KKzxlbWJlZCBpZD0icGxnIiB0eXBl
PSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIiBzcmM9ImRhdGE6YXBwbGljYXRp
b24veC13ZWJraXQtdGVzdC1uZXRzY2FwZSxhbGVydHdoZW5sb2FkZWQiPjwvaWZyYW1lPgorCis8
c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24g
KCkgeworICAgICAgICB2YXIgbGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsaW5rJyk7
CisgICAgICAgIHZhciB4ID0gbGluay5vZmZzZXRMZWZ0ICsgNTsKKyAgICAgICAgdmFyIHkgPSBs
aW5rLm9mZnNldFRvcCArIDU7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkp
OworICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VVcCgpOworCisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeworICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9LCAwKTsKKyAg
ICB9LCAxMDApOworfQorCisKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGEzYTBm
MWVjYmVhMmY3MGQxODk5NjdmMGIxYTc3MjRjZmUwYjJiZjEuLjNlNDQyNDI0YmU1NWUzYmE1Zjkx
OGNlNjQ5YTYyMDc0OTcwMDJmZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMS0w
OC0yMiAgSmVyZW15IEFwdGhvcnAgIDxqZXJlbXlhQGdvb2dsZS5jb20+CisKKyAgICAgICAgRG9u
J3QgZGV0YWNoIGVsZW1lbnRzIGZyb20gdGhlIHJlbmRlciB0cmVlIHdoZW4gZW50ZXJpbmcgZnVs
bHNjcmVlbiBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NjUzMQorCisgICAgICAgIFRoaXMgcHJldmVudHMgcGx1Z2luIGluc3RhbmNlcyBmcm9t
IGJlaW5nIGRlc3Ryb3llZCBhbmQgcmVpbnN0YW50aWF0ZWQKKyAgICAgICAgd2hlbiBlbnRlcmlu
ZyBmdWxsc2NyZWVuIG1vZGUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdDogcGx1Z2lucy9mdWxsc2NyZWVuLXBsdWdpbnMtZG9udC1yZWxvYWQu
aHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojp3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAg
ICAgICAgKiBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZVJlbmRlcmVyRmFjdG9yeTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwOgorICAgICAgICAoY3JlYXRlRnVsbFNjcmVl
blN0eWxlKToKKyAgICAgICAgKFJlbmRlckZ1bGxTY3JlZW46OndyYXBSZW5kZXJlcik6CisgICAg
ICAgIChSZW5kZXJGdWxsU2NyZWVuOjp1bndyYXBSZW5kZXJlcik6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckZ1bGxTY3JlZW4uaDoKKwogMjAxMS0wOC0xOSAgRGFuIEJlcm5zdGVpbiAgPG1p
dHpAYXBwbGUuY29tPgogCiAgICAgICAgIEJldHRlciBidWlsZCBmaXggYWZ0ZXIgcjkzMzg0Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMTUwYzBmY2VjNGQ3YjE1MjNmNGFlZmQ3ZmFmOTdm
OWY1YzViOTcyMy4uMTBkNjBhODBkMzEyMDQ3ZWNiMzA5MzFiNjE5NTU1NGFjNjYyMzE0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00ODEzLDcgKzQ4MTMsNyBAQCB2b2lkIERvY3VtZW50
Ojp3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQog
ICAgIH0KIAogICAgIGlmIChtX2Z1bGxTY3JlZW5FbGVtZW50ICE9IGRvY3VtZW50RWxlbWVudCgp
KQotICAgICAgICBtX2Z1bGxTY3JlZW5FbGVtZW50LT5kZXRhY2goKTsKKyAgICAgICAgUmVuZGVy
RnVsbFNjcmVlbjo6d3JhcFJlbmRlcmVyKHJlbmRlcmVyLCB0aGlzKTsKIAogICAgIG1fZnVsbFNj
cmVlbkVsZW1lbnQtPnNldENvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnRPbkFuY2VzdG9yc0Nyb3Nz
aW5nRnJhbWVCb3VuZGFyaWVzKHRydWUpOwogICAgIApAQCAtNDg2NCwxNSArNDg2NCwxMSBAQCB2
b2lkIERvY3VtZW50Ojp3ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCop
CiB7CiAgICAgbV9hcmVLZXlzRW5hYmxlZEluRnVsbFNjcmVlbiA9IGZhbHNlOwogICAgIHNldEFu
aW1hdGluZ0Z1bGxTY3JlZW4oZmFsc2UpOwotCi0gICAgaWYgKG1fZnVsbFNjcmVlblJlbmRlcmVy
KQotICAgICAgICBtX2Z1bGxTY3JlZW5SZW5kZXJlci0+cmVtb3ZlKCk7CiAgICAgCi0gICAgaWYg
KG1fZnVsbFNjcmVlbkVsZW1lbnQgIT0gZG9jdW1lbnRFbGVtZW50KCkpCi0gICAgICAgIG1fZnVs
bFNjcmVlbkVsZW1lbnQtPmRldGFjaCgpOworICAgIGlmIChtX2Z1bGxTY3JlZW5SZW5kZXJlcikK
KyAgICAgICAgbV9mdWxsU2NyZWVuUmVuZGVyZXItPnVud3JhcFJlbmRlcmVyKCk7CiAKICAgICBt
X2Z1bGxTY3JlZW5DaGFuZ2VFdmVudFRhcmdldFF1ZXVlLmFwcGVuZChtX2Z1bGxTY3JlZW5FbGVt
ZW50LnJlbGVhc2UoKSk7Ci0gICAgc2V0RnVsbFNjcmVlblJlbmRlcmVyKDApOwogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBwYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKS0+
c2V0Um9vdEZ1bGxTY3JlZW5MYXllcigwKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggMDE1ZTI5NDQyZDUzM2UxZGRkOTFhZDJmNjFm
NTNjZGJkZDdjZTQyNy4uNWJkMjNiOGU2ZmY0MGY5YWM3OGI1ZjYwNzFlNTQ1ZjFjMGZlZTU0YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0zMjAs
MjIgKzMyMCw2IEBAIFJlbmRlck9iamVjdCogTm9kZVJlbmRlcmVyRmFjdG9yeTo6Y3JlYXRlUmVu
ZGVyZXJBbmRTdHlsZSgpCiAgICAgcmV0dXJuIG5ld1JlbmRlcmVyOwogfQogCi0jaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQotc3RhdGljIFJlbmRlck9iamVjdCogd3JhcFdpdGhSZW5kZXJGdWxs
U2NyZWVuKFJlbmRlck9iamVjdCogb2JqZWN0LCBEb2N1bWVudCogZG9jdW1lbnQpCi17Ci0gICAg
UmVuZGVyRnVsbFNjcmVlbiogZnVsbHNjcmVlblJlbmRlcmVyID0gbmV3IChkb2N1bWVudC0+cmVu
ZGVyQXJlbmEoKSkgUmVuZGVyRnVsbFNjcmVlbihkb2N1bWVudCk7Ci0gICAgZnVsbHNjcmVlblJl
bmRlcmVyLT5zZXRTdHlsZShSZW5kZXJGdWxsU2NyZWVuOjpjcmVhdGVGdWxsU2NyZWVuU3R5bGUo
KSk7Ci0gICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHdlIGZhaWxlZCB0byBjcmVhdGUgdGhlIG5l
dyByZW5kZXIgYW5kIGVuZCB1cCB3cmFwcGluZyBub3RoaW5nLgotICAgIC8vIFdlJ2xsIGVuZCB1
cCBkaXNwbGF5aW5nIGEgYmxhY2sgc2NyZWVuLCBidXQgSmVyIHNheXMgdGhpcyBpcyBleHBlY3Rl
ZC4KLSAgICBpZiAob2JqZWN0KQotICAgICAgICBmdWxsc2NyZWVuUmVuZGVyZXItPmFkZENoaWxk
KG9iamVjdCk7Ci0gICAgZG9jdW1lbnQtPnNldEZ1bGxTY3JlZW5SZW5kZXJlcihmdWxsc2NyZWVu
UmVuZGVyZXIpOwotICAgIGlmIChmdWxsc2NyZWVuUmVuZGVyZXItPnBsYWNlaG9sZGVyKCkpCi0g
ICAgICAgIHJldHVybiBmdWxsc2NyZWVuUmVuZGVyZXItPnBsYWNlaG9sZGVyKCk7Ci0gICAgcmV0
dXJuIGZ1bGxzY3JlZW5SZW5kZXJlcjsKLX0KLSNlbmRpZgotCiB2b2lkIE5vZGVSZW5kZXJlckZh
Y3Rvcnk6OmNyZWF0ZVJlbmRlcmVySWZOZWVkZWQoKQogewogICAgIE5vZGUqIG5vZGUgPSBtX2Nv
bnRleHQubm9kZSgpOwpAQCAtMzU2LDcgKzM0MCw3IEBAIHZvaWQgTm9kZVJlbmRlcmVyRmFjdG9y
eTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCgpCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CiAgICAgaWYgKGRvY3VtZW50LT53ZWJraXRJc0Z1bGxTY3JlZW4oKSAmJiBkb2N1bWVudC0+d2Vi
a2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkgPT0gbm9kZSkKLSAgICAgICAgbmV3UmVuZGVy
ZXIgPSB3cmFwV2l0aFJlbmRlckZ1bGxTY3JlZW4obmV3UmVuZGVyZXIsIGRvY3VtZW50KTsKKyAg
ICAgICAgbmV3UmVuZGVyZXIgPSBSZW5kZXJGdWxsU2NyZWVuOjp3cmFwUmVuZGVyZXIobmV3UmVu
ZGVyZXIsIGRvY3VtZW50KTsKICNlbmRpZgogCiAgICAgLy8gRklYTUU6IFRoaXMgc2lkZSBlZmZl
Y3Qgc2hvdWxkIGJlIHZpc2libGUgZnJvbSBhdHRhY2goKSBjb2RlLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCmluZGV4IDE4ZGJjOWY0ODczM2NmMDUw
Yzk4YjJjNGNlMWJjOWNmNzZlNWFjZGIuLjliYzEzYzdiZDVmNmVjMTdjZjkyZmFiMjAzNjhlY2Qy
NDc3YmNhODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxs
U2NyZWVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVl
bi5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBSZW5kZXJGdWxsU2NyZWVuOjp3aWxsQmVEZXN0
cm95ZWQoKQogICAgIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6d2lsbEJlRGVzdHJveWVk
KCk7CiB9CiAKLVBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFJlbmRlckZ1bGxTY3JlZW46OmNyZWF0
ZUZ1bGxTY3JlZW5TdHlsZSgpCitzdGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gY3JlYXRl
RnVsbFNjcmVlblN0eWxlKCkKIHsKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IGZ1bGxzY3JlZW5T
dHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVEZWZhdWx0U3R5bGUoKTsKIApAQCAtOTcsMTQgKzk3
LDQ1IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFJlbmRlckZ1bGxTY3JlZW46OmNyZWF0ZUZ1
bGxTY3JlZW5TdHlsZSgpCiAgICAgZnVsbHNjcmVlblN0eWxlLT5zZXRQb3NpdGlvbihGaXhlZFBv
c2l0aW9uKTsKICAgICBmdWxsc2NyZWVuU3R5bGUtPnNldFdpZHRoKExlbmd0aCgxMDAuMCwgUGVy
Y2VudCkpOwogICAgIGZ1bGxzY3JlZW5TdHlsZS0+c2V0SGVpZ2h0KExlbmd0aCgxMDAuMCwgUGVy
Y2VudCkpOwotICAgIGZ1bGxzY3JlZW5TdHlsZS0+c2V0TGVmdChMZW5ndGgoMCwgRml4ZWQpKTsK
LSAgICBmdWxsc2NyZWVuU3R5bGUtPnNldFRvcChMZW5ndGgoMCwgRml4ZWQpKTsKKyAgICBmdWxs
c2NyZWVuU3R5bGUtPnNldExlZnQoTGVuZ3RoKDAsIFdlYkNvcmU6OkZpeGVkKSk7CisgICAgZnVs
bHNjcmVlblN0eWxlLT5zZXRUb3AoTGVuZ3RoKDAsIFdlYkNvcmU6OkZpeGVkKSk7CiAgICAgCiAg
ICAgZnVsbHNjcmVlblN0eWxlLT5zZXRCYWNrZ3JvdW5kQ29sb3IoQ29sb3I6OmJsYWNrKTsKICAg
ICAKICAgICByZXR1cm4gZnVsbHNjcmVlblN0eWxlLnJlbGVhc2UoKTsKIH0KIAorUmVuZGVyT2Jq
ZWN0KiBSZW5kZXJGdWxsU2NyZWVuOjp3cmFwUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiBvYmplY3Qs
IERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBSZW5kZXJGdWxsU2NyZWVuKiBmdWxsc2NyZWVu
UmVuZGVyZXIgPSBuZXcgKGRvY3VtZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJGdWxsU2NyZWVu
KGRvY3VtZW50KTsKKyAgICBmdWxsc2NyZWVuUmVuZGVyZXItPnNldFN0eWxlKGNyZWF0ZUZ1bGxT
Y3JlZW5TdHlsZSgpKTsKKyAgICBpZiAob2JqZWN0KSB7CisgICAgICAgIGlmIChSZW5kZXJPYmpl
Y3QqIHBhcmVudCA9IG9iamVjdC0+cGFyZW50KCkpIHsKKyAgICAgICAgICAgIHBhcmVudC0+YWRk
Q2hpbGQoZnVsbHNjcmVlblJlbmRlcmVyLCBvYmplY3QpOworICAgICAgICAgICAgb2JqZWN0LT5y
ZW1vdmUoKTsKKyAgICAgICAgfQorICAgICAgICBmdWxsc2NyZWVuUmVuZGVyZXItPmFkZENoaWxk
KG9iamVjdCk7CisgICAgfQorICAgIGRvY3VtZW50LT5zZXRGdWxsU2NyZWVuUmVuZGVyZXIoZnVs
bHNjcmVlblJlbmRlcmVyKTsKKyAgICBpZiAoZnVsbHNjcmVlblJlbmRlcmVyLT5wbGFjZWhvbGRl
cigpKQorICAgICAgICByZXR1cm4gZnVsbHNjcmVlblJlbmRlcmVyLT5wbGFjZWhvbGRlcigpOwor
ICAgIHJldHVybiBmdWxsc2NyZWVuUmVuZGVyZXI7Cit9CisKK3ZvaWQgUmVuZGVyRnVsbFNjcmVl
bjo6dW53cmFwUmVuZGVyZXIoKQoreworICAgIFJlbmRlck9iamVjdCogd3JhcHBlZFJlbmRlcmVy
ID0gZmlyc3RDaGlsZCgpOworICAgIGlmICh3cmFwcGVkUmVuZGVyZXIpIHsKKyAgICAgICAgd3Jh
cHBlZFJlbmRlcmVyLT5yZW1vdmUoKTsKKyAgICAgICAgUmVuZGVyT2JqZWN0KiBob2xkZXIgPSBw
bGFjZWhvbGRlcigpID8gcGxhY2Vob2xkZXIoKSA6IHRoaXM7CisgICAgICAgIFJlbmRlck9iamVj
dCogcGFyZW50ID0gaG9sZGVyLT5wYXJlbnQoKTsKKyAgICAgICAgaWYgKHBhcmVudCkKKyAgICAg
ICAgICAgIHBhcmVudC0+YWRkQ2hpbGQod3JhcHBlZFJlbmRlcmVyLCBob2xkZXIpOworICAgIH0K
KyAgICByZW1vdmUoKTsKKyAgICBkb2N1bWVudCgpLT5zZXRGdWxsU2NyZWVuUmVuZGVyZXIoMCk7
Cit9CisKIHZvaWQgUmVuZGVyRnVsbFNjcmVlbjo6c2V0UGxhY2Vob2xkZXIoUmVuZGVyQmxvY2sq
IHBsYWNlaG9sZGVyKQogewogICAgIG1fcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5oCmluZGV4IDZmNGM3ODMxY2Rk
YzFkNjNmYTAzMWRiODcwNzg2MjJlYTVhYjY3ZDUuLjc5Njg3OTJiMmY1ZWY5NTI0ZDU5MWRhZTIx
NzU0YTQxMWI3N2VjNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGdWxsU2NyZWVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxT
Y3JlZW4uaApAQCAtNDEsNyArNDEsOSBAQCBwdWJsaWM6CiAgICAgUmVuZGVyQmxvY2sqIHBsYWNl
aG9sZGVyKCkgeyByZXR1cm4gbV9wbGFjZWhvbGRlcjsgfQogICAgIHZvaWQgY3JlYXRlUGxhY2Vo
b2xkZXIoUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4sIGNvbnN0IEludFJlY3QmIGZyYW1lUmVjdCk7
CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gY3JlYXRlRnVsbFNjcmVlblN0
eWxlKCk7CisKKyAgICBzdGF0aWMgUmVuZGVyT2JqZWN0KiB3cmFwUmVuZGVyZXIoUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciwgRG9jdW1lbnQqKTsKKyAgICB2b2lkIHVud3JhcFJlbmRlcmVyKCk7CiAK
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106371</attachid>
            <date>2011-09-05 18:17:14 -0700</date>
            <delta_ts>2011-09-16 14:44:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66531-20110906111711.patch</filename>
            <type>text/plain</type>
            <size>10699</size>
            <attacher name="James Kozianski">koz</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ0NjkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlNTJlZGFhNzMzOWUxMmFhMGY3MDFm
YTA0ZmY4OWQ1ZDZjN2IwMjRlLi41N2E3YmEwZmIxODZmNmU5OTQ5YTI5MGM3ODNmODhlZDQ5N2Uw
MjI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDktMDUgIEphbWVzIEtvemlhbnNraSAg
PGtvekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRG9uJ3QgZGV0YWNoIGVsZW1lbnRzIGZyb20g
dGhlIHJlbmRlciB0cmVlIHdoZW4gZW50ZXJpbmcgZnVsbHNjcmVlbiBtb2RlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjUzMQorCisgICAgICAgIFRl
c3QgdGhhdCB0aGUgcGx1Z2luIGlzIG5vdCByZWxvYWRlZCB3aGVuIGVudGVyaW5nIGZ1bGxzY3Jl
ZW4uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
bHVnaW5zL2Z1bGxzY3JlZW4tcGx1Z2lucy1kb250LXJlbG9hZC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHBsdWdpbnMvZnVsbHNjcmVlbi1wbHVnaW5zLWRvbnQtcmVsb2FkLmh0bWw6
IEFkZGVkLgorCiAyMDExLTA5LTAyICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBVcGRhdGUgYmFzZWxpbmVzIGFuZCBleHBlY3RhdGlv
bnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbHVnaW5zL2Z1bGxzY3JlZW4tcGx1Z2lucy1k
b250LXJlbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbHVnaW5zL2Z1bGxzY3JlZW4t
cGx1Z2lucy1kb250LXJlbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzgyMDhmMWMyZGIx
YWZkODMwOTNkM2YzN2ZhNDY1NGZkNjBiMDU5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsdWdpbnMvZnVsbHNjcmVlbi1wbHVnaW5zLWRvbnQtcmVsb2FkLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE4IEBACitBTEVSVDogUGx1Z2luIExvYWRlZCEKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAg
IFJlbmRlcklubGluZSB7QX0gYXQgKDAsMCkgc2l6ZSA4MXgxOCBbY29sb3I9IzAwMDBFRV0KKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDEzNikgc2l6ZSA4MXgxOAorICAgICAgICAg
IHRleHQgcnVuIGF0ICgwLDEzNikgd2lkdGggODE6ICJnbyBmdWxsc2NyZWVuIgorICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICg4MSwxMzYpIHNpemUgNHgxOAorICAgICAgICB0ZXh0IHJ1biBh
dCAoODEsMTM2KSB3aWR0aCA0OiAiICIKKyAgICAgIFJlbmRlckJsb2NrIChnZW5lcmF0ZWQpIGF0
ICg4NSwwKSBzaXplIDMwMHgxNTAKKyAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDB4MAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyRnVsbFNjcmVlbiB6STogMjE0NzQ4MzY0
NyBhdCAoMCwwKSBzaXplIDgwMHg2MDAgW2JnY29sb3I9IzAwMDAwMF0KKyAgICBSZW5kZXJCbG9j
ayAoYW5vbnltb3VzKSBhdCAoMjUwLDIyNSkgc2l6ZSAzMDB4MTUwCisgICAgICBSZW5kZXJFbWJl
ZGRlZE9iamVjdCB7RU1CRUR9IGF0ICgwLDApIHNpemUgMzAweDE1MCBbYmdjb2xvcj0jRkZGRkZG
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGx1Z2lucy9mdWxsc2NyZWVuLXBsdWdpbnMtZG9u
dC1yZWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL3BsdWdpbnMvZnVsbHNjcmVlbi1wbHVnaW5zLWRv
bnQtcmVsb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDE4MjQzODIwMThkZjk1OTgxZDlhZmJmNjBiNjhj
NDIzMGQ3MDMxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsdWdpbnMvZnVsbHNj
cmVlbi1wbHVnaW5zLWRvbnQtcmVsb2FkLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPGh0bWw+Cis8
YSBpZD0nbGluaycgaHJlZj0iamF2YXNjcmlwdDpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGxn
Jykud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4oKSI+Z28KK2Z1bGxzY3JlZW48L2E+Cis8ZW1iZWQg
aWQ9InBsZyIgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZSIgc3JjPSJk
YXRhOmFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUsYWxlcnR3aGVubG9hZGVkIj48
L2lmcmFtZT4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKKyAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIGxpbmsgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnbGluaycpOworICAgICAgICB2YXIgeCA9IGxpbmsub2Zmc2V0TGVmdCArIDU7CisgICAg
ICAgIHZhciB5ID0gbGluay5vZmZzZXRUb3AgKyA1OworICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbyh4LCB5KTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgp
IHsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAg
ICAgfSwgMCk7CisgICAgfSwgMTAwKTsKK30KKworCis8L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBjM2FkYmZiYWQ5MzBhZDIzMWUxNjI1YTlhMzQzZmRlNDhlZDZkZGNmLi45MzRjZjU5
Y2Q3ZDBkM2I0ZTJmNjkyMTNhZjZiYTk3YmVlOTBjM2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjYgQEAKKzIwMTEtMDktMDUgIEphbWVzIEtvemlhbnNraSAgPGtvekBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgRG9uJ3QgZGV0YWNoIGVsZW1lbnRzIGZyb20gdGhlIHJlbmRlciB0cmVlIHdoZW4g
ZW50ZXJpbmcgZnVsbHNjcmVlbiBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NjUzMQorCisgICAgICAgIFRoaXMgcHJldmVudHMgcGx1Z2luIGlu
c3RhbmNlcyBmcm9tIGJlaW5nIGRlc3Ryb3llZCBhbmQgcmVpbnN0YW50aWF0ZWQKKyAgICAgICAg
d2hlbiBlbnRlcmluZyBmdWxsc2NyZWVuIG1vZGUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogcGx1Z2lucy9mdWxsc2NyZWVuLXBsdWdpbnMt
ZG9udC1yZWxvYWQuaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50Ojp3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JF
bGVtZW50KToKKyAgICAgICAgKiBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmVyRmFjdG9yeTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwOgorICAgICAgICAoY3Jl
YXRlRnVsbFNjcmVlblN0eWxlKToKKyAgICAgICAgKFJlbmRlckZ1bGxTY3JlZW46OndyYXBSZW5k
ZXJlcik6CisgICAgICAgIChSZW5kZXJGdWxsU2NyZWVuOjp1bndyYXBSZW5kZXJlcik6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaDoKKwogMjAxMS0wOS0wMiAgQmlsbCBC
dWRnZSAgPGJidWRnZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIGEgJ2RpZERvd25sb2Fk
RGF0YScgbWV0aG9kIHRvIFJlc291cmNlTG9hZGVyLCBTdWJyZXNvdXJjZUxvYWRlciwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IGYwMTU3MDIzODFjM2Q3MDg3ZGZmNjIyMjQwMGQxMWNiYzNk
ZDk4YzEuLmNjMWZjNzc0ZWVhNTYxMmIzOGZjM2ZjZmIxNDljM2FjNGVmN2IyODQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtNDc5Nyw2ICs0Nzk3LDkgQEAgdm9pZCBEb2N1bWVudDo6d2Vi
a2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKICAgICBB
U1NFUlQoZWxlbWVudCk7CiAgICAgQVNTRVJUKHBhZ2UoKSAmJiBwYWdlKCktPnNldHRpbmdzKCkt
PmZ1bGxTY3JlZW5FbmFibGVkKCkpOwogCisgICAgaWYgKG1fZnVsbFNjcmVlblJlbmRlcmVyKQor
ICAgICAgICBtX2Z1bGxTY3JlZW5SZW5kZXJlci0+dW53cmFwUmVuZGVyZXIoKTsKKwogICAgIG1f
ZnVsbFNjcmVlbkVsZW1lbnQgPSBlbGVtZW50OwogCiAgICAgLy8gQ3JlYXRlIGEgcGxhY2Vob2xk
ZXIgYmxvY2sgZm9yIGEgdGhlIGZ1bGwtc2NyZWVuIGVsZW1lbnQsIHRvIGtlZXAgdGhlIHBhZ2Ug
ZnJvbSByZWZsb3dpbmcKQEAgLTQ4MTEsNyArNDgxNCw3IEBAIHZvaWQgRG9jdW1lbnQ6OndlYmtp
dFdpbGxFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgfQog
CiAgICAgaWYgKG1fZnVsbFNjcmVlbkVsZW1lbnQgIT0gZG9jdW1lbnRFbGVtZW50KCkpCi0gICAg
ICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQtPmRldGFjaCgpOworICAgICAgICBSZW5kZXJGdWxsU2Ny
ZWVuOjp3cmFwUmVuZGVyZXIocmVuZGVyZXIsIHRoaXMpOwogCiAgICAgbV9mdWxsU2NyZWVuRWxl
bWVudC0+c2V0Q29udGFpbnNGdWxsU2NyZWVuRWxlbWVudE9uQW5jZXN0b3JzQ3Jvc3NpbmdGcmFt
ZUJvdW5kYXJpZXModHJ1ZSk7CiAgICAgCkBAIC00ODYyLDE1ICs0ODY1LDExIEBAIHZvaWQgRG9j
dW1lbnQ6OndlYmtpdERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KikKIHsKICAg
ICBtX2FyZUtleXNFbmFibGVkSW5GdWxsU2NyZWVuID0gZmFsc2U7CiAgICAgc2V0QW5pbWF0aW5n
RnVsbFNjcmVlbihmYWxzZSk7Ci0KLSAgICBpZiAobV9mdWxsU2NyZWVuUmVuZGVyZXIpCi0gICAg
ICAgIG1fZnVsbFNjcmVlblJlbmRlcmVyLT5yZW1vdmUoKTsKICAgICAKLSAgICBpZiAobV9mdWxs
U2NyZWVuRWxlbWVudCAhPSBkb2N1bWVudEVsZW1lbnQoKSkKLSAgICAgICAgbV9mdWxsU2NyZWVu
RWxlbWVudC0+ZGV0YWNoKCk7CisgICAgaWYgKG1fZnVsbFNjcmVlblJlbmRlcmVyKQorICAgICAg
ICBtX2Z1bGxTY3JlZW5SZW5kZXJlci0+dW53cmFwUmVuZGVyZXIoKTsKIAogICAgIG1fZnVsbFNj
cmVlbkNoYW5nZUV2ZW50VGFyZ2V0UXVldWUuYXBwZW5kKG1fZnVsbFNjcmVlbkVsZW1lbnQucmVs
ZWFzZSgpKTsKLSAgICBzZXRGdWxsU2NyZWVuUmVuZGVyZXIoMCk7CiAjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQogICAgIHBhZ2UoKS0+Y2hyb21lKCktPmNsaWVudCgpLT5zZXRSb290
RnVsbFNjcmVlbkxheWVyKDApOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5k
ZXJpbmdDb250ZXh0LmNwcAppbmRleCAwMTVlMjk0NDJkNTMzZTFkZGQ5MWFkMmY2MWY1M2NkYmRk
N2NlNDI3Li41YmQyM2I4ZTZmZjQwZjlhYzc4YjVmNjA3MWU1NDVmMWMwZmVlNTRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTMyMCwyMiArMzIw
LDYgQEAgUmVuZGVyT2JqZWN0KiBOb2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlckFu
ZFN0eWxlKCkKICAgICByZXR1cm4gbmV3UmVuZGVyZXI7CiB9CiAKLSNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiB3cmFwV2l0aFJlbmRlckZ1bGxTY3JlZW4o
UmVuZGVyT2JqZWN0KiBvYmplY3QsIERvY3VtZW50KiBkb2N1bWVudCkKLXsKLSAgICBSZW5kZXJG
dWxsU2NyZWVuKiBmdWxsc2NyZWVuUmVuZGVyZXIgPSBuZXcgKGRvY3VtZW50LT5yZW5kZXJBcmVu
YSgpKSBSZW5kZXJGdWxsU2NyZWVuKGRvY3VtZW50KTsKLSAgICBmdWxsc2NyZWVuUmVuZGVyZXIt
PnNldFN0eWxlKFJlbmRlckZ1bGxTY3JlZW46OmNyZWF0ZUZ1bGxTY3JlZW5TdHlsZSgpKTsKLSAg
ICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgd2UgZmFpbGVkIHRvIGNyZWF0ZSB0aGUgbmV3IHJlbmRl
ciBhbmQgZW5kIHVwIHdyYXBwaW5nIG5vdGhpbmcuCi0gICAgLy8gV2UnbGwgZW5kIHVwIGRpc3Bs
YXlpbmcgYSBibGFjayBzY3JlZW4sIGJ1dCBKZXIgc2F5cyB0aGlzIGlzIGV4cGVjdGVkLgotICAg
IGlmIChvYmplY3QpCi0gICAgICAgIGZ1bGxzY3JlZW5SZW5kZXJlci0+YWRkQ2hpbGQob2JqZWN0
KTsKLSAgICBkb2N1bWVudC0+c2V0RnVsbFNjcmVlblJlbmRlcmVyKGZ1bGxzY3JlZW5SZW5kZXJl
cik7Ci0gICAgaWYgKGZ1bGxzY3JlZW5SZW5kZXJlci0+cGxhY2Vob2xkZXIoKSkKLSAgICAgICAg
cmV0dXJuIGZ1bGxzY3JlZW5SZW5kZXJlci0+cGxhY2Vob2xkZXIoKTsKLSAgICByZXR1cm4gZnVs
bHNjcmVlblJlbmRlcmVyOwotfQotI2VuZGlmCi0KIHZvaWQgTm9kZVJlbmRlcmVyRmFjdG9yeTo6
Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCgpCiB7CiAgICAgTm9kZSogbm9kZSA9IG1fY29udGV4dC5u
b2RlKCk7CkBAIC0zNTYsNyArMzQwLDcgQEAgdm9pZCBOb2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVh
dGVSZW5kZXJlcklmTmVlZGVkKCkKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBp
ZiAoZG9jdW1lbnQtPndlYmtpdElzRnVsbFNjcmVlbigpICYmIGRvY3VtZW50LT53ZWJraXRDdXJy
ZW50RnVsbFNjcmVlbkVsZW1lbnQoKSA9PSBub2RlKQotICAgICAgICBuZXdSZW5kZXJlciA9IHdy
YXBXaXRoUmVuZGVyRnVsbFNjcmVlbihuZXdSZW5kZXJlciwgZG9jdW1lbnQpOworICAgICAgICBu
ZXdSZW5kZXJlciA9IFJlbmRlckZ1bGxTY3JlZW46OndyYXBSZW5kZXJlcihuZXdSZW5kZXJlciwg
ZG9jdW1lbnQpOwogI2VuZGlmCiAKICAgICAvLyBGSVhNRTogVGhpcyBzaWRlIGVmZmVjdCBzaG91
bGQgYmUgdmlzaWJsZSBmcm9tIGF0dGFjaCgpIGNvZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAKaW5kZXggMThkYmM5ZjQ4NzMzY2YwNTBjOThiMmM0
Y2UxYmM5Y2Y3NmU1YWNkYi4uOWJjMTNjN2JkNWY2ZWMxN2NmOTJmYWIyMDM2OGVjZDI0NzdiY2E4
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcApA
QCAtNzksNyArNzksNyBAQCB2b2lkIFJlbmRlckZ1bGxTY3JlZW46OndpbGxCZURlc3Ryb3llZCgp
CiAgICAgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94Ojp3aWxsQmVEZXN0cm95ZWQoKTsKIH0K
IAotUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gUmVuZGVyRnVsbFNjcmVlbjo6Y3JlYXRlRnVsbFNj
cmVlblN0eWxlKCkKK3N0YXRpYyBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjcmVhdGVGdWxsU2Ny
ZWVuU3R5bGUoKQogewogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gZnVsbHNjcmVlblN0eWxlID0g
UmVuZGVyU3R5bGU6OmNyZWF0ZURlZmF1bHRTdHlsZSgpOwogCkBAIC05NywxNCArOTcsNDUgQEAg
UGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gUmVuZGVyRnVsbFNjcmVlbjo6Y3JlYXRlRnVsbFNjcmVl
blN0eWxlKCkKICAgICBmdWxsc2NyZWVuU3R5bGUtPnNldFBvc2l0aW9uKEZpeGVkUG9zaXRpb24p
OwogICAgIGZ1bGxzY3JlZW5TdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKDEwMC4wLCBQZXJjZW50KSk7
CiAgICAgZnVsbHNjcmVlblN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKDEwMC4wLCBQZXJjZW50KSk7
Ci0gICAgZnVsbHNjcmVlblN0eWxlLT5zZXRMZWZ0KExlbmd0aCgwLCBGaXhlZCkpOwotICAgIGZ1
bGxzY3JlZW5TdHlsZS0+c2V0VG9wKExlbmd0aCgwLCBGaXhlZCkpOworICAgIGZ1bGxzY3JlZW5T
dHlsZS0+c2V0TGVmdChMZW5ndGgoMCwgV2ViQ29yZTo6Rml4ZWQpKTsKKyAgICBmdWxsc2NyZWVu
U3R5bGUtPnNldFRvcChMZW5ndGgoMCwgV2ViQ29yZTo6Rml4ZWQpKTsKICAgICAKICAgICBmdWxs
c2NyZWVuU3R5bGUtPnNldEJhY2tncm91bmRDb2xvcihDb2xvcjo6YmxhY2spOwogICAgIAogICAg
IHJldHVybiBmdWxsc2NyZWVuU3R5bGUucmVsZWFzZSgpOwogfQogCitSZW5kZXJPYmplY3QqIFJl
bmRlckZ1bGxTY3JlZW46OndyYXBSZW5kZXJlcihSZW5kZXJPYmplY3QqIG9iamVjdCwgRG9jdW1l
bnQqIGRvY3VtZW50KQoreworICAgIFJlbmRlckZ1bGxTY3JlZW4qIGZ1bGxzY3JlZW5SZW5kZXJl
ciA9IG5ldyAoZG9jdW1lbnQtPnJlbmRlckFyZW5hKCkpIFJlbmRlckZ1bGxTY3JlZW4oZG9jdW1l
bnQpOworICAgIGZ1bGxzY3JlZW5SZW5kZXJlci0+c2V0U3R5bGUoY3JlYXRlRnVsbFNjcmVlblN0
eWxlKCkpOworICAgIGlmIChvYmplY3QpIHsKKyAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcGFy
ZW50ID0gb2JqZWN0LT5wYXJlbnQoKSkgeworICAgICAgICAgICAgcGFyZW50LT5hZGRDaGlsZChm
dWxsc2NyZWVuUmVuZGVyZXIsIG9iamVjdCk7CisgICAgICAgICAgICBvYmplY3QtPnJlbW92ZSgp
OworICAgICAgICB9CisgICAgICAgIGZ1bGxzY3JlZW5SZW5kZXJlci0+YWRkQ2hpbGQob2JqZWN0
KTsKKyAgICB9CisgICAgZG9jdW1lbnQtPnNldEZ1bGxTY3JlZW5SZW5kZXJlcihmdWxsc2NyZWVu
UmVuZGVyZXIpOworICAgIGlmIChmdWxsc2NyZWVuUmVuZGVyZXItPnBsYWNlaG9sZGVyKCkpCisg
ICAgICAgIHJldHVybiBmdWxsc2NyZWVuUmVuZGVyZXItPnBsYWNlaG9sZGVyKCk7CisgICAgcmV0
dXJuIGZ1bGxzY3JlZW5SZW5kZXJlcjsKK30KKwordm9pZCBSZW5kZXJGdWxsU2NyZWVuOjp1bndy
YXBSZW5kZXJlcigpCit7CisgICAgUmVuZGVyT2JqZWN0KiB3cmFwcGVkUmVuZGVyZXIgPSBmaXJz
dENoaWxkKCk7CisgICAgaWYgKHdyYXBwZWRSZW5kZXJlcikgeworICAgICAgICB3cmFwcGVkUmVu
ZGVyZXItPnJlbW92ZSgpOworICAgICAgICBSZW5kZXJPYmplY3QqIGhvbGRlciA9IHBsYWNlaG9s
ZGVyKCkgPyBwbGFjZWhvbGRlcigpIDogdGhpczsKKyAgICAgICAgUmVuZGVyT2JqZWN0KiBwYXJl
bnQgPSBob2xkZXItPnBhcmVudCgpOworICAgICAgICBpZiAocGFyZW50KQorICAgICAgICAgICAg
cGFyZW50LT5hZGRDaGlsZCh3cmFwcGVkUmVuZGVyZXIsIGhvbGRlcik7CisgICAgfQorICAgIHJl
bW92ZSgpOworICAgIGRvY3VtZW50KCktPnNldEZ1bGxTY3JlZW5SZW5kZXJlcigwKTsKK30KKwog
dm9pZCBSZW5kZXJGdWxsU2NyZWVuOjpzZXRQbGFjZWhvbGRlcihSZW5kZXJCbG9jayogcGxhY2Vo
b2xkZXIpCiB7CiAgICAgbV9wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmgKaW5kZXggNmY0Yzc4MzFjZGRjMWQ2M2Zh
MDMxZGI4NzA3ODYyMmVhNWFiNjdkNS4uNzk2ODc5MmIyZjVlZjk1MjRkNTkxZGFlMjE3NTRhNDEx
Yjc3ZWM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxT
Y3JlZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5o
CkBAIC00MSw3ICs0MSw5IEBAIHB1YmxpYzoKICAgICBSZW5kZXJCbG9jayogcGxhY2Vob2xkZXIo
KSB7IHJldHVybiBtX3BsYWNlaG9sZGVyOyB9CiAgICAgdm9pZCBjcmVhdGVQbGFjZWhvbGRlcihQ
YXNzUmVmUHRyPFJlbmRlclN0eWxlPiwgY29uc3QgSW50UmVjdCYgZnJhbWVSZWN0KTsKIAotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBjcmVhdGVGdWxsU2NyZWVuU3R5bGUoKTsK
KworICAgIHN0YXRpYyBSZW5kZXJPYmplY3QqIHdyYXBSZW5kZXJlcihSZW5kZXJPYmplY3QqIHJl
bmRlcmVyLCBEb2N1bWVudCopOworICAgIHZvaWQgdW53cmFwUmVuZGVyZXIoKTsKIAogcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107720</attachid>
            <date>2011-09-16 14:18:25 -0700</date>
            <delta_ts>2011-09-16 14:42:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66531-20110916141824.patch</filename>
            <type>text/plain</type>
            <size>10073</size>
            <attacher name="Jeremy Apthorp">jeremya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTUwNjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwYjQ2MzhiYjhiZjdmOTc1NTJjOWQz
MTgxMmRhMGM1YzI5YzkxOWYzLi5kMzM5NjBmMDVmNTU3ZDZiYzJmOWE3NDYxYTdmNGY3ZjE1ZTJl
MGE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDktMTYgIEphbWVzIEtvemlhbnNraSAg
PGtvekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgRG9uJ3QgZGV0YWNoIGVsZW1lbnRzIGZyb20g
dGhlIHJlbmRlciB0cmVlIHdoZW4gZW50ZXJpbmcgZnVsbHNjcmVlbiBtb2RlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjUzMQorCisgICAgICAgIFRl
c3QgdGhhdCB0aGUgcGx1Z2luIGlzIG5vdCByZWxvYWRlZCB3aGVuIGVudGVyaW5nIGZ1bGxzY3Jl
ZW4uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAgKiBw
bHVnaW5zL2Z1bGxzY3JlZW4tcGx1Z2lucy1kb250LXJlbG9hZC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHBsdWdpbnMvZnVsbHNjcmVlbi1wbHVnaW5zLWRvbnQtcmVsb2FkLmh0bWw6
IEFkZGVkLgorCiAyMDExLTA5LTEzICBKZXJlbXkgQXB0aG9ycCAgPGplcmVteWFAZ29vZ2xlLmNv
bT4KIAogICAgICAgICBSZW1vdmluZyBhbiBpZnJhbWUgZnJvbSB0aGUgZG9jdW1lbnQgZHVyaW5n
IGEgdHJhbnNpdGlvbiB0byBmdWxsc2NyZWVuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbHVn
aW5zL2Z1bGxzY3JlZW4tcGx1Z2lucy1kb250LXJlbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbHVnaW5zL2Z1bGxzY3JlZW4tcGx1Z2lucy1kb250LXJlbG9hZC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjBkZWM3ZTk1OWVlMDdjN2E0MGM4YTJmOWVlYjUwZGI4YTg4N2M2OAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsdWdpbnMvZnVsbHNjcmVlbi1wbHVnaW5zLWRv
bnQtcmVsb2FkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0FMRVJUOiBQbHVnaW4gTG9h
ZGVkIQorZ28gZnVsbHNjcmVlbgorVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIEFMRVJULiBJZiB0
aGVyZSB3ZXJlIHR3bywgdGhlIHBsdWdpbiB3YXMgcmVsb2FkZWQgZHVyaW5nIHRoZSB0cmFuc2l0
aW9uIHRvIGZ1bGxzY3JlZW4uCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGx1Z2lucy9m
dWxsc2NyZWVuLXBsdWdpbnMtZG9udC1yZWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL3BsdWdpbnMv
ZnVsbHNjcmVlbi1wbHVnaW5zLWRvbnQtcmVsb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFkZTM3NjMw
MDgzZmVmNzc0NTY2MWY4MWVlYmUyOWEzNmEwZTdjYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsdWdpbnMvZnVsbHNjcmVlbi1wbHVnaW5zLWRvbnQtcmVsb2FkLmh0bWwKQEAgLTAs
MCArMSwyNSBAQAorPGh0bWw+Cis8YSBpZD0nbGluaycgaHJlZj0iamF2YXNjcmlwdDpkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncGxnJykud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4oKSI+Z28KK2Z1
bGxzY3JlZW48L2E+Cis8cD4KK1RoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBBTEVSVC4gSWYgdGhl
cmUgd2VyZSB0d28sIHRoZSBwbHVnaW4gd2FzIHJlbG9hZGVkCitkdXJpbmcgdGhlIHRyYW5zaXRp
b24gdG8gZnVsbHNjcmVlbi4KKzwvcD4KKzxlbWJlZCBpZD0icGxnIiB0eXBlPSJhcHBsaWNhdGlv
bi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIiBzcmM9ImRhdGE6YXBwbGljYXRpb24veC13ZWJraXQt
dGVzdC1uZXRzY2FwZSxhbGVydHdoZW5sb2FkZWQiPjwvaWZyYW1lPgorCis8c2NyaXB0PgoraWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisKKyAgICB2YXIgcGx1Z2luID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BsZycpOworICAg
IHBsdWdpbi5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRmdWxsc2NyZWVuY2hhbmdlJywgZnVuY3Rp
b24gKCkgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAg
fSkKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24gKCkg
eworICAgICAgICBwbHVnaW4ud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4oKTsKKyAgICB9KQorICAg
IGV2ZW50U2VuZGVyLmtleURvd24oJ2EnKQorfQorPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggODU4MjBlNDk0YWRiZmQ4NzQ0MGM0N2QyYTQzYzBjOTExNzA1MTlmZi4uZDQyODc1OTQy
MWNlYWU1MDZjZGNiYzAwNjBiYTk4MTk5MTllZWNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2
IEBACisyMDExLTA5LTE2ICBKYW1lcyBLb3ppYW5za2kgIDxrb3pAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIERvbid0IGRldGFjaCBlbGVtZW50cyBmcm9tIHRoZSByZW5kZXIgdHJlZSB3aGVuIGVu
dGVyaW5nIGZ1bGxzY3JlZW4gbW9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjY1MzEKKworICAgICAgICBUaGlzIHByZXZlbnRzIHBsdWdpbiBpbnN0
YW5jZXMgZnJvbSBiZWluZyBkZXN0cm95ZWQgYW5kIHJlaW5zdGFudGlhdGVkCisgICAgICAgIHdo
ZW4gZW50ZXJpbmcgZnVsbHNjcmVlbiBtb2RlLgorCisgICAgICAgIFJldmlld2VkIGJ5IEphbWVz
IFJvYmluc29uLgorCisgICAgICAgIFRlc3Q6IHBsdWdpbnMvZnVsbHNjcmVlbi1wbHVnaW5zLWRv
bnQtcmVsb2FkLmh0bWwKKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtpdERpZEV4aXRGdWxsU2NyZWVuRm9yRWxl
bWVudCk6CisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGVSZW5kZXJlckZhY3Rvcnk6OmNyZWF0ZVJlbmRlcmVySWZOZWVkZWQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcDoKKyAgICAgICAgKGNyZWF0
ZUZ1bGxTY3JlZW5TdHlsZSk6CisgICAgICAgIChSZW5kZXJGdWxsU2NyZWVuOjp3cmFwUmVuZGVy
ZXIpOgorICAgICAgICAoUmVuZGVyRnVsbFNjcmVlbjo6dW53cmFwUmVuZGVyZXIpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmg6CisKIDIwMTEtMDktMTMgIEplcmVteSBB
cHRob3JwICA8amVyZW15YUBnb29nbGUuY29tPgogCiAgICAgICAgIEZpeCBjcmFzaCB3aGVuIGFu
IGlmcmFtZSBlbGVtZW50IGlzIHJlbW92ZWQgZHVyaW5nIGEgdHJhbnNpdGlvbiB0bwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggY2JhNjliOWQ1MjZlZGVkODE0YmRlNjBkM2YxNjM2N2M2NDgz
ZDZlMy4uNTdkNjIwYTgxMTY3YjExZDMxN2FjMGE2NDE1N2U3ZDU3N2ZjYzY0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC00ODc3LDYgKzQ4NzcsOSBAQCB2b2lkIERvY3VtZW50Ojp3ZWJr
aXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQogICAgIEFT
U0VSVChlbGVtZW50KTsKICAgICBBU1NFUlQocGFnZSgpICYmIHBhZ2UoKS0+c2V0dGluZ3MoKS0+
ZnVsbFNjcmVlbkVuYWJsZWQoKSk7CiAKKyAgICBpZiAobV9mdWxsU2NyZWVuUmVuZGVyZXIpCisg
ICAgICAgIG1fZnVsbFNjcmVlblJlbmRlcmVyLT51bndyYXBSZW5kZXJlcigpOworCiAgICAgbV9m
dWxsU2NyZWVuRWxlbWVudCA9IGVsZW1lbnQ7CiAKICAgICAvLyBDcmVhdGUgYSBwbGFjZWhvbGRl
ciBibG9jayBmb3IgYSB0aGUgZnVsbC1zY3JlZW4gZWxlbWVudCwgdG8ga2VlcCB0aGUgcGFnZSBm
cm9tIHJlZmxvd2luZwpAQCAtNDg5MSw3ICs0ODk0LDcgQEAgdm9pZCBEb2N1bWVudDo6d2Via2l0
V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKICAgICB9CiAK
ICAgICBpZiAobV9mdWxsU2NyZWVuRWxlbWVudCAhPSBkb2N1bWVudEVsZW1lbnQoKSkKLSAgICAg
ICAgbV9mdWxsU2NyZWVuRWxlbWVudC0+ZGV0YWNoKCk7CisgICAgICAgIFJlbmRlckZ1bGxTY3Jl
ZW46OndyYXBSZW5kZXJlcihyZW5kZXJlciwgdGhpcyk7CiAKICAgICBtX2Z1bGxTY3JlZW5FbGVt
ZW50LT5zZXRDb250YWluc0Z1bGxTY3JlZW5FbGVtZW50T25BbmNlc3RvcnNDcm9zc2luZ0ZyYW1l
Qm91bmRhcmllcyh0cnVlKTsKICAgICAKQEAgLTQ5NDIsMTUgKzQ5NDUsMTEgQEAgdm9pZCBEb2N1
bWVudDo6d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKQogewogICAg
IG1fYXJlS2V5c0VuYWJsZWRJbkZ1bGxTY3JlZW4gPSBmYWxzZTsKICAgICBzZXRBbmltYXRpbmdG
dWxsU2NyZWVuKGZhbHNlKTsKLQotICAgIGlmIChtX2Z1bGxTY3JlZW5SZW5kZXJlcikKLSAgICAg
ICAgbV9mdWxsU2NyZWVuUmVuZGVyZXItPnJlbW92ZSgpOwogICAgIAotICAgIGlmIChtX2Z1bGxT
Y3JlZW5FbGVtZW50ICE9IGRvY3VtZW50RWxlbWVudCgpKQotICAgICAgICBtX2Z1bGxTY3JlZW5F
bGVtZW50LT5kZXRhY2goKTsKKyAgICBpZiAobV9mdWxsU2NyZWVuUmVuZGVyZXIpCisgICAgICAg
IG1fZnVsbFNjcmVlblJlbmRlcmVyLT51bndyYXBSZW5kZXJlcigpOwogCiAgICAgbV9mdWxsU2Ny
ZWVuQ2hhbmdlRXZlbnRUYXJnZXRRdWV1ZS5hcHBlbmQobV9mdWxsU2NyZWVuRWxlbWVudC5yZWxl
YXNlKCkpOwotICAgIHNldEZ1bGxTY3JlZW5SZW5kZXJlcigwKTsKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgcGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPnNldFJvb3RG
dWxsU2NyZWVuTGF5ZXIoMCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRl
cmluZ0NvbnRleHQuY3BwCmluZGV4IGY0NzQzZTRmMGE3YzVkNmNjMDVlODVjNmJmYmQxOTVkNjA2
MGFlOTQuLmMwYTJkYWQyMzI2NzBkM2FlYzU1MmE1M2ZkMWNlOWViYmNlMDZlMjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMzAzLDIyICszMDMs
NiBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5kZXJlckZhY3Rvcnk6OmNyZWF0ZVJlbmRlcmVyKCkK
ICAgICByZXR1cm4gbmV3UmVuZGVyZXI7CiB9CiAKLSNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
Ci1zdGF0aWMgUmVuZGVyT2JqZWN0KiB3cmFwV2l0aFJlbmRlckZ1bGxTY3JlZW4oUmVuZGVyT2Jq
ZWN0KiBvYmplY3QsIERvY3VtZW50KiBkb2N1bWVudCkKLXsKLSAgICBSZW5kZXJGdWxsU2NyZWVu
KiBmdWxsc2NyZWVuUmVuZGVyZXIgPSBuZXcgKGRvY3VtZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5k
ZXJGdWxsU2NyZWVuKGRvY3VtZW50KTsKLSAgICBmdWxsc2NyZWVuUmVuZGVyZXItPnNldFN0eWxl
KFJlbmRlckZ1bGxTY3JlZW46OmNyZWF0ZUZ1bGxTY3JlZW5TdHlsZSgpKTsKLSAgICAvLyBJdCdz
IHBvc3NpYmxlIHRoYXQgd2UgZmFpbGVkIHRvIGNyZWF0ZSB0aGUgbmV3IHJlbmRlciBhbmQgZW5k
IHVwIHdyYXBwaW5nIG5vdGhpbmcuCi0gICAgLy8gV2UnbGwgZW5kIHVwIGRpc3BsYXlpbmcgYSBi
bGFjayBzY3JlZW4sIGJ1dCBKZXIgc2F5cyB0aGlzIGlzIGV4cGVjdGVkLgotICAgIGlmIChvYmpl
Y3QpCi0gICAgICAgIGZ1bGxzY3JlZW5SZW5kZXJlci0+YWRkQ2hpbGQob2JqZWN0KTsKLSAgICBk
b2N1bWVudC0+c2V0RnVsbFNjcmVlblJlbmRlcmVyKGZ1bGxzY3JlZW5SZW5kZXJlcik7Ci0gICAg
aWYgKGZ1bGxzY3JlZW5SZW5kZXJlci0+cGxhY2Vob2xkZXIoKSkKLSAgICAgICAgcmV0dXJuIGZ1
bGxzY3JlZW5SZW5kZXJlci0+cGxhY2Vob2xkZXIoKTsKLSAgICByZXR1cm4gZnVsbHNjcmVlblJl
bmRlcmVyOwotfQotI2VuZGlmCi0KIHZvaWQgTm9kZVJlbmRlcmVyRmFjdG9yeTo6Y3JlYXRlUmVu
ZGVyZXJJZk5lZWRlZCgpCiB7CiAgICAgTm9kZSogbm9kZSA9IG1fY29udGV4dC5ub2RlKCk7CkBA
IC0zNTUsNyArMzM5LDcgQEAgdm9pZCBOb2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJl
cklmTmVlZGVkKCkKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBpZiAoZG9jdW1l
bnQtPndlYmtpdElzRnVsbFNjcmVlbigpICYmIGRvY3VtZW50LT53ZWJraXRDdXJyZW50RnVsbFNj
cmVlbkVsZW1lbnQoKSA9PSBub2RlKQotICAgICAgICBuZXdSZW5kZXJlciA9IHdyYXBXaXRoUmVu
ZGVyRnVsbFNjcmVlbihuZXdSZW5kZXJlciwgZG9jdW1lbnQpOworICAgICAgICBuZXdSZW5kZXJl
ciA9IFJlbmRlckZ1bGxTY3JlZW46OndyYXBSZW5kZXJlcihuZXdSZW5kZXJlciwgZG9jdW1lbnQp
OwogI2VuZGlmCiAKICAgICBpZiAoIW5ld1JlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCmluZGV4IDE4ZGJjOWY0ODczM2NmMDUwYzk4YjJj
NGNlMWJjOWNmNzZlNWFjZGIuLjliYzEzYzdiZDVmNmVjMTdjZjkyZmFiMjAzNjhlY2QyNDc3YmNh
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVu
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAK
QEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBSZW5kZXJGdWxsU2NyZWVuOjp3aWxsQmVEZXN0cm95ZWQo
KQogICAgIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6d2lsbEJlRGVzdHJveWVkKCk7CiB9
CiAKLVBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFJlbmRlckZ1bGxTY3JlZW46OmNyZWF0ZUZ1bGxT
Y3JlZW5TdHlsZSgpCitzdGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gY3JlYXRlRnVsbFNj
cmVlblN0eWxlKCkKIHsKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IGZ1bGxzY3JlZW5TdHlsZSA9
IFJlbmRlclN0eWxlOjpjcmVhdGVEZWZhdWx0U3R5bGUoKTsKIApAQCAtOTcsMTQgKzk3LDQ1IEBA
IFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFJlbmRlckZ1bGxTY3JlZW46OmNyZWF0ZUZ1bGxTY3Jl
ZW5TdHlsZSgpCiAgICAgZnVsbHNjcmVlblN0eWxlLT5zZXRQb3NpdGlvbihGaXhlZFBvc2l0aW9u
KTsKICAgICBmdWxsc2NyZWVuU3R5bGUtPnNldFdpZHRoKExlbmd0aCgxMDAuMCwgUGVyY2VudCkp
OwogICAgIGZ1bGxzY3JlZW5TdHlsZS0+c2V0SGVpZ2h0KExlbmd0aCgxMDAuMCwgUGVyY2VudCkp
OwotICAgIGZ1bGxzY3JlZW5TdHlsZS0+c2V0TGVmdChMZW5ndGgoMCwgRml4ZWQpKTsKLSAgICBm
dWxsc2NyZWVuU3R5bGUtPnNldFRvcChMZW5ndGgoMCwgRml4ZWQpKTsKKyAgICBmdWxsc2NyZWVu
U3R5bGUtPnNldExlZnQoTGVuZ3RoKDAsIFdlYkNvcmU6OkZpeGVkKSk7CisgICAgZnVsbHNjcmVl
blN0eWxlLT5zZXRUb3AoTGVuZ3RoKDAsIFdlYkNvcmU6OkZpeGVkKSk7CiAgICAgCiAgICAgZnVs
bHNjcmVlblN0eWxlLT5zZXRCYWNrZ3JvdW5kQ29sb3IoQ29sb3I6OmJsYWNrKTsKICAgICAKICAg
ICByZXR1cm4gZnVsbHNjcmVlblN0eWxlLnJlbGVhc2UoKTsKIH0KIAorUmVuZGVyT2JqZWN0KiBS
ZW5kZXJGdWxsU2NyZWVuOjp3cmFwUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiBvYmplY3QsIERvY3Vt
ZW50KiBkb2N1bWVudCkKK3sKKyAgICBSZW5kZXJGdWxsU2NyZWVuKiBmdWxsc2NyZWVuUmVuZGVy
ZXIgPSBuZXcgKGRvY3VtZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJGdWxsU2NyZWVuKGRvY3Vt
ZW50KTsKKyAgICBmdWxsc2NyZWVuUmVuZGVyZXItPnNldFN0eWxlKGNyZWF0ZUZ1bGxTY3JlZW5T
dHlsZSgpKTsKKyAgICBpZiAob2JqZWN0KSB7CisgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHBh
cmVudCA9IG9iamVjdC0+cGFyZW50KCkpIHsKKyAgICAgICAgICAgIHBhcmVudC0+YWRkQ2hpbGQo
ZnVsbHNjcmVlblJlbmRlcmVyLCBvYmplY3QpOworICAgICAgICAgICAgb2JqZWN0LT5yZW1vdmUo
KTsKKyAgICAgICAgfQorICAgICAgICBmdWxsc2NyZWVuUmVuZGVyZXItPmFkZENoaWxkKG9iamVj
dCk7CisgICAgfQorICAgIGRvY3VtZW50LT5zZXRGdWxsU2NyZWVuUmVuZGVyZXIoZnVsbHNjcmVl
blJlbmRlcmVyKTsKKyAgICBpZiAoZnVsbHNjcmVlblJlbmRlcmVyLT5wbGFjZWhvbGRlcigpKQor
ICAgICAgICByZXR1cm4gZnVsbHNjcmVlblJlbmRlcmVyLT5wbGFjZWhvbGRlcigpOworICAgIHJl
dHVybiBmdWxsc2NyZWVuUmVuZGVyZXI7Cit9CisKK3ZvaWQgUmVuZGVyRnVsbFNjcmVlbjo6dW53
cmFwUmVuZGVyZXIoKQoreworICAgIFJlbmRlck9iamVjdCogd3JhcHBlZFJlbmRlcmVyID0gZmly
c3RDaGlsZCgpOworICAgIGlmICh3cmFwcGVkUmVuZGVyZXIpIHsKKyAgICAgICAgd3JhcHBlZFJl
bmRlcmVyLT5yZW1vdmUoKTsKKyAgICAgICAgUmVuZGVyT2JqZWN0KiBob2xkZXIgPSBwbGFjZWhv
bGRlcigpID8gcGxhY2Vob2xkZXIoKSA6IHRoaXM7CisgICAgICAgIFJlbmRlck9iamVjdCogcGFy
ZW50ID0gaG9sZGVyLT5wYXJlbnQoKTsKKyAgICAgICAgaWYgKHBhcmVudCkKKyAgICAgICAgICAg
IHBhcmVudC0+YWRkQ2hpbGQod3JhcHBlZFJlbmRlcmVyLCBob2xkZXIpOworICAgIH0KKyAgICBy
ZW1vdmUoKTsKKyAgICBkb2N1bWVudCgpLT5zZXRGdWxsU2NyZWVuUmVuZGVyZXIoMCk7Cit9CisK
IHZvaWQgUmVuZGVyRnVsbFNjcmVlbjo6c2V0UGxhY2Vob2xkZXIoUmVuZGVyQmxvY2sqIHBsYWNl
aG9sZGVyKQogewogICAgIG1fcGxhY2Vob2xkZXIgPSBwbGFjZWhvbGRlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5oCmluZGV4IDZmNGM3ODMxY2RkYzFkNjNm
YTAzMWRiODcwNzg2MjJlYTVhYjY3ZDUuLjc5Njg3OTJiMmY1ZWY5NTI0ZDU5MWRhZTIxNzU0YTQx
MWI3N2VjNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxs
U2NyZWVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4u
aApAQCAtNDEsNyArNDEsOSBAQCBwdWJsaWM6CiAgICAgUmVuZGVyQmxvY2sqIHBsYWNlaG9sZGVy
KCkgeyByZXR1cm4gbV9wbGFjZWhvbGRlcjsgfQogICAgIHZvaWQgY3JlYXRlUGxhY2Vob2xkZXIo
UGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4sIGNvbnN0IEludFJlY3QmIGZyYW1lUmVjdCk7CiAKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gY3JlYXRlRnVsbFNjcmVlblN0eWxlKCk7
CisKKyAgICBzdGF0aWMgUmVuZGVyT2JqZWN0KiB3cmFwUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlciwgRG9jdW1lbnQqKTsKKyAgICB2b2lkIHVud3JhcFJlbmRlcmVyKCk7CiAKIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107725</attachid>
            <date>2011-09-16 14:42:20 -0700</date>
            <delta_ts>2011-09-20 15:15:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66531-20110916144219.patch</filename>
            <type>text/plain</type>
            <size>10157</size>
            <attacher name="Jeremy Apthorp">jeremya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTUwNjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwYjQ2MzhiYjhiZjdmOTc1NTJjOWQz
MTgxMmRhMGM1YzI5YzkxOWYzLi43ZTE1ZWU4ZDkwNDY0NTUxNzA4MzI5NzBmODVjNDNmZWJjNjll
NWVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDktMTYgIEplcmVteSBBcHRob3JwIDxq
ZXJlbXlhQGNocm9taXVtLm9yZz4gYW5kIEphbWVzIEtvemlhbnNraSAgPGtvekBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgRG9uJ3QgZGV0YWNoIGVsZW1lbnRzIGZyb20gdGhlIHJlbmRlciB0cmVl
IHdoZW4gZW50ZXJpbmcgZnVsbHNjcmVlbiBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjUzMQorCisgICAgICAgIFRlc3QgdGhhdCB0aGUgcGx1
Z2luIGlzIG5vdCByZWxvYWRlZCB3aGVuIGVudGVyaW5nIGZ1bGxzY3JlZW4uCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAgKiBwbHVnaW5zL2Z1bGxzY3Jl
ZW4tcGx1Z2lucy1kb250LXJlbG9hZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
dWdpbnMvZnVsbHNjcmVlbi1wbHVnaW5zLWRvbnQtcmVsb2FkLmh0bWw6IEFkZGVkLgorCiAyMDEx
LTA5LTEzICBKZXJlbXkgQXB0aG9ycCAgPGplcmVteWFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBS
ZW1vdmluZyBhbiBpZnJhbWUgZnJvbSB0aGUgZG9jdW1lbnQgZHVyaW5nIGEgdHJhbnNpdGlvbiB0
byBmdWxsc2NyZWVuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbHVnaW5zL2Z1bGxzY3JlZW4t
cGx1Z2lucy1kb250LXJlbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbHVnaW5zL2Z1
bGxzY3JlZW4tcGx1Z2lucy1kb250LXJlbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBk
ZWM3ZTk1OWVlMDdjN2E0MGM4YTJmOWVlYjUwZGI4YTg4N2M2OAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsdWdpbnMvZnVsbHNjcmVlbi1wbHVnaW5zLWRvbnQtcmVsb2FkLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0FMRVJUOiBQbHVnaW4gTG9hZGVkIQorZ28gZnVsbHNj
cmVlbgorVGhlcmUgc2hvdWxkIG9ubHkgYmUgb25lIEFMRVJULiBJZiB0aGVyZSB3ZXJlIHR3bywg
dGhlIHBsdWdpbiB3YXMgcmVsb2FkZWQgZHVyaW5nIHRoZSB0cmFuc2l0aW9uIHRvIGZ1bGxzY3Jl
ZW4uCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGx1Z2lucy9mdWxsc2NyZWVuLXBsdWdp
bnMtZG9udC1yZWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL3BsdWdpbnMvZnVsbHNjcmVlbi1wbHVn
aW5zLWRvbnQtcmVsb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFkZTM3NjMwMDgzZmVmNzc0NTY2MWY4
MWVlYmUyOWEzNmEwZTdjYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsdWdpbnMv
ZnVsbHNjcmVlbi1wbHVnaW5zLWRvbnQtcmVsb2FkLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPGh0
bWw+Cis8YSBpZD0nbGluaycgaHJlZj0iamF2YXNjcmlwdDpkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncGxnJykud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4oKSI+Z28KK2Z1bGxzY3JlZW48L2E+Cis8
cD4KK1RoZXJlIHNob3VsZCBvbmx5IGJlIG9uZSBBTEVSVC4gSWYgdGhlcmUgd2VyZSB0d28sIHRo
ZSBwbHVnaW4gd2FzIHJlbG9hZGVkCitkdXJpbmcgdGhlIHRyYW5zaXRpb24gdG8gZnVsbHNjcmVl
bi4KKzwvcD4KKzxlbWJlZCBpZD0icGxnIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0
LW5ldHNjYXBlIiBzcmM9ImRhdGE6YXBwbGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZSxh
bGVydHdoZW5sb2FkZWQiPjwvaWZyYW1lPgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKKyAgICB2YXIgcGx1
Z2luID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BsZycpOworICAgIHBsdWdpbi5hZGRFdmVu
dExpc3RlbmVyKCd3ZWJraXRmdWxsc2NyZWVuY2hhbmdlJywgZnVuY3Rpb24gKCkgeworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfSkKKyAgICBkb2N1bWVu
dC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgZnVuY3Rpb24gKCkgeworICAgICAgICBwbHVn
aW4ud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4oKTsKKyAgICB9KQorICAgIGV2ZW50U2VuZGVyLmtl
eURvd24oJ2EnKQorfQorPC9zY3JpcHQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODU4MjBlNDk0
YWRiZmQ4NzQ0MGM0N2QyYTQzYzBjOTExNzA1MTlmZi4uODJkYmUzZjgzYzQ2ZThhMzgwNzNmNjM1
ZGZmYzcyNmFhNmY5NzM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDExLTA5LTE2
ICBKZXJlbXkgQXB0aG9ycCA8amVyZW15YUBjaHJvbWl1bS5vcmc+IGFuZCBKYW1lcyBLb3ppYW5z
a2kgIDxrb3pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIERvbid0IGRldGFjaCBlbGVtZW50cyBm
cm9tIHRoZSByZW5kZXIgdHJlZSB3aGVuIGVudGVyaW5nIGZ1bGxzY3JlZW4gbW9kZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1MzEKKworICAgICAg
ICBUaGlzIHByZXZlbnRzIHBsdWdpbiBpbnN0YW5jZXMgZnJvbSBiZWluZyBkZXN0cm95ZWQgYW5k
IHJlaW5zdGFudGlhdGVkCisgICAgICAgIHdoZW4gZW50ZXJpbmcgZnVsbHNjcmVlbiBtb2RlLgor
CisgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgorCisgICAgICAgIFRlc3Q6IHBs
dWdpbnMvZnVsbHNjcmVlbi1wbHVnaW5zLWRvbnQtcmVsb2FkLmh0bWwKKworICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0V2lsbEVu
dGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Ondl
YmtpdERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCk6CisgICAgICAgICogZG9tL05vZGVSZW5k
ZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJlckZhY3Rvcnk6
OmNyZWF0ZVJlbmRlcmVySWZOZWVkZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGdWxs
U2NyZWVuLmNwcDoKKyAgICAgICAgKGNyZWF0ZUZ1bGxTY3JlZW5TdHlsZSk6CisgICAgICAgIChS
ZW5kZXJGdWxsU2NyZWVuOjp3cmFwUmVuZGVyZXIpOgorICAgICAgICAoUmVuZGVyRnVsbFNjcmVl
bjo6dW53cmFwUmVuZGVyZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVu
Lmg6CisKIDIwMTEtMDktMTMgIEplcmVteSBBcHRob3JwICA8amVyZW15YUBnb29nbGUuY29tPgog
CiAgICAgICAgIEZpeCBjcmFzaCB3aGVuIGFuIGlmcmFtZSBlbGVtZW50IGlzIHJlbW92ZWQgZHVy
aW5nIGEgdHJhbnNpdGlvbiB0bwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggY2JhNjliOWQ1
MjZlZGVkODE0YmRlNjBkM2YxNjM2N2M2NDgzZDZlMy4uNTdkNjIwYTgxMTY3YjExZDMxN2FjMGE2
NDE1N2U3ZDU3N2ZjYzY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00ODc3LDYgKzQ4
NzcsOSBAQCB2b2lkIERvY3VtZW50Ojp3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVu
dChFbGVtZW50KiBlbGVtZW50KQogICAgIEFTU0VSVChlbGVtZW50KTsKICAgICBBU1NFUlQocGFn
ZSgpICYmIHBhZ2UoKS0+c2V0dGluZ3MoKS0+ZnVsbFNjcmVlbkVuYWJsZWQoKSk7CiAKKyAgICBp
ZiAobV9mdWxsU2NyZWVuUmVuZGVyZXIpCisgICAgICAgIG1fZnVsbFNjcmVlblJlbmRlcmVyLT51
bndyYXBSZW5kZXJlcigpOworCiAgICAgbV9mdWxsU2NyZWVuRWxlbWVudCA9IGVsZW1lbnQ7CiAK
ICAgICAvLyBDcmVhdGUgYSBwbGFjZWhvbGRlciBibG9jayBmb3IgYSB0aGUgZnVsbC1zY3JlZW4g
ZWxlbWVudCwgdG8ga2VlcCB0aGUgcGFnZSBmcm9tIHJlZmxvd2luZwpAQCAtNDg5MSw3ICs0ODk0
LDcgQEAgdm9pZCBEb2N1bWVudDo6d2Via2l0V2lsbEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQo
RWxlbWVudCogZWxlbWVudCkKICAgICB9CiAKICAgICBpZiAobV9mdWxsU2NyZWVuRWxlbWVudCAh
PSBkb2N1bWVudEVsZW1lbnQoKSkKLSAgICAgICAgbV9mdWxsU2NyZWVuRWxlbWVudC0+ZGV0YWNo
KCk7CisgICAgICAgIFJlbmRlckZ1bGxTY3JlZW46OndyYXBSZW5kZXJlcihyZW5kZXJlciwgdGhp
cyk7CiAKICAgICBtX2Z1bGxTY3JlZW5FbGVtZW50LT5zZXRDb250YWluc0Z1bGxTY3JlZW5FbGVt
ZW50T25BbmNlc3RvcnNDcm9zc2luZ0ZyYW1lQm91bmRhcmllcyh0cnVlKTsKICAgICAKQEAgLTQ5
NDIsMTUgKzQ5NDUsMTEgQEAgdm9pZCBEb2N1bWVudDo6d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5G
b3JFbGVtZW50KEVsZW1lbnQqKQogewogICAgIG1fYXJlS2V5c0VuYWJsZWRJbkZ1bGxTY3JlZW4g
PSBmYWxzZTsKICAgICBzZXRBbmltYXRpbmdGdWxsU2NyZWVuKGZhbHNlKTsKLQotICAgIGlmICht
X2Z1bGxTY3JlZW5SZW5kZXJlcikKLSAgICAgICAgbV9mdWxsU2NyZWVuUmVuZGVyZXItPnJlbW92
ZSgpOwogICAgIAotICAgIGlmIChtX2Z1bGxTY3JlZW5FbGVtZW50ICE9IGRvY3VtZW50RWxlbWVu
dCgpKQotICAgICAgICBtX2Z1bGxTY3JlZW5FbGVtZW50LT5kZXRhY2goKTsKKyAgICBpZiAobV9m
dWxsU2NyZWVuUmVuZGVyZXIpCisgICAgICAgIG1fZnVsbFNjcmVlblJlbmRlcmVyLT51bndyYXBS
ZW5kZXJlcigpOwogCiAgICAgbV9mdWxsU2NyZWVuQ2hhbmdlRXZlbnRUYXJnZXRRdWV1ZS5hcHBl
bmQobV9mdWxsU2NyZWVuRWxlbWVudC5yZWxlYXNlKCkpOwotICAgIHNldEZ1bGxTY3JlZW5SZW5k
ZXJlcigwKTsKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgcGFnZSgpLT5j
aHJvbWUoKS0+Y2xpZW50KCktPnNldFJvb3RGdWxsU2NyZWVuTGF5ZXIoMCk7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGY0NzQzZTRm
MGE3YzVkNmNjMDVlODVjNmJmYmQxOTVkNjA2MGFlOTQuLmMwYTJkYWQyMzI2NzBkM2FlYzU1MmE1
M2ZkMWNlOWViYmNlMDZlMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVu
ZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdD
b250ZXh0LmNwcApAQCAtMzAzLDIyICszMDMsNiBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5kZXJl
ckZhY3Rvcnk6OmNyZWF0ZVJlbmRlcmVyKCkKICAgICByZXR1cm4gbmV3UmVuZGVyZXI7CiB9CiAK
LSNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi1zdGF0aWMgUmVuZGVyT2JqZWN0KiB3cmFwV2l0
aFJlbmRlckZ1bGxTY3JlZW4oUmVuZGVyT2JqZWN0KiBvYmplY3QsIERvY3VtZW50KiBkb2N1bWVu
dCkKLXsKLSAgICBSZW5kZXJGdWxsU2NyZWVuKiBmdWxsc2NyZWVuUmVuZGVyZXIgPSBuZXcgKGRv
Y3VtZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJGdWxsU2NyZWVuKGRvY3VtZW50KTsKLSAgICBm
dWxsc2NyZWVuUmVuZGVyZXItPnNldFN0eWxlKFJlbmRlckZ1bGxTY3JlZW46OmNyZWF0ZUZ1bGxT
Y3JlZW5TdHlsZSgpKTsKLSAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgd2UgZmFpbGVkIHRvIGNy
ZWF0ZSB0aGUgbmV3IHJlbmRlciBhbmQgZW5kIHVwIHdyYXBwaW5nIG5vdGhpbmcuCi0gICAgLy8g
V2UnbGwgZW5kIHVwIGRpc3BsYXlpbmcgYSBibGFjayBzY3JlZW4sIGJ1dCBKZXIgc2F5cyB0aGlz
IGlzIGV4cGVjdGVkLgotICAgIGlmIChvYmplY3QpCi0gICAgICAgIGZ1bGxzY3JlZW5SZW5kZXJl
ci0+YWRkQ2hpbGQob2JqZWN0KTsKLSAgICBkb2N1bWVudC0+c2V0RnVsbFNjcmVlblJlbmRlcmVy
KGZ1bGxzY3JlZW5SZW5kZXJlcik7Ci0gICAgaWYgKGZ1bGxzY3JlZW5SZW5kZXJlci0+cGxhY2Vo
b2xkZXIoKSkKLSAgICAgICAgcmV0dXJuIGZ1bGxzY3JlZW5SZW5kZXJlci0+cGxhY2Vob2xkZXIo
KTsKLSAgICByZXR1cm4gZnVsbHNjcmVlblJlbmRlcmVyOwotfQotI2VuZGlmCi0KIHZvaWQgTm9k
ZVJlbmRlcmVyRmFjdG9yeTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCgpCiB7CiAgICAgTm9kZSog
bm9kZSA9IG1fY29udGV4dC5ub2RlKCk7CkBAIC0zNTUsNyArMzM5LDcgQEAgdm9pZCBOb2RlUmVu
ZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKCkKIAogI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKICAgICBpZiAoZG9jdW1lbnQtPndlYmtpdElzRnVsbFNjcmVlbigpICYmIGRv
Y3VtZW50LT53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQoKSA9PSBub2RlKQotICAgICAg
ICBuZXdSZW5kZXJlciA9IHdyYXBXaXRoUmVuZGVyRnVsbFNjcmVlbihuZXdSZW5kZXJlciwgZG9j
dW1lbnQpOworICAgICAgICBuZXdSZW5kZXJlciA9IFJlbmRlckZ1bGxTY3JlZW46OndyYXBSZW5k
ZXJlcihuZXdSZW5kZXJlciwgZG9jdW1lbnQpOwogI2VuZGlmCiAKICAgICBpZiAoIW5ld1JlbmRl
cmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3Jl
ZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCmlu
ZGV4IDE4ZGJjOWY0ODczM2NmMDUwYzk4YjJjNGNlMWJjOWNmNzZlNWFjZGIuLjliYzEzYzdiZDVm
NmVjMTdjZjkyZmFiMjAzNjhlY2QyNDc3YmNhODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBSZW5kZXJG
dWxsU2NyZWVuOjp3aWxsQmVEZXN0cm95ZWQoKQogICAgIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveDo6d2lsbEJlRGVzdHJveWVkKCk7CiB9CiAKLVBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFJl
bmRlckZ1bGxTY3JlZW46OmNyZWF0ZUZ1bGxTY3JlZW5TdHlsZSgpCitzdGF0aWMgUGFzc1JlZlB0
cjxSZW5kZXJTdHlsZT4gY3JlYXRlRnVsbFNjcmVlblN0eWxlKCkKIHsKICAgICBSZWZQdHI8UmVu
ZGVyU3R5bGU+IGZ1bGxzY3JlZW5TdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVEZWZhdWx0U3R5
bGUoKTsKIApAQCAtOTcsMTQgKzk3LDQ1IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFJlbmRl
ckZ1bGxTY3JlZW46OmNyZWF0ZUZ1bGxTY3JlZW5TdHlsZSgpCiAgICAgZnVsbHNjcmVlblN0eWxl
LT5zZXRQb3NpdGlvbihGaXhlZFBvc2l0aW9uKTsKICAgICBmdWxsc2NyZWVuU3R5bGUtPnNldFdp
ZHRoKExlbmd0aCgxMDAuMCwgUGVyY2VudCkpOwogICAgIGZ1bGxzY3JlZW5TdHlsZS0+c2V0SGVp
Z2h0KExlbmd0aCgxMDAuMCwgUGVyY2VudCkpOwotICAgIGZ1bGxzY3JlZW5TdHlsZS0+c2V0TGVm
dChMZW5ndGgoMCwgRml4ZWQpKTsKLSAgICBmdWxsc2NyZWVuU3R5bGUtPnNldFRvcChMZW5ndGgo
MCwgRml4ZWQpKTsKKyAgICBmdWxsc2NyZWVuU3R5bGUtPnNldExlZnQoTGVuZ3RoKDAsIFdlYkNv
cmU6OkZpeGVkKSk7CisgICAgZnVsbHNjcmVlblN0eWxlLT5zZXRUb3AoTGVuZ3RoKDAsIFdlYkNv
cmU6OkZpeGVkKSk7CiAgICAgCiAgICAgZnVsbHNjcmVlblN0eWxlLT5zZXRCYWNrZ3JvdW5kQ29s
b3IoQ29sb3I6OmJsYWNrKTsKICAgICAKICAgICByZXR1cm4gZnVsbHNjcmVlblN0eWxlLnJlbGVh
c2UoKTsKIH0KIAorUmVuZGVyT2JqZWN0KiBSZW5kZXJGdWxsU2NyZWVuOjp3cmFwUmVuZGVyZXIo
UmVuZGVyT2JqZWN0KiBvYmplY3QsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBSZW5kZXJG
dWxsU2NyZWVuKiBmdWxsc2NyZWVuUmVuZGVyZXIgPSBuZXcgKGRvY3VtZW50LT5yZW5kZXJBcmVu
YSgpKSBSZW5kZXJGdWxsU2NyZWVuKGRvY3VtZW50KTsKKyAgICBmdWxsc2NyZWVuUmVuZGVyZXIt
PnNldFN0eWxlKGNyZWF0ZUZ1bGxTY3JlZW5TdHlsZSgpKTsKKyAgICBpZiAob2JqZWN0KSB7Cisg
ICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHBhcmVudCA9IG9iamVjdC0+cGFyZW50KCkpIHsKKyAg
ICAgICAgICAgIHBhcmVudC0+YWRkQ2hpbGQoZnVsbHNjcmVlblJlbmRlcmVyLCBvYmplY3QpOwor
ICAgICAgICAgICAgb2JqZWN0LT5yZW1vdmUoKTsKKyAgICAgICAgfQorICAgICAgICBmdWxsc2Ny
ZWVuUmVuZGVyZXItPmFkZENoaWxkKG9iamVjdCk7CisgICAgfQorICAgIGRvY3VtZW50LT5zZXRG
dWxsU2NyZWVuUmVuZGVyZXIoZnVsbHNjcmVlblJlbmRlcmVyKTsKKyAgICBpZiAoZnVsbHNjcmVl
blJlbmRlcmVyLT5wbGFjZWhvbGRlcigpKQorICAgICAgICByZXR1cm4gZnVsbHNjcmVlblJlbmRl
cmVyLT5wbGFjZWhvbGRlcigpOworICAgIHJldHVybiBmdWxsc2NyZWVuUmVuZGVyZXI7Cit9CisK
K3ZvaWQgUmVuZGVyRnVsbFNjcmVlbjo6dW53cmFwUmVuZGVyZXIoKQoreworICAgIFJlbmRlck9i
amVjdCogd3JhcHBlZFJlbmRlcmVyID0gZmlyc3RDaGlsZCgpOworICAgIGlmICh3cmFwcGVkUmVu
ZGVyZXIpIHsKKyAgICAgICAgd3JhcHBlZFJlbmRlcmVyLT5yZW1vdmUoKTsKKyAgICAgICAgUmVu
ZGVyT2JqZWN0KiBob2xkZXIgPSBwbGFjZWhvbGRlcigpID8gcGxhY2Vob2xkZXIoKSA6IHRoaXM7
CisgICAgICAgIFJlbmRlck9iamVjdCogcGFyZW50ID0gaG9sZGVyLT5wYXJlbnQoKTsKKyAgICAg
ICAgaWYgKHBhcmVudCkKKyAgICAgICAgICAgIHBhcmVudC0+YWRkQ2hpbGQod3JhcHBlZFJlbmRl
cmVyLCBob2xkZXIpOworICAgIH0KKyAgICByZW1vdmUoKTsKKyAgICBkb2N1bWVudCgpLT5zZXRG
dWxsU2NyZWVuUmVuZGVyZXIoMCk7Cit9CisKIHZvaWQgUmVuZGVyRnVsbFNjcmVlbjo6c2V0UGxh
Y2Vob2xkZXIoUmVuZGVyQmxvY2sqIHBsYWNlaG9sZGVyKQogewogICAgIG1fcGxhY2Vob2xkZXIg
PSBwbGFjZWhvbGRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGdWxsU2NyZWVuLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVl
bi5oCmluZGV4IDZmNGM3ODMxY2RkYzFkNjNmYTAzMWRiODcwNzg2MjJlYTVhYjY3ZDUuLjc5Njg3
OTJiMmY1ZWY5NTI0ZDU5MWRhZTIxNzU0YTQxMWI3N2VjNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaApAQCAtNDEsNyArNDEsOSBAQCBwdWJsaWM6CiAg
ICAgUmVuZGVyQmxvY2sqIHBsYWNlaG9sZGVyKCkgeyByZXR1cm4gbV9wbGFjZWhvbGRlcjsgfQog
ICAgIHZvaWQgY3JlYXRlUGxhY2Vob2xkZXIoUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4sIGNvbnN0
IEludFJlY3QmIGZyYW1lUmVjdCk7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJTdHls
ZT4gY3JlYXRlRnVsbFNjcmVlblN0eWxlKCk7CisKKyAgICBzdGF0aWMgUmVuZGVyT2JqZWN0KiB3
cmFwUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgRG9jdW1lbnQqKTsKKyAgICB2b2lk
IHVud3JhcFJlbmRlcmVyKCk7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZURl
c3Ryb3llZCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108060</attachid>
            <date>2011-09-20 15:15:46 -0700</date>
            <delta_ts>2011-10-15 00:09:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66531-20110920151545.patch</filename>
            <type>text/plain</type>
            <size>5526</size>
            <attacher name="Jeremy Apthorp">jeremya</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTUzODEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1NDljYThmNTVmMzkzNDFhZGM3NDA0
YTY0NjJkODk3NmU1NTk2Y2UwLi5iODlmNmZiYzZiZGUyMDc5YmY5ZWJmZTA0MmQzYTU3YmFmNmQ2
ODA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDktMjAgIEplcmVteSBBcHRob3JwICA8
amVyZW15YUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGVzdCB0aGF0IHJlbW92aW5nIGEgZnVs
bHNjcmVlbmVkIGlubGluZSBlbGVtZW50IGNvbnRhaW5pbmcgYSBibG9jaworICAgICAgICBlbGVt
ZW50IGRvZXNuJ3QgY3Jhc2guCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NjUzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1yZW5kZXItaW5saW5lLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1yZW5kZXItaW5s
aW5lLmh0bWw6IEFkZGVkLgorCiAyMDExLTA5LTE3ICBEZWVwYWsgU2hlcnZlZ2hhciAgPGJwd3Y2
NEBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgT3ZlcnJpZGUgc3VwcG9ydHNGb2N1cygpIGZvciBI
VE1MTWVkaWFFbGVtZW50LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi9mdWxs
LXNjcmVlbi1yZW5kZXItaW5saW5lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Z1bGxzY3Jl
ZW4vZnVsbC1zY3JlZW4tcmVuZGVyLWlubGluZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODVm
MzNhMDM4ZWI5ODZiYWQ0ZGY3YjEzNmVlODkyOTJlMGZhMWJjMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vZnVsbC1zY3JlZW4tcmVuZGVyLWlubGluZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw2IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVu
ZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJTdW1tYXJ5IHtT
VU1NQVJZfSBhdCAoMCwwKSBzaXplIDc4NHgwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mdWxs
c2NyZWVuL2Z1bGwtc2NyZWVuLXJlbmRlci1pbmxpbmUuaHRtbCBiL0xheW91dFRlc3RzL2Z1bGxz
Y3JlZW4vZnVsbC1zY3JlZW4tcmVuZGVyLWlubGluZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4ZTM0YjNm
MjVlYjQzN2ZmYWRhYjYzMTQ2NmRiNGZjZjE0ZWM0YjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXJlbmRlci1pbmxpbmUuaHRtbApAQCAtMCww
ICsxLDI3IEBACis8c3VtbWFyeT48c3Bhbj48ZGl2PjwvZGl2Pjwvc3Bhbj48L3N1bW1hcnk+Cis8
c2NyaXB0PgorICAgIGlmIChFbGVtZW50LnByb3RvdHlwZS53ZWJraXRSZXF1ZXN0RnVsbFNjcmVl
biA9PSB1bmRlZmluZWQpIHsKKyAgICB9IGVsc2UgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwor
ICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzcGFuJylb
MF07CisgICAgICAgIHZhciBkaXYgPSBzcGFuLnBhcmVudE5vZGU7CisKKyAgICAgICAgdmFyIG51
bSA9IDA7CisgICAgICAgIHZhciBzcGFuRW50ZXJlZEZ1bGxTY3JlZW4gPSBmdW5jdGlvbihldmVu
dCkgeworICAgICAgICAgICAgaWYgKCsrbnVtID09IDIpIHsKKyAgICAgICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICBkaXYucmVtb3ZlQ2hp
bGQoc3BhbikKKyAgICAgICAgICAgIH0sMTApOworICAgICAgICB9OworCisgICAgICAgIGRvY3Vt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UnLCBzcGFuRW50ZXJl
ZEZ1bGxTY3JlZW4pOworCisgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRv
d24nLCBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBzcGFuLndlYmtpdFJlcXVlc3RGdWxsU2Ny
ZWVuKCk7CisgICAgICAgIH0pOworICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCdhJyk7Cisg
ICAgfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU5MGFmNDgwYTIwNmY1NmMxNTY1NjBiOGY4
NmRkZWRmZTkwNDdiNi4uODYyNjM5YjIyN2JhOWViMjJiZjVhNmI1OWMzZjA3NjhkNzM4MGMzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTA5LTIwICBKZXJlbXkgQXB0aG9ycCAg
PGplcmVteWFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEZpeCBSZW5kZXJGdWxsU2NyZWVuOjp3
cmFwL3Vud3JhcFJlbmRlcmVyIHRvIGRlYWwgd2l0aCBmdWxsc2NyZWVuaW5nCisgICAgICAgIGlu
bGluZSBlbGVtZW50cyB0aGF0IGhhdmUgYmxvY2sgZWxlbWVudHMgaW5zaWRlIHRoZW0gKGUuZy4K
KyAgICAgICAgPHNwYW4+PGRpdj4pLiBTcGVjaWZpY2FsbHksIHdlCisgICAgICAgIGEpIHJlbWVt
YmVyIHdoaWNoIHJlbmRlcmVyIGlzIHdyYXBwZWQsIGFuZAorICAgICAgICBiKSByZWNhbGN1bGF0
ZSBzdHlsZSBiZWZvcmUgcmVzZXR0aW5nIHRoZSBkb2N1bWVudCdzIGZ1bGxzY3JlZW4KKyAgICAg
ICAgICAgZWxlbWVudCwgaW4gb3JkZXIgdG8gYXZvaWQgZGVzdHJveWluZyBlbGVtZW50cyB0aGF0
IGhhdmVuJ3QgeWV0CisgICAgICAgICAgIGZvbGxvd2VkIHRoZSB3cmFwcGVkIGVsZW1lbnQgb3V0
IG9mIHRoZSBSZW5kZXJGdWxsU2NyZWVuLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjY1MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcDoKKyAgICAg
ICAgKFJlbmRlckZ1bGxTY3JlZW46OndyYXBSZW5kZXJlcik6CisgICAgICAgIChSZW5kZXJGdWxs
U2NyZWVuOjp1bndyYXBSZW5kZXJlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZ1bGxT
Y3JlZW4uaDoKKwogMjAxMS0wOS0xNyAgRGVlcGFrIFNoZXJ2ZWdoYXIgIDxicHd2NjRAbW90b3Jv
bGEuY29tPgogCiAgICAgICAgIE92ZXJyaWRlIHN1cHBvcnRzRm9jdXMoKSBmb3IgSFRNTE1lZGlh
RWxlbWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxs
U2NyZWVuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNw
cAppbmRleCA5YmMxM2M3YmQ1ZjZlYzE3Y2Y5MmZhYjIwMzY4ZWNkMjQ3N2JjYTgzLi4zZTdiNjE4
ZTg4NjlmY2U0OGY0MmI3MzdkYjdmN2RlOTc3NjRjOWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCkBAIC0xMDksNiArMTA5LDcgQEAgUmVuZGVy
T2JqZWN0KiBSZW5kZXJGdWxsU2NyZWVuOjp3cmFwUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiBvYmpl
Y3QsIERvY3VtZW50KiBkb2MKIHsKICAgICBSZW5kZXJGdWxsU2NyZWVuKiBmdWxsc2NyZWVuUmVu
ZGVyZXIgPSBuZXcgKGRvY3VtZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJGdWxsU2NyZWVuKGRv
Y3VtZW50KTsKICAgICBmdWxsc2NyZWVuUmVuZGVyZXItPnNldFN0eWxlKGNyZWF0ZUZ1bGxTY3Jl
ZW5TdHlsZSgpKTsKKyAgICBmdWxsc2NyZWVuUmVuZGVyZXItPm1fd3JhcHBlZFJlbmRlcmVyID0g
b2JqZWN0OwogICAgIGlmIChvYmplY3QpIHsKICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcGFy
ZW50ID0gb2JqZWN0LT5wYXJlbnQoKSkgewogICAgICAgICAgICAgcGFyZW50LT5hZGRDaGlsZChm
dWxsc2NyZWVuUmVuZGVyZXIsIG9iamVjdCk7CkBAIC0xMjQsNyArMTI1LDcgQEAgUmVuZGVyT2Jq
ZWN0KiBSZW5kZXJGdWxsU2NyZWVuOjp3cmFwUmVuZGVyZXIoUmVuZGVyT2JqZWN0KiBvYmplY3Qs
IERvY3VtZW50KiBkb2MKIAogdm9pZCBSZW5kZXJGdWxsU2NyZWVuOjp1bndyYXBSZW5kZXJlcigp
CiB7Ci0gICAgUmVuZGVyT2JqZWN0KiB3cmFwcGVkUmVuZGVyZXIgPSBmaXJzdENoaWxkKCk7Cisg
ICAgUmVuZGVyT2JqZWN0KiB3cmFwcGVkUmVuZGVyZXIgPSBtX3dyYXBwZWRSZW5kZXJlcjsKICAg
ICBpZiAod3JhcHBlZFJlbmRlcmVyKSB7CiAgICAgICAgIHdyYXBwZWRSZW5kZXJlci0+cmVtb3Zl
KCk7CiAgICAgICAgIFJlbmRlck9iamVjdCogaG9sZGVyID0gcGxhY2Vob2xkZXIoKSA/IHBsYWNl
aG9sZGVyKCkgOiB0aGlzOwpAQCAtMTMzLDYgKzEzNCw3IEBAIHZvaWQgUmVuZGVyRnVsbFNjcmVl
bjo6dW53cmFwUmVuZGVyZXIoKQogICAgICAgICAgICAgcGFyZW50LT5hZGRDaGlsZCh3cmFwcGVk
UmVuZGVyZXIsIGhvbGRlcik7CiAgICAgfQogICAgIHJlbW92ZSgpOworICAgIGRvY3VtZW50KCkt
PnJlY2FsY1N0eWxlKE5vZGU6OkZvcmNlKTsKICAgICBkb2N1bWVudCgpLT5zZXRGdWxsU2NyZWVu
UmVuZGVyZXIoMCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGdWxsU2NyZWVuLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNj
cmVlbi5oCmluZGV4IDc5Njg3OTJiMmY1ZWY5NTI0ZDU5MWRhZTIxNzU0YTQxMWI3N2VjNmQuLjJl
ZGJkNmQ0NWI3MmIzNzY1NzU1OWFlZTExZjk3ZTI4NDIyMDhlNzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaApAQCAtNTAsNiArNTAsNyBAQCBwcml2YXRl
OgogICAgIAogcHJvdGVjdGVkOgogICAgIFJlbmRlckJsb2NrKiBtX3BsYWNlaG9sZGVyOworICAg
IFJlbmRlck9iamVjdCogbV93cmFwcGVkUmVuZGVyZXI7CiB9OwogICAgIAogaW5saW5lIFJlbmRl
ckZ1bGxTY3JlZW4qIHRvUmVuZGVyRnVsbFNjcmVlbihSZW5kZXJPYmplY3QqIG9iamVjdCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>