<?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>208365</bug_id>
          
          <creation_ts>2020-02-27 18:39:16 -0800</creation_ts>
          <short_desc>UIProcess crash after using _prepareForMoveToWindow, then deallocating the WKWebView before moving to the window</short_desc>
          <delta_ts>2020-03-06 10:39:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1623842</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-02-27 18:39:16 -0800</bug_when>
    <thetext>UIProcess crash after using _prepareForMoveToWindow, then deallocating the WKWebView before moving to the window</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623843</commentid>
    <comment_count>1</comment_count>
      <attachid>391954</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-02-27 18:39:35 -0800</bug_when>
    <thetext>Created attachment 391954
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623869</commentid>
    <comment_count>2</comment_count>
      <attachid>391954</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-02-27 21:04:17 -0800</bug_when>
    <thetext>Comment on attachment 391954
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:204
&gt; +    __weak NSWindow *_observingWindow;

Is this ARC code?  Does __weak do anything here?
Could you use WeakObjCPtr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623876</commentid>
    <comment_count>3</comment_count>
      <attachid>391954</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-02-27 21:31:54 -0800</bug_when>
    <thetext>Comment on attachment 391954
Patch

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

&gt;&gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:204
&gt;&gt; +    __weak NSWindow *_observingWindow;
&gt; 
&gt; Is this ARC code?  Does __weak do anything here?
&gt; Could you use WeakObjCPtr?

__weak works AS IF BY MAGIC. (Or really because we have CLANG_ENABLE_OBJC_WEAK on).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623880</commentid>
    <comment_count>4</comment_count>
      <attachid>391954</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-27 22:21:26 -0800</bug_when>
    <thetext>Comment on attachment 391954
Patch

Clearing flags on attachment: 391954

Committed r257618: &lt;https://trac.webkit.org/changeset/257618&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623881</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-27 22:21:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623882</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-27 22:22:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/59877296&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624421</commentid>
    <comment_count>7</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-03-01 15:36:09 -0800</bug_when>
    <thetext>Reverted r257618 for reason:

This allegedly causes Safari to crash when closing a window (see rdar://problem/59922725).

Committed r257694: &lt;https://trac.webkit.org/changeset/257694&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625073</commentid>
    <comment_count>8</comment_count>
      <attachid>392281</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-03-03 09:05:59 -0800</bug_when>
    <thetext>Created attachment 392281
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625365</commentid>
    <comment_count>9</comment_count>
      <attachid>392362</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-03-03 19:21:36 -0800</bug_when>
    <thetext>Created attachment 392362
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625367</commentid>
    <comment_count>10</comment_count>
      <attachid>392362</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-03-03 19:30:14 -0800</bug_when>
    <thetext>Comment on attachment 392362
Patch

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

&gt; Tools/ChangeLog:9
&gt; +        * TestWebKitAPI/Tests/WebKitCocoa/PrepareForMoveToWindow.mm:

Is it possible to write a test for the window-close case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625414</commentid>
    <comment_count>11</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-03-03 22:24:15 -0800</bug_when>
    <thetext>(In reply to Tim Horton from comment #10)
&gt; Comment on attachment 392362 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=392362&amp;action=review
&gt; 
&gt; &gt; Tools/ChangeLog:9
&gt; &gt; +        * TestWebKitAPI/Tests/WebKitCocoa/PrepareForMoveToWindow.mm:
&gt; 
&gt; Is it possible to write a test for the window-close case?

By window-close case, you mean WKWebView.PrepareForMoveToWindowThenWindowDeallocBeforeMoving but removing the autoreleasepool? If window is closed but not released, looks like it does not cause trouble to our current code except may receive notifications sent from other windows?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625418</commentid>
    <comment_count>12</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-03-03 22:35:48 -0800</bug_when>
    <thetext>(In reply to Sihui Liu from comment #11)
&gt; (In reply to Tim Horton from comment #10)
&gt; &gt; Comment on attachment 392362 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=392362&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Tools/ChangeLog:9
&gt; &gt; &gt; +        * TestWebKitAPI/Tests/WebKitCocoa/PrepareForMoveToWindow.mm:
&gt; &gt; 
&gt; &gt; Is it possible to write a test for the window-close case?
&gt; 
&gt; By window-close case, you mean
&gt; WKWebView.PrepareForMoveToWindowThenWindowDeallocBeforeMoving but removing
&gt; the autoreleasepool? If window is closed but not released, looks like it
&gt; does not cause trouble to our current code except may receive notifications
&gt; sent from other windows?

I mean &quot;a test that crashes with my patch and not with yours&quot;, I&apos;m not sure what exactly is required to make that the case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625419</commentid>
    <comment_count>13</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-03-03 22:36:04 -0800</bug_when>
    <thetext>Also, did you want to set r??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625541</commentid>
    <comment_count>14</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-03-04 09:03:10 -0800</bug_when>
    <thetext>(In reply to Tim Horton from comment #12)
&gt; (In reply to Sihui Liu from comment #11)
&gt; &gt; (In reply to Tim Horton from comment #10)
&gt; &gt; &gt; Comment on attachment 392362 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=392362&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Tools/ChangeLog:9
&gt; &gt; &gt; &gt; +        * TestWebKitAPI/Tests/WebKitCocoa/PrepareForMoveToWindow.mm:
&gt; &gt; &gt; 
&gt; &gt; &gt; Is it possible to write a test for the window-close case?
&gt; &gt; 
&gt; &gt; By window-close case, you mean
&gt; &gt; WKWebView.PrepareForMoveToWindowThenWindowDeallocBeforeMoving but removing
&gt; &gt; the autoreleasepool? If window is closed but not released, looks like it
&gt; &gt; does not cause trouble to our current code except may receive notifications
&gt; &gt; sent from other windows?
&gt; 
&gt; I mean &quot;a test that crashes with my patch and not with yours&quot;, I&apos;m not sure
&gt; what exactly is required to make that the case.

WKWebView.PrepareForMoveToWindowThenViewDeallocBeforeMoving is based on your test. WKWebView.PrepareForMoveToWindowThenWindowDeallocBeforeMoving is the test case that would crash with your patch. 
Seems we need another tweak though. Will add a third test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625556</commentid>
    <comment_count>15</comment_count>
      <attachid>392426</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-03-04 09:33:10 -0800</bug_when>
    <thetext>Created attachment 392426
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625811</commentid>
    <comment_count>16</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-03-04 15:28:25 -0800</bug_when>
    <thetext>(In reply to Sihui Liu from comment #15)
&gt; Created attachment 392426 [details]
&gt; Patch

From the API test failure, looks like there can be a ref cycle if we keep strong ref of window in WKWindowVisibilityObserver. 

The observer does not know state of window being observed, and we have to remove observers before window deallocs.

Either we ask the client of prepareForMoveToWindow to cancel prepareForMoveToWindow/close the target window properly before window deallocs, or we don&apos;t set observer in viewWillMoveToWindow for window to move to.

Any idea, Tim?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626407</commentid>
    <comment_count>17</comment_count>
      <attachid>392426</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-03-05 17:03:06 -0800</bug_when>
    <thetext>Comment on attachment 392426
Patch

As Sihui explained in person, the API test failure indicates a retain cycle -- the cycle happens when you move to the window.

Tim and Sihui and I think this solution might work:

WebViewImpl::m_targetWindowForMovePreparation becomes a RetainPtr

	WebViewImpl::prepareForMoveToWindow does not clear m_targetWindowForMovePreparation after calling completion handler

	WebViewImpl::viewWillMoveToWindow: copy to WebViewImpl::viewWillMoveToWindowImpl

	WebViewImpl::viewWillMoveToWindow: calls viewWillMoveToWindowImpl and then clear m_targetWindowForMovePreparation

	WebViewImpl::viewDidMoveToWindow: copy to WebViewImpl::viewDidMoveToWindowImpl

	WebViewImpl::viewDidMoveToWindow: call WebViewImpl::viewDidMoveToWindowImpl

	WebViewImpl::prepareForMoveToWindow: call WebViewImpl::viewWillMoveToWindowImpl &amp; WebViewImpl::viewDidMoveToWindowImpl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626505</commentid>
    <comment_count>18</comment_count>
      <attachid>392675</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-03-05 21:43:37 -0800</bug_when>
    <thetext>Created attachment 392675
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626715</commentid>
    <comment_count>19</comment_count>
      <attachid>392675</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-03-06 09:56:33 -0800</bug_when>
    <thetext>Comment on attachment 392675
Patch

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

Looks right to me, and tests pass. Yay! I think this could use a round of style fixup before landing.

&gt; Source/WebKit/ChangeLog:10
&gt; +        not actually moves. Make WebView hold strong reference to the target window so it knows to stop observing at

does not actually move.

&gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:2043
&gt; +        return m_targetWindowForMovePreparation.get().backingScaleFactor;

m_targetWindowForMovePreparation-&gt;backingScaleFactor

&gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:2337
&gt; +            m_colorSpace = m_targetWindowForMovePreparation.get().colorSpace;

m_targetWindowForMovePreparation-&gt;colorSpace

&gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:2430
&gt;      viewDidMoveToWindow();

Should this be viewDidMoveToWindowImpl? Or maybe you discovered that we only need that treatment for viewWillMoveToWindow?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626719</commentid>
    <comment_count>20</comment_count>
      <attachid>392675</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-03-06 09:59:59 -0800</bug_when>
    <thetext>Comment on attachment 392675
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.h:301
&gt; +    void viewWillMoveToWindowImpl(NSWindow *);

Can&apos;t this hide in private-land?

&gt;&gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:2043
&gt;&gt; +        return m_targetWindowForMovePreparation.get().backingScaleFactor;
&gt; 
&gt; m_targetWindowForMovePreparation-&gt;backingScaleFactor

Actually [m_targetWindowForMovePreparation backingScaleFactor]

&gt;&gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:2337
&gt;&gt; +            m_colorSpace = m_targetWindowForMovePreparation.get().colorSpace;
&gt; 
&gt; m_targetWindowForMovePreparation-&gt;colorSpace

see above</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626724</commentid>
    <comment_count>21</comment_count>
      <attachid>392675</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-03-06 10:18:49 -0800</bug_when>
    <thetext>Comment on attachment 392675
Patch

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

&gt;&gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.h:301
&gt;&gt; +    void viewWillMoveToWindowImpl(NSWindow *);
&gt; 
&gt; Can&apos;t this hide in private-land?

It can!

&gt;&gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:2430
&gt;&gt;      viewDidMoveToWindow();
&gt; 
&gt; Should this be viewDidMoveToWindowImpl? Or maybe you discovered that we only need that treatment for viewWillMoveToWindow?

Yes, there is nothing different about viewDidMoveToWindow in preparation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626725</commentid>
    <comment_count>22</comment_count>
      <attachid>392739</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2020-03-06 10:19:11 -0800</bug_when>
    <thetext>Created attachment 392739
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626738</commentid>
    <comment_count>23</comment_count>
      <attachid>392739</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-06 10:39:20 -0800</bug_when>
    <thetext>Comment on attachment 392739
Patch for landing

Clearing flags on attachment: 392739

Committed r258009: &lt;https://trac.webkit.org/changeset/258009&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626739</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-06 10:39:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391954</attachid>
            <date>2020-02-27 18:39:35 -0800</date>
            <delta_ts>2020-03-03 09:05:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208365-20200227183935.patch</filename>
            <type>text/plain</type>
            <size>5996</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NjA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU5ZGNkYTY4YWVmMGFmZGEw
OWE0ZmQ3Y2QwMDdmMGZhMDY5MjA0ZjkuLmM0N2Y2MmRlZGZmNWUxNTYxODYyY2ZkOWU2YTZkYjNj
ZTMxNTk5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjAtMDItMjcgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgVUlQcm9jZXNzIGNyYXNo
IGFmdGVyIHVzaW5nIF9wcmVwYXJlRm9yTW92ZVRvV2luZG93LCB0aGVuIGRlYWxsb2NhdGluZyB0
aGUgV0tXZWJWaWV3IGJlZm9yZSBtb3ZpbmcgdG8gdGhlIHdpbmRvdworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4MzY1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3IHRlc3Q6IFdLV2ViVmlldy5QcmVw
YXJlRm9yTW92ZVRvV2luZG93Q3Jhc2hBZnRlck5vdE1vdmluZ1RvV2luZG93CisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgICgtW1dLV2luZG93Vmlz
aWJpbGl0eU9ic2VydmVyIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5
T2JzZXJ2ZXIgc2V0V2luZG93VG9PYnNlcnZlOl0pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6dmlld1dpbGxNb3ZlVG9XaW5kb3cpOgorICAgICAgICBUd28gc21hbGwgY2hhbmdlcyB0
byBtYWtlIFdLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHNhZmVyIHRvIHVzZSwgd2hpY2gKKyAg
ICAgICAgZml4IHRoZSBhZm9yZW1lbnRpb25lZCBidWc6CisKKyAgICAgICAgLSBJbnN0ZWFkIG9m
IGV4cG9zaW5nIHN0YXJ0T2JzZXJ2aW5nL3N0b3BPYnNlcnZpbmcgYW5kIG1ha2luZyBjbGllbnRz
CisgICAgICAgIGJlIGNhcmVmdWwgYWJvdXQgcGFpcmluZyB0aGVtLCBhbmQgcmVtZW1iZXJpbmcg
d2hpY2ggd2luZG93IHRvIHN0b3BPYnNlcnZpbmcsCisgICAgICAgIGp1c3QgYWRkICJzZXRXaW5k
b3dUb09ic2VydmUiLCBhbmQga2VlcCB0cmFjayAod2Vha2x5KSBvZiB0aGUgY3VycmVudAorICAg
ICAgICBOU1dpbmRvdyBiZWluZyBvYnNlcnZlZC4gVGhpcyBhdm9pZHMgZG91YmxlLWFkZGluZyBv
YnNlcnZlcnMuCisKKyAgICAgICAgLSBBbHdheXMgc3RvcE9ic2VydmluZyB3aGVuIFdLV2luZG93
VmlzaWJpbGl0eU9ic2VydmVyIGlzIGRlYWxsb2NhdGVkLgorICAgICAgICBJbiB0aGUgIm5vcm1h
bCIgY2FzZSwgV0tXZWJWaWV3IHdpbGwgYWx3YXlzIGJlIHJlbW92ZWQgZnJvbSB0aGUgdmlldwor
ICAgICAgICBoaWVyYXJjaHkgYmVmb3JlIGl0IGlzIGRlYWxsb2NhdGVkIChhbmQgdGh1cyBiZWZv
cmUgdGhlCisgICAgICAgIFdLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIGlzIGRlYWxsb2NhdGVk
KSwgYmVjYXVzZSBvdGhlcndpc2UgaXRzIHN1cGVydmlldworICAgICAgICBob2xkcyBhIHJlZmVy
ZW5jZSB0byBpdC4gQnV0IGluIHRoZSBfcHJlcGFyZUZvck1vdmVUb1dpbmRvdyBjYXNlLCB3ZSBk
bworICAgICAgICBub3QgaGF2ZSB0aGlzIGd1YXJhbnRlZSwgYW5kIGNhbiBlbmQgdXAgZGVhbGxv
Y2F0aW5nIHRoZSBXS1dlYlZpZXcgd2l0aG91dAorICAgICAgICBnZXR0aW5nIGEgd2lsbE1vdmVU
b1dpbmRvdzpuaWwuIE1ha2Ugc3VyZSB0byBjbGVhbiB1cCB0aGUgb2JzZXJ2ZXJzIGluCisgICAg
ICAgIHRoYXQgY2FzZSwgaWYgdGhlIHdpbmRvdyBpcyBzdGlsbCBhcm91bmQsIG90aGVyd2lzZSB3
aGVuIE5TV2luZG93IHNlbmRzCisgICAgICAgIG5vdGlmaWNhdGlvbnMsIGl0IHdpbGwgdHJ5IHRv
IG1lc3NhZ2UgYSBkZWFsbG9jYXRlZCBXS1dlYlZpZXcuCisKIDIwMjAtMDItMjcgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQg
SW1hZ2VCdWZmZXIgc2hhcmVhYmxlIGJhY2tlbmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDlmMTY3YTY2MjAzOGRiM2NjNTQzOTkyMTA3ZmUx
MDc5MGMwOWRiMTUuLjg3YjQ0NDNlOWYwNDYxMzMyYjc4MGI0NjRkMDAzMmI4M2MyZTk4ZDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0yMDEs
NiArMjAxLDcgQEAgQGludGVyZmFjZSBXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciA6IE5TT2Jq
ZWN0IHsKICAgICBXZWJLaXQ6OldlYlZpZXdJbXBsICpfaW1wbDsKIAogICAgIEJPT0wgX2RpZFJl
Z2lzdGVyRm9yTG9va3VwUG9wb3ZlckNsb3NlTm90aWZpY2F0aW9uczsKKyAgICBfX3dlYWsgTlNX
aW5kb3cgKl9vYnNlcnZpbmdXaW5kb3c7CiB9CiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFZp
ZXc6KE5TVmlldyAqKXZpZXcgaW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpaW1wbDsKQEAgLTIz
Nyw2ICsyMzgsOCBAQCAtICh2b2lkKWRlYWxsb2MKICAgICBOU05vdGlmaWNhdGlvbkNlbnRlciAq
d29ya3NwYWNlTm90aWZpY2F0aW9uQ2VudGVyID0gW1tOU1dvcmtzcGFjZSBzaGFyZWRXb3Jrc3Bh
Y2VdIG5vdGlmaWNhdGlvbkNlbnRlcl07CiAgICAgW3dvcmtzcGFjZU5vdGlmaWNhdGlvbkNlbnRl
ciByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXb3Jrc3BhY2VBY3RpdmVTcGFjZURpZENoYW5n
ZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKIAorICAgIFtzZWxmIHNldFdpbmRvd1RvT2JzZXJ2
ZTpuaWxdOworCiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCkBAIC0yOTksNiArMzAyLDE0IEBA
IC0gKHZvaWQpc3RvcE9ic2VydmluZzooTlNXaW5kb3cgKil3aW5kb3cKICAgICBbd2luZG93IHJl
bW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAInRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50
IiBjb250ZXh0OmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dF07CiB9CiAKKy0gKHZvaWQpc2V0V2lu
ZG93VG9PYnNlcnZlOihOU1dpbmRvdyAqKXdpbmRvdworeworICAgIGlmIChfb2JzZXJ2aW5nV2lu
ZG93KQorICAgICAgICBbc2VsZiBzdG9wT2JzZXJ2aW5nOl9vYnNlcnZpbmdXaW5kb3ddOworICAg
IF9vYnNlcnZpbmdXaW5kb3cgPSB3aW5kb3c7CisgICAgW3NlbGYgc3RhcnRPYnNlcnZpbmc6d2lu
ZG93XTsKK30KKwogLSAodm9pZClzdGFydE9ic2VydmluZ0ZvbnRQYW5lbAogewogICAgIFtbTlNG
b250UGFuZWwgc2hhcmVkRm9udFBhbmVsXSBhZGRPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJ2
aXNpYmxlIiBvcHRpb25zOjAgY29udGV4dDprZXlWYWx1ZU9ic2VydmluZ0NvbnRleHRdOwpAQCAt
MjIwOSw5ICsyMjIwLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dmlld1dpbGxNb3ZlVG9XaW5kb3co
TlNXaW5kb3cgKndpbmRvdykKIAogICAgIGNsZWFyQWxsRWRpdENvbW1hbmRzKCk7CiAKLSAgICBO
U1dpbmRvdyAqc3RvcE9ic2VydmluZ1dpbmRvdyA9IG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBh
cmF0aW9uID8gbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gOiBbbV92aWV3IHdpbmRv
d107Ci0gICAgW21fd2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0b3BPYnNlcnZpbmc6c3RvcE9i
c2VydmluZ1dpbmRvd107Ci0gICAgW21fd2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0YXJ0T2Jz
ZXJ2aW5nOndpbmRvd107CisgICAgW21fd2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHNldFdpbmRv
d1RvT2JzZXJ2ZTp3aW5kb3ddOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRv
V2luZG93KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCAxMWJiNDliZDlhMDI3Y2UwMjQ1NDM0ZDgyMzM1MjI3NTI0NTUyNzVmLi4wYmMxYWEyODFl
M2I0NGVmMzQ0MzE3OWEwNGE4NmEzNmI5NzQ1Y2RmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDItMjcgIFRp
bSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgVUlQcm9jZXNz
IGNyYXNoIGFmdGVyIHVzaW5nIF9wcmVwYXJlRm9yTW92ZVRvV2luZG93LCB0aGVuIGRlYWxsb2Nh
dGluZyB0aGUgV0tXZWJWaWV3IGJlZm9yZSBtb3ZpbmcgdG8gdGhlIHdpbmRvdworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4MzY1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1ByZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW06CisgICAgICAgIChURVNU
KToKKyAgICAgICAgQWRkIGEgdGVzdCEgSXQgd2FzIGEgMTAwJSByZXBybyBjcmFzaCBiZWZvcmUg
dGhpcyBjaGFuZ2UuCisKIDIwMjAtMDItMjcgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBw
bGUuY29tPgogCiAgICAgICAgIHJ1bi1qYXZhc2NyaXB0Y29yZS10ZXN0czogTWFrZSB1cGxvYWQg
Zm9ybWF0IHZhbGlkCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1ByZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1ByZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW0KaW5kZXggZjEwZGQzODFl
NTQ4NGI3NTM1Y2U4ZmU5NTJhMzY0Mzg5OWM1ODZiYi4uNzM5OWQ2NjA1ZTI5NmJhNjFkOTQ5Zjk3
NTU5MTYzNTRiMzQzN2MyNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9QcmVwYXJlRm9yTW92ZVRvV2luZG93Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlcGFyZUZvck1vdmVUb1dpbmRvdy5tbQpAQCAtNzYs
NCArNzYsMjUgQEAgVEVTVChXS1dlYlZpZXcsIFByZXBhcmVGb3JNb3ZlVG9XaW5kb3dUaGVuQ2xv
c2UpCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOwogfQogCitURVNUKFdL
V2ViVmlldywgUHJlcGFyZUZvck1vdmVUb1dpbmRvd0NyYXNoQWZ0ZXJOb3RNb3ZpbmdUb1dpbmRv
dykKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0
XSk7CisgICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cg
YWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU0Jv
cmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpO
T10pOworCisgICAgW3dlYlZpZXcgX3ByZXBhcmVGb3JNb3ZlVG9XaW5kb3c6d2luZG93LmdldCgp
IGNvbXBsZXRpb25IYW5kbGVyOl57IH1dOworCisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hf
Z2V0X21haW5fcXVldWUoKSwgXnsKKyAgICAgICAgW3dlYlZpZXcgX3ByZXBhcmVGb3JNb3ZlVG9X
aW5kb3c6d2luZG93LmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl57IH1dOworCisgICAgICAgIGRp
c3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CisgICAgICAgICAgICBb
d2luZG93IHNldEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMTAsIDEwKSBkaXNwbGF5OllFU107Cisg
ICAgICAgICAgICBpc0RvbmUgPSB0cnVlOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIHdl
YlZpZXcgPSBuaWw7CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7Cit9
CisKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392281</attachid>
            <date>2020-03-03 09:05:59 -0800</date>
            <delta_ts>2020-03-03 19:21:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208365-20200303090558.patch</filename>
            <type>text/plain</type>
            <size>6620</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ5NGVjNDAzMGI1YjJkMjA2
MjQ4ZGVkODI2ZTI0MzEzMjNkMzM1MTIuLjZiYjU3MDY0OWUwZjYwNzQ5NzE3NmM1OThmMDYwOWU3
NmY3Mzc2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjAtMDMtMDMgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgVUlQcm9jZXNzIGNyYXNoIGFmdGVy
IHVzaW5nIF9wcmVwYXJlRm9yTW92ZVRvV2luZG93LCB0aGVuIGRlYWxsb2NhdGluZyB0aGUgV0tX
ZWJWaWV3IGJlZm9yZSBtb3ZpbmcgdG8gdGhlIHdpbmRvdworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4MzY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81OTg3NzI5Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBOZXcgdGVzdDogV0tXZWJWaWV3LlByZXBhcmVGb3JNb3ZlVG9XaW5kb3dDcmFzaEFmdGVy
Tm90TW92aW5nVG9XaW5kb3cKKworICAgICAgICBXaGVuIFdlYlZpZXcgaXMgcHJlcGFyZWQgdG8g
bW92ZWQgdG8gd2luZG93IGJ1dCBoYXMgbm90IGJlZW4gbW92ZWQsIG1fdGFyZ2V0V2luZG93Rm9y
TW92ZVByZXBhcmF0aW9uIG1heSBiZSAKKyAgICAgICAgY2xlYXJlZCB3aGVuIG1fdmlldy53aW5k
b3cgaXMgbm90IHNldC4gRHVyaW5nIHRoaXMgdGltZSwgV2ViVmlldyBoYXMgbm8gaW5mb3JtYXRp
b24gYWJvdXQgaXRzIHdpbmRvdywgYnV0IGl0IAorICAgICAgICBhbHJlYWR5IHN0YXJ0cyBvYnNl
cnZpbmcgd2luZG93IHRoYXQgaXQgaXMgYWJvdXQgdG8gbW92ZSB0by4KKworICAgICAgICBUbyBz
b2x2ZSB0aGlzIHByb2JsZW0sIGFkZCBhbm90aGVyIHBhcmFtZXRlciBtX3RhcmdldFdpbmRvd0Fm
dGVyTW92ZVByZXBhcmF0aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkQ2hhbmdlU2NyZWVuKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZpZXdXaWxsTW92ZVRvV2luZG93KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNvbG9yU3BhY2UpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6cHJlcGFyZUZvck1vdmVUb1dpbmRvdyk6CisKIDIwMjAtMDMtMDIgIEph
Y29iIFVwaG9mZiAgPGphY29iX3VwaG9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjI1NzY4Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5oCmluZGV4IDZlZjU3YzFjNGY1YWYxY2U0M2ZmMjZjZDIzNWFjZmQ4OTliZDFl
MzYuLmNiMTNiZjkwMzc4OGYxOGNkYWYxYjU0MThmNzBkNzlkODkyODA4MzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtNzMzLDYgKzczMyw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZERlZmVyVmlld0luV2luZG93Q2hhbmdlcyB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX3ZpZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVkIHsgZmFsc2Ug
fTsKICAgICBOU1dpbmRvdyAqbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24geyBudWxs
cHRyIH07CisgICAgTlNXaW5kb3cgKm1fdGFyZ2V0V2luZG93QWZ0ZXJNb3ZlUHJlcGFyYXRpb24g
eyBudWxscHRyIH07CiAKICAgICBpZCBtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciB7IG51bGxw
dHIgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpp
bmRleCA5ZjE2N2E2NjIwMzhkYjNjYzU0Mzk5MjEwN2ZlMTA3OTBjMDlkYjE1Li5mZGQzMzU5NmE2
N2M1ODcwOTI2MGYxMTg1NmY1ZGRlZjQ4YjVjNGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMjAzOCw2ICsyMDM4LDggQEAgZmxvYXQgV2Vi
Vmlld0ltcGw6OmludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKICAgICAgICAgcmV0
dXJuIG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uLmJhY2tpbmdTY2FsZUZhY3RvcjsK
ICAgICBpZiAoTlNXaW5kb3cgKndpbmRvdyA9IFttX3ZpZXcgd2luZG93XSkKICAgICAgICAgcmV0
dXJuIHdpbmRvdy5iYWNraW5nU2NhbGVGYWN0b3I7CisgICAgaWYgKG1fdGFyZ2V0V2luZG93QWZ0
ZXJNb3ZlUHJlcGFyYXRpb24pCisgICAgICAgIHJldHVybiBtX3RhcmdldFdpbmRvd0FmdGVyTW92
ZVByZXBhcmF0aW9uLmJhY2tpbmdTY2FsZUZhY3RvcjsKICAgICByZXR1cm4gW05TU2NyZWVuIG1h
aW5TY3JlZW5dLmJhY2tpbmdTY2FsZUZhY3RvcjsKIH0KIApAQCAtMjEwNyw2ICsyMTA5LDggQEAg
dm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXMoQ0dGbG9h
dCBvbGRCYWNraW5nU2NhbGVGYWN0b3IKIHZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZENoYW5n
ZVNjcmVlbigpCiB7CiAgICAgTlNXaW5kb3cgKndpbmRvdyA9IG1fdGFyZ2V0V2luZG93Rm9yTW92
ZVByZXBhcmF0aW9uID8gbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gOiBbbV92aWV3
IHdpbmRvd107CisgICAgaWYgKCF3aW5kb3cpCisgICAgICAgIHdpbmRvdyA9IG1fdGFyZ2V0V2lu
ZG93QWZ0ZXJNb3ZlUHJlcGFyYXRpb247CiAgICAgbV9wYWdlLT53aW5kb3dTY3JlZW5EaWRDaGFu
Z2UoW1tbW3dpbmRvdyBzY3JlZW5dIGRldmljZURlc2NyaXB0aW9uXSBvYmplY3RGb3JLZXk6QCJO
U1NjcmVlbk51bWJlciJdIGludFZhbHVlXSk7CiB9CiAKQEAgLTIyMTAsNiArMjIxNCwxMCBAQCB2
b2lkIFdlYlZpZXdJbXBsOjp2aWV3V2lsbE1vdmVUb1dpbmRvdyhOU1dpbmRvdyAqd2luZG93KQog
ICAgIGNsZWFyQWxsRWRpdENvbW1hbmRzKCk7CiAKICAgICBOU1dpbmRvdyAqc3RvcE9ic2Vydmlu
Z1dpbmRvdyA9IG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uID8gbV90YXJnZXRXaW5k
b3dGb3JNb3ZlUHJlcGFyYXRpb24gOiBbbV92aWV3IHdpbmRvd107CisgICAgaWYgKCFzdG9wT2Jz
ZXJ2aW5nV2luZG93KSB7CisgICAgICAgIHN0b3BPYnNlcnZpbmdXaW5kb3cgPSBtX3RhcmdldFdp
bmRvd0FmdGVyTW92ZVByZXBhcmF0aW9uOworICAgICAgICBtX3RhcmdldFdpbmRvd0FmdGVyTW92
ZVByZXBhcmF0aW9uID0gbmlsOworICAgIH0KICAgICBbbV93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2
ZXIgc3RvcE9ic2VydmluZzpzdG9wT2JzZXJ2aW5nV2luZG93XTsKICAgICBbbV93aW5kb3dWaXNp
YmlsaXR5T2JzZXJ2ZXIgc3RhcnRPYnNlcnZpbmc6d2luZG93XTsKIH0KQEAgLTIzMjYsNiArMjMz
NCw4IEBAIENvbG9yU3BhY2VEYXRhIFdlYlZpZXdJbXBsOjpjb2xvclNwYWNlKCkKICAgICAgICAg
ICAgIG1fY29sb3JTcGFjZSA9IG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uLmNvbG9y
U3BhY2U7CiAgICAgICAgIGVsc2UgaWYgKE5TV2luZG93ICp3aW5kb3cgPSBbbV92aWV3IHdpbmRv
d10pCiAgICAgICAgICAgICBtX2NvbG9yU3BhY2UgPSB3aW5kb3cuY29sb3JTcGFjZTsKKyAgICAg
ICAgZWxzZSBpZiAobV90YXJnZXRXaW5kb3dBZnRlck1vdmVQcmVwYXJhdGlvbikKKyAgICAgICAg
ICAgIG1fY29sb3JTcGFjZSA9IG1fdGFyZ2V0V2luZG93QWZ0ZXJNb3ZlUHJlcGFyYXRpb24uY29s
b3JTcGFjZTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9jb2xvclNwYWNlID0gW05TU2Ny
ZWVuIG1haW5TY3JlZW5dLmNvbG9yU3BhY2U7CiAgICAgfQpAQCAtMjQyOCw2ICsyNDM4LDcgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6cHJlcGFyZUZvck1vdmVUb1dpbmRvdyhOU1dpbmRvdyAqdGFyZ2V0
V2luZG93LCBXVEY6OkZ1bmN0aW9uPHYKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBB
U1NFUlQoIVt3ZWFrVGhpcy0+bV92aWV3IHdpbmRvd10gfHwgW3dlYWtUaGlzLT5tX3ZpZXcgd2lu
ZG93XSA9PSB3ZWFrVGhpcy0+bV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24pOworICAg
ICAgICB3ZWFrVGhpcy0+bV90YXJnZXRXaW5kb3dBZnRlck1vdmVQcmVwYXJhdGlvbiA9IHdlYWtU
aGlzLT5tX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbjsKICAgICAgICAgd2Vha1RoaXMt
Pm1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uID0gbmlsOwogICAgIH0pOwogCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjQzYzlmNmY0
NjZkNDQyNDg2ZTM2NWJlMjJmOTFhMDM0MzdmMGZiMC4uODVkMDE3ZTUxMTcxZGQ2MDMwNTY0ZjBi
ZWI0MTNmNmE0YzMwNzNmYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTAzICBTaWh1aSBMaXUgIDxzaWh1
aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFVJUHJvY2VzcyBjcmFzaCBhZnRlciB1c2luZyBf
cHJlcGFyZUZvck1vdmVUb1dpbmRvdywgdGhlbiBkZWFsbG9jYXRpbmcgdGhlIFdLV2ViVmlldyBi
ZWZvcmUgbW92aW5nIHRvIHRoZSB3aW5kb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwODM2NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk4Nzcy
OTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW06
CisgICAgICAgIChURVNUKToKKwogMjAyMC0wMy0wMiAgSmFjb2IgVXBob2ZmICA8amFjb2JfdXBo
b2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjU3Njg3
LgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVw
YXJlRm9yTW92ZVRvV2luZG93Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9QcmVwYXJlRm9yTW92ZVRvV2luZG93Lm1tCmluZGV4IGYxMGRkMzgxZTU0ODRiNzUzNWNl
OGZlOTUyYTM2NDM4OTljNTg2YmIuLjQ2NTQ5M2ZjMWE1NWM4MTAxYTQ0MGIzNWYwOTY3YzEwNjll
MGI3ZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UHJlcGFyZUZvck1vdmVUb1dpbmRvdy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1ByZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW0KQEAgLTc2LDQgKzc2LDI1IEBA
IFRFU1QoV0tXZWJWaWV3LCBQcmVwYXJlRm9yTW92ZVRvV2luZG93VGhlbkNsb3NlKQogICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKIH0KIAorVEVTVChXS1dlYlZpZXcsIFBy
ZXBhcmVGb3JNb3ZlVG9XaW5kb3dDcmFzaEFmdGVyTm90TW92aW5nVG9XaW5kb3cpCit7CisgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdF0pOworICAgIFJl
dGFpblB0cjxOU1dpbmRvdz4gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0
V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2lu
ZG93TWFzayBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKKworICAg
IFt3ZWJWaWV3IF9wcmVwYXJlRm9yTW92ZVRvV2luZG93OndpbmRvdy5nZXQoKSBjb21wbGV0aW9u
SGFuZGxlcjpeeyB9XTsKKworICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1
ZXVlKCksIF57CisgICAgICAgIFt3ZWJWaWV3IF9wcmVwYXJlRm9yTW92ZVRvV2luZG93OndpbmRv
dy5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeeyB9XTsKKyAgICAgICAgCisgICAgICAgIGRpc3Bh
dGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CisgICAgICAgICAgICBbd2lu
ZG93IHNldEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMTAsIDEwKSBkaXNwbGF5OllFU107CisgICAg
ICAgICAgICBpc0RvbmUgPSB0cnVlOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIHdlYlZp
ZXcgPSBuaWw7CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7Cit9CisK
ICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392362</attachid>
            <date>2020-03-03 19:21:36 -0800</date>
            <delta_ts>2020-03-04 09:33:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208365-20200303192136.patch</filename>
            <type>text/plain</type>
            <size>8954</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ5NGVjNDAzMGI1YjJkMjA2
MjQ4ZGVkODI2ZTI0MzEzMjNkMzM1MTIuLjQ5NTExNWI2M2VkMjgwNDhhZjQ0MmYwMmU1NTkwYTkx
ZTU2OTM0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMjAtMDMtMDMgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgVUlQcm9jZXNzIGNyYXNoIGFmdGVy
IHVzaW5nIF9wcmVwYXJlRm9yTW92ZVRvV2luZG93LCB0aGVuIGRlYWxsb2NhdGluZyB0aGUgV0tX
ZWJWaWV3IG9yIHRoZSBOU1dpbmRvdyBiZWZvcmUgbW92aW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDgzNjUKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzU5ODc3Mjk2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1vZGlmaWVkIFRpbSdzIHBhdGNoLgorCisgICAgICAgIE5ldyB0ZXN0OiBXS1dlYlZp
ZXcuUHJlcGFyZUZvck1vdmVUb1dpbmRvd1RoZW5WaWV3RGVhbGxvY0JlZm9yZU1vdmluZworICAg
ICAgICAgICAgICAgICAgV0tXZWJWaWV3LlByZXBhcmVGb3JNb3ZlVG9XaW5kb3dUaGVuV2luZG93
RGVhbGxvY0JlZm9yZU1vdmluZworCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tOgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBkZWFsbG9jXSk6
CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0YXJ0T2JzZXJ2aW5nOl0p
OgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBzdG9wT2JzZXJ2aW5nOl0p
OgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBzZXRXaW5kb3dUb09ic2Vy
dmU6XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dXaWxs
Q2xvc2U6XSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3V2lsbE1vdmVUb1dp
bmRvdyk6CisKKyAgICAgICAgU21hbGwgY2hhbmdlcyB0byBtYWtlIFdLV2luZG93VmlzaWJpbGl0
eU9ic2VydmVyIHNhZmVyIHRvIHVzZSwgd2hpY2gKKyAgICAgICAgZml4IHRoZSBhZm9yZW1lbnRp
b25lZCBidWc6CisgCisgICAgICAgIC0gSW5zdGVhZCBvZiBleHBvc2luZyBzdGFydE9ic2Vydmlu
Zy9zdG9wT2JzZXJ2aW5nIGFuZCBtYWtpbmcgY2xpZW50cworICAgICAgICBiZSBjYXJlZnVsIGFi
b3V0IHBhaXJpbmcgdGhlbSwgYW5kIHJlbWVtYmVyaW5nIHdoaWNoIHdpbmRvdyB0byBzdG9wT2Jz
ZXJ2aW5nLAorICAgICAgICBqdXN0IGFkZCAic2V0V2luZG93VG9PYnNlcnZlIiwgYW5kIGtlZXAg
dHJhY2sgKHdlYWtseSkgb2YgdGhlIGN1cnJlbnQKKyAgICAgICAgTlNXaW5kb3cgYmVpbmcgb2Jz
ZXJ2ZWQuIFRoaXMgYXZvaWRzIGRvdWJsZS1hZGRpbmcgb2JzZXJ2ZXJzLgorIAorICAgICAgICAt
IEFsd2F5cyBzdG9wT2JzZXJ2aW5nIHdoZW4gV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgaXMg
ZGVhbGxvY2F0ZWQuCisgICAgICAgIEluIHRoZSAibm9ybWFsIiBjYXNlLCBXS1dlYlZpZXcgd2ls
bCBhbHdheXMgYmUgcmVtb3ZlZCBmcm9tIHRoZSB2aWV3CisgICAgICAgIGhpZXJhcmNoeSBiZWZv
cmUgaXQgaXMgZGVhbGxvY2F0ZWQgKGFuZCB0aHVzIGJlZm9yZSB0aGUKKyAgICAgICAgV0tXaW5k
b3dWaXNpYmlsaXR5T2JzZXJ2ZXIgaXMgZGVhbGxvY2F0ZWQpLCBiZWNhdXNlIG90aGVyd2lzZSBp
dHMgc3VwZXJ2aWV3CisgICAgICAgIGhvbGRzIGEgcmVmZXJlbmNlIHRvIGl0LiBCdXQgaW4gdGhl
IF9wcmVwYXJlRm9yTW92ZVRvV2luZG93IGNhc2UsIHdlIGRvCisgICAgICAgIG5vdCBoYXZlIHRo
aXMgZ3VhcmFudGVlLCBhbmQgY2FuIGVuZCB1cCBkZWFsbG9jYXRpbmcgdGhlIFdLV2ViVmlldyB3
aXRob3V0CisgICAgICAgIGdldHRpbmcgYSB3aWxsTW92ZVRvV2luZG93Om5pbC4gTWFrZSBzdXJl
IHRvIGNsZWFuIHVwIHRoZSBvYnNlcnZlcnMgaW4KKyAgICAgICAgdGhhdCBjYXNlLCBpZiB0aGUg
d2luZG93IGlzIHN0aWxsIGFyb3VuZCwgb3RoZXJ3aXNlIHdoZW4gTlNXaW5kb3cgc2VuZHMKKyAg
ICAgICAgbm90aWZpY2F0aW9ucywgaXQgd2lsbCB0cnkgdG8gbWVzc2FnZSBhIGRlYWxsb2NhdGVk
IFdLV2ViVmlldy4KKworICAgICAgICAtIEFsd2F5cyBzdG9wT2JzZXJ2aW5nIHdoZW4gTlNXaW5k
b3cgaXMgYWJvdXQgdG8gYmUgY2xvc2VkLCBvdGhlcndpc2UgCisgICAgICAgIHdlIHdpbGwgc2Vl
IDxyZGFyOi8vcHJvYmxlbS81OTkyMjcyNT4uCisKIDIwMjAtMDMtMDIgIEphY29iIFVwaG9mZiAg
PGphY29iX3VwaG9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjI1NzY4Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0KaW5kZXggOWYxNjdhNjYyMDM4ZGIzY2M1NDM5OTIxMDdmZTEwNzkwYzA5ZGIxNS4uODNhMzBj
ODBiNWY5MDM0ZTViZDIxYmYwNTUyZDljZGU5YTIyY2RhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTIwMSw2ICsyMDEsNyBAQCBAaW50ZXJm
YWNlIFdLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIDogTlNPYmplY3QgewogICAgIFdlYktpdDo6
V2ViVmlld0ltcGwgKl9pbXBsOwogCiAgICAgQk9PTCBfZGlkUmVnaXN0ZXJGb3JMb29rdXBQb3Bv
dmVyQ2xvc2VOb3RpZmljYXRpb25zOworICAgIFdlYWtPYmpDUHRyPE5TV2luZG93PiBfb2JzZXJ2
aW5nV2luZG93OwogfQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihOU1ZpZXcgKil2
aWV3IGltcGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKWltcGw7CkBAIC0yMzcsNiArMjM4LDggQEAg
LSAodm9pZClkZWFsbG9jCiAgICAgTlNOb3RpZmljYXRpb25DZW50ZXIgKndvcmtzcGFjZU5vdGlm
aWNhdGlvbkNlbnRlciA9IFtbTlNXb3Jrc3BhY2Ugc2hhcmVkV29ya3NwYWNlXSBub3RpZmljYXRp
b25DZW50ZXJdOwogICAgIFt3b3Jrc3BhY2VOb3RpZmljYXRpb25DZW50ZXIgcmVtb3ZlT2JzZXJ2
ZXI6c2VsZiBuYW1lOk5TV29ya3NwYWNlQWN0aXZlU3BhY2VEaWRDaGFuZ2VOb3RpZmljYXRpb24g
b2JqZWN0Om5pbF07CiAKKyAgICBbc2VsZiBzZXRXaW5kb3dUb09ic2VydmU6bmlsXTsKKwogICAg
IFtzdXBlciBkZWFsbG9jXTsKIH0KIApAQCAtMjYzLDYgKzI2Niw3IEBAIC0gKHZvaWQpc3RhcnRP
YnNlcnZpbmc6KE5TV2luZG93ICopd2luZG93CiAgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50
ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZENoYW5nZVNj
cmVlbjopIG5hbWU6TlNXaW5kb3dEaWRDaGFuZ2VTY3JlZW5Ob3RpZmljYXRpb24gb2JqZWN0Ondp
bmRvd107CiAgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBz
ZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZENoYW5nZUxheWVySG9zdGluZzopIG5hbWU6QCJf
TlNXaW5kb3dEaWRDaGFuZ2VDb250ZW50c0hvc3RlZEluTGF5ZXJTdXJmYWNlTm90aWZpY2F0aW9u
IiBvYmplY3Q6d2luZG93XTsKICAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNl
cnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3Rh
dGU6KSBuYW1lOk5TV2luZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3RhdGVOb3RpZmljYXRpb24gb2Jq
ZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgYWRkT2JzZXJ2ZXI6
c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd1dpbGxDbG9zZTopIG5hbWU6TlNXaW5kb3dX
aWxsQ2xvc2VOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CiAKICAgICBbZGVmYXVsdE5vdGlm
aWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfc2NyZWVu
RGlkQ2hhbmdlQ29sb3JTcGFjZTopIG5hbWU6TlNTY3JlZW5Db2xvclNwYWNlRGlkQ2hhbmdlTm90
aWZpY2F0aW9uIG9iamVjdDpuaWxdOwogCkBAIC0yOTAsNiArMjk0LDcgQEAgLSAodm9pZClzdG9w
T2JzZXJ2aW5nOihOU1dpbmRvdyAqKXdpbmRvdwogICAgIFtkZWZhdWx0Tm90aWZpY2F0aW9uQ2Vu
dGVyIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZENoYW5nZVNjcmVlbk5vdGlm
aWNhdGlvbiBvYmplY3Q6d2luZG93XTsKICAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBy
ZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6QCJfTlNXaW5kb3dEaWRDaGFuZ2VDb250ZW50c0hvc3Rl
ZEluTGF5ZXJTdXJmYWNlTm90aWZpY2F0aW9uIiBvYmplY3Q6d2luZG93XTsKICAgICBbZGVmYXVs
dE5vdGlmaWNhdGlvbkNlbnRlciByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRD
aGFuZ2VPY2NsdXNpb25TdGF0ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVm
YXVsdE5vdGlmaWNhdGlvbkNlbnRlciByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dX
aWxsQ2xvc2VOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CiAKICAgICBbZGVmYXVsdE5vdGlm
aWNhdGlvbkNlbnRlciByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNTY3JlZW5Db2xvclNwYWNl
RGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwogCkBAIC0yOTksNiArMzA0LDEzIEBA
IC0gKHZvaWQpc3RvcE9ic2VydmluZzooTlNXaW5kb3cgKil3aW5kb3cKICAgICBbd2luZG93IHJl
bW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAInRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50
IiBjb250ZXh0OmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dF07CiB9CiAKKy0gKHZvaWQpc2V0V2lu
ZG93VG9PYnNlcnZlOihOU1dpbmRvdyAqKXdpbmRvdworeworICAgIFtzZWxmIHN0b3BPYnNlcnZp
bmc6X29ic2VydmluZ1dpbmRvdy5nZXRBdXRvcmVsZWFzZWQoKV07CisgICAgX29ic2VydmluZ1dp
bmRvdyA9IHdpbmRvdzsKKyAgICBbc2VsZiBzdGFydE9ic2VydmluZzp3aW5kb3ddOworfQorCiAt
ICh2b2lkKXN0YXJ0T2JzZXJ2aW5nRm9udFBhbmVsCiB7CiAgICAgW1tOU0ZvbnRQYW5lbCBzaGFy
ZWRGb250UGFuZWxdIGFkZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAInZpc2libGUiIG9wdGlv
bnM6MCBjb250ZXh0OmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dF07CkBAIC0zODIsNiArMzk0LDEy
IEBAIC0gKHZvaWQpX3NjcmVlbkRpZENoYW5nZUNvbG9yU3BhY2U6KE5TTm90aWZpY2F0aW9uICop
bm90aWZpY2F0aW9uCiAgICAgX2ltcGwtPnNjcmVlbkRpZENoYW5nZUNvbG9yU3BhY2UoKTsKIH0K
IAorLSAodm9pZClfd2luZG93V2lsbENsb3NlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlv
bgoreworICAgIEFTU0VSVChbbm90aWZpY2F0aW9uIG9iamVjdF0gPT0gX29ic2VydmluZ1dpbmRv
dy5nZXRBdXRvcmVsZWFzZWQoKSk7CisgICAgW3NlbGYgc2V0V2luZG93VG9PYnNlcnZlOm5pbF07
Cit9CisKIC0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRo
IG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4
dDoodm9pZCAqKWNvbnRleHQKIHsKICAgICBpZiAoY29udGV4dCAhPSBrZXlWYWx1ZU9ic2Vydmlu
Z0NvbnRleHQpIHsKQEAgLTIyMDksOSArMjIyNyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnZpZXdX
aWxsTW92ZVRvV2luZG93KE5TV2luZG93ICp3aW5kb3cpCiAKICAgICBjbGVhckFsbEVkaXRDb21t
YW5kcygpOwogCi0gICAgTlNXaW5kb3cgKnN0b3BPYnNlcnZpbmdXaW5kb3cgPSBtX3RhcmdldFdp
bmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA/IG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9u
IDogW21fdmlldyB3aW5kb3ddOwotICAgIFttX3dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBzdG9w
T2JzZXJ2aW5nOnN0b3BPYnNlcnZpbmdXaW5kb3ddOwotICAgIFttX3dpbmRvd1Zpc2liaWxpdHlP
YnNlcnZlciBzdGFydE9ic2VydmluZzp3aW5kb3ddOworICAgIFttX3dpbmRvd1Zpc2liaWxpdHlP
YnNlcnZlciBzZXRXaW5kb3dUb09ic2VydmU6d2luZG93XTsKIH0KIAogdm9pZCBXZWJWaWV3SW1w
bDo6dmlld0RpZE1vdmVUb1dpbmRvdygpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggYjQzYzlmNmY0NjZkNDQyNDg2ZTM2NWJlMjJmOTFhMDM0Mzdm
MGZiMC4uODVkMDE3ZTUxMTcxZGQ2MDMwNTY0ZjBiZWI0MTNmNmE0YzMwNzNmYyAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIwLTAzLTAzICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAg
IFVJUHJvY2VzcyBjcmFzaCBhZnRlciB1c2luZyBfcHJlcGFyZUZvck1vdmVUb1dpbmRvdywgdGhl
biBkZWFsbG9jYXRpbmcgdGhlIFdLV2ViVmlldyBiZWZvcmUgbW92aW5nIHRvIHRoZSB3aW5kb3cK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODM2NQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk4NzcyOTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1ByZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW06CisgICAgICAgIChURVNUKToKKwogMjAyMC0w
My0wMiAgSmFjb2IgVXBob2ZmICA8amFjb2JfdXBob2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMjU3Njg3LgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVwYXJlRm9yTW92ZVRvV2luZG93Lm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVwYXJlRm9yTW92ZVRvV2luZG93
Lm1tCmluZGV4IGYxMGRkMzgxZTU0ODRiNzUzNWNlOGZlOTUyYTM2NDM4OTljNTg2YmIuLmU2OWQ5
MDI3YmZiNzY4MWVmYmIwYjFhMDNkMWZlNmM4NWE5ZjQ1YmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlcGFyZUZvck1vdmVUb1dpbmRvdy5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByZXBhcmVGb3JNb3Zl
VG9XaW5kb3cubW0KQEAgLTc2LDQgKzc2LDQ4IEBAIFRFU1QoV0tXZWJWaWV3LCBQcmVwYXJlRm9y
TW92ZVRvV2luZG93VGhlbkNsb3NlKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNE
b25lKTsKIH0KIAorVEVTVChXS1dlYlZpZXcsIFByZXBhcmVGb3JNb3ZlVG9XaW5kb3dUaGVuVmll
d0RlYWxsb2NCZWZvcmVNb3ZpbmcpCit7CisgICAgYXV0byB3aW5kb3cgPSBhZG9wdE5TKFtbTlNX
aW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCAyMDAsIDIw
MCkgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9y
ZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CisKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdF0pOworCisgICAg
ICAgIFt3ZWJWaWV3IF9wcmVwYXJlRm9yTW92ZVRvV2luZG93OndpbmRvdy5nZXQoKSBjb21wbGV0
aW9uSGFuZGxlcjpeeworICAgICAgICAgICAgaXNEb25lID0gdHJ1ZTsKKyAgICAgICAgfV07CisK
KyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgICAgICBpc0Rv
bmUgPSBmYWxzZTsKKworICAgICAgICB3ZWJWaWV3ID0gbmlsOworICAgIH0KKworICAgIGRpc3Bh
dGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CisgICAgICAgIFt3aW5kb3cg
c2V0RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAxMCwgMTApIGRpc3BsYXk6WUVTXTsKKyAgICAgICAg
aXNEb25lID0gdHJ1ZTsKKyAgICB9KTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
aXNEb25lKTsKK30KKworVEVTVChXS1dlYlZpZXcsIFByZXBhcmVGb3JNb3ZlVG9XaW5kb3dUaGVu
V2luZG93RGVhbGxvY0JlZm9yZU1vdmluZykKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0XSk7CisKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAg
ICAgICAgYXV0byB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29u
dGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza1RpdGxl
ZCBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKKyAgICAgICAgW3dl
YlZpZXcgX3ByZXBhcmVGb3JNb3ZlVG9XaW5kb3c6d2luZG93LmdldCgpIGNvbXBsZXRpb25IYW5k
bGVyOl57CisgICAgICAgICAgICBpc0RvbmUgPSB0cnVlOworICAgICAgICB9XTsKKworICAgICAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisgICAgICAgIGlzRG9uZSA9IGZh
bHNlOworCisgICAgICAgIFt3aW5kb3cgc2V0UmVsZWFzZWRXaGVuQ2xvc2VkOk5PXTsKKyAgICAg
ICAgW3dpbmRvdyBjbG9zZV07CisgICAgICAgIHdpbmRvdyA9IG5pbDsKKyAgICB9Cit9CisKICNl
bmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392426</attachid>
            <date>2020-03-04 09:33:10 -0800</date>
            <delta_ts>2020-03-05 21:43:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208365-20200304093309.patch</filename>
            <type>text/plain</type>
            <size>10047</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ5NGVjNDAzMGI1YjJkMjA2
MjQ4ZGVkODI2ZTI0MzEzMjNkMzM1MTIuLjQ5NTExNWI2M2VkMjgwNDhhZjQ0MmYwMmU1NTkwYTkx
ZTU2OTM0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMjAtMDMtMDMgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgVUlQcm9jZXNzIGNyYXNoIGFmdGVy
IHVzaW5nIF9wcmVwYXJlRm9yTW92ZVRvV2luZG93LCB0aGVuIGRlYWxsb2NhdGluZyB0aGUgV0tX
ZWJWaWV3IG9yIHRoZSBOU1dpbmRvdyBiZWZvcmUgbW92aW5nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDgzNjUKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzU5ODc3Mjk2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1vZGlmaWVkIFRpbSdzIHBhdGNoLgorCisgICAgICAgIE5ldyB0ZXN0OiBXS1dlYlZp
ZXcuUHJlcGFyZUZvck1vdmVUb1dpbmRvd1RoZW5WaWV3RGVhbGxvY0JlZm9yZU1vdmluZworICAg
ICAgICAgICAgICAgICAgV0tXZWJWaWV3LlByZXBhcmVGb3JNb3ZlVG9XaW5kb3dUaGVuV2luZG93
RGVhbGxvY0JlZm9yZU1vdmluZworCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tOgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBkZWFsbG9jXSk6
CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0YXJ0T2JzZXJ2aW5nOl0p
OgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBzdG9wT2JzZXJ2aW5nOl0p
OgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBzZXRXaW5kb3dUb09ic2Vy
dmU6XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dXaWxs
Q2xvc2U6XSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3V2lsbE1vdmVUb1dp
bmRvdyk6CisKKyAgICAgICAgU21hbGwgY2hhbmdlcyB0byBtYWtlIFdLV2luZG93VmlzaWJpbGl0
eU9ic2VydmVyIHNhZmVyIHRvIHVzZSwgd2hpY2gKKyAgICAgICAgZml4IHRoZSBhZm9yZW1lbnRp
b25lZCBidWc6CisgCisgICAgICAgIC0gSW5zdGVhZCBvZiBleHBvc2luZyBzdGFydE9ic2Vydmlu
Zy9zdG9wT2JzZXJ2aW5nIGFuZCBtYWtpbmcgY2xpZW50cworICAgICAgICBiZSBjYXJlZnVsIGFi
b3V0IHBhaXJpbmcgdGhlbSwgYW5kIHJlbWVtYmVyaW5nIHdoaWNoIHdpbmRvdyB0byBzdG9wT2Jz
ZXJ2aW5nLAorICAgICAgICBqdXN0IGFkZCAic2V0V2luZG93VG9PYnNlcnZlIiwgYW5kIGtlZXAg
dHJhY2sgKHdlYWtseSkgb2YgdGhlIGN1cnJlbnQKKyAgICAgICAgTlNXaW5kb3cgYmVpbmcgb2Jz
ZXJ2ZWQuIFRoaXMgYXZvaWRzIGRvdWJsZS1hZGRpbmcgb2JzZXJ2ZXJzLgorIAorICAgICAgICAt
IEFsd2F5cyBzdG9wT2JzZXJ2aW5nIHdoZW4gV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgaXMg
ZGVhbGxvY2F0ZWQuCisgICAgICAgIEluIHRoZSAibm9ybWFsIiBjYXNlLCBXS1dlYlZpZXcgd2ls
bCBhbHdheXMgYmUgcmVtb3ZlZCBmcm9tIHRoZSB2aWV3CisgICAgICAgIGhpZXJhcmNoeSBiZWZv
cmUgaXQgaXMgZGVhbGxvY2F0ZWQgKGFuZCB0aHVzIGJlZm9yZSB0aGUKKyAgICAgICAgV0tXaW5k
b3dWaXNpYmlsaXR5T2JzZXJ2ZXIgaXMgZGVhbGxvY2F0ZWQpLCBiZWNhdXNlIG90aGVyd2lzZSBp
dHMgc3VwZXJ2aWV3CisgICAgICAgIGhvbGRzIGEgcmVmZXJlbmNlIHRvIGl0LiBCdXQgaW4gdGhl
IF9wcmVwYXJlRm9yTW92ZVRvV2luZG93IGNhc2UsIHdlIGRvCisgICAgICAgIG5vdCBoYXZlIHRo
aXMgZ3VhcmFudGVlLCBhbmQgY2FuIGVuZCB1cCBkZWFsbG9jYXRpbmcgdGhlIFdLV2ViVmlldyB3
aXRob3V0CisgICAgICAgIGdldHRpbmcgYSB3aWxsTW92ZVRvV2luZG93Om5pbC4gTWFrZSBzdXJl
IHRvIGNsZWFuIHVwIHRoZSBvYnNlcnZlcnMgaW4KKyAgICAgICAgdGhhdCBjYXNlLCBpZiB0aGUg
d2luZG93IGlzIHN0aWxsIGFyb3VuZCwgb3RoZXJ3aXNlIHdoZW4gTlNXaW5kb3cgc2VuZHMKKyAg
ICAgICAgbm90aWZpY2F0aW9ucywgaXQgd2lsbCB0cnkgdG8gbWVzc2FnZSBhIGRlYWxsb2NhdGVk
IFdLV2ViVmlldy4KKworICAgICAgICAtIEFsd2F5cyBzdG9wT2JzZXJ2aW5nIHdoZW4gTlNXaW5k
b3cgaXMgYWJvdXQgdG8gYmUgY2xvc2VkLCBvdGhlcndpc2UgCisgICAgICAgIHdlIHdpbGwgc2Vl
IDxyZGFyOi8vcHJvYmxlbS81OTkyMjcyNT4uCisKIDIwMjAtMDMtMDIgIEphY29iIFVwaG9mZiAg
PGphY29iX3VwaG9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjI1NzY4Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0KaW5kZXggOWYxNjdhNjYyMDM4ZGIzY2M1NDM5OTIxMDdmZTEwNzkwYzA5ZGIxNS4uY2Q5NjQ3
YjEyNTNmMjhlMmIzMWFjMmQ5OWU3ZjlmMDQ2YzRhYTc0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTIwMSw2ICsyMDEsOSBAQCBAaW50ZXJm
YWNlIFdLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIDogTlNPYmplY3QgewogICAgIFdlYktpdDo6
V2ViVmlld0ltcGwgKl9pbXBsOwogCiAgICAgQk9PTCBfZGlkUmVnaXN0ZXJGb3JMb29rdXBQb3Bv
dmVyQ2xvc2VOb3RpZmljYXRpb25zOworCisgICAgLy8gUHJvdGVjdCB3aW5kb3cgYmVpbmcgb2Jz
ZXJ2ZWQgdW50aWwgd2luZG93IGlzIGNsb3NlZC4KKyAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IF9v
YnNlcnZpbmdXaW5kb3c7CiB9CiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFZpZXc6KE5TVmll
dyAqKXZpZXcgaW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpaW1wbDsKQEAgLTIzNyw2ICsyNDAs
OCBAQCAtICh2b2lkKWRlYWxsb2MKICAgICBOU05vdGlmaWNhdGlvbkNlbnRlciAqd29ya3NwYWNl
Tm90aWZpY2F0aW9uQ2VudGVyID0gW1tOU1dvcmtzcGFjZSBzaGFyZWRXb3Jrc3BhY2VdIG5vdGlm
aWNhdGlvbkNlbnRlcl07CiAgICAgW3dvcmtzcGFjZU5vdGlmaWNhdGlvbkNlbnRlciByZW1vdmVP
YnNlcnZlcjpzZWxmIG5hbWU6TlNXb3Jrc3BhY2VBY3RpdmVTcGFjZURpZENoYW5nZU5vdGlmaWNh
dGlvbiBvYmplY3Q6bmlsXTsKIAorICAgIFtzZWxmIHNldFdpbmRvd1RvT2JzZXJ2ZTpuaWxdOwor
CiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCkBAIC0yNjMsNiArMjY4LDcgQEAgLSAodm9pZClz
dGFydE9ic2VydmluZzooTlNXaW5kb3cgKil3aW5kb3cKICAgICBbZGVmYXVsdE5vdGlmaWNhdGlv
bkNlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkQ2hh
bmdlU2NyZWVuOikgbmFtZTpOU1dpbmRvd0RpZENoYW5nZVNjcmVlbk5vdGlmaWNhdGlvbiBvYmpl
Y3Q6d2luZG93XTsKICAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpz
ZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkQ2hhbmdlTGF5ZXJIb3N0aW5nOikgbmFt
ZTpAIl9OU1dpbmRvd0RpZENoYW5nZUNvbnRlbnRzSG9zdGVkSW5MYXllclN1cmZhY2VOb3RpZmlj
YXRpb24iIG9iamVjdDp3aW5kb3ddOwogICAgIFtkZWZhdWx0Tm90aWZpY2F0aW9uQ2VudGVyIGFk
ZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRDaGFuZ2VPY2NsdXNp
b25TdGF0ZTopIG5hbWU6TlNXaW5kb3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0ZU5vdGlmaWNhdGlv
biBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNl
cnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93V2lsbENsb3NlOikgbmFtZTpOU1dp
bmRvd1dpbGxDbG9zZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKIAogICAgIFtkZWZhdWx0
Tm90aWZpY2F0aW9uQ2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9z
Y3JlZW5EaWRDaGFuZ2VDb2xvclNwYWNlOikgbmFtZTpOU1NjcmVlbkNvbG9yU3BhY2VEaWRDaGFu
Z2VOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07CiAKQEAgLTI5MCw2ICsyOTYsNyBAQCAtICh2b2lk
KXN0b3BPYnNlcnZpbmc6KE5TV2luZG93ICopd2luZG93CiAgICAgW2RlZmF1bHROb3RpZmljYXRp
b25DZW50ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkQ2hhbmdlU2NyZWVu
Tm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwogICAgIFtkZWZhdWx0Tm90aWZpY2F0aW9uQ2Vu
dGVyIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpAIl9OU1dpbmRvd0RpZENoYW5nZUNvbnRlbnRz
SG9zdGVkSW5MYXllclN1cmZhY2VOb3RpZmljYXRpb24iIG9iamVjdDp3aW5kb3ddOwogICAgIFtk
ZWZhdWx0Tm90aWZpY2F0aW9uQ2VudGVyIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRv
d0RpZENoYW5nZU9jY2x1c2lvblN0YXRlTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOworICAg
IFtkZWZhdWx0Tm90aWZpY2F0aW9uQ2VudGVyIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dp
bmRvd1dpbGxDbG9zZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKIAogICAgIFtkZWZhdWx0
Tm90aWZpY2F0aW9uQ2VudGVyIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1NjcmVlbkNvbG9y
U3BhY2VEaWRDaGFuZ2VOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07CiAKQEAgLTI5OSw2ICszMDYs
MTMgQEAgLSAodm9pZClzdG9wT2JzZXJ2aW5nOihOU1dpbmRvdyAqKXdpbmRvdwogICAgIFt3aW5k
b3cgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAidGl0bGViYXJBcHBlYXJzVHJhbnNw
YXJlbnQiIGNvbnRleHQ6a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0XTsKIH0KIAorLSAodm9pZClz
ZXRXaW5kb3dUb09ic2VydmU6KE5TV2luZG93ICopd2luZG93Cit7CisgICAgW3NlbGYgc3RvcE9i
c2VydmluZzpfb2JzZXJ2aW5nV2luZG93LmdldCgpXTsKKyAgICBfb2JzZXJ2aW5nV2luZG93ID0g
d2luZG93OworICAgIFtzZWxmIHN0YXJ0T2JzZXJ2aW5nOndpbmRvd107Cit9CisKIC0gKHZvaWQp
c3RhcnRPYnNlcnZpbmdGb250UGFuZWwKIHsKICAgICBbW05TRm9udFBhbmVsIHNoYXJlZEZvbnRQ
YW5lbF0gYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAidmlzaWJsZSIgb3B0aW9uczowIGNv
bnRleHQ6a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0XTsKQEAgLTM4Miw2ICszOTYsMTIgQEAgLSAo
dm9pZClfc2NyZWVuRGlkQ2hhbmdlQ29sb3JTcGFjZTooTlNOb3RpZmljYXRpb24gKilub3RpZmlj
YXRpb24KICAgICBfaW1wbC0+c2NyZWVuRGlkQ2hhbmdlQ29sb3JTcGFjZSgpOwogfQogCistICh2
b2lkKV93aW5kb3dXaWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7Cisg
ICAgQVNTRVJUKFtub3RpZmljYXRpb24gb2JqZWN0XSA9PSBfb2JzZXJ2aW5nV2luZG93LmdldCgp
KTsKKyAgICBbc2VsZiBzZXRXaW5kb3dUb09ic2VydmU6bmlsXTsKK30KKwogLSAodm9pZClvYnNl
cnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVj
dCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2b2lkICopY29udGV4dAog
ewogICAgIGlmIChjb250ZXh0ICE9IGtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dCkgewpAQCAtMjIw
OSw5ICsyMjI5LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dmlld1dpbGxNb3ZlVG9XaW5kb3coTlNX
aW5kb3cgKndpbmRvdykKIAogICAgIGNsZWFyQWxsRWRpdENvbW1hbmRzKCk7CiAKLSAgICBOU1dp
bmRvdyAqc3RvcE9ic2VydmluZ1dpbmRvdyA9IG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0
aW9uID8gbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gOiBbbV92aWV3IHdpbmRvd107
Ci0gICAgW21fd2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0b3BPYnNlcnZpbmc6c3RvcE9ic2Vy
dmluZ1dpbmRvd107Ci0gICAgW21fd2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0YXJ0T2JzZXJ2
aW5nOndpbmRvd107CisgICAgW21fd2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHNldFdpbmRvd1Rv
T2JzZXJ2ZTp3aW5kb3ddOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2lu
ZG93KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBiNDNjOWY2ZjQ2NmQ0NDI0ODZlMzY1YmUyMmY5MWEwMzQzN2YwZmIwLi44NWQwMTdlNTExNzFk
ZDYwMzA1NjRmMGJlYjQxM2Y2YTRjMzA3M2ZjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMDMgIFNpaHVp
IExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgVUlQcm9jZXNzIGNyYXNoIGFm
dGVyIHVzaW5nIF9wcmVwYXJlRm9yTW92ZVRvV2luZG93LCB0aGVuIGRlYWxsb2NhdGluZyB0aGUg
V0tXZWJWaWV3IGJlZm9yZSBtb3ZpbmcgdG8gdGhlIHdpbmRvdworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4MzY1CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS81OTg3NzI5Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlcGFyZUZvck1vdmVU
b1dpbmRvdy5tbToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIwLTAzLTAyICBKYWNvYiBVcGhvZmYg
IDxqYWNvYl91cGhvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIyNTc2ODcuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1ByZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1ByZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW0KaW5kZXggZjEwZGQzODFl
NTQ4NGI3NTM1Y2U4ZmU5NTJhMzY0Mzg5OWM1ODZiYi4uNWEzNjk2Y2FmMDFlNDViODNiYzhlZDIw
NzI0Yjk3OTczYjM0NWNhYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9QcmVwYXJlRm9yTW92ZVRvV2luZG93Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlcGFyZUZvck1vdmVUb1dpbmRvdy5tbQpAQCAtMzMs
NiArMzMsNyBAQAogI2ltcG9ydCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgogI2ltcG9ydCA8
V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNp
bXBvcnQgPHd0Zi9XZWFrT2JqQ1B0ci5oPgogCiBzdGF0aWMgYm9vbCBpc0RvbmU7CiAKQEAgLTc2
LDQgKzc3LDcyIEBAIFRFU1QoV0tXZWJWaWV3LCBQcmVwYXJlRm9yTW92ZVRvV2luZG93VGhlbkNs
b3NlKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKIH0KIAorVEVTVChX
S1dlYlZpZXcsIFByZXBhcmVGb3JNb3ZlVG9XaW5kb3dUaGVuVmlld0RlYWxsb2NCZWZvcmVNb3Zp
bmcpCit7CisgICAgYXV0byB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRX
aXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCAyMDAsIDIwMCkgc3R5bGVNYXNrOk5TQm9y
ZGVybGVzc1dpbmRvd01hc2sgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5P
XSk7CisKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdF0pOworICAgICAgICBbd2ViVmlldyBfcHJlcGFy
ZUZvck1vdmVUb1dpbmRvdzp3aW5kb3cuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XnsKKyAgICAg
ICAgICAgIGlzRG9uZSA9IHRydWU7CisgICAgICAgIH1dOworCisgICAgICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICAgICAgaXNEb25lID0gZmFsc2U7CisKKyAgICAg
ICAgd2ViVmlldyA9IG5pbDsKKyAgICB9CisKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9n
ZXRfbWFpbl9xdWV1ZSgpLCBeeworICAgICAgICBbd2luZG93IHNldEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgMTAsIDEwKSBkaXNwbGF5OllFU107CisgICAgICAgIGlzRG9uZSA9IHRydWU7CisgICAg
fSk7CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7Cit9CisKK1RFU1Qo
V0tXZWJWaWV3LCBQcmVwYXJlRm9yTW92ZVRvV2luZG93VGhlbldpbmRvd0RlYWxsb2NCZWZvcmVN
b3ZpbmcpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10g
aW5pdF0pOworICAgIHN0YXRpYyBXZWFrT2JqQ1B0cjxOU1dpbmRvdz4gd2Vha1dpbmRvdzsKKwor
ICAgIC8vIFdpbmRvdyBub3QgY2xvc2VkIGJlZm9yZSBkZWFsbG9jZWQuCisgICAgQGF1dG9yZWxl
YXNlcG9vbCB7CisgICAgICAgIGF1dG8gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9j
XSBpbml0V2l0aENvbnRlbnRSZWN0Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNXaW5kb3dT
dHlsZU1hc2tUaXRsZWQgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7
CisgICAgICAgIHdlYWtXaW5kb3cgPSB3aW5kb3cuZ2V0KCk7CisgICAgICAgIFt3ZWJWaWV3IF9w
cmVwYXJlRm9yTW92ZVRvV2luZG93OndpbmRvdy5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjpeewor
ICAgICAgICAgICAgaXNEb25lID0gdHJ1ZTsKKyAgICAgICAgfV07CisKKyAgICAgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworICAgICAgICBpc0RvbmUgPSBmYWxzZTsKKwor
ICAgICAgICB3aW5kb3cgPSBuaWw7CisgICAgfQorCisgICAgLy8gVGhlIHdpbmRvdyBpcyBrZXB0
IGFsaXZlIGJ5IHdlYlZpZXcncyBfb2JzZXJ2aW5nV2luZG93LgorICAgIEFTU0VSVCh3ZWFrV2lu
ZG93KTsKKworICAgIC8vIFdpbmRvdyBjbG9zZWQgYmVmb3JlIGRlYWxsb2NlZC4KKyAgICBAYXV0
b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgYXV0byBjbG9zZWRXaW5kb3cgPSBhZG9wdE5TKFtbTlNX
aW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFz
azpOU1dpbmRvd1N0eWxlTWFza1RpdGxlZCBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQg
ZGVmZXI6Tk9dKTsKKyAgICAgICAgW3dlYlZpZXcgX3ByZXBhcmVGb3JNb3ZlVG9XaW5kb3c6Y2xv
c2VkV2luZG93LmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgICAgICAgICAvLyBUaGUg
b2xkIHdpbmRvdyBpcyByZWxlYXNlZCBhcyB2aWV3IGlzIG9ic2VydmluZyBuZXcgd2luZG93IG5v
dy4KKyAgICAgICAgICAgIEFTU0VSVCghd2Vha1dpbmRvdyk7CisKKyAgICAgICAgICAgIHdlYWtX
aW5kb3cgPSBjbG9zZWRXaW5kb3cuZ2V0KCk7CisgICAgICAgICAgICBpc0RvbmUgPSB0cnVlOwor
ICAgICAgICB9XTsKKworICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7
CisgICAgICAgIGlzRG9uZSA9IGZhbHNlOworCisgICAgICAgIFtjbG9zZWRXaW5kb3cgc2V0UmVs
ZWFzZWRXaGVuQ2xvc2VkOk5PXTsKKyAgICAgICAgW2Nsb3NlZFdpbmRvdyBjbG9zZV07CisgICAg
ICAgIGNsb3NlZFdpbmRvdyA9IG5pbDsKKyAgICB9CisKKyAgICBBU1NFUlQoIXdlYWtXaW5kb3cp
OworfQorCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392675</attachid>
            <date>2020-03-05 21:43:37 -0800</date>
            <delta_ts>2020-03-06 10:19:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208365-20200305214336.patch</filename>
            <type>text/plain</type>
            <size>10795</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3OTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE0M2ViOTc0NzcwNmUwN2Iz
MjM3NTgyZDBlNGQxN2YyNWIyMTQ0MWMuLjAwNjA3YTMzOGEyNjE3MGIwNDNmZGEwMTIxOTNhMjVh
YzIzN2IxMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjAtMDMtMDUgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgVUlQcm9jZXNzIGNyYXNoIGFmdGVy
IHVzaW5nIF9wcmVwYXJlRm9yTW92ZVRvV2luZG93LCB0aGVuIGRlYWxsb2NhdGluZyB0aGUgV0tX
ZWJWaWV3IGJlZm9yZSBtb3ZpbmcgdG8gdGhlIHdpbmRvdworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4MzY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81OTg3NzI5Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXggdGhlIGlzc3VlIHRoYXQgb2JzZXJ2ZXJzIGluIFdlYlZpZXcgbWF5IG5vdCBiZSBy
ZW1vdmVkIHdoZW4gV2ViVmlldyBpcyBwcmVwYXJlZCB0byBtb3ZlIHRvIHNvbWUgd2luZG93IGJ1
dCAKKyAgICAgICAgbm90IGFjdHVhbGx5IG1vdmVzLiBNYWtlIFdlYlZpZXcgaG9sZCBzdHJvbmcg
cmVmZXJlbmNlIHRvIHRoZSB0YXJnZXQgd2luZG93IHNvIGl0IGtub3dzIHRvIHN0b3Agb2JzZXJ2
aW5nIGF0CisgICAgICAgIGRlYWxsb2MgZXZlbiBpZiB0aGUgbW92ZSBkb2VzIG5vdCBoYXBwZW4u
IFRoZSBzdHJvbmcgcmVmZXJlbmNlIHdpbGwgYmUgcmVsZWFzZWQgd2hlbiBXZWJWaWV3IGFjdHVh
bGx5IG1vdmVzIHRvIGEKKyAgICAgICAgd2luZG93IHRvIGF2b2lkIHJlZmVyZW5jZSBjeWNsZS4K
KworICAgICAgICBOZXcgQVBJIHRlc3RzOiBXS1dlYlZpZXcuUHJlcGFyZUZvck1vdmVUb1dpbmRv
d1RoZW5WaWV3RGVhbGxvY0JlZm9yZU1vdmluZworICAgICAgICAgICAgICAgICAgICAgICBXS1dl
YlZpZXcuUHJlcGFyZUZvck1vdmVUb1dpbmRvd1RoZW5XaW5kb3dEZWFsbG9jQmVmb3JlTW92aW5n
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnRhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiBjb25zdCk6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6fldlYlZpZXdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OmludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OndpbmRvd0RpZENoYW5nZVNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjp2aWV3V2lsbE1vdmVUb1dpbmRvd0ltcGwpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6dmlld1dpbGxNb3ZlVG9XaW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6dmlld0RpZE1vdmVUb1dpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpjb2xvclNwYWNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnByZXBh
cmVGb3JNb3ZlVG9XaW5kb3cpOgorCiAyMDIwLTAzLTA1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KIAogICAgICAgICBQcmUtZmV0Y2ggZmlyc3QgcGFnZSBpbiBuZXcgUERGIGxv
YWRpbmcgbW9kZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
aAppbmRleCA2ZWY1N2MxYzRmNWFmMWNlNDNmZjI2Y2QyMzVhY2ZkODk5YmQxZTM2Li40YWRjNTE4
YjU0ZjU1MDRmNDE5ZWM5M2Q0N2MwODlmYWRhYzI5OWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTI5Nyw3ICsyOTcsOCBAQCBwdWJsaWM6CiAg
ICAgYm9vbCB3aW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkKCkgY29uc3QgeyByZXR1cm4g
bV93aW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOyB9CiAKICAgICB2b2lkIHByZXBhcmVG
b3JNb3ZlVG9XaW5kb3coTlNXaW5kb3cgKnRhcmdldFdpbmRvdywgV1RGOjpGdW5jdGlvbjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOwotICAgIE5TV2luZG93ICp0YXJnZXRXaW5kb3dGb3JN
b3ZlUHJlcGFyYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVw
YXJhdGlvbjsgfQorICAgIE5TV2luZG93ICp0YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24o
KSBjb25zdCB7IHJldHVybiBtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbi5nZXQoKTsg
fQorICAgIHZvaWQgdmlld1dpbGxNb3ZlVG9XaW5kb3dJbXBsKE5TV2luZG93ICopOwogCiAgICAg
dm9pZCB1cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCk7CiAgICAgdm9pZCByZXNldFNlY3VyZUlucHV0
U3RhdGUoKTsKQEAgLTczMiw3ICs3MzMsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3Nob3Vs
ZERlZmVyVmlld0luV2luZG93Q2hhbmdlcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3ZpZXdJbldp
bmRvd0NoYW5nZVdhc0RlZmVycmVkIHsgZmFsc2UgfTsKLSAgICBOU1dpbmRvdyAqbV90YXJnZXRX
aW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24geyBudWxscHRyIH07CisgICAgUmV0YWluUHRyPE5TV2lu
ZG93PiBtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbjsKIAogICAgIGlkIG1fZmxhZ3ND
aGFuZ2VkRXZlbnRNb25pdG9yIHsgbnVsbHB0ciB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDlmMTY3YTY2MjAzOGRiM2NjNTQzOTkyMTA3
ZmUxMDc5MGMwOWRiMTUuLjEyOWZjNTVmMjhlMTdlMDgyY2FmNzY4NDBkZDNmMDJiZDI3ZTQxNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0x
NDQ1LDYgKzE0NDUsMTEgQEAgV2ViVmlld0ltcGw6On5XZWJWaWV3SW1wbCgpCiAjZW5kaWYKICNl
bmRpZgogCisgICAgaWYgKG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uKSB7CisgICAg
ICAgIFttX3dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBzdG9wT2JzZXJ2aW5nOm1fdGFyZ2V0V2lu
ZG93Rm9yTW92ZVByZXBhcmF0aW9uLmdldCgpXTsKKyAgICAgICAgbV90YXJnZXRXaW5kb3dGb3JN
b3ZlUHJlcGFyYXRpb24gPSBuaWw7CisgICAgfQorCiAgICAgbV9wYWdlLT5jbG9zZSgpOwogCiAg
ICAgV2ViUHJvY2Vzc1Bvb2w6OnN0YXRpc3RpY3MoKS53a1ZpZXdDb3VudC0tOwpAQCAtMjAzNSw3
ICsyMDQwLDcgQEAgZmxvYXQgV2ViVmlld0ltcGw6OmludHJpbnNpY0RldmljZVNjYWxlRmFjdG9y
KCkgY29uc3QKICAgICBpZiAobV9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yKQogICAgICAgICBy
ZXR1cm4gbV9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yOwogICAgIGlmIChtX3RhcmdldFdpbmRv
d0Zvck1vdmVQcmVwYXJhdGlvbikKLSAgICAgICAgcmV0dXJuIG1fdGFyZ2V0V2luZG93Rm9yTW92
ZVByZXBhcmF0aW9uLmJhY2tpbmdTY2FsZUZhY3RvcjsKKyAgICAgICAgcmV0dXJuIG1fdGFyZ2V0
V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uLmdldCgpLmJhY2tpbmdTY2FsZUZhY3RvcjsKICAgICBp
ZiAoTlNXaW5kb3cgKndpbmRvdyA9IFttX3ZpZXcgd2luZG93XSkKICAgICAgICAgcmV0dXJuIHdp
bmRvdy5iYWNraW5nU2NhbGVGYWN0b3I7CiAgICAgcmV0dXJuIFtOU1NjcmVlbiBtYWluU2NyZWVu
XS5iYWNraW5nU2NhbGVGYWN0b3I7CkBAIC0yMTA2LDcgKzIxMTEsNyBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjp3aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllcyhDR0Zsb2F0IG9sZEJhY2tpbmdT
Y2FsZUZhY3RvcgogCiB2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWRDaGFuZ2VTY3JlZW4oKQog
ewotICAgIE5TV2luZG93ICp3aW5kb3cgPSBtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlv
biA/IG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uIDogW21fdmlldyB3aW5kb3ddOwor
ICAgIE5TV2luZG93ICp3aW5kb3cgPSBtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA/
IG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uLmdldCgpIDogW21fdmlldyB3aW5kb3dd
OwogICAgIG1fcGFnZS0+d2luZG93U2NyZWVuRGlkQ2hhbmdlKFtbW1t3aW5kb3cgc2NyZWVuXSBk
ZXZpY2VEZXNjcmlwdGlvbl0gb2JqZWN0Rm9yS2V5OkAiTlNTY3JlZW5OdW1iZXIiXSBpbnRWYWx1
ZV0pOwogfQogCkBAIC0yMTk4LDcgKzIyMDMsNyBAQCBib29sIFdlYlZpZXdJbXBsOjp3aW5kb3dS
ZXNpemVNb3VzZUxvY2F0aW9uSXNJblZpc2libGVTY3JvbGxlclRodW1iKENHUG9pbnQgcG9pbgog
ICAgIHJldHVybiBOU01vdXNlSW5SZWN0KGxvY2FsUG9pbnQsIHZpc2libGVUaHVtYlJlY3QsIFtt
X3ZpZXcgaXNGbGlwcGVkXSk7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OnZpZXdXaWxsTW92ZVRv
V2luZG93KE5TV2luZG93ICp3aW5kb3cpCit2b2lkIFdlYlZpZXdJbXBsOjp2aWV3V2lsbE1vdmVU
b1dpbmRvd0ltcGwoTlNXaW5kb3cgKndpbmRvdykKIHsKICAgICAvLyBJZiB3ZSdyZSBpbiB0aGUg
bWlkZGxlIG9mIHByZXBhcmluZyB0byBtb3ZlIHRvIGEgd2luZG93LCB3ZSBzaG91bGQgb25seSBi
ZSBtb3ZlZCB0byB0aGF0IHdpbmRvdy4KICAgICBBU1NFUlQoIW1fdGFyZ2V0V2luZG93Rm9yTW92
ZVByZXBhcmF0aW9uIHx8IChtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA9PSB3aW5k
b3cpKTsKQEAgLTIyMDksMTQgKzIyMTQsMjAgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dmlld1dpbGxN
b3ZlVG9XaW5kb3coTlNXaW5kb3cgKndpbmRvdykKIAogICAgIGNsZWFyQWxsRWRpdENvbW1hbmRz
KCk7CiAKLSAgICBOU1dpbmRvdyAqc3RvcE9ic2VydmluZ1dpbmRvdyA9IG1fdGFyZ2V0V2luZG93
Rm9yTW92ZVByZXBhcmF0aW9uID8gbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gOiBb
bV92aWV3IHdpbmRvd107CisgICAgTlNXaW5kb3cgKnN0b3BPYnNlcnZpbmdXaW5kb3cgPSBtX3Rh
cmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA/IG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBh
cmF0aW9uLmdldCgpIDogW21fdmlldyB3aW5kb3ddOwogICAgIFttX3dpbmRvd1Zpc2liaWxpdHlP
YnNlcnZlciBzdG9wT2JzZXJ2aW5nOnN0b3BPYnNlcnZpbmdXaW5kb3ddOwogICAgIFttX3dpbmRv
d1Zpc2liaWxpdHlPYnNlcnZlciBzdGFydE9ic2VydmluZzp3aW5kb3ddOwogfQogCit2b2lkIFdl
YlZpZXdJbXBsOjp2aWV3V2lsbE1vdmVUb1dpbmRvdyhOU1dpbmRvdyAqd2luZG93KQoreworICAg
IHZpZXdXaWxsTW92ZVRvV2luZG93SW1wbCh3aW5kb3cpOworICAgIG1fdGFyZ2V0V2luZG93Rm9y
TW92ZVByZXBhcmF0aW9uID0gbmlsOworfQorCiB2b2lkIFdlYlZpZXdJbXBsOjp2aWV3RGlkTW92
ZVRvV2luZG93KCkKIHsKLSAgICBOU1dpbmRvdyAqd2luZG93ID0gbV90YXJnZXRXaW5kb3dGb3JN
b3ZlUHJlcGFyYXRpb24gPyBtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA6IFttX3Zp
ZXcgd2luZG93XTsKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gbV90YXJnZXRXaW5kb3dGb3JNb3Zl
UHJlcGFyYXRpb24gPyBtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbi5nZXQoKSA6IFtt
X3ZpZXcgd2luZG93XTsKIAogICAgIExPRyhBY3Rpdml0eVN0YXRlLCAiV2ViVmlld0ltcGwgJXAg
dmlld0RpZE1vdmVUb1dpbmRvdyAlcCIsIHRoaXMsIHdpbmRvdyk7CiAKQEAgLTIzMjMsNyArMjMz
NCw3IEBAIENvbG9yU3BhY2VEYXRhIFdlYlZpZXdJbXBsOjpjb2xvclNwYWNlKCkKIHsKICAgICBp
ZiAoIW1fY29sb3JTcGFjZSkgewogICAgICAgICBpZiAobV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJl
cGFyYXRpb24pCi0gICAgICAgICAgICBtX2NvbG9yU3BhY2UgPSBtX3RhcmdldFdpbmRvd0Zvck1v
dmVQcmVwYXJhdGlvbi5jb2xvclNwYWNlOworICAgICAgICAgICAgbV9jb2xvclNwYWNlID0gbV90
YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24uZ2V0KCkuY29sb3JTcGFjZTsKICAgICAgICAg
ZWxzZSBpZiAoTlNXaW5kb3cgKndpbmRvdyA9IFttX3ZpZXcgd2luZG93XSkKICAgICAgICAgICAg
IG1fY29sb3JTcGFjZSA9IHdpbmRvdy5jb2xvclNwYWNlOwogICAgICAgICBlbHNlCkBAIC0yNDE0
LDIyICsyNDI1LDE0IEBAIHZvaWQgV2ViVmlld0ltcGw6OmVuZERlZmVycmluZ1ZpZXdJbldpbmRv
d0NoYW5nZXNTeW5jKCkKIHZvaWQgV2ViVmlld0ltcGw6OnByZXBhcmVGb3JNb3ZlVG9XaW5kb3co
TlNXaW5kb3cgKnRhcmdldFdpbmRvdywgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgbV9zaG91bGREZWZlclZpZXdJbldpbmRvd0NoYW5nZXMgPSB0cnVl
OwotICAgIHZpZXdXaWxsTW92ZVRvV2luZG93KHRhcmdldFdpbmRvdyk7CisgICAgdmlld1dpbGxN
b3ZlVG9XaW5kb3dJbXBsKHRhcmdldFdpbmRvdyk7CiAgICAgbV90YXJnZXRXaW5kb3dGb3JNb3Zl
UHJlcGFyYXRpb24gPSB0YXJnZXRXaW5kb3c7CiAgICAgdmlld0RpZE1vdmVUb1dpbmRvdygpOwog
CiAgICAgbV9zaG91bGREZWZlclZpZXdJbldpbmRvd0NoYW5nZXMgPSBmYWxzZTsKIAogICAgIGF1
dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7Ci0gICAgbV9wYWdlLT5pbnN0YWxsQWN0
aXZpdHlTdGF0ZUNoYW5nZUNvbXBsZXRpb25IYW5kbGVyKFt3ZWFrVGhpcywgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSB7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7Ci0KLSAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgIHJldHVy
bjsKLQotICAgICAgICBBU1NFUlQoIVt3ZWFrVGhpcy0+bV92aWV3IHdpbmRvd10gfHwgW3dlYWtU
aGlzLT5tX3ZpZXcgd2luZG93XSA9PSB3ZWFrVGhpcy0+bV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJl
cGFyYXRpb24pOwotICAgICAgICB3ZWFrVGhpcy0+bV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFy
YXRpb24gPSBuaWw7Ci0gICAgfSk7CisgICAgbV9wYWdlLT5pbnN0YWxsQWN0aXZpdHlTdGF0ZUNo
YW5nZUNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIAogICAg
IGRpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0KCk7CiAgICAgbV9wYWdlLT5hY3Rpdml0eVN0YXRl
RGlkQ2hhbmdlKFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzSW5XaW5kb3csIFdlYlBhZ2VQcm94
eTo6QWN0aXZpdHlTdGF0ZUNoYW5nZURpc3BhdGNoTW9kZTo6SW1tZWRpYXRlKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5NzEwNjI4NDljOGZj
ZDMyNWM3ODRlOGUxOGY1ZmU4ODUyZjYzMWFmLi5iZGZiMGEyYzJhZTIwYjI0YjIxMzAzNDIwYjYz
NjIyODA3MjJiYWU2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDMtMDUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgVUlQcm9jZXNzIGNyYXNoIGFmdGVyIHVzaW5nIF9wcmVw
YXJlRm9yTW92ZVRvV2luZG93LCB0aGVuIGRlYWxsb2NhdGluZyB0aGUgV0tXZWJWaWV3IGJlZm9y
ZSBtb3ZpbmcgdG8gdGhlIHdpbmRvdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA4MzY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTg3NzI5Nj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlcGFyZUZvck1vdmVUb1dpbmRvdy5tbToKKyAg
ICAgICAgKFRFU1QpOgorCiAyMDIwLTAzLTA1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0
ZSBTUEkgdG8gaW5mb3JtIGFwcGxpY2F0aW9uIG9mIHN1YmZyYW1lIG5hdmlnYXRpb25zCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByZXBhcmVGb3JN
b3ZlVG9XaW5kb3cubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1By
ZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW0KaW5kZXggZjEwZGQzODFlNTQ4NGI3NTM1Y2U4ZmU5NTJh
MzY0Mzg5OWM1ODZiYi4uZmUzZTkwZWQ4YWZlNDg4NWEyMGI1MjFlMjI2NmQ3MzVhYmQ3YTllMyAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVwYXJl
Rm9yTW92ZVRvV2luZG93Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUHJlcGFyZUZvck1vdmVUb1dpbmRvdy5tbQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9y
dCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1By
aXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9XZWFrT2Jq
Q1B0ci5oPgogCiBzdGF0aWMgYm9vbCBpc0RvbmU7CiAKQEAgLTc2LDQgKzc3LDU5IEBAIFRFU1Qo
V0tXZWJWaWV3LCBQcmVwYXJlRm9yTW92ZVRvV2luZG93VGhlbkNsb3NlKQogICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKIH0KIAorVEVTVChXS1dlYlZpZXcsIFByZXBhcmVG
b3JNb3ZlVG9XaW5kb3dUaGVuVmlld0RlYWxsb2NCZWZvcmVNb3ZpbmcpCit7CisgICAgYXV0byB3
aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNN
YWtlUmVjdCgwLCAwLCAyMDAsIDIwMCkgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sg
YmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXSk7CisKKyAgICBAYXV0b3Jl
bGVhc2Vwb29sIHsKKyAgICAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBh
bGxvY10gaW5pdF0pOworICAgICAgICBbd2ViVmlldyBfcHJlcGFyZUZvck1vdmVUb1dpbmRvdzp3
aW5kb3cuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XnsKKyAgICAgICAgICAgIGlzRG9uZSA9IHRy
dWU7CisgICAgICAgIH1dOworCisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNE
b25lKTsKKyAgICAgICAgaXNEb25lID0gZmFsc2U7CisKKyAgICAgICAgd2ViVmlldyA9IG5pbDsK
KyAgICB9CisKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBe
eworICAgICAgICBbd2luZG93IHNldEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMTAsIDEwKSBkaXNw
bGF5OllFU107CisgICAgICAgIGlzRG9uZSA9IHRydWU7CisgICAgfSk7CisKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7Cit9CisKK1RFU1QoV0tXZWJWaWV3LCBQcmVwYXJl
Rm9yTW92ZVRvV2luZG93VGhlbldpbmRvd0RlYWxsb2NCZWZvcmVNb3ZpbmcpCit7CisgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdF0pOworICAgIHN0YXRp
YyBXZWFrT2JqQ1B0cjxOU1dpbmRvdz4gd2Vha1dpbmRvdzsKKworICAgIEBhdXRvcmVsZWFzZXBv
b2wgeworICAgICAgICBhdXRvIHdpbmRvdyA9IGFkb3B0TlMoW1tOU1dpbmRvdyBhbGxvY10gaW5p
dFdpdGhDb250ZW50UmVjdDpbd2ViVmlldyBmcmFtZV0gc3R5bGVNYXNrOk5TV2luZG93U3R5bGVN
YXNrVGl0bGVkIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOworICAg
ICAgICB3ZWFrV2luZG93ID0gd2luZG93LmdldCgpOworICAgICAgICBbd2ViVmlldyBfcHJlcGFy
ZUZvck1vdmVUb1dpbmRvdzp3aW5kb3cuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6XnsKKyAgICAg
ICAgICAgIGlzRG9uZSA9IHRydWU7CisgICAgICAgIH1dOworCisgICAgICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKyAgICAgICAgaXNEb25lID0gZmFsc2U7CisKKyAgICAg
ICAgd2luZG93ID0gbmlsOworICAgIH0KKworICAgIC8vIFRhcmdldCB3aW5kb3cgaXMga2VwdCBh
bGl2ZSBieSB3ZWJWaWV3IGJlZm9yZSBpdCBhY3R1YWxseSBtb3ZlcyB0by4KKyAgICBBU1NFUlQo
d2Vha1dpbmRvdyk7CisKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgUmV0YWluUHRy
PE5TV2luZG93PiB3aW5kb3cgPSB3ZWFrV2luZG93LmdldEF1dG9yZWxlYXNlZCgpOworICAgICAg
ICBbd2luZG93LmdldCgpLmNvbnRlbnRWaWV3IGFkZFN1YnZpZXc6d2ViVmlldy5nZXQoKV07Cisg
ICAgICAgIAorICAgICAgICB3aW5kb3cgPSBuaWw7CisgICAgfQorCisgICAgQVNTRVJUKCF3ZWFr
V2luZG93KTsKK30KKwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392739</attachid>
            <date>2020-03-06 10:19:11 -0800</date>
            <delta_ts>2020-03-06 10:39:20 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-208365-20200306101910.patch</filename>
            <type>text/plain</type>
            <size>11075</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3OTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE0M2ViOTc0NzcwNmUwN2Iz
MjM3NTgyZDBlNGQxN2YyNWIyMTQ0MWMuLmNiNzQ5MzJiMzZjMTU0MDczZDM5Y2FhODM2MGMzNGU4
YTI5M2FlNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjAtMDMtMDUgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgVUlQcm9jZXNzIGNyYXNoIGFmdGVy
IHVzaW5nIF9wcmVwYXJlRm9yTW92ZVRvV2luZG93LCB0aGVuIGRlYWxsb2NhdGluZyB0aGUgV0tX
ZWJWaWV3IGJlZm9yZSBtb3ZpbmcgdG8gdGhlIHdpbmRvdworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4MzY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81OTg3NzI5Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KKworICAg
ICAgICBGaXggdGhlIGlzc3VlIHRoYXQgb2JzZXJ2ZXJzIGluIFdlYlZpZXcgbWF5IG5vdCBiZSBy
ZW1vdmVkIHdoZW4gV2ViVmlldyBpcyBwcmVwYXJlZCB0byBtb3ZlIHRvIHNvbWUgd2luZG93IGJ1
dCAKKyAgICAgICAgZG9lcyBub3QgYWN0dWFsbHkgbW92ZS4gTWFrZSBXZWJWaWV3IGhvbGQgc3Ry
b25nIHJlZmVyZW5jZSB0byB0aGUgdGFyZ2V0IHdpbmRvdyBzbyBpdCBrbm93cyB0byBzdG9wIG9i
c2VydmluZyBhdAorICAgICAgICBkZWFsbG9jIGV2ZW4gaWYgdGhlIG1vdmUgZG9lcyBub3QgaGFw
cGVuLiBUaGUgc3Ryb25nIHJlZmVyZW5jZSB3aWxsIGJlIHJlbGVhc2VkIHdoZW4gV2ViVmlldyBh
Y3R1YWxseSBtb3ZlcyB0byBhCisgICAgICAgIHdpbmRvdyB0byBhdm9pZCByZWZlcmVuY2UgY3lj
bGUuCisKKyAgICAgICAgTmV3IEFQSSB0ZXN0czogV0tXZWJWaWV3LlByZXBhcmVGb3JNb3ZlVG9X
aW5kb3dUaGVuVmlld0RlYWxsb2NCZWZvcmVNb3ZpbmcKKyAgICAgICAgICAgICAgICAgICAgICAg
V0tXZWJWaWV3LlByZXBhcmVGb3JNb3ZlVG9XaW5kb3dUaGVuV2luZG93RGVhbGxvY0JlZm9yZU1v
dmluZworCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjp0YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gY29u
c3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6On5XZWJWaWV3SW1wbCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjppbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvciBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRDaGFuZ2VTY3JlZW4pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6dmlld1dpbGxNb3ZlVG9XaW5kb3dJbXBsKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnZpZXdXaWxsTW92ZVRvV2luZG93KToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OnZpZXdEaWRNb3ZlVG9XaW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6Y29sb3JTcGFjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpw
cmVwYXJlRm9yTW92ZVRvV2luZG93KToKKwogMjAyMC0wMy0wNSAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUHJlLWZldGNoIGZpcnN0IHBhZ2UgaW4gbmV3IFBE
RiBsb2FkaW5nIG1vZGVsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmgKaW5kZXggNmVmNTdjMWM0ZjVhZjFjZTQzZmYyNmNkMjM1YWNmZDg5OWJkMWUzNi4uNzhl
NTQ2MjczZmM3N2FjZjgxMzdlMDNhN2I4MmM2MjBlZjgxZmMzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC0yOTcsNyArMjk3LDcgQEAgcHVibGlj
OgogICAgIGJvb2wgd2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fd2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZDsgfQogCiAgICAgdm9pZCBwcmVw
YXJlRm9yTW92ZVRvV2luZG93KE5TV2luZG93ICp0YXJnZXRXaW5kb3csIFdURjo6RnVuY3Rpb248
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKLSAgICBOU1dpbmRvdyAqdGFyZ2V0V2luZG93
Rm9yTW92ZVByZXBhcmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXRXaW5kb3dGb3JNb3Zl
UHJlcGFyYXRpb247IH0KKyAgICBOU1dpbmRvdyAqdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24uZ2V0
KCk7IH0KIAogICAgIHZvaWQgdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSgpOwogICAgIHZvaWQgcmVz
ZXRTZWN1cmVJbnB1dFN0YXRlKCk7CkBAIC02NzcsNiArNjc3LDggQEAgcHJpdmF0ZToKICAgICB2
b2lkIGhhbmRsZVJlcXVlc3RlZENhbmRpZGF0ZXMoTlNJbnRlZ2VyIHNlcXVlbmNlTnVtYmVyLCBO
U0FycmF5PE5TVGV4dENoZWNraW5nUmVzdWx0ICo+ICpjYW5kaWRhdGVzKTsKICAgICB2b2lkIGZs
dXNoUGVuZGluZ01vdXNlRXZlbnRDYWxsYmFja3MoKTsKIAorICAgIHZvaWQgdmlld1dpbGxNb3Zl
VG9XaW5kb3dJbXBsKE5TV2luZG93ICopOworCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAg
ICB2b2lkIHNlbmREcmFnRW5kVG9QYWdlKENHUG9pbnQgZW5kUG9pbnQsIE5TRHJhZ09wZXJhdGlv
bik7CiAjZW5kaWYKQEAgLTczMiw3ICs3MzQsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3No
b3VsZERlZmVyVmlld0luV2luZG93Q2hhbmdlcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3ZpZXdJ
bldpbmRvd0NoYW5nZVdhc0RlZmVycmVkIHsgZmFsc2UgfTsKLSAgICBOU1dpbmRvdyAqbV90YXJn
ZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24geyBudWxscHRyIH07CisgICAgUmV0YWluUHRyPE5T
V2luZG93PiBtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbjsKIAogICAgIGlkIG1fZmxh
Z3NDaGFuZ2VkRXZlbnRNb25pdG9yIHsgbnVsbHB0ciB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDlmMTY3YTY2MjAzOGRiM2NjNTQzOTky
MTA3ZmUxMDc5MGMwOWRiMTUuLmJjYmI3NjA1Y2FjMGY0YzU2M2IwOTVmYjI3ODMzZWE5N2Q1ODNh
NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBA
IC0xNDQ1LDYgKzE0NDUsMTEgQEAgV2ViVmlld0ltcGw6On5XZWJWaWV3SW1wbCgpCiAjZW5kaWYK
ICNlbmRpZgogCisgICAgaWYgKG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uKSB7Cisg
ICAgICAgIFttX3dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBzdG9wT2JzZXJ2aW5nOm1fdGFyZ2V0
V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uLmdldCgpXTsKKyAgICAgICAgbV90YXJnZXRXaW5kb3dG
b3JNb3ZlUHJlcGFyYXRpb24gPSBuaWw7CisgICAgfQorCiAgICAgbV9wYWdlLT5jbG9zZSgpOwog
CiAgICAgV2ViUHJvY2Vzc1Bvb2w6OnN0YXRpc3RpY3MoKS53a1ZpZXdDb3VudC0tOwpAQCAtMjAz
NSw3ICsyMDQwLDcgQEAgZmxvYXQgV2ViVmlld0ltcGw6OmludHJpbnNpY0RldmljZVNjYWxlRmFj
dG9yKCkgY29uc3QKICAgICBpZiAobV9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yKQogICAgICAg
ICByZXR1cm4gbV9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yOwogICAgIGlmIChtX3RhcmdldFdp
bmRvd0Zvck1vdmVQcmVwYXJhdGlvbikKLSAgICAgICAgcmV0dXJuIG1fdGFyZ2V0V2luZG93Rm9y
TW92ZVByZXBhcmF0aW9uLmJhY2tpbmdTY2FsZUZhY3RvcjsKKyAgICAgICAgcmV0dXJuIFttX3Rh
cmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiBiYWNraW5nU2NhbGVGYWN0b3JdOwogICAgIGlm
IChOU1dpbmRvdyAqd2luZG93ID0gW21fdmlldyB3aW5kb3ddKQogICAgICAgICByZXR1cm4gd2lu
ZG93LmJhY2tpbmdTY2FsZUZhY3RvcjsKICAgICByZXR1cm4gW05TU2NyZWVuIG1haW5TY3JlZW5d
LmJhY2tpbmdTY2FsZUZhY3RvcjsKQEAgLTIxMDYsNyArMjExMSw3IEBAIHZvaWQgV2ViVmlld0lt
cGw6OndpbmRvd0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzKENHRmxvYXQgb2xkQmFja2luZ1Nj
YWxlRmFjdG9yCiAKIHZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZENoYW5nZVNjcmVlbigpCiB7
Ci0gICAgTlNXaW5kb3cgKndpbmRvdyA9IG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9u
ID8gbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gOiBbbV92aWV3IHdpbmRvd107Cisg
ICAgTlNXaW5kb3cgKndpbmRvdyA9IG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uID8g
bV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24uZ2V0KCkgOiBbbV92aWV3IHdpbmRvd107
CiAgICAgbV9wYWdlLT53aW5kb3dTY3JlZW5EaWRDaGFuZ2UoW1tbW3dpbmRvdyBzY3JlZW5dIGRl
dmljZURlc2NyaXB0aW9uXSBvYmplY3RGb3JLZXk6QCJOU1NjcmVlbk51bWJlciJdIGludFZhbHVl
XSk7CiB9CiAKQEAgLTIxOTgsNyArMjIwMyw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OndpbmRvd1Jl
c2l6ZU1vdXNlTG9jYXRpb25Jc0luVmlzaWJsZVNjcm9sbGVyVGh1bWIoQ0dQb2ludCBwb2luCiAg
ICAgcmV0dXJuIE5TTW91c2VJblJlY3QobG9jYWxQb2ludCwgdmlzaWJsZVRodW1iUmVjdCwgW21f
dmlldyBpc0ZsaXBwZWRdKTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6dmlld1dpbGxNb3ZlVG9X
aW5kb3coTlNXaW5kb3cgKndpbmRvdykKK3ZvaWQgV2ViVmlld0ltcGw6OnZpZXdXaWxsTW92ZVRv
V2luZG93SW1wbChOU1dpbmRvdyAqd2luZG93KQogewogICAgIC8vIElmIHdlJ3JlIGluIHRoZSBt
aWRkbGUgb2YgcHJlcGFyaW5nIHRvIG1vdmUgdG8gYSB3aW5kb3csIHdlIHNob3VsZCBvbmx5IGJl
IG1vdmVkIHRvIHRoYXQgd2luZG93LgogICAgIEFTU0VSVCghbV90YXJnZXRXaW5kb3dGb3JNb3Zl
UHJlcGFyYXRpb24gfHwgKG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uID09IHdpbmRv
dykpOwpAQCAtMjIwOSwxNCArMjIxNCwyMCBAQCB2b2lkIFdlYlZpZXdJbXBsOjp2aWV3V2lsbE1v
dmVUb1dpbmRvdyhOU1dpbmRvdyAqd2luZG93KQogCiAgICAgY2xlYXJBbGxFZGl0Q29tbWFuZHMo
KTsKIAotICAgIE5TV2luZG93ICpzdG9wT2JzZXJ2aW5nV2luZG93ID0gbV90YXJnZXRXaW5kb3dG
b3JNb3ZlUHJlcGFyYXRpb24gPyBtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA6IFtt
X3ZpZXcgd2luZG93XTsKKyAgICBOU1dpbmRvdyAqc3RvcE9ic2VydmluZ1dpbmRvdyA9IG1fdGFy
Z2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uID8gbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFy
YXRpb24uZ2V0KCkgOiBbbV92aWV3IHdpbmRvd107CiAgICAgW21fd2luZG93VmlzaWJpbGl0eU9i
c2VydmVyIHN0b3BPYnNlcnZpbmc6c3RvcE9ic2VydmluZ1dpbmRvd107CiAgICAgW21fd2luZG93
VmlzaWJpbGl0eU9ic2VydmVyIHN0YXJ0T2JzZXJ2aW5nOndpbmRvd107CiB9CiAKK3ZvaWQgV2Vi
Vmlld0ltcGw6OnZpZXdXaWxsTW92ZVRvV2luZG93KE5TV2luZG93ICp3aW5kb3cpCit7CisgICAg
dmlld1dpbGxNb3ZlVG9XaW5kb3dJbXBsKHdpbmRvdyk7CisgICAgbV90YXJnZXRXaW5kb3dGb3JN
b3ZlUHJlcGFyYXRpb24gPSBuaWw7Cit9CisKIHZvaWQgV2ViVmlld0ltcGw6OnZpZXdEaWRNb3Zl
VG9XaW5kb3coKQogewotICAgIE5TV2luZG93ICp3aW5kb3cgPSBtX3RhcmdldFdpbmRvd0Zvck1v
dmVQcmVwYXJhdGlvbiA/IG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uIDogW21fdmll
dyB3aW5kb3ddOworICAgIE5TV2luZG93ICp3aW5kb3cgPSBtX3RhcmdldFdpbmRvd0Zvck1vdmVQ
cmVwYXJhdGlvbiA/IG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uLmdldCgpIDogW21f
dmlldyB3aW5kb3ddOwogCiAgICAgTE9HKEFjdGl2aXR5U3RhdGUsICJXZWJWaWV3SW1wbCAlcCB2
aWV3RGlkTW92ZVRvV2luZG93ICVwIiwgdGhpcywgd2luZG93KTsKIApAQCAtMjMyMyw3ICsyMzM0
LDcgQEAgQ29sb3JTcGFjZURhdGEgV2ViVmlld0ltcGw6OmNvbG9yU3BhY2UoKQogewogICAgIGlm
ICghbV9jb2xvclNwYWNlKSB7CiAgICAgICAgIGlmIChtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVw
YXJhdGlvbikKLSAgICAgICAgICAgIG1fY29sb3JTcGFjZSA9IG1fdGFyZ2V0V2luZG93Rm9yTW92
ZVByZXBhcmF0aW9uLmNvbG9yU3BhY2U7CisgICAgICAgICAgICBtX2NvbG9yU3BhY2UgPSBbbV90
YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gY29sb3JTcGFjZV07CiAgICAgICAgIGVsc2Ug
aWYgKE5TV2luZG93ICp3aW5kb3cgPSBbbV92aWV3IHdpbmRvd10pCiAgICAgICAgICAgICBtX2Nv
bG9yU3BhY2UgPSB3aW5kb3cuY29sb3JTcGFjZTsKICAgICAgICAgZWxzZQpAQCAtMjQxNCwyMiAr
MjQyNSwxNCBAQCB2b2lkIFdlYlZpZXdJbXBsOjplbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFu
Z2VzU3luYygpCiB2b2lkIFdlYlZpZXdJbXBsOjpwcmVwYXJlRm9yTW92ZVRvV2luZG93KE5TV2lu
ZG93ICp0YXJnZXRXaW5kb3csIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzID0gdHJ1ZTsKLSAg
ICB2aWV3V2lsbE1vdmVUb1dpbmRvdyh0YXJnZXRXaW5kb3cpOworICAgIHZpZXdXaWxsTW92ZVRv
V2luZG93SW1wbCh0YXJnZXRXaW5kb3cpOwogICAgIG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBh
cmF0aW9uID0gdGFyZ2V0V2luZG93OwogICAgIHZpZXdEaWRNb3ZlVG9XaW5kb3coKTsKIAogICAg
IG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzID0gZmFsc2U7CiAKICAgICBhdXRvIHdl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwotICAgIG1fcGFnZS0+aW5zdGFsbEFjdGl2aXR5
U3RhdGVDaGFuZ2VDb21wbGV0aW9uSGFuZGxlcihbd2Vha1RoaXMsIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgewotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOwotCi0gICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICByZXR1cm47Ci0K
LSAgICAgICAgQVNTRVJUKCFbd2Vha1RoaXMtPm1fdmlldyB3aW5kb3ddIHx8IFt3ZWFrVGhpcy0+
bV92aWV3IHdpbmRvd10gPT0gd2Vha1RoaXMtPm1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0
aW9uKTsKLSAgICAgICAgd2Vha1RoaXMtPm1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9u
ID0gbmlsOwotICAgIH0pOworICAgIG1fcGFnZS0+aW5zdGFsbEFjdGl2aXR5U3RhdGVDaGFuZ2VD
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAKICAgICBkaXNw
YXRjaFNldFRvcENvbnRlbnRJbnNldCgpOwogICAgIG1fcGFnZS0+YWN0aXZpdHlTdGF0ZURpZENo
YW5nZShXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93LCBXZWJQYWdlUHJveHk6OkFj
dGl2aXR5U3RhdGVDaGFuZ2VEaXNwYXRjaE1vZGU6OkltbWVkaWF0ZSk7CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTcxMDYyODQ5YzhmY2QzMjVj
Nzg0ZThlMThmNWZlODg1MmY2MzFhZi4uNWY4NmNhODFmOGM2ZjBkYTEyYmViZGNkODA0ZTRmMWIx
ZmI2ZTRkMiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAzLTA1ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBw
bGUuY29tPgorCisgICAgICAgIFVJUHJvY2VzcyBjcmFzaCBhZnRlciB1c2luZyBfcHJlcGFyZUZv
ck1vdmVUb1dpbmRvdywgdGhlbiBkZWFsbG9jYXRpbmcgdGhlIFdLV2ViVmlldyBiZWZvcmUgbW92
aW5nIHRvIHRoZSB3aW5kb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwODM2NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk4NzcyOTY+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW06CisgICAgICAg
IChURVNUKToKKwogMjAyMC0wMy0wNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBXS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUgU1BJ
IHRvIGluZm9ybSBhcHBsaWNhdGlvbiBvZiBzdWJmcmFtZSBuYXZpZ2F0aW9ucwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVwYXJlRm9yTW92ZVRv
V2luZG93Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVwYXJl
Rm9yTW92ZVRvV2luZG93Lm1tCmluZGV4IGYxMGRkMzgxZTU0ODRiNzUzNWNlOGZlOTUyYTM2NDM4
OTljNTg2YmIuLmZlM2U5MGVkOGFmZTQ4ODVhMjBiNTIxZTIyNjZkNzM1YWJkN2E5ZTMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlcGFyZUZvck1v
dmVUb1dpbmRvdy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1ByZXBhcmVGb3JNb3ZlVG9XaW5kb3cubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIlRl
c3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRl
Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIu
aD4KIAogc3RhdGljIGJvb2wgaXNEb25lOwogCkBAIC03Niw0ICs3Nyw1OSBAQCBURVNUKFdLV2Vi
VmlldywgUHJlcGFyZUZvck1vdmVUb1dpbmRvd1RoZW5DbG9zZSkKICAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmlzRG9uZSk7CiB9CiAKK1RFU1QoV0tXZWJWaWV3LCBQcmVwYXJlRm9yTW92
ZVRvV2luZG93VGhlblZpZXdEZWFsbG9jQmVmb3JlTW92aW5nKQoreworICAgIGF1dG8gd2luZG93
ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0Ok5TTWFrZVJl
Y3QoMCwgMCwgMjAwLCAyMDApIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tp
bmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOworCisgICAgQGF1dG9yZWxlYXNl
cG9vbCB7CisgICAgICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2Nd
IGluaXRdKTsKKyAgICAgICAgW3dlYlZpZXcgX3ByZXBhcmVGb3JNb3ZlVG9XaW5kb3c6d2luZG93
LmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgICAgICAgICBpc0RvbmUgPSB0cnVlOwor
ICAgICAgICB9XTsKKworICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7
CisgICAgICAgIGlzRG9uZSA9IGZhbHNlOworCisgICAgICAgIHdlYlZpZXcgPSBuaWw7CisgICAg
fQorCisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKKyAg
ICAgICAgW3dpbmRvdyBzZXRGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDEwLCAxMCkgZGlzcGxheTpZ
RVNdOworICAgICAgICBpc0RvbmUgPSB0cnVlOworICAgIH0pOworCisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZpc0RvbmUpOworfQorCitURVNUKFdLV2ViVmlldywgUHJlcGFyZUZvck1v
dmVUb1dpbmRvd1RoZW5XaW5kb3dEZWFsbG9jQmVmb3JlTW92aW5nKQoreworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRdKTsKKyAgICBzdGF0aWMgV2Vh
a09iakNQdHI8TlNXaW5kb3c+IHdlYWtXaW5kb3c7CisKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsK
KyAgICAgICAgYXV0byB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRo
Q29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU1dpbmRvd1N0eWxlTWFza1Rp
dGxlZCBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKKyAgICAgICAg
d2Vha1dpbmRvdyA9IHdpbmRvdy5nZXQoKTsKKyAgICAgICAgW3dlYlZpZXcgX3ByZXBhcmVGb3JN
b3ZlVG9XaW5kb3c6d2luZG93LmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgICAgICAg
ICBpc0RvbmUgPSB0cnVlOworICAgICAgICB9XTsKKworICAgICAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmlzRG9uZSk7CisgICAgICAgIGlzRG9uZSA9IGZhbHNlOworCisgICAgICAgIHdp
bmRvdyA9IG5pbDsKKyAgICB9CisKKyAgICAvLyBUYXJnZXQgd2luZG93IGlzIGtlcHQgYWxpdmUg
Ynkgd2ViVmlldyBiZWZvcmUgaXQgYWN0dWFsbHkgbW92ZXMgdG8uCisgICAgQVNTRVJUKHdlYWtX
aW5kb3cpOworCisgICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgIFJldGFpblB0cjxOU1dp
bmRvdz4gd2luZG93ID0gd2Vha1dpbmRvdy5nZXRBdXRvcmVsZWFzZWQoKTsKKyAgICAgICAgW3dp
bmRvdy5nZXQoKS5jb250ZW50VmlldyBhZGRTdWJ2aWV3OndlYlZpZXcuZ2V0KCldOworICAgICAg
ICAKKyAgICAgICAgd2luZG93ID0gbmlsOworICAgIH0KKworICAgIEFTU0VSVCghd2Vha1dpbmRv
dyk7Cit9CisKICNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>