<?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>240284</bug_id>
          
          <creation_ts>2022-05-10 11:37:15 -0700</creation_ts>
          <short_desc>Web Inspector: Non-reproducible crash at WebKit::WebInspectorUIProxy::platformDetach</short_desc>
          <delta_ts>2022-06-07 21:35:14 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Patrick Angle">pangle</reporter>
          <assigned_to name="Patrick Angle">pangle</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1867983</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-05-10 11:37:15 -0700</bug_when>
    <thetext>&lt;rdar://91720039&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867986</commentid>
    <comment_count>1</comment_count>
      <attachid>459129</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-05-10 11:47:28 -0700</bug_when>
    <thetext>Created attachment 459129
Patch v1.0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868019</commentid>
    <comment_count>2</comment_count>
      <attachid>459129</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-05-10 14:48:31 -0700</bug_when>
    <thetext>Comment on attachment 459129
Patch v1.0

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

&gt; Source/WebKit/UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:764
&gt; +    if (inspectedView)

I think we may also need to add this check inside `platformAttach` and/or `platformCreateFrontendWindow` since those can be called by `open`.

Frankly, it might be best to just add a check for all of the `inspectedPage()` in this file 😅</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868036</commentid>
    <comment_count>3</comment_count>
      <attachid>459129</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-05-10 16:29:25 -0700</bug_when>
    <thetext>Comment on attachment 459129
Patch v1.0

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

&gt;&gt; Source/WebKit/UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:764
&gt;&gt; +    if (inspectedView)
&gt; 
&gt; I think we may also need to add this check inside `platformAttach` and/or `platformCreateFrontendWindow` since those can be called by `open`.
&gt; 
&gt; Frankly, it might be best to just add a check for all of the `inspectedPage()` in this file 😅

`open` shouldn&apos;t be reachable in this case because `WebInspectorUIProxy::closeFrontendPageAndWindow` will have already set m_isVisible to false. But I take your point that we should defend other call-sites anyways.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868044</commentid>
    <comment_count>4</comment_count>
      <attachid>459141</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-05-10 17:11:06 -0700</bug_when>
    <thetext>Created attachment 459141
Patch v1.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868271</commentid>
    <comment_count>5</comment_count>
      <attachid>459194</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-05-11 18:01:04 -0700</bug_when>
    <thetext>Created attachment 459194
Patch v1.2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868498</commentid>
    <comment_count>6</comment_count>
      <attachid>459194</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-05-12 11:43:16 -0700</bug_when>
    <thetext>Comment on attachment 459194
Patch v1.2

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

&gt; Source/WebKit/UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:425
&gt; +    ASSERT(inspectedPage());

how sure are we that each of these `ASSERT(inspectedPage())` is in fact unreachable (i.e. can never cause problems)?

as an example, this function is called by `WebInspectorUIProxy::elementSelectionChanged`, which seems to come from IPC, so I&apos;m not sure what guarantees we have about this being valid here :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868540</commentid>
    <comment_count>7</comment_count>
      <attachid>459194</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-05-12 14:19:27 -0700</bug_when>
    <thetext>Comment on attachment 459194
Patch v1.2

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

&gt;&gt; Source/WebKit/UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:425
&gt;&gt; +    ASSERT(inspectedPage());
&gt; 
&gt; how sure are we that each of these `ASSERT(inspectedPage())` is in fact unreachable (i.e. can never cause problems)?
&gt; 
&gt; as an example, this function is called by `WebInspectorUIProxy::elementSelectionChanged`, which seems to come from IPC, so I&apos;m not sure what guarantees we have about this being valid here :/

I guess it happening over IPC means we could end up racing teardown, yeah...

I stand by my assertion (see what I did there 😉) for platformCreateFrontendWindow, since we should never as far as I can tell not have an inspected page at that point, and if we do what are we even trying to inspect.

platformInspectedWindowHeight/Width on further investigation are only reachable on GTK/Windows, and only used within their WebInspectorUIProxy*.cpp file. So turns out those are very unreachable 😅. I&apos;ll do that cleanup now.

platformAttach should also be an assertion IMO because it would be a mistake to call platformAttach without checking platformCanAttach first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868597</commentid>
    <comment_count>8</comment_count>
      <attachid>459264</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-05-12 17:43:56 -0700</bug_when>
    <thetext>Created attachment 459264
Patch v1.3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868613</commentid>
    <comment_count>9</comment_count>
      <attachid>459268</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-05-12 18:21:47 -0700</bug_when>
    <thetext>Created attachment 459268
Patch v1.3.1 - Changelog formatting issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868615</commentid>
    <comment_count>10</comment_count>
      <attachid>459269</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-05-12 18:29:29 -0700</bug_when>
    <thetext>Created attachment 459269
Patch v1.3.2 - Fix Windows build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868897</commentid>
    <comment_count>11</comment_count>
      <attachid>459194</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-05-13 15:41:14 -0700</bug_when>
    <thetext>Comment on attachment 459194
Patch v1.2

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

&gt;&gt;&gt; Source/WebKit/UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:425
&gt;&gt;&gt; +    ASSERT(inspectedPage());
&gt;&gt; 
&gt;&gt; how sure are we that each of these `ASSERT(inspectedPage())` is in fact unreachable (i.e. can never cause problems)?
&gt;&gt; 
&gt;&gt; as an example, this function is called by `WebInspectorUIProxy::elementSelectionChanged`, which seems to come from IPC, so I&apos;m not sure what guarantees we have about this being valid here :/
&gt; 
&gt; I guess it happening over IPC means we could end up racing teardown, yeah...
&gt; 
&gt; I stand by my assertion (see what I did there 😉) for platformCreateFrontendWindow, since we should never as far as I can tell not have an inspected page at that point, and if we do what are we even trying to inspect.
&gt; 
&gt; platformInspectedWindowHeight/Width on further investigation are only reachable on GTK/Windows, and only used within their WebInspectorUIProxy*.cpp file. So turns out those are very unreachable 😅. I&apos;ll do that cleanup now.
&gt; 
&gt; platformAttach should also be an assertion IMO because it would be a mistake to call platformAttach without checking platformCanAttach first.

i think both `platformCreateFrontendWindow` and `platformAttach` can be reached via `bringToFront`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868930</commentid>
    <comment_count>12</comment_count>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-05-13 17:35:22 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #11)
&gt; Comment on attachment 459194 [details]
&gt; Patch v1.2
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=459194&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit/UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:425
&gt; &gt;&gt;&gt; +    ASSERT(inspectedPage());
&gt; &gt;&gt; 
&gt; &gt;&gt; how sure are we that each of these `ASSERT(inspectedPage())` is in fact unreachable (i.e. can never cause problems)?
&gt; &gt;&gt; 
&gt; &gt;&gt; as an example, this function is called by `WebInspectorUIProxy::elementSelectionChanged`, which seems to come from IPC, so I&apos;m not sure what guarantees we have about this being valid here :/
&gt; &gt; 
&gt; &gt; I guess it happening over IPC means we could end up racing teardown, yeah...
&gt; &gt; 
&gt; &gt; I stand by my assertion (see what I did there 😉) for platformCreateFrontendWindow, since we should never as far as I can tell not have an inspected page at that point, and if we do what are we even trying to inspect.
&gt; &gt; [...]
&gt; &gt; 
&gt; &gt; platformAttach should also be an assertion IMO because it would be a mistake to call platformAttach without checking platformCanAttach first.
&gt; 
&gt; i think both `platformCreateFrontendWindow` and `platformAttach` can be
&gt; reached via `bringToFront`

Sorry, I should have responded to this again because I&apos;d discovered more now that I&apos;ve dug further into this beyond the narrow issue I set out to resolve. You are correct, they are reachable, and the latest patch makes the assumption that we might not always have an inspected page for each occurrence that had before this patch not asserted/guarded `inspectedPage()`, with the exception of `platformAttach` because I had previously thought it was only reachable from `attach`, which guards on `platformCanAttach` which in the latest patch returns false when there is no `inspectedPage`...

Taking a fresh look today even my assertion in `platformAttach` isn&apos;t a given because `open` doesn&apos;t guard calling `platformAttach` on `platformCanAttach`... But that feels better handled by augmenting the existing check in `open` to handle this situation. Probably something along the lines of...
```
if (m_attached &amp;&amp; platformCanAttach(m_canAttach))
    platformAttach();
else {
    m_isAttached = false;
    platformCreateFrontendWindow();
}
```
since the alternative would probably end up being ignoring the call to `open` if we were to bail inside `platformAttach`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869318</commentid>
    <comment_count>13</comment_count>
      <attachid>459437</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-05-16 10:53:48 -0700</bug_when>
    <thetext>Created attachment 459437
Patch v1.4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869383</commentid>
    <comment_count>14</comment_count>
      <attachid>459450</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-05-16 13:17:54 -0700</bug_when>
    <thetext>Created attachment 459450
Patch v1.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869746</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-05-17 11:38:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/93440479&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869749</commentid>
    <comment_count>16</comment_count>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-05-17 11:48:13 -0700</bug_when>
    <thetext>&lt;rdar://91720039&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874584</commentid>
    <comment_count>17</comment_count>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-06-07 15:01:33 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/1360</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874645</commentid>
    <comment_count>18</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-06-07 21:35:12 -0700</bug_when>
    <thetext>Committed r295374 (251382@main): &lt;https://commits.webkit.org/251382@main&gt;

Reviewed commits have been landed. Closing PR #1360 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459129</attachid>
            <date>2022-05-10 11:47:28 -0700</date>
            <delta_ts>2022-05-10 17:11:05 -0700</delta_ts>
            <desc>Patch v1.0</desc>
            <filename>bug-240284-20220510114727.patch</filename>
            <type>text/plain</type>
            <size>2777</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzOTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc0YzhjMzU0NTQwOWNlNGVk
MTE4MTg3YzdiYzcxMzFlMGEyOWFiYzEuLjJlMzg2NGI2Mzg1MDYyM2VkODQzNjkwMGRiYjlkYWU1
OTU4MTVlOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjItMDUtMTAgIFBhdHJpY2sg
QW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5vbi1y
ZXByb2R1Y2libGUgY3Jhc2ggYXQgV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9y
bURldGFjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjQwMjg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3BlY3VsYXRpdmUgZml4IGZvciBub24tcmVwcm9kdWNpYmxlIGNyYXNoLiBXaGVuIGBXZWJJbnNw
ZWN0b3JVSVByb3h5OjpwbGF0Zm9ybURldGFjaGAgaXMgY2FsbGVkIGZyb20KKyAgICAgICAgYFdl
Ykluc3BlY3RvclVJUHJveHk6OmNsb3NlRnJvbnRlbmRQYWdlQW5kV2luZG93YCwgaXQgYXBwZWFy
cyB0byBiZSBwb3NzaWJsZSBmb3IgdGhlIGluc3BlY3RlZCBwYWdlIHRvIGhhdmUKKyAgICAgICAg
YWxyZWFkeSBiZWVuIGRpc2NhcmRlZCAodmlhIGBXZWJJbnNwZWN0b3JVSVByb3h5OjpyZXNldGAp
LiBUaGlzIGlzIHJlaW5mb3JjZWQgYnkgdGhlIGZhY3QgdGhhdAorICAgICAgICBgV2ViSW5zcGVj
dG9yVUlQcm94eTo6Y2xvc2VGcm9udGVuZFBhZ2VBbmRXaW5kb3dgIGFscmVhZHkgZ3VhcmRzIHVz
ZSBvZiBgaW5zcGVjdGVkUGFnZSgpYC4gV2Ugc2hvdWxkIGRvIHRoZSBzYW1lCisgICAgICAgIGhl
cmUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JVSVBy
b3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9y
bURldGFjaCk6CisgICAgICAgIC0gQWxzbyBjbGVhbiB1cCBzb21lIGNvbmZ1c2luZyBuZXdsaW5l
cyBpbiB0aGlzIG1ldGhvZCB3aGlsZSB3ZSBhcmUgaGVyZS4KKwogMjAyMi0wNS0wOSAgQmVuIE5o
YW0gIDxuaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyBsb2cgc3RyZWFtaW5nIGZyb20g
d2VicHVzaGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9t
YWMvV2ViSW5zcGVjdG9yVUlQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yVUlQcm94eU1hYy5tbQppbmRleCAzMWU2ZmIxOGIzNmUw
OTcyYmUyMDBmZTkxY2Y0NGE2OTVhZDhiMTg0Li5hMjU2NWJhOTUwOGM0MWFmOTEzNjI5NGNjMDhi
ZWY5NDgzNWQ3M2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvbWFjL1dlYkluc3BlY3RvclVJUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JVSVByb3h5TWFjLm1tCkBAIC03NTMsMTcg
Kzc1MywxNiBAQCB2b2lkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKIAog
dm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybURldGFjaCgpCiB7Ci0gICAgTlNWaWV3
ICppbnNwZWN0ZWRWaWV3ID0gaW5zcGVjdGVkUGFnZSgpLT5pbnNwZWN0b3JBdHRhY2htZW50Vmll
dygpOworICAgIE5TVmlldyAqaW5zcGVjdGVkVmlldyA9IGluc3BlY3RlZFBhZ2UoKSA/IGluc3Bl
Y3RlZFBhZ2UoKS0+aW5zcGVjdG9yQXR0YWNobWVudFZpZXcoKSA6IG5pbDsKICAgICBXS1dlYlZp
ZXcgKmluc3BlY3RvclZpZXcgPSBbbV9pbnNwZWN0b3JWaWV3Q29udHJvbGxlciB3ZWJWaWV3XTsK
IAogICAgIFtpbnNwZWN0b3JWaWV3IHJlbW92ZUZyb21TdXBlcnZpZXddOwotCiAgICAgW2luc3Bl
Y3RvclZpZXcgc2V0QXV0b3Jlc2l6aW5nTWFzazpOU1ZpZXdXaWR0aFNpemFibGUgfCBOU1ZpZXdI
ZWlnaHRTaXphYmxlXTsKIAogICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHdlIHNpemUgdGhlIGluc3Bl
Y3RlZCB2aWV3J3MgZnJhbWUgYWZ0ZXIgZGV0YWNoaW5nIHNvIHRoYXQgaXQgdGFrZXMgdXAgdGhl
IHNwYWNlIHRoYXQgdGhlCiAgICAgLy8gYXR0YWNoZWQgaW5zcGVjdG9yIHVzZWQgdG8uIFByZXNl
cnZlIHRoZSB0b3AgcG9zaXRpb24gb2YgdGhlIGluc3BlY3RlZCB2aWV3IHNvIGJhbm5lcnMgaW4g
U2FmYXJpIHN0aWxsIHdvcmsuCi0KLSAgICBpbnNwZWN0ZWRWaWV3LmZyYW1lID0gTlNNYWtlUmVj
dCgwLCAwLCBOU1dpZHRoKGluc3BlY3RlZFZpZXcuc3VwZXJ2aWV3LmJvdW5kcyksIE5TTWF4WShp
bnNwZWN0ZWRWaWV3LmZyYW1lKSk7CisgICAgaWYgKGluc3BlY3RlZFZpZXcpCisgICAgICAgIGlu
c3BlY3RlZFZpZXcuZnJhbWUgPSBOU01ha2VSZWN0KDAsIDAsIE5TV2lkdGgoaW5zcGVjdGVkVmll
dy5zdXBlcnZpZXcuYm91bmRzKSwgTlNNYXhZKGluc3BlY3RlZFZpZXcuZnJhbWUpKTsKIAogICAg
IC8vIFJldHVybiBlYXJseSBpZiB3ZSBhcmUgbm90IHZpc2libGUuIFRoaXMgbWVhbnMgdGhlIGlu
c3BlY3RvciB3YXMgY2xvc2VkIHdoaWxlIGF0dGFjaGVkCiAgICAgLy8gYW5kIHdlIHNob3VsZCBu
b3QgY3JlYXRlIGFuZCBzaG93IHRoZSBpbnNwZWN0b3Igd2luZG93Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459141</attachid>
            <date>2022-05-10 17:11:06 -0700</date>
            <delta_ts>2022-05-11 18:01:03 -0700</delta_ts>
            <desc>Patch v1.1</desc>
            <filename>bug-240284-20220510171105.patch</filename>
            <type>text/plain</type>
            <size>7953</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjk0MDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUxMzFjNmMyYjZiMWZkYWY4
NDdjZjRiYTgzZDk1ZGQyNDU2ZTAyOTguLjBkNzI1M2M0OGViNGJiNWMzODliYWM5MmY0YzdmZjhm
ZjYwYTEyOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMjItMDUtMTAgIFBhdHJpY2sg
QW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5vbi1y
ZXByb2R1Y2libGUgY3Jhc2ggYXQgV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9y
bURldGFjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjQwMjg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3BlY3VsYXRpdmUgZml4IGZvciBub24tcmVwcm9kdWNpYmxlIGNyYXNoLiBXaGVuIGBXZWJJbnNw
ZWN0b3JVSVByb3h5OjpwbGF0Zm9ybURldGFjaGAgaXMgY2FsbGVkIGZyb20KKyAgICAgICAgYFdl
Ykluc3BlY3RvclVJUHJveHk6OmNsb3NlRnJvbnRlbmRQYWdlQW5kV2luZG93YCwgaXQgYXBwZWFy
cyB0byBiZSBwb3NzaWJsZSBmb3IgdGhlIGluc3BlY3RlZCBwYWdlIHRvIGhhdmUKKyAgICAgICAg
YWxyZWFkeSBiZWVuIGRpc2NhcmRlZCAodmlhIGBXZWJJbnNwZWN0b3JVSVByb3h5OjpyZXNldGAp
LiBUaGlzIGlzIHJlaW5mb3JjZWQgYnkgdGhlIGZhY3QgdGhhdAorICAgICAgICBgV2ViSW5zcGVj
dG9yVUlQcm94eTo6Y2xvc2VGcm9udGVuZFBhZ2VBbmRXaW5kb3dgIGFscmVhZHkgZ3VhcmRzIHVz
ZSBvZiBgaW5zcGVjdGVkUGFnZSgpYC4gV2Ugc2hvdWxkIGRvIHRoZSBzYW1lCisgICAgICAgIGhl
cmUsIGFuZCBzaG91bGQgYWxzbyBndWFyZCBvciBhc3NlcnQgb3RoZXIgcGxhY2VzIHdlIHVzZSBg
aW5zcGVjdGVkUGFnZSgpYCB0byBoZWxwIGZ1dHVyZSBmb2xrcyB1bmRlcnN0YW5kIHRoYXQKKyAg
ICAgICAgdGhlIGV4aXN0YW5jZSBvZiBhbiBgaW5zcGVjdGVkUGFnZSgpYCBpcyBubyBndWFyYW50
ZWVkLgorCisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yVUlQ
cm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZv
cm1EZXRhY2gpOgorICAgICAgICAtIEFsc28gY2xlYW4gdXAgc29tZSBjb25mdXNpbmcgbmV3bGlu
ZXMgaW4gdGhpcyBtZXRob2Qgd2hpbGUgd2UgYXJlIGhlcmUuCisgICAgICAgIC0gTm90ZSB0aGF0
IGluIHRoZSBzaXR1YXRpb24gb3V0bGluZXMgYWJvdmUsIGBvcGVuKClgIGlzIG5vdCByZWFjaGFi
bGUgYmVjYXVzZSBgY2xvc2VGcm9udGVuZFBhZ2VBbmRXaW5kb3dgIHdpbGwKKyAgICAgICAgYWxy
ZWFkeSBoYXZlIHNldCBgbV9pc1Zpc2libGVgIHRvIGZhbHNlLgorCisgICAgICAgIChXZWJLaXQ6
OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQ3JlYXRlRnJvbnRlbmRXaW5kb3cpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybVJlc2V0U3RhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUJyaW5nVG9Gcm9u
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQnJpbmdJ
bnNwZWN0ZWRQYWdlVG9Gcm9udCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJv
eHk6OnBsYXRmb3JtQ2FuQXR0YWNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQ
cm94eTo6d2luZG93RnJhbWVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0
b3JVSVByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93V2lkdGgpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUF0dGFjaCk6Cisg
ICAgICAgIC0gRm9yIHNpdHVhdGlvbnMgdGhhdCBzaG91bGQgdGhlb3JldGljYWxseSBvbmx5IGV2
ZXIgb2NjdXIgd2hlbiB3ZSBoYXZlIGFuIGBpbnNwZWN0ZWRQYWdlKClgLCBhc3NlcnQgdGhhdCB3
ZQorICAgICAgICBoYXZlIGFuIGBpbnNwZWN0ZWRQYWdlKClgLiBGb3Igb3RoZXIgY2FsbCBzaXRl
cywgZ3VhcmQgdGhlIHVzZSBvZiBgaW5zcGVjdGVkUGFnZSgpYC4gSW4gZ2VuZXJhbCwgY29tbWFu
ZHMgYWJvdXQKKyAgICAgICAgc2V0dGluZyB1cCB0aGUgaW50ZXJmYWNlIHNob3VsZCBvbmx5IGJl
IGNhbGxlZCB3aGVuIHdlIGtub3cgd2UgaGF2ZSBhbiBpbnNlcGN0ZWQgcGFnZSwgaW5jbHVkaW5n
IGF0dGFjaGluZyB0bworICAgICAgICB0aGF0IHBhZ2UncyB2aWV3LiBgcGxhdGZvcm1DYW5BdHRh
Y2hgIHdpbGwgbm93IHJldHVybiBmYWxzZSBpZiB0aGVyZSBpcyBubyBgaW5zcGVjdGVkUGFnZSgp
YC4KKworCiAyMDIyLTA1LTEwICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbW92ZSBhYmFuZG9uZWQgQ1NTRGVmZXJyZWRQYXJzZXIgaW1wbGVtZW50YXRp
b24gYW5kIGZlYXR1cmUgZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JVSVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JVSVByb3h5TWFjLm1tCmluZGV4IDMx
ZTZmYjE4YjM2ZTA5NzJiZTIwMGZlOTFjZjQ0YTY5NWFkOGIxODQuLmM2ZDkwZDU4ZTlmNjcxMjNl
MDc1MjhiNzAzYWIyMWJmZjU2MTdlY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yVUlQcm94eU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclVJUHJveHlNYWMubW0K
QEAgLTMxMCw2ICszMTAsNyBAQCBXZWJQYWdlUHJveHkqIFdlYkluc3BlY3RvclVJUHJveHk6OnBs
YXRmb3JtQ3JlYXRlRnJvbnRlbmRQYWdlKCkKIAogdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5Ojpw
bGF0Zm9ybUNyZWF0ZUZyb250ZW5kV2luZG93KCkKIHsKKyAgICBBU1NFUlQoaW5zcGVjdGVkUGFn
ZSgpKTsKICAgICBBU1NFUlQoIW1faW5zcGVjdG9yV2luZG93KTsKIAogICAgIE5TU3RyaW5nICpz
YXZlZFdpbmRvd0ZyYW1lU3RyaW5nID0gaW5zcGVjdGVkUGFnZSgpLT5wYWdlR3JvdXAoKS5wcmVm
ZXJlbmNlcygpLmluc3BlY3RvcldpbmRvd0ZyYW1lKCk7CkBAIC0zOTAsNyArMzkxLDggQEAgdm9p
ZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUhpZGUoKQogCiB2b2lkIFdlYkluc3BlY3Rv
clVJUHJveHk6OnBsYXRmb3JtUmVzZXRTdGF0ZSgpCiB7Ci0gICAgaW5zcGVjdGVkUGFnZSgpLT5w
YWdlR3JvdXAoKS5wcmVmZXJlbmNlcygpLmRlbGV0ZUluc3BlY3RvcldpbmRvd0ZyYW1lKCk7Cisg
ICAgaWYgKGF1dG8qIGluc3BlY3RlZFBhZ2UgPSBpbnNwZWN0ZWRQYWdlKCkpCisgICAgICAgIGlu
c3BlY3RlZFBhZ2UtPnBhZ2VHcm91cCgpLnByZWZlcmVuY2VzKCkuZGVsZXRlSW5zcGVjdG9yV2lu
ZG93RnJhbWUoKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUJyaW5n
VG9Gcm9udCgpCkBAIC0zOTgsNyArNDAwLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5Ojpw
bGF0Zm9ybUJyaW5nVG9Gcm9udCgpCiAgICAgLy8gSWYgdGhlIFdlYiBJbnNwZWN0b3IgaXMgbm8g
bG9uZ2VyIGluIHRoZSBzYW1lIHdpbmRvdyBhcyB0aGUgaW5zcGVjdGVkIHZpZXcsCiAgICAgLy8g
dGhlbiB3ZSBuZWVkIHRvIHJlb3BlbiB0aGUgSW5zcGVjdG9yIHRvIGdldCBpdCBhdHRhY2hlZCB0
byB0aGUgcmlnaHQgd2luZG93LgogICAgIC8vIFRoaXMgY2FuIGhhcHBlbiB3aGVuIGRyYWdnaW5n
IHRhYnMgdG8gYW5vdGhlciB3aW5kb3cgaW4gU2FmYXJpLgotICAgIGlmIChtX2lzQXR0YWNoZWQg
JiYgW21faW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgd2ViVmlld10ud2luZG93ICE9IGluc3BlY3Rl
ZFBhZ2UoKS0+cGxhdGZvcm1XaW5kb3coKSkgeworICAgIGlmIChtX2lzQXR0YWNoZWQgJiYgaW5z
cGVjdGVkUGFnZSgpICYmIFttX2luc3BlY3RvclZpZXdDb250cm9sbGVyIHdlYlZpZXddLndpbmRv
dyAhPSBpbnNwZWN0ZWRQYWdlKCktPnBsYXRmb3JtV2luZG93KCkpIHsKICAgICAgICAgaWYgKG1f
aXNPcGVuaW5nKSB7CiAgICAgICAgICAgICAvLyA8cmRhcjovLzg4MzU4Njk2PiBJZiB3ZSBhcmUg
Y3VycmVudGx5IG9wZW5pbmcgYW4gYXR0YWNoZWQgaW5zcGVjdG9yLCB0aGUgd2luZG93cyBzaG91
bGQgaGF2ZSBhbHJlYWR5CiAgICAgICAgICAgICAvLyBtYXRjaGVkLCBhbmQgY2FsbGluZyBiYWNr
IHRvIGBvcGVuYCBpc24ndCBnb2luZyB0byBjb3JyZWN0IHRoaXMuIEFzIGEgZmFpbC1zYWZlIHRv
IHByZXZlbnQgcmVlbnRyYW5jeSwKQEAgLTQyMCw3ICs0MjIsOCBAQCB2b2lkIFdlYkluc3BlY3Rv
clVJUHJveHk6OnBsYXRmb3JtQnJpbmdUb0Zyb250KCkKIAogdm9pZCBXZWJJbnNwZWN0b3JVSVBy
b3h5OjpwbGF0Zm9ybUJyaW5nSW5zcGVjdGVkUGFnZVRvRnJvbnQoKQogewotICAgIFtpbnNwZWN0
ZWRQYWdlKCktPnBsYXRmb3JtV2luZG93KCkgbWFrZUtleUFuZE9yZGVyRnJvbnQ6bmlsXTsKKyAg
ICBpZiAoYXV0byogaW5zcGVjdGVkUGFnZSA9IGluc3BlY3RlZFBhZ2UoKSkKKyAgICAgICAgW2lu
c3BlY3RlZFBhZ2UtPnBsYXRmb3JtV2luZG93KCkgbWFrZUtleUFuZE9yZGVyRnJvbnQ6bmlsXTsK
IH0KIAogYm9vbCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUlzRnJvbnQoKQpAQCAtNDMx
LDYgKzQzNCw5IEBAIGJvb2wgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1Jc0Zyb250KCkK
IAogYm9vbCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUNhbkF0dGFjaChib29sIHdlYlBy
b2Nlc3NDYW5BdHRhY2gpCiB7CisgICAgaWYgKCFpbnNwZWN0ZWRQYWdlKCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKwogICAgIE5TVmlldyAqaW5zcGVjdGVkVmlldyA9IGluc3BlY3RlZFBhZ2Uo
KS0+aW5zcGVjdG9yQXR0YWNobWVudFZpZXcoKTsKICAgICBpZiAoW1dLSW5zcGVjdG9yVmlld0Nv
bnRyb2xsZXIgdmlld0lzSW5zcGVjdG9yV2ViVmlldzppbnNwZWN0ZWRWaWV3XSkKICAgICAgICAg
cmV0dXJuIHdlYlByb2Nlc3NDYW5BdHRhY2g7CkBAIC01OTUsOCArNjAxLDkgQEAgdm9pZCBXZWJJ
bnNwZWN0b3JVSVByb3h5Ojp3aW5kb3dGcmFtZURpZENoYW5nZSgpCiAgICAgQVNTRVJUKCFtX2lz
QXR0YWNoZWQpOwogICAgIEFTU0VSVChtX2lzVmlzaWJsZSk7CiAgICAgQVNTRVJUKG1faW5zcGVj
dG9yV2luZG93KTsKKyAgICBBU1NFUlQoaW5zcGVjdGVkUGFnZSgpKTsKIAotICAgIGlmIChtX2lz
QXR0YWNoZWQgfHwgIW1faXNWaXNpYmxlIHx8ICFtX2luc3BlY3RvcldpbmRvdykKKyAgICBpZiAo
bV9pc0F0dGFjaGVkIHx8ICFtX2lzVmlzaWJsZSB8fCAhbV9pbnNwZWN0b3JXaW5kb3cgfHwgIWlu
c3BlY3RlZFBhZ2UoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTlNTdHJpbmcgKmZyYW1lU3Ry
aW5nID0gTlNTdHJpbmdGcm9tUmVjdChbbV9pbnNwZWN0b3JXaW5kb3cgZnJhbWVdKTsKQEAgLTcw
NCw2ICs3MTEsNyBAQCB2b2lkIFdlYkluc3BlY3RvclVJUHJveHk6Omluc3BlY3RlZFZpZXdGcmFt
ZURpZENoYW5nZShDR0Zsb2F0IGN1cnJlbnREaW1lbnNpb24pCiAKIHVuc2lnbmVkIFdlYkluc3Bl
Y3RvclVJUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93SGVpZ2h0KCkKIHsKKyAgICBBU1NF
UlQoaW5zcGVjdGVkUGFnZSgpKTsKICAgICBOU1ZpZXcgKmluc3BlY3RlZFZpZXcgPSBpbnNwZWN0
ZWRQYWdlKCktPmluc3BlY3RvckF0dGFjaG1lbnRWaWV3KCk7CiAgICAgTlNSZWN0IGluc3BlY3Rl
ZFZpZXdSZWN0ID0gW2luc3BlY3RlZFZpZXcgZnJhbWVdOwogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oaW5zcGVjdGVkVmlld1JlY3Quc2l6ZS5oZWlnaHQpOwpAQCAtNzExLDYgKzcx
OSw3IEBAIHVuc2lnbmVkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2lu
ZG93SGVpZ2h0KCkKIAogdW5zaWduZWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1JbnNw
ZWN0ZWRXaW5kb3dXaWR0aCgpCiB7CisgICAgQVNTRVJUKGluc3BlY3RlZFBhZ2UoKSk7CiAgICAg
TlNWaWV3ICppbnNwZWN0ZWRWaWV3ID0gaW5zcGVjdGVkUGFnZSgpLT5pbnNwZWN0b3JBdHRhY2ht
ZW50VmlldygpOwogICAgIE5TUmVjdCBpbnNwZWN0ZWRWaWV3UmVjdCA9IFtpbnNwZWN0ZWRWaWV3
IGZyYW1lXTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGluc3BlY3RlZFZpZXdS
ZWN0LnNpemUud2lkdGgpOwpAQCAtNzE4LDYgKzcyNyw3IEBAIHVuc2lnbmVkIFdlYkluc3BlY3Rv
clVJUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93V2lkdGgoKQogCiB2b2lkIFdlYkluc3Bl
Y3RvclVJUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKIHsKKyAgICBBU1NFUlQoaW5zcGVjdGVkUGFn
ZSgpKQogICAgIE5TVmlldyAqaW5zcGVjdGVkVmlldyA9IGluc3BlY3RlZFBhZ2UoKS0+aW5zcGVj
dG9yQXR0YWNobWVudFZpZXcoKTsKICAgICBXS1dlYlZpZXcgKmluc3BlY3RvclZpZXcgPSBbbV9p
bnNwZWN0b3JWaWV3Q29udHJvbGxlciB3ZWJWaWV3XTsKIApAQCAtNzUzLDE3ICs3NjMsMTYgQEAg
dm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCiAKIHZvaWQgV2ViSW5z
cGVjdG9yVUlQcm94eTo6cGxhdGZvcm1EZXRhY2goKQogewotICAgIE5TVmlldyAqaW5zcGVjdGVk
VmlldyA9IGluc3BlY3RlZFBhZ2UoKS0+aW5zcGVjdG9yQXR0YWNobWVudFZpZXcoKTsKKyAgICBO
U1ZpZXcgKmluc3BlY3RlZFZpZXcgPSBpbnNwZWN0ZWRQYWdlKCkgPyBpbnNwZWN0ZWRQYWdlKCkt
Pmluc3BlY3RvckF0dGFjaG1lbnRWaWV3KCkgOiBuaWw7CiAgICAgV0tXZWJWaWV3ICppbnNwZWN0
b3JWaWV3ID0gW21faW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgd2ViVmlld107CiAKICAgICBbaW5z
cGVjdG9yVmlldyByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKLQogICAgIFtpbnNwZWN0b3JWaWV3IHNl
dEF1dG9yZXNpemluZ01hc2s6TlNWaWV3V2lkdGhTaXphYmxlIHwgTlNWaWV3SGVpZ2h0U2l6YWJs
ZV07CiAKICAgICAvLyBNYWtlIHN1cmUgdGhhdCB3ZSBzaXplIHRoZSBpbnNwZWN0ZWQgdmlldydz
IGZyYW1lIGFmdGVyIGRldGFjaGluZyBzbyB0aGF0IGl0IHRha2VzIHVwIHRoZSBzcGFjZSB0aGF0
IHRoZQogICAgIC8vIGF0dGFjaGVkIGluc3BlY3RvciB1c2VkIHRvLiBQcmVzZXJ2ZSB0aGUgdG9w
IHBvc2l0aW9uIG9mIHRoZSBpbnNwZWN0ZWQgdmlldyBzbyBiYW5uZXJzIGluIFNhZmFyaSBzdGls
bCB3b3JrLgotCi0gICAgaW5zcGVjdGVkVmlldy5mcmFtZSA9IE5TTWFrZVJlY3QoMCwgMCwgTlNX
aWR0aChpbnNwZWN0ZWRWaWV3LnN1cGVydmlldy5ib3VuZHMpLCBOU01heFkoaW5zcGVjdGVkVmll
dy5mcmFtZSkpOworICAgIGlmIChpbnNwZWN0ZWRWaWV3KQorICAgICAgICBpbnNwZWN0ZWRWaWV3
LmZyYW1lID0gTlNNYWtlUmVjdCgwLCAwLCBOU1dpZHRoKGluc3BlY3RlZFZpZXcuc3VwZXJ2aWV3
LmJvdW5kcyksIE5TTWF4WShpbnNwZWN0ZWRWaWV3LmZyYW1lKSk7CiAKICAgICAvLyBSZXR1cm4g
ZWFybHkgaWYgd2UgYXJlIG5vdCB2aXNpYmxlLiBUaGlzIG1lYW5zIHRoZSBpbnNwZWN0b3Igd2Fz
IGNsb3NlZCB3aGlsZSBhdHRhY2hlZAogICAgIC8vIGFuZCB3ZSBzaG91bGQgbm90IGNyZWF0ZSBh
bmQgc2hvdyB0aGUgaW5zcGVjdG9yIHdpbmRvdy4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459194</attachid>
            <date>2022-05-11 18:01:04 -0700</date>
            <delta_ts>2022-05-12 17:43:54 -0700</delta_ts>
            <desc>Patch v1.2</desc>
            <filename>bug-240284-20220511180104.patch</filename>
            <type>text/plain</type>
            <size>7530</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjk0MDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIyNjRmYTVhN2Q2YzM5M2Ey
MDA3MzVkY2EwNmVlZmFjMDBmMDM4ZDYuLjc5ZWJmM2E0NGIwMGU0YjFlNDBmNTM5MTMzZWRhODM0
NGU4NzYyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjItMDUtMTEgIFBhdHJpY2sg
QW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5vbi1y
ZXByb2R1Y2libGUgY3Jhc2ggYXQgV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9y
bURldGFjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjQwMjg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3BlY3VsYXRpdmUgZml4IGZvciBub24tcmVwcm9kdWNpYmxlIGNyYXNoLiBXaGVuIGBXZWJJbnNw
ZWN0b3JVSVByb3h5OjpwbGF0Zm9ybURldGFjaGAgaXMgY2FsbGVkIGZyb20KKyAgICAgICAgYFdl
Ykluc3BlY3RvclVJUHJveHk6OmNsb3NlRnJvbnRlbmRQYWdlQW5kV2luZG93YCwgaXQgYXBwZWFy
cyB0byBiZSBwb3NzaWJsZSBmb3IgdGhlIGluc3BlY3RlZCBwYWdlIHRvIGhhdmUKKyAgICAgICAg
YWxyZWFkeSBiZWVuIGRpc2NhcmRlZCAodmlhIGBXZWJJbnNwZWN0b3JVSVByb3h5OjpyZXNldGAp
LiBUaGlzIGlzIHJlaW5mb3JjZWQgYnkgdGhlIGZhY3QgdGhhdAorICAgICAgICBgV2ViSW5zcGVj
dG9yVUlQcm94eTo6Y2xvc2VGcm9udGVuZFBhZ2VBbmRXaW5kb3dgIGFscmVhZHkgZ3VhcmRzIHVz
ZSBvZiBgaW5zcGVjdGVkUGFnZSgpYC4gV2Ugc2hvdWxkIGRvIHRoZSBzYW1lCisgICAgICAgIGhl
cmUsIGFuZCBzaG91bGQgYWxzbyBndWFyZCBvciBhc3NlcnQgb3RoZXIgcGxhY2VzIHdlIHVzZSBg
aW5zcGVjdGVkUGFnZSgpYCB0byBoZWxwIGZ1dHVyZSBmb2xrcyAoaW5jbHVkaW5nIG1lKQorICAg
ICAgICB1bmRlcnN0YW5kIHRoYXQgdGhlIGV4aXN0YW5jZSBvZiBhbiBgaW5zcGVjdGVkUGFnZSgp
YCBpcyBub3QgZ3VhcmFudGVlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvbWFj
L1dlYkluc3BlY3RvclVJUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clVJUHJveHk6OnBsYXRmb3JtRGV0YWNoKToKKyAgICAgICAgLSBBbHNvIGNsZWFuIHVwIHNvbWUg
Y29uZnVzaW5nIG5ld2xpbmVzIGluIHRoaXMgbWV0aG9kIHdoaWxlIHdlIGFyZSBoZXJlLgorICAg
ICAgICAtIE5vdGUgdGhhdCBpbiB0aGUgc2l0dWF0aW9uIG91dGxpbmVkIGluIHRoZSBhYm92ZSBz
dW1tYXJ5LCBgb3BlbigpYCBpcyBub3QgcmVhY2hhYmxlIGJlY2F1c2UKKyAgICAgICAgYGNsb3Nl
RnJvbnRlbmRQYWdlQW5kV2luZG93YCB3aWxsIGFscmVhZHkgaGF2ZSBzZXQgYG1faXNWaXNpYmxl
YCB0byBmYWxzZS4KKworICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0
Zm9ybVJlc2V0U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5Ojp3
aW5kb3dGcmFtZURpZENoYW5nZSk6CisgICAgICAgIC0gQWRkIGNoZWNrcyBzbyB0aGF0IGlmIHRo
ZSBpbnNwZWN0ZVBhZ2UgZG9lc24ndCBleGlzdCwgd2UgZG9uJ3QgdXBkYXRlIHRoZSB3aW5kb3cg
ZnJhbWUgcHJlZmVyZW5jZS4KKworICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5
OjpwbGF0Zm9ybUNyZWF0ZUZyb250ZW5kV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5z
cGVjdG9yVUlQcm94eTo6cGxhdGZvcm1CcmluZ0luc3BlY3RlZFBhZ2VUb0Zyb250KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dI
ZWlnaHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUlu
c3BlY3RlZFdpbmRvd1dpZHRoKToKKyAgICAgICAgLSBBZGQgYXNzZXJ0aW9uIHRoYXQgd2UgaGF2
ZSBhbiBgaW5zcGVjdGVkUGFnZSgpYC4KKworICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JV
SVByb3h5OjpwbGF0Zm9ybUNhbkF0dGFjaCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clVJUHJveHk6OnBsYXRmb3JtQXR0YWNoKToKKyAgICAgICAgLSBJZiB3ZSBkb24ndCBoYXZlIGFu
IGluc3BlY3RlZCBwYWdlLCByZXR1cm4gZmFsc2UgZm9yIGBwbGF0Zm9ybUNhbkF0dGFjaCgpYCBz
byB0aGF0IGNhbGxzaXRlcyBkb24ndCBjYWxsIGBwbGF0Zm9ybUF0dGFjaCgpYC4KKwogMjAyMi0w
NS0xMSAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dQ
XSBSZW1vdmUgb2Jzb2xldGUgbWVzc2FnZSBmaWx0ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclVJUHJveHlNYWMubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclVJUHJveHlN
YWMubW0KaW5kZXggMzFlNmZiMThiMzZlMDk3MmJlMjAwZmU5MWNmNDRhNjk1YWQ4YjE4NC4uODFk
ZmQwYTY4ZDVkZjEzY2QyZTExNzgzNTM2MTkyYjdkNjc0ZWIwYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JVSVByb3h5TWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9y
VUlQcm94eU1hYy5tbQpAQCAtMzEwLDYgKzMxMCw3IEBAIFdlYlBhZ2VQcm94eSogV2ViSW5zcGVj
dG9yVUlQcm94eTo6cGxhdGZvcm1DcmVhdGVGcm9udGVuZFBhZ2UoKQogCiB2b2lkIFdlYkluc3Bl
Y3RvclVJUHJveHk6OnBsYXRmb3JtQ3JlYXRlRnJvbnRlbmRXaW5kb3coKQogeworICAgIEFTU0VS
VChpbnNwZWN0ZWRQYWdlKCkpOwogICAgIEFTU0VSVCghbV9pbnNwZWN0b3JXaW5kb3cpOwogCiAg
ICAgTlNTdHJpbmcgKnNhdmVkV2luZG93RnJhbWVTdHJpbmcgPSBpbnNwZWN0ZWRQYWdlKCktPnBh
Z2VHcm91cCgpLnByZWZlcmVuY2VzKCkuaW5zcGVjdG9yV2luZG93RnJhbWUoKTsKQEAgLTM5MCw3
ICszOTEsOCBAQCB2b2lkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSGlkZSgpCiAKIHZv
aWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1SZXNldFN0YXRlKCkKIHsKLSAgICBpbnNw
ZWN0ZWRQYWdlKCktPnBhZ2VHcm91cCgpLnByZWZlcmVuY2VzKCkuZGVsZXRlSW5zcGVjdG9yV2lu
ZG93RnJhbWUoKTsKKyAgICBpZiAoaW5zcGVjdGVkUGFnZSgpKQorICAgICAgICBpbnNwZWN0ZWRQ
YWdlKCktPnBhZ2VHcm91cCgpLnByZWZlcmVuY2VzKCkuZGVsZXRlSW5zcGVjdG9yV2luZG93RnJh
bWUoKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUJyaW5nVG9Gcm9u
dCgpCkBAIC0zOTgsNyArNDAwLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9y
bUJyaW5nVG9Gcm9udCgpCiAgICAgLy8gSWYgdGhlIFdlYiBJbnNwZWN0b3IgaXMgbm8gbG9uZ2Vy
IGluIHRoZSBzYW1lIHdpbmRvdyBhcyB0aGUgaW5zcGVjdGVkIHZpZXcsCiAgICAgLy8gdGhlbiB3
ZSBuZWVkIHRvIHJlb3BlbiB0aGUgSW5zcGVjdG9yIHRvIGdldCBpdCBhdHRhY2hlZCB0byB0aGUg
cmlnaHQgd2luZG93LgogICAgIC8vIFRoaXMgY2FuIGhhcHBlbiB3aGVuIGRyYWdnaW5nIHRhYnMg
dG8gYW5vdGhlciB3aW5kb3cgaW4gU2FmYXJpLgotICAgIGlmIChtX2lzQXR0YWNoZWQgJiYgW21f
aW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgd2ViVmlld10ud2luZG93ICE9IGluc3BlY3RlZFBhZ2Uo
KS0+cGxhdGZvcm1XaW5kb3coKSkgeworICAgIGlmIChtX2lzQXR0YWNoZWQgJiYgaW5zcGVjdGVk
UGFnZSgpICYmIFttX2luc3BlY3RvclZpZXdDb250cm9sbGVyIHdlYlZpZXddLndpbmRvdyAhPSBp
bnNwZWN0ZWRQYWdlKCktPnBsYXRmb3JtV2luZG93KCkpIHsKICAgICAgICAgaWYgKG1faXNPcGVu
aW5nKSB7CiAgICAgICAgICAgICAvLyA8cmRhcjovLzg4MzU4Njk2PiBJZiB3ZSBhcmUgY3VycmVu
dGx5IG9wZW5pbmcgYW4gYXR0YWNoZWQgaW5zcGVjdG9yLCB0aGUgd2luZG93cyBzaG91bGQgaGF2
ZSBhbHJlYWR5CiAgICAgICAgICAgICAvLyBtYXRjaGVkLCBhbmQgY2FsbGluZyBiYWNrIHRvIGBv
cGVuYCBpc24ndCBnb2luZyB0byBjb3JyZWN0IHRoaXMuIEFzIGEgZmFpbC1zYWZlIHRvIHByZXZl
bnQgcmVlbnRyYW5jeSwKQEAgLTQyMCw2ICs0MjIsNyBAQCB2b2lkIFdlYkluc3BlY3RvclVJUHJv
eHk6OnBsYXRmb3JtQnJpbmdUb0Zyb250KCkKIAogdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5Ojpw
bGF0Zm9ybUJyaW5nSW5zcGVjdGVkUGFnZVRvRnJvbnQoKQogeworICAgIEFTU0VSVChpbnNwZWN0
ZWRQYWdlKCkpOwogICAgIFtpbnNwZWN0ZWRQYWdlKCktPnBsYXRmb3JtV2luZG93KCkgbWFrZUtl
eUFuZE9yZGVyRnJvbnQ6bmlsXTsKIH0KIApAQCAtNDMxLDYgKzQzNCw5IEBAIGJvb2wgV2ViSW5z
cGVjdG9yVUlQcm94eTo6cGxhdGZvcm1Jc0Zyb250KCkKIAogYm9vbCBXZWJJbnNwZWN0b3JVSVBy
b3h5OjpwbGF0Zm9ybUNhbkF0dGFjaChib29sIHdlYlByb2Nlc3NDYW5BdHRhY2gpCiB7CisgICAg
aWYgKCFpbnNwZWN0ZWRQYWdlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIE5TVmll
dyAqaW5zcGVjdGVkVmlldyA9IGluc3BlY3RlZFBhZ2UoKS0+aW5zcGVjdG9yQXR0YWNobWVudFZp
ZXcoKTsKICAgICBpZiAoW1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgdmlld0lzSW5zcGVjdG9y
V2ViVmlldzppbnNwZWN0ZWRWaWV3XSkKICAgICAgICAgcmV0dXJuIHdlYlByb2Nlc3NDYW5BdHRh
Y2g7CkBAIC01OTYsNyArNjAyLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5Ojp3aW5kb3dG
cmFtZURpZENoYW5nZSgpCiAgICAgQVNTRVJUKG1faXNWaXNpYmxlKTsKICAgICBBU1NFUlQobV9p
bnNwZWN0b3JXaW5kb3cpOwogCi0gICAgaWYgKG1faXNBdHRhY2hlZCB8fCAhbV9pc1Zpc2libGUg
fHwgIW1faW5zcGVjdG9yV2luZG93KQorICAgIGlmIChtX2lzQXR0YWNoZWQgfHwgIW1faXNWaXNp
YmxlIHx8ICFtX2luc3BlY3RvcldpbmRvdyB8fCAhaW5zcGVjdGVkUGFnZSgpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBOU1N0cmluZyAqZnJhbWVTdHJpbmcgPSBOU1N0cmluZ0Zyb21SZWN0KFtt
X2luc3BlY3RvcldpbmRvdyBmcmFtZV0pOwpAQCAtNzA0LDYgKzcxMCw3IEBAIHZvaWQgV2ViSW5z
cGVjdG9yVUlQcm94eTo6aW5zcGVjdGVkVmlld0ZyYW1lRGlkQ2hhbmdlKENHRmxvYXQgY3VycmVu
dERpbWVuc2lvbikKIAogdW5zaWduZWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1JbnNw
ZWN0ZWRXaW5kb3dIZWlnaHQoKQogeworICAgIEFTU0VSVChpbnNwZWN0ZWRQYWdlKCkpOwogICAg
IE5TVmlldyAqaW5zcGVjdGVkVmlldyA9IGluc3BlY3RlZFBhZ2UoKS0+aW5zcGVjdG9yQXR0YWNo
bWVudFZpZXcoKTsKICAgICBOU1JlY3QgaW5zcGVjdGVkVmlld1JlY3QgPSBbaW5zcGVjdGVkVmll
dyBmcmFtZV07CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbnNwZWN0ZWRWaWV3
UmVjdC5zaXplLmhlaWdodCk7CkBAIC03MTEsNiArNzE4LDcgQEAgdW5zaWduZWQgV2ViSW5zcGVj
dG9yVUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQoKQogCiB1bnNpZ25lZCBX
ZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKCkKIHsKKyAg
ICBBU1NFUlQoaW5zcGVjdGVkUGFnZSgpKTsKICAgICBOU1ZpZXcgKmluc3BlY3RlZFZpZXcgPSBp
bnNwZWN0ZWRQYWdlKCktPmluc3BlY3RvckF0dGFjaG1lbnRWaWV3KCk7CiAgICAgTlNSZWN0IGlu
c3BlY3RlZFZpZXdSZWN0ID0gW2luc3BlY3RlZFZpZXcgZnJhbWVdOwogICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oaW5zcGVjdGVkVmlld1JlY3Quc2l6ZS53aWR0aCk7CkBAIC03MTgs
NiArNzI2LDcgQEAgdW5zaWduZWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0
ZWRXaW5kb3dXaWR0aCgpCiAKIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1BdHRh
Y2goKQogeworICAgIEFTU0VSVChpbnNwZWN0ZWRQYWdlKCkpOwogICAgIE5TVmlldyAqaW5zcGVj
dGVkVmlldyA9IGluc3BlY3RlZFBhZ2UoKS0+aW5zcGVjdG9yQXR0YWNobWVudFZpZXcoKTsKICAg
ICBXS1dlYlZpZXcgKmluc3BlY3RvclZpZXcgPSBbbV9pbnNwZWN0b3JWaWV3Q29udHJvbGxlciB3
ZWJWaWV3XTsKIApAQCAtNzUzLDE3ICs3NjIsMTYgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5
OjpwbGF0Zm9ybUF0dGFjaCgpCiAKIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1E
ZXRhY2goKQogewotICAgIE5TVmlldyAqaW5zcGVjdGVkVmlldyA9IGluc3BlY3RlZFBhZ2UoKS0+
aW5zcGVjdG9yQXR0YWNobWVudFZpZXcoKTsKKyAgICBOU1ZpZXcgKmluc3BlY3RlZFZpZXcgPSBp
bnNwZWN0ZWRQYWdlKCkgPyBpbnNwZWN0ZWRQYWdlKCktPmluc3BlY3RvckF0dGFjaG1lbnRWaWV3
KCkgOiBuaWw7CiAgICAgV0tXZWJWaWV3ICppbnNwZWN0b3JWaWV3ID0gW21faW5zcGVjdG9yVmll
d0NvbnRyb2xsZXIgd2ViVmlld107CiAKICAgICBbaW5zcGVjdG9yVmlldyByZW1vdmVGcm9tU3Vw
ZXJ2aWV3XTsKLQogICAgIFtpbnNwZWN0b3JWaWV3IHNldEF1dG9yZXNpemluZ01hc2s6TlNWaWV3
V2lkdGhTaXphYmxlIHwgTlNWaWV3SGVpZ2h0U2l6YWJsZV07CiAKICAgICAvLyBNYWtlIHN1cmUg
dGhhdCB3ZSBzaXplIHRoZSBpbnNwZWN0ZWQgdmlldydzIGZyYW1lIGFmdGVyIGRldGFjaGluZyBz
byB0aGF0IGl0IHRha2VzIHVwIHRoZSBzcGFjZSB0aGF0IHRoZQogICAgIC8vIGF0dGFjaGVkIGlu
c3BlY3RvciB1c2VkIHRvLiBQcmVzZXJ2ZSB0aGUgdG9wIHBvc2l0aW9uIG9mIHRoZSBpbnNwZWN0
ZWQgdmlldyBzbyBiYW5uZXJzIGluIFNhZmFyaSBzdGlsbCB3b3JrLgotCi0gICAgaW5zcGVjdGVk
Vmlldy5mcmFtZSA9IE5TTWFrZVJlY3QoMCwgMCwgTlNXaWR0aChpbnNwZWN0ZWRWaWV3LnN1cGVy
dmlldy5ib3VuZHMpLCBOU01heFkoaW5zcGVjdGVkVmlldy5mcmFtZSkpOworICAgIGlmIChpbnNw
ZWN0ZWRWaWV3KQorICAgICAgICBpbnNwZWN0ZWRWaWV3LmZyYW1lID0gTlNNYWtlUmVjdCgwLCAw
LCBOU1dpZHRoKGluc3BlY3RlZFZpZXcuc3VwZXJ2aWV3LmJvdW5kcyksIE5TTWF4WShpbnNwZWN0
ZWRWaWV3LmZyYW1lKSk7CiAKICAgICAvLyBSZXR1cm4gZWFybHkgaWYgd2UgYXJlIG5vdCB2aXNp
YmxlLiBUaGlzIG1lYW5zIHRoZSBpbnNwZWN0b3Igd2FzIGNsb3NlZCB3aGlsZSBhdHRhY2hlZAog
ICAgIC8vIGFuZCB3ZSBzaG91bGQgbm90IGNyZWF0ZSBhbmQgc2hvdyB0aGUgaW5zcGVjdG9yIHdp
bmRvdy4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459264</attachid>
            <date>2022-05-12 17:43:56 -0700</date>
            <delta_ts>2022-05-12 18:50:47 -0700</delta_ts>
            <desc>Patch v1.3</desc>
            <filename>bug-240284-20220512174355.patch</filename>
            <type>text/plain</type>
            <size>14669</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjk0MTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY5N2NlNDlmNDljNzNiYzQw
OGU0ZTI3ODhmYjhiY2RiNjgyNTU3MjYuLjYyN2FjYTc3Nzc3M2Q3OTgwMGE1YTc0NzgxOWVjZTE5
MDM3MDg3ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMjItMDUtMTIgIFBhdHJpY2sg
QW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5vbi1y
ZXByb2R1Y2libGUgY3Jhc2ggYXQgV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9y
bURldGFjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjQwMjg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3BlY3VsYXRpdmUgZml4IGZvciBub24tcmVwcm9kdWNpYmxlIGNyYXNoLiBXaGVuIGBXZWJJbnNw
ZWN0b3JVSVByb3h5OjpwbGF0Zm9ybURldGFjaGAgaXMgY2FsbGVkIGZyb20KKyAgICAgICAgYFdl
Ykluc3BlY3RvclVJUHJveHk6OmNsb3NlRnJvbnRlbmRQYWdlQW5kV2luZG93YCwgaXQgYXBwZWFy
cyB0byBiZSBwb3NzaWJsZSBmb3IgdGhlIGluc3BlY3RlZCBwYWdlIHRvIGhhdmUKKyAgICAgICAg
YWxyZWFkeSBiZWVuIGRpc2NhcmRlZCAodmlhIGBXZWJJbnNwZWN0b3JVSVByb3h5OjpyZXNldGAp
LiBUaGlzIGlzIHJlaW5mb3JjZWQgYnkgdGhlIGZhY3QgdGhhdAorICAgICAgICBgV2ViSW5zcGVj
dG9yVUlQcm94eTo6Y2xvc2VGcm9udGVuZFBhZ2VBbmRXaW5kb3dgIGFscmVhZHkgZ3VhcmRzIHVz
ZSBvZiBgaW5zcGVjdGVkUGFnZSgpYC4gV2Ugc2hvdWxkIGRvIHRoZSBzYW1lCisgICAgICAgIGhl
cmUsIGFuZCBzaG91bGQgYWxzbyBndWFyZCBvciBhc3NlcnQgb3RoZXIgcGxhY2VzIHdlIHVzZSBg
aW5zcGVjdGVkUGFnZSgpYCB0byBoZWxwIGZ1dHVyZSBmb2xrcyAoaW5jbHVkaW5nIG1lKQorICAg
ICAgICB1bmRlcnN0YW5kIHRoYXQgdGhlIGV4aXN0YW5jZSBvZiBhbiBgaW5zcGVjdGVkUGFnZSgp
YCBpcyBub3QgZ3VhcmFudGVlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvbWFj
L1dlYkluc3BlY3RvclVJUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clVJUHJveHk6OnBsYXRmb3JtQ3JlYXRlRnJvbnRlbmRXaW5kb3cpOgorICAgICAgICAtIElmIHdl
IGRvbid0IGhhdmUgYW4gaW5zcGVjdGVkIHBhZ2Ugd2hlbiBjcmVhdGluZyBhIHdpbmRvdyBmb3Ig
dGhlIGZyb250ZW5kLCB1c2UgdGhlIGRlZmF1bHQgd2luZG93IHNpemUgYnkKKyAgICAgICAgcGFz
c2luZyBhbiBlbXB0eSBOU1JlY3QgdG8gYFdlYkluc3BlY3RvclVJUHJveHk6OmNyZWF0ZUZyb250
ZW5kV2luZG93YC4KKworICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0
Zm9ybVJlc2V0U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5Ojpw
bGF0Zm9ybUJyaW5nVG9Gcm9udCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJv
eHk6OnBsYXRmb3JtQnJpbmdJbnNwZWN0ZWRQYWdlVG9Gcm9udCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkluc3BlY3RvclVJUHJveHk6OndpbmRvd0ZyYW1lRGlkQ2hhbmdlKToKKyAgICAgICAgLSBJ
ZiB0aGUgaW5zcGVjdGVkIHBhZ2Ugbm8gbG9uZ2VyIGV4aXN0cywgZG9uJ3QgdHJ5IHRvIHVzZSBp
dC4KKworICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUNhbkF0
dGFjaCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQXR0
YWNoKToKKyAgICAgICAgLSBVcGRhdGUgYHBsYXRmb3JtQ2FuQXR0YWNoYCB0byByZXR1cm4gZmFs
c2UgaWYgd2Ugbm8gbG9uZ2VyIGhhdmUgYW4gaW5zcGVjdGVkIHBhZ2UsIGFuZCBhc3NlcnQgdGhh
dCB3ZSBoYXZlIGFuCisgICAgICAgIGluc3BlY3RlZCBwYWdlIGluIGBwbGF0Zm9ybUF0dGFjaGAg
c2luY2UgYW55IGNhbGwgdG8gaXQgc2hvdWxkIGJlIGd1YXJkZWQgb24gYHBsYXRmb3JtQ2FuQXR0
YWNoYAorCisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtRGV0
YWNoKToKKyAgICAgICAgLSBXZSBzaG91bGQgYXR0ZW1wdCB0byBjbGVhbiB1cCBhcyBtdWNoIG9m
IHRoZSBhdHRhY2htZW50IGFzIHdlIGNhbiwgYnV0IHdvcmsgYXJvdW5kIHRoZSBwb3NzaWJpbGl0
eSB0aGF0IHRoZQorICAgICAgICBpbnNwZWN0ZWQgcGFnZSBpcyBubyBsb25nZXIgYXZhaWxhYmxl
LgorICAgICAgICAtIENsZWFuIHVwIG5ld2xpbmVzIHdoaWxlIHdlIGFyZSBoZXJlLgorCisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93
SGVpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6
cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dXaWR0aCk6IERlbGV0ZWQuCisgICAgICAgIC0gVGhlc2Ug
bWV0aG9kcyB3ZXJlIHVudXNlZCBvbiBNYWMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVj
dG9yL1dlYkluc3BlY3RvclVJUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0
b3JVSVByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93
V2lkdGgpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yVUlQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3Bl
Y3RvclVJUHJveHlHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5
OjpwbGF0Zm9ybUF0dGFjaCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6
OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93SGVpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dXaWR0aCk6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vV2ViSW5zcGVjdG9yVUlQ
cm94eVdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRm
b3JtQXR0YWNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZv
cm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJ
bnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKTogRGVsZXRlZC4K
KyAgICAgICAgLSBJbmxpbmUgV2luZG93cy9HVEsgdXNhZ2Ugb2YgYHBsYXRmb3JtSW5zcGVjdGVk
V2luZG93KmAsIHNpbmNlIHRoZXkgYXJlIG9ubHkgdXNlZCBvbmNlLCBub3QgdXNlZCBieSB0aGUK
KyAgICAgICAgc3VwZXJjbGFzcyBhbnkgbW9yZSwgYW5kIGFsc28gbm90IHVzZWQgb24gYWxsIHBs
YXRmb3Jtcy4KKyAgICAgICAgCisKIDIwMjItMDUtMTIgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hv
cnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3QgaW5zdGFsbCBXZWJLaXQgZmVhdHVyZSBm
bGFncyBwbGlzdCBvbiBtYWNPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvclVJUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJUHJveHkuY3BwCmluZGV4IDhjN2M5MDY0OWY4YzA0
Y2ExZjE1YWEyZjY5MGViZDc2MWNjNjYzYzcuLmE1YzVjYmQxY2U4NWQ4NTc1NzQ3Y2M1ZTIzMmFi
MDQzMjcwMjEwODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JVSVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9J
bnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlQcm94eS5jcHAKQEAgLTg0NiwxOCArODQ2LDYgQEAgdm9p
ZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUxvYWQoY29uc3QgU3RyaW5nJiBwYXRoLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2kKICAgICBjb21wbGV0aW9uSGFuZGxlcihudWxsU3RyaW5nKCkp
OwogfQogCi11bnNpZ25lZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdp
bmRvd0hlaWdodCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKLX0K
LQotdW5zaWduZWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dX
aWR0aCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQogdm9p
ZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JVSVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUlQcm94eS5oCmluZGV4IDNmOTBkYzE2NTg4ODE4MTFmYWI1MjVhY2NlNzM2
M2I2YTY4YjBjYTEuLmMxNTlmYTk3ZmE4ZjE4NDlkNWQzYmQyMzUwMGFmOTUzOTUwMmQwYzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JV
SVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3Bl
Y3RvclVJUHJveHkuaApAQCAtMjI3LDggKzIyNyw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0
Zm9ybU9wZW5VUkxFeHRlcm5hbGx5KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcGxhdGZvcm1J
bnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcGxhdGZvcm1TaG93
Q2VydGlmaWNhdGUoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7Ci0gICAgdW5zaWdu
ZWQgcGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQoKTsKLSAgICB1bnNpZ25lZCBwbGF0Zm9y
bUluc3BlY3RlZFdpbmRvd1dpZHRoKCk7CiAgICAgdm9pZCBwbGF0Zm9ybUF0dGFjaCgpOwogICAg
IHZvaWQgcGxhdGZvcm1EZXRhY2goKTsKICAgICB2b2lkIHBsYXRmb3JtU2V0QXR0YWNoZWRXaW5k
b3dIZWlnaHQodW5zaWduZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL2d0ay9XZWJJbnNwZWN0b3JVSVByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvV2ViSW5zcGVjdG9yVUlQcm94eUd0ay5jcHAKaW5kZXgg
Yjc3MWNhZGU1NGMxMDU1ZDJhNWRhOTkxNjJhYmZjODZkMWE5MTQ4Yy4uNTYzNmI4NmY2NDY0ZTA1
ZDkzMTAwMGZmODk3NmRkNzk2NzBjMzIzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL2d0ay9XZWJJbnNwZWN0b3JVSVByb3h5R3RrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3BlY3RvclVJUHJveHlHdGsu
Y3BwCkBAIC00MDYsMTYgKzQwNiw2IEBAIERlYnVnZ2FibGVJbmZvRGF0YSBXZWJJbnNwZWN0b3JV
SVByb3h5OjppbmZvRm9yTG9jYWxEZWJ1Z2dhYmxlKCkKICAgICByZXR1cm4gZGF0YTsKIH0KIAot
dW5zaWduZWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWln
aHQoKQotewotICAgIHJldHVybiBndGtfd2lkZ2V0X2dldF9hbGxvY2F0ZWRfaGVpZ2h0KGluc3Bl
Y3RlZFBhZ2UoKS0+dmlld1dpZGdldCgpKTsKLX0KLQotdW5zaWduZWQgV2ViSW5zcGVjdG9yVUlQ
cm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dXaWR0aCgpCi17Ci0gICAgcmV0dXJuIGd0a193
aWRnZXRfZ2V0X2FsbG9jYXRlZF93aWR0aChpbnNwZWN0ZWRQYWdlKCktPnZpZXdXaWRnZXQoKSk7
Ci19Ci0KIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1BdHRhY2goKQogewogICAg
IEdSZWZQdHI8R3RrV2lkZ2V0PiBpbnNwZWN0b3JWaWV3ID0gbV9pbnNwZWN0b3JWaWV3OwpAQCAt
NDM1LDEwICs0MjUsMTIgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUF0dGFj
aCgpCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1pbmltdW1BdHRhY2hlZEhlaWdodCA9IDI1
MDsKIAogICAgIGlmIChtX2F0dGFjaG1lbnRTaWRlID09IEF0dGFjaG1lbnRTaWRlOjpCb3R0b20p
IHsKLSAgICAgICAgdW5zaWduZWQgbWF4aW11bUF0dGFjaGVkSGVpZ2h0ID0gcGxhdGZvcm1JbnNw
ZWN0ZWRXaW5kb3dIZWlnaHQoKSAqIDMgLyA0OworICAgICAgICB1bnNpZ25lZCBpbnNwZWN0ZWRX
aW5kb3dIZWlnaHQgPSBndGtfd2lkZ2V0X2dldF9hbGxvY2F0ZWRfaGVpZ2h0KGluc3BlY3RlZFBh
Z2UoKS0+dmlld1dpZGdldCgpKTsKKyAgICAgICAgdW5zaWduZWQgbWF4aW11bUF0dGFjaGVkSGVp
Z2h0ID0gaW5zcGVjdGVkV2luZG93SGVpZ2h0ICogMyAvIDQ7CiAgICAgICAgIHBsYXRmb3JtU2V0
QXR0YWNoZWRXaW5kb3dIZWlnaHQoc3RkOjptYXgobWluaW11bUF0dGFjaGVkSGVpZ2h0LCBzdGQ6
Om1pbihkZWZhdWx0QXR0YWNoZWRTaXplLCBtYXhpbXVtQXR0YWNoZWRIZWlnaHQpKSk7CiAgICAg
fSBlbHNlIHsKLSAgICAgICAgdW5zaWduZWQgbWF4aW11bUF0dGFjaGVkV2lkdGggPSBwbGF0Zm9y
bUluc3BlY3RlZFdpbmRvd1dpZHRoKCkgKiAzIC8gNDsKKyAgICAgICAgdW5zaWduZWQgaW5zcGVj
dGVkV2luZG93V2lkdGggPSBndGtfd2lkZ2V0X2dldF9hbGxvY2F0ZWRfd2lkdGgoaW5zcGVjdGVk
UGFnZSgpLT52aWV3V2lkZ2V0KCkpOworICAgICAgICB1bnNpZ25lZCBtYXhpbXVtQXR0YWNoZWRX
aWR0aCA9IGluc3BlY3RlZFdpbmRvd1dpZHRoICogMyAvIDQ7CiAgICAgICAgIHBsYXRmb3JtU2V0
QXR0YWNoZWRXaW5kb3dXaWR0aChzdGQ6Om1heChtaW5pbXVtQXR0YWNoZWRXaWR0aCwgc3RkOjpt
aW4oZGVmYXVsdEF0dGFjaGVkU2l6ZSwgbWF4aW11bUF0dGFjaGVkV2lkdGgpKSk7CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dlYklu
c3BlY3RvclVJUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
bWFjL1dlYkluc3BlY3RvclVJUHJveHlNYWMubW0KaW5kZXggMzFlNmZiMThiMzZlMDk3MmJlMjAw
ZmU5MWNmNDRhNjk1YWQ4YjE4NC4uMzhhODgzZTJiYzM5ZTI4YzJhNGI3MWEyNzQ0NjYxOTIzNWQ5
MzVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9X
ZWJJbnNwZWN0b3JVSVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yVUlQcm94eU1hYy5tbQpAQCAtMzEyLDggKzMxMiwxMSBA
QCB2b2lkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQ3JlYXRlRnJvbnRlbmRXaW5kb3co
KQogewogICAgIEFTU0VSVCghbV9pbnNwZWN0b3JXaW5kb3cpOwogCi0gICAgTlNTdHJpbmcgKnNh
dmVkV2luZG93RnJhbWVTdHJpbmcgPSBpbnNwZWN0ZWRQYWdlKCktPnBhZ2VHcm91cCgpLnByZWZl
cmVuY2VzKCkuaW5zcGVjdG9yV2luZG93RnJhbWUoKTsKLSAgICBOU1JlY3Qgc2F2ZWRXaW5kb3dG
cmFtZSA9IE5TUmVjdEZyb21TdHJpbmcoc2F2ZWRXaW5kb3dGcmFtZVN0cmluZyk7CisgICAgTlNS
ZWN0IHNhdmVkV2luZG93RnJhbWUgPSBOU1plcm9SZWN0OworICAgIGlmIChpbnNwZWN0ZWRQYWdl
KCkpIHsKKyAgICAgICAgTlNTdHJpbmcgKnNhdmVkV2luZG93RnJhbWVTdHJpbmcgPSBpbnNwZWN0
ZWRQYWdlKCktPnBhZ2VHcm91cCgpLnByZWZlcmVuY2VzKCkuaW5zcGVjdG9yV2luZG93RnJhbWUo
KTsKKyAgICAgICAgc2F2ZWRXaW5kb3dGcmFtZSA9IE5TUmVjdEZyb21TdHJpbmcoc2F2ZWRXaW5k
b3dGcmFtZVN0cmluZyk7CisgICAgfQogCiAgICAgbV9pbnNwZWN0b3JXaW5kb3cgPSBXZWJJbnNw
ZWN0b3JVSVByb3h5OjpjcmVhdGVGcm9udGVuZFdpbmRvdyhzYXZlZFdpbmRvd0ZyYW1lLCBJbnNw
ZWN0aW9uVGFyZ2V0VHlwZTo6TG9jYWwpOwogICAgIFttX2luc3BlY3RvcldpbmRvdyBzZXREZWxl
Z2F0ZTptX29iakNBZGFwdGVyLmdldCgpXTsKQEAgLTM5MCw3ICszOTMsOCBAQCB2b2lkIFdlYklu
c3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSGlkZSgpCiAKIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94
eTo6cGxhdGZvcm1SZXNldFN0YXRlKCkKIHsKLSAgICBpbnNwZWN0ZWRQYWdlKCktPnBhZ2VHcm91
cCgpLnByZWZlcmVuY2VzKCkuZGVsZXRlSW5zcGVjdG9yV2luZG93RnJhbWUoKTsKKyAgICBpZiAo
aW5zcGVjdGVkUGFnZSgpKQorICAgICAgICBpbnNwZWN0ZWRQYWdlKCktPnBhZ2VHcm91cCgpLnBy
ZWZlcmVuY2VzKCkuZGVsZXRlSW5zcGVjdG9yV2luZG93RnJhbWUoKTsKIH0KIAogdm9pZCBXZWJJ
bnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUJyaW5nVG9Gcm9udCgpCkBAIC0zOTgsNyArNDAyLDcg
QEAgdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUJyaW5nVG9Gcm9udCgpCiAgICAg
Ly8gSWYgdGhlIFdlYiBJbnNwZWN0b3IgaXMgbm8gbG9uZ2VyIGluIHRoZSBzYW1lIHdpbmRvdyBh
cyB0aGUgaW5zcGVjdGVkIHZpZXcsCiAgICAgLy8gdGhlbiB3ZSBuZWVkIHRvIHJlb3BlbiB0aGUg
SW5zcGVjdG9yIHRvIGdldCBpdCBhdHRhY2hlZCB0byB0aGUgcmlnaHQgd2luZG93LgogICAgIC8v
IFRoaXMgY2FuIGhhcHBlbiB3aGVuIGRyYWdnaW5nIHRhYnMgdG8gYW5vdGhlciB3aW5kb3cgaW4g
U2FmYXJpLgotICAgIGlmIChtX2lzQXR0YWNoZWQgJiYgW21faW5zcGVjdG9yVmlld0NvbnRyb2xs
ZXIgd2ViVmlld10ud2luZG93ICE9IGluc3BlY3RlZFBhZ2UoKS0+cGxhdGZvcm1XaW5kb3coKSkg
eworICAgIGlmIChtX2lzQXR0YWNoZWQgJiYgaW5zcGVjdGVkUGFnZSgpICYmIFttX2luc3BlY3Rv
clZpZXdDb250cm9sbGVyIHdlYlZpZXddLndpbmRvdyAhPSBpbnNwZWN0ZWRQYWdlKCktPnBsYXRm
b3JtV2luZG93KCkpIHsKICAgICAgICAgaWYgKG1faXNPcGVuaW5nKSB7CiAgICAgICAgICAgICAv
LyA8cmRhcjovLzg4MzU4Njk2PiBJZiB3ZSBhcmUgY3VycmVudGx5IG9wZW5pbmcgYW4gYXR0YWNo
ZWQgaW5zcGVjdG9yLCB0aGUgd2luZG93cyBzaG91bGQgaGF2ZSBhbHJlYWR5CiAgICAgICAgICAg
ICAvLyBtYXRjaGVkLCBhbmQgY2FsbGluZyBiYWNrIHRvIGBvcGVuYCBpc24ndCBnb2luZyB0byBj
b3JyZWN0IHRoaXMuIEFzIGEgZmFpbC1zYWZlIHRvIHByZXZlbnQgcmVlbnRyYW5jeSwKQEAgLTQy
MCw3ICs0MjQsOCBAQCB2b2lkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQnJpbmdUb0Zy
b250KCkKIAogdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUJyaW5nSW5zcGVjdGVk
UGFnZVRvRnJvbnQoKQogewotICAgIFtpbnNwZWN0ZWRQYWdlKCktPnBsYXRmb3JtV2luZG93KCkg
bWFrZUtleUFuZE9yZGVyRnJvbnQ6bmlsXTsKKyAgICBpZiAoaW5zcGVjdGVkUGFnZSgpKQorICAg
ICAgICBbaW5zcGVjdGVkUGFnZSgpLT5wbGF0Zm9ybVdpbmRvdygpIG1ha2VLZXlBbmRPcmRlckZy
b250Om5pbF07CiB9CiAKIGJvb2wgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1Jc0Zyb250
KCkKQEAgLTQzMSw2ICs0MzYsOSBAQCBib29sIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3Jt
SXNGcm9udCgpCiAKIGJvb2wgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1DYW5BdHRhY2go
Ym9vbCB3ZWJQcm9jZXNzQ2FuQXR0YWNoKQogeworICAgIGlmICghaW5zcGVjdGVkUGFnZSgpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBOU1ZpZXcgKmluc3BlY3RlZFZpZXcgPSBpbnNw
ZWN0ZWRQYWdlKCktPmluc3BlY3RvckF0dGFjaG1lbnRWaWV3KCk7CiAgICAgaWYgKFtXS0luc3Bl
Y3RvclZpZXdDb250cm9sbGVyIHZpZXdJc0luc3BlY3RvcldlYlZpZXc6aW5zcGVjdGVkVmlld10p
CiAgICAgICAgIHJldHVybiB3ZWJQcm9jZXNzQ2FuQXR0YWNoOwpAQCAtNTk2LDcgKzYwNCw3IEBA
IHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6d2luZG93RnJhbWVEaWRDaGFuZ2UoKQogICAgIEFT
U0VSVChtX2lzVmlzaWJsZSk7CiAgICAgQVNTRVJUKG1faW5zcGVjdG9yV2luZG93KTsKIAotICAg
IGlmIChtX2lzQXR0YWNoZWQgfHwgIW1faXNWaXNpYmxlIHx8ICFtX2luc3BlY3RvcldpbmRvdykK
KyAgICBpZiAobV9pc0F0dGFjaGVkIHx8ICFtX2lzVmlzaWJsZSB8fCAhbV9pbnNwZWN0b3JXaW5k
b3cgfHwgIWluc3BlY3RlZFBhZ2UoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTlNTdHJpbmcg
KmZyYW1lU3RyaW5nID0gTlNTdHJpbmdGcm9tUmVjdChbbV9pbnNwZWN0b3JXaW5kb3cgZnJhbWVd
KTsKQEAgLTcwMiwyMiArNzEwLDkgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjppbnNwZWN0
ZWRWaWV3RnJhbWVEaWRDaGFuZ2UoQ0dGbG9hdCBjdXJyZW50RGltZW5zaW9uKQogICAgIFtpbnNw
ZWN0ZWRWaWV3IHNldEZyYW1lOmluc3BlY3RlZFZpZXdGcmFtZV07CiB9CiAKLXVuc2lnbmVkIFdl
Ykluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93SGVpZ2h0KCkKLXsKLSAg
ICBOU1ZpZXcgKmluc3BlY3RlZFZpZXcgPSBpbnNwZWN0ZWRQYWdlKCktPmluc3BlY3RvckF0dGFj
aG1lbnRWaWV3KCk7Ci0gICAgTlNSZWN0IGluc3BlY3RlZFZpZXdSZWN0ID0gW2luc3BlY3RlZFZp
ZXcgZnJhbWVdOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaW5zcGVjdGVkVmll
d1JlY3Quc2l6ZS5oZWlnaHQpOwotfQotCi11bnNpZ25lZCBXZWJJbnNwZWN0b3JVSVByb3h5Ojpw
bGF0Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKCkKLXsKLSAgICBOU1ZpZXcgKmluc3BlY3RlZFZp
ZXcgPSBpbnNwZWN0ZWRQYWdlKCktPmluc3BlY3RvckF0dGFjaG1lbnRWaWV3KCk7Ci0gICAgTlNS
ZWN0IGluc3BlY3RlZFZpZXdSZWN0ID0gW2luc3BlY3RlZFZpZXcgZnJhbWVdOwotICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaW5zcGVjdGVkVmlld1JlY3Quc2l6ZS53aWR0aCk7Ci19
Ci0KIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1BdHRhY2goKQogeworICAgIEFT
U0VSVChpbnNwZWN0ZWRQYWdlKCkpOwogICAgIE5TVmlldyAqaW5zcGVjdGVkVmlldyA9IGluc3Bl
Y3RlZFBhZ2UoKS0+aW5zcGVjdG9yQXR0YWNobWVudFZpZXcoKTsKICAgICBXS1dlYlZpZXcgKmlu
c3BlY3RvclZpZXcgPSBbbV9pbnNwZWN0b3JWaWV3Q29udHJvbGxlciB3ZWJWaWV3XTsKIApAQCAt
NzUzLDE3ICs3NDgsMTYgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUF0dGFj
aCgpCiAKIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1EZXRhY2goKQogewotICAg
IE5TVmlldyAqaW5zcGVjdGVkVmlldyA9IGluc3BlY3RlZFBhZ2UoKS0+aW5zcGVjdG9yQXR0YWNo
bWVudFZpZXcoKTsKKyAgICBOU1ZpZXcgKmluc3BlY3RlZFZpZXcgPSBpbnNwZWN0ZWRQYWdlKCkg
PyBpbnNwZWN0ZWRQYWdlKCktPmluc3BlY3RvckF0dGFjaG1lbnRWaWV3KCkgOiBuaWw7CiAgICAg
V0tXZWJWaWV3ICppbnNwZWN0b3JWaWV3ID0gW21faW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgd2Vi
Vmlld107CiAKICAgICBbaW5zcGVjdG9yVmlldyByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKLQogICAg
IFtpbnNwZWN0b3JWaWV3IHNldEF1dG9yZXNpemluZ01hc2s6TlNWaWV3V2lkdGhTaXphYmxlIHwg
TlNWaWV3SGVpZ2h0U2l6YWJsZV07CiAKICAgICAvLyBNYWtlIHN1cmUgdGhhdCB3ZSBzaXplIHRo
ZSBpbnNwZWN0ZWQgdmlldydzIGZyYW1lIGFmdGVyIGRldGFjaGluZyBzbyB0aGF0IGl0IHRha2Vz
IHVwIHRoZSBzcGFjZSB0aGF0IHRoZQogICAgIC8vIGF0dGFjaGVkIGluc3BlY3RvciB1c2VkIHRv
LiBQcmVzZXJ2ZSB0aGUgdG9wIHBvc2l0aW9uIG9mIHRoZSBpbnNwZWN0ZWQgdmlldyBzbyBiYW5u
ZXJzIGluIFNhZmFyaSBzdGlsbCB3b3JrLgotCi0gICAgaW5zcGVjdGVkVmlldy5mcmFtZSA9IE5T
TWFrZVJlY3QoMCwgMCwgTlNXaWR0aChpbnNwZWN0ZWRWaWV3LnN1cGVydmlldy5ib3VuZHMpLCBO
U01heFkoaW5zcGVjdGVkVmlldy5mcmFtZSkpOworICAgIGlmIChpbnNwZWN0ZWRWaWV3KQorICAg
ICAgICBpbnNwZWN0ZWRWaWV3LmZyYW1lID0gTlNNYWtlUmVjdCgwLCAwLCBOU1dpZHRoKGluc3Bl
Y3RlZFZpZXcuc3VwZXJ2aWV3LmJvdW5kcyksIE5TTWF4WShpbnNwZWN0ZWRWaWV3LmZyYW1lKSk7
CiAKICAgICAvLyBSZXR1cm4gZWFybHkgaWYgd2UgYXJlIG5vdCB2aXNpYmxlLiBUaGlzIG1lYW5z
IHRoZSBpbnNwZWN0b3Igd2FzIGNsb3NlZCB3aGlsZSBhdHRhY2hlZAogICAgIC8vIGFuZCB3ZSBz
aG91bGQgbm90IGNyZWF0ZSBhbmQgc2hvdyB0aGUgaW5zcGVjdG9yIHdpbmRvdy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vV2ViSW5zcGVjdG9yVUlQ
cm94eVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Ivd2luL1dlYklu
c3BlY3RvclVJUHJveHlXaW4uY3BwCmluZGV4IDFhMTkxNTU1ZjllODEzOTBmMWY2MGE2OTEyMGEx
NGMwZWNmOGY5YTAuLmQ1ODMyMzY4NzMyZGE3MDY4YTBlYmEwM2Y2ZDg5ODFjYzZhNDA0YTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vV2ViSW5zcGVj
dG9yVUlQcm94eVdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L3dpbi9XZWJJbnNwZWN0b3JVSVByb3h5V2luLmNwcApAQCAtMjg1LDIwICsyODUsNiBAQCBEZWJ1
Z2dhYmxlSW5mb0RhdGEgV2ViSW5zcGVjdG9yVUlQcm94eTo6aW5mb0ZvckxvY2FsRGVidWdnYWJs
ZSgpCiAgICAgcmV0dXJuIERlYnVnZ2FibGVJbmZvRGF0YTo6ZW1wdHkoKTsKIH0KIAotdW5zaWdu
ZWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQoKQot
ewotICAgIFJFQ1QgcmVjdDsKLSAgICA6OkdldENsaWVudFJlY3QobV9pbnNwZWN0ZWRWaWV3V2lu
ZG93LCAmcmVjdCk7Ci0gICAgcmV0dXJuIHJlY3QuYm90dG9tIC0gcmVjdC50b3A7Ci19Ci0KLXVu
c2lnbmVkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93V2lkdGgo
KQotewotICAgIFJFQ1QgcmVjdDsKLSAgICA6OkdldENsaWVudFJlY3QobV9pbnNwZWN0ZWRWaWV3
V2luZG93LCAmcmVjdCk7Ci0gICAgcmV0dXJuIHJlY3QucmlnaHQgLSByZWN0LmxlZnQ7Ci19Ci0K
IHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1BdHRhY2goKQogewogICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBkZWZhdWx0QXR0YWNoZWRTaXplID0gMzAwOwpAQCAtMzEyLDExICsy
OTgsMTYgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCiAKICAg
ICBXZWJDb3JlOjpXaW5kb3dNZXNzYWdlQnJvYWRjYXN0ZXI6OmFkZExpc3RlbmVyKG1faW5zcGVj
dGVkVmlld1dpbmRvdywgdGhpcyk7CiAKKyAgICBSRUNUIGluc3BlY3RlZFdpbmRvd1JlY3Q7Cisg
ICAgOjpHZXRDbGllbnRSZWN0KG1faW5zcGVjdGVkVmlld1dpbmRvdywgJnJlY3QpOworCiAgICAg
aWYgKG1fYXR0YWNobWVudFNpZGUgPT0gQXR0YWNobWVudFNpZGU6OkJvdHRvbSkgewotICAgICAg
ICB1bnNpZ25lZCBtYXhpbXVtQXR0YWNoZWRIZWlnaHQgPSBwbGF0Zm9ybUluc3BlY3RlZFdpbmRv
d0hlaWdodCgpICogMyAvIDQ7CisgICAgICAgIHVuc2lnbmVkIGluc3BlY3RlZFdpbmRvd0hlaWdo
dCA9IGluc3BlY3RlZFdpbmRvd1JlY3QuYm90dG9tIC0gaW5zcGVjdGVkV2luZG93UmVjdC50b3A7
CisgICAgICAgIHVuc2lnbmVkIG1heGltdW1BdHRhY2hlZEhlaWdodCA9IGluc3BlY3RlZFdpbmRv
d0hlaWdodCAqIDMgLyA0OwogICAgICAgICBwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93SGVpZ2h0
KHN0ZDo6bWF4KG1pbmltdW1BdHRhY2hlZEhlaWdodCwgc3RkOjptaW4oZGVmYXVsdEF0dGFjaGVk
U2l6ZSwgbWF4aW11bUF0dGFjaGVkSGVpZ2h0KSkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHVu
c2lnbmVkIG1heGltdW1BdHRhY2hlZFdpZHRoID0gcGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dXaWR0
aCgpICogMyAvIDQ7CisgICAgICAgIHVuc2lnbmVkIGluc3BlY3RlZFdpbmRvd1dpZHRoID0gaW5z
cGVjdGVkV2luZG93UmVjdC5yaWdodCAtIGluc3BlY3RlZFdpbmRvd1JlY3QubGVmdAorICAgICAg
ICB1bnNpZ25lZCBtYXhpbXVtQXR0YWNoZWRXaWR0aCA9IGluc3BlY3RlZFdpbmRvd1dpZHRoICog
MyAvIDQ7CiAgICAgICAgIHBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dXaWR0aChzdGQ6Om1heCht
aW5pbXVtQXR0YWNoZWRXaWR0aCwgc3RkOjptaW4oZGVmYXVsdEF0dGFjaGVkU2l6ZSwgbWF4aW11
bUF0dGFjaGVkV2lkdGgpKSk7CiAgICAgfQogICAgIDo6U2hvd1dpbmRvdyhtX2luc3BlY3RvclZp
ZXdXaW5kb3csIFNXX1NIT1cpOwo=
</data>
<flag name="commit-queue"
          id="488311"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459268</attachid>
            <date>2022-05-12 18:21:47 -0700</date>
            <delta_ts>2022-05-12 18:29:27 -0700</delta_ts>
            <desc>Patch v1.3.1 - Changelog formatting issue</desc>
            <filename>bug-240284-20220512182147.patch</filename>
            <type>text/plain</type>
            <size>14659</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjk0MTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY5N2NlNDlmNDljNzNiYzQw
OGU0ZTI3ODhmYjhiY2RiNjgyNTU3MjYuLmVkYzhhNTMwZTA1NzVmOTljNDgxMWU3ZTFkMjMwZWVl
ZjM0YWI2ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMjItMDUtMTIgIFBhdHJpY2sg
QW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5vbi1y
ZXByb2R1Y2libGUgY3Jhc2ggYXQgV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9y
bURldGFjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjQwMjg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3BlY3VsYXRpdmUgZml4IGZvciBub24tcmVwcm9kdWNpYmxlIGNyYXNoLiBXaGVuIGBXZWJJbnNw
ZWN0b3JVSVByb3h5OjpwbGF0Zm9ybURldGFjaGAgaXMgY2FsbGVkIGZyb20KKyAgICAgICAgYFdl
Ykluc3BlY3RvclVJUHJveHk6OmNsb3NlRnJvbnRlbmRQYWdlQW5kV2luZG93YCwgaXQgYXBwZWFy
cyB0byBiZSBwb3NzaWJsZSBmb3IgdGhlIGluc3BlY3RlZCBwYWdlIHRvIGhhdmUKKyAgICAgICAg
YWxyZWFkeSBiZWVuIGRpc2NhcmRlZCAodmlhIGBXZWJJbnNwZWN0b3JVSVByb3h5OjpyZXNldGAp
LiBUaGlzIGlzIHJlaW5mb3JjZWQgYnkgdGhlIGZhY3QgdGhhdAorICAgICAgICBgV2ViSW5zcGVj
dG9yVUlQcm94eTo6Y2xvc2VGcm9udGVuZFBhZ2VBbmRXaW5kb3dgIGFscmVhZHkgZ3VhcmRzIHVz
ZSBvZiBgaW5zcGVjdGVkUGFnZSgpYC4gV2Ugc2hvdWxkIGRvIHRoZSBzYW1lCisgICAgICAgIGhl
cmUsIGFuZCBzaG91bGQgYWxzbyBndWFyZCBvciBhc3NlcnQgb3RoZXIgcGxhY2VzIHdlIHVzZSBg
aW5zcGVjdGVkUGFnZSgpYCB0byBoZWxwIGZ1dHVyZSBmb2xrcyAoaW5jbHVkaW5nIG1lKQorICAg
ICAgICB1bmRlcnN0YW5kIHRoYXQgdGhlIGV4aXN0YW5jZSBvZiBhbiBgaW5zcGVjdGVkUGFnZSgp
YCBpcyBub3QgZ3VhcmFudGVlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvbWFj
L1dlYkluc3BlY3RvclVJUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clVJUHJveHk6OnBsYXRmb3JtQ3JlYXRlRnJvbnRlbmRXaW5kb3cpOgorICAgICAgICAtIElmIHdl
IGRvbid0IGhhdmUgYW4gaW5zcGVjdGVkIHBhZ2Ugd2hlbiBjcmVhdGluZyBhIHdpbmRvdyBmb3Ig
dGhlIGZyb250ZW5kLCB1c2UgdGhlIGRlZmF1bHQgd2luZG93IHNpemUgYnkKKyAgICAgICAgcGFz
c2luZyBhbiBlbXB0eSBOU1JlY3QgdG8gYFdlYkluc3BlY3RvclVJUHJveHk6OmNyZWF0ZUZyb250
ZW5kV2luZG93YC4KKworICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0
Zm9ybVJlc2V0U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5Ojpw
bGF0Zm9ybUJyaW5nVG9Gcm9udCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJv
eHk6OnBsYXRmb3JtQnJpbmdJbnNwZWN0ZWRQYWdlVG9Gcm9udCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkluc3BlY3RvclVJUHJveHk6OndpbmRvd0ZyYW1lRGlkQ2hhbmdlKToKKyAgICAgICAgLSBJ
ZiB0aGUgaW5zcGVjdGVkIHBhZ2Ugbm8gbG9uZ2VyIGV4aXN0cywgZG9uJ3QgdHJ5IHRvIHVzZSBp
dC4KKworICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUNhbkF0
dGFjaCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQXR0
YWNoKToKKyAgICAgICAgLSBVcGRhdGUgYHBsYXRmb3JtQ2FuQXR0YWNoYCB0byByZXR1cm4gZmFs
c2UgaWYgd2Ugbm8gbG9uZ2VyIGhhdmUgYW4gaW5zcGVjdGVkIHBhZ2UsIGFuZCBhc3NlcnQgdGhh
dCB3ZSBoYXZlIGFuCisgICAgICAgIGluc3BlY3RlZCBwYWdlIGluIGBwbGF0Zm9ybUF0dGFjaGAg
c2luY2UgYW55IGNhbGwgdG8gaXQgc2hvdWxkIGJlIGd1YXJkZWQgb24gYHBsYXRmb3JtQ2FuQXR0
YWNoYAorCisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtRGV0
YWNoKToKKyAgICAgICAgLSBXZSBzaG91bGQgYXR0ZW1wdCB0byBjbGVhbiB1cCBhcyBtdWNoIG9m
IHRoZSBhdHRhY2htZW50IGFzIHdlIGNhbiwgYnV0IHdvcmsgYXJvdW5kIHRoZSBwb3NzaWJpbGl0
eSB0aGF0IHRoZQorICAgICAgICBpbnNwZWN0ZWQgcGFnZSBpcyBubyBsb25nZXIgYXZhaWxhYmxl
LgorICAgICAgICAtIENsZWFuIHVwIG5ld2xpbmVzIHdoaWxlIHdlIGFyZSBoZXJlLgorCisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93
SGVpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6
cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dXaWR0aCk6IERlbGV0ZWQuCisgICAgICAgIC0gVGhlc2Ug
bWV0aG9kcyB3ZXJlIHVudXNlZCBvbiBNYWMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVj
dG9yL1dlYkluc3BlY3RvclVJUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0
b3JVSVByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93
V2lkdGgpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yVUlQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3Bl
Y3RvclVJUHJveHlHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5
OjpwbGF0Zm9ybUF0dGFjaCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6
OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93SGVpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dXaWR0aCk6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vV2ViSW5zcGVjdG9yVUlQ
cm94eVdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRm
b3JtQXR0YWNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZv
cm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJ
bnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKTogRGVsZXRlZC4K
KyAgICAgICAgLSBJbmxpbmUgV2luZG93cy9HVEsgdXNhZ2Ugb2YgYHBsYXRmb3JtSW5zcGVjdGVk
V2luZG93KmAsIHNpbmNlIHRoZXkgYXJlIG9ubHkgdXNlZCBvbmNlLCBub3QgdXNlZCBieSB0aGUK
KyAgICAgICAgc3VwZXJjbGFzcyBhbnkgbW9yZSwgYW5kIGFsc28gbm90IHVzZWQgb24gYWxsIHBs
YXRmb3Jtcy4KKwogMjAyMi0wNS0xMiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KIAogICAgICAgICBEb24ndCBpbnN0YWxsIFdlYktpdCBmZWF0dXJlIGZsYWdzIHBsaXN0
IG9uIG1hY09TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUlQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yVUlQcm94eS5jcHAKaW5kZXggOGM3YzkwNjQ5ZjhjMDRjYTFmMTVhYTJm
NjkwZWJkNzYxY2M2NjNjNy4uYTVjNWNiZDFjZTg1ZDg1NzU3NDdjYzVlMjMyYWIwNDMyNzAyMTA4
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3Bl
Y3RvclVJUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JVSVByb3h5LmNwcApAQCAtODQ2LDE4ICs4NDYsNiBAQCB2b2lkIFdlYkluc3Bl
Y3RvclVJUHJveHk6OnBsYXRmb3JtTG9hZChjb25zdCBTdHJpbmcmIHBhdGgsIENvbXBsZXRpb25I
YW5kbGVyPHZvaQogICAgIGNvbXBsZXRpb25IYW5kbGVyKG51bGxTdHJpbmcoKSk7CiB9CiAKLXVu
c2lnbmVkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93SGVpZ2h0
KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwotfQotCi11bnNpZ25l
ZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKCkKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwotfQotCiB2b2lkIFdlYkluc3Bl
Y3RvclVJUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rv
clVJUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0
b3JVSVByb3h5LmgKaW5kZXggM2Y5MGRjMTY1ODg4MTgxMWZhYjUyNWFjY2U3MzYzYjZhNjhiMGNh
MS4uYzE1OWZhOTdmYThmMTg0OWQ1ZDNiZDIzNTAwYWY5NTM5NTAyZDBjMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlQcm94
eS5oCkBAIC0yMjcsOCArMjI3LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtT3BlblVS
TEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBwbGF0Zm9ybUluc3BlY3RlZFVS
TENoYW5nZWQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBwbGF0Zm9ybVNob3dDZXJ0aWZpY2F0
ZShjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsKLSAgICB1bnNpZ25lZCBwbGF0Zm9y
bUluc3BlY3RlZFdpbmRvd0hlaWdodCgpOwotICAgIHVuc2lnbmVkIHBsYXRmb3JtSW5zcGVjdGVk
V2luZG93V2lkdGgoKTsKICAgICB2b2lkIHBsYXRmb3JtQXR0YWNoKCk7CiAgICAgdm9pZCBwbGF0
Zm9ybURldGFjaCgpOwogICAgIHZvaWQgcGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1
bnNpZ25lZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
Z3RrL1dlYkluc3BlY3RvclVJUHJveHlHdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL2d0ay9XZWJJbnNwZWN0b3JVSVByb3h5R3RrLmNwcAppbmRleCBiNzcxY2FkZTU0
YzEwNTVkMmE1ZGE5OTE2MmFiZmM4NmQxYTkxNDhjLi41NjM2Yjg2ZjY0NjRlMDVkOTMxMDAwZmY4
OTc2ZGQ3OTY3MGMzMjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvZ3RrL1dlYkluc3BlY3RvclVJUHJveHlHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvV2ViSW5zcGVjdG9yVUlQcm94eUd0ay5jcHAKQEAgLTQw
NiwxNiArNDA2LDYgQEAgRGVidWdnYWJsZUluZm9EYXRhIFdlYkluc3BlY3RvclVJUHJveHk6Omlu
Zm9Gb3JMb2NhbERlYnVnZ2FibGUoKQogICAgIHJldHVybiBkYXRhOwogfQogCi11bnNpZ25lZCBX
ZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCgpCi17Ci0g
ICAgcmV0dXJuIGd0a193aWRnZXRfZ2V0X2FsbG9jYXRlZF9oZWlnaHQoaW5zcGVjdGVkUGFnZSgp
LT52aWV3V2lkZ2V0KCkpOwotfQotCi11bnNpZ25lZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0
Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKCkKLXsKLSAgICByZXR1cm4gZ3RrX3dpZGdldF9nZXRf
YWxsb2NhdGVkX3dpZHRoKGluc3BlY3RlZFBhZ2UoKS0+dmlld1dpZGdldCgpKTsKLX0KLQogdm9p
ZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCiB7CiAgICAgR1JlZlB0cjxH
dGtXaWRnZXQ+IGluc3BlY3RvclZpZXcgPSBtX2luc3BlY3RvclZpZXc7CkBAIC00MzUsMTAgKzQy
NSwxMiBAQCB2b2lkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgbWluaW11bUF0dGFjaGVkSGVpZ2h0ID0gMjUwOwogCiAgICAg
aWYgKG1fYXR0YWNobWVudFNpZGUgPT0gQXR0YWNobWVudFNpZGU6OkJvdHRvbSkgewotICAgICAg
ICB1bnNpZ25lZCBtYXhpbXVtQXR0YWNoZWRIZWlnaHQgPSBwbGF0Zm9ybUluc3BlY3RlZFdpbmRv
d0hlaWdodCgpICogMyAvIDQ7CisgICAgICAgIHVuc2lnbmVkIGluc3BlY3RlZFdpbmRvd0hlaWdo
dCA9IGd0a193aWRnZXRfZ2V0X2FsbG9jYXRlZF9oZWlnaHQoaW5zcGVjdGVkUGFnZSgpLT52aWV3
V2lkZ2V0KCkpOworICAgICAgICB1bnNpZ25lZCBtYXhpbXVtQXR0YWNoZWRIZWlnaHQgPSBpbnNw
ZWN0ZWRXaW5kb3dIZWlnaHQgKiAzIC8gNDsKICAgICAgICAgcGxhdGZvcm1TZXRBdHRhY2hlZFdp
bmRvd0hlaWdodChzdGQ6Om1heChtaW5pbXVtQXR0YWNoZWRIZWlnaHQsIHN0ZDo6bWluKGRlZmF1
bHRBdHRhY2hlZFNpemUsIG1heGltdW1BdHRhY2hlZEhlaWdodCkpKTsKICAgICB9IGVsc2Ugewot
ICAgICAgICB1bnNpZ25lZCBtYXhpbXVtQXR0YWNoZWRXaWR0aCA9IHBsYXRmb3JtSW5zcGVjdGVk
V2luZG93V2lkdGgoKSAqIDMgLyA0OworICAgICAgICB1bnNpZ25lZCBpbnNwZWN0ZWRXaW5kb3dX
aWR0aCA9IGd0a193aWRnZXRfZ2V0X2FsbG9jYXRlZF93aWR0aChpbnNwZWN0ZWRQYWdlKCktPnZp
ZXdXaWRnZXQoKSk7CisgICAgICAgIHVuc2lnbmVkIG1heGltdW1BdHRhY2hlZFdpZHRoID0gaW5z
cGVjdGVkV2luZG93V2lkdGggKiAzIC8gNDsKICAgICAgICAgcGxhdGZvcm1TZXRBdHRhY2hlZFdp
bmRvd1dpZHRoKHN0ZDo6bWF4KG1pbmltdW1BdHRhY2hlZFdpZHRoLCBzdGQ6Om1pbihkZWZhdWx0
QXR0YWNoZWRTaXplLCBtYXhpbXVtQXR0YWNoZWRXaWR0aCkpKTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yVUlQ
cm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5z
cGVjdG9yVUlQcm94eU1hYy5tbQppbmRleCAzMWU2ZmIxOGIzNmUwOTcyYmUyMDBmZTkxY2Y0NGE2
OTVhZDhiMTg0Li4zOGE4ODNlMmJjMzllMjhjMmE0YjcxYTI3NDQ2NjE5MjM1ZDkzNWFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3Rv
clVJUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21h
Yy9XZWJJbnNwZWN0b3JVSVByb3h5TWFjLm1tCkBAIC0zMTIsOCArMzEyLDExIEBAIHZvaWQgV2Vi
SW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1DcmVhdGVGcm9udGVuZFdpbmRvdygpCiB7CiAgICAg
QVNTRVJUKCFtX2luc3BlY3RvcldpbmRvdyk7CiAKLSAgICBOU1N0cmluZyAqc2F2ZWRXaW5kb3dG
cmFtZVN0cmluZyA9IGluc3BlY3RlZFBhZ2UoKS0+cGFnZUdyb3VwKCkucHJlZmVyZW5jZXMoKS5p
bnNwZWN0b3JXaW5kb3dGcmFtZSgpOwotICAgIE5TUmVjdCBzYXZlZFdpbmRvd0ZyYW1lID0gTlNS
ZWN0RnJvbVN0cmluZyhzYXZlZFdpbmRvd0ZyYW1lU3RyaW5nKTsKKyAgICBOU1JlY3Qgc2F2ZWRX
aW5kb3dGcmFtZSA9IE5TWmVyb1JlY3Q7CisgICAgaWYgKGluc3BlY3RlZFBhZ2UoKSkgeworICAg
ICAgICBOU1N0cmluZyAqc2F2ZWRXaW5kb3dGcmFtZVN0cmluZyA9IGluc3BlY3RlZFBhZ2UoKS0+
cGFnZUdyb3VwKCkucHJlZmVyZW5jZXMoKS5pbnNwZWN0b3JXaW5kb3dGcmFtZSgpOworICAgICAg
ICBzYXZlZFdpbmRvd0ZyYW1lID0gTlNSZWN0RnJvbVN0cmluZyhzYXZlZFdpbmRvd0ZyYW1lU3Ry
aW5nKTsKKyAgICB9CiAKICAgICBtX2luc3BlY3RvcldpbmRvdyA9IFdlYkluc3BlY3RvclVJUHJv
eHk6OmNyZWF0ZUZyb250ZW5kV2luZG93KHNhdmVkV2luZG93RnJhbWUsIEluc3BlY3Rpb25UYXJn
ZXRUeXBlOjpMb2NhbCk7CiAgICAgW21faW5zcGVjdG9yV2luZG93IHNldERlbGVnYXRlOm1fb2Jq
Q0FkYXB0ZXIuZ2V0KCldOwpAQCAtMzkwLDcgKzM5Myw4IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlQ
cm94eTo6cGxhdGZvcm1IaWRlKCkKIAogdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9y
bVJlc2V0U3RhdGUoKQogewotICAgIGluc3BlY3RlZFBhZ2UoKS0+cGFnZUdyb3VwKCkucHJlZmVy
ZW5jZXMoKS5kZWxldGVJbnNwZWN0b3JXaW5kb3dGcmFtZSgpOworICAgIGlmIChpbnNwZWN0ZWRQ
YWdlKCkpCisgICAgICAgIGluc3BlY3RlZFBhZ2UoKS0+cGFnZUdyb3VwKCkucHJlZmVyZW5jZXMo
KS5kZWxldGVJbnNwZWN0b3JXaW5kb3dGcmFtZSgpOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJ
UHJveHk6OnBsYXRmb3JtQnJpbmdUb0Zyb250KCkKQEAgLTM5OCw3ICs0MDIsNyBAQCB2b2lkIFdl
Ykluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQnJpbmdUb0Zyb250KCkKICAgICAvLyBJZiB0aGUg
V2ViIEluc3BlY3RvciBpcyBubyBsb25nZXIgaW4gdGhlIHNhbWUgd2luZG93IGFzIHRoZSBpbnNw
ZWN0ZWQgdmlldywKICAgICAvLyB0aGVuIHdlIG5lZWQgdG8gcmVvcGVuIHRoZSBJbnNwZWN0b3Ig
dG8gZ2V0IGl0IGF0dGFjaGVkIHRvIHRoZSByaWdodCB3aW5kb3cuCiAgICAgLy8gVGhpcyBjYW4g
aGFwcGVuIHdoZW4gZHJhZ2dpbmcgdGFicyB0byBhbm90aGVyIHdpbmRvdyBpbiBTYWZhcmkuCi0g
ICAgaWYgKG1faXNBdHRhY2hlZCAmJiBbbV9pbnNwZWN0b3JWaWV3Q29udHJvbGxlciB3ZWJWaWV3
XS53aW5kb3cgIT0gaW5zcGVjdGVkUGFnZSgpLT5wbGF0Zm9ybVdpbmRvdygpKSB7CisgICAgaWYg
KG1faXNBdHRhY2hlZCAmJiBpbnNwZWN0ZWRQYWdlKCkgJiYgW21faW5zcGVjdG9yVmlld0NvbnRy
b2xsZXIgd2ViVmlld10ud2luZG93ICE9IGluc3BlY3RlZFBhZ2UoKS0+cGxhdGZvcm1XaW5kb3co
KSkgewogICAgICAgICBpZiAobV9pc09wZW5pbmcpIHsKICAgICAgICAgICAgIC8vIDxyZGFyOi8v
ODgzNTg2OTY+IElmIHdlIGFyZSBjdXJyZW50bHkgb3BlbmluZyBhbiBhdHRhY2hlZCBpbnNwZWN0
b3IsIHRoZSB3aW5kb3dzIHNob3VsZCBoYXZlIGFscmVhZHkKICAgICAgICAgICAgIC8vIG1hdGNo
ZWQsIGFuZCBjYWxsaW5nIGJhY2sgdG8gYG9wZW5gIGlzbid0IGdvaW5nIHRvIGNvcnJlY3QgdGhp
cy4gQXMgYSBmYWlsLXNhZmUgdG8gcHJldmVudCByZWVudHJhbmN5LApAQCAtNDIwLDcgKzQyNCw4
IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1CcmluZ1RvRnJvbnQoKQogCiB2
b2lkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQnJpbmdJbnNwZWN0ZWRQYWdlVG9Gcm9u
dCgpCiB7Ci0gICAgW2luc3BlY3RlZFBhZ2UoKS0+cGxhdGZvcm1XaW5kb3coKSBtYWtlS2V5QW5k
T3JkZXJGcm9udDpuaWxdOworICAgIGlmIChpbnNwZWN0ZWRQYWdlKCkpCisgICAgICAgIFtpbnNw
ZWN0ZWRQYWdlKCktPnBsYXRmb3JtV2luZG93KCkgbWFrZUtleUFuZE9yZGVyRnJvbnQ6bmlsXTsK
IH0KIAogYm9vbCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUlzRnJvbnQoKQpAQCAtNDMx
LDYgKzQzNiw5IEBAIGJvb2wgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1Jc0Zyb250KCkK
IAogYm9vbCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUNhbkF0dGFjaChib29sIHdlYlBy
b2Nlc3NDYW5BdHRhY2gpCiB7CisgICAgaWYgKCFpbnNwZWN0ZWRQYWdlKCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKwogICAgIE5TVmlldyAqaW5zcGVjdGVkVmlldyA9IGluc3BlY3RlZFBhZ2Uo
KS0+aW5zcGVjdG9yQXR0YWNobWVudFZpZXcoKTsKICAgICBpZiAoW1dLSW5zcGVjdG9yVmlld0Nv
bnRyb2xsZXIgdmlld0lzSW5zcGVjdG9yV2ViVmlldzppbnNwZWN0ZWRWaWV3XSkKICAgICAgICAg
cmV0dXJuIHdlYlByb2Nlc3NDYW5BdHRhY2g7CkBAIC01OTYsNyArNjA0LDcgQEAgdm9pZCBXZWJJ
bnNwZWN0b3JVSVByb3h5Ojp3aW5kb3dGcmFtZURpZENoYW5nZSgpCiAgICAgQVNTRVJUKG1faXNW
aXNpYmxlKTsKICAgICBBU1NFUlQobV9pbnNwZWN0b3JXaW5kb3cpOwogCi0gICAgaWYgKG1faXNB
dHRhY2hlZCB8fCAhbV9pc1Zpc2libGUgfHwgIW1faW5zcGVjdG9yV2luZG93KQorICAgIGlmICht
X2lzQXR0YWNoZWQgfHwgIW1faXNWaXNpYmxlIHx8ICFtX2luc3BlY3RvcldpbmRvdyB8fCAhaW5z
cGVjdGVkUGFnZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBOU1N0cmluZyAqZnJhbWVTdHJp
bmcgPSBOU1N0cmluZ0Zyb21SZWN0KFttX2luc3BlY3RvcldpbmRvdyBmcmFtZV0pOwpAQCAtNzAy
LDIyICs3MTAsOSBAQCB2b2lkIFdlYkluc3BlY3RvclVJUHJveHk6Omluc3BlY3RlZFZpZXdGcmFt
ZURpZENoYW5nZShDR0Zsb2F0IGN1cnJlbnREaW1lbnNpb24pCiAgICAgW2luc3BlY3RlZFZpZXcg
c2V0RnJhbWU6aW5zcGVjdGVkVmlld0ZyYW1lXTsKIH0KIAotdW5zaWduZWQgV2ViSW5zcGVjdG9y
VUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQoKQotewotICAgIE5TVmlldyAq
aW5zcGVjdGVkVmlldyA9IGluc3BlY3RlZFBhZ2UoKS0+aW5zcGVjdG9yQXR0YWNobWVudFZpZXco
KTsKLSAgICBOU1JlY3QgaW5zcGVjdGVkVmlld1JlY3QgPSBbaW5zcGVjdGVkVmlldyBmcmFtZV07
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbnNwZWN0ZWRWaWV3UmVjdC5zaXpl
LmhlaWdodCk7Ci19Ci0KLXVuc2lnbmVkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSW5z
cGVjdGVkV2luZG93V2lkdGgoKQotewotICAgIE5TVmlldyAqaW5zcGVjdGVkVmlldyA9IGluc3Bl
Y3RlZFBhZ2UoKS0+aW5zcGVjdG9yQXR0YWNobWVudFZpZXcoKTsKLSAgICBOU1JlY3QgaW5zcGVj
dGVkVmlld1JlY3QgPSBbaW5zcGVjdGVkVmlldyBmcmFtZV07Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihpbnNwZWN0ZWRWaWV3UmVjdC5zaXplLndpZHRoKTsKLX0KLQogdm9pZCBX
ZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCiB7CisgICAgQVNTRVJUKGluc3Bl
Y3RlZFBhZ2UoKSk7CiAgICAgTlNWaWV3ICppbnNwZWN0ZWRWaWV3ID0gaW5zcGVjdGVkUGFnZSgp
LT5pbnNwZWN0b3JBdHRhY2htZW50VmlldygpOwogICAgIFdLV2ViVmlldyAqaW5zcGVjdG9yVmll
dyA9IFttX2luc3BlY3RvclZpZXdDb250cm9sbGVyIHdlYlZpZXddOwogCkBAIC03NTMsMTcgKzc0
OCwxNiBAQCB2b2lkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKIAogdm9p
ZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybURldGFjaCgpCiB7Ci0gICAgTlNWaWV3ICpp
bnNwZWN0ZWRWaWV3ID0gaW5zcGVjdGVkUGFnZSgpLT5pbnNwZWN0b3JBdHRhY2htZW50Vmlldygp
OworICAgIE5TVmlldyAqaW5zcGVjdGVkVmlldyA9IGluc3BlY3RlZFBhZ2UoKSA/IGluc3BlY3Rl
ZFBhZ2UoKS0+aW5zcGVjdG9yQXR0YWNobWVudFZpZXcoKSA6IG5pbDsKICAgICBXS1dlYlZpZXcg
Kmluc3BlY3RvclZpZXcgPSBbbV9pbnNwZWN0b3JWaWV3Q29udHJvbGxlciB3ZWJWaWV3XTsKIAog
ICAgIFtpbnNwZWN0b3JWaWV3IHJlbW92ZUZyb21TdXBlcnZpZXddOwotCiAgICAgW2luc3BlY3Rv
clZpZXcgc2V0QXV0b3Jlc2l6aW5nTWFzazpOU1ZpZXdXaWR0aFNpemFibGUgfCBOU1ZpZXdIZWln
aHRTaXphYmxlXTsKIAogICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHdlIHNpemUgdGhlIGluc3BlY3Rl
ZCB2aWV3J3MgZnJhbWUgYWZ0ZXIgZGV0YWNoaW5nIHNvIHRoYXQgaXQgdGFrZXMgdXAgdGhlIHNw
YWNlIHRoYXQgdGhlCiAgICAgLy8gYXR0YWNoZWQgaW5zcGVjdG9yIHVzZWQgdG8uIFByZXNlcnZl
IHRoZSB0b3AgcG9zaXRpb24gb2YgdGhlIGluc3BlY3RlZCB2aWV3IHNvIGJhbm5lcnMgaW4gU2Fm
YXJpIHN0aWxsIHdvcmsuCi0KLSAgICBpbnNwZWN0ZWRWaWV3LmZyYW1lID0gTlNNYWtlUmVjdCgw
LCAwLCBOU1dpZHRoKGluc3BlY3RlZFZpZXcuc3VwZXJ2aWV3LmJvdW5kcyksIE5TTWF4WShpbnNw
ZWN0ZWRWaWV3LmZyYW1lKSk7CisgICAgaWYgKGluc3BlY3RlZFZpZXcpCisgICAgICAgIGluc3Bl
Y3RlZFZpZXcuZnJhbWUgPSBOU01ha2VSZWN0KDAsIDAsIE5TV2lkdGgoaW5zcGVjdGVkVmlldy5z
dXBlcnZpZXcuYm91bmRzKSwgTlNNYXhZKGluc3BlY3RlZFZpZXcuZnJhbWUpKTsKIAogICAgIC8v
IFJldHVybiBlYXJseSBpZiB3ZSBhcmUgbm90IHZpc2libGUuIFRoaXMgbWVhbnMgdGhlIGluc3Bl
Y3RvciB3YXMgY2xvc2VkIHdoaWxlIGF0dGFjaGVkCiAgICAgLy8gYW5kIHdlIHNob3VsZCBub3Qg
Y3JlYXRlIGFuZCBzaG93IHRoZSBpbnNwZWN0b3Igd2luZG93LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL3dpbi9XZWJJbnNwZWN0b3JVSVByb3h5V2luLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vV2ViSW5zcGVjdG9yVUlQ
cm94eVdpbi5jcHAKaW5kZXggMWExOTE1NTVmOWU4MTM5MGYxZjYwYTY5MTIwYTE0YzBlY2Y4Zjlh
MC4uZDU4MzIzNjg3MzJkYTcwNjhhMGViYTAzZjZkODk4MWNjNmE0MDRhNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL3dpbi9XZWJJbnNwZWN0b3JVSVByb3h5
V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Ivd2luL1dlYklu
c3BlY3RvclVJUHJveHlXaW4uY3BwCkBAIC0yODUsMjAgKzI4NSw2IEBAIERlYnVnZ2FibGVJbmZv
RGF0YSBXZWJJbnNwZWN0b3JVSVByb3h5OjppbmZvRm9yTG9jYWxEZWJ1Z2dhYmxlKCkKICAgICBy
ZXR1cm4gRGVidWdnYWJsZUluZm9EYXRhOjplbXB0eSgpOwogfQogCi11bnNpZ25lZCBXZWJJbnNw
ZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCgpCi17Ci0gICAgUkVD
VCByZWN0OwotICAgIDo6R2V0Q2xpZW50UmVjdChtX2luc3BlY3RlZFZpZXdXaW5kb3csICZyZWN0
KTsKLSAgICByZXR1cm4gcmVjdC5ib3R0b20gLSByZWN0LnRvcDsKLX0KLQotdW5zaWduZWQgV2Vi
SW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dXaWR0aCgpCi17Ci0gICAg
UkVDVCByZWN0OwotICAgIDo6R2V0Q2xpZW50UmVjdChtX2luc3BlY3RlZFZpZXdXaW5kb3csICZy
ZWN0KTsKLSAgICByZXR1cm4gcmVjdC5yaWdodCAtIHJlY3QubGVmdDsKLX0KLQogdm9pZCBXZWJJ
bnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCiB7CiAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIGRlZmF1bHRBdHRhY2hlZFNpemUgPSAzMDA7CkBAIC0zMTIsMTEgKzI5OCwxNiBAQCB2
b2lkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKIAogICAgIFdlYkNvcmU6
OldpbmRvd01lc3NhZ2VCcm9hZGNhc3Rlcjo6YWRkTGlzdGVuZXIobV9pbnNwZWN0ZWRWaWV3V2lu
ZG93LCB0aGlzKTsKIAorICAgIFJFQ1QgaW5zcGVjdGVkV2luZG93UmVjdDsKKyAgICA6OkdldENs
aWVudFJlY3QobV9pbnNwZWN0ZWRWaWV3V2luZG93LCAmcmVjdCk7CisKICAgICBpZiAobV9hdHRh
Y2htZW50U2lkZSA9PSBBdHRhY2htZW50U2lkZTo6Qm90dG9tKSB7Ci0gICAgICAgIHVuc2lnbmVk
IG1heGltdW1BdHRhY2hlZEhlaWdodCA9IHBsYXRmb3JtSW5zcGVjdGVkV2luZG93SGVpZ2h0KCkg
KiAzIC8gNDsKKyAgICAgICAgdW5zaWduZWQgaW5zcGVjdGVkV2luZG93SGVpZ2h0ID0gaW5zcGVj
dGVkV2luZG93UmVjdC5ib3R0b20gLSBpbnNwZWN0ZWRXaW5kb3dSZWN0LnRvcDsKKyAgICAgICAg
dW5zaWduZWQgbWF4aW11bUF0dGFjaGVkSGVpZ2h0ID0gaW5zcGVjdGVkV2luZG93SGVpZ2h0ICog
MyAvIDQ7CiAgICAgICAgIHBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQoc3RkOjptYXgo
bWluaW11bUF0dGFjaGVkSGVpZ2h0LCBzdGQ6Om1pbihkZWZhdWx0QXR0YWNoZWRTaXplLCBtYXhp
bXVtQXR0YWNoZWRIZWlnaHQpKSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgdW5zaWduZWQgbWF4
aW11bUF0dGFjaGVkV2lkdGggPSBwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKCkgKiAzIC8g
NDsKKyAgICAgICAgdW5zaWduZWQgaW5zcGVjdGVkV2luZG93V2lkdGggPSBpbnNwZWN0ZWRXaW5k
b3dSZWN0LnJpZ2h0IC0gaW5zcGVjdGVkV2luZG93UmVjdC5sZWZ0CisgICAgICAgIHVuc2lnbmVk
IG1heGltdW1BdHRhY2hlZFdpZHRoID0gaW5zcGVjdGVkV2luZG93V2lkdGggKiAzIC8gNDsKICAg
ICAgICAgcGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHN0ZDo6bWF4KG1pbmltdW1BdHRh
Y2hlZFdpZHRoLCBzdGQ6Om1pbihkZWZhdWx0QXR0YWNoZWRTaXplLCBtYXhpbXVtQXR0YWNoZWRX
aWR0aCkpKTsKICAgICB9CiAgICAgOjpTaG93V2luZG93KG1faW5zcGVjdG9yVmlld1dpbmRvdywg
U1dfU0hPVyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459269</attachid>
            <date>2022-05-12 18:29:29 -0700</date>
            <delta_ts>2022-05-16 10:53:46 -0700</delta_ts>
            <desc>Patch v1.3.2 - Fix Windows build</desc>
            <filename>bug-240284-20220512182928.patch</filename>
            <type>text/plain</type>
            <size>14675</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjk0MTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY5N2NlNDlmNDljNzNiYzQw
OGU0ZTI3ODhmYjhiY2RiNjgyNTU3MjYuLmVkYzhhNTMwZTA1NzVmOTljNDgxMWU3ZTFkMjMwZWVl
ZjM0YWI2ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMjItMDUtMTIgIFBhdHJpY2sg
QW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5vbi1y
ZXByb2R1Y2libGUgY3Jhc2ggYXQgV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9y
bURldGFjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjQwMjg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3BlY3VsYXRpdmUgZml4IGZvciBub24tcmVwcm9kdWNpYmxlIGNyYXNoLiBXaGVuIGBXZWJJbnNw
ZWN0b3JVSVByb3h5OjpwbGF0Zm9ybURldGFjaGAgaXMgY2FsbGVkIGZyb20KKyAgICAgICAgYFdl
Ykluc3BlY3RvclVJUHJveHk6OmNsb3NlRnJvbnRlbmRQYWdlQW5kV2luZG93YCwgaXQgYXBwZWFy
cyB0byBiZSBwb3NzaWJsZSBmb3IgdGhlIGluc3BlY3RlZCBwYWdlIHRvIGhhdmUKKyAgICAgICAg
YWxyZWFkeSBiZWVuIGRpc2NhcmRlZCAodmlhIGBXZWJJbnNwZWN0b3JVSVByb3h5OjpyZXNldGAp
LiBUaGlzIGlzIHJlaW5mb3JjZWQgYnkgdGhlIGZhY3QgdGhhdAorICAgICAgICBgV2ViSW5zcGVj
dG9yVUlQcm94eTo6Y2xvc2VGcm9udGVuZFBhZ2VBbmRXaW5kb3dgIGFscmVhZHkgZ3VhcmRzIHVz
ZSBvZiBgaW5zcGVjdGVkUGFnZSgpYC4gV2Ugc2hvdWxkIGRvIHRoZSBzYW1lCisgICAgICAgIGhl
cmUsIGFuZCBzaG91bGQgYWxzbyBndWFyZCBvciBhc3NlcnQgb3RoZXIgcGxhY2VzIHdlIHVzZSBg
aW5zcGVjdGVkUGFnZSgpYCB0byBoZWxwIGZ1dHVyZSBmb2xrcyAoaW5jbHVkaW5nIG1lKQorICAg
ICAgICB1bmRlcnN0YW5kIHRoYXQgdGhlIGV4aXN0YW5jZSBvZiBhbiBgaW5zcGVjdGVkUGFnZSgp
YCBpcyBub3QgZ3VhcmFudGVlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvbWFj
L1dlYkluc3BlY3RvclVJUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clVJUHJveHk6OnBsYXRmb3JtQ3JlYXRlRnJvbnRlbmRXaW5kb3cpOgorICAgICAgICAtIElmIHdl
IGRvbid0IGhhdmUgYW4gaW5zcGVjdGVkIHBhZ2Ugd2hlbiBjcmVhdGluZyBhIHdpbmRvdyBmb3Ig
dGhlIGZyb250ZW5kLCB1c2UgdGhlIGRlZmF1bHQgd2luZG93IHNpemUgYnkKKyAgICAgICAgcGFz
c2luZyBhbiBlbXB0eSBOU1JlY3QgdG8gYFdlYkluc3BlY3RvclVJUHJveHk6OmNyZWF0ZUZyb250
ZW5kV2luZG93YC4KKworICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0
Zm9ybVJlc2V0U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5Ojpw
bGF0Zm9ybUJyaW5nVG9Gcm9udCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJv
eHk6OnBsYXRmb3JtQnJpbmdJbnNwZWN0ZWRQYWdlVG9Gcm9udCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkluc3BlY3RvclVJUHJveHk6OndpbmRvd0ZyYW1lRGlkQ2hhbmdlKToKKyAgICAgICAgLSBJ
ZiB0aGUgaW5zcGVjdGVkIHBhZ2Ugbm8gbG9uZ2VyIGV4aXN0cywgZG9uJ3QgdHJ5IHRvIHVzZSBp
dC4KKworICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUNhbkF0
dGFjaCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQXR0
YWNoKToKKyAgICAgICAgLSBVcGRhdGUgYHBsYXRmb3JtQ2FuQXR0YWNoYCB0byByZXR1cm4gZmFs
c2UgaWYgd2Ugbm8gbG9uZ2VyIGhhdmUgYW4gaW5zcGVjdGVkIHBhZ2UsIGFuZCBhc3NlcnQgdGhh
dCB3ZSBoYXZlIGFuCisgICAgICAgIGluc3BlY3RlZCBwYWdlIGluIGBwbGF0Zm9ybUF0dGFjaGAg
c2luY2UgYW55IGNhbGwgdG8gaXQgc2hvdWxkIGJlIGd1YXJkZWQgb24gYHBsYXRmb3JtQ2FuQXR0
YWNoYAorCisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtRGV0
YWNoKToKKyAgICAgICAgLSBXZSBzaG91bGQgYXR0ZW1wdCB0byBjbGVhbiB1cCBhcyBtdWNoIG9m
IHRoZSBhdHRhY2htZW50IGFzIHdlIGNhbiwgYnV0IHdvcmsgYXJvdW5kIHRoZSBwb3NzaWJpbGl0
eSB0aGF0IHRoZQorICAgICAgICBpbnNwZWN0ZWQgcGFnZSBpcyBubyBsb25nZXIgYXZhaWxhYmxl
LgorICAgICAgICAtIENsZWFuIHVwIG5ld2xpbmVzIHdoaWxlIHdlIGFyZSBoZXJlLgorCisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93
SGVpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6
cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dXaWR0aCk6IERlbGV0ZWQuCisgICAgICAgIC0gVGhlc2Ug
bWV0aG9kcyB3ZXJlIHVudXNlZCBvbiBNYWMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVj
dG9yL1dlYkluc3BlY3RvclVJUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0
b3JVSVByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93
V2lkdGgpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yVUlQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3Bl
Y3RvclVJUHJveHlHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5
OjpwbGF0Zm9ybUF0dGFjaCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6
OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93SGVpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dXaWR0aCk6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vV2ViSW5zcGVjdG9yVUlQ
cm94eVdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRm
b3JtQXR0YWNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZv
cm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJ
bnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKTogRGVsZXRlZC4K
KyAgICAgICAgLSBJbmxpbmUgV2luZG93cy9HVEsgdXNhZ2Ugb2YgYHBsYXRmb3JtSW5zcGVjdGVk
V2luZG93KmAsIHNpbmNlIHRoZXkgYXJlIG9ubHkgdXNlZCBvbmNlLCBub3QgdXNlZCBieSB0aGUK
KyAgICAgICAgc3VwZXJjbGFzcyBhbnkgbW9yZSwgYW5kIGFsc28gbm90IHVzZWQgb24gYWxsIHBs
YXRmb3Jtcy4KKwogMjAyMi0wNS0xMiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KIAogICAgICAgICBEb24ndCBpbnN0YWxsIFdlYktpdCBmZWF0dXJlIGZsYWdzIHBsaXN0
IG9uIG1hY09TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUlQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yVUlQcm94eS5jcHAKaW5kZXggOGM3YzkwNjQ5ZjhjMDRjYTFmMTVhYTJm
NjkwZWJkNzYxY2M2NjNjNy4uYTVjNWNiZDFjZTg1ZDg1NzU3NDdjYzVlMjMyYWIwNDMyNzAyMTA4
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3Bl
Y3RvclVJUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JVSVByb3h5LmNwcApAQCAtODQ2LDE4ICs4NDYsNiBAQCB2b2lkIFdlYkluc3Bl
Y3RvclVJUHJveHk6OnBsYXRmb3JtTG9hZChjb25zdCBTdHJpbmcmIHBhdGgsIENvbXBsZXRpb25I
YW5kbGVyPHZvaQogICAgIGNvbXBsZXRpb25IYW5kbGVyKG51bGxTdHJpbmcoKSk7CiB9CiAKLXVu
c2lnbmVkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93SGVpZ2h0
KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwotfQotCi11bnNpZ25l
ZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKCkKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwotfQotCiB2b2lkIFdlYkluc3Bl
Y3RvclVJUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rv
clVJUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0
b3JVSVByb3h5LmgKaW5kZXggM2Y5MGRjMTY1ODg4MTgxMWZhYjUyNWFjY2U3MzYzYjZhNjhiMGNh
MS4uYzE1OWZhOTdmYThmMTg0OWQ1ZDNiZDIzNTAwYWY5NTM5NTAyZDBjMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlQcm94
eS5oCkBAIC0yMjcsOCArMjI3LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtT3BlblVS
TEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBwbGF0Zm9ybUluc3BlY3RlZFVS
TENoYW5nZWQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBwbGF0Zm9ybVNob3dDZXJ0aWZpY2F0
ZShjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsKLSAgICB1bnNpZ25lZCBwbGF0Zm9y
bUluc3BlY3RlZFdpbmRvd0hlaWdodCgpOwotICAgIHVuc2lnbmVkIHBsYXRmb3JtSW5zcGVjdGVk
V2luZG93V2lkdGgoKTsKICAgICB2b2lkIHBsYXRmb3JtQXR0YWNoKCk7CiAgICAgdm9pZCBwbGF0
Zm9ybURldGFjaCgpOwogICAgIHZvaWQgcGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1
bnNpZ25lZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
Z3RrL1dlYkluc3BlY3RvclVJUHJveHlHdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL2d0ay9XZWJJbnNwZWN0b3JVSVByb3h5R3RrLmNwcAppbmRleCBiNzcxY2FkZTU0
YzEwNTVkMmE1ZGE5OTE2MmFiZmM4NmQxYTkxNDhjLi41NjM2Yjg2ZjY0NjRlMDVkOTMxMDAwZmY4
OTc2ZGQ3OTY3MGMzMjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvZ3RrL1dlYkluc3BlY3RvclVJUHJveHlHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvV2ViSW5zcGVjdG9yVUlQcm94eUd0ay5jcHAKQEAgLTQw
NiwxNiArNDA2LDYgQEAgRGVidWdnYWJsZUluZm9EYXRhIFdlYkluc3BlY3RvclVJUHJveHk6Omlu
Zm9Gb3JMb2NhbERlYnVnZ2FibGUoKQogICAgIHJldHVybiBkYXRhOwogfQogCi11bnNpZ25lZCBX
ZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCgpCi17Ci0g
ICAgcmV0dXJuIGd0a193aWRnZXRfZ2V0X2FsbG9jYXRlZF9oZWlnaHQoaW5zcGVjdGVkUGFnZSgp
LT52aWV3V2lkZ2V0KCkpOwotfQotCi11bnNpZ25lZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0
Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKCkKLXsKLSAgICByZXR1cm4gZ3RrX3dpZGdldF9nZXRf
YWxsb2NhdGVkX3dpZHRoKGluc3BlY3RlZFBhZ2UoKS0+dmlld1dpZGdldCgpKTsKLX0KLQogdm9p
ZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCiB7CiAgICAgR1JlZlB0cjxH
dGtXaWRnZXQ+IGluc3BlY3RvclZpZXcgPSBtX2luc3BlY3RvclZpZXc7CkBAIC00MzUsMTAgKzQy
NSwxMiBAQCB2b2lkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgbWluaW11bUF0dGFjaGVkSGVpZ2h0ID0gMjUwOwogCiAgICAg
aWYgKG1fYXR0YWNobWVudFNpZGUgPT0gQXR0YWNobWVudFNpZGU6OkJvdHRvbSkgewotICAgICAg
ICB1bnNpZ25lZCBtYXhpbXVtQXR0YWNoZWRIZWlnaHQgPSBwbGF0Zm9ybUluc3BlY3RlZFdpbmRv
d0hlaWdodCgpICogMyAvIDQ7CisgICAgICAgIHVuc2lnbmVkIGluc3BlY3RlZFdpbmRvd0hlaWdo
dCA9IGd0a193aWRnZXRfZ2V0X2FsbG9jYXRlZF9oZWlnaHQoaW5zcGVjdGVkUGFnZSgpLT52aWV3
V2lkZ2V0KCkpOworICAgICAgICB1bnNpZ25lZCBtYXhpbXVtQXR0YWNoZWRIZWlnaHQgPSBpbnNw
ZWN0ZWRXaW5kb3dIZWlnaHQgKiAzIC8gNDsKICAgICAgICAgcGxhdGZvcm1TZXRBdHRhY2hlZFdp
bmRvd0hlaWdodChzdGQ6Om1heChtaW5pbXVtQXR0YWNoZWRIZWlnaHQsIHN0ZDo6bWluKGRlZmF1
bHRBdHRhY2hlZFNpemUsIG1heGltdW1BdHRhY2hlZEhlaWdodCkpKTsKICAgICB9IGVsc2Ugewot
ICAgICAgICB1bnNpZ25lZCBtYXhpbXVtQXR0YWNoZWRXaWR0aCA9IHBsYXRmb3JtSW5zcGVjdGVk
V2luZG93V2lkdGgoKSAqIDMgLyA0OworICAgICAgICB1bnNpZ25lZCBpbnNwZWN0ZWRXaW5kb3dX
aWR0aCA9IGd0a193aWRnZXRfZ2V0X2FsbG9jYXRlZF93aWR0aChpbnNwZWN0ZWRQYWdlKCktPnZp
ZXdXaWRnZXQoKSk7CisgICAgICAgIHVuc2lnbmVkIG1heGltdW1BdHRhY2hlZFdpZHRoID0gaW5z
cGVjdGVkV2luZG93V2lkdGggKiAzIC8gNDsKICAgICAgICAgcGxhdGZvcm1TZXRBdHRhY2hlZFdp
bmRvd1dpZHRoKHN0ZDo6bWF4KG1pbmltdW1BdHRhY2hlZFdpZHRoLCBzdGQ6Om1pbihkZWZhdWx0
QXR0YWNoZWRTaXplLCBtYXhpbXVtQXR0YWNoZWRXaWR0aCkpKTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yVUlQ
cm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5z
cGVjdG9yVUlQcm94eU1hYy5tbQppbmRleCAzMWU2ZmIxOGIzNmUwOTcyYmUyMDBmZTkxY2Y0NGE2
OTVhZDhiMTg0Li4zOGE4ODNlMmJjMzllMjhjMmE0YjcxYTI3NDQ2NjE5MjM1ZDkzNWFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3Rv
clVJUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21h
Yy9XZWJJbnNwZWN0b3JVSVByb3h5TWFjLm1tCkBAIC0zMTIsOCArMzEyLDExIEBAIHZvaWQgV2Vi
SW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1DcmVhdGVGcm9udGVuZFdpbmRvdygpCiB7CiAgICAg
QVNTRVJUKCFtX2luc3BlY3RvcldpbmRvdyk7CiAKLSAgICBOU1N0cmluZyAqc2F2ZWRXaW5kb3dG
cmFtZVN0cmluZyA9IGluc3BlY3RlZFBhZ2UoKS0+cGFnZUdyb3VwKCkucHJlZmVyZW5jZXMoKS5p
bnNwZWN0b3JXaW5kb3dGcmFtZSgpOwotICAgIE5TUmVjdCBzYXZlZFdpbmRvd0ZyYW1lID0gTlNS
ZWN0RnJvbVN0cmluZyhzYXZlZFdpbmRvd0ZyYW1lU3RyaW5nKTsKKyAgICBOU1JlY3Qgc2F2ZWRX
aW5kb3dGcmFtZSA9IE5TWmVyb1JlY3Q7CisgICAgaWYgKGluc3BlY3RlZFBhZ2UoKSkgeworICAg
ICAgICBOU1N0cmluZyAqc2F2ZWRXaW5kb3dGcmFtZVN0cmluZyA9IGluc3BlY3RlZFBhZ2UoKS0+
cGFnZUdyb3VwKCkucHJlZmVyZW5jZXMoKS5pbnNwZWN0b3JXaW5kb3dGcmFtZSgpOworICAgICAg
ICBzYXZlZFdpbmRvd0ZyYW1lID0gTlNSZWN0RnJvbVN0cmluZyhzYXZlZFdpbmRvd0ZyYW1lU3Ry
aW5nKTsKKyAgICB9CiAKICAgICBtX2luc3BlY3RvcldpbmRvdyA9IFdlYkluc3BlY3RvclVJUHJv
eHk6OmNyZWF0ZUZyb250ZW5kV2luZG93KHNhdmVkV2luZG93RnJhbWUsIEluc3BlY3Rpb25UYXJn
ZXRUeXBlOjpMb2NhbCk7CiAgICAgW21faW5zcGVjdG9yV2luZG93IHNldERlbGVnYXRlOm1fb2Jq
Q0FkYXB0ZXIuZ2V0KCldOwpAQCAtMzkwLDcgKzM5Myw4IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlQ
cm94eTo6cGxhdGZvcm1IaWRlKCkKIAogdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9y
bVJlc2V0U3RhdGUoKQogewotICAgIGluc3BlY3RlZFBhZ2UoKS0+cGFnZUdyb3VwKCkucHJlZmVy
ZW5jZXMoKS5kZWxldGVJbnNwZWN0b3JXaW5kb3dGcmFtZSgpOworICAgIGlmIChpbnNwZWN0ZWRQ
YWdlKCkpCisgICAgICAgIGluc3BlY3RlZFBhZ2UoKS0+cGFnZUdyb3VwKCkucHJlZmVyZW5jZXMo
KS5kZWxldGVJbnNwZWN0b3JXaW5kb3dGcmFtZSgpOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclVJ
UHJveHk6OnBsYXRmb3JtQnJpbmdUb0Zyb250KCkKQEAgLTM5OCw3ICs0MDIsNyBAQCB2b2lkIFdl
Ykluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQnJpbmdUb0Zyb250KCkKICAgICAvLyBJZiB0aGUg
V2ViIEluc3BlY3RvciBpcyBubyBsb25nZXIgaW4gdGhlIHNhbWUgd2luZG93IGFzIHRoZSBpbnNw
ZWN0ZWQgdmlldywKICAgICAvLyB0aGVuIHdlIG5lZWQgdG8gcmVvcGVuIHRoZSBJbnNwZWN0b3Ig
dG8gZ2V0IGl0IGF0dGFjaGVkIHRvIHRoZSByaWdodCB3aW5kb3cuCiAgICAgLy8gVGhpcyBjYW4g
aGFwcGVuIHdoZW4gZHJhZ2dpbmcgdGFicyB0byBhbm90aGVyIHdpbmRvdyBpbiBTYWZhcmkuCi0g
ICAgaWYgKG1faXNBdHRhY2hlZCAmJiBbbV9pbnNwZWN0b3JWaWV3Q29udHJvbGxlciB3ZWJWaWV3
XS53aW5kb3cgIT0gaW5zcGVjdGVkUGFnZSgpLT5wbGF0Zm9ybVdpbmRvdygpKSB7CisgICAgaWYg
KG1faXNBdHRhY2hlZCAmJiBpbnNwZWN0ZWRQYWdlKCkgJiYgW21faW5zcGVjdG9yVmlld0NvbnRy
b2xsZXIgd2ViVmlld10ud2luZG93ICE9IGluc3BlY3RlZFBhZ2UoKS0+cGxhdGZvcm1XaW5kb3co
KSkgewogICAgICAgICBpZiAobV9pc09wZW5pbmcpIHsKICAgICAgICAgICAgIC8vIDxyZGFyOi8v
ODgzNTg2OTY+IElmIHdlIGFyZSBjdXJyZW50bHkgb3BlbmluZyBhbiBhdHRhY2hlZCBpbnNwZWN0
b3IsIHRoZSB3aW5kb3dzIHNob3VsZCBoYXZlIGFscmVhZHkKICAgICAgICAgICAgIC8vIG1hdGNo
ZWQsIGFuZCBjYWxsaW5nIGJhY2sgdG8gYG9wZW5gIGlzbid0IGdvaW5nIHRvIGNvcnJlY3QgdGhp
cy4gQXMgYSBmYWlsLXNhZmUgdG8gcHJldmVudCByZWVudHJhbmN5LApAQCAtNDIwLDcgKzQyNCw4
IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1CcmluZ1RvRnJvbnQoKQogCiB2
b2lkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQnJpbmdJbnNwZWN0ZWRQYWdlVG9Gcm9u
dCgpCiB7Ci0gICAgW2luc3BlY3RlZFBhZ2UoKS0+cGxhdGZvcm1XaW5kb3coKSBtYWtlS2V5QW5k
T3JkZXJGcm9udDpuaWxdOworICAgIGlmIChpbnNwZWN0ZWRQYWdlKCkpCisgICAgICAgIFtpbnNw
ZWN0ZWRQYWdlKCktPnBsYXRmb3JtV2luZG93KCkgbWFrZUtleUFuZE9yZGVyRnJvbnQ6bmlsXTsK
IH0KIAogYm9vbCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUlzRnJvbnQoKQpAQCAtNDMx
LDYgKzQzNiw5IEBAIGJvb2wgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1Jc0Zyb250KCkK
IAogYm9vbCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUNhbkF0dGFjaChib29sIHdlYlBy
b2Nlc3NDYW5BdHRhY2gpCiB7CisgICAgaWYgKCFpbnNwZWN0ZWRQYWdlKCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKwogICAgIE5TVmlldyAqaW5zcGVjdGVkVmlldyA9IGluc3BlY3RlZFBhZ2Uo
KS0+aW5zcGVjdG9yQXR0YWNobWVudFZpZXcoKTsKICAgICBpZiAoW1dLSW5zcGVjdG9yVmlld0Nv
bnRyb2xsZXIgdmlld0lzSW5zcGVjdG9yV2ViVmlldzppbnNwZWN0ZWRWaWV3XSkKICAgICAgICAg
cmV0dXJuIHdlYlByb2Nlc3NDYW5BdHRhY2g7CkBAIC01OTYsNyArNjA0LDcgQEAgdm9pZCBXZWJJ
bnNwZWN0b3JVSVByb3h5Ojp3aW5kb3dGcmFtZURpZENoYW5nZSgpCiAgICAgQVNTRVJUKG1faXNW
aXNpYmxlKTsKICAgICBBU1NFUlQobV9pbnNwZWN0b3JXaW5kb3cpOwogCi0gICAgaWYgKG1faXNB
dHRhY2hlZCB8fCAhbV9pc1Zpc2libGUgfHwgIW1faW5zcGVjdG9yV2luZG93KQorICAgIGlmICht
X2lzQXR0YWNoZWQgfHwgIW1faXNWaXNpYmxlIHx8ICFtX2luc3BlY3RvcldpbmRvdyB8fCAhaW5z
cGVjdGVkUGFnZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBOU1N0cmluZyAqZnJhbWVTdHJp
bmcgPSBOU1N0cmluZ0Zyb21SZWN0KFttX2luc3BlY3RvcldpbmRvdyBmcmFtZV0pOwpAQCAtNzAy
LDIyICs3MTAsOSBAQCB2b2lkIFdlYkluc3BlY3RvclVJUHJveHk6Omluc3BlY3RlZFZpZXdGcmFt
ZURpZENoYW5nZShDR0Zsb2F0IGN1cnJlbnREaW1lbnNpb24pCiAgICAgW2luc3BlY3RlZFZpZXcg
c2V0RnJhbWU6aW5zcGVjdGVkVmlld0ZyYW1lXTsKIH0KIAotdW5zaWduZWQgV2ViSW5zcGVjdG9y
VUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQoKQotewotICAgIE5TVmlldyAq
aW5zcGVjdGVkVmlldyA9IGluc3BlY3RlZFBhZ2UoKS0+aW5zcGVjdG9yQXR0YWNobWVudFZpZXco
KTsKLSAgICBOU1JlY3QgaW5zcGVjdGVkVmlld1JlY3QgPSBbaW5zcGVjdGVkVmlldyBmcmFtZV07
Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbnNwZWN0ZWRWaWV3UmVjdC5zaXpl
LmhlaWdodCk7Ci19Ci0KLXVuc2lnbmVkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSW5z
cGVjdGVkV2luZG93V2lkdGgoKQotewotICAgIE5TVmlldyAqaW5zcGVjdGVkVmlldyA9IGluc3Bl
Y3RlZFBhZ2UoKS0+aW5zcGVjdG9yQXR0YWNobWVudFZpZXcoKTsKLSAgICBOU1JlY3QgaW5zcGVj
dGVkVmlld1JlY3QgPSBbaW5zcGVjdGVkVmlldyBmcmFtZV07Ci0gICAgcmV0dXJuIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihpbnNwZWN0ZWRWaWV3UmVjdC5zaXplLndpZHRoKTsKLX0KLQogdm9pZCBX
ZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCiB7CisgICAgQVNTRVJUKGluc3Bl
Y3RlZFBhZ2UoKSk7CiAgICAgTlNWaWV3ICppbnNwZWN0ZWRWaWV3ID0gaW5zcGVjdGVkUGFnZSgp
LT5pbnNwZWN0b3JBdHRhY2htZW50VmlldygpOwogICAgIFdLV2ViVmlldyAqaW5zcGVjdG9yVmll
dyA9IFttX2luc3BlY3RvclZpZXdDb250cm9sbGVyIHdlYlZpZXddOwogCkBAIC03NTMsMTcgKzc0
OCwxNiBAQCB2b2lkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKIAogdm9p
ZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybURldGFjaCgpCiB7Ci0gICAgTlNWaWV3ICpp
bnNwZWN0ZWRWaWV3ID0gaW5zcGVjdGVkUGFnZSgpLT5pbnNwZWN0b3JBdHRhY2htZW50Vmlldygp
OworICAgIE5TVmlldyAqaW5zcGVjdGVkVmlldyA9IGluc3BlY3RlZFBhZ2UoKSA/IGluc3BlY3Rl
ZFBhZ2UoKS0+aW5zcGVjdG9yQXR0YWNobWVudFZpZXcoKSA6IG5pbDsKICAgICBXS1dlYlZpZXcg
Kmluc3BlY3RvclZpZXcgPSBbbV9pbnNwZWN0b3JWaWV3Q29udHJvbGxlciB3ZWJWaWV3XTsKIAog
ICAgIFtpbnNwZWN0b3JWaWV3IHJlbW92ZUZyb21TdXBlcnZpZXddOwotCiAgICAgW2luc3BlY3Rv
clZpZXcgc2V0QXV0b3Jlc2l6aW5nTWFzazpOU1ZpZXdXaWR0aFNpemFibGUgfCBOU1ZpZXdIZWln
aHRTaXphYmxlXTsKIAogICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHdlIHNpemUgdGhlIGluc3BlY3Rl
ZCB2aWV3J3MgZnJhbWUgYWZ0ZXIgZGV0YWNoaW5nIHNvIHRoYXQgaXQgdGFrZXMgdXAgdGhlIHNw
YWNlIHRoYXQgdGhlCiAgICAgLy8gYXR0YWNoZWQgaW5zcGVjdG9yIHVzZWQgdG8uIFByZXNlcnZl
IHRoZSB0b3AgcG9zaXRpb24gb2YgdGhlIGluc3BlY3RlZCB2aWV3IHNvIGJhbm5lcnMgaW4gU2Fm
YXJpIHN0aWxsIHdvcmsuCi0KLSAgICBpbnNwZWN0ZWRWaWV3LmZyYW1lID0gTlNNYWtlUmVjdCgw
LCAwLCBOU1dpZHRoKGluc3BlY3RlZFZpZXcuc3VwZXJ2aWV3LmJvdW5kcyksIE5TTWF4WShpbnNw
ZWN0ZWRWaWV3LmZyYW1lKSk7CisgICAgaWYgKGluc3BlY3RlZFZpZXcpCisgICAgICAgIGluc3Bl
Y3RlZFZpZXcuZnJhbWUgPSBOU01ha2VSZWN0KDAsIDAsIE5TV2lkdGgoaW5zcGVjdGVkVmlldy5z
dXBlcnZpZXcuYm91bmRzKSwgTlNNYXhZKGluc3BlY3RlZFZpZXcuZnJhbWUpKTsKIAogICAgIC8v
IFJldHVybiBlYXJseSBpZiB3ZSBhcmUgbm90IHZpc2libGUuIFRoaXMgbWVhbnMgdGhlIGluc3Bl
Y3RvciB3YXMgY2xvc2VkIHdoaWxlIGF0dGFjaGVkCiAgICAgLy8gYW5kIHdlIHNob3VsZCBub3Qg
Y3JlYXRlIGFuZCBzaG93IHRoZSBpbnNwZWN0b3Igd2luZG93LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL3dpbi9XZWJJbnNwZWN0b3JVSVByb3h5V2luLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vV2ViSW5zcGVjdG9yVUlQ
cm94eVdpbi5jcHAKaW5kZXggMWExOTE1NTVmOWU4MTM5MGYxZjYwYTY5MTIwYTE0YzBlY2Y4Zjlh
MC4uNDkwMGFiMjliMjNkODc3ZjJhNGYwMGQwY2RhMWVjMGFlYzg4Zjk3ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL3dpbi9XZWJJbnNwZWN0b3JVSVByb3h5
V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Ivd2luL1dlYklu
c3BlY3RvclVJUHJveHlXaW4uY3BwCkBAIC0yODUsMjAgKzI4NSw2IEBAIERlYnVnZ2FibGVJbmZv
RGF0YSBXZWJJbnNwZWN0b3JVSVByb3h5OjppbmZvRm9yTG9jYWxEZWJ1Z2dhYmxlKCkKICAgICBy
ZXR1cm4gRGVidWdnYWJsZUluZm9EYXRhOjplbXB0eSgpOwogfQogCi11bnNpZ25lZCBXZWJJbnNw
ZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCgpCi17Ci0gICAgUkVD
VCByZWN0OwotICAgIDo6R2V0Q2xpZW50UmVjdChtX2luc3BlY3RlZFZpZXdXaW5kb3csICZyZWN0
KTsKLSAgICByZXR1cm4gcmVjdC5ib3R0b20gLSByZWN0LnRvcDsKLX0KLQotdW5zaWduZWQgV2Vi
SW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dXaWR0aCgpCi17Ci0gICAg
UkVDVCByZWN0OwotICAgIDo6R2V0Q2xpZW50UmVjdChtX2luc3BlY3RlZFZpZXdXaW5kb3csICZy
ZWN0KTsKLSAgICByZXR1cm4gcmVjdC5yaWdodCAtIHJlY3QubGVmdDsKLX0KLQogdm9pZCBXZWJJ
bnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCiB7CiAgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIGRlZmF1bHRBdHRhY2hlZFNpemUgPSAzMDA7CkBAIC0zMTIsMTEgKzI5OCwxNiBAQCB2
b2lkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKIAogICAgIFdlYkNvcmU6
OldpbmRvd01lc3NhZ2VCcm9hZGNhc3Rlcjo6YWRkTGlzdGVuZXIobV9pbnNwZWN0ZWRWaWV3V2lu
ZG93LCB0aGlzKTsKIAorICAgIFJFQ1QgaW5zcGVjdGVkV2luZG93UmVjdDsKKyAgICA6OkdldENs
aWVudFJlY3QobV9pbnNwZWN0ZWRWaWV3V2luZG93LCAmaW5zcGVjdGVkV2luZG93UmVjdCk7CisK
ICAgICBpZiAobV9hdHRhY2htZW50U2lkZSA9PSBBdHRhY2htZW50U2lkZTo6Qm90dG9tKSB7Ci0g
ICAgICAgIHVuc2lnbmVkIG1heGltdW1BdHRhY2hlZEhlaWdodCA9IHBsYXRmb3JtSW5zcGVjdGVk
V2luZG93SGVpZ2h0KCkgKiAzIC8gNDsKKyAgICAgICAgdW5zaWduZWQgaW5zcGVjdGVkV2luZG93
SGVpZ2h0ID0gaW5zcGVjdGVkV2luZG93UmVjdC5ib3R0b20gLSBpbnNwZWN0ZWRXaW5kb3dSZWN0
LnRvcDsKKyAgICAgICAgdW5zaWduZWQgbWF4aW11bUF0dGFjaGVkSGVpZ2h0ID0gaW5zcGVjdGVk
V2luZG93SGVpZ2h0ICogMyAvIDQ7CiAgICAgICAgIHBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dI
ZWlnaHQoc3RkOjptYXgobWluaW11bUF0dGFjaGVkSGVpZ2h0LCBzdGQ6Om1pbihkZWZhdWx0QXR0
YWNoZWRTaXplLCBtYXhpbXVtQXR0YWNoZWRIZWlnaHQpKSk7CiAgICAgfSBlbHNlIHsKLSAgICAg
ICAgdW5zaWduZWQgbWF4aW11bUF0dGFjaGVkV2lkdGggPSBwbGF0Zm9ybUluc3BlY3RlZFdpbmRv
d1dpZHRoKCkgKiAzIC8gNDsKKyAgICAgICAgdW5zaWduZWQgaW5zcGVjdGVkV2luZG93V2lkdGgg
PSBpbnNwZWN0ZWRXaW5kb3dSZWN0LnJpZ2h0IC0gaW5zcGVjdGVkV2luZG93UmVjdC5sZWZ0Owor
ICAgICAgICB1bnNpZ25lZCBtYXhpbXVtQXR0YWNoZWRXaWR0aCA9IGluc3BlY3RlZFdpbmRvd1dp
ZHRoICogMyAvIDQ7CiAgICAgICAgIHBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dXaWR0aChzdGQ6
Om1heChtaW5pbXVtQXR0YWNoZWRXaWR0aCwgc3RkOjptaW4oZGVmYXVsdEF0dGFjaGVkU2l6ZSwg
bWF4aW11bUF0dGFjaGVkV2lkdGgpKSk7CiAgICAgfQogICAgIDo6U2hvd1dpbmRvdyhtX2luc3Bl
Y3RvclZpZXdXaW5kb3csIFNXX1NIT1cpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459437</attachid>
            <date>2022-05-16 10:53:48 -0700</date>
            <delta_ts>2022-05-16 13:32:07 -0700</delta_ts>
            <desc>Patch v1.4</desc>
            <filename>bug-240284-20220516105347.patch</filename>
            <type>text/plain</type>
            <size>15261</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjk0MTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY5N2NlNDlmNDljNzNiYzQw
OGU0ZTI3ODhmYjhiY2RiNjgyNTU3MjYuLjg3MDgyNWMzNzBhMWUzMzY2MmU3ODU1NmRmNThiMzRk
MTJjMmNkYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMjItMDUtMTIgIFBhdHJpY2sg
QW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5vbi1y
ZXByb2R1Y2libGUgY3Jhc2ggYXQgV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9y
bURldGFjaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjQwMjg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3BlY3VsYXRpdmUgZml4IGZvciBub24tcmVwcm9kdWNpYmxlIGNyYXNoLiBXaGVuIGBXZWJJbnNw
ZWN0b3JVSVByb3h5OjpwbGF0Zm9ybURldGFjaGAgaXMgY2FsbGVkIGZyb20KKyAgICAgICAgYFdl
Ykluc3BlY3RvclVJUHJveHk6OmNsb3NlRnJvbnRlbmRQYWdlQW5kV2luZG93YCwgaXQgYXBwZWFy
cyB0byBiZSBwb3NzaWJsZSBmb3IgdGhlIGluc3BlY3RlZCBwYWdlIHRvIGhhdmUKKyAgICAgICAg
YWxyZWFkeSBiZWVuIGRpc2NhcmRlZCAodmlhIGBXZWJJbnNwZWN0b3JVSVByb3h5OjpyZXNldGAp
LiBUaGlzIGlzIHJlaW5mb3JjZWQgYnkgdGhlIGZhY3QgdGhhdAorICAgICAgICBgV2ViSW5zcGVj
dG9yVUlQcm94eTo6Y2xvc2VGcm9udGVuZFBhZ2VBbmRXaW5kb3dgIGFscmVhZHkgZ3VhcmRzIHVz
ZSBvZiBgaW5zcGVjdGVkUGFnZSgpYC4gV2Ugc2hvdWxkIGRvIHRoZSBzYW1lCisgICAgICAgIGhl
cmUsIGFuZCBzaG91bGQgYWxzbyBndWFyZCBvdGhlciBwbGFjZXMgd2UgdXNlIGBpbnNwZWN0ZWRQ
YWdlKClgIHRvIGhlbHAgZnV0dXJlIGZvbGtzIChpbmNsdWRpbmcgbWUpCisgICAgICAgIHVuZGVy
c3RhbmQgdGhhdCB0aGUgZXhpc3RhbmNlIG9mIGFuIGBpbnNwZWN0ZWRQYWdlKClgIGlzIG5vdCBn
dWFyYW50ZWVkLgorCisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVj
dG9yVUlQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6
cGxhdGZvcm1DcmVhdGVGcm9udGVuZFdpbmRvdyk6CisgICAgICAgIC0gSWYgd2UgZG9uJ3QgaGF2
ZSBhbiBpbnNwZWN0ZWQgcGFnZSB3aGVuIGNyZWF0aW5nIGEgd2luZG93IGZvciB0aGUgZnJvbnRl
bmQsIHVzZSB0aGUgZGVmYXVsdCB3aW5kb3cgc2l6ZSBieQorICAgICAgICBwYXNzaW5nIGFuIGVt
cHR5IE5TUmVjdCB0byBgV2ViSW5zcGVjdG9yVUlQcm94eTo6Y3JlYXRlRnJvbnRlbmRXaW5kb3dg
LgorCisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtUmVzZXRT
dGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQnJp
bmdUb0Zyb250KToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZv
cm1CcmluZ0luc3BlY3RlZFBhZ2VUb0Zyb250KToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVj
dG9yVUlQcm94eTo6d2luZG93RnJhbWVEaWRDaGFuZ2UpOgorICAgICAgICAtIElmIHRoZSBpbnNw
ZWN0ZWQgcGFnZSBubyBsb25nZXIgZXhpc3RzLCBkb24ndCB0cnkgdG8gdXNlIGl0LgorCisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQ2FuQXR0YWNoKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1BdHRhY2gpOgorICAg
ICAgICAtIFVwZGF0ZSBgcGxhdGZvcm1DYW5BdHRhY2hgIHRvIHJldHVybiBmYWxzZSBpZiB3ZSBu
byBsb25nZXIgaGF2ZSBhbiBpbnNwZWN0ZWQgcGFnZSwgYW5kIGFzc2VydCB0aGF0IHdlIGhhdmUg
YW4KKyAgICAgICAgaW5zcGVjdGVkIHBhZ2UgaW4gYHBsYXRmb3JtQXR0YWNoYCBzaW5jZSBhbnkg
Y2FsbCB0byBpdCBzaG91bGQgYmUgZ3VhcmRlZCBvbiBgcGxhdGZvcm1DYW5BdHRhY2hgCisKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1EZXRhY2gpOgorICAg
ICAgICAtIFdlIHNob3VsZCBhdHRlbXB0IHRvIGNsZWFuIHVwIGFzIG11Y2ggb2YgdGhlIGF0dGFj
aG1lbnQgYXMgd2UgY2FuLCBidXQgd29yayBhcm91bmQgdGhlIHBvc3NpYmlsaXR5IHRoYXQgdGhl
CisgICAgICAgIGluc3BlY3RlZCBwYWdlIGlzIG5vIGxvbmdlciBhdmFpbGFibGUuCisgICAgICAg
IC0gQ2xlYW4gdXAgbmV3bGluZXMgd2hpbGUgd2UgYXJlIGhlcmUuCisKKyAgICAgICAgKFdlYktp
dDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUlu
c3BlY3RlZFdpbmRvd1dpZHRoKTogRGVsZXRlZC4KKyAgICAgICAgLSBUaGVzZSBtZXRob2RzIHdl
cmUgdW51c2VkIG9uIE1hYy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5z
cGVjdG9yVUlQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6
Om9wZW4pOgorICAgICAgICAtIEFkZCBhIGNoZWNrIHRoYXQgd2UgY2FuIGFjdHVhbGx5IGF0dGFj
aCBpbiBvdXIgY3VycmVudCBzdGF0ZSB3aGVuIG9wZW5pbmcsIG90aGVyd2lzZSBmYWxsIGJhY2sg
dG8gY3JlYXRpbmcgYQorICAgICAgICB3aW5kb3cgaW5zdGVhZC4KKworICAgICAgICAoV2ViS2l0
OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSW5z
cGVjdGVkV2luZG93V2lkdGgpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yVUlQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3Iv
Z3RrL1dlYkluc3BlY3RvclVJUHJveHlHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNw
ZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUF0dGFjaCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3Bl
Y3RvclVJUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93SGVpZ2h0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5k
b3dXaWR0aCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vV2Vi
SW5zcGVjdG9yVUlQcm94eVdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJ
UHJveHk6OnBsYXRmb3JtQXR0YWNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQ
cm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRo
KTogRGVsZXRlZC4KKyAgICAgICAgLSBJbmxpbmUgV2luZG93cy9HVEsgdXNhZ2Ugb2YgYHBsYXRm
b3JtSW5zcGVjdGVkV2luZG93KmAsIHNpbmNlIHRoZXkgYXJlIG9ubHkgdXNlZCBvbmNlLCBub3Qg
dXNlZCBieSB0aGUKKyAgICAgICAgc3VwZXJjbGFzcyBhbnkgbW9yZSwgYW5kIGFsc28gbm90IHVz
ZWQgb24gYWxsIHBsYXRmb3Jtcy4KKwogMjAyMi0wNS0xMiAgVGltIEhvcnRvbiAgPHRpbW90aHlf
aG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBEb24ndCBpbnN0YWxsIFdlYktpdCBmZWF0dXJl
IGZsYWdzIHBsaXN0IG9uIG1hY09TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlQcm94eS5jcHAKaW5kZXggOGM3YzkwNjQ5Zjhj
MDRjYTFmMTVhYTJmNjkwZWJkNzYxY2M2NjNjNy4uMzBhMzczMmViNWJhM2JhZGJmZTBkMDQ2MzVl
ZmVlNTI4M2E4M2Y5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVj
dG9yL1dlYkluc3BlY3RvclVJUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSVByb3h5LmNwcApAQCAtNTA1LDEwICs1MDUsMTIgQEAg
dm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpvcGVuKCkKICAgICBtX2lzVmlzaWJsZSA9IHRydWU7
CiAgICAgbV9pbnNwZWN0b3JQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSTo6U2V0
SXNWaXNpYmxlKG1faXNWaXNpYmxlKSk7CiAKLSAgICBpZiAobV9pc0F0dGFjaGVkKQorICAgIGlm
IChtX2lzQXR0YWNoZWQgJiYgcGxhdGZvcm1DYW5BdHRhY2gobV9jYW5BdHRhY2gpKQogICAgICAg
ICBwbGF0Zm9ybUF0dGFjaCgpOwotICAgIGVsc2UKKyAgICBlbHNlIHsKKyAgICAgICAgbV9hdHRh
Y2hlZCA9IGZhbHNlOwogICAgICAgICBwbGF0Zm9ybUNyZWF0ZUZyb250ZW5kV2luZG93KCk7Cisg
ICAgfQogCiAgICAgcGxhdGZvcm1CcmluZ1RvRnJvbnQoKTsKIH0KQEAgLTg0NiwxOCArODQ4LDYg
QEAgdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUxvYWQoY29uc3QgU3RyaW5nJiBw
YXRoLCBDb21wbGV0aW9uSGFuZGxlcjx2b2kKICAgICBjb21wbGV0aW9uSGFuZGxlcihudWxsU3Ry
aW5nKCkpOwogfQogCi11bnNpZ25lZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUluc3Bl
Y3RlZFdpbmRvd0hlaWdodCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
MDsKLX0KLQotdW5zaWduZWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRX
aW5kb3dXaWR0aCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKLX0K
LQogdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3JVSVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yVUlQcm94eS5oCmluZGV4IDNmOTBkYzE2NTg4ODE4MTFmYWI1MjVh
Y2NlNzM2M2I2YTY4YjBjYTEuLmMxNTlmYTk3ZmE4ZjE4NDlkNWQzYmQyMzUwMGFmOTUzOTUwMmQw
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JVSVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dl
Ykluc3BlY3RvclVJUHJveHkuaApAQCAtMjI3LDggKzIyNyw2IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBwbGF0Zm9ybU9wZW5VUkxFeHRlcm5hbGx5KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcGxh
dGZvcm1JbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgcGxhdGZv
cm1TaG93Q2VydGlmaWNhdGUoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7Ci0gICAg
dW5zaWduZWQgcGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQoKTsKLSAgICB1bnNpZ25lZCBw
bGF0Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKCk7CiAgICAgdm9pZCBwbGF0Zm9ybUF0dGFjaCgp
OwogICAgIHZvaWQgcGxhdGZvcm1EZXRhY2goKTsKICAgICB2b2lkIHBsYXRmb3JtU2V0QXR0YWNo
ZWRXaW5kb3dIZWlnaHQodW5zaWduZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL2d0ay9XZWJJbnNwZWN0b3JVSVByb3h5R3RrLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvV2ViSW5zcGVjdG9yVUlQcm94eUd0ay5jcHAK
aW5kZXggYjc3MWNhZGU1NGMxMDU1ZDJhNWRhOTkxNjJhYmZjODZkMWE5MTQ4Yy4uNTYzNmI4NmY2
NDY0ZTA1ZDkzMTAwMGZmODk3NmRkNzk2NzBjMzIzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9XZWJJbnNwZWN0b3JVSVByb3h5R3RrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3BlY3RvclVJUHJv
eHlHdGsuY3BwCkBAIC00MDYsMTYgKzQwNiw2IEBAIERlYnVnZ2FibGVJbmZvRGF0YSBXZWJJbnNw
ZWN0b3JVSVByb3h5OjppbmZvRm9yTG9jYWxEZWJ1Z2dhYmxlKCkKICAgICByZXR1cm4gZGF0YTsK
IH0KIAotdW5zaWduZWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5k
b3dIZWlnaHQoKQotewotICAgIHJldHVybiBndGtfd2lkZ2V0X2dldF9hbGxvY2F0ZWRfaGVpZ2h0
KGluc3BlY3RlZFBhZ2UoKS0+dmlld1dpZGdldCgpKTsKLX0KLQotdW5zaWduZWQgV2ViSW5zcGVj
dG9yVUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dXaWR0aCgpCi17Ci0gICAgcmV0dXJu
IGd0a193aWRnZXRfZ2V0X2FsbG9jYXRlZF93aWR0aChpbnNwZWN0ZWRQYWdlKCktPnZpZXdXaWRn
ZXQoKSk7Ci19Ci0KIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1BdHRhY2goKQog
ewogICAgIEdSZWZQdHI8R3RrV2lkZ2V0PiBpbnNwZWN0b3JWaWV3ID0gbV9pbnNwZWN0b3JWaWV3
OwpAQCAtNDM1LDEwICs0MjUsMTIgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9y
bUF0dGFjaCgpCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1pbmltdW1BdHRhY2hlZEhlaWdo
dCA9IDI1MDsKIAogICAgIGlmIChtX2F0dGFjaG1lbnRTaWRlID09IEF0dGFjaG1lbnRTaWRlOjpC
b3R0b20pIHsKLSAgICAgICAgdW5zaWduZWQgbWF4aW11bUF0dGFjaGVkSGVpZ2h0ID0gcGxhdGZv
cm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQoKSAqIDMgLyA0OworICAgICAgICB1bnNpZ25lZCBpbnNw
ZWN0ZWRXaW5kb3dIZWlnaHQgPSBndGtfd2lkZ2V0X2dldF9hbGxvY2F0ZWRfaGVpZ2h0KGluc3Bl
Y3RlZFBhZ2UoKS0+dmlld1dpZGdldCgpKTsKKyAgICAgICAgdW5zaWduZWQgbWF4aW11bUF0dGFj
aGVkSGVpZ2h0ID0gaW5zcGVjdGVkV2luZG93SGVpZ2h0ICogMyAvIDQ7CiAgICAgICAgIHBsYXRm
b3JtU2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQoc3RkOjptYXgobWluaW11bUF0dGFjaGVkSGVpZ2h0
LCBzdGQ6Om1pbihkZWZhdWx0QXR0YWNoZWRTaXplLCBtYXhpbXVtQXR0YWNoZWRIZWlnaHQpKSk7
CiAgICAgfSBlbHNlIHsKLSAgICAgICAgdW5zaWduZWQgbWF4aW11bUF0dGFjaGVkV2lkdGggPSBw
bGF0Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKCkgKiAzIC8gNDsKKyAgICAgICAgdW5zaWduZWQg
aW5zcGVjdGVkV2luZG93V2lkdGggPSBndGtfd2lkZ2V0X2dldF9hbGxvY2F0ZWRfd2lkdGgoaW5z
cGVjdGVkUGFnZSgpLT52aWV3V2lkZ2V0KCkpOworICAgICAgICB1bnNpZ25lZCBtYXhpbXVtQXR0
YWNoZWRXaWR0aCA9IGluc3BlY3RlZFdpbmRvd1dpZHRoICogMyAvIDQ7CiAgICAgICAgIHBsYXRm
b3JtU2V0QXR0YWNoZWRXaW5kb3dXaWR0aChzdGQ6Om1heChtaW5pbXVtQXR0YWNoZWRXaWR0aCwg
c3RkOjptaW4oZGVmYXVsdEF0dGFjaGVkU2l6ZSwgbWF4aW11bUF0dGFjaGVkV2lkdGgpKSk7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFj
L1dlYkluc3BlY3RvclVJUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvbWFjL1dlYkluc3BlY3RvclVJUHJveHlNYWMubW0KaW5kZXggMzFlNmZiMThiMzZlMDk3
MmJlMjAwZmU5MWNmNDRhNjk1YWQ4YjE4NC4uMzhhODgzZTJiYzM5ZTI4YzJhNGI3MWEyNzQ0NjYx
OTIzNWQ5MzVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L21hYy9XZWJJbnNwZWN0b3JVSVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yVUlQcm94eU1hYy5tbQpAQCAtMzEyLDggKzMx
MiwxMSBAQCB2b2lkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQ3JlYXRlRnJvbnRlbmRX
aW5kb3coKQogewogICAgIEFTU0VSVCghbV9pbnNwZWN0b3JXaW5kb3cpOwogCi0gICAgTlNTdHJp
bmcgKnNhdmVkV2luZG93RnJhbWVTdHJpbmcgPSBpbnNwZWN0ZWRQYWdlKCktPnBhZ2VHcm91cCgp
LnByZWZlcmVuY2VzKCkuaW5zcGVjdG9yV2luZG93RnJhbWUoKTsKLSAgICBOU1JlY3Qgc2F2ZWRX
aW5kb3dGcmFtZSA9IE5TUmVjdEZyb21TdHJpbmcoc2F2ZWRXaW5kb3dGcmFtZVN0cmluZyk7Cisg
ICAgTlNSZWN0IHNhdmVkV2luZG93RnJhbWUgPSBOU1plcm9SZWN0OworICAgIGlmIChpbnNwZWN0
ZWRQYWdlKCkpIHsKKyAgICAgICAgTlNTdHJpbmcgKnNhdmVkV2luZG93RnJhbWVTdHJpbmcgPSBp
bnNwZWN0ZWRQYWdlKCktPnBhZ2VHcm91cCgpLnByZWZlcmVuY2VzKCkuaW5zcGVjdG9yV2luZG93
RnJhbWUoKTsKKyAgICAgICAgc2F2ZWRXaW5kb3dGcmFtZSA9IE5TUmVjdEZyb21TdHJpbmcoc2F2
ZWRXaW5kb3dGcmFtZVN0cmluZyk7CisgICAgfQogCiAgICAgbV9pbnNwZWN0b3JXaW5kb3cgPSBX
ZWJJbnNwZWN0b3JVSVByb3h5OjpjcmVhdGVGcm9udGVuZFdpbmRvdyhzYXZlZFdpbmRvd0ZyYW1l
LCBJbnNwZWN0aW9uVGFyZ2V0VHlwZTo6TG9jYWwpOwogICAgIFttX2luc3BlY3RvcldpbmRvdyBz
ZXREZWxlZ2F0ZTptX29iakNBZGFwdGVyLmdldCgpXTsKQEAgLTM5MCw3ICszOTMsOCBAQCB2b2lk
IFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSGlkZSgpCiAKIHZvaWQgV2ViSW5zcGVjdG9y
VUlQcm94eTo6cGxhdGZvcm1SZXNldFN0YXRlKCkKIHsKLSAgICBpbnNwZWN0ZWRQYWdlKCktPnBh
Z2VHcm91cCgpLnByZWZlcmVuY2VzKCkuZGVsZXRlSW5zcGVjdG9yV2luZG93RnJhbWUoKTsKKyAg
ICBpZiAoaW5zcGVjdGVkUGFnZSgpKQorICAgICAgICBpbnNwZWN0ZWRQYWdlKCktPnBhZ2VHcm91
cCgpLnByZWZlcmVuY2VzKCkuZGVsZXRlSW5zcGVjdG9yV2luZG93RnJhbWUoKTsKIH0KIAogdm9p
ZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUJyaW5nVG9Gcm9udCgpCkBAIC0zOTgsNyAr
NDAyLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUJyaW5nVG9Gcm9udCgp
CiAgICAgLy8gSWYgdGhlIFdlYiBJbnNwZWN0b3IgaXMgbm8gbG9uZ2VyIGluIHRoZSBzYW1lIHdp
bmRvdyBhcyB0aGUgaW5zcGVjdGVkIHZpZXcsCiAgICAgLy8gdGhlbiB3ZSBuZWVkIHRvIHJlb3Bl
biB0aGUgSW5zcGVjdG9yIHRvIGdldCBpdCBhdHRhY2hlZCB0byB0aGUgcmlnaHQgd2luZG93Lgog
ICAgIC8vIFRoaXMgY2FuIGhhcHBlbiB3aGVuIGRyYWdnaW5nIHRhYnMgdG8gYW5vdGhlciB3aW5k
b3cgaW4gU2FmYXJpLgotICAgIGlmIChtX2lzQXR0YWNoZWQgJiYgW21faW5zcGVjdG9yVmlld0Nv
bnRyb2xsZXIgd2ViVmlld10ud2luZG93ICE9IGluc3BlY3RlZFBhZ2UoKS0+cGxhdGZvcm1XaW5k
b3coKSkgeworICAgIGlmIChtX2lzQXR0YWNoZWQgJiYgaW5zcGVjdGVkUGFnZSgpICYmIFttX2lu
c3BlY3RvclZpZXdDb250cm9sbGVyIHdlYlZpZXddLndpbmRvdyAhPSBpbnNwZWN0ZWRQYWdlKCkt
PnBsYXRmb3JtV2luZG93KCkpIHsKICAgICAgICAgaWYgKG1faXNPcGVuaW5nKSB7CiAgICAgICAg
ICAgICAvLyA8cmRhcjovLzg4MzU4Njk2PiBJZiB3ZSBhcmUgY3VycmVudGx5IG9wZW5pbmcgYW4g
YXR0YWNoZWQgaW5zcGVjdG9yLCB0aGUgd2luZG93cyBzaG91bGQgaGF2ZSBhbHJlYWR5CiAgICAg
ICAgICAgICAvLyBtYXRjaGVkLCBhbmQgY2FsbGluZyBiYWNrIHRvIGBvcGVuYCBpc24ndCBnb2lu
ZyB0byBjb3JyZWN0IHRoaXMuIEFzIGEgZmFpbC1zYWZlIHRvIHByZXZlbnQgcmVlbnRyYW5jeSwK
QEAgLTQyMCw3ICs0MjQsOCBAQCB2b2lkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQnJp
bmdUb0Zyb250KCkKIAogdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUJyaW5nSW5z
cGVjdGVkUGFnZVRvRnJvbnQoKQogewotICAgIFtpbnNwZWN0ZWRQYWdlKCktPnBsYXRmb3JtV2lu
ZG93KCkgbWFrZUtleUFuZE9yZGVyRnJvbnQ6bmlsXTsKKyAgICBpZiAoaW5zcGVjdGVkUGFnZSgp
KQorICAgICAgICBbaW5zcGVjdGVkUGFnZSgpLT5wbGF0Zm9ybVdpbmRvdygpIG1ha2VLZXlBbmRP
cmRlckZyb250Om5pbF07CiB9CiAKIGJvb2wgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1J
c0Zyb250KCkKQEAgLTQzMSw2ICs0MzYsOSBAQCBib29sIFdlYkluc3BlY3RvclVJUHJveHk6OnBs
YXRmb3JtSXNGcm9udCgpCiAKIGJvb2wgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1DYW5B
dHRhY2goYm9vbCB3ZWJQcm9jZXNzQ2FuQXR0YWNoKQogeworICAgIGlmICghaW5zcGVjdGVkUGFn
ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBOU1ZpZXcgKmluc3BlY3RlZFZpZXcg
PSBpbnNwZWN0ZWRQYWdlKCktPmluc3BlY3RvckF0dGFjaG1lbnRWaWV3KCk7CiAgICAgaWYgKFtX
S0luc3BlY3RvclZpZXdDb250cm9sbGVyIHZpZXdJc0luc3BlY3RvcldlYlZpZXc6aW5zcGVjdGVk
Vmlld10pCiAgICAgICAgIHJldHVybiB3ZWJQcm9jZXNzQ2FuQXR0YWNoOwpAQCAtNTk2LDcgKzYw
NCw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6d2luZG93RnJhbWVEaWRDaGFuZ2UoKQog
ICAgIEFTU0VSVChtX2lzVmlzaWJsZSk7CiAgICAgQVNTRVJUKG1faW5zcGVjdG9yV2luZG93KTsK
IAotICAgIGlmIChtX2lzQXR0YWNoZWQgfHwgIW1faXNWaXNpYmxlIHx8ICFtX2luc3BlY3Rvcldp
bmRvdykKKyAgICBpZiAobV9pc0F0dGFjaGVkIHx8ICFtX2lzVmlzaWJsZSB8fCAhbV9pbnNwZWN0
b3JXaW5kb3cgfHwgIWluc3BlY3RlZFBhZ2UoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTlNT
dHJpbmcgKmZyYW1lU3RyaW5nID0gTlNTdHJpbmdGcm9tUmVjdChbbV9pbnNwZWN0b3JXaW5kb3cg
ZnJhbWVdKTsKQEAgLTcwMiwyMiArNzEwLDkgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5Ojpp
bnNwZWN0ZWRWaWV3RnJhbWVEaWRDaGFuZ2UoQ0dGbG9hdCBjdXJyZW50RGltZW5zaW9uKQogICAg
IFtpbnNwZWN0ZWRWaWV3IHNldEZyYW1lOmluc3BlY3RlZFZpZXdGcmFtZV07CiB9CiAKLXVuc2ln
bmVkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93SGVpZ2h0KCkK
LXsKLSAgICBOU1ZpZXcgKmluc3BlY3RlZFZpZXcgPSBpbnNwZWN0ZWRQYWdlKCktPmluc3BlY3Rv
ckF0dGFjaG1lbnRWaWV3KCk7Ci0gICAgTlNSZWN0IGluc3BlY3RlZFZpZXdSZWN0ID0gW2luc3Bl
Y3RlZFZpZXcgZnJhbWVdOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaW5zcGVj
dGVkVmlld1JlY3Quc2l6ZS5oZWlnaHQpOwotfQotCi11bnNpZ25lZCBXZWJJbnNwZWN0b3JVSVBy
b3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKCkKLXsKLSAgICBOU1ZpZXcgKmluc3Bl
Y3RlZFZpZXcgPSBpbnNwZWN0ZWRQYWdlKCktPmluc3BlY3RvckF0dGFjaG1lbnRWaWV3KCk7Ci0g
ICAgTlNSZWN0IGluc3BlY3RlZFZpZXdSZWN0ID0gW2luc3BlY3RlZFZpZXcgZnJhbWVdOwotICAg
IHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaW5zcGVjdGVkVmlld1JlY3Quc2l6ZS53aWR0
aCk7Ci19Ci0KIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1BdHRhY2goKQogewor
ICAgIEFTU0VSVChpbnNwZWN0ZWRQYWdlKCkpOwogICAgIE5TVmlldyAqaW5zcGVjdGVkVmlldyA9
IGluc3BlY3RlZFBhZ2UoKS0+aW5zcGVjdG9yQXR0YWNobWVudFZpZXcoKTsKICAgICBXS1dlYlZp
ZXcgKmluc3BlY3RvclZpZXcgPSBbbV9pbnNwZWN0b3JWaWV3Q29udHJvbGxlciB3ZWJWaWV3XTsK
IApAQCAtNzUzLDE3ICs3NDgsMTYgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9y
bUF0dGFjaCgpCiAKIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1EZXRhY2goKQog
ewotICAgIE5TVmlldyAqaW5zcGVjdGVkVmlldyA9IGluc3BlY3RlZFBhZ2UoKS0+aW5zcGVjdG9y
QXR0YWNobWVudFZpZXcoKTsKKyAgICBOU1ZpZXcgKmluc3BlY3RlZFZpZXcgPSBpbnNwZWN0ZWRQ
YWdlKCkgPyBpbnNwZWN0ZWRQYWdlKCktPmluc3BlY3RvckF0dGFjaG1lbnRWaWV3KCkgOiBuaWw7
CiAgICAgV0tXZWJWaWV3ICppbnNwZWN0b3JWaWV3ID0gW21faW5zcGVjdG9yVmlld0NvbnRyb2xs
ZXIgd2ViVmlld107CiAKICAgICBbaW5zcGVjdG9yVmlldyByZW1vdmVGcm9tU3VwZXJ2aWV3XTsK
LQogICAgIFtpbnNwZWN0b3JWaWV3IHNldEF1dG9yZXNpemluZ01hc2s6TlNWaWV3V2lkdGhTaXph
YmxlIHwgTlNWaWV3SGVpZ2h0U2l6YWJsZV07CiAKICAgICAvLyBNYWtlIHN1cmUgdGhhdCB3ZSBz
aXplIHRoZSBpbnNwZWN0ZWQgdmlldydzIGZyYW1lIGFmdGVyIGRldGFjaGluZyBzbyB0aGF0IGl0
IHRha2VzIHVwIHRoZSBzcGFjZSB0aGF0IHRoZQogICAgIC8vIGF0dGFjaGVkIGluc3BlY3RvciB1
c2VkIHRvLiBQcmVzZXJ2ZSB0aGUgdG9wIHBvc2l0aW9uIG9mIHRoZSBpbnNwZWN0ZWQgdmlldyBz
byBiYW5uZXJzIGluIFNhZmFyaSBzdGlsbCB3b3JrLgotCi0gICAgaW5zcGVjdGVkVmlldy5mcmFt
ZSA9IE5TTWFrZVJlY3QoMCwgMCwgTlNXaWR0aChpbnNwZWN0ZWRWaWV3LnN1cGVydmlldy5ib3Vu
ZHMpLCBOU01heFkoaW5zcGVjdGVkVmlldy5mcmFtZSkpOworICAgIGlmIChpbnNwZWN0ZWRWaWV3
KQorICAgICAgICBpbnNwZWN0ZWRWaWV3LmZyYW1lID0gTlNNYWtlUmVjdCgwLCAwLCBOU1dpZHRo
KGluc3BlY3RlZFZpZXcuc3VwZXJ2aWV3LmJvdW5kcyksIE5TTWF4WShpbnNwZWN0ZWRWaWV3LmZy
YW1lKSk7CiAKICAgICAvLyBSZXR1cm4gZWFybHkgaWYgd2UgYXJlIG5vdCB2aXNpYmxlLiBUaGlz
IG1lYW5zIHRoZSBpbnNwZWN0b3Igd2FzIGNsb3NlZCB3aGlsZSBhdHRhY2hlZAogICAgIC8vIGFu
ZCB3ZSBzaG91bGQgbm90IGNyZWF0ZSBhbmQgc2hvdyB0aGUgaW5zcGVjdG9yIHdpbmRvdy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vV2ViSW5zcGVj
dG9yVUlQcm94eVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Ivd2lu
L1dlYkluc3BlY3RvclVJUHJveHlXaW4uY3BwCmluZGV4IDFhMTkxNTU1ZjllODEzOTBmMWY2MGE2
OTEyMGExNGMwZWNmOGY5YTAuLjQ5MDBhYjI5YjIzZDg3N2YyYTRmMDBkMGNkYTFlYzBhZWM4OGY5
N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vV2Vi
SW5zcGVjdG9yVUlQcm94eVdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5z
cGVjdG9yL3dpbi9XZWJJbnNwZWN0b3JVSVByb3h5V2luLmNwcApAQCAtMjg1LDIwICsyODUsNiBA
QCBEZWJ1Z2dhYmxlSW5mb0RhdGEgV2ViSW5zcGVjdG9yVUlQcm94eTo6aW5mb0ZvckxvY2FsRGVi
dWdnYWJsZSgpCiAgICAgcmV0dXJuIERlYnVnZ2FibGVJbmZvRGF0YTo6ZW1wdHkoKTsKIH0KIAot
dW5zaWduZWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWln
aHQoKQotewotICAgIFJFQ1QgcmVjdDsKLSAgICA6OkdldENsaWVudFJlY3QobV9pbnNwZWN0ZWRW
aWV3V2luZG93LCAmcmVjdCk7Ci0gICAgcmV0dXJuIHJlY3QuYm90dG9tIC0gcmVjdC50b3A7Ci19
Ci0KLXVuc2lnbmVkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93
V2lkdGgoKQotewotICAgIFJFQ1QgcmVjdDsKLSAgICA6OkdldENsaWVudFJlY3QobV9pbnNwZWN0
ZWRWaWV3V2luZG93LCAmcmVjdCk7Ci0gICAgcmV0dXJuIHJlY3QucmlnaHQgLSByZWN0LmxlZnQ7
Ci19Ci0KIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1BdHRhY2goKQogewogICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBkZWZhdWx0QXR0YWNoZWRTaXplID0gMzAwOwpAQCAtMzEy
LDExICsyOTgsMTYgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUF0dGFjaCgp
CiAKICAgICBXZWJDb3JlOjpXaW5kb3dNZXNzYWdlQnJvYWRjYXN0ZXI6OmFkZExpc3RlbmVyKG1f
aW5zcGVjdGVkVmlld1dpbmRvdywgdGhpcyk7CiAKKyAgICBSRUNUIGluc3BlY3RlZFdpbmRvd1Jl
Y3Q7CisgICAgOjpHZXRDbGllbnRSZWN0KG1faW5zcGVjdGVkVmlld1dpbmRvdywgJmluc3BlY3Rl
ZFdpbmRvd1JlY3QpOworCiAgICAgaWYgKG1fYXR0YWNobWVudFNpZGUgPT0gQXR0YWNobWVudFNp
ZGU6OkJvdHRvbSkgewotICAgICAgICB1bnNpZ25lZCBtYXhpbXVtQXR0YWNoZWRIZWlnaHQgPSBw
bGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCgpICogMyAvIDQ7CisgICAgICAgIHVuc2lnbmVk
IGluc3BlY3RlZFdpbmRvd0hlaWdodCA9IGluc3BlY3RlZFdpbmRvd1JlY3QuYm90dG9tIC0gaW5z
cGVjdGVkV2luZG93UmVjdC50b3A7CisgICAgICAgIHVuc2lnbmVkIG1heGltdW1BdHRhY2hlZEhl
aWdodCA9IGluc3BlY3RlZFdpbmRvd0hlaWdodCAqIDMgLyA0OwogICAgICAgICBwbGF0Zm9ybVNl
dEF0dGFjaGVkV2luZG93SGVpZ2h0KHN0ZDo6bWF4KG1pbmltdW1BdHRhY2hlZEhlaWdodCwgc3Rk
OjptaW4oZGVmYXVsdEF0dGFjaGVkU2l6ZSwgbWF4aW11bUF0dGFjaGVkSGVpZ2h0KSkpOwogICAg
IH0gZWxzZSB7Ci0gICAgICAgIHVuc2lnbmVkIG1heGltdW1BdHRhY2hlZFdpZHRoID0gcGxhdGZv
cm1JbnNwZWN0ZWRXaW5kb3dXaWR0aCgpICogMyAvIDQ7CisgICAgICAgIHVuc2lnbmVkIGluc3Bl
Y3RlZFdpbmRvd1dpZHRoID0gaW5zcGVjdGVkV2luZG93UmVjdC5yaWdodCAtIGluc3BlY3RlZFdp
bmRvd1JlY3QubGVmdDsKKyAgICAgICAgdW5zaWduZWQgbWF4aW11bUF0dGFjaGVkV2lkdGggPSBp
bnNwZWN0ZWRXaW5kb3dXaWR0aCAqIDMgLyA0OwogICAgICAgICBwbGF0Zm9ybVNldEF0dGFjaGVk
V2luZG93V2lkdGgoc3RkOjptYXgobWluaW11bUF0dGFjaGVkV2lkdGgsIHN0ZDo6bWluKGRlZmF1
bHRBdHRhY2hlZFNpemUsIG1heGltdW1BdHRhY2hlZFdpZHRoKSkpOwogICAgIH0KICAgICA6OlNo
b3dXaW5kb3cobV9pbnNwZWN0b3JWaWV3V2luZG93LCBTV19TSE9XKTsK
</data>
<flag name="commit-queue"
          id="488562"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459450</attachid>
            <date>2022-05-16 13:17:54 -0700</date>
            <delta_ts>2022-05-16 13:17:54 -0700</delta_ts>
            <desc>Patch v1.5</desc>
            <filename>bug-240284-20220516131753.patch</filename>
            <type>text/plain</type>
            <size>15279</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggZDI5NDYyYTQwYTQ5YjJiOWNjNTkwNWZjMmQzZWIxMTVjY2U0ZmY2ZC4uMWY1
NTk3ZTZhMTMwYWM1YWQ0MTRmYWVhZDYxYWEwYjlkYWRiNjRhYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw2MSBAQAorMjAyMi0wNS0xNiAgUGF0cmljayBBbmdsZSAgPHBhbmdsZUBhcHBsZS5jb20+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogTm9uLXJlcHJvZHVjaWJsZSBjcmFzaCBhdCBXZWJLaXQ6
OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtRGV0YWNoCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAyODQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTcGVjdWxhdGl2ZSBmaXggZm9yIG5vbi1yZXBy
b2R1Y2libGUgY3Jhc2guIFdoZW4gYFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtRGV0YWNo
YCBpcyBjYWxsZWQgZnJvbQorICAgICAgICBgV2ViSW5zcGVjdG9yVUlQcm94eTo6Y2xvc2VGcm9u
dGVuZFBhZ2VBbmRXaW5kb3dgLCBpdCBhcHBlYXJzIHRvIGJlIHBvc3NpYmxlIGZvciB0aGUgaW5z
cGVjdGVkIHBhZ2UgdG8gaGF2ZQorICAgICAgICBhbHJlYWR5IGJlZW4gZGlzY2FyZGVkICh2aWEg
YFdlYkluc3BlY3RvclVJUHJveHk6OnJlc2V0YCkuIFRoaXMgaXMgcmVpbmZvcmNlZCBieSB0aGUg
ZmFjdCB0aGF0CisgICAgICAgIGBXZWJJbnNwZWN0b3JVSVByb3h5OjpjbG9zZUZyb250ZW5kUGFn
ZUFuZFdpbmRvd2AgYWxyZWFkeSBndWFyZHMgdXNlIG9mIGBpbnNwZWN0ZWRQYWdlKClgLiBXZSBz
aG91bGQgZG8gdGhlIHNhbWUKKyAgICAgICAgaGVyZSwgYW5kIHNob3VsZCBhbHNvIGd1YXJkIG90
aGVyIHBsYWNlcyB3ZSB1c2UgYGluc3BlY3RlZFBhZ2UoKWAgdG8gaGVscCBmdXR1cmUgZm9sa3Mg
KGluY2x1ZGluZyBtZSkKKyAgICAgICAgdW5kZXJzdGFuZCB0aGF0IHRoZSBleGlzdGFuY2Ugb2Yg
YW4gYGluc3BlY3RlZFBhZ2UoKWAgaXMgbm90IGd1YXJhbnRlZWQuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JVSVByb3h5TWFjLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUNyZWF0ZUZyb250ZW5kV2luZG93
KToKKyAgICAgICAgLSBJZiB3ZSBkb24ndCBoYXZlIGFuIGluc3BlY3RlZCBwYWdlIHdoZW4gY3Jl
YXRpbmcgYSB3aW5kb3cgZm9yIHRoZSBmcm9udGVuZCwgdXNlIHRoZSBkZWZhdWx0IHdpbmRvdyBz
aXplIGJ5CisgICAgICAgIHBhc3NpbmcgYW4gZW1wdHkgTlNSZWN0IHRvIGBXZWJJbnNwZWN0b3JV
SVByb3h5OjpjcmVhdGVGcm9udGVuZFdpbmRvd2AuCisKKyAgICAgICAgKFdlYktpdDo6V2ViSW5z
cGVjdG9yVUlQcm94eTo6cGxhdGZvcm1SZXNldFN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
SW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1CcmluZ1RvRnJvbnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUJyaW5nSW5zcGVjdGVkUGFnZVRvRnJvbnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5Ojp3aW5kb3dGcmFtZURpZENo
YW5nZSk6CisgICAgICAgIC0gSWYgdGhlIGluc3BlY3RlZCBwYWdlIG5vIGxvbmdlciBleGlzdHMs
IGRvbid0IHRyeSB0byB1c2UgaXQuCisKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQ
cm94eTo6cGxhdGZvcm1DYW5BdHRhY2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JV
SVByb3h5OjpwbGF0Zm9ybUF0dGFjaCk6CisgICAgICAgIC0gVXBkYXRlIGBwbGF0Zm9ybUNhbkF0
dGFjaGAgdG8gcmV0dXJuIGZhbHNlIGlmIHdlIG5vIGxvbmdlciBoYXZlIGFuIGluc3BlY3RlZCBw
YWdlLCBhbmQgYXNzZXJ0IHRoYXQgd2UgaGF2ZSBhbgorICAgICAgICBpbnNwZWN0ZWQgcGFnZSBp
biBgcGxhdGZvcm1BdHRhY2hgIHNpbmNlIGFueSBjYWxsIHRvIGl0IHNob3VsZCBiZSBndWFyZGVk
IG9uIGBwbGF0Zm9ybUNhbkF0dGFjaGAKKworICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JV
SVByb3h5OjpwbGF0Zm9ybURldGFjaCk6CisgICAgICAgIC0gV2Ugc2hvdWxkIGF0dGVtcHQgdG8g
Y2xlYW4gdXAgYXMgbXVjaCBvZiB0aGUgYXR0YWNobWVudCBhcyB3ZSBjYW4sIGJ1dCB3b3JrIGFy
b3VuZCB0aGUgcG9zc2liaWxpdHkgdGhhdCB0aGUKKyAgICAgICAgaW5zcGVjdGVkIHBhZ2UgaXMg
bm8gbG9uZ2VyIGF2YWlsYWJsZS4KKyAgICAgICAgLSBDbGVhbiB1cCBuZXdsaW5lcyB3aGlsZSB3
ZSBhcmUgaGVyZS4KKworICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0
Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
Ykluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93V2lkdGgpOiBEZWxldGVk
LgorICAgICAgICAtIFRoZXNlIG1ldGhvZHMgd2VyZSB1bnVzZWQgb24gTWFjLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6b3Blbik6CisgICAgICAgIC0gQWRkIGEgY2hl
Y2sgdGhhdCB3ZSBjYW4gYWN0dWFsbHkgYXR0YWNoIGluIG91ciBjdXJyZW50IHN0YXRlIHdoZW4g
b3BlbmluZywgb3RoZXJ3aXNlIGZhbGwgYmFjayB0byBjcmVhdGluZyBhCisgICAgICAgIHdpbmRv
dyBpbnN0ZWFkLgorCisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRm
b3JtSW5zcGVjdGVkV2luZG93SGVpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
SW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dXaWR0aCk6IERlbGV0ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSVByb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvV2ViSW5zcGVjdG9yVUlQcm94eUd0ay5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtQXR0YWNo
KToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0
ZWRXaW5kb3dIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JV
SVByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKTogRGVsZXRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvSW5zcGVjdG9yL3dpbi9XZWJJbnNwZWN0b3JVSVByb3h5V2luLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1BdHRhY2gpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRv
d0hlaWdodCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJUHJveHk6
OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93V2lkdGgpOiBEZWxldGVkLgorICAgICAgICAtIElubGlu
ZSBXaW5kb3dzL0dUSyB1c2FnZSBvZiBgcGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3cqYCwgc2luY2Ug
dGhleSBhcmUgb25seSB1c2VkIG9uY2UsIG5vdCB1c2VkIGJ5IHRoZQorICAgICAgICBzdXBlcmNs
YXNzIGFueSBtb3JlLCBhbmQgYWxzbyBub3QgdXNlZCBvbiBhbGwgcGxhdGZvcm1zLgorCiAyMDIy
LTA1LTE2ICBKIFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OICgyNTA1MDFAbWFpbik6IFsgTWFjIF0gMiBUZXN0V2ViS2l0QVBJLldlYkF1dGhlbnRpY2F0
aW9uUGFuZWwuR2V0QXNzZXJ0aW9uTEEgdGVzdHMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJUHJveHkuY3BwCmlu
ZGV4IDhjN2M5MDY0OWY4YzA0Y2ExZjE1YWEyZjY5MGViZDc2MWNjNjYzYzcuLmUzMjI2ZDY5N2M4
ZDBiYzAzMGQ4YTViNTBhMWJlNzQ1NjFlZGNjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlQcm94eS5jcHAKQEAgLTUw
NSwxMCArNTA1LDEyIEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6b3BlbigpCiAgICAgbV9p
c1Zpc2libGUgPSB0cnVlOwogICAgIG1faW5zcGVjdG9yUGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
SW5zcGVjdG9yVUk6OlNldElzVmlzaWJsZShtX2lzVmlzaWJsZSkpOwogCi0gICAgaWYgKG1faXNB
dHRhY2hlZCkKKyAgICBpZiAobV9pc0F0dGFjaGVkICYmIHBsYXRmb3JtQ2FuQXR0YWNoKG1fY2Fu
QXR0YWNoKSkKICAgICAgICAgcGxhdGZvcm1BdHRhY2goKTsKLSAgICBlbHNlCisgICAgZWxzZSB7
CisgICAgICAgIG1faXNBdHRhY2hlZCA9IGZhbHNlOwogICAgICAgICBwbGF0Zm9ybUNyZWF0ZUZy
b250ZW5kV2luZG93KCk7CisgICAgfQogCiAgICAgcGxhdGZvcm1CcmluZ1RvRnJvbnQoKTsKIH0K
QEAgLTg0NiwxOCArODQ4LDYgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUxv
YWQoY29uc3QgU3RyaW5nJiBwYXRoLCBDb21wbGV0aW9uSGFuZGxlcjx2b2kKICAgICBjb21wbGV0
aW9uSGFuZGxlcihudWxsU3RyaW5nKCkpOwogfQogCi11bnNpZ25lZCBXZWJJbnNwZWN0b3JVSVBy
b3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCgpCi17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotdW5zaWduZWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6
cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dXaWR0aCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gMDsKLX0KLQogdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUF0
dGFjaCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlQcm94eS5oCmluZGV4IDNmOTBk
YzE2NTg4ODE4MTFmYWI1MjVhY2NlNzM2M2I2YTY4YjBjYTEuLmMxNTlmYTk3ZmE4ZjE4NDlkNWQz
YmQyMzUwMGFmOTUzOTUwMmQwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJUHJveHkuaApAQCAtMjI3LDggKzIyNyw2IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybU9wZW5VUkxFeHRlcm5hbGx5KGNvbnN0IFN0cmlu
ZyYpOwogICAgIHZvaWQgcGxhdGZvcm1JbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYp
OwogICAgIHZvaWQgcGxhdGZvcm1TaG93Q2VydGlmaWNhdGUoY29uc3QgV2ViQ29yZTo6Q2VydGlm
aWNhdGVJbmZvJik7Ci0gICAgdW5zaWduZWQgcGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQo
KTsKLSAgICB1bnNpZ25lZCBwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKCk7CiAgICAgdm9p
ZCBwbGF0Zm9ybUF0dGFjaCgpOwogICAgIHZvaWQgcGxhdGZvcm1EZXRhY2goKTsKICAgICB2b2lk
IHBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9XZWJJbnNwZWN0b3JVSVByb3h5
R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvV2ViSW5zcGVj
dG9yVUlQcm94eUd0ay5jcHAKaW5kZXggYjc3MWNhZGU1NGMxMDU1ZDJhNWRhOTkxNjJhYmZjODZk
MWE5MTQ4Yy4uNTYzNmI4NmY2NDY0ZTA1ZDkzMTAwMGZmODk3NmRkNzk2NzBjMzIzZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9XZWJJbnNwZWN0b3JV
SVByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3Rr
L1dlYkluc3BlY3RvclVJUHJveHlHdGsuY3BwCkBAIC00MDYsMTYgKzQwNiw2IEBAIERlYnVnZ2Fi
bGVJbmZvRGF0YSBXZWJJbnNwZWN0b3JVSVByb3h5OjppbmZvRm9yTG9jYWxEZWJ1Z2dhYmxlKCkK
ICAgICByZXR1cm4gZGF0YTsKIH0KIAotdW5zaWduZWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxh
dGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQoKQotewotICAgIHJldHVybiBndGtfd2lkZ2V0X2dl
dF9hbGxvY2F0ZWRfaGVpZ2h0KGluc3BlY3RlZFBhZ2UoKS0+dmlld1dpZGdldCgpKTsKLX0KLQot
dW5zaWduZWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dXaWR0
aCgpCi17Ci0gICAgcmV0dXJuIGd0a193aWRnZXRfZ2V0X2FsbG9jYXRlZF93aWR0aChpbnNwZWN0
ZWRQYWdlKCktPnZpZXdXaWRnZXQoKSk7Ci19Ci0KIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6
cGxhdGZvcm1BdHRhY2goKQogewogICAgIEdSZWZQdHI8R3RrV2lkZ2V0PiBpbnNwZWN0b3JWaWV3
ID0gbV9pbnNwZWN0b3JWaWV3OwpAQCAtNDM1LDEwICs0MjUsMTIgQEAgdm9pZCBXZWJJbnNwZWN0
b3JVSVByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1p
bmltdW1BdHRhY2hlZEhlaWdodCA9IDI1MDsKIAogICAgIGlmIChtX2F0dGFjaG1lbnRTaWRlID09
IEF0dGFjaG1lbnRTaWRlOjpCb3R0b20pIHsKLSAgICAgICAgdW5zaWduZWQgbWF4aW11bUF0dGFj
aGVkSGVpZ2h0ID0gcGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQoKSAqIDMgLyA0OworICAg
ICAgICB1bnNpZ25lZCBpbnNwZWN0ZWRXaW5kb3dIZWlnaHQgPSBndGtfd2lkZ2V0X2dldF9hbGxv
Y2F0ZWRfaGVpZ2h0KGluc3BlY3RlZFBhZ2UoKS0+dmlld1dpZGdldCgpKTsKKyAgICAgICAgdW5z
aWduZWQgbWF4aW11bUF0dGFjaGVkSGVpZ2h0ID0gaW5zcGVjdGVkV2luZG93SGVpZ2h0ICogMyAv
IDQ7CiAgICAgICAgIHBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQoc3RkOjptYXgobWlu
aW11bUF0dGFjaGVkSGVpZ2h0LCBzdGQ6Om1pbihkZWZhdWx0QXR0YWNoZWRTaXplLCBtYXhpbXVt
QXR0YWNoZWRIZWlnaHQpKSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgdW5zaWduZWQgbWF4aW11
bUF0dGFjaGVkV2lkdGggPSBwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKCkgKiAzIC8gNDsK
KyAgICAgICAgdW5zaWduZWQgaW5zcGVjdGVkV2luZG93V2lkdGggPSBndGtfd2lkZ2V0X2dldF9h
bGxvY2F0ZWRfd2lkdGgoaW5zcGVjdGVkUGFnZSgpLT52aWV3V2lkZ2V0KCkpOworICAgICAgICB1
bnNpZ25lZCBtYXhpbXVtQXR0YWNoZWRXaWR0aCA9IGluc3BlY3RlZFdpbmRvd1dpZHRoICogMyAv
IDQ7CiAgICAgICAgIHBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dXaWR0aChzdGQ6Om1heChtaW5p
bXVtQXR0YWNoZWRXaWR0aCwgc3RkOjptaW4oZGVmYXVsdEF0dGFjaGVkU2l6ZSwgbWF4aW11bUF0
dGFjaGVkV2lkdGgpKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclVJUHJveHlNYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclVJUHJveHlNYWMubW0KaW5k
ZXggMzFlNmZiMThiMzZlMDk3MmJlMjAwZmU5MWNmNDRhNjk1YWQ4YjE4NC4uMzhhODgzZTJiYzM5
ZTI4YzJhNGI3MWEyNzQ0NjYxOTIzNWQ5MzVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JVSVByb3h5TWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yVUlQcm94eU1h
Yy5tbQpAQCAtMzEyLDggKzMxMiwxMSBAQCB2b2lkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRm
b3JtQ3JlYXRlRnJvbnRlbmRXaW5kb3coKQogewogICAgIEFTU0VSVCghbV9pbnNwZWN0b3JXaW5k
b3cpOwogCi0gICAgTlNTdHJpbmcgKnNhdmVkV2luZG93RnJhbWVTdHJpbmcgPSBpbnNwZWN0ZWRQ
YWdlKCktPnBhZ2VHcm91cCgpLnByZWZlcmVuY2VzKCkuaW5zcGVjdG9yV2luZG93RnJhbWUoKTsK
LSAgICBOU1JlY3Qgc2F2ZWRXaW5kb3dGcmFtZSA9IE5TUmVjdEZyb21TdHJpbmcoc2F2ZWRXaW5k
b3dGcmFtZVN0cmluZyk7CisgICAgTlNSZWN0IHNhdmVkV2luZG93RnJhbWUgPSBOU1plcm9SZWN0
OworICAgIGlmIChpbnNwZWN0ZWRQYWdlKCkpIHsKKyAgICAgICAgTlNTdHJpbmcgKnNhdmVkV2lu
ZG93RnJhbWVTdHJpbmcgPSBpbnNwZWN0ZWRQYWdlKCktPnBhZ2VHcm91cCgpLnByZWZlcmVuY2Vz
KCkuaW5zcGVjdG9yV2luZG93RnJhbWUoKTsKKyAgICAgICAgc2F2ZWRXaW5kb3dGcmFtZSA9IE5T
UmVjdEZyb21TdHJpbmcoc2F2ZWRXaW5kb3dGcmFtZVN0cmluZyk7CisgICAgfQogCiAgICAgbV9p
bnNwZWN0b3JXaW5kb3cgPSBXZWJJbnNwZWN0b3JVSVByb3h5OjpjcmVhdGVGcm9udGVuZFdpbmRv
dyhzYXZlZFdpbmRvd0ZyYW1lLCBJbnNwZWN0aW9uVGFyZ2V0VHlwZTo6TG9jYWwpOwogICAgIFtt
X2luc3BlY3RvcldpbmRvdyBzZXREZWxlZ2F0ZTptX29iakNBZGFwdGVyLmdldCgpXTsKQEAgLTM5
MCw3ICszOTMsOCBAQCB2b2lkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSGlkZSgpCiAK
IHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1SZXNldFN0YXRlKCkKIHsKLSAgICBp
bnNwZWN0ZWRQYWdlKCktPnBhZ2VHcm91cCgpLnByZWZlcmVuY2VzKCkuZGVsZXRlSW5zcGVjdG9y
V2luZG93RnJhbWUoKTsKKyAgICBpZiAoaW5zcGVjdGVkUGFnZSgpKQorICAgICAgICBpbnNwZWN0
ZWRQYWdlKCktPnBhZ2VHcm91cCgpLnByZWZlcmVuY2VzKCkuZGVsZXRlSW5zcGVjdG9yV2luZG93
RnJhbWUoKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUJyaW5nVG9G
cm9udCgpCkBAIC0zOTgsNyArNDAyLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0
Zm9ybUJyaW5nVG9Gcm9udCgpCiAgICAgLy8gSWYgdGhlIFdlYiBJbnNwZWN0b3IgaXMgbm8gbG9u
Z2VyIGluIHRoZSBzYW1lIHdpbmRvdyBhcyB0aGUgaW5zcGVjdGVkIHZpZXcsCiAgICAgLy8gdGhl
biB3ZSBuZWVkIHRvIHJlb3BlbiB0aGUgSW5zcGVjdG9yIHRvIGdldCBpdCBhdHRhY2hlZCB0byB0
aGUgcmlnaHQgd2luZG93LgogICAgIC8vIFRoaXMgY2FuIGhhcHBlbiB3aGVuIGRyYWdnaW5nIHRh
YnMgdG8gYW5vdGhlciB3aW5kb3cgaW4gU2FmYXJpLgotICAgIGlmIChtX2lzQXR0YWNoZWQgJiYg
W21faW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgd2ViVmlld10ud2luZG93ICE9IGluc3BlY3RlZFBh
Z2UoKS0+cGxhdGZvcm1XaW5kb3coKSkgeworICAgIGlmIChtX2lzQXR0YWNoZWQgJiYgaW5zcGVj
dGVkUGFnZSgpICYmIFttX2luc3BlY3RvclZpZXdDb250cm9sbGVyIHdlYlZpZXddLndpbmRvdyAh
PSBpbnNwZWN0ZWRQYWdlKCktPnBsYXRmb3JtV2luZG93KCkpIHsKICAgICAgICAgaWYgKG1faXNP
cGVuaW5nKSB7CiAgICAgICAgICAgICAvLyA8cmRhcjovLzg4MzU4Njk2PiBJZiB3ZSBhcmUgY3Vy
cmVudGx5IG9wZW5pbmcgYW4gYXR0YWNoZWQgaW5zcGVjdG9yLCB0aGUgd2luZG93cyBzaG91bGQg
aGF2ZSBhbHJlYWR5CiAgICAgICAgICAgICAvLyBtYXRjaGVkLCBhbmQgY2FsbGluZyBiYWNrIHRv
IGBvcGVuYCBpc24ndCBnb2luZyB0byBjb3JyZWN0IHRoaXMuIEFzIGEgZmFpbC1zYWZlIHRvIHBy
ZXZlbnQgcmVlbnRyYW5jeSwKQEAgLTQyMCw3ICs0MjQsOCBAQCB2b2lkIFdlYkluc3BlY3RvclVJ
UHJveHk6OnBsYXRmb3JtQnJpbmdUb0Zyb250KCkKIAogdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5
OjpwbGF0Zm9ybUJyaW5nSW5zcGVjdGVkUGFnZVRvRnJvbnQoKQogewotICAgIFtpbnNwZWN0ZWRQ
YWdlKCktPnBsYXRmb3JtV2luZG93KCkgbWFrZUtleUFuZE9yZGVyRnJvbnQ6bmlsXTsKKyAgICBp
ZiAoaW5zcGVjdGVkUGFnZSgpKQorICAgICAgICBbaW5zcGVjdGVkUGFnZSgpLT5wbGF0Zm9ybVdp
bmRvdygpIG1ha2VLZXlBbmRPcmRlckZyb250Om5pbF07CiB9CiAKIGJvb2wgV2ViSW5zcGVjdG9y
VUlQcm94eTo6cGxhdGZvcm1Jc0Zyb250KCkKQEAgLTQzMSw2ICs0MzYsOSBAQCBib29sIFdlYklu
c3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSXNGcm9udCgpCiAKIGJvb2wgV2ViSW5zcGVjdG9yVUlQ
cm94eTo6cGxhdGZvcm1DYW5BdHRhY2goYm9vbCB3ZWJQcm9jZXNzQ2FuQXR0YWNoKQogeworICAg
IGlmICghaW5zcGVjdGVkUGFnZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBOU1Zp
ZXcgKmluc3BlY3RlZFZpZXcgPSBpbnNwZWN0ZWRQYWdlKCktPmluc3BlY3RvckF0dGFjaG1lbnRW
aWV3KCk7CiAgICAgaWYgKFtXS0luc3BlY3RvclZpZXdDb250cm9sbGVyIHZpZXdJc0luc3BlY3Rv
cldlYlZpZXc6aW5zcGVjdGVkVmlld10pCiAgICAgICAgIHJldHVybiB3ZWJQcm9jZXNzQ2FuQXR0
YWNoOwpAQCAtNTk2LDcgKzYwNCw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6d2luZG93
RnJhbWVEaWRDaGFuZ2UoKQogICAgIEFTU0VSVChtX2lzVmlzaWJsZSk7CiAgICAgQVNTRVJUKG1f
aW5zcGVjdG9yV2luZG93KTsKIAotICAgIGlmIChtX2lzQXR0YWNoZWQgfHwgIW1faXNWaXNpYmxl
IHx8ICFtX2luc3BlY3RvcldpbmRvdykKKyAgICBpZiAobV9pc0F0dGFjaGVkIHx8ICFtX2lzVmlz
aWJsZSB8fCAhbV9pbnNwZWN0b3JXaW5kb3cgfHwgIWluc3BlY3RlZFBhZ2UoKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgTlNTdHJpbmcgKmZyYW1lU3RyaW5nID0gTlNTdHJpbmdGcm9tUmVjdChb
bV9pbnNwZWN0b3JXaW5kb3cgZnJhbWVdKTsKQEAgLTcwMiwyMiArNzEwLDkgQEAgdm9pZCBXZWJJ
bnNwZWN0b3JVSVByb3h5OjppbnNwZWN0ZWRWaWV3RnJhbWVEaWRDaGFuZ2UoQ0dGbG9hdCBjdXJy
ZW50RGltZW5zaW9uKQogICAgIFtpbnNwZWN0ZWRWaWV3IHNldEZyYW1lOmluc3BlY3RlZFZpZXdG
cmFtZV07CiB9CiAKLXVuc2lnbmVkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRmb3JtSW5zcGVj
dGVkV2luZG93SGVpZ2h0KCkKLXsKLSAgICBOU1ZpZXcgKmluc3BlY3RlZFZpZXcgPSBpbnNwZWN0
ZWRQYWdlKCktPmluc3BlY3RvckF0dGFjaG1lbnRWaWV3KCk7Ci0gICAgTlNSZWN0IGluc3BlY3Rl
ZFZpZXdSZWN0ID0gW2luc3BlY3RlZFZpZXcgZnJhbWVdOwotICAgIHJldHVybiBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oaW5zcGVjdGVkVmlld1JlY3Quc2l6ZS5oZWlnaHQpOwotfQotCi11bnNpZ25l
ZCBXZWJJbnNwZWN0b3JVSVByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKCkKLXsK
LSAgICBOU1ZpZXcgKmluc3BlY3RlZFZpZXcgPSBpbnNwZWN0ZWRQYWdlKCktPmluc3BlY3RvckF0
dGFjaG1lbnRWaWV3KCk7Ci0gICAgTlNSZWN0IGluc3BlY3RlZFZpZXdSZWN0ID0gW2luc3BlY3Rl
ZFZpZXcgZnJhbWVdOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaW5zcGVjdGVk
Vmlld1JlY3Quc2l6ZS53aWR0aCk7Ci19Ci0KIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxh
dGZvcm1BdHRhY2goKQogeworICAgIEFTU0VSVChpbnNwZWN0ZWRQYWdlKCkpOwogICAgIE5TVmll
dyAqaW5zcGVjdGVkVmlldyA9IGluc3BlY3RlZFBhZ2UoKS0+aW5zcGVjdG9yQXR0YWNobWVudFZp
ZXcoKTsKICAgICBXS1dlYlZpZXcgKmluc3BlY3RvclZpZXcgPSBbbV9pbnNwZWN0b3JWaWV3Q29u
dHJvbGxlciB3ZWJWaWV3XTsKIApAQCAtNzUzLDE3ICs3NDgsMTYgQEAgdm9pZCBXZWJJbnNwZWN0
b3JVSVByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCiAKIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6
cGxhdGZvcm1EZXRhY2goKQogewotICAgIE5TVmlldyAqaW5zcGVjdGVkVmlldyA9IGluc3BlY3Rl
ZFBhZ2UoKS0+aW5zcGVjdG9yQXR0YWNobWVudFZpZXcoKTsKKyAgICBOU1ZpZXcgKmluc3BlY3Rl
ZFZpZXcgPSBpbnNwZWN0ZWRQYWdlKCkgPyBpbnNwZWN0ZWRQYWdlKCktPmluc3BlY3RvckF0dGFj
aG1lbnRWaWV3KCkgOiBuaWw7CiAgICAgV0tXZWJWaWV3ICppbnNwZWN0b3JWaWV3ID0gW21faW5z
cGVjdG9yVmlld0NvbnRyb2xsZXIgd2ViVmlld107CiAKICAgICBbaW5zcGVjdG9yVmlldyByZW1v
dmVGcm9tU3VwZXJ2aWV3XTsKLQogICAgIFtpbnNwZWN0b3JWaWV3IHNldEF1dG9yZXNpemluZ01h
c2s6TlNWaWV3V2lkdGhTaXphYmxlIHwgTlNWaWV3SGVpZ2h0U2l6YWJsZV07CiAKICAgICAvLyBN
YWtlIHN1cmUgdGhhdCB3ZSBzaXplIHRoZSBpbnNwZWN0ZWQgdmlldydzIGZyYW1lIGFmdGVyIGRl
dGFjaGluZyBzbyB0aGF0IGl0IHRha2VzIHVwIHRoZSBzcGFjZSB0aGF0IHRoZQogICAgIC8vIGF0
dGFjaGVkIGluc3BlY3RvciB1c2VkIHRvLiBQcmVzZXJ2ZSB0aGUgdG9wIHBvc2l0aW9uIG9mIHRo
ZSBpbnNwZWN0ZWQgdmlldyBzbyBiYW5uZXJzIGluIFNhZmFyaSBzdGlsbCB3b3JrLgotCi0gICAg
aW5zcGVjdGVkVmlldy5mcmFtZSA9IE5TTWFrZVJlY3QoMCwgMCwgTlNXaWR0aChpbnNwZWN0ZWRW
aWV3LnN1cGVydmlldy5ib3VuZHMpLCBOU01heFkoaW5zcGVjdGVkVmlldy5mcmFtZSkpOworICAg
IGlmIChpbnNwZWN0ZWRWaWV3KQorICAgICAgICBpbnNwZWN0ZWRWaWV3LmZyYW1lID0gTlNNYWtl
UmVjdCgwLCAwLCBOU1dpZHRoKGluc3BlY3RlZFZpZXcuc3VwZXJ2aWV3LmJvdW5kcyksIE5TTWF4
WShpbnNwZWN0ZWRWaWV3LmZyYW1lKSk7CiAKICAgICAvLyBSZXR1cm4gZWFybHkgaWYgd2UgYXJl
IG5vdCB2aXNpYmxlLiBUaGlzIG1lYW5zIHRoZSBpbnNwZWN0b3Igd2FzIGNsb3NlZCB3aGlsZSBh
dHRhY2hlZAogICAgIC8vIGFuZCB3ZSBzaG91bGQgbm90IGNyZWF0ZSBhbmQgc2hvdyB0aGUgaW5z
cGVjdG9yIHdpbmRvdy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3Bl
Y3Rvci93aW4vV2ViSW5zcGVjdG9yVUlQcm94eVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3Ivd2luL1dlYkluc3BlY3RvclVJUHJveHlXaW4uY3BwCmluZGV4IDFhMTkx
NTU1ZjllODEzOTBmMWY2MGE2OTEyMGExNGMwZWNmOGY5YTAuLjQ5MDBhYjI5YjIzZDg3N2YyYTRm
MDBkMGNkYTFlYzBhZWM4OGY5N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci93aW4vV2ViSW5zcGVjdG9yVUlQcm94eVdpbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL3dpbi9XZWJJbnNwZWN0b3JVSVByb3h5V2luLmNwcApA
QCAtMjg1LDIwICsyODUsNiBAQCBEZWJ1Z2dhYmxlSW5mb0RhdGEgV2ViSW5zcGVjdG9yVUlQcm94
eTo6aW5mb0ZvckxvY2FsRGVidWdnYWJsZSgpCiAgICAgcmV0dXJuIERlYnVnZ2FibGVJbmZvRGF0
YTo6ZW1wdHkoKTsKIH0KIAotdW5zaWduZWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZvcm1J
bnNwZWN0ZWRXaW5kb3dIZWlnaHQoKQotewotICAgIFJFQ1QgcmVjdDsKLSAgICA6OkdldENsaWVu
dFJlY3QobV9pbnNwZWN0ZWRWaWV3V2luZG93LCAmcmVjdCk7Ci0gICAgcmV0dXJuIHJlY3QuYm90
dG9tIC0gcmVjdC50b3A7Ci19Ci0KLXVuc2lnbmVkIFdlYkluc3BlY3RvclVJUHJveHk6OnBsYXRm
b3JtSW5zcGVjdGVkV2luZG93V2lkdGgoKQotewotICAgIFJFQ1QgcmVjdDsKLSAgICA6OkdldENs
aWVudFJlY3QobV9pbnNwZWN0ZWRWaWV3V2luZG93LCAmcmVjdCk7Ci0gICAgcmV0dXJuIHJlY3Qu
cmlnaHQgLSByZWN0LmxlZnQ7Ci19Ci0KIHZvaWQgV2ViSW5zcGVjdG9yVUlQcm94eTo6cGxhdGZv
cm1BdHRhY2goKQogewogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBkZWZhdWx0QXR0YWNoZWRT
aXplID0gMzAwOwpAQCAtMzEyLDExICsyOTgsMTYgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSVByb3h5
OjpwbGF0Zm9ybUF0dGFjaCgpCiAKICAgICBXZWJDb3JlOjpXaW5kb3dNZXNzYWdlQnJvYWRjYXN0
ZXI6OmFkZExpc3RlbmVyKG1faW5zcGVjdGVkVmlld1dpbmRvdywgdGhpcyk7CiAKKyAgICBSRUNU
IGluc3BlY3RlZFdpbmRvd1JlY3Q7CisgICAgOjpHZXRDbGllbnRSZWN0KG1faW5zcGVjdGVkVmll
d1dpbmRvdywgJmluc3BlY3RlZFdpbmRvd1JlY3QpOworCiAgICAgaWYgKG1fYXR0YWNobWVudFNp
ZGUgPT0gQXR0YWNobWVudFNpZGU6OkJvdHRvbSkgewotICAgICAgICB1bnNpZ25lZCBtYXhpbXVt
QXR0YWNoZWRIZWlnaHQgPSBwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCgpICogMyAvIDQ7
CisgICAgICAgIHVuc2lnbmVkIGluc3BlY3RlZFdpbmRvd0hlaWdodCA9IGluc3BlY3RlZFdpbmRv
d1JlY3QuYm90dG9tIC0gaW5zcGVjdGVkV2luZG93UmVjdC50b3A7CisgICAgICAgIHVuc2lnbmVk
IG1heGltdW1BdHRhY2hlZEhlaWdodCA9IGluc3BlY3RlZFdpbmRvd0hlaWdodCAqIDMgLyA0Owog
ICAgICAgICBwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHN0ZDo6bWF4KG1pbmltdW1B
dHRhY2hlZEhlaWdodCwgc3RkOjptaW4oZGVmYXVsdEF0dGFjaGVkU2l6ZSwgbWF4aW11bUF0dGFj
aGVkSGVpZ2h0KSkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHVuc2lnbmVkIG1heGltdW1BdHRh
Y2hlZFdpZHRoID0gcGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dXaWR0aCgpICogMyAvIDQ7CisgICAg
ICAgIHVuc2lnbmVkIGluc3BlY3RlZFdpbmRvd1dpZHRoID0gaW5zcGVjdGVkV2luZG93UmVjdC5y
aWdodCAtIGluc3BlY3RlZFdpbmRvd1JlY3QubGVmdDsKKyAgICAgICAgdW5zaWduZWQgbWF4aW11
bUF0dGFjaGVkV2lkdGggPSBpbnNwZWN0ZWRXaW5kb3dXaWR0aCAqIDMgLyA0OwogICAgICAgICBw
bGF0Zm9ybVNldEF0dGFjaGVkV2luZG93V2lkdGgoc3RkOjptYXgobWluaW11bUF0dGFjaGVkV2lk
dGgsIHN0ZDo6bWluKGRlZmF1bHRBdHRhY2hlZFNpemUsIG1heGltdW1BdHRhY2hlZFdpZHRoKSkp
OwogICAgIH0KICAgICA6OlNob3dXaW5kb3cobV9pbnNwZWN0b3JWaWV3V2luZG93LCBTV19TSE9X
KTsK
</data>
<flag name="review"
          id="488561"
          type_id="1"
          status="?"
          setter="pangle"
    />
          </attachment>
      

    </bug>

</bugzilla>