<?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>239612</bug_id>
          
          <creation_ts>2022-04-21 10:25:51 -0700</creation_ts>
          <short_desc>[iOS] Add find interaction API to WKWebView</short_desc>
          <delta_ts>2022-04-22 10:48:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aditya Keerthi">akeerthi</reporter>
          <assigned_to name="Aditya Keerthi">akeerthi</assigned_to>
          <cc>achristensen</cc>
    
    <cc>hi</cc>
    
    <cc>katherine_cheney</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1863334</commentid>
    <comment_count>0</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-04-21 10:25:51 -0700</bug_when>
    <thetext>Promote the existing SPI to API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863335</commentid>
    <comment_count>1</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-04-21 10:26:09 -0700</bug_when>
    <thetext>rdar://88442918</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863351</commentid>
    <comment_count>2</comment_count>
      <attachid>458078</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-04-21 10:59:01 -0700</bug_when>
    <thetext>Created attachment 458078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863352</commentid>
    <comment_count>3</comment_count>
      <attachid>458078</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-04-21 11:01:05 -0700</bug_when>
    <thetext>Comment on attachment 458078
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.h:651
&gt; +#if __has_include(&lt;UIKit/UIFindInteraction.h&gt;)

`HAVE` and other WTF macros are disallowed in framework headers.

Is it acceptable to leave a `__has_include` here, or do I need to write a post-processing script that removes this line on builds where it is safe to do so?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863356</commentid>
    <comment_count>4</comment_count>
      <attachid>458078</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-04-21 11:34:15 -0700</bug_when>
    <thetext>Comment on attachment 458078
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.h:651
&gt;&gt; +#if __has_include(&lt;UIKit/UIFindInteraction.h&gt;)
&gt; 
&gt; `HAVE` and other WTF macros are disallowed in framework headers.
&gt; 
&gt; Is it acceptable to leave a `__has_include` here, or do I need to write a post-processing script that removes this line on builds where it is safe to do so?

You should just be able to do @class UIFindInteraction;  Maybe inside a #if TARGET_OS_IPHONE

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:1441
&gt; +    return _findInteractionEnabled;

Would it be possible to have this value on the WebPageProxy instead of an ivar on the WKWebView?

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:1446
&gt; +    if (_findInteractionEnabled != enabled) {

Ditto.  _page-&gt;setFindInteractionEnabled(enabled);
Then move this logic to WebPageProxyIOS.mm if possible.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:-496
&gt; -@interface WKWebView (WKPrivateIOS) &lt;_UITextSearching&gt;

Do we still need _UITextSearching?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863365</commentid>
    <comment_count>5</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-04-21 12:08:54 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; Comment on attachment 458078 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=458078&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.h:651
&gt; &gt;&gt; +#if __has_include(&lt;UIKit/UIFindInteraction.h&gt;)
&gt; &gt; 
&gt; &gt; `HAVE` and other WTF macros are disallowed in framework headers.
&gt; &gt; 
&gt; &gt; Is it acceptable to leave a `__has_include` here, or do I need to write a post-processing script that removes this line on builds where it is safe to do so?
&gt; 
&gt; You should just be able to do @class UIFindInteraction;  Maybe inside a #if
&gt; TARGET_OS_IPHONE

Will do!
 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:1441
&gt; &gt; +    return _findInteractionEnabled;
&gt; 
&gt; Would it be possible to have this value on the WebPageProxy instead of an
&gt; ivar on the WKWebView?

We could move the value, but I&apos;m not sure it makes sense to do so without also moving the setter – see below. 
 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:1446
&gt; &gt; +    if (_findInteractionEnabled != enabled) {
&gt; 
&gt; Ditto.  _page-&gt;setFindInteractionEnabled(enabled);
&gt; Then move this logic to WebPageProxyIOS.mm if possible.

The logic in this method creates a UIKit object, and calls methods on WKWebView. I&apos;m not sure it makes sense to introduce `setFindInteractionEnabled` on `WebPageProxy`, given it will just result in us calling into PageClient and then back into WKWebView. Some indirection could be reduced if we moved the `_findInteraction` ivar into PageClient, but that class doesn&apos;t really know about UIKit, and it&apos;s still more indirection than the current approach.

What is the reasoning behind the desire to move the getter/setter into `WebPageProxy`?
 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:-496
&gt; &gt; -@interface WKWebView (WKPrivateIOS) &lt;_UITextSearching&gt;
&gt; 
&gt; Do we still need _UITextSearching?

Yes, internal clients still rely on our conformance to the `_UITextSearching` protocol, which contains a superset of the methods in `UITextSearching`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863368</commentid>
    <comment_count>6</comment_count>
      <attachid>458082</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-04-21 12:35:41 -0700</bug_when>
    <thetext>Created attachment 458082
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863414</commentid>
    <comment_count>7</comment_count>
      <attachid>458082</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-04-21 14:31:10 -0700</bug_when>
    <thetext>Comment on attachment 458082
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:1466
&gt; +#endif // HAVE(UIFINDINTERACTION)

You might want to have #else - (UIFindInteraction *)findInteraction { return nil; } - (BOOL)findInteractionEnabled { return NO; } - (void)setFindInteractionEnabled:(BOOL)enabled { }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863497</commentid>
    <comment_count>8</comment_count>
      <attachid>458105</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-04-21 17:51:25 -0700</bug_when>
    <thetext>Created attachment 458105
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863500</commentid>
    <comment_count>9</comment_count>
      <attachid>458106</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-04-21 17:53:30 -0700</bug_when>
    <thetext>Created attachment 458106
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863501</commentid>
    <comment_count>10</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-04-21 17:55:51 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #7)
&gt; Comment on attachment 458082 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=458082&amp;action=review
&gt;

Thanks for the review!
 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:1466
&gt; &gt; +#endif // HAVE(UIFINDINTERACTION)
&gt; 
&gt; You might want to have #else - (UIFindInteraction *)findInteraction { return
&gt; nil; } - (BOOL)findInteractionEnabled { return NO; } -
&gt; (void)setFindInteractionEnabled:(BOOL)enabled { }

Makes sense. I&apos;ve put the `#else` inside the existing method definitions rather than reimplementing them, matching other methods that use the same approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863516</commentid>
    <comment_count>11</comment_count>
      <attachid>458108</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-04-21 19:29:24 -0700</bug_when>
    <thetext>Created attachment 458108
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863533</commentid>
    <comment_count>12</comment_count>
      <attachid>458110</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2022-04-21 20:50:24 -0700</bug_when>
    <thetext>Created attachment 458110
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863705</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-22 10:48:09 -0700</bug_when>
    <thetext>Committed r293231 (249895@main): &lt;https://commits.webkit.org/249895@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 458110.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458078</attachid>
            <date>2022-04-21 10:59:01 -0700</date>
            <delta_ts>2022-04-21 12:35:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239612-20220421105900.patch</filename>
            <type>text/plain</type>
            <size>24780</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyOTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY1ODg1ZmVlMWE2ODBkMjYy
NGQwOWQzY2MwOTA1NWYzOTg3Y2I4ZWQuLjRhOTQ1YTMyNzIxY2RiZWNjMzRhMWRiYjY3MWM5M2Jm
NDNkMDYwZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODEgQEAKKzIwMjItMDQtMjEgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkZCBmaW5kIGlu
dGVyYWN0aW9uIEFQSSB0byBXS1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzOTYxMgorICAgICAgICByZGFyOi8vODg0NDI5MTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm9tb3RlIHRoZSBg
X2ZpbmRJbnRlcmFjdGlvbmAgYW5kIGBfZmluZEludGVyYWN0aW9uRW5hYmxlZGAgU1BJIHRvCisg
ICAgICAgIGBmaW5kSW50ZXJhY3Rpb25gIGFuZCBgZmluZEludGVyYWN0aW9uRW5hYmxlZGAgQVBJ
LgorCisgICAgICAgIEluIG9yZGVyIHRvIG1ha2UgdGhpcyBjaGFuZ2UsIG5ldyBVSUtpdCBvYmpl
Y3RzIGFuZCBwcm90b2NvbHMgbXVzdCBiZQorICAgICAgICBhZG9wdGVkLiBFeGlzdGluZyAoZGVw
cmVjYXRlZCkgcHJvdG9jb2wgY29uZm9ybWFuY2UgaXMga2VwdCBhcm91bmQgdG8KKyAgICAgICAg
YXZvaWQgYnJlYWtpbmcgaW50ZXJuYWwgY2xpZW50cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBmaW5kSW50ZXJhY3Rpb25FbmFibGVkXSk6
CisgICAgICAgICgtW1dLV2ViVmlldyBzZXRGaW5kSW50ZXJhY3Rpb25FbmFibGVkOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgZmluZEludGVyYWN0aW9uXSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorCisgICAgICAgIERlY2xhcmUgY29uZm9ybWFuY2Ug
dG8gdGhyZWUgcHJvdG9jb2xzOiBfVUlUZXh0U2VhcmNoaW5nLCBVSVRleHRTZWFyY2hpbmcsIFVJ
RmluZEludGVyYWN0aW9uRGVsZWdhdGUuCisKKyAgICAgICAgX1VJVGV4dFNlYXJjaGluZzogQ29u
Zm9ybWFuY2UgaXMga2VwdCBhcm91bmQgdG8gYXZvaWQgYnJlYWtpbmcgaW50ZXJuYWwgY2xpZW50
cy4KKyAgICAgICAgVUlUZXh0U2VhcmNoaW5nOiBDb25mb3JtYW5jZSBpcyBkZWNsYXJlZCBmb3Ig
Y2xpZW50cyB0byBtaWdyYXRlIG9mZiBvZiBfVUlUZXh0U2VhcmNoaW5nLgorICAgICAgICBVSUZp
bmRJbnRlcmFjdGlvbkRlbGVnYXRlOiBDb25mb3JtYW5jZSBpcyBuZWNlc3NhcnkgdG8gYmVnaW4g
YSBVSUZpbmRTZXNzaW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3
SU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWVdKToKKworICAgICAg
ICBUaGUgInNlYXJjaGFibGUgb2JqZWN0IiBkb2VzIG5vdCBuZWVkIHRvIGJlIHJlc2V0IGFueW1v
cmUsIGFzIFVJS2l0CisgICAgICAgIHdpbGwgZG8gdGhhdCBpbiBgLVtXS1dlYlZpZXcgZmluZElu
dGVyYWN0aW9uOnNlc3Npb25Gb3JWaWV3Ol1gIHRoZSBuZXh0CisgICAgICAgIHRpbWUgYSBmaW5k
IHNlc3Npb24gYmVnaW5zLgorCisgICAgICAgICgtW1dLV2ViVmlldyBfc2VhcmNoYWJsZU9iamVj
dF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldEZpbmRJbnRlcmFjdGlvbkVuYWJsZWQ6XSk6
CisgICAgICAgICgtW1dLV2ViVmlldyBfZmluZEludGVyYWN0aW9uXSk6CisKKyAgICAgICAgSXQg
aXMgc2FmZSB0byBjYXN0IGJldHdlZW4gdGhlIFNQSSBhbmQgQVBJIHZlcnNpb24gb2YgdGhpcyBv
YmplY3QuIFVJS2l0CisgICAgICAgIGhhcyBndWFyYW50ZWVkIGNvbXBhdGliaWxpdHkuCisKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IG9mZnNldEZyb21Qb3NpdGlvbjp0b1Bvc2l0aW9uOmluRG9jdW1l
bnQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBjb21wYXJlRm91bmRSYW5nZTp0b1JhbmdlOmlu
RG9jdW1lbnQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBwZXJmb3JtVGV4dFNlYXJjaFdpdGhR
dWVyeVN0cmluZzp1c2luZ09wdGlvbnM6cmVzdWx0QWdncmVnYXRvcjpdKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IHJlcGxhY2VGb3VuZFRleHRJblJhbmdlOmluRG9jdW1lbnQ6d2l0aFRleHQ6XSk6
CisgICAgICAgICgtW1dLV2ViVmlldyBkZWNvcmF0ZUZvdW5kVGV4dFJhbmdlOmluRG9jdW1lbnQ6
dXNpbmdTdHlsZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNjcm9sbFJhbmdlVG9WaXNpYmxl
OmluRG9jdW1lbnQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBmaW5kSW50ZXJhY3Rpb246c2Vz
c2lvbkZvclZpZXc6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBmaW5kSW50ZXJhY3Rpb246ZGlk
QmVnaW5GaW5kU2Vzc2lvbjpdKToKKworICAgICAgICBDdXN0b20gY29udGVudCB2aWV3cyBkbyBu
b3QgbmVlZCB0byBiZSBhd2FyZSB0aGF0IGEgZmluZCBzZXNzaW9uIGhhcworICAgICAgICBiZWd1
biwgYXMgdGhleSBkbyBub3QgZHJhdyBhbiBvdmVybGF5LgorCisgICAgICAgICgtW1dLV2ViVmll
dyBmaW5kSW50ZXJhY3Rpb246ZGlkRW5kRmluZFNlc3Npb246XSk6CisKKyAgICAgICAgQ3VzdG9t
IGNvbnRlbnQgdmlld3MgZG8gbm90IG5lZWQgdG8gYmUgYXdhcmUgdGhhdCBhIGZpbmQgc2Vzc2lv
biBoYXMKKyAgICAgICAgYmVndW4sIGFzIHRoZXkgZG8gbm90IGRyYXcgYW4gb3ZlcmxheS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisKKyAg
ICAgICAgRGVjbGFyZSB0aGUgb2xkIF9VSVRleHRTZWFyY2hpbmcgbWV0aG9kcyBleHBsaWNpdGx5
LCBhcyB3ZSBuZWVkIHRvCisgICAgICAgIG1haW50YWluIHN1cHBvcnQgZm9yIGludGVybmFsIGNs
aWVudHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwZXJmb3JtVGV4dFNlYXJjaFdpdGhRdWVy
eVN0cmluZzp1c2luZ09wdGlvbnM6cmVzdWx0QWdncmVnYXRvcjpdKToKKyAgICAgICAgKC1bV0tD
b250ZW50VmlldyByZXBsYWNlRm91bmRUZXh0SW5SYW5nZTppbkRvY3VtZW50OndpdGhUZXh0Ol0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRlY29yYXRlRm91bmRUZXh0UmFuZ2U6aW5Eb2N1
bWVudDp1c2luZ1N0eWxlOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNjcm9sbFJhbmdl
VG9WaXNpYmxlOmluRG9jdW1lbnQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgb2Zmc2V0
RnJvbVBvc2l0aW9uOnRvUG9zaXRpb246aW5Eb2N1bWVudDpdKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBjb21wYXJlRm91bmRSYW5nZTp0b1JhbmdlOmluRG9jdW1lbnQ6XSk6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW06CisgICAgICAgICgtW1dLUERGVmlldyBjb21w
YXJlRm91bmRSYW5nZTp0b1JhbmdlOmluRG9jdW1lbnQ6XSk6CisgICAgICAgICgtW1dLUERGVmll
dyBwZXJmb3JtVGV4dFNlYXJjaFdpdGhRdWVyeVN0cmluZzp1c2luZ09wdGlvbnM6cmVzdWx0QWdn
cmVnYXRvcjpdKToKKyAgICAgICAgKC1bV0tQREZWaWV3IGRlY29yYXRlRm91bmRUZXh0UmFuZ2U6
aW5Eb2N1bWVudDp1c2luZ1N0eWxlOl0pOgorCiAyMDIyLTA0LTE1ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBTZXJ2aWNlV29ya2VyLnBvc3RNZXNzYWdlKCkg
ZG9lc24ndCB3b3JrIGZyb20gaW5zaWRlIGlmcmFtZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCmluZGV4IDVjZWM3ZGM2MjM3OGYyNDM3MmI0MDM5OGIx
NWVkZDQ4OGJkMDk0YTEuLmI1OWYwNmFiZWZmNDcwMjM0OTVmMWFhZDYzNGMxNzI3NzBiNjEzYWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3LmgKQEAg
LTY0Niw2ICs2NDYsMjAgQEAgVGhlIHVuaWZvcm0gdHlwZSBpZGVudGlmaWVyIGtVVFR5cGVXZWJB
cmNoaXZlIGNhbiBiZSB1c2VkIGdldCB0aGUgcmVsYXRlZCBwYXN0ZWIKIC0gKHZvaWQpc2V0TWlu
aW11bVZpZXdwb3J0SW5zZXQ6KE5TRWRnZUluc2V0cyltaW5pbXVtVmlld3BvcnRJbnNldCBtYXhp
bXVtVmlld3BvcnRJbnNldDooTlNFZGdlSW5zZXRzKW1heGltdW1WaWV3cG9ydEluc2V0IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOwogI2VuZGlmCiAKKyNpZiBUQVJHRVRfT1Nf
SVBIT05FCisKKyNpZiBfX2hhc19pbmNsdWRlKDxVSUtpdC9VSUZpbmRJbnRlcmFjdGlvbi5oPikK
KworLyohIEBhYnN0cmFjdCBFbmFibGVzIHRoZSB3ZWIgdmlldydzIGJ1aWx0LWluIGZpbmQgaW50
ZXJhY3Rpb24uICovCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBnZXR0ZXI9aXNG
aW5kSW50ZXJhY3Rpb25FbmFibGVkKSBCT09MIGZpbmRJbnRlcmFjdGlvbkVuYWJsZWQgV0tfQVBJ
X0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworCisvKiEgQGFic3RyYWN0IElmICBAbGluayBm
aW5kSW50ZXJhY3Rpb25FbmFibGVkIEAvbGluayBpcyBzZXQgdG8gdHJ1ZSwgcmV0dXJucyB0aGlz
IHdlYiB2aWV3J3MgYnVpbHQtaW4gZmluZCBpbnRlcmFjdGlvbi4gT3RoZXJ3aXNlLCBuaWwuICov
CitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIHJlYWRvbmx5KSBVSUZpbmRJbnRlcmFj
dGlvbiAqZmluZEludGVyYWN0aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsK
KworI2VuZGlmCisKKyNlbmRpZgorCiBAZW5kCiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggYWIw
NzRjYjRiMzMxMDRmNWI4OTdhZTljY2FiNDI5ODFlNGZlMjVkOS4uOTQ3MWI2ZWY2Zjc0MjI5OWJm
MTdmNDYyZDQ4MTE5ZmFiNWU3ZTM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xNDM0LDYgKzE0MzQsMzcgQEAgaW5saW5lIE9wdGlv
blNldDxXZWJLaXQ6OkZpbmRPcHRpb25zPiB0b0ZpbmRPcHRpb25zKFdLRmluZENvbmZpZ3VyYXRp
b24gKmNvbmZpZ3UKIH0KICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCisjaWYgSEFW
RShVSUZJTkRJTlRFUkFDVElPTikKKworLSAoQk9PTClmaW5kSW50ZXJhY3Rpb25FbmFibGVkCit7
CisgICAgcmV0dXJuIF9maW5kSW50ZXJhY3Rpb25FbmFibGVkOworfQorCistICh2b2lkKXNldEZp
bmRJbnRlcmFjdGlvbkVuYWJsZWQ6KEJPT0wpZW5hYmxlZAoreworICAgIGlmIChfZmluZEludGVy
YWN0aW9uRW5hYmxlZCAhPSBlbmFibGVkKSB7CisgICAgICAgIF9maW5kSW50ZXJhY3Rpb25FbmFi
bGVkID0gZW5hYmxlZDsKKworICAgICAgICBpZiAoZW5hYmxlZCkgeworICAgICAgICAgICAgaWYg
KCFfZmluZEludGVyYWN0aW9uKQorICAgICAgICAgICAgICAgIF9maW5kSW50ZXJhY3Rpb24gPSBh
ZG9wdE5TKFtbVUlGaW5kSW50ZXJhY3Rpb24gYWxsb2NdIGluaXRXaXRoU2Vzc2lvbkRlbGVnYXRl
OnNlbGZdKTsKKworICAgICAgICAgICAgW3NlbGYgYWRkSW50ZXJhY3Rpb246X2ZpbmRJbnRlcmFj
dGlvbi5nZXQoKV07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBbc2VsZiByZW1vdmVJ
bnRlcmFjdGlvbjpfZmluZEludGVyYWN0aW9uLmdldCgpXTsKKyAgICAgICAgICAgIF9maW5kSW50
ZXJhY3Rpb24gPSBuaWw7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy0gKFVJRmluZEludGVyYWN0
aW9uICopZmluZEludGVyYWN0aW9uCit7CisgICAgcmV0dXJuIF9maW5kSW50ZXJhY3Rpb24uZ2V0
KCk7Cit9CisKKyNlbmRpZiAvLyBIQVZFKFVJRklORElOVEVSQUNUSU9OKQorCiAjcHJhZ21hIG1h
cmsgLSBtYWNPUyBBUEkKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKaW5kZXggNTJiNjM5
NzQ5Yzg2YmZhNjY3NmM0NDJiZWFjY2E3NGYxY2FlOGViZS4uMDdkN2U4ZTdiZDcwNjNkMjM1ODky
ZThmNmJhOTJkMmZjYzAxNTJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKQEAgLTE2Myw3ICsxNjMsNyBAQCBjbGFz
cyBWaWV3R2VzdHVyZUNvbnRyb2xsZXI7CiAjZW5kaWYKIAogI2lmIEhBVkUoVUlGSU5ESU5URVJB
Q1RJT04pCi0gICAgUmV0YWluUHRyPF9VSUZpbmRJbnRlcmFjdGlvbj4gX2ZpbmRJbnRlcmFjdGlv
bjsKKyAgICBSZXRhaW5QdHI8VUlGaW5kSW50ZXJhY3Rpb24+IF9maW5kSW50ZXJhY3Rpb247CiAg
ICAgQk9PTCBfZmluZEludGVyYWN0aW9uRW5hYmxlZDsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCAx
M2RkNjFiNzQwM2VlZmZjYTRkM2RlNjlkOWVkZWVhNmU2YjBlNmEwLi5lMTRhZDhhNjhmOWJjZjky
ZGU1MjIzMmY4OTk0YTQyZDFlNTBmMGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTQ5Myw3ICs0OTMsNyBAQCB0
eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgV0tEaXNwbGF5Q2FwdHVyZVN1cmZhY2VzKSB7
CiAjaWYgVEFSR0VUX09TX0lQSE9ORQogCiAjaWYgIVRBUkdFVF9PU19UViAmJiAhVEFSR0VUX09T
X1dBVENIICYmIF9faGFzX2luY2x1ZGUoPFVJS2l0L19VSVRleHRTZWFyY2hpbmcuaD4pCi1AaW50
ZXJmYWNlIFdLV2ViVmlldyAoV0tQcml2YXRlSU9TKSA8X1VJVGV4dFNlYXJjaGluZz4KK0BpbnRl
cmZhY2UgV0tXZWJWaWV3IChXS1ByaXZhdGVJT1MpIDxfVUlUZXh0U2VhcmNoaW5nLCBVSVRleHRT
ZWFyY2hpbmcsIFVJRmluZEludGVyYWN0aW9uRGVsZWdhdGU+CiAjZWxzZQogQGludGVyZmFjZSBX
S1dlYlZpZXcgKFdLUHJpdmF0ZUlPUykKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgKaW5kZXggNDlkYWM5OTNlMjViYjVlY2FmNjQ3YTJi
ZGQyNWI0MWE3MTRlZDc3ZC4uYjMzZGFiNmU1OGY2NjA0MjQyZmYyNTc0YzA4ZDFkZGVkYWVjYTMw
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJ
T1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5o
CkBAIC0xMzUsNyArMTM1LDcgQEAgZW51bSBjbGFzcyBUYXBIYW5kbGluZ1Jlc3VsdCA6IHVpbnQ4
X3Q7CiAtICh2b2lkKWZpbmRQcmV2aW91czooaWQpc2VuZGVyOwogLSAodm9pZClmaW5kQW5kUmVw
bGFjZTooaWQpc2VuZGVyOwogCi0tIChpZDxfVUlUZXh0U2VhcmNoaW5nPilfc2VhcmNoYWJsZU9i
amVjdDsKKy0gKGlkPFVJVGV4dFNlYXJjaGluZz4pX3NlYXJjaGFibGVPYmplY3Q7CiAjZW5kaWYK
IAogLSAodm9pZClfbmV4dEFjY2Vzc29yeVRhYjooaWQpc2VuZGVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQppbmRleCBiYzM5YjU5YzE0MTc2
MjU5ZWRiYzM3MjgzNjhiYzgyZmUyNWQ5NjY1Li4yYzRjNDIwZWJkMWYwZGE1MDdkMzNiMTk4NWI4
Nzc0NDRjYmUzY2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9z
L1dLV2ViVmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dL
V2ViVmlld0lPUy5tbQpAQCAtNzc5LDEwICs3NzksOCBAQCBzdGF0aWMgV2ViQ29yZTo6Q29sb3Ig
c2Nyb2xsVmlld0JhY2tncm91bmRDb2xvcihXS1dlYlZpZXcgKndlYlZpZXcsIEFsbG93UGFnZUJh
YwogICAgICAgICBbX3Njcm9sbFZpZXcgX3N0b3BTY3JvbGxpbmdBbmRab29taW5nQW5pbWF0aW9u
c107CiAKICNpZiBIQVZFKFVJRklORElOVEVSQUNUSU9OKQotICAgIGlmIChfZmluZEludGVyYWN0
aW9uRW5hYmxlZCkgeworICAgIGlmIChfZmluZEludGVyYWN0aW9uRW5hYmxlZCkKICAgICAgICAg
W19maW5kSW50ZXJhY3Rpb24gZGlzbWlzc0ZpbmROYXZpZ2F0b3JdOwotICAgICAgICBbX2ZpbmRJ
bnRlcmFjdGlvbiBzZXRTZWFyY2hhYmxlT2JqZWN0OltzZWxmIF9zZWFyY2hhYmxlT2JqZWN0XV07
Ci0gICAgfQogI2VuZGlmCiB9CiAKQEAgLTI3MTUsMTAgKzI3MTMsMTAgQEAgc3RhdGljIFdlYkNv
cmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gdG9Vc2VySW50ZXJmYWNlTGF5b3V0RGly
ZWN0aW9uKFVJU2UKIAogI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04pCiAKLS0gKGlkPF9VSVRl
eHRTZWFyY2hpbmc+KV9zZWFyY2hhYmxlT2JqZWN0CistIChpZDxVSVRleHRTZWFyY2hpbmc+KV9z
ZWFyY2hhYmxlT2JqZWN0CiB7Ci0gICAgaWYgKFtfY3VzdG9tQ29udGVudFZpZXcgY29uZm9ybXNU
b1Byb3RvY29sOkBwcm90b2NvbChfVUlUZXh0U2VhcmNoaW5nKV0pCi0gICAgICAgIHJldHVybiAo
aWQ8X1VJVGV4dFNlYXJjaGluZz4pX2N1c3RvbUNvbnRlbnRWaWV3LmdldCgpOworICAgIGlmIChb
X2N1c3RvbUNvbnRlbnRWaWV3IGNvbmZvcm1zVG9Qcm90b2NvbDpAcHJvdG9jb2woVUlUZXh0U2Vh
cmNoaW5nKV0pCisgICAgICAgIHJldHVybiAoaWQ8VUlUZXh0U2VhcmNoaW5nPilfY3VzdG9tQ29u
dGVudFZpZXcuZ2V0KCk7CiAKICAgICByZXR1cm4gX2NvbnRlbnRWaWV3LmdldCgpOwogfQpAQCAt
MzU2MSwyOCArMzU1OSwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpWaWV3cG9y
dEFyZ3VtZW50cz4gdmlld3BvcnRBcmd1bWVudHNGcm9tRGljdGlvbmFyeQogCiAtICh2b2lkKV9z
ZXRGaW5kSW50ZXJhY3Rpb25FbmFibGVkOihCT09MKWVuYWJsZWQKIHsKLSAgICBpZiAoX2ZpbmRJ
bnRlcmFjdGlvbkVuYWJsZWQgIT0gZW5hYmxlZCkgewotICAgICAgICBfZmluZEludGVyYWN0aW9u
RW5hYmxlZCA9IGVuYWJsZWQ7Ci0KLSAgICAgICAgaWYgKGVuYWJsZWQpIHsKLSAgICAgICAgICAg
IGlmICghX2ZpbmRJbnRlcmFjdGlvbikgewotICAgICAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0JFR0lOCi0gICAgICAgICAgICAgICAgX2ZpbmRJbnRlcmFjdGlvbiA9
IGFkb3B0TlMoW1tfVUlGaW5kSW50ZXJhY3Rpb24gYWxsb2NdIGluaXRdKTsKLSAgICAgICAgICAg
ICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKLSAgICAgICAgICAgICAgICBb
X2ZpbmRJbnRlcmFjdGlvbiBzZXRTZWFyY2hhYmxlT2JqZWN0OltzZWxmIF9zZWFyY2hhYmxlT2Jq
ZWN0XV07Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIFtzZWxmIGFkZEludGVyYWN0aW9u
Ol9maW5kSW50ZXJhY3Rpb24uZ2V0KCldOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
W3NlbGYgcmVtb3ZlSW50ZXJhY3Rpb246X2ZpbmRJbnRlcmFjdGlvbi5nZXQoKV07Ci0gICAgICAg
ICAgICBfZmluZEludGVyYWN0aW9uID0gbmlsOwotICAgICAgICB9Ci0gICAgfQorICAgIFtzZWxm
IHNldEZpbmRJbnRlcmFjdGlvbkVuYWJsZWQ6ZW5hYmxlZF07CiB9CiAKIC0gKF9VSUZpbmRJbnRl
cmFjdGlvbiAqKV9maW5kSW50ZXJhY3Rpb24KIHsKLSAgICByZXR1cm4gX2ZpbmRJbnRlcmFjdGlv
bi5nZXQoKTsKKyAgICByZXR1cm4gKF9VSUZpbmRJbnRlcmFjdGlvbiAqKV9maW5kSW50ZXJhY3Rp
b24uZ2V0KCk7CiB9CiAKIC0gKFVJVGV4dFJhbmdlICopc2VsZWN0ZWRUZXh0UmFuZ2UKQEAgLTM1
OTEsMzAgKzM1NzMsMzMgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Vmlld3BvcnRB
cmd1bWVudHM+IHZpZXdwb3J0QXJndW1lbnRzRnJvbURpY3Rpb25hcnkKIH0KIAogQUxMT1dfREVQ
UkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfQkVHSU4KLS0gKE5TSW50ZWdlcilvZmZzZXRGcm9tUG9z
aXRpb246KFVJVGV4dFBvc2l0aW9uICopZnJvbSB0b1Bvc2l0aW9uOihVSVRleHRQb3NpdGlvbiAq
KXRvUG9zaXRpb24gaW5Eb2N1bWVudDooX1VJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilk
b2N1bWVudAorLSAoTlNJbnRlZ2VyKW9mZnNldEZyb21Qb3NpdGlvbjooVUlUZXh0UG9zaXRpb24g
Kilmcm9tIHRvUG9zaXRpb246KFVJVGV4dFBvc2l0aW9uICopdG9Qb3NpdGlvbiBpbkRvY3VtZW50
OihVSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQKIHsKLSAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHJldHVybiBbX2NvbnRlbnRWaWV3IG9m
ZnNldEZyb21Qb3NpdGlvbjpmcm9tIHRvUG9zaXRpb246dG9Qb3NpdGlvbiBpbkRvY3VtZW50OmRv
Y3VtZW50XTsKLSAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIH0KIEFMTE9X
X0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogCi0tIChOU0NvbXBhcmlzb25SZXN1bHQp
Y29tcGFyZUZvdW5kUmFuZ2U6KFVJVGV4dFJhbmdlICopZnJvbVJhbmdlIHRvUmFuZ2U6KFVJVGV4
dFJhbmdlICopdG9SYW5nZSBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlm
aWVyKWRvY3VtZW50CistIChOU0NvbXBhcmlzb25SZXN1bHQpY29tcGFyZUZvdW5kUmFuZ2U6KFVJ
VGV4dFJhbmdlICopZnJvbVJhbmdlIHRvUmFuZ2U6KFVJVGV4dFJhbmdlICopdG9SYW5nZSBpbkRv
Y3VtZW50OihVSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQKIHsKICAgICBy
ZXR1cm4gW19jb250ZW50VmlldyBjb21wYXJlRm91bmRSYW5nZTpmcm9tUmFuZ2UgdG9SYW5nZTp0
b1JhbmdlIGluRG9jdW1lbnQ6ZG9jdW1lbnRdOwogfQogCi0tICh2b2lkKXBlcmZvcm1UZXh0U2Vh
cmNoV2l0aFF1ZXJ5U3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyB1c2luZ09wdGlvbnM6KF9VSVRl
eHRTZWFyY2hPcHRpb25zICopb3B0aW9ucyByZXN1bHRBZ2dyZWdhdG9yOihpZDxfVUlUZXh0U2Vh
cmNoQWdncmVnYXRvcj4pYWdncmVnYXRvcgorLSAodm9pZClwZXJmb3JtVGV4dFNlYXJjaFdpdGhR
dWVyeVN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgdXNpbmdPcHRpb25zOihVSVRleHRTZWFyY2hP
cHRpb25zICopb3B0aW9ucyByZXN1bHRBZ2dyZWdhdG9yOihpZDxVSVRleHRTZWFyY2hBZ2dyZWdh
dG9yPilhZ2dyZWdhdG9yCiB7CiAgICAgW19jb250ZW50VmlldyBwZXJmb3JtVGV4dFNlYXJjaFdp
dGhRdWVyeVN0cmluZzpzdHJpbmcgdXNpbmdPcHRpb25zOm9wdGlvbnMgcmVzdWx0QWdncmVnYXRv
cjphZ2dyZWdhdG9yXTsKIH0KIAotLSAodm9pZClkZWNvcmF0ZUZvdW5kVGV4dFJhbmdlOihVSVRl
eHRSYW5nZSAqKXJhbmdlIGluRG9jdW1lbnQ6KF9VSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZp
ZXIpZG9jdW1lbnQgdXNpbmdTdHlsZTooX1VJRm91bmRUZXh0U3R5bGUpc3R5bGUKKy0gKHZvaWQp
cmVwbGFjZUZvdW5kVGV4dEluUmFuZ2U6KFVJVGV4dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDoo
VUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50IHdpdGhUZXh0OihOU1N0cmlu
ZyAqKXJlcGxhY2VtZW50VGV4dAoreworICAgIFtfY29udGVudFZpZXcgcmVwbGFjZUZvdW5kVGV4
dEluUmFuZ2U6cmFuZ2UgaW5Eb2N1bWVudDpkb2N1bWVudCB3aXRoVGV4dDpyZXBsYWNlbWVudFRl
eHRdOworfQorCistICh2b2lkKWRlY29yYXRlRm91bmRUZXh0UmFuZ2U6KFVJVGV4dFJhbmdlICop
cmFuZ2UgaW5Eb2N1bWVudDooVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50
IHVzaW5nU3R5bGU6KFVJVGV4dFNlYXJjaEZvdW5kVGV4dFN0eWxlKXN0eWxlCiB7CiAgICAgW19j
b250ZW50VmlldyBkZWNvcmF0ZUZvdW5kVGV4dFJhbmdlOnJhbmdlIGluRG9jdW1lbnQ6ZG9jdW1l
bnQgdXNpbmdTdHlsZTpzdHlsZV07CiB9CiAKLS0gKHZvaWQpc2Nyb2xsUmFuZ2VUb1Zpc2libGU6
KFVJVGV4dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDooX1VJVGV4dFNlYXJjaERvY3VtZW50SWRl
bnRpZmllcilkb2N1bWVudAorLSAodm9pZClzY3JvbGxSYW5nZVRvVmlzaWJsZTooVUlUZXh0UmFu
Z2UgKilyYW5nZSBpbkRvY3VtZW50OihVSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9j
dW1lbnQKIHsKICAgICBbX2NvbnRlbnRWaWV3IHNjcm9sbFJhbmdlVG9WaXNpYmxlOnJhbmdlIGlu
RG9jdW1lbnQ6ZG9jdW1lbnRdOwogfQpAQCAtMzYzOSw2ICszNjI0LDI0IEBAIEFMTE9XX0RFUFJF
Q0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgIFtfY29udGVudFZpZXcgcmVxdWVzdFJlY3RG
b3JGb3VuZFRleHRSYW5nZTpyYW5nZXMgY29tcGxldGlvbkhhbmRsZXI6Y29tcGxldGlvbkhhbmRs
ZXJdOwogfQogCistIChVSUZpbmRTZXNzaW9uICopZmluZEludGVyYWN0aW9uOihVSUZpbmRJbnRl
cmFjdGlvbiAqKWludGVyYWN0aW9uIHNlc3Npb25Gb3JWaWV3OihVSVZpZXcgKil2aWV3Cit7Cisg
ICAgYXV0byBmaW5kU2Vzc2lvbiA9IGFkb3B0TlMoW1tVSVRleHRTZWFyY2hpbmdGaW5kU2Vzc2lv
biBhbGxvY10gaW5pdFdpdGhTZWFyY2hhYmxlT2JqZWN0OltzZWxmIF9zZWFyY2hhYmxlT2JqZWN0
XV0pOworICAgIHJldHVybiBmaW5kU2Vzc2lvbi5hdXRvcmVsZWFzZSgpOworfQorCistICh2b2lk
KWZpbmRJbnRlcmFjdGlvbjooVUlGaW5kSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBkaWRCZWdp
bkZpbmRTZXNzaW9uOihVSUZpbmRTZXNzaW9uICopc2Vzc2lvbgoreworICAgIGlmIChbc2VsZiBf
c2VhcmNoYWJsZU9iamVjdF0gPT0gX2NvbnRlbnRWaWV3LmdldCgpKQorICAgICAgICBbX2NvbnRl
bnRWaWV3IGRpZEJlZ2luVGV4dFNlYXJjaE9wZXJhdGlvbl07Cit9CisKKy0gKHZvaWQpZmluZElu
dGVyYWN0aW9uOihVSUZpbmRJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIGRpZEVuZEZpbmRTZXNz
aW9uOihVSUZpbmRTZXNzaW9uICopc2Vzc2lvbgoreworICAgIGlmIChbc2VsZiBfc2VhcmNoYWJs
ZU9iamVjdF0gPT0gX2NvbnRlbnRWaWV3LmdldCgpKQorICAgICAgICBbX2NvbnRlbnRWaWV3IGRp
ZEVuZFRleHRTZWFyY2hPcGVyYXRpb25dOworfQorCiAjZW5kaWYgLy8gSEFWRShVSUZJTkRJTlRF
UkFDVElPTikKIAogQGVuZCAvLyBXS1dlYlZpZXcgKFdLUHJpdmF0ZUlPUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApp
bmRleCA1MTgzZDQ4NmM0MTkwMTRkOTI1ZTI2Yzk4ZmU3YmQxZDY0Y2YzMGEyLi5kMzhjY2RkMDg2
ZmRlMTY2MWM1ZDdiOGFlNTVhYTYxZTMyZmE5M2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC01NjUsNyAr
NTY1LDcgQEAgdXNpbmcgSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyID0gT2JqZWN0SWRl
bnRpZmllcjxJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW4KICAgICAsIFdLSG92ZXJQbGF0dGVyRGVs
ZWdhdGUKICNlbmRpZgogI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04pCi0gICAgLCBfVUlUZXh0
U2VhcmNoaW5nCisgICAgLCBVSVRleHRTZWFyY2hpbmcKICNlbmRpZgogPgogCkBAIC03OTcsNyAr
Nzk3LDEwIEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFSRV9X
S0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAjZW5kaWYKIAogI2lmIEhBVkUoVUlG
SU5ESU5URVJBQ1RJT04pCi0tIChOU0NvbXBhcmlzb25SZXN1bHQpY29tcGFyZUZvdW5kUmFuZ2U6
KFVJVGV4dFJhbmdlICopZnJvbVJhbmdlIHRvUmFuZ2U6KFVJVGV4dFJhbmdlICopdG9SYW5nZSBp
bkRvY3VtZW50OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50OworLSAo
TlNJbnRlZ2VyKW9mZnNldEZyb21Qb3NpdGlvbjooVUlUZXh0UG9zaXRpb24gKilmcm9tIHRvUG9z
aXRpb246KFVJVGV4dFBvc2l0aW9uICopdG9Qb3NpdGlvbiBpbkRvY3VtZW50OihVSVRleHRTZWFy
Y2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQ7CistICh2b2lkKWRpZEJlZ2luVGV4dFNlYXJj
aE9wZXJhdGlvbjsKKy0gKHZvaWQpZGlkRW5kVGV4dFNlYXJjaE9wZXJhdGlvbjsKKwogLSAodm9p
ZClyZXF1ZXN0UmVjdEZvckZvdW5kVGV4dFJhbmdlOihVSVRleHRSYW5nZSAqKXJhbmdlIGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKShDR1JlY3QpKWNvbXBsZXRpb25IYW5kbGVyOwogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tCmluZGV4IDYxNmQyOTE4ZTlhMmQwOGYzZmIyYTkxZGZlMDBjMDNlNGRh
ZmFmNmYuLmJjYjEyODQyNzYxODk5OGJkYmJmZTcxOGUwYmQxNTRhM2NhYWMyOTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQpAQCAtMTAzOTksMTQgKzEwMzk5LDE0IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNJdGVt
UHJvdmlkZXI+IGNyZWF0ZUl0ZW1Qcm92aWRlcihjb25zdCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYK
ICAgICBbc2VsZi53ZWJWaWV3Ll9maW5kSW50ZXJhY3Rpb24gcHJlc2VudEZpbmROYXZpZ2F0b3JT
aG93aW5nUmVwbGFjZTpZRVNdOwogfQogCi0tICh2b2lkKXBlcmZvcm1UZXh0U2VhcmNoV2l0aFF1
ZXJ5U3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyB1c2luZ09wdGlvbnM6KF9VSVRleHRTZWFyY2hP
cHRpb25zICopb3B0aW9ucyByZXN1bHRBZ2dyZWdhdG9yOihpZDxfVUlUZXh0U2VhcmNoQWdncmVn
YXRvcj4pYWdncmVnYXRvcgorLSAodm9pZClwZXJmb3JtVGV4dFNlYXJjaFdpdGhRdWVyeVN0cmlu
ZzooTlNTdHJpbmcgKilzdHJpbmcgdXNpbmdPcHRpb25zOihVSVRleHRTZWFyY2hPcHRpb25zICop
b3B0aW9ucyByZXN1bHRBZ2dyZWdhdG9yOihpZDxVSVRleHRTZWFyY2hBZ2dyZWdhdG9yPilhZ2dy
ZWdhdG9yCiB7CiAgICAgT3B0aW9uU2V0PFdlYktpdDo6RmluZE9wdGlvbnM+IGZpbmRPcHRpb25z
OwogICAgIHN3aXRjaCAob3B0aW9ucy53b3JkTWF0Y2hNZXRob2QpIHsKLSAgICBjYXNlIF9VSVRl
eHRTZWFyY2hNYXRjaE1ldGhvZFN0YXJ0c1dpdGg6CisgICAgY2FzZSBVSVRleHRTZWFyY2hNYXRj
aE1ldGhvZFN0YXJ0c1dpdGg6CiAgICAgICAgIGZpbmRPcHRpb25zLmFkZChXZWJLaXQ6OkZpbmRP
cHRpb25zOjpBdFdvcmRTdGFydHMpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIF9VSVRleHRT
ZWFyY2hNYXRjaE1ldGhvZEZ1bGxXb3JkOgorICAgIGNhc2UgVUlUZXh0U2VhcmNoTWF0Y2hNZXRo
b2RGdWxsV29yZDoKICAgICAgICAgZmluZE9wdGlvbnMuYWRkKHsgV2ViS2l0OjpGaW5kT3B0aW9u
czo6QXRXb3JkU3RhcnRzLCBXZWJLaXQ6OkZpbmRPcHRpb25zOjpBdFdvcmRFbmRzIH0pOwogICAg
ICAgICBicmVhazsKICAgICBkZWZhdWx0OgpAQCAtMTA0MjgsNyArMTA0MjgsNyBAQCBzdGF0aWMg
UmV0YWluUHRyPE5TSXRlbVByb3ZpZGVyPiBjcmVhdGVJdGVtUHJvdmlkZXIoY29uc3QgV2ViS2l0
OjpXZWJQYWdlUHJveHkmCiAgICAgfSk7CiB9CiAKLS0gKHZvaWQpcmVwbGFjZUZvdW5kVGV4dElu
UmFuZ2U6KFVJVGV4dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDooX1VJVGV4dFNlYXJjaERvY3Vt
ZW50SWRlbnRpZmllcilkb2N1bWVudCB3aXRoVGV4dDooTlNTdHJpbmcgKilyZXBsYWNlbWVudFRl
eHQKKy0gKHZvaWQpcmVwbGFjZUZvdW5kVGV4dEluUmFuZ2U6KFVJVGV4dFJhbmdlICopcmFuZ2Ug
aW5Eb2N1bWVudDooVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50IHdpdGhU
ZXh0OihOU1N0cmluZyAqKXJlcGxhY2VtZW50VGV4dAogewogICAgIGlmICghc2VsZi5zdXBwb3J0
c1RleHRSZXBsYWNlbWVudCkKICAgICAgICAgcmV0dXJuOwpAQCAtMTA0NDAsMjIgKzEwNDQwLDIy
IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNJdGVtUHJvdmlkZXI+IGNyZWF0ZUl0ZW1Qcm92aWRlcihj
b25zdCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYKICAgICBfcGFnZS0+cmVwbGFjZUZvdW5kVGV4dFJh
bmdlV2l0aFN0cmluZyhbZm91bmRUZXh0UmFuZ2Ugd2ViRm91bmRUZXh0UmFuZ2VdLCByZXBsYWNl
bWVudFRleHQpOwogfQogCi0tICh2b2lkKWRlY29yYXRlRm91bmRUZXh0UmFuZ2U6KFVJVGV4dFJh
bmdlICopcmFuZ2UgaW5Eb2N1bWVudDooX1VJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilk
b2N1bWVudCB1c2luZ1N0eWxlOihfVUlGb3VuZFRleHRTdHlsZSlzdHlsZQorLSAodm9pZClkZWNv
cmF0ZUZvdW5kVGV4dFJhbmdlOihVSVRleHRSYW5nZSAqKXJhbmdlIGluRG9jdW1lbnQ6KFVJVGV4
dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudCB1c2luZ1N0eWxlOihVSVRleHRTZWFy
Y2hGb3VuZFRleHRTdHlsZSlzdHlsZQogewogICAgIGF1dG8gZm91bmRUZXh0UmFuZ2UgPSBkeW5h
bWljX29iamNfY2FzdDxXS0ZvdW5kVGV4dFJhbmdlPihyYW5nZSk7CiAgICAgaWYgKCFmb3VuZFRl
eHRSYW5nZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBkZWNvcmF0aW9uU3R5bGUgPSBX
ZWJLaXQ6OkZpbmREZWNvcmF0aW9uU3R5bGU6Ok5vcm1hbDsKLSAgICBpZiAoc3R5bGUgPT0gX1VJ
Rm91bmRUZXh0U3R5bGVGb3VuZCkKKyAgICBpZiAoc3R5bGUgPT0gVUlUZXh0U2VhcmNoRm91bmRU
ZXh0U3R5bGVGb3VuZCkKICAgICAgICAgZGVjb3JhdGlvblN0eWxlID0gV2ViS2l0OjpGaW5kRGVj
b3JhdGlvblN0eWxlOjpGb3VuZDsKLSAgICBlbHNlIGlmIChzdHlsZSA9PSBfVUlGb3VuZFRleHRT
dHlsZUhpZ2hsaWdodGVkKQorICAgIGVsc2UgaWYgKHN0eWxlID09IFVJVGV4dFNlYXJjaEZvdW5k
VGV4dFN0eWxlSGlnaGxpZ2h0ZWQpCiAgICAgICAgIGRlY29yYXRpb25TdHlsZSA9IFdlYktpdDo6
RmluZERlY29yYXRpb25TdHlsZTo6SGlnaGxpZ2h0ZWQ7CiAKICAgICBfcGFnZS0+ZGVjb3JhdGVU
ZXh0UmFuZ2VXaXRoU3R5bGUoW2ZvdW5kVGV4dFJhbmdlIHdlYkZvdW5kVGV4dFJhbmdlXSwgZGVj
b3JhdGlvblN0eWxlKTsKIH0KIAotLSAodm9pZClzY3JvbGxSYW5nZVRvVmlzaWJsZTooVUlUZXh0
UmFuZ2UgKilyYW5nZSBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVy
KWRvY3VtZW50CistICh2b2lkKXNjcm9sbFJhbmdlVG9WaXNpYmxlOihVSVRleHRSYW5nZSAqKXJh
bmdlIGluRG9jdW1lbnQ6KFVJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudAog
ewogICAgIGlmIChhdXRvIGZvdW5kVGV4dFJhbmdlID0gZHluYW1pY19vYmpjX2Nhc3Q8V0tGb3Vu
ZFRleHRSYW5nZT4ocmFuZ2UpKQogICAgICAgICBfcGFnZS0+c2Nyb2xsVGV4dFJhbmdlVG9WaXNp
YmxlKFtmb3VuZFRleHRSYW5nZSB3ZWJGb3VuZFRleHRSYW5nZV0pOwpAQCAtMTA0ODEsMTQgKzEw
NDgxLDEyIEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNJdGVtUHJvdmlkZXI+IGNyZWF0ZUl0ZW1Qcm92
aWRlcihjb25zdCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYKICAgICByZXR1cm4gc2VsZi53ZWJWaWV3
Ll9lZGl0YWJsZTsKIH0KIAotQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfQkVHSU4K
LS0gKE5TSW50ZWdlcilvZmZzZXRGcm9tUG9zaXRpb246KFVJVGV4dFBvc2l0aW9uICopZnJvbSB0
b1Bvc2l0aW9uOihVSVRleHRQb3NpdGlvbiAqKXRvUG9zaXRpb24gaW5Eb2N1bWVudDooX1VJVGV4
dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudAorLSAoTlNJbnRlZ2VyKW9mZnNldEZy
b21Qb3NpdGlvbjooVUlUZXh0UG9zaXRpb24gKilmcm9tIHRvUG9zaXRpb246KFVJVGV4dFBvc2l0
aW9uICopdG9Qb3NpdGlvbiBpbkRvY3VtZW50OihVSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZp
ZXIpZG9jdW1lbnQKIHsKICAgICByZXR1cm4gW3NlbGYgb2Zmc2V0RnJvbVBvc2l0aW9uOmZyb20g
dG9Qb3NpdGlvbjp0b1Bvc2l0aW9uXTsKIH0KLUFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJ
T05TX0VORAogCi0tIChOU0NvbXBhcmlzb25SZXN1bHQpY29tcGFyZUZvdW5kUmFuZ2U6KFVJVGV4
dFJhbmdlICopZnJvbVJhbmdlIHRvUmFuZ2U6KFVJVGV4dFJhbmdlICopdG9SYW5nZSBpbkRvY3Vt
ZW50OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50CistIChOU0NvbXBh
cmlzb25SZXN1bHQpY29tcGFyZUZvdW5kUmFuZ2U6KFVJVGV4dFJhbmdlICopZnJvbVJhbmdlIHRv
UmFuZ2U6KFVJVGV4dFJhbmdlICopdG9SYW5nZSBpbkRvY3VtZW50OihVSVRleHRTZWFyY2hEb2N1
bWVudElkZW50aWZpZXIpZG9jdW1lbnQKIHsKICAgICBOU0ludGVnZXIgb2Zmc2V0ID0gW3NlbGYg
b2Zmc2V0RnJvbVBvc2l0aW9uOmZyb21SYW5nZS5zdGFydCB0b1Bvc2l0aW9uOnRvUmFuZ2Uuc3Rh
cnRdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLUERGVmlldy5tbQppbmRleCA4MDBj
ZTM5YWVlZDk2NDk1MmVhNWJiY2FiNTAzZGFhZWYwZjIyOGZjLi5mY2JkMTkyOGQ4OWE0YTlkNjkx
NjQyMjI2MmQ0M2E4Mjk1M2NlMzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1BE
RlZpZXcubW0KQEAgLTEwOSw3ICsxMDksNyBAQAogCiBAaW50ZXJmYWNlIFdLUERGVmlldyAoKSA8
UERGSG9zdFZpZXdDb250cm9sbGVyRGVsZWdhdGUsIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnREZWxl
Z2F0ZQogI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04pCi0gICAgLCBfVUlUZXh0U2VhcmNoaW5n
CisgICAgLCBVSVRleHRTZWFyY2hpbmcKICNlbmRpZgogPgogQGVuZApAQCAtMTM1LDcgKzEzNSw3
IEBACiAgICAgUmV0YWluUHRyPFdLS2V5Ym9hcmRTY3JvbGxWaWV3QW5pbWF0b3I+IF9rZXlib2Fy
ZFNjcm9sbGluZ0FuaW1hdG9yOwogICAgIFJldGFpblB0cjxXS1NoYXJlU2hlZXQ+IF9zaGFyZVNo
ZWV0OwogI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04pCi0gICAgUmV0YWluUHRyPGlkPF9VSVRl
eHRTZWFyY2hBZ2dyZWdhdG9yPj4gX3NlYXJjaEFnZ3JlZ2F0b3I7CisgICAgUmV0YWluUHRyPGlk
PFVJVGV4dFNlYXJjaEFnZ3JlZ2F0b3I+PiBfc2VhcmNoQWdncmVnYXRvcjsKICAgICBSZXRhaW5Q
dHI8TlNTdHJpbmc+IF9zZWFyY2hTdHJpbmc7CiAjZW5kaWYKIH0KQEAgLTY4OCw3ICs2ODgsNyBA
QCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICByZXR1cm4gW3VpRGVsZWdh
dGUgX2RhdGFEZXRlY3Rpb25Db250ZXh0Rm9yV2ViVmlldzp3ZWJWaWV3XTsKIH0KIAotI3ByYWdt
YSBtYXJrIF9VSVRleHRTZWFyY2hpbmcKKyNwcmFnbWEgbWFyayBVSVRleHRTZWFyY2hpbmcKIAog
I2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04pCiAKQEAgLTY5Nyw3ICs2OTcsNyBAQCBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICByZXR1cm4gbmlsOwogfQogCi0tIChOU0Nv
bXBhcmlzb25SZXN1bHQpY29tcGFyZUZvdW5kUmFuZ2U6KFVJVGV4dFJhbmdlICopZnJvbVJhbmdl
IHRvUmFuZ2U6KFVJVGV4dFJhbmdlICopdG9SYW5nZSBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNo
RG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50CistIChOU0NvbXBhcmlzb25SZXN1bHQpY29tcGFy
ZUZvdW5kUmFuZ2U6KFVJVGV4dFJhbmdlICopZnJvbVJhbmdlIHRvUmFuZ2U6KFVJVGV4dFJhbmdl
ICopdG9SYW5nZSBpbkRvY3VtZW50OihVSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9j
dW1lbnQKIHsKICAgICBhdXRvIGZyb20gPSBkeW5hbWljX29iamNfY2FzdDxXS1BERkZvdW5kVGV4
dFBvc2l0aW9uPihmcm9tUmFuZ2Uuc3RhcnQpOwogICAgIGlmICghZnJvbSkKQEAgLTcxNiw3ICs3
MTYsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICByZXR1cm4gTlNP
cmRlcmVkU2FtZTsKIH0KIAotLSAodm9pZClwZXJmb3JtVGV4dFNlYXJjaFdpdGhRdWVyeVN0cmlu
ZzooTlNTdHJpbmcgKilzdHJpbmcgdXNpbmdPcHRpb25zOihfVUlUZXh0U2VhcmNoT3B0aW9ucyAq
KW9wdGlvbnMgcmVzdWx0QWdncmVnYXRvcjooaWQ8X1VJVGV4dFNlYXJjaEFnZ3JlZ2F0b3I+KWFn
Z3JlZ2F0b3IKKy0gKHZvaWQpcGVyZm9ybVRleHRTZWFyY2hXaXRoUXVlcnlTdHJpbmc6KE5TU3Ry
aW5nICopc3RyaW5nIHVzaW5nT3B0aW9uczooVUlUZXh0U2VhcmNoT3B0aW9ucyAqKW9wdGlvbnMg
cmVzdWx0QWdncmVnYXRvcjooaWQ8VUlUZXh0U2VhcmNoQWdncmVnYXRvcj4pYWdncmVnYXRvcgog
ewogICAgIFtfaG9zdFZpZXdDb250cm9sbGVyIGNhbmNlbEZpbmRTdHJpbmddOwogICAgIF9zZWFy
Y2hBZ2dyZWdhdG9yID0gYWdncmVnYXRvcjsKQEAgLTcyNCw5ICs3MjQsOSBAQCBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbX2hvc3RWaWV3Q29udHJvbGxlciBmaW5kU3Ry
aW5nOnN0cmluZyB3aXRoT3B0aW9uczpvcHRpb25zLnN0cmluZ0NvbXBhcmVPcHRpb25zXTsKIH0K
IAotLSAodm9pZClkZWNvcmF0ZUZvdW5kVGV4dFJhbmdlOihVSVRleHRSYW5nZSAqKXJhbmdlIGlu
RG9jdW1lbnQ6KF9VSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQgdXNpbmdT
dHlsZTooX1VJRm91bmRUZXh0U3R5bGUpc3R5bGUKKy0gKHZvaWQpZGVjb3JhdGVGb3VuZFRleHRS
YW5nZTooVUlUZXh0UmFuZ2UgKilyYW5nZSBpbkRvY3VtZW50OihVSVRleHRTZWFyY2hEb2N1bWVu
dElkZW50aWZpZXIpZG9jdW1lbnQgdXNpbmdTdHlsZTooVUlUZXh0U2VhcmNoRm91bmRUZXh0U3R5
bGUpc3R5bGUKIHsKLSAgICBpZiAoc3R5bGUgIT0gX1VJRm91bmRUZXh0U3R5bGVIaWdobGlnaHRl
ZCkKKyAgICBpZiAoc3R5bGUgIT0gVUlUZXh0U2VhcmNoRm91bmRUZXh0U3R5bGVIaWdobGlnaHRl
ZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBmb3VuZFRleHRSYW5nZSA9IGR5bmFtaWNf
b2JqY19jYXN0PFdLUERGRm91bmRUZXh0UmFuZ2U+KHJhbmdlKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhNGYxNjdiMDU4NjQ5NmJmNGUwODkz
YjkyMzBmODUzMGVmYjI5OGJhLi5iMjI4ZDMxYjE3YTlkOTNlYTc0YjAzMjJlMjU1Y2JmNDA2ZDk3
YTdlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMjItMDQtMjEgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBw
bGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkZCBmaW5kIGludGVyYWN0aW9uIEFQSSB0byBXS1dl
YlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
OTYxMgorICAgICAgICByZGFyOi8vODg0NDI5MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBdWdtZW50IGFuIGV4aXN0aW5nIEFQSSB0ZXN0IHRvIHVz
ZSB0aGUgbmV3IEFQSSwgaW4gYWRkaXRpb24gdG8gdGhlCisgICAgICAgIGV4aXN0aW5nIFNQSS4K
KworICAgICAgICBUaGUgZmluZC1hbmQtcmVwbGFjZSB0ZXN0IGlzIHVwZGF0ZWQgdG8gYWNjb3Vu
dCBmb3IgdGhlIGZhY3QgdGhhdCBhCisgICAgICAgIGZpbmQgaW50ZXJhY3Rpb24gbm8gbG9uZ2Vy
IGV4cG9zZXMgYSBzZWFyY2hhYmxlT2JqZWN0LiBJbnN0ZWFkLCB1c2UKKyAgICAgICAgdGVzdC1v
bmx5IFNQSSBvbiBXS1dlYlZpZXcgdG8gcGVyZm9ybSB0aGUgcmVwbGFjZS4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmluZEluUGFnZS5tbToKKyAgICAgICAg
KFRFU1QpOgorCiAyMDIyLTA0LTE0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVuZG8gb3B0aW9uIGFmdGVyIGludm9raW5nICJNYXJrdXAgSW1hZ2Ui
IHNheXMgIlVuZG8gUGFzdGUiCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0ZpbmRJblBhZ2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0ZpbmRJblBhZ2UubW0KaW5kZXggYzZiNTFkYzZlOWE3NThlMmNiYTgzYjdiOWU1
NTNiZjk3OGNkMjM4My4uODFiNmMzYmMwYjhlNGQyMjI4OTIwNDU2NzU1Y2JjNTFlMGM1Mjg4MCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaW5kSW5Q
YWdlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmluZElu
UGFnZS5tbQpAQCAtNTMwLDEzICs1MzAsMTMgQEAgVEVTVChXZWJLaXQsIEZpbmRBbmRSZXBsYWNl
KQogCiAgICAgW3dlYlZpZXcgX3NldEVkaXRhYmxlOk5PXTsKICAgICBmb3IgKFVJVGV4dFJhbmdl
ICpyYW5nZSBpbiBbcmFuZ2VzIHJldmVyc2VPYmplY3RFbnVtZXJhdG9yXSkKLSAgICAgICAgW1tb
d2ViVmlldyBfZmluZEludGVyYWN0aW9uXSBzZWFyY2hhYmxlT2JqZWN0XSByZXBsYWNlRm91bmRU
ZXh0SW5SYW5nZTpyYW5nZSBpbkRvY3VtZW50Om5pbCB3aXRoVGV4dDpyZXBsYWNlbWVudFN0cmlu
Z107CisgICAgICAgIFt3ZWJWaWV3IHJlcGxhY2VGb3VuZFRleHRJblJhbmdlOnJhbmdlIGluRG9j
dW1lbnQ6bmlsIHdpdGhUZXh0OnJlcGxhY2VtZW50U3RyaW5nXTsKIAogICAgIEVYUEVDVF9XS19T
VFJFUShvcmlnaW5hbENvbnRlbnQsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6QCJkb2N1bWVudC5ib2R5LmlubmVyVGV4dCJdKTsKIAogICAgIFt3ZWJWaWV3IF9zZXRFZGl0
YWJsZTpZRVNdOwogICAgIGZvciAoVUlUZXh0UmFuZ2UgKnJhbmdlIGluIFtyYW5nZXMgcmV2ZXJz
ZU9iamVjdEVudW1lcmF0b3JdKQotICAgICAgICBbW1t3ZWJWaWV3IF9maW5kSW50ZXJhY3Rpb25d
IHNlYXJjaGFibGVPYmplY3RdIHJlcGxhY2VGb3VuZFRleHRJblJhbmdlOnJhbmdlIGluRG9jdW1l
bnQ6bmlsIHdpdGhUZXh0OnJlcGxhY2VtZW50U3RyaW5nXTsKKyAgICAgICAgW3dlYlZpZXcgcmVw
bGFjZUZvdW5kVGV4dEluUmFuZ2U6cmFuZ2UgaW5Eb2N1bWVudDpuaWwgd2l0aFRleHQ6cmVwbGFj
ZW1lbnRTdHJpbmddOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKHJlcGxhY2VkQ29udGVudCwgW3dl
YlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmJvZHkuaW5uZXJU
ZXh0Il0pOwogfQpAQCAtNTUyLDYgKzU1MiwxNCBAQCBURVNUKFdlYktpdCwgRmluZEludGVyYWN0
aW9uKQogCiAgICAgW3dlYlZpZXcgX3NldEZpbmRJbnRlcmFjdGlvbkVuYWJsZWQ6Tk9dOwogICAg
IEVYUEVDVF9OVUxMKFt3ZWJWaWV3IF9maW5kSW50ZXJhY3Rpb25dKTsKKworICAgIEVYUEVDVF9O
VUxMKFt3ZWJWaWV3IGZpbmRJbnRlcmFjdGlvbl0pOworCisgICAgW3dlYlZpZXcgc2V0RmluZElu
dGVyYWN0aW9uRW5hYmxlZDpZRVNdOworICAgIEVYUEVDVF9OT1RfTlVMTChbd2ViVmlldyBmaW5k
SW50ZXJhY3Rpb25dKTsKKworICAgIFt3ZWJWaWV3IHNldEZpbmRJbnRlcmFjdGlvbkVuYWJsZWQ6
Tk9dOworICAgIEVYUEVDVF9OVUxMKFt3ZWJWaWV3IGZpbmRJbnRlcmFjdGlvbl0pOwogfQogCiBU
RVNUKFdlYktpdCwgUmVxdWVzdFJlY3RGb3JGb3VuZFRleHRSYW5nZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458082</attachid>
            <date>2022-04-21 12:35:41 -0700</date>
            <delta_ts>2022-04-21 14:31:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239612-20220421123539.patch</filename>
            <type>text/plain</type>
            <size>24909</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyOTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY1ODg1ZmVlMWE2ODBkMjYy
NGQwOWQzY2MwOTA1NWYzOTg3Y2I4ZWQuLjRhOTQ1YTMyNzIxY2RiZWNjMzRhMWRiYjY3MWM5M2Jm
NDNkMDYwZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODEgQEAKKzIwMjItMDQtMjEgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkZCBmaW5kIGlu
dGVyYWN0aW9uIEFQSSB0byBXS1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzOTYxMgorICAgICAgICByZGFyOi8vODg0NDI5MTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm9tb3RlIHRoZSBg
X2ZpbmRJbnRlcmFjdGlvbmAgYW5kIGBfZmluZEludGVyYWN0aW9uRW5hYmxlZGAgU1BJIHRvCisg
ICAgICAgIGBmaW5kSW50ZXJhY3Rpb25gIGFuZCBgZmluZEludGVyYWN0aW9uRW5hYmxlZGAgQVBJ
LgorCisgICAgICAgIEluIG9yZGVyIHRvIG1ha2UgdGhpcyBjaGFuZ2UsIG5ldyBVSUtpdCBvYmpl
Y3RzIGFuZCBwcm90b2NvbHMgbXVzdCBiZQorICAgICAgICBhZG9wdGVkLiBFeGlzdGluZyAoZGVw
cmVjYXRlZCkgcHJvdG9jb2wgY29uZm9ybWFuY2UgaXMga2VwdCBhcm91bmQgdG8KKyAgICAgICAg
YXZvaWQgYnJlYWtpbmcgaW50ZXJuYWwgY2xpZW50cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBmaW5kSW50ZXJhY3Rpb25FbmFibGVkXSk6
CisgICAgICAgICgtW1dLV2ViVmlldyBzZXRGaW5kSW50ZXJhY3Rpb25FbmFibGVkOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgZmluZEludGVyYWN0aW9uXSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorCisgICAgICAgIERlY2xhcmUgY29uZm9ybWFuY2Ug
dG8gdGhyZWUgcHJvdG9jb2xzOiBfVUlUZXh0U2VhcmNoaW5nLCBVSVRleHRTZWFyY2hpbmcsIFVJ
RmluZEludGVyYWN0aW9uRGVsZWdhdGUuCisKKyAgICAgICAgX1VJVGV4dFNlYXJjaGluZzogQ29u
Zm9ybWFuY2UgaXMga2VwdCBhcm91bmQgdG8gYXZvaWQgYnJlYWtpbmcgaW50ZXJuYWwgY2xpZW50
cy4KKyAgICAgICAgVUlUZXh0U2VhcmNoaW5nOiBDb25mb3JtYW5jZSBpcyBkZWNsYXJlZCBmb3Ig
Y2xpZW50cyB0byBtaWdyYXRlIG9mZiBvZiBfVUlUZXh0U2VhcmNoaW5nLgorICAgICAgICBVSUZp
bmRJbnRlcmFjdGlvbkRlbGVnYXRlOiBDb25mb3JtYW5jZSBpcyBuZWNlc3NhcnkgdG8gYmVnaW4g
YSBVSUZpbmRTZXNzaW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3
SU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWVdKToKKworICAgICAg
ICBUaGUgInNlYXJjaGFibGUgb2JqZWN0IiBkb2VzIG5vdCBuZWVkIHRvIGJlIHJlc2V0IGFueW1v
cmUsIGFzIFVJS2l0CisgICAgICAgIHdpbGwgZG8gdGhhdCBpbiBgLVtXS1dlYlZpZXcgZmluZElu
dGVyYWN0aW9uOnNlc3Npb25Gb3JWaWV3Ol1gIHRoZSBuZXh0CisgICAgICAgIHRpbWUgYSBmaW5k
IHNlc3Npb24gYmVnaW5zLgorCisgICAgICAgICgtW1dLV2ViVmlldyBfc2VhcmNoYWJsZU9iamVj
dF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldEZpbmRJbnRlcmFjdGlvbkVuYWJsZWQ6XSk6
CisgICAgICAgICgtW1dLV2ViVmlldyBfZmluZEludGVyYWN0aW9uXSk6CisKKyAgICAgICAgSXQg
aXMgc2FmZSB0byBjYXN0IGJldHdlZW4gdGhlIFNQSSBhbmQgQVBJIHZlcnNpb24gb2YgdGhpcyBv
YmplY3QuIFVJS2l0CisgICAgICAgIGhhcyBndWFyYW50ZWVkIGNvbXBhdGliaWxpdHkuCisKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IG9mZnNldEZyb21Qb3NpdGlvbjp0b1Bvc2l0aW9uOmluRG9jdW1l
bnQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBjb21wYXJlRm91bmRSYW5nZTp0b1JhbmdlOmlu
RG9jdW1lbnQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBwZXJmb3JtVGV4dFNlYXJjaFdpdGhR
dWVyeVN0cmluZzp1c2luZ09wdGlvbnM6cmVzdWx0QWdncmVnYXRvcjpdKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IHJlcGxhY2VGb3VuZFRleHRJblJhbmdlOmluRG9jdW1lbnQ6d2l0aFRleHQ6XSk6
CisgICAgICAgICgtW1dLV2ViVmlldyBkZWNvcmF0ZUZvdW5kVGV4dFJhbmdlOmluRG9jdW1lbnQ6
dXNpbmdTdHlsZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNjcm9sbFJhbmdlVG9WaXNpYmxl
OmluRG9jdW1lbnQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBmaW5kSW50ZXJhY3Rpb246c2Vz
c2lvbkZvclZpZXc6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBmaW5kSW50ZXJhY3Rpb246ZGlk
QmVnaW5GaW5kU2Vzc2lvbjpdKToKKworICAgICAgICBDdXN0b20gY29udGVudCB2aWV3cyBkbyBu
b3QgbmVlZCB0byBiZSBhd2FyZSB0aGF0IGEgZmluZCBzZXNzaW9uIGhhcworICAgICAgICBiZWd1
biwgYXMgdGhleSBkbyBub3QgZHJhdyBhbiBvdmVybGF5LgorCisgICAgICAgICgtW1dLV2ViVmll
dyBmaW5kSW50ZXJhY3Rpb246ZGlkRW5kRmluZFNlc3Npb246XSk6CisKKyAgICAgICAgQ3VzdG9t
IGNvbnRlbnQgdmlld3MgZG8gbm90IG5lZWQgdG8gYmUgYXdhcmUgdGhhdCBhIGZpbmQgc2Vzc2lv
biBoYXMKKyAgICAgICAgYmVndW4sIGFzIHRoZXkgZG8gbm90IGRyYXcgYW4gb3ZlcmxheS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisKKyAg
ICAgICAgRGVjbGFyZSB0aGUgb2xkIF9VSVRleHRTZWFyY2hpbmcgbWV0aG9kcyBleHBsaWNpdGx5
LCBhcyB3ZSBuZWVkIHRvCisgICAgICAgIG1haW50YWluIHN1cHBvcnQgZm9yIGludGVybmFsIGNs
aWVudHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwZXJmb3JtVGV4dFNlYXJjaFdpdGhRdWVy
eVN0cmluZzp1c2luZ09wdGlvbnM6cmVzdWx0QWdncmVnYXRvcjpdKToKKyAgICAgICAgKC1bV0tD
b250ZW50VmlldyByZXBsYWNlRm91bmRUZXh0SW5SYW5nZTppbkRvY3VtZW50OndpdGhUZXh0Ol0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRlY29yYXRlRm91bmRUZXh0UmFuZ2U6aW5Eb2N1
bWVudDp1c2luZ1N0eWxlOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNjcm9sbFJhbmdl
VG9WaXNpYmxlOmluRG9jdW1lbnQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgb2Zmc2V0
RnJvbVBvc2l0aW9uOnRvUG9zaXRpb246aW5Eb2N1bWVudDpdKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBjb21wYXJlRm91bmRSYW5nZTp0b1JhbmdlOmluRG9jdW1lbnQ6XSk6CisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW06CisgICAgICAgICgtW1dLUERGVmlldyBjb21w
YXJlRm91bmRSYW5nZTp0b1JhbmdlOmluRG9jdW1lbnQ6XSk6CisgICAgICAgICgtW1dLUERGVmll
dyBwZXJmb3JtVGV4dFNlYXJjaFdpdGhRdWVyeVN0cmluZzp1c2luZ09wdGlvbnM6cmVzdWx0QWdn
cmVnYXRvcjpdKToKKyAgICAgICAgKC1bV0tQREZWaWV3IGRlY29yYXRlRm91bmRUZXh0UmFuZ2U6
aW5Eb2N1bWVudDp1c2luZ1N0eWxlOl0pOgorCiAyMDIyLTA0LTE1ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBTZXJ2aWNlV29ya2VyLnBvc3RNZXNzYWdlKCkg
ZG9lc24ndCB3b3JrIGZyb20gaW5zaWRlIGlmcmFtZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCmluZGV4IDVjZWM3ZGM2MjM3OGYyNDM3MmI0MDM5OGIx
NWVkZDQ4OGJkMDk0YTEuLmI2OTc4OTY2YzY3YmM3YjMwMDBhNGE1MWZiZGM1ODA0OGI0YmFhODMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3LmgKQEAg
LTMzLDYgKzMzLDEwIEBACiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKKyNpZiBUQVJHRVRf
T1NfSVBIT05FCitAY2xhc3MgVUlGaW5kSW50ZXJhY3Rpb247CisjZW5kaWYKKwogQGNsYXNzIFdL
QmFja0ZvcndhcmRMaXN0OwogQGNsYXNzIFdLQmFja0ZvcndhcmRMaXN0SXRlbTsKIEBjbGFzcyBX
S0NvbnRlbnRXb3JsZDsKQEAgLTY0Niw2ICs2NTAsMTYgQEAgVGhlIHVuaWZvcm0gdHlwZSBpZGVu
dGlmaWVyIGtVVFR5cGVXZWJBcmNoaXZlIGNhbiBiZSB1c2VkIGdldCB0aGUgcmVsYXRlZCBwYXN0
ZWIKIC0gKHZvaWQpc2V0TWluaW11bVZpZXdwb3J0SW5zZXQ6KE5TRWRnZUluc2V0cyltaW5pbXVt
Vmlld3BvcnRJbnNldCBtYXhpbXVtVmlld3BvcnRJbnNldDooTlNFZGdlSW5zZXRzKW1heGltdW1W
aWV3cG9ydEluc2V0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOwogI2VuZGlm
CiAKKyNpZiBUQVJHRVRfT1NfSVBIT05FCisKKy8qISBAYWJzdHJhY3QgRW5hYmxlcyB0aGUgd2Vi
IHZpZXcncyBidWlsdC1pbiBmaW5kIGludGVyYWN0aW9uLiAqLworQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWR3cml0ZSwgZ2V0dGVyPWlzRmluZEludGVyYWN0aW9uRW5hYmxlZCkgQk9PTCBmaW5k
SW50ZXJhY3Rpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKwor
LyohIEBhYnN0cmFjdCBJZiAgQGxpbmsgZmluZEludGVyYWN0aW9uRW5hYmxlZCBAL2xpbmsgaXMg
c2V0IHRvIHRydWUsIHJldHVybnMgdGhpcyB3ZWIgdmlldydzIGJ1aWx0LWluIGZpbmQgaW50ZXJh
Y3Rpb24uIE90aGVyd2lzZSwgbmlsLiAqLworQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxl
LCByZWFkb25seSkgVUlGaW5kSW50ZXJhY3Rpb24gKmZpbmRJbnRlcmFjdGlvbiBXS19BUElfQVZB
SUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CisKKyNlbmRpZgorCiBAZW5kCiAKICNpZiAhVEFSR0VU
X09TX0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0KaW5kZXggYWIwNzRjYjRiMzMxMDRmNWI4OTdhZTljY2FiNDI5ODFlNGZlMjVkOS4uOTQ3
MWI2ZWY2Zjc0MjI5OWJmMTdmNDYyZDQ4MTE5ZmFiNWU3ZTM4NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xNDM0LDYgKzE0MzQsMzcg
QEAgaW5saW5lIE9wdGlvblNldDxXZWJLaXQ6OkZpbmRPcHRpb25zPiB0b0ZpbmRPcHRpb25zKFdL
RmluZENvbmZpZ3VyYXRpb24gKmNvbmZpZ3UKIH0KICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFN
SUxZKQogCisjaWYgSEFWRShVSUZJTkRJTlRFUkFDVElPTikKKworLSAoQk9PTClmaW5kSW50ZXJh
Y3Rpb25FbmFibGVkCit7CisgICAgcmV0dXJuIF9maW5kSW50ZXJhY3Rpb25FbmFibGVkOworfQor
CistICh2b2lkKXNldEZpbmRJbnRlcmFjdGlvbkVuYWJsZWQ6KEJPT0wpZW5hYmxlZAoreworICAg
IGlmIChfZmluZEludGVyYWN0aW9uRW5hYmxlZCAhPSBlbmFibGVkKSB7CisgICAgICAgIF9maW5k
SW50ZXJhY3Rpb25FbmFibGVkID0gZW5hYmxlZDsKKworICAgICAgICBpZiAoZW5hYmxlZCkgewor
ICAgICAgICAgICAgaWYgKCFfZmluZEludGVyYWN0aW9uKQorICAgICAgICAgICAgICAgIF9maW5k
SW50ZXJhY3Rpb24gPSBhZG9wdE5TKFtbVUlGaW5kSW50ZXJhY3Rpb24gYWxsb2NdIGluaXRXaXRo
U2Vzc2lvbkRlbGVnYXRlOnNlbGZdKTsKKworICAgICAgICAgICAgW3NlbGYgYWRkSW50ZXJhY3Rp
b246X2ZpbmRJbnRlcmFjdGlvbi5nZXQoKV07CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBbc2VsZiByZW1vdmVJbnRlcmFjdGlvbjpfZmluZEludGVyYWN0aW9uLmdldCgpXTsKKyAgICAg
ICAgICAgIF9maW5kSW50ZXJhY3Rpb24gPSBuaWw7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy0g
KFVJRmluZEludGVyYWN0aW9uICopZmluZEludGVyYWN0aW9uCit7CisgICAgcmV0dXJuIF9maW5k
SW50ZXJhY3Rpb24uZ2V0KCk7Cit9CisKKyNlbmRpZiAvLyBIQVZFKFVJRklORElOVEVSQUNUSU9O
KQorCiAjcHJhZ21hIG1hcmsgLSBtYWNPUyBBUEkKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5h
bC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFs
LmgKaW5kZXggNTJiNjM5NzQ5Yzg2YmZhNjY3NmM0NDJiZWFjY2E3NGYxY2FlOGViZS4uMDdkN2U4
ZTdiZDcwNjNkMjM1ODkyZThmNmJhOTJkMmZjYzAxNTJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKQEAgLTE2Myw3
ICsxNjMsNyBAQCBjbGFzcyBWaWV3R2VzdHVyZUNvbnRyb2xsZXI7CiAjZW5kaWYKIAogI2lmIEhB
VkUoVUlGSU5ESU5URVJBQ1RJT04pCi0gICAgUmV0YWluUHRyPF9VSUZpbmRJbnRlcmFjdGlvbj4g
X2ZpbmRJbnRlcmFjdGlvbjsKKyAgICBSZXRhaW5QdHI8VUlGaW5kSW50ZXJhY3Rpb24+IF9maW5k
SW50ZXJhY3Rpb247CiAgICAgQk9PTCBfZmluZEludGVyYWN0aW9uRW5hYmxlZDsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaAppbmRleCAxM2RkNjFiNzQwM2VlZmZjYTRkM2RlNjlkOWVkZWVhNmU2YjBlNmEwLi5l
MTRhZDhhNjhmOWJjZjkyZGU1MjIzMmY4OTk0YTQyZDFlNTBmMGE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTQ5
Myw3ICs0OTMsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgV0tEaXNwbGF5Q2Fw
dHVyZVN1cmZhY2VzKSB7CiAjaWYgVEFSR0VUX09TX0lQSE9ORQogCiAjaWYgIVRBUkdFVF9PU19U
ViAmJiAhVEFSR0VUX09TX1dBVENIICYmIF9faGFzX2luY2x1ZGUoPFVJS2l0L19VSVRleHRTZWFy
Y2hpbmcuaD4pCi1AaW50ZXJmYWNlIFdLV2ViVmlldyAoV0tQcml2YXRlSU9TKSA8X1VJVGV4dFNl
YXJjaGluZz4KK0BpbnRlcmZhY2UgV0tXZWJWaWV3IChXS1ByaXZhdGVJT1MpIDxfVUlUZXh0U2Vh
cmNoaW5nLCBVSVRleHRTZWFyY2hpbmcsIFVJRmluZEludGVyYWN0aW9uRGVsZWdhdGU+CiAjZWxz
ZQogQGludGVyZmFjZSBXS1dlYlZpZXcgKFdLUHJpdmF0ZUlPUykKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgKaW5kZXggNDlkYWM5OTNl
MjViYjVlY2FmNjQ3YTJiZGQyNWI0MWE3MTRlZDc3ZC4uYjMzZGFiNmU1OGY2NjA0MjQyZmYyNTc0
YzA4ZDFkZGVkYWVjYTMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2lvcy9XS1dlYlZpZXdJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9z
L1dLV2ViVmlld0lPUy5oCkBAIC0xMzUsNyArMTM1LDcgQEAgZW51bSBjbGFzcyBUYXBIYW5kbGlu
Z1Jlc3VsdCA6IHVpbnQ4X3Q7CiAtICh2b2lkKWZpbmRQcmV2aW91czooaWQpc2VuZGVyOwogLSAo
dm9pZClmaW5kQW5kUmVwbGFjZTooaWQpc2VuZGVyOwogCi0tIChpZDxfVUlUZXh0U2VhcmNoaW5n
Pilfc2VhcmNoYWJsZU9iamVjdDsKKy0gKGlkPFVJVGV4dFNlYXJjaGluZz4pX3NlYXJjaGFibGVP
YmplY3Q7CiAjZW5kaWYKIAogLSAodm9pZClfbmV4dEFjY2Vzc29yeVRhYjooaWQpc2VuZGVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQppbmRl
eCBiYzM5YjU5YzE0MTc2MjU5ZWRiYzM3MjgzNjhiYzgyZmUyNWQ5NjY1Li4yYzRjNDIwZWJkMWYw
ZGE1MDdkMzNiMTk4NWI4Nzc0NDRjYmUzY2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQpAQCAtNzc5LDEwICs3NzksOCBAQCBzdGF0aWMg
V2ViQ29yZTo6Q29sb3Igc2Nyb2xsVmlld0JhY2tncm91bmRDb2xvcihXS1dlYlZpZXcgKndlYlZp
ZXcsIEFsbG93UGFnZUJhYwogICAgICAgICBbX3Njcm9sbFZpZXcgX3N0b3BTY3JvbGxpbmdBbmRa
b29taW5nQW5pbWF0aW9uc107CiAKICNpZiBIQVZFKFVJRklORElOVEVSQUNUSU9OKQotICAgIGlm
IChfZmluZEludGVyYWN0aW9uRW5hYmxlZCkgeworICAgIGlmIChfZmluZEludGVyYWN0aW9uRW5h
YmxlZCkKICAgICAgICAgW19maW5kSW50ZXJhY3Rpb24gZGlzbWlzc0ZpbmROYXZpZ2F0b3JdOwot
ICAgICAgICBbX2ZpbmRJbnRlcmFjdGlvbiBzZXRTZWFyY2hhYmxlT2JqZWN0OltzZWxmIF9zZWFy
Y2hhYmxlT2JqZWN0XV07Ci0gICAgfQogI2VuZGlmCiB9CiAKQEAgLTI3MTUsMTAgKzI3MTMsMTAg
QEAgc3RhdGljIFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gdG9Vc2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKFVJU2UKIAogI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04p
CiAKLS0gKGlkPF9VSVRleHRTZWFyY2hpbmc+KV9zZWFyY2hhYmxlT2JqZWN0CistIChpZDxVSVRl
eHRTZWFyY2hpbmc+KV9zZWFyY2hhYmxlT2JqZWN0CiB7Ci0gICAgaWYgKFtfY3VzdG9tQ29udGVu
dFZpZXcgY29uZm9ybXNUb1Byb3RvY29sOkBwcm90b2NvbChfVUlUZXh0U2VhcmNoaW5nKV0pCi0g
ICAgICAgIHJldHVybiAoaWQ8X1VJVGV4dFNlYXJjaGluZz4pX2N1c3RvbUNvbnRlbnRWaWV3Lmdl
dCgpOworICAgIGlmIChbX2N1c3RvbUNvbnRlbnRWaWV3IGNvbmZvcm1zVG9Qcm90b2NvbDpAcHJv
dG9jb2woVUlUZXh0U2VhcmNoaW5nKV0pCisgICAgICAgIHJldHVybiAoaWQ8VUlUZXh0U2VhcmNo
aW5nPilfY3VzdG9tQ29udGVudFZpZXcuZ2V0KCk7CiAKICAgICByZXR1cm4gX2NvbnRlbnRWaWV3
LmdldCgpOwogfQpAQCAtMzU2MSwyOCArMzU1OSwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cz4gdmlld3BvcnRBcmd1bWVudHNGcm9tRGljdGlvbmFy
eQogCiAtICh2b2lkKV9zZXRGaW5kSW50ZXJhY3Rpb25FbmFibGVkOihCT09MKWVuYWJsZWQKIHsK
LSAgICBpZiAoX2ZpbmRJbnRlcmFjdGlvbkVuYWJsZWQgIT0gZW5hYmxlZCkgewotICAgICAgICBf
ZmluZEludGVyYWN0aW9uRW5hYmxlZCA9IGVuYWJsZWQ7Ci0KLSAgICAgICAgaWYgKGVuYWJsZWQp
IHsKLSAgICAgICAgICAgIGlmICghX2ZpbmRJbnRlcmFjdGlvbikgewotICAgICAgICAgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0gICAgICAgICAgICAgICAgX2Zp
bmRJbnRlcmFjdGlvbiA9IGFkb3B0TlMoW1tfVUlGaW5kSW50ZXJhY3Rpb24gYWxsb2NdIGluaXRd
KTsKLSAgICAgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKLSAg
ICAgICAgICAgICAgICBbX2ZpbmRJbnRlcmFjdGlvbiBzZXRTZWFyY2hhYmxlT2JqZWN0OltzZWxm
IF9zZWFyY2hhYmxlT2JqZWN0XV07Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIFtzZWxm
IGFkZEludGVyYWN0aW9uOl9maW5kSW50ZXJhY3Rpb24uZ2V0KCldOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgW3NlbGYgcmVtb3ZlSW50ZXJhY3Rpb246X2ZpbmRJbnRlcmFjdGlvbi5n
ZXQoKV07Ci0gICAgICAgICAgICBfZmluZEludGVyYWN0aW9uID0gbmlsOwotICAgICAgICB9Ci0g
ICAgfQorICAgIFtzZWxmIHNldEZpbmRJbnRlcmFjdGlvbkVuYWJsZWQ6ZW5hYmxlZF07CiB9CiAK
IC0gKF9VSUZpbmRJbnRlcmFjdGlvbiAqKV9maW5kSW50ZXJhY3Rpb24KIHsKLSAgICByZXR1cm4g
X2ZpbmRJbnRlcmFjdGlvbi5nZXQoKTsKKyAgICByZXR1cm4gKF9VSUZpbmRJbnRlcmFjdGlvbiAq
KV9maW5kSW50ZXJhY3Rpb24uZ2V0KCk7CiB9CiAKIC0gKFVJVGV4dFJhbmdlICopc2VsZWN0ZWRU
ZXh0UmFuZ2UKQEAgLTM1OTEsMzAgKzM1NzMsMzMgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6Vmlld3BvcnRBcmd1bWVudHM+IHZpZXdwb3J0QXJndW1lbnRzRnJvbURpY3Rpb25hcnkK
IH0KIAogQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfQkVHSU4KLS0gKE5TSW50ZWdl
cilvZmZzZXRGcm9tUG9zaXRpb246KFVJVGV4dFBvc2l0aW9uICopZnJvbSB0b1Bvc2l0aW9uOihV
SVRleHRQb3NpdGlvbiAqKXRvUG9zaXRpb24gaW5Eb2N1bWVudDooX1VJVGV4dFNlYXJjaERvY3Vt
ZW50SWRlbnRpZmllcilkb2N1bWVudAorLSAoTlNJbnRlZ2VyKW9mZnNldEZyb21Qb3NpdGlvbjoo
VUlUZXh0UG9zaXRpb24gKilmcm9tIHRvUG9zaXRpb246KFVJVGV4dFBvc2l0aW9uICopdG9Qb3Np
dGlvbiBpbkRvY3VtZW50OihVSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQK
IHsKLSAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHJldHVybiBb
X2NvbnRlbnRWaWV3IG9mZnNldEZyb21Qb3NpdGlvbjpmcm9tIHRvUG9zaXRpb246dG9Qb3NpdGlv
biBpbkRvY3VtZW50OmRvY3VtZW50XTsKLSAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKIH0KIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogCi0tIChOU0Nv
bXBhcmlzb25SZXN1bHQpY29tcGFyZUZvdW5kUmFuZ2U6KFVJVGV4dFJhbmdlICopZnJvbVJhbmdl
IHRvUmFuZ2U6KFVJVGV4dFJhbmdlICopdG9SYW5nZSBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNo
RG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50CistIChOU0NvbXBhcmlzb25SZXN1bHQpY29tcGFy
ZUZvdW5kUmFuZ2U6KFVJVGV4dFJhbmdlICopZnJvbVJhbmdlIHRvUmFuZ2U6KFVJVGV4dFJhbmdl
ICopdG9SYW5nZSBpbkRvY3VtZW50OihVSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9j
dW1lbnQKIHsKICAgICByZXR1cm4gW19jb250ZW50VmlldyBjb21wYXJlRm91bmRSYW5nZTpmcm9t
UmFuZ2UgdG9SYW5nZTp0b1JhbmdlIGluRG9jdW1lbnQ6ZG9jdW1lbnRdOwogfQogCi0tICh2b2lk
KXBlcmZvcm1UZXh0U2VhcmNoV2l0aFF1ZXJ5U3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyB1c2lu
Z09wdGlvbnM6KF9VSVRleHRTZWFyY2hPcHRpb25zICopb3B0aW9ucyByZXN1bHRBZ2dyZWdhdG9y
OihpZDxfVUlUZXh0U2VhcmNoQWdncmVnYXRvcj4pYWdncmVnYXRvcgorLSAodm9pZClwZXJmb3Jt
VGV4dFNlYXJjaFdpdGhRdWVyeVN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgdXNpbmdPcHRpb25z
OihVSVRleHRTZWFyY2hPcHRpb25zICopb3B0aW9ucyByZXN1bHRBZ2dyZWdhdG9yOihpZDxVSVRl
eHRTZWFyY2hBZ2dyZWdhdG9yPilhZ2dyZWdhdG9yCiB7CiAgICAgW19jb250ZW50VmlldyBwZXJm
b3JtVGV4dFNlYXJjaFdpdGhRdWVyeVN0cmluZzpzdHJpbmcgdXNpbmdPcHRpb25zOm9wdGlvbnMg
cmVzdWx0QWdncmVnYXRvcjphZ2dyZWdhdG9yXTsKIH0KIAotLSAodm9pZClkZWNvcmF0ZUZvdW5k
VGV4dFJhbmdlOihVSVRleHRSYW5nZSAqKXJhbmdlIGluRG9jdW1lbnQ6KF9VSVRleHRTZWFyY2hE
b2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQgdXNpbmdTdHlsZTooX1VJRm91bmRUZXh0U3R5bGUp
c3R5bGUKKy0gKHZvaWQpcmVwbGFjZUZvdW5kVGV4dEluUmFuZ2U6KFVJVGV4dFJhbmdlICopcmFu
Z2UgaW5Eb2N1bWVudDooVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50IHdp
dGhUZXh0OihOU1N0cmluZyAqKXJlcGxhY2VtZW50VGV4dAoreworICAgIFtfY29udGVudFZpZXcg
cmVwbGFjZUZvdW5kVGV4dEluUmFuZ2U6cmFuZ2UgaW5Eb2N1bWVudDpkb2N1bWVudCB3aXRoVGV4
dDpyZXBsYWNlbWVudFRleHRdOworfQorCistICh2b2lkKWRlY29yYXRlRm91bmRUZXh0UmFuZ2U6
KFVJVGV4dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDooVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVu
dGlmaWVyKWRvY3VtZW50IHVzaW5nU3R5bGU6KFVJVGV4dFNlYXJjaEZvdW5kVGV4dFN0eWxlKXN0
eWxlCiB7CiAgICAgW19jb250ZW50VmlldyBkZWNvcmF0ZUZvdW5kVGV4dFJhbmdlOnJhbmdlIGlu
RG9jdW1lbnQ6ZG9jdW1lbnQgdXNpbmdTdHlsZTpzdHlsZV07CiB9CiAKLS0gKHZvaWQpc2Nyb2xs
UmFuZ2VUb1Zpc2libGU6KFVJVGV4dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDooX1VJVGV4dFNl
YXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudAorLSAodm9pZClzY3JvbGxSYW5nZVRvVmlz
aWJsZTooVUlUZXh0UmFuZ2UgKilyYW5nZSBpbkRvY3VtZW50OihVSVRleHRTZWFyY2hEb2N1bWVu
dElkZW50aWZpZXIpZG9jdW1lbnQKIHsKICAgICBbX2NvbnRlbnRWaWV3IHNjcm9sbFJhbmdlVG9W
aXNpYmxlOnJhbmdlIGluRG9jdW1lbnQ6ZG9jdW1lbnRdOwogfQpAQCAtMzYzOSw2ICszNjI0LDI0
IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgIFtfY29udGVudFZp
ZXcgcmVxdWVzdFJlY3RGb3JGb3VuZFRleHRSYW5nZTpyYW5nZXMgY29tcGxldGlvbkhhbmRsZXI6
Y29tcGxldGlvbkhhbmRsZXJdOwogfQogCistIChVSUZpbmRTZXNzaW9uICopZmluZEludGVyYWN0
aW9uOihVSUZpbmRJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHNlc3Npb25Gb3JWaWV3OihVSVZp
ZXcgKil2aWV3Cit7CisgICAgYXV0byBmaW5kU2Vzc2lvbiA9IGFkb3B0TlMoW1tVSVRleHRTZWFy
Y2hpbmdGaW5kU2Vzc2lvbiBhbGxvY10gaW5pdFdpdGhTZWFyY2hhYmxlT2JqZWN0OltzZWxmIF9z
ZWFyY2hhYmxlT2JqZWN0XV0pOworICAgIHJldHVybiBmaW5kU2Vzc2lvbi5hdXRvcmVsZWFzZSgp
OworfQorCistICh2b2lkKWZpbmRJbnRlcmFjdGlvbjooVUlGaW5kSW50ZXJhY3Rpb24gKilpbnRl
cmFjdGlvbiBkaWRCZWdpbkZpbmRTZXNzaW9uOihVSUZpbmRTZXNzaW9uICopc2Vzc2lvbgorewor
ICAgIGlmIChbc2VsZiBfc2VhcmNoYWJsZU9iamVjdF0gPT0gX2NvbnRlbnRWaWV3LmdldCgpKQor
ICAgICAgICBbX2NvbnRlbnRWaWV3IGRpZEJlZ2luVGV4dFNlYXJjaE9wZXJhdGlvbl07Cit9CisK
Ky0gKHZvaWQpZmluZEludGVyYWN0aW9uOihVSUZpbmRJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9u
IGRpZEVuZEZpbmRTZXNzaW9uOihVSUZpbmRTZXNzaW9uICopc2Vzc2lvbgoreworICAgIGlmIChb
c2VsZiBfc2VhcmNoYWJsZU9iamVjdF0gPT0gX2NvbnRlbnRWaWV3LmdldCgpKQorICAgICAgICBb
X2NvbnRlbnRWaWV3IGRpZEVuZFRleHRTZWFyY2hPcGVyYXRpb25dOworfQorCiAjZW5kaWYgLy8g
SEFWRShVSUZJTkRJTlRFUkFDVElPTikKIAogQGVuZCAvLyBXS1dlYlZpZXcgKFdLUHJpdmF0ZUlP
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24uaAppbmRleCA1MTgzZDQ4NmM0MTkwMTRkOTI1ZTI2Yzk4ZmU3YmQxZDY0Y2Yz
MGEyLi5kMzhjY2RkMDg2ZmRlMTY2MWM1ZDdiOGFlNTVhYTYxZTMyZmE5M2M1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5oCkBAIC01NjUsNyArNTY1LDcgQEAgdXNpbmcgSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlm
aWVyID0gT2JqZWN0SWRlbnRpZmllcjxJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW4KICAgICAsIFdL
SG92ZXJQbGF0dGVyRGVsZWdhdGUKICNlbmRpZgogI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04p
Ci0gICAgLCBfVUlUZXh0U2VhcmNoaW5nCisgICAgLCBVSVRleHRTZWFyY2hpbmcKICNlbmRpZgog
PgogCkBAIC03OTcsNyArNzk3LDEwIEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19B
Q1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAjZW5kaWYK
IAogI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04pCi0tIChOU0NvbXBhcmlzb25SZXN1bHQpY29t
cGFyZUZvdW5kUmFuZ2U6KFVJVGV4dFJhbmdlICopZnJvbVJhbmdlIHRvUmFuZ2U6KFVJVGV4dFJh
bmdlICopdG9SYW5nZSBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVy
KWRvY3VtZW50OworLSAoTlNJbnRlZ2VyKW9mZnNldEZyb21Qb3NpdGlvbjooVUlUZXh0UG9zaXRp
b24gKilmcm9tIHRvUG9zaXRpb246KFVJVGV4dFBvc2l0aW9uICopdG9Qb3NpdGlvbiBpbkRvY3Vt
ZW50OihVSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQ7CistICh2b2lkKWRp
ZEJlZ2luVGV4dFNlYXJjaE9wZXJhdGlvbjsKKy0gKHZvaWQpZGlkRW5kVGV4dFNlYXJjaE9wZXJh
dGlvbjsKKwogLSAodm9pZClyZXF1ZXN0UmVjdEZvckZvdW5kVGV4dFJhbmdlOihVSVRleHRSYW5n
ZSAqKXJhbmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShDR1JlY3QpKWNvbXBsZXRpb25I
YW5kbGVyOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDYxNmQyOTE4ZTlhMmQwOGYzZmIy
YTkxZGZlMDBjMDNlNGRhZmFmNmYuLmJjYjEyODQyNzYxODk5OGJkYmJmZTcxOGUwYmQxNTRhM2Nh
YWMyOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMTAzOTksMTQgKzEwMzk5LDE0IEBAIHN0YXRpYyBS
ZXRhaW5QdHI8TlNJdGVtUHJvdmlkZXI+IGNyZWF0ZUl0ZW1Qcm92aWRlcihjb25zdCBXZWJLaXQ6
OldlYlBhZ2VQcm94eSYKICAgICBbc2VsZi53ZWJWaWV3Ll9maW5kSW50ZXJhY3Rpb24gcHJlc2Vu
dEZpbmROYXZpZ2F0b3JTaG93aW5nUmVwbGFjZTpZRVNdOwogfQogCi0tICh2b2lkKXBlcmZvcm1U
ZXh0U2VhcmNoV2l0aFF1ZXJ5U3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyB1c2luZ09wdGlvbnM6
KF9VSVRleHRTZWFyY2hPcHRpb25zICopb3B0aW9ucyByZXN1bHRBZ2dyZWdhdG9yOihpZDxfVUlU
ZXh0U2VhcmNoQWdncmVnYXRvcj4pYWdncmVnYXRvcgorLSAodm9pZClwZXJmb3JtVGV4dFNlYXJj
aFdpdGhRdWVyeVN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgdXNpbmdPcHRpb25zOihVSVRleHRT
ZWFyY2hPcHRpb25zICopb3B0aW9ucyByZXN1bHRBZ2dyZWdhdG9yOihpZDxVSVRleHRTZWFyY2hB
Z2dyZWdhdG9yPilhZ2dyZWdhdG9yCiB7CiAgICAgT3B0aW9uU2V0PFdlYktpdDo6RmluZE9wdGlv
bnM+IGZpbmRPcHRpb25zOwogICAgIHN3aXRjaCAob3B0aW9ucy53b3JkTWF0Y2hNZXRob2QpIHsK
LSAgICBjYXNlIF9VSVRleHRTZWFyY2hNYXRjaE1ldGhvZFN0YXJ0c1dpdGg6CisgICAgY2FzZSBV
SVRleHRTZWFyY2hNYXRjaE1ldGhvZFN0YXJ0c1dpdGg6CiAgICAgICAgIGZpbmRPcHRpb25zLmFk
ZChXZWJLaXQ6OkZpbmRPcHRpb25zOjpBdFdvcmRTdGFydHMpOwogICAgICAgICBicmVhazsKLSAg
ICBjYXNlIF9VSVRleHRTZWFyY2hNYXRjaE1ldGhvZEZ1bGxXb3JkOgorICAgIGNhc2UgVUlUZXh0
U2VhcmNoTWF0Y2hNZXRob2RGdWxsV29yZDoKICAgICAgICAgZmluZE9wdGlvbnMuYWRkKHsgV2Vi
S2l0OjpGaW5kT3B0aW9uczo6QXRXb3JkU3RhcnRzLCBXZWJLaXQ6OkZpbmRPcHRpb25zOjpBdFdv
cmRFbmRzIH0pOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpAQCAtMTA0MjgsNyArMTA0
MjgsNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TSXRlbVByb3ZpZGVyPiBjcmVhdGVJdGVtUHJvdmlk
ZXIoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmCiAgICAgfSk7CiB9CiAKLS0gKHZvaWQpcmVw
bGFjZUZvdW5kVGV4dEluUmFuZ2U6KFVJVGV4dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDooX1VJ
VGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudCB3aXRoVGV4dDooTlNTdHJpbmcg
KilyZXBsYWNlbWVudFRleHQKKy0gKHZvaWQpcmVwbGFjZUZvdW5kVGV4dEluUmFuZ2U6KFVJVGV4
dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDooVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVy
KWRvY3VtZW50IHdpdGhUZXh0OihOU1N0cmluZyAqKXJlcGxhY2VtZW50VGV4dAogewogICAgIGlm
ICghc2VsZi5zdXBwb3J0c1RleHRSZXBsYWNlbWVudCkKICAgICAgICAgcmV0dXJuOwpAQCAtMTA0
NDAsMjIgKzEwNDQwLDIyIEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNJdGVtUHJvdmlkZXI+IGNyZWF0
ZUl0ZW1Qcm92aWRlcihjb25zdCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYKICAgICBfcGFnZS0+cmVw
bGFjZUZvdW5kVGV4dFJhbmdlV2l0aFN0cmluZyhbZm91bmRUZXh0UmFuZ2Ugd2ViRm91bmRUZXh0
UmFuZ2VdLCByZXBsYWNlbWVudFRleHQpOwogfQogCi0tICh2b2lkKWRlY29yYXRlRm91bmRUZXh0
UmFuZ2U6KFVJVGV4dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDooX1VJVGV4dFNlYXJjaERvY3Vt
ZW50SWRlbnRpZmllcilkb2N1bWVudCB1c2luZ1N0eWxlOihfVUlGb3VuZFRleHRTdHlsZSlzdHls
ZQorLSAodm9pZClkZWNvcmF0ZUZvdW5kVGV4dFJhbmdlOihVSVRleHRSYW5nZSAqKXJhbmdlIGlu
RG9jdW1lbnQ6KFVJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudCB1c2luZ1N0
eWxlOihVSVRleHRTZWFyY2hGb3VuZFRleHRTdHlsZSlzdHlsZQogewogICAgIGF1dG8gZm91bmRU
ZXh0UmFuZ2UgPSBkeW5hbWljX29iamNfY2FzdDxXS0ZvdW5kVGV4dFJhbmdlPihyYW5nZSk7CiAg
ICAgaWYgKCFmb3VuZFRleHRSYW5nZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBkZWNv
cmF0aW9uU3R5bGUgPSBXZWJLaXQ6OkZpbmREZWNvcmF0aW9uU3R5bGU6Ok5vcm1hbDsKLSAgICBp
ZiAoc3R5bGUgPT0gX1VJRm91bmRUZXh0U3R5bGVGb3VuZCkKKyAgICBpZiAoc3R5bGUgPT0gVUlU
ZXh0U2VhcmNoRm91bmRUZXh0U3R5bGVGb3VuZCkKICAgICAgICAgZGVjb3JhdGlvblN0eWxlID0g
V2ViS2l0OjpGaW5kRGVjb3JhdGlvblN0eWxlOjpGb3VuZDsKLSAgICBlbHNlIGlmIChzdHlsZSA9
PSBfVUlGb3VuZFRleHRTdHlsZUhpZ2hsaWdodGVkKQorICAgIGVsc2UgaWYgKHN0eWxlID09IFVJ
VGV4dFNlYXJjaEZvdW5kVGV4dFN0eWxlSGlnaGxpZ2h0ZWQpCiAgICAgICAgIGRlY29yYXRpb25T
dHlsZSA9IFdlYktpdDo6RmluZERlY29yYXRpb25TdHlsZTo6SGlnaGxpZ2h0ZWQ7CiAKICAgICBf
cGFnZS0+ZGVjb3JhdGVUZXh0UmFuZ2VXaXRoU3R5bGUoW2ZvdW5kVGV4dFJhbmdlIHdlYkZvdW5k
VGV4dFJhbmdlXSwgZGVjb3JhdGlvblN0eWxlKTsKIH0KIAotLSAodm9pZClzY3JvbGxSYW5nZVRv
VmlzaWJsZTooVUlUZXh0UmFuZ2UgKilyYW5nZSBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNoRG9j
dW1lbnRJZGVudGlmaWVyKWRvY3VtZW50CistICh2b2lkKXNjcm9sbFJhbmdlVG9WaXNpYmxlOihV
SVRleHRSYW5nZSAqKXJhbmdlIGluRG9jdW1lbnQ6KFVJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRp
Zmllcilkb2N1bWVudAogewogICAgIGlmIChhdXRvIGZvdW5kVGV4dFJhbmdlID0gZHluYW1pY19v
YmpjX2Nhc3Q8V0tGb3VuZFRleHRSYW5nZT4ocmFuZ2UpKQogICAgICAgICBfcGFnZS0+c2Nyb2xs
VGV4dFJhbmdlVG9WaXNpYmxlKFtmb3VuZFRleHRSYW5nZSB3ZWJGb3VuZFRleHRSYW5nZV0pOwpA
QCAtMTA0ODEsMTQgKzEwNDgxLDEyIEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNJdGVtUHJvdmlkZXI+
IGNyZWF0ZUl0ZW1Qcm92aWRlcihjb25zdCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYKICAgICByZXR1
cm4gc2VsZi53ZWJWaWV3Ll9lZGl0YWJsZTsKIH0KIAotQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1F
TlRBVElPTlNfQkVHSU4KLS0gKE5TSW50ZWdlcilvZmZzZXRGcm9tUG9zaXRpb246KFVJVGV4dFBv
c2l0aW9uICopZnJvbSB0b1Bvc2l0aW9uOihVSVRleHRQb3NpdGlvbiAqKXRvUG9zaXRpb24gaW5E
b2N1bWVudDooX1VJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudAorLSAoTlNJ
bnRlZ2VyKW9mZnNldEZyb21Qb3NpdGlvbjooVUlUZXh0UG9zaXRpb24gKilmcm9tIHRvUG9zaXRp
b246KFVJVGV4dFBvc2l0aW9uICopdG9Qb3NpdGlvbiBpbkRvY3VtZW50OihVSVRleHRTZWFyY2hE
b2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQKIHsKICAgICByZXR1cm4gW3NlbGYgb2Zmc2V0RnJv
bVBvc2l0aW9uOmZyb20gdG9Qb3NpdGlvbjp0b1Bvc2l0aW9uXTsKIH0KLUFMTE9XX0RFUFJFQ0FU
RURfSU1QTEVNRU5UQVRJT05TX0VORAogCi0tIChOU0NvbXBhcmlzb25SZXN1bHQpY29tcGFyZUZv
dW5kUmFuZ2U6KFVJVGV4dFJhbmdlICopZnJvbVJhbmdlIHRvUmFuZ2U6KFVJVGV4dFJhbmdlICop
dG9SYW5nZSBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3Vt
ZW50CistIChOU0NvbXBhcmlzb25SZXN1bHQpY29tcGFyZUZvdW5kUmFuZ2U6KFVJVGV4dFJhbmdl
ICopZnJvbVJhbmdlIHRvUmFuZ2U6KFVJVGV4dFJhbmdlICopdG9SYW5nZSBpbkRvY3VtZW50OihV
SVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQKIHsKICAgICBOU0ludGVnZXIg
b2Zmc2V0ID0gW3NlbGYgb2Zmc2V0RnJvbVBvc2l0aW9uOmZyb21SYW5nZS5zdGFydCB0b1Bvc2l0
aW9uOnRvUmFuZ2Uuc3RhcnRdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tQREZWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLUERGVmll
dy5tbQppbmRleCA4MDBjZTM5YWVlZDk2NDk1MmVhNWJiY2FiNTAzZGFhZWYwZjIyOGZjLi5mY2Jk
MTkyOGQ4OWE0YTlkNjkxNjQyMjI2MmQ0M2E4Mjk1M2NlMzIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS1BERlZpZXcubW0KQEAgLTEwOSw3ICsxMDksNyBAQAogCiBAaW50ZXJmYWNl
IFdLUERGVmlldyAoKSA8UERGSG9zdFZpZXdDb250cm9sbGVyRGVsZWdhdGUsIFdLQWN0aW9uU2hl
ZXRBc3Npc3RhbnREZWxlZ2F0ZQogI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04pCi0gICAgLCBf
VUlUZXh0U2VhcmNoaW5nCisgICAgLCBVSVRleHRTZWFyY2hpbmcKICNlbmRpZgogPgogQGVuZApA
QCAtMTM1LDcgKzEzNSw3IEBACiAgICAgUmV0YWluUHRyPFdLS2V5Ym9hcmRTY3JvbGxWaWV3QW5p
bWF0b3I+IF9rZXlib2FyZFNjcm9sbGluZ0FuaW1hdG9yOwogICAgIFJldGFpblB0cjxXS1NoYXJl
U2hlZXQ+IF9zaGFyZVNoZWV0OwogI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04pCi0gICAgUmV0
YWluUHRyPGlkPF9VSVRleHRTZWFyY2hBZ2dyZWdhdG9yPj4gX3NlYXJjaEFnZ3JlZ2F0b3I7Cisg
ICAgUmV0YWluUHRyPGlkPFVJVGV4dFNlYXJjaEFnZ3JlZ2F0b3I+PiBfc2VhcmNoQWdncmVnYXRv
cjsKICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IF9zZWFyY2hTdHJpbmc7CiAjZW5kaWYKIH0KQEAg
LTY4OCw3ICs2ODgsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBy
ZXR1cm4gW3VpRGVsZWdhdGUgX2RhdGFEZXRlY3Rpb25Db250ZXh0Rm9yV2ViVmlldzp3ZWJWaWV3
XTsKIH0KIAotI3ByYWdtYSBtYXJrIF9VSVRleHRTZWFyY2hpbmcKKyNwcmFnbWEgbWFyayBVSVRl
eHRTZWFyY2hpbmcKIAogI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04pCiAKQEAgLTY5Nyw3ICs2
OTcsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICByZXR1cm4gbmls
OwogfQogCi0tIChOU0NvbXBhcmlzb25SZXN1bHQpY29tcGFyZUZvdW5kUmFuZ2U6KFVJVGV4dFJh
bmdlICopZnJvbVJhbmdlIHRvUmFuZ2U6KFVJVGV4dFJhbmdlICopdG9SYW5nZSBpbkRvY3VtZW50
OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50CistIChOU0NvbXBhcmlz
b25SZXN1bHQpY29tcGFyZUZvdW5kUmFuZ2U6KFVJVGV4dFJhbmdlICopZnJvbVJhbmdlIHRvUmFu
Z2U6KFVJVGV4dFJhbmdlICopdG9SYW5nZSBpbkRvY3VtZW50OihVSVRleHRTZWFyY2hEb2N1bWVu
dElkZW50aWZpZXIpZG9jdW1lbnQKIHsKICAgICBhdXRvIGZyb20gPSBkeW5hbWljX29iamNfY2Fz
dDxXS1BERkZvdW5kVGV4dFBvc2l0aW9uPihmcm9tUmFuZ2Uuc3RhcnQpOwogICAgIGlmICghZnJv
bSkKQEAgLTcxNiw3ICs3MTYsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICByZXR1cm4gTlNPcmRlcmVkU2FtZTsKIH0KIAotLSAodm9pZClwZXJmb3JtVGV4dFNlYXJj
aFdpdGhRdWVyeVN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgdXNpbmdPcHRpb25zOihfVUlUZXh0
U2VhcmNoT3B0aW9ucyAqKW9wdGlvbnMgcmVzdWx0QWdncmVnYXRvcjooaWQ8X1VJVGV4dFNlYXJj
aEFnZ3JlZ2F0b3I+KWFnZ3JlZ2F0b3IKKy0gKHZvaWQpcGVyZm9ybVRleHRTZWFyY2hXaXRoUXVl
cnlTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIHVzaW5nT3B0aW9uczooVUlUZXh0U2VhcmNoT3B0
aW9ucyAqKW9wdGlvbnMgcmVzdWx0QWdncmVnYXRvcjooaWQ8VUlUZXh0U2VhcmNoQWdncmVnYXRv
cj4pYWdncmVnYXRvcgogewogICAgIFtfaG9zdFZpZXdDb250cm9sbGVyIGNhbmNlbEZpbmRTdHJp
bmddOwogICAgIF9zZWFyY2hBZ2dyZWdhdG9yID0gYWdncmVnYXRvcjsKQEAgLTcyNCw5ICs3MjQs
OSBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbX2hvc3RWaWV3Q29u
dHJvbGxlciBmaW5kU3RyaW5nOnN0cmluZyB3aXRoT3B0aW9uczpvcHRpb25zLnN0cmluZ0NvbXBh
cmVPcHRpb25zXTsKIH0KIAotLSAodm9pZClkZWNvcmF0ZUZvdW5kVGV4dFJhbmdlOihVSVRleHRS
YW5nZSAqKXJhbmdlIGluRG9jdW1lbnQ6KF9VSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIp
ZG9jdW1lbnQgdXNpbmdTdHlsZTooX1VJRm91bmRUZXh0U3R5bGUpc3R5bGUKKy0gKHZvaWQpZGVj
b3JhdGVGb3VuZFRleHRSYW5nZTooVUlUZXh0UmFuZ2UgKilyYW5nZSBpbkRvY3VtZW50OihVSVRl
eHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQgdXNpbmdTdHlsZTooVUlUZXh0U2Vh
cmNoRm91bmRUZXh0U3R5bGUpc3R5bGUKIHsKLSAgICBpZiAoc3R5bGUgIT0gX1VJRm91bmRUZXh0
U3R5bGVIaWdobGlnaHRlZCkKKyAgICBpZiAoc3R5bGUgIT0gVUlUZXh0U2VhcmNoRm91bmRUZXh0
U3R5bGVIaWdobGlnaHRlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBmb3VuZFRleHRS
YW5nZSA9IGR5bmFtaWNfb2JqY19jYXN0PFdLUERGRm91bmRUZXh0UmFuZ2U+KHJhbmdlKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhNGYxNjdi
MDU4NjQ5NmJmNGUwODkzYjkyMzBmODUzMGVmYjI5OGJhLi5iMjI4ZDMxYjE3YTlkOTNlYTc0YjAz
MjJlMjU1Y2JmNDA2ZDk3YTdlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjItMDQtMjEgIEFkaXR5YSBLZWVydGhp
ICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkZCBmaW5kIGludGVyYWN0
aW9uIEFQSSB0byBXS1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzOTYxMgorICAgICAgICByZGFyOi8vODg0NDI5MTgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdWdtZW50IGFuIGV4aXN0aW5n
IEFQSSB0ZXN0IHRvIHVzZSB0aGUgbmV3IEFQSSwgaW4gYWRkaXRpb24gdG8gdGhlCisgICAgICAg
IGV4aXN0aW5nIFNQSS4KKworICAgICAgICBUaGUgZmluZC1hbmQtcmVwbGFjZSB0ZXN0IGlzIHVw
ZGF0ZWQgdG8gYWNjb3VudCBmb3IgdGhlIGZhY3QgdGhhdCBhCisgICAgICAgIGZpbmQgaW50ZXJh
Y3Rpb24gbm8gbG9uZ2VyIGV4cG9zZXMgYSBzZWFyY2hhYmxlT2JqZWN0LiBJbnN0ZWFkLCB1c2UK
KyAgICAgICAgdGVzdC1vbmx5IFNQSSBvbiBXS1dlYlZpZXcgdG8gcGVyZm9ybSB0aGUgcmVwbGFj
ZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmluZEluUGFn
ZS5tbToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIyLTA0LTE0ICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFVuZG8gb3B0aW9uIGFmdGVyIGludm9raW5n
ICJNYXJrdXAgSW1hZ2UiIHNheXMgIlVuZG8gUGFzdGUiCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbmRJblBhZ2UubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbmRJblBhZ2UubW0KaW5kZXggYzZiNTFkYzZlOWE3
NThlMmNiYTgzYjdiOWU1NTNiZjk3OGNkMjM4My4uODFiNmMzYmMwYjhlNGQyMjI4OTIwNDU2NzU1
Y2JjNTFlMGM1Mjg4MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9GaW5kSW5QYWdlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvRmluZEluUGFnZS5tbQpAQCAtNTMwLDEzICs1MzAsMTMgQEAgVEVTVChXZWJLaXQs
IEZpbmRBbmRSZXBsYWNlKQogCiAgICAgW3dlYlZpZXcgX3NldEVkaXRhYmxlOk5PXTsKICAgICBm
b3IgKFVJVGV4dFJhbmdlICpyYW5nZSBpbiBbcmFuZ2VzIHJldmVyc2VPYmplY3RFbnVtZXJhdG9y
XSkKLSAgICAgICAgW1tbd2ViVmlldyBfZmluZEludGVyYWN0aW9uXSBzZWFyY2hhYmxlT2JqZWN0
XSByZXBsYWNlRm91bmRUZXh0SW5SYW5nZTpyYW5nZSBpbkRvY3VtZW50Om5pbCB3aXRoVGV4dDpy
ZXBsYWNlbWVudFN0cmluZ107CisgICAgICAgIFt3ZWJWaWV3IHJlcGxhY2VGb3VuZFRleHRJblJh
bmdlOnJhbmdlIGluRG9jdW1lbnQ6bmlsIHdpdGhUZXh0OnJlcGxhY2VtZW50U3RyaW5nXTsKIAog
ICAgIEVYUEVDVF9XS19TVFJFUShvcmlnaW5hbENvbnRlbnQsIFt3ZWJWaWV3IHN0cmluZ0J5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LmlubmVyVGV4dCJdKTsKIAogICAgIFt3
ZWJWaWV3IF9zZXRFZGl0YWJsZTpZRVNdOwogICAgIGZvciAoVUlUZXh0UmFuZ2UgKnJhbmdlIGlu
IFtyYW5nZXMgcmV2ZXJzZU9iamVjdEVudW1lcmF0b3JdKQotICAgICAgICBbW1t3ZWJWaWV3IF9m
aW5kSW50ZXJhY3Rpb25dIHNlYXJjaGFibGVPYmplY3RdIHJlcGxhY2VGb3VuZFRleHRJblJhbmdl
OnJhbmdlIGluRG9jdW1lbnQ6bmlsIHdpdGhUZXh0OnJlcGxhY2VtZW50U3RyaW5nXTsKKyAgICAg
ICAgW3dlYlZpZXcgcmVwbGFjZUZvdW5kVGV4dEluUmFuZ2U6cmFuZ2UgaW5Eb2N1bWVudDpuaWwg
d2l0aFRleHQ6cmVwbGFjZW1lbnRTdHJpbmddOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKHJlcGxh
Y2VkQ29udGVudCwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3Vt
ZW50LmJvZHkuaW5uZXJUZXh0Il0pOwogfQpAQCAtNTUyLDYgKzU1MiwxNCBAQCBURVNUKFdlYktp
dCwgRmluZEludGVyYWN0aW9uKQogCiAgICAgW3dlYlZpZXcgX3NldEZpbmRJbnRlcmFjdGlvbkVu
YWJsZWQ6Tk9dOwogICAgIEVYUEVDVF9OVUxMKFt3ZWJWaWV3IF9maW5kSW50ZXJhY3Rpb25dKTsK
KworICAgIEVYUEVDVF9OVUxMKFt3ZWJWaWV3IGZpbmRJbnRlcmFjdGlvbl0pOworCisgICAgW3dl
YlZpZXcgc2V0RmluZEludGVyYWN0aW9uRW5hYmxlZDpZRVNdOworICAgIEVYUEVDVF9OT1RfTlVM
TChbd2ViVmlldyBmaW5kSW50ZXJhY3Rpb25dKTsKKworICAgIFt3ZWJWaWV3IHNldEZpbmRJbnRl
cmFjdGlvbkVuYWJsZWQ6Tk9dOworICAgIEVYUEVDVF9OVUxMKFt3ZWJWaWV3IGZpbmRJbnRlcmFj
dGlvbl0pOwogfQogCiBURVNUKFdlYktpdCwgUmVxdWVzdFJlY3RGb3JGb3VuZFRleHRSYW5nZSkK
</data>
<flag name="review"
          id="486865"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458105</attachid>
            <date>2022-04-21 17:51:25 -0700</date>
            <delta_ts>2022-04-21 17:52:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239612-20220421175121.patch</filename>
            <type>text/plain</type>
            <size>25038</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBiNzAwMGEyNmE4YmM1YTI3
OGE3MGFkMmQ4NTBmMjU4ZGE2ZjZlYzMuLjViYTI5OTI4YTQwODQ5N2MxZDFiMTdmMDA5NzY5N2Ew
ZDVlYmRjMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODEgQEAKKzIwMjItMDQtMjEgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkZCBmaW5kIGlu
dGVyYWN0aW9uIEFQSSB0byBXS1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzOTYxMgorICAgICAgICByZGFyOi8vODg0NDI5MTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFByb21vdGUgdGhl
IGBfZmluZEludGVyYWN0aW9uYCBhbmQgYF9maW5kSW50ZXJhY3Rpb25FbmFibGVkYCBTUEkgdG8K
KyAgICAgICAgYGZpbmRJbnRlcmFjdGlvbmAgYW5kIGBmaW5kSW50ZXJhY3Rpb25FbmFibGVkYCBB
UEkuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gbWFrZSB0aGlzIGNoYW5nZSwgbmV3IFVJS2l0IG9i
amVjdHMgYW5kIHByb3RvY29scyBtdXN0IGJlCisgICAgICAgIGFkb3B0ZWQuIEV4aXN0aW5nIChk
ZXByZWNhdGVkKSBwcm90b2NvbCBjb25mb3JtYW5jZSBpcyBrZXB0IGFyb3VuZCB0bworICAgICAg
ICBhdm9pZCBicmVha2luZyBpbnRlcm5hbCBjbGllbnRzLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGZpbmRJbnRlcmFjdGlvbkVuYWJsZWRd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldEZpbmRJbnRlcmFjdGlvbkVuYWJsZWQ6XSk6Cisg
ICAgICAgICgtW1dLV2ViVmlldyBmaW5kSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisKKyAgICAgICAgRGVjbGFyZSBjb25mb3JtYW5j
ZSB0byB0aHJlZSBwcm90b2NvbHM6IF9VSVRleHRTZWFyY2hpbmcsIFVJVGV4dFNlYXJjaGluZywg
VUlGaW5kSW50ZXJhY3Rpb25EZWxlZ2F0ZS4KKworICAgICAgICBfVUlUZXh0U2VhcmNoaW5nOiBD
b25mb3JtYW5jZSBpcyBrZXB0IGFyb3VuZCB0byBhdm9pZCBicmVha2luZyBpbnRlcm5hbCBjbGll
bnRzLgorICAgICAgICBVSVRleHRTZWFyY2hpbmc6IENvbmZvcm1hbmNlIGlzIGRlY2xhcmVkIGZv
ciBjbGllbnRzIHRvIG1pZ3JhdGUgb2ZmIG9mIF9VSVRleHRTZWFyY2hpbmcuCisgICAgICAgIFVJ
RmluZEludGVyYWN0aW9uRGVsZWdhdGU6IENvbmZvcm1hbmNlIGlzIG5lY2Vzc2FyeSB0byBiZWdp
biBhIFVJRmluZFNlc3Npb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZp
ZXdJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW06Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZV0pOgorCisgICAg
ICAgIFRoZSAic2VhcmNoYWJsZSBvYmplY3QiIGRvZXMgbm90IG5lZWQgdG8gYmUgcmVzZXQgYW55
bW9yZSwgYXMgVUlLaXQKKyAgICAgICAgd2lsbCBkbyB0aGF0IGluIGAtW1dLV2ViVmlldyBmaW5k
SW50ZXJhY3Rpb246c2Vzc2lvbkZvclZpZXc6XWAgdGhlIG5leHQKKyAgICAgICAgdGltZSBhIGZp
bmQgc2Vzc2lvbiBiZWdpbnMuCisKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZWFyY2hhYmxlT2Jq
ZWN0XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0RmluZEludGVyYWN0aW9uRW5hYmxlZDpd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9maW5kSW50ZXJhY3Rpb25dKToKKworICAgICAgICBJ
dCBpcyBzYWZlIHRvIGNhc3QgYmV0d2VlbiB0aGUgU1BJIGFuZCBBUEkgdmVyc2lvbiBvZiB0aGlz
IG9iamVjdC4gVUlLaXQKKyAgICAgICAgaGFzIGd1YXJhbnRlZWQgY29tcGF0aWJpbGl0eS4KKwor
ICAgICAgICAoLVtXS1dlYlZpZXcgb2Zmc2V0RnJvbVBvc2l0aW9uOnRvUG9zaXRpb246aW5Eb2N1
bWVudDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGNvbXBhcmVGb3VuZFJhbmdlOnRvUmFuZ2U6
aW5Eb2N1bWVudDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHBlcmZvcm1UZXh0U2VhcmNoV2l0
aFF1ZXJ5U3RyaW5nOnVzaW5nT3B0aW9uczpyZXN1bHRBZ2dyZWdhdG9yOl0pOgorICAgICAgICAo
LVtXS1dlYlZpZXcgcmVwbGFjZUZvdW5kVGV4dEluUmFuZ2U6aW5Eb2N1bWVudDp3aXRoVGV4dDpd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGRlY29yYXRlRm91bmRUZXh0UmFuZ2U6aW5Eb2N1bWVu
dDp1c2luZ1N0eWxlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgc2Nyb2xsUmFuZ2VUb1Zpc2li
bGU6aW5Eb2N1bWVudDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGZpbmRJbnRlcmFjdGlvbjpz
ZXNzaW9uRm9yVmlldzpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGZpbmRJbnRlcmFjdGlvbjpk
aWRCZWdpbkZpbmRTZXNzaW9uOl0pOgorCisgICAgICAgIEN1c3RvbSBjb250ZW50IHZpZXdzIGRv
IG5vdCBuZWVkIHRvIGJlIGF3YXJlIHRoYXQgYSBmaW5kIHNlc3Npb24gaGFzCisgICAgICAgIGJl
Z3VuLCBhcyB0aGV5IGRvIG5vdCBkcmF3IGFuIG92ZXJsYXkuCisKKyAgICAgICAgKC1bV0tXZWJW
aWV3IGZpbmRJbnRlcmFjdGlvbjpkaWRFbmRGaW5kU2Vzc2lvbjpdKToKKworICAgICAgICBDdXN0
b20gY29udGVudCB2aWV3cyBkbyBub3QgbmVlZCB0byBiZSBhd2FyZSB0aGF0IGEgZmluZCBzZXNz
aW9uIGhhcworICAgICAgICBiZWd1biwgYXMgdGhleSBkbyBub3QgZHJhdyBhbiBvdmVybGF5Lgor
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKwor
ICAgICAgICBEZWNsYXJlIHRoZSBvbGQgX1VJVGV4dFNlYXJjaGluZyBtZXRob2RzIGV4cGxpY2l0
bHksIGFzIHdlIG5lZWQgdG8KKyAgICAgICAgbWFpbnRhaW4gc3VwcG9ydCBmb3IgaW50ZXJuYWwg
Y2xpZW50cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHBlcmZvcm1UZXh0U2VhcmNoV2l0aFF1
ZXJ5U3RyaW5nOnVzaW5nT3B0aW9uczpyZXN1bHRBZ2dyZWdhdG9yOl0pOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IHJlcGxhY2VGb3VuZFRleHRJblJhbmdlOmluRG9jdW1lbnQ6d2l0aFRleHQ6
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGVjb3JhdGVGb3VuZFRleHRSYW5nZTppbkRv
Y3VtZW50OnVzaW5nU3R5bGU6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2Nyb2xsUmFu
Z2VUb1Zpc2libGU6aW5Eb2N1bWVudDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBvZmZz
ZXRGcm9tUG9zaXRpb246dG9Qb3NpdGlvbjppbkRvY3VtZW50Ol0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IGNvbXBhcmVGb3VuZFJhbmdlOnRvUmFuZ2U6aW5Eb2N1bWVudDpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLUERGVmlldy5tbToKKyAgICAgICAgKC1bV0tQREZWaWV3IGNv
bXBhcmVGb3VuZFJhbmdlOnRvUmFuZ2U6aW5Eb2N1bWVudDpdKToKKyAgICAgICAgKC1bV0tQREZW
aWV3IHBlcmZvcm1UZXh0U2VhcmNoV2l0aFF1ZXJ5U3RyaW5nOnVzaW5nT3B0aW9uczpyZXN1bHRB
Z2dyZWdhdG9yOl0pOgorICAgICAgICAoLVtXS1BERlZpZXcgZGVjb3JhdGVGb3VuZFRleHRSYW5n
ZTppbkRvY3VtZW50OnVzaW5nU3R5bGU6XSk6CisKIDIwMjItMDQtMjEgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBCdWlsZCBpcyBicm9rZW4gb24gc2hpcHBpbmcg
bWFjT1MgZHVlIHRvIFRCQSBhbm5vdGF0aW9ucyByZXBsYWNlbWVudCBpbiBBUEkgaGVhZGVycwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCmluZGV4IDVj
ZWM3ZGM2MjM3OGYyNDM3MmI0MDM5OGIxNWVkZDQ4OGJkMDk0YTEuLmI2OTc4OTY2YzY3YmM3YjMw
MDBhNGE1MWZiZGM1ODA0OGI0YmFhODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3LmgKQEAgLTMzLDYgKzMzLDEwIEBACiAKIE5TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCiAKKyNpZiBUQVJHRVRfT1NfSVBIT05FCitAY2xhc3MgVUlGaW5kSW50ZXJhY3Rp
b247CisjZW5kaWYKKwogQGNsYXNzIFdLQmFja0ZvcndhcmRMaXN0OwogQGNsYXNzIFdLQmFja0Zv
cndhcmRMaXN0SXRlbTsKIEBjbGFzcyBXS0NvbnRlbnRXb3JsZDsKQEAgLTY0Niw2ICs2NTAsMTYg
QEAgVGhlIHVuaWZvcm0gdHlwZSBpZGVudGlmaWVyIGtVVFR5cGVXZWJBcmNoaXZlIGNhbiBiZSB1
c2VkIGdldCB0aGUgcmVsYXRlZCBwYXN0ZWIKIC0gKHZvaWQpc2V0TWluaW11bVZpZXdwb3J0SW5z
ZXQ6KE5TRWRnZUluc2V0cyltaW5pbXVtVmlld3BvcnRJbnNldCBtYXhpbXVtVmlld3BvcnRJbnNl
dDooTlNFZGdlSW5zZXRzKW1heGltdW1WaWV3cG9ydEluc2V0IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSkpOwogI2VuZGlmCiAKKyNpZiBUQVJHRVRfT1NfSVBIT05FCisKKy8qISBA
YWJzdHJhY3QgRW5hYmxlcyB0aGUgd2ViIHZpZXcncyBidWlsdC1pbiBmaW5kIGludGVyYWN0aW9u
LiAqLworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgZ2V0dGVyPWlzRmluZEludGVy
YWN0aW9uRW5hYmxlZCkgQk9PTCBmaW5kSW50ZXJhY3Rpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUoaW9zKFdLX0lPU19UQkEpKTsKKworLyohIEBhYnN0cmFjdCBJZiAgQGxpbmsgZmluZEludGVy
YWN0aW9uRW5hYmxlZCBAL2xpbmsgaXMgc2V0IHRvIHRydWUsIHJldHVybnMgdGhpcyB3ZWIgdmll
dydzIGJ1aWx0LWluIGZpbmQgaW50ZXJhY3Rpb24uIE90aGVyd2lzZSwgbmlsLiAqLworQHByb3Bl
cnR5IChub25hdG9taWMsIG51bGxhYmxlLCByZWFkb25seSkgVUlGaW5kSW50ZXJhY3Rpb24gKmZp
bmRJbnRlcmFjdGlvbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CisKKyNlbmRp
ZgorCiBAZW5kCiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggYWIwNzRjYjRiMzMxMDRmNWI4OTdh
ZTljY2FiNDI5ODFlNGZlMjVkOS4uZGI1NmMwYzM5OTQ4MzdjYThmNzA0ZTM4MzI1OWM5NTkzZDU0
YzczNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tCkBAIC0xNDM0LDYgKzE0MzQsNDMgQEAgaW5saW5lIE9wdGlvblNldDxXZWJLaXQ6OkZpbmRP
cHRpb25zPiB0b0ZpbmRPcHRpb25zKFdLRmluZENvbmZpZ3VyYXRpb24gKmNvbmZpZ3UKIH0KICNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCistIChCT09MKWZpbmRJbnRlcmFjdGlvbkVu
YWJsZWQKK3sKKyNpZiBIQVZFKFVJRklORElOVEVSQUNUSU9OKQorICAgIHJldHVybiBfZmluZElu
dGVyYWN0aW9uRW5hYmxlZDsKKyNlbHNlCisgICAgcmV0dXJuIG5pbDsKKyNlbmRpZgorfQorCist
ICh2b2lkKXNldEZpbmRJbnRlcmFjdGlvbkVuYWJsZWQ6KEJPT0wpZW5hYmxlZAoreworI2lmIEhB
VkUoVUlGSU5ESU5URVJBQ1RJT04pCisgICAgaWYgKF9maW5kSW50ZXJhY3Rpb25FbmFibGVkICE9
IGVuYWJsZWQpIHsKKyAgICAgICAgX2ZpbmRJbnRlcmFjdGlvbkVuYWJsZWQgPSBlbmFibGVkOwor
CisgICAgICAgIGlmIChlbmFibGVkKSB7CisgICAgICAgICAgICBpZiAoIV9maW5kSW50ZXJhY3Rp
b24pCisgICAgICAgICAgICAgICAgX2ZpbmRJbnRlcmFjdGlvbiA9IGFkb3B0TlMoW1tVSUZpbmRJ
bnRlcmFjdGlvbiBhbGxvY10gaW5pdFdpdGhTZXNzaW9uRGVsZWdhdGU6c2VsZl0pOworCisgICAg
ICAgICAgICBbc2VsZiBhZGRJbnRlcmFjdGlvbjpfZmluZEludGVyYWN0aW9uLmdldCgpXTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFtzZWxmIHJlbW92ZUludGVyYWN0aW9uOl9maW5k
SW50ZXJhY3Rpb24uZ2V0KCldOworICAgICAgICAgICAgX2ZpbmRJbnRlcmFjdGlvbiA9IG5pbDsK
KyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorfQorCistIChVSUZpbmRJbnRlcmFjdGlvbiAqKWZp
bmRJbnRlcmFjdGlvbgoreworI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04pCisgICAgcmV0dXJu
IF9maW5kSW50ZXJhY3Rpb24uZ2V0KCk7CisjZWxzZQorICAgIHJldHVybiBuaWw7CisjZW5kaWYK
K30KKwogI3ByYWdtYSBtYXJrIC0gbWFjT1MgQVBJCiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJu
YWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5h
bC5oCmluZGV4IDUyYjYzOTc0OWM4NmJmYTY2NzZjNDQyYmVhY2NhNzRmMWNhZThlYmUuLjA3ZDdl
OGU3YmQ3MDYzZDIzNTg5MmU4ZjZiYTkyZDJmY2MwMTUyZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCkBAIC0xNjMs
NyArMTYzLDcgQEAgY2xhc3MgVmlld0dlc3R1cmVDb250cm9sbGVyOwogI2VuZGlmCiAKICNpZiBI
QVZFKFVJRklORElOVEVSQUNUSU9OKQotICAgIFJldGFpblB0cjxfVUlGaW5kSW50ZXJhY3Rpb24+
IF9maW5kSW50ZXJhY3Rpb247CisgICAgUmV0YWluUHRyPFVJRmluZEludGVyYWN0aW9uPiBfZmlu
ZEludGVyYWN0aW9uOwogICAgIEJPT0wgX2ZpbmRJbnRlcmFjdGlvbkVuYWJsZWQ7CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmgKaW5kZXggMTNkZDYxYjc0MDNlZWZmY2E0ZDNkZTY5ZDllZGVlYTZlNmIwZTZhMC4u
ZTE0YWQ4YTY4ZjliY2Y5MmRlNTIyMzJmODk5NGE0MmQxZTUwZjBhNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC00
OTMsNyArNDkzLDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIFdLRGlzcGxheUNh
cHR1cmVTdXJmYWNlcykgewogI2lmIFRBUkdFVF9PU19JUEhPTkUKIAogI2lmICFUQVJHRVRfT1Nf
VFYgJiYgIVRBUkdFVF9PU19XQVRDSCAmJiBfX2hhc19pbmNsdWRlKDxVSUtpdC9fVUlUZXh0U2Vh
cmNoaW5nLmg+KQotQGludGVyZmFjZSBXS1dlYlZpZXcgKFdLUHJpdmF0ZUlPUykgPF9VSVRleHRT
ZWFyY2hpbmc+CitAaW50ZXJmYWNlIFdLV2ViVmlldyAoV0tQcml2YXRlSU9TKSA8X1VJVGV4dFNl
YXJjaGluZywgVUlUZXh0U2VhcmNoaW5nLCBVSUZpbmRJbnRlcmFjdGlvbkRlbGVnYXRlPgogI2Vs
c2UKIEBpbnRlcmZhY2UgV0tXZWJWaWV3IChXS1ByaXZhdGVJT1MpCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5oCmluZGV4IDQ5ZGFjOTkz
ZTI1YmI1ZWNhZjY0N2EyYmRkMjViNDFhNzE0ZWQ3N2QuLmIzM2RhYjZlNThmNjYwNDI0MmZmMjU3
NGMwOGQxZGRlZGFlY2EzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3SU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lv
cy9XS1dlYlZpZXdJT1MuaApAQCAtMTM1LDcgKzEzNSw3IEBAIGVudW0gY2xhc3MgVGFwSGFuZGxp
bmdSZXN1bHQgOiB1aW50OF90OwogLSAodm9pZClmaW5kUHJldmlvdXM6KGlkKXNlbmRlcjsKIC0g
KHZvaWQpZmluZEFuZFJlcGxhY2U6KGlkKXNlbmRlcjsKIAotLSAoaWQ8X1VJVGV4dFNlYXJjaGlu
Zz4pX3NlYXJjaGFibGVPYmplY3Q7CistIChpZDxVSVRleHRTZWFyY2hpbmc+KV9zZWFyY2hhYmxl
T2JqZWN0OwogI2VuZGlmCiAKIC0gKHZvaWQpX25leHRBY2Nlc3NvcnlUYWI6KGlkKXNlbmRlcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9T
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KaW5k
ZXggY2I0OTkwYTU2NTQ5YTBiYmFkMzg2MmVmNjY5ODI2MDgzNjVkOWJlZS4uMzk3YmI1NTVkNjc0
MGY5NzA0NTJhYWMzMjA2NmIyOWY1ZjEzYTFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KQEAgLTc3OCwxMCArNzc4LDggQEAgc3RhdGlj
IFdlYkNvcmU6OkNvbG9yIHNjcm9sbFZpZXdCYWNrZ3JvdW5kQ29sb3IoV0tXZWJWaWV3ICp3ZWJW
aWV3LCBBbGxvd1BhZ2VCYWMKICAgICAgICAgW19zY3JvbGxWaWV3IF9zdG9wU2Nyb2xsaW5nQW5k
Wm9vbWluZ0FuaW1hdGlvbnNdOwogCiAjaWYgSEFWRShVSUZJTkRJTlRFUkFDVElPTikKLSAgICBp
ZiAoX2ZpbmRJbnRlcmFjdGlvbkVuYWJsZWQpIHsKKyAgICBpZiAoX2ZpbmRJbnRlcmFjdGlvbkVu
YWJsZWQpCiAgICAgICAgIFtfZmluZEludGVyYWN0aW9uIGRpc21pc3NGaW5kTmF2aWdhdG9yXTsK
LSAgICAgICAgW19maW5kSW50ZXJhY3Rpb24gc2V0U2VhcmNoYWJsZU9iamVjdDpbc2VsZiBfc2Vh
cmNoYWJsZU9iamVjdF1dOwotICAgIH0KICNlbmRpZgogfQogCkBAIC0yNzE1LDEwICsyNzEzLDEw
IEBAIHN0YXRpYyBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHRvVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbihVSVNlCiAKICNpZiBIQVZFKFVJRklORElOVEVSQUNUSU9O
KQogCi0tIChpZDxfVUlUZXh0U2VhcmNoaW5nPilfc2VhcmNoYWJsZU9iamVjdAorLSAoaWQ8VUlU
ZXh0U2VhcmNoaW5nPilfc2VhcmNoYWJsZU9iamVjdAogewotICAgIGlmIChbX2N1c3RvbUNvbnRl
bnRWaWV3IGNvbmZvcm1zVG9Qcm90b2NvbDpAcHJvdG9jb2woX1VJVGV4dFNlYXJjaGluZyldKQot
ICAgICAgICByZXR1cm4gKGlkPF9VSVRleHRTZWFyY2hpbmc+KV9jdXN0b21Db250ZW50Vmlldy5n
ZXQoKTsKKyAgICBpZiAoW19jdXN0b21Db250ZW50VmlldyBjb25mb3Jtc1RvUHJvdG9jb2w6QHBy
b3RvY29sKFVJVGV4dFNlYXJjaGluZyldKQorICAgICAgICByZXR1cm4gKGlkPFVJVGV4dFNlYXJj
aGluZz4pX2N1c3RvbUNvbnRlbnRWaWV3LmdldCgpOwogCiAgICAgcmV0dXJuIF9jb250ZW50Vmll
dy5nZXQoKTsKIH0KQEAgLTM1NjEsMjggKzM1NTksMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM+IHZpZXdwb3J0QXJndW1lbnRzRnJvbURpY3Rpb25h
cnkKIAogLSAodm9pZClfc2V0RmluZEludGVyYWN0aW9uRW5hYmxlZDooQk9PTCllbmFibGVkCiB7
Ci0gICAgaWYgKF9maW5kSW50ZXJhY3Rpb25FbmFibGVkICE9IGVuYWJsZWQpIHsKLSAgICAgICAg
X2ZpbmRJbnRlcmFjdGlvbkVuYWJsZWQgPSBlbmFibGVkOwotCi0gICAgICAgIGlmIChlbmFibGVk
KSB7Ci0gICAgICAgICAgICBpZiAoIV9maW5kSW50ZXJhY3Rpb24pIHsKLSAgICAgICAgICAgICAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotICAgICAgICAgICAgICAgIF9m
aW5kSW50ZXJhY3Rpb24gPSBhZG9wdE5TKFtbX1VJRmluZEludGVyYWN0aW9uIGFsbG9jXSBpbml0
XSk7Ci0gICAgICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECi0g
ICAgICAgICAgICAgICAgW19maW5kSW50ZXJhY3Rpb24gc2V0U2VhcmNoYWJsZU9iamVjdDpbc2Vs
ZiBfc2VhcmNoYWJsZU9iamVjdF1dOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBbc2Vs
ZiBhZGRJbnRlcmFjdGlvbjpfZmluZEludGVyYWN0aW9uLmdldCgpXTsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIFtzZWxmIHJlbW92ZUludGVyYWN0aW9uOl9maW5kSW50ZXJhY3Rpb24u
Z2V0KCldOwotICAgICAgICAgICAgX2ZpbmRJbnRlcmFjdGlvbiA9IG5pbDsKLSAgICAgICAgfQot
ICAgIH0KKyAgICBbc2VsZiBzZXRGaW5kSW50ZXJhY3Rpb25FbmFibGVkOmVuYWJsZWRdOwogfQog
CiAtIChfVUlGaW5kSW50ZXJhY3Rpb24gKilfZmluZEludGVyYWN0aW9uCiB7Ci0gICAgcmV0dXJu
IF9maW5kSW50ZXJhY3Rpb24uZ2V0KCk7CisgICAgcmV0dXJuIChfVUlGaW5kSW50ZXJhY3Rpb24g
KilfZmluZEludGVyYWN0aW9uLmdldCgpOwogfQogCiAtIChVSVRleHRSYW5nZSAqKXNlbGVjdGVk
VGV4dFJhbmdlCkBAIC0zNTkxLDMwICszNTczLDMzIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB2aWV3cG9ydEFyZ3VtZW50c0Zyb21EaWN0aW9uYXJ5
CiB9CiAKIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0JFR0lOCi0tIChOU0ludGVn
ZXIpb2Zmc2V0RnJvbVBvc2l0aW9uOihVSVRleHRQb3NpdGlvbiAqKWZyb20gdG9Qb3NpdGlvbjoo
VUlUZXh0UG9zaXRpb24gKil0b1Bvc2l0aW9uIGluRG9jdW1lbnQ6KF9VSVRleHRTZWFyY2hEb2N1
bWVudElkZW50aWZpZXIpZG9jdW1lbnQKKy0gKE5TSW50ZWdlcilvZmZzZXRGcm9tUG9zaXRpb246
KFVJVGV4dFBvc2l0aW9uICopZnJvbSB0b1Bvc2l0aW9uOihVSVRleHRQb3NpdGlvbiAqKXRvUG9z
aXRpb24gaW5Eb2N1bWVudDooVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50
CiB7Ci0gICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICByZXR1cm4g
W19jb250ZW50VmlldyBvZmZzZXRGcm9tUG9zaXRpb246ZnJvbSB0b1Bvc2l0aW9uOnRvUG9zaXRp
b24gaW5Eb2N1bWVudDpkb2N1bWVudF07Ci0gICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiB9CiBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKIAotLSAoTlND
b21wYXJpc29uUmVzdWx0KWNvbXBhcmVGb3VuZFJhbmdlOihVSVRleHRSYW5nZSAqKWZyb21SYW5n
ZSB0b1JhbmdlOihVSVRleHRSYW5nZSAqKXRvUmFuZ2UgaW5Eb2N1bWVudDooX1VJVGV4dFNlYXJj
aERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudAorLSAoTlNDb21wYXJpc29uUmVzdWx0KWNvbXBh
cmVGb3VuZFJhbmdlOihVSVRleHRSYW5nZSAqKWZyb21SYW5nZSB0b1JhbmdlOihVSVRleHRSYW5n
ZSAqKXRvUmFuZ2UgaW5Eb2N1bWVudDooVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRv
Y3VtZW50CiB7CiAgICAgcmV0dXJuIFtfY29udGVudFZpZXcgY29tcGFyZUZvdW5kUmFuZ2U6ZnJv
bVJhbmdlIHRvUmFuZ2U6dG9SYW5nZSBpbkRvY3VtZW50OmRvY3VtZW50XTsKIH0KIAotLSAodm9p
ZClwZXJmb3JtVGV4dFNlYXJjaFdpdGhRdWVyeVN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgdXNp
bmdPcHRpb25zOihfVUlUZXh0U2VhcmNoT3B0aW9ucyAqKW9wdGlvbnMgcmVzdWx0QWdncmVnYXRv
cjooaWQ8X1VJVGV4dFNlYXJjaEFnZ3JlZ2F0b3I+KWFnZ3JlZ2F0b3IKKy0gKHZvaWQpcGVyZm9y
bVRleHRTZWFyY2hXaXRoUXVlcnlTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIHVzaW5nT3B0aW9u
czooVUlUZXh0U2VhcmNoT3B0aW9ucyAqKW9wdGlvbnMgcmVzdWx0QWdncmVnYXRvcjooaWQ8VUlU
ZXh0U2VhcmNoQWdncmVnYXRvcj4pYWdncmVnYXRvcgogewogICAgIFtfY29udGVudFZpZXcgcGVy
Zm9ybVRleHRTZWFyY2hXaXRoUXVlcnlTdHJpbmc6c3RyaW5nIHVzaW5nT3B0aW9uczpvcHRpb25z
IHJlc3VsdEFnZ3JlZ2F0b3I6YWdncmVnYXRvcl07CiB9CiAKLS0gKHZvaWQpZGVjb3JhdGVGb3Vu
ZFRleHRSYW5nZTooVUlUZXh0UmFuZ2UgKilyYW5nZSBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNo
RG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50IHVzaW5nU3R5bGU6KF9VSUZvdW5kVGV4dFN0eWxl
KXN0eWxlCistICh2b2lkKXJlcGxhY2VGb3VuZFRleHRJblJhbmdlOihVSVRleHRSYW5nZSAqKXJh
bmdlIGluRG9jdW1lbnQ6KFVJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudCB3
aXRoVGV4dDooTlNTdHJpbmcgKilyZXBsYWNlbWVudFRleHQKK3sKKyAgICBbX2NvbnRlbnRWaWV3
IHJlcGxhY2VGb3VuZFRleHRJblJhbmdlOnJhbmdlIGluRG9jdW1lbnQ6ZG9jdW1lbnQgd2l0aFRl
eHQ6cmVwbGFjZW1lbnRUZXh0XTsKK30KKworLSAodm9pZClkZWNvcmF0ZUZvdW5kVGV4dFJhbmdl
OihVSVRleHRSYW5nZSAqKXJhbmdlIGluRG9jdW1lbnQ6KFVJVGV4dFNlYXJjaERvY3VtZW50SWRl
bnRpZmllcilkb2N1bWVudCB1c2luZ1N0eWxlOihVSVRleHRTZWFyY2hGb3VuZFRleHRTdHlsZSlz
dHlsZQogewogICAgIFtfY29udGVudFZpZXcgZGVjb3JhdGVGb3VuZFRleHRSYW5nZTpyYW5nZSBp
bkRvY3VtZW50OmRvY3VtZW50IHVzaW5nU3R5bGU6c3R5bGVdOwogfQogCi0tICh2b2lkKXNjcm9s
bFJhbmdlVG9WaXNpYmxlOihVSVRleHRSYW5nZSAqKXJhbmdlIGluRG9jdW1lbnQ6KF9VSVRleHRT
ZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQKKy0gKHZvaWQpc2Nyb2xsUmFuZ2VUb1Zp
c2libGU6KFVJVGV4dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDooVUlUZXh0U2VhcmNoRG9jdW1l
bnRJZGVudGlmaWVyKWRvY3VtZW50CiB7CiAgICAgW19jb250ZW50VmlldyBzY3JvbGxSYW5nZVRv
VmlzaWJsZTpyYW5nZSBpbkRvY3VtZW50OmRvY3VtZW50XTsKIH0KQEAgLTM2MzksNiArMzYyNCwy
NCBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICBbX2NvbnRlbnRW
aWV3IHJlcXVlc3RSZWN0Rm9yRm91bmRUZXh0UmFuZ2U6cmFuZ2VzIGNvbXBsZXRpb25IYW5kbGVy
OmNvbXBsZXRpb25IYW5kbGVyXTsKIH0KIAorLSAoVUlGaW5kU2Vzc2lvbiAqKWZpbmRJbnRlcmFj
dGlvbjooVUlGaW5kSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBzZXNzaW9uRm9yVmlldzooVUlW
aWV3ICopdmlldworeworICAgIGF1dG8gZmluZFNlc3Npb24gPSBhZG9wdE5TKFtbVUlUZXh0U2Vh
cmNoaW5nRmluZFNlc3Npb24gYWxsb2NdIGluaXRXaXRoU2VhcmNoYWJsZU9iamVjdDpbc2VsZiBf
c2VhcmNoYWJsZU9iamVjdF1dKTsKKyAgICByZXR1cm4gZmluZFNlc3Npb24uYXV0b3JlbGVhc2Uo
KTsKK30KKworLSAodm9pZClmaW5kSW50ZXJhY3Rpb246KFVJRmluZEludGVyYWN0aW9uICopaW50
ZXJhY3Rpb24gZGlkQmVnaW5GaW5kU2Vzc2lvbjooVUlGaW5kU2Vzc2lvbiAqKXNlc3Npb24KK3sK
KyAgICBpZiAoW3NlbGYgX3NlYXJjaGFibGVPYmplY3RdID09IF9jb250ZW50Vmlldy5nZXQoKSkK
KyAgICAgICAgW19jb250ZW50VmlldyBkaWRCZWdpblRleHRTZWFyY2hPcGVyYXRpb25dOworfQor
CistICh2b2lkKWZpbmRJbnRlcmFjdGlvbjooVUlGaW5kSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlv
biBkaWRFbmRGaW5kU2Vzc2lvbjooVUlGaW5kU2Vzc2lvbiAqKXNlc3Npb24KK3sKKyAgICBpZiAo
W3NlbGYgX3NlYXJjaGFibGVPYmplY3RdID09IF9jb250ZW50Vmlldy5nZXQoKSkKKyAgICAgICAg
W19jb250ZW50VmlldyBkaWRFbmRUZXh0U2VhcmNoT3BlcmF0aW9uXTsKK30KKwogI2VuZGlmIC8v
IEhBVkUoVUlGSU5ESU5URVJBQ1RJT04pCiAKIEBlbmQgLy8gV0tXZWJWaWV3IChXS1ByaXZhdGVJ
T1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmgKaW5kZXggNTE4M2Q0ODZjNDE5MDE0ZDkyNWUyNmM5OGZlN2JkMWQ2NGNm
MzBhMi4uZDM4Y2NkZDA4NmZkZTE2NjFjNWQ3YjhhZTU1YWE2MWUzMmZhOTNjNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaApAQCAtNTY1LDcgKzU2NSw3IEBAIHVzaW5nIEltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRp
ZmllciA9IE9iamVjdElkZW50aWZpZXI8SW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVuCiAgICAgLCBX
S0hvdmVyUGxhdHRlckRlbGVnYXRlCiAjZW5kaWYKICNpZiBIQVZFKFVJRklORElOVEVSQUNUSU9O
KQotICAgICwgX1VJVGV4dFNlYXJjaGluZworICAgICwgVUlUZXh0U2VhcmNoaW5nCiAjZW5kaWYK
ID4KIApAQCAtNzk3LDcgKzc5NywxMCBAQCBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdf
QUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9WSUVXKQogI2VuZGlm
CiAKICNpZiBIQVZFKFVJRklORElOVEVSQUNUSU9OKQotLSAoTlNDb21wYXJpc29uUmVzdWx0KWNv
bXBhcmVGb3VuZFJhbmdlOihVSVRleHRSYW5nZSAqKWZyb21SYW5nZSB0b1JhbmdlOihVSVRleHRS
YW5nZSAqKXRvUmFuZ2UgaW5Eb2N1bWVudDooX1VJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmll
cilkb2N1bWVudDsKKy0gKE5TSW50ZWdlcilvZmZzZXRGcm9tUG9zaXRpb246KFVJVGV4dFBvc2l0
aW9uICopZnJvbSB0b1Bvc2l0aW9uOihVSVRleHRQb3NpdGlvbiAqKXRvUG9zaXRpb24gaW5Eb2N1
bWVudDooVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50OworLSAodm9pZClk
aWRCZWdpblRleHRTZWFyY2hPcGVyYXRpb247CistICh2b2lkKWRpZEVuZFRleHRTZWFyY2hPcGVy
YXRpb247CisKIC0gKHZvaWQpcmVxdWVzdFJlY3RGb3JGb3VuZFRleHRSYW5nZTooVUlUZXh0UmFu
Z2UgKilyYW5nZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoQ0dSZWN0KSljb21wbGV0aW9u
SGFuZGxlcjsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBjZjllZWYyOTcxZWQ4NDE0NDY4
MDQwNTUwZDcyMjhhNTUyMGYxNWRhLi45M2M1MWU1YzgyMGY4YzRhOWU2NDFkMDdiOGJhNDU4N2Uz
OWExNDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTEwNDM1LDE0ICsxMDQzNSwxNCBAQCBzdGF0aWMg
UmV0YWluUHRyPE5TSXRlbVByb3ZpZGVyPiBjcmVhdGVJdGVtUHJvdmlkZXIoY29uc3QgV2ViS2l0
OjpXZWJQYWdlUHJveHkmCiAgICAgW3NlbGYud2ViVmlldy5fZmluZEludGVyYWN0aW9uIHByZXNl
bnRGaW5kTmF2aWdhdG9yU2hvd2luZ1JlcGxhY2U6WUVTXTsKIH0KIAotLSAodm9pZClwZXJmb3Jt
VGV4dFNlYXJjaFdpdGhRdWVyeVN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgdXNpbmdPcHRpb25z
OihfVUlUZXh0U2VhcmNoT3B0aW9ucyAqKW9wdGlvbnMgcmVzdWx0QWdncmVnYXRvcjooaWQ8X1VJ
VGV4dFNlYXJjaEFnZ3JlZ2F0b3I+KWFnZ3JlZ2F0b3IKKy0gKHZvaWQpcGVyZm9ybVRleHRTZWFy
Y2hXaXRoUXVlcnlTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIHVzaW5nT3B0aW9uczooVUlUZXh0
U2VhcmNoT3B0aW9ucyAqKW9wdGlvbnMgcmVzdWx0QWdncmVnYXRvcjooaWQ8VUlUZXh0U2VhcmNo
QWdncmVnYXRvcj4pYWdncmVnYXRvcgogewogICAgIE9wdGlvblNldDxXZWJLaXQ6OkZpbmRPcHRp
b25zPiBmaW5kT3B0aW9uczsKICAgICBzd2l0Y2ggKG9wdGlvbnMud29yZE1hdGNoTWV0aG9kKSB7
Ci0gICAgY2FzZSBfVUlUZXh0U2VhcmNoTWF0Y2hNZXRob2RTdGFydHNXaXRoOgorICAgIGNhc2Ug
VUlUZXh0U2VhcmNoTWF0Y2hNZXRob2RTdGFydHNXaXRoOgogICAgICAgICBmaW5kT3B0aW9ucy5h
ZGQoV2ViS2l0OjpGaW5kT3B0aW9uczo6QXRXb3JkU3RhcnRzKTsKICAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBfVUlUZXh0U2VhcmNoTWF0Y2hNZXRob2RGdWxsV29yZDoKKyAgICBjYXNlIFVJVGV4
dFNlYXJjaE1hdGNoTWV0aG9kRnVsbFdvcmQ6CiAgICAgICAgIGZpbmRPcHRpb25zLmFkZCh7IFdl
YktpdDo6RmluZE9wdGlvbnM6OkF0V29yZFN0YXJ0cywgV2ViS2l0OjpGaW5kT3B0aW9uczo6QXRX
b3JkRW5kcyB9KTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKQEAgLTEwNDY0LDcgKzEw
NDY0LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0l0ZW1Qcm92aWRlcj4gY3JlYXRlSXRlbVByb3Zp
ZGVyKGNvbnN0IFdlYktpdDo6V2ViUGFnZVByb3h5JgogICAgIH0pOwogfQogCi0tICh2b2lkKXJl
cGxhY2VGb3VuZFRleHRJblJhbmdlOihVSVRleHRSYW5nZSAqKXJhbmdlIGluRG9jdW1lbnQ6KF9V
SVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQgd2l0aFRleHQ6KE5TU3RyaW5n
ICopcmVwbGFjZW1lbnRUZXh0CistICh2b2lkKXJlcGxhY2VGb3VuZFRleHRJblJhbmdlOihVSVRl
eHRSYW5nZSAqKXJhbmdlIGluRG9jdW1lbnQ6KFVJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmll
cilkb2N1bWVudCB3aXRoVGV4dDooTlNTdHJpbmcgKilyZXBsYWNlbWVudFRleHQKIHsKICAgICBp
ZiAoIXNlbGYuc3VwcG9ydHNUZXh0UmVwbGFjZW1lbnQpCiAgICAgICAgIHJldHVybjsKQEAgLTEw
NDc2LDIyICsxMDQ3NiwyMiBAQCBzdGF0aWMgUmV0YWluUHRyPE5TSXRlbVByb3ZpZGVyPiBjcmVh
dGVJdGVtUHJvdmlkZXIoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmCiAgICAgX3BhZ2UtPnJl
cGxhY2VGb3VuZFRleHRSYW5nZVdpdGhTdHJpbmcoW2ZvdW5kVGV4dFJhbmdlIHdlYkZvdW5kVGV4
dFJhbmdlXSwgcmVwbGFjZW1lbnRUZXh0KTsKIH0KIAotLSAodm9pZClkZWNvcmF0ZUZvdW5kVGV4
dFJhbmdlOihVSVRleHRSYW5nZSAqKXJhbmdlIGluRG9jdW1lbnQ6KF9VSVRleHRTZWFyY2hEb2N1
bWVudElkZW50aWZpZXIpZG9jdW1lbnQgdXNpbmdTdHlsZTooX1VJRm91bmRUZXh0U3R5bGUpc3R5
bGUKKy0gKHZvaWQpZGVjb3JhdGVGb3VuZFRleHRSYW5nZTooVUlUZXh0UmFuZ2UgKilyYW5nZSBp
bkRvY3VtZW50OihVSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQgdXNpbmdT
dHlsZTooVUlUZXh0U2VhcmNoRm91bmRUZXh0U3R5bGUpc3R5bGUKIHsKICAgICBhdXRvIGZvdW5k
VGV4dFJhbmdlID0gZHluYW1pY19vYmpjX2Nhc3Q8V0tGb3VuZFRleHRSYW5nZT4ocmFuZ2UpOwog
ICAgIGlmICghZm91bmRUZXh0UmFuZ2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gZGVj
b3JhdGlvblN0eWxlID0gV2ViS2l0OjpGaW5kRGVjb3JhdGlvblN0eWxlOjpOb3JtYWw7Ci0gICAg
aWYgKHN0eWxlID09IF9VSUZvdW5kVGV4dFN0eWxlRm91bmQpCisgICAgaWYgKHN0eWxlID09IFVJ
VGV4dFNlYXJjaEZvdW5kVGV4dFN0eWxlRm91bmQpCiAgICAgICAgIGRlY29yYXRpb25TdHlsZSA9
IFdlYktpdDo6RmluZERlY29yYXRpb25TdHlsZTo6Rm91bmQ7Ci0gICAgZWxzZSBpZiAoc3R5bGUg
PT0gX1VJRm91bmRUZXh0U3R5bGVIaWdobGlnaHRlZCkKKyAgICBlbHNlIGlmIChzdHlsZSA9PSBV
SVRleHRTZWFyY2hGb3VuZFRleHRTdHlsZUhpZ2hsaWdodGVkKQogICAgICAgICBkZWNvcmF0aW9u
U3R5bGUgPSBXZWJLaXQ6OkZpbmREZWNvcmF0aW9uU3R5bGU6OkhpZ2hsaWdodGVkOwogCiAgICAg
X3BhZ2UtPmRlY29yYXRlVGV4dFJhbmdlV2l0aFN0eWxlKFtmb3VuZFRleHRSYW5nZSB3ZWJGb3Vu
ZFRleHRSYW5nZV0sIGRlY29yYXRpb25TdHlsZSk7CiB9CiAKLS0gKHZvaWQpc2Nyb2xsUmFuZ2VU
b1Zpc2libGU6KFVJVGV4dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDooX1VJVGV4dFNlYXJjaERv
Y3VtZW50SWRlbnRpZmllcilkb2N1bWVudAorLSAodm9pZClzY3JvbGxSYW5nZVRvVmlzaWJsZToo
VUlUZXh0UmFuZ2UgKilyYW5nZSBpbkRvY3VtZW50OihVSVRleHRTZWFyY2hEb2N1bWVudElkZW50
aWZpZXIpZG9jdW1lbnQKIHsKICAgICBpZiAoYXV0byBmb3VuZFRleHRSYW5nZSA9IGR5bmFtaWNf
b2JqY19jYXN0PFdLRm91bmRUZXh0UmFuZ2U+KHJhbmdlKSkKICAgICAgICAgX3BhZ2UtPnNjcm9s
bFRleHRSYW5nZVRvVmlzaWJsZShbZm91bmRUZXh0UmFuZ2Ugd2ViRm91bmRUZXh0UmFuZ2VdKTsK
QEAgLTEwNTE3LDE0ICsxMDUxNywxMiBAQCBzdGF0aWMgUmV0YWluUHRyPE5TSXRlbVByb3ZpZGVy
PiBjcmVhdGVJdGVtUHJvdmlkZXIoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmCiAgICAgcmV0
dXJuIHNlbGYud2ViVmlldy5fZWRpdGFibGU7CiB9CiAKLUFMTE9XX0RFUFJFQ0FURURfSU1QTEVN
RU5UQVRJT05TX0JFR0lOCi0tIChOU0ludGVnZXIpb2Zmc2V0RnJvbVBvc2l0aW9uOihVSVRleHRQ
b3NpdGlvbiAqKWZyb20gdG9Qb3NpdGlvbjooVUlUZXh0UG9zaXRpb24gKil0b1Bvc2l0aW9uIGlu
RG9jdW1lbnQ6KF9VSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQKKy0gKE5T
SW50ZWdlcilvZmZzZXRGcm9tUG9zaXRpb246KFVJVGV4dFBvc2l0aW9uICopZnJvbSB0b1Bvc2l0
aW9uOihVSVRleHRQb3NpdGlvbiAqKXRvUG9zaXRpb24gaW5Eb2N1bWVudDooVUlUZXh0U2VhcmNo
RG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50CiB7CiAgICAgcmV0dXJuIFtzZWxmIG9mZnNldEZy
b21Qb3NpdGlvbjpmcm9tIHRvUG9zaXRpb246dG9Qb3NpdGlvbl07CiB9Ci1BTExPV19ERVBSRUNB
VEVEX0lNUExFTUVOVEFUSU9OU19FTkQKIAotLSAoTlNDb21wYXJpc29uUmVzdWx0KWNvbXBhcmVG
b3VuZFJhbmdlOihVSVRleHRSYW5nZSAqKWZyb21SYW5nZSB0b1JhbmdlOihVSVRleHRSYW5nZSAq
KXRvUmFuZ2UgaW5Eb2N1bWVudDooX1VJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1
bWVudAorLSAoTlNDb21wYXJpc29uUmVzdWx0KWNvbXBhcmVGb3VuZFJhbmdlOihVSVRleHRSYW5n
ZSAqKWZyb21SYW5nZSB0b1JhbmdlOihVSVRleHRSYW5nZSAqKXRvUmFuZ2UgaW5Eb2N1bWVudDoo
VUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50CiB7CiAgICAgTlNJbnRlZ2Vy
IG9mZnNldCA9IFtzZWxmIG9mZnNldEZyb21Qb3NpdGlvbjpmcm9tUmFuZ2Uuc3RhcnQgdG9Qb3Np
dGlvbjp0b1JhbmdlLnN0YXJ0XTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLUERGVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1BERlZp
ZXcubW0KaW5kZXggODAwY2UzOWFlZWQ5NjQ5NTJlYTViYmNhYjUwM2RhYWVmMGYyMjhmYy4uZmNi
ZDE5MjhkODlhNGE5ZDY5MTY0MjIyNjJkNDNhODI5NTNjZTMyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLUERGVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tCkBAIC0xMDksNyArMTA5LDcgQEAKIAogQGludGVyZmFj
ZSBXS1BERlZpZXcgKCkgPFBERkhvc3RWaWV3Q29udHJvbGxlckRlbGVnYXRlLCBXS0FjdGlvblNo
ZWV0QXNzaXN0YW50RGVsZWdhdGUKICNpZiBIQVZFKFVJRklORElOVEVSQUNUSU9OKQotICAgICwg
X1VJVGV4dFNlYXJjaGluZworICAgICwgVUlUZXh0U2VhcmNoaW5nCiAjZW5kaWYKID4KIEBlbmQK
QEAgLTEzNSw3ICsxMzUsNyBAQAogICAgIFJldGFpblB0cjxXS0tleWJvYXJkU2Nyb2xsVmlld0Fu
aW1hdG9yPiBfa2V5Ym9hcmRTY3JvbGxpbmdBbmltYXRvcjsKICAgICBSZXRhaW5QdHI8V0tTaGFy
ZVNoZWV0PiBfc2hhcmVTaGVldDsKICNpZiBIQVZFKFVJRklORElOVEVSQUNUSU9OKQotICAgIFJl
dGFpblB0cjxpZDxfVUlUZXh0U2VhcmNoQWdncmVnYXRvcj4+IF9zZWFyY2hBZ2dyZWdhdG9yOwor
ICAgIFJldGFpblB0cjxpZDxVSVRleHRTZWFyY2hBZ2dyZWdhdG9yPj4gX3NlYXJjaEFnZ3JlZ2F0
b3I7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBfc2VhcmNoU3RyaW5nOwogI2VuZGlmCiB9CkBA
IC02ODgsNyArNjg4LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAg
cmV0dXJuIFt1aURlbGVnYXRlIF9kYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldlYlZpZXc6d2ViVmll
d107CiB9CiAKLSNwcmFnbWEgbWFyayBfVUlUZXh0U2VhcmNoaW5nCisjcHJhZ21hIG1hcmsgVUlU
ZXh0U2VhcmNoaW5nCiAKICNpZiBIQVZFKFVJRklORElOVEVSQUNUSU9OKQogCkBAIC02OTcsNyAr
Njk3LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgcmV0dXJuIG5p
bDsKIH0KIAotLSAoTlNDb21wYXJpc29uUmVzdWx0KWNvbXBhcmVGb3VuZFJhbmdlOihVSVRleHRS
YW5nZSAqKWZyb21SYW5nZSB0b1JhbmdlOihVSVRleHRSYW5nZSAqKXRvUmFuZ2UgaW5Eb2N1bWVu
dDooX1VJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudAorLSAoTlNDb21wYXJp
c29uUmVzdWx0KWNvbXBhcmVGb3VuZFJhbmdlOihVSVRleHRSYW5nZSAqKWZyb21SYW5nZSB0b1Jh
bmdlOihVSVRleHRSYW5nZSAqKXRvUmFuZ2UgaW5Eb2N1bWVudDooVUlUZXh0U2VhcmNoRG9jdW1l
bnRJZGVudGlmaWVyKWRvY3VtZW50CiB7CiAgICAgYXV0byBmcm9tID0gZHluYW1pY19vYmpjX2Nh
c3Q8V0tQREZGb3VuZFRleHRQb3NpdGlvbj4oZnJvbVJhbmdlLnN0YXJ0KTsKICAgICBpZiAoIWZy
b20pCkBAIC03MTYsNyArNzE2LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAgICAgcmV0dXJuIE5TT3JkZXJlZFNhbWU7CiB9CiAKLS0gKHZvaWQpcGVyZm9ybVRleHRTZWFy
Y2hXaXRoUXVlcnlTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIHVzaW5nT3B0aW9uczooX1VJVGV4
dFNlYXJjaE9wdGlvbnMgKilvcHRpb25zIHJlc3VsdEFnZ3JlZ2F0b3I6KGlkPF9VSVRleHRTZWFy
Y2hBZ2dyZWdhdG9yPilhZ2dyZWdhdG9yCistICh2b2lkKXBlcmZvcm1UZXh0U2VhcmNoV2l0aFF1
ZXJ5U3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyB1c2luZ09wdGlvbnM6KFVJVGV4dFNlYXJjaE9w
dGlvbnMgKilvcHRpb25zIHJlc3VsdEFnZ3JlZ2F0b3I6KGlkPFVJVGV4dFNlYXJjaEFnZ3JlZ2F0
b3I+KWFnZ3JlZ2F0b3IKIHsKICAgICBbX2hvc3RWaWV3Q29udHJvbGxlciBjYW5jZWxGaW5kU3Ry
aW5nXTsKICAgICBfc2VhcmNoQWdncmVnYXRvciA9IGFnZ3JlZ2F0b3I7CkBAIC03MjQsOSArNzI0
LDkgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgW19ob3N0Vmlld0Nv
bnRyb2xsZXIgZmluZFN0cmluZzpzdHJpbmcgd2l0aE9wdGlvbnM6b3B0aW9ucy5zdHJpbmdDb21w
YXJlT3B0aW9uc107CiB9CiAKLS0gKHZvaWQpZGVjb3JhdGVGb3VuZFRleHRSYW5nZTooVUlUZXh0
UmFuZ2UgKilyYW5nZSBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVy
KWRvY3VtZW50IHVzaW5nU3R5bGU6KF9VSUZvdW5kVGV4dFN0eWxlKXN0eWxlCistICh2b2lkKWRl
Y29yYXRlRm91bmRUZXh0UmFuZ2U6KFVJVGV4dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDooVUlU
ZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50IHVzaW5nU3R5bGU6KFVJVGV4dFNl
YXJjaEZvdW5kVGV4dFN0eWxlKXN0eWxlCiB7Ci0gICAgaWYgKHN0eWxlICE9IF9VSUZvdW5kVGV4
dFN0eWxlSGlnaGxpZ2h0ZWQpCisgICAgaWYgKHN0eWxlICE9IFVJVGV4dFNlYXJjaEZvdW5kVGV4
dFN0eWxlSGlnaGxpZ2h0ZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gZm91bmRUZXh0
UmFuZ2UgPSBkeW5hbWljX29iamNfY2FzdDxXS1BERkZvdW5kVGV4dFJhbmdlPihyYW5nZSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTZiNTZi
Nzg4NjNkMzgzMTZkNDI5NTA5ODYzZGIzYTVlOWVhYTgxZS4uZjc0NDJlOGRhZWI1MTFmZTI1ZjQ2
M2JhN2I1ZjQ1ODVkNzA2MmQ3MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIyLTA0LTIxICBBZGl0eWEgS2VlcnRo
aSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBBZGQgZmluZCBpbnRlcmFj
dGlvbiBBUEkgdG8gV0tXZWJWaWV3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzk2MTIKKyAgICAgICAgcmRhcjovLzg4NDQyOTE4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBBdWdtZW50IGFuIGV4aXN0
aW5nIEFQSSB0ZXN0IHRvIHVzZSB0aGUgbmV3IEFQSSwgaW4gYWRkaXRpb24gdG8gdGhlCisgICAg
ICAgIGV4aXN0aW5nIFNQSS4KKworICAgICAgICBUaGUgZmluZC1hbmQtcmVwbGFjZSB0ZXN0IGlz
IHVwZGF0ZWQgdG8gYWNjb3VudCBmb3IgdGhlIGZhY3QgdGhhdCBhCisgICAgICAgIGZpbmQgaW50
ZXJhY3Rpb24gbm8gbG9uZ2VyIGV4cG9zZXMgYSBzZWFyY2hhYmxlT2JqZWN0LiBJbnN0ZWFkLCB1
c2UKKyAgICAgICAgdGVzdC1vbmx5IFNQSSBvbiBXS1dlYlZpZXcgdG8gcGVyZm9ybSB0aGUgcmVw
bGFjZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmluZElu
UGFnZS5tbToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIyLTA0LTIxICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIDxib2R5PiB3aXRoIG92ZXJmbG93Omhp
ZGRlbiBDU1MgaXMgc2Nyb2xsYWJsZSBvbiBpT1Mgc3RhbmRhbG9uZSB3ZWIgYXBwCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbmRJblBhZ2UubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbmRJblBhZ2UubW0KaW5k
ZXggYzZiNTFkYzZlOWE3NThlMmNiYTgzYjdiOWU1NTNiZjk3OGNkMjM4My4uODFiNmMzYmMwYjhl
NGQyMjI4OTIwNDU2NzU1Y2JjNTFlMGM1Mjg4MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaW5kSW5QYWdlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmluZEluUGFnZS5tbQpAQCAtNTMwLDEzICs1MzAsMTMg
QEAgVEVTVChXZWJLaXQsIEZpbmRBbmRSZXBsYWNlKQogCiAgICAgW3dlYlZpZXcgX3NldEVkaXRh
YmxlOk5PXTsKICAgICBmb3IgKFVJVGV4dFJhbmdlICpyYW5nZSBpbiBbcmFuZ2VzIHJldmVyc2VP
YmplY3RFbnVtZXJhdG9yXSkKLSAgICAgICAgW1tbd2ViVmlldyBfZmluZEludGVyYWN0aW9uXSBz
ZWFyY2hhYmxlT2JqZWN0XSByZXBsYWNlRm91bmRUZXh0SW5SYW5nZTpyYW5nZSBpbkRvY3VtZW50
Om5pbCB3aXRoVGV4dDpyZXBsYWNlbWVudFN0cmluZ107CisgICAgICAgIFt3ZWJWaWV3IHJlcGxh
Y2VGb3VuZFRleHRJblJhbmdlOnJhbmdlIGluRG9jdW1lbnQ6bmlsIHdpdGhUZXh0OnJlcGxhY2Vt
ZW50U3RyaW5nXTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShvcmlnaW5hbENvbnRlbnQsIFt3ZWJW
aWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LmlubmVyVGV4
dCJdKTsKIAogICAgIFt3ZWJWaWV3IF9zZXRFZGl0YWJsZTpZRVNdOwogICAgIGZvciAoVUlUZXh0
UmFuZ2UgKnJhbmdlIGluIFtyYW5nZXMgcmV2ZXJzZU9iamVjdEVudW1lcmF0b3JdKQotICAgICAg
ICBbW1t3ZWJWaWV3IF9maW5kSW50ZXJhY3Rpb25dIHNlYXJjaGFibGVPYmplY3RdIHJlcGxhY2VG
b3VuZFRleHRJblJhbmdlOnJhbmdlIGluRG9jdW1lbnQ6bmlsIHdpdGhUZXh0OnJlcGxhY2VtZW50
U3RyaW5nXTsKKyAgICAgICAgW3dlYlZpZXcgcmVwbGFjZUZvdW5kVGV4dEluUmFuZ2U6cmFuZ2Ug
aW5Eb2N1bWVudDpuaWwgd2l0aFRleHQ6cmVwbGFjZW1lbnRTdHJpbmddOwogCiAgICAgRVhQRUNU
X1dLX1NUUkVRKHJlcGxhY2VkQ29udGVudCwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDpAImRvY3VtZW50LmJvZHkuaW5uZXJUZXh0Il0pOwogfQpAQCAtNTUyLDYgKzU1Miwx
NCBAQCBURVNUKFdlYktpdCwgRmluZEludGVyYWN0aW9uKQogCiAgICAgW3dlYlZpZXcgX3NldEZp
bmRJbnRlcmFjdGlvbkVuYWJsZWQ6Tk9dOwogICAgIEVYUEVDVF9OVUxMKFt3ZWJWaWV3IF9maW5k
SW50ZXJhY3Rpb25dKTsKKworICAgIEVYUEVDVF9OVUxMKFt3ZWJWaWV3IGZpbmRJbnRlcmFjdGlv
bl0pOworCisgICAgW3dlYlZpZXcgc2V0RmluZEludGVyYWN0aW9uRW5hYmxlZDpZRVNdOworICAg
IEVYUEVDVF9OT1RfTlVMTChbd2ViVmlldyBmaW5kSW50ZXJhY3Rpb25dKTsKKworICAgIFt3ZWJW
aWV3IHNldEZpbmRJbnRlcmFjdGlvbkVuYWJsZWQ6Tk9dOworICAgIEVYUEVDVF9OVUxMKFt3ZWJW
aWV3IGZpbmRJbnRlcmFjdGlvbl0pOwogfQogCiBURVNUKFdlYktpdCwgUmVxdWVzdFJlY3RGb3JG
b3VuZFRleHRSYW5nZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458106</attachid>
            <date>2022-04-21 17:53:30 -0700</date>
            <delta_ts>2022-04-21 19:29:40 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-239612-20220421175329.patch</filename>
            <type>text/plain</type>
            <size>25037</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBiNzAwMGEyNmE4YmM1YTI3
OGE3MGFkMmQ4NTBmMjU4ZGE2ZjZlYzMuLjViYTI5OTI4YTQwODQ5N2MxZDFiMTdmMDA5NzY5N2Ew
ZDVlYmRjMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODEgQEAKKzIwMjItMDQtMjEgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkZCBmaW5kIGlu
dGVyYWN0aW9uIEFQSSB0byBXS1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzOTYxMgorICAgICAgICByZGFyOi8vODg0NDI5MTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFByb21vdGUgdGhl
IGBfZmluZEludGVyYWN0aW9uYCBhbmQgYF9maW5kSW50ZXJhY3Rpb25FbmFibGVkYCBTUEkgdG8K
KyAgICAgICAgYGZpbmRJbnRlcmFjdGlvbmAgYW5kIGBmaW5kSW50ZXJhY3Rpb25FbmFibGVkYCBB
UEkuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gbWFrZSB0aGlzIGNoYW5nZSwgbmV3IFVJS2l0IG9i
amVjdHMgYW5kIHByb3RvY29scyBtdXN0IGJlCisgICAgICAgIGFkb3B0ZWQuIEV4aXN0aW5nIChk
ZXByZWNhdGVkKSBwcm90b2NvbCBjb25mb3JtYW5jZSBpcyBrZXB0IGFyb3VuZCB0bworICAgICAg
ICBhdm9pZCBicmVha2luZyBpbnRlcm5hbCBjbGllbnRzLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGZpbmRJbnRlcmFjdGlvbkVuYWJsZWRd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldEZpbmRJbnRlcmFjdGlvbkVuYWJsZWQ6XSk6Cisg
ICAgICAgICgtW1dLV2ViVmlldyBmaW5kSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisKKyAgICAgICAgRGVjbGFyZSBjb25mb3JtYW5j
ZSB0byB0aHJlZSBwcm90b2NvbHM6IF9VSVRleHRTZWFyY2hpbmcsIFVJVGV4dFNlYXJjaGluZywg
VUlGaW5kSW50ZXJhY3Rpb25EZWxlZ2F0ZS4KKworICAgICAgICBfVUlUZXh0U2VhcmNoaW5nOiBD
b25mb3JtYW5jZSBpcyBrZXB0IGFyb3VuZCB0byBhdm9pZCBicmVha2luZyBpbnRlcm5hbCBjbGll
bnRzLgorICAgICAgICBVSVRleHRTZWFyY2hpbmc6IENvbmZvcm1hbmNlIGlzIGRlY2xhcmVkIGZv
ciBjbGllbnRzIHRvIG1pZ3JhdGUgb2ZmIG9mIF9VSVRleHRTZWFyY2hpbmcuCisgICAgICAgIFVJ
RmluZEludGVyYWN0aW9uRGVsZWdhdGU6IENvbmZvcm1hbmNlIGlzIG5lY2Vzc2FyeSB0byBiZWdp
biBhIFVJRmluZFNlc3Npb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZp
ZXdJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW06Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZV0pOgorCisgICAg
ICAgIFRoZSAic2VhcmNoYWJsZSBvYmplY3QiIGRvZXMgbm90IG5lZWQgdG8gYmUgcmVzZXQgYW55
bW9yZSwgYXMgVUlLaXQKKyAgICAgICAgd2lsbCBkbyB0aGF0IGluIGAtW1dLV2ViVmlldyBmaW5k
SW50ZXJhY3Rpb246c2Vzc2lvbkZvclZpZXc6XWAgdGhlIG5leHQKKyAgICAgICAgdGltZSBhIGZp
bmQgc2Vzc2lvbiBiZWdpbnMuCisKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZWFyY2hhYmxlT2Jq
ZWN0XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0RmluZEludGVyYWN0aW9uRW5hYmxlZDpd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9maW5kSW50ZXJhY3Rpb25dKToKKworICAgICAgICBJ
dCBpcyBzYWZlIHRvIGNhc3QgYmV0d2VlbiB0aGUgU1BJIGFuZCBBUEkgdmVyc2lvbiBvZiB0aGlz
IG9iamVjdC4gVUlLaXQKKyAgICAgICAgaGFzIGd1YXJhbnRlZWQgY29tcGF0aWJpbGl0eS4KKwor
ICAgICAgICAoLVtXS1dlYlZpZXcgb2Zmc2V0RnJvbVBvc2l0aW9uOnRvUG9zaXRpb246aW5Eb2N1
bWVudDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGNvbXBhcmVGb3VuZFJhbmdlOnRvUmFuZ2U6
aW5Eb2N1bWVudDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHBlcmZvcm1UZXh0U2VhcmNoV2l0
aFF1ZXJ5U3RyaW5nOnVzaW5nT3B0aW9uczpyZXN1bHRBZ2dyZWdhdG9yOl0pOgorICAgICAgICAo
LVtXS1dlYlZpZXcgcmVwbGFjZUZvdW5kVGV4dEluUmFuZ2U6aW5Eb2N1bWVudDp3aXRoVGV4dDpd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGRlY29yYXRlRm91bmRUZXh0UmFuZ2U6aW5Eb2N1bWVu
dDp1c2luZ1N0eWxlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgc2Nyb2xsUmFuZ2VUb1Zpc2li
bGU6aW5Eb2N1bWVudDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGZpbmRJbnRlcmFjdGlvbjpz
ZXNzaW9uRm9yVmlldzpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGZpbmRJbnRlcmFjdGlvbjpk
aWRCZWdpbkZpbmRTZXNzaW9uOl0pOgorCisgICAgICAgIEN1c3RvbSBjb250ZW50IHZpZXdzIGRv
IG5vdCBuZWVkIHRvIGJlIGF3YXJlIHRoYXQgYSBmaW5kIHNlc3Npb24gaGFzCisgICAgICAgIGJl
Z3VuLCBhcyB0aGV5IGRvIG5vdCBkcmF3IGFuIG92ZXJsYXkuCisKKyAgICAgICAgKC1bV0tXZWJW
aWV3IGZpbmRJbnRlcmFjdGlvbjpkaWRFbmRGaW5kU2Vzc2lvbjpdKToKKworICAgICAgICBDdXN0
b20gY29udGVudCB2aWV3cyBkbyBub3QgbmVlZCB0byBiZSBhd2FyZSB0aGF0IGEgZmluZCBzZXNz
aW9uIGhhcworICAgICAgICBiZWd1biwgYXMgdGhleSBkbyBub3QgZHJhdyBhbiBvdmVybGF5Lgor
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKwor
ICAgICAgICBEZWNsYXJlIHRoZSBvbGQgX1VJVGV4dFNlYXJjaGluZyBtZXRob2RzIGV4cGxpY2l0
bHksIGFzIHdlIG5lZWQgdG8KKyAgICAgICAgbWFpbnRhaW4gc3VwcG9ydCBmb3IgaW50ZXJuYWwg
Y2xpZW50cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHBlcmZvcm1UZXh0U2VhcmNoV2l0aFF1
ZXJ5U3RyaW5nOnVzaW5nT3B0aW9uczpyZXN1bHRBZ2dyZWdhdG9yOl0pOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IHJlcGxhY2VGb3VuZFRleHRJblJhbmdlOmluRG9jdW1lbnQ6d2l0aFRleHQ6
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGVjb3JhdGVGb3VuZFRleHRSYW5nZTppbkRv
Y3VtZW50OnVzaW5nU3R5bGU6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2Nyb2xsUmFu
Z2VUb1Zpc2libGU6aW5Eb2N1bWVudDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBvZmZz
ZXRGcm9tUG9zaXRpb246dG9Qb3NpdGlvbjppbkRvY3VtZW50Ol0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IGNvbXBhcmVGb3VuZFJhbmdlOnRvUmFuZ2U6aW5Eb2N1bWVudDpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLUERGVmlldy5tbToKKyAgICAgICAgKC1bV0tQREZWaWV3IGNv
bXBhcmVGb3VuZFJhbmdlOnRvUmFuZ2U6aW5Eb2N1bWVudDpdKToKKyAgICAgICAgKC1bV0tQREZW
aWV3IHBlcmZvcm1UZXh0U2VhcmNoV2l0aFF1ZXJ5U3RyaW5nOnVzaW5nT3B0aW9uczpyZXN1bHRB
Z2dyZWdhdG9yOl0pOgorICAgICAgICAoLVtXS1BERlZpZXcgZGVjb3JhdGVGb3VuZFRleHRSYW5n
ZTppbkRvY3VtZW50OnVzaW5nU3R5bGU6XSk6CisKIDIwMjItMDQtMjEgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBCdWlsZCBpcyBicm9rZW4gb24gc2hpcHBpbmcg
bWFjT1MgZHVlIHRvIFRCQSBhbm5vdGF0aW9ucyByZXBsYWNlbWVudCBpbiBBUEkgaGVhZGVycwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCmluZGV4IDVj
ZWM3ZGM2MjM3OGYyNDM3MmI0MDM5OGIxNWVkZDQ4OGJkMDk0YTEuLmI2OTc4OTY2YzY3YmM3YjMw
MDBhNGE1MWZiZGM1ODA0OGI0YmFhODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3LmgKQEAgLTMzLDYgKzMzLDEwIEBACiAKIE5TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCiAKKyNpZiBUQVJHRVRfT1NfSVBIT05FCitAY2xhc3MgVUlGaW5kSW50ZXJhY3Rp
b247CisjZW5kaWYKKwogQGNsYXNzIFdLQmFja0ZvcndhcmRMaXN0OwogQGNsYXNzIFdLQmFja0Zv
cndhcmRMaXN0SXRlbTsKIEBjbGFzcyBXS0NvbnRlbnRXb3JsZDsKQEAgLTY0Niw2ICs2NTAsMTYg
QEAgVGhlIHVuaWZvcm0gdHlwZSBpZGVudGlmaWVyIGtVVFR5cGVXZWJBcmNoaXZlIGNhbiBiZSB1
c2VkIGdldCB0aGUgcmVsYXRlZCBwYXN0ZWIKIC0gKHZvaWQpc2V0TWluaW11bVZpZXdwb3J0SW5z
ZXQ6KE5TRWRnZUluc2V0cyltaW5pbXVtVmlld3BvcnRJbnNldCBtYXhpbXVtVmlld3BvcnRJbnNl
dDooTlNFZGdlSW5zZXRzKW1heGltdW1WaWV3cG9ydEluc2V0IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSkpOwogI2VuZGlmCiAKKyNpZiBUQVJHRVRfT1NfSVBIT05FCisKKy8qISBA
YWJzdHJhY3QgRW5hYmxlcyB0aGUgd2ViIHZpZXcncyBidWlsdC1pbiBmaW5kIGludGVyYWN0aW9u
LiAqLworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgZ2V0dGVyPWlzRmluZEludGVy
YWN0aW9uRW5hYmxlZCkgQk9PTCBmaW5kSW50ZXJhY3Rpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUoaW9zKFdLX0lPU19UQkEpKTsKKworLyohIEBhYnN0cmFjdCBJZiAgQGxpbmsgZmluZEludGVy
YWN0aW9uRW5hYmxlZCBAL2xpbmsgaXMgc2V0IHRvIHRydWUsIHJldHVybnMgdGhpcyB3ZWIgdmll
dydzIGJ1aWx0LWluIGZpbmQgaW50ZXJhY3Rpb24uIE90aGVyd2lzZSwgbmlsLiAqLworQHByb3Bl
cnR5IChub25hdG9taWMsIG51bGxhYmxlLCByZWFkb25seSkgVUlGaW5kSW50ZXJhY3Rpb24gKmZp
bmRJbnRlcmFjdGlvbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CisKKyNlbmRp
ZgorCiBAZW5kCiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggYWIwNzRjYjRiMzMxMDRmNWI4OTdh
ZTljY2FiNDI5ODFlNGZlMjVkOS4uMWE0YmNjNGNlNGNkZTY4ODg0MmE4YmU0YmYzNDNiYzgxMGI4
MTdiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tCkBAIC0xNDM0LDYgKzE0MzQsNDMgQEAgaW5saW5lIE9wdGlvblNldDxXZWJLaXQ6OkZpbmRP
cHRpb25zPiB0b0ZpbmRPcHRpb25zKFdLRmluZENvbmZpZ3VyYXRpb24gKmNvbmZpZ3UKIH0KICNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogCistIChCT09MKWZpbmRJbnRlcmFjdGlvbkVu
YWJsZWQKK3sKKyNpZiBIQVZFKFVJRklORElOVEVSQUNUSU9OKQorICAgIHJldHVybiBfZmluZElu
dGVyYWN0aW9uRW5hYmxlZDsKKyNlbHNlCisgICAgcmV0dXJuIE5POworI2VuZGlmCit9CisKKy0g
KHZvaWQpc2V0RmluZEludGVyYWN0aW9uRW5hYmxlZDooQk9PTCllbmFibGVkCit7CisjaWYgSEFW
RShVSUZJTkRJTlRFUkFDVElPTikKKyAgICBpZiAoX2ZpbmRJbnRlcmFjdGlvbkVuYWJsZWQgIT0g
ZW5hYmxlZCkgeworICAgICAgICBfZmluZEludGVyYWN0aW9uRW5hYmxlZCA9IGVuYWJsZWQ7CisK
KyAgICAgICAgaWYgKGVuYWJsZWQpIHsKKyAgICAgICAgICAgIGlmICghX2ZpbmRJbnRlcmFjdGlv
bikKKyAgICAgICAgICAgICAgICBfZmluZEludGVyYWN0aW9uID0gYWRvcHROUyhbW1VJRmluZElu
dGVyYWN0aW9uIGFsbG9jXSBpbml0V2l0aFNlc3Npb25EZWxlZ2F0ZTpzZWxmXSk7CisKKyAgICAg
ICAgICAgIFtzZWxmIGFkZEludGVyYWN0aW9uOl9maW5kSW50ZXJhY3Rpb24uZ2V0KCldOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgW3NlbGYgcmVtb3ZlSW50ZXJhY3Rpb246X2ZpbmRJ
bnRlcmFjdGlvbi5nZXQoKV07CisgICAgICAgICAgICBfZmluZEludGVyYWN0aW9uID0gbmlsOwor
ICAgICAgICB9CisgICAgfQorI2VuZGlmCit9CisKKy0gKFVJRmluZEludGVyYWN0aW9uICopZmlu
ZEludGVyYWN0aW9uCit7CisjaWYgSEFWRShVSUZJTkRJTlRFUkFDVElPTikKKyAgICByZXR1cm4g
X2ZpbmRJbnRlcmFjdGlvbi5nZXQoKTsKKyNlbHNlCisgICAgcmV0dXJuIG5pbDsKKyNlbmRpZgor
fQorCiAjcHJhZ21hIG1hcmsgLSBtYWNPUyBBUEkKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5h
bC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFs
LmgKaW5kZXggNTJiNjM5NzQ5Yzg2YmZhNjY3NmM0NDJiZWFjY2E3NGYxY2FlOGViZS4uMDdkN2U4
ZTdiZDcwNjNkMjM1ODkyZThmNmJhOTJkMmZjYzAxNTJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKQEAgLTE2Myw3
ICsxNjMsNyBAQCBjbGFzcyBWaWV3R2VzdHVyZUNvbnRyb2xsZXI7CiAjZW5kaWYKIAogI2lmIEhB
VkUoVUlGSU5ESU5URVJBQ1RJT04pCi0gICAgUmV0YWluUHRyPF9VSUZpbmRJbnRlcmFjdGlvbj4g
X2ZpbmRJbnRlcmFjdGlvbjsKKyAgICBSZXRhaW5QdHI8VUlGaW5kSW50ZXJhY3Rpb24+IF9maW5k
SW50ZXJhY3Rpb247CiAgICAgQk9PTCBfZmluZEludGVyYWN0aW9uRW5hYmxlZDsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaAppbmRleCAxM2RkNjFiNzQwM2VlZmZjYTRkM2RlNjlkOWVkZWVhNmU2YjBlNmEwLi5l
MTRhZDhhNjhmOWJjZjkyZGU1MjIzMmY4OTk0YTQyZDFlNTBmMGE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTQ5
Myw3ICs0OTMsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgV0tEaXNwbGF5Q2Fw
dHVyZVN1cmZhY2VzKSB7CiAjaWYgVEFSR0VUX09TX0lQSE9ORQogCiAjaWYgIVRBUkdFVF9PU19U
ViAmJiAhVEFSR0VUX09TX1dBVENIICYmIF9faGFzX2luY2x1ZGUoPFVJS2l0L19VSVRleHRTZWFy
Y2hpbmcuaD4pCi1AaW50ZXJmYWNlIFdLV2ViVmlldyAoV0tQcml2YXRlSU9TKSA8X1VJVGV4dFNl
YXJjaGluZz4KK0BpbnRlcmZhY2UgV0tXZWJWaWV3IChXS1ByaXZhdGVJT1MpIDxfVUlUZXh0U2Vh
cmNoaW5nLCBVSVRleHRTZWFyY2hpbmcsIFVJRmluZEludGVyYWN0aW9uRGVsZWdhdGU+CiAjZWxz
ZQogQGludGVyZmFjZSBXS1dlYlZpZXcgKFdLUHJpdmF0ZUlPUykKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgKaW5kZXggNDlkYWM5OTNl
MjViYjVlY2FmNjQ3YTJiZGQyNWI0MWE3MTRlZDc3ZC4uYjMzZGFiNmU1OGY2NjA0MjQyZmYyNTc0
YzA4ZDFkZGVkYWVjYTMwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2lvcy9XS1dlYlZpZXdJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9z
L1dLV2ViVmlld0lPUy5oCkBAIC0xMzUsNyArMTM1LDcgQEAgZW51bSBjbGFzcyBUYXBIYW5kbGlu
Z1Jlc3VsdCA6IHVpbnQ4X3Q7CiAtICh2b2lkKWZpbmRQcmV2aW91czooaWQpc2VuZGVyOwogLSAo
dm9pZClmaW5kQW5kUmVwbGFjZTooaWQpc2VuZGVyOwogCi0tIChpZDxfVUlUZXh0U2VhcmNoaW5n
Pilfc2VhcmNoYWJsZU9iamVjdDsKKy0gKGlkPFVJVGV4dFNlYXJjaGluZz4pX3NlYXJjaGFibGVP
YmplY3Q7CiAjZW5kaWYKIAogLSAodm9pZClfbmV4dEFjY2Vzc29yeVRhYjooaWQpc2VuZGVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQppbmRl
eCBjYjQ5OTBhNTY1NDlhMGJiYWQzODYyZWY2Njk4MjYwODM2NWQ5YmVlLi4zOTdiYjU1NWQ2NzQw
Zjk3MDQ1MmFhYzMyMDY2YjI5ZjVmMTNhMWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQpAQCAtNzc4LDEwICs3NzgsOCBAQCBzdGF0aWMg
V2ViQ29yZTo6Q29sb3Igc2Nyb2xsVmlld0JhY2tncm91bmRDb2xvcihXS1dlYlZpZXcgKndlYlZp
ZXcsIEFsbG93UGFnZUJhYwogICAgICAgICBbX3Njcm9sbFZpZXcgX3N0b3BTY3JvbGxpbmdBbmRa
b29taW5nQW5pbWF0aW9uc107CiAKICNpZiBIQVZFKFVJRklORElOVEVSQUNUSU9OKQotICAgIGlm
IChfZmluZEludGVyYWN0aW9uRW5hYmxlZCkgeworICAgIGlmIChfZmluZEludGVyYWN0aW9uRW5h
YmxlZCkKICAgICAgICAgW19maW5kSW50ZXJhY3Rpb24gZGlzbWlzc0ZpbmROYXZpZ2F0b3JdOwot
ICAgICAgICBbX2ZpbmRJbnRlcmFjdGlvbiBzZXRTZWFyY2hhYmxlT2JqZWN0OltzZWxmIF9zZWFy
Y2hhYmxlT2JqZWN0XV07Ci0gICAgfQogI2VuZGlmCiB9CiAKQEAgLTI3MTUsMTAgKzI3MTMsMTAg
QEAgc3RhdGljIFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gdG9Vc2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKFVJU2UKIAogI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04p
CiAKLS0gKGlkPF9VSVRleHRTZWFyY2hpbmc+KV9zZWFyY2hhYmxlT2JqZWN0CistIChpZDxVSVRl
eHRTZWFyY2hpbmc+KV9zZWFyY2hhYmxlT2JqZWN0CiB7Ci0gICAgaWYgKFtfY3VzdG9tQ29udGVu
dFZpZXcgY29uZm9ybXNUb1Byb3RvY29sOkBwcm90b2NvbChfVUlUZXh0U2VhcmNoaW5nKV0pCi0g
ICAgICAgIHJldHVybiAoaWQ8X1VJVGV4dFNlYXJjaGluZz4pX2N1c3RvbUNvbnRlbnRWaWV3Lmdl
dCgpOworICAgIGlmIChbX2N1c3RvbUNvbnRlbnRWaWV3IGNvbmZvcm1zVG9Qcm90b2NvbDpAcHJv
dG9jb2woVUlUZXh0U2VhcmNoaW5nKV0pCisgICAgICAgIHJldHVybiAoaWQ8VUlUZXh0U2VhcmNo
aW5nPilfY3VzdG9tQ29udGVudFZpZXcuZ2V0KCk7CiAKICAgICByZXR1cm4gX2NvbnRlbnRWaWV3
LmdldCgpOwogfQpAQCAtMzU2MSwyOCArMzU1OSwxMiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cz4gdmlld3BvcnRBcmd1bWVudHNGcm9tRGljdGlvbmFy
eQogCiAtICh2b2lkKV9zZXRGaW5kSW50ZXJhY3Rpb25FbmFibGVkOihCT09MKWVuYWJsZWQKIHsK
LSAgICBpZiAoX2ZpbmRJbnRlcmFjdGlvbkVuYWJsZWQgIT0gZW5hYmxlZCkgewotICAgICAgICBf
ZmluZEludGVyYWN0aW9uRW5hYmxlZCA9IGVuYWJsZWQ7Ci0KLSAgICAgICAgaWYgKGVuYWJsZWQp
IHsKLSAgICAgICAgICAgIGlmICghX2ZpbmRJbnRlcmFjdGlvbikgewotICAgICAgICAgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0gICAgICAgICAgICAgICAgX2Zp
bmRJbnRlcmFjdGlvbiA9IGFkb3B0TlMoW1tfVUlGaW5kSW50ZXJhY3Rpb24gYWxsb2NdIGluaXRd
KTsKLSAgICAgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKLSAg
ICAgICAgICAgICAgICBbX2ZpbmRJbnRlcmFjdGlvbiBzZXRTZWFyY2hhYmxlT2JqZWN0OltzZWxm
IF9zZWFyY2hhYmxlT2JqZWN0XV07Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIFtzZWxm
IGFkZEludGVyYWN0aW9uOl9maW5kSW50ZXJhY3Rpb24uZ2V0KCldOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgW3NlbGYgcmVtb3ZlSW50ZXJhY3Rpb246X2ZpbmRJbnRlcmFjdGlvbi5n
ZXQoKV07Ci0gICAgICAgICAgICBfZmluZEludGVyYWN0aW9uID0gbmlsOwotICAgICAgICB9Ci0g
ICAgfQorICAgIFtzZWxmIHNldEZpbmRJbnRlcmFjdGlvbkVuYWJsZWQ6ZW5hYmxlZF07CiB9CiAK
IC0gKF9VSUZpbmRJbnRlcmFjdGlvbiAqKV9maW5kSW50ZXJhY3Rpb24KIHsKLSAgICByZXR1cm4g
X2ZpbmRJbnRlcmFjdGlvbi5nZXQoKTsKKyAgICByZXR1cm4gKF9VSUZpbmRJbnRlcmFjdGlvbiAq
KV9maW5kSW50ZXJhY3Rpb24uZ2V0KCk7CiB9CiAKIC0gKFVJVGV4dFJhbmdlICopc2VsZWN0ZWRU
ZXh0UmFuZ2UKQEAgLTM1OTEsMzAgKzM1NzMsMzMgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6Vmlld3BvcnRBcmd1bWVudHM+IHZpZXdwb3J0QXJndW1lbnRzRnJvbURpY3Rpb25hcnkK
IH0KIAogQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfQkVHSU4KLS0gKE5TSW50ZWdl
cilvZmZzZXRGcm9tUG9zaXRpb246KFVJVGV4dFBvc2l0aW9uICopZnJvbSB0b1Bvc2l0aW9uOihV
SVRleHRQb3NpdGlvbiAqKXRvUG9zaXRpb24gaW5Eb2N1bWVudDooX1VJVGV4dFNlYXJjaERvY3Vt
ZW50SWRlbnRpZmllcilkb2N1bWVudAorLSAoTlNJbnRlZ2VyKW9mZnNldEZyb21Qb3NpdGlvbjoo
VUlUZXh0UG9zaXRpb24gKilmcm9tIHRvUG9zaXRpb246KFVJVGV4dFBvc2l0aW9uICopdG9Qb3Np
dGlvbiBpbkRvY3VtZW50OihVSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQK
IHsKLSAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgIHJldHVybiBb
X2NvbnRlbnRWaWV3IG9mZnNldEZyb21Qb3NpdGlvbjpmcm9tIHRvUG9zaXRpb246dG9Qb3NpdGlv
biBpbkRvY3VtZW50OmRvY3VtZW50XTsKLSAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKIH0KIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogCi0tIChOU0Nv
bXBhcmlzb25SZXN1bHQpY29tcGFyZUZvdW5kUmFuZ2U6KFVJVGV4dFJhbmdlICopZnJvbVJhbmdl
IHRvUmFuZ2U6KFVJVGV4dFJhbmdlICopdG9SYW5nZSBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNo
RG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50CistIChOU0NvbXBhcmlzb25SZXN1bHQpY29tcGFy
ZUZvdW5kUmFuZ2U6KFVJVGV4dFJhbmdlICopZnJvbVJhbmdlIHRvUmFuZ2U6KFVJVGV4dFJhbmdl
ICopdG9SYW5nZSBpbkRvY3VtZW50OihVSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9j
dW1lbnQKIHsKICAgICByZXR1cm4gW19jb250ZW50VmlldyBjb21wYXJlRm91bmRSYW5nZTpmcm9t
UmFuZ2UgdG9SYW5nZTp0b1JhbmdlIGluRG9jdW1lbnQ6ZG9jdW1lbnRdOwogfQogCi0tICh2b2lk
KXBlcmZvcm1UZXh0U2VhcmNoV2l0aFF1ZXJ5U3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyB1c2lu
Z09wdGlvbnM6KF9VSVRleHRTZWFyY2hPcHRpb25zICopb3B0aW9ucyByZXN1bHRBZ2dyZWdhdG9y
OihpZDxfVUlUZXh0U2VhcmNoQWdncmVnYXRvcj4pYWdncmVnYXRvcgorLSAodm9pZClwZXJmb3Jt
VGV4dFNlYXJjaFdpdGhRdWVyeVN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgdXNpbmdPcHRpb25z
OihVSVRleHRTZWFyY2hPcHRpb25zICopb3B0aW9ucyByZXN1bHRBZ2dyZWdhdG9yOihpZDxVSVRl
eHRTZWFyY2hBZ2dyZWdhdG9yPilhZ2dyZWdhdG9yCiB7CiAgICAgW19jb250ZW50VmlldyBwZXJm
b3JtVGV4dFNlYXJjaFdpdGhRdWVyeVN0cmluZzpzdHJpbmcgdXNpbmdPcHRpb25zOm9wdGlvbnMg
cmVzdWx0QWdncmVnYXRvcjphZ2dyZWdhdG9yXTsKIH0KIAotLSAodm9pZClkZWNvcmF0ZUZvdW5k
VGV4dFJhbmdlOihVSVRleHRSYW5nZSAqKXJhbmdlIGluRG9jdW1lbnQ6KF9VSVRleHRTZWFyY2hE
b2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQgdXNpbmdTdHlsZTooX1VJRm91bmRUZXh0U3R5bGUp
c3R5bGUKKy0gKHZvaWQpcmVwbGFjZUZvdW5kVGV4dEluUmFuZ2U6KFVJVGV4dFJhbmdlICopcmFu
Z2UgaW5Eb2N1bWVudDooVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50IHdp
dGhUZXh0OihOU1N0cmluZyAqKXJlcGxhY2VtZW50VGV4dAoreworICAgIFtfY29udGVudFZpZXcg
cmVwbGFjZUZvdW5kVGV4dEluUmFuZ2U6cmFuZ2UgaW5Eb2N1bWVudDpkb2N1bWVudCB3aXRoVGV4
dDpyZXBsYWNlbWVudFRleHRdOworfQorCistICh2b2lkKWRlY29yYXRlRm91bmRUZXh0UmFuZ2U6
KFVJVGV4dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDooVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVu
dGlmaWVyKWRvY3VtZW50IHVzaW5nU3R5bGU6KFVJVGV4dFNlYXJjaEZvdW5kVGV4dFN0eWxlKXN0
eWxlCiB7CiAgICAgW19jb250ZW50VmlldyBkZWNvcmF0ZUZvdW5kVGV4dFJhbmdlOnJhbmdlIGlu
RG9jdW1lbnQ6ZG9jdW1lbnQgdXNpbmdTdHlsZTpzdHlsZV07CiB9CiAKLS0gKHZvaWQpc2Nyb2xs
UmFuZ2VUb1Zpc2libGU6KFVJVGV4dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDooX1VJVGV4dFNl
YXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudAorLSAodm9pZClzY3JvbGxSYW5nZVRvVmlz
aWJsZTooVUlUZXh0UmFuZ2UgKilyYW5nZSBpbkRvY3VtZW50OihVSVRleHRTZWFyY2hEb2N1bWVu
dElkZW50aWZpZXIpZG9jdW1lbnQKIHsKICAgICBbX2NvbnRlbnRWaWV3IHNjcm9sbFJhbmdlVG9W
aXNpYmxlOnJhbmdlIGluRG9jdW1lbnQ6ZG9jdW1lbnRdOwogfQpAQCAtMzYzOSw2ICszNjI0LDI0
IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgIFtfY29udGVudFZp
ZXcgcmVxdWVzdFJlY3RGb3JGb3VuZFRleHRSYW5nZTpyYW5nZXMgY29tcGxldGlvbkhhbmRsZXI6
Y29tcGxldGlvbkhhbmRsZXJdOwogfQogCistIChVSUZpbmRTZXNzaW9uICopZmluZEludGVyYWN0
aW9uOihVSUZpbmRJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHNlc3Npb25Gb3JWaWV3OihVSVZp
ZXcgKil2aWV3Cit7CisgICAgYXV0byBmaW5kU2Vzc2lvbiA9IGFkb3B0TlMoW1tVSVRleHRTZWFy
Y2hpbmdGaW5kU2Vzc2lvbiBhbGxvY10gaW5pdFdpdGhTZWFyY2hhYmxlT2JqZWN0OltzZWxmIF9z
ZWFyY2hhYmxlT2JqZWN0XV0pOworICAgIHJldHVybiBmaW5kU2Vzc2lvbi5hdXRvcmVsZWFzZSgp
OworfQorCistICh2b2lkKWZpbmRJbnRlcmFjdGlvbjooVUlGaW5kSW50ZXJhY3Rpb24gKilpbnRl
cmFjdGlvbiBkaWRCZWdpbkZpbmRTZXNzaW9uOihVSUZpbmRTZXNzaW9uICopc2Vzc2lvbgorewor
ICAgIGlmIChbc2VsZiBfc2VhcmNoYWJsZU9iamVjdF0gPT0gX2NvbnRlbnRWaWV3LmdldCgpKQor
ICAgICAgICBbX2NvbnRlbnRWaWV3IGRpZEJlZ2luVGV4dFNlYXJjaE9wZXJhdGlvbl07Cit9CisK
Ky0gKHZvaWQpZmluZEludGVyYWN0aW9uOihVSUZpbmRJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9u
IGRpZEVuZEZpbmRTZXNzaW9uOihVSUZpbmRTZXNzaW9uICopc2Vzc2lvbgoreworICAgIGlmIChb
c2VsZiBfc2VhcmNoYWJsZU9iamVjdF0gPT0gX2NvbnRlbnRWaWV3LmdldCgpKQorICAgICAgICBb
X2NvbnRlbnRWaWV3IGRpZEVuZFRleHRTZWFyY2hPcGVyYXRpb25dOworfQorCiAjZW5kaWYgLy8g
SEFWRShVSUZJTkRJTlRFUkFDVElPTikKIAogQGVuZCAvLyBXS1dlYlZpZXcgKFdLUHJpdmF0ZUlP
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24uaAppbmRleCA1MTgzZDQ4NmM0MTkwMTRkOTI1ZTI2Yzk4ZmU3YmQxZDY0Y2Yz
MGEyLi5kMzhjY2RkMDg2ZmRlMTY2MWM1ZDdiOGFlNTVhYTYxZTMyZmE5M2M1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5oCkBAIC01NjUsNyArNTY1LDcgQEAgdXNpbmcgSW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlm
aWVyID0gT2JqZWN0SWRlbnRpZmllcjxJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW4KICAgICAsIFdL
SG92ZXJQbGF0dGVyRGVsZWdhdGUKICNlbmRpZgogI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04p
Ci0gICAgLCBfVUlUZXh0U2VhcmNoaW5nCisgICAgLCBVSVRleHRTZWFyY2hpbmcKICNlbmRpZgog
PgogCkBAIC03OTcsNyArNzk3LDEwIEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19B
Q1RJT04oREVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAjZW5kaWYK
IAogI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04pCi0tIChOU0NvbXBhcmlzb25SZXN1bHQpY29t
cGFyZUZvdW5kUmFuZ2U6KFVJVGV4dFJhbmdlICopZnJvbVJhbmdlIHRvUmFuZ2U6KFVJVGV4dFJh
bmdlICopdG9SYW5nZSBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVy
KWRvY3VtZW50OworLSAoTlNJbnRlZ2VyKW9mZnNldEZyb21Qb3NpdGlvbjooVUlUZXh0UG9zaXRp
b24gKilmcm9tIHRvUG9zaXRpb246KFVJVGV4dFBvc2l0aW9uICopdG9Qb3NpdGlvbiBpbkRvY3Vt
ZW50OihVSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQ7CistICh2b2lkKWRp
ZEJlZ2luVGV4dFNlYXJjaE9wZXJhdGlvbjsKKy0gKHZvaWQpZGlkRW5kVGV4dFNlYXJjaE9wZXJh
dGlvbjsKKwogLSAodm9pZClyZXF1ZXN0UmVjdEZvckZvdW5kVGV4dFJhbmdlOihVSVRleHRSYW5n
ZSAqKXJhbmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShDR1JlY3QpKWNvbXBsZXRpb25I
YW5kbGVyOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGNmOWVlZjI5NzFlZDg0MTQ0Njgw
NDA1NTBkNzIyOGE1NTIwZjE1ZGEuLjkzYzUxZTVjODIwZjhjNGE5ZTY0MWQwN2I4YmE0NTg3ZTM5
YTE0NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMTA0MzUsMTQgKzEwNDM1LDE0IEBAIHN0YXRpYyBS
ZXRhaW5QdHI8TlNJdGVtUHJvdmlkZXI+IGNyZWF0ZUl0ZW1Qcm92aWRlcihjb25zdCBXZWJLaXQ6
OldlYlBhZ2VQcm94eSYKICAgICBbc2VsZi53ZWJWaWV3Ll9maW5kSW50ZXJhY3Rpb24gcHJlc2Vu
dEZpbmROYXZpZ2F0b3JTaG93aW5nUmVwbGFjZTpZRVNdOwogfQogCi0tICh2b2lkKXBlcmZvcm1U
ZXh0U2VhcmNoV2l0aFF1ZXJ5U3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyB1c2luZ09wdGlvbnM6
KF9VSVRleHRTZWFyY2hPcHRpb25zICopb3B0aW9ucyByZXN1bHRBZ2dyZWdhdG9yOihpZDxfVUlU
ZXh0U2VhcmNoQWdncmVnYXRvcj4pYWdncmVnYXRvcgorLSAodm9pZClwZXJmb3JtVGV4dFNlYXJj
aFdpdGhRdWVyeVN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgdXNpbmdPcHRpb25zOihVSVRleHRT
ZWFyY2hPcHRpb25zICopb3B0aW9ucyByZXN1bHRBZ2dyZWdhdG9yOihpZDxVSVRleHRTZWFyY2hB
Z2dyZWdhdG9yPilhZ2dyZWdhdG9yCiB7CiAgICAgT3B0aW9uU2V0PFdlYktpdDo6RmluZE9wdGlv
bnM+IGZpbmRPcHRpb25zOwogICAgIHN3aXRjaCAob3B0aW9ucy53b3JkTWF0Y2hNZXRob2QpIHsK
LSAgICBjYXNlIF9VSVRleHRTZWFyY2hNYXRjaE1ldGhvZFN0YXJ0c1dpdGg6CisgICAgY2FzZSBV
SVRleHRTZWFyY2hNYXRjaE1ldGhvZFN0YXJ0c1dpdGg6CiAgICAgICAgIGZpbmRPcHRpb25zLmFk
ZChXZWJLaXQ6OkZpbmRPcHRpb25zOjpBdFdvcmRTdGFydHMpOwogICAgICAgICBicmVhazsKLSAg
ICBjYXNlIF9VSVRleHRTZWFyY2hNYXRjaE1ldGhvZEZ1bGxXb3JkOgorICAgIGNhc2UgVUlUZXh0
U2VhcmNoTWF0Y2hNZXRob2RGdWxsV29yZDoKICAgICAgICAgZmluZE9wdGlvbnMuYWRkKHsgV2Vi
S2l0OjpGaW5kT3B0aW9uczo6QXRXb3JkU3RhcnRzLCBXZWJLaXQ6OkZpbmRPcHRpb25zOjpBdFdv
cmRFbmRzIH0pOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpAQCAtMTA0NjQsNyArMTA0
NjQsNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TSXRlbVByb3ZpZGVyPiBjcmVhdGVJdGVtUHJvdmlk
ZXIoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmCiAgICAgfSk7CiB9CiAKLS0gKHZvaWQpcmVw
bGFjZUZvdW5kVGV4dEluUmFuZ2U6KFVJVGV4dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDooX1VJ
VGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudCB3aXRoVGV4dDooTlNTdHJpbmcg
KilyZXBsYWNlbWVudFRleHQKKy0gKHZvaWQpcmVwbGFjZUZvdW5kVGV4dEluUmFuZ2U6KFVJVGV4
dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDooVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVy
KWRvY3VtZW50IHdpdGhUZXh0OihOU1N0cmluZyAqKXJlcGxhY2VtZW50VGV4dAogewogICAgIGlm
ICghc2VsZi5zdXBwb3J0c1RleHRSZXBsYWNlbWVudCkKICAgICAgICAgcmV0dXJuOwpAQCAtMTA0
NzYsMjIgKzEwNDc2LDIyIEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNJdGVtUHJvdmlkZXI+IGNyZWF0
ZUl0ZW1Qcm92aWRlcihjb25zdCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYKICAgICBfcGFnZS0+cmVw
bGFjZUZvdW5kVGV4dFJhbmdlV2l0aFN0cmluZyhbZm91bmRUZXh0UmFuZ2Ugd2ViRm91bmRUZXh0
UmFuZ2VdLCByZXBsYWNlbWVudFRleHQpOwogfQogCi0tICh2b2lkKWRlY29yYXRlRm91bmRUZXh0
UmFuZ2U6KFVJVGV4dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDooX1VJVGV4dFNlYXJjaERvY3Vt
ZW50SWRlbnRpZmllcilkb2N1bWVudCB1c2luZ1N0eWxlOihfVUlGb3VuZFRleHRTdHlsZSlzdHls
ZQorLSAodm9pZClkZWNvcmF0ZUZvdW5kVGV4dFJhbmdlOihVSVRleHRSYW5nZSAqKXJhbmdlIGlu
RG9jdW1lbnQ6KFVJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudCB1c2luZ1N0
eWxlOihVSVRleHRTZWFyY2hGb3VuZFRleHRTdHlsZSlzdHlsZQogewogICAgIGF1dG8gZm91bmRU
ZXh0UmFuZ2UgPSBkeW5hbWljX29iamNfY2FzdDxXS0ZvdW5kVGV4dFJhbmdlPihyYW5nZSk7CiAg
ICAgaWYgKCFmb3VuZFRleHRSYW5nZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBkZWNv
cmF0aW9uU3R5bGUgPSBXZWJLaXQ6OkZpbmREZWNvcmF0aW9uU3R5bGU6Ok5vcm1hbDsKLSAgICBp
ZiAoc3R5bGUgPT0gX1VJRm91bmRUZXh0U3R5bGVGb3VuZCkKKyAgICBpZiAoc3R5bGUgPT0gVUlU
ZXh0U2VhcmNoRm91bmRUZXh0U3R5bGVGb3VuZCkKICAgICAgICAgZGVjb3JhdGlvblN0eWxlID0g
V2ViS2l0OjpGaW5kRGVjb3JhdGlvblN0eWxlOjpGb3VuZDsKLSAgICBlbHNlIGlmIChzdHlsZSA9
PSBfVUlGb3VuZFRleHRTdHlsZUhpZ2hsaWdodGVkKQorICAgIGVsc2UgaWYgKHN0eWxlID09IFVJ
VGV4dFNlYXJjaEZvdW5kVGV4dFN0eWxlSGlnaGxpZ2h0ZWQpCiAgICAgICAgIGRlY29yYXRpb25T
dHlsZSA9IFdlYktpdDo6RmluZERlY29yYXRpb25TdHlsZTo6SGlnaGxpZ2h0ZWQ7CiAKICAgICBf
cGFnZS0+ZGVjb3JhdGVUZXh0UmFuZ2VXaXRoU3R5bGUoW2ZvdW5kVGV4dFJhbmdlIHdlYkZvdW5k
VGV4dFJhbmdlXSwgZGVjb3JhdGlvblN0eWxlKTsKIH0KIAotLSAodm9pZClzY3JvbGxSYW5nZVRv
VmlzaWJsZTooVUlUZXh0UmFuZ2UgKilyYW5nZSBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNoRG9j
dW1lbnRJZGVudGlmaWVyKWRvY3VtZW50CistICh2b2lkKXNjcm9sbFJhbmdlVG9WaXNpYmxlOihV
SVRleHRSYW5nZSAqKXJhbmdlIGluRG9jdW1lbnQ6KFVJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRp
Zmllcilkb2N1bWVudAogewogICAgIGlmIChhdXRvIGZvdW5kVGV4dFJhbmdlID0gZHluYW1pY19v
YmpjX2Nhc3Q8V0tGb3VuZFRleHRSYW5nZT4ocmFuZ2UpKQogICAgICAgICBfcGFnZS0+c2Nyb2xs
VGV4dFJhbmdlVG9WaXNpYmxlKFtmb3VuZFRleHRSYW5nZSB3ZWJGb3VuZFRleHRSYW5nZV0pOwpA
QCAtMTA1MTcsMTQgKzEwNTE3LDEyIEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNJdGVtUHJvdmlkZXI+
IGNyZWF0ZUl0ZW1Qcm92aWRlcihjb25zdCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYKICAgICByZXR1
cm4gc2VsZi53ZWJWaWV3Ll9lZGl0YWJsZTsKIH0KIAotQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1F
TlRBVElPTlNfQkVHSU4KLS0gKE5TSW50ZWdlcilvZmZzZXRGcm9tUG9zaXRpb246KFVJVGV4dFBv
c2l0aW9uICopZnJvbSB0b1Bvc2l0aW9uOihVSVRleHRQb3NpdGlvbiAqKXRvUG9zaXRpb24gaW5E
b2N1bWVudDooX1VJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudAorLSAoTlNJ
bnRlZ2VyKW9mZnNldEZyb21Qb3NpdGlvbjooVUlUZXh0UG9zaXRpb24gKilmcm9tIHRvUG9zaXRp
b246KFVJVGV4dFBvc2l0aW9uICopdG9Qb3NpdGlvbiBpbkRvY3VtZW50OihVSVRleHRTZWFyY2hE
b2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQKIHsKICAgICByZXR1cm4gW3NlbGYgb2Zmc2V0RnJv
bVBvc2l0aW9uOmZyb20gdG9Qb3NpdGlvbjp0b1Bvc2l0aW9uXTsKIH0KLUFMTE9XX0RFUFJFQ0FU
RURfSU1QTEVNRU5UQVRJT05TX0VORAogCi0tIChOU0NvbXBhcmlzb25SZXN1bHQpY29tcGFyZUZv
dW5kUmFuZ2U6KFVJVGV4dFJhbmdlICopZnJvbVJhbmdlIHRvUmFuZ2U6KFVJVGV4dFJhbmdlICop
dG9SYW5nZSBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3Vt
ZW50CistIChOU0NvbXBhcmlzb25SZXN1bHQpY29tcGFyZUZvdW5kUmFuZ2U6KFVJVGV4dFJhbmdl
ICopZnJvbVJhbmdlIHRvUmFuZ2U6KFVJVGV4dFJhbmdlICopdG9SYW5nZSBpbkRvY3VtZW50OihV
SVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQKIHsKICAgICBOU0ludGVnZXIg
b2Zmc2V0ID0gW3NlbGYgb2Zmc2V0RnJvbVBvc2l0aW9uOmZyb21SYW5nZS5zdGFydCB0b1Bvc2l0
aW9uOnRvUmFuZ2Uuc3RhcnRdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tQREZWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLUERGVmll
dy5tbQppbmRleCA4MDBjZTM5YWVlZDk2NDk1MmVhNWJiY2FiNTAzZGFhZWYwZjIyOGZjLi5mY2Jk
MTkyOGQ4OWE0YTlkNjkxNjQyMjI2MmQ0M2E4Mjk1M2NlMzIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS1BERlZpZXcubW0KQEAgLTEwOSw3ICsxMDksNyBAQAogCiBAaW50ZXJmYWNl
IFdLUERGVmlldyAoKSA8UERGSG9zdFZpZXdDb250cm9sbGVyRGVsZWdhdGUsIFdLQWN0aW9uU2hl
ZXRBc3Npc3RhbnREZWxlZ2F0ZQogI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04pCi0gICAgLCBf
VUlUZXh0U2VhcmNoaW5nCisgICAgLCBVSVRleHRTZWFyY2hpbmcKICNlbmRpZgogPgogQGVuZApA
QCAtMTM1LDcgKzEzNSw3IEBACiAgICAgUmV0YWluUHRyPFdLS2V5Ym9hcmRTY3JvbGxWaWV3QW5p
bWF0b3I+IF9rZXlib2FyZFNjcm9sbGluZ0FuaW1hdG9yOwogICAgIFJldGFpblB0cjxXS1NoYXJl
U2hlZXQ+IF9zaGFyZVNoZWV0OwogI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04pCi0gICAgUmV0
YWluUHRyPGlkPF9VSVRleHRTZWFyY2hBZ2dyZWdhdG9yPj4gX3NlYXJjaEFnZ3JlZ2F0b3I7Cisg
ICAgUmV0YWluUHRyPGlkPFVJVGV4dFNlYXJjaEFnZ3JlZ2F0b3I+PiBfc2VhcmNoQWdncmVnYXRv
cjsKICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IF9zZWFyY2hTdHJpbmc7CiAjZW5kaWYKIH0KQEAg
LTY4OCw3ICs2ODgsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBy
ZXR1cm4gW3VpRGVsZWdhdGUgX2RhdGFEZXRlY3Rpb25Db250ZXh0Rm9yV2ViVmlldzp3ZWJWaWV3
XTsKIH0KIAotI3ByYWdtYSBtYXJrIF9VSVRleHRTZWFyY2hpbmcKKyNwcmFnbWEgbWFyayBVSVRl
eHRTZWFyY2hpbmcKIAogI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04pCiAKQEAgLTY5Nyw3ICs2
OTcsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICByZXR1cm4gbmls
OwogfQogCi0tIChOU0NvbXBhcmlzb25SZXN1bHQpY29tcGFyZUZvdW5kUmFuZ2U6KFVJVGV4dFJh
bmdlICopZnJvbVJhbmdlIHRvUmFuZ2U6KFVJVGV4dFJhbmdlICopdG9SYW5nZSBpbkRvY3VtZW50
OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50CistIChOU0NvbXBhcmlz
b25SZXN1bHQpY29tcGFyZUZvdW5kUmFuZ2U6KFVJVGV4dFJhbmdlICopZnJvbVJhbmdlIHRvUmFu
Z2U6KFVJVGV4dFJhbmdlICopdG9SYW5nZSBpbkRvY3VtZW50OihVSVRleHRTZWFyY2hEb2N1bWVu
dElkZW50aWZpZXIpZG9jdW1lbnQKIHsKICAgICBhdXRvIGZyb20gPSBkeW5hbWljX29iamNfY2Fz
dDxXS1BERkZvdW5kVGV4dFBvc2l0aW9uPihmcm9tUmFuZ2Uuc3RhcnQpOwogICAgIGlmICghZnJv
bSkKQEAgLTcxNiw3ICs3MTYsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICByZXR1cm4gTlNPcmRlcmVkU2FtZTsKIH0KIAotLSAodm9pZClwZXJmb3JtVGV4dFNlYXJj
aFdpdGhRdWVyeVN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgdXNpbmdPcHRpb25zOihfVUlUZXh0
U2VhcmNoT3B0aW9ucyAqKW9wdGlvbnMgcmVzdWx0QWdncmVnYXRvcjooaWQ8X1VJVGV4dFNlYXJj
aEFnZ3JlZ2F0b3I+KWFnZ3JlZ2F0b3IKKy0gKHZvaWQpcGVyZm9ybVRleHRTZWFyY2hXaXRoUXVl
cnlTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIHVzaW5nT3B0aW9uczooVUlUZXh0U2VhcmNoT3B0
aW9ucyAqKW9wdGlvbnMgcmVzdWx0QWdncmVnYXRvcjooaWQ8VUlUZXh0U2VhcmNoQWdncmVnYXRv
cj4pYWdncmVnYXRvcgogewogICAgIFtfaG9zdFZpZXdDb250cm9sbGVyIGNhbmNlbEZpbmRTdHJp
bmddOwogICAgIF9zZWFyY2hBZ2dyZWdhdG9yID0gYWdncmVnYXRvcjsKQEAgLTcyNCw5ICs3MjQs
OSBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBbX2hvc3RWaWV3Q29u
dHJvbGxlciBmaW5kU3RyaW5nOnN0cmluZyB3aXRoT3B0aW9uczpvcHRpb25zLnN0cmluZ0NvbXBh
cmVPcHRpb25zXTsKIH0KIAotLSAodm9pZClkZWNvcmF0ZUZvdW5kVGV4dFJhbmdlOihVSVRleHRS
YW5nZSAqKXJhbmdlIGluRG9jdW1lbnQ6KF9VSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIp
ZG9jdW1lbnQgdXNpbmdTdHlsZTooX1VJRm91bmRUZXh0U3R5bGUpc3R5bGUKKy0gKHZvaWQpZGVj
b3JhdGVGb3VuZFRleHRSYW5nZTooVUlUZXh0UmFuZ2UgKilyYW5nZSBpbkRvY3VtZW50OihVSVRl
eHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQgdXNpbmdTdHlsZTooVUlUZXh0U2Vh
cmNoRm91bmRUZXh0U3R5bGUpc3R5bGUKIHsKLSAgICBpZiAoc3R5bGUgIT0gX1VJRm91bmRUZXh0
U3R5bGVIaWdobGlnaHRlZCkKKyAgICBpZiAoc3R5bGUgIT0gVUlUZXh0U2VhcmNoRm91bmRUZXh0
U3R5bGVIaWdobGlnaHRlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBmb3VuZFRleHRS
YW5nZSA9IGR5bmFtaWNfb2JqY19jYXN0PFdLUERGRm91bmRUZXh0UmFuZ2U+KHJhbmdlKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxNmI1NmI3
ODg2M2QzODMxNmQ0Mjk1MDk4NjNkYjNhNWU5ZWFhODFlLi5mNzQ0MmU4ZGFlYjUxMWZlMjVmNDYz
YmE3YjVmNDU4NWQ3MDYyZDcyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjItMDQtMjEgIEFkaXR5YSBLZWVydGhp
ICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkZCBmaW5kIGludGVyYWN0
aW9uIEFQSSB0byBXS1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzOTYxMgorICAgICAgICByZGFyOi8vODg0NDI5MTgKKworICAgICAgICBS
ZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIEF1Z21lbnQgYW4gZXhpc3Rp
bmcgQVBJIHRlc3QgdG8gdXNlIHRoZSBuZXcgQVBJLCBpbiBhZGRpdGlvbiB0byB0aGUKKyAgICAg
ICAgZXhpc3RpbmcgU1BJLgorCisgICAgICAgIFRoZSBmaW5kLWFuZC1yZXBsYWNlIHRlc3QgaXMg
dXBkYXRlZCB0byBhY2NvdW50IGZvciB0aGUgZmFjdCB0aGF0IGEKKyAgICAgICAgZmluZCBpbnRl
cmFjdGlvbiBubyBsb25nZXIgZXhwb3NlcyBhIHNlYXJjaGFibGVPYmplY3QuIEluc3RlYWQsIHVz
ZQorICAgICAgICB0ZXN0LW9ubHkgU1BJIG9uIFdLV2ViVmlldyB0byBwZXJmb3JtIHRoZSByZXBs
YWNlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaW5kSW5Q
YWdlLm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMjItMDQtMjEgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgPGJvZHk+IHdpdGggb3ZlcmZsb3c6aGlk
ZGVuIENTUyBpcyBzY3JvbGxhYmxlIG9uIGlPUyBzdGFuZGFsb25lIHdlYiBhcHAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmluZEluUGFnZS5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmluZEluUGFnZS5tbQppbmRl
eCBjNmI1MWRjNmU5YTc1OGUyY2JhODNiN2I5ZTU1M2JmOTc4Y2QyMzgzLi44MWI2YzNiYzBiOGU0
ZDIyMjg5MjA0NTY3NTVjYmM1MWUwYzUyODgwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbmRJblBhZ2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9GaW5kSW5QYWdlLm1tCkBAIC01MzAsMTMgKzUzMCwxMyBA
QCBURVNUKFdlYktpdCwgRmluZEFuZFJlcGxhY2UpCiAKICAgICBbd2ViVmlldyBfc2V0RWRpdGFi
bGU6Tk9dOwogICAgIGZvciAoVUlUZXh0UmFuZ2UgKnJhbmdlIGluIFtyYW5nZXMgcmV2ZXJzZU9i
amVjdEVudW1lcmF0b3JdKQotICAgICAgICBbW1t3ZWJWaWV3IF9maW5kSW50ZXJhY3Rpb25dIHNl
YXJjaGFibGVPYmplY3RdIHJlcGxhY2VGb3VuZFRleHRJblJhbmdlOnJhbmdlIGluRG9jdW1lbnQ6
bmlsIHdpdGhUZXh0OnJlcGxhY2VtZW50U3RyaW5nXTsKKyAgICAgICAgW3dlYlZpZXcgcmVwbGFj
ZUZvdW5kVGV4dEluUmFuZ2U6cmFuZ2UgaW5Eb2N1bWVudDpuaWwgd2l0aFRleHQ6cmVwbGFjZW1l
bnRTdHJpbmddOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKG9yaWdpbmFsQ29udGVudCwgW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmJvZHkuaW5uZXJUZXh0
Il0pOwogCiAgICAgW3dlYlZpZXcgX3NldEVkaXRhYmxlOllFU107CiAgICAgZm9yIChVSVRleHRS
YW5nZSAqcmFuZ2UgaW4gW3JhbmdlcyByZXZlcnNlT2JqZWN0RW51bWVyYXRvcl0pCi0gICAgICAg
IFtbW3dlYlZpZXcgX2ZpbmRJbnRlcmFjdGlvbl0gc2VhcmNoYWJsZU9iamVjdF0gcmVwbGFjZUZv
dW5kVGV4dEluUmFuZ2U6cmFuZ2UgaW5Eb2N1bWVudDpuaWwgd2l0aFRleHQ6cmVwbGFjZW1lbnRT
dHJpbmddOworICAgICAgICBbd2ViVmlldyByZXBsYWNlRm91bmRUZXh0SW5SYW5nZTpyYW5nZSBp
bkRvY3VtZW50Om5pbCB3aXRoVGV4dDpyZXBsYWNlbWVudFN0cmluZ107CiAKICAgICBFWFBFQ1Rf
V0tfU1RSRVEocmVwbGFjZWRDb250ZW50LCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAiZG9jdW1lbnQuYm9keS5pbm5lclRleHQiXSk7CiB9CkBAIC01NTIsNiArNTUyLDE0
IEBAIFRFU1QoV2ViS2l0LCBGaW5kSW50ZXJhY3Rpb24pCiAKICAgICBbd2ViVmlldyBfc2V0Rmlu
ZEludGVyYWN0aW9uRW5hYmxlZDpOT107CiAgICAgRVhQRUNUX05VTEwoW3dlYlZpZXcgX2ZpbmRJ
bnRlcmFjdGlvbl0pOworCisgICAgRVhQRUNUX05VTEwoW3dlYlZpZXcgZmluZEludGVyYWN0aW9u
XSk7CisKKyAgICBbd2ViVmlldyBzZXRGaW5kSW50ZXJhY3Rpb25FbmFibGVkOllFU107CisgICAg
RVhQRUNUX05PVF9OVUxMKFt3ZWJWaWV3IGZpbmRJbnRlcmFjdGlvbl0pOworCisgICAgW3dlYlZp
ZXcgc2V0RmluZEludGVyYWN0aW9uRW5hYmxlZDpOT107CisgICAgRVhQRUNUX05VTEwoW3dlYlZp
ZXcgZmluZEludGVyYWN0aW9uXSk7CiB9CiAKIFRFU1QoV2ViS2l0LCBSZXF1ZXN0UmVjdEZvckZv
dW5kVGV4dFJhbmdlKQo=
</data>
<flag name="commit-queue"
          id="486893"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458108</attachid>
            <date>2022-04-21 19:29:24 -0700</date>
            <delta_ts>2022-04-21 20:50:38 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-239612-20220421192922.patch</filename>
            <type>text/plain</type>
            <size>25687</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBiNzAwMGEyNmE4YmM1YTI3
OGE3MGFkMmQ4NTBmMjU4ZGE2ZjZlYzMuLjViYTI5OTI4YTQwODQ5N2MxZDFiMTdmMDA5NzY5N2Ew
ZDVlYmRjMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODEgQEAKKzIwMjItMDQtMjEgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkZCBmaW5kIGlu
dGVyYWN0aW9uIEFQSSB0byBXS1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzOTYxMgorICAgICAgICByZGFyOi8vODg0NDI5MTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFByb21vdGUgdGhl
IGBfZmluZEludGVyYWN0aW9uYCBhbmQgYF9maW5kSW50ZXJhY3Rpb25FbmFibGVkYCBTUEkgdG8K
KyAgICAgICAgYGZpbmRJbnRlcmFjdGlvbmAgYW5kIGBmaW5kSW50ZXJhY3Rpb25FbmFibGVkYCBB
UEkuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gbWFrZSB0aGlzIGNoYW5nZSwgbmV3IFVJS2l0IG9i
amVjdHMgYW5kIHByb3RvY29scyBtdXN0IGJlCisgICAgICAgIGFkb3B0ZWQuIEV4aXN0aW5nIChk
ZXByZWNhdGVkKSBwcm90b2NvbCBjb25mb3JtYW5jZSBpcyBrZXB0IGFyb3VuZCB0bworICAgICAg
ICBhdm9pZCBicmVha2luZyBpbnRlcm5hbCBjbGllbnRzLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGZpbmRJbnRlcmFjdGlvbkVuYWJsZWRd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldEZpbmRJbnRlcmFjdGlvbkVuYWJsZWQ6XSk6Cisg
ICAgICAgICgtW1dLV2ViVmlldyBmaW5kSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisKKyAgICAgICAgRGVjbGFyZSBjb25mb3JtYW5j
ZSB0byB0aHJlZSBwcm90b2NvbHM6IF9VSVRleHRTZWFyY2hpbmcsIFVJVGV4dFNlYXJjaGluZywg
VUlGaW5kSW50ZXJhY3Rpb25EZWxlZ2F0ZS4KKworICAgICAgICBfVUlUZXh0U2VhcmNoaW5nOiBD
b25mb3JtYW5jZSBpcyBrZXB0IGFyb3VuZCB0byBhdm9pZCBicmVha2luZyBpbnRlcm5hbCBjbGll
bnRzLgorICAgICAgICBVSVRleHRTZWFyY2hpbmc6IENvbmZvcm1hbmNlIGlzIGRlY2xhcmVkIGZv
ciBjbGllbnRzIHRvIG1pZ3JhdGUgb2ZmIG9mIF9VSVRleHRTZWFyY2hpbmcuCisgICAgICAgIFVJ
RmluZEludGVyYWN0aW9uRGVsZWdhdGU6IENvbmZvcm1hbmNlIGlzIG5lY2Vzc2FyeSB0byBiZWdp
biBhIFVJRmluZFNlc3Npb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZp
ZXdJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW06Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZV0pOgorCisgICAg
ICAgIFRoZSAic2VhcmNoYWJsZSBvYmplY3QiIGRvZXMgbm90IG5lZWQgdG8gYmUgcmVzZXQgYW55
bW9yZSwgYXMgVUlLaXQKKyAgICAgICAgd2lsbCBkbyB0aGF0IGluIGAtW1dLV2ViVmlldyBmaW5k
SW50ZXJhY3Rpb246c2Vzc2lvbkZvclZpZXc6XWAgdGhlIG5leHQKKyAgICAgICAgdGltZSBhIGZp
bmQgc2Vzc2lvbiBiZWdpbnMuCisKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZWFyY2hhYmxlT2Jq
ZWN0XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0RmluZEludGVyYWN0aW9uRW5hYmxlZDpd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9maW5kSW50ZXJhY3Rpb25dKToKKworICAgICAgICBJ
dCBpcyBzYWZlIHRvIGNhc3QgYmV0d2VlbiB0aGUgU1BJIGFuZCBBUEkgdmVyc2lvbiBvZiB0aGlz
IG9iamVjdC4gVUlLaXQKKyAgICAgICAgaGFzIGd1YXJhbnRlZWQgY29tcGF0aWJpbGl0eS4KKwor
ICAgICAgICAoLVtXS1dlYlZpZXcgb2Zmc2V0RnJvbVBvc2l0aW9uOnRvUG9zaXRpb246aW5Eb2N1
bWVudDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGNvbXBhcmVGb3VuZFJhbmdlOnRvUmFuZ2U6
aW5Eb2N1bWVudDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHBlcmZvcm1UZXh0U2VhcmNoV2l0
aFF1ZXJ5U3RyaW5nOnVzaW5nT3B0aW9uczpyZXN1bHRBZ2dyZWdhdG9yOl0pOgorICAgICAgICAo
LVtXS1dlYlZpZXcgcmVwbGFjZUZvdW5kVGV4dEluUmFuZ2U6aW5Eb2N1bWVudDp3aXRoVGV4dDpd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGRlY29yYXRlRm91bmRUZXh0UmFuZ2U6aW5Eb2N1bWVu
dDp1c2luZ1N0eWxlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgc2Nyb2xsUmFuZ2VUb1Zpc2li
bGU6aW5Eb2N1bWVudDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGZpbmRJbnRlcmFjdGlvbjpz
ZXNzaW9uRm9yVmlldzpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGZpbmRJbnRlcmFjdGlvbjpk
aWRCZWdpbkZpbmRTZXNzaW9uOl0pOgorCisgICAgICAgIEN1c3RvbSBjb250ZW50IHZpZXdzIGRv
IG5vdCBuZWVkIHRvIGJlIGF3YXJlIHRoYXQgYSBmaW5kIHNlc3Npb24gaGFzCisgICAgICAgIGJl
Z3VuLCBhcyB0aGV5IGRvIG5vdCBkcmF3IGFuIG92ZXJsYXkuCisKKyAgICAgICAgKC1bV0tXZWJW
aWV3IGZpbmRJbnRlcmFjdGlvbjpkaWRFbmRGaW5kU2Vzc2lvbjpdKToKKworICAgICAgICBDdXN0
b20gY29udGVudCB2aWV3cyBkbyBub3QgbmVlZCB0byBiZSBhd2FyZSB0aGF0IGEgZmluZCBzZXNz
aW9uIGhhcworICAgICAgICBiZWd1biwgYXMgdGhleSBkbyBub3QgZHJhdyBhbiBvdmVybGF5Lgor
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKwor
ICAgICAgICBEZWNsYXJlIHRoZSBvbGQgX1VJVGV4dFNlYXJjaGluZyBtZXRob2RzIGV4cGxpY2l0
bHksIGFzIHdlIG5lZWQgdG8KKyAgICAgICAgbWFpbnRhaW4gc3VwcG9ydCBmb3IgaW50ZXJuYWwg
Y2xpZW50cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHBlcmZvcm1UZXh0U2VhcmNoV2l0aFF1
ZXJ5U3RyaW5nOnVzaW5nT3B0aW9uczpyZXN1bHRBZ2dyZWdhdG9yOl0pOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IHJlcGxhY2VGb3VuZFRleHRJblJhbmdlOmluRG9jdW1lbnQ6d2l0aFRleHQ6
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGVjb3JhdGVGb3VuZFRleHRSYW5nZTppbkRv
Y3VtZW50OnVzaW5nU3R5bGU6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2Nyb2xsUmFu
Z2VUb1Zpc2libGU6aW5Eb2N1bWVudDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBvZmZz
ZXRGcm9tUG9zaXRpb246dG9Qb3NpdGlvbjppbkRvY3VtZW50Ol0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IGNvbXBhcmVGb3VuZFJhbmdlOnRvUmFuZ2U6aW5Eb2N1bWVudDpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLUERGVmlldy5tbToKKyAgICAgICAgKC1bV0tQREZWaWV3IGNv
bXBhcmVGb3VuZFJhbmdlOnRvUmFuZ2U6aW5Eb2N1bWVudDpdKToKKyAgICAgICAgKC1bV0tQREZW
aWV3IHBlcmZvcm1UZXh0U2VhcmNoV2l0aFF1ZXJ5U3RyaW5nOnVzaW5nT3B0aW9uczpyZXN1bHRB
Z2dyZWdhdG9yOl0pOgorICAgICAgICAoLVtXS1BERlZpZXcgZGVjb3JhdGVGb3VuZFRleHRSYW5n
ZTppbkRvY3VtZW50OnVzaW5nU3R5bGU6XSk6CisKIDIwMjItMDQtMjEgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBCdWlsZCBpcyBicm9rZW4gb24gc2hpcHBpbmcg
bWFjT1MgZHVlIHRvIFRCQSBhbm5vdGF0aW9ucyByZXBsYWNlbWVudCBpbiBBUEkgaGVhZGVycwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCmluZGV4IDVj
ZWM3ZGM2MjM3OGYyNDM3MmI0MDM5OGIxNWVkZDQ4OGJkMDk0YTEuLmI2OTc4OTY2YzY3YmM3YjMw
MDBhNGE1MWZiZGM1ODA0OGI0YmFhODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3LmgKQEAgLTMzLDYgKzMzLDEwIEBACiAKIE5TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCiAKKyNpZiBUQVJHRVRfT1NfSVBIT05FCitAY2xhc3MgVUlGaW5kSW50ZXJhY3Rp
b247CisjZW5kaWYKKwogQGNsYXNzIFdLQmFja0ZvcndhcmRMaXN0OwogQGNsYXNzIFdLQmFja0Zv
cndhcmRMaXN0SXRlbTsKIEBjbGFzcyBXS0NvbnRlbnRXb3JsZDsKQEAgLTY0Niw2ICs2NTAsMTYg
QEAgVGhlIHVuaWZvcm0gdHlwZSBpZGVudGlmaWVyIGtVVFR5cGVXZWJBcmNoaXZlIGNhbiBiZSB1
c2VkIGdldCB0aGUgcmVsYXRlZCBwYXN0ZWIKIC0gKHZvaWQpc2V0TWluaW11bVZpZXdwb3J0SW5z
ZXQ6KE5TRWRnZUluc2V0cyltaW5pbXVtVmlld3BvcnRJbnNldCBtYXhpbXVtVmlld3BvcnRJbnNl
dDooTlNFZGdlSW5zZXRzKW1heGltdW1WaWV3cG9ydEluc2V0IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSkpOwogI2VuZGlmCiAKKyNpZiBUQVJHRVRfT1NfSVBIT05FCisKKy8qISBA
YWJzdHJhY3QgRW5hYmxlcyB0aGUgd2ViIHZpZXcncyBidWlsdC1pbiBmaW5kIGludGVyYWN0aW9u
LiAqLworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgZ2V0dGVyPWlzRmluZEludGVy
YWN0aW9uRW5hYmxlZCkgQk9PTCBmaW5kSW50ZXJhY3Rpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUoaW9zKFdLX0lPU19UQkEpKTsKKworLyohIEBhYnN0cmFjdCBJZiAgQGxpbmsgZmluZEludGVy
YWN0aW9uRW5hYmxlZCBAL2xpbmsgaXMgc2V0IHRvIHRydWUsIHJldHVybnMgdGhpcyB3ZWIgdmll
dydzIGJ1aWx0LWluIGZpbmQgaW50ZXJhY3Rpb24uIE90aGVyd2lzZSwgbmlsLiAqLworQHByb3Bl
cnR5IChub25hdG9taWMsIG51bGxhYmxlLCByZWFkb25seSkgVUlGaW5kSW50ZXJhY3Rpb24gKmZp
bmRJbnRlcmFjdGlvbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CisKKyNlbmRp
ZgorCiBAZW5kCiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggYWIwNzRjYjRiMzMxMDRmNWI4OTdh
ZTljY2FiNDI5ODFlNGZlMjVkOS4uMjMxN2VkZjIxOTk3MTNmYzI0YWY3YTA4NWZiMGMxYjExMTI0
YzJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tCkBAIC0zNjksMTAgKzM2OSw3IEBAIHN0YXRpYyB2b2lkIGhhcmR3YXJlS2V5Ym9hcmRBdmFp
bGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2soQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsCiAgICAgX2lu
aXRpYWxTY2FsZUZhY3RvciA9IDE7CiAgICAgX2FsbG93c1ZpZXdwb3J0U2hyaW5rVG9GaXQgPSBk
ZWZhdWx0QWxsb3dzVmlld3BvcnRTaHJpbmtUb0ZpdDsKICAgICBfYWxsb3dzTGlua1ByZXZpZXcg
PSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpMaW5r
UHJldmlld0VuYWJsZWRCeURlZmF1bHQpOwotCi0jaWYgSEFWRShVSUZJTkRJTlRFUkFDVElPTikK
ICAgICBfZmluZEludGVyYWN0aW9uRW5hYmxlZCA9IE5POwotI2VuZGlmCiAKICAgICBhdXRvIGZh
c3RDbGlja2luZ0VuYWJsZWQgPSBbXSgpIHsKICAgICAgICAgaWYgKE5TTnVtYmVyICplbmFibGVk
VmFsdWUgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JL
ZXk6QCJXZWJLaXRGYXN0Q2xpY2tpbmdEaXNhYmxlZCJdKQpAQCAtMTQzNCw2ICsxNDMxLDM5IEBA
IGlubGluZSBPcHRpb25TZXQ8V2ViS2l0OjpGaW5kT3B0aW9ucz4gdG9GaW5kT3B0aW9ucyhXS0Zp
bmRDb25maWd1cmF0aW9uICpjb25maWd1CiB9CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlM
WSkKIAorLSAoQk9PTClmaW5kSW50ZXJhY3Rpb25FbmFibGVkCit7CisgICAgcmV0dXJuIF9maW5k
SW50ZXJhY3Rpb25FbmFibGVkOworfQorCistICh2b2lkKXNldEZpbmRJbnRlcmFjdGlvbkVuYWJs
ZWQ6KEJPT0wpZW5hYmxlZAoreworI2lmIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04pCisgICAgaWYg
KF9maW5kSW50ZXJhY3Rpb25FbmFibGVkICE9IGVuYWJsZWQpIHsKKyAgICAgICAgX2ZpbmRJbnRl
cmFjdGlvbkVuYWJsZWQgPSBlbmFibGVkOworCisgICAgICAgIGlmIChlbmFibGVkKSB7CisgICAg
ICAgICAgICBpZiAoIV9maW5kSW50ZXJhY3Rpb24pCisgICAgICAgICAgICAgICAgX2ZpbmRJbnRl
cmFjdGlvbiA9IGFkb3B0TlMoW1tVSUZpbmRJbnRlcmFjdGlvbiBhbGxvY10gaW5pdFdpdGhTZXNz
aW9uRGVsZWdhdGU6c2VsZl0pOworCisgICAgICAgICAgICBbc2VsZiBhZGRJbnRlcmFjdGlvbjpf
ZmluZEludGVyYWN0aW9uLmdldCgpXTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFtz
ZWxmIHJlbW92ZUludGVyYWN0aW9uOl9maW5kSW50ZXJhY3Rpb24uZ2V0KCldOworICAgICAgICAg
ICAgX2ZpbmRJbnRlcmFjdGlvbiA9IG5pbDsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorfQor
CistIChVSUZpbmRJbnRlcmFjdGlvbiAqKWZpbmRJbnRlcmFjdGlvbgoreworI2lmIEhBVkUoVUlG
SU5ESU5URVJBQ1RJT04pCisgICAgcmV0dXJuIF9maW5kSW50ZXJhY3Rpb24uZ2V0KCk7CisjZWxz
ZQorICAgIHJldHVybiBuaWw7CisjZW5kaWYKK30KKwogI3ByYWdtYSBtYXJrIC0gbWFjT1MgQVBJ
CiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IDUyYjYzOTc0OWM4NmJmYTY2NzZj
NDQyYmVhY2NhNzRmMWNhZThlYmUuLjJmNDI2MzU3N2IyYmU0OWNkMDRlYmI5YTZiMTM0Nzc4NDA4
OWM5ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdJbnRlcm5hbC5oCkBAIC0xNjIsOSArMTYyLDkgQEAgY2xhc3MgVmlld0dlc3R1cmVD
b250cm9sbGVyOwogICAgIFJldGFpblB0cjxXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyPiBf
ZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXI7CiAjZW5kaWYKIAotI2lmIEhBVkUoVUlGSU5ESU5U
RVJBQ1RJT04pCi0gICAgUmV0YWluUHRyPF9VSUZpbmRJbnRlcmFjdGlvbj4gX2ZpbmRJbnRlcmFj
dGlvbjsKICAgICBCT09MIF9maW5kSW50ZXJhY3Rpb25FbmFibGVkOworI2lmIEhBVkUoVUlGSU5E
SU5URVJBQ1RJT04pCisgICAgUmV0YWluUHRyPFVJRmluZEludGVyYWN0aW9uPiBfZmluZEludGVy
YWN0aW9uOwogI2VuZGlmCiAKICAgICBSZXRhaW5QdHI8X1dLUmVtb3RlT2JqZWN0UmVnaXN0cnk+
IF9yZW1vdGVPYmplY3RSZWdpc3RyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDEzZGQ2MWI3NDAzZWVmZmNhNGQz
ZGU2OWQ5ZWRlZWE2ZTZiMGU2YTAuLmUxNGFkOGE2OGY5YmNmOTJkZTUyMjMyZjg5OTRhNDJkMWU1
MGYwYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGUuaApAQCAtNDkzLDcgKzQ5Myw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhO
U1VJbnRlZ2VyLCBXS0Rpc3BsYXlDYXB0dXJlU3VyZmFjZXMpIHsKICNpZiBUQVJHRVRfT1NfSVBI
T05FCiAKICNpZiAhVEFSR0VUX09TX1RWICYmICFUQVJHRVRfT1NfV0FUQ0ggJiYgX19oYXNfaW5j
bHVkZSg8VUlLaXQvX1VJVGV4dFNlYXJjaGluZy5oPikKLUBpbnRlcmZhY2UgV0tXZWJWaWV3IChX
S1ByaXZhdGVJT1MpIDxfVUlUZXh0U2VhcmNoaW5nPgorQGludGVyZmFjZSBXS1dlYlZpZXcgKFdL
UHJpdmF0ZUlPUykgPF9VSVRleHRTZWFyY2hpbmcsIFVJVGV4dFNlYXJjaGluZywgVUlGaW5kSW50
ZXJhY3Rpb25EZWxlZ2F0ZT4KICNlbHNlCiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoV0tQcml2YXRl
SU9TKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9z
L1dLV2ViVmlld0lPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZp
ZXdJT1MuaAppbmRleCA0OWRhYzk5M2UyNWJiNWVjYWY2NDdhMmJkZDI1YjQxYTcxNGVkNzdkLi5i
MzNkYWI2ZTU4ZjY2MDQyNDJmZjI1NzRjMDhkMWRkZWRhZWNhMzAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgKQEAgLTEzNSw3ICsxMzUsNyBA
QCBlbnVtIGNsYXNzIFRhcEhhbmRsaW5nUmVzdWx0IDogdWludDhfdDsKIC0gKHZvaWQpZmluZFBy
ZXZpb3VzOihpZClzZW5kZXI7CiAtICh2b2lkKWZpbmRBbmRSZXBsYWNlOihpZClzZW5kZXI7CiAK
LS0gKGlkPF9VSVRleHRTZWFyY2hpbmc+KV9zZWFyY2hhYmxlT2JqZWN0OworLSAoaWQ8VUlUZXh0
U2VhcmNoaW5nPilfc2VhcmNoYWJsZU9iamVjdDsKICNlbmRpZgogCiAtICh2b2lkKV9uZXh0QWNj
ZXNzb3J5VGFiOihpZClzZW5kZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9p
b3MvV0tXZWJWaWV3SU9TLm1tCmluZGV4IGNiNDk5MGE1NjU0OWEwYmJhZDM4NjJlZjY2OTgyNjA4
MzY1ZDliZWUuLjM5N2JiNTU1ZDY3NDBmOTcwNDUyYWFjMzIwNjZiMjlmNWYxM2ExYzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tCkBAIC03
NzgsMTAgKzc3OCw4IEBAIHN0YXRpYyBXZWJDb3JlOjpDb2xvciBzY3JvbGxWaWV3QmFja2dyb3Vu
ZENvbG9yKFdLV2ViVmlldyAqd2ViVmlldywgQWxsb3dQYWdlQmFjCiAgICAgICAgIFtfc2Nyb2xs
VmlldyBfc3RvcFNjcm9sbGluZ0FuZFpvb21pbmdBbmltYXRpb25zXTsKIAogI2lmIEhBVkUoVUlG
SU5ESU5URVJBQ1RJT04pCi0gICAgaWYgKF9maW5kSW50ZXJhY3Rpb25FbmFibGVkKSB7CisgICAg
aWYgKF9maW5kSW50ZXJhY3Rpb25FbmFibGVkKQogICAgICAgICBbX2ZpbmRJbnRlcmFjdGlvbiBk
aXNtaXNzRmluZE5hdmlnYXRvcl07Ci0gICAgICAgIFtfZmluZEludGVyYWN0aW9uIHNldFNlYXJj
aGFibGVPYmplY3Q6W3NlbGYgX3NlYXJjaGFibGVPYmplY3RdXTsKLSAgICB9CiAjZW5kaWYKIH0K
IApAQCAtMjcxNSwxMCArMjcxMywxMCBAQCBzdGF0aWMgV2ViQ29yZTo6VXNlckludGVyZmFjZUxh
eW91dERpcmVjdGlvbiB0b1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oVUlTZQogCiAjaWYg
SEFWRShVSUZJTkRJTlRFUkFDVElPTikKIAotLSAoaWQ8X1VJVGV4dFNlYXJjaGluZz4pX3NlYXJj
aGFibGVPYmplY3QKKy0gKGlkPFVJVGV4dFNlYXJjaGluZz4pX3NlYXJjaGFibGVPYmplY3QKIHsK
LSAgICBpZiAoW19jdXN0b21Db250ZW50VmlldyBjb25mb3Jtc1RvUHJvdG9jb2w6QHByb3RvY29s
KF9VSVRleHRTZWFyY2hpbmcpXSkKLSAgICAgICAgcmV0dXJuIChpZDxfVUlUZXh0U2VhcmNoaW5n
PilfY3VzdG9tQ29udGVudFZpZXcuZ2V0KCk7CisgICAgaWYgKFtfY3VzdG9tQ29udGVudFZpZXcg
Y29uZm9ybXNUb1Byb3RvY29sOkBwcm90b2NvbChVSVRleHRTZWFyY2hpbmcpXSkKKyAgICAgICAg
cmV0dXJuIChpZDxVSVRleHRTZWFyY2hpbmc+KV9jdXN0b21Db250ZW50Vmlldy5nZXQoKTsKIAog
ICAgIHJldHVybiBfY29udGVudFZpZXcuZ2V0KCk7CiB9CkBAIC0zNTYxLDI4ICszNTU5LDEyIEBA
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiB2aWV3cG9y
dEFyZ3VtZW50c0Zyb21EaWN0aW9uYXJ5CiAKIC0gKHZvaWQpX3NldEZpbmRJbnRlcmFjdGlvbkVu
YWJsZWQ6KEJPT0wpZW5hYmxlZAogewotICAgIGlmIChfZmluZEludGVyYWN0aW9uRW5hYmxlZCAh
PSBlbmFibGVkKSB7Ci0gICAgICAgIF9maW5kSW50ZXJhY3Rpb25FbmFibGVkID0gZW5hYmxlZDsK
LQotICAgICAgICBpZiAoZW5hYmxlZCkgewotICAgICAgICAgICAgaWYgKCFfZmluZEludGVyYWN0
aW9uKSB7Ci0gICAgICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVH
SU4KLSAgICAgICAgICAgICAgICBfZmluZEludGVyYWN0aW9uID0gYWRvcHROUyhbW19VSUZpbmRJ
bnRlcmFjdGlvbiBhbGxvY10gaW5pdF0pOwotICAgICAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAotICAgICAgICAgICAgICAgIFtfZmluZEludGVyYWN0aW9uIHNl
dFNlYXJjaGFibGVPYmplY3Q6W3NlbGYgX3NlYXJjaGFibGVPYmplY3RdXTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgW3NlbGYgYWRkSW50ZXJhY3Rpb246X2ZpbmRJbnRlcmFjdGlvbi5n
ZXQoKV07Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBbc2VsZiByZW1vdmVJbnRlcmFj
dGlvbjpfZmluZEludGVyYWN0aW9uLmdldCgpXTsKLSAgICAgICAgICAgIF9maW5kSW50ZXJhY3Rp
b24gPSBuaWw7Ci0gICAgICAgIH0KLSAgICB9CisgICAgW3NlbGYgc2V0RmluZEludGVyYWN0aW9u
RW5hYmxlZDplbmFibGVkXTsKIH0KIAogLSAoX1VJRmluZEludGVyYWN0aW9uICopX2ZpbmRJbnRl
cmFjdGlvbgogewotICAgIHJldHVybiBfZmluZEludGVyYWN0aW9uLmdldCgpOworICAgIHJldHVy
biAoX1VJRmluZEludGVyYWN0aW9uICopX2ZpbmRJbnRlcmFjdGlvbi5nZXQoKTsKIH0KIAogLSAo
VUlUZXh0UmFuZ2UgKilzZWxlY3RlZFRleHRSYW5nZQpAQCAtMzU5MSwzMCArMzU3MywzMyBAQCBz
dGF0aWMgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cz4gdmlld3BvcnRB
cmd1bWVudHNGcm9tRGljdGlvbmFyeQogfQogCiBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFU
SU9OU19CRUdJTgotLSAoTlNJbnRlZ2VyKW9mZnNldEZyb21Qb3NpdGlvbjooVUlUZXh0UG9zaXRp
b24gKilmcm9tIHRvUG9zaXRpb246KFVJVGV4dFBvc2l0aW9uICopdG9Qb3NpdGlvbiBpbkRvY3Vt
ZW50OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50CistIChOU0ludGVn
ZXIpb2Zmc2V0RnJvbVBvc2l0aW9uOihVSVRleHRQb3NpdGlvbiAqKWZyb20gdG9Qb3NpdGlvbjoo
VUlUZXh0UG9zaXRpb24gKil0b1Bvc2l0aW9uIGluRG9jdW1lbnQ6KFVJVGV4dFNlYXJjaERvY3Vt
ZW50SWRlbnRpZmllcilkb2N1bWVudAogewotICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAgICAgcmV0dXJuIFtfY29udGVudFZpZXcgb2Zmc2V0RnJvbVBvc2l0aW9uOmZy
b20gdG9Qb3NpdGlvbjp0b1Bvc2l0aW9uIGluRG9jdW1lbnQ6ZG9jdW1lbnRdOwotICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogfQogQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1F
TlRBVElPTlNfRU5ECiAKLS0gKE5TQ29tcGFyaXNvblJlc3VsdCljb21wYXJlRm91bmRSYW5nZToo
VUlUZXh0UmFuZ2UgKilmcm9tUmFuZ2UgdG9SYW5nZTooVUlUZXh0UmFuZ2UgKil0b1JhbmdlIGlu
RG9jdW1lbnQ6KF9VSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQKKy0gKE5T
Q29tcGFyaXNvblJlc3VsdCljb21wYXJlRm91bmRSYW5nZTooVUlUZXh0UmFuZ2UgKilmcm9tUmFu
Z2UgdG9SYW5nZTooVUlUZXh0UmFuZ2UgKil0b1JhbmdlIGluRG9jdW1lbnQ6KFVJVGV4dFNlYXJj
aERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudAogewogICAgIHJldHVybiBbX2NvbnRlbnRWaWV3
IGNvbXBhcmVGb3VuZFJhbmdlOmZyb21SYW5nZSB0b1JhbmdlOnRvUmFuZ2UgaW5Eb2N1bWVudDpk
b2N1bWVudF07CiB9CiAKLS0gKHZvaWQpcGVyZm9ybVRleHRTZWFyY2hXaXRoUXVlcnlTdHJpbmc6
KE5TU3RyaW5nICopc3RyaW5nIHVzaW5nT3B0aW9uczooX1VJVGV4dFNlYXJjaE9wdGlvbnMgKilv
cHRpb25zIHJlc3VsdEFnZ3JlZ2F0b3I6KGlkPF9VSVRleHRTZWFyY2hBZ2dyZWdhdG9yPilhZ2dy
ZWdhdG9yCistICh2b2lkKXBlcmZvcm1UZXh0U2VhcmNoV2l0aFF1ZXJ5U3RyaW5nOihOU1N0cmlu
ZyAqKXN0cmluZyB1c2luZ09wdGlvbnM6KFVJVGV4dFNlYXJjaE9wdGlvbnMgKilvcHRpb25zIHJl
c3VsdEFnZ3JlZ2F0b3I6KGlkPFVJVGV4dFNlYXJjaEFnZ3JlZ2F0b3I+KWFnZ3JlZ2F0b3IKIHsK
ICAgICBbX2NvbnRlbnRWaWV3IHBlcmZvcm1UZXh0U2VhcmNoV2l0aFF1ZXJ5U3RyaW5nOnN0cmlu
ZyB1c2luZ09wdGlvbnM6b3B0aW9ucyByZXN1bHRBZ2dyZWdhdG9yOmFnZ3JlZ2F0b3JdOwogfQog
Ci0tICh2b2lkKWRlY29yYXRlRm91bmRUZXh0UmFuZ2U6KFVJVGV4dFJhbmdlICopcmFuZ2UgaW5E
b2N1bWVudDooX1VJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudCB1c2luZ1N0
eWxlOihfVUlGb3VuZFRleHRTdHlsZSlzdHlsZQorLSAodm9pZClyZXBsYWNlRm91bmRUZXh0SW5S
YW5nZTooVUlUZXh0UmFuZ2UgKilyYW5nZSBpbkRvY3VtZW50OihVSVRleHRTZWFyY2hEb2N1bWVu
dElkZW50aWZpZXIpZG9jdW1lbnQgd2l0aFRleHQ6KE5TU3RyaW5nICopcmVwbGFjZW1lbnRUZXh0
Cit7CisgICAgW19jb250ZW50VmlldyByZXBsYWNlRm91bmRUZXh0SW5SYW5nZTpyYW5nZSBpbkRv
Y3VtZW50OmRvY3VtZW50IHdpdGhUZXh0OnJlcGxhY2VtZW50VGV4dF07Cit9CisKKy0gKHZvaWQp
ZGVjb3JhdGVGb3VuZFRleHRSYW5nZTooVUlUZXh0UmFuZ2UgKilyYW5nZSBpbkRvY3VtZW50OihV
SVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQgdXNpbmdTdHlsZTooVUlUZXh0
U2VhcmNoRm91bmRUZXh0U3R5bGUpc3R5bGUKIHsKICAgICBbX2NvbnRlbnRWaWV3IGRlY29yYXRl
Rm91bmRUZXh0UmFuZ2U6cmFuZ2UgaW5Eb2N1bWVudDpkb2N1bWVudCB1c2luZ1N0eWxlOnN0eWxl
XTsKIH0KIAotLSAodm9pZClzY3JvbGxSYW5nZVRvVmlzaWJsZTooVUlUZXh0UmFuZ2UgKilyYW5n
ZSBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50Cist
ICh2b2lkKXNjcm9sbFJhbmdlVG9WaXNpYmxlOihVSVRleHRSYW5nZSAqKXJhbmdlIGluRG9jdW1l
bnQ6KFVJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudAogewogICAgIFtfY29u
dGVudFZpZXcgc2Nyb2xsUmFuZ2VUb1Zpc2libGU6cmFuZ2UgaW5Eb2N1bWVudDpkb2N1bWVudF07
CiB9CkBAIC0zNjM5LDYgKzM2MjQsMjQgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElP
TlNfRU5ECiAgICAgW19jb250ZW50VmlldyByZXF1ZXN0UmVjdEZvckZvdW5kVGV4dFJhbmdlOnJh
bmdlcyBjb21wbGV0aW9uSGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CiB9CiAKKy0gKFVJRmlu
ZFNlc3Npb24gKilmaW5kSW50ZXJhY3Rpb246KFVJRmluZEludGVyYWN0aW9uICopaW50ZXJhY3Rp
b24gc2Vzc2lvbkZvclZpZXc6KFVJVmlldyAqKXZpZXcKK3sKKyAgICBhdXRvIGZpbmRTZXNzaW9u
ID0gYWRvcHROUyhbW1VJVGV4dFNlYXJjaGluZ0ZpbmRTZXNzaW9uIGFsbG9jXSBpbml0V2l0aFNl
YXJjaGFibGVPYmplY3Q6W3NlbGYgX3NlYXJjaGFibGVPYmplY3RdXSk7CisgICAgcmV0dXJuIGZp
bmRTZXNzaW9uLmF1dG9yZWxlYXNlKCk7Cit9CisKKy0gKHZvaWQpZmluZEludGVyYWN0aW9uOihV
SUZpbmRJbnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIGRpZEJlZ2luRmluZFNlc3Npb246KFVJRmlu
ZFNlc3Npb24gKilzZXNzaW9uCit7CisgICAgaWYgKFtzZWxmIF9zZWFyY2hhYmxlT2JqZWN0XSA9
PSBfY29udGVudFZpZXcuZ2V0KCkpCisgICAgICAgIFtfY29udGVudFZpZXcgZGlkQmVnaW5UZXh0
U2VhcmNoT3BlcmF0aW9uXTsKK30KKworLSAodm9pZClmaW5kSW50ZXJhY3Rpb246KFVJRmluZElu
dGVyYWN0aW9uICopaW50ZXJhY3Rpb24gZGlkRW5kRmluZFNlc3Npb246KFVJRmluZFNlc3Npb24g
KilzZXNzaW9uCit7CisgICAgaWYgKFtzZWxmIF9zZWFyY2hhYmxlT2JqZWN0XSA9PSBfY29udGVu
dFZpZXcuZ2V0KCkpCisgICAgICAgIFtfY29udGVudFZpZXcgZGlkRW5kVGV4dFNlYXJjaE9wZXJh
dGlvbl07Cit9CisKICNlbmRpZiAvLyBIQVZFKFVJRklORElOVEVSQUNUSU9OKQogCiBAZW5kIC8v
IFdLV2ViVmlldyAoV0tQcml2YXRlSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IDUxODNkNDg2YzQxOTAx
NGQ5MjVlMjZjOThmZTdiZDFkNjRjZjMwYTIuLmQzOGNjZGQwODZmZGUxNjYxYzVkN2I4YWU1NWFh
NjFlMzJmYTkzYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTU2NSw3ICs1NjUsNyBAQCB1c2luZyBJbWFn
ZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEltYWdlQW5hbHlz
aXNSZXF1ZXN0SWRlbgogICAgICwgV0tIb3ZlclBsYXR0ZXJEZWxlZ2F0ZQogI2VuZGlmCiAjaWYg
SEFWRShVSUZJTkRJTlRFUkFDVElPTikKLSAgICAsIF9VSVRleHRTZWFyY2hpbmcKKyAgICAsIFVJ
VGV4dFNlYXJjaGluZwogI2VuZGlmCiA+CiAKQEAgLTc5Nyw3ICs3OTcsMTAgQEAgRk9SX0VBQ0hf
UFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9O
X0ZPUl9XRUJfVklFVykKICNlbmRpZgogCiAjaWYgSEFWRShVSUZJTkRJTlRFUkFDVElPTikKLS0g
KE5TQ29tcGFyaXNvblJlc3VsdCljb21wYXJlRm91bmRSYW5nZTooVUlUZXh0UmFuZ2UgKilmcm9t
UmFuZ2UgdG9SYW5nZTooVUlUZXh0UmFuZ2UgKil0b1JhbmdlIGluRG9jdW1lbnQ6KF9VSVRleHRT
ZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQ7CistIChOU0ludGVnZXIpb2Zmc2V0RnJv
bVBvc2l0aW9uOihVSVRleHRQb3NpdGlvbiAqKWZyb20gdG9Qb3NpdGlvbjooVUlUZXh0UG9zaXRp
b24gKil0b1Bvc2l0aW9uIGluRG9jdW1lbnQ6KFVJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmll
cilkb2N1bWVudDsKKy0gKHZvaWQpZGlkQmVnaW5UZXh0U2VhcmNoT3BlcmF0aW9uOworLSAodm9p
ZClkaWRFbmRUZXh0U2VhcmNoT3BlcmF0aW9uOworCiAtICh2b2lkKXJlcXVlc3RSZWN0Rm9yRm91
bmRUZXh0UmFuZ2U6KFVJVGV4dFJhbmdlICopcmFuZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4pKENHUmVjdCkpY29tcGxldGlvbkhhbmRsZXI7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5k
ZXggY2Y5ZWVmMjk3MWVkODQxNDQ2ODA0MDU1MGQ3MjI4YTU1MjBmMTVkYS4uOTNjNTFlNWM4MjBm
OGM0YTllNjQxZDA3YjhiYTQ1ODdlMzlhMTQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0xMDQzNSwx
NCArMTA0MzUsMTQgQEAgc3RhdGljIFJldGFpblB0cjxOU0l0ZW1Qcm92aWRlcj4gY3JlYXRlSXRl
bVByb3ZpZGVyKGNvbnN0IFdlYktpdDo6V2ViUGFnZVByb3h5JgogICAgIFtzZWxmLndlYlZpZXcu
X2ZpbmRJbnRlcmFjdGlvbiBwcmVzZW50RmluZE5hdmlnYXRvclNob3dpbmdSZXBsYWNlOllFU107
CiB9CiAKLS0gKHZvaWQpcGVyZm9ybVRleHRTZWFyY2hXaXRoUXVlcnlTdHJpbmc6KE5TU3RyaW5n
ICopc3RyaW5nIHVzaW5nT3B0aW9uczooX1VJVGV4dFNlYXJjaE9wdGlvbnMgKilvcHRpb25zIHJl
c3VsdEFnZ3JlZ2F0b3I6KGlkPF9VSVRleHRTZWFyY2hBZ2dyZWdhdG9yPilhZ2dyZWdhdG9yCist
ICh2b2lkKXBlcmZvcm1UZXh0U2VhcmNoV2l0aFF1ZXJ5U3RyaW5nOihOU1N0cmluZyAqKXN0cmlu
ZyB1c2luZ09wdGlvbnM6KFVJVGV4dFNlYXJjaE9wdGlvbnMgKilvcHRpb25zIHJlc3VsdEFnZ3Jl
Z2F0b3I6KGlkPFVJVGV4dFNlYXJjaEFnZ3JlZ2F0b3I+KWFnZ3JlZ2F0b3IKIHsKICAgICBPcHRp
b25TZXQ8V2ViS2l0OjpGaW5kT3B0aW9ucz4gZmluZE9wdGlvbnM7CiAgICAgc3dpdGNoIChvcHRp
b25zLndvcmRNYXRjaE1ldGhvZCkgewotICAgIGNhc2UgX1VJVGV4dFNlYXJjaE1hdGNoTWV0aG9k
U3RhcnRzV2l0aDoKKyAgICBjYXNlIFVJVGV4dFNlYXJjaE1hdGNoTWV0aG9kU3RhcnRzV2l0aDoK
ICAgICAgICAgZmluZE9wdGlvbnMuYWRkKFdlYktpdDo6RmluZE9wdGlvbnM6OkF0V29yZFN0YXJ0
cyk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgX1VJVGV4dFNlYXJjaE1hdGNoTWV0aG9kRnVs
bFdvcmQ6CisgICAgY2FzZSBVSVRleHRTZWFyY2hNYXRjaE1ldGhvZEZ1bGxXb3JkOgogICAgICAg
ICBmaW5kT3B0aW9ucy5hZGQoeyBXZWJLaXQ6OkZpbmRPcHRpb25zOjpBdFdvcmRTdGFydHMsIFdl
YktpdDo6RmluZE9wdGlvbnM6OkF0V29yZEVuZHMgfSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRl
ZmF1bHQ6CkBAIC0xMDQ2NCw3ICsxMDQ2NCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNJdGVtUHJv
dmlkZXI+IGNyZWF0ZUl0ZW1Qcm92aWRlcihjb25zdCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYKICAg
ICB9KTsKIH0KIAotLSAodm9pZClyZXBsYWNlRm91bmRUZXh0SW5SYW5nZTooVUlUZXh0UmFuZ2Ug
KilyYW5nZSBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3Vt
ZW50IHdpdGhUZXh0OihOU1N0cmluZyAqKXJlcGxhY2VtZW50VGV4dAorLSAodm9pZClyZXBsYWNl
Rm91bmRUZXh0SW5SYW5nZTooVUlUZXh0UmFuZ2UgKilyYW5nZSBpbkRvY3VtZW50OihVSVRleHRT
ZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQgd2l0aFRleHQ6KE5TU3RyaW5nICopcmVw
bGFjZW1lbnRUZXh0CiB7CiAgICAgaWYgKCFzZWxmLnN1cHBvcnRzVGV4dFJlcGxhY2VtZW50KQog
ICAgICAgICByZXR1cm47CkBAIC0xMDQ3NiwyMiArMTA0NzYsMjIgQEAgc3RhdGljIFJldGFpblB0
cjxOU0l0ZW1Qcm92aWRlcj4gY3JlYXRlSXRlbVByb3ZpZGVyKGNvbnN0IFdlYktpdDo6V2ViUGFn
ZVByb3h5JgogICAgIF9wYWdlLT5yZXBsYWNlRm91bmRUZXh0UmFuZ2VXaXRoU3RyaW5nKFtmb3Vu
ZFRleHRSYW5nZSB3ZWJGb3VuZFRleHRSYW5nZV0sIHJlcGxhY2VtZW50VGV4dCk7CiB9CiAKLS0g
KHZvaWQpZGVjb3JhdGVGb3VuZFRleHRSYW5nZTooVUlUZXh0UmFuZ2UgKilyYW5nZSBpbkRvY3Vt
ZW50OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50IHVzaW5nU3R5bGU6
KF9VSUZvdW5kVGV4dFN0eWxlKXN0eWxlCistICh2b2lkKWRlY29yYXRlRm91bmRUZXh0UmFuZ2U6
KFVJVGV4dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDooVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVu
dGlmaWVyKWRvY3VtZW50IHVzaW5nU3R5bGU6KFVJVGV4dFNlYXJjaEZvdW5kVGV4dFN0eWxlKXN0
eWxlCiB7CiAgICAgYXV0byBmb3VuZFRleHRSYW5nZSA9IGR5bmFtaWNfb2JqY19jYXN0PFdLRm91
bmRUZXh0UmFuZ2U+KHJhbmdlKTsKICAgICBpZiAoIWZvdW5kVGV4dFJhbmdlKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBhdXRvIGRlY29yYXRpb25TdHlsZSA9IFdlYktpdDo6RmluZERlY29yYXRp
b25TdHlsZTo6Tm9ybWFsOwotICAgIGlmIChzdHlsZSA9PSBfVUlGb3VuZFRleHRTdHlsZUZvdW5k
KQorICAgIGlmIChzdHlsZSA9PSBVSVRleHRTZWFyY2hGb3VuZFRleHRTdHlsZUZvdW5kKQogICAg
ICAgICBkZWNvcmF0aW9uU3R5bGUgPSBXZWJLaXQ6OkZpbmREZWNvcmF0aW9uU3R5bGU6OkZvdW5k
OwotICAgIGVsc2UgaWYgKHN0eWxlID09IF9VSUZvdW5kVGV4dFN0eWxlSGlnaGxpZ2h0ZWQpCisg
ICAgZWxzZSBpZiAoc3R5bGUgPT0gVUlUZXh0U2VhcmNoRm91bmRUZXh0U3R5bGVIaWdobGlnaHRl
ZCkKICAgICAgICAgZGVjb3JhdGlvblN0eWxlID0gV2ViS2l0OjpGaW5kRGVjb3JhdGlvblN0eWxl
OjpIaWdobGlnaHRlZDsKIAogICAgIF9wYWdlLT5kZWNvcmF0ZVRleHRSYW5nZVdpdGhTdHlsZShb
Zm91bmRUZXh0UmFuZ2Ugd2ViRm91bmRUZXh0UmFuZ2VdLCBkZWNvcmF0aW9uU3R5bGUpOwogfQog
Ci0tICh2b2lkKXNjcm9sbFJhbmdlVG9WaXNpYmxlOihVSVRleHRSYW5nZSAqKXJhbmdlIGluRG9j
dW1lbnQ6KF9VSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQKKy0gKHZvaWQp
c2Nyb2xsUmFuZ2VUb1Zpc2libGU6KFVJVGV4dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDooVUlU
ZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50CiB7CiAgICAgaWYgKGF1dG8gZm91
bmRUZXh0UmFuZ2UgPSBkeW5hbWljX29iamNfY2FzdDxXS0ZvdW5kVGV4dFJhbmdlPihyYW5nZSkp
CiAgICAgICAgIF9wYWdlLT5zY3JvbGxUZXh0UmFuZ2VUb1Zpc2libGUoW2ZvdW5kVGV4dFJhbmdl
IHdlYkZvdW5kVGV4dFJhbmdlXSk7CkBAIC0xMDUxNywxNCArMTA1MTcsMTIgQEAgc3RhdGljIFJl
dGFpblB0cjxOU0l0ZW1Qcm92aWRlcj4gY3JlYXRlSXRlbVByb3ZpZGVyKGNvbnN0IFdlYktpdDo6
V2ViUGFnZVByb3h5JgogICAgIHJldHVybiBzZWxmLndlYlZpZXcuX2VkaXRhYmxlOwogfQogCi1B
TExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19CRUdJTgotLSAoTlNJbnRlZ2VyKW9mZnNl
dEZyb21Qb3NpdGlvbjooVUlUZXh0UG9zaXRpb24gKilmcm9tIHRvUG9zaXRpb246KFVJVGV4dFBv
c2l0aW9uICopdG9Qb3NpdGlvbiBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVu
dGlmaWVyKWRvY3VtZW50CistIChOU0ludGVnZXIpb2Zmc2V0RnJvbVBvc2l0aW9uOihVSVRleHRQ
b3NpdGlvbiAqKWZyb20gdG9Qb3NpdGlvbjooVUlUZXh0UG9zaXRpb24gKil0b1Bvc2l0aW9uIGlu
RG9jdW1lbnQ6KFVJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudAogewogICAg
IHJldHVybiBbc2VsZiBvZmZzZXRGcm9tUG9zaXRpb246ZnJvbSB0b1Bvc2l0aW9uOnRvUG9zaXRp
b25dOwogfQotQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAKLS0gKE5TQ29t
cGFyaXNvblJlc3VsdCljb21wYXJlRm91bmRSYW5nZTooVUlUZXh0UmFuZ2UgKilmcm9tUmFuZ2Ug
dG9SYW5nZTooVUlUZXh0UmFuZ2UgKil0b1JhbmdlIGluRG9jdW1lbnQ6KF9VSVRleHRTZWFyY2hE
b2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQKKy0gKE5TQ29tcGFyaXNvblJlc3VsdCljb21wYXJl
Rm91bmRSYW5nZTooVUlUZXh0UmFuZ2UgKilmcm9tUmFuZ2UgdG9SYW5nZTooVUlUZXh0UmFuZ2Ug
Kil0b1JhbmdlIGluRG9jdW1lbnQ6KFVJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1
bWVudAogewogICAgIE5TSW50ZWdlciBvZmZzZXQgPSBbc2VsZiBvZmZzZXRGcm9tUG9zaXRpb246
ZnJvbVJhbmdlLnN0YXJ0IHRvUG9zaXRpb246dG9SYW5nZS5zdGFydF07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tCmluZGV4IDgwMGNlMzlhZWVkOTY0OTUyZWE1YmJj
YWI1MDNkYWFlZjBmMjI4ZmMuLmZjYmQxOTI4ZDg5YTRhOWQ2OTE2NDIyMjYyZDQzYTgyOTUzY2Uz
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLUERGVmlldy5tbQpAQCAtMTA5LDcg
KzEwOSw3IEBACiAKIEBpbnRlcmZhY2UgV0tQREZWaWV3ICgpIDxQREZIb3N0Vmlld0NvbnRyb2xs
ZXJEZWxlZ2F0ZSwgV0tBY3Rpb25TaGVldEFzc2lzdGFudERlbGVnYXRlCiAjaWYgSEFWRShVSUZJ
TkRJTlRFUkFDVElPTikKLSAgICAsIF9VSVRleHRTZWFyY2hpbmcKKyAgICAsIFVJVGV4dFNlYXJj
aGluZwogI2VuZGlmCiA+CiBAZW5kCkBAIC0xMzUsNyArMTM1LDcgQEAKICAgICBSZXRhaW5QdHI8
V0tLZXlib2FyZFNjcm9sbFZpZXdBbmltYXRvcj4gX2tleWJvYXJkU2Nyb2xsaW5nQW5pbWF0b3I7
CiAgICAgUmV0YWluUHRyPFdLU2hhcmVTaGVldD4gX3NoYXJlU2hlZXQ7CiAjaWYgSEFWRShVSUZJ
TkRJTlRFUkFDVElPTikKLSAgICBSZXRhaW5QdHI8aWQ8X1VJVGV4dFNlYXJjaEFnZ3JlZ2F0b3I+
PiBfc2VhcmNoQWdncmVnYXRvcjsKKyAgICBSZXRhaW5QdHI8aWQ8VUlUZXh0U2VhcmNoQWdncmVn
YXRvcj4+IF9zZWFyY2hBZ2dyZWdhdG9yOwogICAgIFJldGFpblB0cjxOU1N0cmluZz4gX3NlYXJj
aFN0cmluZzsKICNlbmRpZgogfQpAQCAtNjg4LDcgKzY4OCw3IEBAIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgIHJldHVybiBbdWlEZWxlZ2F0ZSBfZGF0YURldGVjdGlvbkNv
bnRleHRGb3JXZWJWaWV3OndlYlZpZXddOwogfQogCi0jcHJhZ21hIG1hcmsgX1VJVGV4dFNlYXJj
aGluZworI3ByYWdtYSBtYXJrIFVJVGV4dFNlYXJjaGluZwogCiAjaWYgSEFWRShVSUZJTkRJTlRF
UkFDVElPTikKIApAQCAtNjk3LDcgKzY5Nyw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogICAgIHJldHVybiBuaWw7CiB9CiAKLS0gKE5TQ29tcGFyaXNvblJlc3VsdCljb21w
YXJlRm91bmRSYW5nZTooVUlUZXh0UmFuZ2UgKilmcm9tUmFuZ2UgdG9SYW5nZTooVUlUZXh0UmFu
Z2UgKil0b1JhbmdlIGluRG9jdW1lbnQ6KF9VSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIp
ZG9jdW1lbnQKKy0gKE5TQ29tcGFyaXNvblJlc3VsdCljb21wYXJlRm91bmRSYW5nZTooVUlUZXh0
UmFuZ2UgKilmcm9tUmFuZ2UgdG9SYW5nZTooVUlUZXh0UmFuZ2UgKil0b1JhbmdlIGluRG9jdW1l
bnQ6KFVJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudAogewogICAgIGF1dG8g
ZnJvbSA9IGR5bmFtaWNfb2JqY19jYXN0PFdLUERGRm91bmRUZXh0UG9zaXRpb24+KGZyb21SYW5n
ZS5zdGFydCk7CiAgICAgaWYgKCFmcm9tKQpAQCAtNzE2LDcgKzcxNiw3IEBAIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogICAgIHJldHVybiBOU09yZGVyZWRTYW1lOwogfQogCi0t
ICh2b2lkKXBlcmZvcm1UZXh0U2VhcmNoV2l0aFF1ZXJ5U3RyaW5nOihOU1N0cmluZyAqKXN0cmlu
ZyB1c2luZ09wdGlvbnM6KF9VSVRleHRTZWFyY2hPcHRpb25zICopb3B0aW9ucyByZXN1bHRBZ2dy
ZWdhdG9yOihpZDxfVUlUZXh0U2VhcmNoQWdncmVnYXRvcj4pYWdncmVnYXRvcgorLSAodm9pZClw
ZXJmb3JtVGV4dFNlYXJjaFdpdGhRdWVyeVN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgdXNpbmdP
cHRpb25zOihVSVRleHRTZWFyY2hPcHRpb25zICopb3B0aW9ucyByZXN1bHRBZ2dyZWdhdG9yOihp
ZDxVSVRleHRTZWFyY2hBZ2dyZWdhdG9yPilhZ2dyZWdhdG9yCiB7CiAgICAgW19ob3N0Vmlld0Nv
bnRyb2xsZXIgY2FuY2VsRmluZFN0cmluZ107CiAgICAgX3NlYXJjaEFnZ3JlZ2F0b3IgPSBhZ2dy
ZWdhdG9yOwpAQCAtNzI0LDkgKzcyNCw5IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogICAgIFtfaG9zdFZpZXdDb250cm9sbGVyIGZpbmRTdHJpbmc6c3RyaW5nIHdpdGhPcHRp
b25zOm9wdGlvbnMuc3RyaW5nQ29tcGFyZU9wdGlvbnNdOwogfQogCi0tICh2b2lkKWRlY29yYXRl
Rm91bmRUZXh0UmFuZ2U6KFVJVGV4dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDooX1VJVGV4dFNl
YXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudCB1c2luZ1N0eWxlOihfVUlGb3VuZFRleHRT
dHlsZSlzdHlsZQorLSAodm9pZClkZWNvcmF0ZUZvdW5kVGV4dFJhbmdlOihVSVRleHRSYW5nZSAq
KXJhbmdlIGluRG9jdW1lbnQ6KFVJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVu
dCB1c2luZ1N0eWxlOihVSVRleHRTZWFyY2hGb3VuZFRleHRTdHlsZSlzdHlsZQogewotICAgIGlm
IChzdHlsZSAhPSBfVUlGb3VuZFRleHRTdHlsZUhpZ2hsaWdodGVkKQorICAgIGlmIChzdHlsZSAh
PSBVSVRleHRTZWFyY2hGb3VuZFRleHRTdHlsZUhpZ2hsaWdodGVkKQogICAgICAgICByZXR1cm47
CiAKICAgICBhdXRvIGZvdW5kVGV4dFJhbmdlID0gZHluYW1pY19vYmpjX2Nhc3Q8V0tQREZGb3Vu
ZFRleHRSYW5nZT4ocmFuZ2UpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDE2YjU2Yjc4ODYzZDM4MzE2ZDQyOTUwOTg2M2RiM2E1ZTllYWE4MWUu
LmY3NDQyZThkYWViNTExZmUyNWY0NjNiYTdiNWY0NTg1ZDcwNjJkNzIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAy
Mi0wNC0yMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAg
W2lPU10gQWRkIGZpbmQgaW50ZXJhY3Rpb24gQVBJIHRvIFdLV2ViVmlldworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NjEyCisgICAgICAgIHJkYXI6
Ly84ODQ0MjkxOAorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAg
ICAgICAgQXVnbWVudCBhbiBleGlzdGluZyBBUEkgdGVzdCB0byB1c2UgdGhlIG5ldyBBUEksIGlu
IGFkZGl0aW9uIHRvIHRoZQorICAgICAgICBleGlzdGluZyBTUEkuCisKKyAgICAgICAgVGhlIGZp
bmQtYW5kLXJlcGxhY2UgdGVzdCBpcyB1cGRhdGVkIHRvIGFjY291bnQgZm9yIHRoZSBmYWN0IHRo
YXQgYQorICAgICAgICBmaW5kIGludGVyYWN0aW9uIG5vIGxvbmdlciBleHBvc2VzIGEgc2VhcmNo
YWJsZU9iamVjdC4gSW5zdGVhZCwgdXNlCisgICAgICAgIHRlc3Qtb25seSBTUEkgb24gV0tXZWJW
aWV3IHRvIHBlcmZvcm0gdGhlIHJlcGxhY2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0ZpbmRJblBhZ2UubW06CisgICAgICAgIChURVNUKToKKwogMjAyMi0w
NC0yMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICA8
Ym9keT4gd2l0aCBvdmVyZmxvdzpoaWRkZW4gQ1NTIGlzIHNjcm9sbGFibGUgb24gaU9TIHN0YW5k
YWxvbmUgd2ViIGFwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9GaW5kSW5QYWdlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9GaW5kSW5QYWdlLm1tCmluZGV4IGM2YjUxZGM2ZTlhNzU4ZTJjYmE4M2I3YjllNTUzYmY5
NzhjZDIzODMuLjgxYjZjM2JjMGI4ZTRkMjIyODkyMDQ1Njc1NWNiYzUxZTBjNTI4ODAgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmluZEluUGFnZS5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0ZpbmRJblBhZ2Uu
bW0KQEAgLTUzMCwxMyArNTMwLDEzIEBAIFRFU1QoV2ViS2l0LCBGaW5kQW5kUmVwbGFjZSkKIAog
ICAgIFt3ZWJWaWV3IF9zZXRFZGl0YWJsZTpOT107CiAgICAgZm9yIChVSVRleHRSYW5nZSAqcmFu
Z2UgaW4gW3JhbmdlcyByZXZlcnNlT2JqZWN0RW51bWVyYXRvcl0pCi0gICAgICAgIFtbW3dlYlZp
ZXcgX2ZpbmRJbnRlcmFjdGlvbl0gc2VhcmNoYWJsZU9iamVjdF0gcmVwbGFjZUZvdW5kVGV4dElu
UmFuZ2U6cmFuZ2UgaW5Eb2N1bWVudDpuaWwgd2l0aFRleHQ6cmVwbGFjZW1lbnRTdHJpbmddOwor
ICAgICAgICBbd2ViVmlldyByZXBsYWNlRm91bmRUZXh0SW5SYW5nZTpyYW5nZSBpbkRvY3VtZW50
Om5pbCB3aXRoVGV4dDpyZXBsYWNlbWVudFN0cmluZ107CiAKICAgICBFWFBFQ1RfV0tfU1RSRVEo
b3JpZ2luYWxDb250ZW50LCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAi
ZG9jdW1lbnQuYm9keS5pbm5lclRleHQiXSk7CiAKICAgICBbd2ViVmlldyBfc2V0RWRpdGFibGU6
WUVTXTsKICAgICBmb3IgKFVJVGV4dFJhbmdlICpyYW5nZSBpbiBbcmFuZ2VzIHJldmVyc2VPYmpl
Y3RFbnVtZXJhdG9yXSkKLSAgICAgICAgW1tbd2ViVmlldyBfZmluZEludGVyYWN0aW9uXSBzZWFy
Y2hhYmxlT2JqZWN0XSByZXBsYWNlRm91bmRUZXh0SW5SYW5nZTpyYW5nZSBpbkRvY3VtZW50Om5p
bCB3aXRoVGV4dDpyZXBsYWNlbWVudFN0cmluZ107CisgICAgICAgIFt3ZWJWaWV3IHJlcGxhY2VG
b3VuZFRleHRJblJhbmdlOnJhbmdlIGluRG9jdW1lbnQ6bmlsIHdpdGhUZXh0OnJlcGxhY2VtZW50
U3RyaW5nXTsKIAogICAgIEVYUEVDVF9XS19TVFJFUShyZXBsYWNlZENvbnRlbnQsIFt3ZWJWaWV3
IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LmlubmVyVGV4dCJd
KTsKIH0KQEAgLTU1Miw2ICs1NTIsMTQgQEAgVEVTVChXZWJLaXQsIEZpbmRJbnRlcmFjdGlvbikK
IAogICAgIFt3ZWJWaWV3IF9zZXRGaW5kSW50ZXJhY3Rpb25FbmFibGVkOk5PXTsKICAgICBFWFBF
Q1RfTlVMTChbd2ViVmlldyBfZmluZEludGVyYWN0aW9uXSk7CisKKyAgICBFWFBFQ1RfTlVMTChb
d2ViVmlldyBmaW5kSW50ZXJhY3Rpb25dKTsKKworICAgIFt3ZWJWaWV3IHNldEZpbmRJbnRlcmFj
dGlvbkVuYWJsZWQ6WUVTXTsKKyAgICBFWFBFQ1RfTk9UX05VTEwoW3dlYlZpZXcgZmluZEludGVy
YWN0aW9uXSk7CisKKyAgICBbd2ViVmlldyBzZXRGaW5kSW50ZXJhY3Rpb25FbmFibGVkOk5PXTsK
KyAgICBFWFBFQ1RfTlVMTChbd2ViVmlldyBmaW5kSW50ZXJhY3Rpb25dKTsKIH0KIAogVEVTVChX
ZWJLaXQsIFJlcXVlc3RSZWN0Rm9yRm91bmRUZXh0UmFuZ2UpCg==
</data>
<flag name="commit-queue"
          id="486895"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458110</attachid>
            <date>2022-04-21 20:50:24 -0700</date>
            <delta_ts>2022-04-22 10:48:11 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-239612-20220421205023.patch</filename>
            <type>text/plain</type>
            <size>25869</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBiNzAwMGEyNmE4YmM1YTI3
OGE3MGFkMmQ4NTBmMjU4ZGE2ZjZlYzMuLjViYTI5OTI4YTQwODQ5N2MxZDFiMTdmMDA5NzY5N2Ew
ZDVlYmRjMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODEgQEAKKzIwMjItMDQtMjEgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFkZCBmaW5kIGlu
dGVyYWN0aW9uIEFQSSB0byBXS1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzOTYxMgorICAgICAgICByZGFyOi8vODg0NDI5MTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFByb21vdGUgdGhl
IGBfZmluZEludGVyYWN0aW9uYCBhbmQgYF9maW5kSW50ZXJhY3Rpb25FbmFibGVkYCBTUEkgdG8K
KyAgICAgICAgYGZpbmRJbnRlcmFjdGlvbmAgYW5kIGBmaW5kSW50ZXJhY3Rpb25FbmFibGVkYCBB
UEkuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gbWFrZSB0aGlzIGNoYW5nZSwgbmV3IFVJS2l0IG9i
amVjdHMgYW5kIHByb3RvY29scyBtdXN0IGJlCisgICAgICAgIGFkb3B0ZWQuIEV4aXN0aW5nIChk
ZXByZWNhdGVkKSBwcm90b2NvbCBjb25mb3JtYW5jZSBpcyBrZXB0IGFyb3VuZCB0bworICAgICAg
ICBhdm9pZCBicmVha2luZyBpbnRlcm5hbCBjbGllbnRzLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGZpbmRJbnRlcmFjdGlvbkVuYWJsZWRd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldEZpbmRJbnRlcmFjdGlvbkVuYWJsZWQ6XSk6Cisg
ICAgICAgICgtW1dLV2ViVmlldyBmaW5kSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisKKyAgICAgICAgRGVjbGFyZSBjb25mb3JtYW5j
ZSB0byB0aHJlZSBwcm90b2NvbHM6IF9VSVRleHRTZWFyY2hpbmcsIFVJVGV4dFNlYXJjaGluZywg
VUlGaW5kSW50ZXJhY3Rpb25EZWxlZ2F0ZS4KKworICAgICAgICBfVUlUZXh0U2VhcmNoaW5nOiBD
b25mb3JtYW5jZSBpcyBrZXB0IGFyb3VuZCB0byBhdm9pZCBicmVha2luZyBpbnRlcm5hbCBjbGll
bnRzLgorICAgICAgICBVSVRleHRTZWFyY2hpbmc6IENvbmZvcm1hbmNlIGlzIGRlY2xhcmVkIGZv
ciBjbGllbnRzIHRvIG1pZ3JhdGUgb2ZmIG9mIF9VSVRleHRTZWFyY2hpbmcuCisgICAgICAgIFVJ
RmluZEludGVyYWN0aW9uRGVsZWdhdGU6IENvbmZvcm1hbmNlIGlzIG5lY2Vzc2FyeSB0byBiZWdp
biBhIFVJRmluZFNlc3Npb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZp
ZXdJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW06Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZV0pOgorCisgICAg
ICAgIFRoZSAic2VhcmNoYWJsZSBvYmplY3QiIGRvZXMgbm90IG5lZWQgdG8gYmUgcmVzZXQgYW55
bW9yZSwgYXMgVUlLaXQKKyAgICAgICAgd2lsbCBkbyB0aGF0IGluIGAtW1dLV2ViVmlldyBmaW5k
SW50ZXJhY3Rpb246c2Vzc2lvbkZvclZpZXc6XWAgdGhlIG5leHQKKyAgICAgICAgdGltZSBhIGZp
bmQgc2Vzc2lvbiBiZWdpbnMuCisKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZWFyY2hhYmxlT2Jq
ZWN0XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0RmluZEludGVyYWN0aW9uRW5hYmxlZDpd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9maW5kSW50ZXJhY3Rpb25dKToKKworICAgICAgICBJ
dCBpcyBzYWZlIHRvIGNhc3QgYmV0d2VlbiB0aGUgU1BJIGFuZCBBUEkgdmVyc2lvbiBvZiB0aGlz
IG9iamVjdC4gVUlLaXQKKyAgICAgICAgaGFzIGd1YXJhbnRlZWQgY29tcGF0aWJpbGl0eS4KKwor
ICAgICAgICAoLVtXS1dlYlZpZXcgb2Zmc2V0RnJvbVBvc2l0aW9uOnRvUG9zaXRpb246aW5Eb2N1
bWVudDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGNvbXBhcmVGb3VuZFJhbmdlOnRvUmFuZ2U6
aW5Eb2N1bWVudDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHBlcmZvcm1UZXh0U2VhcmNoV2l0
aFF1ZXJ5U3RyaW5nOnVzaW5nT3B0aW9uczpyZXN1bHRBZ2dyZWdhdG9yOl0pOgorICAgICAgICAo
LVtXS1dlYlZpZXcgcmVwbGFjZUZvdW5kVGV4dEluUmFuZ2U6aW5Eb2N1bWVudDp3aXRoVGV4dDpd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGRlY29yYXRlRm91bmRUZXh0UmFuZ2U6aW5Eb2N1bWVu
dDp1c2luZ1N0eWxlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgc2Nyb2xsUmFuZ2VUb1Zpc2li
bGU6aW5Eb2N1bWVudDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGZpbmRJbnRlcmFjdGlvbjpz
ZXNzaW9uRm9yVmlldzpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGZpbmRJbnRlcmFjdGlvbjpk
aWRCZWdpbkZpbmRTZXNzaW9uOl0pOgorCisgICAgICAgIEN1c3RvbSBjb250ZW50IHZpZXdzIGRv
IG5vdCBuZWVkIHRvIGJlIGF3YXJlIHRoYXQgYSBmaW5kIHNlc3Npb24gaGFzCisgICAgICAgIGJl
Z3VuLCBhcyB0aGV5IGRvIG5vdCBkcmF3IGFuIG92ZXJsYXkuCisKKyAgICAgICAgKC1bV0tXZWJW
aWV3IGZpbmRJbnRlcmFjdGlvbjpkaWRFbmRGaW5kU2Vzc2lvbjpdKToKKworICAgICAgICBDdXN0
b20gY29udGVudCB2aWV3cyBkbyBub3QgbmVlZCB0byBiZSBhd2FyZSB0aGF0IGEgZmluZCBzZXNz
aW9uIGhhcworICAgICAgICBiZWd1biwgYXMgdGhleSBkbyBub3QgZHJhdyBhbiBvdmVybGF5Lgor
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKwor
ICAgICAgICBEZWNsYXJlIHRoZSBvbGQgX1VJVGV4dFNlYXJjaGluZyBtZXRob2RzIGV4cGxpY2l0
bHksIGFzIHdlIG5lZWQgdG8KKyAgICAgICAgbWFpbnRhaW4gc3VwcG9ydCBmb3IgaW50ZXJuYWwg
Y2xpZW50cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHBlcmZvcm1UZXh0U2VhcmNoV2l0aFF1
ZXJ5U3RyaW5nOnVzaW5nT3B0aW9uczpyZXN1bHRBZ2dyZWdhdG9yOl0pOgorICAgICAgICAoLVtX
S0NvbnRlbnRWaWV3IHJlcGxhY2VGb3VuZFRleHRJblJhbmdlOmluRG9jdW1lbnQ6d2l0aFRleHQ6
XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGVjb3JhdGVGb3VuZFRleHRSYW5nZTppbkRv
Y3VtZW50OnVzaW5nU3R5bGU6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2Nyb2xsUmFu
Z2VUb1Zpc2libGU6aW5Eb2N1bWVudDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBvZmZz
ZXRGcm9tUG9zaXRpb246dG9Qb3NpdGlvbjppbkRvY3VtZW50Ol0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IGNvbXBhcmVGb3VuZFJhbmdlOnRvUmFuZ2U6aW5Eb2N1bWVudDpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLUERGVmlldy5tbToKKyAgICAgICAgKC1bV0tQREZWaWV3IGNv
bXBhcmVGb3VuZFJhbmdlOnRvUmFuZ2U6aW5Eb2N1bWVudDpdKToKKyAgICAgICAgKC1bV0tQREZW
aWV3IHBlcmZvcm1UZXh0U2VhcmNoV2l0aFF1ZXJ5U3RyaW5nOnVzaW5nT3B0aW9uczpyZXN1bHRB
Z2dyZWdhdG9yOl0pOgorICAgICAgICAoLVtXS1BERlZpZXcgZGVjb3JhdGVGb3VuZFRleHRSYW5n
ZTppbkRvY3VtZW50OnVzaW5nU3R5bGU6XSk6CisKIDIwMjItMDQtMjEgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBCdWlsZCBpcyBicm9rZW4gb24gc2hpcHBpbmcg
bWFjT1MgZHVlIHRvIFRCQSBhbm5vdGF0aW9ucyByZXBsYWNlbWVudCBpbiBBUEkgaGVhZGVycwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5oCmluZGV4IDVj
ZWM3ZGM2MjM3OGYyNDM3MmI0MDM5OGIxNWVkZDQ4OGJkMDk0YTEuLmI2OTc4OTY2YzY3YmM3YjMw
MDBhNGE1MWZiZGM1ODA0OGI0YmFhODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3LmgKQEAgLTMzLDYgKzMzLDEwIEBACiAKIE5TX0FTU1VNRV9OT05O
VUxMX0JFR0lOCiAKKyNpZiBUQVJHRVRfT1NfSVBIT05FCitAY2xhc3MgVUlGaW5kSW50ZXJhY3Rp
b247CisjZW5kaWYKKwogQGNsYXNzIFdLQmFja0ZvcndhcmRMaXN0OwogQGNsYXNzIFdLQmFja0Zv
cndhcmRMaXN0SXRlbTsKIEBjbGFzcyBXS0NvbnRlbnRXb3JsZDsKQEAgLTY0Niw2ICs2NTAsMTYg
QEAgVGhlIHVuaWZvcm0gdHlwZSBpZGVudGlmaWVyIGtVVFR5cGVXZWJBcmNoaXZlIGNhbiBiZSB1
c2VkIGdldCB0aGUgcmVsYXRlZCBwYXN0ZWIKIC0gKHZvaWQpc2V0TWluaW11bVZpZXdwb3J0SW5z
ZXQ6KE5TRWRnZUluc2V0cyltaW5pbXVtVmlld3BvcnRJbnNldCBtYXhpbXVtVmlld3BvcnRJbnNl
dDooTlNFZGdlSW5zZXRzKW1heGltdW1WaWV3cG9ydEluc2V0IFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSkpOwogI2VuZGlmCiAKKyNpZiBUQVJHRVRfT1NfSVBIT05FCisKKy8qISBA
YWJzdHJhY3QgRW5hYmxlcyB0aGUgd2ViIHZpZXcncyBidWlsdC1pbiBmaW5kIGludGVyYWN0aW9u
LiAqLworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgZ2V0dGVyPWlzRmluZEludGVy
YWN0aW9uRW5hYmxlZCkgQk9PTCBmaW5kSW50ZXJhY3Rpb25FbmFibGVkIFdLX0FQSV9BVkFJTEFC
TEUoaW9zKFdLX0lPU19UQkEpKTsKKworLyohIEBhYnN0cmFjdCBJZiAgQGxpbmsgZmluZEludGVy
YWN0aW9uRW5hYmxlZCBAL2xpbmsgaXMgc2V0IHRvIHRydWUsIHJldHVybnMgdGhpcyB3ZWIgdmll
dydzIGJ1aWx0LWluIGZpbmQgaW50ZXJhY3Rpb24uIE90aGVyd2lzZSwgbmlsLiAqLworQHByb3Bl
cnR5IChub25hdG9taWMsIG51bGxhYmxlLCByZWFkb25seSkgVUlGaW5kSW50ZXJhY3Rpb24gKmZp
bmRJbnRlcmFjdGlvbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CisKKyNlbmRp
ZgorCiBAZW5kCiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggYWIwNzRjYjRiMzMxMDRmNWI4OTdh
ZTljY2FiNDI5ODFlNGZlMjVkOS4uOTZiZDJlZmNiZGJiMzk3YmNlYzZiY2Y3YmU1NDhiZTRhNmE0
ZjhmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tCkBAIC0zNjksMTAgKzM2OSw3IEBAIHN0YXRpYyB2b2lkIGhhcmR3YXJlS2V5Ym9hcmRBdmFp
bGFiaWxpdHlDaGFuZ2VkQ2FsbGJhY2soQ0ZOb3RpZmljYXRpb25DZW50ZXJSZWYsCiAgICAgX2lu
aXRpYWxTY2FsZUZhY3RvciA9IDE7CiAgICAgX2FsbG93c1ZpZXdwb3J0U2hyaW5rVG9GaXQgPSBk
ZWZhdWx0QWxsb3dzVmlld3BvcnRTaHJpbmtUb0ZpdDsKICAgICBfYWxsb3dzTGlua1ByZXZpZXcg
PSBsaW5rZWRPbk9yQWZ0ZXJTREtXaXRoQmVoYXZpb3IoU0RLQWxpZ25lZEJlaGF2aW9yOjpMaW5r
UHJldmlld0VuYWJsZWRCeURlZmF1bHQpOwotCi0jaWYgSEFWRShVSUZJTkRJTlRFUkFDVElPTikK
ICAgICBfZmluZEludGVyYWN0aW9uRW5hYmxlZCA9IE5POwotI2VuZGlmCiAKICAgICBhdXRvIGZh
c3RDbGlja2luZ0VuYWJsZWQgPSBbXSgpIHsKICAgICAgICAgaWYgKE5TTnVtYmVyICplbmFibGVk
VmFsdWUgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JL
ZXk6QCJXZWJLaXRGYXN0Q2xpY2tpbmdEaXNhYmxlZCJdKQpAQCAtMTQyOCwxMCArMTQyNSw0OCBA
QCBpbmxpbmUgT3B0aW9uU2V0PFdlYktpdDo6RmluZE9wdGlvbnM+IHRvRmluZE9wdGlvbnMoV0tG
aW5kQ29uZmlndXJhdGlvbiAqY29uZmlndQogI3ByYWdtYSBtYXJrIC0gaU9TIEFQSQogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKwogLSAoVUlTY3JvbGxWaWV3ICopc2Nyb2xsVmlldwogewog
ICAgIHJldHVybiBfc2Nyb2xsVmlldy5nZXQoKTsKIH0KKworLSAoQk9PTClmaW5kSW50ZXJhY3Rp
b25FbmFibGVkCit7CisgICAgcmV0dXJuIF9maW5kSW50ZXJhY3Rpb25FbmFibGVkOworfQorCist
ICh2b2lkKXNldEZpbmRJbnRlcmFjdGlvbkVuYWJsZWQ6KEJPT0wpZW5hYmxlZAoreworI2lmIEhB
VkUoVUlGSU5ESU5URVJBQ1RJT04pCisgICAgaWYgKF9maW5kSW50ZXJhY3Rpb25FbmFibGVkICE9
IGVuYWJsZWQpIHsKKyAgICAgICAgX2ZpbmRJbnRlcmFjdGlvbkVuYWJsZWQgPSBlbmFibGVkOwor
CisgICAgICAgIGlmIChlbmFibGVkKSB7CisgICAgICAgICAgICBpZiAoIV9maW5kSW50ZXJhY3Rp
b24pCisgICAgICAgICAgICAgICAgX2ZpbmRJbnRlcmFjdGlvbiA9IGFkb3B0TlMoW1tVSUZpbmRJ
bnRlcmFjdGlvbiBhbGxvY10gaW5pdFdpdGhTZXNzaW9uRGVsZWdhdGU6c2VsZl0pOworCisgICAg
ICAgICAgICBbc2VsZiBhZGRJbnRlcmFjdGlvbjpfZmluZEludGVyYWN0aW9uLmdldCgpXTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFtzZWxmIHJlbW92ZUludGVyYWN0aW9uOl9maW5k
SW50ZXJhY3Rpb24uZ2V0KCldOworICAgICAgICAgICAgX2ZpbmRJbnRlcmFjdGlvbiA9IG5pbDsK
KyAgICAgICAgfQorICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGVuYWJsZWQpOworICAg
IFVOVVNFRF9WQVJJQUJMRShfZmluZEludGVyYWN0aW9uRW5hYmxlZCk7CisjZW5kaWYKK30KKwor
LSAoVUlGaW5kSW50ZXJhY3Rpb24gKilmaW5kSW50ZXJhY3Rpb24KK3sKKyNpZiBIQVZFKFVJRklO
RElOVEVSQUNUSU9OKQorICAgIHJldHVybiBfZmluZEludGVyYWN0aW9uLmdldCgpOworI2Vsc2UK
KyAgICByZXR1cm4gbmlsOworI2VuZGlmCit9CisKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFN
SUxZKQogCiAjcHJhZ21hIG1hcmsgLSBtYWNPUyBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKaW5kZXggNTJiNjM5NzQ5
Yzg2YmZhNjY3NmM0NDJiZWFjY2E3NGYxY2FlOGViZS4uMmY0MjYzNTc3YjJiZTQ5Y2QwNGViYjlh
NmIxMzQ3Nzg0MDg5YzlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKQEAgLTE2Miw5ICsxNjIsOSBAQCBjbGFzcyBW
aWV3R2VzdHVyZUNvbnRyb2xsZXI7CiAgICAgUmV0YWluUHRyPFdLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXI+IF9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcjsKICNlbmRpZgogCi0jaWYgSEFW
RShVSUZJTkRJTlRFUkFDVElPTikKLSAgICBSZXRhaW5QdHI8X1VJRmluZEludGVyYWN0aW9uPiBf
ZmluZEludGVyYWN0aW9uOwogICAgIEJPT0wgX2ZpbmRJbnRlcmFjdGlvbkVuYWJsZWQ7CisjaWYg
SEFWRShVSUZJTkRJTlRFUkFDVElPTikKKyAgICBSZXRhaW5QdHI8VUlGaW5kSW50ZXJhY3Rpb24+
IF9maW5kSW50ZXJhY3Rpb247CiAjZW5kaWYKIAogICAgIFJldGFpblB0cjxfV0tSZW1vdGVPYmpl
Y3RSZWdpc3RyeT4gX3JlbW90ZU9iamVjdFJlZ2lzdHJ5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggMTNkZDYxYjc0
MDNlZWZmY2E0ZDNkZTY5ZDllZGVlYTZlNmIwZTZhMC4uZTE0YWQ4YTY4ZjliY2Y5MmRlNTIyMzJm
ODk5NGE0MmQxZTUwZjBhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC00OTMsNyArNDkzLDcgQEAgdHlwZWRlZiBO
U19PUFRJT05TKE5TVUludGVnZXIsIFdLRGlzcGxheUNhcHR1cmVTdXJmYWNlcykgewogI2lmIFRB
UkdFVF9PU19JUEhPTkUKIAogI2lmICFUQVJHRVRfT1NfVFYgJiYgIVRBUkdFVF9PU19XQVRDSCAm
JiBfX2hhc19pbmNsdWRlKDxVSUtpdC9fVUlUZXh0U2VhcmNoaW5nLmg+KQotQGludGVyZmFjZSBX
S1dlYlZpZXcgKFdLUHJpdmF0ZUlPUykgPF9VSVRleHRTZWFyY2hpbmc+CitAaW50ZXJmYWNlIFdL
V2ViVmlldyAoV0tQcml2YXRlSU9TKSA8X1VJVGV4dFNlYXJjaGluZywgVUlUZXh0U2VhcmNoaW5n
LCBVSUZpbmRJbnRlcmFjdGlvbkRlbGVnYXRlPgogI2Vsc2UKIEBpbnRlcmZhY2UgV0tXZWJWaWV3
IChXS1ByaXZhdGVJT1MpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
aW9zL1dLV2ViVmlld0lPUy5oCmluZGV4IDQ5ZGFjOTkzZTI1YmI1ZWNhZjY0N2EyYmRkMjViNDFh
NzE0ZWQ3N2QuLmIzM2RhYjZlNThmNjYwNDI0MmZmMjU3NGMwOGQxZGRlZGFlY2EzMDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MuaApAQCAtMTM1
LDcgKzEzNSw3IEBAIGVudW0gY2xhc3MgVGFwSGFuZGxpbmdSZXN1bHQgOiB1aW50OF90OwogLSAo
dm9pZClmaW5kUHJldmlvdXM6KGlkKXNlbmRlcjsKIC0gKHZvaWQpZmluZEFuZFJlcGxhY2U6KGlk
KXNlbmRlcjsKIAotLSAoaWQ8X1VJVGV4dFNlYXJjaGluZz4pX3NlYXJjaGFibGVPYmplY3Q7Cist
IChpZDxVSVRleHRTZWFyY2hpbmc+KV9zZWFyY2hhYmxlT2JqZWN0OwogI2VuZGlmCiAKIC0gKHZv
aWQpX25leHRBY2Nlc3NvcnlUYWI6KGlkKXNlbmRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KaW5kZXggY2I0OTkwYTU2NTQ5YTBiYmFkMzg2
MmVmNjY5ODI2MDgzNjVkOWJlZS4uMzk3YmI1NTVkNjc0MGY5NzA0NTJhYWMzMjA2NmIyOWY1ZjEz
YTFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZp
ZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJ
T1MubW0KQEAgLTc3OCwxMCArNzc4LDggQEAgc3RhdGljIFdlYkNvcmU6OkNvbG9yIHNjcm9sbFZp
ZXdCYWNrZ3JvdW5kQ29sb3IoV0tXZWJWaWV3ICp3ZWJWaWV3LCBBbGxvd1BhZ2VCYWMKICAgICAg
ICAgW19zY3JvbGxWaWV3IF9zdG9wU2Nyb2xsaW5nQW5kWm9vbWluZ0FuaW1hdGlvbnNdOwogCiAj
aWYgSEFWRShVSUZJTkRJTlRFUkFDVElPTikKLSAgICBpZiAoX2ZpbmRJbnRlcmFjdGlvbkVuYWJs
ZWQpIHsKKyAgICBpZiAoX2ZpbmRJbnRlcmFjdGlvbkVuYWJsZWQpCiAgICAgICAgIFtfZmluZElu
dGVyYWN0aW9uIGRpc21pc3NGaW5kTmF2aWdhdG9yXTsKLSAgICAgICAgW19maW5kSW50ZXJhY3Rp
b24gc2V0U2VhcmNoYWJsZU9iamVjdDpbc2VsZiBfc2VhcmNoYWJsZU9iamVjdF1dOwotICAgIH0K
ICNlbmRpZgogfQogCkBAIC0yNzE1LDEwICsyNzEzLDEwIEBAIHN0YXRpYyBXZWJDb3JlOjpVc2Vy
SW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHRvVXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbihV
SVNlCiAKICNpZiBIQVZFKFVJRklORElOVEVSQUNUSU9OKQogCi0tIChpZDxfVUlUZXh0U2VhcmNo
aW5nPilfc2VhcmNoYWJsZU9iamVjdAorLSAoaWQ8VUlUZXh0U2VhcmNoaW5nPilfc2VhcmNoYWJs
ZU9iamVjdAogewotICAgIGlmIChbX2N1c3RvbUNvbnRlbnRWaWV3IGNvbmZvcm1zVG9Qcm90b2Nv
bDpAcHJvdG9jb2woX1VJVGV4dFNlYXJjaGluZyldKQotICAgICAgICByZXR1cm4gKGlkPF9VSVRl
eHRTZWFyY2hpbmc+KV9jdXN0b21Db250ZW50Vmlldy5nZXQoKTsKKyAgICBpZiAoW19jdXN0b21D
b250ZW50VmlldyBjb25mb3Jtc1RvUHJvdG9jb2w6QHByb3RvY29sKFVJVGV4dFNlYXJjaGluZyld
KQorICAgICAgICByZXR1cm4gKGlkPFVJVGV4dFNlYXJjaGluZz4pX2N1c3RvbUNvbnRlbnRWaWV3
LmdldCgpOwogCiAgICAgcmV0dXJuIF9jb250ZW50Vmlldy5nZXQoKTsKIH0KQEAgLTM1NjEsMjgg
KzM1NTksMTIgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVu
dHM+IHZpZXdwb3J0QXJndW1lbnRzRnJvbURpY3Rpb25hcnkKIAogLSAodm9pZClfc2V0RmluZElu
dGVyYWN0aW9uRW5hYmxlZDooQk9PTCllbmFibGVkCiB7Ci0gICAgaWYgKF9maW5kSW50ZXJhY3Rp
b25FbmFibGVkICE9IGVuYWJsZWQpIHsKLSAgICAgICAgX2ZpbmRJbnRlcmFjdGlvbkVuYWJsZWQg
PSBlbmFibGVkOwotCi0gICAgICAgIGlmIChlbmFibGVkKSB7Ci0gICAgICAgICAgICBpZiAoIV9m
aW5kSW50ZXJhY3Rpb24pIHsKLSAgICAgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgotICAgICAgICAgICAgICAgIF9maW5kSW50ZXJhY3Rpb24gPSBhZG9wdE5T
KFtbX1VJRmluZEludGVyYWN0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgICAgICAgICAgICAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECi0gICAgICAgICAgICAgICAgW19maW5kSW50
ZXJhY3Rpb24gc2V0U2VhcmNoYWJsZU9iamVjdDpbc2VsZiBfc2VhcmNoYWJsZU9iamVjdF1dOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBbc2VsZiBhZGRJbnRlcmFjdGlvbjpfZmluZElu
dGVyYWN0aW9uLmdldCgpXTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIFtzZWxmIHJl
bW92ZUludGVyYWN0aW9uOl9maW5kSW50ZXJhY3Rpb24uZ2V0KCldOwotICAgICAgICAgICAgX2Zp
bmRJbnRlcmFjdGlvbiA9IG5pbDsKLSAgICAgICAgfQotICAgIH0KKyAgICBbc2VsZiBzZXRGaW5k
SW50ZXJhY3Rpb25FbmFibGVkOmVuYWJsZWRdOwogfQogCiAtIChfVUlGaW5kSW50ZXJhY3Rpb24g
KilfZmluZEludGVyYWN0aW9uCiB7Ci0gICAgcmV0dXJuIF9maW5kSW50ZXJhY3Rpb24uZ2V0KCk7
CisgICAgcmV0dXJuIChfVUlGaW5kSW50ZXJhY3Rpb24gKilfZmluZEludGVyYWN0aW9uLmdldCgp
OwogfQogCiAtIChVSVRleHRSYW5nZSAqKXNlbGVjdGVkVGV4dFJhbmdlCkBAIC0zNTkxLDMwICsz
NTczLDMzIEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRz
PiB2aWV3cG9ydEFyZ3VtZW50c0Zyb21EaWN0aW9uYXJ5CiB9CiAKIEFMTE9XX0RFUFJFQ0FURURf
SU1QTEVNRU5UQVRJT05TX0JFR0lOCi0tIChOU0ludGVnZXIpb2Zmc2V0RnJvbVBvc2l0aW9uOihV
SVRleHRQb3NpdGlvbiAqKWZyb20gdG9Qb3NpdGlvbjooVUlUZXh0UG9zaXRpb24gKil0b1Bvc2l0
aW9uIGluRG9jdW1lbnQ6KF9VSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQK
Ky0gKE5TSW50ZWdlcilvZmZzZXRGcm9tUG9zaXRpb246KFVJVGV4dFBvc2l0aW9uICopZnJvbSB0
b1Bvc2l0aW9uOihVSVRleHRQb3NpdGlvbiAqKXRvUG9zaXRpb24gaW5Eb2N1bWVudDooVUlUZXh0
U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50CiB7Ci0gICAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICByZXR1cm4gW19jb250ZW50VmlldyBvZmZzZXRGcm9t
UG9zaXRpb246ZnJvbSB0b1Bvc2l0aW9uOnRvUG9zaXRpb24gaW5Eb2N1bWVudDpkb2N1bWVudF07
Ci0gICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiB9CiBBTExPV19ERVBSRUNB
VEVEX0lNUExFTUVOVEFUSU9OU19FTkQKIAotLSAoTlNDb21wYXJpc29uUmVzdWx0KWNvbXBhcmVG
b3VuZFJhbmdlOihVSVRleHRSYW5nZSAqKWZyb21SYW5nZSB0b1JhbmdlOihVSVRleHRSYW5nZSAq
KXRvUmFuZ2UgaW5Eb2N1bWVudDooX1VJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1
bWVudAorLSAoTlNDb21wYXJpc29uUmVzdWx0KWNvbXBhcmVGb3VuZFJhbmdlOihVSVRleHRSYW5n
ZSAqKWZyb21SYW5nZSB0b1JhbmdlOihVSVRleHRSYW5nZSAqKXRvUmFuZ2UgaW5Eb2N1bWVudDoo
VUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50CiB7CiAgICAgcmV0dXJuIFtf
Y29udGVudFZpZXcgY29tcGFyZUZvdW5kUmFuZ2U6ZnJvbVJhbmdlIHRvUmFuZ2U6dG9SYW5nZSBp
bkRvY3VtZW50OmRvY3VtZW50XTsKIH0KIAotLSAodm9pZClwZXJmb3JtVGV4dFNlYXJjaFdpdGhR
dWVyeVN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgdXNpbmdPcHRpb25zOihfVUlUZXh0U2VhcmNo
T3B0aW9ucyAqKW9wdGlvbnMgcmVzdWx0QWdncmVnYXRvcjooaWQ8X1VJVGV4dFNlYXJjaEFnZ3Jl
Z2F0b3I+KWFnZ3JlZ2F0b3IKKy0gKHZvaWQpcGVyZm9ybVRleHRTZWFyY2hXaXRoUXVlcnlTdHJp
bmc6KE5TU3RyaW5nICopc3RyaW5nIHVzaW5nT3B0aW9uczooVUlUZXh0U2VhcmNoT3B0aW9ucyAq
KW9wdGlvbnMgcmVzdWx0QWdncmVnYXRvcjooaWQ8VUlUZXh0U2VhcmNoQWdncmVnYXRvcj4pYWdn
cmVnYXRvcgogewogICAgIFtfY29udGVudFZpZXcgcGVyZm9ybVRleHRTZWFyY2hXaXRoUXVlcnlT
dHJpbmc6c3RyaW5nIHVzaW5nT3B0aW9uczpvcHRpb25zIHJlc3VsdEFnZ3JlZ2F0b3I6YWdncmVn
YXRvcl07CiB9CiAKLS0gKHZvaWQpZGVjb3JhdGVGb3VuZFRleHRSYW5nZTooVUlUZXh0UmFuZ2Ug
KilyYW5nZSBpbkRvY3VtZW50OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3Vt
ZW50IHVzaW5nU3R5bGU6KF9VSUZvdW5kVGV4dFN0eWxlKXN0eWxlCistICh2b2lkKXJlcGxhY2VG
b3VuZFRleHRJblJhbmdlOihVSVRleHRSYW5nZSAqKXJhbmdlIGluRG9jdW1lbnQ6KFVJVGV4dFNl
YXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudCB3aXRoVGV4dDooTlNTdHJpbmcgKilyZXBs
YWNlbWVudFRleHQKK3sKKyAgICBbX2NvbnRlbnRWaWV3IHJlcGxhY2VGb3VuZFRleHRJblJhbmdl
OnJhbmdlIGluRG9jdW1lbnQ6ZG9jdW1lbnQgd2l0aFRleHQ6cmVwbGFjZW1lbnRUZXh0XTsKK30K
KworLSAodm9pZClkZWNvcmF0ZUZvdW5kVGV4dFJhbmdlOihVSVRleHRSYW5nZSAqKXJhbmdlIGlu
RG9jdW1lbnQ6KFVJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudCB1c2luZ1N0
eWxlOihVSVRleHRTZWFyY2hGb3VuZFRleHRTdHlsZSlzdHlsZQogewogICAgIFtfY29udGVudFZp
ZXcgZGVjb3JhdGVGb3VuZFRleHRSYW5nZTpyYW5nZSBpbkRvY3VtZW50OmRvY3VtZW50IHVzaW5n
U3R5bGU6c3R5bGVdOwogfQogCi0tICh2b2lkKXNjcm9sbFJhbmdlVG9WaXNpYmxlOihVSVRleHRS
YW5nZSAqKXJhbmdlIGluRG9jdW1lbnQ6KF9VSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIp
ZG9jdW1lbnQKKy0gKHZvaWQpc2Nyb2xsUmFuZ2VUb1Zpc2libGU6KFVJVGV4dFJhbmdlICopcmFu
Z2UgaW5Eb2N1bWVudDooVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50CiB7
CiAgICAgW19jb250ZW50VmlldyBzY3JvbGxSYW5nZVRvVmlzaWJsZTpyYW5nZSBpbkRvY3VtZW50
OmRvY3VtZW50XTsKIH0KQEAgLTM2MzksNiArMzYyNCwyNCBAQCBBTExPV19ERVBSRUNBVEVEX0lN
UExFTUVOVEFUSU9OU19FTkQKICAgICBbX2NvbnRlbnRWaWV3IHJlcXVlc3RSZWN0Rm9yRm91bmRU
ZXh0UmFuZ2U6cmFuZ2VzIGNvbXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKIH0K
IAorLSAoVUlGaW5kU2Vzc2lvbiAqKWZpbmRJbnRlcmFjdGlvbjooVUlGaW5kSW50ZXJhY3Rpb24g
KilpbnRlcmFjdGlvbiBzZXNzaW9uRm9yVmlldzooVUlWaWV3ICopdmlldworeworICAgIGF1dG8g
ZmluZFNlc3Npb24gPSBhZG9wdE5TKFtbVUlUZXh0U2VhcmNoaW5nRmluZFNlc3Npb24gYWxsb2Nd
IGluaXRXaXRoU2VhcmNoYWJsZU9iamVjdDpbc2VsZiBfc2VhcmNoYWJsZU9iamVjdF1dKTsKKyAg
ICByZXR1cm4gZmluZFNlc3Npb24uYXV0b3JlbGVhc2UoKTsKK30KKworLSAodm9pZClmaW5kSW50
ZXJhY3Rpb246KFVJRmluZEludGVyYWN0aW9uICopaW50ZXJhY3Rpb24gZGlkQmVnaW5GaW5kU2Vz
c2lvbjooVUlGaW5kU2Vzc2lvbiAqKXNlc3Npb24KK3sKKyAgICBpZiAoW3NlbGYgX3NlYXJjaGFi
bGVPYmplY3RdID09IF9jb250ZW50Vmlldy5nZXQoKSkKKyAgICAgICAgW19jb250ZW50VmlldyBk
aWRCZWdpblRleHRTZWFyY2hPcGVyYXRpb25dOworfQorCistICh2b2lkKWZpbmRJbnRlcmFjdGlv
bjooVUlGaW5kSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBkaWRFbmRGaW5kU2Vzc2lvbjooVUlG
aW5kU2Vzc2lvbiAqKXNlc3Npb24KK3sKKyAgICBpZiAoW3NlbGYgX3NlYXJjaGFibGVPYmplY3Rd
ID09IF9jb250ZW50Vmlldy5nZXQoKSkKKyAgICAgICAgW19jb250ZW50VmlldyBkaWRFbmRUZXh0
U2VhcmNoT3BlcmF0aW9uXTsKK30KKwogI2VuZGlmIC8vIEhBVkUoVUlGSU5ESU5URVJBQ1RJT04p
CiAKIEBlbmQgLy8gV0tXZWJWaWV3IChXS1ByaXZhdGVJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggNTE4
M2Q0ODZjNDE5MDE0ZDkyNWUyNmM5OGZlN2JkMWQ2NGNmMzBhMi4uZDM4Y2NkZDA4NmZkZTE2NjFj
NWQ3YjhhZTU1YWE2MWUzMmZhOTNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtNTY1LDcgKzU2NSw3IEBA
IHVzaW5nIEltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8
SW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVuCiAgICAgLCBXS0hvdmVyUGxhdHRlckRlbGVnYXRlCiAj
ZW5kaWYKICNpZiBIQVZFKFVJRklORElOVEVSQUNUSU9OKQotICAgICwgX1VJVGV4dFNlYXJjaGlu
ZworICAgICwgVUlUZXh0U2VhcmNoaW5nCiAjZW5kaWYKID4KIApAQCAtNzk3LDcgKzc5NywxMCBA
QCBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdfQUNUSU9OKERFQ0xBUkVfV0tDT05URU5U
VklFV19BQ1RJT05fRk9SX1dFQl9WSUVXKQogI2VuZGlmCiAKICNpZiBIQVZFKFVJRklORElOVEVS
QUNUSU9OKQotLSAoTlNDb21wYXJpc29uUmVzdWx0KWNvbXBhcmVGb3VuZFJhbmdlOihVSVRleHRS
YW5nZSAqKWZyb21SYW5nZSB0b1JhbmdlOihVSVRleHRSYW5nZSAqKXRvUmFuZ2UgaW5Eb2N1bWVu
dDooX1VJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudDsKKy0gKE5TSW50ZWdl
cilvZmZzZXRGcm9tUG9zaXRpb246KFVJVGV4dFBvc2l0aW9uICopZnJvbSB0b1Bvc2l0aW9uOihV
SVRleHRQb3NpdGlvbiAqKXRvUG9zaXRpb24gaW5Eb2N1bWVudDooVUlUZXh0U2VhcmNoRG9jdW1l
bnRJZGVudGlmaWVyKWRvY3VtZW50OworLSAodm9pZClkaWRCZWdpblRleHRTZWFyY2hPcGVyYXRp
b247CistICh2b2lkKWRpZEVuZFRleHRTZWFyY2hPcGVyYXRpb247CisKIC0gKHZvaWQpcmVxdWVz
dFJlY3RGb3JGb3VuZFRleHRSYW5nZTooVUlUZXh0UmFuZ2UgKilyYW5nZSBjb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCAoXikoQ0dSZWN0KSljb21wbGV0aW9uSGFuZGxlcjsKICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQppbmRleCBjZjllZWYyOTcxZWQ4NDE0NDY4MDQwNTUwZDcyMjhhNTUyMGYxNWRhLi45
M2M1MWU1YzgyMGY4YzRhOWU2NDFkMDdiOGJhNDU4N2UzOWExNDc3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
QEAgLTEwNDM1LDE0ICsxMDQzNSwxNCBAQCBzdGF0aWMgUmV0YWluUHRyPE5TSXRlbVByb3ZpZGVy
PiBjcmVhdGVJdGVtUHJvdmlkZXIoY29uc3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmCiAgICAgW3Nl
bGYud2ViVmlldy5fZmluZEludGVyYWN0aW9uIHByZXNlbnRGaW5kTmF2aWdhdG9yU2hvd2luZ1Jl
cGxhY2U6WUVTXTsKIH0KIAotLSAodm9pZClwZXJmb3JtVGV4dFNlYXJjaFdpdGhRdWVyeVN0cmlu
ZzooTlNTdHJpbmcgKilzdHJpbmcgdXNpbmdPcHRpb25zOihfVUlUZXh0U2VhcmNoT3B0aW9ucyAq
KW9wdGlvbnMgcmVzdWx0QWdncmVnYXRvcjooaWQ8X1VJVGV4dFNlYXJjaEFnZ3JlZ2F0b3I+KWFn
Z3JlZ2F0b3IKKy0gKHZvaWQpcGVyZm9ybVRleHRTZWFyY2hXaXRoUXVlcnlTdHJpbmc6KE5TU3Ry
aW5nICopc3RyaW5nIHVzaW5nT3B0aW9uczooVUlUZXh0U2VhcmNoT3B0aW9ucyAqKW9wdGlvbnMg
cmVzdWx0QWdncmVnYXRvcjooaWQ8VUlUZXh0U2VhcmNoQWdncmVnYXRvcj4pYWdncmVnYXRvcgog
ewogICAgIE9wdGlvblNldDxXZWJLaXQ6OkZpbmRPcHRpb25zPiBmaW5kT3B0aW9uczsKICAgICBz
d2l0Y2ggKG9wdGlvbnMud29yZE1hdGNoTWV0aG9kKSB7Ci0gICAgY2FzZSBfVUlUZXh0U2VhcmNo
TWF0Y2hNZXRob2RTdGFydHNXaXRoOgorICAgIGNhc2UgVUlUZXh0U2VhcmNoTWF0Y2hNZXRob2RT
dGFydHNXaXRoOgogICAgICAgICBmaW5kT3B0aW9ucy5hZGQoV2ViS2l0OjpGaW5kT3B0aW9uczo6
QXRXb3JkU3RhcnRzKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBfVUlUZXh0U2VhcmNoTWF0
Y2hNZXRob2RGdWxsV29yZDoKKyAgICBjYXNlIFVJVGV4dFNlYXJjaE1hdGNoTWV0aG9kRnVsbFdv
cmQ6CiAgICAgICAgIGZpbmRPcHRpb25zLmFkZCh7IFdlYktpdDo6RmluZE9wdGlvbnM6OkF0V29y
ZFN0YXJ0cywgV2ViS2l0OjpGaW5kT3B0aW9uczo6QXRXb3JkRW5kcyB9KTsKICAgICAgICAgYnJl
YWs7CiAgICAgZGVmYXVsdDoKQEAgLTEwNDY0LDcgKzEwNDY0LDcgQEAgc3RhdGljIFJldGFpblB0
cjxOU0l0ZW1Qcm92aWRlcj4gY3JlYXRlSXRlbVByb3ZpZGVyKGNvbnN0IFdlYktpdDo6V2ViUGFn
ZVByb3h5JgogICAgIH0pOwogfQogCi0tICh2b2lkKXJlcGxhY2VGb3VuZFRleHRJblJhbmdlOihV
SVRleHRSYW5nZSAqKXJhbmdlIGluRG9jdW1lbnQ6KF9VSVRleHRTZWFyY2hEb2N1bWVudElkZW50
aWZpZXIpZG9jdW1lbnQgd2l0aFRleHQ6KE5TU3RyaW5nICopcmVwbGFjZW1lbnRUZXh0CistICh2
b2lkKXJlcGxhY2VGb3VuZFRleHRJblJhbmdlOihVSVRleHRSYW5nZSAqKXJhbmdlIGluRG9jdW1l
bnQ6KFVJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudCB3aXRoVGV4dDooTlNT
dHJpbmcgKilyZXBsYWNlbWVudFRleHQKIHsKICAgICBpZiAoIXNlbGYuc3VwcG9ydHNUZXh0UmVw
bGFjZW1lbnQpCiAgICAgICAgIHJldHVybjsKQEAgLTEwNDc2LDIyICsxMDQ3NiwyMiBAQCBzdGF0
aWMgUmV0YWluUHRyPE5TSXRlbVByb3ZpZGVyPiBjcmVhdGVJdGVtUHJvdmlkZXIoY29uc3QgV2Vi
S2l0OjpXZWJQYWdlUHJveHkmCiAgICAgX3BhZ2UtPnJlcGxhY2VGb3VuZFRleHRSYW5nZVdpdGhT
dHJpbmcoW2ZvdW5kVGV4dFJhbmdlIHdlYkZvdW5kVGV4dFJhbmdlXSwgcmVwbGFjZW1lbnRUZXh0
KTsKIH0KIAotLSAodm9pZClkZWNvcmF0ZUZvdW5kVGV4dFJhbmdlOihVSVRleHRSYW5nZSAqKXJh
bmdlIGluRG9jdW1lbnQ6KF9VSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQg
dXNpbmdTdHlsZTooX1VJRm91bmRUZXh0U3R5bGUpc3R5bGUKKy0gKHZvaWQpZGVjb3JhdGVGb3Vu
ZFRleHRSYW5nZTooVUlUZXh0UmFuZ2UgKilyYW5nZSBpbkRvY3VtZW50OihVSVRleHRTZWFyY2hE
b2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQgdXNpbmdTdHlsZTooVUlUZXh0U2VhcmNoRm91bmRU
ZXh0U3R5bGUpc3R5bGUKIHsKICAgICBhdXRvIGZvdW5kVGV4dFJhbmdlID0gZHluYW1pY19vYmpj
X2Nhc3Q8V0tGb3VuZFRleHRSYW5nZT4ocmFuZ2UpOwogICAgIGlmICghZm91bmRUZXh0UmFuZ2Up
CiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gZGVjb3JhdGlvblN0eWxlID0gV2ViS2l0OjpG
aW5kRGVjb3JhdGlvblN0eWxlOjpOb3JtYWw7Ci0gICAgaWYgKHN0eWxlID09IF9VSUZvdW5kVGV4
dFN0eWxlRm91bmQpCisgICAgaWYgKHN0eWxlID09IFVJVGV4dFNlYXJjaEZvdW5kVGV4dFN0eWxl
Rm91bmQpCiAgICAgICAgIGRlY29yYXRpb25TdHlsZSA9IFdlYktpdDo6RmluZERlY29yYXRpb25T
dHlsZTo6Rm91bmQ7Ci0gICAgZWxzZSBpZiAoc3R5bGUgPT0gX1VJRm91bmRUZXh0U3R5bGVIaWdo
bGlnaHRlZCkKKyAgICBlbHNlIGlmIChzdHlsZSA9PSBVSVRleHRTZWFyY2hGb3VuZFRleHRTdHls
ZUhpZ2hsaWdodGVkKQogICAgICAgICBkZWNvcmF0aW9uU3R5bGUgPSBXZWJLaXQ6OkZpbmREZWNv
cmF0aW9uU3R5bGU6OkhpZ2hsaWdodGVkOwogCiAgICAgX3BhZ2UtPmRlY29yYXRlVGV4dFJhbmdl
V2l0aFN0eWxlKFtmb3VuZFRleHRSYW5nZSB3ZWJGb3VuZFRleHRSYW5nZV0sIGRlY29yYXRpb25T
dHlsZSk7CiB9CiAKLS0gKHZvaWQpc2Nyb2xsUmFuZ2VUb1Zpc2libGU6KFVJVGV4dFJhbmdlICop
cmFuZ2UgaW5Eb2N1bWVudDooX1VJVGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVu
dAorLSAodm9pZClzY3JvbGxSYW5nZVRvVmlzaWJsZTooVUlUZXh0UmFuZ2UgKilyYW5nZSBpbkRv
Y3VtZW50OihVSVRleHRTZWFyY2hEb2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQKIHsKICAgICBp
ZiAoYXV0byBmb3VuZFRleHRSYW5nZSA9IGR5bmFtaWNfb2JqY19jYXN0PFdLRm91bmRUZXh0UmFu
Z2U+KHJhbmdlKSkKICAgICAgICAgX3BhZ2UtPnNjcm9sbFRleHRSYW5nZVRvVmlzaWJsZShbZm91
bmRUZXh0UmFuZ2Ugd2ViRm91bmRUZXh0UmFuZ2VdKTsKQEAgLTEwNTE3LDE0ICsxMDUxNywxMiBA
QCBzdGF0aWMgUmV0YWluUHRyPE5TSXRlbVByb3ZpZGVyPiBjcmVhdGVJdGVtUHJvdmlkZXIoY29u
c3QgV2ViS2l0OjpXZWJQYWdlUHJveHkmCiAgICAgcmV0dXJuIHNlbGYud2ViVmlldy5fZWRpdGFi
bGU7CiB9CiAKLUFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0JFR0lOCi0tIChOU0lu
dGVnZXIpb2Zmc2V0RnJvbVBvc2l0aW9uOihVSVRleHRQb3NpdGlvbiAqKWZyb20gdG9Qb3NpdGlv
bjooVUlUZXh0UG9zaXRpb24gKil0b1Bvc2l0aW9uIGluRG9jdW1lbnQ6KF9VSVRleHRTZWFyY2hE
b2N1bWVudElkZW50aWZpZXIpZG9jdW1lbnQKKy0gKE5TSW50ZWdlcilvZmZzZXRGcm9tUG9zaXRp
b246KFVJVGV4dFBvc2l0aW9uICopZnJvbSB0b1Bvc2l0aW9uOihVSVRleHRQb3NpdGlvbiAqKXRv
UG9zaXRpb24gaW5Eb2N1bWVudDooVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3Vt
ZW50CiB7CiAgICAgcmV0dXJuIFtzZWxmIG9mZnNldEZyb21Qb3NpdGlvbjpmcm9tIHRvUG9zaXRp
b246dG9Qb3NpdGlvbl07CiB9Ci1BTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQK
IAotLSAoTlNDb21wYXJpc29uUmVzdWx0KWNvbXBhcmVGb3VuZFJhbmdlOihVSVRleHRSYW5nZSAq
KWZyb21SYW5nZSB0b1JhbmdlOihVSVRleHRSYW5nZSAqKXRvUmFuZ2UgaW5Eb2N1bWVudDooX1VJ
VGV4dFNlYXJjaERvY3VtZW50SWRlbnRpZmllcilkb2N1bWVudAorLSAoTlNDb21wYXJpc29uUmVz
dWx0KWNvbXBhcmVGb3VuZFJhbmdlOihVSVRleHRSYW5nZSAqKWZyb21SYW5nZSB0b1JhbmdlOihV
SVRleHRSYW5nZSAqKXRvUmFuZ2UgaW5Eb2N1bWVudDooVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVu
dGlmaWVyKWRvY3VtZW50CiB7CiAgICAgTlNJbnRlZ2VyIG9mZnNldCA9IFtzZWxmIG9mZnNldEZy
b21Qb3NpdGlvbjpmcm9tUmFuZ2Uuc3RhcnQgdG9Qb3NpdGlvbjp0b1JhbmdlLnN0YXJ0XTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLUERGVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW0KaW5kZXggODAwY2UzOWFlZWQ5
NjQ5NTJlYTViYmNhYjUwM2RhYWVmMGYyMjhmYy4uZmNiZDE5MjhkODlhNGE5ZDY5MTY0MjIyNjJk
NDNhODI5NTNjZTMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
UERGVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1t
CkBAIC0xMDksNyArMTA5LDcgQEAKIAogQGludGVyZmFjZSBXS1BERlZpZXcgKCkgPFBERkhvc3RW
aWV3Q29udHJvbGxlckRlbGVnYXRlLCBXS0FjdGlvblNoZWV0QXNzaXN0YW50RGVsZWdhdGUKICNp
ZiBIQVZFKFVJRklORElOVEVSQUNUSU9OKQotICAgICwgX1VJVGV4dFNlYXJjaGluZworICAgICwg
VUlUZXh0U2VhcmNoaW5nCiAjZW5kaWYKID4KIEBlbmQKQEAgLTEzNSw3ICsxMzUsNyBAQAogICAg
IFJldGFpblB0cjxXS0tleWJvYXJkU2Nyb2xsVmlld0FuaW1hdG9yPiBfa2V5Ym9hcmRTY3JvbGxp
bmdBbmltYXRvcjsKICAgICBSZXRhaW5QdHI8V0tTaGFyZVNoZWV0PiBfc2hhcmVTaGVldDsKICNp
ZiBIQVZFKFVJRklORElOVEVSQUNUSU9OKQotICAgIFJldGFpblB0cjxpZDxfVUlUZXh0U2VhcmNo
QWdncmVnYXRvcj4+IF9zZWFyY2hBZ2dyZWdhdG9yOworICAgIFJldGFpblB0cjxpZDxVSVRleHRT
ZWFyY2hBZ2dyZWdhdG9yPj4gX3NlYXJjaEFnZ3JlZ2F0b3I7CiAgICAgUmV0YWluUHRyPE5TU3Ry
aW5nPiBfc2VhcmNoU3RyaW5nOwogI2VuZGlmCiB9CkBAIC02ODgsNyArNjg4LDcgQEAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgcmV0dXJuIFt1aURlbGVnYXRlIF9kYXRh
RGV0ZWN0aW9uQ29udGV4dEZvcldlYlZpZXc6d2ViVmlld107CiB9CiAKLSNwcmFnbWEgbWFyayBf
VUlUZXh0U2VhcmNoaW5nCisjcHJhZ21hIG1hcmsgVUlUZXh0U2VhcmNoaW5nCiAKICNpZiBIQVZF
KFVJRklORElOVEVSQUNUSU9OKQogCkBAIC02OTcsNyArNjk3LDcgQEAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgcmV0dXJuIG5pbDsKIH0KIAotLSAoTlNDb21wYXJpc29u
UmVzdWx0KWNvbXBhcmVGb3VuZFJhbmdlOihVSVRleHRSYW5nZSAqKWZyb21SYW5nZSB0b1Jhbmdl
OihVSVRleHRSYW5nZSAqKXRvUmFuZ2UgaW5Eb2N1bWVudDooX1VJVGV4dFNlYXJjaERvY3VtZW50
SWRlbnRpZmllcilkb2N1bWVudAorLSAoTlNDb21wYXJpc29uUmVzdWx0KWNvbXBhcmVGb3VuZFJh
bmdlOihVSVRleHRSYW5nZSAqKWZyb21SYW5nZSB0b1JhbmdlOihVSVRleHRSYW5nZSAqKXRvUmFu
Z2UgaW5Eb2N1bWVudDooVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50CiB7
CiAgICAgYXV0byBmcm9tID0gZHluYW1pY19vYmpjX2Nhc3Q8V0tQREZGb3VuZFRleHRQb3NpdGlv
bj4oZnJvbVJhbmdlLnN0YXJ0KTsKICAgICBpZiAoIWZyb20pCkBAIC03MTYsNyArNzE2LDcgQEAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgcmV0dXJuIE5TT3JkZXJlZFNh
bWU7CiB9CiAKLS0gKHZvaWQpcGVyZm9ybVRleHRTZWFyY2hXaXRoUXVlcnlTdHJpbmc6KE5TU3Ry
aW5nICopc3RyaW5nIHVzaW5nT3B0aW9uczooX1VJVGV4dFNlYXJjaE9wdGlvbnMgKilvcHRpb25z
IHJlc3VsdEFnZ3JlZ2F0b3I6KGlkPF9VSVRleHRTZWFyY2hBZ2dyZWdhdG9yPilhZ2dyZWdhdG9y
CistICh2b2lkKXBlcmZvcm1UZXh0U2VhcmNoV2l0aFF1ZXJ5U3RyaW5nOihOU1N0cmluZyAqKXN0
cmluZyB1c2luZ09wdGlvbnM6KFVJVGV4dFNlYXJjaE9wdGlvbnMgKilvcHRpb25zIHJlc3VsdEFn
Z3JlZ2F0b3I6KGlkPFVJVGV4dFNlYXJjaEFnZ3JlZ2F0b3I+KWFnZ3JlZ2F0b3IKIHsKICAgICBb
X2hvc3RWaWV3Q29udHJvbGxlciBjYW5jZWxGaW5kU3RyaW5nXTsKICAgICBfc2VhcmNoQWdncmVn
YXRvciA9IGFnZ3JlZ2F0b3I7CkBAIC03MjQsOSArNzI0LDkgQEAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAgICAgW19ob3N0Vmlld0NvbnRyb2xsZXIgZmluZFN0cmluZzpzdHJp
bmcgd2l0aE9wdGlvbnM6b3B0aW9ucy5zdHJpbmdDb21wYXJlT3B0aW9uc107CiB9CiAKLS0gKHZv
aWQpZGVjb3JhdGVGb3VuZFRleHRSYW5nZTooVUlUZXh0UmFuZ2UgKilyYW5nZSBpbkRvY3VtZW50
OihfVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlmaWVyKWRvY3VtZW50IHVzaW5nU3R5bGU6KF9V
SUZvdW5kVGV4dFN0eWxlKXN0eWxlCistICh2b2lkKWRlY29yYXRlRm91bmRUZXh0UmFuZ2U6KFVJ
VGV4dFJhbmdlICopcmFuZ2UgaW5Eb2N1bWVudDooVUlUZXh0U2VhcmNoRG9jdW1lbnRJZGVudGlm
aWVyKWRvY3VtZW50IHVzaW5nU3R5bGU6KFVJVGV4dFNlYXJjaEZvdW5kVGV4dFN0eWxlKXN0eWxl
CiB7Ci0gICAgaWYgKHN0eWxlICE9IF9VSUZvdW5kVGV4dFN0eWxlSGlnaGxpZ2h0ZWQpCisgICAg
aWYgKHN0eWxlICE9IFVJVGV4dFNlYXJjaEZvdW5kVGV4dFN0eWxlSGlnaGxpZ2h0ZWQpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGF1dG8gZm91bmRUZXh0UmFuZ2UgPSBkeW5hbWljX29iamNfY2Fz
dDxXS1BERkZvdW5kVGV4dFJhbmdlPihyYW5nZSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTZiNTZiNzg4NjNkMzgzMTZkNDI5NTA5ODYzZGIz
YTVlOWVhYTgxZS4uZjc0NDJlOGRhZWI1MTFmZTI1ZjQ2M2JhN2I1ZjQ1ODVkNzA2MmQ3MiAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIxIEBACisyMDIyLTA0LTIxICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4K
KworICAgICAgICBbaU9TXSBBZGQgZmluZCBpbnRlcmFjdGlvbiBBUEkgdG8gV0tXZWJWaWV3Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk2MTIKKyAg
ICAgICAgcmRhcjovLzg4NDQyOTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3Rl
bnNlbi4KKworICAgICAgICBBdWdtZW50IGFuIGV4aXN0aW5nIEFQSSB0ZXN0IHRvIHVzZSB0aGUg
bmV3IEFQSSwgaW4gYWRkaXRpb24gdG8gdGhlCisgICAgICAgIGV4aXN0aW5nIFNQSS4KKworICAg
ICAgICBUaGUgZmluZC1hbmQtcmVwbGFjZSB0ZXN0IGlzIHVwZGF0ZWQgdG8gYWNjb3VudCBmb3Ig
dGhlIGZhY3QgdGhhdCBhCisgICAgICAgIGZpbmQgaW50ZXJhY3Rpb24gbm8gbG9uZ2VyIGV4cG9z
ZXMgYSBzZWFyY2hhYmxlT2JqZWN0LiBJbnN0ZWFkLCB1c2UKKyAgICAgICAgdGVzdC1vbmx5IFNQ
SSBvbiBXS1dlYlZpZXcgdG8gcGVyZm9ybSB0aGUgcmVwbGFjZS4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRmluZEluUGFnZS5tbToKKyAgICAgICAgKFRFU1Qp
OgorCiAyMDIyLTA0LTIxICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIDxib2R5PiB3aXRoIG92ZXJmbG93OmhpZGRlbiBDU1MgaXMgc2Nyb2xsYWJsZSBv
biBpT1Mgc3RhbmRhbG9uZSB3ZWIgYXBwCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL0ZpbmRJblBhZ2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0ZpbmRJblBhZ2UubW0KaW5kZXggYzZiNTFkYzZlOWE3NThlMmNiYTgz
YjdiOWU1NTNiZjk3OGNkMjM4My4uODFiNmMzYmMwYjhlNGQyMjI4OTIwNDU2NzU1Y2JjNTFlMGM1
Mjg4MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9G
aW5kSW5QYWdlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
RmluZEluUGFnZS5tbQpAQCAtNTMwLDEzICs1MzAsMTMgQEAgVEVTVChXZWJLaXQsIEZpbmRBbmRS
ZXBsYWNlKQogCiAgICAgW3dlYlZpZXcgX3NldEVkaXRhYmxlOk5PXTsKICAgICBmb3IgKFVJVGV4
dFJhbmdlICpyYW5nZSBpbiBbcmFuZ2VzIHJldmVyc2VPYmplY3RFbnVtZXJhdG9yXSkKLSAgICAg
ICAgW1tbd2ViVmlldyBfZmluZEludGVyYWN0aW9uXSBzZWFyY2hhYmxlT2JqZWN0XSByZXBsYWNl
Rm91bmRUZXh0SW5SYW5nZTpyYW5nZSBpbkRvY3VtZW50Om5pbCB3aXRoVGV4dDpyZXBsYWNlbWVu
dFN0cmluZ107CisgICAgICAgIFt3ZWJWaWV3IHJlcGxhY2VGb3VuZFRleHRJblJhbmdlOnJhbmdl
IGluRG9jdW1lbnQ6bmlsIHdpdGhUZXh0OnJlcGxhY2VtZW50U3RyaW5nXTsKIAogICAgIEVYUEVD
VF9XS19TVFJFUShvcmlnaW5hbENvbnRlbnQsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LmlubmVyVGV4dCJdKTsKIAogICAgIFt3ZWJWaWV3IF9z
ZXRFZGl0YWJsZTpZRVNdOwogICAgIGZvciAoVUlUZXh0UmFuZ2UgKnJhbmdlIGluIFtyYW5nZXMg
cmV2ZXJzZU9iamVjdEVudW1lcmF0b3JdKQotICAgICAgICBbW1t3ZWJWaWV3IF9maW5kSW50ZXJh
Y3Rpb25dIHNlYXJjaGFibGVPYmplY3RdIHJlcGxhY2VGb3VuZFRleHRJblJhbmdlOnJhbmdlIGlu
RG9jdW1lbnQ6bmlsIHdpdGhUZXh0OnJlcGxhY2VtZW50U3RyaW5nXTsKKyAgICAgICAgW3dlYlZp
ZXcgcmVwbGFjZUZvdW5kVGV4dEluUmFuZ2U6cmFuZ2UgaW5Eb2N1bWVudDpuaWwgd2l0aFRleHQ6
cmVwbGFjZW1lbnRTdHJpbmddOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKHJlcGxhY2VkQ29udGVu
dCwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmJvZHku
aW5uZXJUZXh0Il0pOwogfQpAQCAtNTUyLDYgKzU1MiwxNCBAQCBURVNUKFdlYktpdCwgRmluZElu
dGVyYWN0aW9uKQogCiAgICAgW3dlYlZpZXcgX3NldEZpbmRJbnRlcmFjdGlvbkVuYWJsZWQ6Tk9d
OwogICAgIEVYUEVDVF9OVUxMKFt3ZWJWaWV3IF9maW5kSW50ZXJhY3Rpb25dKTsKKworICAgIEVY
UEVDVF9OVUxMKFt3ZWJWaWV3IGZpbmRJbnRlcmFjdGlvbl0pOworCisgICAgW3dlYlZpZXcgc2V0
RmluZEludGVyYWN0aW9uRW5hYmxlZDpZRVNdOworICAgIEVYUEVDVF9OT1RfTlVMTChbd2ViVmll
dyBmaW5kSW50ZXJhY3Rpb25dKTsKKworICAgIFt3ZWJWaWV3IHNldEZpbmRJbnRlcmFjdGlvbkVu
YWJsZWQ6Tk9dOworICAgIEVYUEVDVF9OVUxMKFt3ZWJWaWV3IGZpbmRJbnRlcmFjdGlvbl0pOwog
fQogCiBURVNUKFdlYktpdCwgUmVxdWVzdFJlY3RGb3JGb3VuZFRleHRSYW5nZSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>