<?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>119654</bug_id>
          
          <creation_ts>2013-08-10 07:36:43 -0700</creation_ts>
          <short_desc>[Qt] Avoid calling QWebPage&apos;s virtual functions during deletion of QWebPage</short_desc>
          <delta_ts>2013-08-20 03:12:21 -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>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Arunprasad Rajkumar">arurajku</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>ararunprasad</cc>
    
    <cc>hausmann</cc>
    
    <cc>jose.lejin</cc>
    
    <cc>jturcotte</cc>
    
    <cc>noam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>916048</commentid>
    <comment_count>0</comment_count>
    <who name="Arunprasad Rajkumar">arurajku</who>
    <bug_when>2013-08-10 07:36:43 -0700</bug_when>
    <thetext>What is the problem ?
--------------------
class UnLoadTestPage : public QWebPage
{
    Q_OBJECT
public:
    virtual void javaScriptAlert(QWebFrame *originatingFrame, const QString&amp; msg)
    {
        qDebug()&lt;&lt;&quot;alert:&quot;&lt;&lt;msg;
    }
};


UnLoadTestPage* tstPage = new UnLoadTestPage();
tstPage-&gt;mainFrame()-&gt;evaluateJavaScript(&quot;window.onunload=function(){alert(&apos;hello&apos;);}&quot;);
delete tstPage;

In the above sample code my overriden javaScriptAlert(..) won&apos;t be called, because onunload event is fired from ~QWebPage during that time overriden UnLoadTestPage is already destroyed.

What is the solution?
---------------------
1. Provide C++ API to send &quot;unload&quot; event(as like Blackberry port&apos;s WebPage::prepareToDestroy, http://trac.webkit.org/browser/trunk/Source/WebKit/blackberry/Api/WebPage.h#L114), so it is the responsibility of the QtWebKit embedder to call this new C++ API in their destructors(or before deleting their QWebPage instance).
(ex: tstPage-&gt;prepareToDestroy)

2. Provide C++ API to delete any QWebPage instance, which will take care of sending &quot;unload&quot; event before destroying any QWebPage instance.
(ex: tstPage-&gt;deletePage(); or QWebPage::deletePage(tstPage); //static C++ API)

3. Provide both #1 &amp; #2.

Any Side effects?
-----------------
No.Existing flow is unaffected, if embedder didn&apos;t call QWebPage::prepareToDestroy then unload event will be generated as like the current flow.


I prefer solution #3 and will upload the fix soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916051</commentid>
    <comment_count>1</comment_count>
      <attachid>208476</attachid>
    <who name="Arunprasad Rajkumar">arurajku</who>
    <bug_when>2013-08-10 09:20:01 -0700</bug_when>
    <thetext>Created attachment 208476
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916074</commentid>
    <comment_count>2</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-08-10 15:36:31 -0700</bug_when>
    <thetext>Since QWebPage is already a wrapper around QWebPageAdaptor why can&apos;t you call QWebPageAdaptor::preparetoDestroy() from the qwebpage destructor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916088</commentid>
    <comment_count>3</comment_count>
    <who name="Arunprasad Rajkumar">arurajku</who>
    <bug_when>2013-08-11 00:02:02 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Since QWebPage is already a wrapper around QWebPageAdaptor why can&apos;t you call QWebPageAdaptor::preparetoDestroy() from the qwebpage destructor?

When control reaches ~QWebPage derived class already been destroyed(~UnLoadTestPage).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916092</commentid>
    <comment_count>4</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-08-11 04:15:08 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; Since QWebPage is already a wrapper around QWebPageAdaptor why can&apos;t you call QWebPageAdaptor::preparetoDestroy() from the qwebpage destructor?
&gt; 
&gt; When control reaches ~QWebPage derived class already been destroyed(~UnLoadTestPage).

True, but that only matters if you need the overloaded alert like the test-case. Most common cases of what happens on unload would work, wouldn&apos;t it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916093</commentid>
    <comment_count>5</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-08-11 04:20:29 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; Since QWebPage is already a wrapper around QWebPageAdaptor why can&apos;t you call QWebPageAdaptor::preparetoDestroy() from the qwebpage destructor?
&gt; &gt; 
&gt; &gt; When control reaches ~QWebPage derived class already been destroyed(~UnLoadTestPage).
&gt; 
&gt; True, but that only matters if you need the overloaded alert like the test-case. Most common cases of what happens on unload would work, wouldn&apos;t it?

Nevermind that was the entire case of the bug-report. 

If this depends on the user of qwebpage calling an extra method, could he call something to unload the page instead? 

Perhaps mainFram()-&gt;setHtml(&quot;&quot;) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916102</commentid>
    <comment_count>6</comment_count>
    <who name="Arunprasad Rajkumar">arurajku</who>
    <bug_when>2013-08-11 06:44:54 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; &gt; Since QWebPage is already a wrapper around QWebPageAdaptor why can&apos;t you call QWebPageAdaptor::preparetoDestroy() from the qwebpage destructor?
&gt; &gt; &gt; 
&gt; &gt; &gt; When control reaches ~QWebPage derived class already been destroyed(~UnLoadTestPage).
&gt; &gt; 
&gt; &gt; True, but that only matters if you need the overloaded alert like the test-case. Most common cases of what happens on unload would work, wouldn&apos;t it?
&gt; 
&gt; Nevermind that was the entire case of the bug-report. 
&gt; 
&gt; If this depends on the user of qwebpage calling an extra method, could he call something to unload the page instead? 
&gt; 
&gt; Perhaps mainFram()-&gt;setHtml(&quot;&quot;) ?

Thanks Allan, I tried this, it is not working. Might be because of its async. nature of mainFrame()-&gt;setHtml() I guess :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916224</commentid>
    <comment_count>7</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-08-12 03:16:05 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; &gt; &gt; Since QWebPage is already a wrapper around QWebPageAdaptor why can&apos;t you call QWebPageAdaptor::preparetoDestroy() from the qwebpage destructor?
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; When control reaches ~QWebPage derived class already been destroyed(~UnLoadTestPage).
&gt; &gt; &gt; 
&gt; &gt; &gt; True, but that only matters if you need the overloaded alert like the test-case. Most common cases of what happens on unload would work, wouldn&apos;t it?
&gt; &gt; 
&gt; &gt; Nevermind that was the entire case of the bug-report. 
&gt; &gt; 
&gt; &gt; If this depends on the user of qwebpage calling an extra method, could he call something to unload the page instead? 
&gt; &gt; 
&gt; &gt; Perhaps mainFram()-&gt;setHtml(&quot;&quot;) ?
&gt; 
&gt; Thanks Allan, I tried this, it is not working. Might be because of its async. nature of mainFrame()-&gt;setHtml() I guess :(

Another option might be to only introduce the close or unload method on qwebpage level and call QWebPageAdapter::deletePage(). I think it will do the same, but using the iterative detach/closeURL in FrameLoader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916345</commentid>
    <comment_count>8</comment_count>
    <who name="Arunprasad Rajkumar">arurajku</who>
    <bug_when>2013-08-12 10:59:39 -0700</bug_when>
    <thetext>Some review comments given by Allen(via IRC)

 - Implement the unload() method QWebFrame instead of QWebPage
 - Use detachFromParent()/cancelAndClear() of FrameLoader to send unload event instead of closeURL()
 - Finding appropriate place to call QWebFrame::unload implicitly without user intervention(may be side-effect of QWidget::close,..or similar)

Allan, Please correct me if I&apos;m wrong :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916424</commentid>
    <comment_count>9</comment_count>
      <attachid>208566</attachid>
    <who name="Arunprasad Rajkumar">arurajku</who>
    <bug_when>2013-08-12 15:05:05 -0700</bug_when>
    <thetext>Created attachment 208566
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916536</commentid>
    <comment_count>10</comment_count>
    <who name="Arunprasad Rajkumar">arurajku</who>
    <bug_when>2013-08-12 22:00:01 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Created an attachment (id=208566) [details]
&gt; Patch

Allan, I feel calling unload implicitly from ~QWebViewPrivate &amp; ~QGraphicsWebViewPrivate is more reasonable than closeEvent. What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916781</commentid>
    <comment_count>11</comment_count>
      <attachid>208648</attachid>
    <who name="Arunprasad Rajkumar">arurajku</who>
    <bug_when>2013-08-13 10:20:46 -0700</bug_when>
    <thetext>Created attachment 208648
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>916845</commentid>
    <comment_count>12</comment_count>
    <who name="Arunprasad Rajkumar">arurajku</who>
    <bug_when>2013-08-13 12:40:32 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Created an attachment (id=208648) [details]
&gt; Patch

Called unload() method implicitly from QWebViewPrivate::detachCurrentPage() &amp; QGraphicsWebViewPrivate::detachCurrentPage().

So QtWebKit embedder uses QWebView/QGraphicsWebView, deletion of those will trigger unload() without any extra call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>917580</commentid>
    <comment_count>13</comment_count>
      <attachid>208823</attachid>
    <who name="Arunprasad Rajkumar">arurajku</who>
    <bug_when>2013-08-15 11:21:28 -0700</bug_when>
    <thetext>Created attachment 208823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918084</commentid>
    <comment_count>14</comment_count>
    <who name="Arunprasad Rajkumar">arurajku</who>
    <bug_when>2013-08-16 12:51:18 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Created an attachment (id=208823) [details]
&gt; Patch

As per your review comments added API test for QGraphicsWebView::close, QWebView::close and history count checking after unload.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918735</commentid>
    <comment_count>15</comment_count>
    <who name="Arunprasad Rajkumar">arurajku</who>
    <bug_when>2013-08-19 12:26:17 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; Created an attachment (id=208823) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; As per your review comments added API test for QGraphicsWebView::close, QWebView::close and history count checking after unload.

I tried with load(QUrl()), it worked. Thanks Allan &amp; Jocelyn :)

I think using same fix http://trac.webkit.org/r61433 workaround can be removed. Isn&apos;t it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918955</commentid>
    <comment_count>16</comment_count>
    <who name="Arunprasad Rajkumar">arurajku</who>
    <bug_when>2013-08-19 23:55:52 -0700</bug_when>
    <thetext>Since calling mainFrame()-&gt;load(QUrl()) before deleting a custome WebPage object works as expected, I&apos;m closing this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>918992</commentid>
    <comment_count>17</comment_count>
      <attachid>208823</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-08-20 03:12:21 -0700</bug_when>
    <thetext>Comment on attachment 208823
Patch

Removing flags.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208476</attachid>
            <date>2013-08-10 09:20:01 -0700</date>
            <delta_ts>2013-08-12 15:04:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119654-20130810214941.patch</filename>
            <type>text/plain</type>
            <size>8530</size>
            <attacher name="Arunprasad Rajkumar">arurajku</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzODg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGM0YTE3MmQyZmVl
MTBmNzA2MzY5YmYzODM2ZTU0NjU3YWM5MGZlODcuLjAyMGYyN2M1YmFhNDYzNjI3N2U3OTRhNmVi
MWUyMzA3MWVhODg1NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTMtMDgt
MTAgIEFydW5wcmFzYWQgUmFqa3VtYXIgIDxhcnVyYWprdUBjaXNjby5jb20+CisKKyAgICAgICAg
W1F0XSBBdm9pZCBjYWxsaW5nIFFXZWJQYWdlJ3MgdmlydHVhbCBmdW5jdGlvbnMgZHVyaW5nIGRl
bGV0aW9uIG9mIFFXZWJQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTk2NTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRlZCBwcmVwYXJlVG9EZXN0cm95KCkgdG8gc2VuZCB1bmxvYWQgZXZlbnQg
dG8gcGFnZSBiZWZvcmUgUVdlYlBhZ2UgaW5zdGFuY2UgYmVpbmcgZGVsZXRlZC4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXJDbGllbnRRdDo6RnJhbWVMb2FkZXJDbGllbnRRdCk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpjcmVhdGVGcmFtZSk6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXJDbGllbnRRdDo6c3VwcHJlc3NDaGlsZEZyYW1lQ3JlYXRpb24pOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1FXZWJQYWdlQWRhcHRlci5jcHA6CisgICAgICAgIChjbG9zZVVS
TFJlY3Vyc2l2ZWx5KToKKyAgICAgICAgKFFXZWJQYWdlQWRhcHRlcjo6cHJlcGFyZVRvRGVzdHJv
eSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUVdlYlBhZ2VBZGFwdGVyLmg6CisgICAgICAg
ICogV2lkZ2V0QXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKFFXZWJQYWdlOjpwcmVwYXJlVG9E
ZXN0cm95KToKKyAgICAgICAgKiBXaWRnZXRBcGkvcXdlYnBhZ2UuaDoKKyAgICAgICAgKiB0ZXN0
cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwOgorICAgICAgICAoVW5sb2FkVGVzdFBhZ2U6OlVu
bG9hZFRlc3RQYWdlKToKKyAgICAgICAgKFVubG9hZFRlc3RQYWdlOjpqYXZhU2NyaXB0QWxlcnQp
OgorICAgICAgICAodHN0X1FXZWJQYWdlOjpvblVubG9hZFRlc3QpOgorCiAyMDEzLTA4LTA5ICBB
cnVucHJhc2FkIFJhamt1bWFyICA8YXJ1cmFqa3VAY2lzY28uY29tPgogCiAgICAgICAgIFtRdF0g
UXRXZWJLaXQgc2hvdWxkIGFsbG93IHNlbmRpbmcgZG9tYWluIHNwZWNpZmljIGtleWNvZGUgdG8g
SFRNTCBhcHBsaWNhdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCmluZGV4IDU0MmI2NGU4ZDAzYTIzY2FkMmNk
NzliYzZlNjU1OTg0ZDM3OTk0Y2MuLmY1YjM2MzZhNWMxYmExOWFhNTkyYmI2YTNjODBiYTA2ZjQy
MDQxMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtMjEzLDYgKzIxMyw3IEBAIEZyYW1lTG9hZGVyQ2xp
ZW50UXQ6OkZyYW1lTG9hZGVyQ2xpZW50UXQoKQogICAgICwgbV9wbHVnaW5WaWV3KDApCiAgICAg
LCBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luKGZhbHNlKQogICAgICwgbV9pc09yaWdpbmF0aW5n
TG9hZChmYWxzZSkKKyAgICAsIG1fY2hpbGRGcmFtZUNyZWF0aW9uU3VwcHJlc3NlZChmYWxzZSkK
IHsKIH0KIApAQCAtMTMwMSw2ICsxMzAyLDkgQEAgUGFzc1JlZlB0cjxGcmFtZT4gRnJhbWVMb2Fk
ZXJDbGllbnRRdDo6Y3JlYXRlRnJhbWUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcKICAg
ICBpZiAoIW1fd2ViRnJhbWUpCiAgICAgICAgIHJldHVybiAwOwogCisgICAgaWYgKG1fY2hpbGRG
cmFtZUNyZWF0aW9uU3VwcHJlc3NlZCkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBRV2ViRnJh
bWVEYXRhIGZyYW1lRGF0YShtX2ZyYW1lLT5wYWdlKCksIG1fZnJhbWUsIG93bmVyRWxlbWVudCwg
bmFtZSk7CiAKICAgICBmcmFtZURhdGEucmVmZXJyZXIgPSByZWZlcnJlcjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5oIGIv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKaW5k
ZXggM2VkYjM2NTYyYmRlOTE4MWZjOGE1ZDI3ZjJhZjcwZTVjYjFkNTc5OS4uYmNhMGY4NmQyZTBi
NDY3MzNmZGVjNDhlMjY1MDg0Y2Q1NTQ0NTEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKKysrIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmgKQEAgLTIzMCw2ICsyMzAs
OCBAQCBwdWJsaWM6CiAKICAgICBRV2ViRnJhbWVBZGFwdGVyKiB3ZWJGcmFtZSgpIGNvbnN0Owog
CisgICAgdm9pZCBzdXBwcmVzc0NoaWxkRnJhbWVDcmVhdGlvbigpIHsgbV9jaGlsZEZyYW1lQ3Jl
YXRpb25TdXBwcmVzc2VkID0gdHJ1ZTsgfQorCiAgICAgc3RhdGljIGJvb2wgZHVtcEZyYW1lTG9h
ZGVyQ2FsbGJhY2tzOwogICAgIHN0YXRpYyBib29sIGR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJh
Y2s7CiAgICAgc3RhdGljIGJvb2wgZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRlckNhbGxiYWNr
czsKQEAgLTI2Myw2ICsyNjUsOCBAQCBwcml2YXRlOgogCiAgICAgS1VSTCBtX2xhc3RSZXF1ZXN0
ZWRVcmw7CiAgICAgYm9vbCBtX2lzT3JpZ2luYXRpbmdMb2FkOworCisgICAgYm9vbCBtX2NoaWxk
RnJhbWVDcmVhdGlvblN1cHByZXNzZWQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJQYWdlQWRhcHRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJQYWdlQWRhcHRlci5jcHAKaW5kZXggNDc1ZDFlZGI1MzZi
NTE2MjBlNTcxZGY5YjI5ZmFlYjIzMzFhOTBhOC4uY2E3MGU0YTlkNDQ0NjU4YTUwMGU4ZTIxOThj
YzM2MGI0YjA0ZjY1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9RV2ViUGFnZUFkYXB0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvUVdlYlBhZ2VBZGFwdGVyLmNwcApAQCAtMjAyLDYgKzIwMiwyNCBAQCBzdGF0aWMgdm9pZCBv
cGVuTmV3V2luZG93KGNvbnN0IFFVcmwmIHVybCwgRnJhbWUqIGZyYW1lKQogICAgIH0KIH0KIAor
c3RhdGljIHZvaWQgY2xvc2VVUkxSZWN1cnNpdmVseShGcmFtZSogZnJhbWUpCit7CisgICAgLy8g
RG8gbm90IGNyZWF0ZSBtb3JlIGZyYW1lIHBsZWFzZS4KKyAgICBGcmFtZUxvYWRlckNsaWVudFF0
KiBmcmFtZUxvYWRlckNsaWVudCA9IHN0YXRpY19jYXN0PEZyYW1lTG9hZGVyQ2xpZW50UXQqPihm
cmFtZS0+bG9hZGVyKCktPmNsaWVudCgpKTsKKyAgICBmcmFtZUxvYWRlckNsaWVudC0+c3VwcHJl
c3NDaGlsZEZyYW1lQ3JlYXRpb24oKTsKKworICAgIGZyYW1lLT5sb2FkZXIoKS0+Y2xvc2VVUkwo
KTsKKworICAgIFZlY3RvcjxSZWZQdHI8RnJhbWU+LCAxMD4gY2hpbGRGcmFtZXM7CisKKyAgICBm
b3IgKFJlZlB0cjxGcmFtZT4gY2hpbGRGcmFtZSA9IGZyYW1lLT50cmVlKCktPmZpcnN0Q2hpbGQo
KTsgY2hpbGRGcmFtZTsgY2hpbGRGcmFtZSA9IGNoaWxkRnJhbWUtPnRyZWUoKS0+bmV4dFNpYmxp
bmcoKSkKKyAgICAgICAgY2hpbGRGcmFtZXMuYXBwZW5kKGNoaWxkRnJhbWUpOworCisgICAgdW5z
aWduZWQgc2l6ZSA9IGNoaWxkRnJhbWVzLnNpemUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgc2l6ZTsgaSsrKQorICAgICAgICBjbG9zZVVSTFJlY3Vyc2l2ZWx5KGNoaWxkRnJhbWVz
W2ldLmdldCgpKTsKK30KKwogUVdlYlBhZ2VBZGFwdGVyOjpRV2ViUGFnZUFkYXB0ZXIoKQogICAg
IDogc2V0dGluZ3MoMCkKICAgICAsIHBhZ2UoMCkKQEAgLTMzNSw2ICszNTMsMTUgQEAgUVdlYlBh
Z2VBZGFwdGVyOjpWaXNpYmlsaXR5U3RhdGUgUVdlYlBhZ2VBZGFwdGVyOjp2aXNpYmlsaXR5U3Rh
dGUoKSBjb25zdAogI2VuZGlmCiB9CiAKKy8vIFBvcnRpb24gb2YgYmVsb3cgY29kZSBpcyBjb3Bp
ZWQgZnJvbSBibGFja2JlcnJ5IHBvcnQuCit2b2lkIFFXZWJQYWdlQWRhcHRlcjo6cHJlcGFyZVRv
RGVzdHJveSgpCit7CisgICAgLy8gQmVmb3JlIHRoZSBjbGllbnQgc3RhcnRzIHRlYXJpbmcgaXRz
ZWxmIGRvd24sIGRpc3BhdGNoIHRoZSB1bmxvYWQgZXZlbnQKKyAgICAvLyBzbyBpdCBjYW4gdGFr
ZSBlZmZlY3Qgd2hpbGUgYWxsIHRoZSBjbGllbnQncyBzdGF0ZSAoZS5nLiBzY3JvbGwgcG9zaXRp
b24pCisgICAgLy8gaXMgc3RpbGwgcHJlc2VudC4KKyAgICBjbG9zZVVSTFJlY3Vyc2l2ZWx5KG1h
aW5GcmFtZUFkYXB0ZXIoKS0+ZnJhbWUpOworfQorCiB2b2lkIFFXZWJQYWdlQWRhcHRlcjo6c2V0
TmV0d29ya0FjY2Vzc01hbmFnZXIoUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyICptYW5hZ2VyKQogewog
ICAgIGlmIChtYW5hZ2VyID09IG5ldHdvcmtNYW5hZ2VyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RV2ViUGFnZUFkYXB0ZXIuaCBiL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvUVdlYlBhZ2VBZGFwdGVyLmgKaW5kZXggNDE0MTI5OGFhOWQzODlj
NDg2NTJlY2I4NzNmNmM4ZTMwOWU5Mzc4Yi4uOTEyNTk4Y2JiMDJlMWJkZjcxNjU4ZjBhNzFjODVi
OGNkODYxMGQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9R
V2ViUGFnZUFkYXB0ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FX
ZWJQYWdlQWRhcHRlci5oCkBAIC0yNTgsNiArMjU4LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0
VmlzaWJpbGl0eVN0YXRlKFZpc2liaWxpdHlTdGF0ZSk7CiAgICAgVmlzaWJpbGl0eVN0YXRlIHZp
c2liaWxpdHlTdGF0ZSgpIGNvbnN0OwogCisgICAgdm9pZCBwcmVwYXJlVG9EZXN0cm95KCk7CisK
ICAgICBzdGF0aWMgUVdlYlBhZ2VBZGFwdGVyKiBraXQoV2ViQ29yZTo6UGFnZSopOwogICAgIFdl
YkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzIHZpZXdwb3J0QXJndW1lbnRzKCkgY29uc3Q7CiAgICAg
dm9pZCByZWdpc3RlclVuZG9TdGVwKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpVbmRvU3RlcD4p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XaWRnZXRBcGkvcXdlYnBhZ2UuY3BwIGIv
U291cmNlL1dlYktpdC9xdC9XaWRnZXRBcGkvcXdlYnBhZ2UuY3BwCmluZGV4IDBmM2YxNGQzOWUy
NTVmMTA1MmI1ODk5MzIxMWU4MjdiZDFlMWE4MGMuLjc4N2ZlODE1NjYzNDI0YTMzMzc4NzIzZjRh
Y2RjMmVhNmU1YWNiZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBpL3F3
ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dpZGdldEFwaS9xd2VicGFnZS5jcHAK
QEAgLTEzNzgsNiArMTM3OCw4IEBAIFFXZWJQYWdlOjpRV2ViUGFnZShRT2JqZWN0ICpwYXJlbnQp
CiAKIC8qIQogICAgIERlc3Ryb3lzIHRoZSB3ZWIgcGFnZS4KKworICAgIFxzYSBwcmVwYXJlVG9E
ZXN0cm95KCkKICovCiBRV2ViUGFnZTo6flFXZWJQYWdlKCkKIHsKQEAgLTE1OTgsNiArMTYwMCwy
MSBAQCBib29sIFFXZWJQYWdlOjpzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KCkKICNlbmRpZgog
fQogCisvKiEKKyAgICBcZm4gdm9pZCBRV2ViUGFnZTo6cHJlcGFyZVRvRGVzdHJveSgpCisgICAg
VGhpcyB3aWxsIGZvcmNlIGFueSB1bmxvYWQgaGFuZGxlcnMgdG8gcnVuLgorCisgICAgVXN1YWxs
eSB1bmxvYWQgaGFuZGxlcnMgd2lsbCBiZSBjYWxsZWQgZHVyaW5nIHRoZSBkZWxldGlvbiBvZiBR
V2ViUGFnZSwgYnV0IGl0IGlzIHNhZmUgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uCisgICAgYmVmb3Jl
IGRlbGV0aW5nIFFXZWJQYWdlIHRvIGF2b2lkIHZpcnR1YWwgZnVuY3Rpb24gYmVpbmcgY2FsbGVk
IGZyb20gflFXZWJQYWdlLgorCisgICAgXHNhIH5RV2ViUGFnZSgpCisKKyovCit2b2lkIFFXZWJQ
YWdlOjpwcmVwYXJlVG9EZXN0cm95KCkKK3sKKyAgICBkLT5wcmVwYXJlVG9EZXN0cm95KCk7Cit9
CisKIHZvaWQgUVdlYlBhZ2U6OnNldEZlYXR1cmVQZXJtaXNzaW9uKFFXZWJGcmFtZSogZnJhbWUs
IEZlYXR1cmUgZmVhdHVyZSwgUGVybWlzc2lvblBvbGljeSBwb2xpY3kpCiB7CiAjaWYgIUVOQUJM
RShOT1RJRklDQVRJT05TKSAmJiAhRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKSAmJiAhRU5B
QkxFKEdFT0xPQ0FUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XaWRnZXRBcGkv
cXdlYnBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBpL3F3ZWJwYWdlLmgKaW5kZXgg
ZTVhMDkzYTQ5OTJlMTk2ZWRjZGRlZjlhM2U4YTk0ZDY0ZGZjZGIzYi4uOWM5MWY0MzY0M2VlYTVi
NmVlM2NlNmQ0Y2Y1MzcyN2NmNDVkMDNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9X
aWRnZXRBcGkvcXdlYnBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dpZGdldEFwaS9xd2Vi
cGFnZS5oCkBAIC0zODAsNiArMzgwLDcgQEAgcHVibGljOgogICAgIFFXZWJQYWdlQWRhcHRlciog
aGFuZGxlKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW50ZXJydXB0SmF2YVNj
cmlwdCgpOworICAgIHZvaWQgcHJlcGFyZVRvRGVzdHJveSgpOwogCiBRX1NJR05BTFM6CiAgICAg
dm9pZCBsb2FkU3RhcnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9x
d2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2VicGFn
ZS90c3RfcXdlYnBhZ2UuY3BwCmluZGV4IDUzZTY1NTc0OTJjZmM1YzI1OTRmYjdlZDUwODY4ZjA3
YTUwYmRmYmEuLjRlZDNlZTJlMWYyYWY4OWViY2Q2YmQzMDZjZmY2Mzc0MjZhZjhlOWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHAKQEAg
LTExNSw2ICsxMTUsNyBAQCBwcml2YXRlIFFfU0xPVFM6CiAgICAgdm9pZCBjb250ZXh0TWVudVBv
cHVsYXRlZE9uY2UoKTsKICAgICB2b2lkIGFjY2VwdE5hdmlnYXRpb25SZXF1ZXN0KCk7CiAgICAg
dm9pZCBkb21haW5TcGVjaWZpY0tleUV2ZW50KCk7CisgICAgdm9pZCBvblVubG9hZFRlc3QoKTsK
ICAgICB2b2lkIGdlb2xvY2F0aW9uUmVxdWVzdEpTKCk7CiAgICAgdm9pZCBsb2FkRmluaXNoZWQo
KTsKICAgICB2b2lkIGFjdGlvblN0YXRlcygpOwpAQCAtMzM2LDYgKzMzNywzNCBAQCB2b2lkIHRz
dF9RV2ViUGFnZTo6ZG9tYWluU3BlY2lmaWNLZXlFdmVudCgpCiAgICAgUVZFUklGWShyZWNlaXZl
ZEtleUFycmF5ID09IGV4cGVjdGVkUmVjZWl2ZWRLZXlBcnJheTMpOwogfQogCitjbGFzcyBVbmxv
YWRUZXN0UGFnZSA6IHB1YmxpYyBRV2ViUGFnZSB7CisgICAgUV9PQkpFQ1QKK3B1YmxpYzoKKyAg
ICBib29sIG1fb3ZlcnJpZGVuQWxlcnRDYWxsZWQ7CisgICAgVW5sb2FkVGVzdFBhZ2UoUU9iamVj
dCogcGFyZW50ID0gMCkKKyAgICAgICAgOiBRV2ViUGFnZShwYXJlbnQpCisgICAgICAgICwgbV9v
dmVycmlkZW5BbGVydENhbGxlZChmYWxzZSkKKyAgICB7CisKKyAgICB9CisKKyAgICB2aXJ0dWFs
IHZvaWQgamF2YVNjcmlwdEFsZXJ0KFFXZWJGcmFtZSAqLCBjb25zdCBRU3RyaW5nJikKKyAgICB7
CisgICAgICAgIG1fb3ZlcnJpZGVuQWxlcnRDYWxsZWQgPSB0cnVlOworICAgIH0KK307CisKK3Zv
aWQgdHN0X1FXZWJQYWdlOjpvblVubG9hZFRlc3QoKQoreworICAgIFVubG9hZFRlc3RQYWdlKiB0
c3RQYWdlID0gbmV3IFVubG9hZFRlc3RQYWdlKCk7CisgICAgdHN0UGFnZS0+bWFpbkZyYW1lKCkt
PmV2YWx1YXRlSmF2YVNjcmlwdCgid2luZG93Lm9udW5sb2FkID0gZnVuY3Rpb24oKXsgYWxlcnQo
J2hlbGxvJyk7IH07Iik7CisgICAgLy8gc2VuZCB1bmxvYWQgZXZlbnQuCisgICAgdHN0UGFnZS0+
cHJlcGFyZVRvRGVzdHJveSgpOworCisgICAgUUNPTVBBUkUodHN0UGFnZS0+bV9vdmVycmlkZW5B
bGVydENhbGxlZCwgdHJ1ZSk7CisgICAgZGVsZXRlIHRzdFBhZ2U7Cit9CisKIGNsYXNzIEpTVGVz
dFBhZ2UgOiBwdWJsaWMgUVdlYlBhZ2UKIHsKIFFfT0JKRUNUCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208566</attachid>
            <date>2013-08-12 15:05:05 -0700</date>
            <delta_ts>2013-08-13 10:20:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119654-20130813033443.patch</filename>
            <type>text/plain</type>
            <size>12717</size>
            <attacher name="Arunprasad Rajkumar">arurajku</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzODg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGM0YTE3MmQyZmVl
MTBmNzA2MzY5YmYzODM2ZTU0NjU3YWM5MGZlODcuLmE5MzJhZjlhOTRhNDNhYjZhNjUxYzBiMGQ3
NTNiM2RhNWY5ZjVhMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTMtMDgt
MTIgIEFydW5wcmFzYWQgUmFqa3VtYXIgIDxhcnVyYWprdUBjaXNjby5jb20+CisKKyAgICAgICAg
W1F0XSBBdm9pZCBjYWxsaW5nIFFXZWJQYWdlJ3MgdmlydHVhbCBmdW5jdGlvbnMgZHVyaW5nIGRl
bGV0aW9uIG9mIFFXZWJQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTk2NTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4g
CisKKyAgICAgICAgQWRkZWQgdW5sb2FkKCkgbWV0aG9kIHRvIFFXZWJGcmFtZS4gQ2FsbGluZyB0
aGlzIG1ldGhvZCB3aWxsIGNsZWFycyB0aGUgY29udGVudHMKKyAgICAgICAgb2YgdGhlIFFXZWJG
cmFtZSBhbmQgc2VuZHMgRE9NIHVubG9hZCBldmVudCB0byB0aGUgV2ViIEFwcGxpY2F0aW9uIGxv
YWRlZCBvbiB0aGUKKyAgICAgICAgcGFydGljdWxhciBmcmFtZS9jaGlsZC1mcmFtZS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1FXZWJGcmFtZUFkYXB0ZXIuY3BwOgorICAgICAgICAoUVdl
YkZyYW1lQWRhcHRlcjo6dW5sb2FkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9RV2ViRnJh
bWVBZGFwdGVyLmg6CisgICAgICAgICogV2lkZ2V0QXBpL3FncmFwaGljc3dlYnZpZXcuY3BwOgor
ICAgICAgICAoUUdyYXBoaWNzV2ViVmlldzo6Y2xvc2VFdmVudCk6CisgICAgICAgICogV2lkZ2V0
QXBpL3FncmFwaGljc3dlYnZpZXcuaDoKKyAgICAgICAgKiBXaWRnZXRBcGkvcXdlYmZyYW1lLmNw
cDoKKyAgICAgICAgKFFXZWJGcmFtZTo6dW5sb2FkKToKKyAgICAgICAgKiBXaWRnZXRBcGkvcXdl
YmZyYW1lLmg6CisgICAgICAgICogV2lkZ2V0QXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKFFX
ZWJQYWdlOjpldmVudCk6CisgICAgICAgICogV2lkZ2V0QXBpL3F3ZWJ2aWV3LmNwcDoKKyAgICAg
ICAgKFFXZWJWaWV3OjpldmVudCk6CisgICAgICAgICogdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2Vi
ZnJhbWUuY3BwOgorICAgICAgICAoVW5sb2FkVGVzdFBhZ2U6OlVubG9hZFRlc3RQYWdlKToKKyAg
ICAgICAgKFVubG9hZFRlc3RQYWdlOjpqYXZhU2NyaXB0QWxlcnQpOgorICAgICAgICAodHN0X1FX
ZWJGcmFtZTo6dW5sb2FkKToKKyAgICAgICAgKiB0ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2Uu
Y3BwOgorICAgICAgICAoVW5sb2FkUGFnZTo6VW5sb2FkUGFnZSk6CisgICAgICAgIChVbmxvYWRQ
YWdlOjpqYXZhU2NyaXB0QWxlcnQpOgorICAgICAgICAodHN0X1FXZWJQYWdlOjp1bmxvYWRXZWJW
aWV3KToKKyAgICAgICAgKHRzdF9RV2ViUGFnZTo6dW5sb2FkR3JhcGhpY3NXZWJWaWV3KToKKwog
MjAxMy0wOC0wOSAgQXJ1bnByYXNhZCBSYWprdW1hciAgPGFydXJhamt1QGNpc2NvLmNvbT4KIAog
ICAgICAgICBbUXRdIFF0V2ViS2l0IHNob3VsZCBhbGxvdyBzZW5kaW5nIGRvbWFpbiBzcGVjaWZp
YyBrZXljb2RlIHRvIEhUTUwgYXBwbGljYXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJGcmFtZUFkYXB0ZXIuY3BwIGIvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9RV2ViRnJhbWVBZGFwdGVyLmNwcAppbmRleCA2MDU0OGViNmFhMWUw
ZWViNWUyN2QyNDliMmQxOTRmZTZmZjNiZTY4Li5jOTcyZDMwZWI2ODE4NjJkNzU5OTU2OTM1M2Ez
YzVkMmU2NjU3MTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L1FXZWJGcmFtZUFkYXB0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvUVdlYkZyYW1lQWRhcHRlci5jcHAKQEAgLTE3Myw2ICsxNzMsMTcgQEAgdm9pZCBRV2ViRnJh
bWVBZGFwdGVyOjpsb2FkKGNvbnN0IFFOZXR3b3JrUmVxdWVzdCYgcmVxLCBRTmV0d29ya0FjY2Vz
c01hbmFnZXI6Ok8KICAgICAgICAgcGFnZUFkYXB0ZXItPmluc2lkZU9wZW5DYWxsID0gZmFsc2U7
CiB9CiAKK3ZvaWQgUVdlYkZyYW1lQWRhcHRlcjo6dW5sb2FkKCkKK3sKKyAgICAvLyBEZXRhY2gg
dGhlIG1haW5mcmFtZSdzIGxvYWRlciwgdGhpcyB3aWxsIGFsc28gc2VuZCBvbnVubG9hZCBldmVu
dC4KKyAgICBGcmFtZUxvYWRlciogbG9hZGVyID0gZnJhbWUtPmxvYWRlcigpOworICAgIGlmIChs
b2FkZXIpIHsKKyAgICAgICAgbG9hZGVyLT5jbG9zZVVSTCgpOworICAgICAgICBsb2FkZXItPnNl
dHVwRm9yUmVwbGFjZSgpOworICAgICAgICBsb2FkZXItPnN0b3BBbGxMb2FkZXJzKCk7CisgICAg
fQorfQorCiBib29sIFFXZWJGcmFtZUFkYXB0ZXI6Omhhc1ZpZXcoKSBjb25zdAogewogICAgIHJl
dHVybiBmcmFtZSAmJiBmcmFtZS0+dmlldygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9RV2ViRnJhbWVBZGFwdGVyLmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L1FXZWJGcmFtZUFkYXB0ZXIuaAppbmRleCA4YzY1MDA3ZGIyYjQyMzI3ZGE4
YWUyMmQ1YTViMDE0Zjc0YmY1MGVlLi45YWQxZTU1ODUyZTI1YTNmZjViZTQwMGQ5NmVlNmJjM2Y2
OTFjZjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJG
cmFtZUFkYXB0ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJG
cmFtZUFkYXB0ZXIuaApAQCAtMTQ2LDYgKzE0Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFFX
ZWJGcmFtZUFkYXB0ZXIqIGNyZWF0ZUNoaWxkRnJhbWUoUVdlYkZyYW1lRGF0YSopID0gMDsKIAog
ICAgIHZvaWQgbG9hZChjb25zdCBRTmV0d29ya1JlcXVlc3QmLCBRTmV0d29ya0FjY2Vzc01hbmFn
ZXI6Ok9wZXJhdGlvbiA9IFFOZXR3b3JrQWNjZXNzTWFuYWdlcjo6R2V0T3BlcmF0aW9uLCBjb25z
dCBRQnl0ZUFycmF5JiBib2R5ID0gUUJ5dGVBcnJheSgpKTsKKyAgICB2b2lkIHVubG9hZCgpOwog
ICAgIGJvb2wgaGFzVmlldygpIGNvbnN0OwogI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKICAg
ICB2b2lkIGhhbmRsZUdlc3R1cmVFdmVudChRR2VzdHVyZUV2ZW50RmFjYWRlKik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dpZGdldEFwaS9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBpL3FncmFwaGljc3dlYnZpZXcuY3BwCmluZGV4IDY5MTM4
ZDczZjgyZTIyOTlhZGM2NDI3ODdkOTgwNDZmNjU4YWFmNzEuLmRlY2NmMzNiY2Q1YjI4YjdjZTIy
N2FiOTA4OTM2MzY5NGNiNDNhZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0
QXBpL3FncmFwaGljc3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBp
L3FncmFwaGljc3dlYnZpZXcuY3BwCkBAIC0xMTMzLDYgKzExMzMsMTcgQEAgdm9pZCBRR3JhcGhp
Y3NXZWJWaWV3OjppbnB1dE1ldGhvZEV2ZW50KFFJbnB1dE1ldGhvZEV2ZW50KiBldikKICAgICAg
ICAgUUdyYXBoaWNzSXRlbTo6aW5wdXRNZXRob2RFdmVudChldik7CiB9CiAKKy8qISBccmVpbXAK
KyovCit2b2lkIFFHcmFwaGljc1dlYlZpZXc6OmNsb3NlRXZlbnQoUUNsb3NlRXZlbnQqIGV2KQor
eworICAgIGlmIChkLT5wYWdlKQorICAgICAgICBkLT5wYWdlLT5ldmVudChldik7CisKKyAgICBp
ZiAoIWV2LT5pc0FjY2VwdGVkKCkpCisgICAgICAgIFFHcmFwaGljc1dpZGdldDo6Y2xvc2VFdmVu
dChldik7Cit9CisKIC8qIQogICAgIFxmbiB2b2lkIFFHcmFwaGljc1dlYlZpZXc6OnN0YXR1c0Jh
ck1lc3NhZ2UoY29uc3QgUVN0cmluZyYgdGV4dCkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9xdC9XaWRnZXRBcGkvcWdyYXBoaWNzd2Vidmlldy5oIGIvU291cmNlL1dlYktpdC9xdC9XaWRn
ZXRBcGkvcWdyYXBoaWNzd2Vidmlldy5oCmluZGV4IGM5ZTYxZjc1YTc2ZTM1MzY4NDViMWM2ZjZh
ZGVhYjE3YzBiM2FlMDIuLmI4YjZmOTdlNWM3ZTA2ZmQwMmM1MDIxZjU2OGVjM2Y2YjljNDI0ZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBpL3FncmFwaGljc3dlYnZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dpZGdldEFwaS9xZ3JhcGhpY3N3ZWJ2aWV3LmgKQEAg
LTE0OSw2ICsxNDksOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2NlbmVFdmVu
dChRRXZlbnQqKTsKIAorICAgIHZpcnR1YWwgdm9pZCBjbG9zZUV2ZW50KFFDbG9zZUV2ZW50Kik7
CisKIHByaXZhdGU6CiAgICAgUV9QUklWQVRFX1NMT1QoZCwgdm9pZCBfcV9kb0xvYWRGaW5pc2hl
ZChib29sIHN1Y2Nlc3MpKQogICAgIFFfUFJJVkFURV9TTE9UKGQsIHZvaWQgX3FfcGFnZURlc3Ry
b3llZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XaWRnZXRBcGkvcXdlYmZyYW1l
LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBpL3F3ZWJmcmFtZS5jcHAKaW5kZXggZjNl
NTYzY2I1OGJjYTkxZDIxM2JmYTdkNWUwMzRjY2IwNGRhMDM1YS4uNThiOWUwMzQwOGU1MmIxNjgz
MGQzMzYzNzhiNDU0YjM5NGY0YTg5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XaWRn
ZXRBcGkvcXdlYmZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dpZGdldEFwaS9xd2Vi
ZnJhbWUuY3BwCkBAIC00ODIsNiArNDgyLDE4IEBAIHZvaWQgUVdlYkZyYW1lOjpzZXRDb250ZW50
KGNvbnN0IFFCeXRlQXJyYXkgJmRhdGEsIGNvbnN0IFFTdHJpbmcgJm1pbWVUeXBlLCBjb25zCiB9
CiAKIC8qIQorICAgIFxmbiB2b2lkIFFXZWJGcmFtZTo6dW5sb2FkKCkKKyAgICBUaGlzIHdpbGwg
dW5sb2FkcyB0aGUgUVdlYkZyYW1lIGFuZCBzZW5kcyBvbnVubG9hZCBldmVudCB0byBhIHBhZ2Ug
YXNzb2NpYXRlZCB3aXRoIHRoaXMKKyAgICBRV2ViRnJhbWUuCisKKyAgICBcc2EgdG9IdG1sKCks
IHNldENvbnRlbnQoKSwgbG9hZCgpCisqLwordm9pZCBRV2ViRnJhbWU6OnVubG9hZCgpCit7Cisg
ICAgZC0+dW5sb2FkKCk7Cit9CisKKy8qIQogICBSZXR1cm5zIHRoZSBwYXJlbnQgZnJhbWUgb2Yg
dGhpcyBmcmFtZSwgb3IgMCBpZiB0aGUgZnJhbWUgaXMgdGhlIHdlYiBwYWdlcwogICBtYWluIGZy
YW1lLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dpZGdldEFwaS9xd2ViZnJhbWUu
aCBiL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBpL3F3ZWJmcmFtZS5oCmluZGV4IDQ4MWQwMTlh
ZTIxMTMxNjU5N2ZlYzM1YjNlZGRkYzhkMTJlZmM2NTMuLjUxZDYwNDUxMmQwN2Q5YTExZjZiNWQ4
MzY1MTFmMzk3N2ViZmE5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBp
L3F3ZWJmcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBpL3F3ZWJmcmFtZS5o
CkBAIC0xMzQsNiArMTM0LDcgQEAgcHVibGljOgogICAgIHZvaWQgbG9hZChjb25zdCBRTmV0d29y
a1JlcXVlc3QgJnJlcXVlc3QsIFFOZXR3b3JrQWNjZXNzTWFuYWdlcjo6T3BlcmF0aW9uIG9wZXJh
dGlvbiA9IFFOZXR3b3JrQWNjZXNzTWFuYWdlcjo6R2V0T3BlcmF0aW9uLCBjb25zdCBRQnl0ZUFy
cmF5ICZib2R5ID0gUUJ5dGVBcnJheSgpKTsKICAgICB2b2lkIHNldEh0bWwoY29uc3QgUVN0cmlu
ZyAmaHRtbCwgY29uc3QgUVVybCAmYmFzZVVybCA9IFFVcmwoKSk7CiAgICAgdm9pZCBzZXRDb250
ZW50KGNvbnN0IFFCeXRlQXJyYXkgJmRhdGEsIGNvbnN0IFFTdHJpbmcgJm1pbWVUeXBlID0gUVN0
cmluZygpLCBjb25zdCBRVXJsICZiYXNlVXJsID0gUVVybCgpKTsKKyAgICB2b2lkIHVubG9hZCgp
OwogCiAgICAgdm9pZCBhZGRUb0phdmFTY3JpcHRXaW5kb3dPYmplY3QoY29uc3QgUVN0cmluZyAm
bmFtZSwgUU9iamVjdCAqb2JqZWN0LCBWYWx1ZU93bmVyc2hpcCBvd25lcnNoaXAgPSBRdE93bmVy
c2hpcCk7CiAgICAgUVN0cmluZyB0b0h0bWwoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2lkZ2V0QXBpL3F3ZWJwYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0
QXBpL3F3ZWJwYWdlLmNwcAppbmRleCAwZjNmMTRkMzllMjU1ZjEwNTJiNTg5OTMyMTFlODI3YmQx
ZTFhODBjLi4yMzg4ZDRmYWQ5YzU2MzFlYjk5ZjdlMjBiMmY3ODUxMWQ5ZDZhYzE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dpZGdldEFwaS9xd2VicGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9xdC9XaWRnZXRBcGkvcXdlYnBhZ2UuY3BwCkBAIC0yNTc5LDYgKzI1NzksMTAgQEAg
Ym9vbCBRV2ViUGFnZTo6ZXZlbnQoUUV2ZW50ICpldikKICAgICAgICAgZC0+ZHluYW1pY1Byb3Bl
cnR5Q2hhbmdlRXZlbnQodGhpcywgc3RhdGljX2Nhc3Q8UUR5bmFtaWNQcm9wZXJ0eUNoYW5nZUV2
ZW50Kj4oZXYpKTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKKyAgICBjYXNlIFFFdmVudDo6Q2xv
c2U6CisgICAgICAgIC8vIHNlbmQgdW5sb2FkIHdoZW4gY2xvc2UoKSBpcyBjYWxsZWQuCisgICAg
ICAgIG1haW5GcmFtZSgpLT51bmxvYWQoKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoK
ICAgICAgICAgcmV0dXJuIFFPYmplY3Q6OmV2ZW50KGV2KTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L1dpZGdldEFwaS9xd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0
L1dpZGdldEFwaS9xd2Vidmlldy5jcHAKaW5kZXggOWJhOTYyMTc4ZjNjZjYxYTc0ZDEzZGQ3ZDJk
ZTViMThkYTIyNzBmNy4uMzlhMDY4MzE4NmRlMWE5ZTdkYmQ1MjY3NWQ0MTJkZmFlZGY0MTg5NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XaWRnZXRBcGkvcXdlYnZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBpL3F3ZWJ2aWV3LmNwcApAQCAtNzI2LDggKzcyNiwx
MCBAQCBib29sIFFXZWJWaWV3OjpldmVudChRRXZlbnQgKmUpCiAKICAgICAgICAgICAgIC8vIEFs
d2F5cyByZXR1cm4gdHJ1ZSBzbyB0aGF0IHdlJ2xsIHJlY2VpdmUgYWxzbyBUb3VjaFVwZGF0ZSBh
bmQgVG91Y2hFbmQgZXZlbnRzCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfSBl
bHNlIGlmIChlLT50eXBlKCkgPT0gUUV2ZW50OjpMZWF2ZSkKKyAgICAgICAgfSBlbHNlIGlmIChl
LT50eXBlKCkgPT0gUUV2ZW50OjpMZWF2ZQorICAgICAgICAgICAgfHwgZS0+dHlwZSgpID09IFFF
dmVudDo6Q2xvc2UpIHsKICAgICAgICAgICAgIGQtPnBhZ2UtPmV2ZW50KGUpOworICAgICAgICB9
CiAgICAgfQogCiAgICAgcmV0dXJuIFFXaWRnZXQ6OmV2ZW50KGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcAppbmRleCBmODUyMTQ5
ZDQwMzg3YjY0Mjg4N2EwMGZiZWM4YjE4YzY3ZGMwZTYxLi5jNjcwMGQ2ZTI2YjA4Nzk2OTNjNmE4
MTcxODFhMTAxYTgwNmQzMzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3
ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3
ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcApAQCAtNjEsNiArNjEsNyBAQCBwcml2YXRlIFFfU0xP
VFM6CiAgICAgdm9pZCBqYXZhU2NyaXB0V2luZG93T2JqZWN0Q2xlYXJlZCgpOwogICAgIHZvaWQg
amF2YVNjcmlwdFdpbmRvd09iamVjdENsZWFyZWRPbkV2YWx1YXRlKCk7CiAgICAgdm9pZCBzZXRI
dG1sKCk7CisgICAgdm9pZCB1bmxvYWQoKTsKICAgICB2b2lkIHNldEh0bWxXaXRoSW1hZ2VSZXNv
dXJjZSgpOwogICAgIHZvaWQgc2V0SHRtbFdpdGhTdHlsZXNoZWV0UmVzb3VyY2UoKTsKICAgICB2
b2lkIHNldEh0bWxXaXRoQmFzZVVSTCgpOwpAQCAtMzk4LDYgKzM5OSw1OSBAQCB2b2lkIHRzdF9R
V2ViRnJhbWU6OnNldEh0bWwoKQogICAgIFFDT01QQVJFKHNweS5jb3VudCgpLCAxKTsKIH0KIAor
Y2xhc3MgVW5sb2FkVGVzdFBhZ2UgOiBwdWJsaWMgUVdlYlBhZ2UgeworICAgIFFfT0JKRUNUCitw
dWJsaWM6CisgICAgaW50IG1fYWxlcnRDb3VudDsKKyAgICBVbmxvYWRUZXN0UGFnZShRT2JqZWN0
KiBwYXJlbnQgPSAwKQorICAgICAgICA6IFFXZWJQYWdlKHBhcmVudCkKKyAgICAgICAgLCBtX2Fs
ZXJ0Q291bnQoMCkKKyAgICB7CisKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgamF2YVNjcmlw
dEFsZXJ0KFFXZWJGcmFtZSosIGNvbnN0IFFTdHJpbmcmKQorICAgIHsKKyAgICAgICAgKyttX2Fs
ZXJ0Q291bnQ7CisgICAgfQorfTsKKwordm9pZCB0c3RfUVdlYkZyYW1lOjp1bmxvYWQoKQorewor
ICAgIFVubG9hZFRlc3RQYWdlKiB0ZXN0UGFnZSA9IG5ldyBVbmxvYWRUZXN0UGFnZSgpOworICAg
IC8vIEluc3RhbGwgZGVzdHJveWVkKCkgc2lnbmFsIHNweSB0byBjaGVjayBRV2ViRnJhbWUgaXMg
YWx3YXlzIHVzYWJsZQorICAgIC8vIGV2ZW4gYWZ0ZXIgdW5sb2FkKCkuCisgICAgUVNpZ25hbFNw
eSBzcHkodGVzdFBhZ2UtPm1haW5GcmFtZSgpLCBTSUdOQUwoZGVzdHJveWVkKFFPYmplY3QqKSkp
OworICAgIFFMYXRpbjFTdHJpbmcgaHRtbCgiPGh0bWw+PHNjcmlwdD4iCisgICAgICAgICJ3aW5k
b3cub25sb2FkID0gZnVuY3Rpb24oKSB7IgorICAgICAgICAgICAgLy8gSW5zdGFsbCB1bmxvYWQg
ZXZlbnQgaGFuZGxlciBmb3IgYWxsIGZyYW1lcworICAgICAgICAgICAgImZvciAodmFyIGkgPSAw
OyBpIDwgd2luZG93LmZyYW1lcy5sZW5ndGg7ICsraSkgeyIKKyAgICAgICAgICAgICAgICAid2lu
ZG93LmZyYW1lc1tpXS5vbnVubG9hZCA9IGZ1bmN0aW9uKCkgeyBhbGVydCgnaGVsbG8nKTsgfTsi
CisgICAgICAgICAgICAifSIKKyAgICAgICAgIn07IgorICAgICAgICAvLyBDcmVhdGUgMyBGcmFt
ZXMuCisgICAgICAgICI8L3NjcmlwdD48ZnJhbWVzZXQ+PGZyYW1lPjxmcmFtZT48ZnJhbWU+PC9m
cmFtZXNldD4iCisgICAgICAgICI8L2h0bWw+Iik7CisKKyAgICBpbnQgdGVzdEl0ZXJhdGlvbjsK
KyAgICAvLyBJdGVyYXRlIG92ZXIgbG9vcCBvbiBzYW1lIFFXZWJQYWdlIGluc3RhbmNlIHRvIGVu
c3VyZSBpdCBpcyB1c2FibGUKKyAgICAvLyBhZnRlciBjYWxsaW5nIFFXZWJGcmFtZTo6dW5sb2Fk
KCkuCisgICAgZm9yICh0ZXN0SXRlcmF0aW9uID0gMDsgdGVzdEl0ZXJhdGlvbiA8IDEwOyArK3Rl
c3RJdGVyYXRpb24pIHsKKyAgICAgICAgdGVzdFBhZ2UtPm1haW5GcmFtZSgpLT5zZXRIdG1sKGh0
bWwpOworICAgICAgICAvLyBzZW5kIHVubG9hZCBldmVudC4KKyAgICAgICAgdGVzdFBhZ2UtPm1h
aW5GcmFtZSgpLT51bmxvYWQoKTsKKyAgICAgICAgLy8gbWFpbiBmcmFtZSBzaG91bGQgbm90IGJl
IGRlc3Ryb3llZC4KKyAgICAgICAgUUNPTVBBUkUoc3B5LmNvdW50KCksIDApOworICAgIH0KKwor
ICAgIC8vIDMgZnJhbWVzICogMTAgaXRlcmF0aW9ucyA9IDMwIGFsZXJ0cyBmcm9tIHVubG9hZCBl
dmVudC4KKyAgICBRQ09NUEFSRSh0ZXN0UGFnZS0+bV9hbGVydENvdW50LCB0ZXN0SXRlcmF0aW9u
ICogMyk7CisgICAgLy8gRGVsZXRlIFFXZWJQYWdlIGluc3RhbmNlLgorICAgIGRlbGV0ZSB0ZXN0
UGFnZTsKKyAgICAvLyBBZnRlciBkZWxldGlvbiBvZiBwYWdlIFFXZWJGcmFtZSBzaG91bGQgYmUg
ZGVsZXRlZC4KKyAgICBRQ09NUEFSRShzcHkuY291bnQoKSwgMSk7Cit9CisKIHZvaWQgdHN0X1FX
ZWJGcmFtZTo6c2V0SHRtbFdpdGhJbWFnZVJlc291cmNlKCkKIHsKICAgICAvLyBCeSBkZWZhdWx0
LCBvbmx5IHNlY3VyaXR5IG9yaWdpbnMgb2YgbG9jYWwgZmlsZXMgY2FuIGxvYWQgbG9jYWwgcmVz
b3VyY2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3Rf
cXdlYnBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBh
Z2UuY3BwCmluZGV4IDUzZTY1NTc0OTJjZmM1YzI1OTRmYjdlZDUwODY4ZjA3YTUwYmRmYmEuLjg4
MWE4NDc3OTQ3OGNjMzRmMmQ2Y2M3OWY0ZGQ1MTNjODA0Y2VlYWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHAKQEAgLTExNSw2ICsxMTUs
OCBAQCBwcml2YXRlIFFfU0xPVFM6CiAgICAgdm9pZCBjb250ZXh0TWVudVBvcHVsYXRlZE9uY2Uo
KTsKICAgICB2b2lkIGFjY2VwdE5hdmlnYXRpb25SZXF1ZXN0KCk7CiAgICAgdm9pZCBkb21haW5T
cGVjaWZpY0tleUV2ZW50KCk7CisgICAgdm9pZCB1bmxvYWRXZWJWaWV3KCk7CisgICAgdm9pZCB1
bmxvYWRHcmFwaGljc1dlYlZpZXcoKTsKICAgICB2b2lkIGdlb2xvY2F0aW9uUmVxdWVzdEpTKCk7
CiAgICAgdm9pZCBsb2FkRmluaXNoZWQoKTsKICAgICB2b2lkIGFjdGlvblN0YXRlcygpOwpAQCAt
MzM2LDYgKzMzOCw3MiBAQCB2b2lkIHRzdF9RV2ViUGFnZTo6ZG9tYWluU3BlY2lmaWNLZXlFdmVu
dCgpCiAgICAgUVZFUklGWShyZWNlaXZlZEtleUFycmF5ID09IGV4cGVjdGVkUmVjZWl2ZWRLZXlB
cnJheTMpOwogfQogCitjbGFzcyBVbmxvYWRQYWdlIDogcHVibGljIFFXZWJQYWdlIHsKKyAgICBR
X09CSkVDVAorcHVibGljOgorICAgIGludCBtX2FsZXJ0Q291bnQ7CisgICAgVW5sb2FkUGFnZShR
T2JqZWN0KiBwYXJlbnQgPSAwKQorICAgICAgICA6IFFXZWJQYWdlKHBhcmVudCkKKyAgICAgICAg
LCBtX2FsZXJ0Q291bnQoMCkKKyAgICB7CisKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgamF2
YVNjcmlwdEFsZXJ0KFFXZWJGcmFtZSosIGNvbnN0IFFTdHJpbmcmKQorICAgIHsKKyAgICAgICAg
KyttX2FsZXJ0Q291bnQ7CisgICAgfQorfTsKKwordm9pZCB0c3RfUVdlYlBhZ2U6OnVubG9hZFdl
YlZpZXcoKQoreworICAgIFFXZWJWaWV3IHdlYlZpZXc7CisgICAgVW5sb2FkUGFnZSogdGVzdFBh
Z2UgPSBuZXcgVW5sb2FkUGFnZSgmd2ViVmlldyk7CisgICAgd2ViVmlldy5zZXRQYWdlKHRlc3RQ
YWdlKTsKKworICAgIFFMYXRpbjFTdHJpbmcgaHRtbCgiPGh0bWw+PHNjcmlwdD4iCisgICAgICAg
ICJ3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7IgorICAgICAgICAgICAgLy8gSW5zdGFsbCB1
bmxvYWQgZXZlbnQgaGFuZGxlciBmb3IgYWxsIGZyYW1lcworICAgICAgICAgICAgImZvciAodmFy
IGkgPSAwOyBpIDwgd2luZG93LmZyYW1lcy5sZW5ndGg7ICsraSkgeyIKKyAgICAgICAgICAgICAg
ICAid2luZG93LmZyYW1lc1tpXS5vbnVubG9hZCA9IGZ1bmN0aW9uKCkgeyBhbGVydCgnaGVsbG8n
KTsgfTsiCisgICAgICAgICAgICAifSIKKyAgICAgICAgIn07IgorICAgICAgICAvLyBDcmVhdGUg
MyBGcmFtZXMuCisgICAgICAgICI8L3NjcmlwdD48ZnJhbWVzZXQ+PGZyYW1lPjxmcmFtZT48ZnJh
bWU+PC9mcmFtZXNldD4iCisgICAgICAgICI8L2h0bWw+Iik7CisKKyAgICB0ZXN0UGFnZS0+bWFp
bkZyYW1lKCktPnNldEh0bWwoaHRtbCk7CisgICAgLy8gY2xvc2UgUVdlYlZpZXcsIHRoYXQgc2hv
dWxkIGNhbGwgdW5sb2FkLgorICAgIFFDT01QQVJFKHdlYlZpZXcuY2xvc2UoKSwgdHJ1ZSk7Cisg
ICAgLy8gMyBmcmFtZXMsIHNvIDMgYWxlcnRzIGZyb20gdW5sb2FkIGV2ZW50LgorICAgIFFDT01Q
QVJFKHRlc3RQYWdlLT5tX2FsZXJ0Q291bnQsIDMpOworfQorCit2b2lkIHRzdF9RV2ViUGFnZTo6
dW5sb2FkR3JhcGhpY3NXZWJWaWV3KCkKK3sKKyAgICBRR3JhcGhpY3NXZWJWaWV3IHdlYlZpZXc7
CisKKyAgICBVbmxvYWRQYWdlKiB0ZXN0UGFnZSA9IG5ldyBVbmxvYWRQYWdlKCZ3ZWJWaWV3KTsK
KyAgICB3ZWJWaWV3LnNldFBhZ2UodGVzdFBhZ2UpOworCisgICAgUUxhdGluMVN0cmluZyBodG1s
KCI8aHRtbD48c2NyaXB0PiIKKyAgICAgICAgIndpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsi
CisgICAgICAgICAgICAvLyBJbnN0YWxsIHVubG9hZCBldmVudCBoYW5kbGVyIGZvciBhbGwgZnJh
bWVzCisgICAgICAgICAgICAiZm9yICh2YXIgaSA9IDA7IGkgPCB3aW5kb3cuZnJhbWVzLmxlbmd0
aDsgKytpKSB7IgorICAgICAgICAgICAgICAgICJ3aW5kb3cuZnJhbWVzW2ldLm9udW5sb2FkID0g
ZnVuY3Rpb24oKSB7IGFsZXJ0KCdoZWxsbycpOyB9OyIKKyAgICAgICAgICAgICJ9IgorICAgICAg
ICAifTsiCisgICAgICAgIC8vIENyZWF0ZSAzIEZyYW1lcy4KKyAgICAgICAgIjwvc2NyaXB0Pjxm
cmFtZXNldD48ZnJhbWU+PGZyYW1lPjxmcmFtZT48L2ZyYW1lc2V0PiIKKyAgICAgICAgIjwvaHRt
bD4iKTsKKworICAgIHRlc3RQYWdlLT5tYWluRnJhbWUoKS0+c2V0SHRtbChodG1sKTsKKyAgICAv
LyBjbG9zZSBRR3JhcGhpY3NXZWJWaWV3LCB0aGF0IHNob3VsZCBjYWxsIHVubG9hZC4KKyAgICBR
Q09NUEFSRSh3ZWJWaWV3LmNsb3NlKCksIHRydWUpOworICAgIC8vIDMgZnJhbWVzLCBzbyAzIGFs
ZXJ0cyBmcm9tIHVubG9hZCBldmVudC4KKyAgICBRQ09NUEFSRSh0ZXN0UGFnZS0+bV9hbGVydENv
dW50LCAzKTsKK30KKwogY2xhc3MgSlNUZXN0UGFnZSA6IHB1YmxpYyBRV2ViUGFnZQogewogUV9P
QkpFQ1QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208648</attachid>
            <date>2013-08-13 10:20:46 -0700</date>
            <delta_ts>2013-08-15 11:21:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119654-20130813225023.patch</filename>
            <type>text/plain</type>
            <size>13776</size>
            <attacher name="Arunprasad Rajkumar">arurajku</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUzODg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGM0YTE3MmQyZmVl
MTBmNzA2MzY5YmYzODM2ZTU0NjU3YWM5MGZlODcuLjhkZGI0NzQ4OTczOTJmNWNiNGVkZjIzMmMy
ODFiZDE4MzY3ZWFhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTMtMDgt
MTMgIEFydW5wcmFzYWQgUmFqa3VtYXIgIDxhcnVyYWprdUBjaXNjby5jb20+CisKKyAgICAgICAg
W1F0XSBBdm9pZCBjYWxsaW5nIFFXZWJQYWdlJ3MgdmlydHVhbCBmdW5jdGlvbnMgZHVyaW5nIGRl
bGV0aW9uIG9mIFFXZWJQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTk2NTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRlZCB1bmxvYWQoKSBtZXRob2QgdG8gUVdlYkZyYW1lLiBDYWxsaW5nIHRo
aXMgbWV0aG9kIHdpbGwgY2xlYXJzIHRoZSBjb250ZW50cworICAgICAgICBvZiB0aGUgUVdlYkZy
YW1lIGFuZCBzZW5kcyBET00gdW5sb2FkIGV2ZW50IHRvIHRoZSBXZWIgQXBwbGljYXRpb24gbG9h
ZGVkIG9uIHRoZQorICAgICAgICBwYXJ0aWN1bGFyIGZyYW1lL2NoaWxkLWZyYW1lLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvUVdlYkZyYW1lQWRhcHRlci5jcHA6CisgICAgICAgIChRV2Vi
RnJhbWVBZGFwdGVyOjp1bmxvYWQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1FXZWJGcmFt
ZUFkYXB0ZXIuaDoKKyAgICAgICAgKiBXaWRnZXRBcGkvcWdyYXBoaWNzd2Vidmlldy5jcHA6Cisg
ICAgICAgIChRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6ZGV0YWNoQ3VycmVudFBhZ2UpOiB1bmxv
YWRzIHRoZSBwYWdlLgorICAgICAgICAoUUdyYXBoaWNzV2ViVmlldzo6Y2xvc2VFdmVudCk6Cisg
ICAgICAgICogV2lkZ2V0QXBpL3FncmFwaGljc3dlYnZpZXcuaDoKKyAgICAgICAgKiBXaWRnZXRB
cGkvcXdlYmZyYW1lLmNwcDoKKyAgICAgICAgKFFXZWJGcmFtZTo6dW5sb2FkKToKKyAgICAgICAg
KiBXaWRnZXRBcGkvcXdlYmZyYW1lLmg6CisgICAgICAgICogV2lkZ2V0QXBpL3F3ZWJwYWdlLmNw
cDoKKyAgICAgICAgKFFXZWJQYWdlOjpldmVudCk6CisgICAgICAgICogV2lkZ2V0QXBpL3F3ZWJ2
aWV3LmNwcDoKKyAgICAgICAgKFFXZWJWaWV3UHJpdmF0ZTo6ZGV0YWNoQ3VycmVudFBhZ2UpOiB1
bmxvYWRzIHRoZSBwYWdlLgorICAgICAgICAoUVdlYlZpZXc6OmV2ZW50KToKKyAgICAgICAgKiB0
ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5jcHA6CisgICAgICAgIChVbmxvYWRUZXN0UGFn
ZTo6VW5sb2FkVGVzdFBhZ2UpOgorICAgICAgICAoVW5sb2FkVGVzdFBhZ2U6OmphdmFTY3JpcHRB
bGVydCk6CisgICAgICAgICh0c3RfUVdlYkZyYW1lOjp1bmxvYWQpOgorICAgICAgICAqIHRlc3Rz
L3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHA6CisgICAgICAgIChVbmxvYWRQYWdlOjpVbmxvYWRQ
YWdlKToKKyAgICAgICAgKFVubG9hZFBhZ2U6OmphdmFTY3JpcHRBbGVydCk6CisgICAgICAgICh0
c3RfUVdlYlBhZ2U6OnVubG9hZFdlYlZpZXcpOgorICAgICAgICAodHN0X1FXZWJQYWdlOjp1bmxv
YWRHcmFwaGljc1dlYlZpZXcpOgorCiAyMDEzLTA4LTA5ICBBcnVucHJhc2FkIFJhamt1bWFyICA8
YXJ1cmFqa3VAY2lzY28uY29tPgogCiAgICAgICAgIFtRdF0gUXRXZWJLaXQgc2hvdWxkIGFsbG93
IHNlbmRpbmcgZG9tYWluIHNwZWNpZmljIGtleWNvZGUgdG8gSFRNTCBhcHBsaWNhdGlvbnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUVdlYkZyYW1lQWRhcHRl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJGcmFtZUFkYXB0ZXIu
Y3BwCmluZGV4IDYwNTQ4ZWI2YWExZTBlZWI1ZTI3ZDI0OWIyZDE5NGZlNmZmM2JlNjguLmM5NzJk
MzBlYjY4MTg2MmQ3NTk5NTY5MzUzYTNjNWQyZTY2NTcxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUVdlYkZyYW1lQWRhcHRlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RV2ViRnJhbWVBZGFwdGVyLmNwcApAQCAtMTczLDYg
KzE3MywxNyBAQCB2b2lkIFFXZWJGcmFtZUFkYXB0ZXI6OmxvYWQoY29uc3QgUU5ldHdvcmtSZXF1
ZXN0JiByZXEsIFFOZXR3b3JrQWNjZXNzTWFuYWdlcjo6TwogICAgICAgICBwYWdlQWRhcHRlci0+
aW5zaWRlT3BlbkNhbGwgPSBmYWxzZTsKIH0KIAordm9pZCBRV2ViRnJhbWVBZGFwdGVyOjp1bmxv
YWQoKQoreworICAgIC8vIERldGFjaCB0aGUgbWFpbmZyYW1lJ3MgbG9hZGVyLCB0aGlzIHdpbGwg
YWxzbyBzZW5kIG9udW5sb2FkIGV2ZW50LgorICAgIEZyYW1lTG9hZGVyKiBsb2FkZXIgPSBmcmFt
ZS0+bG9hZGVyKCk7CisgICAgaWYgKGxvYWRlcikgeworICAgICAgICBsb2FkZXItPmNsb3NlVVJM
KCk7CisgICAgICAgIGxvYWRlci0+c2V0dXBGb3JSZXBsYWNlKCk7CisgICAgICAgIGxvYWRlci0+
c3RvcEFsbExvYWRlcnMoKTsKKyAgICB9Cit9CisKIGJvb2wgUVdlYkZyYW1lQWRhcHRlcjo6aGFz
VmlldygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGZyYW1lICYmIGZyYW1lLT52aWV3KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJGcmFtZUFkYXB0ZXIu
aCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUVdlYkZyYW1lQWRhcHRlci5oCmlu
ZGV4IDhjNjUwMDdkYjJiNDIzMjdkYThhZTIyZDVhNWIwMTRmNzRiZjUwZWUuLjlhZDFlNTU4NTJl
MjVhM2ZmNWJlNDAwZDk2ZWU2YmMzZjY5MWNmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvUVdlYkZyYW1lQWRhcHRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvUVdlYkZyYW1lQWRhcHRlci5oCkBAIC0xNDYsNiArMTQ2LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgUVdlYkZyYW1lQWRhcHRlciogY3JlYXRlQ2hpbGRGcmFtZShR
V2ViRnJhbWVEYXRhKikgPSAwOwogCiAgICAgdm9pZCBsb2FkKGNvbnN0IFFOZXR3b3JrUmVxdWVz
dCYsIFFOZXR3b3JrQWNjZXNzTWFuYWdlcjo6T3BlcmF0aW9uID0gUU5ldHdvcmtBY2Nlc3NNYW5h
Z2VyOjpHZXRPcGVyYXRpb24sIGNvbnN0IFFCeXRlQXJyYXkmIGJvZHkgPSBRQnl0ZUFycmF5KCkp
OworICAgIHZvaWQgdW5sb2FkKCk7CiAgICAgYm9vbCBoYXNWaWV3KCkgY29uc3Q7CiAjaWYgRU5B
QkxFKEdFU1RVUkVfRVZFTlRTKQogICAgIHZvaWQgaGFuZGxlR2VzdHVyZUV2ZW50KFFHZXN0dXJl
RXZlbnRGYWNhZGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBpL3Fn
cmFwaGljc3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XaWRnZXRBcGkvcWdyYXBoaWNz
d2Vidmlldy5jcHAKaW5kZXggNjkxMzhkNzNmODJlMjI5OWFkYzY0Mjc4N2Q5ODA0NmY2NThhYWY3
MS4uNDNjN2UxMmI3YmJjY2M3YjIxOTQwZjJiODc5MTNkOTJlYjI4MDEzYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9xdC9XaWRnZXRBcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9xdC9XaWRnZXRBcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAKQEAgLTQ1Myw5ICs0
NTMsMTAgQEAgdm9pZCBRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6ZGV0YWNoQ3VycmVudFBhZ2Uo
KQogICAgIC8vIGlmIHRoZSBwYWdlIHdhcyBjcmVhdGVkIGJ5IHVzLCB3ZSBvd24gaXQgYW5kIG5l
ZWQgdG8KICAgICAvLyBkZXN0cm95IGl0IGFzIHdlbGwuCiAKLSAgICBpZiAocGFnZS0+cGFyZW50
KCkgPT0gcSkKKyAgICBpZiAocGFnZS0+cGFyZW50KCkgPT0gcSkgeworICAgICAgICBwYWdlLT5t
YWluRnJhbWUoKS0+dW5sb2FkKCk7CiAgICAgICAgIGRlbGV0ZSBwYWdlOwotICAgIGVsc2UKKyAg
ICB9IGVsc2UKICAgICAgICAgcGFnZS0+ZGlzY29ubmVjdChxKTsKIAogICAgIHBhZ2UgPSAwOwpA
QCAtMTEzMyw2ICsxMTM0LDE3IEBAIHZvaWQgUUdyYXBoaWNzV2ViVmlldzo6aW5wdXRNZXRob2RF
dmVudChRSW5wdXRNZXRob2RFdmVudCogZXYpCiAgICAgICAgIFFHcmFwaGljc0l0ZW06OmlucHV0
TWV0aG9kRXZlbnQoZXYpOwogfQogCisvKiEgXHJlaW1wCisqLwordm9pZCBRR3JhcGhpY3NXZWJW
aWV3OjpjbG9zZUV2ZW50KFFDbG9zZUV2ZW50KiBldikKK3sKKyAgICBpZiAoZC0+cGFnZSkKKyAg
ICAgICAgZC0+cGFnZS0+ZXZlbnQoZXYpOworCisgICAgaWYgKCFldi0+aXNBY2NlcHRlZCgpKQor
ICAgICAgICBRR3JhcGhpY3NXaWRnZXQ6OmNsb3NlRXZlbnQoZXYpOworfQorCiAvKiEKICAgICBc
Zm4gdm9pZCBRR3JhcGhpY3NXZWJWaWV3OjpzdGF0dXNCYXJNZXNzYWdlKGNvbnN0IFFTdHJpbmcm
IHRleHQpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBpL3FncmFwaGlj
c3dlYnZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBpL3FncmFwaGljc3dlYnZpZXcu
aAppbmRleCBjOWU2MWY3NWE3NmUzNTM2ODQ1YjFjNmY2YWRlYWIxN2MwYjNhZTAyLi5iOGI2Zjk3
ZTVjN2UwNmZkMDJjNTAyMWY1NjhlYzNmNmI5YzQyNGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3F0L1dpZGdldEFwaS9xZ3JhcGhpY3N3ZWJ2aWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9x
dC9XaWRnZXRBcGkvcWdyYXBoaWNzd2Vidmlldy5oCkBAIC0xNDksNiArMTQ5LDggQEAgcHJvdGVj
dGVkOgogCiAgICAgdmlydHVhbCBib29sIHNjZW5lRXZlbnQoUUV2ZW50Kik7CiAKKyAgICB2aXJ0
dWFsIHZvaWQgY2xvc2VFdmVudChRQ2xvc2VFdmVudCopOworCiBwcml2YXRlOgogICAgIFFfUFJJ
VkFURV9TTE9UKGQsIHZvaWQgX3FfZG9Mb2FkRmluaXNoZWQoYm9vbCBzdWNjZXNzKSkKICAgICBR
X1BSSVZBVEVfU0xPVChkLCB2b2lkIF9xX3BhZ2VEZXN0cm95ZWQoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBpL3F3ZWJmcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0
L1dpZGdldEFwaS9xd2ViZnJhbWUuY3BwCmluZGV4IGYzZTU2M2NiNThiY2E5MWQyMTNiZmE3ZDVl
MDM0Y2NiMDRkYTAzNWEuLjU4YjllMDM0MDhlNTJiMTY4MzBkMzM2Mzc4YjQ1NGIzOTRmNGE4OWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBpL3F3ZWJmcmFtZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9xdC9XaWRnZXRBcGkvcXdlYmZyYW1lLmNwcApAQCAtNDgyLDYgKzQ4
MiwxOCBAQCB2b2lkIFFXZWJGcmFtZTo6c2V0Q29udGVudChjb25zdCBRQnl0ZUFycmF5ICZkYXRh
LCBjb25zdCBRU3RyaW5nICZtaW1lVHlwZSwgY29ucwogfQogCiAvKiEKKyAgICBcZm4gdm9pZCBR
V2ViRnJhbWU6OnVubG9hZCgpCisgICAgVGhpcyB3aWxsIHVubG9hZHMgdGhlIFFXZWJGcmFtZSBh
bmQgc2VuZHMgb251bmxvYWQgZXZlbnQgdG8gYSBwYWdlIGFzc29jaWF0ZWQgd2l0aCB0aGlzCisg
ICAgUVdlYkZyYW1lLgorCisgICAgXHNhIHRvSHRtbCgpLCBzZXRDb250ZW50KCksIGxvYWQoKQor
Ki8KK3ZvaWQgUVdlYkZyYW1lOjp1bmxvYWQoKQoreworICAgIGQtPnVubG9hZCgpOworfQorCisv
KiEKICAgUmV0dXJucyB0aGUgcGFyZW50IGZyYW1lIG9mIHRoaXMgZnJhbWUsIG9yIDAgaWYgdGhl
IGZyYW1lIGlzIHRoZSB3ZWIgcGFnZXMKICAgbWFpbiBmcmFtZS4KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9XaWRnZXRBcGkvcXdlYmZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dp
ZGdldEFwaS9xd2ViZnJhbWUuaAppbmRleCA0ODFkMDE5YWUyMTEzMTY1OTdmZWMzNWIzZWRkZGM4
ZDEyZWZjNjUzLi41MWQ2MDQ1MTJkMDdkOWExMWY2YjVkODM2NTExZjM5NzdlYmZhOTJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dpZGdldEFwaS9xd2ViZnJhbWUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L1dpZGdldEFwaS9xd2ViZnJhbWUuaApAQCAtMTM0LDYgKzEzNCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGxvYWQoY29uc3QgUU5ldHdvcmtSZXF1ZXN0ICZyZXF1ZXN0LCBRTmV0
d29ya0FjY2Vzc01hbmFnZXI6Ok9wZXJhdGlvbiBvcGVyYXRpb24gPSBRTmV0d29ya0FjY2Vzc01h
bmFnZXI6OkdldE9wZXJhdGlvbiwgY29uc3QgUUJ5dGVBcnJheSAmYm9keSA9IFFCeXRlQXJyYXko
KSk7CiAgICAgdm9pZCBzZXRIdG1sKGNvbnN0IFFTdHJpbmcgJmh0bWwsIGNvbnN0IFFVcmwgJmJh
c2VVcmwgPSBRVXJsKCkpOwogICAgIHZvaWQgc2V0Q29udGVudChjb25zdCBRQnl0ZUFycmF5ICZk
YXRhLCBjb25zdCBRU3RyaW5nICZtaW1lVHlwZSA9IFFTdHJpbmcoKSwgY29uc3QgUVVybCAmYmFz
ZVVybCA9IFFVcmwoKSk7CisgICAgdm9pZCB1bmxvYWQoKTsKIAogICAgIHZvaWQgYWRkVG9KYXZh
U2NyaXB0V2luZG93T2JqZWN0KGNvbnN0IFFTdHJpbmcgJm5hbWUsIFFPYmplY3QgKm9iamVjdCwg
VmFsdWVPd25lcnNoaXAgb3duZXJzaGlwID0gUXRPd25lcnNoaXApOwogICAgIFFTdHJpbmcgdG9I
dG1sKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dpZGdldEFwaS9xd2Vi
cGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dpZGdldEFwaS9xd2VicGFnZS5jcHAKaW5kZXgg
MGYzZjE0ZDM5ZTI1NWYxMDUyYjU4OTkzMjExZTgyN2JkMWUxYTgwYy4uMjM4OGQ0ZmFkOWM1NjMx
ZWI5OWY3ZTIwYjJmNzg1MTFkOWQ2YWMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9X
aWRnZXRBcGkvcXdlYnBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBpL3F3
ZWJwYWdlLmNwcApAQCAtMjU3OSw2ICsyNTc5LDEwIEBAIGJvb2wgUVdlYlBhZ2U6OmV2ZW50KFFF
dmVudCAqZXYpCiAgICAgICAgIGQtPmR5bmFtaWNQcm9wZXJ0eUNoYW5nZUV2ZW50KHRoaXMsIHN0
YXRpY19jYXN0PFFEeW5hbWljUHJvcGVydHlDaGFuZ2VFdmVudCo+KGV2KSk7CiAgICAgICAgIGJy
ZWFrOwogI2VuZGlmCisgICAgY2FzZSBRRXZlbnQ6OkNsb3NlOgorICAgICAgICAvLyBzZW5kIHVu
bG9hZCB3aGVuIGNsb3NlKCkgaXMgY2FsbGVkLgorICAgICAgICBtYWluRnJhbWUoKS0+dW5sb2Fk
KCk7CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBRT2JqZWN0
OjpldmVudChldik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XaWRnZXRB
cGkvcXdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XaWRnZXRBcGkvcXdlYnZpZXcuY3Bw
CmluZGV4IDliYTk2MjE3OGYzY2Y2MWE3NGQxM2RkN2QyZGU1YjE4ZGEyMjcwZjcuLjg4NzdjYjc4
OGU2NTQ5NzE4ZmIyZjFlNmI3MWIwMTk5ZDE1NzlmNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvcXQvV2lkZ2V0QXBpL3F3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dpZGdl
dEFwaS9xd2Vidmlldy5jcHAKQEAgLTIzMiw5ICsyMzIsMTAgQEAgdm9pZCBRV2ViVmlld1ByaXZh
dGU6OmRldGFjaEN1cnJlbnRQYWdlKCkKICAgICAvLyBpZiB0aGUgcGFnZSB3YXMgY3JlYXRlZCBi
eSB1cywgd2Ugb3duIGl0IGFuZCBuZWVkIHRvCiAgICAgLy8gZGVzdHJveSBpdCBhcyB3ZWxsLgog
Ci0gICAgaWYgKHBhZ2UtPnBhcmVudCgpID09IHZpZXcpCisgICAgaWYgKHBhZ2UtPnBhcmVudCgp
ID09IHZpZXcpIHsKKyAgICAgICAgcGFnZS0+bWFpbkZyYW1lKCktPnVubG9hZCgpOwogICAgICAg
ICBkZWxldGUgcGFnZTsKLSAgICBlbHNlCisgICAgfSBlbHNlCiAgICAgICAgIHBhZ2UtPmRpc2Nv
bm5lY3Qodmlldyk7CiAKICAgICBwYWdlID0gMDsKQEAgLTcyNiw4ICs3MjcsMTAgQEAgYm9vbCBR
V2ViVmlldzo6ZXZlbnQoUUV2ZW50ICplKQogCiAgICAgICAgICAgICAvLyBBbHdheXMgcmV0dXJu
IHRydWUgc28gdGhhdCB3ZSdsbCByZWNlaXZlIGFsc28gVG91Y2hVcGRhdGUgYW5kIFRvdWNoRW5k
IGV2ZW50cwogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0gZWxzZSBpZiAoZS0+
dHlwZSgpID09IFFFdmVudDo6TGVhdmUpCisgICAgICAgIH0gZWxzZSBpZiAoZS0+dHlwZSgpID09
IFFFdmVudDo6TGVhdmUKKyAgICAgICAgICAgIHx8IGUtPnR5cGUoKSA9PSBRRXZlbnQ6OkNsb3Nl
KSB7CiAgICAgICAgICAgICBkLT5wYWdlLT5ldmVudChlKTsKKyAgICAgICAgfQogICAgIH0KIAog
ICAgIHJldHVybiBRV2lkZ2V0OjpldmVudChlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
cXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9xdC90
ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5jcHAKaW5kZXggZjg1MjE0OWQ0MDM4N2I2NDI4
ODdhMDBmYmVjOGIxOGM2N2RjMGU2MS4uYzY3MDBkNmUyNmIwODc5NjkzYzZhODE3MTgxYTEwMWE4
MDZkMzM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0
X3F3ZWJmcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0
X3F3ZWJmcmFtZS5jcHAKQEAgLTYxLDYgKzYxLDcgQEAgcHJpdmF0ZSBRX1NMT1RTOgogICAgIHZv
aWQgamF2YVNjcmlwdFdpbmRvd09iamVjdENsZWFyZWQoKTsKICAgICB2b2lkIGphdmFTY3JpcHRX
aW5kb3dPYmplY3RDbGVhcmVkT25FdmFsdWF0ZSgpOwogICAgIHZvaWQgc2V0SHRtbCgpOworICAg
IHZvaWQgdW5sb2FkKCk7CiAgICAgdm9pZCBzZXRIdG1sV2l0aEltYWdlUmVzb3VyY2UoKTsKICAg
ICB2b2lkIHNldEh0bWxXaXRoU3R5bGVzaGVldFJlc291cmNlKCk7CiAgICAgdm9pZCBzZXRIdG1s
V2l0aEJhc2VVUkwoKTsKQEAgLTM5OCw2ICszOTksNTkgQEAgdm9pZCB0c3RfUVdlYkZyYW1lOjpz
ZXRIdG1sKCkKICAgICBRQ09NUEFSRShzcHkuY291bnQoKSwgMSk7CiB9CiAKK2NsYXNzIFVubG9h
ZFRlc3RQYWdlIDogcHVibGljIFFXZWJQYWdlIHsKKyAgICBRX09CSkVDVAorcHVibGljOgorICAg
IGludCBtX2FsZXJ0Q291bnQ7CisgICAgVW5sb2FkVGVzdFBhZ2UoUU9iamVjdCogcGFyZW50ID0g
MCkKKyAgICAgICAgOiBRV2ViUGFnZShwYXJlbnQpCisgICAgICAgICwgbV9hbGVydENvdW50KDAp
CisgICAgeworCisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGphdmFTY3JpcHRBbGVydChRV2Vi
RnJhbWUqLCBjb25zdCBRU3RyaW5nJikKKyAgICB7CisgICAgICAgICsrbV9hbGVydENvdW50Owor
ICAgIH0KK307CisKK3ZvaWQgdHN0X1FXZWJGcmFtZTo6dW5sb2FkKCkKK3sKKyAgICBVbmxvYWRU
ZXN0UGFnZSogdGVzdFBhZ2UgPSBuZXcgVW5sb2FkVGVzdFBhZ2UoKTsKKyAgICAvLyBJbnN0YWxs
IGRlc3Ryb3llZCgpIHNpZ25hbCBzcHkgdG8gY2hlY2sgUVdlYkZyYW1lIGlzIGFsd2F5cyB1c2Fi
bGUKKyAgICAvLyBldmVuIGFmdGVyIHVubG9hZCgpLgorICAgIFFTaWduYWxTcHkgc3B5KHRlc3RQ
YWdlLT5tYWluRnJhbWUoKSwgU0lHTkFMKGRlc3Ryb3llZChRT2JqZWN0KikpKTsKKyAgICBRTGF0
aW4xU3RyaW5nIGh0bWwoIjxodG1sPjxzY3JpcHQ+IgorICAgICAgICAid2luZG93Lm9ubG9hZCA9
IGZ1bmN0aW9uKCkgeyIKKyAgICAgICAgICAgIC8vIEluc3RhbGwgdW5sb2FkIGV2ZW50IGhhbmRs
ZXIgZm9yIGFsbCBmcmFtZXMKKyAgICAgICAgICAgICJmb3IgKHZhciBpID0gMDsgaSA8IHdpbmRv
dy5mcmFtZXMubGVuZ3RoOyArK2kpIHsiCisgICAgICAgICAgICAgICAgIndpbmRvdy5mcmFtZXNb
aV0ub251bmxvYWQgPSBmdW5jdGlvbigpIHsgYWxlcnQoJ2hlbGxvJyk7IH07IgorICAgICAgICAg
ICAgIn0iCisgICAgICAgICJ9OyIKKyAgICAgICAgLy8gQ3JlYXRlIDMgRnJhbWVzLgorICAgICAg
ICAiPC9zY3JpcHQ+PGZyYW1lc2V0PjxmcmFtZT48ZnJhbWU+PGZyYW1lPjwvZnJhbWVzZXQ+Igor
ICAgICAgICAiPC9odG1sPiIpOworCisgICAgaW50IHRlc3RJdGVyYXRpb247CisgICAgLy8gSXRl
cmF0ZSBvdmVyIGxvb3Agb24gc2FtZSBRV2ViUGFnZSBpbnN0YW5jZSB0byBlbnN1cmUgaXQgaXMg
dXNhYmxlCisgICAgLy8gYWZ0ZXIgY2FsbGluZyBRV2ViRnJhbWU6OnVubG9hZCgpLgorICAgIGZv
ciAodGVzdEl0ZXJhdGlvbiA9IDA7IHRlc3RJdGVyYXRpb24gPCAxMDsgKyt0ZXN0SXRlcmF0aW9u
KSB7CisgICAgICAgIHRlc3RQYWdlLT5tYWluRnJhbWUoKS0+c2V0SHRtbChodG1sKTsKKyAgICAg
ICAgLy8gc2VuZCB1bmxvYWQgZXZlbnQuCisgICAgICAgIHRlc3RQYWdlLT5tYWluRnJhbWUoKS0+
dW5sb2FkKCk7CisgICAgICAgIC8vIG1haW4gZnJhbWUgc2hvdWxkIG5vdCBiZSBkZXN0cm95ZWQu
CisgICAgICAgIFFDT01QQVJFKHNweS5jb3VudCgpLCAwKTsKKyAgICB9CisKKyAgICAvLyAzIGZy
YW1lcyAqIDEwIGl0ZXJhdGlvbnMgPSAzMCBhbGVydHMgZnJvbSB1bmxvYWQgZXZlbnQuCisgICAg
UUNPTVBBUkUodGVzdFBhZ2UtPm1fYWxlcnRDb3VudCwgdGVzdEl0ZXJhdGlvbiAqIDMpOworICAg
IC8vIERlbGV0ZSBRV2ViUGFnZSBpbnN0YW5jZS4KKyAgICBkZWxldGUgdGVzdFBhZ2U7CisgICAg
Ly8gQWZ0ZXIgZGVsZXRpb24gb2YgcGFnZSBRV2ViRnJhbWUgc2hvdWxkIGJlIGRlbGV0ZWQuCisg
ICAgUUNPTVBBUkUoc3B5LmNvdW50KCksIDEpOworfQorCiB2b2lkIHRzdF9RV2ViRnJhbWU6OnNl
dEh0bWxXaXRoSW1hZ2VSZXNvdXJjZSgpCiB7CiAgICAgLy8gQnkgZGVmYXVsdCwgb25seSBzZWN1
cml0eSBvcmlnaW5zIG9mIGxvY2FsIGZpbGVzIGNhbiBsb2FkIGxvY2FsIHJlc291cmNlcy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcAppbmRl
eCA1M2U2NTU3NDkyY2ZjNWMyNTk0ZmI3ZWQ1MDg2OGYwN2E1MGJkZmJhLi41OGU5NjlmMTdlNjE1
N2Q4NzQ3OTBlMjFlMjJhNjE2Yjc1Y2ZkYjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0
L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC90
ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCkBAIC0xMTUsNiArMTE1LDggQEAgcHJpdmF0
ZSBRX1NMT1RTOgogICAgIHZvaWQgY29udGV4dE1lbnVQb3B1bGF0ZWRPbmNlKCk7CiAgICAgdm9p
ZCBhY2NlcHROYXZpZ2F0aW9uUmVxdWVzdCgpOwogICAgIHZvaWQgZG9tYWluU3BlY2lmaWNLZXlF
dmVudCgpOworICAgIHZvaWQgdW5sb2FkV2ViVmlldygpOworICAgIHZvaWQgdW5sb2FkR3JhcGhp
Y3NXZWJWaWV3KCk7CiAgICAgdm9pZCBnZW9sb2NhdGlvblJlcXVlc3RKUygpOwogICAgIHZvaWQg
bG9hZEZpbmlzaGVkKCk7CiAgICAgdm9pZCBhY3Rpb25TdGF0ZXMoKTsKQEAgLTMzNiw2ICszMzgs
NzcgQEAgdm9pZCB0c3RfUVdlYlBhZ2U6OmRvbWFpblNwZWNpZmljS2V5RXZlbnQoKQogICAgIFFW
RVJJRlkocmVjZWl2ZWRLZXlBcnJheSA9PSBleHBlY3RlZFJlY2VpdmVkS2V5QXJyYXkzKTsKIH0K
IAorY2xhc3MgVW5sb2FkUGFnZSA6IHB1YmxpYyBRV2ViUGFnZSB7CisgICAgUV9PQkpFQ1QKK3B1
YmxpYzoKKyAgICBpbnQmIG1fYWxlcnRDb3VudDsKKyAgICBVbmxvYWRQYWdlKFFPYmplY3QqIHBh
cmVudCwgaW50JiBhbGVydENvdW50KQorICAgICAgICA6IFFXZWJQYWdlKHBhcmVudCkKKyAgICAg
ICAgLCBtX2FsZXJ0Q291bnQoYWxlcnRDb3VudCkKKyAgICB7CisKKyAgICB9CisKKyAgICB2aXJ0
dWFsIHZvaWQgamF2YVNjcmlwdEFsZXJ0KFFXZWJGcmFtZSosIGNvbnN0IFFTdHJpbmcmKQorICAg
IHsKKyAgICAgICAgKyttX2FsZXJ0Q291bnQ7CisgICAgfQorfTsKKwordm9pZCB0c3RfUVdlYlBh
Z2U6OnVubG9hZFdlYlZpZXcoKQoreworICAgIC8vIFRvIGNoZWNrIHdoZXRoZXIgb3VyIG92ZXJy
aWRkZW4gYWxlcnQgaXMgY2FsbGVkIG9yIG5vdC4KKyAgICBpbnQgYWxlcnRDb3VudCA9IDA7CisK
KyAgICBRV2ViVmlldyogd2ViVmlldyA9IG5ldyBRV2ViVmlldygpOworICAgIFVubG9hZFBhZ2Uq
IHRlc3RQYWdlID0gbmV3IFVubG9hZFBhZ2Uod2ViVmlldywgYWxlcnRDb3VudCk7CisgICAgd2Vi
Vmlldy0+c2V0UGFnZSh0ZXN0UGFnZSk7CisKKyAgICBRTGF0aW4xU3RyaW5nIGh0bWwoIjxodG1s
PjxzY3JpcHQ+IgorICAgICAgICAid2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeyIKKyAgICAg
ICAgICAgIC8vIEluc3RhbGwgdW5sb2FkIGV2ZW50IGhhbmRsZXIgZm9yIGFsbCBmcmFtZXMKKyAg
ICAgICAgICAgICJmb3IgKHZhciBpID0gMDsgaSA8IHdpbmRvdy5mcmFtZXMubGVuZ3RoOyArK2kp
IHsiCisgICAgICAgICAgICAgICAgIndpbmRvdy5mcmFtZXNbaV0ub251bmxvYWQgPSBmdW5jdGlv
bigpIHsgYWxlcnQoJ2hlbGxvJyk7IH07IgorICAgICAgICAgICAgIn0iCisgICAgICAgICJ9OyIK
KyAgICAgICAgLy8gQ3JlYXRlIDMgRnJhbWVzLgorICAgICAgICAiPC9zY3JpcHQ+PGZyYW1lc2V0
PjxmcmFtZT48ZnJhbWU+PGZyYW1lPjwvZnJhbWVzZXQ+IgorICAgICAgICAiPC9odG1sPiIpOwor
CisgICAgdGVzdFBhZ2UtPm1haW5GcmFtZSgpLT5zZXRIdG1sKGh0bWwpOworICAgIC8vIGRlbGV0
ZSBRV2ViVmlldywgdGhhdCBzaG91bGQgY2FsbCB1bmxvYWQuCisgICAgZGVsZXRlIHdlYlZpZXc7
CisgICAgLy8gMyBmcmFtZXMsIHNvIDMgYWxlcnRzIGZyb20gdW5sb2FkIGV2ZW50LgorICAgIFFD
T01QQVJFKGFsZXJ0Q291bnQsIDMpOworfQorCit2b2lkIHRzdF9RV2ViUGFnZTo6dW5sb2FkR3Jh
cGhpY3NXZWJWaWV3KCkKK3sKKyAgICAvLyBUbyBjaGVjayB3aGV0aGVyIG91ciBvdmVycmlkZGVu
IGFsZXJ0IGlzIGNhbGxlZCBvciBub3QuCisgICAgaW50IGFsZXJ0Q291bnQgPSAwOworCisgICAg
UUdyYXBoaWNzV2ViVmlldyogd2ViVmlldyA9IG5ldyBRR3JhcGhpY3NXZWJWaWV3KCk7CisgICAg
VW5sb2FkUGFnZSogdGVzdFBhZ2UgPSBuZXcgVW5sb2FkUGFnZSh3ZWJWaWV3LCBhbGVydENvdW50
KTsKKyAgICB3ZWJWaWV3LT5zZXRQYWdlKHRlc3RQYWdlKTsKKworICAgIFFMYXRpbjFTdHJpbmcg
aHRtbCgiPGh0bWw+PHNjcmlwdD4iCisgICAgICAgICJ3aW5kb3cub25sb2FkID0gZnVuY3Rpb24o
KSB7IgorICAgICAgICAgICAgLy8gSW5zdGFsbCB1bmxvYWQgZXZlbnQgaGFuZGxlciBmb3IgYWxs
IGZyYW1lcworICAgICAgICAgICAgImZvciAodmFyIGkgPSAwOyBpIDwgd2luZG93LmZyYW1lcy5s
ZW5ndGg7ICsraSkgeyIKKyAgICAgICAgICAgICAgICAid2luZG93LmZyYW1lc1tpXS5vbnVubG9h
ZCA9IGZ1bmN0aW9uKCkgeyBhbGVydCgnaGVsbG8nKTsgfTsiCisgICAgICAgICAgICAifSIKKyAg
ICAgICAgIn07IgorICAgICAgICAvLyBDcmVhdGUgMyBGcmFtZXMuCisgICAgICAgICI8L3Njcmlw
dD48ZnJhbWVzZXQ+PGZyYW1lPjxmcmFtZT48ZnJhbWU+PC9mcmFtZXNldD4iCisgICAgICAgICI8
L2h0bWw+Iik7CisKKyAgICB0ZXN0UGFnZS0+bWFpbkZyYW1lKCktPnNldEh0bWwoaHRtbCk7Cisg
ICAgLy8gZGVsZXRlIFFHcmFwaGljc1dlYlZpZXcsIHRoYXQgc2hvdWxkIGNhbGwgdW5sb2FkLgor
ICAgIGRlbGV0ZSB3ZWJWaWV3OworICAgIC8vIDMgZnJhbWVzLCBzbyAzIGFsZXJ0cyBmcm9tIHVu
bG9hZCBldmVudC4KKyAgICBRQ09NUEFSRShhbGVydENvdW50LCAzKTsKK30KKwogY2xhc3MgSlNU
ZXN0UGFnZSA6IHB1YmxpYyBRV2ViUGFnZQogewogUV9PQkpFQ1QK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>208823</attachid>
            <date>2013-08-15 11:21:28 -0700</date>
            <delta_ts>2013-08-20 03:12:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119654-20130815235103.patch</filename>
            <type>text/plain</type>
            <size>14624</size>
            <attacher name="Arunprasad Rajkumar">arurajku</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU0MDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDgxMWIxMjliMjQ2
NmRjMGQ1NGY2MDdiOTY4MDhlM2VjOTdlN2VlODguLjBlYTAyNGNkOWVmNDRjMmYyMDRlOTU5MWUx
OTlkZGRkNGZkNjM0NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTMtMDgt
MTUgIEFydW5wcmFzYWQgUmFqa3VtYXIgIDxhcnVyYWprdUBjaXNjby5jb20+CisKKyAgICAgICAg
PGh0dHBzOi8vd2Via2l0Lm9yZy9iLzExOTY1ND4gW1F0XSBBdm9pZCBjYWxsaW5nIFFXZWJQYWdl
J3MgdmlydHVhbCBmdW5jdGlvbnMgZHVyaW5nIGRlbGV0aW9uIG9mIFFXZWJQYWdlCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdW5sb2FkKCkg
bWV0aG9kIHRvIFFXZWJGcmFtZS4gQ2FsbGluZyB0aGlzIG1ldGhvZCB3aWxsIGNsZWFycyB0aGUg
Y29udGVudHMKKyAgICAgICAgb2YgdGhlIFFXZWJGcmFtZSBhbmQgc2VuZHMgRE9NIHVubG9hZCBl
dmVudCB0byB0aGUgV2ViIEFwcGxpY2F0aW9uIGxvYWRlZCBvbiB0aGUKKyAgICAgICAgcGFydGlj
dWxhciBmcmFtZS9jaGlsZC1mcmFtZS4KKworICAgICAgICBUaGlzIGZpeCB3aWxsIGJlIHVzZWZ1
bCB0byByZW1vdmUgdGhlIGhhY2sgaW50cm9kdWNlZCBieQorICAgICAgICBodHRwOi8vdHJhYy53
ZWJraXQub3JnL3I2MTQzMyBmb3IgRFJULgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUVdl
YkZyYW1lQWRhcHRlci5jcHA6CisgICAgICAgIChRV2ViRnJhbWVBZGFwdGVyOjp1bmxvYWQpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1FXZWJGcmFtZUFkYXB0ZXIuaDoKKyAgICAgICAgKiBX
aWRnZXRBcGkvcWdyYXBoaWNzd2Vidmlldy5jcHA6CisgICAgICAgIChRR3JhcGhpY3NXZWJWaWV3
UHJpdmF0ZTo6ZGV0YWNoQ3VycmVudFBhZ2UpOgorICAgICAgICAoUUdyYXBoaWNzV2ViVmlldzo6
Y2xvc2VFdmVudCk6CisgICAgICAgICogV2lkZ2V0QXBpL3FncmFwaGljc3dlYnZpZXcuaDoKKyAg
ICAgICAgKiBXaWRnZXRBcGkvcXdlYmZyYW1lLmNwcDoKKyAgICAgICAgKFFXZWJGcmFtZTo6dW5s
b2FkKTogQWRkZWQgbmV3IG1ldGhvZCB0byB1bmxvYWQgdGhlIHBhZ2UuCisgICAgICAgICogV2lk
Z2V0QXBpL3F3ZWJmcmFtZS5oOgorICAgICAgICAqIFdpZGdldEFwaS9xd2VicGFnZS5jcHA6Cisg
ICAgICAgIChRV2ViUGFnZTo6ZXZlbnQpOgorICAgICAgICAqIFdpZGdldEFwaS9xd2Vidmlldy5j
cHA6CisgICAgICAgIChRV2ViVmlld1ByaXZhdGU6OmRldGFjaEN1cnJlbnRQYWdlKToKKyAgICAg
ICAgKFFXZWJWaWV3OjpldmVudCk6CisgICAgICAgICogdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2Vi
ZnJhbWUuY3BwOgorICAgICAgICAoVW5sb2FkVGVzdFBhZ2U6OlVubG9hZFRlc3RQYWdlKToKKyAg
ICAgICAgKFVubG9hZFRlc3RQYWdlOjpqYXZhU2NyaXB0QWxlcnQpOgorICAgICAgICAodHN0X1FX
ZWJGcmFtZTo6dW5sb2FkKToKKyAgICAgICAgKiB0ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2Uu
Y3BwOgorICAgICAgICAoVW5sb2FkUGFnZTo6VW5sb2FkUGFnZSk6CisgICAgICAgIChVbmxvYWRQ
YWdlOjpqYXZhU2NyaXB0QWxlcnQpOgorICAgICAgICAodHN0X1FXZWJQYWdlOjp1bmxvYWRUZXN0
X2RhdGEpOgorICAgICAgICAodHN0X1FXZWJQYWdlOjp1bmxvYWRUZXN0KToKKwogMjAxMy0wOC0x
MyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEZvbzo6c19pbmZv
IHNob3VsZCBiZSBGb286OmluZm8oKSwgc28gdGhhdCB5b3UgY2FuIGNoYW5nZSBob3cgdGhlIHNf
aW5mbyBpcyBhY3R1YWxseSBsaW5rZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvUVdlYkZyYW1lQWRhcHRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L1FXZWJGcmFtZUFkYXB0ZXIuY3BwCmluZGV4IDYwNTQ4ZWI2YWExZTBlZWI1ZTI3
ZDI0OWIyZDE5NGZlNmZmM2JlNjguLmEzMjg3YzQ5MTVhODZjODhkN2MyYTE1ZWFiMDZhNTYxMjcx
ZWVjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUVdlYkZy
YW1lQWRhcHRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RV2Vi
RnJhbWVBZGFwdGVyLmNwcApAQCAtMTczLDYgKzE3MywxNiBAQCB2b2lkIFFXZWJGcmFtZUFkYXB0
ZXI6OmxvYWQoY29uc3QgUU5ldHdvcmtSZXF1ZXN0JiByZXEsIFFOZXR3b3JrQWNjZXNzTWFuYWdl
cjo6TwogICAgICAgICBwYWdlQWRhcHRlci0+aW5zaWRlT3BlbkNhbGwgPSBmYWxzZTsKIH0KIAor
dm9pZCBRV2ViRnJhbWVBZGFwdGVyOjp1bmxvYWQoKQoreworICAgIC8vIERldGFjaCB0aGUgbWFp
bmZyYW1lJ3MgbG9hZGVyLCB0aGlzIHdpbGwgYWxzbyBzZW5kIG9udW5sb2FkIGV2ZW50LgorICAg
IEZyYW1lTG9hZGVyKiBsb2FkZXIgPSBmcmFtZS0+bG9hZGVyKCk7CisgICAgaWYgKGxvYWRlcikg
eworICAgICAgICBsb2FkZXItPmNsb3NlVVJMKCk7CisgICAgICAgIGxvYWRlci0+c2V0dXBGb3JS
ZXBsYWNlKCk7CisgICAgfQorfQorCiBib29sIFFXZWJGcmFtZUFkYXB0ZXI6Omhhc1ZpZXcoKSBj
b25zdAogewogICAgIHJldHVybiBmcmFtZSAmJiBmcmFtZS0+dmlldygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RV2ViRnJhbWVBZGFwdGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1FXZWJGcmFtZUFkYXB0ZXIuaAppbmRleCA4YzY1
MDA3ZGIyYjQyMzI3ZGE4YWUyMmQ1YTViMDE0Zjc0YmY1MGVlLi45YWQxZTU1ODUyZTI1YTNmZjVi
ZTQwMGQ5NmVlNmJjM2Y2OTFjZjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L1FXZWJGcmFtZUFkYXB0ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L1FXZWJGcmFtZUFkYXB0ZXIuaApAQCAtMTQ2LDYgKzE0Niw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIFFXZWJGcmFtZUFkYXB0ZXIqIGNyZWF0ZUNoaWxkRnJhbWUoUVdlYkZyYW1l
RGF0YSopID0gMDsKIAogICAgIHZvaWQgbG9hZChjb25zdCBRTmV0d29ya1JlcXVlc3QmLCBRTmV0
d29ya0FjY2Vzc01hbmFnZXI6Ok9wZXJhdGlvbiA9IFFOZXR3b3JrQWNjZXNzTWFuYWdlcjo6R2V0
T3BlcmF0aW9uLCBjb25zdCBRQnl0ZUFycmF5JiBib2R5ID0gUUJ5dGVBcnJheSgpKTsKKyAgICB2
b2lkIHVubG9hZCgpOwogICAgIGJvb2wgaGFzVmlldygpIGNvbnN0OwogI2lmIEVOQUJMRShHRVNU
VVJFX0VWRU5UUykKICAgICB2b2lkIGhhbmRsZUdlc3R1cmVFdmVudChRR2VzdHVyZUV2ZW50RmFj
YWRlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dpZGdldEFwaS9xZ3JhcGhpY3N3
ZWJ2aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBpL3FncmFwaGljc3dlYnZpZXcu
Y3BwCmluZGV4IDY5MTM4ZDczZjgyZTIyOTlhZGM2NDI3ODdkOTgwNDZmNjU4YWFmNzEuLjQzYzdl
MTJiN2JiY2NjN2IyMTk0MGYyYjg3OTEzZDkyZWIyODAxM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2lkZ2V0QXBpL3FncmFwaGljc3dlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvV2lkZ2V0QXBpL3FncmFwaGljc3dlYnZpZXcuY3BwCkBAIC00NTMsOSArNDUzLDEwIEBA
IHZvaWQgUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6OmRldGFjaEN1cnJlbnRQYWdlKCkKICAgICAv
LyBpZiB0aGUgcGFnZSB3YXMgY3JlYXRlZCBieSB1cywgd2Ugb3duIGl0IGFuZCBuZWVkIHRvCiAg
ICAgLy8gZGVzdHJveSBpdCBhcyB3ZWxsLgogCi0gICAgaWYgKHBhZ2UtPnBhcmVudCgpID09IHEp
CisgICAgaWYgKHBhZ2UtPnBhcmVudCgpID09IHEpIHsKKyAgICAgICAgcGFnZS0+bWFpbkZyYW1l
KCktPnVubG9hZCgpOwogICAgICAgICBkZWxldGUgcGFnZTsKLSAgICBlbHNlCisgICAgfSBlbHNl
CiAgICAgICAgIHBhZ2UtPmRpc2Nvbm5lY3QocSk7CiAKICAgICBwYWdlID0gMDsKQEAgLTExMzMs
NiArMTEzNCwxNyBAQCB2b2lkIFFHcmFwaGljc1dlYlZpZXc6OmlucHV0TWV0aG9kRXZlbnQoUUlu
cHV0TWV0aG9kRXZlbnQqIGV2KQogICAgICAgICBRR3JhcGhpY3NJdGVtOjppbnB1dE1ldGhvZEV2
ZW50KGV2KTsKIH0KIAorLyohIFxyZWltcAorKi8KK3ZvaWQgUUdyYXBoaWNzV2ViVmlldzo6Y2xv
c2VFdmVudChRQ2xvc2VFdmVudCogZXYpCit7CisgICAgaWYgKGQtPnBhZ2UpCisgICAgICAgIGQt
PnBhZ2UtPmV2ZW50KGV2KTsKKworICAgIGlmICghZXYtPmlzQWNjZXB0ZWQoKSkKKyAgICAgICAg
UUdyYXBoaWNzV2lkZ2V0OjpjbG9zZUV2ZW50KGV2KTsKK30KKwogLyohCiAgICAgXGZuIHZvaWQg
UUdyYXBoaWNzV2ViVmlldzo6c3RhdHVzQmFyTWVzc2FnZShjb25zdCBRU3RyaW5nJiB0ZXh0KQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dpZGdldEFwaS9xZ3JhcGhpY3N3ZWJ2aWV3
LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dpZGdldEFwaS9xZ3JhcGhpY3N3ZWJ2aWV3LmgKaW5kZXgg
YzllNjFmNzVhNzZlMzUzNjg0NWIxYzZmNmFkZWFiMTdjMGIzYWUwMi4uYjhiNmY5N2U1YzdlMDZm
ZDAyYzUwMjFmNTY4ZWMzZjZiOWM0MjRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9X
aWRnZXRBcGkvcWdyYXBoaWNzd2Vidmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0
QXBpL3FncmFwaGljc3dlYnZpZXcuaApAQCAtMTQ5LDYgKzE0OSw4IEBAIHByb3RlY3RlZDoKIAog
ICAgIHZpcnR1YWwgYm9vbCBzY2VuZUV2ZW50KFFFdmVudCopOwogCisgICAgdmlydHVhbCB2b2lk
IGNsb3NlRXZlbnQoUUNsb3NlRXZlbnQqKTsKKwogcHJpdmF0ZToKICAgICBRX1BSSVZBVEVfU0xP
VChkLCB2b2lkIF9xX2RvTG9hZEZpbmlzaGVkKGJvb2wgc3VjY2VzcykpCiAgICAgUV9QUklWQVRF
X1NMT1QoZCwgdm9pZCBfcV9wYWdlRGVzdHJveWVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3F0L1dpZGdldEFwaS9xd2ViZnJhbWUuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XaWRnZXRB
cGkvcXdlYmZyYW1lLmNwcAppbmRleCBmM2U1NjNjYjU4YmNhOTFkMjEzYmZhN2Q1ZTAzNGNjYjA0
ZGEwMzVhLi41OGI5ZTAzNDA4ZTUyYjE2ODMwZDMzNjM3OGI0NTRiMzk0ZjRhODljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dpZGdldEFwaS9xd2ViZnJhbWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvcXQvV2lkZ2V0QXBpL3F3ZWJmcmFtZS5jcHAKQEAgLTQ4Miw2ICs0ODIsMTggQEAg
dm9pZCBRV2ViRnJhbWU6OnNldENvbnRlbnQoY29uc3QgUUJ5dGVBcnJheSAmZGF0YSwgY29uc3Qg
UVN0cmluZyAmbWltZVR5cGUsIGNvbnMKIH0KIAogLyohCisgICAgXGZuIHZvaWQgUVdlYkZyYW1l
Ojp1bmxvYWQoKQorICAgIFRoaXMgd2lsbCB1bmxvYWRzIHRoZSBRV2ViRnJhbWUgYW5kIHNlbmRz
IG9udW5sb2FkIGV2ZW50IHRvIGEgcGFnZSBhc3NvY2lhdGVkIHdpdGggdGhpcworICAgIFFXZWJG
cmFtZS4KKworICAgIFxzYSB0b0h0bWwoKSwgc2V0Q29udGVudCgpLCBsb2FkKCkKKyovCit2b2lk
IFFXZWJGcmFtZTo6dW5sb2FkKCkKK3sKKyAgICBkLT51bmxvYWQoKTsKK30KKworLyohCiAgIFJl
dHVybnMgdGhlIHBhcmVudCBmcmFtZSBvZiB0aGlzIGZyYW1lLCBvciAwIGlmIHRoZSBmcmFtZSBp
cyB0aGUgd2ViIHBhZ2VzCiAgIG1haW4gZnJhbWUuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvV2lkZ2V0QXBpL3F3ZWJmcmFtZS5oIGIvU291cmNlL1dlYktpdC9xdC9XaWRnZXRBcGkv
cXdlYmZyYW1lLmgKaW5kZXggNDgxZDAxOWFlMjExMzE2NTk3ZmVjMzViM2VkZGRjOGQxMmVmYzY1
My4uNTFkNjA0NTEyZDA3ZDlhMTFmNmI1ZDgzNjUxMWYzOTc3ZWJmYTkyYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9xdC9XaWRnZXRBcGkvcXdlYmZyYW1lLmgKKysrIGIvU291cmNlL1dlYktp
dC9xdC9XaWRnZXRBcGkvcXdlYmZyYW1lLmgKQEAgLTEzNCw2ICsxMzQsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBsb2FkKGNvbnN0IFFOZXR3b3JrUmVxdWVzdCAmcmVxdWVzdCwgUU5ldHdvcmtBY2Nl
c3NNYW5hZ2VyOjpPcGVyYXRpb24gb3BlcmF0aW9uID0gUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyOjpH
ZXRPcGVyYXRpb24sIGNvbnN0IFFCeXRlQXJyYXkgJmJvZHkgPSBRQnl0ZUFycmF5KCkpOwogICAg
IHZvaWQgc2V0SHRtbChjb25zdCBRU3RyaW5nICZodG1sLCBjb25zdCBRVXJsICZiYXNlVXJsID0g
UVVybCgpKTsKICAgICB2b2lkIHNldENvbnRlbnQoY29uc3QgUUJ5dGVBcnJheSAmZGF0YSwgY29u
c3QgUVN0cmluZyAmbWltZVR5cGUgPSBRU3RyaW5nKCksIGNvbnN0IFFVcmwgJmJhc2VVcmwgPSBR
VXJsKCkpOworICAgIHZvaWQgdW5sb2FkKCk7CiAKICAgICB2b2lkIGFkZFRvSmF2YVNjcmlwdFdp
bmRvd09iamVjdChjb25zdCBRU3RyaW5nICZuYW1lLCBRT2JqZWN0ICpvYmplY3QsIFZhbHVlT3du
ZXJzaGlwIG93bmVyc2hpcCA9IFF0T3duZXJzaGlwKTsKICAgICBRU3RyaW5nIHRvSHRtbCgpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XaWRnZXRBcGkvcXdlYnBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdC9xdC9XaWRnZXRBcGkvcXdlYnBhZ2UuY3BwCmluZGV4IDBmM2YxNGQz
OWUyNTVmMTA1MmI1ODk5MzIxMWU4MjdiZDFlMWE4MGMuLjIzODhkNGZhZDljNTYzMWViOTlmN2Uy
MGIyZjc4NTExZDlkNmFjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBp
L3F3ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dpZGdldEFwaS9xd2VicGFnZS5j
cHAKQEAgLTI1NzksNiArMjU3OSwxMCBAQCBib29sIFFXZWJQYWdlOjpldmVudChRRXZlbnQgKmV2
KQogICAgICAgICBkLT5keW5hbWljUHJvcGVydHlDaGFuZ2VFdmVudCh0aGlzLCBzdGF0aWNfY2Fz
dDxRRHluYW1pY1Byb3BlcnR5Q2hhbmdlRXZlbnQqPihldikpOwogICAgICAgICBicmVhazsKICNl
bmRpZgorICAgIGNhc2UgUUV2ZW50OjpDbG9zZToKKyAgICAgICAgLy8gc2VuZCB1bmxvYWQgd2hl
biBjbG9zZSgpIGlzIGNhbGxlZC4KKyAgICAgICAgbWFpbkZyYW1lKCktPnVubG9hZCgpOworICAg
ICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gUU9iamVjdDo6ZXZlbnQo
ZXYpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBpL3F3ZWJ2
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2lkZ2V0QXBpL3F3ZWJ2aWV3LmNwcAppbmRleCA5
YmE5NjIxNzhmM2NmNjFhNzRkMTNkZDdkMmRlNWIxOGRhMjI3MGY3Li44ODc3Y2I3ODhlNjU0OTcx
OGZiMmYxZTZiNzFiMDE5OWQxNTc5ZjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dp
ZGdldEFwaS9xd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XaWRnZXRBcGkvcXdl
YnZpZXcuY3BwCkBAIC0yMzIsOSArMjMyLDEwIEBAIHZvaWQgUVdlYlZpZXdQcml2YXRlOjpkZXRh
Y2hDdXJyZW50UGFnZSgpCiAgICAgLy8gaWYgdGhlIHBhZ2Ugd2FzIGNyZWF0ZWQgYnkgdXMsIHdl
IG93biBpdCBhbmQgbmVlZCB0bwogICAgIC8vIGRlc3Ryb3kgaXQgYXMgd2VsbC4KIAotICAgIGlm
IChwYWdlLT5wYXJlbnQoKSA9PSB2aWV3KQorICAgIGlmIChwYWdlLT5wYXJlbnQoKSA9PSB2aWV3
KSB7CisgICAgICAgIHBhZ2UtPm1haW5GcmFtZSgpLT51bmxvYWQoKTsKICAgICAgICAgZGVsZXRl
IHBhZ2U7Ci0gICAgZWxzZQorICAgIH0gZWxzZQogICAgICAgICBwYWdlLT5kaXNjb25uZWN0KHZp
ZXcpOwogCiAgICAgcGFnZSA9IDA7CkBAIC03MjYsOCArNzI3LDEwIEBAIGJvb2wgUVdlYlZpZXc6
OmV2ZW50KFFFdmVudCAqZSkKIAogICAgICAgICAgICAgLy8gQWx3YXlzIHJldHVybiB0cnVlIHNv
IHRoYXQgd2UnbGwgcmVjZWl2ZSBhbHNvIFRvdWNoVXBkYXRlIGFuZCBUb3VjaEVuZCBldmVudHMK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9IGVsc2UgaWYgKGUtPnR5cGUoKSA9
PSBRRXZlbnQ6OkxlYXZlKQorICAgICAgICB9IGVsc2UgaWYgKGUtPnR5cGUoKSA9PSBRRXZlbnQ6
OkxlYXZlCisgICAgICAgICAgICB8fCBlLT50eXBlKCkgPT0gUUV2ZW50OjpDbG9zZSkgewogICAg
ICAgICAgICAgZC0+cGFnZS0+ZXZlbnQoZSk7CisgICAgICAgIH0KICAgICB9CiAKICAgICByZXR1
cm4gUVdpZGdldDo6ZXZlbnQoZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3Rz
L3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdl
YmZyYW1lL3RzdF9xd2ViZnJhbWUuY3BwCmluZGV4IGY4NTIxNDlkNDAzODdiNjQyODg3YTAwZmJl
YzhiMThjNjdkYzBlNjEuLjM4ZDE4NGFkNmM4OTQ0MDM0MTBhM2ZlZjI0MGQ5YjdiMjNjMjkzMjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJh
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYmZyYW1lL3RzdF9xd2ViZnJh
bWUuY3BwCkBAIC02MSw2ICs2MSw3IEBAIHByaXZhdGUgUV9TTE9UUzoKICAgICB2b2lkIGphdmFT
Y3JpcHRXaW5kb3dPYmplY3RDbGVhcmVkKCk7CiAgICAgdm9pZCBqYXZhU2NyaXB0V2luZG93T2Jq
ZWN0Q2xlYXJlZE9uRXZhbHVhdGUoKTsKICAgICB2b2lkIHNldEh0bWwoKTsKKyAgICB2b2lkIHVu
bG9hZCgpOwogICAgIHZvaWQgc2V0SHRtbFdpdGhJbWFnZVJlc291cmNlKCk7CiAgICAgdm9pZCBz
ZXRIdG1sV2l0aFN0eWxlc2hlZXRSZXNvdXJjZSgpOwogICAgIHZvaWQgc2V0SHRtbFdpdGhCYXNl
VVJMKCk7CkBAIC0zOTgsNiArMzk5LDY2IEBAIHZvaWQgdHN0X1FXZWJGcmFtZTo6c2V0SHRtbCgp
CiAgICAgUUNPTVBBUkUoc3B5LmNvdW50KCksIDEpOwogfQogCitjbGFzcyBVbmxvYWRUZXN0UGFn
ZSA6IHB1YmxpYyBRV2ViUGFnZSB7CisgICAgUV9PQkpFQ1QKK3B1YmxpYzoKKyAgICBpbnQgbV9h
bGVydENvdW50OworICAgIFVubG9hZFRlc3RQYWdlKFFPYmplY3QqIHBhcmVudCA9IDApCisgICAg
ICAgIDogUVdlYlBhZ2UocGFyZW50KQorICAgICAgICAsIG1fYWxlcnRDb3VudCgwKQorICAgIHsK
KworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBqYXZhU2NyaXB0QWxlcnQoUVdlYkZyYW1lKiwg
Y29uc3QgUVN0cmluZyYpCisgICAgeworICAgICAgICArK21fYWxlcnRDb3VudDsKKyAgICB9Cit9
OworCit2b2lkIHRzdF9RV2ViRnJhbWU6OnVubG9hZCgpCit7CisgICAgVW5sb2FkVGVzdFBhZ2Uq
IHRlc3RQYWdlID0gbmV3IFVubG9hZFRlc3RQYWdlKCk7CisKKyAgICAvLyBJbnN0YWxsIGRlc3Ry
b3llZCgpIHNpZ25hbCBzcHkgdG8gY2hlY2sgUVdlYkZyYW1lIGlzIGFsd2F5cyB1c2FibGUKKyAg
ICAvLyBldmVuIGFmdGVyIHVubG9hZCgpLgorICAgIFFTaWduYWxTcHkgZGVzdHJveVNweSh0ZXN0
UGFnZS0+bWFpbkZyYW1lKCksIFNJR05BTChkZXN0cm95ZWQoUU9iamVjdCopKSk7CisgICAgUUxh
dGluMVN0cmluZyBodG1sKCJkYXRhOnRleHQvaHRtbCw8aHRtbD48c2NyaXB0PiIKKyAgICAgICAg
IndpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsiCisgICAgICAgICAgICAvLyBJbnN0YWxsIHVu
bG9hZCBldmVudCBoYW5kbGVyIGZvciBhbGwgZnJhbWVzLgorICAgICAgICAgICAgImZvciAodmFy
IGkgPSAwOyBpIDwgd2luZG93LmZyYW1lcy5sZW5ndGg7ICsraSkgeyIKKyAgICAgICAgICAgICAg
ICAid2luZG93LmZyYW1lc1tpXS5vbnVubG9hZCA9IGZ1bmN0aW9uKCkgeyBhbGVydCgnaGVsbG8n
KTsgfTsiCisgICAgICAgICAgICAifSIKKyAgICAgICAgIn07IgorICAgICAgICAvLyBDcmVhdGUg
MyBGcmFtZXMuCisgICAgICAgICI8L3NjcmlwdD48ZnJhbWVzZXQ+PGZyYW1lPjxmcmFtZT48ZnJh
bWU+PC9mcmFtZXNldD4iCisgICAgICAgICI8L2h0bWw+JTEiKTsKKworICAgIGludCB0ZXN0SXRl
cmF0aW9uOworICAgIC8vIEl0ZXJhdGUgb3ZlciBsb29wIG9uIHNhbWUgUVdlYlBhZ2UgaW5zdGFu
Y2UgdG8gZW5zdXJlIGl0IGlzIHVzYWJsZQorICAgIC8vIGFmdGVyIGNhbGxpbmcgUVdlYkZyYW1l
Ojp1bmxvYWQoKS4KKyAgICBmb3IgKHRlc3RJdGVyYXRpb24gPSAwOyB0ZXN0SXRlcmF0aW9uIDwg
MTA7ICsrdGVzdEl0ZXJhdGlvbikgeworICAgICAgICAvLyBMb2FkIHRlc3QgaHRtbC4KKyAgICAg
ICAgdGVzdFBhZ2UtPm1haW5GcmFtZSgpLT5zZXRVcmwoUVVybChRU3RyaW5nKGh0bWwpLmFyZyh0
ZXN0SXRlcmF0aW9uKSkpOworICAgICAgICB3YWl0Rm9yU2lnbmFsKHRlc3RQYWdlLT5tYWluRnJh
bWUoKSwgU0lHTkFMKGxvYWRGaW5pc2hlZChib29sKSkpOworCisgICAgICAgIGNvbnN0IGludCBo
aXN0b3J5Q291bnRCZWZvcmVVbmxvYWQgPSB0ZXN0UGFnZS0+aGlzdG9yeSgpLT5jb3VudCgpOwor
ICAgICAgICAvLyBzZW5kIHVubG9hZCBldmVudC4gICAgICAgIAorICAgICAgICB0ZXN0UGFnZS0+
bWFpbkZyYW1lKCktPnVubG9hZCgpOworICAgICAgICAvLyB1bmxvYWQgc2hvdWxkIGNoYW5nZSB0
aGUgaGlzdG9yeSBjb3VudC4KKyAgICAgICAgUUNPTVBBUkUodGVzdFBhZ2UtPmhpc3RvcnkoKS0+
Y291bnQoKSwgaGlzdG9yeUNvdW50QmVmb3JlVW5sb2FkKTsKKyAgICAgICAgLy8gbWFpbiBmcmFt
ZSBzaG91bGQgbm90IGJlIGRlc3Ryb3llZC4KKyAgICAgICAgUUNPTVBBUkUoZGVzdHJveVNweS5j
b3VudCgpLCAwKTsKKyAgICB9CisKKyAgICAvLyAzIGZyYW1lcyAqIDEwIGl0ZXJhdGlvbnMgPSAz
MCBhbGVydHMgZnJvbSB1bmxvYWQgZXZlbnQuCisgICAgUUNPTVBBUkUodGVzdFBhZ2UtPm1fYWxl
cnRDb3VudCwgdGVzdEl0ZXJhdGlvbiAqIDMpOworICAgIC8vIERlbGV0ZSBRV2ViUGFnZSBpbnN0
YW5jZS4KKyAgICBkZWxldGUgdGVzdFBhZ2U7CisgICAgLy8gQWZ0ZXIgZGVsZXRpb24gb2YgcGFn
ZSBRV2ViRnJhbWUgc2hvdWxkIGJlIGRlbGV0ZWQuCisgICAgUUNPTVBBUkUoZGVzdHJveVNweS5j
b3VudCgpLCAxKTsKK30KKwogdm9pZCB0c3RfUVdlYkZyYW1lOjpzZXRIdG1sV2l0aEltYWdlUmVz
b3VyY2UoKQogewogICAgIC8vIEJ5IGRlZmF1bHQsIG9ubHkgc2VjdXJpdHkgb3JpZ2lucyBvZiBs
b2NhbCBmaWxlcyBjYW4gbG9hZCBsb2NhbCByZXNvdXJjZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHAKaW5kZXggNTNlNjU1NzQ5MmNmYzVj
MjU5NGZiN2VkNTA4NjhmMDdhNTBiZGZiYS4uZGUyYjQyYjVmMWY2ZWY5MTk4NTAxZjIzMzg4ODk0
MThhMGRjMzIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90
c3RfcXdlYnBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0
X3F3ZWJwYWdlLmNwcApAQCAtMTE1LDYgKzExNSw4IEBAIHByaXZhdGUgUV9TTE9UUzoKICAgICB2
b2lkIGNvbnRleHRNZW51UG9wdWxhdGVkT25jZSgpOwogICAgIHZvaWQgYWNjZXB0TmF2aWdhdGlv
blJlcXVlc3QoKTsKICAgICB2b2lkIGRvbWFpblNwZWNpZmljS2V5RXZlbnQoKTsKKyAgICB2b2lk
IHVubG9hZFRlc3RfZGF0YSgpOworICAgIHZvaWQgdW5sb2FkVGVzdCgpOwogICAgIHZvaWQgZ2Vv
bG9jYXRpb25SZXF1ZXN0SlMoKTsKICAgICB2b2lkIGxvYWRGaW5pc2hlZCgpOwogICAgIHZvaWQg
YWN0aW9uU3RhdGVzKCk7CkBAIC0zMzYsNiArMzM4LDg5IEBAIHZvaWQgdHN0X1FXZWJQYWdlOjpk
b21haW5TcGVjaWZpY0tleUV2ZW50KCkKICAgICBRVkVSSUZZKHJlY2VpdmVkS2V5QXJyYXkgPT0g
ZXhwZWN0ZWRSZWNlaXZlZEtleUFycmF5Myk7CiB9CiAKK2NsYXNzIFVubG9hZFBhZ2UgOiBwdWJs
aWMgUVdlYlBhZ2UgeworICAgIFFfT0JKRUNUCitwdWJsaWM6CisgICAgaW50JiBtX2FsZXJ0Q291
bnQ7CisgICAgVW5sb2FkUGFnZShRT2JqZWN0KiBwYXJlbnQsIGludCYgYWxlcnRDb3VudCkKKyAg
ICAgICAgOiBRV2ViUGFnZShwYXJlbnQpCisgICAgICAgICwgbV9hbGVydENvdW50KGFsZXJ0Q291
bnQpCisgICAgeworCisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGphdmFTY3JpcHRBbGVydChR
V2ViRnJhbWUqLCBjb25zdCBRU3RyaW5nJikKKyAgICB7CisgICAgICAgICsrbV9hbGVydENvdW50
OworICAgIH0KK307CisKK3ZvaWQgdHN0X1FXZWJQYWdlOjp1bmxvYWRUZXN0X2RhdGEoKQorewor
ICAgIFFUZXN0OjphZGRDb2x1bW48Ym9vbD4oImlzR3JhcGhpY3NXZWJWaWV3Iik7CisgICAgUVRl
c3Q6OmFkZENvbHVtbjxib29sPigiaXNDbG9zZSIpOworCisgICAgUVRlc3Q6Om5ld1JvdygiZGVs
ZXRlIFFHcmFwaGljc1ZpZXciKSA8PCB0cnVlIDw8IGZhbHNlOworICAgIFFUZXN0OjpuZXdSb3co
ImNsb3NlIFFHcmFwaGljc1ZpZXciKSA8PCB0cnVlIDw8IHRydWU7CisgICAgUVRlc3Q6Om5ld1Jv
dygiZGVsZXRlIFFXZWJWaWV3IikgPDwgZmFsc2UgPDwgZmFsc2U7CisgICAgUVRlc3Q6Om5ld1Jv
dygiY2xvc2UgUVdlYlZpZXciKSA8PCBmYWxzZSA8PCB0cnVlOworfQorCit2b2lkIHRzdF9RV2Vi
UGFnZTo6dW5sb2FkVGVzdCgpCit7CisgICAgUUZFVENIKGJvb2wsIGlzR3JhcGhpY3NXZWJWaWV3
KTsgLy8gVG8gY2hlY2sgUVdlYlZpZXcgb3IgUUdyYXBoaWNzV2ViVmlldy4KKyAgICBRRkVUQ0go
Ym9vbCwgaXNDbG9zZSk7IC8vIFRvIGNoZWNrIGNsb3NlKCkgb3IgZGVsZXRlLgorCisgICAgLy8g
VG8gY2hlY2sgd2hldGhlciBvdXIgb3ZlcnJpZGRlbiBhbGVydCBpcyBjYWxsZWQgb3Igbm90Lgor
ICAgIGludCBhbGVydENvdW50ID0gMDsKKworICAgIFFPYmplY3QqIHZpZXc7CisgICAgUVdlYlBh
Z2UqIHRlc3RQYWdlOworICAgIGlmIChpc0dyYXBoaWNzV2ViVmlldykgeworICAgICAgICBRR3Jh
cGhpY3NXZWJWaWV3KiB3ZWJWaWV3ID0gbmV3IFFHcmFwaGljc1dlYlZpZXcoKTsKKyAgICAgICAg
dGVzdFBhZ2UgPSBuZXcgVW5sb2FkUGFnZSh3ZWJWaWV3LCBhbGVydENvdW50KTsKKyAgICAgICAg
d2ViVmlldy0+c2V0UGFnZSh0ZXN0UGFnZSk7CisgICAgICAgIHZpZXcgPSB3ZWJWaWV3OworICAg
IH0gZWxzZSB7CisgICAgICAgIFFXZWJWaWV3KiB3ZWJWaWV3ID0gbmV3IFFXZWJWaWV3KCk7Cisg
ICAgICAgIHRlc3RQYWdlID0gbmV3IFVubG9hZFBhZ2Uod2ViVmlldywgYWxlcnRDb3VudCk7Cisg
ICAgICAgIHdlYlZpZXctPnNldFBhZ2UodGVzdFBhZ2UpOworICAgICAgICB2aWV3ID0gd2ViVmll
dzsKKyAgICB9CisKKyAgICBRTGF0aW4xU3RyaW5nIGh0bWwoIjxodG1sPjxzY3JpcHQ+IgorICAg
ICAgICAid2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeyIKKyAgICAgICAgICAgIC8vIEluc3Rh
bGwgdW5sb2FkIGV2ZW50IGhhbmRsZXIgZm9yIGFsbCBmcmFtZXMuCisgICAgICAgICAgICAiZm9y
ICh2YXIgaSA9IDA7IGkgPCB3aW5kb3cuZnJhbWVzLmxlbmd0aDsgKytpKSB7IgorICAgICAgICAg
ICAgICAgICJ3aW5kb3cuZnJhbWVzW2ldLm9udW5sb2FkID0gZnVuY3Rpb24oKSB7IGFsZXJ0KCdo
ZWxsbycpOyB9OyIKKyAgICAgICAgICAgICJ9IgorICAgICAgICAifTsiCisgICAgICAgIC8vIENy
ZWF0ZSAzIEZyYW1lcy4KKyAgICAgICAgIjwvc2NyaXB0PjxmcmFtZXNldD48ZnJhbWU+PGZyYW1l
PjxmcmFtZT48L2ZyYW1lc2V0PiIKKyAgICAgICAgIjwvaHRtbD4iKTsKKworICAgIHRlc3RQYWdl
LT5tYWluRnJhbWUoKS0+c2V0SHRtbChodG1sKTsKKworICAgIGlmIChpc0Nsb3NlKSB7CisgICAg
ICAgIC8vIGNsb3NpbmcgYSBRR3JhcGhpY3NXZWJWaWV3IG9yIFFXZWJWaWV3c2hvdWxkIGNhbGwg
dW5sb2FkLgorICAgICAgICBpZiAoUUdyYXBoaWNzV2ViVmlldyogd2ViVmlldyA9IHFvYmplY3Rf
Y2FzdDxRR3JhcGhpY3NXZWJWaWV3Kj4odmlldykpCisgICAgICAgICAgICB3ZWJWaWV3LT5jbG9z
ZSgpOworICAgICAgICBlbHNlIGlmIChRV2ViVmlldyogd2ViVmlldyA9IHFvYmplY3RfY2FzdDxR
V2ViVmlldyo+KHZpZXcpKQorICAgICAgICAgICAgd2ViVmlldy0+Y2xvc2UoKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgUVZFUklGWTIoZmFsc2UsICJVbmtub3duIHZpZXcgdHlwZSIpOwor
ICAgICAgICAvLyAzIGZyYW1lcywgc28gMyBhbGVydHMgZnJvbSB1bmxvYWQgZXZlbnQuCisgICAg
ICAgIFFDT01QQVJFKGFsZXJ0Q291bnQsIDMpOworICAgICAgICAvLyBEb25lIHdpdGggdGhlIHZp
ZXcsIGRlbGV0ZSBpdC4KKyAgICAgICAgZGVsZXRlIHZpZXc7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgLy8gZGVsZXRlIHNob3VsZCBjYWxsIHVubG9hZC4KKyAgICAgICAgZGVsZXRlIHZpZXc7Cisg
ICAgICAgIC8vIDMgZnJhbWVzLCBzbyAzIGFsZXJ0cyBmcm9tIHVubG9hZCBldmVudC4KKyAgICAg
ICAgUUNPTVBBUkUoYWxlcnRDb3VudCwgMyk7CisgICAgfQorfQorCiBjbGFzcyBKU1Rlc3RQYWdl
IDogcHVibGljIFFXZWJQYWdlCiB7CiBRX09CSkVDVAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>