<?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>90641</bug_id>
          
          <creation_ts>2012-07-05 15:59:50 -0700</creation_ts>
          <short_desc>[Qt] QRawWebView should notify when rendering is done, so that pixel results can be grabbed at the appropriate moment.</short_desc>
          <delta_ts>2012-07-11 10:50:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>90394</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Noam Rosenthal">noam</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>jturcotte</cc>
    
    <cc>kbalazs</cc>
    
    <cc>luiz</cc>
    
    <cc>menard</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>663763</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-05 15:59:50 -0700</bug_when>
    <thetext>[Qt] QRawWebView should notify when rendering is done, so that pixel results can be grabbed at the appropriate moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663766</commentid>
    <comment_count>1</comment_count>
      <attachid>150996</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-05 16:08:45 -0700</bug_when>
    <thetext>Created attachment 150996
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663823</commentid>
    <comment_count>2</comment_count>
      <attachid>150996</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-07-05 18:39:24 -0700</bug_when>
    <thetext>Comment on attachment 150996
Patch

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

&gt; Source/WebKit2/UIProcess/API/qt/raw/qrawwebview.cpp:284
&gt; +}
&gt; +
&gt; +

one too many newlines

&gt; Source/WebKit2/UIProcess/API/qt/raw/qrawwebview.cpp:407
&gt; +    m_client-&gt;viewRenderedFrame();

view-rendered frame? maybe viewDidRenderFrame is more descriptive

&gt; Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p.h:57
&gt; +    virtual void viewNeedsDisplay(const QRect&amp;) { }
&gt; +    virtual void viewRequestedScroll(const QPoint&amp;) { }
&gt; +    virtual void viewProcessCrashed() { }
&gt; +    virtual void viewRenderedFrame() { }
&gt; +    virtual void viewProcessRelaunched() { }
&gt; +    virtual void viewContentSizeChanged(const QSize&amp;) { }

Ah I see you are using it [view] as a namespace, hmm

&gt; Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp:128
&gt; +    QCryptographicHash hash(QCryptographicHash::Md5);
&gt; +    for (unsigned row = 0; row &lt; image.height(); ++row)
&gt; +        hash.addData(reinterpret_cast&lt;const char*&gt;(image.constScanLine(row)), image.bytesPerLine());

Good idea, but what about fuzzyness? These have to be strictly the same?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663839</commentid>
    <comment_count>3</comment_count>
      <attachid>150996</attachid>
    <who name="Luiz Agostini">luiz</who>
    <bug_when>2012-07-05 19:27:13 -0700</bug_when>
    <thetext>Comment on attachment 150996
Patch

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

&gt; Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p_p.h:34
&gt; +class QRawWebViewPrivate : public WebKit::PageClient, public virtual WebKit::LayerTreeCoordinatorProxy::Observer {

Why to use virtual inheritance?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663887</commentid>
    <comment_count>4</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-05 22:17:17 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 150996 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=150996&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/raw/qrawwebview_p_p.h:34
&gt; &gt; +class QRawWebViewPrivate : public WebKit::PageClient, public virtual WebKit::LayerTreeCoordinatorProxy::Observer {
&gt; 
&gt; Why to use virtual inheritance?

Old habit when i use multiple inheritance... doesn&apos;t really matter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663888</commentid>
    <comment_count>5</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-05 22:17:59 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; &gt; Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp:128
&gt; &gt; +    QCryptographicHash hash(QCryptographicHash::Md5);
&gt; &gt; +    for (unsigned row = 0; row &lt; image.height(); ++row)
&gt; &gt; +        hash.addData(reinterpret_cast&lt;const char*&gt;(image.constScanLine(row)), image.bytesPerLine());
&gt; 
&gt; Good idea, but what about fuzzyness? These have to be strictly the same?

I think maybe I&apos;ll leave this to another patch. We need a better way to test this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663937</commentid>
    <comment_count>6</comment_count>
      <attachid>150996</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-07-06 01:22:16 -0700</bug_when>
    <thetext>Comment on attachment 150996
Patch

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

&gt; Source/WebKit2/ChangeLog:11
&gt; +        Allow QRawWebViewClient to receive a notification when rendering is done (DidRenderFrame),
&gt; +        and allow QRawWebView to send a message to the web process to render a new frame
&gt; +        programmatically, by exposing LayerTreeCoordinator::scheduleLayerFlush via a WebKit2
&gt; +        message.

You might have issues that scheduleLayerFlush will not always return you a DidRenderFrame, i.e. if any of the early returns are hit in LayerTreeCoordinator::performScheduledLayerFlush.
If m_isSuspended, m_waitingForUIProcess are true, or if there was nothing dirty and m_shouldSyncFrame wasn&apos;t set to true.
It feels that if notifyDone is called inside a timer where no document modification was done, you could still wait infinitely while grabbing.

&gt; Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp:119
&gt;  void WebView::finishLoadForFrame(WKPageRef page, WKFrameRef frame, WKTypeRef userData, const void *clientInfo)
&gt;  {

`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663974</commentid>
    <comment_count>7</comment_count>
      <attachid>150996</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-07-06 02:47:51 -0700</bug_when>
    <thetext>Comment on attachment 150996
Patch

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

&gt; Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp:100
&gt; +    virtual void viewRenderedFrame()
&gt; +    {
&gt;          if (m_frameLoaded)
&gt;              emit loaded();
&gt;      }

Shouldn&apos;t we actually paint here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664087</commentid>
    <comment_count>8</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-06 06:59:07 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 150996 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=150996&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:11
&gt; &gt; +        Allow QRawWebViewClient to receive a notification when rendering is done (DidRenderFrame),
&gt; &gt; +        and allow QRawWebView to send a message to the web process to render a new frame
&gt; &gt; +        programmatically, by exposing LayerTreeCoordinator::scheduleLayerFlush via a WebKit2
&gt; &gt; +        message.
&gt; 
&gt; You might have issues that scheduleLayerFlush will not always return you a DidRenderFrame, i.e. if any of the early returns are hit in LayerTreeCoordinator::performScheduledLayerFlush.
&gt; If m_isSuspended, m_waitingForUIProcess are true, or if there was nothing dirty and m_shouldSyncFrame wasn&apos;t set to true.
You&apos;re right, I need to send a NothingToRender in the case when m_shouldSyncFrame is false. m_waitingForUIProcess is not a problem because another flush would be trigger in the next RenderNextFrame call, and m_isSuspended should not be on during a grab - I think it&apos;s safe to wait to the next DidRenderFrame that would happen after the next resume.

&gt; It feels that if notifyDone is called inside a timer where no document modification was done, you could still wait infinitely while grabbing.
&gt; 
Right, I still need the NothingToRender event or something similar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664088</commentid>
    <comment_count>9</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-06 06:59:24 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 150996 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=150996&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/tests/qrawwebview/tst_qrawwebview.cpp:100
&gt; &gt; +    virtual void viewRenderedFrame()
&gt; &gt; +    {
&gt; &gt;          if (m_frameLoaded)
&gt; &gt;              emit loaded();
&gt; &gt;      }
&gt; 
&gt; Shouldn&apos;t we actually paint here?

No need, since we already paint on viewNeedsDisplay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664099</commentid>
    <comment_count>10</comment_count>
      <attachid>150996</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-06 07:20:22 -0700</bug_when>
    <thetext>Comment on attachment 150996
Patch

Clearing flags, working on a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664138</commentid>
    <comment_count>11</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-07-06 09:30:23 -0700</bug_when>
    <thetext>Just for the record: I tried but could not get reliable pixel results with the patch. I tried it like this: https://gist.github.com/3061148. It was working for a few basic tests when I called wtr from the command line, also with old-run-webkit-tests, but not with new-run-webkit-tests. Even by programatically saving the pixel result to file the results in nrwt was different (empty blackness). I could not find anything about nrwt that could cause this, so I guess the method provided by the patch here is still not very reliable (but I&apos;m still very puzzled about the fact that it works with one test harness and not with another).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664492</commentid>
    <comment_count>12</comment_count>
      <attachid>151164</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-08 12:36:54 -0700</bug_when>
    <thetext>Created attachment 151164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664868</commentid>
    <comment_count>13</comment_count>
      <attachid>151164</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-09 08:01:41 -0700</bug_when>
    <thetext>Comment on attachment 151164
Patch

There&apos;s a problem with this patch, clearing flags for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664990</commentid>
    <comment_count>14</comment_count>
      <attachid>151277</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-09 10:53:47 -0700</bug_when>
    <thetext>Created attachment 151277
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665619</commentid>
    <comment_count>15</comment_count>
      <attachid>151277</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-07-10 03:24:40 -0700</bug_when>
    <thetext>Comment on attachment 151277
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:178
&gt;      scheduleLayerFlush();
&gt; +    flushPendingLayerChanges();

Why both?

&gt; Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:242
&gt; +    didSync = didSync || m_shouldSyncFrame;

Is it a good idea to mix those two? syncCompositingStateIncludingSubframes can return true even if no modification was made to layers I think, and this would send DidRenderFrame messages unnecessarily.

&gt; Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.h:136
&gt; +    bool m_isPerformingLayerFlush;

Unused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665697</commentid>
    <comment_count>16</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-10 06:07:12 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 151277 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=151277&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:178
&gt; &gt;      scheduleLayerFlush();
&gt; &gt; +    flushPendingLayerChanges();
&gt; 
&gt; Why both?
I&apos;m not sure. This code is copied from GraphicsLayerCA.

&gt; &gt; Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:242
&gt; &gt; +    didSync = didSync || m_shouldSyncFrame;
&gt; 
&gt; Is it a good idea to mix those two? syncCompositingStateIncludingSubframes can return true even if no modification was made to layers I think, and this would send DidRenderFrame messages unnecessarily.

You&apos;re right. I&apos;ll fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665893</commentid>
    <comment_count>17</comment_count>
      <attachid>151490</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-10 11:14:20 -0700</bug_when>
    <thetext>Created attachment 151490
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665936</commentid>
    <comment_count>18</comment_count>
      <attachid>151490</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-07-10 12:05:41 -0700</bug_when>
    <thetext>Comment on attachment 151490
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:238
&gt; +    m_shouldSyncFrame = false;

I don&apos;t think that m_shouldSyncFrame should now be checked only for non-composited contents. This will have the effect of not sending a DidRenderFrame message if a tile was updated only in a composited layer.

&gt; Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:258
&gt; +    m_waitingForUIProcess = true;

m_waitingForUIProcess state changes have to be in sync with DidRenderFrame messages, it would be clearer to update it within the same scope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666009</commentid>
    <comment_count>19</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-10 13:46:09 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 151490 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=151490&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:238
&gt; &gt; +    m_shouldSyncFrame = false;
&gt; 
&gt; I don&apos;t think that m_shouldSyncFrame should now be checked only for non-composited contents. This will have the effect of not sending a DidRenderFrame message if a tile was updated only in a composited layer.
&gt;
We set m_shouldSyncFrame for every tile update. That hasn&apos;t changed in this patch, or I don&apos;t understand your comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666020</commentid>
    <comment_count>20</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-10 13:50:21 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; &gt; (From update of attachment 151490 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=151490&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:238
&gt; &gt; &gt; +    m_shouldSyncFrame = false;
&gt; &gt; 
&gt; &gt; I don&apos;t think that m_shouldSyncFrame should now be checked only for non-composited contents. This will have the effect of not sending a DidRenderFrame message if a tile was updated only in a composited layer.
&gt; &gt;
&gt; We set m_shouldSyncFrame for every tile update. That hasn&apos;t changed in this patch, or I don&apos;t understand your comment.

Oh, I see. There&apos;s a bug there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666024</commentid>
    <comment_count>21</comment_count>
      <attachid>151516</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-10 13:53:48 -0700</bug_when>
    <thetext>Created attachment 151516
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666532</commentid>
    <comment_count>22</comment_count>
      <attachid>151516</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-07-11 02:03:15 -0700</bug_when>
    <thetext>Comment on attachment 151516
Patch

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

r=me with one readability issue.

&gt; Source/WebKit2/WebProcess/WebPage/LayerTreeCoordinator/LayerTreeCoordinator.cpp:255
&gt; +    if (!didSync)
&gt; +        return false;
&gt; +
&gt; +    if (!m_shouldSyncFrame)
&gt; +        return true;

This part hardly makes sense if you just look at the variable names.
I think it would read better as:
if (!m_shouldSyncFrame)
    return didSync;

And at the end, return didSync; instead of true (or remove the &quot;didSync = didSync || m_shouldSyncFrame;&quot; line and keep the return true).

Else it&apos;s impossible to see that m_shouldSyncFrame is related to the DidRenderFrame message.
You could also rename m_shouldSyncFrame to m_shouldSendDidRenderFrame or something like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666835</commentid>
    <comment_count>23</comment_count>
      <attachid>151724</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-11 10:10:20 -0700</bug_when>
    <thetext>Created attachment 151724
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666839</commentid>
    <comment_count>24</comment_count>
      <attachid>151726</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-07-11 10:13:52 -0700</bug_when>
    <thetext>Created attachment 151726
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666867</commentid>
    <comment_count>25</comment_count>
      <attachid>151726</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-11 10:50:22 -0700</bug_when>
    <thetext>Comment on attachment 151726
Patch for landing

Clearing flags on attachment: 151726

Committed r122340: &lt;http://trac.webkit.org/changeset/122340&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666868</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-11 10:50:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150996</attachid>
            <date>2012-07-05 16:08:45 -0700</date>
            <delta_ts>2012-07-08 12:36:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90641-20120705160755.patch</filename>
            <type>text/plain</type>
            <size>21235</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxOTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODYzZThhNWIwY2UzOWJi
N2MyNTdlYTAwODA3Mjg5M2ViYTE3MThlNS4uMWNiNWY3NmE3NmU3NThlYjMyOTlhMmZhNDNiOTM1
NjEyNWNlMDViNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEyLTA3LTA1ICBObydh
bSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBR
UmF3V2ViVmlldyBzaG91bGQgbm90aWZ5IHdoZW4gcmVuZGVyaW5nIGlzIGRvbmUsIHNvIHRoYXQg
cGl4ZWwgcmVzdWx0cyBjYW4gYmUgZ3JhYmJlZCBhdCB0aGUgYXBwcm9wcmlhdGUgbW9tZW50Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA2NDEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGxvdyBRUmF3
V2ViVmlld0NsaWVudCB0byByZWNlaXZlIGEgbm90aWZpY2F0aW9uIHdoZW4gcmVuZGVyaW5nIGlz
IGRvbmUgKERpZFJlbmRlckZyYW1lKSwKKyAgICAgICAgYW5kIGFsbG93IFFSYXdXZWJWaWV3IHRv
IHNlbmQgYSBtZXNzYWdlIHRvIHRoZSB3ZWIgcHJvY2VzcyB0byByZW5kZXIgYSBuZXcgZnJhbWUK
KyAgICAgICAgcHJvZ3JhbW1hdGljYWxseSwgYnkgZXhwb3NpbmcgTGF5ZXJUcmVlQ29vcmRpbmF0
b3I6OnNjaGVkdWxlTGF5ZXJGbHVzaCB2aWEgYSBXZWJLaXQyCisgICAgICAgIG1lc3NhZ2UuCisK
KyAgICAgICAgVGhpcyBhbGxvd3MgdXMgdG8gZGVjaWRlIG1vcmUgYWNjdXJhdGVseSB3aGVuIHRv
IGdyYWIgdGhlIHBpeGVscyBvZiB0aGUgcmVuZGVyZWQgV2ViVmlldy4KKworICAgICAgICBUaGUg
dGVzdHMgZm9yIFFSYXdXZWJWaWV3IGhhdmUgYmVlbiB1cGRhdGVkIHRvIHVzZSBoYXNoZXMgaW5z
dGVhZCBvZiBQTkcgcmVzdWx0cywgdG8gYWxsb3cKKyAgICAgICAgZm9yIGZhc3RlciBhbmQgbW9y
ZSBhY2N1cmF0ZSB0ZXN0aW5nLCBub3cgdGhhdCB0aGUgdGltaW5nIG9mIHRoZSBwaXhlbCBncmFi
YmluZyBpcworICAgICAgICBpbXByb3ZlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQv
cmF3L3FyYXd3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFSYXdXZWJWaWV3OjpjcmVhdGUpOgorICAg
ICAgICAoUVJhd1dlYlZpZXc6OnVwZGF0ZSk6CisgICAgICAgIChRUmF3V2ViVmlld1ByaXZhdGU6
OmRpZFJlbmRlckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vi
dmlld19wLmg6CisgICAgICAgIChRUmF3V2ViVmlld0NsaWVudDo6dmlld05lZWRzRGlzcGxheSk6
CisgICAgICAgIChRUmF3V2ViVmlld0NsaWVudDo6dmlld1JlcXVlc3RlZFNjcm9sbCk6CisgICAg
ICAgIChRUmF3V2ViVmlld0NsaWVudDo6dmlld1Byb2Nlc3NDcmFzaGVkKToKKyAgICAgICAgKFFS
YXdXZWJWaWV3Q2xpZW50Ojp2aWV3UmVuZGVyZWRGcmFtZSk6CisgICAgICAgIChRUmF3V2ViVmll
d0NsaWVudDo6dmlld1Byb2Nlc3NSZWxhdW5jaGVkKToKKyAgICAgICAgKFFSYXdXZWJWaWV3Q2xp
ZW50Ojp2aWV3Q29udGVudFNpemVDaGFuZ2VkKToKKyAgICAgICAgKFFSYXdXZWJWaWV3Q2xpZW50
Ojp2aWV3UmVxdWVzdGVkQ3Vyc29yT3ZlcnJpZGUpOgorICAgICAgICAoUVJhd1dlYlZpZXdDbGll
bnQ6OmRvbmVXaXRoS2V5RXZlbnQpOgorICAgICAgICAoUVJhd1dlYlZpZXdDbGllbnQ6OmRvbmVX
aXRoVG91Y2hFdmVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZp
ZXdfcF9wLmg6CisgICAgICAgIChRUmF3V2ViVmlld1ByaXZhdGUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvcXQvdGVzdHMvaHRtbC9yZXNvdXJjZXMvcXdrdmlld19ub0JhY2tncm91bmQxLnBu
ZzogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL2h0bWwvcmVzb3Vy
Y2VzL3F3a3ZpZXdfbm9CYWNrZ3JvdW5kMy5wbmc6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9xdC90ZXN0cy9odG1sL3Jlc291cmNlcy9xd2t2aWV3X3BhaW50LnBuZzogUmVtb3Zl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FyYXd3ZWJ2aWV3L3RzdF9xcmF3
d2Vidmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojp2aWV3TmVlZHNEaXNwbGF5KToKKyAgICAg
ICAgKFdlYlZpZXcpOgorICAgICAgICAoV2ViVmlldzo6dmlld1JlbmRlcmVkRnJhbWUpOgorICAg
ICAgICAoV2ViVmlldzo6ZnJhbWVMb2FkZWQpOgorICAgICAgICAoV2ViVmlldzo6ZmluaXNoTG9h
ZEZvckZyYW1lKToKKyAgICAgICAgKGltYWdlSGFzaCk6CisgICAgICAgIChjb21wYXJlSW1hZ2Vz
KToKKyAgICAgICAgKHRzdF9xcmF3d2Vidmlldzo6dHN0X3FyYXd3ZWJ2aWV3KToKKyAgICAgICAg
KHRzdF9xcmF3d2Vidmlldzo6cGFpbnQpOgorICAgICAgICAodHN0X3FyYXd3ZWJ2aWV3Ojpub0Jh
Y2tncm91bmQxKToKKyAgICAgICAgKHRzdF9xcmF3d2Vidmlldzo6bm9CYWNrZ3JvdW5kMik6Cisg
ICAgICAgICh0c3RfcXJhd3dlYnZpZXc6Om5vQmFja2dyb3VuZDMpOgorICAgICAgICAodHN0X3Fy
YXd3ZWJ2aWV3KToKKyAgICAgICAgKHRzdF9xcmF3d2Vidmlldzo6cnVuKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpkaWRSZW5kZXJGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGlu
YXRvclByb3h5OjpzY2hlZHVsZUxheWVyRmx1c2gpOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXll
clRyZWVDb29yZGluYXRvclByb3h5Lmg6CisgICAgICAgIChPYnNlcnZlcik6CisgICAgICAgIChM
YXllclRyZWVDb29yZGluYXRvclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eTo6bGF5ZXJUcmVlUmVuZGVyZXIpOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVDb29yZGluYXRvclByb3h5OjpzZXRPYnNlcnZlcik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5hdG9yL0xheWVyVHJlZUNvb3JkaW5hdG9yLm1lc3Nh
Z2VzLmluOgorCiAyMDEyLTA3LTA1ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdt
YWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTIxODk5LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJhd3dlYnZpZXcuY3Bw
CmluZGV4IDg3NWVkMWRiMjRhMjYzZDI4OTQ0NWIzNmViZmFmYjg3OTk4YzRkMjcuLjk4MDNiMGIy
OTg4MjY2OGM0NjBkNDEwMTJlNmJiNWMxMDNiOTU2MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlldy5jcHAKQEAgLTI2MSw4ICsyNjEs
MjcgQEAgUVJhd1dlYlZpZXc6On5RUmF3V2ViVmlldygpCiB2b2lkIFFSYXdXZWJWaWV3OjpjcmVh
dGUoKQogewogICAgIGQtPm1fd2ViUGFnZVByb3h5LT5pbml0aWFsaXplV2ViUGFnZSgpOworICAg
IFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEgPSBkLT5tX3dlYlBhZ2VQcm94
eS0+ZHJhd2luZ0FyZWEoKTsKKyAgICBpZiAoIWRyYXdpbmdBcmVhKQorICAgICAgICByZXR1cm47
CisKKyAgICBXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkqIGNvb3JkaW5hdG9yUHJv
eHkgPSBkcmF3aW5nQXJlYS0+bGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSgpOworICAgIGlmICgh
Y29vcmRpbmF0b3JQcm94eSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29vcmRpbmF0b3JQcm94
eS0+c2V0T2JzZXJ2ZXIoZCk7CiB9CiAKK3ZvaWQgUVJhd1dlYlZpZXc6OnVwZGF0ZSgpCit7Cisg
ICAgV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5KiBkcmF3aW5nQXJlYSA9IGQtPm1fd2ViUGFnZVBy
b3h5LT5kcmF3aW5nQXJlYSgpOworICAgIEFTU0VSVChkcmF3aW5nQXJlYSk7CisgICAgV2ViS2l0
OjpMYXllclRyZWVDb29yZGluYXRvclByb3h5KiBjb29yZGluYXRvciA9IGRyYXdpbmdBcmVhLT5s
YXllclRyZWVDb29yZGluYXRvclByb3h5KCk7CisgICAgQVNTRVJUKGNvb3JkaW5hdG9yKTsKKyAg
ICBjb29yZGluYXRvci0+c2NoZWR1bGVMYXllckZsdXNoKCk7Cit9CisKKwogdm9pZCBRUmF3V2Vi
Vmlldzo6c2V0VHJhbnNwYXJlbnRCYWNrZ3JvdW5kKGJvb2wgdmFsdWUpCiB7CiAgICAgZC0+bV93
ZWJQYWdlUHJveHktPnNldERyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKHZhbHVlKTsKQEAgLTM4
MiwzICs0MDEsOCBAQCB2b2lkIFFSYXdXZWJWaWV3OjpzZW5kVG91Y2hFdmVudChRVG91Y2hFdmVu
dCogZXZlbnQpCiB7CiAgICAgZC0+bV93ZWJQYWdlUHJveHktPmhhbmRsZVRvdWNoRXZlbnQoV2Vi
S2l0OjpOYXRpdmVXZWJUb3VjaEV2ZW50KGV2ZW50LCBRVHJhbnNmb3JtKCkpKTsKIH0KKwordm9p
ZCBRUmF3V2ViVmlld1ByaXZhdGU6OmRpZFJlbmRlckZyYW1lKCkKK3sKKyAgICBtX2NsaWVudC0+
dmlld1JlbmRlcmVkRnJhbWUoKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3X3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3X3AuaAppbmRleCBiOGNiYTY5MmQ5OWViNWI3ZDQyYzc1
NjM4ODk0NzFkYjgwNDc1ZmRlLi41OWE5MWVlZDk0Y2M1MzdkOGRlMjc4ZDgzNDQ5ZTU1NzRmYzYy
NjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Jhdy9xcmF3
d2Vidmlld19wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9yYXcvcXJh
d3dlYnZpZXdfcC5oCkBAIC00OSwxNCArNDksMTUgQEAgY2xhc3MgUVJhd1dlYlZpZXdDbGllbnQg
ewogcHVibGljOgogICAgIHZpcnR1YWwgflFSYXdXZWJWaWV3Q2xpZW50KCkgeyB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgdmlld05lZWRzRGlzcGxheShjb25zdCBRUmVjdCYpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgdmlld1JlcXVlc3RlZFNjcm9sbChjb25zdCBRUG9pbnQmKSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIHZpZXdQcm9jZXNzQ3Jhc2hlZCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdmll
d1Byb2Nlc3NSZWxhdW5jaGVkKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB2aWV3Q29udGVudFNp
emVDaGFuZ2VkKGNvbnN0IFFTaXplJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB2aWV3UmVxdWVz
dGVkQ3Vyc29yT3ZlcnJpZGUoY29uc3QgUUN1cnNvciYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
ZG9uZVdpdGhLZXlFdmVudChjb25zdCBRS2V5RXZlbnQqLCBib29sIHdhc0hhbmRsZWQpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IFFUb3VjaEV2ZW50Kiwg
Ym9vbCB3YXNIYW5kbGVkKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZpZXdOZWVkc0Rpc3BsYXko
Y29uc3QgUVJlY3QmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdmlld1JlcXVlc3RlZFNjcm9sbChj
b25zdCBRUG9pbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdmlld1Byb2Nlc3NDcmFzaGVkKCkg
eyB9CisgICAgdmlydHVhbCB2b2lkIHZpZXdSZW5kZXJlZEZyYW1lKCkgeyB9CisgICAgdmlydHVh
bCB2b2lkIHZpZXdQcm9jZXNzUmVsYXVuY2hlZCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB2aWV3
Q29udGVudFNpemVDaGFuZ2VkKGNvbnN0IFFTaXplJikgeyB9CisgICAgdmlydHVhbCB2b2lkIHZp
ZXdSZXF1ZXN0ZWRDdXJzb3JPdmVycmlkZShjb25zdCBRQ3Vyc29yJikgeyB9CisgICAgdmlydHVh
bCB2b2lkIGRvbmVXaXRoS2V5RXZlbnQoY29uc3QgUUtleUV2ZW50KiwgYm9vbCB3YXNIYW5kbGVk
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IFFUb3VjaEV2
ZW50KiwgYm9vbCB3YXNIYW5kbGVkKSB7IH0KIH07CiAKIGNsYXNzIFFXRUJLSVRfRVhQT1JUIFFS
YXdXZWJWaWV3IHsKQEAgLTg3LDYgKzg4LDggQEAgcHVibGljOgogICAgIC8vIFBhaW50cyBvbiB0
aGUgY3VycmVudCBHTCBjb250ZXh0LgogICAgIHZvaWQgcGFpbnQoY29uc3QgUU1hdHJpeDR4NCYg
dHJhbnNmb3JtLCBmbG9hdCBvcGFjaXR5LCB1bnNpZ25lZCBwYWludEZsYWdzKTsKIAorICAgIHZv
aWQgdXBkYXRlKCk7CisKICAgICBXS1BhZ2VSZWYgcGFnZVJlZigpOwogCiAgICAgdm9pZCBzZW5k
S2V5RXZlbnQoUUtleUV2ZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3Jhdy9xcmF3d2Vidmlld19wX3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcmF3L3FyYXd3ZWJ2aWV3X3BfcC5oCmluZGV4IDBhNGJmNWE5ZTJhMmIxNDg2MTY1
ZDMxNzJiZWNhMmUwNjJjZWMzMWUuLmNmMWZiYjU3NGU2YmQxNmM2NjdkMGJkYjY0ZTAyODQ0ZTMz
NzdkNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcmF3L3Fy
YXd3ZWJ2aWV3X3BfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcmF3
L3FyYXd3ZWJ2aWV3X3BfcC5oCkBAIC0yNSwxMiArMjUsMTMgQEAKICNpZm5kZWYgcXJhd3dlYnZp
ZXdfcF9wX2gKICNkZWZpbmUgcXJhd3dlYnZpZXdfcF9wX2gKIAorI2luY2x1ZGUgIkxheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHkuaCIKICNpbmNsdWRlICJQYWdlQ2xpZW50LmgiCiAjaW5jbHVkZSAi
V2ViQ29udGV4dE1lbnVQcm94eS5oIgogI2luY2x1ZGUgIldlYlBvcHVwTWVudVByb3h5LmgiCiAj
aW5jbHVkZSAicXJhd3dlYnZpZXdfcC5oIgogCi1jbGFzcyBRUmF3V2ViVmlld1ByaXZhdGUgOiBw
dWJsaWMgV2ViS2l0OjpQYWdlQ2xpZW50IHsKK2NsYXNzIFFSYXdXZWJWaWV3UHJpdmF0ZSA6IHB1
YmxpYyBXZWJLaXQ6OlBhZ2VDbGllbnQsIHB1YmxpYyB2aXJ0dWFsIFdlYktpdDo6TGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eTo6T2JzZXJ2ZXIgewogcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lk
IHBhZ2VDbG9zZWQoKSB7IH0KQEAgLTExNSw2ICsxMTYsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBXZWJLaXQ6Ok5hdGl2ZVdlYlRvdWNoRXZl
bnQmLCBib29sIHdhc0V2ZW50SGFuZGxlZCk7CiAjZW5kaWYKIAorICAgIC8vIExheWVyVHJlZUNv
b3JkaW5hdG9yUHJveHk6Ok9ic2VydmVyCisgICAgdmlydHVhbCB2b2lkIGRpZFJlbmRlckZyYW1l
KCk7CiAKICAgICBib29sIG1fZm9jdXNlZDsKICAgICBib29sIG1fdmlzaWJsZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvaHRtbC9yZXNvdXJjZXMv
cXdrdmlld19ub0JhY2tncm91bmQxLnBuZyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvaHRtbC9yZXNvdXJjZXMvcXdrdmlld19ub0JhY2tncm91bmQxLnBuZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzI5M2Y0NDllYjk4OTg1OGNlMTdjZGIyNjQ1OTNlMTMz
MzY1Nzk5My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQgYmlu
YXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCA4MDEKemNtZUFTQE4/KG9s
SHlgdVZCcSFpYTB2cF5DcVM1azRNP3R5U1RfJHl1QHBPYmhId0J1NE0kMWBrazQ3KjVuMFRACnp6
O15fTThLLUxWTmkjNG85cmtvXzQ1XnMmX1VeJGY1bDBiK2lfO2E7N1A9SFhLSzF7PFFNbiF5N28o
YEtjOzRDNgp6SGp9WGErSD5xN2R5bjNFKzBedUlfUkxEVDJrWlMtdnAzaVpiRmVmejJvT29eeExk
VUdAKT9fKW9lRDd6Wmw5XlMKelJkTHByZEZJVEB7YT4zbE9pJmlYSDBae2tNSVU3UmpYeChJSnI9
WHtfc3BNckdUeTU7bztneiF5VldxfWZGTzYxCnpnOH5OJmdAaklaPHlXY3ZXN0ZAJUtRMnRPVFBP
RXV6RXk7UnZHTXlie3NXP2dOMTdBX0lHN3F5Mj0rWjFIcGx4ZAp6dVQ4Jm18Sjw0QlNEb0tYYSl8
cX5xbCUlN04pRHBmTStnSiV0ZG1RYXwxUnk+P15sWDk3I3NKeiRvdENoclU2P3gKelRpa0djYylw
UEZnZXNyZGk4SiMoOUB6OW4yKFUwWURve3V5bzs8eDg3PDxgQWp9PElUJWBnQXs7KnIja3hsUn5+
CnpyM0lMcj9pRCM2LUZXSHB2RGRrQjlEbkAoSmFvb1RnXyR+X04/UHQpMj8oIUoodkNPPk95ZGxt
dTZ7MS1vRCFNPApEeTJhfDIKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3Rlc3RzL2h0bWwvcmVzb3VyY2VzL3F3a3ZpZXdfbm9CYWNrZ3JvdW5kMy5wbmcgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL2h0bWwvcmVzb3VyY2VzL3F3a3Zp
ZXdfbm9CYWNrZ3JvdW5kMy5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmYTUz
YjEzNTU5YmI0Mjc4MmE4MGNmY2QwMTlmNzU3ZDUxMDBjMTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCmxpdGVyYWwgODI3CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeQ3FTNWs0TT90eVNUXyR5
dUBwT2JoSHdCdTRNJDFga2s0Nyo1bjBUQAp6ejteX004Sy1MVk5pIzRvLVN1PkY0NV5zJl9VYFZp
WGgjdTtpXilHKCthekxrZUV3ZV9zYiRXX3pJPypRRE40Q30KekNVJjBDJFhMcmkhfTRxIUd4UFZq
SHtYQiVXdkpnMFkwRUlqc0w/QHlnTX48PFclYzVEK2lzdD12NjE9ZVZSMik3Cnp6VlpHMkA/VEZw
Vy1+Sld7SHlBVmEteWlWN15ZRGN8Q31FeG4kNGEkZVkkRytYWmM/cmxiXmxKSmI1Km5ZMzl0Rwp6
YHtUPEBXbG5YbUl3fWFURml9V2N0S0MhOF9gUTY4O2VZQSFhXnYmb1MxPHB1e2haYz5uS1FSPHpi
Z0V9ZXEpaiYKemhDZj8yUzhMY0RJZVdKOUAzRnRuJihBITV7QSV6VndaQHU5QEFBSH4ld2ZYajdZ
cmpYeS1QYktKRUNrNFh4Xz84CnomJnY8QEtkMzJpTFZlcnF0SEszYllhJWNNQDhLRmJ1SiE5fTg5
dGUmaT1IXzEtczM/KW08fFYxcWs7ZzEjRC1eJgp6dWtPQms9SVBUKHN+PjcjdEchI2hKc01YR19X
Y2duYXF+PH40S1MlaHlpRDRFfDl2PD08OHNwQ3h7aV9XZ3khNSYKVFdsfU1+KVgoN1E+Z1RlfkRX
TTRmNGp9STIKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rl
c3RzL2h0bWwvcmVzb3VyY2VzL3F3a3ZpZXdfcGFpbnQucG5nIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC90ZXN0cy9odG1sL3Jlc291cmNlcy9xd2t2aWV3X3BhaW50LnBuZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjg3NDNhYzllMGZjYmU3ZDY2ZmY3ZTY5ODBlY2Yy
ZmU0YWIxY2Q2Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApHSVQg
YmluYXJ5IHBhdGNoCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKbGl0ZXJhbCA3MjgKemNtZUFTQE4/
KG9sSHlgdVZCcSFpYTB2cF5DcVM1azRNP3R5U1RfJHl1QHBPYmhId0J1NE0kMWBrazQ3KjVuMFRA
Cnp6O15fTThLLUxWTmkjNG9SZThFTmhFJlhYZHZsfGd2IWo1KyNncERxdHpVbHIqV1dDQCNxOWl7
RmctIUpvUihzewp6Z3RYYiolKzxIUCpVQ1Ejenh8NStmVXooS09RVkFUaztEIWV0RzlMWWNnRkZ7
YWBJUEsmYUFBcUVfdCVDQHl3WjsKejhXfXNHdSktdXE0MS0hOCtqR2ZwJXIkPWgtYUc2d2V7SjJs
Sjkqdz0+cDRAPm9fI0k3bk49fUduN2hlQWZyRGp+CnpwbXJGPE92fkFPS21GV3UpenVJNnVkeF8/
N1VzMEVSMlJkSFltMEEtM3ZRP0Yrczd4JXNYZ353P2ZyMGpyZz45SQpjaWpeOD5BcVVCY0xIKH4p
Zkp1fFYpNzgmcW9sYDsrMEQlMHJBcGlnWAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvdGVzdHMvcXJhd3dlYnZpZXcvdHN0X3FyYXd3ZWJ2aWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcXJhd3dlYnZpZXcvdHN0X3FyYXd3
ZWJ2aWV3LmNwcAppbmRleCA5ZjY4ODgxODBhNTFiM2Y3ZTA1MDMzZTk4NmUyNjhiMTM5YzQ0NGNk
Li5lZDZhNmIzMjQ3OTM3YWI3Y2Q2ZTgxOTdmNGE2YjE5N2Q1OTY2MTBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FyYXd3ZWJ2aWV3L3RzdF9xcmF3
d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9x
cmF3d2Vidmlldy90c3RfcXJhd3dlYnZpZXcuY3BwCkBAIC05MSwxNyArOTEsMTkgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCB2aWV3TmVlZHNEaXNwbGF5KGNvbnN0IFFSZWN0JikKICAgICB7
CiAgICAgICAgIG1fd2ViVmlldy0+cGFpbnQoUU1hdHJpeDR4NCgpLCAxLCAwKTsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIHZvaWQgdmlld1JlbmRlcmVkRnJhbWUoKQorICAgIHsKICAgICAgICAgaWYg
KG1fZnJhbWVMb2FkZWQpCiAgICAgICAgICAgICBlbWl0IGxvYWRlZCgpOwogICAgIH0KIAotICAg
IHZpcnR1YWwgdm9pZCB2aWV3UmVxdWVzdGVkU2Nyb2xsKGNvbnN0IFFQb2ludCYpIHsgfQotICAg
IHZpcnR1YWwgdm9pZCB2aWV3UHJvY2Vzc0NyYXNoZWQoKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
dmlld1Byb2Nlc3NSZWxhdW5jaGVkKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHZpZXdDb250ZW50
U2l6ZUNoYW5nZWQoY29uc3QgUVNpemUmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdmlld1JlcXVl
c3RlZEN1cnNvck92ZXJyaWRlKGNvbnN0IFFDdXJzb3ImKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
ZG9uZVdpdGhLZXlFdmVudChjb25zdCBRS2V5RXZlbnQqLCBib29sIHdhc0hhbmRsZWQpIHsgfQot
ICAgIHZpcnR1YWwgdm9pZCBkb25lV2l0aFRvdWNoRXZlbnQoY29uc3QgUVRvdWNoRXZlbnQqLCBi
b29sIHdhc0hhbmRsZWQpIHsgfQorICAgIHZvaWQgZnJhbWVMb2FkZWQoKQorICAgIHsKKyAgICAg
ICAgbV9mcmFtZUxvYWRlZCA9IHRydWU7CisgICAgICAgIG1fd2ViVmlldy0+dXBkYXRlKCk7Cisg
ICAgfQogCiAgICAgc3RhdGljIHZvaWQgZmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdl
LCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pOwogCkBAIC0xMTYsNDAgKzExOCwzNyBAQCBwcml2YXRlOgogdm9pZCBXZWJWaWV3Ojpm
aW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlw
ZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBXZWJWaWV3KiBv
YmogPSBzdGF0aWNfY2FzdDxXZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykp
OwotICAgIG9iai0+bV9mcmFtZUxvYWRlZCA9IHRydWU7CisgICAgb2JqLT5mcmFtZUxvYWRlZCgp
OwogfQogCi1zdGF0aWMgYm9vbCBjb21wYXJlSW1hZ2VzKGNvbnN0IFFJbWFnZSYgaTEsIGNvbnN0
IFFJbWFnZSYgaTIsIGludCBjb3VudCkKK3N0YXRpYyBRQnl0ZUFycmF5IGltYWdlSGFzaChjb25z
dCBRSW1hZ2UmIGltYWdlKQogewotICAgIGlmIChpMS5zaXplKCkgIT0gaTIuc2l6ZSgpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgZm9yIChpbnQgeCA9IDA7IHggPCBjb3VudDsgKyt4KSB7
Ci0gICAgICAgIGZvciAoaW50IHkgPSAwOyB5IDwgY291bnQ7ICsreSkgewotICAgICAgICAgICAg
UVBvaW50IHBvaW50KHggKiBpMS53aWR0aCgpIC8gY291bnQsIHkgKiBpMS5oZWlnaHQoKSAvIGNv
dW50KTsKLSAgICAgICAgICAgIGlmIChpMS5waXhlbChwb2ludCkgIT0gaTIucGl4ZWwocG9pbnQp
KQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KKyAgICBR
Q3J5cHRvZ3JhcGhpY0hhc2ggaGFzaChRQ3J5cHRvZ3JhcGhpY0hhc2g6Ok1kNSk7CisgICAgZm9y
ICh1bnNpZ25lZCByb3cgPSAwOyByb3cgPCBpbWFnZS5oZWlnaHQoKTsgKytyb3cpCisgICAgICAg
IGhhc2guYWRkRGF0YShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihpbWFnZS5jb25zdFNj
YW5MaW5lKHJvdykpLCBpbWFnZS5ieXRlc1BlckxpbmUoKSk7CisKKyAgICByZXR1cm4gaGFzaC5y
ZXN1bHQoKS50b0Jhc2U2NCgpOworfQogCi0gICAgcmV0dXJuIHRydWU7CitzdGF0aWMgYm9vbCBj
b21wYXJlSW1hZ2VzKGNvbnN0IFFJbWFnZSYgaW1hZ2UsIGNvbnN0IFFCeXRlQXJyYXkmIGV4cGVj
dGVkSGFzaCkKK3sKKyAgICByZXR1cm4gaW1hZ2VIYXNoKGltYWdlKSA9PSBleHBlY3RlZEhhc2g7
CiB9CiAKIGNsYXNzIHRzdF9xcmF3d2VidmlldyA6IHB1YmxpYyBRT2JqZWN0IHsKICAgICBRX09C
SkVDVAogcHVibGljOgogICAgIHRzdF9xcmF3d2VidmlldygpCi0gICAgICAgIDogbV9yZXNvdXJj
ZURpcihRU3RyaW5nOjpmcm9tQXNjaWkoVEVTVFNfU09VUkNFX0RJUiAiL2h0bWwvcmVzb3VyY2Vz
IikpCi0gICAgICAgICwgbV9iYXNlVXJsKFFVcmw6OmZyb21Mb2NhbEZpbGUoVEVTVFNfU09VUkNF
X0RJUiAiL2h0bWwiKS50b1N0cmluZygpKQorICAgICAgICA6IG1fYmFzZVVybChRVXJsOjpmcm9t
TG9jYWxGaWxlKFRFU1RTX1NPVVJDRV9ESVIgIi9odG1sIikudG9TdHJpbmcoKSkKICAgICB7IH0K
IAogcHJpdmF0ZSBzbG90czoKLSAgICB2b2lkIHBhaW50KCkgeyBydW4oJnRzdF9xcmF3d2Vidmll
dzo6ZG9QYWludCwgbV9yZXNvdXJjZURpciArICIvcXdrdmlld19wYWludC5wbmciKTsgfQotICAg
IHZvaWQgbm9CYWNrZ3JvdW5kMSgpIHsgcnVuKCZ0c3RfcXJhd3dlYnZpZXc6OmRvTm9CYWNrZ3Jv
dW5kMSwgbV9yZXNvdXJjZURpciArICIvcXdrdmlld19ub0JhY2tncm91bmQxLnBuZyIpOyB9Ci0g
ICAgdm9pZCBub0JhY2tncm91bmQyKCkgeyBydW4oJnRzdF9xcmF3d2Vidmlldzo6ZG9Ob0JhY2tn
cm91bmQyLCBtX3Jlc291cmNlRGlyICsgIi9xd2t2aWV3X25vQmFja2dyb3VuZDEucG5nIik7IH0K
LSAgICB2b2lkIG5vQmFja2dyb3VuZDMoKSB7IHJ1bigmdHN0X3FyYXd3ZWJ2aWV3Ojpkb05vQmFj
a2dyb3VuZDMsIG1fcmVzb3VyY2VEaXIgKyAiL3F3a3ZpZXdfbm9CYWNrZ3JvdW5kMy5wbmciKTsg
fQorICAgIHZvaWQgcGFpbnQoKSB7IHJ1bigmdHN0X3FyYXd3ZWJ2aWV3Ojpkb1BhaW50LCAiUjdE
L0t5SjJMbWZYZGVFYk5FQXB0UT09Iik7IH0KKyAgICB2b2lkIG5vQmFja2dyb3VuZDEoKSB7IHJ1
bigmdHN0X3FyYXd3ZWJ2aWV3Ojpkb05vQmFja2dyb3VuZDEsICJ0aWh1RVZrZGhGaWZGMVNCSVNF
RTdnPT0iKTsgfQorICAgIHZvaWQgbm9CYWNrZ3JvdW5kMigpIHsgcnVuKCZ0c3RfcXJhd3dlYnZp
ZXc6OmRvTm9CYWNrZ3JvdW5kMiwgInRpaHVFVmtkaEZpZkYxU0JJU0VFN2c9PSIpOyB9CisgICAg
dm9pZCBub0JhY2tncm91bmQzKCkgeyBydW4oJnRzdF9xcmF3d2Vidmlldzo6ZG9Ob0JhY2tncm91
bmQzLCAic2ZsTVNta1hXVjQ1eTZJVXVpS2hHQT09Iik7IH0KIAogcHJpdmF0ZToKLSAgICBjb25z
dCBRU3RyaW5nIG1fcmVzb3VyY2VEaXI7CiAgICAgY29uc3QgUVN0cmluZyBtX2Jhc2VVcmw7CiAK
ICAgICB2b2lkIGRvUGFpbnQoY29uc3QgUVNpemUmIHNpemUpOwpAQCAtMTU4LDcgKzE1Nyw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBkb05vQmFja2dyb3VuZDMoY29uc3QgUVNpemUmIHNpemUpOwog
CiAgICAgdHlwZWRlZiB2b2lkICh0c3RfcXJhd3dlYnZpZXc6OipQYWludE1ldGhvZCkoY29uc3Qg
UVNpemUmIHNpemUpOwotICAgIHZvaWQgcnVuKFBhaW50TWV0aG9kLCBjb25zdCBRU3RyaW5nJiBl
eHBlY3RhdGlvbik7CisgICAgdm9pZCBydW4oUGFpbnRNZXRob2QsIGNvbnN0IFFCeXRlQXJyYXkm
IGV4cGVjdGF0aW9uKTsKIH07CiAKIHZvaWQgdHN0X3FyYXd3ZWJ2aWV3Ojpkb1BhaW50KGNvbnN0
IFFTaXplJiBzaXplKQpAQCAtMTk3LDcgKzE5Niw3IEBAIHZvaWQgdHN0X3FyYXd3ZWJ2aWV3Ojpk
b05vQmFja2dyb3VuZDMoY29uc3QgUVNpemUmIHNpemUpCiAgICAgdmlldzIubG9hZChtX2Jhc2VV
cmwgKyAiL2JsdWVzcXVhcmUuaHRtbCIpOwogfQogCi12b2lkIHRzdF9xcmF3d2Vidmlldzo6cnVu
KFBhaW50TWV0aG9kIG1ldGhvZCwgY29uc3QgUVN0cmluZyYgZXhwZWN0YXRpb24pCit2b2lkIHRz
dF9xcmF3d2Vidmlldzo6cnVuKFBhaW50TWV0aG9kIG1ldGhvZCwgY29uc3QgUUJ5dGVBcnJheSYg
ZXhwZWN0YXRpb24pCiB7CiAKICAgICBRV2luZG93IHdpbmRvdzsKQEAgLTIxOCw3ICsyMTcsNyBA
QCB2b2lkIHRzdF9xcmF3d2Vidmlldzo6cnVuKFBhaW50TWV0aG9kIG1ldGhvZCwgY29uc3QgUVN0
cmluZyYgZXhwZWN0YXRpb24pCiAgICAgUUltYWdlIGltYWdlKHdpbmRvdy5zaXplKCksIFFJbWFn
ZTo6Rm9ybWF0X0FSR0IzMl9QcmVtdWx0aXBsaWVkKTsKICAgICBnbFJlYWRQaXhlbHMoMCwgMCwg
d2luZG93LnNpemUoKS53aWR0aCgpLCB3aW5kb3cuc2l6ZSgpLmhlaWdodCgpLCBHTF9SR0JBLCBH
TF9VTlNJR05FRF9CWVRFLCBpbWFnZS5iaXRzKCkpOwogCi0gICAgUVZFUklGWShjb21wYXJlSW1h
Z2VzKFFJbWFnZShleHBlY3RhdGlvbiksIGltYWdlLnJnYlN3YXBwZWQoKSwgNSkpOworICAgIFFW
RVJJRlkoY29tcGFyZUltYWdlcyhpbWFnZS5yZ2JTd2FwcGVkKCksIGV4cGVjdGF0aW9uKSk7CiB9
CiAKIFFURVNUX01BSU4odHN0X3FyYXd3ZWJ2aWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDNiMDIxNDM0
NDZiZGFhNDE1MTY3NGY1MjQ5MThkNGExNTI5Yzc1MjYuLmJmMmNjZWJkODVmYjc3ZjM5YzdjNDNk
Y2EwNWUwY2RlYjc2ZDA3ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXllclRyZWVDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTM3LDYgKzM3LDcgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiBMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpMYXllclRyZWVD
b29yZGluYXRvclByb3h5KERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVhUHJveHkpCiAgICAg
OiBtX2RyYXdpbmdBcmVhUHJveHkoZHJhd2luZ0FyZWFQcm94eSkKICAgICAsIG1fcmVuZGVyZXIo
YWRvcHRSZWYobmV3IFdlYkxheWVyVHJlZVJlbmRlcmVyKHRoaXMpKSkKKyAgICAsIG1fb2JzZXJ2
ZXIoMCkKIHsKIH0KIApAQCAtMTE2LDYgKzExNywxMyBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5h
dG9yUHJveHk6OmRpZFJlbmRlckZyYW1lKCkKIHsKICAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZX
ZWJMYXllclRyZWVSZW5kZXJlcjo6Zmx1c2hMYXllckNoYW5nZXMsIG1fcmVuZGVyZXIuZ2V0KCkp
KTsKICAgICB1cGRhdGVWaWV3cG9ydCgpOworICAgIGlmIChtX29ic2VydmVyKQorICAgICAgICBt
X29ic2VydmVyLT5kaWRSZW5kZXJGcmFtZSgpOworfQorCit2b2lkIExheWVyVHJlZUNvb3JkaW5h
dG9yUHJveHk6OnNjaGVkdWxlTGF5ZXJGbHVzaCgpCit7CisgICAgbV9kcmF3aW5nQXJlYVByb3h5
LT5wYWdlKCktPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6
OlNjaGVkdWxlTGF5ZXJGbHVzaCgpLCBtX2RyYXdpbmdBcmVhUHJveHktPnBhZ2UoKS0+cGFnZUlE
KCkpOwogfQogCiB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OmNyZWF0ZURpcmVjdGx5
Q29tcG9zaXRlZEltYWdlKGludDY0X3Qga2V5LCBjb25zdCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlJiBoYW5kbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
eWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuaAppbmRleCBiNGU3YjdjZTI3NzUwNmU3OGNlMzdhNzFl
OWYzNTE4YmE4OGM3NWFmLi4yYzRmMTY1YTk5ZGFkMzk2YmJkNTEyMDMyZTk0MDgwZWNmMDk0M2Ni
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlQ29vcmRpbmF0
b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVDb29yZGlu
YXRvclByb3h5LmgKQEAgLTQ2LDggKzQ2LDI0IEBAIGNsYXNzIFdlYkxheWVyVXBkYXRlSW5mbzsK
IAogY2xhc3MgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSB7CiBwdWJsaWM6CisgICAgY2xhc3Mg
T2JzZXJ2ZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlbmRlckZy
YW1lKCkgPSAwOworICAgIH07CisKKyAgICB2b2lkIHB1cmdlQmFja2luZ1N0b3JlcygpOworICAg
IFdlYkxheWVyVHJlZVJlbmRlcmVyKiBsYXllclRyZWVSZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJu
IG1fcmVuZGVyZXIuZ2V0KCk7IH0KICAgICBMYXllclRyZWVDb29yZGluYXRvclByb3h5KERyYXdp
bmdBcmVhUHJveHkqKTsKKyAgICB2b2lkIHNldENvbnRlbnRzU2l6ZShjb25zdCBXZWJDb3JlOjpG
bG9hdFNpemUmKTsKKyAgICB2b2lkIHNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYsIGZsb2F0IHNjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB0cmFq
ZWN0b3J5LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBhY2N1cmF0ZVZpc2libGVDb250ZW50
c1Bvc2l0aW9uKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworICAg
IHZvaWQgZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHlNZXNzYWdlKENvcmVJUEM6
OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciopOwogICAgIHZpcnR1YWwgfkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkoKTsKKworICAgIHZv
aWQgc2V0T2JzZXJ2ZXIoT2JzZXJ2ZXIqIG9ic2VydmVyKSB7IG1fb2JzZXJ2ZXIgPSBvYnNlcnZl
cjsgfQorICAgIHZvaWQgc2NoZWR1bGVMYXllckZsdXNoKCk7CisKK3ByaXZhdGU6CiAgICAgdm9p
ZCBzZXRDb21wb3NpdGluZ0xheWVyU3RhdGUoV2ViTGF5ZXJJRCwgY29uc3QgV2ViTGF5ZXJJbmZv
Jik7CiAgICAgdm9pZCBzZXRDb21wb3NpdGluZ0xheWVyQ2hpbGRyZW4oV2ViTGF5ZXJJRCwgY29u
c3QgVmVjdG9yPFdlYkxheWVySUQ+Jik7CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQpAQCAtNTUs
MjUgKzcxLDE3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIHZvaWQgZGVsZXRlQ29tcG9zaXRpbmdM
YXllcihXZWJMYXllcklEKTsKICAgICB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkxh
eWVySUQpOwotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAgICAgdm9p
ZCBwdXJnZUdMUmVzb3VyY2VzKCk7Ci0gICAgdm9pZCBzZXRDb250ZW50c1NpemUoY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJik7Ci0gICAgdm9pZCBzZXRWaXNpYmxlQ29udGVudHNSZWN0KGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmLCBmbG9hdCBzY2FsZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2lu
dCYgdHJhamVjdG9yeSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgYWNjdXJhdGVWaXNpYmxl
Q29udGVudHNQb3NpdGlvbik7CiAgICAgdm9pZCBkaWRSZW5kZXJGcmFtZSgpOwogICAgIHZvaWQg
Y3JlYXRlVGlsZUZvckxheWVyKGludCBsYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgY29uc3QgU3VyZmFjZVVwZGF0ZUluZm8mKTsKICAgICB2b2lkIHVwZGF0ZVRp
bGVGb3JMYXllcihpbnQgbGF5ZXJJRCwgaW50IHRpbGVJRCwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYsIGNvbnN0IFN1cmZhY2VVcGRhdGVJbmZvJik7CiAgICAgdm9pZCByZW1vdmVUaWxlRm9yTGF5
ZXIoaW50IGxheWVySUQsIGludCB0aWxlSUQpOwogICAgIHZvaWQgY3JlYXRlRGlyZWN0bHlDb21w
b3NpdGVkSW1hZ2UoaW50NjRfdCwgY29uc3QgV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRs
ZSYpOwogICAgIHZvaWQgZGVzdHJveURpcmVjdGx5Q29tcG9zaXRlZEltYWdlKGludDY0X3QpOwot
ICAgIHZvaWQgZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHlNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciopOwogICAgIHZvaWQgdXBkYXRlVmlld3BvcnQoKTsKICAgICB2b2lkIHJlbmRlck5leHRG
cmFtZSgpOwogICAgIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24oY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmIHBvc2l0aW9uKTsKICAgICB2b2lkIHN5bmNDYW52YXModWludDMyX3QgaWQsIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIGNhbnZhc1NpemUsIHVpbnQzMl90IGdyYXBoaWNzU3VyZmFj
ZVRva2VuKTsKLSAgICB2b2lkIHB1cmdlQmFja2luZ1N0b3JlcygpOwotICAgIFdlYkxheWVyVHJl
ZVJlbmRlcmVyKiBsYXllclRyZWVSZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyZXIu
Z2V0KCk7IH0KLQotcHJvdGVjdGVkOgogICAgIHZvaWQgZGlzcGF0Y2hVcGRhdGUoY29uc3QgRnVu
Y3Rpb248dm9pZCgpPiYpOwogCiAgICAgRHJhd2luZ0FyZWFQcm94eSogbV9kcmF3aW5nQXJlYVBy
b3h5OwpAQCAtODEsNiArODksMTAgQEAgcHJvdGVjdGVkOgogI2lmIFVTRShHUkFQSElDU19TVVJG
QUNFKQogICAgIEhhc2hNYXA8dWludDMyX3QsIFJlZlB0cjxTaGFyZWFibGVTdXJmYWNlPiA+IG1f
c3VyZmFjZXM7CiAjZW5kaWYKKworICAgIE9ic2VydmVyKiBtX29ic2VydmVyOworCisgICAgZnJp
ZW5kIGNsYXNzIFdlYkxheWVyVHJlZVJlbmRlcmVyOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5hdG9yL0xheWVy
VHJlZUNvb3JkaW5hdG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5hdG9yL0xheWVyVHJlZUNvb3JkaW5hdG9yLm1lc3NhZ2Vz
LmluCmluZGV4IGFmZjZmOTZhZGI2YTUxZmI1M2EyN2E1MTZlYzFmZTBlNWQzOGYyMGIuLmMyN2E4
YThhMzY4NTRjMDczYzFkMTZhYzk5OWM4MzI3MmQ2NmQ2ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVDb29yZGluYXRvci9MYXllclRyZWVD
b29yZGluYXRvci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvTGF5ZXJUcmVlQ29vcmRpbmF0b3IvTGF5ZXJUcmVlQ29vcmRpbmF0b3IubWVzc2FnZXMu
aW4KQEAgLTIyLDYgKzIyLDcgQEAKIG1lc3NhZ2VzIC0+IExheWVyVHJlZUNvb3JkaW5hdG9yIHsK
ICAgICBTZXRWaXNpYmxlQ29udGVudHNSZWN0KFdlYkNvcmU6OkludFJlY3QgdmlzaWJsZUNvbnRl
bnRzUmVjdCwgZmxvYXQgc2NhbGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQgdHJhamVjdG9yeVZlY3Rv
cnkpCiAgICAgUmVuZGVyTmV4dEZyYW1lKCkKKyAgICBTY2hlZHVsZUxheWVyRmx1c2goKQogICAg
IFB1cmdlQmFja2luZ1N0b3JlcygpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0OWU5ODdhNzA0ZWRkYzk2MGE5ZDYyM2MzNTQ5
MDE5ZWNmNjIyZDc2Li4wNjZjZjAyODAwZWMxZGIxNTY1YThhYWIyZDdjZTIwZjczODk1ODk1IDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTItMDctMDUgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5v
a2lhLmNvbT4KKworICAgICAgICBbUXRdIFFSYXdXZWJWaWV3IHNob3VsZCBub3RpZnkgd2hlbiBy
ZW5kZXJpbmcgaXMgZG9uZSwgc28gdGhhdCBwaXhlbCByZXN1bHRzIGNhbiBiZSBncmFiYmVkIGF0
IHRoZSBhcHByb3ByaWF0ZSBtb21lbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05MDY0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEZpeGVkIGEgZmF1bHR5IGNvbW1lbnQsIHJlZmVycmluZyB0byB0aGUg
b2xkIGNsYXNzIG5hbWUgV0tWaWV3LgorCisgICAgICAgICogTWluaUJyb3dzZXIvcXQvcmF3L1Zp
ZXcuaDoKKyAgICAgICAgKFZpZXcpOgorCiAyMDEyLTA3LTA1ICBEYXZlIFRoYXJwICA8ZHRoYXJw
QGNvZGVhdXJvcmEub3JnPgogCiAgICAgICAgIEFkZGluZyBteXNlbGYgYXMgY29tbWl0dGVyIHRv
IGNvbW1pdHRlcnMucHkKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL3F0L3Jhdy9WaWV3
LmggYi9Ub29scy9NaW5pQnJvd3Nlci9xdC9yYXcvVmlldy5oCmluZGV4IDZkZTdhMjVlMjE0NTY5
ZTQ1MzFhNTgwODJmNzI1MjE5ZjZhMjQxMjUuLmU1MzIyM2Y4OTZlMzI4ZmMyOWY3NzM1OTk4YjJi
YjkxNjA0ZjRmODEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL3F0L3Jhdy9WaWV3LmgK
KysrIGIvVG9vbHMvTWluaUJyb3dzZXIvcXQvcmF3L1ZpZXcuaApAQCAtMzEsNyArMzEsNyBAQCBw
dWJsaWM6CiAgICAgVmlldyhjb25zdCBRU3RyaW5nJiB1cmwpOwogICAgIH5WaWV3KCk7CiAKLXB1
YmxpYzogLy8gV0tWaWV3Q2xpZW50CitwdWJsaWM6IC8vIFFSYXdXZWJWaWV3Q2xpZW50CiAgICAg
dmlydHVhbCB2b2lkIHZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUVJlY3QmKTsKICAgICB2aXJ0dWFs
IHZvaWQgdmlld1JlcXVlc3RlZFNjcm9sbChjb25zdCBRUG9pbnQmKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgdmlld1Byb2Nlc3NDcmFzaGVkKCkgeyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151164</attachid>
            <date>2012-07-08 12:36:54 -0700</date>
            <delta_ts>2012-07-09 10:53:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90641-20120708123649.patch</filename>
            <type>text/plain</type>
            <size>9378</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTNmYTliNWJhZjNlNDk1
NmY1MTllNzY4N2MwNWI0MTUyN2EwZjZjZS4uM2M0ZjRhMDIwODdmMTQ1Njg5ZGZlNjJiZjk3ZGY5
ZWVmNjhjMTdkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA3LTA4ICBObydh
bSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBR
UmF3V2ViVmlldyBzaG91bGQgbm90aWZ5IHdoZW4gcmVuZGVyaW5nIGlzIGRvbmUsIHNvIHRoYXQg
cGl4ZWwgcmVzdWx0cyBjYW4gYmUgZ3JhYmJlZCBhdCB0aGUgYXBwcm9wcmlhdGUgbW9tZW50Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA2NDEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQyIGFs
cmVhZHkgaGFzIGZhY2lsaXRpZXMgdG8gcGFpbnQgc3luY2hyb25vdXNseSwgaS5lLiBMYXllclRy
ZWVvSG9zdDo6Zm9yY2VSZXBhaW50KCkuCisgICAgICAgIFNpbmNlIExheWVyVHJlZUNvb3JkaW5h
dG9yOjpwZXJmb3JtTGF5ZXJGbHVzaCBhbHJlYWR5IGNvbW1pdHMgdGhlIHRpbGUgY2hhbmdlcwor
ICAgICAgICBzeW5jaHJvbm91c2x5LCB3ZSBjYW4gZm9yY2UgYSBwYWludCBieSBjYWxsaW5nIHBl
cmZvcm1MYXllckZsdXNoIGFuZCB0aGVuIHNlbmRpbmcgYSBtZXNzYWdlCisgICAgICAgIHRvIExh
eWVyVHJlZUNvb3JkaW5hdG9yUHJveHkgdG8gdXBkYXRlIHRoZSB2aWV3cG9ydC4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcXJhd3dlYnZpZXcvdHN0X3FyYXd3ZWJ2aWV3LmNw
cDoKKyAgICAgICAgKFdlYlZpZXc6OldlYlZpZXcpOgorICAgICAgICAoV2ViVmlldzo6dmlld05l
ZWRzRGlzcGxheSk6CisgICAgICAgIChXZWJWaWV3OjpmcmFtZUxvYWRlZCk6CisgICAgICAgIChX
ZWJWaWV3KToKKyAgICAgICAgKFdlYlZpZXc6Om9uUmVwYWludERvbmUpOgorICAgICAgICAoV2Vi
Vmlldzo6ZmluaXNoRm9yY2VSZXBhaW50KToKKyAgICAgICAgKFdlYlZpZXc6OmZpbmlzaEZpcnN0
TGF5b3V0Rm9yRnJhbWUpOgorICAgICAgICAodHN0X3FyYXd3ZWJ2aWV3Ojpkb05vQmFja2dyb3Vu
ZDEpOgorICAgICAgICAodHN0X3FyYXd3ZWJ2aWV3Ojpkb05vQmFja2dyb3VuZDIpOgorICAgICAg
ICAodHN0X3FyYXd3ZWJ2aWV3Ojpkb05vQmFja2dyb3VuZDMpOgorICAgICAgICAodHN0X3FyYXd3
ZWJ2aWV3OjpydW4pOgorICAgICAgICAgICAgVGhlIHRlc3QgZm9yIFFSYXdXZWJWaWV3IGhhcyBi
ZWVuIHVwZGF0ZWQgdG8gdXNlIHRoZSBXZWJLaXQyIEZvcmNlUGFpbnQgQVBJIHByaW9yIHRvCisg
ICAgICAgICAgICBnZW5lcmF0aW5nIHRoZSBwaXhlbCByZXN1bHRzLiBUaGlzIGhhcyBleHBvc2Vk
IGEgdGltaW5nIGJ1ZyBpbiB0aGUgdGVzdCAtIHNldHRpbmcgdGhlCisgICAgICAgICAgICB0cmFu
c3BhcmVudEJhY2tncm91bmQgcHJvcGVydHkgb2YgYSBwYWdlIGhhcyB0byBiZSBkb25lIGJlZm9y
ZSBpdCdzIGNyZWF0ZWQuIFRoaXMgaGFzCisgICAgICAgICAgICBiZWVuIGZpeGVkIGluIHRoZSB0
ZXN0LgorCisgICAgICAgICogVUlQcm9jZXNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5h
dG9yL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVl
Q29vcmRpbmF0b3I6OmZvcmNlUmVwYWludCk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNv
b3JkaW5hdG9yOjpwZXJmb3JtU2NoZWR1bGVkTGF5ZXJGbHVzaCk6CisgICAgICAgIChXZWJLaXQp
OgorCiAyMDEyLTA3LTA0ICBKb2huIE1lbGxvciAgPGpvaG5tZUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgVGV4dCBBdXRvc2l6aW5nOiBBZGQgY29tcGlsZSBmbGFnIGFuZCBydW50aW1lIHNldHRp
bmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcXJh
d3dlYnZpZXcvdHN0X3FyYXd3ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvdGVzdHMvcXJhd3dlYnZpZXcvdHN0X3FyYXd3ZWJ2aWV3LmNwcAppbmRleCA5ZjY4ODgx
ODBhNTFiM2Y3ZTA1MDMzZTk4NmUyNjhiMTM5YzQ0NGNkLi5iMzIyYmFjZDRjY2UyZGQ3N2UwZTNm
ZTliM2YzNWNiMDNiNDhkOWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3Rlc3RzL3FyYXd3ZWJ2aWV3L3RzdF9xcmF3d2Vidmlldy5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xcmF3d2Vidmlldy90c3RfcXJhd3dlYnZp
ZXcuY3BwCkBAIC01OCwxNSArNTgsMTYgQEAgc3RhdGljIFdLUGFnZUdyb3VwUmVmIHdlYlBhZ2VH
cm91cChjb25zdCBRU3RyaW5nJiBuYW1lKQogY2xhc3MgV2ViVmlldyA6IHB1YmxpYyBRT2JqZWN0
LCBwdWJsaWMgUVJhd1dlYlZpZXdDbGllbnQgewogICAgIFFfT0JKRUNUCiBwdWJsaWM6Ci0gICAg
V2ViVmlldyhjb25zdCBRU2l6ZSYgc2l6ZSkKKyAgICBXZWJWaWV3KGNvbnN0IFFTaXplJiBzaXpl
LCBib29sIHRyYW5zcGFyZW50ID0gZmFsc2UpCiAgICAgewogICAgICAgICBXS1BhZ2VMb2FkZXJD
bGllbnQgbG9hZGVyQ2xpZW50OwogICAgICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6
ZW9mKFdLUGFnZUxvYWRlckNsaWVudCkpOwogICAgICAgICBsb2FkZXJDbGllbnQuY2xpZW50SW5m
byA9IHRoaXM7Ci0gICAgICAgIGxvYWRlckNsaWVudC5kaWRGaW5pc2hMb2FkRm9yRnJhbWUgPSBX
ZWJWaWV3OjpmaW5pc2hMb2FkRm9yRnJhbWU7CisgICAgICAgIGxvYWRlckNsaWVudC5kaWRGaXJz
dFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZSA9IFdlYlZpZXc6OmZpbmlzaEZpcnN0TGF5
b3V0Rm9yRnJhbWU7CiAKICAgICAgICAgbV93ZWJWaWV3ID0gbmV3IFFSYXdXZWJWaWV3KHdlYkNv
bnRleHQoKSwgd2ViUGFnZUdyb3VwKFFTdHJpbmcoKSksIHRoaXMpOwogICAgICAgICBXS1BhZ2VT
ZXRQYWdlTG9hZGVyQ2xpZW50KG1fd2ViVmlldy0+cGFnZVJlZigpLCAmbG9hZGVyQ2xpZW50KTsK
KyAgICAgICAgbV93ZWJWaWV3LT5zZXRUcmFuc3BhcmVudEJhY2tncm91bmQodHJhbnNwYXJlbnQp
OwogICAgICAgICBtX3dlYlZpZXctPmNyZWF0ZSgpOwogICAgICAgICBXS1BhZ2VTZXRVc2VGaXhl
ZExheW91dChtX3dlYlZpZXctPnBhZ2VSZWYoKSwgdHJ1ZSk7CiAKQEAgLTkxLDggKzkyLDYgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB2aWV3TmVlZHNEaXNwbGF5KGNvbnN0IFFSZWN0JikK
ICAgICB7CiAgICAgICAgIG1fd2ViVmlldy0+cGFpbnQoUU1hdHJpeDR4NCgpLCAxLCAwKTsKLSAg
ICAgICAgaWYgKG1fZnJhbWVMb2FkZWQpCi0gICAgICAgICAgICBlbWl0IGxvYWRlZCgpOwogICAg
IH0KIAogICAgIHZpcnR1YWwgdm9pZCB2aWV3UmVxdWVzdGVkU2Nyb2xsKGNvbnN0IFFQb2ludCYp
IHsgfQpAQCAtMTAzLDcgKzEwMiwyNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRvbmVX
aXRoS2V5RXZlbnQoY29uc3QgUUtleUV2ZW50KiwgYm9vbCB3YXNIYW5kbGVkKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IFFUb3VjaEV2ZW50KiwgYm9vbCB3
YXNIYW5kbGVkKSB7IH0KIAotICAgIHN0YXRpYyB2b2lkIGZpbmlzaExvYWRGb3JGcmFtZShXS1Bh
Z2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2
b2lkICpjbGllbnRJbmZvKTsKKyAgICB2b2lkIGZyYW1lTG9hZGVkKCkKKyAgICB7CisgICAgICAg
IG1fZnJhbWVMb2FkZWQgPSB0cnVlOworICAgICAgICBXS1BhZ2VGb3JjZVJlcGFpbnQobV93ZWJW
aWV3LT5wYWdlUmVmKCksIHRoaXMsIGZpbmlzaEZvcmNlUmVwYWludCk7CisgICAgfQorCisgICAg
dm9pZCBvblJlcGFpbnREb25lKCkKKyAgICB7CisgICAgICAgIGVtaXQgbG9hZGVkKCk7CisgICAg
fQorCisgICAgc3RhdGljIHZvaWQgZmluaXNoRm9yY2VSZXBhaW50KFdLRXJyb3JSZWYsIHZvaWQq
IGNvbnRleHQpCisgICAgeworICAgICAgICBzdGF0aWNfY2FzdDxXZWJWaWV3Kj4oY29udGV4dCkt
Pm9uUmVwYWludERvbmUoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBmaW5pc2hGaXJzdExh
eW91dEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYg
dXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCisgICAgeworICAgICAgICBzdGF0aWNf
Y2FzdDxXZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5mcmFtZUxvYWRl
ZCgpOworICAgIH0KIAogc2lnbmFsczoKICAgICB2b2lkIGxvYWRlZCgpOwpAQCAtMTEzLDEyICsx
MzEsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9mcmFtZUxvYWRlZDsKIH07CiAKLXZvaWQgV2Vi
Vmlldzo6ZmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1l
LCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCi17Ci0gICAgV2Vi
Vmlldyogb2JqID0gc3RhdGljX2Nhc3Q8V2ViVmlldyo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVu
dEluZm8pKTsKLSAgICBvYmotPm1fZnJhbWVMb2FkZWQgPSB0cnVlOwotfQotCiBzdGF0aWMgYm9v
bCBjb21wYXJlSW1hZ2VzKGNvbnN0IFFJbWFnZSYgaTEsIGNvbnN0IFFJbWFnZSYgaTIsIGludCBj
b3VudCkKIHsKICAgICBpZiAoaTEuc2l6ZSgpICE9IGkyLnNpemUoKSkKQEAgLTE2OSwzNyArMTgx
LDMxIEBAIHZvaWQgdHN0X3FyYXd3ZWJ2aWV3Ojpkb1BhaW50KGNvbnN0IFFTaXplJiBzaXplKQog
CiB2b2lkIHRzdF9xcmF3d2Vidmlldzo6ZG9Ob0JhY2tncm91bmQxKGNvbnN0IFFTaXplJiBzaXpl
KQogewotICAgIFdlYlZpZXcgdmlldyhzaXplKTsKLSAgICB2aWV3LnNldFRyYW5zcGFyZW50QmFj
a2dyb3VuZCh0cnVlKTsKKyAgICBXZWJWaWV3IHZpZXcoc2l6ZSwgdHJ1ZSk7CiAgICAgdmlldy5s
b2FkKG1fYmFzZVVybCArICIvcmVkc3F1YXJlLmh0bWwiKTsKICAgICB2aWV3LmxvYWQobV9iYXNl
VXJsICsgIi9ibHVlc3F1YXJlLmh0bWwiKTsKIH0KIAogdm9pZCB0c3RfcXJhd3dlYnZpZXc6OmRv
Tm9CYWNrZ3JvdW5kMihjb25zdCBRU2l6ZSYgc2l6ZSkKIHsKLSAgICBXZWJWaWV3IHZpZXcxKHNp
emUpOwotICAgIHZpZXcxLnNldFRyYW5zcGFyZW50QmFja2dyb3VuZCh0cnVlKTsKKyAgICBXZWJW
aWV3IHZpZXcxKHNpemUsIHRydWUpOwogICAgIHZpZXcxLmxvYWQobV9iYXNlVXJsICsgIi9yZWRz
cXVhcmUuaHRtbCIpOwogCi0gICAgV2ViVmlldyB2aWV3MihzaXplKTsKLSAgICB2aWV3Mi5zZXRU
cmFuc3BhcmVudEJhY2tncm91bmQodHJ1ZSk7CisgICAgV2ViVmlldyB2aWV3MihzaXplLCB0cnVl
KTsKICAgICB2aWV3Mi5sb2FkKG1fYmFzZVVybCArICIvYmx1ZXNxdWFyZS5odG1sIik7CiB9CiAK
IHZvaWQgdHN0X3FyYXd3ZWJ2aWV3Ojpkb05vQmFja2dyb3VuZDMoY29uc3QgUVNpemUmIHNpemUp
CiB7Ci0gICAgV2ViVmlldyB2aWV3MShzaXplKTsKLSAgICB2aWV3MS5zZXRUcmFuc3BhcmVudEJh
Y2tncm91bmQoZmFsc2UpOworICAgIFdlYlZpZXcgdmlldzEoc2l6ZSwgZmFsc2UpOwogICAgIHZp
ZXcxLmxvYWQobV9iYXNlVXJsICsgIi9yZWRzcXVhcmUuaHRtbCIpOwogCi0gICAgV2ViVmlldyB2
aWV3MihzaXplKTsKLSAgICB2aWV3Mi5zZXRUcmFuc3BhcmVudEJhY2tncm91bmQodHJ1ZSk7Cisg
ICAgV2ViVmlldyB2aWV3MihzaXplLCB0cnVlKTsKICAgICB2aWV3Mi5sb2FkKG1fYmFzZVVybCAr
ICIvYmx1ZXNxdWFyZS5odG1sIik7CiB9CiAKIHZvaWQgdHN0X3FyYXd3ZWJ2aWV3OjpydW4oUGFp
bnRNZXRob2QgbWV0aG9kLCBjb25zdCBRU3RyaW5nJiBleHBlY3RhdGlvbikKIHsKLQogICAgIFFX
aW5kb3cgd2luZG93OwogICAgIHdpbmRvdy5zZXRTdXJmYWNlVHlwZShRU3VyZmFjZTo6T3BlbkdM
U3VyZmFjZSk7CiAgICAgd2luZG93LnNldEdlb21ldHJ5KDAsIDAsIDIwMCwgMjAwKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUNvb3JkaW5h
dG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYzI4NGI5MTViZDg2ZjU2NWMxY2I2ZmFjMDIwYTkz
NjhiOTE5YmRiYi4uYjdmODFmZjc5Yzg0ZWMwYTE2ZDczOGJiMzljMTA2NWE3YWM1MDBjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUNv
b3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTM0LDUgKzM0LDYgQEAgbWVzc2FnZXMgLT4g
TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSB7CiAgICAgRGlkUmVuZGVyRnJhbWUoKQogICAgIERp
ZENoYW5nZVNjcm9sbFBvc2l0aW9uKFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKQogICAgIFN5
bmNDYW52YXModWludDMyX3QgaWQsIFdlYkNvcmU6OkludFNpemUgY2FudmFzU2l6ZSwgdWludDMy
X3QgZ3JhcGhpY3NTdXJmYWNlVG9rZW4pCisgICAgVXBkYXRlVmlld3BvcnQoKQogfQogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVl
Q29vcmRpbmF0b3IvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5hdG9yL0xheWVyVHJlZUNvb3JkaW5hdG9y
LmNwcAppbmRleCBmM2U4NzM1ZTVjMWI2NTAzYTcyMDQxNjk3YmQ1ZDI4NjQ3ODQwODJkLi5kYjZk
YzAzNzk5OWEzMTY0ZTExY2Y3NDEzYmIyZjgzNzBmMmZlNWUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlQ29vcmRpbmF0b3IvTGF5ZXJUcmVl
Q29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9M
YXllclRyZWVDb29yZGluYXRvci9MYXllclRyZWVDb29yZGluYXRvci5jcHAKQEAgLTE3NCw3ICsx
NzQsOSBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzY3JvbGxOb25Db21wb3NpdGVkQ29u
dGVudHMoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcwogCiB2b2lkIExheWVyVHJlZUNvb3JkaW5h
dG9yOjpmb3JjZVJlcGFpbnQoKQogewotICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOworICAgIHBl
cmZvcm1TY2hlZHVsZWRMYXllckZsdXNoKCk7CisgICAgbV9sYXllckZsdXNoVGltZXIuc3RvcCgp
OworICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94
eTo6VXBkYXRlVmlld3BvcnQoKSk7CiB9CiAKIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnNp
emVEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgbmV3U2l6ZSkKQEAgLTM0Niw2ICsz
NDgsNyBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpwZXJmb3JtU2NoZWR1bGVkTGF5ZXJG
bHVzaCgpCiAKICAgICBtX3Nob3VsZFN5bmNGcmFtZSA9IGZhbHNlOwogICAgIGZsdXNoUGVuZGlu
Z0xheWVyQ2hhbmdlcygpOworCiAgICAgaWYgKCFtX3Nob3VsZFN5bmNGcmFtZSkKICAgICAgICAg
cmV0dXJuOwogCkBAIC0zNjUsNiArMzY4LDcgQEAgdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6
cGVyZm9ybVNjaGVkdWxlZExheWVyRmx1c2goKQogICAgIG1fbm90aWZ5QWZ0ZXJTY2hlZHVsZWRM
YXllckZsdXNoID0gZmFsc2U7CiB9CiAKKwogdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6bGF5
ZXJGbHVzaFRpbWVyRmlyZWQoVGltZXI8TGF5ZXJUcmVlQ29vcmRpbmF0b3I+KikKIHsKICAgICBw
ZXJmb3JtU2NoZWR1bGVkTGF5ZXJGbHVzaCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGY2ZWQ3NDRkYzllZTEyNWE4NjhiNjhjYmJmMjQ0Nzhj
OTA3MmI2MjUuLjE3MzU3YmI0M2Y5NmVhMmY3NWMwNDg1N2MzYjc5YzQ2ZTQ3OWZlMzAgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxMi0wNy0wOCAgTm8nYW0gUm9zZW50aGFsICA8bm9hbS5yb3NlbnRoYWxAbm9raWEu
Y29tPgorCisgICAgICAgIFtRdF0gUVJhd1dlYlZpZXcgc2hvdWxkIG5vdGlmeSB3aGVuIHJlbmRl
cmluZyBpcyBkb25lLCBzbyB0aGF0IHBpeGVsIHJlc3VsdHMgY2FuIGJlIGdyYWJiZWQgYXQgdGhl
IGFwcHJvcHJpYXRlIG1vbWVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTkwNjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9yYXcvVmlldy5oOiBDb21tZW50IHVzZWQgb2xk
IGNsYXNzIG5hbWUgKFdLVmlldykuCisgICAgICAgIChWaWV3KToKKwogMjAxMi0wNy0wNCAgTm8n
YW0gUm9zZW50aGFsICA8bm9hbS5yb3NlbnRoYWxAbm9raWEuY29tPgogCiAgICAgICAgIFNoYXJl
ZCBjb2RlIHRoYXQgaXMgZ3VhcmRlZCB3aXRoIEVOQUJMRShXRUJHTCkgc2hvdWxkIGJlIGd1YXJk
ZWQgd2l0aCBVU0UoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvcmF3L1ZpZXcu
aCBiL1Rvb2xzL01pbmlCcm93c2VyL3F0L3Jhdy9WaWV3LmgKaW5kZXggNmRlN2EyNWUyMTQ1Njll
NDUzMWE1ODA4MmY3MjUyMTlmNmEyNDEyNS4uZTUzMjIzZjg5NmUzMjhmYzI5Zjc3MzU5OThiMmJi
OTE2MDRmNGY4MSAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvcmF3L1ZpZXcuaAor
KysgYi9Ub29scy9NaW5pQnJvd3Nlci9xdC9yYXcvVmlldy5oCkBAIC0zMSw3ICszMSw3IEBAIHB1
YmxpYzoKICAgICBWaWV3KGNvbnN0IFFTdHJpbmcmIHVybCk7CiAgICAgflZpZXcoKTsKIAotcHVi
bGljOiAvLyBXS1ZpZXdDbGllbnQKK3B1YmxpYzogLy8gUVJhd1dlYlZpZXdDbGllbnQKICAgICB2
aXJ0dWFsIHZvaWQgdmlld05lZWRzRGlzcGxheShjb25zdCBRUmVjdCYpOwogICAgIHZpcnR1YWwg
dm9pZCB2aWV3UmVxdWVzdGVkU2Nyb2xsKGNvbnN0IFFQb2ludCYpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCB2aWV3UHJvY2Vzc0NyYXNoZWQoKSB7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151277</attachid>
            <date>2012-07-09 10:53:47 -0700</date>
            <delta_ts>2012-07-10 11:13:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90641-20120709105336.patch</filename>
            <type>text/plain</type>
            <size>11312</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTNmYTliNWJhZjNlNDk1
NmY1MTllNzY4N2MwNWI0MTUyN2EwZjZjZS4uNTFkNGFiODg4ODM2ZDRmNmUxNzFjNWIzNTllZGQx
NTYxZTNhMmQxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA3LTA4ICBObydh
bSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBR
UmF3V2ViVmlldyBzaG91bGQgbm90aWZ5IHdoZW4gcmVuZGVyaW5nIGlzIGRvbmUsIHNvIHRoYXQg
cGl4ZWwgcmVzdWx0cyBjYW4gYmUgZ3JhYmJlZCBhdCB0aGUgYXBwcm9wcmlhdGUgbW9tZW50Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA2NDEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQg
TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmZvcmNlUmVwYWludCB3aXRoIGxvZ2ljIGVxdWl2YWxlbnQg
dG8gdGhlIG9uZSBpbgorICAgICAgICBMYXllclRyZWVIb3N0Q0EuIElmIHdlIGZsdXNoIHRoZSBs
YXllcnMgc3luY2hyb25vdXNseSB3aGVuIGZvcmNlUmVwYWludCBpcyBjYWxsZWQsd2hlbgorICAg
ICAgICBXS1BhZ2VGb3JjZVJlcGFpbnQgcmV0dXJucyB3ZSBhcmUgZ3VhcmFudGVlZCB0byBoYXZl
IGFuIHVwLXRvLWRhdGUgaW1hZ2UsIGFzIHRoZSB2aXNpYmxlCisgICAgICAgIHRpbGVzIGFyZSBh
bHNvIHN5bmNocm9ub3VzbHkgdXBkYXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQv
dGVzdHMvcXJhd3dlYnZpZXcvdHN0X3FyYXd3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6
OldlYlZpZXcpOgorICAgICAgICAoV2ViVmlldzo6dmlld05lZWRzRGlzcGxheSk6CisgICAgICAg
IChXZWJWaWV3OjpmcmFtZUxvYWRlZCk6CisgICAgICAgIChXZWJWaWV3KToKKyAgICAgICAgKFdl
YlZpZXc6Om9uUmVwYWludERvbmUpOgorICAgICAgICAoV2ViVmlldzo6ZmluaXNoRm9yY2VSZXBh
aW50KToKKyAgICAgICAgKFdlYlZpZXc6OmZpbmlzaEZpcnN0TGF5b3V0Rm9yRnJhbWUpOgorICAg
ICAgICAodHN0X3FyYXd3ZWJ2aWV3Ojpkb05vQmFja2dyb3VuZDEpOgorICAgICAgICAodHN0X3Fy
YXd3ZWJ2aWV3Ojpkb05vQmFja2dyb3VuZDIpOgorICAgICAgICAodHN0X3FyYXd3ZWJ2aWV3Ojpk
b05vQmFja2dyb3VuZDMpOgorICAgICAgICAodHN0X3FyYXd3ZWJ2aWV3OjpydW4pOgorICAgICAg
ICAgICAgVGhlIHRlc3QgZm9yIFFSYXdXZWJWaWV3IGhhcyBiZWVuIHVwZGF0ZWQgdG8gdXNlIHRo
ZSBXZWJLaXQyIEZvcmNlUGFpbnQgQVBJIHByaW9yIHRvCisgICAgICAgICAgICBnZW5lcmF0aW5n
IHRoZSBwaXhlbCByZXN1bHRzLiBUaGlzIGhhcyBleHBvc2VkIGEgdGltaW5nIGJ1ZyBpbiB0aGUg
dGVzdCAtIHNldHRpbmcgdGhlCisgICAgICAgICAgICB0cmFuc3BhcmVudEJhY2tncm91bmQgcHJv
cGVydHkgb2YgYSBwYWdlIGhhcyB0byBiZSBkb25lIGJlZm9yZSBpdCdzIGNyZWF0ZWQuIFRoaXMg
aGFzCisgICAgICAgICAgICBiZWVuIGZpeGVkIGluIHRoZSB0ZXN0LgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5hdG9yL0xheWVyVHJlZUNvb3JkaW5hdG9y
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmZvcmNlUmVwYWlu
dCk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpwZXJmb3JtU2NoZWR1
bGVkTGF5ZXJGbHVzaCk6CisgICAgICAgIChXZWJLaXQpOgorCiAyMDEyLTA3LTA0ICBKb2huIE1l
bGxvciAgPGpvaG5tZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVGV4dCBBdXRvc2l6aW5nOiBB
ZGQgY29tcGlsZSBmbGFnIGFuZCBydW50aW1lIHNldHRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcXJhd3dlYnZpZXcvdHN0X3FyYXd3ZWJ2aWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcXJhd3dlYnZpZXcv
dHN0X3FyYXd3ZWJ2aWV3LmNwcAppbmRleCA5ZjY4ODgxODBhNTFiM2Y3ZTA1MDMzZTk4NmUyNjhi
MTM5YzQ0NGNkLi5iMzIyYmFjZDRjY2UyZGQ3N2UwZTNmZTliM2YzNWNiMDNiNDhkOWZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FyYXd3ZWJ2aWV3
L3RzdF9xcmF3d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC90ZXN0cy9xcmF3d2Vidmlldy90c3RfcXJhd3dlYnZpZXcuY3BwCkBAIC01OCwxNSArNTgsMTYg
QEAgc3RhdGljIFdLUGFnZUdyb3VwUmVmIHdlYlBhZ2VHcm91cChjb25zdCBRU3RyaW5nJiBuYW1l
KQogY2xhc3MgV2ViVmlldyA6IHB1YmxpYyBRT2JqZWN0LCBwdWJsaWMgUVJhd1dlYlZpZXdDbGll
bnQgewogICAgIFFfT0JKRUNUCiBwdWJsaWM6Ci0gICAgV2ViVmlldyhjb25zdCBRU2l6ZSYgc2l6
ZSkKKyAgICBXZWJWaWV3KGNvbnN0IFFTaXplJiBzaXplLCBib29sIHRyYW5zcGFyZW50ID0gZmFs
c2UpCiAgICAgewogICAgICAgICBXS1BhZ2VMb2FkZXJDbGllbnQgbG9hZGVyQ2xpZW50OwogICAg
ICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKFdLUGFnZUxvYWRlckNsaWVudCkp
OwogICAgICAgICBsb2FkZXJDbGllbnQuY2xpZW50SW5mbyA9IHRoaXM7Ci0gICAgICAgIGxvYWRl
ckNsaWVudC5kaWRGaW5pc2hMb2FkRm9yRnJhbWUgPSBXZWJWaWV3OjpmaW5pc2hMb2FkRm9yRnJh
bWU7CisgICAgICAgIGxvYWRlckNsaWVudC5kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRG
b3JGcmFtZSA9IFdlYlZpZXc6OmZpbmlzaEZpcnN0TGF5b3V0Rm9yRnJhbWU7CiAKICAgICAgICAg
bV93ZWJWaWV3ID0gbmV3IFFSYXdXZWJWaWV3KHdlYkNvbnRleHQoKSwgd2ViUGFnZUdyb3VwKFFT
dHJpbmcoKSksIHRoaXMpOwogICAgICAgICBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KG1fd2Vi
Vmlldy0+cGFnZVJlZigpLCAmbG9hZGVyQ2xpZW50KTsKKyAgICAgICAgbV93ZWJWaWV3LT5zZXRU
cmFuc3BhcmVudEJhY2tncm91bmQodHJhbnNwYXJlbnQpOwogICAgICAgICBtX3dlYlZpZXctPmNy
ZWF0ZSgpOwogICAgICAgICBXS1BhZ2VTZXRVc2VGaXhlZExheW91dChtX3dlYlZpZXctPnBhZ2VS
ZWYoKSwgdHJ1ZSk7CiAKQEAgLTkxLDggKzkyLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCB2aWV3TmVlZHNEaXNwbGF5KGNvbnN0IFFSZWN0JikKICAgICB7CiAgICAgICAgIG1fd2ViVmll
dy0+cGFpbnQoUU1hdHJpeDR4NCgpLCAxLCAwKTsKLSAgICAgICAgaWYgKG1fZnJhbWVMb2FkZWQp
Ci0gICAgICAgICAgICBlbWl0IGxvYWRlZCgpOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCB2
aWV3UmVxdWVzdGVkU2Nyb2xsKGNvbnN0IFFQb2ludCYpIHsgfQpAQCAtMTAzLDcgKzEwMiwyNiBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRvbmVXaXRoS2V5RXZlbnQoY29uc3QgUUtleUV2
ZW50KiwgYm9vbCB3YXNIYW5kbGVkKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZG9uZVdpdGhUb3Vj
aEV2ZW50KGNvbnN0IFFUb3VjaEV2ZW50KiwgYm9vbCB3YXNIYW5kbGVkKSB7IH0KIAotICAgIHN0
YXRpYyB2b2lkIGZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBm
cmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKKyAgICB2
b2lkIGZyYW1lTG9hZGVkKCkKKyAgICB7CisgICAgICAgIG1fZnJhbWVMb2FkZWQgPSB0cnVlOwor
ICAgICAgICBXS1BhZ2VGb3JjZVJlcGFpbnQobV93ZWJWaWV3LT5wYWdlUmVmKCksIHRoaXMsIGZp
bmlzaEZvcmNlUmVwYWludCk7CisgICAgfQorCisgICAgdm9pZCBvblJlcGFpbnREb25lKCkKKyAg
ICB7CisgICAgICAgIGVtaXQgbG9hZGVkKCk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgZmlu
aXNoRm9yY2VSZXBhaW50KFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpCisgICAgeworICAgICAg
ICBzdGF0aWNfY2FzdDxXZWJWaWV3Kj4oY29udGV4dCktPm9uUmVwYWludERvbmUoKTsKKyAgICB9
CisKKyAgICBzdGF0aWMgdm9pZCBmaW5pc2hGaXJzdExheW91dEZvckZyYW1lKFdLUGFnZVJlZiBw
YWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNs
aWVudEluZm8pCisgICAgeworICAgICAgICBzdGF0aWNfY2FzdDxXZWJWaWV3Kj4oY29uc3RfY2Fz
dDx2b2lkKj4oY2xpZW50SW5mbykpLT5mcmFtZUxvYWRlZCgpOworICAgIH0KIAogc2lnbmFsczoK
ICAgICB2b2lkIGxvYWRlZCgpOwpAQCAtMTEzLDEyICsxMzEsNiBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9mcmFtZUxvYWRlZDsKIH07CiAKLXZvaWQgV2ViVmlldzo6ZmluaXNoTG9hZEZvckZyYW1l
KFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNv
bnN0IHZvaWQgKmNsaWVudEluZm8pCi17Ci0gICAgV2ViVmlldyogb2JqID0gc3RhdGljX2Nhc3Q8
V2ViVmlldyo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKLSAgICBvYmotPm1fZnJh
bWVMb2FkZWQgPSB0cnVlOwotfQotCiBzdGF0aWMgYm9vbCBjb21wYXJlSW1hZ2VzKGNvbnN0IFFJ
bWFnZSYgaTEsIGNvbnN0IFFJbWFnZSYgaTIsIGludCBjb3VudCkKIHsKICAgICBpZiAoaTEuc2l6
ZSgpICE9IGkyLnNpemUoKSkKQEAgLTE2OSwzNyArMTgxLDMxIEBAIHZvaWQgdHN0X3FyYXd3ZWJ2
aWV3Ojpkb1BhaW50KGNvbnN0IFFTaXplJiBzaXplKQogCiB2b2lkIHRzdF9xcmF3d2Vidmlldzo6
ZG9Ob0JhY2tncm91bmQxKGNvbnN0IFFTaXplJiBzaXplKQogewotICAgIFdlYlZpZXcgdmlldyhz
aXplKTsKLSAgICB2aWV3LnNldFRyYW5zcGFyZW50QmFja2dyb3VuZCh0cnVlKTsKKyAgICBXZWJW
aWV3IHZpZXcoc2l6ZSwgdHJ1ZSk7CiAgICAgdmlldy5sb2FkKG1fYmFzZVVybCArICIvcmVkc3F1
YXJlLmh0bWwiKTsKICAgICB2aWV3LmxvYWQobV9iYXNlVXJsICsgIi9ibHVlc3F1YXJlLmh0bWwi
KTsKIH0KIAogdm9pZCB0c3RfcXJhd3dlYnZpZXc6OmRvTm9CYWNrZ3JvdW5kMihjb25zdCBRU2l6
ZSYgc2l6ZSkKIHsKLSAgICBXZWJWaWV3IHZpZXcxKHNpemUpOwotICAgIHZpZXcxLnNldFRyYW5z
cGFyZW50QmFja2dyb3VuZCh0cnVlKTsKKyAgICBXZWJWaWV3IHZpZXcxKHNpemUsIHRydWUpOwog
ICAgIHZpZXcxLmxvYWQobV9iYXNlVXJsICsgIi9yZWRzcXVhcmUuaHRtbCIpOwogCi0gICAgV2Vi
VmlldyB2aWV3MihzaXplKTsKLSAgICB2aWV3Mi5zZXRUcmFuc3BhcmVudEJhY2tncm91bmQodHJ1
ZSk7CisgICAgV2ViVmlldyB2aWV3MihzaXplLCB0cnVlKTsKICAgICB2aWV3Mi5sb2FkKG1fYmFz
ZVVybCArICIvYmx1ZXNxdWFyZS5odG1sIik7CiB9CiAKIHZvaWQgdHN0X3FyYXd3ZWJ2aWV3Ojpk
b05vQmFja2dyb3VuZDMoY29uc3QgUVNpemUmIHNpemUpCiB7Ci0gICAgV2ViVmlldyB2aWV3MShz
aXplKTsKLSAgICB2aWV3MS5zZXRUcmFuc3BhcmVudEJhY2tncm91bmQoZmFsc2UpOworICAgIFdl
YlZpZXcgdmlldzEoc2l6ZSwgZmFsc2UpOwogICAgIHZpZXcxLmxvYWQobV9iYXNlVXJsICsgIi9y
ZWRzcXVhcmUuaHRtbCIpOwogCi0gICAgV2ViVmlldyB2aWV3MihzaXplKTsKLSAgICB2aWV3Mi5z
ZXRUcmFuc3BhcmVudEJhY2tncm91bmQodHJ1ZSk7CisgICAgV2ViVmlldyB2aWV3MihzaXplLCB0
cnVlKTsKICAgICB2aWV3Mi5sb2FkKG1fYmFzZVVybCArICIvYmx1ZXNxdWFyZS5odG1sIik7CiB9
CiAKIHZvaWQgdHN0X3FyYXd3ZWJ2aWV3OjpydW4oUGFpbnRNZXRob2QgbWV0aG9kLCBjb25zdCBR
U3RyaW5nJiBleHBlY3RhdGlvbikKIHsKLQogICAgIFFXaW5kb3cgd2luZG93OwogICAgIHdpbmRv
dy5zZXRTdXJmYWNlVHlwZShRU3VyZmFjZTo6T3BlbkdMU3VyZmFjZSk7CiAgICAgd2luZG93LnNl
dEdlb21ldHJ5KDAsIDAsIDIwMCwgMjAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVDb29yZGluYXRvci9MYXllclRyZWVDb29yZGluYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlQ29vcmRp
bmF0b3IvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCmluZGV4IGYzZTg3MzVlNWMxYjY1MDNhNzIw
NDE2OTdiZDVkMjg2NDc4NDA4MmQuLmZkZmFiNGJhZWI4MmUxMzFmNDBiODBmYjg3MmFhMDc2NDAz
ODg3ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXll
clRyZWVDb29yZGluYXRvci9MYXllclRyZWVDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5hdG9yL0xheWVyVHJlZUNv
b3JkaW5hdG9yLmNwcApAQCAtMTc1LDYgKzE3NSw3IEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0
b3I6OnNjcm9sbE5vbkNvbXBvc2l0ZWRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBz
CiB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpmb3JjZVJlcGFpbnQoKQogewogICAgIHNjaGVk
dWxlTGF5ZXJGbHVzaCgpOworICAgIGZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpOwogfQogCiB2
b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzaXplRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIG5ld1NpemUpCkBAIC0yMzIsMTEgKzIzMywyNSBAQCB2b2lkIExheWVyVHJlZUNvb3Jk
aW5hdG9yOjpzZXRQYWdlT3ZlcmxheU9wYWNpdHkoZmxvYXQgdmFsdWUpCiBib29sIExheWVyVHJl
ZUNvb3JkaW5hdG9yOjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKQogewogICAgIGJvb2wgZGlk
U3luYyA9IG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKS0+c3luY0Nv
bXBvc2l0aW5nU3RhdGVJbmNsdWRpbmdTdWJmcmFtZXMoKTsKKyAgICBtX3Nob3VsZFN5bmNGcmFt
ZSA9IGZhbHNlOwogICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c3luY0NvbXBvc2l0
aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAgICAgaWYgKG1fcGFnZU92ZXJsYXlMYXllcikK
ICAgICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNM
YXllck9ubHkoKTsKIAogICAgIG1fcm9vdExheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRo
aXNMYXllck9ubHkoKTsKKyAgICBkaWRTeW5jID0gZGlkU3luYyB8fCBtX3Nob3VsZFN5bmNGcmFt
ZTsKKyAgICBtX3Nob3VsZFN5bmNGcmFtZSA9IGZhbHNlOworCisgICAgaWYgKCFkaWRTeW5jKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAobV9zaG91bGRTeW5jUm9vdExheWVyKSB7
CisgICAgICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eTo6U2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIodG9XZWJHcmFwaGljc0xheWVyKG1fcm9vdExh
eWVyLmdldCgpKS0+aWQoKSkpOworICAgICAgICBtX3Nob3VsZFN5bmNSb290TGF5ZXIgPSBmYWxz
ZTsKKyAgICB9CisKKyAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHk6OkRpZFJlbmRlckZyYW1lKCkpOworICAgIG1fd2FpdGluZ0ZvclVJUHJvY2Vz
cyA9IHRydWU7CiAgICAgcmV0dXJuIGRpZFN5bmM7CiB9CiAKQEAgLTM0NCwyNSArMzU5LDE4IEBA
IHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnBlcmZvcm1TY2hlZHVsZWRMYXllckZsdXNoKCkK
ICAgICBpZiAoIW1faXNWYWxpZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9zaG91bGRTeW5j
RnJhbWUgPSBmYWxzZTsKLSAgICBmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKTsKLSAgICBpZiAo
IW1fc2hvdWxkU3luY0ZyYW1lKQorICAgIGlmICghZmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX3Nob3VsZFN5bmNSb290TGF5ZXIpIHsKLSAg
ICAgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5
OjpTZXRSb290Q29tcG9zaXRpbmdMYXllcih0b1dlYkdyYXBoaWNzTGF5ZXIobV9yb290TGF5ZXIu
Z2V0KCkpLT5pZCgpKSk7Ci0gICAgICAgIG1fc2hvdWxkU3luY1Jvb3RMYXllciA9IGZhbHNlOwot
ICAgIH0KLQotICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0
b3JQcm94eTo6RGlkUmVuZGVyRnJhbWUoKSk7Ci0gICAgbV93YWl0aW5nRm9yVUlQcm9jZXNzID0g
dHJ1ZTsKLQotICAgIGlmICghbV9ub3RpZnlBZnRlclNjaGVkdWxlZExheWVyRmx1c2gpCi0gICAg
ICAgIHJldHVybjsKKyAgICBkaWRQZXJmb3JtU2NoZWR1bGVkTGF5ZXJGbHVzaCgpOworfQogCi0g
ICAgLy8gTGV0IHRoZSBkcmF3aW5nIGFyZWEga25vdyB0aGF0IHdlJ3ZlIGRvbmUgYSBmbHVzaCBv
ZiB0aGUgbGF5ZXIgY2hhbmdlcy4KLSAgICBzdGF0aWNfY2FzdDxEcmF3aW5nQXJlYUltcGwqPiht
X3dlYlBhZ2UtPmRyYXdpbmdBcmVhKCkpLT5sYXllckhvc3REaWRGbHVzaExheWVycygpOwotICAg
IG1fbm90aWZ5QWZ0ZXJTY2hlZHVsZWRMYXllckZsdXNoID0gZmFsc2U7Cit2b2lkIExheWVyVHJl
ZUNvb3JkaW5hdG9yOjpkaWRQZXJmb3JtU2NoZWR1bGVkTGF5ZXJGbHVzaCgpCit7CisgICAgaWYg
KG1fbm90aWZ5QWZ0ZXJTY2hlZHVsZWRMYXllckZsdXNoKSB7CisgICAgICAgIHN0YXRpY19jYXN0
PERyYXdpbmdBcmVhSW1wbCo+KG1fd2ViUGFnZS0+ZHJhd2luZ0FyZWEoKSktPmxheWVySG9zdERp
ZEZsdXNoTGF5ZXJzKCk7CisgICAgICAgIG1fbm90aWZ5QWZ0ZXJTY2hlZHVsZWRMYXllckZsdXNo
ID0gZmFsc2U7CisgICAgfQogfQogCiB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpsYXllckZs
dXNoVGltZXJGaXJlZChUaW1lcjxMYXllclRyZWVDb29yZGluYXRvcj4qKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5hdG9yL0xh
eWVyVHJlZUNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
TGF5ZXJUcmVlQ29vcmRpbmF0b3IvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAppbmRleCBiYzQ0OWY0
NmEyODJiMmVmYTk4OWFjY2YzZmI5NGRiNzI1NTI4ZjAzLi4xODQzNDBjMzQxMDg0YWRhN2UwODVi
MzUxYTgxYmQ4NTllODM2YjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvTGF5ZXJUcmVlQ29vcmRpbmF0b3IvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlQ29vcmRpbmF0b3Iv
TGF5ZXJUcmVlQ29vcmRpbmF0b3IuaApAQCAtMTA0LDcgKzEwNCw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKTsKICAgICB2b2lkIGNhbmNlbFBlbmRpbmdM
YXllckZsdXNoKCk7CiAgICAgdm9pZCBwZXJmb3JtU2NoZWR1bGVkTGF5ZXJGbHVzaCgpOwotICAg
IHZvaWQgc2VuZExheWVyc1RvVUkoKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1TY2hlZHVsZWRMYXll
ckZsdXNoKCk7CiAKICAgICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9yb290TGF5
ZXI7CiAKQEAgLTEzMyw2ICsxMzMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbGF5ZXJGbHVzaFRp
bWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8TGF5ZXJUcmVlQ29vcmRpbmF0b3I+Kik7CiAgICAgV2Vi
Q29yZTo6VGltZXI8TGF5ZXJUcmVlQ29vcmRpbmF0b3I+IG1fbGF5ZXJGbHVzaFRpbWVyOwogICAg
IGJvb2wgbV9sYXllckZsdXNoU2NoZWR1bGluZ0VuYWJsZWQ7CisgICAgYm9vbCBtX2lzUGVyZm9y
bWluZ0xheWVyRmx1c2g7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggZjZlZDc0NGRjOWVlMTI1YTg2OGI2OGNiYmYyNDQ3OGM5MDcy
YjYyNS4uMTczNTdiYjQzZjk2ZWEyZjc1YzA0ODU3YzNiNzljNDZlNDc5ZmUzMCAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDEyLTA3LTA4ICBObydhbSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+
CisKKyAgICAgICAgW1F0XSBRUmF3V2ViVmlldyBzaG91bGQgbm90aWZ5IHdoZW4gcmVuZGVyaW5n
IGlzIGRvbmUsIHNvIHRoYXQgcGl4ZWwgcmVzdWx0cyBjYW4gYmUgZ3JhYmJlZCBhdCB0aGUgYXBw
cm9wcmlhdGUgbW9tZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTA2NDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIE1pbmlCcm93c2VyL3F0L3Jhdy9WaWV3Lmg6IENvbW1lbnQgdXNlZCBvbGQgY2xh
c3MgbmFtZSAoV0tWaWV3KS4KKyAgICAgICAgKFZpZXcpOgorCiAyMDEyLTA3LTA0ICBObydhbSBS
b3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CiAKICAgICAgICAgU2hhcmVkIGNv
ZGUgdGhhdCBpcyBndWFyZGVkIHdpdGggRU5BQkxFKFdFQkdMKSBzaG91bGQgYmUgZ3VhcmRlZCB3
aXRoIFVTRSgpCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9yYXcvVmlldy5oIGIv
VG9vbHMvTWluaUJyb3dzZXIvcXQvcmF3L1ZpZXcuaAppbmRleCA2ZGU3YTI1ZTIxNDU2OWU0NTMx
YTU4MDgyZjcyNTIxOWY2YTI0MTI1Li5lNTMyMjNmODk2ZTMyOGZjMjlmNzczNTk5OGIyYmI5MTYw
NGY0ZjgxIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9yYXcvVmlldy5oCisrKyBi
L1Rvb2xzL01pbmlCcm93c2VyL3F0L3Jhdy9WaWV3LmgKQEAgLTMxLDcgKzMxLDcgQEAgcHVibGlj
OgogICAgIFZpZXcoY29uc3QgUVN0cmluZyYgdXJsKTsKICAgICB+VmlldygpOwogCi1wdWJsaWM6
IC8vIFdLVmlld0NsaWVudAorcHVibGljOiAvLyBRUmF3V2ViVmlld0NsaWVudAogICAgIHZpcnR1
YWwgdm9pZCB2aWV3TmVlZHNEaXNwbGF5KGNvbnN0IFFSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lk
IHZpZXdSZXF1ZXN0ZWRTY3JvbGwoY29uc3QgUVBvaW50JikgeyB9CiAgICAgdmlydHVhbCB2b2lk
IHZpZXdQcm9jZXNzQ3Jhc2hlZCgpIHsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151490</attachid>
            <date>2012-07-10 11:14:20 -0700</date>
            <delta_ts>2012-07-10 13:53:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90641-20120710111404.patch</filename>
            <type>text/plain</type>
            <size>11637</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMjM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmYzMzY4MzdjZDk0MGY0
ZTkzZTAyMzkyZTIzYjk3NjQxNzEzOGE4MC4uM2MyOGM5ZjM1ZjFkYzlkZTg0ZDk1ZmYzNmNjMzAz
Mzc2NTU1ZmQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA3LTEwICBObydh
bSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBR
UmF3V2ViVmlldyBzaG91bGQgbm90aWZ5IHdoZW4gcmVuZGVyaW5nIGlzIGRvbmUsIHNvIHRoYXQg
cGl4ZWwgcmVzdWx0cyBjYW4gYmUgZ3JhYmJlZCBhdCB0aGUgYXBwcm9wcmlhdGUgbW9tZW50Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA2NDEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQg
TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmZvcmNlUmVwYWludCB3aXRoIGxvZ2ljIGVxdWl2YWxlbnQg
dG8gdGhlIG9uZSBpbgorICAgICAgICBMYXllclRyZWVIb3N0Q0EuIElmIHdlIGZsdXNoIHRoZSBs
YXllcnMgc3luY2hyb25vdXNseSB3aGVuIGZvcmNlUmVwYWludCBpcyBjYWxsZWQsd2hlbgorICAg
ICAgICBXS1BhZ2VGb3JjZVJlcGFpbnQgcmV0dXJucyB3ZSBhcmUgZ3VhcmFudGVlZCB0byBoYXZl
IGFuIHVwLXRvLWRhdGUgaW1hZ2UsIGFzIHRoZSB2aXNpYmxlCisgICAgICAgIHRpbGVzIGFyZSBh
bHNvIHN5bmNocm9ub3VzbHkgdXBkYXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQv
dGVzdHMvcXJhd3dlYnZpZXcvdHN0X3FyYXd3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6
OldlYlZpZXcpOgorICAgICAgICAoV2ViVmlldzo6dmlld05lZWRzRGlzcGxheSk6CisgICAgICAg
IChXZWJWaWV3OjpmcmFtZUxvYWRlZCk6CisgICAgICAgIChXZWJWaWV3KToKKyAgICAgICAgKFdl
YlZpZXc6Om9uUmVwYWludERvbmUpOgorICAgICAgICAoV2ViVmlldzo6ZmluaXNoRm9yY2VSZXBh
aW50KToKKyAgICAgICAgKFdlYlZpZXc6OmZpbmlzaEZpcnN0TGF5b3V0Rm9yRnJhbWUpOgorICAg
ICAgICAodHN0X3FyYXd3ZWJ2aWV3Ojpkb05vQmFja2dyb3VuZDEpOgorICAgICAgICAodHN0X3Fy
YXd3ZWJ2aWV3Ojpkb05vQmFja2dyb3VuZDIpOgorICAgICAgICAodHN0X3FyYXd3ZWJ2aWV3Ojpk
b05vQmFja2dyb3VuZDMpOgorICAgICAgICAodHN0X3FyYXd3ZWJ2aWV3OjpydW4pOgorICAgICAg
ICAgICAgVGhlIHRlc3QgZm9yIFFSYXdXZWJWaWV3IGhhcyBiZWVuIHVwZGF0ZWQgdG8gdXNlIHRo
ZSBXZWJLaXQyIEZvcmNlUGFpbnQgQVBJIHByaW9yIHRvCisgICAgICAgICAgICBnZW5lcmF0aW5n
IHRoZSBwaXhlbCByZXN1bHRzLiBUaGlzIGhhcyBleHBvc2VkIGEgdGltaW5nIGJ1ZyBpbiB0aGUg
dGVzdCAtIHNldHRpbmcgdGhlCisgICAgICAgICAgICB0cmFuc3BhcmVudEJhY2tncm91bmQgcHJv
cGVydHkgb2YgYSBwYWdlIGhhcyB0byBiZSBkb25lIGJlZm9yZSBpdCdzIGNyZWF0ZWQuIFRoaXMg
aGFzCisgICAgICAgICAgICBiZWVuIGZpeGVkIGluIHRoZSB0ZXN0LgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5hdG9yL0xheWVyVHJlZUNvb3JkaW5hdG9y
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmZvcmNlUmVwYWlu
dCk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpwZXJmb3JtU2NoZWR1
bGVkTGF5ZXJGbHVzaCk6CisgICAgICAgIChXZWJLaXQpOgorCiAyMDEyLTA3LTEwICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBZGQg
QVBJIHRvIGNsZWFyIHRoZSBjYWNoZSB0byBXZWJLaXQyIEdUSysKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcXJhd3dlYnZpZXcvdHN0X3FyYXd3ZWJ2
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcXJhd3dlYnZp
ZXcvdHN0X3FyYXd3ZWJ2aWV3LmNwcAppbmRleCA5ZjY4ODgxODBhNTFiM2Y3ZTA1MDMzZTk4NmUy
NjhiMTM5YzQ0NGNkLi5iMzIyYmFjZDRjY2UyZGQ3N2UwZTNmZTliM2YzNWNiMDNiNDhkOWZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FyYXd3ZWJ2
aWV3L3RzdF9xcmF3d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xcmF3d2Vidmlldy90c3RfcXJhd3dlYnZpZXcuY3BwCkBAIC01OCwxNSArNTgs
MTYgQEAgc3RhdGljIFdLUGFnZUdyb3VwUmVmIHdlYlBhZ2VHcm91cChjb25zdCBRU3RyaW5nJiBu
YW1lKQogY2xhc3MgV2ViVmlldyA6IHB1YmxpYyBRT2JqZWN0LCBwdWJsaWMgUVJhd1dlYlZpZXdD
bGllbnQgewogICAgIFFfT0JKRUNUCiBwdWJsaWM6Ci0gICAgV2ViVmlldyhjb25zdCBRU2l6ZSYg
c2l6ZSkKKyAgICBXZWJWaWV3KGNvbnN0IFFTaXplJiBzaXplLCBib29sIHRyYW5zcGFyZW50ID0g
ZmFsc2UpCiAgICAgewogICAgICAgICBXS1BhZ2VMb2FkZXJDbGllbnQgbG9hZGVyQ2xpZW50Owog
ICAgICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKFdLUGFnZUxvYWRlckNsaWVu
dCkpOwogICAgICAgICBsb2FkZXJDbGllbnQuY2xpZW50SW5mbyA9IHRoaXM7Ci0gICAgICAgIGxv
YWRlckNsaWVudC5kaWRGaW5pc2hMb2FkRm9yRnJhbWUgPSBXZWJWaWV3OjpmaW5pc2hMb2FkRm9y
RnJhbWU7CisgICAgICAgIGxvYWRlckNsaWVudC5kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGb3JGcmFtZSA9IFdlYlZpZXc6OmZpbmlzaEZpcnN0TGF5b3V0Rm9yRnJhbWU7CiAKICAgICAg
ICAgbV93ZWJWaWV3ID0gbmV3IFFSYXdXZWJWaWV3KHdlYkNvbnRleHQoKSwgd2ViUGFnZUdyb3Vw
KFFTdHJpbmcoKSksIHRoaXMpOwogICAgICAgICBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KG1f
d2ViVmlldy0+cGFnZVJlZigpLCAmbG9hZGVyQ2xpZW50KTsKKyAgICAgICAgbV93ZWJWaWV3LT5z
ZXRUcmFuc3BhcmVudEJhY2tncm91bmQodHJhbnNwYXJlbnQpOwogICAgICAgICBtX3dlYlZpZXct
PmNyZWF0ZSgpOwogICAgICAgICBXS1BhZ2VTZXRVc2VGaXhlZExheW91dChtX3dlYlZpZXctPnBh
Z2VSZWYoKSwgdHJ1ZSk7CiAKQEAgLTkxLDggKzkyLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCB2aWV3TmVlZHNEaXNwbGF5KGNvbnN0IFFSZWN0JikKICAgICB7CiAgICAgICAgIG1fd2Vi
Vmlldy0+cGFpbnQoUU1hdHJpeDR4NCgpLCAxLCAwKTsKLSAgICAgICAgaWYgKG1fZnJhbWVMb2Fk
ZWQpCi0gICAgICAgICAgICBlbWl0IGxvYWRlZCgpOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9p
ZCB2aWV3UmVxdWVzdGVkU2Nyb2xsKGNvbnN0IFFQb2ludCYpIHsgfQpAQCAtMTAzLDcgKzEwMiwy
NiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRvbmVXaXRoS2V5RXZlbnQoY29uc3QgUUtl
eUV2ZW50KiwgYm9vbCB3YXNIYW5kbGVkKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZG9uZVdpdGhU
b3VjaEV2ZW50KGNvbnN0IFFUb3VjaEV2ZW50KiwgYm9vbCB3YXNIYW5kbGVkKSB7IH0KIAotICAg
IHN0YXRpYyB2b2lkIGZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJl
ZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKKyAg
ICB2b2lkIGZyYW1lTG9hZGVkKCkKKyAgICB7CisgICAgICAgIG1fZnJhbWVMb2FkZWQgPSB0cnVl
OworICAgICAgICBXS1BhZ2VGb3JjZVJlcGFpbnQobV93ZWJWaWV3LT5wYWdlUmVmKCksIHRoaXMs
IGZpbmlzaEZvcmNlUmVwYWludCk7CisgICAgfQorCisgICAgdm9pZCBvblJlcGFpbnREb25lKCkK
KyAgICB7CisgICAgICAgIGVtaXQgbG9hZGVkKCk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQg
ZmluaXNoRm9yY2VSZXBhaW50KFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpCisgICAgeworICAg
ICAgICBzdGF0aWNfY2FzdDxXZWJWaWV3Kj4oY29udGV4dCktPm9uUmVwYWludERvbmUoKTsKKyAg
ICB9CisKKyAgICBzdGF0aWMgdm9pZCBmaW5pc2hGaXJzdExheW91dEZvckZyYW1lKFdLUGFnZVJl
ZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pCisgICAgeworICAgICAgICBzdGF0aWNfY2FzdDxXZWJWaWV3Kj4oY29uc3Rf
Y2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5mcmFtZUxvYWRlZCgpOworICAgIH0KIAogc2lnbmFs
czoKICAgICB2b2lkIGxvYWRlZCgpOwpAQCAtMTEzLDEyICsxMzEsNiBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9mcmFtZUxvYWRlZDsKIH07CiAKLXZvaWQgV2ViVmlldzo6ZmluaXNoTG9hZEZvckZy
YW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEs
IGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCi17Ci0gICAgV2ViVmlldyogb2JqID0gc3RhdGljX2Nh
c3Q8V2ViVmlldyo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKLSAgICBvYmotPm1f
ZnJhbWVMb2FkZWQgPSB0cnVlOwotfQotCiBzdGF0aWMgYm9vbCBjb21wYXJlSW1hZ2VzKGNvbnN0
IFFJbWFnZSYgaTEsIGNvbnN0IFFJbWFnZSYgaTIsIGludCBjb3VudCkKIHsKICAgICBpZiAoaTEu
c2l6ZSgpICE9IGkyLnNpemUoKSkKQEAgLTE2OSwzNyArMTgxLDMxIEBAIHZvaWQgdHN0X3FyYXd3
ZWJ2aWV3Ojpkb1BhaW50KGNvbnN0IFFTaXplJiBzaXplKQogCiB2b2lkIHRzdF9xcmF3d2Vidmll
dzo6ZG9Ob0JhY2tncm91bmQxKGNvbnN0IFFTaXplJiBzaXplKQogewotICAgIFdlYlZpZXcgdmll
dyhzaXplKTsKLSAgICB2aWV3LnNldFRyYW5zcGFyZW50QmFja2dyb3VuZCh0cnVlKTsKKyAgICBX
ZWJWaWV3IHZpZXcoc2l6ZSwgdHJ1ZSk7CiAgICAgdmlldy5sb2FkKG1fYmFzZVVybCArICIvcmVk
c3F1YXJlLmh0bWwiKTsKICAgICB2aWV3LmxvYWQobV9iYXNlVXJsICsgIi9ibHVlc3F1YXJlLmh0
bWwiKTsKIH0KIAogdm9pZCB0c3RfcXJhd3dlYnZpZXc6OmRvTm9CYWNrZ3JvdW5kMihjb25zdCBR
U2l6ZSYgc2l6ZSkKIHsKLSAgICBXZWJWaWV3IHZpZXcxKHNpemUpOwotICAgIHZpZXcxLnNldFRy
YW5zcGFyZW50QmFja2dyb3VuZCh0cnVlKTsKKyAgICBXZWJWaWV3IHZpZXcxKHNpemUsIHRydWUp
OwogICAgIHZpZXcxLmxvYWQobV9iYXNlVXJsICsgIi9yZWRzcXVhcmUuaHRtbCIpOwogCi0gICAg
V2ViVmlldyB2aWV3MihzaXplKTsKLSAgICB2aWV3Mi5zZXRUcmFuc3BhcmVudEJhY2tncm91bmQo
dHJ1ZSk7CisgICAgV2ViVmlldyB2aWV3MihzaXplLCB0cnVlKTsKICAgICB2aWV3Mi5sb2FkKG1f
YmFzZVVybCArICIvYmx1ZXNxdWFyZS5odG1sIik7CiB9CiAKIHZvaWQgdHN0X3FyYXd3ZWJ2aWV3
Ojpkb05vQmFja2dyb3VuZDMoY29uc3QgUVNpemUmIHNpemUpCiB7Ci0gICAgV2ViVmlldyB2aWV3
MShzaXplKTsKLSAgICB2aWV3MS5zZXRUcmFuc3BhcmVudEJhY2tncm91bmQoZmFsc2UpOworICAg
IFdlYlZpZXcgdmlldzEoc2l6ZSwgZmFsc2UpOwogICAgIHZpZXcxLmxvYWQobV9iYXNlVXJsICsg
Ii9yZWRzcXVhcmUuaHRtbCIpOwogCi0gICAgV2ViVmlldyB2aWV3MihzaXplKTsKLSAgICB2aWV3
Mi5zZXRUcmFuc3BhcmVudEJhY2tncm91bmQodHJ1ZSk7CisgICAgV2ViVmlldyB2aWV3MihzaXpl
LCB0cnVlKTsKICAgICB2aWV3Mi5sb2FkKG1fYmFzZVVybCArICIvYmx1ZXNxdWFyZS5odG1sIik7
CiB9CiAKIHZvaWQgdHN0X3FyYXd3ZWJ2aWV3OjpydW4oUGFpbnRNZXRob2QgbWV0aG9kLCBjb25z
dCBRU3RyaW5nJiBleHBlY3RhdGlvbikKIHsKLQogICAgIFFXaW5kb3cgd2luZG93OwogICAgIHdp
bmRvdy5zZXRTdXJmYWNlVHlwZShRU3VyZmFjZTo6T3BlbkdMU3VyZmFjZSk7CiAgICAgd2luZG93
LnNldEdlb21ldHJ5KDAsIDAsIDIwMCwgMjAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVDb29yZGluYXRvci9MYXllclRyZWVDb29yZGlu
YXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlQ29v
cmRpbmF0b3IvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCmluZGV4IGYzZTg3MzVlNWMxYjY1MDNh
NzIwNDE2OTdiZDVkMjg2NDc4NDA4MmQuLmZiMzdlODc1ZGMwMWIxNmQyNDE1MjE2ZmMzZGEyNzIy
MjVmMjBkNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9M
YXllclRyZWVDb29yZGluYXRvci9MYXllclRyZWVDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5hdG9yL0xheWVyVHJl
ZUNvb3JkaW5hdG9yLmNwcApAQCAtMTc0LDcgKzE3NCwxMCBAQCB2b2lkIExheWVyVHJlZUNvb3Jk
aW5hdG9yOjpzY3JvbGxOb25Db21wb3NpdGVkQ29udGVudHMoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgcwogCiB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpmb3JjZVJlcGFpbnQoKQogeworICAg
IC8vIFdlIG5lZWQgdG8gc2NoZWR1bGUgYW5vdGhlciBmbHVzaCwgb3RoZXJ3aXNlIHRoZSBmb3Jj
ZWQgcGFpbnQgbWlnaHQgY2FuY2VsIGEgbGF0ZXIgZXhwZWN0ZWQgZmx1c2guCisgICAgLy8gVGhp
cyBpcyBhbGlnbmVkIHdpdGggTGF5ZXJUcmVlSG9zdENBLgogICAgIHNjaGVkdWxlTGF5ZXJGbHVz
aCgpOworICAgIGZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpOwogfQogCiB2b2lkIExheWVyVHJl
ZUNvb3JkaW5hdG9yOjpzaXplRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG5ld1Np
emUpCkBAIC0yMzIsMTEgKzIzNSwyNyBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzZXRQ
YWdlT3ZlcmxheU9wYWNpdHkoZmxvYXQgdmFsdWUpCiBib29sIExheWVyVHJlZUNvb3JkaW5hdG9y
OjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKQogewogICAgIGJvb2wgZGlkU3luYyA9IG1fd2Vi
UGFnZS0+Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKS0+c3luY0NvbXBvc2l0aW5nU3Rh
dGVJbmNsdWRpbmdTdWJmcmFtZXMoKTsKKyAgICBtX3Nob3VsZFN5bmNGcmFtZSA9IGZhbHNlOwog
ICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JU
aGlzTGF5ZXJPbmx5KCk7CiAgICAgaWYgKG1fcGFnZU92ZXJsYXlMYXllcikKICAgICAgICAgbV9w
YWdlT3ZlcmxheUxheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsK
IAogICAgIG1fcm9vdExheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHko
KTsKKyAgICBkaWRTeW5jID0gZGlkU3luYyB8fCBtX3Nob3VsZFN5bmNGcmFtZTsKKworICAgIGlm
ICghZGlkU3luYykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKG1fc2hvdWxkU3lu
Y1Jvb3RMYXllcikgeworICAgICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHk6OlNldFJvb3RDb21wb3NpdGluZ0xheWVyKHRvV2ViR3JhcGhpY3NM
YXllcihtX3Jvb3RMYXllci5nZXQoKSktPmlkKCkpKTsKKyAgICAgICAgbV9zaG91bGRTeW5jUm9v
dExheWVyID0gZmFsc2U7CisgICAgfQorCisgICAgaWYgKG1fc2hvdWxkU3luY0ZyYW1lKQorICAg
ICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6
OkRpZFJlbmRlckZyYW1lKCkpOworCisgICAgbV9zaG91bGRTeW5jRnJhbWUgPSBmYWxzZTsKKyAg
ICBtX3dhaXRpbmdGb3JVSVByb2Nlc3MgPSB0cnVlOwogICAgIHJldHVybiBkaWRTeW5jOwogfQog
CkBAIC0yNDYsNiArMjY1LDcgQEAgdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6c3luY0xheWVy
U3RhdGUoV2ViTGF5ZXJJRCBpZCwgY29uc3QgV2ViTGF5ZXJJbmZvJiBpbmYKICAgICAgICAgbV93
ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpEaWRDaGFu
Z2VTY3JvbGxQb3NpdGlvbihtX3Zpc2libGVDb250ZW50c1JlY3QubG9jYXRpb24oKSkpOwogICAg
ICAgICBtX3Nob3VsZFNlbmRTY3JvbGxQb3NpdGlvblVwZGF0ZSA9IGZhbHNlOwogICAgIH0KKwog
ICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OlNldENvbXBvc2l0aW5nTGF5ZXJTdGF0ZShp
ZCwgaW5mbykpOwogfQpAQCAtMzQ0LDI1ICszNjQsMTggQEAgdm9pZCBMYXllclRyZWVDb29yZGlu
YXRvcjo6cGVyZm9ybVNjaGVkdWxlZExheWVyRmx1c2goKQogICAgIGlmICghbV9pc1ZhbGlkKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBtX3Nob3VsZFN5bmNGcmFtZSA9IGZhbHNlOwotICAgIGZs
dXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpOwotICAgIGlmICghbV9zaG91bGRTeW5jRnJhbWUpCisg
ICAgaWYgKCFmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgaWYgKG1fc2hvdWxkU3luY1Jvb3RMYXllcikgewotICAgICAgICBtX3dlYlBhZ2UtPnNlbmQo
TWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OlNldFJvb3RDb21wb3NpdGluZ0xh
eWVyKHRvV2ViR3JhcGhpY3NMYXllcihtX3Jvb3RMYXllci5nZXQoKSktPmlkKCkpKTsKLSAgICAg
ICAgbV9zaG91bGRTeW5jUm9vdExheWVyID0gZmFsc2U7Ci0gICAgfQotCi0gICAgbV93ZWJQYWdl
LT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpEaWRSZW5kZXJGcmFt
ZSgpKTsKLSAgICBtX3dhaXRpbmdGb3JVSVByb2Nlc3MgPSB0cnVlOwotCi0gICAgaWYgKCFtX25v
dGlmeUFmdGVyU2NoZWR1bGVkTGF5ZXJGbHVzaCkKLSAgICAgICAgcmV0dXJuOworICAgIGRpZFBl
cmZvcm1TY2hlZHVsZWRMYXllckZsdXNoKCk7Cit9CiAKLSAgICAvLyBMZXQgdGhlIGRyYXdpbmcg
YXJlYSBrbm93IHRoYXQgd2UndmUgZG9uZSBhIGZsdXNoIG9mIHRoZSBsYXllciBjaGFuZ2VzLgot
ICAgIHN0YXRpY19jYXN0PERyYXdpbmdBcmVhSW1wbCo+KG1fd2ViUGFnZS0+ZHJhd2luZ0FyZWEo
KSktPmxheWVySG9zdERpZEZsdXNoTGF5ZXJzKCk7Ci0gICAgbV9ub3RpZnlBZnRlclNjaGVkdWxl
ZExheWVyRmx1c2ggPSBmYWxzZTsKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmRpZFBlcmZv
cm1TY2hlZHVsZWRMYXllckZsdXNoKCkKK3sKKyAgICBpZiAobV9ub3RpZnlBZnRlclNjaGVkdWxl
ZExheWVyRmx1c2gpIHsKKyAgICAgICAgc3RhdGljX2Nhc3Q8RHJhd2luZ0FyZWFJbXBsKj4obV93
ZWJQYWdlLT5kcmF3aW5nQXJlYSgpKS0+bGF5ZXJIb3N0RGlkRmx1c2hMYXllcnMoKTsKKyAgICAg
ICAgbV9ub3RpZnlBZnRlclNjaGVkdWxlZExheWVyRmx1c2ggPSBmYWxzZTsKKyAgICB9CiB9CiAK
IHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmxheWVyRmx1c2hUaW1lckZpcmVkKFRpbWVyPExh
eWVyVHJlZUNvb3JkaW5hdG9yPiopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlQ29vcmRpbmF0b3IvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVDb29yZGluYXRvci9M
YXllclRyZWVDb29yZGluYXRvci5oCmluZGV4IGJjNDQ5ZjQ2YTI4MmIyZWZhOTg5YWNjZjNmYjk0
ZGI3MjU1MjhmMDMuLjliNTE1NGMzNmY4ZTE5ZWU0MGZmNWM1YTQwOTc4ODA0OTFmYjBhMGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVDb29y
ZGluYXRvci9MYXllclRyZWVDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9MYXllclRyZWVDb29yZGluYXRvci9MYXllclRyZWVDb29yZGluYXRvci5o
CkBAIC0xMDQsNyArMTA0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGZsdXNoUGVuZGluZ0xheWVy
Q2hhbmdlcygpOwogICAgIHZvaWQgY2FuY2VsUGVuZGluZ0xheWVyRmx1c2goKTsKICAgICB2b2lk
IHBlcmZvcm1TY2hlZHVsZWRMYXllckZsdXNoKCk7Ci0gICAgdm9pZCBzZW5kTGF5ZXJzVG9VSSgp
OworICAgIHZvaWQgZGlkUGVyZm9ybVNjaGVkdWxlZExheWVyRmx1c2goKTsKIAogICAgIE93blB0
cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBtX3Jvb3RMYXllcjsKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGRlNWMzNGM2MDIwYjdhYTU0ZTA0
NWZhYWE3ODcwNjNkNzZhMzE0ZjAuLjU2OGE5OGU4ODQ3NjAyN2E0NzA4MTI2M2VlZDViNmIyYWRm
YjU3NTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxMi0wNy0xMCAgTm8nYW0gUm9zZW50aGFsICA8bm9hbS5yb3Nl
bnRoYWxAbm9raWEuY29tPgorCisgICAgICAgIFtRdF0gUVJhd1dlYlZpZXcgc2hvdWxkIG5vdGlm
eSB3aGVuIHJlbmRlcmluZyBpcyBkb25lLCBzbyB0aGF0IHBpeGVsIHJlc3VsdHMgY2FuIGJlIGdy
YWJiZWQgYXQgdGhlIGFwcHJvcHJpYXRlIG1vbWVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwNjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9yYXcvVmlldy5oOiBDb21t
ZW50IHVzZWQgb2xkIGNsYXNzIG5hbWUgKFdLVmlldykuCisgICAgICAgIChWaWV3KToKKwogMjAx
Mi0wNy0wOSAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEltcHJv
dmUgd2Via2l0LXBhdGNoIHJlYmFzZWxpbmUgdG8gd29yayBmb3IgbW9yZSBjYXNlcwpkaWZmIC0t
Z2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvcmF3L1ZpZXcuaCBiL1Rvb2xzL01pbmlCcm93c2Vy
L3F0L3Jhdy9WaWV3LmgKaW5kZXggNmRlN2EyNWUyMTQ1NjllNDUzMWE1ODA4MmY3MjUyMTlmNmEy
NDEyNS4uZTUzMjIzZjg5NmUzMjhmYzI5Zjc3MzU5OThiMmJiOTE2MDRmNGY4MSAxMDA2NDQKLS0t
IGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvcmF3L1ZpZXcuaAorKysgYi9Ub29scy9NaW5pQnJvd3Nl
ci9xdC9yYXcvVmlldy5oCkBAIC0zMSw3ICszMSw3IEBAIHB1YmxpYzoKICAgICBWaWV3KGNvbnN0
IFFTdHJpbmcmIHVybCk7CiAgICAgflZpZXcoKTsKIAotcHVibGljOiAvLyBXS1ZpZXdDbGllbnQK
K3B1YmxpYzogLy8gUVJhd1dlYlZpZXdDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgdmlld05lZWRz
RGlzcGxheShjb25zdCBRUmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCB2aWV3UmVxdWVzdGVkU2Ny
b2xsKGNvbnN0IFFQb2ludCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB2aWV3UHJvY2Vzc0NyYXNo
ZWQoKSB7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151516</attachid>
            <date>2012-07-10 13:53:48 -0700</date>
            <delta_ts>2012-07-11 10:09:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90641-20120710135332.patch</filename>
            <type>text/plain</type>
            <size>11758</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMjM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmYzMzY4MzdjZDk0MGY0
ZTkzZTAyMzkyZTIzYjk3NjQxNzEzOGE4MC4uM2MyOGM5ZjM1ZjFkYzlkZTg0ZDk1ZmYzNmNjMzAz
Mzc2NTU1ZmQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA3LTEwICBObydh
bSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBR
UmF3V2ViVmlldyBzaG91bGQgbm90aWZ5IHdoZW4gcmVuZGVyaW5nIGlzIGRvbmUsIHNvIHRoYXQg
cGl4ZWwgcmVzdWx0cyBjYW4gYmUgZ3JhYmJlZCBhdCB0aGUgYXBwcm9wcmlhdGUgbW9tZW50Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA2NDEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQg
TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmZvcmNlUmVwYWludCB3aXRoIGxvZ2ljIGVxdWl2YWxlbnQg
dG8gdGhlIG9uZSBpbgorICAgICAgICBMYXllclRyZWVIb3N0Q0EuIElmIHdlIGZsdXNoIHRoZSBs
YXllcnMgc3luY2hyb25vdXNseSB3aGVuIGZvcmNlUmVwYWludCBpcyBjYWxsZWQsd2hlbgorICAg
ICAgICBXS1BhZ2VGb3JjZVJlcGFpbnQgcmV0dXJucyB3ZSBhcmUgZ3VhcmFudGVlZCB0byBoYXZl
IGFuIHVwLXRvLWRhdGUgaW1hZ2UsIGFzIHRoZSB2aXNpYmxlCisgICAgICAgIHRpbGVzIGFyZSBh
bHNvIHN5bmNocm9ub3VzbHkgdXBkYXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQv
dGVzdHMvcXJhd3dlYnZpZXcvdHN0X3FyYXd3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6
OldlYlZpZXcpOgorICAgICAgICAoV2ViVmlldzo6dmlld05lZWRzRGlzcGxheSk6CisgICAgICAg
IChXZWJWaWV3OjpmcmFtZUxvYWRlZCk6CisgICAgICAgIChXZWJWaWV3KToKKyAgICAgICAgKFdl
YlZpZXc6Om9uUmVwYWludERvbmUpOgorICAgICAgICAoV2ViVmlldzo6ZmluaXNoRm9yY2VSZXBh
aW50KToKKyAgICAgICAgKFdlYlZpZXc6OmZpbmlzaEZpcnN0TGF5b3V0Rm9yRnJhbWUpOgorICAg
ICAgICAodHN0X3FyYXd3ZWJ2aWV3Ojpkb05vQmFja2dyb3VuZDEpOgorICAgICAgICAodHN0X3Fy
YXd3ZWJ2aWV3Ojpkb05vQmFja2dyb3VuZDIpOgorICAgICAgICAodHN0X3FyYXd3ZWJ2aWV3Ojpk
b05vQmFja2dyb3VuZDMpOgorICAgICAgICAodHN0X3FyYXd3ZWJ2aWV3OjpydW4pOgorICAgICAg
ICAgICAgVGhlIHRlc3QgZm9yIFFSYXdXZWJWaWV3IGhhcyBiZWVuIHVwZGF0ZWQgdG8gdXNlIHRo
ZSBXZWJLaXQyIEZvcmNlUGFpbnQgQVBJIHByaW9yIHRvCisgICAgICAgICAgICBnZW5lcmF0aW5n
IHRoZSBwaXhlbCByZXN1bHRzLiBUaGlzIGhhcyBleHBvc2VkIGEgdGltaW5nIGJ1ZyBpbiB0aGUg
dGVzdCAtIHNldHRpbmcgdGhlCisgICAgICAgICAgICB0cmFuc3BhcmVudEJhY2tncm91bmQgcHJv
cGVydHkgb2YgYSBwYWdlIGhhcyB0byBiZSBkb25lIGJlZm9yZSBpdCdzIGNyZWF0ZWQuIFRoaXMg
aGFzCisgICAgICAgICAgICBiZWVuIGZpeGVkIGluIHRoZSB0ZXN0LgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5hdG9yL0xheWVyVHJlZUNvb3JkaW5hdG9y
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmZvcmNlUmVwYWlu
dCk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpwZXJmb3JtU2NoZWR1
bGVkTGF5ZXJGbHVzaCk6CisgICAgICAgIChXZWJLaXQpOgorCiAyMDEyLTA3LTEwICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBZGQg
QVBJIHRvIGNsZWFyIHRoZSBjYWNoZSB0byBXZWJLaXQyIEdUSysKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcXJhd3dlYnZpZXcvdHN0X3FyYXd3ZWJ2
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcXJhd3dlYnZp
ZXcvdHN0X3FyYXd3ZWJ2aWV3LmNwcAppbmRleCA5ZjY4ODgxODBhNTFiM2Y3ZTA1MDMzZTk4NmUy
NjhiMTM5YzQ0NGNkLi5iMzIyYmFjZDRjY2UyZGQ3N2UwZTNmZTliM2YzNWNiMDNiNDhkOWZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FyYXd3ZWJ2
aWV3L3RzdF9xcmF3d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xcmF3d2Vidmlldy90c3RfcXJhd3dlYnZpZXcuY3BwCkBAIC01OCwxNSArNTgs
MTYgQEAgc3RhdGljIFdLUGFnZUdyb3VwUmVmIHdlYlBhZ2VHcm91cChjb25zdCBRU3RyaW5nJiBu
YW1lKQogY2xhc3MgV2ViVmlldyA6IHB1YmxpYyBRT2JqZWN0LCBwdWJsaWMgUVJhd1dlYlZpZXdD
bGllbnQgewogICAgIFFfT0JKRUNUCiBwdWJsaWM6Ci0gICAgV2ViVmlldyhjb25zdCBRU2l6ZSYg
c2l6ZSkKKyAgICBXZWJWaWV3KGNvbnN0IFFTaXplJiBzaXplLCBib29sIHRyYW5zcGFyZW50ID0g
ZmFsc2UpCiAgICAgewogICAgICAgICBXS1BhZ2VMb2FkZXJDbGllbnQgbG9hZGVyQ2xpZW50Owog
ICAgICAgICBtZW1zZXQoJmxvYWRlckNsaWVudCwgMCwgc2l6ZW9mKFdLUGFnZUxvYWRlckNsaWVu
dCkpOwogICAgICAgICBsb2FkZXJDbGllbnQuY2xpZW50SW5mbyA9IHRoaXM7Ci0gICAgICAgIGxv
YWRlckNsaWVudC5kaWRGaW5pc2hMb2FkRm9yRnJhbWUgPSBXZWJWaWV3OjpmaW5pc2hMb2FkRm9y
RnJhbWU7CisgICAgICAgIGxvYWRlckNsaWVudC5kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGb3JGcmFtZSA9IFdlYlZpZXc6OmZpbmlzaEZpcnN0TGF5b3V0Rm9yRnJhbWU7CiAKICAgICAg
ICAgbV93ZWJWaWV3ID0gbmV3IFFSYXdXZWJWaWV3KHdlYkNvbnRleHQoKSwgd2ViUGFnZUdyb3Vw
KFFTdHJpbmcoKSksIHRoaXMpOwogICAgICAgICBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KG1f
d2ViVmlldy0+cGFnZVJlZigpLCAmbG9hZGVyQ2xpZW50KTsKKyAgICAgICAgbV93ZWJWaWV3LT5z
ZXRUcmFuc3BhcmVudEJhY2tncm91bmQodHJhbnNwYXJlbnQpOwogICAgICAgICBtX3dlYlZpZXct
PmNyZWF0ZSgpOwogICAgICAgICBXS1BhZ2VTZXRVc2VGaXhlZExheW91dChtX3dlYlZpZXctPnBh
Z2VSZWYoKSwgdHJ1ZSk7CiAKQEAgLTkxLDggKzkyLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCB2aWV3TmVlZHNEaXNwbGF5KGNvbnN0IFFSZWN0JikKICAgICB7CiAgICAgICAgIG1fd2Vi
Vmlldy0+cGFpbnQoUU1hdHJpeDR4NCgpLCAxLCAwKTsKLSAgICAgICAgaWYgKG1fZnJhbWVMb2Fk
ZWQpCi0gICAgICAgICAgICBlbWl0IGxvYWRlZCgpOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9p
ZCB2aWV3UmVxdWVzdGVkU2Nyb2xsKGNvbnN0IFFQb2ludCYpIHsgfQpAQCAtMTAzLDcgKzEwMiwy
NiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRvbmVXaXRoS2V5RXZlbnQoY29uc3QgUUtl
eUV2ZW50KiwgYm9vbCB3YXNIYW5kbGVkKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZG9uZVdpdGhU
b3VjaEV2ZW50KGNvbnN0IFFUb3VjaEV2ZW50KiwgYm9vbCB3YXNIYW5kbGVkKSB7IH0KIAotICAg
IHN0YXRpYyB2b2lkIGZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJl
ZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKKyAg
ICB2b2lkIGZyYW1lTG9hZGVkKCkKKyAgICB7CisgICAgICAgIG1fZnJhbWVMb2FkZWQgPSB0cnVl
OworICAgICAgICBXS1BhZ2VGb3JjZVJlcGFpbnQobV93ZWJWaWV3LT5wYWdlUmVmKCksIHRoaXMs
IGZpbmlzaEZvcmNlUmVwYWludCk7CisgICAgfQorCisgICAgdm9pZCBvblJlcGFpbnREb25lKCkK
KyAgICB7CisgICAgICAgIGVtaXQgbG9hZGVkKCk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQg
ZmluaXNoRm9yY2VSZXBhaW50KFdLRXJyb3JSZWYsIHZvaWQqIGNvbnRleHQpCisgICAgeworICAg
ICAgICBzdGF0aWNfY2FzdDxXZWJWaWV3Kj4oY29udGV4dCktPm9uUmVwYWludERvbmUoKTsKKyAg
ICB9CisKKyAgICBzdGF0aWMgdm9pZCBmaW5pc2hGaXJzdExheW91dEZvckZyYW1lKFdLUGFnZVJl
ZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pCisgICAgeworICAgICAgICBzdGF0aWNfY2FzdDxXZWJWaWV3Kj4oY29uc3Rf
Y2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5mcmFtZUxvYWRlZCgpOworICAgIH0KIAogc2lnbmFs
czoKICAgICB2b2lkIGxvYWRlZCgpOwpAQCAtMTEzLDEyICsxMzEsNiBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9mcmFtZUxvYWRlZDsKIH07CiAKLXZvaWQgV2ViVmlldzo6ZmluaXNoTG9hZEZvckZy
YW1lKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEs
IGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCi17Ci0gICAgV2ViVmlldyogb2JqID0gc3RhdGljX2Nh
c3Q8V2ViVmlldyo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKLSAgICBvYmotPm1f
ZnJhbWVMb2FkZWQgPSB0cnVlOwotfQotCiBzdGF0aWMgYm9vbCBjb21wYXJlSW1hZ2VzKGNvbnN0
IFFJbWFnZSYgaTEsIGNvbnN0IFFJbWFnZSYgaTIsIGludCBjb3VudCkKIHsKICAgICBpZiAoaTEu
c2l6ZSgpICE9IGkyLnNpemUoKSkKQEAgLTE2OSwzNyArMTgxLDMxIEBAIHZvaWQgdHN0X3FyYXd3
ZWJ2aWV3Ojpkb1BhaW50KGNvbnN0IFFTaXplJiBzaXplKQogCiB2b2lkIHRzdF9xcmF3d2Vidmll
dzo6ZG9Ob0JhY2tncm91bmQxKGNvbnN0IFFTaXplJiBzaXplKQogewotICAgIFdlYlZpZXcgdmll
dyhzaXplKTsKLSAgICB2aWV3LnNldFRyYW5zcGFyZW50QmFja2dyb3VuZCh0cnVlKTsKKyAgICBX
ZWJWaWV3IHZpZXcoc2l6ZSwgdHJ1ZSk7CiAgICAgdmlldy5sb2FkKG1fYmFzZVVybCArICIvcmVk
c3F1YXJlLmh0bWwiKTsKICAgICB2aWV3LmxvYWQobV9iYXNlVXJsICsgIi9ibHVlc3F1YXJlLmh0
bWwiKTsKIH0KIAogdm9pZCB0c3RfcXJhd3dlYnZpZXc6OmRvTm9CYWNrZ3JvdW5kMihjb25zdCBR
U2l6ZSYgc2l6ZSkKIHsKLSAgICBXZWJWaWV3IHZpZXcxKHNpemUpOwotICAgIHZpZXcxLnNldFRy
YW5zcGFyZW50QmFja2dyb3VuZCh0cnVlKTsKKyAgICBXZWJWaWV3IHZpZXcxKHNpemUsIHRydWUp
OwogICAgIHZpZXcxLmxvYWQobV9iYXNlVXJsICsgIi9yZWRzcXVhcmUuaHRtbCIpOwogCi0gICAg
V2ViVmlldyB2aWV3MihzaXplKTsKLSAgICB2aWV3Mi5zZXRUcmFuc3BhcmVudEJhY2tncm91bmQo
dHJ1ZSk7CisgICAgV2ViVmlldyB2aWV3MihzaXplLCB0cnVlKTsKICAgICB2aWV3Mi5sb2FkKG1f
YmFzZVVybCArICIvYmx1ZXNxdWFyZS5odG1sIik7CiB9CiAKIHZvaWQgdHN0X3FyYXd3ZWJ2aWV3
Ojpkb05vQmFja2dyb3VuZDMoY29uc3QgUVNpemUmIHNpemUpCiB7Ci0gICAgV2ViVmlldyB2aWV3
MShzaXplKTsKLSAgICB2aWV3MS5zZXRUcmFuc3BhcmVudEJhY2tncm91bmQoZmFsc2UpOworICAg
IFdlYlZpZXcgdmlldzEoc2l6ZSwgZmFsc2UpOwogICAgIHZpZXcxLmxvYWQobV9iYXNlVXJsICsg
Ii9yZWRzcXVhcmUuaHRtbCIpOwogCi0gICAgV2ViVmlldyB2aWV3MihzaXplKTsKLSAgICB2aWV3
Mi5zZXRUcmFuc3BhcmVudEJhY2tncm91bmQodHJ1ZSk7CisgICAgV2ViVmlldyB2aWV3MihzaXpl
LCB0cnVlKTsKICAgICB2aWV3Mi5sb2FkKG1fYmFzZVVybCArICIvYmx1ZXNxdWFyZS5odG1sIik7
CiB9CiAKIHZvaWQgdHN0X3FyYXd3ZWJ2aWV3OjpydW4oUGFpbnRNZXRob2QgbWV0aG9kLCBjb25z
dCBRU3RyaW5nJiBleHBlY3RhdGlvbikKIHsKLQogICAgIFFXaW5kb3cgd2luZG93OwogICAgIHdp
bmRvdy5zZXRTdXJmYWNlVHlwZShRU3VyZmFjZTo6T3BlbkdMU3VyZmFjZSk7CiAgICAgd2luZG93
LnNldEdlb21ldHJ5KDAsIDAsIDIwMCwgMjAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVDb29yZGluYXRvci9MYXllclRyZWVDb29yZGlu
YXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlQ29v
cmRpbmF0b3IvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCmluZGV4IGYzZTg3MzVlNWMxYjY1MDNh
NzIwNDE2OTdiZDVkMjg2NDc4NDA4MmQuLmQxNTk5Nzk0Zjk1OTEzODZlMTNjYWIwZTNiYjM0NTUx
YTYzNTk3MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9M
YXllclRyZWVDb29yZGluYXRvci9MYXllclRyZWVDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5hdG9yL0xheWVyVHJl
ZUNvb3JkaW5hdG9yLmNwcApAQCAtMTc0LDcgKzE3NCwxMCBAQCB2b2lkIExheWVyVHJlZUNvb3Jk
aW5hdG9yOjpzY3JvbGxOb25Db21wb3NpdGVkQ29udGVudHMoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgcwogCiB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpmb3JjZVJlcGFpbnQoKQogeworICAg
IC8vIFdlIG5lZWQgdG8gc2NoZWR1bGUgYW5vdGhlciBmbHVzaCwgb3RoZXJ3aXNlIHRoZSBmb3Jj
ZWQgcGFpbnQgbWlnaHQgY2FuY2VsIGEgbGF0ZXIgZXhwZWN0ZWQgZmx1c2guCisgICAgLy8gVGhp
cyBpcyBhbGlnbmVkIHdpdGggTGF5ZXJUcmVlSG9zdENBLgogICAgIHNjaGVkdWxlTGF5ZXJGbHVz
aCgpOworICAgIGZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpOwogfQogCiB2b2lkIExheWVyVHJl
ZUNvb3JkaW5hdG9yOjpzaXplRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIG5ld1Np
emUpCkBAIC0yMzEsMTMgKzIzNCwzMSBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzZXRQ
YWdlT3ZlcmxheU9wYWNpdHkoZmxvYXQgdmFsdWUpCiAKIGJvb2wgTGF5ZXJUcmVlQ29vcmRpbmF0
b3I6OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpCiB7CisgICAgbV9zaG91bGRTeW5jRnJhbWUg
PSBmYWxzZTsKICAgICBib29sIGRpZFN5bmMgPSBtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPm1haW5G
cmFtZSgpLT52aWV3KCktPnN5bmNDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7
CiAgICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUZv
clRoaXNMYXllck9ubHkoKTsKICAgICBpZiAobV9wYWdlT3ZlcmxheUxheWVyKQogICAgICAgICBt
X3BhZ2VPdmVybGF5TGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgp
OwogCiAgICAgbV9yb290TGF5ZXItPnN5bmNDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25s
eSgpOwotICAgIHJldHVybiBkaWRTeW5jOworICAgIGRpZFN5bmMgPSBkaWRTeW5jIHx8IG1fc2hv
dWxkU3luY0ZyYW1lOworCisgICAgaWYgKG1fc2hvdWxkU3luY1Jvb3RMYXllcikgeworICAgICAg
ICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OlNl
dFJvb3RDb21wb3NpdGluZ0xheWVyKHRvV2ViR3JhcGhpY3NMYXllcihtX3Jvb3RMYXllci5nZXQo
KSktPmlkKCkpKTsKKyAgICAgICAgbV9zaG91bGRTeW5jUm9vdExheWVyID0gZmFsc2U7CisgICAg
fQorCisgICAgaWYgKCFkaWRTeW5jKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAo
IW1fc2hvdWxkU3luY0ZyYW1lKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIG1fd2ViUGFn
ZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6RGlkUmVuZGVyRnJh
bWUoKSk7CisgICAgbV93YWl0aW5nRm9yVUlQcm9jZXNzID0gdHJ1ZTsKKyAgICBtX3Nob3VsZFN5
bmNGcmFtZSA9IGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgTGF5ZXJUcmVl
Q29vcmRpbmF0b3I6OnN5bmNMYXllclN0YXRlKFdlYkxheWVySUQgaWQsIGNvbnN0IFdlYkxheWVy
SW5mbyYgaW5mbykKQEAgLTI0Niw2ICsyNjcsNyBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9y
OjpzeW5jTGF5ZXJTdGF0ZShXZWJMYXllcklEIGlkLCBjb25zdCBXZWJMYXllckluZm8mIGluZgog
ICAgICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJv
eHk6OkRpZENoYW5nZVNjcm9sbFBvc2l0aW9uKG1fdmlzaWJsZUNvbnRlbnRzUmVjdC5sb2NhdGlv
bigpKSk7CiAgICAgICAgIG1fc2hvdWxkU2VuZFNjcm9sbFBvc2l0aW9uVXBkYXRlID0gZmFsc2U7
CiAgICAgfQorCiAgICAgbV9zaG91bGRTeW5jRnJhbWUgPSB0cnVlOwogICAgIG1fd2ViUGFnZS0+
c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6U2V0Q29tcG9zaXRpbmdM
YXllclN0YXRlKGlkLCBpbmZvKSk7CiB9CkBAIC0zNDQsMjUgKzM2NiwxNiBAQCB2b2lkIExheWVy
VHJlZUNvb3JkaW5hdG9yOjpwZXJmb3JtU2NoZWR1bGVkTGF5ZXJGbHVzaCgpCiAgICAgaWYgKCFt
X2lzVmFsaWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gZmFs
c2U7Ci0gICAgZmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKCk7Ci0gICAgaWYgKCFtX3Nob3VsZFN5
bmNGcmFtZSkKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChmbHVzaFBlbmRpbmdMYXllckNoYW5n
ZXMoKSkKKyAgICAgICAgZGlkUGVyZm9ybVNjaGVkdWxlZExheWVyRmx1c2goKTsKK30KIAotICAg
IGlmIChtX3Nob3VsZFN5bmNSb290TGF5ZXIpIHsKLSAgICAgICAgbV93ZWJQYWdlLT5zZW5kKE1l
c3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpTZXRSb290Q29tcG9zaXRpbmdMYXll
cih0b1dlYkdyYXBoaWNzTGF5ZXIobV9yb290TGF5ZXIuZ2V0KCkpLT5pZCgpKSk7Ci0gICAgICAg
IG1fc2hvdWxkU3luY1Jvb3RMYXllciA9IGZhbHNlOwordm9pZCBMYXllclRyZWVDb29yZGluYXRv
cjo6ZGlkUGVyZm9ybVNjaGVkdWxlZExheWVyRmx1c2goKQoreworICAgIGlmIChtX25vdGlmeUFm
dGVyU2NoZWR1bGVkTGF5ZXJGbHVzaCkgeworICAgICAgICBzdGF0aWNfY2FzdDxEcmF3aW5nQXJl
YUltcGwqPihtX3dlYlBhZ2UtPmRyYXdpbmdBcmVhKCkpLT5sYXllckhvc3REaWRGbHVzaExheWVy
cygpOworICAgICAgICBtX25vdGlmeUFmdGVyU2NoZWR1bGVkTGF5ZXJGbHVzaCA9IGZhbHNlOwog
ICAgIH0KLQotICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0
b3JQcm94eTo6RGlkUmVuZGVyRnJhbWUoKSk7Ci0gICAgbV93YWl0aW5nRm9yVUlQcm9jZXNzID0g
dHJ1ZTsKLQotICAgIGlmICghbV9ub3RpZnlBZnRlclNjaGVkdWxlZExheWVyRmx1c2gpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIC8vIExldCB0aGUgZHJhd2luZyBhcmVhIGtub3cgdGhhdCB3ZSd2
ZSBkb25lIGEgZmx1c2ggb2YgdGhlIGxheWVyIGNoYW5nZXMuCi0gICAgc3RhdGljX2Nhc3Q8RHJh
d2luZ0FyZWFJbXBsKj4obV93ZWJQYWdlLT5kcmF3aW5nQXJlYSgpKS0+bGF5ZXJIb3N0RGlkRmx1
c2hMYXllcnMoKTsKLSAgICBtX25vdGlmeUFmdGVyU2NoZWR1bGVkTGF5ZXJGbHVzaCA9IGZhbHNl
OwogfQogCiB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpsYXllckZsdXNoVGltZXJGaXJlZChU
aW1lcjxMYXllclRyZWVDb29yZGluYXRvcj4qKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5hdG9yL0xheWVyVHJlZUNvb3JkaW5h
dG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlQ29vcmRp
bmF0b3IvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAppbmRleCBiYzQ0OWY0NmEyODJiMmVmYTk4OWFj
Y2YzZmI5NGRiNzI1NTI4ZjAzLi45YjUxNTRjMzZmOGUxOWVlNDBmZjVjNWE0MDk3ODgwNDkxZmIw
YTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJU
cmVlQ29vcmRpbmF0b3IvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlQ29vcmRpbmF0b3IvTGF5ZXJUcmVlQ29vcmRp
bmF0b3IuaApAQCAtMTA0LDcgKzEwNCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBmbHVzaFBlbmRp
bmdMYXllckNoYW5nZXMoKTsKICAgICB2b2lkIGNhbmNlbFBlbmRpbmdMYXllckZsdXNoKCk7CiAg
ICAgdm9pZCBwZXJmb3JtU2NoZWR1bGVkTGF5ZXJGbHVzaCgpOwotICAgIHZvaWQgc2VuZExheWVy
c1RvVUkoKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1TY2hlZHVsZWRMYXllckZsdXNoKCk7CiAKICAg
ICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9yb290TGF5ZXI7CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkZTVjMzRjNjAyMGI3
YWE1NGUwNDVmYWFhNzg3MDYzZDc2YTMxNGYwLi41NjhhOThlODg0NzYwMjdhNDcwODEyNjNlZWQ1
YjZiMmFkZmI1NzUzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDctMTAgIE5vJ2FtIFJvc2VudGhhbCAgPG5v
YW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIFFSYXdXZWJWaWV3IHNob3Vs
ZCBub3RpZnkgd2hlbiByZW5kZXJpbmcgaXMgZG9uZSwgc28gdGhhdCBwaXhlbCByZXN1bHRzIGNh
biBiZSBncmFiYmVkIGF0IHRoZSBhcHByb3ByaWF0ZSBtb21lbnQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDY0MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTWluaUJyb3dzZXIvcXQvcmF3L1ZpZXcu
aDogQ29tbWVudCB1c2VkIG9sZCBjbGFzcyBuYW1lIChXS1ZpZXcpLgorICAgICAgICAoVmlldyk6
CisKIDIwMTItMDctMDkgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBJbXByb3ZlIHdlYmtpdC1wYXRjaCByZWJhc2VsaW5lIHRvIHdvcmsgZm9yIG1vcmUgY2FzZXMK
ZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL3F0L3Jhdy9WaWV3LmggYi9Ub29scy9NaW5p
QnJvd3Nlci9xdC9yYXcvVmlldy5oCmluZGV4IDZkZTdhMjVlMjE0NTY5ZTQ1MzFhNTgwODJmNzI1
MjE5ZjZhMjQxMjUuLmU1MzIyM2Y4OTZlMzI4ZmMyOWY3NzM1OTk4YjJiYjkxNjA0ZjRmODEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL3F0L3Jhdy9WaWV3LmgKKysrIGIvVG9vbHMvTWlu
aUJyb3dzZXIvcXQvcmF3L1ZpZXcuaApAQCAtMzEsNyArMzEsNyBAQCBwdWJsaWM6CiAgICAgVmll
dyhjb25zdCBRU3RyaW5nJiB1cmwpOwogICAgIH5WaWV3KCk7CiAKLXB1YmxpYzogLy8gV0tWaWV3
Q2xpZW50CitwdWJsaWM6IC8vIFFSYXdXZWJWaWV3Q2xpZW50CiAgICAgdmlydHVhbCB2b2lkIHZp
ZXdOZWVkc0Rpc3BsYXkoY29uc3QgUVJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgdmlld1JlcXVl
c3RlZFNjcm9sbChjb25zdCBRUG9pbnQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdmlld1Byb2Nl
c3NDcmFzaGVkKCkgeyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151724</attachid>
            <date>2012-07-11 10:10:20 -0700</date>
            <delta_ts>2012-07-11 10:13:17 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-90641-20120711101000.patch</filename>
            <type>text/plain</type>
            <size>11699</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWE0NjRkMDA3OTliZmEx
YzRjOGFkMGJhMzQ5M2Q2Nzc3MmY4YzU5YS4uZWViMmM4N2U3ZDNmODZmMjM1YTNjZDM2ODk0NmVj
NWNmNjA0MjczNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA3LTEwICBObydh
bSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBR
UmF3V2ViVmlldyBzaG91bGQgbm90aWZ5IHdoZW4gcmVuZGVyaW5nIGlzIGRvbmUsIHNvIHRoYXQg
cGl4ZWwgcmVzdWx0cyBjYW4gYmUgZ3JhYmJlZCBhdCB0aGUgYXBwcm9wcmlhdGUgbW9tZW50Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA2NDEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQg
TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmZvcmNlUmVwYWludCB3aXRoIGxvZ2ljIGVxdWl2YWxlbnQg
dG8gdGhlIG9uZSBpbgorICAgICAgICBMYXllclRyZWVIb3N0Q0EuIElmIHdlIGZsdXNoIHRoZSBs
YXllcnMgc3luY2hyb25vdXNseSB3aGVuIGZvcmNlUmVwYWludCBpcyBjYWxsZWQsd2hlbgorICAg
ICAgICBXS1BhZ2VGb3JjZVJlcGFpbnQgcmV0dXJucyB3ZSBhcmUgZ3VhcmFudGVlZCB0byBoYXZl
IGFuIHVwLXRvLWRhdGUgaW1hZ2UsIGFzIHRoZSB2aXNpYmxlCisgICAgICAgIHRpbGVzIGFyZSBh
bHNvIHN5bmNocm9ub3VzbHkgdXBkYXRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQv
dGVzdHMvcXJhd3dlYnZpZXcvdHN0X3FyYXd3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6
OldlYlZpZXcpOgorICAgICAgICAoV2ViVmlldzo6dmlld05lZWRzRGlzcGxheSk6CisgICAgICAg
IChXZWJWaWV3OjpmcmFtZUxvYWRlZCk6CisgICAgICAgIChXZWJWaWV3KToKKyAgICAgICAgKFdl
YlZpZXc6Om9uUmVwYWludERvbmUpOgorICAgICAgICAoV2ViVmlldzo6ZmluaXNoRm9yY2VSZXBh
aW50KToKKyAgICAgICAgKFdlYlZpZXc6OmZpbmlzaEZpcnN0TGF5b3V0Rm9yRnJhbWUpOgorICAg
ICAgICAodHN0X3FyYXd3ZWJ2aWV3Ojpkb05vQmFja2dyb3VuZDEpOgorICAgICAgICAodHN0X3Fy
YXd3ZWJ2aWV3Ojpkb05vQmFja2dyb3VuZDIpOgorICAgICAgICAodHN0X3FyYXd3ZWJ2aWV3Ojpk
b05vQmFja2dyb3VuZDMpOgorICAgICAgICAodHN0X3FyYXd3ZWJ2aWV3OjpydW4pOgorICAgICAg
ICAgICAgVGhlIHRlc3QgZm9yIFFSYXdXZWJWaWV3IGhhcyBiZWVuIHVwZGF0ZWQgdG8gdXNlIHRo
ZSBXZWJLaXQyIEZvcmNlUGFpbnQgQVBJIHByaW9yIHRvCisgICAgICAgICAgICBnZW5lcmF0aW5n
IHRoZSBwaXhlbCByZXN1bHRzLiBUaGlzIGhhcyBleHBvc2VkIGEgdGltaW5nIGJ1ZyBpbiB0aGUg
dGVzdCAtIHNldHRpbmcgdGhlCisgICAgICAgICAgICB0cmFuc3BhcmVudEJhY2tncm91bmQgcHJv
cGVydHkgb2YgYSBwYWdlIGhhcyB0byBiZSBkb25lIGJlZm9yZSBpdCdzIGNyZWF0ZWQuIFRoaXMg
aGFzCisgICAgICAgICAgICBiZWVuIGZpeGVkIGluIHRoZSB0ZXN0LgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5hdG9yL0xheWVyVHJlZUNvb3JkaW5hdG9y
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmZvcmNlUmVwYWlu
dCk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpwZXJmb3JtU2NoZWR1
bGVkTGF5ZXJGbHVzaCk6CisgICAgICAgIChXZWJLaXQpOgorCiAyMDEyLTA3LTExICBNT1JJVEEg
SGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAgIFdlYkNvcmVTdXBwb3J0IG5l
ZWRzIG9iamVjdHMgZWFjaCBvZiB3aGljaCBmb2xsb3dzIG1ham9yIFdlYkNvcmUgb2JqZWN0cwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xcmF3d2Vi
dmlldy90c3RfcXJhd3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC90ZXN0cy9xcmF3d2Vidmlldy90c3RfcXJhd3dlYnZpZXcuY3BwCmluZGV4IDlmNjg4ODE4MGE1
MWIzZjdlMDUwMzNlOTg2ZTI2OGIxMzljNDQ0Y2QuLmIzMjJiYWNkNGNjZTJkZDc3ZTBlM2ZlOWIz
ZjM1Y2IwM2I0OGQ5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvdGVzdHMvcXJhd3dlYnZpZXcvdHN0X3FyYXd3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FyYXd3ZWJ2aWV3L3RzdF9xcmF3d2Vidmlldy5j
cHAKQEAgLTU4LDE1ICs1OCwxNiBAQCBzdGF0aWMgV0tQYWdlR3JvdXBSZWYgd2ViUGFnZUdyb3Vw
KGNvbnN0IFFTdHJpbmcmIG5hbWUpCiBjbGFzcyBXZWJWaWV3IDogcHVibGljIFFPYmplY3QsIHB1
YmxpYyBRUmF3V2ViVmlld0NsaWVudCB7CiAgICAgUV9PQkpFQ1QKIHB1YmxpYzoKLSAgICBXZWJW
aWV3KGNvbnN0IFFTaXplJiBzaXplKQorICAgIFdlYlZpZXcoY29uc3QgUVNpemUmIHNpemUsIGJv
b2wgdHJhbnNwYXJlbnQgPSBmYWxzZSkKICAgICB7CiAgICAgICAgIFdLUGFnZUxvYWRlckNsaWVu
dCBsb2FkZXJDbGllbnQ7CiAgICAgICAgIG1lbXNldCgmbG9hZGVyQ2xpZW50LCAwLCBzaXplb2Yo
V0tQYWdlTG9hZGVyQ2xpZW50KSk7CiAgICAgICAgIGxvYWRlckNsaWVudC5jbGllbnRJbmZvID0g
dGhpczsKLSAgICAgICAgbG9hZGVyQ2xpZW50LmRpZEZpbmlzaExvYWRGb3JGcmFtZSA9IFdlYlZp
ZXc6OmZpbmlzaExvYWRGb3JGcmFtZTsKKyAgICAgICAgbG9hZGVyQ2xpZW50LmRpZEZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lID0gV2ViVmlldzo6ZmluaXNoRmlyc3RMYXlvdXRG
b3JGcmFtZTsKIAogICAgICAgICBtX3dlYlZpZXcgPSBuZXcgUVJhd1dlYlZpZXcod2ViQ29udGV4
dCgpLCB3ZWJQYWdlR3JvdXAoUVN0cmluZygpKSwgdGhpcyk7CiAgICAgICAgIFdLUGFnZVNldFBh
Z2VMb2FkZXJDbGllbnQobV93ZWJWaWV3LT5wYWdlUmVmKCksICZsb2FkZXJDbGllbnQpOworICAg
ICAgICBtX3dlYlZpZXctPnNldFRyYW5zcGFyZW50QmFja2dyb3VuZCh0cmFuc3BhcmVudCk7CiAg
ICAgICAgIG1fd2ViVmlldy0+Y3JlYXRlKCk7CiAgICAgICAgIFdLUGFnZVNldFVzZUZpeGVkTGF5
b3V0KG1fd2ViVmlldy0+cGFnZVJlZigpLCB0cnVlKTsKIApAQCAtOTEsOCArOTIsNiBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUVJlY3QmKQogICAg
IHsKICAgICAgICAgbV93ZWJWaWV3LT5wYWludChRTWF0cml4NHg0KCksIDEsIDApOwotICAgICAg
ICBpZiAobV9mcmFtZUxvYWRlZCkKLSAgICAgICAgICAgIGVtaXQgbG9hZGVkKCk7CiAgICAgfQog
CiAgICAgdmlydHVhbCB2b2lkIHZpZXdSZXF1ZXN0ZWRTY3JvbGwoY29uc3QgUVBvaW50JikgeyB9
CkBAIC0xMDMsNyArMTAyLDI2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZG9uZVdpdGhL
ZXlFdmVudChjb25zdCBRS2V5RXZlbnQqLCBib29sIHdhc0hhbmRsZWQpIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBkb25lV2l0aFRvdWNoRXZlbnQoY29uc3QgUVRvdWNoRXZlbnQqLCBib29sIHdhc0hh
bmRsZWQpIHsgfQogCi0gICAgc3RhdGljIHZvaWQgZmluaXNoTG9hZEZvckZyYW1lKFdLUGFnZVJl
ZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pOworICAgIHZvaWQgZnJhbWVMb2FkZWQoKQorICAgIHsKKyAgICAgICAgbV9m
cmFtZUxvYWRlZCA9IHRydWU7CisgICAgICAgIFdLUGFnZUZvcmNlUmVwYWludChtX3dlYlZpZXct
PnBhZ2VSZWYoKSwgdGhpcywgZmluaXNoRm9yY2VSZXBhaW50KTsKKyAgICB9CisKKyAgICB2b2lk
IG9uUmVwYWludERvbmUoKQorICAgIHsKKyAgICAgICAgZW1pdCBsb2FkZWQoKTsKKyAgICB9CisK
KyAgICBzdGF0aWMgdm9pZCBmaW5pc2hGb3JjZVJlcGFpbnQoV0tFcnJvclJlZiwgdm9pZCogY29u
dGV4dCkKKyAgICB7CisgICAgICAgIHN0YXRpY19jYXN0PFdlYlZpZXcqPihjb250ZXh0KS0+b25S
ZXBhaW50RG9uZSgpOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIGZpbmlzaEZpcnN0TGF5b3V0
Rm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2Vy
RGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKKyAgICB7CisgICAgICAgIHN0YXRpY19jYXN0
PFdlYlZpZXcqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmZyYW1lTG9hZGVkKCk7
CisgICAgfQogCiBzaWduYWxzOgogICAgIHZvaWQgbG9hZGVkKCk7CkBAIC0xMTMsMTIgKzEzMSw2
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2ZyYW1lTG9hZGVkOwogfTsKIAotdm9pZCBXZWJWaWV3
OjpmaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdL
VHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKLXsKLSAgICBXZWJWaWV3
KiBvYmogPSBzdGF0aWNfY2FzdDxXZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5m
bykpOwotICAgIG9iai0+bV9mcmFtZUxvYWRlZCA9IHRydWU7Ci19Ci0KIHN0YXRpYyBib29sIGNv
bXBhcmVJbWFnZXMoY29uc3QgUUltYWdlJiBpMSwgY29uc3QgUUltYWdlJiBpMiwgaW50IGNvdW50
KQogewogICAgIGlmIChpMS5zaXplKCkgIT0gaTIuc2l6ZSgpKQpAQCAtMTY5LDM3ICsxODEsMzEg
QEAgdm9pZCB0c3RfcXJhd3dlYnZpZXc6OmRvUGFpbnQoY29uc3QgUVNpemUmIHNpemUpCiAKIHZv
aWQgdHN0X3FyYXd3ZWJ2aWV3Ojpkb05vQmFja2dyb3VuZDEoY29uc3QgUVNpemUmIHNpemUpCiB7
Ci0gICAgV2ViVmlldyB2aWV3KHNpemUpOwotICAgIHZpZXcuc2V0VHJhbnNwYXJlbnRCYWNrZ3Jv
dW5kKHRydWUpOworICAgIFdlYlZpZXcgdmlldyhzaXplLCB0cnVlKTsKICAgICB2aWV3LmxvYWQo
bV9iYXNlVXJsICsgIi9yZWRzcXVhcmUuaHRtbCIpOwogICAgIHZpZXcubG9hZChtX2Jhc2VVcmwg
KyAiL2JsdWVzcXVhcmUuaHRtbCIpOwogfQogCiB2b2lkIHRzdF9xcmF3d2Vidmlldzo6ZG9Ob0Jh
Y2tncm91bmQyKGNvbnN0IFFTaXplJiBzaXplKQogewotICAgIFdlYlZpZXcgdmlldzEoc2l6ZSk7
Ci0gICAgdmlldzEuc2V0VHJhbnNwYXJlbnRCYWNrZ3JvdW5kKHRydWUpOworICAgIFdlYlZpZXcg
dmlldzEoc2l6ZSwgdHJ1ZSk7CiAgICAgdmlldzEubG9hZChtX2Jhc2VVcmwgKyAiL3JlZHNxdWFy
ZS5odG1sIik7CiAKLSAgICBXZWJWaWV3IHZpZXcyKHNpemUpOwotICAgIHZpZXcyLnNldFRyYW5z
cGFyZW50QmFja2dyb3VuZCh0cnVlKTsKKyAgICBXZWJWaWV3IHZpZXcyKHNpemUsIHRydWUpOwog
ICAgIHZpZXcyLmxvYWQobV9iYXNlVXJsICsgIi9ibHVlc3F1YXJlLmh0bWwiKTsKIH0KIAogdm9p
ZCB0c3RfcXJhd3dlYnZpZXc6OmRvTm9CYWNrZ3JvdW5kMyhjb25zdCBRU2l6ZSYgc2l6ZSkKIHsK
LSAgICBXZWJWaWV3IHZpZXcxKHNpemUpOwotICAgIHZpZXcxLnNldFRyYW5zcGFyZW50QmFja2dy
b3VuZChmYWxzZSk7CisgICAgV2ViVmlldyB2aWV3MShzaXplLCBmYWxzZSk7CiAgICAgdmlldzEu
bG9hZChtX2Jhc2VVcmwgKyAiL3JlZHNxdWFyZS5odG1sIik7CiAKLSAgICBXZWJWaWV3IHZpZXcy
KHNpemUpOwotICAgIHZpZXcyLnNldFRyYW5zcGFyZW50QmFja2dyb3VuZCh0cnVlKTsKKyAgICBX
ZWJWaWV3IHZpZXcyKHNpemUsIHRydWUpOwogICAgIHZpZXcyLmxvYWQobV9iYXNlVXJsICsgIi9i
bHVlc3F1YXJlLmh0bWwiKTsKIH0KIAogdm9pZCB0c3RfcXJhd3dlYnZpZXc6OnJ1bihQYWludE1l
dGhvZCBtZXRob2QsIGNvbnN0IFFTdHJpbmcmIGV4cGVjdGF0aW9uKQogewotCiAgICAgUVdpbmRv
dyB3aW5kb3c7CiAgICAgd2luZG93LnNldFN1cmZhY2VUeXBlKFFTdXJmYWNlOjpPcGVuR0xTdXJm
YWNlKTsKICAgICB3aW5kb3cuc2V0R2VvbWV0cnkoMCwgMCwgMjAwLCAyMDApOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5hdG9y
L0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9MYXllclRyZWVDb29yZGluYXRvci9MYXllclRyZWVDb29yZGluYXRvci5jcHAKaW5kZXgg
ZjNlODczNWU1YzFiNjUwM2E3MjA0MTY5N2JkNWQyODY0Nzg0MDgyZC4uYWUwOTlkMTVjZWM0NmY0
NWU1YTNlOWY1YWE4OWYzNWRiZGE1NmMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5hdG9yL0xheWVyVHJlZUNvb3JkaW5hdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlQ29v
cmRpbmF0b3IvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCkBAIC0xNzQsNyArMTc0LDEwIEBAIHZv
aWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnNjcm9sbE5vbkNvbXBvc2l0ZWRDb250ZW50cyhjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBzCiAKIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmZvcmNl
UmVwYWludCgpCiB7CisgICAgLy8gV2UgbmVlZCB0byBzY2hlZHVsZSBhbm90aGVyIGZsdXNoLCBv
dGhlcndpc2UgdGhlIGZvcmNlZCBwYWludCBtaWdodCBjYW5jZWwgYSBsYXRlciBleHBlY3RlZCBm
bHVzaC4KKyAgICAvLyBUaGlzIGlzIGFsaWduZWQgd2l0aCBMYXllclRyZWVIb3N0Q0EuCiAgICAg
c2NoZWR1bGVMYXllckZsdXNoKCk7CisgICAgZmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKCk7CiB9
CiAKIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnNpemVEaWRDaGFuZ2UoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgbmV3U2l6ZSkKQEAgLTIzMSwxMyArMjM0LDI3IEBAIHZvaWQgTGF5ZXJUcmVl
Q29vcmRpbmF0b3I6OnNldFBhZ2VPdmVybGF5T3BhY2l0eShmbG9hdCB2YWx1ZSkKIAogYm9vbCBM
YXllclRyZWVDb29yZGluYXRvcjo6Zmx1c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKCkKIHsKKyAgICBt
X3Nob3VsZFN5bmNGcmFtZSA9IGZhbHNlOwogICAgIGJvb2wgZGlkU3luYyA9IG1fd2ViUGFnZS0+
Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKS0+c3luY0NvbXBvc2l0aW5nU3RhdGVJbmNs
dWRpbmdTdWJmcmFtZXMoKTsKICAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXItPnN5bmND
b21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOwogICAgIGlmIChtX3BhZ2VPdmVybGF5
TGF5ZXIpCiAgICAgICAgIG1fcGFnZU92ZXJsYXlMYXllci0+c3luY0NvbXBvc2l0aW5nU3RhdGVG
b3JUaGlzTGF5ZXJPbmx5KCk7CiAKICAgICBtX3Jvb3RMYXllci0+c3luY0NvbXBvc2l0aW5nU3Rh
dGVGb3JUaGlzTGF5ZXJPbmx5KCk7Ci0gICAgcmV0dXJuIGRpZFN5bmM7CisKKyAgICBpZiAobV9z
aG91bGRTeW5jUm9vdExheWVyKSB7CisgICAgICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6
TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6U2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIodG9XZWJH
cmFwaGljc0xheWVyKG1fcm9vdExheWVyLmdldCgpKS0+aWQoKSkpOworICAgICAgICBtX3Nob3Vs
ZFN5bmNSb290TGF5ZXIgPSBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoIW1fc2hvdWxkU3luY0Zy
YW1lKQorICAgICAgICByZXR1cm4gZGlkU3luYzsKKworICAgIG1fd2ViUGFnZS0+c2VuZChNZXNz
YWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6RGlkUmVuZGVyRnJhbWUoKSk7CisgICAg
bV93YWl0aW5nRm9yVUlQcm9jZXNzID0gdHJ1ZTsKKyAgICBtX3Nob3VsZFN5bmNGcmFtZSA9IGZh
bHNlOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6
OnN5bmNMYXllclN0YXRlKFdlYkxheWVySUQgaWQsIGNvbnN0IFdlYkxheWVySW5mbyYgaW5mbykK
QEAgLTI0Niw2ICsyNjMsNyBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzeW5jTGF5ZXJT
dGF0ZShXZWJMYXllcklEIGlkLCBjb25zdCBXZWJMYXllckluZm8mIGluZgogICAgICAgICBtX3dl
YlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OkRpZENoYW5n
ZVNjcm9sbFBvc2l0aW9uKG1fdmlzaWJsZUNvbnRlbnRzUmVjdC5sb2NhdGlvbigpKSk7CiAgICAg
ICAgIG1fc2hvdWxkU2VuZFNjcm9sbFBvc2l0aW9uVXBkYXRlID0gZmFsc2U7CiAgICAgfQorCiAg
ICAgbV9zaG91bGRTeW5jRnJhbWUgPSB0cnVlOwogICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdl
czo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6U2V0Q29tcG9zaXRpbmdMYXllclN0YXRlKGlk
LCBpbmZvKSk7CiB9CkBAIC0zNDQsMjUgKzM2MiwxNiBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5h
dG9yOjpwZXJmb3JtU2NoZWR1bGVkTGF5ZXJGbHVzaCgpCiAgICAgaWYgKCFtX2lzVmFsaWQpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gZmFsc2U7Ci0gICAgZmx1
c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKCk7Ci0gICAgaWYgKCFtX3Nob3VsZFN5bmNGcmFtZSkKLSAg
ICAgICAgcmV0dXJuOworICAgIGlmIChmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKSkKKyAgICAg
ICAgZGlkUGVyZm9ybVNjaGVkdWxlZExheWVyRmx1c2goKTsKK30KIAotICAgIGlmIChtX3Nob3Vs
ZFN5bmNSb290TGF5ZXIpIHsKLSAgICAgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXll
clRyZWVDb29yZGluYXRvclByb3h5OjpTZXRSb290Q29tcG9zaXRpbmdMYXllcih0b1dlYkdyYXBo
aWNzTGF5ZXIobV9yb290TGF5ZXIuZ2V0KCkpLT5pZCgpKSk7Ci0gICAgICAgIG1fc2hvdWxkU3lu
Y1Jvb3RMYXllciA9IGZhbHNlOwordm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6ZGlkUGVyZm9y
bVNjaGVkdWxlZExheWVyRmx1c2goKQoreworICAgIGlmIChtX25vdGlmeUFmdGVyU2NoZWR1bGVk
TGF5ZXJGbHVzaCkgeworICAgICAgICBzdGF0aWNfY2FzdDxEcmF3aW5nQXJlYUltcGwqPihtX3dl
YlBhZ2UtPmRyYXdpbmdBcmVhKCkpLT5sYXllckhvc3REaWRGbHVzaExheWVycygpOworICAgICAg
ICBtX25vdGlmeUFmdGVyU2NoZWR1bGVkTGF5ZXJGbHVzaCA9IGZhbHNlOwogICAgIH0KLQotICAg
IG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6RGlk
UmVuZGVyRnJhbWUoKSk7Ci0gICAgbV93YWl0aW5nRm9yVUlQcm9jZXNzID0gdHJ1ZTsKLQotICAg
IGlmICghbV9ub3RpZnlBZnRlclNjaGVkdWxlZExheWVyRmx1c2gpCi0gICAgICAgIHJldHVybjsK
LQotICAgIC8vIExldCB0aGUgZHJhd2luZyBhcmVhIGtub3cgdGhhdCB3ZSd2ZSBkb25lIGEgZmx1
c2ggb2YgdGhlIGxheWVyIGNoYW5nZXMuCi0gICAgc3RhdGljX2Nhc3Q8RHJhd2luZ0FyZWFJbXBs
Kj4obV93ZWJQYWdlLT5kcmF3aW5nQXJlYSgpKS0+bGF5ZXJIb3N0RGlkRmx1c2hMYXllcnMoKTsK
LSAgICBtX25vdGlmeUFmdGVyU2NoZWR1bGVkTGF5ZXJGbHVzaCA9IGZhbHNlOwogfQogCiB2b2lk
IExheWVyVHJlZUNvb3JkaW5hdG9yOjpsYXllckZsdXNoVGltZXJGaXJlZChUaW1lcjxMYXllclRy
ZWVDb29yZGluYXRvcj4qKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5hdG9yL0xheWVyVHJlZUNvb3JkaW5hdG9yLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlQ29vcmRpbmF0b3IvTGF5ZXJU
cmVlQ29vcmRpbmF0b3IuaAppbmRleCBiYzQ0OWY0NmEyODJiMmVmYTk4OWFjY2YzZmI5NGRiNzI1
NTI4ZjAzLi45YjUxNTRjMzZmOGUxOWVlNDBmZjVjNWE0MDk3ODgwNDkxZmIwYTBiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlQ29vcmRpbmF0
b3IvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvTGF5ZXJUcmVlQ29vcmRpbmF0b3IvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaApAQCAt
MTA0LDcgKzEwNCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBmbHVzaFBlbmRpbmdMYXllckNoYW5n
ZXMoKTsKICAgICB2b2lkIGNhbmNlbFBlbmRpbmdMYXllckZsdXNoKCk7CiAgICAgdm9pZCBwZXJm
b3JtU2NoZWR1bGVkTGF5ZXJGbHVzaCgpOwotICAgIHZvaWQgc2VuZExheWVyc1RvVUkoKTsKKyAg
ICB2b2lkIGRpZFBlcmZvcm1TY2hlZHVsZWRMYXllckZsdXNoKCk7CiAKICAgICBPd25QdHI8V2Vi
Q29yZTo6R3JhcGhpY3NMYXllcj4gbV9yb290TGF5ZXI7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwYTllZTkyYWQ1YmFlNzM4NzFlZDNjNzU4
MDYxZTgxZjAyMGM1ZGVjLi44MDk5ZGFlZTBkZTc0MTMzYzFmMThkZmMzYjYxMmRjMzU1MGEwOTZl
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTItMDctMTAgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFs
QG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIFFSYXdXZWJWaWV3IHNob3VsZCBub3RpZnkgd2hl
biByZW5kZXJpbmcgaXMgZG9uZSwgc28gdGhhdCBwaXhlbCByZXN1bHRzIGNhbiBiZSBncmFiYmVk
IGF0IHRoZSBhcHByb3ByaWF0ZSBtb21lbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MDY0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogTWluaUJyb3dzZXIvcXQvcmF3L1ZpZXcuaDogQ29tbWVudCB1
c2VkIG9sZCBjbGFzcyBuYW1lIChXS1ZpZXcpLgorICAgICAgICAoVmlldyk6CisKIDIwMTItMDct
MTEgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRd
IFJFR1JFU1NJT04ocjEwNzE3MSk6IEZpeCAtLXRpbWVvdXQgb3B0aW9uIG9mIFF0J3MgRFJUCmRp
ZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9yYXcvVmlldy5oIGIvVG9vbHMvTWluaUJy
b3dzZXIvcXQvcmF3L1ZpZXcuaAppbmRleCA2ZGU3YTI1ZTIxNDU2OWU0NTMxYTU4MDgyZjcyNTIx
OWY2YTI0MTI1Li5lNTMyMjNmODk2ZTMyOGZjMjlmNzczNTk5OGIyYmI5MTYwNGY0ZjgxIDEwMDY0
NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9xdC9yYXcvVmlldy5oCisrKyBiL1Rvb2xzL01pbmlC
cm93c2VyL3F0L3Jhdy9WaWV3LmgKQEAgLTMxLDcgKzMxLDcgQEAgcHVibGljOgogICAgIFZpZXco
Y29uc3QgUVN0cmluZyYgdXJsKTsKICAgICB+VmlldygpOwogCi1wdWJsaWM6IC8vIFdLVmlld0Ns
aWVudAorcHVibGljOiAvLyBRUmF3V2ViVmlld0NsaWVudAogICAgIHZpcnR1YWwgdm9pZCB2aWV3
TmVlZHNEaXNwbGF5KGNvbnN0IFFSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIHZpZXdSZXF1ZXN0
ZWRTY3JvbGwoY29uc3QgUVBvaW50JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHZpZXdQcm9jZXNz
Q3Jhc2hlZCgpIHsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151726</attachid>
            <date>2012-07-11 10:13:52 -0700</date>
            <delta_ts>2012-07-11 10:50:21 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-90641-20120711101333.patch</filename>
            <type>text/plain</type>
            <size>11703</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZWE0NjRkMDA3OTliZmEx
YzRjOGFkMGJhMzQ5M2Q2Nzc3MmY4YzU5YS4uNDczYjgyODZmMjY4NDA3ZmU1OGQ3MmEyMDU0ZTEy
YzE3ZDg5ZTkyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA3LTEwICBObydh
bSBSb3NlbnRoYWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XSBR
UmF3V2ViVmlldyBzaG91bGQgbm90aWZ5IHdoZW4gcmVuZGVyaW5nIGlzIGRvbmUsIHNvIHRoYXQg
cGl4ZWwgcmVzdWx0cyBjYW4gYmUgZ3JhYmJlZCBhdCB0aGUgYXBwcm9wcmlhdGUgbW9tZW50Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA2NDEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBKb2NlbHluIFR1cmNvdHRlLgorCisgICAgICAgIEltcGxlbWVu
dCBMYXllclRyZWVDb29yZGluYXRvcjo6Zm9yY2VSZXBhaW50IHdpdGggbG9naWMgZXF1aXZhbGVu
dCB0byB0aGUgb25lIGluCisgICAgICAgIExheWVyVHJlZUhvc3RDQS4gSWYgd2UgZmx1c2ggdGhl
IGxheWVycyBzeW5jaHJvbm91c2x5IHdoZW4gZm9yY2VSZXBhaW50IGlzIGNhbGxlZCx3aGVuCisg
ICAgICAgIFdLUGFnZUZvcmNlUmVwYWludCByZXR1cm5zIHdlIGFyZSBndWFyYW50ZWVkIHRvIGhh
dmUgYW4gdXAtdG8tZGF0ZSBpbWFnZSwgYXMgdGhlIHZpc2libGUKKyAgICAgICAgdGlsZXMgYXJl
IGFsc28gc3luY2hyb25vdXNseSB1cGRhdGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9x
dC90ZXN0cy9xcmF3d2Vidmlldy90c3RfcXJhd3dlYnZpZXcuY3BwOgorICAgICAgICAoV2ViVmll
dzo6V2ViVmlldyk6CisgICAgICAgIChXZWJWaWV3Ojp2aWV3TmVlZHNEaXNwbGF5KToKKyAgICAg
ICAgKFdlYlZpZXc6OmZyYW1lTG9hZGVkKToKKyAgICAgICAgKFdlYlZpZXcpOgorICAgICAgICAo
V2ViVmlldzo6b25SZXBhaW50RG9uZSk6CisgICAgICAgIChXZWJWaWV3OjpmaW5pc2hGb3JjZVJl
cGFpbnQpOgorICAgICAgICAoV2ViVmlldzo6ZmluaXNoRmlyc3RMYXlvdXRGb3JGcmFtZSk6Cisg
ICAgICAgICh0c3RfcXJhd3dlYnZpZXc6OmRvTm9CYWNrZ3JvdW5kMSk6CisgICAgICAgICh0c3Rf
cXJhd3dlYnZpZXc6OmRvTm9CYWNrZ3JvdW5kMik6CisgICAgICAgICh0c3RfcXJhd3dlYnZpZXc6
OmRvTm9CYWNrZ3JvdW5kMyk6CisgICAgICAgICh0c3RfcXJhd3dlYnZpZXc6OnJ1bik6CisgICAg
ICAgICAgICBUaGUgdGVzdCBmb3IgUVJhd1dlYlZpZXcgaGFzIGJlZW4gdXBkYXRlZCB0byB1c2Ug
dGhlIFdlYktpdDIgRm9yY2VQYWludCBBUEkgcHJpb3IgdG8KKyAgICAgICAgICAgIGdlbmVyYXRp
bmcgdGhlIHBpeGVsIHJlc3VsdHMuIFRoaXMgaGFzIGV4cG9zZWQgYSB0aW1pbmcgYnVnIGluIHRo
ZSB0ZXN0IC0gc2V0dGluZyB0aGUKKyAgICAgICAgICAgIHRyYW5zcGFyZW50QmFja2dyb3VuZCBw
cm9wZXJ0eSBvZiBhIHBhZ2UgaGFzIHRvIGJlIGRvbmUgYmVmb3JlIGl0J3MgY3JlYXRlZC4gVGhp
cyBoYXMKKyAgICAgICAgICAgIGJlZW4gZml4ZWQgaW4gdGhlIHRlc3QuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlQ29vcmRpbmF0b3IvTGF5ZXJUcmVlQ29vcmRpbmF0
b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6Zm9yY2VSZXBh
aW50KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnBlcmZvcm1TY2hl
ZHVsZWRMYXllckZsdXNoKToKKyAgICAgICAgKFdlYktpdCk6CisKIDIwMTItMDctMTEgIE1PUklU
QSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgV2ViQ29yZVN1cHBvcnQg
bmVlZHMgb2JqZWN0cyBlYWNoIG9mIHdoaWNoIGZvbGxvd3MgbWFqb3IgV2ViQ29yZSBvYmplY3Rz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FyYXd3
ZWJ2aWV3L3RzdF9xcmF3d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3Rlc3RzL3FyYXd3ZWJ2aWV3L3RzdF9xcmF3d2Vidmlldy5jcHAKaW5kZXggOWY2ODg4MTgw
YTUxYjNmN2UwNTAzM2U5ODZlMjY4YjEzOWM0NDRjZC4uYjMyMmJhY2Q0Y2NlMmRkNzdlMGUzZmU5
YjNmMzVjYjAzYjQ4ZDlmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC90ZXN0cy9xcmF3d2Vidmlldy90c3RfcXJhd3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvdGVzdHMvcXJhd3dlYnZpZXcvdHN0X3FyYXd3ZWJ2aWV3
LmNwcApAQCAtNTgsMTUgKzU4LDE2IEBAIHN0YXRpYyBXS1BhZ2VHcm91cFJlZiB3ZWJQYWdlR3Jv
dXAoY29uc3QgUVN0cmluZyYgbmFtZSkKIGNsYXNzIFdlYlZpZXcgOiBwdWJsaWMgUU9iamVjdCwg
cHVibGljIFFSYXdXZWJWaWV3Q2xpZW50IHsKICAgICBRX09CSkVDVAogcHVibGljOgotICAgIFdl
YlZpZXcoY29uc3QgUVNpemUmIHNpemUpCisgICAgV2ViVmlldyhjb25zdCBRU2l6ZSYgc2l6ZSwg
Ym9vbCB0cmFuc3BhcmVudCA9IGZhbHNlKQogICAgIHsKICAgICAgICAgV0tQYWdlTG9hZGVyQ2xp
ZW50IGxvYWRlckNsaWVudDsKICAgICAgICAgbWVtc2V0KCZsb2FkZXJDbGllbnQsIDAsIHNpemVv
ZihXS1BhZ2VMb2FkZXJDbGllbnQpKTsKICAgICAgICAgbG9hZGVyQ2xpZW50LmNsaWVudEluZm8g
PSB0aGlzOwotICAgICAgICBsb2FkZXJDbGllbnQuZGlkRmluaXNoTG9hZEZvckZyYW1lID0gV2Vi
Vmlldzo6ZmluaXNoTG9hZEZvckZyYW1lOworICAgICAgICBsb2FkZXJDbGllbnQuZGlkRmlyc3RW
aXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUgPSBXZWJWaWV3OjpmaW5pc2hGaXJzdExheW91
dEZvckZyYW1lOwogCiAgICAgICAgIG1fd2ViVmlldyA9IG5ldyBRUmF3V2ViVmlldyh3ZWJDb250
ZXh0KCksIHdlYlBhZ2VHcm91cChRU3RyaW5nKCkpLCB0aGlzKTsKICAgICAgICAgV0tQYWdlU2V0
UGFnZUxvYWRlckNsaWVudChtX3dlYlZpZXctPnBhZ2VSZWYoKSwgJmxvYWRlckNsaWVudCk7Cisg
ICAgICAgIG1fd2ViVmlldy0+c2V0VHJhbnNwYXJlbnRCYWNrZ3JvdW5kKHRyYW5zcGFyZW50KTsK
ICAgICAgICAgbV93ZWJWaWV3LT5jcmVhdGUoKTsKICAgICAgICAgV0tQYWdlU2V0VXNlRml4ZWRM
YXlvdXQobV93ZWJWaWV3LT5wYWdlUmVmKCksIHRydWUpOwogCkBAIC05MSw4ICs5Miw2IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdmlld05lZWRzRGlzcGxheShjb25zdCBRUmVjdCYpCiAg
ICAgewogICAgICAgICBtX3dlYlZpZXctPnBhaW50KFFNYXRyaXg0eDQoKSwgMSwgMCk7Ci0gICAg
ICAgIGlmIChtX2ZyYW1lTG9hZGVkKQotICAgICAgICAgICAgZW1pdCBsb2FkZWQoKTsKICAgICB9
CiAKICAgICB2aXJ0dWFsIHZvaWQgdmlld1JlcXVlc3RlZFNjcm9sbChjb25zdCBRUG9pbnQmKSB7
IH0KQEAgLTEwMyw3ICsxMDIsMjYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkb25lV2l0
aEtleUV2ZW50KGNvbnN0IFFLZXlFdmVudCosIGJvb2wgd2FzSGFuZGxlZCkgeyB9CiAgICAgdmly
dHVhbCB2b2lkIGRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBRVG91Y2hFdmVudCosIGJvb2wgd2Fz
SGFuZGxlZCkgeyB9CiAKLSAgICBzdGF0aWMgdm9pZCBmaW5pc2hMb2FkRm9yRnJhbWUoV0tQYWdl
UmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbyk7CisgICAgdm9pZCBmcmFtZUxvYWRlZCgpCisgICAgeworICAgICAgICBt
X2ZyYW1lTG9hZGVkID0gdHJ1ZTsKKyAgICAgICAgV0tQYWdlRm9yY2VSZXBhaW50KG1fd2ViVmll
dy0+cGFnZVJlZigpLCB0aGlzLCBmaW5pc2hGb3JjZVJlcGFpbnQpOworICAgIH0KKworICAgIHZv
aWQgb25SZXBhaW50RG9uZSgpCisgICAgeworICAgICAgICBlbWl0IGxvYWRlZCgpOworICAgIH0K
KworICAgIHN0YXRpYyB2b2lkIGZpbmlzaEZvcmNlUmVwYWludChXS0Vycm9yUmVmLCB2b2lkKiBj
b250ZXh0KQorICAgIHsKKyAgICAgICAgc3RhdGljX2Nhc3Q8V2ViVmlldyo+KGNvbnRleHQpLT5v
blJlcGFpbnREb25lKCk7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgZmluaXNoRmlyc3RMYXlv
dXRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVz
ZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQorICAgIHsKKyAgICAgICAgc3RhdGljX2Nh
c3Q8V2ViVmlldyo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZnJhbWVMb2FkZWQo
KTsKKyAgICB9CiAKIHNpZ25hbHM6CiAgICAgdm9pZCBsb2FkZWQoKTsKQEAgLTExMywxMiArMTMx
LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZnJhbWVMb2FkZWQ7CiB9OwogCi12b2lkIFdlYlZp
ZXc6OmZpbmlzaExvYWRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwg
V0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQotewotICAgIFdlYlZp
ZXcqIG9iaiA9IHN0YXRpY19jYXN0PFdlYlZpZXcqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJ
bmZvKSk7Ci0gICAgb2JqLT5tX2ZyYW1lTG9hZGVkID0gdHJ1ZTsKLX0KLQogc3RhdGljIGJvb2wg
Y29tcGFyZUltYWdlcyhjb25zdCBRSW1hZ2UmIGkxLCBjb25zdCBRSW1hZ2UmIGkyLCBpbnQgY291
bnQpCiB7CiAgICAgaWYgKGkxLnNpemUoKSAhPSBpMi5zaXplKCkpCkBAIC0xNjksMzcgKzE4MSwz
MSBAQCB2b2lkIHRzdF9xcmF3d2Vidmlldzo6ZG9QYWludChjb25zdCBRU2l6ZSYgc2l6ZSkKIAog
dm9pZCB0c3RfcXJhd3dlYnZpZXc6OmRvTm9CYWNrZ3JvdW5kMShjb25zdCBRU2l6ZSYgc2l6ZSkK
IHsKLSAgICBXZWJWaWV3IHZpZXcoc2l6ZSk7Ci0gICAgdmlldy5zZXRUcmFuc3BhcmVudEJhY2tn
cm91bmQodHJ1ZSk7CisgICAgV2ViVmlldyB2aWV3KHNpemUsIHRydWUpOwogICAgIHZpZXcubG9h
ZChtX2Jhc2VVcmwgKyAiL3JlZHNxdWFyZS5odG1sIik7CiAgICAgdmlldy5sb2FkKG1fYmFzZVVy
bCArICIvYmx1ZXNxdWFyZS5odG1sIik7CiB9CiAKIHZvaWQgdHN0X3FyYXd3ZWJ2aWV3Ojpkb05v
QmFja2dyb3VuZDIoY29uc3QgUVNpemUmIHNpemUpCiB7Ci0gICAgV2ViVmlldyB2aWV3MShzaXpl
KTsKLSAgICB2aWV3MS5zZXRUcmFuc3BhcmVudEJhY2tncm91bmQodHJ1ZSk7CisgICAgV2ViVmll
dyB2aWV3MShzaXplLCB0cnVlKTsKICAgICB2aWV3MS5sb2FkKG1fYmFzZVVybCArICIvcmVkc3F1
YXJlLmh0bWwiKTsKIAotICAgIFdlYlZpZXcgdmlldzIoc2l6ZSk7Ci0gICAgdmlldzIuc2V0VHJh
bnNwYXJlbnRCYWNrZ3JvdW5kKHRydWUpOworICAgIFdlYlZpZXcgdmlldzIoc2l6ZSwgdHJ1ZSk7
CiAgICAgdmlldzIubG9hZChtX2Jhc2VVcmwgKyAiL2JsdWVzcXVhcmUuaHRtbCIpOwogfQogCiB2
b2lkIHRzdF9xcmF3d2Vidmlldzo6ZG9Ob0JhY2tncm91bmQzKGNvbnN0IFFTaXplJiBzaXplKQog
ewotICAgIFdlYlZpZXcgdmlldzEoc2l6ZSk7Ci0gICAgdmlldzEuc2V0VHJhbnNwYXJlbnRCYWNr
Z3JvdW5kKGZhbHNlKTsKKyAgICBXZWJWaWV3IHZpZXcxKHNpemUsIGZhbHNlKTsKICAgICB2aWV3
MS5sb2FkKG1fYmFzZVVybCArICIvcmVkc3F1YXJlLmh0bWwiKTsKIAotICAgIFdlYlZpZXcgdmll
dzIoc2l6ZSk7Ci0gICAgdmlldzIuc2V0VHJhbnNwYXJlbnRCYWNrZ3JvdW5kKHRydWUpOworICAg
IFdlYlZpZXcgdmlldzIoc2l6ZSwgdHJ1ZSk7CiAgICAgdmlldzIubG9hZChtX2Jhc2VVcmwgKyAi
L2JsdWVzcXVhcmUuaHRtbCIpOwogfQogCiB2b2lkIHRzdF9xcmF3d2Vidmlldzo6cnVuKFBhaW50
TWV0aG9kIG1ldGhvZCwgY29uc3QgUVN0cmluZyYgZXhwZWN0YXRpb24pCiB7Ci0KICAgICBRV2lu
ZG93IHdpbmRvdzsKICAgICB3aW5kb3cuc2V0U3VyZmFjZVR5cGUoUVN1cmZhY2U6Ok9wZW5HTFN1
cmZhY2UpOwogICAgIHdpbmRvdy5zZXRHZW9tZXRyeSgwLCAwLCAyMDAsIDIwMCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlQ29vcmRpbmF0
b3IvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0xheWVyVHJlZUNvb3JkaW5hdG9yL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAppbmRl
eCBmM2U4NzM1ZTVjMWI2NTAzYTcyMDQxNjk3YmQ1ZDI4NjQ3ODQwODJkLi5hZTA5OWQxNWNlYzQ2
ZjQ1ZTVhM2U5ZjVhYTg5ZjM1ZGJkYTU2YzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJUcmVlQ29vcmRpbmF0b3IvTGF5ZXJUcmVlQ29vcmRpbmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVD
b29yZGluYXRvci9MYXllclRyZWVDb29yZGluYXRvci5jcHAKQEAgLTE3NCw3ICsxNzQsMTAgQEAg
dm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6c2Nyb2xsTm9uQ29tcG9zaXRlZENvbnRlbnRzKGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmIHMKIAogdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6Zm9y
Y2VSZXBhaW50KCkKIHsKKyAgICAvLyBXZSBuZWVkIHRvIHNjaGVkdWxlIGFub3RoZXIgZmx1c2gs
IG90aGVyd2lzZSB0aGUgZm9yY2VkIHBhaW50IG1pZ2h0IGNhbmNlbCBhIGxhdGVyIGV4cGVjdGVk
IGZsdXNoLgorICAgIC8vIFRoaXMgaXMgYWxpZ25lZCB3aXRoIExheWVyVHJlZUhvc3RDQS4KICAg
ICBzY2hlZHVsZUxheWVyRmx1c2goKTsKKyAgICBmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKTsK
IH0KIAogdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6c2l6ZURpZENoYW5nZShjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBuZXdTaXplKQpAQCAtMjMxLDEzICsyMzQsMjcgQEAgdm9pZCBMYXllclRy
ZWVDb29yZGluYXRvcjo6c2V0UGFnZU92ZXJsYXlPcGFjaXR5KGZsb2F0IHZhbHVlKQogCiBib29s
IExheWVyVHJlZUNvb3JkaW5hdG9yOjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKQogeworICAg
IG1fc2hvdWxkU3luY0ZyYW1lID0gZmFsc2U7CiAgICAgYm9vbCBkaWRTeW5jID0gbV93ZWJQYWdl
LT5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpLT5zeW5jQ29tcG9zaXRpbmdTdGF0ZUlu
Y2x1ZGluZ1N1YmZyYW1lcygpOwogICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRMYXllci0+c3lu
Y0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CiAgICAgaWYgKG1fcGFnZU92ZXJs
YXlMYXllcikKICAgICAgICAgbV9wYWdlT3ZlcmxheUxheWVyLT5zeW5jQ29tcG9zaXRpbmdTdGF0
ZUZvclRoaXNMYXllck9ubHkoKTsKIAogICAgIG1fcm9vdExheWVyLT5zeW5jQ29tcG9zaXRpbmdT
dGF0ZUZvclRoaXNMYXllck9ubHkoKTsKLSAgICByZXR1cm4gZGlkU3luYzsKKworICAgIGlmICht
X3Nob3VsZFN5bmNSb290TGF5ZXIpIHsKKyAgICAgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpTZXRSb290Q29tcG9zaXRpbmdMYXllcih0b1dl
YkdyYXBoaWNzTGF5ZXIobV9yb290TGF5ZXIuZ2V0KCkpLT5pZCgpKSk7CisgICAgICAgIG1fc2hv
dWxkU3luY1Jvb3RMYXllciA9IGZhbHNlOworICAgIH0KKworICAgIGlmICghbV9zaG91bGRTeW5j
RnJhbWUpCisgICAgICAgIHJldHVybiBkaWRTeW5jOworCisgICAgbV93ZWJQYWdlLT5zZW5kKE1l
c3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpEaWRSZW5kZXJGcmFtZSgpKTsKKyAg
ICBtX3dhaXRpbmdGb3JVSVByb2Nlc3MgPSB0cnVlOworICAgIG1fc2hvdWxkU3luY0ZyYW1lID0g
ZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBMYXllclRyZWVDb29yZGluYXRv
cjo6c3luY0xheWVyU3RhdGUoV2ViTGF5ZXJJRCBpZCwgY29uc3QgV2ViTGF5ZXJJbmZvJiBpbmZv
KQpAQCAtMjQ2LDYgKzI2Myw3IEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnN5bmNMYXll
clN0YXRlKFdlYkxheWVySUQgaWQsIGNvbnN0IFdlYkxheWVySW5mbyYgaW5mCiAgICAgICAgIG1f
d2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6RGlkQ2hh
bmdlU2Nyb2xsUG9zaXRpb24obV92aXNpYmxlQ29udGVudHNSZWN0LmxvY2F0aW9uKCkpKTsKICAg
ICAgICAgbV9zaG91bGRTZW5kU2Nyb2xsUG9zaXRpb25VcGRhdGUgPSBmYWxzZTsKICAgICB9CisK
ICAgICBtX3Nob3VsZFN5bmNGcmFtZSA9IHRydWU7CiAgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3Nh
Z2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpTZXRDb21wb3NpdGluZ0xheWVyU3RhdGUo
aWQsIGluZm8pKTsKIH0KQEAgLTM0NCwyNSArMzYyLDE2IEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRp
bmF0b3I6OnBlcmZvcm1TY2hlZHVsZWRMYXllckZsdXNoKCkKICAgICBpZiAoIW1faXNWYWxpZCkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9zaG91bGRTeW5jRnJhbWUgPSBmYWxzZTsKLSAgICBm
bHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKTsKLSAgICBpZiAoIW1fc2hvdWxkU3luY0ZyYW1lKQot
ICAgICAgICByZXR1cm47CisgICAgaWYgKGZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcygpKQorICAg
ICAgICBkaWRQZXJmb3JtU2NoZWR1bGVkTGF5ZXJGbHVzaCgpOworfQogCi0gICAgaWYgKG1fc2hv
dWxkU3luY1Jvb3RMYXllcikgewotICAgICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6Okxh
eWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OlNldFJvb3RDb21wb3NpdGluZ0xheWVyKHRvV2ViR3Jh
cGhpY3NMYXllcihtX3Jvb3RMYXllci5nZXQoKSktPmlkKCkpKTsKLSAgICAgICAgbV9zaG91bGRT
eW5jUm9vdExheWVyID0gZmFsc2U7Cit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpkaWRQZXJm
b3JtU2NoZWR1bGVkTGF5ZXJGbHVzaCgpCit7CisgICAgaWYgKG1fbm90aWZ5QWZ0ZXJTY2hlZHVs
ZWRMYXllckZsdXNoKSB7CisgICAgICAgIHN0YXRpY19jYXN0PERyYXdpbmdBcmVhSW1wbCo+KG1f
d2ViUGFnZS0+ZHJhd2luZ0FyZWEoKSktPmxheWVySG9zdERpZEZsdXNoTGF5ZXJzKCk7CisgICAg
ICAgIG1fbm90aWZ5QWZ0ZXJTY2hlZHVsZWRMYXllckZsdXNoID0gZmFsc2U7CiAgICAgfQotCi0g
ICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpE
aWRSZW5kZXJGcmFtZSgpKTsKLSAgICBtX3dhaXRpbmdGb3JVSVByb2Nlc3MgPSB0cnVlOwotCi0g
ICAgaWYgKCFtX25vdGlmeUFmdGVyU2NoZWR1bGVkTGF5ZXJGbHVzaCkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgLy8gTGV0IHRoZSBkcmF3aW5nIGFyZWEga25vdyB0aGF0IHdlJ3ZlIGRvbmUgYSBm
bHVzaCBvZiB0aGUgbGF5ZXIgY2hhbmdlcy4KLSAgICBzdGF0aWNfY2FzdDxEcmF3aW5nQXJlYUlt
cGwqPihtX3dlYlBhZ2UtPmRyYXdpbmdBcmVhKCkpLT5sYXllckhvc3REaWRGbHVzaExheWVycygp
OwotICAgIG1fbm90aWZ5QWZ0ZXJTY2hlZHVsZWRMYXllckZsdXNoID0gZmFsc2U7CiB9CiAKIHZv
aWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmxheWVyRmx1c2hUaW1lckZpcmVkKFRpbWVyPExheWVy
VHJlZUNvb3JkaW5hdG9yPiopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvTGF5ZXJUcmVlQ29vcmRpbmF0b3IvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVDb29yZGluYXRvci9MYXll
clRyZWVDb29yZGluYXRvci5oCmluZGV4IGJjNDQ5ZjQ2YTI4MmIyZWZhOTg5YWNjZjNmYjk0ZGI3
MjU1MjhmMDMuLjliNTE1NGMzNmY4ZTE5ZWU0MGZmNWM1YTQwOTc4ODA0OTFmYjBhMGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllclRyZWVDb29yZGlu
YXRvci9MYXllclRyZWVDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9MYXllclRyZWVDb29yZGluYXRvci9MYXllclRyZWVDb29yZGluYXRvci5oCkBA
IC0xMDQsNyArMTA0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGZsdXNoUGVuZGluZ0xheWVyQ2hh
bmdlcygpOwogICAgIHZvaWQgY2FuY2VsUGVuZGluZ0xheWVyRmx1c2goKTsKICAgICB2b2lkIHBl
cmZvcm1TY2hlZHVsZWRMYXllckZsdXNoKCk7Ci0gICAgdm9pZCBzZW5kTGF5ZXJzVG9VSSgpOwor
ICAgIHZvaWQgZGlkUGVyZm9ybVNjaGVkdWxlZExheWVyRmx1c2goKTsKIAogICAgIE93blB0cjxX
ZWJDb3JlOjpHcmFwaGljc0xheWVyPiBtX3Jvb3RMYXllcjsKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBhOWVlOTJhZDViYWU3Mzg3MWVkM2M3
NTgwNjFlODFmMDIwYzVkZWMuLjIxMGVkZGNkYjYwMjc1NDlkYmVlY2ZlMWQ5ZTNhZWRlYTcyN2Uw
OTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAxMi0wNy0xMCAgTm8nYW0gUm9zZW50aGFsICA8bm9hbS5yb3NlbnRo
YWxAbm9raWEuY29tPgorCisgICAgICAgIFtRdF0gUVJhd1dlYlZpZXcgc2hvdWxkIG5vdGlmeSB3
aGVuIHJlbmRlcmluZyBpcyBkb25lLCBzbyB0aGF0IHBpeGVsIHJlc3VsdHMgY2FuIGJlIGdyYWJi
ZWQgYXQgdGhlIGFwcHJvcHJpYXRlIG1vbWVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkwNjQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9jZWx5
biBUdXJjb3R0ZS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL3F0L3Jhdy9WaWV3Lmg6IENvbW1l
bnQgdXNlZCBvbGQgY2xhc3MgbmFtZSAoV0tWaWV3KS4KKyAgICAgICAgKFZpZXcpOgorCiAyMDEy
LTA3LTExICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAg
W1F0XSBSRUdSRVNTSU9OKHIxMDcxNzEpOiBGaXggLS10aW1lb3V0IG9wdGlvbiBvZiBRdCdzIERS
VApkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvcmF3L1ZpZXcuaCBiL1Rvb2xzL01p
bmlCcm93c2VyL3F0L3Jhdy9WaWV3LmgKaW5kZXggNmRlN2EyNWUyMTQ1NjllNDUzMWE1ODA4MmY3
MjUyMTlmNmEyNDEyNS4uZTUzMjIzZjg5NmUzMjhmYzI5Zjc3MzU5OThiMmJiOTE2MDRmNGY4MSAx
MDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvcXQvcmF3L1ZpZXcuaAorKysgYi9Ub29scy9N
aW5pQnJvd3Nlci9xdC9yYXcvVmlldy5oCkBAIC0zMSw3ICszMSw3IEBAIHB1YmxpYzoKICAgICBW
aWV3KGNvbnN0IFFTdHJpbmcmIHVybCk7CiAgICAgflZpZXcoKTsKIAotcHVibGljOiAvLyBXS1Zp
ZXdDbGllbnQKK3B1YmxpYzogLy8gUVJhd1dlYlZpZXdDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQg
dmlld05lZWRzRGlzcGxheShjb25zdCBRUmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCB2aWV3UmVx
dWVzdGVkU2Nyb2xsKGNvbnN0IFFQb2ludCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB2aWV3UHJv
Y2Vzc0NyYXNoZWQoKSB7IH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>