<?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>223530</bug_id>
          
          <creation_ts>2021-03-19 11:48:18 -0700</creation_ts>
          <short_desc>Ignore middle commits during animated resize</short_desc>
          <delta_ts>2021-03-24 09:45:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</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="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>sam</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1741818</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-19 11:48:18 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741827</commentid>
    <comment_count>1</comment_count>
      <attachid>423757</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-19 12:08:59 -0700</bug_when>
    <thetext>Created attachment 423757
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741846</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-03-19 12:44:57 -0700</bug_when>
    <thetext>It seems like adding SPI for this would only help Safari? Can we instead infer we are in this state somehow instead? Or if really can’t, seems like it should probably be API instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741928</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-19 15:29:55 -0700</bug_when>
    <thetext>I wonder if this is not equivalent to the client calling endAnimatedResize from a doAfterNextPresentationUpdate:^{} block?? It seems like it might be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741930</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-19 15:31:00 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #2)
&gt; It seems like adding SPI for this would only help Safari? Can we instead
&gt; infer we are in this state somehow instead? Or if really can’t, seems like
&gt; it should probably be API instead.

Animated resize is SPI, so this doesn&apos;t make sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741945</commentid>
    <comment_count>5</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-19 16:20:53 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #3)
&gt; I wonder if this is not equivalent to the client calling endAnimatedResize
&gt; from a doAfterNextPresentationUpdate:^{} block?? It seems like it might be.

It may be the same. I thought about delaying endAnimatedResize but don&apos;t know how much we are going to delay. Let me test if doAfterNextPresentationUpdate:^{} fixes the problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742031</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-03-20 11:52:37 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #4)
&gt; (In reply to Sam Weinig from comment #2)
&gt; &gt; It seems like adding SPI for this would only help Safari? Can we instead
&gt; &gt; infer we are in this state somehow instead? Or if really can’t, seems like
&gt; &gt; it should probably be API instead.
&gt; 
&gt; Animated resize is SPI, so this doesn&apos;t make sense.

Can you elaborate on what you mean by this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742034</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-20 12:50:53 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #6)
&gt; (In reply to Tim Horton from comment #4)
&gt; &gt; (In reply to Sam Weinig from comment #2)
&gt; &gt; &gt; It seems like adding SPI for this would only help Safari? Can we instead
&gt; &gt; &gt; infer we are in this state somehow instead? Or if really can’t, seems like
&gt; &gt; &gt; it should probably be API instead.
&gt; &gt; 
&gt; &gt; Animated resize is SPI, so this doesn&apos;t make sense.
&gt; 
&gt; Can you elaborate on what you mean by this?

(I was responding to the last sentence; the second one makes sense to me; the first one is just wrong, this isn’t about Safari, but other SPI clients). Animated resize is SPI so it doesn’t make sense to make a mechanism to control a detail of it API?

It’s possible you meant that the whole animated resize SPI should become API (and I vaguely agree), but as it stands the SPI is poorly designed, confusing, and easy to misuse, so that’s a much bigger project.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742125</commentid>
    <comment_count>8</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-21 20:57:43 -0700</bug_when>
    <thetext>It seems we can fix the issue with doAfterNextPresentationUpdate like Tim said, so we don&apos;t need the SPI!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742152</commentid>
    <comment_count>9</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-22 01:11:21 -0700</bug_when>
    <thetext>Nope, _doAfterNextPresentationUpdate will invoke callback after ongoing animated resize (see - (void)_internalDoAfterNextPresentationUpdate:(void (^)(void))updateBlock withoutWaitingForPainting:(BOOL)withoutWaitingForPainting withoutWaitingForAnimatedResize:(BOOL)withoutWaitingForAnimatedResize), so if we put _endAnimatedResize in the callback the animated resize will never be ended.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742153</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-22 01:17:43 -0700</bug_when>
    <thetext>(In reply to Sihui Liu from comment #9)
&gt; Nope, _doAfterNextPresentationUpdate will invoke callback after ongoing
&gt; animated resize (see - (void)_internalDoAfterNextPresentationUpdate:(void
&gt; (^)(void))updateBlock
&gt; withoutWaitingForPainting:(BOOL)withoutWaitingForPainting
&gt; withoutWaitingForAnimatedResize:(BOOL)withoutWaitingForAnimatedResize), so
&gt; if we put _endAnimatedResize in the callback the animated resize will never
&gt; be ended.

Oh, geez.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742545</commentid>
    <comment_count>11</comment_count>
      <attachid>423957</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-22 16:18:52 -0700</bug_when>
    <thetext>Created attachment 423957
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742555</commentid>
    <comment_count>12</comment_count>
      <attachid>423957</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-22 16:26:37 -0700</bug_when>
    <thetext>Comment on attachment 423957
Patch

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

&gt; Source/WebKit/ChangeLog:16
&gt; +        _waitingForEndAnimatedResize. In this case, let&apos;s just ignore middle commits and remove corresponding code.

&gt;Safari, also doesn&apos;t hit the adative scaling path because it always early returns at _waitingForEndAnimatedResize

Doesn&apos;t this just mean that you haven&apos;t won the race in your testing?? (receiving a commit /after/ Safari calls -endAnimatedResize)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742557</commentid>
    <comment_count>13</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-22 16:27:36 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #12)
&gt; Comment on attachment 423957 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423957&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:16
&gt; &gt; +        _waitingForEndAnimatedResize. In this case, let&apos;s just ignore middle commits and remove corresponding code.
&gt; 
&gt; &gt;Safari, also doesn&apos;t hit the adative scaling path because it always early returns at _waitingForEndAnimatedResize
&gt; 
&gt; Doesn&apos;t this just mean that you haven&apos;t won the race in your testing??
&gt; (receiving a commit /after/ Safari calls -endAnimatedResize)

(you could probably win the race by either using slower hardware or putting a short sleep in `RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush` before the call to `sendMessage`)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742561</commentid>
    <comment_count>14</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-22 16:32:56 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #13)
&gt; (In reply to Tim Horton from comment #12)
&gt; &gt; Comment on attachment 423957 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=423957&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/ChangeLog:16
&gt; &gt; &gt; +        _waitingForEndAnimatedResize. In this case, let&apos;s just ignore middle commits and remove corresponding code.
&gt; &gt; 
&gt; &gt; &gt;Safari, also doesn&apos;t hit the adative scaling path because it always early returns at _waitingForEndAnimatedResize
&gt; &gt; 
&gt; &gt; Doesn&apos;t this just mean that you haven&apos;t won the race in your testing??
&gt; &gt; (receiving a commit /after/ Safari calls -endAnimatedResize)
&gt; 
&gt; (you could probably win the race by either using slower hardware or putting
&gt; a short sleep in `RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush`
&gt; before the call to `sendMessage`)

(In reply to Tim Horton from comment #12)
&gt; Comment on attachment 423957 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423957&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:16
&gt; &gt; +        _waitingForEndAnimatedResize. In this case, let&apos;s just ignore middle commits and remove corresponding code.
&gt; 
&gt; &gt;Safari, also doesn&apos;t hit the adative scaling path because it always early returns at _waitingForEndAnimatedResize
&gt; 
&gt; Doesn&apos;t this just mean that you haven&apos;t won the race in your testing??
&gt; (receiving a commit /after/ Safari calls -endAnimatedResize)

Yes, I don&apos;t see commits arrive after Safari calls endAnimatedResize during testing, so I am not sure whether that can happen in a real-world use case.

Will try sleep in RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush() a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742567</commentid>
    <comment_count>15</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-22 16:48:01 -0700</bug_when>
    <thetext>(In reply to Sihui Liu from comment #14)
&gt; (In reply to Tim Horton from comment #13)
&gt; &gt; (In reply to Tim Horton from comment #12)
&gt; &gt; &gt; Comment on attachment 423957 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=423957&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit/ChangeLog:16
&gt; &gt; &gt; &gt; +        _waitingForEndAnimatedResize. In this case, let&apos;s just ignore middle commits and remove corresponding code.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt;Safari, also doesn&apos;t hit the adative scaling path because it always early returns at _waitingForEndAnimatedResize
&gt; &gt; &gt; 
&gt; &gt; &gt; Doesn&apos;t this just mean that you haven&apos;t won the race in your testing??
&gt; &gt; &gt; (receiving a commit /after/ Safari calls -endAnimatedResize)
&gt; &gt; 
&gt; &gt; (you could probably win the race by either using slower hardware or putting
&gt; &gt; a short sleep in `RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush`
&gt; &gt; before the call to `sendMessage`)
&gt; 
&gt; (In reply to Tim Horton from comment #12)
&gt; &gt; Comment on attachment 423957 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=423957&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/ChangeLog:16
&gt; &gt; &gt; +        _waitingForEndAnimatedResize. In this case, let&apos;s just ignore middle commits and remove corresponding code.
&gt; &gt; 
&gt; &gt; &gt;Safari, also doesn&apos;t hit the adative scaling path because it always early returns at _waitingForEndAnimatedResize
&gt; &gt; 
&gt; &gt; Doesn&apos;t this just mean that you haven&apos;t won the race in your testing??
&gt; &gt; (receiving a commit /after/ Safari calls -endAnimatedResize)
&gt; 
&gt; Yes, I don&apos;t see commits arrive after Safari calls endAnimatedResize during
&gt; testing, so I am not sure whether that can happen in a real-world use case.

There is no connection between the two (a commit can be arbitrarily delayed in the WP, on a secondary queue, which is what you&apos;re going to test), so it should /totally/ be possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742871</commentid>
    <comment_count>16</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-23 09:55:23 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #15)
&gt; (In reply to Sihui Liu from comment #14)
&gt; &gt; (In reply to Tim Horton from comment #13)
&gt; &gt; &gt; (In reply to Tim Horton from comment #12)
&gt; &gt; &gt; &gt; Comment on attachment 423957 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; View in context:
&gt; &gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=423957&amp;action=review
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; Source/WebKit/ChangeLog:16
&gt; &gt; &gt; &gt; &gt; +        _waitingForEndAnimatedResize. In this case, let&apos;s just ignore middle commits and remove corresponding code.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt;Safari, also doesn&apos;t hit the adative scaling path because it always early returns at _waitingForEndAnimatedResize
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Doesn&apos;t this just mean that you haven&apos;t won the race in your testing??
&gt; &gt; &gt; &gt; (receiving a commit /after/ Safari calls -endAnimatedResize)
&gt; &gt; &gt; 
&gt; &gt; &gt; (you could probably win the race by either using slower hardware or putting
&gt; &gt; &gt; a short sleep in `RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush`
&gt; &gt; &gt; before the call to `sendMessage`)
&gt; &gt; 
&gt; &gt; (In reply to Tim Horton from comment #12)
&gt; &gt; &gt; Comment on attachment 423957 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=423957&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit/ChangeLog:16
&gt; &gt; &gt; &gt; +        _waitingForEndAnimatedResize. In this case, let&apos;s just ignore middle commits and remove corresponding code.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt;Safari, also doesn&apos;t hit the adative scaling path because it always early returns at _waitingForEndAnimatedResize
&gt; &gt; &gt; 
&gt; &gt; &gt; Doesn&apos;t this just mean that you haven&apos;t won the race in your testing??
&gt; &gt; &gt; (receiving a commit /after/ Safari calls -endAnimatedResize)
&gt; &gt; 
&gt; &gt; Yes, I don&apos;t see commits arrive after Safari calls endAnimatedResize during
&gt; &gt; testing, so I am not sure whether that can happen in a real-world use case.
&gt; 
&gt; There is no connection between the two (a commit can be arbitrarily delayed
&gt; in the WP, on a secondary queue, which is what you&apos;re going to test), so it
&gt; should /totally/ be possible.

I see. With 1s sleep in RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush() I can reproduce the case where middle commits (commits before animated size update and arrive in UI process after beginAnimatedResize) arrive after endAnimatedResize. And it seems removing the code is the correct behavior in Safari, otherwise we can stretch too much.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742970</commentid>
    <comment_count>17</comment_count>
      <attachid>424053</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-03-23 13:09:00 -0700</bug_when>
    <thetext>Created attachment 424053
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743187</commentid>
    <comment_count>18</comment_count>
      <attachid>424053</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-03-24 00:30:15 -0700</bug_when>
    <thetext>Comment on attachment 424053
Patch

Given the results of Sihui&apos;s experiments, let&apos;s give it a shot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743346</commentid>
    <comment_count>19</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-24 09:31:44 -0700</bug_when>
    <thetext>&lt;rdar://problem/75788772&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743355</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-24 09:45:16 -0700</bug_when>
    <thetext>Committed r274941: &lt;https://commits.webkit.org/r274941&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 424053.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423757</attachid>
            <date>2021-03-19 12:08:59 -0700</date>
            <delta_ts>2021-03-22 16:18:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223530-20210319120858.patch</filename>
            <type>text/plain</type>
            <size>4969</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0Njk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVkNDg2MzdjM2IzZmI1NjZh
MDVlZWZkYzU3ZWQzNjJjOGM5MjE1NzcuLjdiODZlZjUxMGJmYzBkZTA5ZGI3MzFkOWRlOWY5YjA2
ZWUyMTE0YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMDMtMTkgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KKworICAgICAgICBBZGQgU1BJIHRvIGlnbm9yZSBtaWRk
bGUgY29tbWl0cyBkdXJpbmcgYW5pbWF0ZWQgcmVzaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjM1MzAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHJlY2VpdmluZyBDb21taXRMYXllclRyZWUg
bWVzc2FnZSBkdXJpbmcgYW5pbWF0ZWQgcmVzaXplIGFuZCBpdCBpcyBub3QgZm9yIGFuaW1hdGVk
IHJlc2l6ZSB1cGRhdGUsIHdlIHRlbmQKKyAgICAgICAgdG8gdGhpbmsgdGhlcmUgaXMgYW4gdXBk
YXRlIG9uIHRoZSBmcmFtZSBzaXplIGZyb20gd2ViIHByb2Nlc3MgYW5kIHdlIHNob3VsZCBhZGFw
dGl2ZWx5IGNoYW5nZSBzY2FsZS4gSG93ZXZlciwKKyAgICAgICAgQ29tbWl0TGF5ZXJUcmVlIGRv
ZXMgbm90IG1lYW4gd2ViIHByb2Nlc3MgaXNzdWVzIG5ldyBwYWludCwgc28gaXQgd291bGQgYmUg
d3JvbmcgdG8gY2hhbmdlIHRoZSBzY2FsZS4gU2VlIAorICAgICAgICByZGFyOi8vNDc2MjMxNDAs
IHdoZXJlIG1pZGRsZSBjb21taXRzIHVzdWFsbHkgZG9uJ3Qgc2lnbmFsIGFuIHVwZGF0ZSBhbmQg
c2NhbGluZyBmb3IgdGhlbSBjYXVzZXMgZmxhc2ggb2Ygd3JvbmcgCisgICAgICAgIHNjYWxlLiBU
byBmaXggaXQsIGxldCdzIGFkZCBhbiBTUEkgdG8gaWdub3JlIHRoZSBtaWRkbGUgY29tbWl0cy4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAo
LVtXS1dlYlZpZXcgX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZENvbW1pdExh
eWVyVHJlZUR1cmluZ0FuaW1hdGVkUmVzaXplOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nl
dEFkYXB0aXZlQW5pbWF0ZWRSZXNpemU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfYWRhcHRp
dmVBbmltYXRlZFJlc2l6ZV0pOgorCiAyMDIxLTAzLTE4ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVA
YXBwZS5jb20+CiAKICAgICAgICAgSGFuZGxlIGVtcHR5IGJvdW5kIHNpemUgZHVyaW5nIGFuaW1h
dGVkIHJlc2l6aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQppbmRleCBkMDQ4NmMzMzZiM2MzZTA4ZGYyZTM1NmZiOTE4YTIwOTEwOTA4YjE3Li4z
MTM4NWFmZjA2ZmY1MzM4NDg1ZTczNTMzMjY3Yjk1ZjIyNjA2NjYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTM3NCw2ICszNzQsNyBA
QCAtICh2b2lkKV9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gKiljb25maWd1cmF0aW9uCiAgICAgX3ZpZXdwb3J0TWV0YVRhZ1dpZHRoID0gV2ViQ29y
ZTo6Vmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bzsKICAgICBfaW5pdGlhbFNjYWxlRmFjdG9y
ID0gMTsKICAgICBfYWxsb3dzVmlld3BvcnRTaHJpbmtUb0ZpdCA9IGRlZmF1bHRBbGxvd3NWaWV3
cG9ydFNocmlua1RvRml0OworICAgIF9hZGFwdGl2ZUR1cmluZ0FuaW1hdGVkUmVzaXplID0gTk87
CiAKICAgICBzdGF0aWMgdWludDMyX3QgcHJvZ3JhbVNES1ZlcnNpb24gPSBkeWxkX2dldF9wcm9n
cmFtX3Nka192ZXJzaW9uKCk7CiAgICAgX2FsbG93c0xpbmtQcmV2aWV3ID0gcHJvZ3JhbVNES1Zl
cnNpb24gPj0gZmlyc3RTREtWZXJzaW9uV2l0aExpbmtQcmV2aWV3RW5hYmxlZEJ5RGVmYXVsdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJ
bnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0lu
dGVybmFsLmgKaW5kZXggODg1MmZlZTNiYTE2ZTM5YTRiNmExNzVjOGEzOGFjMWY1MjJmNGRlMC4u
MzliZWRlMDVjM2FhZTFkYTFjMTI1ZjQ4NzcwMGYwYjhmOTg0MGI1YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKQEAg
LTE5Myw2ICsxOTMsNyBAQCBjbGFzcyBWaWV3R2VzdHVyZUNvbnRyb2xsZXI7CiAgICAgQ0dSZWN0
IF9hbmltYXRlZFJlc2l6ZU9sZEJvdW5kczsKICAgICBDR0Zsb2F0IF9hbmltYXRlZFJlc2l6ZU9s
ZE1pbmltdW1FZmZlY3RpdmVEZXZpY2VXaWR0aDsKICAgICBpbnQzMl90IF9hbmltYXRlZFJlc2l6
ZU9sZE9yaWVudGF0aW9uOworICAgIEJPT0wgX2FkYXB0aXZlRHVyaW5nQW5pbWF0ZWRSZXNpemU7
CiAgICAgVUlFZGdlSW5zZXRzIF9hbmltYXRlZFJlc2l6ZU9sZE9ic2N1cmVkSW5zZXRzOwogICAg
IFJldGFpblB0cjxVSVZpZXc+IF9yZXNpemVBbmltYXRpb25WaWV3OwogICAgIENHRmxvYXQgX2xh
c3RBZGp1c3RtZW50Rm9yU2Nyb2xsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCA5M2ZkMmRmMzc1MzM2MDVmZDlk
N2IwNDI1MWYxMzM1MGQxZDFjNWFkLi40ZDMyMGZkYTk5ODUwYzFiYmJmNjFiZDg2NWUyNTNhMzE5
NzE3OGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmgKQEAgLTQ3Nyw2ICs0NzcsOCBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4K
IAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBVSVZpZXcgKl9zYWZlQnJvd3NpbmdX
YXJuaW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQuNCksIGlvcygxMi4yKSk7CiAKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFkYXB0aXZlQW5pbWF0ZWRSZXNpemU6KSBC
T09MIF9hZGFwdGl2ZUFuaW1hdGVkUmVzaXplOworCiAtIChDR1BvaW50KV9jb252ZXJ0UG9pbnRG
cm9tQ29udGVudHNUb1ZpZXc6KENHUG9pbnQpcG9pbnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAu
MCkpOwogLSAoQ0dQb2ludClfY29udmVydFBvaW50RnJvbVZpZXdUb0NvbnRlbnRzOihDR1BvaW50
KXBvaW50IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQppbmRleCAzNjNhYzQ0ODY5MGVlNTEy
MmEzY2U2YTg3NDkyYTM5NmM5MDRhNWZmLi5hOThmYTg3M2NkZDcwZTUxYTJkMWY5YjBiNzI3YTZk
MTQ5ZjJjMGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dL
V2ViVmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2Vi
Vmlld0lPUy5tbQpAQCAtNzgyLDYgKzc4Miw5IEBAIC0gKHZvaWQpX2RpZENvbW1pdExheWVyVHJl
ZUR1cmluZ0FuaW1hdGVkUmVzaXplOihjb25zdCBXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoX2FkYXB0aXZlRHVyaW5nQW5pbWF0ZWRS
ZXNpemUpCisgICAgICAgIHJldHVybjsKKwogICAgIC8vIElmIGEgY29tbWl0IGFycml2ZXMgZHVy
aW5nIHRoZSBsaXZlIHBhcnQgb2YgYSByZXNpemUgYnV0IGJlZm9yZSB0aGUKICAgICAvLyBsYXll
ciB0cmVlIHRha2VzIHRoZSBjdXJyZW50IHJlc2l6ZSBpbnRvIGFjY291bnQsIGl0IGNvdWxkIGNo
YW5nZSB0aGUKICAgICAvLyBXS0NvbnRlbnRWaWV3J3Mgc2l6ZS4gVXBkYXRlIHRoZSByZXNpemVB
bmltYXRpb25WaWV3J3Mgc2NhbGUgdG8gZW5zdXJlCkBAIC0yODc5LDYgKzI4ODIsMTYgQEAgLSAo
dm9pZClfaGlkZUNvbnRlbnRVbnRpbE5leHRVcGRhdGUKICAgICAgICAgYXJlYS0+aGlkZUNvbnRl
bnRVbnRpbEFueVVwZGF0ZSgpOwogfQogCistICh2b2lkKV9zZXRBZGFwdGl2ZUFuaW1hdGVkUmVz
aXplOihCT09MKWFkYXB0aXZlQW5pbWF0ZWRSZXNpemUKK3sKKyAgICBfYWRhcHRpdmVEdXJpbmdB
bmltYXRlZFJlc2l6ZSA9IGFkYXB0aXZlQW5pbWF0ZWRSZXNpemU7Cit9CisKKy0gKEJPT0wpX2Fk
YXB0aXZlQW5pbWF0ZWRSZXNpemUKK3sKKyAgICByZXR1cm4gX2FkYXB0aXZlRHVyaW5nQW5pbWF0
ZWRSZXNpemU7Cit9CisKIC0gKHZvaWQpX2JlZ2luQW5pbWF0ZWRSZXNpemVXaXRoVXBkYXRlczoo
dm9pZCAoXikodm9pZCkpdXBkYXRlQmxvY2sKIHsKICAgICBDR1JlY3Qgb2xkQm91bmRzID0gc2Vs
Zi5ib3VuZHM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423957</attachid>
            <date>2021-03-22 16:18:52 -0700</date>
            <delta_ts>2021-03-23 13:08:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223530-20210322161851.patch</filename>
            <type>text/plain</type>
            <size>5852</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0Nzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUzMzEzZmE2YWYwYTE5ZGY0
NWI5MzIwMzJkY2VkNTgxNjdlOTE2YmIuLjA0NmUwOTA4YjYzNDQ1MmM4MTBiZmJhN2IyZTFiZmVm
MDc3ZmI3ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjEtMDMtMjIgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KKworICAgICAgICBJZ25vcmUgbWlkZGxlIGNvbW1pdHMg
ZHVyaW5nIGFuaW1hdGVkIHJlc2l6ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIzNTMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2hlbiByZWNlaXZpbmcgQ29tbWl0TGF5ZXJUcmVlIG1lc3NhZ2UgZHVy
aW5nIGFuaW1hdGVkIHJlc2l6ZSBhbmQgaXQgaXMgbm90IGZvciBhbmltYXRlZCByZXNpemUgdXBk
YXRlLCB3ZSB0ZW5kCisgICAgICAgIHRvIHRoaW5rIGl0IGlzIGFuIHVwZGF0ZSBvbiB0aGUgZnJh
bWUgc2l6ZSBmcm9tIHdlYiBwcm9jZXNzIGFuZCB3ZSBzaG91bGQgYWRhcHRpdmVseSBhZGp1c3Qg
c2NhbGUgdG8gcmVmbGVjdCB0aGUKKyAgICAgICAgY2hhbmdlLiBIb3dldmVyLCBDb21taXRMYXll
clRyZWUgZG9lcyBub3QgbWVhbiB3ZWIgcHJvY2VzcyBpc3N1ZXMgbmV3IHBhaW50LCBzbyB0aGUg
YWRqdXN0bWVudCBjYW4gYmUgd3JvbmcuIFNlZSAKKyAgICAgICAgcmRhcjovLzQ3NjIzMTQwLCB3
aGVyZSBtaWRkbGUgY29tbWl0cyB1c3VhbGx5IGRvbid0IHNpZ25hbCBhbiB1cGRhdGUgYW5kIHNj
YWxpbmcgZm9yIHRoZW0gY2F1c2VzIGZsYXNoIG9mIHdyb25nIAorICAgICAgICBzY2FsZS4gCisK
KyAgICAgICAgVG8gc29sdmUgdGhpcywgd2UgY2FuIGFkZCBhbiBTUEkgdG8gbGV0IGNsaWVudHMg
c3BlY2lmeSB0aGV5IGRvbid0IHdhbnQgdXMgdG8gaGFuZGxlIG1pZGRsZSBjb21taXRzLCBidXQg
aXQgCisgICAgICAgIHNlZW1zIGV4aXN0aW5nIGNsaWVudCwgU2FmYXJpLCBhbHNvIGRvZXNuJ3Qg
aGl0IHRoZSBhZGF0aXZlIHNjYWxpbmcgcGF0aCBiZWNhdXNlIGl0IGFsd2F5cyBlYXJseSByZXR1
cm5zIGF0CisgICAgICAgIF93YWl0aW5nRm9yRW5kQW5pbWF0ZWRSZXNpemUuIEluIHRoaXMgY2Fz
ZSwgbGV0J3MganVzdCBpZ25vcmUgbWlkZGxlIGNvbW1pdHMgYW5kIHJlbW92ZSBjb3JyZXNwb25k
aW5nIGNvZGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW06
CisgICAgICAgICgtW1dLV2ViVmlldyBfZGlkQ29tbWl0TGF5ZXJUcmVlRHVyaW5nQW5pbWF0ZWRS
ZXNpemU6XSk6CisKIDIwMjEtMDMtMjIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBhbiBlYXJseSByZXR1cm4gaW4gVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6OmNvbXB1dGVGaWx0ZXJlZERldmljZUxpc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KaW5kZXggMzYzYWM0NDg2
OTBlZTUxMjJhM2NlNmE4NzQ5MmEzOTZjOTA0YTVmZi4uNzRlYTUyOTJjMjE1NGZhNDc3YTk5YzQ1
MWI4YzAwYjJhNTY5NjJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2lvcy9XS1dlYlZpZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lv
cy9XS1dlYlZpZXdJT1MubW0KQEAgLTc1NSw0NCArNzU1LDMxIEBAIC0gKFdlYkNvcmU6OkZsb2F0
UmVjdCl2aXNpYmxlUmVjdEluVmlld0Nvb3JkaW5hdGVzCiAtICh2b2lkKV9kaWRDb21taXRMYXll
clRyZWVEdXJpbmdBbmltYXRlZFJlc2l6ZTooY29uc3QgV2ViS2l0OjpSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbiYpbGF5ZXJUcmVlVHJhbnNhY3Rpb24KIHsKICAgICBhdXRvIHVwZGF0ZUlEID0g
bGF5ZXJUcmVlVHJhbnNhY3Rpb24uZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKCk7Ci0gICAg
aWYgKHVwZGF0ZUlEICYmICp1cGRhdGVJRCA9PSBfY3VycmVudER5bmFtaWNWaWV3cG9ydFNpemVV
cGRhdGVJRCkgewotICAgICAgICBkb3VibGUgcGFnZVNjYWxlID0gbGF5ZXJUcmVlVHJhbnNhY3Rp
b24ucGFnZVNjYWxlRmFjdG9yKCk7Ci0gICAgICAgIFdlYkNvcmU6OkludFBvaW50IHNjcm9sbFBv
c2l0aW9uID0gbGF5ZXJUcmVlVHJhbnNhY3Rpb24uc2Nyb2xsUG9zaXRpb24oKTsKLQotICAgICAg
ICBDR0Zsb2F0IGFuaW1hdGluZ1NjYWxlVGFyZ2V0ID0gW1tfcmVzaXplQW5pbWF0aW9uVmlldyBs
YXllcl0gdHJhbnNmb3JtXS5tMTE7Ci0gICAgICAgIGRvdWJsZSBjdXJyZW50VGFyZ2V0U2NhbGUg
PSBhbmltYXRpbmdTY2FsZVRhcmdldCAqIFtbX2NvbnRlbnRWaWV3IGxheWVyXSB0cmFuc2Zvcm1d
Lm0xMTsKLSAgICAgICAgZG91YmxlIHNjYWxlID0gcGFnZVNjYWxlIC8gY3VycmVudFRhcmdldFNj
YWxlOwotICAgICAgICBfcmVzaXplQW5pbWF0aW9uVHJhbnNmb3JtQWRqdXN0bWVudHMgPSBDQVRy
YW5zZm9ybTNETWFrZVNjYWxlKHNjYWxlLCBzY2FsZSwgMSk7Ci0KLSAgICAgICAgQ0dQb2ludCBu
ZXdDb250ZW50T2Zmc2V0ID0gW3NlbGYgX2NvbnRlbnRPZmZzZXRBZGp1c3RlZEZvck9ic2N1cmVk
SW5zZXQ6Q0dQb2ludE1ha2Uoc2Nyb2xsUG9zaXRpb24ueCgpICogcGFnZVNjYWxlLCBzY3JvbGxQ
b3NpdGlvbi55KCkgKiBwYWdlU2NhbGUpXTsKLSAgICAgICAgQ0dQb2ludCBjdXJyZW50Q29udGVu
dE9mZnNldCA9IFtfc2Nyb2xsVmlldyBjb250ZW50T2Zmc2V0XTsKLQotICAgICAgICBfcmVzaXpl
QW5pbWF0aW9uVHJhbnNmb3JtQWRqdXN0bWVudHMubTQxID0gKGN1cnJlbnRDb250ZW50T2Zmc2V0
LnggLSBuZXdDb250ZW50T2Zmc2V0LngpIC8gYW5pbWF0aW5nU2NhbGVUYXJnZXQ7Ci0gICAgICAg
IF9yZXNpemVBbmltYXRpb25UcmFuc2Zvcm1BZGp1c3RtZW50cy5tNDIgPSAoY3VycmVudENvbnRl
bnRPZmZzZXQueSAtIG5ld0NvbnRlbnRPZmZzZXQueSkgLyBhbmltYXRpbmdTY2FsZVRhcmdldDsK
KyAgICBpZiAodXBkYXRlSUQgIT0gX2N1cnJlbnREeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQp
CisgICAgICAgIHJldHVybjsKIAotICAgICAgICBbX3Jlc2l6ZUFuaW1hdGlvblZpZXcgbGF5ZXJd
LnN1YmxheWVyVHJhbnNmb3JtID0gX3Jlc2l6ZUFuaW1hdGlvblRyYW5zZm9ybUFkanVzdG1lbnRz
OworICAgIGRvdWJsZSBwYWdlU2NhbGUgPSBsYXllclRyZWVUcmFuc2FjdGlvbi5wYWdlU2NhbGVG
YWN0b3IoKTsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBzY3JvbGxQb3NpdGlvbiA9IGxheWVyVHJl
ZVRyYW5zYWN0aW9uLnNjcm9sbFBvc2l0aW9uKCk7CiAKLSAgICAgICAgLy8gSWYgd2UndmUgYWxy
ZWFkeSBwYXNzZWQgZW5kQW5pbWF0ZWRSZXNpemUsIGltbWVkaWF0ZWx5IGNvbXBsZXRlCi0gICAg
ICAgIC8vIHRoZSByZXNpemUgd2hlbiB3ZSBoYXZlIGFuIHVwLXRvLWRhdGUgbGF5ZXIgdHJlZS4g
T3RoZXJ3aXNlLAotICAgICAgICAvLyB3ZSB3aWxsIGRlZmVyIGNvbXBsZXRpb24gdW50aWwgZW5k
QW5pbWF0ZWRSZXNpemUuCi0gICAgICAgIF93YWl0aW5nRm9yQ29tbWl0QWZ0ZXJBbmltYXRlZFJl
c2l6ZSA9IE5POwotICAgICAgICBpZiAoIV93YWl0aW5nRm9yRW5kQW5pbWF0ZWRSZXNpemUpCi0g
ICAgICAgICAgICBbc2VsZiBfZGlkQ29tcGxldGVBbmltYXRlZFJlc2l6ZV07CisgICAgQ0dGbG9h
dCBhbmltYXRpbmdTY2FsZVRhcmdldCA9IFtbX3Jlc2l6ZUFuaW1hdGlvblZpZXcgbGF5ZXJdIHRy
YW5zZm9ybV0ubTExOworICAgIGRvdWJsZSBjdXJyZW50VGFyZ2V0U2NhbGUgPSBhbmltYXRpbmdT
Y2FsZVRhcmdldCAqIFtbX2NvbnRlbnRWaWV3IGxheWVyXSB0cmFuc2Zvcm1dLm0xMTsKKyAgICBk
b3VibGUgc2NhbGUgPSBwYWdlU2NhbGUgLyBjdXJyZW50VGFyZ2V0U2NhbGU7CisgICAgX3Jlc2l6
ZUFuaW1hdGlvblRyYW5zZm9ybUFkanVzdG1lbnRzID0gQ0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShz
Y2FsZSwgc2NhbGUsIDEpOwogCi0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgQ0dQb2ludCBu
ZXdDb250ZW50T2Zmc2V0ID0gW3NlbGYgX2NvbnRlbnRPZmZzZXRBZGp1c3RlZEZvck9ic2N1cmVk
SW5zZXQ6Q0dQb2ludE1ha2Uoc2Nyb2xsUG9zaXRpb24ueCgpICogcGFnZVNjYWxlLCBzY3JvbGxQ
b3NpdGlvbi55KCkgKiBwYWdlU2NhbGUpXTsKKyAgICBDR1BvaW50IGN1cnJlbnRDb250ZW50T2Zm
c2V0ID0gW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdOwogCi0gICAgLy8gSWYgYSBjb21taXQg
YXJyaXZlcyBkdXJpbmcgdGhlIGxpdmUgcGFydCBvZiBhIHJlc2l6ZSBidXQgYmVmb3JlIHRoZQot
ICAgIC8vIGxheWVyIHRyZWUgdGFrZXMgdGhlIGN1cnJlbnQgcmVzaXplIGludG8gYWNjb3VudCwg
aXQgY291bGQgY2hhbmdlIHRoZQotICAgIC8vIFdLQ29udGVudFZpZXcncyBzaXplLiBVcGRhdGUg
dGhlIHJlc2l6ZUFuaW1hdGlvblZpZXcncyBzY2FsZSB0byBlbnN1cmUKLSAgICAvLyB3ZSBjb250
aW51ZSB0byBmaWxsIHRoZSB3aWR0aCBvZiB0aGUgcmVzaXplIHRhcmdldC4KKyAgICBfcmVzaXpl
QW5pbWF0aW9uVHJhbnNmb3JtQWRqdXN0bWVudHMubTQxID0gKGN1cnJlbnRDb250ZW50T2Zmc2V0
LnggLSBuZXdDb250ZW50T2Zmc2V0LngpIC8gYW5pbWF0aW5nU2NhbGVUYXJnZXQ7CisgICAgX3Jl
c2l6ZUFuaW1hdGlvblRyYW5zZm9ybUFkanVzdG1lbnRzLm00MiA9IChjdXJyZW50Q29udGVudE9m
ZnNldC55IC0gbmV3Q29udGVudE9mZnNldC55KSAvIGFuaW1hdGluZ1NjYWxlVGFyZ2V0OwogCi0g
ICAgaWYgKF93YWl0aW5nRm9yRW5kQW5pbWF0ZWRSZXNpemUpCi0gICAgICAgIHJldHVybjsKKyAg
ICBbX3Jlc2l6ZUFuaW1hdGlvblZpZXcgbGF5ZXJdLnN1YmxheWVyVHJhbnNmb3JtID0gX3Jlc2l6
ZUFuaW1hdGlvblRyYW5zZm9ybUFkanVzdG1lbnRzOwogCi0gICAgYXV0byBuZXdWaWV3TGF5b3V0
U2l6ZSA9IFtzZWxmIGFjdGl2ZVZpZXdMYXlvdXRTaXplOnNlbGYuYm91bmRzXTsKLSAgICBDR0Zs
b2F0IHJlc2l6ZUFuaW1hdGlvblZpZXdTY2FsZSA9IF9hbmltYXRlZFJlc2l6ZU9yaWdpbmFsQ29u
dGVudFdpZHRoIC8gbmV3Vmlld0xheW91dFNpemUud2lkdGgoKTsKLSAgICBbW19yZXNpemVBbmlt
YXRpb25WaWV3IGxheWVyXSBzZXRTdWJsYXllclRyYW5zZm9ybTpDQVRyYW5zZm9ybTNETWFrZVNj
YWxlKHJlc2l6ZUFuaW1hdGlvblZpZXdTY2FsZSwgcmVzaXplQW5pbWF0aW9uVmlld1NjYWxlLCAx
KV07CisgICAgLy8gSWYgd2UndmUgYWxyZWFkeSBwYXNzZWQgZW5kQW5pbWF0ZWRSZXNpemUsIGlt
bWVkaWF0ZWx5IGNvbXBsZXRlCisgICAgLy8gdGhlIHJlc2l6ZSB3aGVuIHdlIGhhdmUgYW4gdXAt
dG8tZGF0ZSBsYXllciB0cmVlLiBPdGhlcndpc2UsCisgICAgLy8gd2Ugd2lsbCBkZWZlciBjb21w
bGV0aW9uIHVudGlsIGVuZEFuaW1hdGVkUmVzaXplLgorICAgIF93YWl0aW5nRm9yQ29tbWl0QWZ0
ZXJBbmltYXRlZFJlc2l6ZSA9IE5POworICAgIGlmICghX3dhaXRpbmdGb3JFbmRBbmltYXRlZFJl
c2l6ZSkKKyAgICAgICAgW3NlbGYgX2RpZENvbXBsZXRlQW5pbWF0ZWRSZXNpemVdOwogfQogCiAt
ICh2b2lkKV90cmFja1RyYW5zYWN0aW9uQ29tbWl0Oihjb25zdCBXZWJLaXQ6OlJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uJilsYXllclRyZWVUcmFuc2FjdGlvbgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424053</attachid>
            <date>2021-03-23 13:09:00 -0700</date>
            <delta_ts>2021-03-24 09:45:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223530-20210323130859.patch</filename>
            <type>text/plain</type>
            <size>5853</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0ODc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgwMTNkZDAyNzA4MjBjMTNh
MGJkMjI5ZjZjZjk4N2I1ZTIzNzZmN2MuLjdkNjY2NmNhNzAzY2VlOWY4NGEwOTdiOGUyNjUzZWQ2
YjA5ZWE1OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEtMDMtMjMgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KKworICAgICAgICBJZ25vcmUgbWlkZGxlIGNvbW1pdHMg
ZHVyaW5nIGFuaW1hdGVkIHJlc2l6ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIzNTMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRm9yIGFuaW1hdGVkIHJlc2l6ZSwgVUkgcHJvY2VzcyBzZXRzIGxheWVy
IHRyYW5zZm9ybSB0byBmaXQgbmV3IHNpemUgdW50aWwgd2ViIHByb2Nlc3MgcGlja3MgdXAgc2l6
ZSBjaGFuZ2UgYW5kIAorICAgICAgICBwYWludHMuIEl0IGlzIHBvc3NpYmxlIHRoYXQgVUkgcHJv
Y2VzcyByZWNlaXZlcyBhIGNvbW1pdCBkdXJpbmcgYW5pbWF0ZWQgcmVzaXplIGFuZCB0aGUgY29t
bWl0IGlzIG5vdCBmb3IgdGhlIAorICAgICAgICBhbmltYXRlZCByZXNpemUgKHdlYiBwcm9jZXNz
IGNvbW1pdHMgYmVmb3JlIGFuaW1hdGVkIHJlc2l6ZSkuIEluIHRoaXMgY2FzZSwgb3VyIGN1cnJl
bnQgaW1wbGVtZW50YXRpb24gaXM6IGlmIAorICAgICAgICBTUEkgY2xpZW50IHNwZWNpZXMgdGhl
cmUgd2lsbCBiZSBubyBvdGhlciB1cGRhdGUgKCFfd2FpdGluZ0ZvckVuZEFuaW1hdGVkUmVzaXpl
KSwgd2UgY2hhbmdlIGxheWVyIHRyYW5zZm9ybSB0bworICAgICAgICByZWZsZWN0IGNoYW5nZSBv
ZiB0aGUgbWlkZGxlIGNvbW1pdC4gCisKKyAgICAgICAgSG93ZXZlciwgdGhhdCBjb21taXQgZG9l
cyBub3QgbWVhbiB3ZWIgcHJvY2VzcyBpc3N1ZXMgbmV3IHBhaW50LCBzbyB0aGUgYWRqdXN0bWVu
dCBjYW4gYmUgd3JvbmcuIFdlIGZpbmQgdGhlIAorICAgICAgICBoYW5kbGluZyBvZiBtaWRkbGUg
Y29tbWl0cyBjYXVzZXMgaXNzdWVzIGluIFNQSSBjbGllbnQncyB1c2UgY2FzZSAgKHJkYXI6Ly80
NzYyMzE0MCkuIEFsc28gYnkgbWFudWFsIHRlc3RpbmcsIAorICAgICAgICBpdCdzIG5vdCBjbGVh
ciBob3cgdGhlIGNvZGUgY2FuIGJlbmVmaXQgY3VycmVudCBTUEkgY2xpZW50cy4gSXQgc2VlbXMg
dG8gY2F1c2UgdGhlIHNhbWUgdHJvdWJsZSBzb21ldGltZXMuIFNvIAorICAgICAgICBsZXQncyBq
dXN0IHJlbW92ZSBpdC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lP
Uy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaWRDb21taXRMYXllclRyZWVEdXJpbmdBbmlt
YXRlZFJlc2l6ZTpdKToKKwogMjAyMS0wMy0yMyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5k
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gWDExIGJ1aWxkIGZpeGVzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4IDM2M2FjNDQ4
NjkwZWU1MTIyYTNjZTZhODc0OTJhMzk2YzkwNGE1ZmYuLjc0ZWE1MjkyYzIxNTRmYTQ3N2E5OWM0
NTFiOGMwMGIyYTU2OTYyZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9p
b3MvV0tXZWJWaWV3SU9TLm1tCkBAIC03NTUsNDQgKzc1NSwzMSBAQCAtIChXZWJDb3JlOjpGbG9h
dFJlY3QpdmlzaWJsZVJlY3RJblZpZXdDb29yZGluYXRlcwogLSAodm9pZClfZGlkQ29tbWl0TGF5
ZXJUcmVlRHVyaW5nQW5pbWF0ZWRSZXNpemU6KGNvbnN0IFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb24mKWxheWVyVHJlZVRyYW5zYWN0aW9uCiB7CiAgICAgYXV0byB1cGRhdGVJRCA9
IGxheWVyVHJlZVRyYW5zYWN0aW9uLmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCgpOwotICAg
IGlmICh1cGRhdGVJRCAmJiAqdXBkYXRlSUQgPT0gX2N1cnJlbnREeW5hbWljVmlld3BvcnRTaXpl
VXBkYXRlSUQpIHsKLSAgICAgICAgZG91YmxlIHBhZ2VTY2FsZSA9IGxheWVyVHJlZVRyYW5zYWN0
aW9uLnBhZ2VTY2FsZUZhY3RvcigpOwotICAgICAgICBXZWJDb3JlOjpJbnRQb2ludCBzY3JvbGxQ
b3NpdGlvbiA9IGxheWVyVHJlZVRyYW5zYWN0aW9uLnNjcm9sbFBvc2l0aW9uKCk7Ci0KLSAgICAg
ICAgQ0dGbG9hdCBhbmltYXRpbmdTY2FsZVRhcmdldCA9IFtbX3Jlc2l6ZUFuaW1hdGlvblZpZXcg
bGF5ZXJdIHRyYW5zZm9ybV0ubTExOwotICAgICAgICBkb3VibGUgY3VycmVudFRhcmdldFNjYWxl
ID0gYW5pbWF0aW5nU2NhbGVUYXJnZXQgKiBbW19jb250ZW50VmlldyBsYXllcl0gdHJhbnNmb3Jt
XS5tMTE7Ci0gICAgICAgIGRvdWJsZSBzY2FsZSA9IHBhZ2VTY2FsZSAvIGN1cnJlbnRUYXJnZXRT
Y2FsZTsKLSAgICAgICAgX3Jlc2l6ZUFuaW1hdGlvblRyYW5zZm9ybUFkanVzdG1lbnRzID0gQ0FU
cmFuc2Zvcm0zRE1ha2VTY2FsZShzY2FsZSwgc2NhbGUsIDEpOwotCi0gICAgICAgIENHUG9pbnQg
bmV3Q29udGVudE9mZnNldCA9IFtzZWxmIF9jb250ZW50T2Zmc2V0QWRqdXN0ZWRGb3JPYnNjdXJl
ZEluc2V0OkNHUG9pbnRNYWtlKHNjcm9sbFBvc2l0aW9uLngoKSAqIHBhZ2VTY2FsZSwgc2Nyb2xs
UG9zaXRpb24ueSgpICogcGFnZVNjYWxlKV07Ci0gICAgICAgIENHUG9pbnQgY3VycmVudENvbnRl
bnRPZmZzZXQgPSBbX3Njcm9sbFZpZXcgY29udGVudE9mZnNldF07Ci0KLSAgICAgICAgX3Jlc2l6
ZUFuaW1hdGlvblRyYW5zZm9ybUFkanVzdG1lbnRzLm00MSA9IChjdXJyZW50Q29udGVudE9mZnNl
dC54IC0gbmV3Q29udGVudE9mZnNldC54KSAvIGFuaW1hdGluZ1NjYWxlVGFyZ2V0OwotICAgICAg
ICBfcmVzaXplQW5pbWF0aW9uVHJhbnNmb3JtQWRqdXN0bWVudHMubTQyID0gKGN1cnJlbnRDb250
ZW50T2Zmc2V0LnkgLSBuZXdDb250ZW50T2Zmc2V0LnkpIC8gYW5pbWF0aW5nU2NhbGVUYXJnZXQ7
CisgICAgaWYgKHVwZGF0ZUlEICE9IF9jdXJyZW50RHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlE
KQorICAgICAgICByZXR1cm47CiAKLSAgICAgICAgW19yZXNpemVBbmltYXRpb25WaWV3IGxheWVy
XS5zdWJsYXllclRyYW5zZm9ybSA9IF9yZXNpemVBbmltYXRpb25UcmFuc2Zvcm1BZGp1c3RtZW50
czsKKyAgICBkb3VibGUgcGFnZVNjYWxlID0gbGF5ZXJUcmVlVHJhbnNhY3Rpb24ucGFnZVNjYWxl
RmFjdG9yKCk7CisgICAgV2ViQ29yZTo6SW50UG9pbnQgc2Nyb2xsUG9zaXRpb24gPSBsYXllclRy
ZWVUcmFuc2FjdGlvbi5zY3JvbGxQb3NpdGlvbigpOwogCi0gICAgICAgIC8vIElmIHdlJ3ZlIGFs
cmVhZHkgcGFzc2VkIGVuZEFuaW1hdGVkUmVzaXplLCBpbW1lZGlhdGVseSBjb21wbGV0ZQotICAg
ICAgICAvLyB0aGUgcmVzaXplIHdoZW4gd2UgaGF2ZSBhbiB1cC10by1kYXRlIGxheWVyIHRyZWUu
IE90aGVyd2lzZSwKLSAgICAgICAgLy8gd2Ugd2lsbCBkZWZlciBjb21wbGV0aW9uIHVudGlsIGVu
ZEFuaW1hdGVkUmVzaXplLgotICAgICAgICBfd2FpdGluZ0ZvckNvbW1pdEFmdGVyQW5pbWF0ZWRS
ZXNpemUgPSBOTzsKLSAgICAgICAgaWYgKCFfd2FpdGluZ0ZvckVuZEFuaW1hdGVkUmVzaXplKQot
ICAgICAgICAgICAgW3NlbGYgX2RpZENvbXBsZXRlQW5pbWF0ZWRSZXNpemVdOworICAgIENHRmxv
YXQgYW5pbWF0aW5nU2NhbGVUYXJnZXQgPSBbW19yZXNpemVBbmltYXRpb25WaWV3IGxheWVyXSB0
cmFuc2Zvcm1dLm0xMTsKKyAgICBkb3VibGUgY3VycmVudFRhcmdldFNjYWxlID0gYW5pbWF0aW5n
U2NhbGVUYXJnZXQgKiBbW19jb250ZW50VmlldyBsYXllcl0gdHJhbnNmb3JtXS5tMTE7CisgICAg
ZG91YmxlIHNjYWxlID0gcGFnZVNjYWxlIC8gY3VycmVudFRhcmdldFNjYWxlOworICAgIF9yZXNp
emVBbmltYXRpb25UcmFuc2Zvcm1BZGp1c3RtZW50cyA9IENBVHJhbnNmb3JtM0RNYWtlU2NhbGUo
c2NhbGUsIHNjYWxlLCAxKTsKIAotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIENHUG9pbnQg
bmV3Q29udGVudE9mZnNldCA9IFtzZWxmIF9jb250ZW50T2Zmc2V0QWRqdXN0ZWRGb3JPYnNjdXJl
ZEluc2V0OkNHUG9pbnRNYWtlKHNjcm9sbFBvc2l0aW9uLngoKSAqIHBhZ2VTY2FsZSwgc2Nyb2xs
UG9zaXRpb24ueSgpICogcGFnZVNjYWxlKV07CisgICAgQ0dQb2ludCBjdXJyZW50Q29udGVudE9m
ZnNldCA9IFtfc2Nyb2xsVmlldyBjb250ZW50T2Zmc2V0XTsKIAotICAgIC8vIElmIGEgY29tbWl0
IGFycml2ZXMgZHVyaW5nIHRoZSBsaXZlIHBhcnQgb2YgYSByZXNpemUgYnV0IGJlZm9yZSB0aGUK
LSAgICAvLyBsYXllciB0cmVlIHRha2VzIHRoZSBjdXJyZW50IHJlc2l6ZSBpbnRvIGFjY291bnQs
IGl0IGNvdWxkIGNoYW5nZSB0aGUKLSAgICAvLyBXS0NvbnRlbnRWaWV3J3Mgc2l6ZS4gVXBkYXRl
IHRoZSByZXNpemVBbmltYXRpb25WaWV3J3Mgc2NhbGUgdG8gZW5zdXJlCi0gICAgLy8gd2UgY29u
dGludWUgdG8gZmlsbCB0aGUgd2lkdGggb2YgdGhlIHJlc2l6ZSB0YXJnZXQuCisgICAgX3Jlc2l6
ZUFuaW1hdGlvblRyYW5zZm9ybUFkanVzdG1lbnRzLm00MSA9IChjdXJyZW50Q29udGVudE9mZnNl
dC54IC0gbmV3Q29udGVudE9mZnNldC54KSAvIGFuaW1hdGluZ1NjYWxlVGFyZ2V0OworICAgIF9y
ZXNpemVBbmltYXRpb25UcmFuc2Zvcm1BZGp1c3RtZW50cy5tNDIgPSAoY3VycmVudENvbnRlbnRP
ZmZzZXQueSAtIG5ld0NvbnRlbnRPZmZzZXQueSkgLyBhbmltYXRpbmdTY2FsZVRhcmdldDsKIAot
ICAgIGlmIChfd2FpdGluZ0ZvckVuZEFuaW1hdGVkUmVzaXplKQotICAgICAgICByZXR1cm47Cisg
ICAgW19yZXNpemVBbmltYXRpb25WaWV3IGxheWVyXS5zdWJsYXllclRyYW5zZm9ybSA9IF9yZXNp
emVBbmltYXRpb25UcmFuc2Zvcm1BZGp1c3RtZW50czsKIAotICAgIGF1dG8gbmV3Vmlld0xheW91
dFNpemUgPSBbc2VsZiBhY3RpdmVWaWV3TGF5b3V0U2l6ZTpzZWxmLmJvdW5kc107Ci0gICAgQ0dG
bG9hdCByZXNpemVBbmltYXRpb25WaWV3U2NhbGUgPSBfYW5pbWF0ZWRSZXNpemVPcmlnaW5hbENv
bnRlbnRXaWR0aCAvIG5ld1ZpZXdMYXlvdXRTaXplLndpZHRoKCk7Ci0gICAgW1tfcmVzaXplQW5p
bWF0aW9uVmlldyBsYXllcl0gc2V0U3VibGF5ZXJUcmFuc2Zvcm06Q0FUcmFuc2Zvcm0zRE1ha2VT
Y2FsZShyZXNpemVBbmltYXRpb25WaWV3U2NhbGUsIHJlc2l6ZUFuaW1hdGlvblZpZXdTY2FsZSwg
MSldOworICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgcGFzc2VkIGVuZEFuaW1hdGVkUmVzaXplLCBp
bW1lZGlhdGVseSBjb21wbGV0ZQorICAgIC8vIHRoZSByZXNpemUgd2hlbiB3ZSBoYXZlIGFuIHVw
LXRvLWRhdGUgbGF5ZXIgdHJlZS4gT3RoZXJ3aXNlLAorICAgIC8vIHdlIHdpbGwgZGVmZXIgY29t
cGxldGlvbiB1bnRpbCBlbmRBbmltYXRlZFJlc2l6ZS4KKyAgICBfd2FpdGluZ0ZvckNvbW1pdEFm
dGVyQW5pbWF0ZWRSZXNpemUgPSBOTzsKKyAgICBpZiAoIV93YWl0aW5nRm9yRW5kQW5pbWF0ZWRS
ZXNpemUpCisgICAgICAgIFtzZWxmIF9kaWRDb21wbGV0ZUFuaW1hdGVkUmVzaXplXTsKIH0KIAog
LSAodm9pZClfdHJhY2tUcmFuc2FjdGlvbkNvbW1pdDooY29uc3QgV2ViS2l0OjpSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbiYpbGF5ZXJUcmVlVHJhbnNhY3Rpb24K
</data>

          </attachment>
      

    </bug>

</bugzilla>