<?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>77452</bug_id>
          
          <creation_ts>2012-01-31 10:24:00 -0800</creation_ts>
          <short_desc>[chromium] Add the ability to turn off autoresize.</short_desc>
          <delta_ts>2012-03-01 09:15:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Levin">levin</reporter>
          <assigned_to name="David Levin">levin</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dimich</cc>
    
    <cc>fishd</cc>
    
    <cc>haraken</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>546206</commentid>
    <comment_count>0</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-01-31 10:24:00 -0800</bug_when>
    <thetext>[chromium] Add the ability to turn off autoresize.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546209</commentid>
    <comment_count>1</comment_count>
      <attachid>124770</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2012-01-31 10:28:08 -0800</bug_when>
    <thetext>Created attachment 124770
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546214</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 10:32:47 -0800</bug_when>
    <thetext>Attachment 124770 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: Fix compilation errors on build-webkit --debug --no-workers on mac.
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging LayoutTests/platform/qt/Skipped
CONFLICT (content): Merge conflict in LayoutTests/platform/qt/Skipped
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 Fix compilation errors on build-webkit --debug --no-workers on mac.

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546227</commentid>
    <comment_count>3</comment_count>
      <attachid>124775</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2012-01-31 10:54:08 -0800</bug_when>
    <thetext>Created attachment 124775
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546230</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 10:56:17 -0800</bug_when>
    <thetext>Attachment 124775 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: Fix compilation errors on build-webkit --debug --no-workers on mac.
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging LayoutTests/platform/qt/Skipped
CONFLICT (content): Merge conflict in LayoutTests/platform/qt/Skipped
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 Fix compilation errors on build-webkit --debug --no-workers on mac.

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546318</commentid>
    <comment_count>5</comment_count>
      <attachid>124775</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2012-01-31 11:54:20 -0800</bug_when>
    <thetext>Comment on attachment 124775
Patch

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

Couple of questions (perhaps just needs clarification):

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2120
&gt; +    ASSERT(!m_shouldAutoResize || minSize == maxSize);

I would understand:
ASSERT(enable || minSize == maxSize);
.. because it would check incoming parameters for consistency.

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2131
&gt; +        resize(m_minAutoSize);

It would be good to add a comment describing the mechanism of turning off auto-resize, to clarify why the &apos;new size&apos; parameter and a resize to it is needed.
Otherwise, first look at API brings a question, why not have:

enableAutoSize(minSize, maxSize)
disableAutoSize() // w/o prameters

since when auto-resize if off, the layout should be seeded with the current window size...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566183</commentid>
    <comment_count>6</comment_count>
      <attachid>129146</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2012-02-27 17:32:04 -0800</bug_when>
    <thetext>Created attachment 129146
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566190</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-27 17:35:32 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566327</commentid>
    <comment_count>8</comment_count>
      <attachid>129146</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-27 20:28:00 -0800</bug_when>
    <thetext>Comment on attachment 129146
Patch

Attachment 129146 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11647330

New failing tests:
fast/autoresize/turn-off-autoresize.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566387</commentid>
    <comment_count>9</comment_count>
      <attachid>129146</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-02-27 22:24:38 -0800</bug_when>
    <thetext>Comment on attachment 129146
Patch

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

&gt; Source/WebKit/chromium/public/WebView.h:261
&gt; +    // content within the given bounds. When turning off auto-resize, the

why require this?  it seems more sensible for this function to ignore min/maxSize
when disabling auto-resize mode as that is telling the WebView to do nothing special.
doesn&apos;t the WebView already know its size?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567136</commentid>
    <comment_count>10</comment_count>
      <attachid>129336</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2012-02-28 15:05:19 -0800</bug_when>
    <thetext>Created attachment 129336
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567160</commentid>
    <comment_count>11</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-02-28 15:21:42 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 129146 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=129146&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebView.h:261
&gt; &gt; +    // content within the given bounds. When turning off auto-resize, the
&gt; 
&gt; why require this?  it seems more sensible for this function to ignore min/maxSize
&gt; when disabling auto-resize mode as that is telling the WebView to do nothing special.
&gt; doesn&apos;t the WebView already know its size?

When autoresize is off initially, all sizing is driven by the RenderViewHost.

When autoresize is on, all sizing is driven by the WebView.

When autoresize is turned off, there may be resize changes in flight from the WebView to the RenderViewHost, so they may be out of sync. By setting the size on the WebView, we start the process of having the RenderViewHost drive the sizing again (and this size change will propagate back to RenderWidgetHostImpl::OnMsgUpdateRect as needed so that everything gets in sync).

I hope that makes sense. (Let me know if I should improve the comment where I tried to explain this.)

(The latest patch only changes the description text in the test to match changes done to the html so now it will pass.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567164</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-02-28 15:26:20 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #9)
&gt; &gt; (From update of attachment 129146 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=129146&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/chromium/public/WebView.h:261
&gt; &gt; &gt; +    // content within the given bounds. When turning off auto-resize, the
&gt; &gt; 
&gt; &gt; why require this?  it seems more sensible for this function to ignore min/maxSize
&gt; &gt; when disabling auto-resize mode as that is telling the WebView to do nothing special.
&gt; &gt; doesn&apos;t the WebView already know its size?
&gt; 
&gt; When autoresize is off initially, all sizing is driven by the RenderViewHost.
&gt; 
&gt; When autoresize is on, all sizing is driven by the WebView.
&gt; 
&gt; When autoresize is turned off, there may be resize changes in flight from the WebView to the RenderViewHost, so they may be out of sync. By setting the size on the WebView, we start the process of having the RenderViewHost drive the sizing again (and this size change will propagate back to RenderWidgetHostImpl::OnMsgUpdateRect as needed so that everything gets in sync).
&gt; 
&gt; I hope that makes sense. (Let me know if I should improve the comment where I tried to explain this.)
&gt; 
&gt; (The latest patch only changes the description text in the test to match changes done to the html so now it will pass.)

Would an alternative be for the embedder to call WebWidget::resize() after disabling auto-size mode?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567165</commentid>
    <comment_count>13</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-02-28 15:28:16 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; (In reply to comment #9)
&gt; &gt; &gt; (From update of attachment 129146 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=129146&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit/chromium/public/WebView.h:261
&gt; &gt; &gt; &gt; +    // content within the given bounds. When turning off auto-resize, the
&gt; &gt; &gt; 
&gt; &gt; &gt; why require this?  it seems more sensible for this function to ignore min/maxSize
&gt; &gt; &gt; when disabling auto-resize mode as that is telling the WebView to do nothing special.
&gt; &gt; &gt; doesn&apos;t the WebView already know its size?
&gt; &gt; 
&gt; &gt; When autoresize is off initially, all sizing is driven by the RenderViewHost.
&gt; &gt; 
&gt; &gt; When autoresize is on, all sizing is driven by the WebView.
&gt; &gt; 
&gt; &gt; When autoresize is turned off, there may be resize changes in flight from the WebView to the RenderViewHost, so they may be out of sync. By setting the size on the WebView, we start the process of having the RenderViewHost drive the sizing again (and this size change will propagate back to RenderWidgetHostImpl::OnMsgUpdateRect as needed so that everything gets in sync).
&gt; &gt; 
&gt; &gt; I hope that makes sense. (Let me know if I should improve the comment where I tried to explain this.)
&gt; &gt; 
&gt; &gt; (The latest patch only changes the description text in the test to match changes done to the html so now it will pass.)
&gt; 
&gt; Would an alternative be for the embedder to call WebWidget::resize() after disabling auto-size mode?

They could do that but if they didn&apos;t, who knows what would happen.

I could also separate this api into enable and disable. Get rid of the bool and make disable take &quot;new_size&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567210</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-02-28 16:31:37 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; I could also separate this api into enable and disable. Get rid of the bool and make disable take &quot;new_size&quot;.

That sounds pretty good to me.  I know it means more busy work though :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567400</commentid>
    <comment_count>15</comment_count>
      <attachid>129393</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2012-02-28 22:52:15 -0800</bug_when>
    <thetext>Created attachment 129393
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567402</commentid>
    <comment_count>16</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-02-28 22:56:58 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; I could also separate this api into enable and disable. Get rid of the bool and make disable take &quot;new_size&quot;.
&gt; 
&gt; That sounds pretty good to me.  I know it means more busy work though :-(

All done.

I though about the resize being combined with disabling auto-resize. It really only happens due to the fact that chromium has multiple processes but the WebKit api has no notion of that, so I moved the resize to the chromium side of things and out of the WebKit api (which can be seen here https://chromiumcodereview.appspot.com/9517010/).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568139</commentid>
    <comment_count>17</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-02-29 17:31:39 -0800</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/109288</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568513</commentid>
    <comment_count>18</comment_count>
      <attachid>129393</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-01 03:13:48 -0800</bug_when>
    <thetext>Comment on attachment 129393
Patch

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

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2285
&gt; +        enableAutoResizeMode(enable, minSize, maxSize);

webkit_unit_tests start to fail. I guess the failure is due to this line. The line should be

    enableAutoResizeMode(minSize, maxSize);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568517</commentid>
    <comment_count>19</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-01 03:19:58 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568518</commentid>
    <comment_count>20</comment_count>
      <attachid>129675</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-01 03:20:02 -0800</bug_when>
    <thetext>Created attachment 129675
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568520</commentid>
    <comment_count>21</comment_count>
      <attachid>129675</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-03-01 03:24:00 -0800</bug_when>
    <thetext>Comment on attachment 129675
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568593</commentid>
    <comment_count>22</comment_count>
      <attachid>129675</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-01 05:43:09 -0800</bug_when>
    <thetext>Comment on attachment 129675
Patch

Rejecting attachment 129675 from commit-queue.

New failing tests:
fast/workers/storage/use-same-database-in-page-and-workers.html
Full output: http://queues.webkit.org/results/11770436</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568665</commentid>
    <comment_count>23</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-03-01 08:01:30 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 129393 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=129393&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.cpp:2285
&gt; &gt; +        enableAutoResizeMode(enable, minSize, maxSize);
&gt; 
&gt; webkit_unit_tests start to fail. I guess the failure is due to this line. The line should be
&gt; 
&gt;     enableAutoResizeMode(minSize, maxSize);

Wow. Thanks for figuring that out. (You could have just rolled it out too and left it for me.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568701</commentid>
    <comment_count>24</comment_count>
      <attachid>129675</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-01 09:15:18 -0800</bug_when>
    <thetext>Comment on attachment 129675
Patch

Clearing flags on attachment: 129675

Committed r109350: &lt;http://trac.webkit.org/changeset/109350&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568702</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-01 09:15:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124770</attachid>
            <date>2012-01-31 10:28:08 -0800</date>
            <delta_ts>2012-01-31 10:54:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77452-20120131102806.patch</filename>
            <type>text/plain</type>
            <size>7320</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5k
ZXggMjE5NDhmM2ZjNjBmY2IxN2I1MjkzMzQ0YWE4MDZmNTlkNjk2NGU3Ni4uZmIwMzBiYzA4ZTAy
NDI5OTRjMDdiZjcyZDllZDlkZmRlMjFkZGRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cApAQCAtMzAwNCwxMSArMzAwNCwxNSBAQCB2b2lkIEZyYW1lVmlldzo6ZW5hYmxlQXV0b1NpemVN
b2RlKGJvb2wgZW5hYmxlLCBjb25zdCBJbnRTaXplJiBtaW5TaXplLCBjb25zdCBJbgogICAgIG1f
bWluQXV0b1NpemUgPSBtaW5TaXplOwogICAgIG1fbWF4QXV0b1NpemUgPSBtYXhTaXplOwogCi0g
ICAgaWYgKCFtX3Nob3VsZEF1dG9TaXplKQotICAgICAgICByZXR1cm47Ci0KICAgICBzZXROZWVk
c0xheW91dCgpOwogICAgIHNjaGVkdWxlUmVsYXlvdXQoKTsKKyAgICBpZiAobV9zaG91bGRBdXRv
U2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gU2luY2UgYXV0b3NpemUgbW9kZSBmb3Jj
ZXMgdGhlIHNjcm9sbGJhciBtb2RlLCBjaGFuZ2UgdGhlbSB0byBiZWluZyBhdXRvLgorICAgIHNl
dFZlcnRpY2FsU2Nyb2xsYmFyTG9jayhmYWxzZSk7CisgICAgc2V0SG9yaXpvbnRhbFNjcm9sbGJh
ckxvY2soZmFsc2UpOworICAgIHNldFNjcm9sbGJhck1vZGVzKFNjcm9sbGJhckF1dG8sIFNjcm9s
bGJhckF1dG8pOwogfQogCiB2b2lkIEZyYW1lVmlldzo6Zm9yY2VMYXlvdXQoYm9vbCBhbGxvd1N1
YnRyZWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXgg
NTIxNzNjM2ZkYWRlMTI2MDdhN2UzNTEwMzQ0NWRkZjI4MzkzNjdiNS4uNmE0ZTkzZDlmYWJhMDVh
M2VmYjFhZjJjMTdmZDU0ZjFjZTFmY2NkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcApAQCAtMjExNyw2ICsyMTE3LDggQEAgdm9pZCBXZWJWaWV3SW1wbDo6
ZW5hYmxlRml4ZWRMYXlvdXRNb2RlKGJvb2wgZW5hYmxlKQogCiB2b2lkIFdlYlZpZXdJbXBsOjpl
bmFibGVBdXRvUmVzaXplTW9kZShib29sIGVuYWJsZSwgY29uc3QgV2ViU2l6ZSYgbWluU2l6ZSwg
Y29uc3QgV2ViU2l6ZSYgbWF4U2l6ZSkKIHsKKyAgICBBU1NFUlQoIW1fc2hvdWxkQXV0b1Jlc2l6
ZSB8fCBtaW5TaXplID09IG1heFNpemUpOworCiAgICAgbV9zaG91bGRBdXRvUmVzaXplID0gZW5h
YmxlOwogICAgIG1fbWluQXV0b1NpemUgPSBtaW5TaXplOwogICAgIG1fbWF4QXV0b1NpemUgPSBt
YXhTaXplOwpAQCAtMjEyNCw2ICsyMTI2LDkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZW5hYmxlQXV0
b1Jlc2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IFdlYlNpemUmIG1pblNpemUsIGNvbnMKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgbWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLT52aWV3KCktPmVu
YWJsZUF1dG9TaXplTW9kZShtX3Nob3VsZEF1dG9SZXNpemUsIG1fbWluQXV0b1NpemUsIG1fbWF4
QXV0b1NpemUpOworICAgIC8vIFdoZW4gdHVybmluZyBvZmYgYXV0by1yZXNpemUsIGRvIGEgcmVz
aXplIHRvIHRoZSBnaXZlbiBzaXplLgorICAgIGlmICghbV9zaG91bGRBdXRvUmVzaXplKQorICAg
ICAgICByZXNpemUobV9taW5BdXRvU2l6ZSk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldFBh
Z2VTY2FsZUZhY3RvckxpbWl0cyhmbG9hdCBtaW5QYWdlU2NhbGUsIGZsb2F0IG1heFBhZ2VTY2Fs
ZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcAppbmRleCA2MTE0ZjQ5YWJiZTc5MDgwODI5ZmI2YmRlYWU0NTI3OWQ3ZGRh
MDUyLi5jYTk2NGU3ZWYzMjdlZjhlNmEzYjlhZWI1NDI2Nzk1ZmI0N2VjMDNkIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwCkBAIC05Nyw2ICs5Nyw3IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29u
dHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoImNsZWFyQWxsRGF0YWJh
c2VzIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpjbGVhckFsbERhdGFiYXNlcyk7CiAgICAgYmlu
ZE1ldGhvZCgiY2xvc2VXZWJJbnNwZWN0b3IiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNsb3Nl
V2ViSW5zcGVjdG9yKTsKICAgICBiaW5kTWV0aG9kKCJjb3VudGVyVmFsdWVGb3JFbGVtZW50QnlJ
ZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQpOwor
ICAgIGJpbmRNZXRob2QoImRpc2FibGVBdXRvUmVzaXplTW9kZSIsICZMYXlvdXRUZXN0Q29udHJv
bGxlcjo6ZGlzYWJsZUF1dG9SZXNpemVNb2RlKTsKICAgICBiaW5kTWV0aG9kKCJkaXNhYmxlSW1h
Z2VMb2FkaW5nIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkaXNhYmxlSW1hZ2VMb2FkaW5nKTsK
ICAgICBiaW5kTWV0aG9kKCJkaXNwbGF5IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkaXNwbGF5
KTsKICAgICBiaW5kTWV0aG9kKCJkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24iLCAmTGF5b3V0VGVz
dENvbnRyb2xsZXI6OmRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbik7CkBAIC0xMTIxLDYgKzExMjIs
MjEgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZW5hYmxlQXV0b1Jlc2l6ZU1vZGUoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMKICAgICByZXN1bHQtPnNldCh0cnVlKTsKIH0K
IAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzYWJsZUF1dG9SZXNpemVNb2RlKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAg
aWYgKGFyZ3VtZW50cy5zaXplKCkgIT0yKSB7CisgICAgICAgIHJlc3VsdC0+c2V0KGZhbHNlKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpbnQgbmV3V2lkdGggPSBjcHBWYXJpYW50VG9J
bnQzMihhcmd1bWVudHNbMF0pOworICAgIGludCBuZXdIZWlnaHQgPSBjcHBWYXJpYW50VG9JbnQz
Mihhcmd1bWVudHNbMV0pOworICAgIFdlYktpdDo6V2ViU2l6ZSBuZXdTaXplKG5ld1dpZHRoLCBu
ZXdIZWlnaHQpOworCisgICAgbV9zaGVsbC0+d2ViVmlld0hvc3QoKS0+c2V0V2luZG93UmVjdChX
ZWJSZWN0KDAsIDAsIG5ld1NpemUud2lkdGgsIG5ld1NpemUuaGVpZ2h0KSk7CisgICAgbV9zaGVs
bC0+d2ViVmlldygpLT5lbmFibGVBdXRvUmVzaXplTW9kZShmYWxzZSwgbmV3U2l6ZSwgbmV3U2l6
ZSk7CisgICAgcmVzdWx0LT5zZXQodHJ1ZSk7Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6Om51bWJlck9mQWN0aXZlQW5pbWF0aW9ucyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50KiByZXN1bHQpCiB7CiAgICAgcmVzdWx0LT5zZXQobnVtYmVyT2ZBY3RpdmVBbmltYXRp
b25zKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0
VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmgKaW5kZXggZGJhN2I2YWZiMzkxN2ZjMGMyOWQ3ODA2NTY0MjkzYzI1OGRi
ZDU2MC4uMTU5NzEzMTBjMTNhMDczMWIyZWMzNzM4NTczNDI0ZTNmZGM5NTdhNiAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5o
CkBAIC0yNDQsNiArMjQ0LDcgQEAgcHVibGljOgogICAgIHZvaWQgcGF1c2VUcmFuc2l0aW9uQXRU
aW1lT25FbGVtZW50V2l0aElkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsK
ICAgICB2b2lkIGVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZChjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBlbmFibGVBdXRvUmVzaXpl
TW9kZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBkaXNh
YmxlQXV0b1Jlc2l6ZU1vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwog
ICAgIHZvaWQgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYs
IENwcFZhcmlhbnQqKTsKICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9hdXRvcmVzaXplL3R1cm4tb2ZmLWF1dG9yZXNpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9hdXRvcmVzaXplL3R1cm4tb2ZmLWF1dG9yZXNpemUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRjMTE0MjYwNDQyNmJhOWY1NjdiM2ZmM2IxYmJiZjA4NWU1NmQxNDYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2F1dG9yZXNpemUvdHVybi1vZmYtYXV0b3Jl
c2l6ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGhpcyB0ZXN0IG9ubHkgd29ya3Mg
aW4gd2hlbiBydW4gaW4gZHVtcHJlbmRlcnRyZWUgYXMgaXQgcmVsaWVzIG9uIGhhdmluZyBhdXRv
LXJlc2l6ZSBlbmFibGVkIGl0cyB3aW5kb3cuIAorCitXaGVuIGl0IHN1Y2NlZWRzLCB0aGVyZSBz
aG91bGQgYmUgYSBzZXJpZXMgb2YgUEFTUyBtZXNzYWdlcyBmb2xsb3dlZCBieSBhIERPTkUgbWVz
c2FnZS4gCisKK1BBU1M6IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggZXF1YWxlZCB3aW5kb3cu
aW5uZXJXaWR0aAorUEFTUzogZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQgZXF1YWxlZCB3aW5k
b3cuaW5uZXJIZWlnaHQKK1BBU1M6IGRvY3VtZW50LmJvZHkuc2Nyb2xsV2lkdGggZXF1YWxlZCB3
aW5kb3cuaW5uZXJXaWR0aAorUEFTUzogZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQgZXF1YWxl
ZCB3aW5kb3cuaW5uZXJIZWlnaHQKK1BBU1M6IHdpbmRvdy5pbm5lcldpZHRoIGVxdWFsZWQgd2lu
ZG93Lm91dGVyV2lkdGgKK1BBU1M6IHdpbmRvdy5pbm5lckhlaWdodCBlcXVhbGVkIHdpbmRvdy5v
dXRlckhlaWdodAorUEFTUzogd2luZG93Lm91dGVyV2lkdGggZXF1YWxlZCAyMDAKK1BBU1M6IHdp
bmRvdy5vdXRlckhlaWdodCBlcXVhbGVkIDIwMAorUEFTUzogd2luZG93Lm91dGVyV2lkdGggZXF1
YWxlZCAyMDAKK0RPTkUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9hdXRvcmVzaXpl
L3R1cm4tb2ZmLWF1dG9yZXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYXV0b3Jlc2l6ZS90
dXJuLW9mZi1hdXRvcmVzaXplLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg3MDhjMDM3ODI2ZTc2YTI0YTMy
ZTM1MzI2MjU1NmQ5Mzc2MGJlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
YXV0b3Jlc2l6ZS90dXJuLW9mZi1hdXRvcmVzaXplLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFk
b2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQgc3JjPSdyZXNvdXJjZXMvYXV0b3Jlc2l6ZS11
dGlsLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmVuYWJsZUF1dG9SZXNpemVNb2RlKDEwLCAxMCwgMTAwMCwgMTAwMCk7CisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICB9CisgICAgc2hvdWxkQmUo
J2RvY3VtZW50LmJvZHkuY2xpZW50V2lkdGgnLCAnd2luZG93LmlubmVyV2lkdGgnKTsKKyAgICBz
aG91bGRCZSgnZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQnLCAnd2luZG93LmlubmVySGVpZ2h0
Jyk7CisgICAgc2hvdWxkQmUoJ2RvY3VtZW50LmJvZHkuc2Nyb2xsV2lkdGgnLCAnd2luZG93Lmlu
bmVyV2lkdGgnKTsKKyAgICBzaG91bGRCZSgnZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQnLCAn
d2luZG93LmlubmVySGVpZ2h0Jyk7CisgICAgc2hvdWxkQmUoJ3dpbmRvdy5pbm5lcldpZHRoJywg
J3dpbmRvdy5vdXRlcldpZHRoJyk7CisgICAgc2hvdWxkQmUoJ3dpbmRvdy5pbm5lckhlaWdodCcs
ICd3aW5kb3cub3V0ZXJIZWlnaHQnKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kaXNhYmxlQXV0b1Jlc2l6ZU1vZGUo
MjAwLCAyMDApOworCisgICAgc2hvdWxkQmUoJ3dpbmRvdy5vdXRlcldpZHRoJywgMjAwKTsKKyAg
ICBzaG91bGRCZSgnd2luZG93Lm91dGVySGVpZ2h0JywgMjAwKTsKKyAgICBkb2N1bWVudC5ib2R5
LnN0eWxlLndpZHRoID0gJzEwMHB4JzsKKyAgICBzaG91bGRCZSgnd2luZG93Lm91dGVyV2lkdGgn
LCAyMDApOworCisgICAgbG9nKCdET05FJyk7Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIiBzdHlsZT0ibWFyZ2luOjA7IHdpZHRoOjkwMHB4Ij4KK1RoaXMgdGVzdCB2ZXJp
ZmllcyB0aGF0IHR1cm5pbmcgb2ZmIGF1dG8gcmVzaXplIGZ1bmN0aW9ucyBjb3JyZWN0bHkuIEl0
IG9ubHkgd29ya3Mgd2hlbiBydW4gaW4gZHVtcHJlbmRlcnRyZWUgYXMgaXQgcmVsaWVzIG9uIGhh
dmluZyBhdXRvLXJlc2l6ZSBmdW5jdGlvbiBhdmFpbGFibGUuCis8YnI+Cis8YnI+CitXaGVuIGl0
IHN1Y2NlZWRzLCB0aGVyZSBzaG91bGQgYmUgYSBzZXJpZXMgb2YgUEFTUyBtZXNzYWdlcyBmb2xs
b3dlZCBieSBhIERPTkUgbWVzc2FnZS4KKzxicj4KKzxicj4KKzxkaXYgaWQ9J3Jlc3VsdCc+Cis8
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124775</attachid>
            <date>2012-01-31 10:54:08 -0800</date>
            <delta_ts>2012-02-27 17:32:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77452-20120131105405.patch</filename>
            <type>text/plain</type>
            <size>10398</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzYyZDI0OWRkNjFhMTNj
NzAyZTcwODZmZWIxMTAzNWI1Y2ZkMjUwNC4uN2QwNjFiOGMwYWZiYmU1ZTk4Mzc5MzJjOWMxY2I1
MTJjZGJiZDkxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAxLTMxICBEYXZp
ZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCB0
aGUgYWJpbGl0eSB0byB0dXJuIG9mZiBhdXRvcmVzaXplLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0NTIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L2F1dG9yZXNpemUvdHVybi1vZmYt
YXV0b3Jlc2l6ZS5odG1sCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVZpZXc6OmVuYWJsZUF1dG9TaXplTW9kZSk6IEZpeCB0aGUgY29kZQor
ICAgICAgICBwYXRoIGZvciB0dXJuaW5nIG9mZiBhdXRvcmVzaXplIHRvIHNldCB0aGUgc2Nyb2xs
YmFycyB0byBhdXRvLgorCiAyMDEyLTAxLTI0ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBpbnNwZWN0b3IvZGVidWdnZXIv
ZG9tLWJyZWFrcG9pbnRzLmh0bWwgc3RhcnRlZCB0byBmYWlsIGFmdGVyIHIxMDU2NDIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYWEyZTQzYWZkNTQwNWZhNjQ3MWEwYmRhN2RiZDc0Mzk2
MWI3MzZiMC4uMjAzMjU2ODNkOTRiOTQwZDc0M2Y2MzZmMWIyZmZhODdiN2FiNzk5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMS0zMSAgRGF2aWQg
TGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgdGhl
IGFiaWxpdHkgdG8gdHVybiBvZmYgYXV0b3Jlc2l6ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6ZW5hYmxlQXV0b1Jlc2l6ZU1vZGUpOiBNYWtlIHR1cm5pbmcg
b2ZmCisgICAgICAgIGF1dG9yZXNpemUgY2hhbmdlIHRoZSBzaXplIG9mIHRoZSB3aW5kb3cgYW5k
IHZlcmlmeSB0aGF0IHRoZQorICAgICAgICBtaW4gYW5kIG1heCBzaXplcyBhcmUgdGhlIHNhbWUu
CisKIDIwMTItMDEtMjQgIFZpbmNlbnQgU2NoZWliICA8c2NoZWliQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbQ2hyb21pdW1dIEFkZCBXZWJLaXQgQVBJIGZvciBQb2ludGVyIExvY2sKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAyMTk0OGYzZmM2MGZjYjE3YjUyOTMzNDRhYTgwNmY1
OWQ2OTY0ZTc2Li5mYjAzMGJjMDhlMDI0Mjk5NGMwN2JmNzJkOWVkOWRmZGUyMWRkZGI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zMDA0LDExICszMDA0LDE1IEBAIHZvaWQgRnJh
bWVWaWV3OjplbmFibGVBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIG1p
blNpemUsIGNvbnN0IEluCiAgICAgbV9taW5BdXRvU2l6ZSA9IG1pblNpemU7CiAgICAgbV9tYXhB
dXRvU2l6ZSA9IG1heFNpemU7CiAKLSAgICBpZiAoIW1fc2hvdWxkQXV0b1NpemUpCi0gICAgICAg
IHJldHVybjsKLQogICAgIHNldE5lZWRzTGF5b3V0KCk7CiAgICAgc2NoZWR1bGVSZWxheW91dCgp
OworICAgIGlmIChtX3Nob3VsZEF1dG9TaXplKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBT
aW5jZSBhdXRvc2l6ZSBtb2RlIGZvcmNlcyB0aGUgc2Nyb2xsYmFyIG1vZGUsIGNoYW5nZSB0aGVt
IHRvIGJlaW5nIGF1dG8uCisgICAgc2V0VmVydGljYWxTY3JvbGxiYXJMb2NrKGZhbHNlKTsKKyAg
ICBzZXRIb3Jpem9udGFsU2Nyb2xsYmFyTG9jayhmYWxzZSk7CisgICAgc2V0U2Nyb2xsYmFyTW9k
ZXMoU2Nyb2xsYmFyQXV0bywgU2Nyb2xsYmFyQXV0byk7CiB9CiAKIHZvaWQgRnJhbWVWaWV3Ojpm
b3JjZUxheW91dChib29sIGFsbG93U3VidHJlZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcAppbmRleCA1MjE3M2MzZmRhZGUxMjYwN2E3ZTM1MTAzNDQ1ZGRmMjgz
OTM2N2I1Li42YTRlOTNkOWZhYmEwNWEzZWZiMWFmMmMxN2ZkNTRmMWNlMWZjY2RjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0yMTE3LDYgKzIxMTcs
OCBAQCB2b2lkIFdlYlZpZXdJbXBsOjplbmFibGVGaXhlZExheW91dE1vZGUoYm9vbCBlbmFibGUp
CiAKIHZvaWQgV2ViVmlld0ltcGw6OmVuYWJsZUF1dG9SZXNpemVNb2RlKGJvb2wgZW5hYmxlLCBj
b25zdCBXZWJTaXplJiBtaW5TaXplLCBjb25zdCBXZWJTaXplJiBtYXhTaXplKQogeworICAgIEFT
U0VSVCghbV9zaG91bGRBdXRvUmVzaXplIHx8IG1pblNpemUgPT0gbWF4U2l6ZSk7CisKICAgICBt
X3Nob3VsZEF1dG9SZXNpemUgPSBlbmFibGU7CiAgICAgbV9taW5BdXRvU2l6ZSA9IG1pblNpemU7
CiAgICAgbV9tYXhBdXRvU2l6ZSA9IG1heFNpemU7CkBAIC0yMTI0LDYgKzIxMjYsOSBAQCB2b2lk
IFdlYlZpZXdJbXBsOjplbmFibGVBdXRvUmVzaXplTW9kZShib29sIGVuYWJsZSwgY29uc3QgV2Vi
U2l6ZSYgbWluU2l6ZSwgY29ucwogICAgICAgICByZXR1cm47CiAKICAgICBtYWluRnJhbWVJbXBs
KCktPmZyYW1lKCktPnZpZXcoKS0+ZW5hYmxlQXV0b1NpemVNb2RlKG1fc2hvdWxkQXV0b1Jlc2l6
ZSwgbV9taW5BdXRvU2l6ZSwgbV9tYXhBdXRvU2l6ZSk7CisgICAgLy8gV2hlbiB0dXJuaW5nIG9m
ZiBhdXRvLXJlc2l6ZSwgZG8gYSByZXNpemUgdG8gdGhlIGdpdmVuIHNpemUuCisgICAgaWYgKCFt
X3Nob3VsZEF1dG9SZXNpemUpCisgICAgICAgIHJlc2l6ZShtX21pbkF1dG9TaXplKTsKIH0KIAog
dm9pZCBXZWJWaWV3SW1wbDo6c2V0UGFnZVNjYWxlRmFjdG9yTGltaXRzKGZsb2F0IG1pblBhZ2VT
Y2FsZSwgZmxvYXQgbWF4UGFnZVNjYWxlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBkNDdjNDQ4Yzg5YzM2MzE0N2YwN2JjYzA3Nzk5YzQzOTcw
NDljOGEuLmM2ZmMxYjZjZGYyOGJiMGQ2MjZmMGFiNGRhMDdjYTZjYjk0NWVmNjEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAxMi0wMS0zMSAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgW2Nocm9taXVtXSBBZGQgdGhlIGFiaWxpdHkgdG8gdHVybiBvZmYgYXV0b3Jlc2l6ZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDUyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIpOiBFeHBvc2UgYSB3YXkgdG8gdHVy
biBvZmYgYXV0by1yZXNpemUuCisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzYWJs
ZUF1dG9SZXNpemVNb2RlKTogIERpdHRvLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6IERpdHRvLgorCiAyMDEyLTAxLTI0ICBBbmRyYXMg
QmVjc2kgIDxhbmRyYXMuYmVjc2lAbm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gRml4IHRoZSBi
dWlsZCB3aXRoIHRoZSBuZXdlcyBRdDUgaGFzaGVzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNjExNGY0OWFi
YmU3OTA4MDgyOWZiNmJkZWFlNDUyNzlkN2RkYTA1Mi4uY2E5NjRlN2VmMzI3ZWY4ZTZhM2I5YWVi
NTQyNjc5NWZiNDdlYzAzZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtOTcsNiArOTcsNyBAQCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVsbCkKICAg
ICBiaW5kTWV0aG9kKCJjbGVhckFsbERhdGFiYXNlcyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6
Y2xlYXJBbGxEYXRhYmFzZXMpOwogICAgIGJpbmRNZXRob2QoImNsb3NlV2ViSW5zcGVjdG9yIiwg
JkxheW91dFRlc3RDb250cm9sbGVyOjpjbG9zZVdlYkluc3BlY3Rvcik7CiAgICAgYmluZE1ldGhv
ZCgiY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNv
dW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKTsKKyAgICBiaW5kTWV0aG9kKCJkaXNhYmxlQXV0b1Jl
c2l6ZU1vZGUiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmRpc2FibGVBdXRvUmVzaXplTW9kZSk7
CiAgICAgYmluZE1ldGhvZCgiZGlzYWJsZUltYWdlTG9hZGluZyIsICZMYXlvdXRUZXN0Q29udHJv
bGxlcjo6ZGlzYWJsZUltYWdlTG9hZGluZyk7CiAgICAgYmluZE1ldGhvZCgiZGlzcGxheSIsICZM
YXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzcGxheSk7CiAgICAgYmluZE1ldGhvZCgiZGlzcGxheUlu
dmFsaWRhdGVkUmVnaW9uIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkaXNwbGF5SW52YWxpZGF0
ZWRSZWdpb24pOwpAQCAtMTEyMSw2ICsxMTIyLDIxIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmVuYWJsZUF1dG9SZXNpemVNb2RlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRz
CiAgICAgcmVzdWx0LT5zZXQodHJ1ZSk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmRpc2FibGVBdXRvUmVzaXplTW9kZShjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywg
Q3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpICE9Mikgewor
ICAgICAgICByZXN1bHQtPnNldChmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
aW50IG5ld1dpZHRoID0gY3BwVmFyaWFudFRvSW50MzIoYXJndW1lbnRzWzBdKTsKKyAgICBpbnQg
bmV3SGVpZ2h0ID0gY3BwVmFyaWFudFRvSW50MzIoYXJndW1lbnRzWzFdKTsKKyAgICBXZWJLaXQ6
OldlYlNpemUgbmV3U2l6ZShuZXdXaWR0aCwgbmV3SGVpZ2h0KTsKKworICAgIG1fc2hlbGwtPndl
YlZpZXdIb3N0KCktPnNldFdpbmRvd1JlY3QoV2ViUmVjdCgwLCAwLCBuZXdTaXplLndpZHRoLCBu
ZXdTaXplLmhlaWdodCkpOworICAgIG1fc2hlbGwtPndlYlZpZXcoKS0+ZW5hYmxlQXV0b1Jlc2l6
ZU1vZGUoZmFsc2UsIG5ld1NpemUsIG5ld1NpemUpOworICAgIHJlc3VsdC0+c2V0KHRydWUpOwor
fQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIHJlc3Vs
dC0+c2V0KG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IGRiYTdiNmFm
YjM5MTdmYzBjMjlkNzgwNjU2NDI5M2MyNThkYmQ1NjAuLjE1OTcxMzEwYzEzYTA3MzFiMmVjMzcz
ODU3MzQyNGUzZmRjOTU3YTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMjQ0LDYgKzI0NCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHBhdXNlVHJhbnNpdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBlbGVtZW50RG9lc0F1dG9Db21w
bGV0ZUZvckVsZW1lbnRXaXRoSWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OwogICAgIHZvaWQgZW5hYmxlQXV0b1Jlc2l6ZU1vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0Jiwg
Q3BwVmFyaWFudCopOworICAgIHZvaWQgZGlzYWJsZUF1dG9SZXNpemVNb2RlKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIG51bWJlck9mQWN0aXZlQW5pbWF0
aW9ucyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBzdXNw
ZW5kQW5pbWF0aW9ucyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAg
dm9pZCByZXN1bWVBbmltYXRpb25zKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAzMzY4M2IxZDA5NGY0M2NkMjkyMDVmMDBmMGMxZTc2NjY2N2MxYTVhLi5mZWY3
NGQzYzc2ZmI1NWRlNGQ1ZmMxNGM2YzEyMWU3MjhkYjIyNTc3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTItMDEtMzEgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFtjaHJvbWl1bV0gQWRkIHRoZSBhYmlsaXR5IHRvIHR1cm4gb2ZmIGF1dG9yZXNpemUuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQ1MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9hdXRv
cmVzaXplL3R1cm4tb2ZmLWF1dG9yZXNpemUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2F1dG9yZXNpemUvdHVybi1vZmYtYXV0b3Jlc2l6ZS5odG1sOiBBZGRlZC4KKwogMjAx
Mi0wMS0yNCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0No
cm9taXVtXSBVcGRhdGUgdGVzdCBleHBlY3RhdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9hdXRvcmVzaXplL3R1cm4tb2ZmLWF1dG9yZXNpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9hdXRvcmVzaXplL3R1cm4tb2ZmLWF1dG9yZXNpemUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRjMTE0MjYwNDQyNmJhOWY1NjdiM2ZmM2IxYmJiZjA4NWU1NmQxNDYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2F1dG9yZXNpemUvdHVybi1vZmYtYXV0b3Jl
c2l6ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorVGhpcyB0ZXN0IG9ubHkgd29ya3Mg
aW4gd2hlbiBydW4gaW4gZHVtcHJlbmRlcnRyZWUgYXMgaXQgcmVsaWVzIG9uIGhhdmluZyBhdXRv
LXJlc2l6ZSBlbmFibGVkIGl0cyB3aW5kb3cuIAorCitXaGVuIGl0IHN1Y2NlZWRzLCB0aGVyZSBz
aG91bGQgYmUgYSBzZXJpZXMgb2YgUEFTUyBtZXNzYWdlcyBmb2xsb3dlZCBieSBhIERPTkUgbWVz
c2FnZS4gCisKK1BBU1M6IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggZXF1YWxlZCB3aW5kb3cu
aW5uZXJXaWR0aAorUEFTUzogZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQgZXF1YWxlZCB3aW5k
b3cuaW5uZXJIZWlnaHQKK1BBU1M6IGRvY3VtZW50LmJvZHkuc2Nyb2xsV2lkdGggZXF1YWxlZCB3
aW5kb3cuaW5uZXJXaWR0aAorUEFTUzogZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQgZXF1YWxl
ZCB3aW5kb3cuaW5uZXJIZWlnaHQKK1BBU1M6IHdpbmRvdy5pbm5lcldpZHRoIGVxdWFsZWQgd2lu
ZG93Lm91dGVyV2lkdGgKK1BBU1M6IHdpbmRvdy5pbm5lckhlaWdodCBlcXVhbGVkIHdpbmRvdy5v
dXRlckhlaWdodAorUEFTUzogd2luZG93Lm91dGVyV2lkdGggZXF1YWxlZCAyMDAKK1BBU1M6IHdp
bmRvdy5vdXRlckhlaWdodCBlcXVhbGVkIDIwMAorUEFTUzogd2luZG93Lm91dGVyV2lkdGggZXF1
YWxlZCAyMDAKK0RPTkUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9hdXRvcmVzaXpl
L3R1cm4tb2ZmLWF1dG9yZXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvYXV0b3Jlc2l6ZS90
dXJuLW9mZi1hdXRvcmVzaXplLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg3MDhjMDM3ODI2ZTc2YTI0YTMy
ZTM1MzI2MjU1NmQ5Mzc2MGJlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
YXV0b3Jlc2l6ZS90dXJuLW9mZi1hdXRvcmVzaXplLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFk
b2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQgc3JjPSdyZXNvdXJjZXMvYXV0b3Jlc2l6ZS11
dGlsLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmVuYWJsZUF1dG9SZXNpemVNb2RlKDEwLCAxMCwgMTAwMCwgMTAwMCk7CisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICB9CisgICAgc2hvdWxkQmUo
J2RvY3VtZW50LmJvZHkuY2xpZW50V2lkdGgnLCAnd2luZG93LmlubmVyV2lkdGgnKTsKKyAgICBz
aG91bGRCZSgnZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQnLCAnd2luZG93LmlubmVySGVpZ2h0
Jyk7CisgICAgc2hvdWxkQmUoJ2RvY3VtZW50LmJvZHkuc2Nyb2xsV2lkdGgnLCAnd2luZG93Lmlu
bmVyV2lkdGgnKTsKKyAgICBzaG91bGRCZSgnZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQnLCAn
d2luZG93LmlubmVySGVpZ2h0Jyk7CisgICAgc2hvdWxkQmUoJ3dpbmRvdy5pbm5lcldpZHRoJywg
J3dpbmRvdy5vdXRlcldpZHRoJyk7CisgICAgc2hvdWxkQmUoJ3dpbmRvdy5pbm5lckhlaWdodCcs
ICd3aW5kb3cub3V0ZXJIZWlnaHQnKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kaXNhYmxlQXV0b1Jlc2l6ZU1vZGUo
MjAwLCAyMDApOworCisgICAgc2hvdWxkQmUoJ3dpbmRvdy5vdXRlcldpZHRoJywgMjAwKTsKKyAg
ICBzaG91bGRCZSgnd2luZG93Lm91dGVySGVpZ2h0JywgMjAwKTsKKyAgICBkb2N1bWVudC5ib2R5
LnN0eWxlLndpZHRoID0gJzEwMHB4JzsKKyAgICBzaG91bGRCZSgnd2luZG93Lm91dGVyV2lkdGgn
LCAyMDApOworCisgICAgbG9nKCdET05FJyk7Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIiBzdHlsZT0ibWFyZ2luOjA7IHdpZHRoOjkwMHB4Ij4KK1RoaXMgdGVzdCB2ZXJp
ZmllcyB0aGF0IHR1cm5pbmcgb2ZmIGF1dG8gcmVzaXplIGZ1bmN0aW9ucyBjb3JyZWN0bHkuIEl0
IG9ubHkgd29ya3Mgd2hlbiBydW4gaW4gZHVtcHJlbmRlcnRyZWUgYXMgaXQgcmVsaWVzIG9uIGhh
dmluZyBhdXRvLXJlc2l6ZSBmdW5jdGlvbiBhdmFpbGFibGUuCis8YnI+Cis8YnI+CitXaGVuIGl0
IHN1Y2NlZWRzLCB0aGVyZSBzaG91bGQgYmUgYSBzZXJpZXMgb2YgUEFTUyBtZXNzYWdlcyBmb2xs
b3dlZCBieSBhIERPTkUgbWVzc2FnZS4KKzxicj4KKzxicj4KKzxkaXYgaWQ9J3Jlc3VsdCc+Cis8
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129146</attachid>
            <date>2012-02-27 17:32:04 -0800</date>
            <delta_ts>2012-02-28 15:05:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77452-20120227173203.patch</filename>
            <type>text/plain</type>
            <size>11317</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc5Y2RkZmM3MGE0M2Ey
ZWU3NzgyOGVmZWY1YTJiYWI1ZGEwZmVkMC4uZDc1N2Y1MjE3YjIwMmU3ZjdkMzg2ODY1MzY5ZmY1
YzgxNTZkMzIwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAxLTMxICBEYXZp
ZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCB0
aGUgYWJpbGl0eSB0byB0dXJuIG9mZiBhdXRvcmVzaXplLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0NTIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L2F1dG9yZXNpemUvdHVybi1vZmYt
YXV0b3Jlc2l6ZS5odG1sCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVZpZXc6OmVuYWJsZUF1dG9TaXplTW9kZSk6IEZpeCB0aGUgY29kZQor
ICAgICAgICBwYXRoIGZvciB0dXJuaW5nIG9mZiBhdXRvcmVzaXplIHRvIHNldCB0aGUgc2Nyb2xs
YmFycyB0byBhdXRvLgorCiAyMDEyLTAyLTI3ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZW5hbWUgcmVzb2x2ZS1zdXBwbGVtZW50YWwucGwgdG8gcHJl
cHJvY2Vzcy1pZGxzLnBsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGE2ZTk0ZGY4OTQy
ZTM5ZGY3ODVhZDczNzk5OGNjMzQxZjVkMzk2N2UuLjY0MDFhMDI5Yzk5OGE5ZjgxNzZmYzU4YmM1
YjVjMTUxYTkyYzVmMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTItMDEtMzEgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFtjaHJvbWl1bV0gQWRkIHRoZSBhYmlsaXR5IHRvIHR1cm4gb2ZmIGF1dG9yZXNpemUuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQ1MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dl
YlZpZXcuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmVuYWJsZUF1dG9SZXNpemVN
b2RlKTogQWRkZWQgaW5mb3JtYXRpb24KKyAgICAgICAgYWJvdXQgdHVybmluZyBvZmYgYXV0b3Jl
c2l6ZS4KKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6ZW5hYmxlQXV0b1Jlc2l6ZU1vZGUpOiBNYWtlIHR1cm5pbmcgb2ZmCisgICAg
ICAgIGF1dG9yZXNpemUgY2hhbmdlIHRoZSBzaXplIG9mIHRoZSB3aW5kb3cgYW5kIHZlcmlmeSB0
aGF0IHRoZQorICAgICAgICBtaW4gYW5kIG1heCBzaXplcyBhcmUgdGhlIHNhbWUuCisKIDIwMTIt
MDItMjYgIEhhamltZSBNb3JyaXRhICA8bW9ycml0YUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
TW92ZSBDaHJvbWVDbGllbnQ6OnNob3dDb250ZXh0TWVudSgpIHRvIENvbnRleHRNZW51Q2xpZW50
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMDI0YzQ4NGYwYTk5NWM0ZTQzY2Y1NjFk
MWUxMDg3ODFlNmE4Nzg4Zi4uNDJjZjlkNjkzNzNkZWZhNTQ3OTMzOGZjZDYzYmJmMzViOWM4MzM5
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMzAyNCwxMSArMzAyNCwxNSBAQCB2
b2lkIEZyYW1lVmlldzo6ZW5hYmxlQXV0b1NpemVNb2RlKGJvb2wgZW5hYmxlLCBjb25zdCBJbnRT
aXplJiBtaW5TaXplLCBjb25zdCBJbgogICAgIG1fbWluQXV0b1NpemUgPSBtaW5TaXplOwogICAg
IG1fbWF4QXV0b1NpemUgPSBtYXhTaXplOwogCi0gICAgaWYgKCFtX3Nob3VsZEF1dG9TaXplKQot
ICAgICAgICByZXR1cm47Ci0KICAgICBzZXROZWVkc0xheW91dCgpOwogICAgIHNjaGVkdWxlUmVs
YXlvdXQoKTsKKyAgICBpZiAobV9zaG91bGRBdXRvU2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgLy8gU2luY2UgYXV0b3NpemUgbW9kZSBmb3JjZXMgdGhlIHNjcm9sbGJhciBtb2RlLCBjaGFu
Z2UgdGhlbSB0byBiZWluZyBhdXRvLgorICAgIHNldFZlcnRpY2FsU2Nyb2xsYmFyTG9jayhmYWxz
ZSk7CisgICAgc2V0SG9yaXpvbnRhbFNjcm9sbGJhckxvY2soZmFsc2UpOworICAgIHNldFNjcm9s
bGJhck1vZGVzKFNjcm9sbGJhckF1dG8sIFNjcm9sbGJhckF1dG8pOwogfQogCiB2b2lkIEZyYW1l
Vmlldzo6Zm9yY2VMYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggZWQ4NTNlMjNhNzc1ZGY0OWI0MTM3MGRjOWJiYzcwYjYw
MGI1ZTAxNi4uZTNiMTk0ZjlhNDA2ZTk2ZGQxZTE5NTgxNjEzYzQzNjEyNzg5M2RlMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMjU4LDcgKzI1OCwxMCBAQCBw
dWJsaWM6CiAgICAgLy8gQXV0by1SZXNpemUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogICAgIC8vIEluIGF1dG8tcmVzaXplIG1v
ZGUsIHRoZSB2aWV3IGlzIGF1dG9tYXRpY2FsbHkgYWRqdXN0ZWQgdG8gZml0IHRoZSBodG1sCi0g
ICAgLy8gY29udGVudCB3aXRoaW4gdGhlIGdpdmVuIGJvdW5kcy4KKyAgICAvLyBjb250ZW50IHdp
dGhpbiB0aGUgZ2l2ZW4gYm91bmRzLiBXaGVuIHR1cm5pbmcgb2ZmIGF1dG8tcmVzaXplLCB0aGUK
KyAgICAvLyB0aGUgY3VycmVudCB3aW5kb3cgc2l6ZSBzaG91bGQgYmUgZ2l2ZW4gZm9yIGJvdGgg
dGhlIG1pbiBhbmQgdGhlIG1heAorICAgIC8vIHNpemUuIFRoaXMgZ2V0cyB0aGUgaG9zdCBhbmQg
dGhlIHdlYiB2aWV3IGluIHN5bmMgYWJvdXQgc2l6aW5nIHNpbmNlIHRoZQorICAgIC8vIGZsb3cg
b2Ygc2l6ZSBjaGFuZ2VzIGhhcyBzd2l0Y2hlZCB0byBjb21pbmcgZnJvbSB0aGUgaG9zdCBhZ2Fp
bi4KICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlQXV0b1Jlc2l6ZU1vZGUoCiAgICAgICAgIGJvb2wg
ZW5hYmxlLAogICAgICAgICBjb25zdCBXZWJTaXplJiBtaW5TaXplLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGYxNTMwMjI5ZTQ4YjQwMWYzMWEyYzVm
NjE0NzVhYWMyNTgxOGEyNWIuLmNlMWM2N2ZkMTYxZGNmYzc2MmFkNGRiZTg1YTkzMjFmZGIyNTc2
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTIy
NjYsNiArMjI2Niw4IEBAIHZvaWQgV2ViVmlld0ltcGw6OmVuYWJsZUZpeGVkTGF5b3V0TW9kZShi
b29sIGVuYWJsZSkKIAogdm9pZCBXZWJWaWV3SW1wbDo6ZW5hYmxlQXV0b1Jlc2l6ZU1vZGUoYm9v
bCBlbmFibGUsIGNvbnN0IFdlYlNpemUmIG1pblNpemUsIGNvbnN0IFdlYlNpemUmIG1heFNpemUp
CiB7CisgICAgQVNTRVJUKGVuYWJsZSB8fCBtaW5TaXplID09IG1heFNpemUpOworCiAgICAgbV9z
aG91bGRBdXRvUmVzaXplID0gZW5hYmxlOwogICAgIG1fbWluQXV0b1NpemUgPSBtaW5TaXplOwog
ICAgIG1fbWF4QXV0b1NpemUgPSBtYXhTaXplOwpAQCAtMjI3Myw2ICsyMjc1LDkgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6ZW5hYmxlQXV0b1Jlc2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IFdlYlNp
emUmIG1pblNpemUsIGNvbnMKICAgICAgICAgcmV0dXJuOwogCiAgICAgbWFpbkZyYW1lSW1wbCgp
LT5mcmFtZSgpLT52aWV3KCktPmVuYWJsZUF1dG9TaXplTW9kZShtX3Nob3VsZEF1dG9SZXNpemUs
IG1fbWluQXV0b1NpemUsIG1fbWF4QXV0b1NpemUpOworICAgIC8vIFdoZW4gdHVybmluZyBvZmYg
YXV0by1yZXNpemUsIGRvIGEgcmVzaXplIHRvIHRoZSBnaXZlbiBzaXplLgorICAgIGlmICghbV9z
aG91bGRBdXRvUmVzaXplKQorICAgICAgICByZXNpemUobV9taW5BdXRvU2l6ZSk7CiB9CiAKIHZv
aWQgV2ViVmlld0ltcGw6OnNldFBhZ2VTY2FsZUZhY3RvckxpbWl0cyhmbG9hdCBtaW5QYWdlU2Nh
bGUsIGZsb2F0IG1heFBhZ2VTY2FsZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCAxOGVhZmNiMjFjYzQwNGJlZDE5NTJiODlmY2UxOWUxZmYwN2Ri
NGNkLi40ZTUwYjYyMmU0MTNlYWViNzkwZDNlOWE5N2E4MjFjMGFmNzUzYTFhIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDEtMzEgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFtjaHJvbWl1bV0gQWRkIHRoZSBhYmlsaXR5IHRvIHR1cm4gb2ZmIGF1dG9yZXNpemUuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQ1MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVz
dENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKTogRXhwb3NlIGEgd2F5IHRvIHR1cm4g
b2ZmIGF1dG8tcmVzaXplLgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmRpc2FibGVB
dXRvUmVzaXplTW9kZSk6ICBEaXR0by4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOiBEaXR0by4KKwogMjAxMi0wMi0yNyAgWGlhbnpodSBX
YW5nICA8d2FuZ3hpYW56aHVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENocm9taXVtLUFuZHJv
aWQgbGF5b3V0IHRlc3Qgc2NyaXB0OiB0aGUgYWRiIHNoZWxsIHByb21wdCBpcyBub3QgYWx3YXlz
ICcjICcKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcAppbmRleCA4NDM0ZjQ3ZGMzNDA5MGM1OWFiMjIxODBlYTdlODA4OWEw
ZmQ0Y2YwLi42OTY1Yzg4MGRkNjc0YzhlYTE3ZWQ0Y2MzMTBhODI3NTljYjU1YjY4IDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwCkBAIC0xMDEsNiArMTAxLDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRl
c3RDb250cm9sbGVyKFRlc3RTaGVsbCogc2hlbGwpCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykK
ICAgICBiaW5kTWV0aG9kKCJkaWRMb3NlUG9pbnRlckxvY2siLCAmTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmRpZExvc2VQb2ludGVyTG9jayk7CiAjZW5kaWYKKyAgICBiaW5kTWV0aG9kKCJkaXNhYmxl
QXV0b1Jlc2l6ZU1vZGUiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmRpc2FibGVBdXRvUmVzaXpl
TW9kZSk7CiAgICAgYmluZE1ldGhvZCgiZGlzYWJsZUltYWdlTG9hZGluZyIsICZMYXlvdXRUZXN0
Q29udHJvbGxlcjo6ZGlzYWJsZUltYWdlTG9hZGluZyk7CiAgICAgYmluZE1ldGhvZCgiZGlzcGxh
eSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzcGxheSk7CiAgICAgYmluZE1ldGhvZCgiZGlz
cGxheUludmFsaWRhdGVkUmVnaW9uIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkaXNwbGF5SW52
YWxpZGF0ZWRSZWdpb24pOwpAQCAtMTEyOSw2ICsxMTMwLDIxIEBAIHZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmVuYWJsZUF1dG9SZXNpemVNb2RlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJn
dW1lbnRzCiAgICAgcmVzdWx0LT5zZXQodHJ1ZSk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmRpc2FibGVBdXRvUmVzaXplTW9kZShjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3Vt
ZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpICE9
MikgeworICAgICAgICByZXN1bHQtPnNldChmYWxzZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgaW50IG5ld1dpZHRoID0gY3BwVmFyaWFudFRvSW50MzIoYXJndW1lbnRzWzBdKTsKKyAg
ICBpbnQgbmV3SGVpZ2h0ID0gY3BwVmFyaWFudFRvSW50MzIoYXJndW1lbnRzWzFdKTsKKyAgICBX
ZWJLaXQ6OldlYlNpemUgbmV3U2l6ZShuZXdXaWR0aCwgbmV3SGVpZ2h0KTsKKworICAgIG1fc2hl
bGwtPndlYlZpZXdIb3N0KCktPnNldFdpbmRvd1JlY3QoV2ViUmVjdCgwLCAwLCBuZXdTaXplLndp
ZHRoLCBuZXdTaXplLmhlaWdodCkpOworICAgIG1fc2hlbGwtPndlYlZpZXcoKS0+ZW5hYmxlQXV0
b1Jlc2l6ZU1vZGUoZmFsc2UsIG5ld1NpemUsIG5ld1NpemUpOworICAgIHJlc3VsdC0+c2V0KHRy
dWUpOworfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpudW1iZXJPZkFjdGl2ZUFuaW1h
dGlvbnMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAg
IHJlc3VsdC0+c2V0KG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IGJm
MzVmMmZkMzRmYTBmMzQ2Y2Q0MjM4ODI3ZGFmNTFkZjY0MTJkNjEuLjM3MjUxMjg4ZWU1MDEwM2My
ZmJmM2ExY2NkMzBhZmUwZjUwZTJjYTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMjQxLDYgKzI0MSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHBhdXNlVHJhbnNpdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBlbGVtZW50RG9lc0F1
dG9Db21wbGV0ZUZvckVsZW1lbnRXaXRoSWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFy
aWFudCopOwogICAgIHZvaWQgZW5hYmxlQXV0b1Jlc2l6ZU1vZGUoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgZGlzYWJsZUF1dG9SZXNpemVNb2RlKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIG51bWJlck9mQWN0aXZl
QW5pbWF0aW9ucyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9p
ZCBzdXNwZW5kQW5pbWF0aW9ucyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7
CiAgICAgdm9pZCByZXN1bWVBbmltYXRpb25zKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAyMTMzNDI3MWRmYzZlNDY3ZDg2MzFmM2IxYzVmMWZiYTcxOTVkZDA3
Li4xMTZiN2IzZjBkMmYzODZjMzE2YTI3YjE3NDI2Mzc1YTU1OGI5MDM4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTItMDEtMzEgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gQWRkIHRoZSBhYmlsaXR5IHRvIHR1cm4gb2ZmIGF1dG9yZXNp
emUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQ1
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFz
dC9hdXRvcmVzaXplL3R1cm4tb2ZmLWF1dG9yZXNpemUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2F1dG9yZXNpemUvdHVybi1vZmYtYXV0b3Jlc2l6ZS5odG1sOiBBZGRlZC4K
KwogMjAxMi0wMi0yNyAgQ2hhbmdTZW9rIE9oICA8c2hpdmFtaWRvd0BnbWFpbC5jb20+CiAKICAg
ICAgICAgW0VGTF0gU3VwcG9ydCBtdXRhdGlvbiBvYnNlcnZlcnMKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvYXV0b3Jlc2l6ZS90dXJuLW9mZi1hdXRvcmVzaXplLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvYXV0b3Jlc2l6ZS90dXJuLW9mZi1hdXRvcmVzaXplLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kYzExNDI2MDQ0MjZiYTlmNTY3YjNmZjNiMWJiYmYwODVlNTZkMTQ2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9hdXRvcmVzaXplL3R1cm4tb2Zm
LWF1dG9yZXNpemUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgdGVzdCBvbmx5
IHdvcmtzIGluIHdoZW4gcnVuIGluIGR1bXByZW5kZXJ0cmVlIGFzIGl0IHJlbGllcyBvbiBoYXZp
bmcgYXV0by1yZXNpemUgZW5hYmxlZCBpdHMgd2luZG93LiAKKworV2hlbiBpdCBzdWNjZWVkcywg
dGhlcmUgc2hvdWxkIGJlIGEgc2VyaWVzIG9mIFBBU1MgbWVzc2FnZXMgZm9sbG93ZWQgYnkgYSBE
T05FIG1lc3NhZ2UuIAorCitQQVNTOiBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoIGVxdWFsZWQg
d2luZG93LmlubmVyV2lkdGgKK1BBU1M6IGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0IGVxdWFs
ZWQgd2luZG93LmlubmVySGVpZ2h0CitQQVNTOiBkb2N1bWVudC5ib2R5LnNjcm9sbFdpZHRoIGVx
dWFsZWQgd2luZG93LmlubmVyV2lkdGgKK1BBU1M6IGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0
IGVxdWFsZWQgd2luZG93LmlubmVySGVpZ2h0CitQQVNTOiB3aW5kb3cuaW5uZXJXaWR0aCBlcXVh
bGVkIHdpbmRvdy5vdXRlcldpZHRoCitQQVNTOiB3aW5kb3cuaW5uZXJIZWlnaHQgZXF1YWxlZCB3
aW5kb3cub3V0ZXJIZWlnaHQKK1BBU1M6IHdpbmRvdy5vdXRlcldpZHRoIGVxdWFsZWQgMjAwCitQ
QVNTOiB3aW5kb3cub3V0ZXJIZWlnaHQgZXF1YWxlZCAyMDAKK1BBU1M6IHdpbmRvdy5vdXRlcldp
ZHRoIGVxdWFsZWQgMjAwCitET05FCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYXV0
b3Jlc2l6ZS90dXJuLW9mZi1hdXRvcmVzaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2F1dG9y
ZXNpemUvdHVybi1vZmYtYXV0b3Jlc2l6ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4NzA4YzAzNzgyNmU3
NmEyNGEzMmUzNTMyNjI1NTZkOTM3NjBiZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2F1dG9yZXNpemUvdHVybi1vZmYtYXV0b3Jlc2l6ZS5odG1sCkBAIC0wLDAgKzEsMzgg
QEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8c2NyaXB0IHNyYz0ncmVzb3VyY2VzL2F1dG9y
ZXNpemUtdXRpbC5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gcnVuVGVzdCgpCit7
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5lbmFibGVBdXRvUmVzaXplTW9kZSgxMCwgMTAsIDEwMDAsIDEwMDApOwor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgfQorICAgIHNo
b3VsZEJlKCdkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoJywgJ3dpbmRvdy5pbm5lcldpZHRoJyk7
CisgICAgc2hvdWxkQmUoJ2RvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0JywgJ3dpbmRvdy5pbm5l
ckhlaWdodCcpOworICAgIHNob3VsZEJlKCdkb2N1bWVudC5ib2R5LnNjcm9sbFdpZHRoJywgJ3dp
bmRvdy5pbm5lcldpZHRoJyk7CisgICAgc2hvdWxkQmUoJ2RvY3VtZW50LmJvZHkuc2Nyb2xsSGVp
Z2h0JywgJ3dpbmRvdy5pbm5lckhlaWdodCcpOworICAgIHNob3VsZEJlKCd3aW5kb3cuaW5uZXJX
aWR0aCcsICd3aW5kb3cub3V0ZXJXaWR0aCcpOworICAgIHNob3VsZEJlKCd3aW5kb3cuaW5uZXJI
ZWlnaHQnLCAnd2luZG93Lm91dGVySGVpZ2h0Jyk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZGlzYWJsZUF1dG9SZXNp
emVNb2RlKDIwMCwgMjAwKTsKKworICAgIHNob3VsZEJlKCd3aW5kb3cub3V0ZXJXaWR0aCcsIDIw
MCk7CisgICAgc2hvdWxkQmUoJ3dpbmRvdy5vdXRlckhlaWdodCcsIDIwMCk7CisgICAgZG9jdW1l
bnQuYm9keS5zdHlsZS53aWR0aCA9ICcxMDBweCc7CisgICAgc2hvdWxkQmUoJ3dpbmRvdy5vdXRl
cldpZHRoJywgMjAwKTsKKworICAgIGxvZygnRE9ORScpOworfQorPC9zY3JpcHQ+Cis8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSIgc3R5bGU9Im1hcmdpbjowOyB3aWR0aDo5MDBweCI+CitUaGlzIHRl
c3QgdmVyaWZpZXMgdGhhdCB0dXJuaW5nIG9mZiBhdXRvIHJlc2l6ZSBmdW5jdGlvbnMgY29ycmVj
dGx5LiBJdCBvbmx5IHdvcmtzIHdoZW4gcnVuIGluIGR1bXByZW5kZXJ0cmVlIGFzIGl0IHJlbGll
cyBvbiBoYXZpbmcgYXV0by1yZXNpemUgZnVuY3Rpb24gYXZhaWxhYmxlLgorPGJyPgorPGJyPgor
V2hlbiBpdCBzdWNjZWVkcywgdGhlcmUgc2hvdWxkIGJlIGEgc2VyaWVzIG9mIFBBU1MgbWVzc2Fn
ZXMgZm9sbG93ZWQgYnkgYSBET05FIG1lc3NhZ2UuCis8YnI+Cis8YnI+Cis8ZGl2IGlkPSdyZXN1
bHQnPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129336</attachid>
            <date>2012-02-28 15:05:19 -0800</date>
            <delta_ts>2012-02-28 22:52:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77452-20120228150518.patch</filename>
            <type>text/plain</type>
            <size>11448</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzllZWRkZmQ2OGFmZDc5
YmQxM2Y4ZTVmZTVjODMzOThkOTYzZTk4ZS4uYmI1NGQwZGFmZTBlNTY1ODMwZjZjZDA1ODYzMjVl
MGU4MWZiMDUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAxLTMxICBEYXZp
ZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCB0
aGUgYWJpbGl0eSB0byB0dXJuIG9mZiBhdXRvcmVzaXplLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0NTIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L2F1dG9yZXNpemUvdHVybi1vZmYt
YXV0b3Jlc2l6ZS5odG1sCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVZpZXc6OmVuYWJsZUF1dG9TaXplTW9kZSk6IEZpeCB0aGUgY29kZQor
ICAgICAgICBwYXRoIGZvciB0dXJuaW5nIG9mZiBhdXRvcmVzaXplIHRvIHNldCB0aGUgc2Nyb2xs
YmFycyB0byBhdXRvLgorCiAyMDEyLTAyLTI3ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNjcmlwdHMgbmF2aWdhdG9yIG92
ZXJsYXkgc2hvdWxkIG5vdCBjb25zdW1lIG1vdXNlIGFjdGlvbnMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IGE2ZTk0ZGY4OTQyZTM5ZGY3ODVhZDczNzk5OGNjMzQxZjVkMzk2N2UuLjY0
MDFhMDI5Yzk5OGE5ZjgxNzZmYzU4YmM1YjVjMTUxYTkyYzVmMWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDEtMzEgIERhdmlkIExldmluICA8bGV2
aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIHRoZSBhYmlsaXR5IHRv
IHR1cm4gb2ZmIGF1dG9yZXNpemUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03NzQ1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogcHVibGljL1dlYlZpZXcuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OmVuYWJsZUF1dG9SZXNpemVNb2RlKTogQWRkZWQgaW5mb3JtYXRpb24KKyAgICAgICAg
YWJvdXQgdHVybmluZyBvZmYgYXV0b3Jlc2l6ZS4KKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZW5hYmxlQXV0b1Jlc2l6ZU1vZGUp
OiBNYWtlIHR1cm5pbmcgb2ZmCisgICAgICAgIGF1dG9yZXNpemUgY2hhbmdlIHRoZSBzaXplIG9m
IHRoZSB3aW5kb3cgYW5kIHZlcmlmeSB0aGF0IHRoZQorICAgICAgICBtaW4gYW5kIG1heCBzaXpl
cyBhcmUgdGhlIHNhbWUuCisKIDIwMTItMDItMjYgIEhhamltZSBNb3JyaXRhICA8bW9ycml0YUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgTW92ZSBDaHJvbWVDbGllbnQ6OnNob3dDb250ZXh0TWVu
dSgpIHRvIENvbnRleHRNZW51Q2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXgg
MDI0YzQ4NGYwYTk5NWM0ZTQzY2Y1NjFkMWUxMDg3ODFlNmE4Nzg4Zi4uNDJjZjlkNjkzNzNkZWZh
NTQ3OTMzOGZjZDYzYmJmMzViOWM4MzM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApA
QCAtMzAyNCwxMSArMzAyNCwxNSBAQCB2b2lkIEZyYW1lVmlldzo6ZW5hYmxlQXV0b1NpemVNb2Rl
KGJvb2wgZW5hYmxlLCBjb25zdCBJbnRTaXplJiBtaW5TaXplLCBjb25zdCBJbgogICAgIG1fbWlu
QXV0b1NpemUgPSBtaW5TaXplOwogICAgIG1fbWF4QXV0b1NpemUgPSBtYXhTaXplOwogCi0gICAg
aWYgKCFtX3Nob3VsZEF1dG9TaXplKQotICAgICAgICByZXR1cm47Ci0KICAgICBzZXROZWVkc0xh
eW91dCgpOwogICAgIHNjaGVkdWxlUmVsYXlvdXQoKTsKKyAgICBpZiAobV9zaG91bGRBdXRvU2l6
ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gU2luY2UgYXV0b3NpemUgbW9kZSBmb3JjZXMg
dGhlIHNjcm9sbGJhciBtb2RlLCBjaGFuZ2UgdGhlbSB0byBiZWluZyBhdXRvLgorICAgIHNldFZl
cnRpY2FsU2Nyb2xsYmFyTG9jayhmYWxzZSk7CisgICAgc2V0SG9yaXpvbnRhbFNjcm9sbGJhckxv
Y2soZmFsc2UpOworICAgIHNldFNjcm9sbGJhck1vZGVzKFNjcm9sbGJhckF1dG8sIFNjcm9sbGJh
ckF1dG8pOwogfQogCiB2b2lkIEZyYW1lVmlldzo6Zm9yY2VMYXlvdXQoYm9vbCBhbGxvd1N1YnRy
ZWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Lmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggZWQ4NTNlMjNh
Nzc1ZGY0OWI0MTM3MGRjOWJiYzcwYjYwMGI1ZTAxNi4uZTNiMTk0ZjlhNDA2ZTk2ZGQxZTE5NTgx
NjEzYzQzNjEyNzg5M2RlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcu
aApAQCAtMjU4LDcgKzI1OCwxMCBAQCBwdWJsaWM6CiAgICAgLy8gQXV0by1SZXNpemUgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAog
ICAgIC8vIEluIGF1dG8tcmVzaXplIG1vZGUsIHRoZSB2aWV3IGlzIGF1dG9tYXRpY2FsbHkgYWRq
dXN0ZWQgdG8gZml0IHRoZSBodG1sCi0gICAgLy8gY29udGVudCB3aXRoaW4gdGhlIGdpdmVuIGJv
dW5kcy4KKyAgICAvLyBjb250ZW50IHdpdGhpbiB0aGUgZ2l2ZW4gYm91bmRzLiBXaGVuIHR1cm5p
bmcgb2ZmIGF1dG8tcmVzaXplLCB0aGUKKyAgICAvLyB0aGUgY3VycmVudCB3aW5kb3cgc2l6ZSBz
aG91bGQgYmUgZ2l2ZW4gZm9yIGJvdGggdGhlIG1pbiBhbmQgdGhlIG1heAorICAgIC8vIHNpemUu
IFRoaXMgZ2V0cyB0aGUgaG9zdCBhbmQgdGhlIHdlYiB2aWV3IGluIHN5bmMgYWJvdXQgc2l6aW5n
IHNpbmNlIHRoZQorICAgIC8vIGZsb3cgb2Ygc2l6ZSBjaGFuZ2VzIGhhcyBzd2l0Y2hlZCB0byBj
b21pbmcgZnJvbSB0aGUgaG9zdCBhZ2Fpbi4KICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlQXV0b1Jl
c2l6ZU1vZGUoCiAgICAgICAgIGJvb2wgZW5hYmxlLAogICAgICAgICBjb25zdCBXZWJTaXplJiBt
aW5TaXplLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4
IGYxNTMwMjI5ZTQ4YjQwMWYzMWEyYzVmNjE0NzVhYWMyNTgxOGEyNWIuLmNlMWM2N2ZkMTYxZGNm
Yzc2MmFkNGRiZTg1YTkzMjFmZGIyNTc2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAKQEAgLTIyNjYsNiArMjI2Niw4IEBAIHZvaWQgV2ViVmlld0ltcGw6
OmVuYWJsZUZpeGVkTGF5b3V0TW9kZShib29sIGVuYWJsZSkKIAogdm9pZCBXZWJWaWV3SW1wbDo6
ZW5hYmxlQXV0b1Jlc2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IFdlYlNpemUmIG1pblNpemUs
IGNvbnN0IFdlYlNpemUmIG1heFNpemUpCiB7CisgICAgQVNTRVJUKGVuYWJsZSB8fCBtaW5TaXpl
ID09IG1heFNpemUpOworCiAgICAgbV9zaG91bGRBdXRvUmVzaXplID0gZW5hYmxlOwogICAgIG1f
bWluQXV0b1NpemUgPSBtaW5TaXplOwogICAgIG1fbWF4QXV0b1NpemUgPSBtYXhTaXplOwpAQCAt
MjI3Myw2ICsyMjc1LDkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZW5hYmxlQXV0b1Jlc2l6ZU1vZGUo
Ym9vbCBlbmFibGUsIGNvbnN0IFdlYlNpemUmIG1pblNpemUsIGNvbnMKICAgICAgICAgcmV0dXJu
OwogCiAgICAgbWFpbkZyYW1lSW1wbCgpLT5mcmFtZSgpLT52aWV3KCktPmVuYWJsZUF1dG9TaXpl
TW9kZShtX3Nob3VsZEF1dG9SZXNpemUsIG1fbWluQXV0b1NpemUsIG1fbWF4QXV0b1NpemUpOwor
ICAgIC8vIFdoZW4gdHVybmluZyBvZmYgYXV0by1yZXNpemUsIGRvIGEgcmVzaXplIHRvIHRoZSBn
aXZlbiBzaXplLgorICAgIGlmICghbV9zaG91bGRBdXRvUmVzaXplKQorICAgICAgICByZXNpemUo
bV9taW5BdXRvU2l6ZSk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldFBhZ2VTY2FsZUZhY3Rv
ckxpbWl0cyhmbG9hdCBtaW5QYWdlU2NhbGUsIGZsb2F0IG1heFBhZ2VTY2FsZSkKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3NThkY2I2MDZmOTgz
YTBkYzYxYTEyMGNjNjQ3ODE5MjNlZWQwMTUwLi5hYWUyMDQzYTI3NGY3NTQ3NWM5Y2MwOTBhMWE1
MWQyMjdmYzc0NzhkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDEtMzEgIERhdmlkIExldmluICA8bGV2aW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIHRoZSBhYmlsaXR5IHRvIHR1
cm4gb2ZmIGF1dG9yZXNpemUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03NzQ1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVy
KTogRXhwb3NlIGEgd2F5IHRvIHR1cm4gb2ZmIGF1dG8tcmVzaXplLgorICAgICAgICAoTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmRpc2FibGVBdXRvUmVzaXplTW9kZSk6ICBEaXR0by4KKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOiBEaXR0by4K
KwogMjAxMi0wMi0yNyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZGVkIGEgdGVzdCBmb3IgPHJkYXI6Ly9wcm9ibGVtLzk1NTc1OTg+IFJFR1JFU1NJT04gKFdl
YktpdDIpOiBOb24tYWN0aXZhdGluZyBsaW5rcyBzb21ldGltZXMgZG9u4oCZdCB3b3JrCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAKaW5kZXggODQzNGY0N2RjMzQwOTBjNTlhYjIyMTgwZWE3ZTgwODlhMGZkNGNmMC4uNjk2
NWM4ODBkZDY3NGM4ZWExN2VkNGNjMzEwYTgyNzU5Y2I1NWI2OCAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAt
MTAxLDYgKzEwMSw3IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxl
cihUZXN0U2hlbGwqIHNoZWxsKQogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAgICAgYmluZE1l
dGhvZCgiZGlkTG9zZVBvaW50ZXJMb2NrIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkaWRMb3Nl
UG9pbnRlckxvY2spOwogI2VuZGlmCisgICAgYmluZE1ldGhvZCgiZGlzYWJsZUF1dG9SZXNpemVN
b2RlIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkaXNhYmxlQXV0b1Jlc2l6ZU1vZGUpOwogICAg
IGJpbmRNZXRob2QoImRpc2FibGVJbWFnZUxvYWRpbmciLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmRpc2FibGVJbWFnZUxvYWRpbmcpOwogICAgIGJpbmRNZXRob2QoImRpc3BsYXkiLCAmTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmRpc3BsYXkpOwogICAgIGJpbmRNZXRob2QoImRpc3BsYXlJbnZhbGlk
YXRlZFJlZ2lvbiIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzcGxheUludmFsaWRhdGVkUmVn
aW9uKTsKQEAgLTExMjksNiArMTEzMCwyMSBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpl
bmFibGVBdXRvUmVzaXplTW9kZShjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cwogICAg
IHJlc3VsdC0+c2V0KHRydWUpOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpkaXNh
YmxlQXV0b1Jlc2l6ZU1vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZh
cmlhbnQqIHJlc3VsdCkKK3sKKyAgICBpZiAoYXJndW1lbnRzLnNpemUoKSAhPTIpIHsKKyAgICAg
ICAgcmVzdWx0LT5zZXQoZmFsc2UpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGludCBu
ZXdXaWR0aCA9IGNwcFZhcmlhbnRUb0ludDMyKGFyZ3VtZW50c1swXSk7CisgICAgaW50IG5ld0hl
aWdodCA9IGNwcFZhcmlhbnRUb0ludDMyKGFyZ3VtZW50c1sxXSk7CisgICAgV2ViS2l0OjpXZWJT
aXplIG5ld1NpemUobmV3V2lkdGgsIG5ld0hlaWdodCk7CisKKyAgICBtX3NoZWxsLT53ZWJWaWV3
SG9zdCgpLT5zZXRXaW5kb3dSZWN0KFdlYlJlY3QoMCwgMCwgbmV3U2l6ZS53aWR0aCwgbmV3U2l6
ZS5oZWlnaHQpKTsKKyAgICBtX3NoZWxsLT53ZWJWaWV3KCktPmVuYWJsZUF1dG9SZXNpemVNb2Rl
KGZhbHNlLCBuZXdTaXplLCBuZXdTaXplKTsKKyAgICByZXN1bHQtPnNldCh0cnVlKTsKK30KKwog
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICByZXN1bHQtPnNl
dChudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCBiZjM1ZjJmZDM0ZmEw
ZjM0NmNkNDIzODgyN2RhZjUxZGY2NDEyZDYxLi4zNzI1MTI4OGVlNTAxMDNjMmZiZjNhMWNjZDMw
YWZlMGY1MGUyY2E3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTI0MSw2ICsyNDEsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBwYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZWxlbWVudERvZXNBdXRvQ29tcGxldGVG
b3JFbGVtZW50V2l0aElkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAg
ICB2b2lkIGVuYWJsZUF1dG9SZXNpemVNb2RlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKTsKKyAgICB2b2lkIGRpc2FibGVBdXRvUmVzaXplTW9kZShjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgc3VzcGVuZEFu
aW1hdGlvbnMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQg
cmVzdW1lQW5pbWF0aW9ucyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggNjQ3ZDhhMGQ4MTgxNTFjYTFlMzczMzY5NThiYzE5M2ViMTNjMGFkMS4uZGRkZjNmNDA5
ZmY2OTk3NTYyNTY4YTA3ZDY2ZTQ2NTNkYjE3NzgyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDEyLTAxLTMxICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KKworICAgICAgICBb
Y2hyb21pdW1dIEFkZCB0aGUgYWJpbGl0eSB0byB0dXJuIG9mZiBhdXRvcmVzaXplLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0NTIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvYXV0b3Jlc2l6
ZS90dXJuLW9mZi1hdXRvcmVzaXplLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9hdXRvcmVzaXplL3R1cm4tb2ZmLWF1dG9yZXNpemUuaHRtbDogQWRkZWQuCisKIDIwMTItMDIt
MjcgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlZ0V4cCBsYXN0SW5kZXggc2hvdWxkIGJlaGF2ZSBhcyBhIHJlZ3VsYXIgcHJvcGVydHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvYXV0b3Jlc2l6ZS90dXJuLW9mZi1hdXRvcmVzaXpl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvYXV0b3Jlc2l6ZS90dXJuLW9mZi1hdXRv
cmVzaXplLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zM2Q3MWE3M2U2YzkxM2RkYTYzNWRhYjQy
YjM0NDQxNzI1ODBhYWM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9hdXRv
cmVzaXplL3R1cm4tb2ZmLWF1dG9yZXNpemUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAK
K1RoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHR1cm5pbmcgb2ZmIGF1dG8gcmVzaXplIGZ1bmN0aW9u
cyBjb3JyZWN0bHkuIEl0IG9ubHkgd29ya3Mgd2hlbiBydW4gaW4gZHVtcHJlbmRlcnRyZWUgYXMg
aXQgcmVsaWVzIG9uIGhhdmluZyBhdXRvLXJlc2l6ZSBmdW5jdGlvbiBhdmFpbGFibGUuIAorCitX
aGVuIGl0IHN1Y2NlZWRzLCB0aGVyZSBzaG91bGQgYmUgYSBzZXJpZXMgb2YgUEFTUyBtZXNzYWdl
cyBmb2xsb3dlZCBieSBhIERPTkUgbWVzc2FnZS4gCisKK1BBU1M6IGRvY3VtZW50LmJvZHkuY2xp
ZW50V2lkdGggZXF1YWxlZCB3aW5kb3cuaW5uZXJXaWR0aAorUEFTUzogZG9jdW1lbnQuYm9keS5j
bGllbnRIZWlnaHQgZXF1YWxlZCB3aW5kb3cuaW5uZXJIZWlnaHQKK1BBU1M6IGRvY3VtZW50LmJv
ZHkuc2Nyb2xsV2lkdGggZXF1YWxlZCB3aW5kb3cuaW5uZXJXaWR0aAorUEFTUzogZG9jdW1lbnQu
Ym9keS5zY3JvbGxIZWlnaHQgZXF1YWxlZCB3aW5kb3cuaW5uZXJIZWlnaHQKK1BBU1M6IHdpbmRv
dy5pbm5lcldpZHRoIGVxdWFsZWQgd2luZG93Lm91dGVyV2lkdGgKK1BBU1M6IHdpbmRvdy5pbm5l
ckhlaWdodCBlcXVhbGVkIHdpbmRvdy5vdXRlckhlaWdodAorUEFTUzogd2luZG93Lm91dGVyV2lk
dGggZXF1YWxlZCAyMDAKK1BBU1M6IHdpbmRvdy5vdXRlckhlaWdodCBlcXVhbGVkIDIwMAorUEFT
Uzogd2luZG93Lm91dGVyV2lkdGggZXF1YWxlZCAyMDAKK0RPTkUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9hdXRvcmVzaXplL3R1cm4tb2ZmLWF1dG9yZXNpemUuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvYXV0b3Jlc2l6ZS90dXJuLW9mZi1hdXRvcmVzaXplLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzg3MDhjMDM3ODI2ZTc2YTI0YTMyZTM1MzI2MjU1NmQ5Mzc2MGJlNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYXV0b3Jlc2l6ZS90dXJuLW9mZi1hdXRvcmVzaXplLmh0
bWwKQEAgLTAsMCArMSwzOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxzY3JpcHQgc3Jj
PSdyZXNvdXJjZXMvYXV0b3Jlc2l6ZS11dGlsLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5j
dGlvbiBydW5UZXN0KCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmVuYWJsZUF1dG9SZXNpemVNb2RlKDEwLCAx
MCwgMTAwMCwgMTAwMCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICB9CisgICAgc2hvdWxkQmUoJ2RvY3VtZW50LmJvZHkuY2xpZW50V2lkdGgnLCAnd2lu
ZG93LmlubmVyV2lkdGgnKTsKKyAgICBzaG91bGRCZSgnZG9jdW1lbnQuYm9keS5jbGllbnRIZWln
aHQnLCAnd2luZG93LmlubmVySGVpZ2h0Jyk7CisgICAgc2hvdWxkQmUoJ2RvY3VtZW50LmJvZHku
c2Nyb2xsV2lkdGgnLCAnd2luZG93LmlubmVyV2lkdGgnKTsKKyAgICBzaG91bGRCZSgnZG9jdW1l
bnQuYm9keS5zY3JvbGxIZWlnaHQnLCAnd2luZG93LmlubmVySGVpZ2h0Jyk7CisgICAgc2hvdWxk
QmUoJ3dpbmRvdy5pbm5lcldpZHRoJywgJ3dpbmRvdy5vdXRlcldpZHRoJyk7CisgICAgc2hvdWxk
QmUoJ3dpbmRvdy5pbm5lckhlaWdodCcsICd3aW5kb3cub3V0ZXJIZWlnaHQnKTsKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kaXNhYmxlQXV0b1Jlc2l6ZU1vZGUoMjAwLCAyMDApOworCisgICAgc2hvdWxkQmUoJ3dpbmRv
dy5vdXRlcldpZHRoJywgMjAwKTsKKyAgICBzaG91bGRCZSgnd2luZG93Lm91dGVySGVpZ2h0Jywg
MjAwKTsKKyAgICBkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRoID0gJzEwMHB4JzsKKyAgICBzaG91
bGRCZSgnd2luZG93Lm91dGVyV2lkdGgnLCAyMDApOworCisgICAgbG9nKCdET05FJyk7Cit9Cis8
L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIiBzdHlsZT0ibWFyZ2luOjA7IHdpZHRo
OjkwMHB4Ij4KK1RoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHR1cm5pbmcgb2ZmIGF1dG8gcmVzaXpl
IGZ1bmN0aW9ucyBjb3JyZWN0bHkuIEl0IG9ubHkgd29ya3Mgd2hlbiBydW4gaW4gZHVtcHJlbmRl
cnRyZWUgYXMgaXQgcmVsaWVzIG9uIGhhdmluZyBhdXRvLXJlc2l6ZSBmdW5jdGlvbiBhdmFpbGFi
bGUuCis8YnI+Cis8YnI+CitXaGVuIGl0IHN1Y2NlZWRzLCB0aGVyZSBzaG91bGQgYmUgYSBzZXJp
ZXMgb2YgUEFTUyBtZXNzYWdlcyBmb2xsb3dlZCBieSBhIERPTkUgbWVzc2FnZS4KKzxicj4KKzxi
cj4KKzxkaXYgaWQ9J3Jlc3VsdCc+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129393</attachid>
            <date>2012-02-28 22:52:15 -0800</date>
            <delta_ts>2012-03-01 03:19:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77452-20120228225213.patch</filename>
            <type>text/plain</type>
            <size>13714</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzllZWRkZmQ2OGFmZDc5
YmQxM2Y4ZTVmZTVjODMzOThkOTYzZTk4ZS4uZDMzMmUyZTRmOTQ3OWUzZjA2MTM5MTI3MGRmY2I0
ZjMyNjI2NDBlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAyLTI4ICBEYXZp
ZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCB0
aGUgYWJpbGl0eSB0byB0dXJuIG9mZiBhdXRvcmVzaXplLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0NTIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L2F1dG9yZXNpemUvdHVybi1vZmYt
YXV0b3Jlc2l6ZS5odG1sCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVZpZXc6OmVuYWJsZUF1dG9TaXplTW9kZSk6IEZpeCB0aGUgY29kZQor
ICAgICAgICBwYXRoIGZvciB0dXJuaW5nIG9mZiBhdXRvcmVzaXplIHRvIHNldCB0aGUgc2Nyb2xs
YmFycyB0byBhdXRvLgorCiAyMDEyLTAyLTI3ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNjcmlwdHMgbmF2aWdhdG9yIG92
ZXJsYXkgc2hvdWxkIG5vdCBjb25zdW1lIG1vdXNlIGFjdGlvbnMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IGE2ZTk0ZGY4OTQyZTM5ZGY3ODVhZDczNzk5OGNjMzQxZjVkMzk2N2UuLmFl
M2U3YjY3NjZkZDVlYWRjNzc0NGRlNTBmOGNjNGJiMjBmNGExNDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMDItMjggIERhdmlkIExldmluICA8bGV2
aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIHRoZSBhYmlsaXR5IHRv
IHR1cm4gb2ZmIGF1dG9yZXNpemUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03NzQ1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogcHVibGljL1dlYlZpZXcuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OmVuYWJsZUF1dG9SZXNpemVNb2RlKTogQ2xlYW5lZCB1cCB0aGUgYXBpLgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZGlzYWJsZUF1dG9SZXNpemVNb2RlKTogQWRkZWQgdGhl
IGFiaWxpdHkgdG8gZGlzYWJsZSBhdXRvLXJlc2l6ZS4KKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OmVuYWJsZUF1dG9SZXNpemVNb2RlKTogRGVwcmVjYXRlZCBpdC4KKyAgICAgICAgKiBz
cmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZW5hYmxl
QXV0b1Jlc2l6ZU1vZGUpOiBBZGp1c3QgZm9yIG5ldyBhcGkuCisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpkaXNhYmxlQXV0b1Jlc2l6ZU1vZGUpOiBBbGxvdyB0dXJuaW5nIG9mZiBhdXRv
cmVzaXplLgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZW5hYmxlQXV0b1Jlc2l6ZU1v
ZGUpOiBDYWxsIHRoZSBvdGhlciB0d28gYXBpcywgYnV0CisgICAgICAgIHRoaXMgYXBpIHdpbGwg
YmUgZGVsZXRlZCBzaG9ydGx5LgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29uZmln
dXJlQXV0b1Jlc2l6ZU1vZGUpOiBDb21tb24gY29kZS4KKyAgICAgICAgKiBzcmMvV2ViVmlld0lt
cGwuaDoKKyAgICAgICAgKFdlYlZpZXdJbXBsKTogQWRqdXN0IHRvIG5ldyBwdWJsaWMgYXBpLgor
CiAyMDEyLTAyLTI2ICBIYWppbWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIE1vdmUgQ2hyb21lQ2xpZW50OjpzaG93Q29udGV4dE1lbnUoKSB0byBDb250ZXh0TWVu
dUNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDAyNGM0ODRmMGE5OTVjNGU0
M2NmNTYxZDFlMTA4NzgxZTZhODc4OGYuLjQyY2Y5ZDY5MzczZGVmYTU0NzkzMzhmY2Q2M2JiZjM1
YjljODMzOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTMwMjQsMTEgKzMwMjQs
MTUgQEAgdm9pZCBGcmFtZVZpZXc6OmVuYWJsZUF1dG9TaXplTW9kZShib29sIGVuYWJsZSwgY29u
c3QgSW50U2l6ZSYgbWluU2l6ZSwgY29uc3QgSW4KICAgICBtX21pbkF1dG9TaXplID0gbWluU2l6
ZTsKICAgICBtX21heEF1dG9TaXplID0gbWF4U2l6ZTsKIAotICAgIGlmICghbV9zaG91bGRBdXRv
U2l6ZSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgc2V0TmVlZHNMYXlvdXQoKTsKICAgICBzY2hl
ZHVsZVJlbGF5b3V0KCk7CisgICAgaWYgKG1fc2hvdWxkQXV0b1NpemUpCisgICAgICAgIHJldHVy
bjsKKworICAgIC8vIFNpbmNlIGF1dG9zaXplIG1vZGUgZm9yY2VzIHRoZSBzY3JvbGxiYXIgbW9k
ZSwgY2hhbmdlIHRoZW0gdG8gYmVpbmcgYXV0by4KKyAgICBzZXRWZXJ0aWNhbFNjcm9sbGJhckxv
Y2soZmFsc2UpOworICAgIHNldEhvcml6b250YWxTY3JvbGxiYXJMb2NrKGZhbHNlKTsKKyAgICBz
ZXRTY3JvbGxiYXJNb2RlcyhTY3JvbGxiYXJBdXRvLCBTY3JvbGxiYXJBdXRvKTsKIH0KIAogdm9p
ZCBGcmFtZVZpZXc6OmZvcmNlTGF5b3V0KGJvb2wgYWxsb3dTdWJ0cmVlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCmluZGV4IGVkODUzZTIzYTc3NWRmNDliNDEzNzBkYzli
YmM3MGI2MDBiNWUwMTYuLjlkNWNhODk0NDIyZmViMDAyMGM0OTk0MDljNjEyM2UxZDFjNTEzZjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKQEAgLTI2MCwxMCArMjYw
LDE3IEBAIHB1YmxpYzoKICAgICAvLyBJbiBhdXRvLXJlc2l6ZSBtb2RlLCB0aGUgdmlldyBpcyBh
dXRvbWF0aWNhbGx5IGFkanVzdGVkIHRvIGZpdCB0aGUgaHRtbAogICAgIC8vIGNvbnRlbnQgd2l0
aGluIHRoZSBnaXZlbiBib3VuZHMuCiAgICAgdmlydHVhbCB2b2lkIGVuYWJsZUF1dG9SZXNpemVN
b2RlKAotICAgICAgICBib29sIGVuYWJsZSwKICAgICAgICAgY29uc3QgV2ViU2l6ZSYgbWluU2l6
ZSwKICAgICAgICAgY29uc3QgV2ViU2l6ZSYgbWF4U2l6ZSkgPSAwOwogCisgICAgLy8gVHVybiBv
ZmYgYXV0by1yZXNpemUuCisgICAgdmlydHVhbCB2b2lkIGRpc2FibGVBdXRvUmVzaXplTW9kZSgp
ID0gMDsKKworICAgIC8vIERFUFJFQ0FURUQKKyAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlQXV0b1Jl
c2l6ZU1vZGUoCisgICAgICAgIGJvb2wgZW5hYmxlLAorICAgICAgICBjb25zdCBXZWJTaXplJiBt
aW5TaXplLAorICAgICAgICBjb25zdCBXZWJTaXplJiBtYXhTaXplKSA9IDA7CiAKICAgICAvLyBN
ZWRpYSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
CmluZGV4IGYxNTMwMjI5ZTQ4YjQwMWYzMWEyYzVmNjE0NzVhYWMyNTgxOGEyNWIuLmM2YjJkOTkw
MzcwYzMyZDI2ZGEwZGQzNTBiNTQxODU5YmNhZWU4NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTIyNjQsMTUgKzIyNjQsMjcgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6ZW5hYmxlRml4ZWRMYXlvdXRNb2RlKGJvb2wgZW5hYmxlKQogI2VuZGlmCiB9CiAK
LXZvaWQgV2ViVmlld0ltcGw6OmVuYWJsZUF1dG9SZXNpemVNb2RlKGJvb2wgZW5hYmxlLCBjb25z
dCBXZWJTaXplJiBtaW5TaXplLCBjb25zdCBXZWJTaXplJiBtYXhTaXplKQorCit2b2lkIFdlYlZp
ZXdJbXBsOjplbmFibGVBdXRvUmVzaXplTW9kZShjb25zdCBXZWJTaXplJiBtaW5TaXplLCBjb25z
dCBXZWJTaXplJiBtYXhTaXplKQogewotICAgIG1fc2hvdWxkQXV0b1Jlc2l6ZSA9IGVuYWJsZTsK
KyAgICBtX3Nob3VsZEF1dG9SZXNpemUgPSB0cnVlOwogICAgIG1fbWluQXV0b1NpemUgPSBtaW5T
aXplOwogICAgIG1fbWF4QXV0b1NpemUgPSBtYXhTaXplOwotICAgIGlmICghbWFpbkZyYW1lSW1w
bCgpIHx8ICFtYWluRnJhbWVJbXBsKCktPmZyYW1lKCkgfHwgIW1haW5GcmFtZUltcGwoKS0+ZnJh
bWUoKS0+dmlldygpKQotICAgICAgICByZXR1cm47CisgICAgY29uZmlndXJlQXV0b1Jlc2l6ZU1v
ZGUoKTsKK30KIAotICAgIG1haW5GcmFtZUltcGwoKS0+ZnJhbWUoKS0+dmlldygpLT5lbmFibGVB
dXRvU2l6ZU1vZGUobV9zaG91bGRBdXRvUmVzaXplLCBtX21pbkF1dG9TaXplLCBtX21heEF1dG9T
aXplKTsKK3ZvaWQgV2ViVmlld0ltcGw6OmRpc2FibGVBdXRvUmVzaXplTW9kZSgpCit7CisgICAg
bV9zaG91bGRBdXRvUmVzaXplID0gZmFsc2U7CisgICAgY29uZmlndXJlQXV0b1Jlc2l6ZU1vZGUo
KTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6ZW5hYmxlQXV0b1Jlc2l6ZU1vZGUoYm9vbCBlbmFi
bGUsIGNvbnN0IFdlYlNpemUmIG1pblNpemUsIGNvbnN0IFdlYlNpemUmIG1heFNpemUpCit7Cisg
ICAgaWYgKGVuYWJsZSkKKyAgICAgICAgZW5hYmxlQXV0b1Jlc2l6ZU1vZGUoZW5hYmxlLCBtaW5T
aXplLCBtYXhTaXplKTsKKyAgICBlbHNlCisgICAgICAgIGRpc2FibGVBdXRvUmVzaXplTW9kZSgp
OwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMoZmxvYXQg
bWluUGFnZVNjYWxlLCBmbG9hdCBtYXhQYWdlU2NhbGUpCkBAIC0yNTg1LDYgKzI1OTcsMTQgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6c2VuZFJlc2l6ZUV2ZW50QW5kUmVwYWludCgpCiAgICAgfQogfQog
Cit2b2lkIFdlYlZpZXdJbXBsOjpjb25maWd1cmVBdXRvUmVzaXplTW9kZSgpCit7CisgICAgaWYg
KCFtYWluRnJhbWVJbXBsKCkgfHwgIW1haW5GcmFtZUltcGwoKS0+ZnJhbWUoKSB8fCAhbWFpbkZy
YW1lSW1wbCgpLT5mcmFtZSgpLT52aWV3KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1haW5G
cmFtZUltcGwoKS0+ZnJhbWUoKS0+dmlldygpLT5lbmFibGVBdXRvU2l6ZU1vZGUobV9zaG91bGRB
dXRvUmVzaXplLCBtX21pbkF1dG9TaXplLCBtX21heEF1dG9TaXplKTsKK30KKwogdW5zaWduZWQg
bG9uZyBXZWJWaWV3SW1wbDo6Y3JlYXRlVW5pcXVlSWRlbnRpZmllckZvclJlcXVlc3QoKQogewog
ICAgIGlmIChtX3BhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApp
bmRleCBjYWM2ZDQ4ODI4Y2FmMTBmZmU0NDY4ZmEyZDlkZWJkODExYjk1MTVhLi5jYmYxYTUzZTFh
OWY4MjI5ZjUwMTY0NmY1N2Y3YzU5YjNmMzIyYzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmgKQEAgLTE4OCw2ICsxODgsMTAgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgV2ViU2l6ZSBmaXhlZExheW91dFNpemUoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
Rml4ZWRMYXlvdXRTaXplKGNvbnN0IFdlYlNpemUmKTsKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxl
QXV0b1Jlc2l6ZU1vZGUoCisgICAgICAgIGNvbnN0IFdlYlNpemUmIG1pblNpemUsCisgICAgICAg
IGNvbnN0IFdlYlNpemUmIG1heFNpemUpOworICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlQXV0b1Jl
c2l6ZU1vZGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlQXV0b1Jlc2l6ZU1vZGUoCiAgICAg
ICAgIGJvb2wgZW5hYmxlLAogICAgICAgICBjb25zdCBXZWJTaXplJiBtaW5TaXplLAogICAgICAg
ICBjb25zdCBXZWJTaXplJiBtYXhTaXplKTsKQEAgLTUzNCw2ICs1MzgsNyBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEcmFnQWN0aW9u
KTsKIAogICAgIHZvaWQgc2VuZFJlc2l6ZUV2ZW50QW5kUmVwYWludCgpOworICAgIHZvaWQgY29u
ZmlndXJlQXV0b1Jlc2l6ZU1vZGUoKTsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKICAgICB2b2lkIHNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShib29sKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3NThkY2I2
MDZmOTgzYTBkYzYxYTEyMGNjNjQ3ODE5MjNlZWQwMTUwLi5kYWZmZDY3NTVmOWI3MTc0ZmNiMjk1
M2IxZTEwYjg5YWE5NTE0OTYxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDItMjggIERhdmlkIExldmluICA8
bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIHRoZSBhYmlsaXR5
IHRvIHR1cm4gb2ZmIGF1dG9yZXNpemUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03NzQ1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250
cm9sbGVyKTogRXhwb3NlIGEgd2F5IHRvIHR1cm4gb2ZmIGF1dG8tcmVzaXplLgorICAgICAgICAo
TGF5b3V0VGVzdENvbnRyb2xsZXI6OmVuYWJsZUF1dG9SZXNpemVNb2RlKTogRGl0dG8gYW5kIGFk
anVzdCB0byBuZXcgV2ViS2l0IGFwaS4KKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpk
aXNhYmxlQXV0b1Jlc2l6ZU1vZGUpOiAgRGl0dG8uCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaDogRGl0dG8uCisKIDIwMTItMDItMjcgIERh
biBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGRlZCBhIHRlc3QgZm9y
IDxyZGFyOi8vcHJvYmxlbS85NTU3NTk4PiBSRUdSRVNTSU9OIChXZWJLaXQyKTogTm9uLWFjdGl2
YXRpbmcgbGlua3Mgc29tZXRpbWVzIGRvbuKAmXQgd29yawpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDg0MzRm
NDdkYzM0MDkwYzU5YWIyMjE4MGVhN2U4MDg5YTBmZDRjZjAuLjIxNTg0ZGY0ZGQzZDM2ZmJlNjUy
ZjljNDQ3Y2Y3NjliMzZlMjFjN2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTEwMSw2ICsxMDEsNyBAQCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVs
bCkKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIGJpbmRNZXRob2QoImRpZExvc2VQb2lu
dGVyTG9jayIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlkTG9zZVBvaW50ZXJMb2NrKTsKICNl
bmRpZgorICAgIGJpbmRNZXRob2QoImRpc2FibGVBdXRvUmVzaXplTW9kZSIsICZMYXlvdXRUZXN0
Q29udHJvbGxlcjo6ZGlzYWJsZUF1dG9SZXNpemVNb2RlKTsKICAgICBiaW5kTWV0aG9kKCJkaXNh
YmxlSW1hZ2VMb2FkaW5nIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkaXNhYmxlSW1hZ2VMb2Fk
aW5nKTsKICAgICBiaW5kTWV0aG9kKCJkaXNwbGF5IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpk
aXNwbGF5KTsKICAgICBiaW5kTWV0aG9kKCJkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24iLCAmTGF5
b3V0VGVzdENvbnRyb2xsZXI6OmRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbik7CkBAIC0xMTI1LDcg
KzExMjYsMjMgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZW5hYmxlQXV0b1Jlc2l6ZU1v
ZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMKICAgICBpbnQgbWF4SGVpZ2h0ID0g
Y3BwVmFyaWFudFRvSW50MzIoYXJndW1lbnRzWzNdKTsKICAgICBXZWJLaXQ6OldlYlNpemUgbWF4
U2l6ZShtYXhXaWR0aCwgbWF4SGVpZ2h0KTsKIAotICAgIG1fc2hlbGwtPndlYlZpZXcoKS0+ZW5h
YmxlQXV0b1Jlc2l6ZU1vZGUodHJ1ZSwgbWluU2l6ZSwgbWF4U2l6ZSk7CisgICAgbV9zaGVsbC0+
d2ViVmlldygpLT5lbmFibGVBdXRvUmVzaXplTW9kZShtaW5TaXplLCBtYXhTaXplKTsKKyAgICBy
ZXN1bHQtPnNldCh0cnVlKTsKK30KKwordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzYWJs
ZUF1dG9SZXNpemVNb2RlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJp
YW50KiByZXN1bHQpCit7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgIT0yKSB7CisgICAgICAg
IHJlc3VsdC0+c2V0KGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpbnQgbmV3
V2lkdGggPSBjcHBWYXJpYW50VG9JbnQzMihhcmd1bWVudHNbMF0pOworICAgIGludCBuZXdIZWln
aHQgPSBjcHBWYXJpYW50VG9JbnQzMihhcmd1bWVudHNbMV0pOworICAgIFdlYktpdDo6V2ViU2l6
ZSBuZXdTaXplKG5ld1dpZHRoLCBuZXdIZWlnaHQpOworCisgICAgbV9zaGVsbC0+d2ViVmlld0hv
c3QoKS0+c2V0V2luZG93UmVjdChXZWJSZWN0KDAsIDAsIG5ld1NpemUud2lkdGgsIG5ld1NpemUu
aGVpZ2h0KSk7CisgICAgbV9zaGVsbC0+d2ViVmlldygpLT5kaXNhYmxlQXV0b1Jlc2l6ZU1vZGUo
KTsKKyAgICBtX3NoZWxsLT53ZWJWaWV3KCktPnJlc2l6ZShuZXdTaXplKTsKICAgICByZXN1bHQt
PnNldCh0cnVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggYmYzNWYyZmQzNGZhMGYzNDZjZDQyMzg4Mjdk
YWY1MWRmNjQxMmQ2MS4uMzcyNTEyODhlZTUwMTAzYzJmYmYzYTFjY2QzMGFmZTBmNTBlMmNhNyAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oCkBAIC0yNDEsNiArMjQxLDcgQEAgcHVibGljOgogICAgIHZvaWQgcGF1c2VUcmFu
c2l0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKTsKICAgICB2b2lkIGVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJ
ZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBlbmFibGVB
dXRvUmVzaXplTW9kZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAg
dm9pZCBkaXNhYmxlQXV0b1Jlc2l6ZU1vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFy
aWFudCopOwogICAgIHZvaWQgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIHJlc3VtZUFuaW1hdGlv
bnMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY0N2Q4YTBk
ODE4MTUxY2ExZTM3MzM2OTU4YmMxOTNlYjEzYzBhZDEuLjE0OWM5MGRiYzU0MTcxZjViNGI1YjRh
MDA0N2UxY2Q2MTM5NWFiMzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMi0yOCAgRGF2
aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQg
dGhlIGFiaWxpdHkgdG8gdHVybiBvZmYgYXV0b3Jlc2l6ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2F1dG9yZXNpemUvdHVybi1vZmYtYXV0
b3Jlc2l6ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvYXV0b3Jlc2l6ZS90
dXJuLW9mZi1hdXRvcmVzaXplLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAyLTI3ICBHYXZpbiBCYXJy
YWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWdFeHAgbGFzdElu
ZGV4IHNob3VsZCBiZWhhdmUgYXMgYSByZWd1bGFyIHByb3BlcnR5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2F1dG9yZXNpemUvdHVybi1vZmYtYXV0b3Jlc2l6ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2F1dG9yZXNpemUvdHVybi1vZmYtYXV0b3Jlc2l6ZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzNkNzFhNzNlNmM5MTNkZGE2MzVkYWI0MmIzNDQ0MTcyNTgwYWFj
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvYXV0b3Jlc2l6ZS90dXJuLW9m
Zi1hdXRvcmVzaXplLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitUaGlzIHRlc3QgdmVy
aWZpZXMgdGhhdCB0dXJuaW5nIG9mZiBhdXRvIHJlc2l6ZSBmdW5jdGlvbnMgY29ycmVjdGx5LiBJ
dCBvbmx5IHdvcmtzIHdoZW4gcnVuIGluIGR1bXByZW5kZXJ0cmVlIGFzIGl0IHJlbGllcyBvbiBo
YXZpbmcgYXV0by1yZXNpemUgZnVuY3Rpb24gYXZhaWxhYmxlLiAKKworV2hlbiBpdCBzdWNjZWVk
cywgdGhlcmUgc2hvdWxkIGJlIGEgc2VyaWVzIG9mIFBBU1MgbWVzc2FnZXMgZm9sbG93ZWQgYnkg
YSBET05FIG1lc3NhZ2UuIAorCitQQVNTOiBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoIGVxdWFs
ZWQgd2luZG93LmlubmVyV2lkdGgKK1BBU1M6IGRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0IGVx
dWFsZWQgd2luZG93LmlubmVySGVpZ2h0CitQQVNTOiBkb2N1bWVudC5ib2R5LnNjcm9sbFdpZHRo
IGVxdWFsZWQgd2luZG93LmlubmVyV2lkdGgKK1BBU1M6IGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVp
Z2h0IGVxdWFsZWQgd2luZG93LmlubmVySGVpZ2h0CitQQVNTOiB3aW5kb3cuaW5uZXJXaWR0aCBl
cXVhbGVkIHdpbmRvdy5vdXRlcldpZHRoCitQQVNTOiB3aW5kb3cuaW5uZXJIZWlnaHQgZXF1YWxl
ZCB3aW5kb3cub3V0ZXJIZWlnaHQKK1BBU1M6IHdpbmRvdy5vdXRlcldpZHRoIGVxdWFsZWQgMjAw
CitQQVNTOiB3aW5kb3cub3V0ZXJIZWlnaHQgZXF1YWxlZCAyMDAKK1BBU1M6IHdpbmRvdy5vdXRl
cldpZHRoIGVxdWFsZWQgMjAwCitET05FCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
YXV0b3Jlc2l6ZS90dXJuLW9mZi1hdXRvcmVzaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2F1
dG9yZXNpemUvdHVybi1vZmYtYXV0b3Jlc2l6ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4NzA4YzAzNzgy
NmU3NmEyNGEzMmUzNTMyNjI1NTZkOTM3NjBiZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2F1dG9yZXNpemUvdHVybi1vZmYtYXV0b3Jlc2l6ZS5odG1sCkBAIC0wLDAgKzEs
MzggQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8c2NyaXB0IHNyYz0ncmVzb3VyY2VzL2F1
dG9yZXNpemUtdXRpbC5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gcnVuVGVzdCgp
Cit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5lbmFibGVBdXRvUmVzaXplTW9kZSgxMCwgMTAsIDEwMDAsIDEwMDAp
OworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgfQorICAg
IHNob3VsZEJlKCdkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoJywgJ3dpbmRvdy5pbm5lcldpZHRo
Jyk7CisgICAgc2hvdWxkQmUoJ2RvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0JywgJ3dpbmRvdy5p
bm5lckhlaWdodCcpOworICAgIHNob3VsZEJlKCdkb2N1bWVudC5ib2R5LnNjcm9sbFdpZHRoJywg
J3dpbmRvdy5pbm5lcldpZHRoJyk7CisgICAgc2hvdWxkQmUoJ2RvY3VtZW50LmJvZHkuc2Nyb2xs
SGVpZ2h0JywgJ3dpbmRvdy5pbm5lckhlaWdodCcpOworICAgIHNob3VsZEJlKCd3aW5kb3cuaW5u
ZXJXaWR0aCcsICd3aW5kb3cub3V0ZXJXaWR0aCcpOworICAgIHNob3VsZEJlKCd3aW5kb3cuaW5u
ZXJIZWlnaHQnLCAnd2luZG93Lm91dGVySGVpZ2h0Jyk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZGlzYWJsZUF1dG9S
ZXNpemVNb2RlKDIwMCwgMjAwKTsKKworICAgIHNob3VsZEJlKCd3aW5kb3cub3V0ZXJXaWR0aCcs
IDIwMCk7CisgICAgc2hvdWxkQmUoJ3dpbmRvdy5vdXRlckhlaWdodCcsIDIwMCk7CisgICAgZG9j
dW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICcxMDBweCc7CisgICAgc2hvdWxkQmUoJ3dpbmRvdy5v
dXRlcldpZHRoJywgMjAwKTsKKworICAgIGxvZygnRE9ORScpOworfQorPC9zY3JpcHQ+Cis8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSIgc3R5bGU9Im1hcmdpbjowOyB3aWR0aDo5MDBweCI+CitUaGlz
IHRlc3QgdmVyaWZpZXMgdGhhdCB0dXJuaW5nIG9mZiBhdXRvIHJlc2l6ZSBmdW5jdGlvbnMgY29y
cmVjdGx5LiBJdCBvbmx5IHdvcmtzIHdoZW4gcnVuIGluIGR1bXByZW5kZXJ0cmVlIGFzIGl0IHJl
bGllcyBvbiBoYXZpbmcgYXV0by1yZXNpemUgZnVuY3Rpb24gYXZhaWxhYmxlLgorPGJyPgorPGJy
PgorV2hlbiBpdCBzdWNjZWVkcywgdGhlcmUgc2hvdWxkIGJlIGEgc2VyaWVzIG9mIFBBU1MgbWVz
c2FnZXMgZm9sbG93ZWQgYnkgYSBET05FIG1lc3NhZ2UuCis8YnI+Cis8YnI+Cis8ZGl2IGlkPSdy
ZXN1bHQnPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129675</attachid>
            <date>2012-03-01 03:20:02 -0800</date>
            <delta_ts>2012-03-01 09:15:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77452-20120301202000.patch</filename>
            <type>text/plain</type>
            <size>1775</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDg5ZDlmZDMyMjg4MDU1NWIxN2M2OTE3NjBjYjY2NjNjNzEyMzVlY2YuLmI3ZWZkNjNiYjE5NDY0
ZDBhNTYxYmEzM2U4ZTExNjJmNWVjYjdjMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTItMDMtMDEgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjEwOTI4OCk6IFdlYlZpZXdJbXBsOjplbmFi
bGVBdXRvUmVzaXplTW9kZSBsb29wcyBpbmZpbml0ZWx5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzQ1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYlZpZXdJbXBsOjplbmFibGVBdXRvUmVzaXplTW9k
ZSBsb29wcyBpbmZpbml0ZWx5LgorICAgICAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBmb2xsb3dp
bmcgbGluZToKKworICAgICAgICAgICAgZW5hYmxlQXV0b1Jlc2l6ZU1vZGUoZW5hYmxlLCBtaW5T
aXplLCBtYXhTaXplKTsKKworICAgICAgICB0bworICAgICAgICAgICAgZW5hYmxlQXV0b1Jlc2l6
ZU1vZGUobWluU2l6ZSwgbWF4U2l6ZSk7CisKKyAgICAgICAgdG8gYXZvaWQgdGhlIGluZmluaXRl
IGxvb3AuIEkgZ3Vlc3MgdGhpcyBpcyB0aGUgY2hhbmdlIG9yaWdpbmFsbHkgaW50ZW5kZWQuCisK
KyAgICAgICAgVGVzdDogd2Via2l0X3VuaXRfdGVzdHMuV2ViVmlld1Rlc3QuQXV0b1Jlc2l6ZU1p
bmltdW1TaXplCisKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6ZW5hYmxlQXV0b1Jlc2l6ZU1vZGUpOgorCiAyMDEyLTAyLTI5ICBK
YW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21p
dW1dIEZpeCBuYXZpZ2F0aW9uIHN0YXJ0IHRpbWUgb24gY3Jvc3MtcmVuZGVyZXIgbmF2aWdhdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGM2YjJk
OTkwMzcwYzMyZDI2ZGEwZGQzNTBiNTQxODU5YmNhZWU4NDMuLmQ3YzY1NGE2ZTQ4MzJjZDE4ODdh
YzYxYmI3ZGUwNzU4ZjNkMTg2NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAKQEAgLTIyODIsNyArMjI4Miw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpc2Fi
bGVBdXRvUmVzaXplTW9kZSgpCiB2b2lkIFdlYlZpZXdJbXBsOjplbmFibGVBdXRvUmVzaXplTW9k
ZShib29sIGVuYWJsZSwgY29uc3QgV2ViU2l6ZSYgbWluU2l6ZSwgY29uc3QgV2ViU2l6ZSYgbWF4
U2l6ZSkKIHsKICAgICBpZiAoZW5hYmxlKQotICAgICAgICBlbmFibGVBdXRvUmVzaXplTW9kZShl
bmFibGUsIG1pblNpemUsIG1heFNpemUpOworICAgICAgICBlbmFibGVBdXRvUmVzaXplTW9kZSht
aW5TaXplLCBtYXhTaXplKTsKICAgICBlbHNlCiAgICAgICAgIGRpc2FibGVBdXRvUmVzaXplTW9k
ZSgpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>