<?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>84393</bug_id>
          
          <creation_ts>2012-04-19 15:36:12 -0700</creation_ts>
          <short_desc>Avoid calling updateCompositingLayers() more than once before each render</short_desc>
          <delta_ts>2024-04-22 11:26:42 -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>Compositing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=270898</see_also>
          <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>
          <dependson>201330</dependson>
          <blocked>84410</blocked>
    
    <blocked>98800</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Matt Woodrow">mattwoodrow</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>eoconnor</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mattwoodrow</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>606013</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-04-19 15:36:12 -0700</bug_when>
    <thetext>Pages that repeatedly call offsetWidth then change style will force a lot of unnecessary compositing updates. We should avoid them, and figure out a way to only update compositing layers before painting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606219</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-04-19 17:22:00 -0700</bug_when>
    <thetext>Maybe we could use the rAF mechanism here too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606230</commentid>
    <comment_count>2</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-19 17:30:56 -0700</bug_when>
    <thetext>One difficulty design-wise is that currently WebCore doesn&apos;t generally know if it&apos;s doing layout because the host wants to make a frame or if it&apos;s doing layout for some other reason (like JS wanted it to or the host wants it to do layout to query some values).  If we knew that in FrameView::layout then we could only update the compositing tree when it was a layout-because-it&apos;s-make-a-frame-time.

We could use the rAF mechanism since it&apos;s (hopefully) tied in to the host&apos;s &quot;I want to make a frame now&quot; scheduling mechanism.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606234</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-04-19 17:34:04 -0700</bug_when>
    <thetext>I don&apos;t think knowing the &quot;reason for layout&quot; in FrameView::layout is enough; you need to know if this is the last layout you&apos;ll get before painting happens.

We also have the &quot;sync compositing layer&quot; stuff that is based on a run loop observer but also fires before painting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606254</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-04-19 18:11:36 -0700</bug_when>
    <thetext>Just saw this when scrolling macnn.com, via JS calling pageYOffset.

Lots of time in

        absBounds = layer-&gt;renderer()-&gt;localToAbsoluteQuad(FloatRect(layer-&gt;localBoundingBox())).enclosingBoundingBox();

under RenderLayerCompositor::computeCompositingRequirements().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613788</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2012-05-01 16:45:59 -0700</bug_when>
    <thetext>&lt;rdar://problem/11359525&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779586</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-29 16:43:21 -0800</bug_when>
    <thetext>Site that would benefit from this: http://www.milwaukeepolicenews.com/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779600</commentid>
    <comment_count>7</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-11-29 17:04:22 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Site that would benefit from this: http://www.milwaukeepolicenews.com/

Can we add a platform hook that the embedder has to call when they wanna make a frame? I imagine it&apos;d tie to the run loop observer for you, and I&apos;ve have to hook it in somewhere for chromium (WebKit::WebViewImpl::layout() would be a good approximation).  I don&apos;t know where to put it for other ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779666</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-29 17:45:53 -0800</bug_when>
    <thetext>I think we should enhance RunLoop for this kind of thing. We would just need a callback for things that want to run near the end of the runloop (after timers, before layer committing).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779670</commentid>
    <comment_count>9</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-11-29 17:48:40 -0800</bug_when>
    <thetext>The RunLoop can spin many many times in between frames (hopefully each operation isn&apos;t blocking for 16ms), so I think just tracking that by itself will still produce a lot of unnecessary uCL() calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779678</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-29 17:55:05 -0800</bug_when>
    <thetext>Maybe we should leverage requestAnimationFrame underpinnings then. I already do that for TiledLayer flushing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779798</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-29 21:28:46 -0800</bug_when>
    <thetext>We can&apos;t just not update compositing layers, because otherwise GraphicsLayers will be left pointing at RenderLayerBackings which might have gone away.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907719</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-07-11 11:12:56 -0700</bug_when>
    <thetext>*** Bug 118555 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085498</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-15 09:21:02 -0700</bug_when>
    <thetext>Would it hurt compositing too much to make updating the compositing layers a completely separate pass from layout?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085505</commentid>
    <comment_count>14</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-04-15 09:31:50 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Would it hurt compositing too much to make updating the compositing layers a
&gt; completely separate pass from layout?

No, that would be ideal. The problem is that we can&apos;t easily disassociate compositing layer updates from layout without losing repaints. If we stored repaints differently this would be easier to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085515</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-15 09:44:18 -0700</bug_when>
    <thetext>So we need an in-WebKit data structure for tracking repaints and then we’d communicate any repainting to the OS only after updating compositing layers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085527</commentid>
    <comment_count>16</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-04-15 09:50:30 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; So we need an in-WebKit data structure for tracking repaints

We have this already (we accumulate dirty rects in GraphicsLayers). The problems are:
1. we dirty during layout, and dirtying assumes that you can find the relevant repaintContainer (which is a compositing layer) and compute a dirty rect relative to it.
2. RenderLayers cache repaint rects, which will also go stale if their repaint container changes because of compositing updates.

So we need a data structure that hangs off the render tree that tracks repaints, and can track them sensibly across multiple layouts, in a compositing-independent way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566543</commentid>
    <comment_count>17</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-08-29 21:32:33 -0700</bug_when>
    <thetext>I hacked this up and it mostly worked, but some tests fail because of tree statefulness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566552</commentid>
    <comment_count>18</comment_count>
      <attachid>377678</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-08-29 21:42:15 -0700</bug_when>
    <thetext>Created attachment 377678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1992325</commentid>
    <comment_count>19</comment_count>
      <attachid>468589</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2023-11-13 17:37:42 -0800</bug_when>
    <thetext>Created attachment 468589
Updated WIP patch, for EWS testing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1992580</commentid>
    <comment_count>20</comment_count>
      <attachid>468595</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2023-11-14 14:50:09 -0800</bug_when>
    <thetext>Created attachment 468595
Updated WIP patch, for EWS testing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1992875</commentid>
    <comment_count>21</comment_count>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2023-11-15 13:16:05 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/20556</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1995522</commentid>
    <comment_count>22</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-11-28 20:36:52 -0800</bug_when>
    <thetext>Committed 271261@main (b6b74556b8e6): &lt;https://commits.webkit.org/271261@main&gt;

Reviewed commits have been landed. Closing PR #20556 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377678</attachid>
            <date>2019-08-29 21:42:15 -0700</date>
            <delta_ts>2019-08-29 21:42:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84393-20190829214214.patch</filename>
            <type>text/plain</type>
            <size>10109</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzllNzNmM2JjMTQxYzM4
MDg2MmExNDI0MWZiN2QwZDExZTExZWNhNS4uODkwNzFhZGY1MzIyZDc3YTg1MWU5ZTM4YzlhNTY3
MzIzZDQ3ZThlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE5LTA4LTI5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEF2b2lkIGNhbGxp
bmcgdXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoKSBtb3JlIHRoYW4gb25jZSBiZWZvcmUgZWFjaCBy
ZW5kZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0
MzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJMYXlv
dXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp1cGRhdGVDb21wb3NpdGluZ0xheWVy
c0FmdGVyU2Nyb2xsaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2dnaW5nLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmluaXRpYWxpemVMb2dDaGFubmVsc0lmTmVjZXNzYXJ5KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTY3JvbGwpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpkaWRSZWNhbGNTdHlsZVdpdGhOb1BlbmRpbmdMYXlvdXQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaFBlbmRpbmdMYXllckNo
YW5nZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllclRy
ZWVBc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1
aXJlc093bkJhY2tpbmdTdG9yZSBjb25zdCk6CisKIDIwMTktMDgtMjkgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN5c3RlbSB0cmFjaW5nIHBv
aW50cyBmb3IgY29tcG9zaXRpbmcgdXBkYXRlcywgYW5kIHRvdWNoLWV2ZW50IGRpc3BhdGNoaW5n
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggY2I0YjgxYTM1Njg1YzhlYTBlZjFkMzFm
Nzc1MWE5ZTBlMDcwMDk5ZC4uNTMyMDI1OGExNDFiNDhhZTMzNzM2YjZlY2Q3NTNhOTQwMTk4MWNi
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNzkzLDExICs3OTMsMTEgQEAgYm9v
bCBGcmFtZVZpZXc6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTdHlsZUNoYW5nZSgpCiAK
IHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyTGF5b3V0KCkKIHsK
LSAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOwotICAgIGlm
ICghcmVuZGVyVmlldykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcmVuZGVyVmlldy0+Y29tcG9z
aXRvcigpLnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlVHlwZTo6QWZ0
ZXJMYXlvdXQpOworLy8gICAgUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZp
ZXcoKTsKKy8vICAgIGlmICghcmVuZGVyVmlldykKKy8vICAgICAgICByZXR1cm47CisvLworLy8g
ICAgcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBv
c2l0aW5nVXBkYXRlVHlwZTo6QWZ0ZXJMYXlvdXQpOwogfQogCiBHcmFwaGljc0xheWVyKiBGcmFt
ZVZpZXc6OmxheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0CkBAIC0yNTIxLDE1ICsy
NTIxLDE1IEBAIGJvb2wgRnJhbWVWaWV3OjpzaG91bGRVcGRhdGVDb21wb3NpdGluZ0xheWVyc0Fm
dGVyU2Nyb2xsaW5nKCkgY29uc3QKIAogdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZUNvbXBvc2l0aW5n
TGF5ZXJzQWZ0ZXJTY3JvbGxpbmcoKQogewotICAgIEFTU0VSVChsYXlvdXRDb250ZXh0KCkubGF5
b3V0UGhhc2UoKSA+PSBGcmFtZVZpZXdMYXlvdXRDb250ZXh0OjpMYXlvdXRQaGFzZTo6SW5Qb3N0
TGF5b3V0IHx8IGxheW91dENvbnRleHQoKS5sYXlvdXRQaGFzZSgpID09IEZyYW1lVmlld0xheW91
dENvbnRleHQ6OkxheW91dFBoYXNlOjpPdXRzaWRlTGF5b3V0KTsKLQotICAgIGlmICghc2hvdWxk
VXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlclNjcm9sbGluZygpKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBpZiAoIWxheW91dENvbnRleHQoKS5pc0xheW91dE5lc3RlZCgpICYmIGhhc1ZpZXdw
b3J0Q29uc3RyYWluZWRPYmplY3RzKCkpIHsKLSAgICAgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRl
clZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCkpCi0gICAgICAgICAgICByZW5kZXJWaWV3LT5jb21w
b3NpdG9yKCkudXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVUeXBlOjpP
blNjcm9sbCk7Ci0gICAgfQorLy8gICAgQVNTRVJUKGxheW91dENvbnRleHQoKS5sYXlvdXRQaGFz
ZSgpID49IEZyYW1lVmlld0xheW91dENvbnRleHQ6OkxheW91dFBoYXNlOjpJblBvc3RMYXlvdXQg
fHwgbGF5b3V0Q29udGV4dCgpLmxheW91dFBoYXNlKCkgPT0gRnJhbWVWaWV3TGF5b3V0Q29udGV4
dDo6TGF5b3V0UGhhc2U6Ok91dHNpZGVMYXlvdXQpOworLy8KKy8vICAgIGlmICghc2hvdWxkVXBk
YXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlclNjcm9sbGluZygpKQorLy8gICAgICAgIHJldHVybjsK
Ky8vCisvLyAgICBpZiAoIWxheW91dENvbnRleHQoKS5pc0xheW91dE5lc3RlZCgpICYmIGhhc1Zp
ZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzKCkpIHsKKy8vICAgICAgICBpZiAoUmVuZGVyVmlldyog
cmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKSkKKy8vICAgICAgICAgICAgcmVuZGVyVmll
dy0+Y29tcG9zaXRvcigpLnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRl
VHlwZTo6T25TY3JvbGwpOworLy8gICAgfQogfQogCiBib29sIEZyYW1lVmlldzo6aXNSdWJiZXJC
YW5kSW5Qcm9ncmVzcygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Mb2dnaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuY3BwCmluZGV4
IDg5OTE0MWNlMGQzOWQ0MTUxNDUwY2Y0ZTE2MzJjZGI0Y2E4NWFmOTcuLmU0OGZjNjQ1MzU1NDAx
ZDM5MzhlMjZhNWM4YWRiZTgxMzBiMzRlMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvZ2dpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcu
Y3BwCkBAIC03OCw2ICs3OCw3IEBAIHZvaWQgaW5pdGlhbGl6ZUxvZ0NoYW5uZWxzSWZOZWNlc3Nh
cnkoT3B0aW9uYWw8U3RyaW5nPiBsb2dDaGFubmVsU3RyaW5nKQogCiAgICAgU3RyaW5nIGVuYWJs
ZWRDaGFubmVsc1N0cmluZyA9IGxvZ0NoYW5uZWxTdHJpbmcgPyBsb2dDaGFubmVsU3RyaW5nLnZh
bHVlKCkgOiBsb2dMZXZlbFN0cmluZygpOwogICAgIFdURkluaXRpYWxpemVMb2dDaGFubmVsU3Rh
dGVzRnJvbVN0cmluZyhsb2dDaGFubmVscywgbG9nQ2hhbm5lbENvdW50LCBlbmFibGVkQ2hhbm5l
bHNTdHJpbmcudXRmOCgpLmRhdGEoKSk7CisgICAgTG9nQ29tcG9zaXRpbmcuc3RhdGUgPSBXVEZM
b2dDaGFubmVsU3RhdGU6Ok9uOwogfQogCiBXVEZMb2dDaGFubmVsKiBnZXRMb2dDaGFubmVsKGNv
bnN0IFN0cmluZyYgbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CmluZGV4IDQ1MWFjM2JjMDk5YTk2ZTlkZWNkOWYxYmRlZmVkZTc2NDJmODIxZmUuLjM0NTkyY2Q1
YTA1ZWFhZDk1YWIxZTljMTIxMzQwNWY4ZWZiOGY5OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcApAQCAtMjc2NSwxMyArMjc2NSwxMyBAQCB2b2lkIFJlbmRlckxh
eWVyOjp1cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyU2Nyb2xsKCkKICAgICAgICAgLy8gT3Vy
IHN0YWNraW5nIGNvbnRhaW5lciBpcyBndWFyYW50ZWVkIHRvIGNvbnRhaW4gYWxsIG9mIG91ciBk
ZXNjZW5kYW50cyB0aGF0IG1heSBuZWVkCiAgICAgICAgIC8vIHJlcG9zaXRpb25pbmcsIHNvIHVw
ZGF0ZSBjb21wb3NpdGluZyBsYXllcnMgZnJvbSB0aGVyZS4KICAgICAgICAgaWYgKFJlbmRlckxh
eWVyKiBjb21wb3NpdGluZ0FuY2VzdG9yID0gc3RhY2tpbmdDb250ZXh0KCktPmVuY2xvc2luZ0Nv
bXBvc2l0aW5nTGF5ZXIoKSkgewotICAgICAgICAgICAgaWYgKHVzZXNDb21wb3NpdGVkU2Nyb2xs
aW5nKCkpCi0gICAgICAgICAgICAgICAgY29tcG9zaXRvcigpLnVwZGF0ZUNvbXBvc2l0aW5nTGF5
ZXJzKENvbXBvc2l0aW5nVXBkYXRlVHlwZTo6T25Db21wb3NpdGVkU2Nyb2xsLCBjb21wb3NpdGlu
Z0FuY2VzdG9yKTsKLSAgICAgICAgICAgIGVsc2UgeworLy8gICAgICAgICAgICBpZiAodXNlc0Nv
bXBvc2l0ZWRTY3JvbGxpbmcoKSkKKy8vICAgICAgICAgICAgICAgIGNvbXBvc2l0b3IoKS51cGRh
dGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZVR5cGU6Ok9uQ29tcG9zaXRlZFNj
cm9sbCwgY29tcG9zaXRpbmdBbmNlc3Rvcik7CisvLyAgICAgICAgICAgIGVsc2UgewogICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiB3b3VsZCBiZSBuaWNlIHRvIG9ubHkgZGlydHkgbGF5ZXJzIHdo
b3NlIHBvc2l0aW9ucyB3ZXJlIGFmZmVjdGVkIGJ5IHNjcm9sbGluZy4KICAgICAgICAgICAgICAg
ICBjb21wb3NpdGluZ0FuY2VzdG9yLT5zZXREZXNjZW5kYW50c05lZWRVcGRhdGVCYWNraW5nQW5k
SGllcmFyY2h5VHJhdmVyc2FsKCk7Ci0gICAgICAgICAgICAgICAgY29tcG9zaXRvcigpLnVwZGF0
ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlVHlwZTo6T25TY3JvbGwsIGNvbXBv
c2l0aW5nQW5jZXN0b3IpOwotICAgICAgICAgICAgfQorLy8gICAgICAgICAgICAgICAgY29tcG9z
aXRvcigpLnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlVHlwZTo6T25T
Y3JvbGwsIGNvbXBvc2l0aW5nQW5jZXN0b3IpOworLy8gICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwCmluZGV4IGIzNTM3YjExZWI0YjVjYjE4NmY1NWUwNjQ5NGVjZGRkNTE5ZWYz
MzYuLjZlNmUxNWY0ZTc0MmExNWMzNzBiN2ZhOWVhMDU1YjQyYjUzZDA2NzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC00
MzgsNyArNDM4LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OndpbGxSZWNhbGNTdHls
ZSgpCiAKIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaWRSZWNhbGNTdHlsZVdpdGhOb1Bl
bmRpbmdMYXlvdXQoKQogewotICAgIHJldHVybiB1cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21w
b3NpdGluZ1VwZGF0ZVR5cGU6OkFmdGVyU3R5bGVDaGFuZ2UpOworICAgIHJldHVybiB0cnVlOyAv
LyB1cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZVR5cGU6OkFmdGVyU3R5
bGVDaGFuZ2UpOwogfQogCiB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y3VzdG9tUG9zaXRp
b25Gb3JWaXNpYmxlUmVjdENvbXB1dGF0aW9uKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNz
TGF5ZXIsIEZsb2F0UG9pbnQmIHBvc2l0aW9uKSBjb25zdApAQCAtNDkyLDYgKzQ5Miw3IEBAIEZs
b2F0UmVjdCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnZpc2libGVSZWN0Rm9yTGF5ZXJGbHVzaGlu
ZygpIGNvbnN0CiAKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaFBlbmRpbmdMYXll
ckNoYW5nZXMoYm9vbCBpc0ZsdXNoUm9vdCkKIHsKKyAgICB1cGRhdGVDb21wb3NpdGluZ0xheWVy
cyhDb21wb3NpdGluZ1VwZGF0ZVR5cGU6OkFmdGVyTGF5b3V0KTsKICAgICAvLyBGcmFtZVZpZXc6
OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUluY2x1ZGluZ1N1YmZyYW1lcygpIGZsdXNoZXMgZWFjaCBz
dWJmcmFtZSwKICAgICAvLyBidXQgR3JhcGhpY3NMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRl
KCkgd2lsbCBjcm9zcyBmcmFtZSBib3VuZGFyaWVzCiAgICAgLy8gaWYgdGhlIEdyYXBoaWNzTGF5
ZXJzIGFyZSBjb25uZWN0ZWQgKHRoZSBSb290TGF5ZXJBdHRhY2hlZFZpYUVuY2xvc2luZ0ZyYW1l
IGNhc2UpLgpAQCAtMjA4NiwxMSArMjA4NywxNSBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRv
cjo6cm9vdExheWVyQ29uZmlndXJhdGlvbkNoYW5nZWQoKQogCiBTdHJpbmcgUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpsYXllclRyZWVBc1RleHQoTGF5ZXJUcmVlRmxhZ3MgZmxhZ3MpCiB7CisgICAg
TE9HKENvbXBvc2l0aW5nLCAiXG5SZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVyVHJlZUFzVGV4
dCAtIHVwZGF0aW5nIGNvbXBvc2l0aW5nIGxheWVycyIpOworCiAgICAgdXBkYXRlQ29tcG9zaXRp
bmdMYXllcnMoQ29tcG9zaXRpbmdVcGRhdGVUeXBlOjpBZnRlckxheW91dCk7CiAKICAgICBpZiAo
IW1fcm9vdENvbnRlbnRzTGF5ZXIpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAorICAgIExP
RyhDb21wb3NpdGluZywgIlJlbmRlckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJUcmVlQXNUZXh0IC0g
Zmx1c2hpbmciKTsKKwogICAgIGZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyh0cnVlKTsKICAgICBw
YWdlKCkucmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyKCkuc2NoZWR1bGVJbW1lZGlhdGVSZW5kZXJp
bmdVcGRhdGUoKTsKIApAQCAtMjExOCw2ICsyMTIzLDcgQEAgU3RyaW5nIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6bGF5ZXJUcmVlQXNUZXh0KExheWVyVHJlZUZsYWdzIGZsYWdzKQogICAgIGlmIChm
bGFncyAmIExheWVyVHJlZUZsYWdzSW5jbHVkZUV2ZW50UmVnaW9uKQogICAgICAgICBsYXllclRy
ZWVCZWhhdmlvciB8PSBMYXllclRyZWVBc1RleHRJbmNsdWRlRXZlbnRSZWdpb247CiAKKyAgICBM
T0coQ29tcG9zaXRpbmcsICJSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVyVHJlZUFzVGV4dCAt
IGR1bXBpbmcgdHJlZSIpOwogICAgIC8vIFdlIHNraXAgZHVtcGluZyB0aGUgc2Nyb2xsIGFuZCBj
bGlwIGxheWVycyB0byBrZWVwIGxheWVyVHJlZUFzVGV4dCBvdXRwdXQKICAgICAvLyBzaW1pbGFy
IGJldHdlZW4gcGxhdGZvcm1zLgogICAgIFN0cmluZyBsYXllclRyZWVUZXh0ID0gbV9yb290Q29u
dGVudHNMYXllci0+bGF5ZXJUcmVlQXNUZXh0KGxheWVyVHJlZUJlaGF2aW9yKTsKQEAgLTIzNzMs
NiArMjM3OSwxMSBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNPd25CYWNr
aW5nU3RvcmUoY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyLCBjbwogewogICAgIGF1dG8mIHJlbmRl
cmVyID0gbGF5ZXIucmVuZGVyZXIoKTsKIAorICAgIExPR19XSVRIX1NUUkVBTShDb21wb3NpdGlu
Zywgc3RyZWFtIDw8ICJSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzT3duQmFja2luZ1N0
b3JlIGxheWVyICIgPDwgJmxheWVyIDw8ICIgY29tcG9zaXRpbmdBbmNlc3RvckxheWVyICIgPDwg
Y29tcG9zaXRpbmdBbmNlc3RvckxheWVyIDw8ICIgZHJhd3MgY29udGVudCAiIDw8IChjb21wb3Np
dGluZ0FuY2VzdG9yTGF5ZXIgJiYgY29tcG9zaXRpbmdBbmNlc3RvckxheWVyLT5iYWNraW5nKCkt
PmdyYXBoaWNzTGF5ZXIoKS0+ZHJhd3NDb250ZW50KCkpKTsKKworICAgIGlmIChjb21wb3NpdGlu
Z0FuY2VzdG9yTGF5ZXIgJiYgIWNvbXBvc2l0aW5nQW5jZXN0b3JMYXllci0+YmFja2luZygpLT5n
cmFwaGljc0xheWVyKCktPmRyYXdzQ29udGVudCgpKQorICAgICAgICBXVEZMb2dBbHdheXMoImhl
cmUiKTsKKwogICAgIGlmIChjb21wb3NpdGluZ0FuY2VzdG9yTGF5ZXIKICAgICAgICAgJiYgIShj
b21wb3NpdGluZ0FuY2VzdG9yTGF5ZXItPmJhY2tpbmcoKS0+Z3JhcGhpY3NMYXllcigpLT5kcmF3
c0NvbnRlbnQoKQogICAgICAgICAgICAgfHwgY29tcG9zaXRpbmdBbmNlc3RvckxheWVyLT5iYWNr
aW5nKCktPnBhaW50c0ludG9XaW5kb3coKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBmMmE2YzhhODdkZTA2ZDFmNzRkOTVj
Y2JlZjhiZDEyZDE1MzM4NzQuLmEzNWMyNDIxOTdlY2I2YzEwNjdjNmMyMzgxNTRhMjFjNjMyMmMy
ZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOS0wOC0yOSAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBBdm9pZCBjYWxsaW5nIHVwZGF0ZUNvbXBv
c2l0aW5nTGF5ZXJzKCkgbW9yZSB0aGFuIG9uY2UgYmVmb3JlIGVhY2ggcmVuZGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDM5MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY29tcG9zaXRpbmcvYmFj
a2luZy9uby1iYWNraW5nLWZvci1jbGlwLW92ZXJsYXAuaHRtbDoKKwogMjAxOS0wOC0yOSAgVGlt
b3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgQ29weWluZyBhbmQg
cGFzdGluZyB0d28gcGFyYWdyYXBocyB3aXRoIGEgbmV3bGluZSBiZXR3ZWVuIHRoZW0gcmVzdWx0
cyBpbiBzdHJheSBwYXJhZ3JhcGggd2l0aCBuZXdsaW5lIGluc2lkZS4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2JhY2tpbmcvbm8tYmFja2luZy1mb3ItY2xpcC1vdmVybGFw
Lmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9iYWNraW5nL25vLWJhY2tpbmctZm9yLWNs
aXAtb3ZlcmxhcC5odG1sCmluZGV4IDcxMWI3ODNhOGY3NGJjMzExYTg5MDhiYzQ5MmJhNjBjMDAw
N2Q1MzguLjZlMzliYjI1YmUwNjUxYmQwNjg4OWFiNGM3YmU4ZmYxM2RhNThkNzAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2JhY2tpbmcvbm8tYmFja2luZy1mb3ItY2xpcC1v
dmVybGFwLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvYmFja2luZy9uby1iYWNr
aW5nLWZvci1jbGlwLW92ZXJsYXAuaHRtbApAQCAtNDgsNyArNDgsNyBAQAogICAgICAgVGhpcyBs
YXllciBzaG91bGQgbm90IGhhdmUgYmFja2luZyBzdG9yZS4KICAgICAgIDxkaXYgY2xhc3M9ImJv
eCBjb21wb3NpdGVkIj48L2Rpdj4KICAgPC9kaXY+Ci0gIDxkaXYgY2xhc3M9ImNsaXBwaW5nIiBz
dHlsZT0ibWFyZ2luLXRvcDogLTEwcHg7Ij4KKyAgPGRpdiBjbGFzcz0iY2xpcHBpbmciIHN0eWxl
PSJtYXJnaW4tdG9wOiAtMTBweDsgZGlzcGxheTogbm9uZSI+CiAgICAgICBUaGlzIGxheWVyIHNo
b3VsZCBoYXZlIGJhY2tpbmcgc3RvcmUuCiAgICAgICA8ZGl2IGNsYXNzPSJib3ggY29tcG9zaXRl
ZCI+PC9kaXY+CiAgIDwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>468589</attachid>
            <date>2023-11-13 17:37:42 -0800</date>
            <delta_ts>2023-11-14 14:50:09 -0800</delta_ts>
            <desc>Updated WIP patch, for EWS testing</desc>
            <filename>disable-compositing-update-hack-v4</filename>
            <type>text/plain</type>
            <size>4523</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5jcHAKaW5kZXggYjdmMTgzM2FhZWEyLi5i
MTEwZjEwYzkwYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcuY3BwCkBAIC0x
MzUyLDcgKzEzNTIsMTAgQEAgdm9pZCBMb2NhbEZyYW1lVmlldzo6ZGlkTGF5b3V0KFdlYWtQdHI8
UmVuZGVyRWxlbWVudD4gbGF5b3V0Um9vdCkKICAgICBhdXRvKiBsYXlvdXRSb290RW5jbG9zaW5n
TGF5ZXIgPSBsYXlvdXRSb290LT5lbmNsb3NpbmdMYXllcigpOwogICAgIGxheW91dFJvb3RFbmNs
b3NpbmdMYXllci0+dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlckxheW91dCghaXM8UmVuZGVyVmll
dz4oKmxheW91dFJvb3QpLCBsYXlvdXRDb250ZXh0KCkubmVlZHNGdWxsUmVwYWludCgpKTsKIAot
ICAgIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJMYXlvdXQoKTsKKyAgICBpZiAoIW1fZnJh
bWUtPmxvYWRlcigpLmlzQ29tcGxldGUoKSB8fCAhbV9mcmFtZS0+aXNNYWluRnJhbWUoKSkKKyAg
ICAgICAgdXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlckxheW91dCgpOworICAgIGVsc2UgaWYg
KG1fZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5zZXRVcGRhdGVDb21w
b3NpdGluZ0xheWVyc0lzUGVuZGluZygpOwogCiAgICAgUmVmIGRvY3VtZW50ID0gKm1fZnJhbWUt
PmRvY3VtZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGY3YmQ3YjMzOTEyNC4uYzRjZmQ1
YWNkNzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTU2NSw2ICs1NjUsOCBAQCBTdHJpbmcgUGFn
ZTo6c2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0KCkKICAgICBhdXRvKiBsb2NhbE1haW5GcmFtZSA9
IGR5bmFtaWNEb3duY2FzdDxMb2NhbEZyYW1lPihtX21haW5GcmFtZS5nZXQoKSk7CiAgICAgaWYg
KERvY3VtZW50KiBkb2N1bWVudCA9IGxvY2FsTWFpbkZyYW1lID8gbG9jYWxNYWluRnJhbWUtPmRv
Y3VtZW50KCkgOiBudWxscHRyKSB7CiAgICAgICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXQoKTsK
KyAgICAgICAgaWYgKFJlZlB0ciBmcmFtZVZpZXcgPSBkb2N1bWVudC0+dmlldygpKQorICAgICAg
ICAgICAgZnJhbWVWaWV3LT51cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyTGF5b3V0KCk7CiAj
aWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgICAgIGRvY3VtZW50LT51cGRhdGVUb3Vj
aEV2ZW50UmVnaW9ucygpOwogI2VuZGlmCkBAIC0xOTEzLDYgKzE5MTUsMTUgQEAgdm9pZCBQYWdl
Ojpkb0FmdGVyVXBkYXRlUmVuZGVyaW5nKCkKICAgICAvLyBDb2RlIGhlcmUgc2hvdWxkIGRvIG9u
Y2UtcGVyLWZyYW1lIHdvcmsgdGhhdCBuZWVkcyB0byBiZSBkb25lIGJlZm9yZSBwYWludGluZywg
YW5kIHJlcXVpcmVzCiAgICAgLy8gbGF5b3V0IHRvIGJlIHVwLXRvLWRhdGUuIEl0IHNob3VsZCBu
b3QgcnVuIHNjcmlwdCwgdHJpZ2dlciBsYXlvdXQsIG9yIGRpcnR5IGxheW91dC4KIAorICAgIGF1
dG8qIGxvY2FsTWFpbkZyYW1lID0gZHluYW1pY0Rvd25jYXN0PExvY2FsRnJhbWU+KG1haW5GcmFt
ZSgpKTsKKyAgICBpZiAobV91cGRhdGVDb21wb3NpdGluZ0xheWVyc0lzUGVuZGluZykgeworICAg
ICAgICBpZiAoUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IGxvY2FsTWFpbkZyYW1lID8gbG9j
YWxNYWluRnJhbWUtPmRvY3VtZW50KCkgOiBudWxscHRyKSB7CisgICAgICAgICAgICBpZiAoUmVm
UHRyIGZyYW1lVmlldyA9IGRvY3VtZW50LT52aWV3KCkpCisgICAgICAgICAgICAgICAgZnJhbWVW
aWV3LT51cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyTGF5b3V0KCk7CisgICAgICAgIH0KKyAg
ICAgICAgbV91cGRhdGVDb21wb3NpdGluZ0xheWVyc0lzUGVuZGluZyA9IGZhbHNlOworICAgIH0K
KwogICAgIGlmIChzZXR0aW5ncygpLmxheW91dEZvcm1hdHRpbmdDb250ZXh0RW5hYmxlZCgpKSB7
CiAgICAgICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7CiAgICAg
ICAgICAgICBpZiAoYXV0byogZnJhbWVWaWV3ID0gZG9jdW1lbnQudmlldygpKQpAQCAtMTk3NSw3
ICsxOTg2LDYgQEAgdm9pZCBQYWdlOjpkb0FmdGVyVXBkYXRlUmVuZGVyaW5nKCkKIAogICAgIG1f
cmVuZGVyaW5nVXBkYXRlUmVtYWluaW5nU3RlcHMubGFzdCgpLnJlbW92ZShSZW5kZXJpbmdVcGRh
dGVTdGVwOjpFdmVudFJlZ2lvblVwZGF0ZSk7CiAKLWF1dG8qIGxvY2FsTWFpbkZyYW1lID0gZHlu
YW1pY0Rvd25jYXN0PExvY2FsRnJhbWU+KG1haW5GcmFtZSgpKTsKICNpZiBFTkFCTEUoSU9TX1RP
VUNIX0VWRU5UUykKICAgICAvLyB1cGRhdGVUb3VjaEV2ZW50UmVnaW9ucygpIG5lZWRzIHRvIGJl
IGNhbGxlZCBvbmx5IG9uIHRoZSB0b3AgZG9jdW1lbnQuCiAgICAgaWYgKFJlZlB0cjxEb2N1bWVu
dD4gZG9jdW1lbnQgPSBsb2NhbE1haW5GcmFtZSA/IGxvY2FsTWFpbkZyYW1lLT5kb2N1bWVudCgp
IDogbnVsbHB0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggNGI3MTE3NTMxOTIxLi4xZTEyZDM2ZWY0MmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCkBAIC00OTIsNiArNDkyLDggQEAgcHVibGljOgogICAgIGJvb2wgZGVs
ZWdhdGVzU2NhbGluZygpIGNvbnN0IHsgcmV0dXJuIG1fZGVsZWdhdGVzU2NhbGluZzsgfQogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RGVsZWdhdGVzU2NhbGluZyhib29sKTsKIAorICAgIHZv
aWQgc2V0VXBkYXRlQ29tcG9zaXRpbmdMYXllcnNJc1BlbmRpbmcoKSB7IG1fdXBkYXRlQ29tcG9z
aXRpbmdMYXllcnNJc1BlbmRpbmcgPSB0cnVlOyB9CisKICAgICAvLyBUaGUgdmlldyBzY2FsZSBm
YWN0b3IgaXMgbXVsdGlwbGllZCBpbnRvIHRoZSBwYWdlIHNjYWxlIGZhY3RvciBieSBhbGwKICAg
ICAvLyBjYWxsZXJzIG9mIHNldFBhZ2VTY2FsZUZhY3Rvci4KICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldFZpZXdTY2FsZUZhY3RvcihmbG9hdCk7CkBAIC0xMzM4LDYgKzEzNDAsOCBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9tZWRpYUJ1ZmZlcmluZ0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAg
ICBib29sIG1faGFzUmVzb3VyY2VMb2FkQ2xpZW50IHsgZmFsc2UgfTsKICAgICBib29sIG1fZGVs
ZWdhdGVzU2NhbGluZyB7IGZhbHNlIH07CisgICAgYm9vbCBtX3VwZGF0ZUNvbXBvc2l0aW5nTGF5
ZXJzSXNQZW5kaW5nIHsgZmFsc2UgfTsKKwogCiAjaWYgRU5BQkxFKEVESVRBQkxFX1JFR0lPTikK
ICAgICBib29sIG1faXNFZGl0YWJsZVJlZ2lvbkVuYWJsZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCAw
MzQ1ZTFjNDM4ZGUuLmI5YmQxNmEwYjMzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTI1MDgsOCArMjUwOCw3IEBAIHZv
aWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0ZvckxheWVyVHJlZUFz
VGV4dER1bXAoKQogewogICAgIGF1dG8mIGZyYW1lVmlldyA9IG1fcmVuZGVyVmlldy5mcmFtZVZp
ZXcoKTsKICAgICBmcmFtZVZpZXcudXBkYXRlTGF5b3V0QW5kU3R5bGVJZk5lZWRlZFJlY3Vyc2l2
ZSgpOwotICAgIAotICAgIHVwZGF0ZUV2ZW50UmVnaW9ucygpOworCiAKICAgICBmb3IgKGF1dG8q
IGNoaWxkID0gZnJhbWVWaWV3LmZyYW1lKCkudHJlZSgpLmZpcnN0UmVuZGVyZWRDaGlsZCgpOyBj
aGlsZDsgY2hpbGQgPSBjaGlsZC0+dHJlZSgpLnRyYXZlcnNlTmV4dFJlbmRlcmVkKCkpIHsKICAg
ICAgICAgYXV0byogbG9jYWxDaGlsZCA9IGR5bmFtaWNEb3duY2FzdDxMb2NhbEZyYW1lPihjaGls
ZCk7CkBAIC0yNTIwLDYgKzI1MTksNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBk
YXRlQ29tcG9zaXRpbmdGb3JMYXllclRyZWVBc1RleHREdW1wKCkKICAgICB9CiAKICAgICB1cGRh
dGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0ZVR5cGU6OkFmdGVyTGF5b3V0KTsK
KyAgICB1cGRhdGVFdmVudFJlZ2lvbnMoKTsKIAogICAgIGlmICghbV9yb290Q29udGVudHNMYXll
cikKICAgICAgICAgcmV0dXJuOwo=
</data>
<flag name="commit-queue"
          id="495392"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>468595</attachid>
            <date>2023-11-14 14:50:09 -0800</date>
            <delta_ts>2023-11-14 14:50:09 -0800</delta_ts>
            <desc>Updated WIP patch, for EWS testing</desc>
            <filename>disable-compositing-update-hack-v5</filename>
            <type>text/plain</type>
            <size>15699</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDk3MzBhMTA5NGRmNC4uOTAwNDA0NzJhMTEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIzMzEsMTMgKzIzMzEsMTMgQEAgYm9vbCBEb2N1
bWVudDo6dXBkYXRlU3R5bGVJZk5lZWRlZCgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQg
RG9jdW1lbnQ6OnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhPcHRpb25TZXQ8
TGF5b3V0T3B0aW9ucz4gbGF5b3V0T3B0aW9ucywgY29uc3QgRWxlbWVudCogY29udGV4dCkKK2Jv
b2wgRG9jdW1lbnQ6OnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhPcHRpb25T
ZXQ8TGF5b3V0T3B0aW9ucz4gbGF5b3V0T3B0aW9ucywgY29uc3QgRWxlbWVudCogY29udGV4dCkK
IHsKICAgICBsYXlvdXRPcHRpb25zLmFkZChMYXlvdXRPcHRpb25zOjpJZ25vcmVQZW5kaW5nU3R5
bGVzaGVldHMpOwotICAgIHVwZGF0ZUxheW91dChsYXlvdXRPcHRpb25zLCBjb250ZXh0KTsKKyAg
ICByZXR1cm4gdXBkYXRlTGF5b3V0KGxheW91dE9wdGlvbnMsIGNvbnRleHQpOwogfQogCi12b2lk
IERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoT3B0aW9uU2V0PExheW91dE9wdGlvbnM+IGxheW91dE9w
dGlvbnMsIGNvbnN0IEVsZW1lbnQqIGNvbnRleHQpCitib29sIERvY3VtZW50Ojp1cGRhdGVMYXlv
dXQoT3B0aW9uU2V0PExheW91dE9wdGlvbnM+IGxheW91dE9wdGlvbnMsIGNvbnN0IEVsZW1lbnQq
IGNvbnRleHQpCiB7CiAgICAgYm9vbCBvbGRJZ25vcmUgPSBtX2lnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0czsKIApAQCAtMjM1NywxNyArMjM1NywyMSBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlv
dXQoT3B0aW9uU2V0PExheW91dE9wdGlvbnM+IGxheW91dE9wdGlvbnMsIGNvbnN0IEVsZW1lbgog
ICAgIGlmIChmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5sYXlvdXRDb250ZXh0KCkuaXNJblJlbmRl
clRyZWVMYXlvdXQoKSkgewogICAgICAgICAvLyBWaWV3IGxheW91dCBzaG91bGQgbm90IGJlIHJl
LWVudHJhbnQuCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm47
CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyAgICBib29sIGRpZFdvcmsgPSBmYWxz
ZTsKKwogICAgIHsKICAgICAgICAgUmVuZGVyVmlldzo6UmVwYWludFJlZ2lvbkFjY3VtdWxhdG9y
IHJlcGFpbnRSZWdpb25BY2N1bXVsYXRvcihyZW5kZXJWaWV3KCkpOwogICAgICAgICBTY3JpcHRE
aXNhbGxvd2VkU2NvcGU6OkluTWFpblRocmVhZCBzY3JpcHREaXNhbGxvd2VkU2NvcGU7CiAKLSAg
ICAgICAgaWYgKFJlZlB0ciBvd25lciA9IG93bmVyRWxlbWVudCgpKQotICAgICAgICAgICAgb3du
ZXItPnByb3RlY3RlZERvY3VtZW50KCktPnVwZGF0ZUxheW91dChsYXlvdXRPcHRpb25zLCBjb250
ZXh0KTsKKyAgICAgICAgaWYgKCFsYXlvdXRPcHRpb25zLmNvbnRhaW5zKExheW91dE9wdGlvbnM6
OkRvbnRMYXlvdXRBbmNlc3RvckRvY3VtZW50cykpIHsKKyAgICAgICAgICAgIGlmIChSZWZQdHIg
b3duZXIgPSBvd25lckVsZW1lbnQoKSkKKyAgICAgICAgICAgICAgICBkaWRXb3JrIHw9IG93bmVy
LT5wcm90ZWN0ZWREb2N1bWVudCgpLT51cGRhdGVMYXlvdXQobGF5b3V0T3B0aW9ucywgY29udGV4
dCk7CisgICAgICAgIH0KIAotICAgICAgICB1cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisgICAgICAg
IGRpZFdvcmsgfD0gdXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogCiAgICAgICAgIFN0YWNrU3RhdHM6
OkxheW91dENoZWNrUG9pbnQgbGF5b3V0Q2hlY2tQb2ludDsKIApAQCAtMjM4MSw3ICsyMzg1LDEx
IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUxheW91dChPcHRpb25TZXQ8TGF5b3V0T3B0aW9ucz4g
bGF5b3V0T3B0aW9ucywgY29uc3QgRWxlbWVuCiAgICAgICAgICAgICBpZiAoZnJhbWVWaWV3LT5s
YXlvdXRDb250ZXh0KCkuaXNMYXlvdXRQZW5kaW5nKCkgfHwgcmVuZGVyVmlldygpLT5uZWVkc0xh
eW91dCgpKSB7CiAgICAgICAgICAgICAgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNj
b3BlIHNjb3BlKCpyZW5kZXJWaWV3KCksIGNvbnRleHQpOwogICAgICAgICAgICAgICAgIGZyYW1l
Vmlldy0+bGF5b3V0Q29udGV4dCgpLmxheW91dCgpOworICAgICAgICAgICAgICAgIGRpZFdvcmsg
PSB0cnVlOwogICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobGF5b3V0T3B0aW9ucy5j
b250YWlucyhMYXlvdXRPcHRpb25zOjpVcGRhdGVDb21wb3NpdGluZ0xheWVycykpCisgICAgICAg
ICAgICAgICAgZGlkV29yayB8PSBmcmFtZVZpZXctPnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0
ZXJMYXlvdXRJZk5lZWRlZCgpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yMzk0LDYgKzI0MDIs
NyBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoT3B0aW9uU2V0PExheW91dE9wdGlvbnM+
IGxheW91dE9wdGlvbnMsIGNvbnN0IEVsZW1lbgogICAgIH0KIAogICAgIG1faWdub3JlUGVuZGlu
Z1N0eWxlc2hlZXRzID0gb2xkSWdub3JlOworICAgIHJldHVybiBkaWRXb3JrOwogfQogCiBzdGQ6
OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IERvY3VtZW50OjpzdHlsZUZvckVsZW1lbnRJZ25vcmlu
Z1BlbmRpbmdTdHlsZXNoZWV0cyhFbGVtZW50JiBlbGVtZW50LCBjb25zdCBSZW5kZXJTdHlsZSog
cGFyZW50U3R5bGUsIFBzZXVkb0lkIHBzZXVkb0VsZW1lbnRTcGVjaWZpZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCmluZGV4IDY3YTZiNWM4MzQzNC4uZTcyZDc4NDVkZTEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaApAQCAtMzM5LDYgKzMzOSw4IEBAIGVudW0gY2xhc3MgTGF5b3V0T3B0aW9ucyA6IHVpbnQ4
X3QgewogICAgIFJ1blBvc3RMYXlvdXRUYXNrc1N5bmNocm9ub3VzbHkgPSAxIDw8IDAsCiAgICAg
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzID0gMSA8PCAxLAogICAgIENvbnRlbnRWaXNpYmlsaXR5
Rm9yY2VMYXlvdXQgPSAxIDw8IDIsCisgICAgVXBkYXRlQ29tcG9zaXRpbmdMYXllcnMgPSAxIDw8
IDMsCisgICAgRG9udExheW91dEFuY2VzdG9yRG9jdW1lbnRzID0gMSA8PCA0LAogfTsKIAogZW51
bSBjbGFzcyBIdHRwRXF1aXZQb2xpY3kgewpAQCAtNjg5LDExICs2OTEsMTEgQEAgcHVibGljOgog
ICAgIGJvb2wgbmVlZHNTdHlsZVJlY2FsYygpIGNvbnN0OwogICAgIHVuc2lnbmVkIGxhc3RTdHls
ZVVwZGF0ZVNpemVGb3JUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0U3R5bGVVcGRhdGVT
aXplRm9yVGVzdGluZzsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVMYXlvdXQo
T3B0aW9uU2V0PExheW91dE9wdGlvbnM+ID0geyB9LCBjb25zdCBFbGVtZW50KiA9IG51bGxwdHIp
OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgdXBkYXRlTGF5b3V0KE9wdGlvblNldDxMYXlvdXRP
cHRpb25zPiA9IHsgfSwgY29uc3QgRWxlbWVudCogPSBudWxscHRyKTsKIAogICAgIC8vIHVwZGF0
ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpIGZvcmNlcyBsYXlvdXQgZXZlbiBpZiB3
ZSBhcmUgd2FpdGluZyBmb3IgcGVuZGluZyBzdHlsZXNoZWV0IGxvYWRzLAogICAgIC8vIHNvIGNh
bGxpbmcgdGhpcyBtYXkgY2F1c2UgYSBmbGFzaCBvZiB1bnN0eWxlZCBjb250ZW50IChGT1VDKS4K
LSAgICB2b2lkIHVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhPcHRpb25TZXQ8
TGF5b3V0T3B0aW9ucz4gPSB7IH0sIGNvbnN0IEVsZW1lbnQqID0gbnVsbHB0cik7CisgICAgYm9v
bCB1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoT3B0aW9uU2V0PExheW91dE9w
dGlvbnM+ID0geyB9LCBjb25zdCBFbGVtZW50KiA9IG51bGxwdHIpOwogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvckVsZW1lbnRJZ25vcmluZ1BlbmRpbmdTdHlsZXNo
ZWV0cyhFbGVtZW50JiwgY29uc3QgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlLCBQc2V1ZG9JZCA9
IFBzZXVkb0lkOjpOb25lKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2Nh
bEZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmNwcApp
bmRleCBiN2YxODMzYWFlYTIuLjEwNTFhNWJkMWM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2Nh
bEZyYW1lVmlldy5jcHAKQEAgLTgxNyw2ICs4MTcsMTcgQEAgdm9pZCBMb2NhbEZyYW1lVmlldzo6
dXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlckxheW91dCgpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS51cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21w
b3NpdGluZ1VwZGF0ZVR5cGU6OkFmdGVyTGF5b3V0KTsKKyAgICBtX3VwZGF0ZUNvbXBvc2l0aW5n
TGF5ZXJzSXNQZW5kaW5nID0gZmFsc2U7Cit9CisKK2Jvb2wgTG9jYWxGcmFtZVZpZXc6OnVwZGF0
ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJMYXlvdXRJZk5lZWRlZCgpCit7CisgICAgaWYgKG1fdXBk
YXRlQ29tcG9zaXRpbmdMYXllcnNJc1BlbmRpbmcpIHsKKyAgICAgICAgdXBkYXRlQ29tcG9zaXRp
bmdMYXllcnNBZnRlckxheW91dCgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKIHZvaWQgTG9jYWxGcmFtZVZpZXc6OmludmFsaWRhdGVTY3Jv
bGxiYXJzRm9yQWxsU2Nyb2xsYWJsZUFyZWFzKCkKQEAgLTEzNTIsNyArMTM2MywxMCBAQCB2b2lk
IExvY2FsRnJhbWVWaWV3OjpkaWRMYXlvdXQoV2Vha1B0cjxSZW5kZXJFbGVtZW50PiBsYXlvdXRS
b290KQogICAgIGF1dG8qIGxheW91dFJvb3RFbmNsb3NpbmdMYXllciA9IGxheW91dFJvb3QtPmVu
Y2xvc2luZ0xheWVyKCk7CiAgICAgbGF5b3V0Um9vdEVuY2xvc2luZ0xheWVyLT51cGRhdGVMYXll
clBvc2l0aW9uc0FmdGVyTGF5b3V0KCFpczxSZW5kZXJWaWV3PigqbGF5b3V0Um9vdCksIGxheW91
dENvbnRleHQoKS5uZWVkc0Z1bGxSZXBhaW50KCkpOwogCi0gICAgdXBkYXRlQ29tcG9zaXRpbmdM
YXllcnNBZnRlckxheW91dCgpOworICAgIGlmICghbV9mcmFtZS0+bG9hZGVyKCkuaXNDb21wbGV0
ZSgpKQorICAgICAgICB1cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyTGF5b3V0KCk7CisgICAg
ZWxzZQorICAgICAgICBtX3VwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzSXNQZW5kaW5nID0gdHJ1ZTsK
IAogICAgIFJlZiBkb2N1bWVudCA9ICptX2ZyYW1lLT5kb2N1bWVudCgpOwogCkBAIC00OTkyLDcg
KzUwMDYsNyBAQCB2b2lkIExvY2FsRnJhbWVWaWV3OjpwYWludE92ZXJoYW5nQXJlYXMoR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JgogICAgIFNjcm9sbFZpZXc6OnBhaW50
T3ZlcmhhbmdBcmVhcyhjb250ZXh0LCBob3Jpem9udGFsT3ZlcmhhbmdBcmVhLCB2ZXJ0aWNhbE92
ZXJoYW5nQXJlYSwgZGlydHlSZWN0KTsKIH0KIAotdm9pZCBMb2NhbEZyYW1lVmlldzo6dXBkYXRl
TGF5b3V0QW5kU3R5bGVJZk5lZWRlZFJlY3Vyc2l2ZSgpCit2b2lkIExvY2FsRnJhbWVWaWV3Ojp1
cGRhdGVMYXlvdXRBbmRTdHlsZUlmTmVlZGVkUmVjdXJzaXZlKGJvb2wgdXBkYXRlQ29tcG9zaXRp
bmdMYXllcnMsIGJvb2wgaWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKQogewogICAgIC8vIFN0eWxl
IHVwZGF0aW5nLCByZW5kZXIgdHJlZSBjcmVhdGlvbiwgYW5kIGxheW91dCBuZWVkcyB0byBiZSBk
b25lIG11bHRpcGxlIHRpbWVzCiAgICAgLy8gZm9yIG1vcmUgdGhhbiBvbmUgcmVhc29uLiBCdXQg
b25lIHJlYXNvbiBpcyB0aGF0IHdoZW4gYW4gPG9iamVjdD4gZWxlbWVudCBkZXRlcm1pbmVzCkBA
IC01MDI5LDE2ICs1MDQzLDE4IEBAIHZvaWQgTG9jYWxGcmFtZVZpZXc6OnVwZGF0ZUxheW91dEFu
ZFN0eWxlSWZOZWVkZWRSZWN1cnNpdmUoKQogICAgICAgICByZXR1cm4gZGVzY2VuZGFudHNEZXF1
ZS5maXJzdCgpLnB0cigpOwogICAgIH07CiAKKyAgICBPcHRpb25TZXQ8TGF5b3V0T3B0aW9ucz4g
bGF5b3V0T3B0aW9ucyA9IHsgTGF5b3V0T3B0aW9uczo6RG9udExheW91dEFuY2VzdG9yRG9jdW1l
bnRzIH07CisgICAgaWYgKHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKQorICAgICAgICBsYXlvdXRP
cHRpb25zLmFkZChMYXlvdXRPcHRpb25zOjpVcGRhdGVDb21wb3NpdGluZ0xheWVycyk7CisgICAg
aWYgKGlnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cykKKyAgICAgICAgbGF5b3V0T3B0aW9ucy5hZGQo
TGF5b3V0T3B0aW9uczo6SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKTsKKwogICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBtYXhVcGRhdGVQYXNzZXM7ICsraSkgewogICAgICAgICBib29sIGRp
ZFdvcmsgPSBmYWxzZTsKICAgICAgICAgRGVzY2VuZGFudHNEZXF1ZSBkZXF1ZTsKICAgICAgICAg
d2hpbGUgKGF1dG8gdmlldyA9IG5leHRSZW5kZXJlZERlc2NlbmRhbnQoZGVxdWUpKSB7Ci0gICAg
ICAgICAgICBpZiAodmlldy0+bV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5lZWRl
ZCgpKQorICAgICAgICAgICAgaWYgKHZpZXctPm1fZnJhbWUtPmRvY3VtZW50KCktPnVwZGF0ZUxh
eW91dChsYXlvdXRPcHRpb25zKSkKICAgICAgICAgICAgICAgICBkaWRXb3JrID0gdHJ1ZTsKLSAg
ICAgICAgICAgIGlmICh2aWV3LT5uZWVkc0xheW91dCgpKSB7Ci0gICAgICAgICAgICAgICAgdmll
dy0+bGF5b3V0Q29udGV4dCgpLmxheW91dCgpOwotICAgICAgICAgICAgICAgIGRpZFdvcmsgPSB0
cnVlOwotICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlmICghZGlkV29yaykKICAg
ICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZy
YW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5oCmluZGV4IDQz
YzZlMzkzZGM5Ny4uMDgyZTk3YmZkMzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0xvY2FsRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmll
dy5oCkBAIC0xNjcsNiArMTY3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc3R5bGVBbmRSZW5kZXJU
cmVlRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCB1cGRhdGVDb21wb3NpdGluZ0xheWVy
c0FmdGVyU3R5bGVDaGFuZ2UoKTsKICAgICB2b2lkIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0
ZXJMYXlvdXQoKTsKKyAgICBib29sIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJMYXlvdXRJ
Zk5lZWRlZCgpOwogCiAgICAgLy8gQ2FsbGVkIHdoZW4gY2hhbmdlcyB0byB0aGUgR3JhcGhpY3NM
YXllciBoaWVyYXJjaHkgaGF2ZSB0byBiZSBzeW5jaHJvbml6ZWQgd2l0aAogICAgIC8vIGNvbnRl
bnQgcmVuZGVyZWQgdmlhIHRoZSBub3JtYWwgcGFpbnRpbmcgcGF0aC4KQEAgLTQ0Nyw3ICs0NDgs
OCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgTW9ub3RvbmljVGltZSBjdXJyZW50UGFpbnRUaW1l
U3RhbXAoKSB7IHJldHVybiBzQ3VycmVudFBhaW50VGltZVN0YW1wOyB9IC8vIHJldHVybnMgMCBp
ZiBub3QgcGFpbnRpbmcKICAgICAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0ZUxheW91
dEFuZFN0eWxlSWZOZWVkZWRSZWN1cnNpdmUoKTsKKyAgICAvLyBGSVhNRTogRmxhZ3MgZW51bS4K
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0ZUxheW91dEFuZFN0eWxlSWZOZWVkZWRSZWN1
cnNpdmUoYm9vbCB1cGRhdGVDb21wb3NpdGluZ0xheWVycyA9IGZhbHNlLCBib29sIGlnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cyA9IGZhbHNlKTsKIAogICAgIHZvaWQgaW5jcmVtZW50VmlzdWFsbHlO
b25FbXB0eUNoYXJhY3RlckNvdW50KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgaW5jcmVtZW50
VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQoY29uc3QgSW50U2l6ZSYpOwpAQCAtMTA3Niw2ICsx
MDc4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZGlkUnVuQXV0b3NpemUgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9pblVwZGF0ZUVtYmVkZGVkT2JqZWN0cyB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3NjaGVkdWxlZFRvU2Nyb2xsVG9BbmNob3IgeyBmYWxzZSB9OworICAgIGJvb2wgbV91cGRhdGVD
b21wb3NpdGluZ0xheWVyc0lzUGVuZGluZyB7IGZhbHNlIH07CiB9OwogCiBpbmxpbmUgdm9pZCBM
b2NhbEZyYW1lVmlldzo6aW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQoY29uc3Qg
SW50U2l6ZSYgc2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGY3YmQ3YjMzOTEyNC4uMzUzZjQ0
NWIxODVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTU2NCw3ICs1NjQsOCBAQCBTdHJpbmcgUGFn
ZTo6c2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0KCkKIHsKICAgICBhdXRvKiBsb2NhbE1haW5GcmFt
ZSA9IGR5bmFtaWNEb3duY2FzdDxMb2NhbEZyYW1lPihtX21haW5GcmFtZS5nZXQoKSk7CiAgICAg
aWYgKERvY3VtZW50KiBkb2N1bWVudCA9IGxvY2FsTWFpbkZyYW1lID8gbG9jYWxNYWluRnJhbWUt
PmRvY3VtZW50KCkgOiBudWxscHRyKSB7Ci0gICAgICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXQo
KTsKKyAgICAgICAgaWYgKFJlZlB0ciBmcmFtZVZpZXcgPSBkb2N1bWVudC0+dmlldygpKQorICAg
ICAgICAgICAgZnJhbWVWaWV3LT51cGRhdGVMYXlvdXRBbmRTdHlsZUlmTmVlZGVkUmVjdXJzaXZl
KHRydWUpOwogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgICAgICBkb2N1bWVudC0+
dXBkYXRlVG91Y2hFdmVudFJlZ2lvbnMoKTsKICNlbmRpZgpAQCAtMTY5MywxMSArMTY5NCwxMSBA
QCB2b2lkIFBhZ2U6OnJlbW92ZUFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlcihBY3Rpdml0eVN0
YXRlQ2hhbmdlT2JzZXJ2ZXImIG9ic2VydgogICAgIG1fYWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2Vy
dmVycy5yZW1vdmUob2JzZXJ2ZXIpOwogfQogCi12b2lkIFBhZ2U6OmxheW91dElmTmVlZGVkKCkK
K3ZvaWQgUGFnZTo6bGF5b3V0SWZOZWVkZWQoYm9vbCB1cGRhdGVDb21wb3NpdGluZ0xheWVycykK
IHsKICAgICBhdXRvKiBsb2NhbE1haW5GcmFtZSA9IGR5bmFtaWNEb3duY2FzdDxMb2NhbEZyYW1l
PihtX21haW5GcmFtZS5nZXQoKSk7CiAgICAgaWYgKGF1dG8qIHZpZXcgPSBsb2NhbE1haW5GcmFt
ZSA/IGxvY2FsTWFpbkZyYW1lLT52aWV3KCkgOiBudWxscHRyKQotICAgICAgICB2aWV3LT51cGRh
dGVMYXlvdXRBbmRTdHlsZUlmTmVlZGVkUmVjdXJzaXZlKCk7CisgICAgICAgIHZpZXctPnVwZGF0
ZUxheW91dEFuZFN0eWxlSWZOZWVkZWRSZWN1cnNpdmUodXBkYXRlQ29tcG9zaXRpbmdMYXllcnMp
OwogfQogCiB2b2lkIFBhZ2U6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKE9wdGlvblNldDxSZW5k
ZXJpbmdVcGRhdGVTdGVwPiByZXF1ZXN0ZWRTdGVwcykKQEAgLTE4OTQsNyArMTg5NSw3IEBAIHZv
aWQgUGFnZTo6dXBkYXRlUmVuZGVyaW5nKCkKICAgICBpZiAobV9pc1RyYWNraW5nUmVuZGVyaW5n
VXBkYXRlcykKICAgICAgICAgKyttX3JlbmRlcmluZ1VwZGF0ZUNvdW50OwogCi0gICAgbGF5b3V0
SWZOZWVkZWQoKTsKKyAgICBsYXlvdXRJZk5lZWRlZCh0cnVlKTsKICAgICBkb0FmdGVyVXBkYXRl
UmVuZGVyaW5nKCk7CiAKICAgICBpZiAoIWlzU1ZHSW1hZ2VQYWdlKQpAQCAtMTk3NSw3ICsxOTc2
LDcgQEAgdm9pZCBQYWdlOjpkb0FmdGVyVXBkYXRlUmVuZGVyaW5nKCkKIAogICAgIG1fcmVuZGVy
aW5nVXBkYXRlUmVtYWluaW5nU3RlcHMubGFzdCgpLnJlbW92ZShSZW5kZXJpbmdVcGRhdGVTdGVw
OjpFdmVudFJlZ2lvblVwZGF0ZSk7CiAKLWF1dG8qIGxvY2FsTWFpbkZyYW1lID0gZHluYW1pY0Rv
d25jYXN0PExvY2FsRnJhbWU+KG1haW5GcmFtZSgpKTsKKyAgICBhdXRvKiBsb2NhbE1haW5GcmFt
ZSA9IGR5bmFtaWNEb3duY2FzdDxMb2NhbEZyYW1lPihtYWluRnJhbWUoKSk7CiAjaWYgRU5BQkxF
KElPU19UT1VDSF9FVkVOVFMpCiAgICAgLy8gdXBkYXRlVG91Y2hFdmVudFJlZ2lvbnMoKSBuZWVk
cyB0byBiZSBjYWxsZWQgb25seSBvbiB0aGUgdG9wIGRvY3VtZW50LgogICAgIGlmIChSZWZQdHI8
RG9jdW1lbnQ+IGRvY3VtZW50ID0gbG9jYWxNYWluRnJhbWUgPyBsb2NhbE1haW5GcmFtZS0+ZG9j
dW1lbnQoKSA6IG51bGxwdHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDRiNzExNzUzMTkyMS4uMWZkZmU2
YWMzZGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNDkyLDYgKzQ5Miw4IEBAIHB1YmxpYzoKICAgICBi
b29sIGRlbGVnYXRlc1NjYWxpbmcoKSBjb25zdCB7IHJldHVybiBtX2RlbGVnYXRlc1NjYWxpbmc7
IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERlbGVnYXRlc1NjYWxpbmcoYm9vbCk7CiAK
KyAgICB2b2lkIHNldFVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzSXNQZW5kaW5nKCkgeyBtX3VwZGF0
ZUNvbXBvc2l0aW5nTGF5ZXJzSXNQZW5kaW5nID0gdHJ1ZTsgfQorCiAgICAgLy8gVGhlIHZpZXcg
c2NhbGUgZmFjdG9yIGlzIG11bHRpcGxpZWQgaW50byB0aGUgcGFnZSBzY2FsZSBmYWN0b3IgYnkg
YWxsCiAgICAgLy8gY2FsbGVycyBvZiBzZXRQYWdlU2NhbGVGYWN0b3IuCiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRWaWV3U2NhbGVGYWN0b3IoZmxvYXQpOwpAQCAtNjc2LDcgKzY3OCw3IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZEFjdGl2aXR5U3RhdGVDaGFuZ2VP
YnNlcnZlcihBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXImKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbW92ZUFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlcihBY3Rpdml0eVN0YXRlQ2hh
bmdlT2JzZXJ2ZXImKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbGF5b3V0SWZOZWVkZWQo
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGxheW91dElmTmVlZGVkKGJvb2wgdXBkYXRlQ29t
cG9zaXRpbmdMYXllcnMgPSBmYWxzZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVS
ZW5kZXJpbmcoKTsKICAgICAvLyBBIGNhbGwgdG8gdXBkYXRlUmVuZGVyaW5nKCkgdGhhdCBpcyBu
b3QgZm9sbG93ZWQgYnkgYSBjYWxsIHRvIGZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCkuCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBpc29sYXRlZFVwZGF0ZVJlbmRlcmluZygpOwpAQCAtMTMzOCw2
ICsxMzQwLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fbWVkaWFCdWZmZXJpbmdJc1N1c3BlbmRl
ZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1Jlc291cmNlTG9hZENsaWVudCB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2RlbGVnYXRlc1NjYWxpbmcgeyBmYWxzZSB9OworICAgIGJvb2wgbV91cGRh
dGVDb21wb3NpdGluZ0xheWVyc0lzUGVuZGluZyB7IGZhbHNlIH07CisKIAogI2lmIEVOQUJMRShF
RElUQUJMRV9SRUdJT04pCiAgICAgYm9vbCBtX2lzRWRpdGFibGVSZWdpb25FbmFibGVkIHsgZmFs
c2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKaW5kZXggMDM0NWUxYzQzOGRlLi41M2NmNWMyY2NjNzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0yNTA2
LDIwICsyNTA2LDIxIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyb290TGF5ZXJDb25m
aWd1cmF0aW9uQ2hhbmdlZCgpCiAKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVD
b21wb3NpdGluZ0ZvckxheWVyVHJlZUFzVGV4dER1bXAoKQogewotICAgIGF1dG8mIGZyYW1lVmll
dyA9IG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKTsKLSAgICBmcmFtZVZpZXcudXBkYXRlTGF5b3V0
QW5kU3R5bGVJZk5lZWRlZFJlY3Vyc2l2ZSgpOwotICAgIAotICAgIHVwZGF0ZUV2ZW50UmVnaW9u
cygpOworICAgIGF1dG8qIGxvY2FsTWFpbkZyYW1lID0gZHluYW1pY0Rvd25jYXN0PExvY2FsRnJh
bWU+KHBhZ2UoKS5tYWluRnJhbWUoKSk7CisgICAgaWYgKGF1dG8qIGZyYW1lVmlldyA9IGxvY2Fs
TWFpbkZyYW1lID8gbG9jYWxNYWluRnJhbWUtPnZpZXcoKSA6IG51bGxwdHIpIHsKKyAgICAgICAg
ZnJhbWVWaWV3LT51cGRhdGVMYXlvdXRBbmRTdHlsZUlmTmVlZGVkUmVjdXJzaXZlKHRydWUpOwog
Ci0gICAgZm9yIChhdXRvKiBjaGlsZCA9IGZyYW1lVmlldy5mcmFtZSgpLnRyZWUoKS5maXJzdFJl
bmRlcmVkQ2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnRyZWUoKS50cmF2ZXJzZU5leHRS
ZW5kZXJlZCgpKSB7Ci0gICAgICAgIGF1dG8qIGxvY2FsQ2hpbGQgPSBkeW5hbWljRG93bmNhc3Q8
TG9jYWxGcmFtZT4oY2hpbGQpOwotICAgICAgICBpZiAoIWxvY2FsQ2hpbGQpCi0gICAgICAgICAg
ICBjb250aW51ZTsKLSAgICAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gbG9jYWxDaGlsZC0+Y29u
dGVudFJlbmRlcmVyKCkpCi0gICAgICAgICAgICByZW5kZXJlci0+Y29tcG9zaXRvcigpLnVwZGF0
ZUV2ZW50UmVnaW9ucygpOworCisgICAgICAgIGZvciAoYXV0byogY2hpbGQgPSBmcmFtZVZpZXct
PmZyYW1lKCkudHJlZSgpLmZpcnN0UmVuZGVyZWRDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGls
ZC0+dHJlZSgpLnRyYXZlcnNlTmV4dFJlbmRlcmVkKCkpIHsKKyAgICAgICAgICAgIGF1dG8qIGxv
Y2FsQ2hpbGQgPSBkeW5hbWljRG93bmNhc3Q8TG9jYWxGcmFtZT4oY2hpbGQpOworICAgICAgICAg
ICAgaWYgKCFsb2NhbENoaWxkKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gbG9jYWxDaGlsZC0+Y29udGVudFJlbmRlcmVyKCkpCisg
ICAgICAgICAgICAgICAgcmVuZGVyZXItPmNvbXBvc2l0b3IoKS51cGRhdGVFdmVudFJlZ2lvbnMo
KTsKKyAgICAgICAgfQogICAgIH0KIAotICAgIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBv
c2l0aW5nVXBkYXRlVHlwZTo6QWZ0ZXJMYXlvdXQpOworICAgIHVwZGF0ZUV2ZW50UmVnaW9ucygp
OwogCiAgICAgaWYgKCFtX3Jvb3RDb250ZW50c0xheWVyKQogICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKaW5kZXggMGM2ZjFi
Y2Q0N2VkLi5mZTQ3MmI1YWE1MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUcmVlQXNUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVHJlZUFzVGV4dC5jcHAKQEAgLTkyNiwyNiArOTI2LDEzIEBAIHN0YXRpYyBTdHJpbmcgZXh0
ZXJuYWxSZXByZXNlbnRhdGlvbihSZW5kZXJCb3gmIHJlbmRlcmVyLCBPcHRpb25TZXQ8UmVuZGVy
QXNUZXh0CiAgICAgcmV0dXJuIHRzLnJlbGVhc2UoKTsKIH0KIAotc3RhdGljIHZvaWQgdXBkYXRl
TGF5b3V0SWdub3JpbmdQZW5kaW5nU3R5bGVzaGVldHNJbmNsdWRpbmdTdWJmcmFtZXMoRG9jdW1l
bnQmIGRvY3VtZW50KQotewotICAgIGRvY3VtZW50LnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdT
dHlsZXNoZWV0cygpOwotICAgIGF1dG8qIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKTsKLSAgICBm
b3IgKEZyYW1lKiBzdWJmcmFtZSA9IGZyYW1lOyBzdWJmcmFtZTsgc3ViZnJhbWUgPSBzdWJmcmFt
ZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChmcmFtZSkpIHsKLSAgICAgICAgYXV0byogbG9jYWxGcmFt
ZSA9IGR5bmFtaWNEb3duY2FzdDxMb2NhbEZyYW1lPihzdWJmcmFtZSk7Ci0gICAgICAgIGlmICgh
bG9jYWxGcmFtZSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoYXV0byogZG9j
dW1lbnQgPSBsb2NhbEZyYW1lLT5kb2N1bWVudCgpKQotICAgICAgICAgICAgZG9jdW1lbnQtPnVw
ZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwotICAgIH0KLX0KLQogU3RyaW5n
IGV4dGVybmFsUmVwcmVzZW50YXRpb24oTG9jYWxGcmFtZSogZnJhbWUsIE9wdGlvblNldDxSZW5k
ZXJBc1RleHRGbGFnPiBiZWhhdmlvcikKIHsKICAgICBBU1NFUlQoZnJhbWUpOwogICAgIEFTU0VS
VChmcmFtZS0+ZG9jdW1lbnQoKSk7CiAKLSAgICBpZiAoIShiZWhhdmlvci5jb250YWlucyhSZW5k
ZXJBc1RleHRGbGFnOjpEb250VXBkYXRlTGF5b3V0KSkpCi0gICAgICAgIHVwZGF0ZUxheW91dEln
bm9yaW5nUGVuZGluZ1N0eWxlc2hlZXRzSW5jbHVkaW5nU3ViZnJhbWVzKCpmcmFtZS0+ZG9jdW1l
bnQoKSk7CisgICAgaWYgKCEoYmVoYXZpb3IuY29udGFpbnMoUmVuZGVyQXNUZXh0RmxhZzo6RG9u
dFVwZGF0ZUxheW91dCkpICYmIGZyYW1lLT52aWV3KCkpCisgICAgICAgIGZyYW1lLT52aWV3KCkt
PnVwZGF0ZUxheW91dEFuZFN0eWxlSWZOZWVkZWRSZWN1cnNpdmUodHJ1ZSwgdHJ1ZSk7CiAKICAg
ICBhdXRvKiByZW5kZXJlciA9IGZyYW1lLT5jb250ZW50UmVuZGVyZXIoKTsKICAgICBpZiAoIXJl
bmRlcmVyKQpAQCAtOTc1LDggKzk2Miw4IEBAIFN0cmluZyBleHRlcm5hbFJlcHJlc2VudGF0aW9u
KEVsZW1lbnQqIGVsZW1lbnQsIE9wdGlvblNldDxSZW5kZXJBc1RleHRGbGFnPiBiZWhhCiAgICAg
Ly8gVGhpcyBmdW5jdGlvbiBkb2Vzbid0IHN1cHBvcnQgcHJpbnRpbmcgbW9kZS4KICAgICBBU1NF
UlQoIShiZWhhdmlvci5jb250YWlucyhSZW5kZXJBc1RleHRGbGFnOjpQcmludGluZ01vZGUpKSk7
CiAKLSAgICBpZiAoIShiZWhhdmlvci5jb250YWlucyhSZW5kZXJBc1RleHRGbGFnOjpEb250VXBk
YXRlTGF5b3V0KSkpCi0gICAgICAgIHVwZGF0ZUxheW91dElnbm9yaW5nUGVuZGluZ1N0eWxlc2hl
ZXRzSW5jbHVkaW5nU3ViZnJhbWVzKGVsZW1lbnQtPmRvY3VtZW50KCkpOworICAgIGlmICghKGJl
aGF2aW9yLmNvbnRhaW5zKFJlbmRlckFzVGV4dEZsYWc6OkRvbnRVcGRhdGVMYXlvdXQpKSAmJiBl
bGVtZW50LT5kb2N1bWVudCgpLnZpZXcoKSkKKyAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS52
aWV3KCktPnVwZGF0ZUxheW91dEFuZFN0eWxlSWZOZWVkZWRSZWN1cnNpdmUodHJ1ZSwgdHJ1ZSk7
CiAKICAgICBhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFp
czxSZW5kZXJCb3g+KHJlbmRlcmVyKSkK
</data>
<flag name="commit-queue"
          id="495393"
          type_id="3"
          status="-"
          setter="mattwoodrow"
    />
          </attachment>
      

    </bug>

</bugzilla>