<?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>222166</bug_id>
          
          <creation_ts>2021-02-19 06:16:44 -0800</creation_ts>
          <short_desc>Update camera and microphone capture state control WKWebView API</short_desc>
          <delta_ts>2021-03-04 08:44:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1731315</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-19 06:16:44 -0800</bug_when>
    <thetext>Update camera and microphone capture state control WKWebView API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731317</commentid>
    <comment_count>1</comment_count>
      <attachid>420961</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-19 06:27:28 -0800</bug_when>
    <thetext>Created attachment 420961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731321</commentid>
    <comment_count>2</comment_count>
      <attachid>420962</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-19 06:33:03 -0800</bug_when>
    <thetext>Created attachment 420962
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731344</commentid>
    <comment_count>3</comment_count>
      <attachid>420971</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-19 08:23:57 -0800</bug_when>
    <thetext>Created attachment 420971
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731347</commentid>
    <comment_count>4</comment_count>
      <attachid>420962</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-19 08:38:50 -0800</bug_when>
    <thetext>Comment on attachment 420962
Patch

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

&gt; Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:524
&gt; +static inline bool trackMatchesKind(RealtimeMediaSource::Type type, MediaProducer::MediaCaptureKind kind)

Nit: `trackMatchesKind` is slightly awkward. Maybe `isKindOfTrack`, or `isTypeOfTrack` instead?

&gt; Source/WebCore/page/MediaProducer.h:72
&gt; +    enum class MediaCaptureKind {

Nit: `Kind` doesn&apos;t seem right. RealtimeMediaSource&apos;s `Type` is analogous, so how about `MediaCaptureType`?

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:1741
&gt; +    auto mutedState = _page-&gt;mutedStateFlags();

I think `pageMutedState` would make the logic easier to follow.

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:1745
&gt; +        mutedState = WebCore::MediaProducer::AudioCaptureIsMuted;

Don&apos;t you want to just add the muted flag:  `mutedState |= WebCore::MediaProducer::AudioCaptureIsMuted`?

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:1747
&gt; +    _page-&gt;setMuted(mutedState, [completionHandler = makeBlockPtr(completionHandler)] {
&gt; +        completionHandler();

If the page microphone capture state is already already muted, why not just call the completion handler immediately and return?

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:1766
&gt; +    auto mutedState = _page-&gt;mutedStateFlags();
&gt; +    if (state == _WKMediaCaptureStateActive &amp;&amp; mutedState &amp; WebCore::MediaProducer::VideoCaptureIsMuted)
&gt; +        mutedState ^= WebCore::MediaProducer::VideoCaptureIsMuted;
&gt; +    else if (state == _WKMediaCaptureStateMuted)
&gt; +        mutedState = WebCore::MediaProducer::VideoCaptureIsMuted;
&gt; +    _page-&gt;setMuted(mutedState, [completionHandler = makeBlockPtr(completionHandler)] {
&gt; +        completionHandler();
&gt; +    });

Ditto the comments above.

&gt; Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.mm:159
&gt; +void PageClientImplCocoa::microphoneCaptureChanged()
&gt; +{
&gt; +    [m_webView didChangeValueForKey:@&quot;_microphoneCaptureState&quot;];
&gt; +}
&gt; +
&gt; +void PageClientImplCocoa::cameraCaptureChanged()

s/*CaptureChanged/*CaptureStateChanged/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733729</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-26 06:17:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/74788059&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735779</commentid>
    <comment_count>6</comment_count>
      <attachid>420971</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-03-04 04:58:34 -0800</bug_when>
    <thetext>Comment on attachment 420971
Patch

win failure unrelated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735781</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-04 04:59:22 -0800</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 420971 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735792</commentid>
    <comment_count>8</comment_count>
      <attachid>422218</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-03-04 05:45:19 -0800</bug_when>
    <thetext>Created attachment 422218
Rebasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735846</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-04 08:44:21 -0800</bug_when>
    <thetext>Committed r273891: &lt;https://commits.webkit.org/r273891&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 422218.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420961</attachid>
            <date>2021-02-19 06:27:28 -0800</date>
            <delta_ts>2021-02-19 06:44:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222166-20210219152724.patch</filename>
            <type>text/plain</type>
            <size>51195</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzczMjI2NTJmNmY1Njk3
ODEwYzA2ODFiMjM3ZTdmYWQ3Yzk5NTFlMC4uZjMzMzE0NTI3ZWM3MTI3MzMyZDBjNjZlMmM1MTY2
M2M0NDE4ZDVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTAyLTE5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgY2FtZXJhIGFu
ZCBtaWNyb3Bob25lIGNhcHR1cmUgc3RhdGUgY29udHJvbCBXS1dlYlZpZXcgQVBJCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNjYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgdGhlIHBv
c3NpYmlsaXR5IHRvIG11dGUgZWl0aGVyIGNhbWVyYSBhbmQvb3IgbWljcm9waG9uZSBjYXB0dXJl
IGluZGVwZW5kZW50bHkuCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0
ZWRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1Bh
Z2VNdXRlZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnRyYWNrTWF0Y2hlc0tpbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVyZSk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmg6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdG9wTWVkaWFDYXB0dXJl
KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL01lZGlhUHJvZHVj
ZXIuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6
c3RvcE1lZGlhQ2FwdHVyZSk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisKIDIwMjEtMDItMTkg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSBNRURJ
QV9TT1VSQ0UgaW4gSU9TIFNpbXVsYXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyOGJiZjRhMmE3ZDI2OGE3Yjhh
NTkyMmIzZWEzNzQ2MjhhZjY3ZTQxLi5lMWRhNTU1ODc4YTBiYjAxMTllNDBiNWRmOWJmZDM2NzBk
MTMwNTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIxLTAyLTE5ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgY2FtZXJhIGFuZCBtaWNy
b3Bob25lIGNhcHR1cmUgc3RhdGUgY29udHJvbCBXS1dlYlZpZXcgQVBJCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNjYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgS1ZPIHN0YXRlcyBm
b3IgbWljcm9waG9uZSBhbmQgY2FtZXJhIGNhcHR1cmUgc3RhdGVzLgorICAgICAgICBBZGQgdHdv
IEFQSXMgdG8gc2V0IG1pY3JvcGhvbmUgYW5kIGNhbWVyYSBzdGF0ZS4KKyAgICAgICAgVGhpcyBh
bGxvd3MgdG8gbXV0ZS91bm11dGUgb3Igc3RvcCBtaWNyb3Bob25lIG9yIGNhbWVyYSBzdGF0ZS4K
KyAgICAgICAgV2UgbmVlZGVkIHRvIGludHJvZHVjZSBtdXRpbmcgb2YgZWl0aGVyIG1pY3JvcGhv
bmUgb3IgY2FtZXJhIHNpbmNlIHRoaXMgd2FzIHRpZWQgdG9nZXRoZXIgYmVmb3JlIHRoZSBwYXRj
aC4KKyAgICAgICAgVGhlc2UgdHdvIEFQSXMgdGFrZSBhIGNvbXBsZXRpb24gaGFuZGxlci4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dl
YlZpZXcgX2NhbWVyYUNhcHR1cmVTdGF0ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX21pY3Jv
cGhvbmVDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldE1pY3JvcGhvbmVD
YXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBz
ZXRDYW1lcmFDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dL
V2ViVmlldyBfc3RvcE1lZGlhQ2FwdHVyZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX21lZGlh
Q2FwdHVyZVN0YXRlXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLm1tOgorICAgICAgICAoV2Vi
S2l0Ojp0b1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKToKKyAgICAgICAgKFdlYktpdDo6
dG9XS01lZGlhQ2FwdHVyZVN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvUGFnZUNsaWVudEltcGxDb2NvYS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9QYWdl
Q2xpZW50SW1wbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbENvY29h
OjptaWNyb3Bob25lQ2FwdHVyZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50
SW1wbENvY29hOjpjYW1lcmFDYXB0dXJlQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50
OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6bWljcm9waG9uZUNhcHR1cmVD
aGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6Y2FtZXJhQ2FwdHVyZUNoYW5n
ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5Ojp+VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
c3RvcENhcHR1cmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldE11dGVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpzdG9wTWVkaWFDYXB0dXJlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojp1cGRhdGVSZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0
TXV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0b3BNZWRpYUNhcHR1cmUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6bV9sYXN0TmF2aWdhdGlvbldhc0FwcEJvdW5kKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6c2V0TXV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzdG9wTWVkaWFDYXB0
dXJlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDIxLTAyLTE5ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgV0tXZWJW
aWV3IGdldFVzZXJNZWRpYSBkZWxlZ2F0ZSB0byBsYXRlc3QgcHJvcG9zYWwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3Bw
CmluZGV4IGRhOTJlY2FmNTcxNDZhODFjMjQzYjljOGY0YTBjMTZiNTQ2NGFhNmUuLjk5MzhjMDkw
NTgxNzFhNTgxYzZmZjgyZDY4OTBiY2Q5NTc1YzA0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtNDc5
LDEzICs0NzksMTMgQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVDYXB0dXJlQWNjb3Jk
aW5nVG9NdXRlZFN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIAogICAgIGF1dG8qIGFjdGl2ZUF1
ZGlvU291cmNlID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9D
YXB0dXJlRmFjdG9yeSgpLmFjdGl2ZVNvdXJjZSgpOwogICAgIGlmIChhY3RpdmVBdWRpb1NvdXJj
ZSAmJiBpc1NvdXJjZUNhcHR1cmluZ0ZvclRyYWNrSW5Eb2N1bWVudCgqYWN0aXZlQXVkaW9Tb3Vy
Y2UsIGRvY3VtZW50KSkgewotICAgICAgICBib29sIHBhZ2VNdXRlZCA9IHBhZ2UtPm11dGVkU3Rh
dGUoKSAmIE1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRlZDsKKyAgICAg
ICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyOjpB
dWRpb0NhcHR1cmVJc011dGVkOwogICAgICAgICBhY3RpdmVBdWRpb1NvdXJjZS0+c2V0TXV0ZWQo
cGFnZU11dGVkIHx8IChkb2N1bWVudC5oaWRkZW4oKSAmJiBkb2N1bWVudC5zZXR0aW5ncygpLmlu
dGVycnVwdEF1ZGlvT25QYWdlVmlzaWJpbGl0eUNoYW5nZUVuYWJsZWQoKSkpOwogICAgIH0KIAog
ICAgIGF1dG8qIGFjdGl2ZVZpZGVvU291cmNlID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmFjdGl2ZVNvdXJjZSgpOwogICAgIGlm
IChhY3RpdmVWaWRlb1NvdXJjZSAmJiBpc1NvdXJjZUNhcHR1cmluZ0ZvclRyYWNrSW5Eb2N1bWVu
dCgqYWN0aXZlVmlkZW9Tb3VyY2UsIGRvY3VtZW50KSkgewotICAgICAgICBib29sIHBhZ2VNdXRl
ZCA9IHBhZ2UtPm11dGVkU3RhdGUoKSAmIE1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0
dXJlSXNNdXRlZDsKKyAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkg
JiBNZWRpYVByb2R1Y2VyOjpWaWRlb0NhcHR1cmVJc011dGVkOwogICAgICAgICBhY3RpdmVWaWRl
b1NvdXJjZS0+c2V0TXV0ZWQocGFnZU11dGVkIHx8IGRvY3VtZW50LmhpZGRlbigpKTsKICAgICB9
CiAjZWxzZQpAQCAtNTA1LDggKzUwNSwxMCBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0
ZVRvUGFnZU11dGVkU3RhdGUoKQogCiAgICAgc3dpdGNoIChzb3VyY2UoKS5kZXZpY2VUeXBlKCkp
IHsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CisgICAg
ICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQocGFnZS0+bXV0ZWRTdGF0ZSgpICYgTWVkaWFQcm9kdWNl
cjo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgotICAgICAgICBtX3ByaXZhdGUtPnNldE11dGVk
KHBhZ2UtPm11dGVkU3RhdGUoKSAmIE1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJl
SXNNdXRlZCk7CisgICAgICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQocGFnZS0+bXV0ZWRTdGF0ZSgp
ICYgTWVkaWFQcm9kdWNlcjo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgogICAgIGNhc2UgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgpAQCAtNTE5LDExICs1MjEsMjMgQEAgdm9p
ZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCkKICAgICB9CiB9CiAK
LXZvaWQgTWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVyZShEb2N1bWVudCYgZG9jdW1lbnQpCitz
dGF0aWMgaW5saW5lIGJvb2wgdHJhY2tNYXRjaGVzS2luZChSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlIHR5cGUsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCkKK3sKKyAgICBz
d2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6
OkF1ZGlvOgorICAgICAgICByZXR1cm4gdHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpBdWRpbzsKKyAgICBjYXNlIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlv
VmlkZW86CisgICAgICAgIHJldHVybiB0eXBlICE9IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6
Ok5vbmU7CisgICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoK
KyAgICAgICAgcmV0dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW87
CisgICAgfQorfQorCit2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmVuZENhcHR1cmUoRG9jdW1lbnQm
IGRvY3VtZW50LCBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGtpbmQpCiB7CiAgICAg
Ym9vbCBkaWRFbmRDYXB0dXJlID0gZmFsc2U7CiAgICAgZm9yIChhdXRvKiBjYXB0dXJlVHJhY2sg
OiBhbGxDYXB0dXJlVHJhY2tzKCkpIHsKLSAgICAgICAgaWYgKGNhcHR1cmVUcmFjay0+ZG9jdW1l
bnQoKSAhPSAmZG9jdW1lbnQpCisgICAgICAgIGlmIChjYXB0dXJlVHJhY2stPmRvY3VtZW50KCkg
IT0gJmRvY3VtZW50IHx8ICF0cmFja01hdGNoZXNLaW5kKGNhcHR1cmVUcmFjay0+cHJpdmF0ZVRy
YWNrKCkudHlwZSgpLCBraW5kKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBjYXB0
dXJlVHJhY2stPnN0b3BUcmFjayhNZWRpYVN0cmVhbVRyYWNrOjpTdG9wTW9kZTo6UG9zdEV2ZW50
KTsKICAgICAgICAgZGlkRW5kQ2FwdHVyZSA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCmluZGV4IGYzODBlNmQw
NTdmZjU2NjIxNjBmMzE3Zjg3NzliNjBmZmYyNjgzNmMuLjU5MmFiMmJiMTU4ZTdkMzU1MjBiYjVl
NGVjNGIwN2ZkMDE5MjE0Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFtVHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiwgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmKTsKICAgICB2aXJ0dWFsIH5N
ZWRpYVN0cmVhbVRyYWNrKCk7CiAKLSAgICBzdGF0aWMgdm9pZCBlbmRDYXB0dXJlKERvY3VtZW50
Jik7CisgICAgc3RhdGljIHZvaWQgZW5kQ2FwdHVyZShEb2N1bWVudCYsIE1lZGlhUHJvZHVjZXI6
Ok1lZGlhQ2FwdHVyZUtpbmQpOwogCiAgICAgc3RhdGljIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBjYXB0dXJlU3RhdGUoRG9jdW1lbnQmKTsKICAgICBzdGF0aWMgdm9pZCB1cGRhdGVD
YXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRlKERvY3VtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCBhZjkwZWU2YWE5MjQyYmFiMDUyM2EwMDU1MDE4NTBhMmM3MWUzMTY4Li43YmU2
NjA2MDZhM2JlMDRlMmQ3MmNmZWE2ZGNjZjk3MDllNDc1OGY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKQEAgLTgwNDUsOSArODA0NSw5IEBAIHZvaWQgRG9jdW1lbnQ6Om9yaWVudGF0aW9uQ2hh
bmdlZChpbnQgb3JpZW50YXRpb24pCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi12b2lk
IERvY3VtZW50OjpzdG9wTWVkaWFDYXB0dXJlKCkKK3ZvaWQgRG9jdW1lbnQ6OnN0b3BNZWRpYUNh
cHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCBraW5kKQogewotICAgIE1lZGlh
U3RyZWFtVHJhY2s6OmVuZENhcHR1cmUoKnRoaXMpOworICAgIE1lZGlhU3RyZWFtVHJhY2s6OmVu
ZENhcHR1cmUoKnRoaXMsIGtpbmQpOwogfQogCiB2b2lkIERvY3VtZW50OjptZWRpYVN0cmVhbUNh
cHR1cmVTdGF0ZUNoYW5nZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAzYWNkZmQ3M2E3MTkw
ZTEyNzc4MTU0NWM3MTQ3MjJmMmFlZGM2MmI1Li44M2Y4OTI5OTg3MDMxODg3ZjQyODYzZDlhYzBi
MzkxYmE1YzQ3ZjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTQzNCwxMCArMTQzNCwxMSBA
QCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVSZXNpemVPYnNlcnZhdGlvbnMoUGFnZSYpOwogI2Vu
ZGlmCiAKKyAgICBlbnVtIGNsYXNzIE1lZGlhQ2FwdHVyZVR5cGUgeyBBdWRpbywgVmlkZW8sIEF1
ZGlvVmlkZW8gfTsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHZvaWQgc2V0SGFzQ2Fw
dHVyZU1lZGlhU3RyZWFtVHJhY2soKSB7IG1faGFzSGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2sg
PSB0cnVlOyB9CiAgICAgYm9vbCBoYXNIYWRDYXB0dXJlTWVkaWFTdHJlYW1UcmFjaygpIGNvbnN0
IHsgcmV0dXJuIG1faGFzSGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2s7IH0KLSAgICB2b2lkIHN0
b3BNZWRpYUNhcHR1cmUoKTsKKyAgICB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNl
cjo6TWVkaWFDYXB0dXJlS2luZCk7CiAgICAgdm9pZCBtZWRpYVN0cmVhbUNhcHR1cmVTdGF0ZUNo
YW5nZWQoKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlh
UHJvZHVjZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9kdWNlci5oCmluZGV4IDhi
MWYwMWM1MWVlNzY4ZWZkNjJhNjdkMDg2NjdlYWU4MDFkNjY4OTMuLmIxN2U2OWYyMTA2YWE5Y2Yy
OGZhNGQ1MjYzZjk1MmE3N2ZjODVhMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TWVkaWFQcm9kdWNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9kdWNlci5o
CkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0VudW1U
cmFpdHMuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC02OCwxMyArNjksMjEgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBNZWRpYVN0YXRlRmxh
Z3MgbWVkaWFTdGF0ZSgpIGNvbnN0ID0gMDsKIAorICAgIGVudW0gY2xhc3MgTWVkaWFDYXB0dXJl
S2luZCB7CisgICAgICAgIEF1ZGlvLAorICAgICAgICBWaWRlbywKKyAgICAgICAgQXVkaW9WaWRl
bworICAgIH07CisKICAgICBlbnVtIE11dGVkU3RhdGUgewogICAgICAgICBOb25lTXV0ZWQgPSAw
LAogICAgICAgICBBdWRpb0lzTXV0ZWQgPSAxIDw8IDAsCi0gICAgICAgIEF1ZGlvQW5kVmlkZW9D
YXB0dXJlSXNNdXRlZCA9IDEgPDwgMSwKLSAgICAgICAgU2NyZWVuQ2FwdHVyZUlzTXV0ZWQgPSAx
IDw8IDIsCisgICAgICAgIEF1ZGlvQ2FwdHVyZUlzTXV0ZWQgPSAxIDw8IDEsCisgICAgICAgIFZp
ZGVvQ2FwdHVyZUlzTXV0ZWQgPSAxIDw8IDIsCisgICAgICAgIFNjcmVlbkNhcHR1cmVJc011dGVk
ID0gMSA8PCAzLAogCi0gICAgICAgIE1lZGlhU3RyZWFtQ2FwdHVyZUlzTXV0ZWQgPSBBdWRpb0Fu
ZFZpZGVvQ2FwdHVyZUlzTXV0ZWQgfCBTY3JlZW5DYXB0dXJlSXNNdXRlZCwKKyAgICAgICAgQXVk
aW9BbmRWaWRlb0NhcHR1cmVJc011dGVkID0gQXVkaW9DYXB0dXJlSXNNdXRlZCB8IFZpZGVvQ2Fw
dHVyZUlzTXV0ZWQsCisgICAgICAgIE1lZGlhU3RyZWFtQ2FwdHVyZUlzTXV0ZWQgPSBBdWRpb0Nh
cHR1cmVJc011dGVkIHwgVmlkZW9DYXB0dXJlSXNNdXRlZCB8IFNjcmVlbkNhcHR1cmVJc011dGVk
LAogICAgIH07CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBNdXRlZFN0YXRlRmxhZ3M7CiAKQEAgLTg1
LDMgKzk0LDE2IEBAIHByb3RlY3RlZDoKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZD4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtp
bmQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1
ZGlvLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpW
aWRlbywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6
QXVkaW9WaWRlbworICAgID47Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCAyNDU1N2Ez
NTdhNTJjYjI4MWU3NDY0N2MxZGY5NjU3MTNjNGZkMTE0Li5mMmIxZWVmOTBkODM4NDU2NDA0OWU5
NGMwNzdkODY3ZTllNTljM2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTIxMTQsMTEgKzIxMTQs
MTEgQEAgdm9pZCBQYWdlOjpzZXRNdXRlZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mg
bXV0ZWQpCiAgICAgfSk7CiB9CiAKLXZvaWQgUGFnZTo6c3RvcE1lZGlhQ2FwdHVyZSgpCit2b2lk
IFBhZ2U6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCBr
aW5kKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgZm9yRWFjaERvY3VtZW50KFtd
IChEb2N1bWVudCYgZG9jdW1lbnQpIHsKLSAgICAgICAgZG9jdW1lbnQuc3RvcE1lZGlhQ2FwdHVy
ZSgpOworICAgIGZvckVhY2hEb2N1bWVudChba2luZF0gKERvY3VtZW50JiBkb2N1bWVudCkgewor
ICAgICAgICBkb2N1bWVudC5zdG9wTWVkaWFDYXB0dXJlKGtpbmQpOwogICAgIH0pOwogI2VuZGlm
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCmluZGV4IDE1MmY0OTI0NDRlMTkzMDRjODI2YmUyZjMxZjhhZDIyMjU0
OTA5OWQuLmQwN2VkZWY3ZWE2ZGU2MDlhYjFmZGU3NWEyMmI1YTUwNTE3OWIxOTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCkBAIC02OTUsNyArNjk1LDggQEAgcHVibGljOgogICAgIHZvaWQgc2NoZWR1bGVQbGF5
YmFja0NvbnRyb2xzTWFuYWdlclVwZGF0ZSgpOwogICAgIHZvaWQgcGxheWJhY2tDb250cm9sc01l
ZGlhRW5naW5lQ2hhbmdlZCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TXV0ZWQoTWVk
aWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0
b3BNZWRpYUNhcHR1cmUoKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RvcE1lZGlhQ2Fw
dHVyZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kKTsKIAogICAgIE1lZGlhU2Vzc2lv
bkdyb3VwSWRlbnRpZmllciBtZWRpYVNlc3Npb25Hcm91cElkZW50aWZpZXIoKSBjb25zdDsKICAg
ICBXRUJDT1JFX0VYUE9SVCBib29sIG1lZGlhUGxheWJhY2tFeGlzdHMoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5o
CmluZGV4IDNhMWQzZmIwN2RlM2FlMTg4MzRlMmJhOTVhYzU1ZDExNjM5MTU2ODkuLmFmZDZhYjRk
NGIyOWE3YzkwMDUxYjE2NGY0MTMwNmY3ZjQ5ODZhZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAtMTI2
LDcgKzEyNiw3IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IGluY2x1ZGVTZW5zaXRpdmVNZWRpYURldmljZURldGFpbHM6KHZvaWQg
KF4pKEJPT0wgaW5jbHVkZVNlbnNpdGl2ZURldGFpbHMpKWRlY2lzaW9uSGFuZGxlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2Vz
OihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNVUkwgKil1cmwgbWFpbkZyYW1lVVJM
OihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgYXV0
aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBp
b3MoMTEuMCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjaGVja1Vz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwg
KiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJbnRlZ2VyKWZyYW1lSWRlbnRpZmll
ciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nICpzYWx0LCBCT09MIGF1dGhvcml6
ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpLCBpb3Mo
MTAuMykpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1
cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1cmVT
dGF0ZURlcHJlY2F0ZWQpc3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygx
MS4wKSk7CiAtIChXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbilfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBkcmFnRGVzdGluYXRpb25BY3Rpb25NYXNrRm9yRHJhZ2dpbmdJbmZvOihpZClkcmFn
Z2luZ0luZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAtICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNyZWF0ZVdlYlZpZXdXaXRoQ29uZmln
dXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24gZm9yTmF2aWdh
dGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiB3aW5kb3dG
ZWF0dXJlczooV0tXaW5kb3dGZWF0dXJlcyAqKXdpbmRvd0ZlYXR1cmVzIGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKShXS1dlYlZpZXcgKndlYlZpZXcpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9yRnJhbWU6
KFdLRnJhbWVJbmZvICopZnJhbWUgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGFsbG93
ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3Mo
MTEuMykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KaW5kZXggNjMwMjc4MjQzYzMwZTljNTIwNTIyZDZjNmU2ODIwZTQyZWE3YzljMS4uNjQxY2Fj
NzZlY2FlM2Y2OWZlNDg0M2YwMzBjMjRlNGFlN2VmOTlkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xNzEwLDYgKzE3MTAsNjYgQEAg
Rk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihGT1JXQVJEX0FDVElPTl9UT19X
S0NPTlRFTlRWSUVXKQogICAgIHJldHVybiBfcGFnZS0+cGFnZUxvYWRTdGF0ZSgpLmhhc05lZ290
aWF0ZWRMZWdhY3lUTFMoKTsKIH0KIAorLSAoX1dLTWVkaWFDYXB0dXJlU3RhdGUpX2NhbWVyYUNh
cHR1cmVTdGF0ZQoreworICAgIGF1dG8gc3RhdGUgPSBfcGFnZS0+cmVwb3J0ZWRNZWRpYVN0YXRl
KCk7CisgICAgX1dLTWVkaWFDYXB0dXJlU3RhdGUgbWVkaWFDYXB0dXJlU3RhdGUgPSBfV0tNZWRp
YUNhcHR1cmVTdGF0ZU5vbmU7CisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQorICAgICAgICBtZWRpYUNhcHR1cmVTdGF0
ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZTsKKyAgICBlbHNlIGlmIChzdGF0ZSAmIFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQorICAgICAg
ICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkOworCisgICAg
cmV0dXJuIG1lZGlhQ2FwdHVyZVN0YXRlOworfQorCistIChfV0tNZWRpYUNhcHR1cmVTdGF0ZSlf
bWljcm9waG9uZUNhcHR1cmVTdGF0ZQoreworICAgIGF1dG8gc3RhdGUgPSBfcGFnZS0+cmVwb3J0
ZWRNZWRpYVN0YXRlKCk7CisgICAgX1dLTWVkaWFDYXB0dXJlU3RhdGUgbWVkaWFDYXB0dXJlU3Rh
dGUgPSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmU7CisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQorICAgICAgICBtZWRp
YUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZTsKKyAgICBlbHNlIGlm
IChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2
aWNlKQorICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11
dGVkOworCisgICAgcmV0dXJuIG1lZGlhQ2FwdHVyZVN0YXRlOworfQorCistICh2b2lkKXNldE1p
Y3JvcGhvbmVDYXB0dXJlU3RhdGU6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlIGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIGlmIChz
dGF0ZSA9PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmUpIHsKKyAgICAgICAgX3BhZ2UtPnN0b3BN
ZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVk
aW8sIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcild
IHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgIH0pOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIGF1dG8gbXV0ZWRTdGF0ZSA9IF9wYWdlLT5tdXRlZFN0YXRl
RmxhZ3MoKTsKKyAgICBpZiAoc3RhdGUgPT0gX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmUgJiYg
bXV0ZWRTdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQp
CisgICAgICAgIG11dGVkU3RhdGUgXj0gV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6QXVkaW9DYXB0
dXJlSXNNdXRlZDsKKyAgICBlbHNlIGlmIChzdGF0ZSA9PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11
dGVkKQorICAgICAgICBtdXRlZFN0YXRlID0gV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6QXVkaW9D
YXB0dXJlSXNNdXRlZDsKKyAgICBfcGFnZS0+c2V0TXV0ZWQobXV0ZWRTdGF0ZSwgW2NvbXBsZXRp
b25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0geworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOworICAgIH0pOworfQorCistICh2b2lkKXNldENhbWVyYUNhcHR1
cmVTdGF0ZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgaWYgKHN0YXRlID09IF9XS01l
ZGlhQ2FwdHVyZVN0YXRlTm9uZSkgeworICAgICAgICBfcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbywgW2NvbXBsZXRp
b25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0geworICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgYXV0byBtdXRlZFN0YXRlID0gX3BhZ2UtPm11dGVkU3RhdGVGbGFncygpOworICAg
IGlmIChzdGF0ZSA9PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZSAmJiBtdXRlZFN0YXRlICYg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6VmlkZW9DYXB0dXJlSXNNdXRlZCkKKyAgICAgICAgbXV0
ZWRTdGF0ZSBePSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpWaWRlb0NhcHR1cmVJc011dGVkOwor
ICAgIGVsc2UgaWYgKHN0YXRlID09IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWQpCisgICAgICAg
IG11dGVkU3RhdGUgPSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpWaWRlb0NhcHR1cmVJc011dGVk
OworICAgIF9wYWdlLT5zZXRNdXRlZChtdXRlZFN0YXRlLCBbY29tcGxldGlvbkhhbmRsZXIgPSBt
YWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7CisgICAgfSk7Cit9CisKIC0gKHZvaWQpX2ZyYW1lczoodm9pZCAoXikoX1dLRnJhbWVU
cmVlTm9kZSAqKSljb21wbGV0aW9uSGFuZGxlcgogewogICAgIF9wYWdlLT5nZXRBbGxGcmFtZXMo
W2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKSwgcGFn
ZSA9IG1ha2VSZWYoKl9wYWdlLmdldCgpKV0gKFdlYktpdDo6RnJhbWVUcmVlTm9kZURhdGEmJiBk
YXRhKSB7CkBAIC0yMDIwLDcgKzIwODAsNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TQXJyYXk+IHdr
VGV4dE1hbmlwdWxhdGlvbkVycm9ycyhOU0FycmF5PF9XS1RleHRNYW5pcHVsYXRpb25JdAogCiAt
ICh2b2lkKV9zdG9wTWVkaWFDYXB0dXJlCiB7Ci0gICAgX3BhZ2UtPnN0b3BNZWRpYUNhcHR1cmUo
KTsKKyAgICBfcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
ZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvKTsKIH0KIAogLSAodm9pZClfc3RvcEFsbE1lZGlh
UGxheWJhY2sKQEAgLTMxODAsOSArMzI0MCw5IEBAIHN0YXRpYyBpbmxpbmUgT3B0aW9uU2V0PFdl
YktpdDo6RmluZE9wdGlvbnM+IHRvRmluZE9wdGlvbnMoX1dLRmluZE9wdGlvbnMgd2tGaW5kCiAj
ZW5kaWYKIH0KIAotLSAoX1dLTWVkaWFDYXB0dXJlU3RhdGUpX21lZGlhQ2FwdHVyZVN0YXRlCist
IChfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQpX21lZGlhQ2FwdHVyZVN0YXRlCiB7Ci0g
ICAgcmV0dXJuIFdlYktpdDo6dG9XS01lZGlhQ2FwdHVyZVN0YXRlKF9wYWdlLT5yZXBvcnRlZE1l
ZGlhU3RhdGUoKSk7CisgICAgcmV0dXJuIFdlYktpdDo6dG9XS01lZGlhQ2FwdHVyZVN0YXRlRGVw
cmVjYXRlZChfcGFnZS0+cmVwb3J0ZWRNZWRpYVN0YXRlKCkpOwogfQogCiAtICh2b2lkKV9zZXRN
ZWRpYUNhcHR1cmVFbmFibGVkOihCT09MKWVuYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IGI2MjgyOGE4MDk0
NjkwMDI0NTYxMjI4MmJhN2I1OTM5YTBlZGE2ZWIuLjZjOWM1MmI0MzgzMmZjMGU2OGEwY2FlOTE3
NDFmMjIxNTg4Yjk0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtNDAsMTMgKzQwLDE5IEBAIHR5cGVkZWYgTlNf
RU5VTShOU0ludGVnZXIsIF9XS1BhZ2luYXRpb25Nb2RlKSB7CiAgICAgX1dLUGFnaW5hdGlvbk1v
ZGVCb3R0b21Ub1RvcCwKIH0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMCksIGlvcyg4LjAp
KTsKIAordHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS01lZGlhQ2FwdHVyZVN0YXRl
RGVwcmVjYXRlZCkgeworICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE5vbmUgPSAw
LAorICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZU1pY3JvcGhvbmUgPSAx
IDw8IDAsCisgICAgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlQ2FtZXJhID0g
MSA8PCAxLAorICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE11dGVkTWljcm9waG9u
ZSA9IDEgPDwgMiwKKyAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRNdXRlZENhbWVy
YSA9IDEgPDwgMywKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7
CisKIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZSkg
ewogICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZSA9IDAsCi0gICAgX1dLTWVkaWFDYXB0dXJl
U3RhdGVBY3RpdmVNaWNyb3Bob25lID0gMSA8PCAwLAotICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRl
QWN0aXZlQ2FtZXJhID0gMSA8PCAxLAotICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRNaWNy
b3Bob25lID0gMSA8PCAyLAotICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRDYW1lcmEgPSAx
IDw8IDMsCi19IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOworICAg
IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlID0gMSA8PCAwLAorICAgIF9XS01lZGlhQ2FwdHVy
ZVN0YXRlTXV0ZWQgPSAxIDw8IDEsCit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBf
V0tNZWRpYU11dGVkU3RhdGUpIHsKICAgICBfV0tNZWRpYU5vbmVNdXRlZCA9IDAsCkBAIC0xODcs
NiArMTkzLDE2IEBAIGZvciB0aGlzIHByb3BlcnR5LgogKi8KIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgQk9PTCBfbmVnb3RpYXRlZExlZ2FjeVRMUyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjE1LjQpLCBpb3MoMTMuNCkpOwogCisvKiEgQGFic3RyYWN0IFRoZSBzdGF0ZSBvZiBt
ZWRpYSBjYXB0dXJlIG9uIGEgd2ViIHBhZ2UuCisgQGRpc2N1c3Npb24gQGxpbmsgV0tXZWJWaWV3
IEAvbGluayBpcyBrZXktdmFsdWUgb2JzZXJ2aW5nIChLVk8pIGNvbXBsaWFudAorIGZvciB0aGlz
IHByb3BlcnR5LgorICovCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS01lZGlh
Q2FwdHVyZVN0YXRlIF9jYW1lcmFDYXB0dXJlU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgX1dLTWVkaWFDYXB0dXJlU3RhdGUgX21pY3JvcGhvbmVDYXB0dXJlU3RhdGUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKworLSAodm9p
ZClzZXRNaWNyb3Bob25lQ2FwdHVyZVN0YXRlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZSBj
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQp
c2V0Q2FtZXJhQ2FwdHVyZVN0YXRlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZSBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogLSAodm9pZClfZnJh
bWVzOih2b2lkICheKShfV0tGcmFtZVRyZWVOb2RlICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKIC8vIEZJWE1FOiBSZW1vdmUg
dGhlc2Ugb25jZSBub2JvZHkgaXMgdXNpbmcgdGhlbS4KQEAgLTMzOCw3ICszNTQsNyBAQCBmb3Ig
dGhpcyBwcm9wZXJ0eS4KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEZ1bGxzY3Jl
ZW5EZWxlZ2F0ZTopIGlkPF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4gX2Z1bGxzY3JlZW5EZWxlZ2F0
ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaXNJbkZ1bGxzY3JlZW4gV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMi4zKSk7CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dL
TWVkaWFDYXB0dXJlU3RhdGUgX21lZGlhQ2FwdHVyZVN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTUpLCBpb3MoMTMuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBf
V0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQgX21lZGlhQ2FwdHVyZVN0YXRlIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTUpLCBpb3MoMTMuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBfV0tNZWRpYU11dGVkU3RhdGUgX21lZGlhTXV0ZWRTdGF0ZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCiAtICh2b2lkKV9zZXRQYWdlTXV0ZWQ6
KF9XS01lZGlhTXV0ZWRTdGF0ZSltdXRlZFN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTMpLCBpb3MoMTEuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvTWVkaWFVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlh
VXRpbGl0aWVzLmgKaW5kZXggZTFhNWQ5NDU1ZDcyMzk2ODIzNzdiNjA0ZDQ1NzUzZGU4MDZhMmQx
MS4uNzRhM2U2NWRkZmRlYzQ0YzZiYTdhZGVlNTVhMDg5MTM5ZGI1ZTQxZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5oCkBAIC0zMiw3ICszMiw3
IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1fV0tNZWRpYUNhcHR1cmVTdGF0ZSB0b1dLTWVk
aWFDYXB0dXJlU3RhdGUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsK
K19XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCB0b1dLTWVkaWFDYXB0dXJlU3RhdGVEZXBy
ZWNhdGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CiBfV0tNZWRp
YU11dGVkU3RhdGUgdG9XS01lZGlhTXV0ZWRTdGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpN
dXRlZFN0YXRlRmxhZ3MpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMubW0KaW5kZXggZGVlYjc1YTI2NTlh
M2JjZDUzZWUxMzU2YmViMjJhNzlkMDlmNzQzZC4uNDRhODFkNDhiYTdjMTI0ZjJhMzgzYmYzODA0
YjQ5ODdjMDVhZTJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
TWVkaWFVdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVk
aWFVdGlsaXRpZXMubW0KQEAgLTI4LDE3ICsyOCwxNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotX1dLTWVkaWFDYXB0dXJlU3RhdGUgdG9XS01lZGlhQ2FwdHVyZVN0YXRlKFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKK19XS01lZGlhQ2FwdHVyZVN0YXRl
RGVwcmVjYXRlZCB0b1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSkKIHsKLSAgICBfV0tNZWRpYUNhcHR1cmVT
dGF0ZSBtZWRpYUNhcHR1cmVTdGF0ZSA9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZTsKKyAgICBf
V0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQgbWVkaWFDYXB0dXJlU3RhdGUgPSBfV0tNZWRp
YUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWROb25lOwogICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZUF1ZGlvQ2FwdHVyZURldmljZSkKLSAgICAgICAgbWVkaWFD
YXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVNaWNyb3Bob25lOworICAg
ICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRB
Y3RpdmVNaWNyb3Bob25lOwogICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6
Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKLSAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUg
fD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVDYW1lcmE7CisgICAgICAgIG1lZGlhQ2FwdHVy
ZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZUNhbWVyYTsKICAg
ICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZEF1ZGlvQ2FwdHVy
ZURldmljZSkKLSAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3Rh
dGVNdXRlZE1pY3JvcGhvbmU7CisgICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlh
Q2FwdHVyZVN0YXRlRGVwcmVjYXRlZE11dGVkTWljcm9waG9uZTsKICAgICBpZiAoc3RhdGUgJiBX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZFZpZGVvQ2FwdHVyZURldmljZSkKLSAgICAg
ICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZENhbWVyYTsK
KyAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNh
dGVkTXV0ZWRDYW1lcmE7CiAKICAgICByZXR1cm4gbWVkaWFDYXB0dXJlU3RhdGU7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29h
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLmgK
aW5kZXggYzE0Zjc3YTg2YWU1MDMzYThlM2NkYTU1YzA5N2FlZmYzN2E5ZmVmNS4uMzE4OWZhMDI4
YzU1OTIxMmU1OTg2NTBhMDc3M2U2MTU1OWE3Zjg5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EuaApAQCAtNzksNiArNzksOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzdG9yZUFwcEhpZ2hsaWdodChjb25zdCBXZWJDb3JlOjpBcHBI
aWdobGlnaHQmKSBmaW5hbDsKICNlbmRpZgogCisgICAgdm9pZCBtaWNyb3Bob25lQ2FwdHVyZUNo
YW5nZWQoKSBmaW5hbDsKKyAgICB2b2lkIGNhbWVyYUNhcHR1cmVDaGFuZ2VkKCkgZmluYWw7CisK
IHByb3RlY3RlZDoKICAgICBXZWFrT2JqQ1B0cjxXS1dlYlZpZXc+IG1fd2ViVmlldzsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6QWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyPiBtX2Fs
dGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1tCmluZGV4IGRiZjM0MzYwYjJlMWYyOWJh
MGQ1MDdiODMwMzEwZDJkNDAzMjQ5YjMuLjM3ODgzZmI3YTkzMzZiYTI5NjY4ODdmZjk2MzI2NDcy
NDgwOTcxYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VD
bGllbnRJbXBsQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFn
ZUNsaWVudEltcGxDb2NvYS5tbQpAQCAtMTUwLDUgKzE1MCwxNSBAQCBOU1RleHRBbHRlcm5hdGl2
ZXMgKlBhZ2VDbGllbnRJbXBsQ29jb2E6OnBsYXRmb3JtRGljdGF0aW9uQWx0ZXJuYXRpdmVzKFdl
YkNvcmU6OgogewogICAgIHJldHVybiBtX2FsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci0+YWx0
ZXJuYXRpdmVzRm9yQ29udGV4dChkaWN0YXRpb25Db250ZXh0KTsKIH0KLSAgICAKKwordm9pZCBQ
YWdlQ2xpZW50SW1wbENvY29hOjptaWNyb3Bob25lQ2FwdHVyZUNoYW5nZWQoKQoreworICAgIFtt
X3dlYlZpZXcgZGlkQ2hhbmdlVmFsdWVGb3JLZXk6QCJfbWljcm9waG9uZUNhcHR1cmVTdGF0ZSJd
OworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsQ29jb2E6OmNhbWVyYUNhcHR1cmVDaGFuZ2VkKCkK
K3sKKyAgICBbbV93ZWJWaWV3IGRpZENoYW5nZVZhbHVlRm9yS2V5OkAiX2NhbWVyYUNhcHR1cmVT
dGF0ZSJdOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbQppbmRleCBmMDc4OTk0YzAyNTNiOTJlNTQ4YzI4Mzg3OWQ4OGU0NDMwNmZmZjc2Li4yYzVj
NzZiYzMyODNjYzU4NTlmMGNmZmY1MDJhNmNjOWYzYTAwYmZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTExODMsNyArMTE4Myw3IEBAIHZvaWQg
VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lCiAgICAgaWYgKCFkZWxlZ2F0ZSB8fCAhbV91aURlbGVnYXRlLT5t
X2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3TWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93
ZWJWaWV3OndlYlZpZXcuZ2V0KCkuZ2V0KCkgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6dG9X
S01lZGlhQ2FwdHVyZVN0YXRlKHN0YXRlKV07CisgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0
ZT4pZGVsZWdhdGUgX3dlYlZpZXc6d2ViVmlldy5nZXQoKS5nZXQoKSBtZWRpYUNhcHR1cmVTdGF0
ZURpZENoYW5nZTp0b1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKHN0YXRlKV07CiB9CiAK
IHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEoV2ViUGFnZVByb3h5KiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHNlY3Vy
aXR5T3JpZ2luLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVk
ZWQsIEZ1bmN0aW9uPHZvaWQgKHVuc2lnbmVkIGxvbmcgbG9uZyk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggYzg4NDE5OWY0YjY5M2My
YmNkYTdmNTM3MjljZGNhM2IzNDI2ZjEyZC4uODNjNmEzYmViMWEzMjdlYmM0NmNjMWVhMzQ0NTJk
YTFmNmRkMDgwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtNTMxLDYg
KzUzMSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkSGFuZGxlQWNjZXB0ZWRDYW5k
aWRhdGUoKSA9IDA7CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgdm9pZCBtaWNyb3Bob25lQ2FwdHVy
ZUNoYW5nZWQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgY2FtZXJhQ2FwdHVyZUNoYW5nZWQoKSB7
IH0KKwogICAgIHZpcnR1YWwgdm9pZCB2aWRlb0NvbnRyb2xzTWFuYWdlckRpZENoYW5nZSgpIHsg
fQogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYgIVBMQVRGT1JNKElP
U19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKaW5kZXggYjY3ZTEy
ZmU2NzdmZWUxYTVhYzc1YTBhYzBhOGYxZTAyMmFiNDBjOC4uOGZlNjk1YjY2YmEzMzE2ZGViNTZh
YjE4OTdmNjg3MWVlYmI4YzUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cApAQCAtMTAxLDcgKzEwMSw3IEBAIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eShXCiAKIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp+VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkoKQogewotICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpT
dG9wTWVkaWFDYXB0dXJlIHsgfSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OlN0b3BNZWRpYUNhcHR1cmUgeyBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRp
b1ZpZGVvIH0pOwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgVXNlck1lZGlhUHJvY2Vz
c01hbmFnZXI6OnNpbmdsZXRvbigpLnJldm9rZVNhbmRib3hFeHRlbnNpb25zSWZOZWVkZWQocGFn
ZSgpLnByb2Nlc3MoKSk7CiAgICAgcHJveGllcygpLnJlbW92ZSh0aGlzKTsKQEAgLTEzNSw3ICsx
MzUsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzdG9w
Q2FwdHVyZSgpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSKTsKICAgICBpbnZhbGlk
YXRlUGVuZGluZ1JlcXVlc3RzKCk7Ci0gICAgbV9wYWdlLnN0b3BNZWRpYUNhcHR1cmUoKTsKKyAg
ICBtX3BhZ2Uuc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5k
OjpBdWRpb1ZpZGVvKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6Y2FwdHVyZURldmljZXNDaGFuZ2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IGU0Njg4MDg5NWE5MzM1ZjlkOWVmMjQyYmMxZjhlNjc4YmYy
NzVkNzkuLjE3NjZmZjRjOTYwMzEzOTg0MmUyMmU5NjExYWViMTFlNmZlMWViNTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTk2NiwxMiArNTk2NiwxMiBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TWVkaWFWb2x1bWUoZmxvYXQgdm9sdW1lKQogICAgIHNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldE1lZGlhVm9sdW1lKHZvbHVtZSkpOwogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6c2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0
ZUZsYWdzIHN0YXRlKQordm9pZCBXZWJQYWdlUHJveHk6OnNldE11dGVkKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBzdGF0ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fbXV0ZWRTdGF0ZSA9IHN0YXRlOwogCiAg
ICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcigpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAg
ICBib29sIGhhc011dGVkQ2FwdHVyZVN0cmVhbXMgPSBtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNdXRlZENhcHR1cmVNYXNrOwpAQCAtNTk4MSw3ICs1OTgxLDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3Rh
dGVGbGFncyBzdGF0ZSkKIAogICAgIG1fcHJvY2Vzcy0+cGFnZU11dGVkU3RhdGVDaGFuZ2VkKG1f
d2ViUGFnZUlELCBzdGF0ZSk7CiAKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRNdXRl
ZChzdGF0ZSkpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6U2V0
TXV0ZWQoc3RhdGUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgYWN0aXZpdHlT
dGF0ZURpZENoYW5nZSh7IEFjdGl2aXR5U3RhdGU6OklzQXVkaWJsZSwgQWN0aXZpdHlTdGF0ZTo6
SXNDYXB0dXJpbmdNZWRpYSB9KTsKIH0KIApAQCAtNTk5NywxNSArNTk5NywxNSBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0TWVkaWFDYXB0dXJlRW5hYmxlZChib29sIGVuYWJsZWQpCiAjZW5kaWYK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnN0b3BNZWRpYUNhcHR1cmUoKQordm9pZCBXZWJQYWdl
UHJveHk6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCBr
aW5kLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcigpOwogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAg
ICBpZiAobV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpCiAgICAgICAgIG1fdXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLT5yZXNldEFjY2VzcygpOwotICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlN0b3BNZWRpYUNhcHR1cmUoKSk7CisgICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpTdG9wTWVkaWFDYXB0dXJlKGtpbmQpLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CiAjZW5kaWYKIH0KIApAQCAtOTEzNyw4ICs5MTM3LDE1IEBA
IHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVSZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlKCkKIAog
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoV2ViUlRDLCAidXBkYXRlUmVwb3J0ZWRNZWRpYUNh
cHR1cmVTdGF0ZTogZnJvbSAlZCB0byAlZCIsIG1fcmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSwg
YWN0aXZlQ2FwdHVyZVN0YXRlKTsKIAorICAgIGJvb2wgbWljcm9waG9uZUNhcHR1cmVDaGFuZ2Vk
ID0gKG1fcmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OkF1ZGlvQ2Fw
dHVyZU1hc2spICE9IChhY3RpdmVDYXB0dXJlU3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpBdWRpb0Nh
cHR1cmVNYXNrKTsKKyAgICBib29sIGNhbWVyYUNhcHR1cmVDaGFuZ2VkID0gKG1fcmVwb3J0ZWRN
ZWRpYUNhcHR1cmVTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OlZpZGVvQ2FwdHVyZU1hc2spICE9IChh
Y3RpdmVDYXB0dXJlU3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpWaWRlb0NhcHR1cmVNYXNrKTsKKwog
ICAgIG1fcmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSA9IGFjdGl2ZUNhcHR1cmVTdGF0ZTsKICAg
ICBtX3VpQ2xpZW50LT5tZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShtX21lZGlhU3RhdGUpOwor
ICAgIGlmIChtaWNyb3Bob25lQ2FwdHVyZUNoYW5nZWQpCisgICAgICAgIHBhZ2VDbGllbnQoKS5t
aWNyb3Bob25lQ2FwdHVyZUNoYW5nZWQoKTsKKyAgICBpZiAoY2FtZXJhQ2FwdHVyZUNoYW5nZWQp
CisgICAgICAgIHBhZ2VDbGllbnQoKS5jYW1lcmFDYXB0dXJlQ2hhbmdlZCgpOwogfQogCiB2b2lk
IFdlYlBhZ2VQcm94eTo6dmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2UoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBlNDc1ODBmYmE4NWQwMGQ0YzZkNjVjMDNk
ZTQzN2E0MjJhMDI5YmNhLi40YTM0ZTQwZTFlZGJmYWVjYWI2MTlkMTcyNmRlMjZlMmM3Mzg3NDMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTMyNiwxMyArMTMy
NiwxMyBAQCBwdWJsaWM6CiAgICAgdWludDY0X3QgcmVuZGVyVHJlZVNpemUoKSBjb25zdCB7IHJl
dHVybiBtX3JlbmRlclRyZWVTaXplOyB9CiAKICAgICB2b2lkIHNldE1lZGlhVm9sdW1lKGZsb2F0
KTsKLSAgICB2b2lkIHNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVG
bGFncyk7CisgICAgdm9pZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0
YXRlRmxhZ3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IFtdIHsgfSk7CiAgICAgYm9v
bCBpc0F1ZGlvTXV0ZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkU3RhdGUgJiBXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpBdWRpb0lzTXV0ZWQ7IH07CiAgICAgdm9pZCBzZXRNYXlTdGFydE1lZGlh
V2hlbkluV2luZG93KGJvb2wpOwogICAgIGJvb2wgbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdygp
IGNvbnN0IHsgcmV0dXJuIG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsgfQogICAgIHZvaWQg
c2V0TWVkaWFDYXB0dXJlRW5hYmxlZChib29sKTsKICAgICBib29sIG1lZGlhQ2FwdHVyZUVuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX21lZGlhQ2FwdHVyZUVuYWJsZWQ7IH0KLSAgICB2b2lkIHN0
b3BNZWRpYUNhcHR1cmUoKTsKKyAgICB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
ID0gW10geyB9KTsKIAogICAgIHZvaWQgcGF1c2VBbGxNZWRpYVBsYXliYWNrKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzdXNwZW5kQWxsTWVkaWFQbGF5YmFjayhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCA2MjljZGI3NDhkODJiYjBjZjVlOWY1NzY0OTEyYTM3NmNh
ZjkwNzQzLi4yNmI3NjQyMzcyOGIxYWNlMmFjNGNlNmZhOWU5YjdhYjlhMzk4Y2E0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNzUxLDcgKzc1
MSw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAKICAgICBzZXRNZWRpYVZvbHVtZShw
YXJhbWV0ZXJzLm1lZGlhVm9sdW1lKTsKIAotICAgIHNldE11dGVkKHBhcmFtZXRlcnMubXV0ZWQp
OworICAgIHNldE11dGVkKHBhcmFtZXRlcnMubXV0ZWQsIFtdIHsgfSk7CiAKICAgICAvLyBXZSB1
c2UgdGhlIERpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCBtaWxlc3RvbmUgdG8gZGV0ZXJt
aW5lIHdoZW4gdG8gdW5mcmVlemUgdGhlIGxheWVyIHRyZWUuCiAgICAgbV9wYWdlLT5hZGRMYXlv
dXRNaWxlc3RvbmVzKHsgRGlkRmlyc3RMYXlvdXQsIERpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxh
eW91dCB9KTsKQEAgLTUzNjUsMTYgKzUzNjUsMTggQEAgdm9pZCBXZWJQYWdlOjpzZXRNZWRpYVZv
bHVtZShmbG9hdCB2b2x1bWUpCiAgICAgbV9wYWdlLT5zZXRNZWRpYVZvbHVtZSh2b2x1bWUpOwog
fQogCi12b2lkIFdlYlBhZ2U6OnNldE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFn
cyBzdGF0ZSkKK3ZvaWQgV2ViUGFnZTo6c2V0TXV0ZWQoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0
ZUZsYWdzIHN0YXRlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7CiAgICAgbV9wYWdlLT5zZXRNdXRlZChzdGF0ZSk7CisgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzdG9wTWVkaWFDYXB0dXJlKCkKK3ZvaWQgV2ViUGFn
ZTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGtpbmQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQotICAgIG1fcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZSgpOworICAg
IG1fcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShraW5kKTsKICNlbmRpZgorICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6c2V0TWF5U3RhcnRNZWRpYVdoZW5JbldpbmRv
dyhib29sIG1heVN0YXJ0TWVkaWEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKaW5kZXggMWM3ZjQ2YjY1YmIzZjcyYzY5ZDcyMzIwZmE2Nzc4Njc2MmY0OTk0MC4u
MzZkZTNhNTRiMjczNGIyOGRhYWJkMDM1ZjI2M2NkOTFhOWM5Njk4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtOTg4LDkgKzk4OCw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlbW92ZVJlc291cmNlUmVxdWVzdCh1bnNpZ25lZCBsb25nKTsKIAogICAg
IHZvaWQgc2V0TWVkaWFWb2x1bWUoZmxvYXQpOwotICAgIHZvaWQgc2V0TXV0ZWQoV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzKTsKKyAgICB2b2lkIHNldE11dGVkKFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICAgICB2b2lkIHNldE1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3coYm9vbCk7Ci0g
ICAgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKCk7CisgICAgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAKICAgICB2b2lkIHVwZGF0ZU1haW5GcmFtZVNjcm9sbE9mZnNldFBpbm5p
bmcoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KaW5kZXggM2JlODhhYTBjYTRhYmYxMmFiZmUzMzY5NmU0MTJmMzU1Yzkx
OGQ3OC4uZDUxMjQ4MGVmODExNjlkMjQ2M2I0MzFjOTllYTM3Mjc4NzgzNDQzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CkBAIC00MTUsOSArNDE1LDkgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVt
OnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKIAogICAgICMgTWVk
aWEKICAgICBTZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUpCi0gICAgU2V0TXV0ZWQoV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG11dGVkKQorICAgIFNldE11dGVkKFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBtdXRlZCkgLT4gKCkgQXN5bmMK
ICAgICBTZXRNYXlTdGFydE1lZGlhV2hlbkluV2luZG93KGJvb2wgbWF5U3RhcnRNZWRpYSkKLSAg
ICBTdG9wTWVkaWFDYXB0dXJlKCkKKyAgICBTdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCkgLT4gKCkgQXN5bmMKIAogICAgIFNldENh
blJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCkKICAgICBTZXRDYW5SdW5Nb2RhbChib29sIGNhblJ1bk1vZGFsKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDdjYjg0Yjc2YjAxYjVk
YWMxZjc5YTVkMTljODM0NGZkYTU0ZTJjZDguLmI3NGM3ZWNjZWQ4NDM1YzM4YmNhNjhjMzZkZjM0
MzU3Mzk2OTJhZWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMS0wMi0xOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIGNhbWVyYSBhbmQgbWljcm9waG9uZSBjYXB0
dXJlIHN0YXRlIGNvbnRyb2wgV0tXZWJWaWV3IEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYWVkIGFjY29yZGluZyByZW5hbWluZyBvZiBfV0tN
ZWRpYUNhcHR1cmVTdGF0ZSBpbiBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEubW06CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjp3a01lZGlhQ2FwdHVyZVN0YXRlU3RyaW5nKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OndhaXRVbnRpbENhcHR1cmVTdGF0ZSk6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRp
YVN0cmVhbVRyYWNrRGV0YWNoZWQubW06CisgICAgICAgICgtW01lZGlhU3RyZWFtVHJhY2tEZXRh
Y2hlZFVJRGVsZWdhdGUgX3dlYlZpZXc6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6XSk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2
aWdhdGlvbi5tbToKKyAgICAgICAgKC1bR2V0VXNlck1lZGlhVUlEZWxlZ2F0ZSBfd2ViVmlldzpt
ZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1NwZWVjaFJlY29nbml0aW9uLm1tOgorICAgICAgICAoLVtTcGVlY2hS
ZWNvZ25pdGlvblVJRGVsZWdhdGUgX3dlYlZpZXc6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6
XSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29h
Lm1tOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aXNEb2luZ01lZGlhQ2FwdHVyZSBj
b25zdCk6CisKIDIwMjEtMDItMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIEVuYWJsZSBNRURJQV9TT1VSQ0UgaW4gSU9TIFNpbXVsYXRvcgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tCmluZGV4IDQ0NGMw
NjdiZTczMDJhMzVhNzdkYzIzZWUwZjM5MTFlYzBkMzMxNjguLmMxNDQyY2VhNmI5MjQ3NGJhNjg0
ZWMyY2IzM2NiYWM5NzlmZTAwYzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L0dldFVzZXJNZWRpYS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9HZXRVc2VyTWVkaWEubW0KQEAgLTYwLDI5ICs2MCwyOSBAQCBzdGF0aWMgYm9vbCBk
b25lOwogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKLXN0YXRpYyBTdHJpbmcgd2tNZWRp
YUNhcHR1cmVTdGF0ZVN0cmluZyhfV0tNZWRpYUNhcHR1cmVTdGF0ZSBmbGFncykKK3N0YXRpYyBT
dHJpbmcgd2tNZWRpYUNhcHR1cmVTdGF0ZVN0cmluZyhfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJl
Y2F0ZWQgZmxhZ3MpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBzdHJpbmc7Ci0gICAgaWYgKGZsYWdz
ICYgX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVNaWNyb3Bob25lKQotICAgICAgICBzdHJpbmcu
YXBwZW5kKCJfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZU1pY3JvcGhvbmUgKyAiKTsKLSAgICBp
ZiAoZmxhZ3MgJiBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYSkKLSAgICAgICAgc3Ry
aW5nLmFwcGVuZCgiX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVDYW1lcmEgKyAiKTsKLSAgICBp
ZiAoZmxhZ3MgJiBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkTWljcm9waG9uZSkKLSAgICAgICAg
c3RyaW5nLmFwcGVuZCgiX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZE1pY3JvcGhvbmUgKyAiKTsK
LSAgICBpZiAoZmxhZ3MgJiBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkQ2FtZXJhKQotICAgICAg
ICBzdHJpbmcuYXBwZW5kKCJfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkQ2FtZXJhICsgIik7Cisg
ICAgaWYgKGZsYWdzICYgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlTWljcm9w
aG9uZSkKKyAgICAgICAgc3RyaW5nLmFwcGVuZCgiX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNh
dGVkQWN0aXZlTWljcm9waG9uZSArICIpOworICAgIGlmIChmbGFncyAmIF9XS01lZGlhQ2FwdHVy
ZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZUNhbWVyYSkKKyAgICAgICAgc3RyaW5nLmFwcGVuZCgiX1dL
TWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlQ2FtZXJhICsgIik7CisgICAgaWYgKGZs
YWdzICYgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTXV0ZWRNaWNyb3Bob25lKQorICAg
ICAgICBzdHJpbmcuYXBwZW5kKCJfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRNdXRlZE1p
Y3JvcGhvbmUgKyAiKTsKKyAgICBpZiAoZmxhZ3MgJiBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJl
Y2F0ZWRNdXRlZENhbWVyYSkKKyAgICAgICAgc3RyaW5nLmFwcGVuZCgiX1dLTWVkaWFDYXB0dXJl
U3RhdGVEZXByZWNhdGVkTXV0ZWRDYW1lcmEgKyAiKTsKICAgICBpZiAoc3RyaW5nLmlzRW1wdHko
KSkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiX1dLTWVkaWFDYXB0dXJlU3RhdGVOb25lIik7Cisg
ICAgICAgIHN0cmluZy5hcHBlbmQoIl9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE5vbmUi
KTsKICAgICBlbHNlCiAgICAgICAgIHN0cmluZy5yZXNpemUoc3RyaW5nLmxlbmd0aCgpIC0gMik7
CiAKICAgICByZXR1cm4gc3RyaW5nLnRvU3RyaW5nKCk7CiB9CiAKLWJvb2wgd2FpdFVudGlsQ2Fw
dHVyZVN0YXRlKFdLV2ViVmlldyAqd2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGUgZXhwZWN0
ZWRTdGF0ZSkKK2Jvb2wgd2FpdFVudGlsQ2FwdHVyZVN0YXRlKFdLV2ViVmlldyAqd2ViVmlldywg
X1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkIGV4cGVjdGVkU3RhdGUpCiB7CiAgICAgTlNU
aW1lSW50ZXJ2YWwgZW5kID0gW1tOU0RhdGUgZGF0ZV0gdGltZUludGVydmFsU2luY2VSZWZlcmVu
Y2VEYXRlXSArIDEwOwotICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlIHN0YXRlOworICAgIF9XS01l
ZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCBzdGF0ZTsKICAgICBkbyB7CiAgICAgICAgIHN0YXRl
ID0gW3dlYlZpZXcgX21lZGlhQ2FwdHVyZVN0YXRlXTsKICAgICAgICAgaWYgKHN0YXRlID09IGV4
cGVjdGVkU3RhdGUpCkBAIC0xMTMsMzggKzExMywzOCBAQCBURVNUKFdlYktpdDIsIENhcHR1cmVN
dXRlKQogICAgIHdlYlZpZXcuX21lZGlhQ2FwdHVyZVJlcG9ydGluZ0RlbGF5Rm9yVGVzdGluZyA9
IDA7CiAKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImdldFVzZXJNZWRpYSJdOwot
ICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNh
cHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYSkpOworICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1
cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVDYW1l
cmEpKTsKIAogICAgIFt3ZWJWaWV3IF9zZXRQYWdlTXV0ZWQ6IF9XS01lZGlhQ2FwdHVyZURldmlj
ZXNNdXRlZF07Ci0gICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcs
IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRDYW1lcmEpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0
VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVk
TXV0ZWRDYW1lcmEpKTsKICAgICBbd2ViVmlldyBfc2V0UGFnZU11dGVkOiBfV0tNZWRpYU5vbmVN
dXRlZF07Ci0gICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9X
S01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJhKSk7CisgICAgRVhQRUNUX1RSVUUod2FpdFVu
dGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFj
dGl2ZUNhbWVyYSkpOwogCiAgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAInN0b3AoKSJdOwotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJW
aWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmUpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50
aWxDYXB0dXJlU3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTm9u
ZSkpOwogCiAgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImNhcHR1
cmVBdWRpbygpIl07Ci0gICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZp
ZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWljcm9waG9uZSkpOworICAgIEVYUEVDVF9U
UlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURl
cHJlY2F0ZWRBY3RpdmVNaWNyb3Bob25lKSk7CiAgICAgW3dlYlZpZXcgX3NldFBhZ2VNdXRlZDog
X1dLTWVkaWFDYXB0dXJlRGV2aWNlc011dGVkXTsKLSAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxD
YXB0dXJlU3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZE1pY3JvcGhvbmUp
KTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldywgX1dLTWVk
aWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTXV0ZWRNaWNyb3Bob25lKSk7CiAgICAgW3dlYlZpZXcg
X3NldFBhZ2VNdXRlZDogX1dLTWVkaWFOb25lTXV0ZWRdOwotICAgIEVYUEVDVF9UUlVFKHdhaXRV
bnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZU1pY3Jv
cGhvbmUpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldywg
X1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlTWljcm9waG9uZSkpOwogCiAgICAg
W3dlYlZpZXcgX3NldFBhZ2VNdXRlZDogX1dLTWVkaWFDYXB0dXJlRGV2aWNlc011dGVkXTsKLSAg
ICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0
dXJlU3RhdGVNdXRlZE1pY3JvcGhvbmUpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0
dXJlU3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTXV0ZWRNaWNy
b3Bob25lKSk7CiAKICAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAi
c3RvcCgpIl07Ci0gICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcs
IF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZSkpOworICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENh
cHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWROb25lKSk7
CiAKICAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiY2FwdHVyZUF1
ZGlvQW5kVmlkZW8oKSJdOwotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3
ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYSB8IF9XS01lZGlhQ2FwdHVy
ZVN0YXRlQWN0aXZlTWljcm9waG9uZSkpOworICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1
cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVDYW1l
cmEgfCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVNaWNyb3Bob25lKSk7CiAg
ICAgW3dlYlZpZXcgX3NldFBhZ2VNdXRlZDogX1dLTWVkaWFDYXB0dXJlRGV2aWNlc011dGVkXTsK
LSAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldywgX1dLTWVkaWFD
YXB0dXJlU3RhdGVNdXRlZENhbWVyYSB8IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRNaWNyb3Bo
b25lKSk7CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9X
S01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE11dGVkQ2FtZXJhIHwgX1dLTWVkaWFDYXB0dXJl
U3RhdGVEZXByZWNhdGVkTXV0ZWRNaWNyb3Bob25lKSk7CiAgICAgW3dlYlZpZXcgX3NldFBhZ2VN
dXRlZDogX1dLTWVkaWFOb25lTXV0ZWRdOwotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1
cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYSB8IF9XS01l
ZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWljcm9waG9uZSkpOworICAgIEVYUEVDVF9UUlVFKHdhaXRV
bnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRB
Y3RpdmVDYW1lcmEgfCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVNaWNyb3Bo
b25lKSk7CiAKICAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAic3Rv
cCgpIl07Ci0gICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9X
S01lZGlhQ2FwdHVyZVN0YXRlTm9uZSkpOworICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1
cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWROb25lKSk7CiB9
CiAKIFRFU1QoV2ViS2l0MiwgQ2FwdHVyZVN0b3ApCkBAIC0xNjQsMTQgKzE2NCwxNCBAQCBURVNU
KFdlYktpdDIsIENhcHR1cmVTdG9wKQogICAgIHdlYlZpZXcuVUlEZWxlZ2F0ZSA9IGRlbGVnYXRl
LmdldCgpOwogCiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJnZXRVc2VyTWVkaWEi
XTsKLSAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldywgX1dLTWVk
aWFDYXB0dXJlU3RhdGVBY3RpdmVDYW1lcmEpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxD
YXB0dXJlU3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZl
Q2FtZXJhKSk7CiAKICAgICBbZGVsZWdhdGUgd2FpdFVudGlsUHJvbXB0ZWRdOwogCiAgICAgW3dl
YlZpZXcgX3NldFBhZ2VNdXRlZDogX1dLTWVkaWFDYXB0dXJlRGV2aWNlc011dGVkXTsKLSAgICBF
WFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJl
U3RhdGVNdXRlZENhbWVyYSkpOworICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0
ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRNdXRlZENhbWVyYSkpOwog
ICAgIFt3ZWJWaWV3IF9zZXRQYWdlTXV0ZWQ6IF9XS01lZGlhTm9uZU11dGVkXTsKLSAgICBFWFBF
Q1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3Rh
dGVBY3RpdmVDYW1lcmEpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUo
d2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlQ2FtZXJhKSk7CiAK
ICAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAibm90aWZ5RW5kZWRF
dmVudCgpIl07CiAgICAgW3dlYlZpZXcgX3N0b3BNZWRpYUNhcHR1cmVdOwpAQCAtMTc5LDcgKzE3
OSw3IEBAIFRFU1QoV2ViS2l0MiwgQ2FwdHVyZVN0b3ApCiAgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKLSAgICBFWFBFQ1RfVFJVRSh3YWl0
VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVOb25lKSk7Cisg
ICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2Fw
dHVyZVN0YXRlRGVwcmVjYXRlZE5vbmUpKTsKIAogICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVh
dGluZ0phdmFTY3JpcHQ6QCJwcm9tcHRGb3JDYXB0dXJlKCkiXTsKICAgICBbZGVsZWdhdGUgd2Fp
dFVudGlsUHJvbXB0ZWRdOwpAQCAtMjA0LDcgKzIwNCw3IEBAIFRFU1QoV2ViS2l0MiwgQ2FwdHVy
ZUluZGljYXRvckRlbGF5KQogICAgIHdlYlZpZXcuVUlEZWxlZ2F0ZSA9IGRlbGVnYXRlLmdldCgp
OwogCiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJnZXRVc2VyTWVkaWEiXTsKLSAg
ICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0
dXJlU3RhdGVBY3RpdmVDYW1lcmEpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJl
U3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlQ2FtZXJh
KSk7CiAKICAgICBbZGVsZWdhdGUgd2FpdFVudGlsUHJvbXB0ZWRdOwogCkBAIC0yMTIsMTAgKzIx
MiwxMCBAQCBURVNUKFdlYktpdDIsIENhcHR1cmVJbmRpY2F0b3JEZWxheSkKIAogICAgIC8vIFdl
IHdhaXQgMSBzZWNvbmQsIHdlIHNob3VsZCBzdGlsbCBzZWUgY2FtZXJhIGJlIHJlcG9ydGVkLgog
ICAgIHNsZWVwKDFfcyk7Ci0gICAgRVhQRUNUX0VRKFt3ZWJWaWV3IF9tZWRpYUNhcHR1cmVTdGF0
ZV0sIF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJhKTsKKyAgICBFWFBFQ1RfRVEoW3dl
YlZpZXcgX21lZGlhQ2FwdHVyZVN0YXRlXSwgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVk
QWN0aXZlQ2FtZXJhKTsKIAogICAgIC8vIE9uZSBhZGRpdGlvbmFsIHNlY29uZCBzaG91bGQgYWxs
b3cgdXMgdG8gZ28gYmFjayB0byBubyBjYXB0dXJlIGJlaW5nIHJlcG9ydGVkLgotICAgIEVYUEVD
VF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0
ZU5vbmUpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldywg
X1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTm9uZSkpOwogfQogCiBURVNUKFdlYktpdDIs
IENhcHR1cmVJbmRpY2F0b3JEZWxheVdoZW5DbG9zZWQpCkBAIC0yMzcsMTMgKzIzNywxMyBAQCBU
RVNUKFdlYktpdDIsIENhcHR1cmVJbmRpY2F0b3JEZWxheVdoZW5DbG9zZWQpCiAgICAgd2ViVmll
dy5VSURlbGVnYXRlID0gZGVsZWdhdGUuZ2V0KCk7CiAKICAgICBbd2ViVmlldyBsb2FkVGVzdFBh
Z2VOYW1lZDpAImdldFVzZXJNZWRpYSJdOwotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1
cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYSkpOworICAg
IEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1
cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVDYW1lcmEpKTsKIAogICAgIFtkZWxlZ2F0ZSB3YWl0VW50
aWxQcm9tcHRlZF07CiAKICAgICBbd2ViVmlldyBfY2xvc2VdOwogCi0gICAgRVhQRUNUX0VRKFt3
ZWJWaWV3IF9tZWRpYUNhcHR1cmVTdGF0ZV0sIF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZSk7Cisg
ICAgRVhQRUNUX0VRKFt3ZWJWaWV3IF9tZWRpYUNhcHR1cmVTdGF0ZV0sIF9XS01lZGlhQ2FwdHVy
ZVN0YXRlRGVwcmVjYXRlZE5vbmUpOwogfQogCiBURVNUKFdlYktpdDIsIEdldENhcGFiaWxpdGll
cykKQEAgLTI2Myw3ICsyNjMsNyBAQCBURVNUKFdlYktpdDIsIEdldENhcGFiaWxpdGllcykKICAg
ICB3ZWJWaWV3LlVJRGVsZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsKIAogICAgIFt3ZWJWaWV3IGxv
YWRUZXN0UGFnZU5hbWVkOkAiZ2V0VXNlck1lZGlhIl07Ci0gICAgRVhQRUNUX1RSVUUod2FpdFVu
dGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJh
KSk7CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01l
ZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZUNhbWVyYSkpOwogCiAgICAgW2RlbGVnYXRl
IHdhaXRVbnRpbFByb21wdGVkXTsKIApAQCAtMzcyLDcgKzM3Miw3IEBAIFRFU1QoV2ViS2l0Miwg
Q3Jhc2hHUFVQcm9jZXNzV2hpbGVDYXB0dXJpbmcpCiAgICAgd2ViVmlldy5nZXQoKS5VSURlbGVn
YXRlID0gZGVsZWdhdGUuZ2V0KCk7CiAKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpA
ImdldFVzZXJNZWRpYSJdOwotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3
ZWJWaWV3LmdldCgpLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYSkpOworICAgIEVY
UEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LmdldCgpLCBfV0tNZWRpYUNh
cHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVDYW1lcmEpKTsKIAogICAgIGRvbmUgPSBmYWxzZTsK
ICAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiY2FwdHVyZUF1ZGlv
QW5kVmlkZW8odHJ1ZSkiXTsKQEAgLTQ1Miw3ICs0NTIsNyBAQCBURVNUKFdlYktpdDIsIENyYXNo
R1BVUHJvY2Vzc1doaWxlQ2FwdHVyaW5nQW5kQ2FsbGluZykKICAgICB3ZWJWaWV3LmdldCgpLlVJ
RGVsZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsKIAogICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5h
bWVkOkAiZ2V0VXNlck1lZGlhIl07Ci0gICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0
YXRlKHdlYlZpZXcuZ2V0KCksIF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJhKSk7Cisg
ICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcuZ2V0KCksIF9XS01l
ZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZUNhbWVyYSkpOwogCiAgICAgZG9uZSA9IGZh
bHNlOwogICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJjYXB0dXJl
QXVkaW9BbmRWaWRlbyh0cnVlKSJdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCmluZGV4IGY2OTBi
YWNlNzk0NjkwZDhkNGJlMGJlODdjYjU5NzZkNTM3YTNmMmMuLjA5MjQ2OTQ3ZmJkODBmMDIzYzAw
MDMwYTFjNGZiZDI3ZTdjM2UwM2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KQEAgLTM5LDEz
ICszOSwxMyBAQAogc3RhdGljIGJvb2wgaGFzUmVjZWl2ZWRDb3JyZWN0Q2FwdHVyZVN0YXRlID0g
ZmFsc2U7CiAKIEBpbnRlcmZhY2UgTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkVUlEZWxlZ2F0ZSA6
IFVzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRlCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0
ZSlzdGF0ZTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0
dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZClzdGF0ZTsK
IEBlbmQKIAogQGltcGxlbWVudGF0aW9uIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZFVJRGVsZWdh
dGUKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3Rh
dGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlCistICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRp
YUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQpc3RhdGUKIHsKLSAgICBpZiAoc3RhdGUgPT0gX1dLTWVk
aWFDYXB0dXJlU3RhdGVBY3RpdmVNaWNyb3Bob25lKQorICAgIGlmIChzdGF0ZSA9PSBfV0tNZWRp
YUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVNaWNyb3Bob25lKQogICAgICAgICBoYXNSZWNl
aXZlZENvcnJlY3RDYXB0dXJlU3RhdGUgPSB0cnVlOwogfQogQGVuZApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlv
bi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBP
bk5hdmlnYXRpb24ubW0KaW5kZXggYWRiYzk5ZGRjMjgyMTVkYWFkMDNhZTYzY2NiYzgyMWE1YzNh
Nzg0NC4uODljMDQwNGJkNTI3MWMxNjEwZDBmM2Q0NTNiNDAwZjk3Y2E4M2IzZCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2
aWdhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1By
b2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCkBAIC02NDgyLDEzICs2NDgyLDEzIEBAIFRFU1QoUHJv
Y2Vzc1N3YXAsIExvYWRBbHRlcm5hdGl2ZUhUTUwpCiBzdGF0aWMgYm9vbCBpc0NhcHR1cmluZyA9
IGZhbHNlOwogc3RhdGljIGJvb2wgaXNOb3RDYXB0dXJpbmcgPSBmYWxzZTsKIEBpbnRlcmZhY2Ug
R2V0VXNlck1lZGlhVUlEZWxlZ2F0ZSA6IFVzZXJNZWRpYUNhcHR1cmVVSURlbGVnYXRlCi0tICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hh
bmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVy
ZVN0YXRlRGVwcmVjYXRlZClzdGF0ZTsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIEdldFVzZXJN
ZWRpYVVJRGVsZWdhdGUKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVk
aWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlCistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hh
bmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQpc3RhdGUKIHsKLSAgICBpc0NhcHR1
cmluZyA9IHN0YXRlID09IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJhOworICAgIGlz
Q2FwdHVyaW5nID0gc3RhdGUgPT0gX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZl
Q2FtZXJhOwogICAgIGlzTm90Q2FwdHVyaW5nID0gIXN0YXRlOwogfQogQGVuZApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlv
bi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2du
aXRpb24ubW0KaW5kZXggYjhhMDJhYmZmZjRlMzc1YWM3ZDFiMjgzNmIwOGEzZGJlMWE0NzVmNi4u
NmVhNmVhMGRlMjA0YjFiYTU2NjYwZGE4MWNkMzU1OWY2NjA4Y2VlYiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwZWVjaFJlY29nbml0
aW9uLm1tCkBAIC00Nyw3ICs0Nyw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8V0tXZWJWaWV3PiBjcmVh
dGVkV2ViVmlldzsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVz
dFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkZvck9yaWdpbjooV0tTZWN1cml0eU9yaWdpbiAq
KW9yaWdpbiBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wpKWRlY2lzaW9uSGFuZGxlcjsK
IC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdE1lZGlhQ2FwdHVy
ZVBlcm1pc3Npb246KEJPT0wpYXVkaW8gdmlkZW86KEJPT0wpdmlkZW8gZGVjaXNpb25IYW5kbGVy
Oih2b2lkICheKShfV0tQZXJtaXNzaW9uRGVjaXNpb24pKWRlY2lzaW9uSGFuZGxlcjsKIC0gKFdL
V2ViVmlldyAqKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY3JlYXRlV2ViVmlld1dpdGhD
b25maWd1cmF0aW9uOihXS1dlYlZpZXdDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbiBmb3JO
YXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpb25BY3Rpb24gKiluYXZpZ2F0aW9uQWN0aW9uIHdp
bmRvd0ZlYXR1cmVzOihXS1dpbmRvd0ZlYXR1cmVzICopd2luZG93RmVhdHVyZXM7Ci0tICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdl
OihfV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0
YXRlRGVwcmVjYXRlZClzdGF0ZTsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFNwZWVjaFJlY29n
bml0aW9uVUlEZWxlZ2F0ZQpAQCAtNzUsOSArNzUsOSBAQCBzdGF0aWMgUmV0YWluUHRyPFdLV2Vi
Vmlldz4gY3JlYXRlZFdlYlZpZXc7CiAgICAgcmV0dXJuIGNyZWF0ZWRXZWJWaWV3LmdldCgpOwog
fQogCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0
YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZQorLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVk
aWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKXN0YXRlCiB7Ci0gICAgaXNDYXB0dXJpbmcgPSBzdGF0
ZSA9PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZU1pY3JvcGhvbmU7CisgICAgaXNDYXB0dXJp
bmcgPSBzdGF0ZSA9PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVNaWNyb3Bo
b25lOwogICAgIGNhcHR1cmVTdGF0ZURpZENoYW5nZSA9IHRydWU7CiB9CiBAZW5kCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0g
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KaW5k
ZXggY2UzNmZiYTJkNGJiMTUxZjg3OWUzMWExNTQyZDRkMDZlOWUyOWRlNi4uMjAwZmQyMzAzYWQz
OTVjNzY4ODQ0ZjdlNzcxMjEyY2VlODY0YTJjYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQpAQCAtNDg0LDcgKzQ4NCw3IEBA
IHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEFsbG93ZWRNZW51QWN0aW9ucyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgYWN0aW9ucykKIAogYm9vbCBUZXN0Q29udHJvbGxlcjo6aXNEb2luZ01lZGlhQ2Fw
dHVyZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbWFpbldlYlZpZXctPnBsYXRmb3JtVmlldygp
Ll9tZWRpYUNhcHR1cmVTdGF0ZSAhPSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmU7CisgICAgcmV0
dXJuIG1fbWFpbldlYlZpZXctPnBsYXRmb3JtVmlldygpLl9tZWRpYUNhcHR1cmVTdGF0ZSAhPSBf
V0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWROb25lOwogfQogCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkK
</data>
<flag name="commit-queue"
          id="439677"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420962</attachid>
            <date>2021-02-19 06:33:03 -0800</date>
            <delta_ts>2021-02-19 08:23:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222166-20210219153301.patch</filename>
            <type>text/plain</type>
            <size>50902</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzczMjI2NTJmNmY1Njk3
ODEwYzA2ODFiMjM3ZTdmYWQ3Yzk5NTFlMC4uZjMzMzE0NTI3ZWM3MTI3MzMyZDBjNjZlMmM1MTY2
M2M0NDE4ZDVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTAyLTE5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgY2FtZXJhIGFu
ZCBtaWNyb3Bob25lIGNhcHR1cmUgc3RhdGUgY29udHJvbCBXS1dlYlZpZXcgQVBJCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNjYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgdGhlIHBv
c3NpYmlsaXR5IHRvIG11dGUgZWl0aGVyIGNhbWVyYSBhbmQvb3IgbWljcm9waG9uZSBjYXB0dXJl
IGluZGVwZW5kZW50bHkuCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0
ZWRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1Bh
Z2VNdXRlZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnRyYWNrTWF0Y2hlc0tpbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVyZSk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmg6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdG9wTWVkaWFDYXB0dXJl
KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL01lZGlhUHJvZHVj
ZXIuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6
c3RvcE1lZGlhQ2FwdHVyZSk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisKIDIwMjEtMDItMTkg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSBNRURJ
QV9TT1VSQ0UgaW4gSU9TIFNpbXVsYXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyOGJiZjRhMmE3ZDI2OGE3Yjhh
NTkyMmIzZWEzNzQ2MjhhZjY3ZTQxLi5lMWRhNTU1ODc4YTBiYjAxMTllNDBiNWRmOWJmZDM2NzBk
MTMwNTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIxLTAyLTE5ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgY2FtZXJhIGFuZCBtaWNy
b3Bob25lIGNhcHR1cmUgc3RhdGUgY29udHJvbCBXS1dlYlZpZXcgQVBJCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNjYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgS1ZPIHN0YXRlcyBm
b3IgbWljcm9waG9uZSBhbmQgY2FtZXJhIGNhcHR1cmUgc3RhdGVzLgorICAgICAgICBBZGQgdHdv
IEFQSXMgdG8gc2V0IG1pY3JvcGhvbmUgYW5kIGNhbWVyYSBzdGF0ZS4KKyAgICAgICAgVGhpcyBh
bGxvd3MgdG8gbXV0ZS91bm11dGUgb3Igc3RvcCBtaWNyb3Bob25lIG9yIGNhbWVyYSBzdGF0ZS4K
KyAgICAgICAgV2UgbmVlZGVkIHRvIGludHJvZHVjZSBtdXRpbmcgb2YgZWl0aGVyIG1pY3JvcGhv
bmUgb3IgY2FtZXJhIHNpbmNlIHRoaXMgd2FzIHRpZWQgdG9nZXRoZXIgYmVmb3JlIHRoZSBwYXRj
aC4KKyAgICAgICAgVGhlc2UgdHdvIEFQSXMgdGFrZSBhIGNvbXBsZXRpb24gaGFuZGxlci4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dl
YlZpZXcgX2NhbWVyYUNhcHR1cmVTdGF0ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX21pY3Jv
cGhvbmVDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldE1pY3JvcGhvbmVD
YXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBz
ZXRDYW1lcmFDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dL
V2ViVmlldyBfc3RvcE1lZGlhQ2FwdHVyZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX21lZGlh
Q2FwdHVyZVN0YXRlXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLm1tOgorICAgICAgICAoV2Vi
S2l0Ojp0b1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKToKKyAgICAgICAgKFdlYktpdDo6
dG9XS01lZGlhQ2FwdHVyZVN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvUGFnZUNsaWVudEltcGxDb2NvYS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9QYWdl
Q2xpZW50SW1wbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbENvY29h
OjptaWNyb3Bob25lQ2FwdHVyZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50
SW1wbENvY29hOjpjYW1lcmFDYXB0dXJlQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50
OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6bWljcm9waG9uZUNhcHR1cmVD
aGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6Y2FtZXJhQ2FwdHVyZUNoYW5n
ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5Ojp+VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
c3RvcENhcHR1cmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldE11dGVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpzdG9wTWVkaWFDYXB0dXJlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojp1cGRhdGVSZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0
TXV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0b3BNZWRpYUNhcHR1cmUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6bV9sYXN0TmF2aWdhdGlvbldhc0FwcEJvdW5kKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6c2V0TXV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzdG9wTWVkaWFDYXB0
dXJlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDIxLTAyLTE5ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgV0tXZWJW
aWV3IGdldFVzZXJNZWRpYSBkZWxlZ2F0ZSB0byBsYXRlc3QgcHJvcG9zYWwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3Bw
CmluZGV4IGRhOTJlY2FmNTcxNDZhODFjMjQzYjljOGY0YTBjMTZiNTQ2NGFhNmUuLjk5MzhjMDkw
NTgxNzFhNTgxYzZmZjgyZDY4OTBiY2Q5NTc1YzA0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtNDc5
LDEzICs0NzksMTMgQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVDYXB0dXJlQWNjb3Jk
aW5nVG9NdXRlZFN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIAogICAgIGF1dG8qIGFjdGl2ZUF1
ZGlvU291cmNlID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9D
YXB0dXJlRmFjdG9yeSgpLmFjdGl2ZVNvdXJjZSgpOwogICAgIGlmIChhY3RpdmVBdWRpb1NvdXJj
ZSAmJiBpc1NvdXJjZUNhcHR1cmluZ0ZvclRyYWNrSW5Eb2N1bWVudCgqYWN0aXZlQXVkaW9Tb3Vy
Y2UsIGRvY3VtZW50KSkgewotICAgICAgICBib29sIHBhZ2VNdXRlZCA9IHBhZ2UtPm11dGVkU3Rh
dGUoKSAmIE1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRlZDsKKyAgICAg
ICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyOjpB
dWRpb0NhcHR1cmVJc011dGVkOwogICAgICAgICBhY3RpdmVBdWRpb1NvdXJjZS0+c2V0TXV0ZWQo
cGFnZU11dGVkIHx8IChkb2N1bWVudC5oaWRkZW4oKSAmJiBkb2N1bWVudC5zZXR0aW5ncygpLmlu
dGVycnVwdEF1ZGlvT25QYWdlVmlzaWJpbGl0eUNoYW5nZUVuYWJsZWQoKSkpOwogICAgIH0KIAog
ICAgIGF1dG8qIGFjdGl2ZVZpZGVvU291cmNlID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmFjdGl2ZVNvdXJjZSgpOwogICAgIGlm
IChhY3RpdmVWaWRlb1NvdXJjZSAmJiBpc1NvdXJjZUNhcHR1cmluZ0ZvclRyYWNrSW5Eb2N1bWVu
dCgqYWN0aXZlVmlkZW9Tb3VyY2UsIGRvY3VtZW50KSkgewotICAgICAgICBib29sIHBhZ2VNdXRl
ZCA9IHBhZ2UtPm11dGVkU3RhdGUoKSAmIE1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0
dXJlSXNNdXRlZDsKKyAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkg
JiBNZWRpYVByb2R1Y2VyOjpWaWRlb0NhcHR1cmVJc011dGVkOwogICAgICAgICBhY3RpdmVWaWRl
b1NvdXJjZS0+c2V0TXV0ZWQocGFnZU11dGVkIHx8IGRvY3VtZW50LmhpZGRlbigpKTsKICAgICB9
CiAjZWxzZQpAQCAtNTA1LDggKzUwNSwxMCBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0
ZVRvUGFnZU11dGVkU3RhdGUoKQogCiAgICAgc3dpdGNoIChzb3VyY2UoKS5kZXZpY2VUeXBlKCkp
IHsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CisgICAg
ICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQocGFnZS0+bXV0ZWRTdGF0ZSgpICYgTWVkaWFQcm9kdWNl
cjo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgotICAgICAgICBtX3ByaXZhdGUtPnNldE11dGVk
KHBhZ2UtPm11dGVkU3RhdGUoKSAmIE1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJl
SXNNdXRlZCk7CisgICAgICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQocGFnZS0+bXV0ZWRTdGF0ZSgp
ICYgTWVkaWFQcm9kdWNlcjo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgogICAgIGNhc2UgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgpAQCAtNTE5LDExICs1MjEsMjMgQEAgdm9p
ZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCkKICAgICB9CiB9CiAK
LXZvaWQgTWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVyZShEb2N1bWVudCYgZG9jdW1lbnQpCitz
dGF0aWMgaW5saW5lIGJvb2wgdHJhY2tNYXRjaGVzS2luZChSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlIHR5cGUsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCkKK3sKKyAgICBz
d2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6
OkF1ZGlvOgorICAgICAgICByZXR1cm4gdHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpBdWRpbzsKKyAgICBjYXNlIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlv
VmlkZW86CisgICAgICAgIHJldHVybiB0eXBlICE9IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6
Ok5vbmU7CisgICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoK
KyAgICAgICAgcmV0dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW87
CisgICAgfQorfQorCit2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmVuZENhcHR1cmUoRG9jdW1lbnQm
IGRvY3VtZW50LCBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGtpbmQpCiB7CiAgICAg
Ym9vbCBkaWRFbmRDYXB0dXJlID0gZmFsc2U7CiAgICAgZm9yIChhdXRvKiBjYXB0dXJlVHJhY2sg
OiBhbGxDYXB0dXJlVHJhY2tzKCkpIHsKLSAgICAgICAgaWYgKGNhcHR1cmVUcmFjay0+ZG9jdW1l
bnQoKSAhPSAmZG9jdW1lbnQpCisgICAgICAgIGlmIChjYXB0dXJlVHJhY2stPmRvY3VtZW50KCkg
IT0gJmRvY3VtZW50IHx8ICF0cmFja01hdGNoZXNLaW5kKGNhcHR1cmVUcmFjay0+cHJpdmF0ZVRy
YWNrKCkudHlwZSgpLCBraW5kKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBjYXB0
dXJlVHJhY2stPnN0b3BUcmFjayhNZWRpYVN0cmVhbVRyYWNrOjpTdG9wTW9kZTo6UG9zdEV2ZW50
KTsKICAgICAgICAgZGlkRW5kQ2FwdHVyZSA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCmluZGV4IGYzODBlNmQw
NTdmZjU2NjIxNjBmMzE3Zjg3NzliNjBmZmYyNjgzNmMuLjU5MmFiMmJiMTU4ZTdkMzU1MjBiYjVl
NGVjNGIwN2ZkMDE5MjE0Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFtVHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiwgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmKTsKICAgICB2aXJ0dWFsIH5N
ZWRpYVN0cmVhbVRyYWNrKCk7CiAKLSAgICBzdGF0aWMgdm9pZCBlbmRDYXB0dXJlKERvY3VtZW50
Jik7CisgICAgc3RhdGljIHZvaWQgZW5kQ2FwdHVyZShEb2N1bWVudCYsIE1lZGlhUHJvZHVjZXI6
Ok1lZGlhQ2FwdHVyZUtpbmQpOwogCiAgICAgc3RhdGljIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBjYXB0dXJlU3RhdGUoRG9jdW1lbnQmKTsKICAgICBzdGF0aWMgdm9pZCB1cGRhdGVD
YXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRlKERvY3VtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCBhZjkwZWU2YWE5MjQyYmFiMDUyM2EwMDU1MDE4NTBhMmM3MWUzMTY4Li43YmU2
NjA2MDZhM2JlMDRlMmQ3MmNmZWE2ZGNjZjk3MDllNDc1OGY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKQEAgLTgwNDUsOSArODA0NSw5IEBAIHZvaWQgRG9jdW1lbnQ6Om9yaWVudGF0aW9uQ2hh
bmdlZChpbnQgb3JpZW50YXRpb24pCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi12b2lk
IERvY3VtZW50OjpzdG9wTWVkaWFDYXB0dXJlKCkKK3ZvaWQgRG9jdW1lbnQ6OnN0b3BNZWRpYUNh
cHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCBraW5kKQogewotICAgIE1lZGlh
U3RyZWFtVHJhY2s6OmVuZENhcHR1cmUoKnRoaXMpOworICAgIE1lZGlhU3RyZWFtVHJhY2s6OmVu
ZENhcHR1cmUoKnRoaXMsIGtpbmQpOwogfQogCiB2b2lkIERvY3VtZW50OjptZWRpYVN0cmVhbUNh
cHR1cmVTdGF0ZUNoYW5nZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAzYWNkZmQ3M2E3MTkw
ZTEyNzc4MTU0NWM3MTQ3MjJmMmFlZGM2MmI1Li43ZDdlYzkzNjg2ODNiNzk5ZDhjYTM0ODc2Yzc3
NGY3OGRmMDZhMGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTQzNyw3ICsxNDM3LDcgQEAg
cHVibGljOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgdm9pZCBzZXRIYXNDYXB0dXJl
TWVkaWFTdHJlYW1UcmFjaygpIHsgbV9oYXNIYWRDYXB0dXJlTWVkaWFTdHJlYW1UcmFjayA9IHRy
dWU7IH0KICAgICBib29sIGhhc0hhZENhcHR1cmVNZWRpYVN0cmVhbVRyYWNrKCkgY29uc3QgeyBy
ZXR1cm4gbV9oYXNIYWRDYXB0dXJlTWVkaWFTdHJlYW1UcmFjazsgfQotICAgIHZvaWQgc3RvcE1l
ZGlhQ2FwdHVyZSgpOworICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpN
ZWRpYUNhcHR1cmVLaW5kKTsKICAgICB2b2lkIG1lZGlhU3RyZWFtQ2FwdHVyZVN0YXRlQ2hhbmdl
ZCgpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9k
dWNlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKaW5kZXggOGIxZjAx
YzUxZWU3NjhlZmQ2MmE2N2QwODY2N2VhZTgwMWQ2Njg5My4uYjE3ZTY5ZjIxMDZhYTljZjI4ZmE0
ZDUyNjNmOTUyYTc3ZmM4NWEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRp
YVByb2R1Y2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKQEAg
LTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0
cy5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTY4LDEzICs2OSwyMSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIE1lZGlhU3RhdGVGbGFncyBt
ZWRpYVN0YXRlKCkgY29uc3QgPSAwOwogCisgICAgZW51bSBjbGFzcyBNZWRpYUNhcHR1cmVLaW5k
IHsKKyAgICAgICAgQXVkaW8sCisgICAgICAgIFZpZGVvLAorICAgICAgICBBdWRpb1ZpZGVvCisg
ICAgfTsKKwogICAgIGVudW0gTXV0ZWRTdGF0ZSB7CiAgICAgICAgIE5vbmVNdXRlZCA9IDAsCiAg
ICAgICAgIEF1ZGlvSXNNdXRlZCA9IDEgPDwgMCwKLSAgICAgICAgQXVkaW9BbmRWaWRlb0NhcHR1
cmVJc011dGVkID0gMSA8PCAxLAotICAgICAgICBTY3JlZW5DYXB0dXJlSXNNdXRlZCA9IDEgPDwg
MiwKKyAgICAgICAgQXVkaW9DYXB0dXJlSXNNdXRlZCA9IDEgPDwgMSwKKyAgICAgICAgVmlkZW9D
YXB0dXJlSXNNdXRlZCA9IDEgPDwgMiwKKyAgICAgICAgU2NyZWVuQ2FwdHVyZUlzTXV0ZWQgPSAx
IDw8IDMsCiAKLSAgICAgICAgTWVkaWFTdHJlYW1DYXB0dXJlSXNNdXRlZCA9IEF1ZGlvQW5kVmlk
ZW9DYXB0dXJlSXNNdXRlZCB8IFNjcmVlbkNhcHR1cmVJc011dGVkLAorICAgICAgICBBdWRpb0Fu
ZFZpZGVvQ2FwdHVyZUlzTXV0ZWQgPSBBdWRpb0NhcHR1cmVJc011dGVkIHwgVmlkZW9DYXB0dXJl
SXNNdXRlZCwKKyAgICAgICAgTWVkaWFTdHJlYW1DYXB0dXJlSXNNdXRlZCA9IEF1ZGlvQ2FwdHVy
ZUlzTXV0ZWQgfCBWaWRlb0NhcHR1cmVJc011dGVkIHwgU2NyZWVuQ2FwdHVyZUlzTXV0ZWQsCiAg
ICAgfTsKICAgICB0eXBlZGVmIHVuc2lnbmVkIE11dGVkU3RhdGVGbGFnczsKIApAQCAtODUsMyAr
OTQsMTYgQEAgcHJvdGVjdGVkOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1l
c3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZh
bHVlczwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCwK
KyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW8s
CisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVv
LAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRp
b1ZpZGVvCisgICAgPjsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDI0NTU3YTM1N2E1
MmNiMjgxZTc0NjQ3YzFkZjk2NTcxM2M0ZmQxMTQuLjE5ZWUwOTY3OTMwYjk5YTI2YTA2YWI0YjEy
MDQ2YjFhNTE0OGNhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjExNCwxMSArMjExNCwxMiBA
QCB2b2lkIFBhZ2U6OnNldE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBtdXRl
ZCkKICAgICB9KTsKIH0KIAotdm9pZCBQYWdlOjpzdG9wTWVkaWFDYXB0dXJlKCkKK3ZvaWQgUGFn
ZTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGtpbmQp
CiB7CisgICAgVU5VU0VEX1BBUkFNKGtpbmQpOwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0g
ICAgZm9yRWFjaERvY3VtZW50KFtdIChEb2N1bWVudCYgZG9jdW1lbnQpIHsKLSAgICAgICAgZG9j
dW1lbnQuc3RvcE1lZGlhQ2FwdHVyZSgpOworICAgIGZvckVhY2hEb2N1bWVudChba2luZF0gKERv
Y3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBkb2N1bWVudC5zdG9wTWVkaWFDYXB0dXJlKGtp
bmQpOwogICAgIH0pOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDE1MmY0OTI0NDRlMTkz
MDRjODI2YmUyZjMxZjhhZDIyMjU0OTA5OWQuLmQwN2VkZWY3ZWE2ZGU2MDlhYjFmZGU3NWEyMmI1
YTUwNTE3OWIxOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC02OTUsNyArNjk1LDggQEAgcHVibGljOgog
ICAgIHZvaWQgc2NoZWR1bGVQbGF5YmFja0NvbnRyb2xzTWFuYWdlclVwZGF0ZSgpOwogICAgIHZv
aWQgcGxheWJhY2tDb250cm9sc01lZGlhRW5naW5lQ2hhbmdlZCgpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0TXV0ZWQoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoKTsKKworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5k
KTsKIAogICAgIE1lZGlhU2Vzc2lvbkdyb3VwSWRlbnRpZmllciBtZWRpYVNlc3Npb25Hcm91cElk
ZW50aWZpZXIoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIG1lZGlhUGxheWJhY2tF
eGlzdHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IDNhMWQzZmIwN2RlM2FlMTg4MzRlMmJhOTVhYzU1
ZDExNjM5MTU2ODkuLmFmZDZhYjRkNGIyOWE3YzkwMDUxYjE2NGY0MTMwNmY3ZjQ5ODZhZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxl
Z2F0ZVByaXZhdGUuaApAQCAtMTI2LDcgKzEyNiw3IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAt
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGluY2x1ZGVTZW5zaXRpdmVNZWRp
YURldmljZURldGFpbHM6KHZvaWQgKF4pKEJPT0wgaW5jbHVkZVNlbnNpdGl2ZURldGFpbHMpKWRl
Y2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsK
IC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1
dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNV
UkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRs
ZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJs
IG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJ
bnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5n
ICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEyLjMpLCBpb3MoMTAuMykpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3Rh
dGUpc3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hh
bmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQpc3RhdGUgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAtIChXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbilf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkcmFnRGVzdGluYXRpb25BY3Rpb25NYXNrRm9y
RHJhZ2dpbmdJbmZvOihpZClkcmFnZ2luZ0luZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MyksIGlvcygxMS4wKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNy
ZWF0ZVdlYlZpZXdXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqKWNv
bmZpZ3VyYXRpb24gZm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2
aWdhdGlvbkFjdGlvbiB3aW5kb3dGZWF0dXJlczooV0tXaW5kb3dGZWF0dXJlcyAqKXdpbmRvd0Zl
YXR1cmVzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXS1dlYlZpZXcgKndlYlZpZXcpKWNv
bXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkp
OwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0R2VvbG9jYXRp
b25QZXJtaXNzaW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgZGVjaXNpb25IYW5kbGVy
Oih2b2lkICheKShCT09MIGFsbG93ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNjMwMjc4MjQzYzMwZTljNTIwNTIyZDZjNmU2
ODIwZTQyZWE3YzljMS4uMjBkY2RmNzZmODZhMmUwMTdhMTAwNzdhN2MxZTk1MDI5MjhiZGI0ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBA
IC0xNzEwLDYgKzE3MTAsNjIgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElP
TihGT1JXQVJEX0FDVElPTl9UT19XS0NPTlRFTlRWSUVXKQogICAgIHJldHVybiBfcGFnZS0+cGFn
ZUxvYWRTdGF0ZSgpLmhhc05lZ290aWF0ZWRMZWdhY3lUTFMoKTsKIH0KIAorLSAoX1dLTWVkaWFD
YXB0dXJlU3RhdGUpX2NhbWVyYUNhcHR1cmVTdGF0ZQoreworICAgIGF1dG8gc3RhdGUgPSBfcGFn
ZS0+cmVwb3J0ZWRNZWRpYVN0YXRlKCk7CisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQorICAgICAgICByZXR1cm4gX1dL
TWVkaWFDYXB0dXJlU3RhdGVBY3RpdmU7CisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgICAgIHJldHVybiBfV0tN
ZWRpYUNhcHR1cmVTdGF0ZU11dGVkOworICAgIHJldHVybiBfV0tNZWRpYUNhcHR1cmVTdGF0ZU5v
bmU7Cit9CisKKy0gKF9XS01lZGlhQ2FwdHVyZVN0YXRlKV9taWNyb3Bob25lQ2FwdHVyZVN0YXRl
Cit7CisgICAgYXV0byBzdGF0ZSA9IF9wYWdlLT5yZXBvcnRlZE1lZGlhU3RhdGUoKTsKKyAgICBp
ZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVE
ZXZpY2UpCisgICAgICAgIHJldHVybiBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZTsKKyAgICBp
ZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURl
dmljZSkKKyAgICAgICAgcmV0dXJuIF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWQ7CisgICAgcmV0
dXJuIF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZTsKK30KKworLSAodm9pZClzZXRNaWNyb3Bob25l
Q2FwdHVyZVN0YXRlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZSBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBpZiAoc3RhdGUgPT0g
X1dLTWVkaWFDYXB0dXJlU3RhdGVOb25lKSB7CisgICAgICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0
dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvLCBbY29t
cGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CisgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBhdXRvIG11dGVkU3RhdGUgPSBfcGFnZS0+bXV0ZWRTdGF0ZUZsYWdzKCk7
CisgICAgaWYgKHN0YXRlID09IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlICYmIG11dGVkU3Rh
dGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRpb0NhcHR1cmVJc011dGVkKQorICAgICAg
ICBtdXRlZFN0YXRlIF49IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkF1ZGlvQ2FwdHVyZUlzTXV0
ZWQ7CisgICAgZWxzZSBpZiAoc3RhdGUgPT0gX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZCkKKyAg
ICAgICAgbXV0ZWRTdGF0ZSA9IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkF1ZGlvQ2FwdHVyZUlz
TXV0ZWQ7CisgICAgX3BhZ2UtPnNldE11dGVkKG11dGVkU3RhdGUsIFtjb21wbGV0aW9uSGFuZGxl
ciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKKyAgICB9KTsKK30KKworLSAodm9pZClzZXRDYW1lcmFDYXB0dXJlU3RhdGU6
KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2
b2lkKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIGlmIChzdGF0ZSA9PSBfV0tNZWRpYUNhcHR1
cmVTdGF0ZU5vbmUpIHsKKyAgICAgICAgX3BhZ2UtPnN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW8sIFtjb21wbGV0aW9uSGFuZGxl
ciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKCk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IGF1dG8gbXV0ZWRTdGF0ZSA9IF9wYWdlLT5tdXRlZFN0YXRlRmxhZ3MoKTsKKyAgICBpZiAoc3Rh
dGUgPT0gX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmUgJiYgbXV0ZWRTdGF0ZSAmIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpCisgICAgICAgIG11dGVkU3RhdGUg
Xj0gV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6VmlkZW9DYXB0dXJlSXNNdXRlZDsKKyAgICBlbHNl
IGlmIChzdGF0ZSA9PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkKQorICAgICAgICBtdXRlZFN0
YXRlID0gV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6VmlkZW9DYXB0dXJlSXNNdXRlZDsKKyAgICBf
cGFnZS0+c2V0TXV0ZWQobXV0ZWRTdGF0ZSwgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2Nr
UHRyKGNvbXBsZXRpb25IYW5kbGVyKV0geworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwor
ICAgIH0pOworfQorCiAtICh2b2lkKV9mcmFtZXM6KHZvaWQgKF4pKF9XS0ZyYW1lVHJlZU5vZGUg
KikpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBfcGFnZS0+Z2V0QWxsRnJhbWVzKFtjb21wbGV0
aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlciksIHBhZ2UgPSBtYWtl
UmVmKCpfcGFnZS5nZXQoKSldIChXZWJLaXQ6OkZyYW1lVHJlZU5vZGVEYXRhJiYgZGF0YSkgewpA
QCAtMjAyMCw3ICsyMDc2LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0FycmF5PiB3a1RleHRNYW5p
cHVsYXRpb25FcnJvcnMoTlNBcnJheTxfV0tUZXh0TWFuaXB1bGF0aW9uSXQKIAogLSAodm9pZClf
c3RvcE1lZGlhQ2FwdHVyZQogewotICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKCk7CisgICAg
X3BhZ2UtPnN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlS2luZDo6QXVkaW9WaWRlbyk7CiB9CiAKIC0gKHZvaWQpX3N0b3BBbGxNZWRpYVBsYXliYWNr
CkBAIC0zMTgwLDkgKzMyMzYsOSBAQCBzdGF0aWMgaW5saW5lIE9wdGlvblNldDxXZWJLaXQ6OkZp
bmRPcHRpb25zPiB0b0ZpbmRPcHRpb25zKF9XS0ZpbmRPcHRpb25zIHdrRmluZAogI2VuZGlmCiB9
CiAKLS0gKF9XS01lZGlhQ2FwdHVyZVN0YXRlKV9tZWRpYUNhcHR1cmVTdGF0ZQorLSAoX1dLTWVk
aWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKV9tZWRpYUNhcHR1cmVTdGF0ZQogewotICAgIHJldHVy
biBXZWJLaXQ6OnRvV0tNZWRpYUNhcHR1cmVTdGF0ZShfcGFnZS0+cmVwb3J0ZWRNZWRpYVN0YXRl
KCkpOworICAgIHJldHVybiBXZWJLaXQ6OnRvV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQo
X3BhZ2UtPnJlcG9ydGVkTWVkaWFTdGF0ZSgpKTsKIH0KIAogLSAodm9pZClfc2V0TWVkaWFDYXB0
dXJlRW5hYmxlZDooQk9PTCllbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCBiNjI4MjhhODA5NDY5MDAyNDU2
MTIyODJiYTdiNTkzOWEwZWRhNmViLi42YzljNTJiNDM4MzJmYzBlNjhhMGNhZTkxNzQxZjIyMTU4
OGI5NDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmgKQEAgLTQwLDEzICs0MCwxOSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJ
bnRlZ2VyLCBfV0tQYWdpbmF0aW9uTW9kZSkgewogICAgIF9XS1BhZ2luYXRpb25Nb2RlQm90dG9t
VG9Ub3AsCiB9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7CiAKK3R5
cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0
ZWQpIHsKKyAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWROb25lID0gMCwKKyAgICBf
V0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVNaWNyb3Bob25lID0gMSA8PCAwLAor
ICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZUNhbWVyYSA9IDEgPDwgMSwK
KyAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRNdXRlZE1pY3JvcGhvbmUgPSAxIDw8
IDIsCisgICAgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTXV0ZWRDYW1lcmEgPSAxIDw8
IDMsCit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOworCiB0eXBl
ZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLTWVkaWFDYXB0dXJlU3RhdGUpIHsKICAgICBf
V0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmUgPSAwLAotICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0
aXZlTWljcm9waG9uZSA9IDEgPDwgMCwKLSAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNh
bWVyYSA9IDEgPDwgMSwKLSAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkTWljcm9waG9uZSA9
IDEgPDwgMiwKLSAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkQ2FtZXJhID0gMSA8PCAzLAot
fSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKKyAgICBfV0tNZWRp
YUNhcHR1cmVTdGF0ZUFjdGl2ZSA9IDEgPDwgMCwKKyAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11
dGVkID0gMSA8PCAxLAorfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwogCiB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLTWVkaWFN
dXRlZFN0YXRlKSB7CiAgICAgX1dLTWVkaWFOb25lTXV0ZWQgPSAwLApAQCAtMTg3LDYgKzE5Mywx
NiBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIEJPT0wgX25lZ290aWF0ZWRMZWdhY3lUTFMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NS40KSwgaW9zKDEzLjQpKTsKIAorLyohIEBhYnN0cmFjdCBUaGUgc3RhdGUgb2YgbWVkaWEgY2Fw
dHVyZSBvbiBhIHdlYiBwYWdlLgorIEBkaXNjdXNzaW9uIEBsaW5rIFdLV2ViVmlldyBAL2xpbmsg
aXMga2V5LXZhbHVlIG9ic2VydmluZyAoS1ZPKSBjb21wbGlhbnQKKyBmb3IgdGhpcyBwcm9wZXJ0
eS4KKyAqLworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tNZWRpYUNhcHR1cmVT
dGF0ZSBfY2FtZXJhQ2FwdHVyZVN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9X
S01lZGlhQ2FwdHVyZVN0YXRlIF9taWNyb3Bob25lQ2FwdHVyZVN0YXRlIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKKy0gKHZvaWQpc2V0TWlj
cm9waG9uZUNhcHR1cmVTdGF0ZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUgY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKXNldENhbWVy
YUNhcHR1cmVTdGF0ZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUgY29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIC0gKHZvaWQpX2ZyYW1lczoodm9p
ZCAoXikoX1dLRnJhbWVUcmVlTm9kZSAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCiAvLyBGSVhNRTogUmVtb3ZlIHRoZXNlIG9u
Y2Ugbm9ib2R5IGlzIHVzaW5nIHRoZW0uCkBAIC0zMzgsNyArMzU0LDcgQEAgZm9yIHRoaXMgcHJv
cGVydHkuCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRGdWxsc2NyZWVuRGVsZWdh
dGU6KSBpZDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+IF9mdWxsc2NyZWVuRGVsZWdhdGUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIEJPT0wgX2lzSW5GdWxsc2NyZWVuIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTIuMykpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS01lZGlhQ2Fw
dHVyZVN0YXRlIF9tZWRpYUNhcHR1cmVTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1
KSwgaW9zKDEzLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLTWVkaWFD
YXB0dXJlU3RhdGVEZXByZWNhdGVkIF9tZWRpYUNhcHR1cmVTdGF0ZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgX1dLTWVkaWFNdXRlZFN0YXRlIF9tZWRpYU11dGVkU3RhdGUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogLSAodm9pZClfc2V0UGFnZU11dGVkOihfV0tNZWRp
YU11dGVkU3RhdGUpbXV0ZWRTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9z
KDExLjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlh
VXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGll
cy5oCmluZGV4IGUxYTVkOTQ1NWQ3MjM5NjgyMzc3YjYwNGQ0NTc1M2RlODA2YTJkMTEuLjc0YTNl
NjVkZGZkZWM0NGM2YmE3YWRlZTU1YTA4OTEzOWRiNWU0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMuaApAQCAtMzIsNyArMzIsNyBAQAogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAotX1dLTWVkaWFDYXB0dXJlU3RhdGUgdG9XS01lZGlhQ2FwdHVy
ZVN0YXRlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CitfV0tNZWRp
YUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQgdG9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZChX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwogX1dLTWVkaWFNdXRlZFN0
YXRlIHRvV0tNZWRpYU11dGVkU3RhdGUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0
ZUZsYWdzKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLm1tCmluZGV4IGRlZWI3NWEyNjU5YTNiY2Q1M2Vl
MTM1NmJlYjIyYTc5ZDA5Zjc0M2QuLjQ0YTgxZDQ4YmE3YzEyNGYyYTM4M2JmMzgwNGI0OTg3YzA1
YWUyZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRp
bGl0aWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0
aWVzLm1tCkBAIC0yOCwxNyArMjgsMTcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLV9XS01l
ZGlhQ2FwdHVyZVN0YXRlIHRvV0tNZWRpYUNhcHR1cmVTdGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCitfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0
ZWQgdG9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7Ci0gICAgX1dLTWVkaWFDYXB0dXJlU3RhdGUgbWVk
aWFDYXB0dXJlU3RhdGUgPSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmU7CisgICAgX1dLTWVkaWFD
YXB0dXJlU3RhdGVEZXByZWNhdGVkIG1lZGlhQ2FwdHVyZVN0YXRlID0gX1dLTWVkaWFDYXB0dXJl
U3RhdGVEZXByZWNhdGVkTm9uZTsKICAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIG1lZGlhQ2FwdHVyZVN0
YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWljcm9waG9uZTsKKyAgICAgICAgbWVk
aWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlTWlj
cm9waG9uZTsKICAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3Rp
dmVWaWRlb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01l
ZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJhOworICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8
PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVDYW1lcmE7CiAgICAgaWYgKHN0
YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2Up
Ci0gICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRN
aWNyb3Bob25lOworICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVT
dGF0ZURlcHJlY2F0ZWRNdXRlZE1pY3JvcGhvbmU7CiAgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIG1lZGlh
Q2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRDYW1lcmE7CisgICAgICAg
IG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE11dGVk
Q2FtZXJhOwogCiAgICAgcmV0dXJuIG1lZGlhQ2FwdHVyZVN0YXRlOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5oCmluZGV4IGMx
NGY3N2E4NmFlNTAzM2E4ZTNjZGE1NWMwOTdhZWZmMzdhOWZlZjUuLjMxODlmYTAyOGM1NTkyMTJl
NTk4NjUwYTA3NzNlNjE1NTlhN2Y4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLmgKQEAgLTc5LDYgKzc5LDkgQEAgcHVibGlj
OgogICAgIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoY29uc3QgV2ViQ29yZTo6QXBwSGlnaGxpZ2h0
JikgZmluYWw7CiAjZW5kaWYKIAorICAgIHZvaWQgbWljcm9waG9uZUNhcHR1cmVDaGFuZ2VkKCkg
ZmluYWw7CisgICAgdm9pZCBjYW1lcmFDYXB0dXJlQ2hhbmdlZCgpIGZpbmFsOworCiBwcm90ZWN0
ZWQ6CiAgICAgV2Vha09iakNQdHI8V0tXZWJWaWV3PiBtX3dlYlZpZXc7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcj4gbV9hbHRlcm5hdGl2
ZVRleHRVSUNvbnRyb2xsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbQppbmRleCBkYmYzNDM2MGIyZTFmMjliYTBkNTA3Yjgz
MDMxMGQyZDQwMzI0OWIzLi4zNzg4M2ZiN2E5MzM2YmEyOTY2ODg3ZmY5NjMyNjQ3MjQ4MDk3MWMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1w
bENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJ
bXBsQ29jb2EubW0KQEAgLTE1MCw1ICsxNTAsMTUgQEAgTlNUZXh0QWx0ZXJuYXRpdmVzICpQYWdl
Q2xpZW50SW1wbENvY29hOjpwbGF0Zm9ybURpY3RhdGlvbkFsdGVybmF0aXZlcyhXZWJDb3JlOjoK
IHsKICAgICByZXR1cm4gbV9hbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXItPmFsdGVybmF0aXZl
c0ZvckNvbnRleHQoZGljdGF0aW9uQ29udGV4dCk7CiB9Ci0gICAgCisKK3ZvaWQgUGFnZUNsaWVu
dEltcGxDb2NvYTo6bWljcm9waG9uZUNhcHR1cmVDaGFuZ2VkKCkKK3sKKyAgICBbbV93ZWJWaWV3
IGRpZENoYW5nZVZhbHVlRm9yS2V5OkAiX21pY3JvcGhvbmVDYXB0dXJlU3RhdGUiXTsKK30KKwor
dm9pZCBQYWdlQ2xpZW50SW1wbENvY29hOjpjYW1lcmFDYXB0dXJlQ2hhbmdlZCgpCit7CisgICAg
W21fd2ViVmlldyBkaWRDaGFuZ2VWYWx1ZUZvcktleTpAIl9jYW1lcmFDYXB0dXJlU3RhdGUiXTsK
K30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxl
Z2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5k
ZXggZjA3ODk5NGMwMjUzYjkyZTU0OGMyODM4NzlkODhlNDQzMDZmZmY3Ni4uMmM1Yzc2YmMzMjgz
Y2M1ODU5ZjBjZmZmNTAyYTZjYzlmM2EwMGJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0xMTgzLDcgKzExODMsNyBAQCB2b2lkIFVJRGVsZWdh
dGU6OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZQogICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS0+bV9kZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld01lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKQogICAgICAgICByZXR1
cm47CiAKLSAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzp3
ZWJWaWV3LmdldCgpLmdldCgpIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOnRvV0tNZWRpYUNh
cHR1cmVTdGF0ZShzdGF0ZSldOworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVn
YXRlIF93ZWJWaWV3OndlYlZpZXcuZ2V0KCkuZ2V0KCkgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFu
Z2U6dG9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZChzdGF0ZSldOwogfQogCiB2b2lkIFVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdl
YlBhZ2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBzZWN1cml0eU9yaWdp
biwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkLCBGdW5j
dGlvbjx2b2lkICh1bnNpZ25lZCBsb25nIGxvbmcpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IGM4ODQxOTlmNGI2OTNjMmJjZGE3ZjUz
NzI5Y2RjYTNiMzQyNmYxMmQuLjgzYzZhM2JlYjFhMzI3ZWJjNDZjYzFlYTM0NDUyZGExZjZkZDA4
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTUzMSw2ICs1MzEsOSBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKCkg
PSAwOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgbWljcm9waG9uZUNhcHR1cmVDaGFuZ2Vk
KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGNhbWVyYUNhcHR1cmVDaGFuZ2VkKCkgeyB9CisKICAg
ICB2aXJ0dWFsIHZvaWQgdmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2UoKSB7IH0KIAogI2lm
IEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1NfRkFNSUxZ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGI2N2UxMmZlNjc3ZmVl
MWE1YWM3NWEwYWMwYThmMWUwMjJhYjQwYzguLjhmZTY5NWI2NmJhMzMxNmRlYjU2YWIxODk3ZjY4
NzFlZWJiOGM1MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTEw
MSw3ICsxMDEsNyBAQCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoVwogCiBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6flVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5KCkKIHsKLSAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U3RvcE1lZGlh
Q2FwdHVyZSB7IH0pOworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTdG9wTWVk
aWFDYXB0dXJlIHsgTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW9WaWRlbyB9
KTsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2Vy
OjpzaW5nbGV0b24oKS5yZXZva2VTYW5kYm94RXh0ZW5zaW9uc0lmTmVlZGVkKHBhZ2UoKS5wcm9j
ZXNzKCkpOwogICAgIHByb3hpZXMoKS5yZW1vdmUodGhpcyk7CkBAIC0xMzUsNyArMTM1LDcgQEAg
dm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c3RvcENhcHR1cmUo
KQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAgICAgaW52YWxpZGF0ZVBlbmRp
bmdSZXF1ZXN0cygpOwotICAgIG1fcGFnZS5zdG9wTWVkaWFDYXB0dXJlKCk7CisgICAgbV9wYWdl
LnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW9W
aWRlbyk7CiB9CiAKIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAppbmRleCBlNDY4ODA4OTVhOTMzNWY5ZDllZjI0MmJjMWY4ZTY3OGJmMjc1ZDc5Li4x
NzY2ZmY0Yzk2MDMxMzk4NDJlMjJlOTYxMWFlYjExZTZmZTFlYjUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTU5NjYsMTIgKzU5NjYsMTIgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnNldE1lZGlhVm9sdW1lKGZsb2F0IHZvbHVtZSkKICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpTZXRNZWRpYVZvbHVtZSh2b2x1bWUpKTsKIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OnNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBz
dGF0ZSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBtX211dGVkU3RhdGUgPSBzdGF0ZTsKIAogICAgIGlmICgh
aGFzUnVubmluZ1Byb2Nlc3MoKSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoKTsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgYm9vbCBo
YXNNdXRlZENhcHR1cmVTdHJlYW1zID0gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TXV0ZWRDYXB0dXJlTWFzazsKQEAgLTU5ODEsNyArNTk4MSw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mg
c3RhdGUpCiAKICAgICBtX3Byb2Nlc3MtPnBhZ2VNdXRlZFN0YXRlQ2hhbmdlZChtX3dlYlBhZ2VJ
RCwgc3RhdGUpOwogCi0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0TXV0ZWQoc3RhdGUp
KTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlNldE11dGVkKHN0
YXRlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgIGFjdGl2aXR5U3RhdGVEaWRD
aGFuZ2UoeyBBY3Rpdml0eVN0YXRlOjpJc0F1ZGlibGUsIEFjdGl2aXR5U3RhdGU6OklzQ2FwdHVy
aW5nTWVkaWEgfSk7CiB9CiAKQEAgLTU5OTcsMTUgKzU5OTcsMTUgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnNldE1lZGlhQ2FwdHVyZUVuYWJsZWQoYm9vbCBlbmFibGVkKQogI2VuZGlmCiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5OjpzdG9wTWVkaWFDYXB0dXJlKCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpz
dG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICgh
aGFzUnVubmluZ1Byb2Nlc3MoKSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoKTsKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYgKG1f
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKQogICAgICAgICBtX3VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci0+cmVzZXRBY2Nlc3MoKTsKLSAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpTdG9wTWVkaWFDYXB0dXJlKCkpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6V2ViUGFnZTo6U3RvcE1lZGlhQ2FwdHVyZShraW5kKSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOwogI2VuZGlmCiB9CiAKQEAgLTkxMzcsOCArOTEzNywxNSBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6dXBkYXRlUmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSgpCiAKICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKFdlYlJUQywgInVwZGF0ZVJlcG9ydGVkTWVkaWFDYXB0dXJlU3Rh
dGU6IGZyb20gJWQgdG8gJWQiLCBtX3JlcG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUsIGFjdGl2ZUNh
cHR1cmVTdGF0ZSk7CiAKKyAgICBib29sIG1pY3JvcGhvbmVDYXB0dXJlQ2hhbmdlZCA9IChtX3Jl
cG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpBdWRpb0NhcHR1cmVNYXNr
KSAhPSAoYWN0aXZlQ2FwdHVyZVN0YXRlICYgTWVkaWFQcm9kdWNlcjo6QXVkaW9DYXB0dXJlTWFz
ayk7CisgICAgYm9vbCBjYW1lcmFDYXB0dXJlQ2hhbmdlZCA9IChtX3JlcG9ydGVkTWVkaWFDYXB0
dXJlU3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpWaWRlb0NhcHR1cmVNYXNrKSAhPSAoYWN0aXZlQ2Fw
dHVyZVN0YXRlICYgTWVkaWFQcm9kdWNlcjo6VmlkZW9DYXB0dXJlTWFzayk7CisKICAgICBtX3Jl
cG9ydGVkTWVkaWFDYXB0dXJlU3RhdGUgPSBhY3RpdmVDYXB0dXJlU3RhdGU7CiAgICAgbV91aUNs
aWVudC0+bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UobV9tZWRpYVN0YXRlKTsKKyAgICBpZiAo
bWljcm9waG9uZUNhcHR1cmVDaGFuZ2VkKQorICAgICAgICBwYWdlQ2xpZW50KCkubWljcm9waG9u
ZUNhcHR1cmVDaGFuZ2VkKCk7CisgICAgaWYgKGNhbWVyYUNhcHR1cmVDaGFuZ2VkKQorICAgICAg
ICBwYWdlQ2xpZW50KCkuY2FtZXJhQ2FwdHVyZUNoYW5nZWQoKTsKIH0KIAogdm9pZCBXZWJQYWdl
UHJveHk6OnZpZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZTQ3NTgwZmJhODVkMDBkNGM2ZDY1YzAzZGU0MzdhNDIy
YTAyOWJjYS4uNGEzNGU0MGUxZWRiZmFlY2FiNjE5ZDE3MjZkZTI2ZTJjNzM4NzQzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEzMjYsMTMgKzEzMjYsMTMgQEAg
cHVibGljOgogICAgIHVpbnQ2NF90IHJlbmRlclRyZWVTaXplKCkgY29uc3QgeyByZXR1cm4gbV9y
ZW5kZXJUcmVlU2l6ZTsgfQogCiAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9hdCk7Ci0gICAg
dm9pZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MpOwor
ICAgIHZvaWQgc2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdz
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgPSBbXSB7IH0pOwogICAgIGJvb2wgaXNBdWRp
b011dGVkKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6QXVkaW9Jc011dGVkOyB9OwogICAgIHZvaWQgc2V0TWF5U3RhcnRNZWRpYVdoZW5Jbldp
bmRvdyhib29sKTsKICAgICBib29sIG1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3coKSBjb25zdCB7
IHJldHVybiBtX21heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7IH0KICAgICB2b2lkIHNldE1lZGlh
Q2FwdHVyZUVuYWJsZWQoYm9vbCk7CiAgICAgYm9vbCBtZWRpYUNhcHR1cmVFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9tZWRpYUNhcHR1cmVFbmFibGVkOyB9Ci0gICAgdm9pZCBzdG9wTWVkaWFD
YXB0dXJlKCk7CisgICAgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6Ok1lZGlhQ2FwdHVyZUtpbmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IFtdIHsg
fSk7CiAKICAgICB2b2lkIHBhdXNlQWxsTWVkaWFQbGF5YmFjayhDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgc3VzcGVuZEFsbE1lZGlhUGxheWJhY2soQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggNjI5Y2RiNzQ4ZDgyYmIwY2Y1ZTlmNTc2NDkxMmEzNzZjYWY5MDc0My4u
MjZiNzY0MjM3MjhiMWFjZTJhYzRjZTZmYTllOWI3YWI5YTM5OGNhNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTc1MSw3ICs3NTEsNyBAQCBX
ZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgCiAgICAgc2V0TWVkaWFWb2x1bWUocGFyYW1ldGVy
cy5tZWRpYVZvbHVtZSk7CiAKLSAgICBzZXRNdXRlZChwYXJhbWV0ZXJzLm11dGVkKTsKKyAgICBz
ZXRNdXRlZChwYXJhbWV0ZXJzLm11dGVkLCBbXSB7IH0pOwogCiAgICAgLy8gV2UgdXNlIHRoZSBE
aWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQgbWlsZXN0b25lIHRvIGRldGVybWluZSB3aGVu
IHRvIHVuZnJlZXplIHRoZSBsYXllciB0cmVlLgogICAgIG1fcGFnZS0+YWRkTGF5b3V0TWlsZXN0
b25lcyh7IERpZEZpcnN0TGF5b3V0LCBEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXQgfSk7
CkBAIC01MzY1LDE2ICs1MzY1LDE4IEBAIHZvaWQgV2ViUGFnZTo6c2V0TWVkaWFWb2x1bWUoZmxv
YXQgdm9sdW1lKQogICAgIG1fcGFnZS0+c2V0TWVkaWFWb2x1bWUodm9sdW1lKTsKIH0KIAotdm9p
ZCBXZWJQYWdlOjpzZXRNdXRlZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUp
Cit2b2lkIFdlYlBhZ2U6OnNldE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBz
dGF0ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIG1fcGFnZS0+c2V0TXV0ZWQoc3RhdGUpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9
CiAKLXZvaWQgV2ViUGFnZTo6c3RvcE1lZGlhQ2FwdHVyZSgpCit2b2lkIFdlYlBhZ2U6OnN0b3BN
ZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCBraW5kLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKLSAgICBtX3BhZ2UtPnN0b3BNZWRpYUNhcHR1cmUoKTsKKyAgICBtX3BhZ2Ut
PnN0b3BNZWRpYUNhcHR1cmUoa2luZCk7CiAjZW5kaWYKKyAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwogfQogCiB2b2lkIFdlYlBhZ2U6OnNldE1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3coYm9vbCBt
YXlTdGFydE1lZGlhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CmluZGV4IDFjN2Y0NmI2NWJiM2Y3MmM2OWQ3MjMyMGZhNjc3ODY3NjJmNDk5NDAuLjM2ZGUzYTU0
YjI3MzRiMjhkYWFiZDAzNWYyNjNjZDkxYTljOTY5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTk4OCw5ICs5ODgsOSBAQCBwdWJsaWM6CiAgICAg
dm9pZCByZW1vdmVSZXNvdXJjZVJlcXVlc3QodW5zaWduZWQgbG9uZyk7CiAKICAgICB2b2lkIHNl
dE1lZGlhVm9sdW1lKGZsb2F0KTsKLSAgICB2b2lkIHNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok11dGVkU3RhdGVGbGFncyk7CisgICAgdm9pZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBzZXRNYXlTdGFydE1lZGlhV2hlbkluV2luZG93KGJvb2wpOwotICAgIHZvaWQg
c3RvcE1lZGlhQ2FwdHVyZSgpOworICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogCiAgICAgdm9pZCB1cGRhdGVNYWluRnJhbWVTY3JvbGxPZmZzZXRQaW5uaW5nKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCmluZGV4IDNiZTg4YWEwY2E0YWJmMTJhYmZlMzM2OTZlNDEyZjM1NWM5MThkNzguLmQ1
MTI0ODBlZjgxMTY5ZDI0NjNiNDMxYzk5ZWEzNzI3ODc4MzQ0MzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNDE1
LDkgKzQxNSw5IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90
IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAKICAgICAjIE1lZGlhCiAgICAg
U2V0TWVkaWFWb2x1bWUoZmxvYXQgdm9sdW1lKQotICAgIFNldE11dGVkKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBtdXRlZCkKKyAgICBTZXRNdXRlZChXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWQpIC0+ICgpIEFzeW5jCiAgICAgU2V0
TWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyhib29sIG1heVN0YXJ0TWVkaWEpCi0gICAgU3RvcE1l
ZGlhQ2FwdHVyZSgpCisgICAgU3RvcE1lZGlhQ2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVLaW5kIGtpbmQpIC0+ICgpIEFzeW5jCiAKICAgICBTZXRDYW5SdW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWwoYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwp
CiAgICAgU2V0Q2FuUnVuTW9kYWwoYm9vbCBjYW5SdW5Nb2RhbCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3Y2I4NGI3NmIwMWI1ZGFjMWY3OWE1
ZDE5YzgzNDRmZGE1NGUyY2Q4Li5iNzRjN2VjY2VkODQzNWMzOGJjYTY4YzM2ZGYzNDM1NzM5Njky
YWVkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMjEtMDItMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgorCisgICAgICAgIFVwZGF0ZSBjYW1lcmEgYW5kIG1pY3JvcGhvbmUgY2FwdHVyZSBzdGF0
ZSBjb250cm9sIFdLV2ViVmlldyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMjE2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVwZGFlZCBhY2NvcmRpbmcgcmVuYW1pbmcgb2YgX1dLTWVkaWFDYXB0
dXJlU3RhdGUgaW4gX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6d2tNZWRpYUNhcHR1cmVTdGF0ZVN0cmluZyk6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjp3YWl0VW50aWxDYXB0dXJlU3RhdGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1U
cmFja0RldGFjaGVkLm1tOgorICAgICAgICAoLVtNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWRVSURl
bGVnYXRlIF93ZWJWaWV3Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOl0pOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24u
bW06CisgICAgICAgICgtW0dldFVzZXJNZWRpYVVJRGVsZWdhdGUgX3dlYlZpZXc6bWVkaWFDYXB0
dXJlU3RhdGVEaWRDaGFuZ2U6XSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbToKKyAgICAgICAgKC1bU3BlZWNoUmVjb2duaXRp
b25VSURlbGVnYXRlIF93ZWJWaWV3Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOl0pOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbToKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmlzRG9pbmdNZWRpYUNhcHR1cmUgY29uc3QpOgor
CiAyMDIxLTAyLTE5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBFbmFibGUgTUVESUFfU09VUkNFIGluIElPUyBTaW11bGF0b3IKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYS5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYS5tbQppbmRleCA0NDRjMDY3YmU3MzAy
YTM1YTc3ZGMyM2VlMGYzOTExZWMwZDMzMTY4Li5jMTQ0MmNlYTZiOTI0NzRiYTY4NGVjMmNiMzNj
YmFjOTc5ZmUwMGMzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9HZXRVc2VyTWVkaWEubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
R2V0VXNlck1lZGlhLm1tCkBAIC02MCwyOSArNjAsMjkgQEAgc3RhdGljIGJvb2wgZG9uZTsKIAog
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCi1zdGF0aWMgU3RyaW5nIHdrTWVkaWFDYXB0dXJl
U3RhdGVTdHJpbmcoX1dLTWVkaWFDYXB0dXJlU3RhdGUgZmxhZ3MpCitzdGF0aWMgU3RyaW5nIHdr
TWVkaWFDYXB0dXJlU3RhdGVTdHJpbmcoX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkIGZs
YWdzKQogewogICAgIFN0cmluZ0J1aWxkZXIgc3RyaW5nOwotICAgIGlmIChmbGFncyAmIF9XS01l
ZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWljcm9waG9uZSkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgi
X1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVNaWNyb3Bob25lICsgIik7Ci0gICAgaWYgKGZsYWdz
ICYgX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVDYW1lcmEpCi0gICAgICAgIHN0cmluZy5hcHBl
bmQoIl9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJhICsgIik7Ci0gICAgaWYgKGZsYWdz
ICYgX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZE1pY3JvcGhvbmUpCi0gICAgICAgIHN0cmluZy5h
cHBlbmQoIl9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRNaWNyb3Bob25lICsgIik7Ci0gICAgaWYg
KGZsYWdzICYgX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZENhbWVyYSkKLSAgICAgICAgc3RyaW5n
LmFwcGVuZCgiX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZENhbWVyYSArICIpOworICAgIGlmIChm
bGFncyAmIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZU1pY3JvcGhvbmUpCisg
ICAgICAgIHN0cmluZy5hcHBlbmQoIl9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2
ZU1pY3JvcGhvbmUgKyAiKTsKKyAgICBpZiAoZmxhZ3MgJiBfV0tNZWRpYUNhcHR1cmVTdGF0ZURl
cHJlY2F0ZWRBY3RpdmVDYW1lcmEpCisgICAgICAgIHN0cmluZy5hcHBlbmQoIl9XS01lZGlhQ2Fw
dHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZUNhbWVyYSArICIpOworICAgIGlmIChmbGFncyAmIF9X
S01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE11dGVkTWljcm9waG9uZSkKKyAgICAgICAgc3Ry
aW5nLmFwcGVuZCgiX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTXV0ZWRNaWNyb3Bob25l
ICsgIik7CisgICAgaWYgKGZsYWdzICYgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTXV0
ZWRDYW1lcmEpCisgICAgICAgIHN0cmluZy5hcHBlbmQoIl9XS01lZGlhQ2FwdHVyZVN0YXRlRGVw
cmVjYXRlZE11dGVkQ2FtZXJhICsgIik7CiAgICAgaWYgKHN0cmluZy5pc0VtcHR5KCkpCi0gICAg
ICAgIHN0cmluZy5hcHBlbmQoIl9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZSIpOworICAgICAgICBz
dHJpbmcuYXBwZW5kKCJfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWROb25lIik7CiAgICAg
ZWxzZQogICAgICAgICBzdHJpbmcucmVzaXplKHN0cmluZy5sZW5ndGgoKSAtIDIpOwogCiAgICAg
cmV0dXJuIHN0cmluZy50b1N0cmluZygpOwogfQogCi1ib29sIHdhaXRVbnRpbENhcHR1cmVTdGF0
ZShXS1dlYlZpZXcgKndlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlIGV4cGVjdGVkU3RhdGUp
Citib29sIHdhaXRVbnRpbENhcHR1cmVTdGF0ZShXS1dlYlZpZXcgKndlYlZpZXcsIF9XS01lZGlh
Q2FwdHVyZVN0YXRlRGVwcmVjYXRlZCBleHBlY3RlZFN0YXRlKQogewogICAgIE5TVGltZUludGVy
dmFsIGVuZCA9IFtbTlNEYXRlIGRhdGVdIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV0g
KyAxMDsKLSAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZSBzdGF0ZTsKKyAgICBfV0tNZWRpYUNhcHR1
cmVTdGF0ZURlcHJlY2F0ZWQgc3RhdGU7CiAgICAgZG8gewogICAgICAgICBzdGF0ZSA9IFt3ZWJW
aWV3IF9tZWRpYUNhcHR1cmVTdGF0ZV07CiAgICAgICAgIGlmIChzdGF0ZSA9PSBleHBlY3RlZFN0
YXRlKQpAQCAtMTEzLDM4ICsxMTMsMzggQEAgVEVTVChXZWJLaXQyLCBDYXB0dXJlTXV0ZSkKICAg
ICB3ZWJWaWV3Ll9tZWRpYUNhcHR1cmVSZXBvcnRpbmdEZWxheUZvclRlc3RpbmcgPSAwOwogCiAg
ICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJnZXRVc2VyTWVkaWEiXTsKLSAgICBFWFBF
Q1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3Rh
dGVBY3RpdmVDYW1lcmEpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUo
d2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlQ2FtZXJhKSk7CiAK
ICAgICBbd2ViVmlldyBfc2V0UGFnZU11dGVkOiBfV0tNZWRpYUNhcHR1cmVEZXZpY2VzTXV0ZWRd
OwotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRp
YUNhcHR1cmVTdGF0ZU11dGVkQ2FtZXJhKSk7CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2Fw
dHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE11dGVkQ2Ft
ZXJhKSk7CiAgICAgW3dlYlZpZXcgX3NldFBhZ2VNdXRlZDogX1dLTWVkaWFOb25lTXV0ZWRdOwot
ICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNh
cHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYSkpOworICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1
cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVDYW1l
cmEpKTsKIAogICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJzdG9w
KCkiXTsKLSAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldywgX1dL
TWVkaWFDYXB0dXJlU3RhdGVOb25lKSk7CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVy
ZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE5vbmUpKTsKIAog
ICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJjYXB0dXJlQXVkaW8o
KSJdOwotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tN
ZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZU1pY3JvcGhvbmUpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0
VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVk
QWN0aXZlTWljcm9waG9uZSkpOwogICAgIFt3ZWJWaWV3IF9zZXRQYWdlTXV0ZWQ6IF9XS01lZGlh
Q2FwdHVyZURldmljZXNNdXRlZF07Ci0gICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0
YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRNaWNyb3Bob25lKSk7CisgICAg
RVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVy
ZVN0YXRlRGVwcmVjYXRlZE11dGVkTWljcm9waG9uZSkpOwogICAgIFt3ZWJWaWV3IF9zZXRQYWdl
TXV0ZWQ6IF9XS01lZGlhTm9uZU11dGVkXTsKLSAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0
dXJlU3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVNaWNyb3Bob25lKSk7
CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlh
Q2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZU1pY3JvcGhvbmUpKTsKIAogICAgIFt3ZWJWaWV3
IF9zZXRQYWdlTXV0ZWQ6IF9XS01lZGlhQ2FwdHVyZURldmljZXNNdXRlZF07Ci0gICAgRVhQRUNU
X1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRl
TXV0ZWRNaWNyb3Bob25lKSk7CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRl
KHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE11dGVkTWljcm9waG9uZSkp
OwogCiAgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInN0b3AoKSJd
OwotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRp
YUNhcHR1cmVTdGF0ZU5vbmUpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3Rh
dGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTm9uZSkpOwogCiAgICAg
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImNhcHR1cmVBdWRpb0FuZFZp
ZGVvKCkiXTsKLSAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldywg
X1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVDYW1lcmEgfCBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFj
dGl2ZU1pY3JvcGhvbmUpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUo
d2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlQ2FtZXJhIHwgX1dL
TWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlTWljcm9waG9uZSkpOwogICAgIFt3ZWJW
aWV3IF9zZXRQYWdlTXV0ZWQ6IF9XS01lZGlhQ2FwdHVyZURldmljZXNNdXRlZF07Ci0gICAgRVhQ
RUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0
YXRlTXV0ZWRDYW1lcmEgfCBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkTWljcm9waG9uZSkpOwor
ICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNh
cHR1cmVTdGF0ZURlcHJlY2F0ZWRNdXRlZENhbWVyYSB8IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVw
cmVjYXRlZE11dGVkTWljcm9waG9uZSkpOwogICAgIFt3ZWJWaWV3IF9zZXRQYWdlTXV0ZWQ6IF9X
S01lZGlhTm9uZU11dGVkXTsKLSAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUo
d2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVDYW1lcmEgfCBfV0tNZWRpYUNhcHR1
cmVTdGF0ZUFjdGl2ZU1pY3JvcGhvbmUpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0
dXJlU3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlQ2Ft
ZXJhIHwgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlTWljcm9waG9uZSkpOwog
CiAgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInN0b3AoKSJdOwot
ICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNh
cHR1cmVTdGF0ZU5vbmUpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUo
d2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTm9uZSkpOwogfQogCiBURVNU
KFdlYktpdDIsIENhcHR1cmVTdG9wKQpAQCAtMTY0LDE0ICsxNjQsMTQgQEAgVEVTVChXZWJLaXQy
LCBDYXB0dXJlU3RvcCkKICAgICB3ZWJWaWV3LlVJRGVsZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsK
IAogICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAiZ2V0VXNlck1lZGlhIl07Ci0gICAg
RVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVy
ZVN0YXRlQWN0aXZlQ2FtZXJhKSk7CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0
YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZUNhbWVyYSkp
OwogCiAgICAgW2RlbGVnYXRlIHdhaXRVbnRpbFByb21wdGVkXTsKIAogICAgIFt3ZWJWaWV3IF9z
ZXRQYWdlTXV0ZWQ6IF9XS01lZGlhQ2FwdHVyZURldmljZXNNdXRlZF07Ci0gICAgRVhQRUNUX1RS
VUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0
ZWRDYW1lcmEpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmll
dywgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTXV0ZWRDYW1lcmEpKTsKICAgICBbd2Vi
VmlldyBfc2V0UGFnZU11dGVkOiBfV0tNZWRpYU5vbmVNdXRlZF07Ci0gICAgRVhQRUNUX1RSVUUo
d2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZl
Q2FtZXJhKSk7CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcs
IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZUNhbWVyYSkpOwogCiAgICAgW3dl
YlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIm5vdGlmeUVuZGVkRXZlbnQoKSJd
OwogICAgIFt3ZWJWaWV3IF9zdG9wTWVkaWFDYXB0dXJlXTsKQEAgLTE3OSw3ICsxNzksNyBAQCBU
RVNUKFdlYktpdDIsIENhcHR1cmVTdG9wKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
ZG9uZSk7CiAgICAgZG9uZSA9IGZhbHNlOwogCi0gICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2Fw
dHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZSkpOworICAgIEVYUEVD
VF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0
ZURlcHJlY2F0ZWROb25lKSk7CiAKICAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAicHJvbXB0Rm9yQ2FwdHVyZSgpIl07CiAgICAgW2RlbGVnYXRlIHdhaXRVbnRpbFBy
b21wdGVkXTsKQEAgLTIwNCw3ICsyMDQsNyBAQCBURVNUKFdlYktpdDIsIENhcHR1cmVJbmRpY2F0
b3JEZWxheSkKICAgICB3ZWJWaWV3LlVJRGVsZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsKIAogICAg
IFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAiZ2V0VXNlck1lZGlhIl07Ci0gICAgRVhQRUNU
X1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRl
QWN0aXZlQ2FtZXJhKSk7CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdl
YlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZUNhbWVyYSkpOwogCiAg
ICAgW2RlbGVnYXRlIHdhaXRVbnRpbFByb21wdGVkXTsKIApAQCAtMjEyLDEwICsyMTIsMTAgQEAg
VEVTVChXZWJLaXQyLCBDYXB0dXJlSW5kaWNhdG9yRGVsYXkpCiAKICAgICAvLyBXZSB3YWl0IDEg
c2Vjb25kLCB3ZSBzaG91bGQgc3RpbGwgc2VlIGNhbWVyYSBiZSByZXBvcnRlZC4KICAgICBzbGVl
cCgxX3MpOwotICAgIEVYUEVDVF9FUShbd2ViVmlldyBfbWVkaWFDYXB0dXJlU3RhdGVdLCBfV0tN
ZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYSk7CisgICAgRVhQRUNUX0VRKFt3ZWJWaWV3IF9t
ZWRpYUNhcHR1cmVTdGF0ZV0sIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZUNh
bWVyYSk7CiAKICAgICAvLyBPbmUgYWRkaXRpb25hbCBzZWNvbmQgc2hvdWxkIGFsbG93IHVzIHRv
IGdvIGJhY2sgdG8gbm8gY2FwdHVyZSBiZWluZyByZXBvcnRlZC4KLSAgICBFWFBFQ1RfVFJVRSh3
YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVOb25lKSk7
CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlh
Q2FwdHVyZVN0YXRlRGVwcmVjYXRlZE5vbmUpKTsKIH0KIAogVEVTVChXZWJLaXQyLCBDYXB0dXJl
SW5kaWNhdG9yRGVsYXlXaGVuQ2xvc2VkKQpAQCAtMjM3LDEzICsyMzcsMTMgQEAgVEVTVChXZWJL
aXQyLCBDYXB0dXJlSW5kaWNhdG9yRGVsYXlXaGVuQ2xvc2VkKQogICAgIHdlYlZpZXcuVUlEZWxl
Z2F0ZSA9IGRlbGVnYXRlLmdldCgpOwogCiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6
QCJnZXRVc2VyTWVkaWEiXTsKLSAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUo
d2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVDYW1lcmEpKTsKKyAgICBFWFBFQ1Rf
VFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVE
ZXByZWNhdGVkQWN0aXZlQ2FtZXJhKSk7CiAKICAgICBbZGVsZWdhdGUgd2FpdFVudGlsUHJvbXB0
ZWRdOwogCiAgICAgW3dlYlZpZXcgX2Nsb3NlXTsKIAotICAgIEVYUEVDVF9FUShbd2ViVmlldyBf
bWVkaWFDYXB0dXJlU3RhdGVdLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmUpOworICAgIEVYUEVD
VF9FUShbd2ViVmlldyBfbWVkaWFDYXB0dXJlU3RhdGVdLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURl
cHJlY2F0ZWROb25lKTsKIH0KIAogVEVTVChXZWJLaXQyLCBHZXRDYXBhYmlsaXRpZXMpCkBAIC0y
NjMsNyArMjYzLDcgQEAgVEVTVChXZWJLaXQyLCBHZXRDYXBhYmlsaXRpZXMpCiAgICAgd2ViVmll
dy5VSURlbGVnYXRlID0gZGVsZWdhdGUuZ2V0KCk7CiAKICAgICBbd2ViVmlldyBsb2FkVGVzdFBh
Z2VOYW1lZDpAImdldFVzZXJNZWRpYSJdOwotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1
cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYSkpOworICAg
IEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1
cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVDYW1lcmEpKTsKIAogICAgIFtkZWxlZ2F0ZSB3YWl0VW50
aWxQcm9tcHRlZF07CiAKQEAgLTM3Miw3ICszNzIsNyBAQCBURVNUKFdlYktpdDIsIENyYXNoR1BV
UHJvY2Vzc1doaWxlQ2FwdHVyaW5nKQogICAgIHdlYlZpZXcuZ2V0KCkuVUlEZWxlZ2F0ZSA9IGRl
bGVnYXRlLmdldCgpOwogCiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJnZXRVc2Vy
TWVkaWEiXTsKLSAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldy5n
ZXQoKSwgX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVDYW1lcmEpKTsKKyAgICBFWFBFQ1RfVFJV
RSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldy5nZXQoKSwgX1dLTWVkaWFDYXB0dXJlU3Rh
dGVEZXByZWNhdGVkQWN0aXZlQ2FtZXJhKSk7CiAKICAgICBkb25lID0gZmFsc2U7CiAgICAgW3dl
YlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImNhcHR1cmVBdWRpb0FuZFZpZGVv
KHRydWUpIl07CkBAIC00NTIsNyArNDUyLDcgQEAgVEVTVChXZWJLaXQyLCBDcmFzaEdQVVByb2Nl
c3NXaGlsZUNhcHR1cmluZ0FuZENhbGxpbmcpCiAgICAgd2ViVmlldy5nZXQoKS5VSURlbGVnYXRl
ID0gZGVsZWdhdGUuZ2V0KCk7CiAKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImdl
dFVzZXJNZWRpYSJdOwotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJW
aWV3LmdldCgpLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYSkpOworICAgIEVYUEVD
VF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LmdldCgpLCBfV0tNZWRpYUNhcHR1
cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVDYW1lcmEpKTsKIAogICAgIGRvbmUgPSBmYWxzZTsKICAg
ICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiY2FwdHVyZUF1ZGlvQW5k
VmlkZW8odHJ1ZSkiXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbQppbmRleCBmNjkwYmFjZTc5NDY5
MGQ4ZDRiZTBiZTg3Y2I1OTc2ZDUzN2EzZjJjLi4wOTI0Njk0N2ZiZDgwZjAyM2MwMDAzMGExYzRm
YmQyN2U3YzNlMDNhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCkBAIC0zOSwxMyArMzksMTMg
QEAKIHN0YXRpYyBib29sIGhhc1JlY2VpdmVkQ29ycmVjdENhcHR1cmVTdGF0ZSA9IGZhbHNlOwog
CiBAaW50ZXJmYWNlIE1lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZFVJRGVsZWdhdGUgOiBVc2VyTWVk
aWFDYXB0dXJlVUlEZWxlZ2F0ZQotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGU7
CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRl
RGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQpc3RhdGU7CiBAZW5kCiAK
IEBpbXBsZW1lbnRhdGlvbiBNZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWRVSURlbGVnYXRlCi0tICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hh
bmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZQorLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0dXJl
U3RhdGVEZXByZWNhdGVkKXN0YXRlCiB7Ci0gICAgaWYgKHN0YXRlID09IF9XS01lZGlhQ2FwdHVy
ZVN0YXRlQWN0aXZlTWljcm9waG9uZSkKKyAgICBpZiAoc3RhdGUgPT0gX1dLTWVkaWFDYXB0dXJl
U3RhdGVEZXByZWNhdGVkQWN0aXZlTWljcm9waG9uZSkKICAgICAgICAgaGFzUmVjZWl2ZWRDb3Jy
ZWN0Q2FwdHVyZVN0YXRlID0gdHJ1ZTsKIH0KIEBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0
aW9uLm1tCmluZGV4IGFkYmM5OWRkYzI4MjE1ZGFhZDAzYWU2M2NjYmM4MjFhNWMzYTc4NDQuLjg5
YzA0MDRiZDUyNzFjMTYxMGQwZjNkNDUzYjQwMGY5N2NhODNiM2QgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24u
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dh
cE9uTmF2aWdhdGlvbi5tbQpAQCAtNjQ4MiwxMyArNjQ4MiwxMyBAQCBURVNUKFByb2Nlc3NTd2Fw
LCBMb2FkQWx0ZXJuYXRpdmVIVE1MKQogc3RhdGljIGJvb2wgaXNDYXB0dXJpbmcgPSBmYWxzZTsK
IHN0YXRpYyBib29sIGlzTm90Q2FwdHVyaW5nID0gZmFsc2U7CiBAaW50ZXJmYWNlIEdldFVzZXJN
ZWRpYVVJRGVsZWdhdGUgOiBVc2VyTWVkaWFDYXB0dXJlVUlEZWxlZ2F0ZQotLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dL
TWVkaWFDYXB0dXJlU3RhdGUpc3RhdGU7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZURl
cHJlY2F0ZWQpc3RhdGU7CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBHZXRVc2VyTWVkaWFVSURl
bGVnYXRlCi0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVy
ZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZQorLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dL
TWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKXN0YXRlCiB7Ci0gICAgaXNDYXB0dXJpbmcgPSBz
dGF0ZSA9PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYTsKKyAgICBpc0NhcHR1cmlu
ZyA9IHN0YXRlID09IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZUNhbWVyYTsK
ICAgICBpc05vdENhcHR1cmluZyA9ICFzdGF0ZTsKIH0KIEBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwZWVjaFJlY29nbml0aW9uLm1t
CmluZGV4IGI4YTAyYWJmZmY0ZTM3NWFjN2QxYjI4MzZiMDhhM2RiZTFhNDc1ZjYuLjZlYTZlYTBk
ZTIwNGIxYmE1NjY2MGRhODFjZDM1NTlmNjYwOGNlZWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbQpA
QCAtNDcsNyArNDcsNyBAQCBzdGF0aWMgUmV0YWluUHRyPFdLV2ViVmlldz4gY3JlYXRlZFdlYlZp
ZXc7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25Gb3JPcmlnaW46KFdLU2VjdXJpdHlPcmlnaW4gKilvcmlnaW4g
ZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MKSlkZWNpc2lvbkhhbmRsZXI7CiAtICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RNZWRpYUNhcHR1cmVQZXJtaXNz
aW9uOihCT09MKWF1ZGlvIHZpZGVvOihCT09MKXZpZGVvIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAo
XikoX1dLUGVybWlzc2lvbkRlY2lzaW9uKSlkZWNpc2lvbkhhbmRsZXI7CiAtIChXS1dlYlZpZXcg
Kil3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNyZWF0ZVdlYlZpZXdXaXRoQ29uZmlndXJh
dGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24gZm9yTmF2aWdhdGlv
bkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiB3aW5kb3dGZWF0
dXJlczooV0tXaW5kb3dGZWF0dXJlcyAqKXdpbmRvd0ZlYXR1cmVzOwotLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVk
aWFDYXB0dXJlU3RhdGUpc3RhdGU7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJl
Y2F0ZWQpc3RhdGU7CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBTcGVlY2hSZWNvZ25pdGlvblVJ
RGVsZWdhdGUKQEAgLTc1LDkgKzc1LDkgQEAgc3RhdGljIFJldGFpblB0cjxXS1dlYlZpZXc+IGNy
ZWF0ZWRXZWJWaWV3OwogICAgIHJldHVybiBjcmVhdGVkV2ViVmlldy5nZXQoKTsKIH0KIAotLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENo
YW5nZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVy
ZVN0YXRlRGVwcmVjYXRlZClzdGF0ZQogewotICAgIGlzQ2FwdHVyaW5nID0gc3RhdGUgPT0gX1dL
TWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVNaWNyb3Bob25lOworICAgIGlzQ2FwdHVyaW5nID0gc3Rh
dGUgPT0gX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlTWljcm9waG9uZTsKICAg
ICBjYXB0dXJlU3RhdGVEaWRDaGFuZ2UgPSB0cnVlOwogfQogQGVuZApkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCmluZGV4IGNlMzZm
YmEyZDRiYjE1MWY4NzllMzFhMTU0MmQ0ZDA2ZTllMjlkZTYuLjIwMGZkMjMwM2FkMzk1Yzc2ODg0
NGY3ZTc3MTIxMmNlZTg2NGEyY2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Y29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KQEAgLTQ4NCw3ICs0ODQsNyBAQCB2b2lkIFRl
c3RDb250cm9sbGVyOjpzZXRBbGxvd2VkTWVudUFjdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4m
IGFjdGlvbnMpCiAKIGJvb2wgVGVzdENvbnRyb2xsZXI6OmlzRG9pbmdNZWRpYUNhcHR1cmUoKSBj
b25zdAogewotICAgIHJldHVybiBtX21haW5XZWJWaWV3LT5wbGF0Zm9ybVZpZXcoKS5fbWVkaWFD
YXB0dXJlU3RhdGUgIT0gX1dLTWVkaWFDYXB0dXJlU3RhdGVOb25lOworICAgIHJldHVybiBtX21h
aW5XZWJWaWV3LT5wbGF0Zm9ybVZpZXcoKS5fbWVkaWFDYXB0dXJlU3RhdGUgIT0gX1dLTWVkaWFD
YXB0dXJlU3RhdGVEZXByZWNhdGVkTm9uZTsKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420971</attachid>
            <date>2021-02-19 08:23:57 -0800</date>
            <delta_ts>2021-03-04 05:45:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222166-20210219172355.patch</filename>
            <type>text/plain</type>
            <size>50924</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzczMjI2NTJmNmY1Njk3
ODEwYzA2ODFiMjM3ZTdmYWQ3Yzk5NTFlMC4uZjMzMzE0NTI3ZWM3MTI3MzMyZDBjNjZlMmM1MTY2
M2M0NDE4ZDVhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTAyLTE5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgY2FtZXJhIGFu
ZCBtaWNyb3Bob25lIGNhcHR1cmUgc3RhdGUgY29udHJvbCBXS1dlYlZpZXcgQVBJCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNjYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgdGhlIHBv
c3NpYmlsaXR5IHRvIG11dGUgZWl0aGVyIGNhbWVyYSBhbmQvb3IgbWljcm9waG9uZSBjYXB0dXJl
IGluZGVwZW5kZW50bHkuCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0
ZWRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1Bh
Z2VNdXRlZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnRyYWNrTWF0Y2hlc0tpbmQpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVyZSk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmg6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzdG9wTWVkaWFDYXB0dXJl
KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL01lZGlhUHJvZHVj
ZXIuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6
c3RvcE1lZGlhQ2FwdHVyZSk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisKIDIwMjEtMDItMTkg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSBNRURJ
QV9TT1VSQ0UgaW4gSU9TIFNpbXVsYXRvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyOGJiZjRhMmE3ZDI2OGE3Yjhh
NTkyMmIzZWEzNzQ2MjhhZjY3ZTQxLi5lMWRhNTU1ODc4YTBiYjAxMTllNDBiNWRmOWJmZDM2NzBk
MTMwNTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIxLTAyLTE5ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgY2FtZXJhIGFuZCBtaWNy
b3Bob25lIGNhcHR1cmUgc3RhdGUgY29udHJvbCBXS1dlYlZpZXcgQVBJCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNjYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgS1ZPIHN0YXRlcyBm
b3IgbWljcm9waG9uZSBhbmQgY2FtZXJhIGNhcHR1cmUgc3RhdGVzLgorICAgICAgICBBZGQgdHdv
IEFQSXMgdG8gc2V0IG1pY3JvcGhvbmUgYW5kIGNhbWVyYSBzdGF0ZS4KKyAgICAgICAgVGhpcyBh
bGxvd3MgdG8gbXV0ZS91bm11dGUgb3Igc3RvcCBtaWNyb3Bob25lIG9yIGNhbWVyYSBzdGF0ZS4K
KyAgICAgICAgV2UgbmVlZGVkIHRvIGludHJvZHVjZSBtdXRpbmcgb2YgZWl0aGVyIG1pY3JvcGhv
bmUgb3IgY2FtZXJhIHNpbmNlIHRoaXMgd2FzIHRpZWQgdG9nZXRoZXIgYmVmb3JlIHRoZSBwYXRj
aC4KKyAgICAgICAgVGhlc2UgdHdvIEFQSXMgdGFrZSBhIGNvbXBsZXRpb24gaGFuZGxlci4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dl
YlZpZXcgX2NhbWVyYUNhcHR1cmVTdGF0ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX21pY3Jv
cGhvbmVDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldE1pY3JvcGhvbmVD
YXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBz
ZXRDYW1lcmFDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dL
V2ViVmlldyBfc3RvcE1lZGlhQ2FwdHVyZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX21lZGlh
Q2FwdHVyZVN0YXRlXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLm1tOgorICAgICAgICAoV2Vi
S2l0Ojp0b1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKToKKyAgICAgICAgKFdlYktpdDo6
dG9XS01lZGlhQ2FwdHVyZVN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvUGFnZUNsaWVudEltcGxDb2NvYS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9QYWdl
Q2xpZW50SW1wbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbENvY29h
OjptaWNyb3Bob25lQ2FwdHVyZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50
SW1wbENvY29hOjpjYW1lcmFDYXB0dXJlQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50
OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6bWljcm9waG9uZUNhcHR1cmVD
aGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6Y2FtZXJhQ2FwdHVyZUNoYW5n
ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5Ojp+VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
c3RvcENhcHR1cmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldE11dGVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpzdG9wTWVkaWFDYXB0dXJlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojp1cGRhdGVSZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0
TXV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0b3BNZWRpYUNhcHR1cmUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6bV9sYXN0TmF2aWdhdGlvbldhc0FwcEJvdW5kKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6c2V0TXV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzdG9wTWVkaWFDYXB0
dXJlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDIxLTAyLTE5ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgV0tXZWJW
aWV3IGdldFVzZXJNZWRpYSBkZWxlZ2F0ZSB0byBsYXRlc3QgcHJvcG9zYWwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3Bw
CmluZGV4IGRhOTJlY2FmNTcxNDZhODFjMjQzYjljOGY0YTBjMTZiNTQ2NGFhNmUuLjk5MzhjMDkw
NTgxNzFhNTgxYzZmZjgyZDY4OTBiY2Q5NTc1YzA0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtNDc5
LDEzICs0NzksMTMgQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVDYXB0dXJlQWNjb3Jk
aW5nVG9NdXRlZFN0YXRlKERvY3VtZW50JiBkb2N1bWVudCkKIAogICAgIGF1dG8qIGFjdGl2ZUF1
ZGlvU291cmNlID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9D
YXB0dXJlRmFjdG9yeSgpLmFjdGl2ZVNvdXJjZSgpOwogICAgIGlmIChhY3RpdmVBdWRpb1NvdXJj
ZSAmJiBpc1NvdXJjZUNhcHR1cmluZ0ZvclRyYWNrSW5Eb2N1bWVudCgqYWN0aXZlQXVkaW9Tb3Vy
Y2UsIGRvY3VtZW50KSkgewotICAgICAgICBib29sIHBhZ2VNdXRlZCA9IHBhZ2UtPm11dGVkU3Rh
dGUoKSAmIE1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJlSXNNdXRlZDsKKyAgICAg
ICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyOjpB
dWRpb0NhcHR1cmVJc011dGVkOwogICAgICAgICBhY3RpdmVBdWRpb1NvdXJjZS0+c2V0TXV0ZWQo
cGFnZU11dGVkIHx8IChkb2N1bWVudC5oaWRkZW4oKSAmJiBkb2N1bWVudC5zZXR0aW5ncygpLmlu
dGVycnVwdEF1ZGlvT25QYWdlVmlzaWJpbGl0eUNoYW5nZUVuYWJsZWQoKSkpOwogICAgIH0KIAog
ICAgIGF1dG8qIGFjdGl2ZVZpZGVvU291cmNlID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLmFjdGl2ZVNvdXJjZSgpOwogICAgIGlm
IChhY3RpdmVWaWRlb1NvdXJjZSAmJiBpc1NvdXJjZUNhcHR1cmluZ0ZvclRyYWNrSW5Eb2N1bWVu
dCgqYWN0aXZlVmlkZW9Tb3VyY2UsIGRvY3VtZW50KSkgewotICAgICAgICBib29sIHBhZ2VNdXRl
ZCA9IHBhZ2UtPm11dGVkU3RhdGUoKSAmIE1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0
dXJlSXNNdXRlZDsKKyAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkg
JiBNZWRpYVByb2R1Y2VyOjpWaWRlb0NhcHR1cmVJc011dGVkOwogICAgICAgICBhY3RpdmVWaWRl
b1NvdXJjZS0+c2V0TXV0ZWQocGFnZU11dGVkIHx8IGRvY3VtZW50LmhpZGRlbigpKTsKICAgICB9
CiAjZWxzZQpAQCAtNTA1LDggKzUwNSwxMCBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0
ZVRvUGFnZU11dGVkU3RhdGUoKQogCiAgICAgc3dpdGNoIChzb3VyY2UoKS5kZXZpY2VUeXBlKCkp
IHsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CisgICAg
ICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQocGFnZS0+bXV0ZWRTdGF0ZSgpICYgTWVkaWFQcm9kdWNl
cjo6QXVkaW9DYXB0dXJlSXNNdXRlZCk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhOgotICAgICAgICBtX3ByaXZhdGUtPnNldE11dGVk
KHBhZ2UtPm11dGVkU3RhdGUoKSAmIE1lZGlhUHJvZHVjZXI6OkF1ZGlvQW5kVmlkZW9DYXB0dXJl
SXNNdXRlZCk7CisgICAgICAgIG1fcHJpdmF0ZS0+c2V0TXV0ZWQocGFnZS0+bXV0ZWRTdGF0ZSgp
ICYgTWVkaWFQcm9kdWNlcjo6VmlkZW9DYXB0dXJlSXNNdXRlZCk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgogICAgIGNhc2UgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgpAQCAtNTE5LDExICs1MjEsMjMgQEAgdm9p
ZCBNZWRpYVN0cmVhbVRyYWNrOjp1cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCkKICAgICB9CiB9CiAK
LXZvaWQgTWVkaWFTdHJlYW1UcmFjazo6ZW5kQ2FwdHVyZShEb2N1bWVudCYgZG9jdW1lbnQpCitz
dGF0aWMgaW5saW5lIGJvb2wgdHJhY2tNYXRjaGVzS2luZChSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlIHR5cGUsIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCkKK3sKKyAgICBz
d2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6
OkF1ZGlvOgorICAgICAgICByZXR1cm4gdHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpBdWRpbzsKKyAgICBjYXNlIE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlv
VmlkZW86CisgICAgICAgIHJldHVybiB0eXBlICE9IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6
Ok5vbmU7CisgICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpWaWRlbzoK
KyAgICAgICAgcmV0dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW87
CisgICAgfQorfQorCit2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmVuZENhcHR1cmUoRG9jdW1lbnQm
IGRvY3VtZW50LCBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGtpbmQpCiB7CiAgICAg
Ym9vbCBkaWRFbmRDYXB0dXJlID0gZmFsc2U7CiAgICAgZm9yIChhdXRvKiBjYXB0dXJlVHJhY2sg
OiBhbGxDYXB0dXJlVHJhY2tzKCkpIHsKLSAgICAgICAgaWYgKGNhcHR1cmVUcmFjay0+ZG9jdW1l
bnQoKSAhPSAmZG9jdW1lbnQpCisgICAgICAgIGlmIChjYXB0dXJlVHJhY2stPmRvY3VtZW50KCkg
IT0gJmRvY3VtZW50IHx8ICF0cmFja01hdGNoZXNLaW5kKGNhcHR1cmVUcmFjay0+cHJpdmF0ZVRy
YWNrKCkudHlwZSgpLCBraW5kKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBjYXB0
dXJlVHJhY2stPnN0b3BUcmFjayhNZWRpYVN0cmVhbVRyYWNrOjpTdG9wTW9kZTo6UG9zdEV2ZW50
KTsKICAgICAgICAgZGlkRW5kQ2FwdHVyZSA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCmluZGV4IGYzODBlNmQw
NTdmZjU2NjIxNjBmMzE3Zjg3NzliNjBmZmYyNjgzNmMuLjU5MmFiMmJiMTU4ZTdkMzU1MjBiYjVl
NGVjNGIwN2ZkMDE5MjE0Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFtVHJhY2s+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiwgUmVmPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmKTsKICAgICB2aXJ0dWFsIH5N
ZWRpYVN0cmVhbVRyYWNrKCk7CiAKLSAgICBzdGF0aWMgdm9pZCBlbmRDYXB0dXJlKERvY3VtZW50
Jik7CisgICAgc3RhdGljIHZvaWQgZW5kQ2FwdHVyZShEb2N1bWVudCYsIE1lZGlhUHJvZHVjZXI6
Ok1lZGlhQ2FwdHVyZUtpbmQpOwogCiAgICAgc3RhdGljIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3Rh
dGVGbGFncyBjYXB0dXJlU3RhdGUoRG9jdW1lbnQmKTsKICAgICBzdGF0aWMgdm9pZCB1cGRhdGVD
YXB0dXJlQWNjb3JkaW5nVG9NdXRlZFN0YXRlKERvY3VtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCBhZjkwZWU2YWE5MjQyYmFiMDUyM2EwMDU1MDE4NTBhMmM3MWUzMTY4Li43YmU2
NjA2MDZhM2JlMDRlMmQ3MmNmZWE2ZGNjZjk3MDllNDc1OGY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKQEAgLTgwNDUsOSArODA0NSw5IEBAIHZvaWQgRG9jdW1lbnQ6Om9yaWVudGF0aW9uQ2hh
bmdlZChpbnQgb3JpZW50YXRpb24pCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi12b2lk
IERvY3VtZW50OjpzdG9wTWVkaWFDYXB0dXJlKCkKK3ZvaWQgRG9jdW1lbnQ6OnN0b3BNZWRpYUNh
cHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCBraW5kKQogewotICAgIE1lZGlh
U3RyZWFtVHJhY2s6OmVuZENhcHR1cmUoKnRoaXMpOworICAgIE1lZGlhU3RyZWFtVHJhY2s6OmVu
ZENhcHR1cmUoKnRoaXMsIGtpbmQpOwogfQogCiB2b2lkIERvY3VtZW50OjptZWRpYVN0cmVhbUNh
cHR1cmVTdGF0ZUNoYW5nZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAzYWNkZmQ3M2E3MTkw
ZTEyNzc4MTU0NWM3MTQ3MjJmMmFlZGM2MmI1Li43ZDdlYzkzNjg2ODNiNzk5ZDhjYTM0ODc2Yzc3
NGY3OGRmMDZhMGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTQzNyw3ICsxNDM3LDcgQEAg
cHVibGljOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgdm9pZCBzZXRIYXNDYXB0dXJl
TWVkaWFTdHJlYW1UcmFjaygpIHsgbV9oYXNIYWRDYXB0dXJlTWVkaWFTdHJlYW1UcmFjayA9IHRy
dWU7IH0KICAgICBib29sIGhhc0hhZENhcHR1cmVNZWRpYVN0cmVhbVRyYWNrKCkgY29uc3QgeyBy
ZXR1cm4gbV9oYXNIYWRDYXB0dXJlTWVkaWFTdHJlYW1UcmFjazsgfQotICAgIHZvaWQgc3RvcE1l
ZGlhQ2FwdHVyZSgpOworICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpN
ZWRpYUNhcHR1cmVLaW5kKTsKICAgICB2b2lkIG1lZGlhU3RyZWFtQ2FwdHVyZVN0YXRlQ2hhbmdl
ZCgpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9k
dWNlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKaW5kZXggOGIxZjAx
YzUxZWU3NjhlZmQ2MmE2N2QwODY2N2VhZTgwMWQ2Njg5My4uYjE3ZTY5ZjIxMDZhYTljZjI4ZmE0
ZDUyNjNmOTUyYTc3ZmM4NWEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRp
YVByb2R1Y2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZWRpYVByb2R1Y2VyLmgKQEAg
LTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0
cy5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTY4LDEzICs2OSwyMSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIE1lZGlhU3RhdGVGbGFncyBt
ZWRpYVN0YXRlKCkgY29uc3QgPSAwOwogCisgICAgZW51bSBjbGFzcyBNZWRpYUNhcHR1cmVLaW5k
IHsKKyAgICAgICAgQXVkaW8sCisgICAgICAgIFZpZGVvLAorICAgICAgICBBdWRpb1ZpZGVvCisg
ICAgfTsKKwogICAgIGVudW0gTXV0ZWRTdGF0ZSB7CiAgICAgICAgIE5vbmVNdXRlZCA9IDAsCiAg
ICAgICAgIEF1ZGlvSXNNdXRlZCA9IDEgPDwgMCwKLSAgICAgICAgQXVkaW9BbmRWaWRlb0NhcHR1
cmVJc011dGVkID0gMSA8PCAxLAotICAgICAgICBTY3JlZW5DYXB0dXJlSXNNdXRlZCA9IDEgPDwg
MiwKKyAgICAgICAgQXVkaW9DYXB0dXJlSXNNdXRlZCA9IDEgPDwgMSwKKyAgICAgICAgVmlkZW9D
YXB0dXJlSXNNdXRlZCA9IDEgPDwgMiwKKyAgICAgICAgU2NyZWVuQ2FwdHVyZUlzTXV0ZWQgPSAx
IDw8IDMsCiAKLSAgICAgICAgTWVkaWFTdHJlYW1DYXB0dXJlSXNNdXRlZCA9IEF1ZGlvQW5kVmlk
ZW9DYXB0dXJlSXNNdXRlZCB8IFNjcmVlbkNhcHR1cmVJc011dGVkLAorICAgICAgICBBdWRpb0Fu
ZFZpZGVvQ2FwdHVyZUlzTXV0ZWQgPSBBdWRpb0NhcHR1cmVJc011dGVkIHwgVmlkZW9DYXB0dXJl
SXNNdXRlZCwKKyAgICAgICAgTWVkaWFTdHJlYW1DYXB0dXJlSXNNdXRlZCA9IEF1ZGlvQ2FwdHVy
ZUlzTXV0ZWQgfCBWaWRlb0NhcHR1cmVJc011dGVkIHwgU2NyZWVuQ2FwdHVyZUlzTXV0ZWQsCiAg
ICAgfTsKICAgICB0eXBlZGVmIHVuc2lnbmVkIE11dGVkU3RhdGVGbGFnczsKIApAQCAtODUsMyAr
OTQsMTYgQEAgcHJvdGVjdGVkOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1l
c3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZh
bHVlczwKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCwK
KyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6QXVkaW8s
CisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVv
LAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRp
b1ZpZGVvCisgICAgPjsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDI0NTU3YTM1N2E1
MmNiMjgxZTc0NjQ3YzFkZjk2NTcxM2M0ZmQxMTQuLjE5ZWUwOTY3OTMwYjk5YTI2YTA2YWI0YjEy
MDQ2YjFhNTE0OGNhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMjExNCwxMSArMjExNCwxMiBA
QCB2b2lkIFBhZ2U6OnNldE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBtdXRl
ZCkKICAgICB9KTsKIH0KIAotdm9pZCBQYWdlOjpzdG9wTWVkaWFDYXB0dXJlKCkKK3ZvaWQgUGFn
ZTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGtpbmQp
CiB7CisgICAgVU5VU0VEX1BBUkFNKGtpbmQpOwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0g
ICAgZm9yRWFjaERvY3VtZW50KFtdIChEb2N1bWVudCYgZG9jdW1lbnQpIHsKLSAgICAgICAgZG9j
dW1lbnQuc3RvcE1lZGlhQ2FwdHVyZSgpOworICAgIGZvckVhY2hEb2N1bWVudChba2luZF0gKERv
Y3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBkb2N1bWVudC5zdG9wTWVkaWFDYXB0dXJlKGtp
bmQpOwogICAgIH0pOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDE1MmY0OTI0NDRlMTkz
MDRjODI2YmUyZjMxZjhhZDIyMjU0OTA5OWQuLmQwN2VkZWY3ZWE2ZGU2MDlhYjFmZGU3NWEyMmI1
YTUwNTE3OWIxOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC02OTUsNyArNjk1LDggQEAgcHVibGljOgog
ICAgIHZvaWQgc2NoZWR1bGVQbGF5YmFja0NvbnRyb2xzTWFuYWdlclVwZGF0ZSgpOwogICAgIHZv
aWQgcGxheWJhY2tDb250cm9sc01lZGlhRW5naW5lQ2hhbmdlZCgpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0TXV0ZWQoTWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoKTsKKworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5k
KTsKIAogICAgIE1lZGlhU2Vzc2lvbkdyb3VwSWRlbnRpZmllciBtZWRpYVNlc3Npb25Hcm91cElk
ZW50aWZpZXIoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIG1lZGlhUGxheWJhY2tF
eGlzdHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IDNhMWQzZmIwN2RlM2FlMTg4MzRlMmJhOTVhYzU1
ZDExNjM5MTU2ODkuLmFmZDZhYjRkNGIyOWE3YzkwMDUxYjE2NGY0MTMwNmY3ZjQ5ODZhZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxl
Z2F0ZVByaXZhdGUuaApAQCAtMTI2LDcgKzEyNiw3IEBAIHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAt
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGluY2x1ZGVTZW5zaXRpdmVNZWRp
YURldmljZURldGFpbHM6KHZvaWQgKF4pKEJPT0wgaW5jbHVkZVNlbnNpdGl2ZURldGFpbHMpKWRl
Y2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsK
IC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdFVzZXJNZWRpYUF1
dGhvcml6YXRpb25Gb3JEZXZpY2VzOihfV0tDYXB0dXJlRGV2aWNlcylkZXZpY2VzIHVybDooTlNV
UkwgKil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRs
ZXI6KHZvaWQgKF4pKEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6KE5TVVJMICopdXJs
IG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZnJhbWVJZGVudGlmaWVyOihOU1VJ
bnRlZ2VyKWZyYW1lSWRlbnRpZmllciBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5n
ICpzYWx0LCBCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEyLjMpLCBpb3MoMTAuMykpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3Rh
dGUpc3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CistICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hh
bmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQpc3RhdGUgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiAtIChXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbilf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkcmFnRGVzdGluYXRpb25BY3Rpb25NYXNrRm9y
RHJhZ2dpbmdJbmZvOihpZClkcmFnZ2luZ0luZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MyksIGlvcygxMS4wKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNy
ZWF0ZVdlYlZpZXdXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqKWNv
bmZpZ3VyYXRpb24gZm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2
aWdhdGlvbkFjdGlvbiB3aW5kb3dGZWF0dXJlczooV0tXaW5kb3dGZWF0dXJlcyAqKXdpbmRvd0Zl
YXR1cmVzIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXS1dlYlZpZXcgKndlYlZpZXcpKWNv
bXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkp
OwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0R2VvbG9jYXRp
b25QZXJtaXNzaW9uRm9yRnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgZGVjaXNpb25IYW5kbGVy
Oih2b2lkICheKShCT09MIGFsbG93ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNjMwMjc4MjQzYzMwZTljNTIwNTIyZDZjNmU2
ODIwZTQyZWE3YzljMS4uMjBkY2RmNzZmODZhMmUwMTdhMTAwNzdhN2MxZTk1MDI5MjhiZGI0ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBA
IC0xNzEwLDYgKzE3MTAsNjIgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElP
TihGT1JXQVJEX0FDVElPTl9UT19XS0NPTlRFTlRWSUVXKQogICAgIHJldHVybiBfcGFnZS0+cGFn
ZUxvYWRTdGF0ZSgpLmhhc05lZ290aWF0ZWRMZWdhY3lUTFMoKTsKIH0KIAorLSAoX1dLTWVkaWFD
YXB0dXJlU3RhdGUpX2NhbWVyYUNhcHR1cmVTdGF0ZQoreworICAgIGF1dG8gc3RhdGUgPSBfcGFn
ZS0+cmVwb3J0ZWRNZWRpYVN0YXRlKCk7CisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQorICAgICAgICByZXR1cm4gX1dL
TWVkaWFDYXB0dXJlU3RhdGVBY3RpdmU7CisgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCisgICAgICAgIHJldHVybiBfV0tN
ZWRpYUNhcHR1cmVTdGF0ZU11dGVkOworICAgIHJldHVybiBfV0tNZWRpYUNhcHR1cmVTdGF0ZU5v
bmU7Cit9CisKKy0gKF9XS01lZGlhQ2FwdHVyZVN0YXRlKV9taWNyb3Bob25lQ2FwdHVyZVN0YXRl
Cit7CisgICAgYXV0byBzdGF0ZSA9IF9wYWdlLT5yZXBvcnRlZE1lZGlhU3RhdGUoKTsKKyAgICBp
ZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVE
ZXZpY2UpCisgICAgICAgIHJldHVybiBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZTsKKyAgICBp
ZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNNdXRlZEF1ZGlvQ2FwdHVyZURl
dmljZSkKKyAgICAgICAgcmV0dXJuIF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWQ7CisgICAgcmV0
dXJuIF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZTsKK30KKworLSAodm9pZClzZXRNaWNyb3Bob25l
Q2FwdHVyZVN0YXRlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZSBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBpZiAoc3RhdGUgPT0g
X1dLTWVkaWFDYXB0dXJlU3RhdGVOb25lKSB7CisgICAgICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0
dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvLCBbY29t
cGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CisgICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBhdXRvIG11dGVkU3RhdGUgPSBfcGFnZS0+bXV0ZWRTdGF0ZUZsYWdzKCk7
CisgICAgaWYgKHN0YXRlID09IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlICYmIG11dGVkU3Rh
dGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRpb0NhcHR1cmVJc011dGVkKQorICAgICAg
ICBtdXRlZFN0YXRlIF49IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkF1ZGlvQ2FwdHVyZUlzTXV0
ZWQ7CisgICAgZWxzZSBpZiAoc3RhdGUgPT0gX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZCkKKyAg
ICAgICAgbXV0ZWRTdGF0ZSA9IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkF1ZGlvQ2FwdHVyZUlz
TXV0ZWQ7CisgICAgX3BhZ2UtPnNldE11dGVkKG11dGVkU3RhdGUsIFtjb21wbGV0aW9uSGFuZGxl
ciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKKyAgICB9KTsKK30KKworLSAodm9pZClzZXRDYW1lcmFDYXB0dXJlU3RhdGU6
KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2
b2lkKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIGlmIChzdGF0ZSA9PSBfV0tNZWRpYUNhcHR1
cmVTdGF0ZU5vbmUpIHsKKyAgICAgICAgX3BhZ2UtPnN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6VmlkZW8sIFtjb21wbGV0aW9uSGFuZGxl
ciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKCk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IGF1dG8gbXV0ZWRTdGF0ZSA9IF9wYWdlLT5tdXRlZFN0YXRlRmxhZ3MoKTsKKyAgICBpZiAoc3Rh
dGUgPT0gX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmUgJiYgbXV0ZWRTdGF0ZSAmIFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpCisgICAgICAgIG11dGVkU3RhdGUg
Xj0gV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6VmlkZW9DYXB0dXJlSXNNdXRlZDsKKyAgICBlbHNl
IGlmIChzdGF0ZSA9PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkKQorICAgICAgICBtdXRlZFN0
YXRlID0gV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6VmlkZW9DYXB0dXJlSXNNdXRlZDsKKyAgICBf
cGFnZS0+c2V0TXV0ZWQobXV0ZWRTdGF0ZSwgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2Nr
UHRyKGNvbXBsZXRpb25IYW5kbGVyKV0geworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwor
ICAgIH0pOworfQorCiAtICh2b2lkKV9mcmFtZXM6KHZvaWQgKF4pKF9XS0ZyYW1lVHJlZU5vZGUg
KikpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBfcGFnZS0+Z2V0QWxsRnJhbWVzKFtjb21wbGV0
aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlciksIHBhZ2UgPSBtYWtl
UmVmKCpfcGFnZS5nZXQoKSldIChXZWJLaXQ6OkZyYW1lVHJlZU5vZGVEYXRhJiYgZGF0YSkgewpA
QCAtMjAyMCw3ICsyMDc2LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU0FycmF5PiB3a1RleHRNYW5p
cHVsYXRpb25FcnJvcnMoTlNBcnJheTxfV0tUZXh0TWFuaXB1bGF0aW9uSXQKIAogLSAodm9pZClf
c3RvcE1lZGlhQ2FwdHVyZQogewotICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKCk7CisgICAg
X3BhZ2UtPnN0b3BNZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0
dXJlS2luZDo6QXVkaW9WaWRlbyk7CiB9CiAKIC0gKHZvaWQpX3N0b3BBbGxNZWRpYVBsYXliYWNr
CkBAIC0zMTgwLDkgKzMyMzYsOSBAQCBzdGF0aWMgaW5saW5lIE9wdGlvblNldDxXZWJLaXQ6OkZp
bmRPcHRpb25zPiB0b0ZpbmRPcHRpb25zKF9XS0ZpbmRPcHRpb25zIHdrRmluZAogI2VuZGlmCiB9
CiAKLS0gKF9XS01lZGlhQ2FwdHVyZVN0YXRlKV9tZWRpYUNhcHR1cmVTdGF0ZQorLSAoX1dLTWVk
aWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKV9tZWRpYUNhcHR1cmVTdGF0ZQogewotICAgIHJldHVy
biBXZWJLaXQ6OnRvV0tNZWRpYUNhcHR1cmVTdGF0ZShfcGFnZS0+cmVwb3J0ZWRNZWRpYVN0YXRl
KCkpOworICAgIHJldHVybiBXZWJLaXQ6OnRvV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQo
X3BhZ2UtPnJlcG9ydGVkTWVkaWFTdGF0ZSgpKTsKIH0KIAogLSAodm9pZClfc2V0TWVkaWFDYXB0
dXJlRW5hYmxlZDooQk9PTCllbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCBiNjI4MjhhODA5NDY5MDAyNDU2
MTIyODJiYTdiNTkzOWEwZWRhNmViLi42YzljNTJiNDM4MzJmYzBlNjhhMGNhZTkxNzQxZjIyMTU4
OGI5NDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmgKQEAgLTQwLDEzICs0MCwxOSBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJ
bnRlZ2VyLCBfV0tQYWdpbmF0aW9uTW9kZSkgewogICAgIF9XS1BhZ2luYXRpb25Nb2RlQm90dG9t
VG9Ub3AsCiB9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSk7CiAKK3R5
cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0
ZWQpIHsKKyAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWROb25lID0gMCwKKyAgICBf
V0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVNaWNyb3Bob25lID0gMSA8PCAwLAor
ICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZUNhbWVyYSA9IDEgPDwgMSwK
KyAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRNdXRlZE1pY3JvcGhvbmUgPSAxIDw8
IDIsCisgICAgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTXV0ZWRDYW1lcmEgPSAxIDw8
IDMsCit9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOworCiB0eXBl
ZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLTWVkaWFDYXB0dXJlU3RhdGUpIHsKICAgICBf
V0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmUgPSAwLAotICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0
aXZlTWljcm9waG9uZSA9IDEgPDwgMCwKLSAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNh
bWVyYSA9IDEgPDwgMSwKLSAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkTWljcm9waG9uZSA9
IDEgPDwgMiwKLSAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkQ2FtZXJhID0gMSA8PCAzLAot
fSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKKyAgICBfV0tNZWRp
YUNhcHR1cmVTdGF0ZUFjdGl2ZSA9IDEgPDwgMCwKKyAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11
dGVkID0gMSA8PCAxLAorfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOwogCiB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLTWVkaWFN
dXRlZFN0YXRlKSB7CiAgICAgX1dLTWVkaWFOb25lTXV0ZWQgPSAwLApAQCAtMTg3LDYgKzE5Mywx
NiBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KICovCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIEJPT0wgX25lZ290aWF0ZWRMZWdhY3lUTFMgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
NS40KSwgaW9zKDEzLjQpKTsKIAorLyohIEBhYnN0cmFjdCBUaGUgc3RhdGUgb2YgbWVkaWEgY2Fw
dHVyZSBvbiBhIHdlYiBwYWdlLgorIEBkaXNjdXNzaW9uIEBsaW5rIFdLV2ViVmlldyBAL2xpbmsg
aXMga2V5LXZhbHVlIG9ic2VydmluZyAoS1ZPKSBjb21wbGlhbnQKKyBmb3IgdGhpcyBwcm9wZXJ0
eS4KKyAqLworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tNZWRpYUNhcHR1cmVT
dGF0ZSBfY2FtZXJhQ2FwdHVyZVN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9X
S01lZGlhQ2FwdHVyZVN0YXRlIF9taWNyb3Bob25lQ2FwdHVyZVN0YXRlIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKKy0gKHZvaWQpc2V0TWlj
cm9waG9uZUNhcHR1cmVTdGF0ZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUgY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKXNldENhbWVy
YUNhcHR1cmVTdGF0ZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUgY29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIC0gKHZvaWQpX2ZyYW1lczoodm9p
ZCAoXikoX1dLRnJhbWVUcmVlTm9kZSAqKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCiAvLyBGSVhNRTogUmVtb3ZlIHRoZXNlIG9u
Y2Ugbm9ib2R5IGlzIHVzaW5nIHRoZW0uCkBAIC0zMzgsNyArMzU0LDcgQEAgZm9yIHRoaXMgcHJv
cGVydHkuCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRGdWxsc2NyZWVuRGVsZWdh
dGU6KSBpZDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+IF9mdWxsc2NyZWVuRGVsZWdhdGUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIEJPT0wgX2lzSW5GdWxsc2NyZWVuIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTIuMykpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS01lZGlhQ2Fw
dHVyZVN0YXRlIF9tZWRpYUNhcHR1cmVTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE1
KSwgaW9zKDEzLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLTWVkaWFD
YXB0dXJlU3RhdGVEZXByZWNhdGVkIF9tZWRpYUNhcHR1cmVTdGF0ZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjE1KSwgaW9zKDEzLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgX1dLTWVkaWFNdXRlZFN0YXRlIF9tZWRpYU11dGVkU3RhdGUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogLSAodm9pZClfc2V0UGFnZU11dGVkOihfV0tNZWRp
YU11dGVkU3RhdGUpbXV0ZWRTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9z
KDExLjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlh
VXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGll
cy5oCmluZGV4IGUxYTVkOTQ1NWQ3MjM5NjgyMzc3YjYwNGQ0NTc1M2RlODA2YTJkMTEuLjc0YTNl
NjVkZGZkZWM0NGM2YmE3YWRlZTU1YTA4OTEzOWRiNWU0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMuaApAQCAtMzIsNyArMzIsNyBAQAogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAotX1dLTWVkaWFDYXB0dXJlU3RhdGUgdG9XS01lZGlhQ2FwdHVy
ZVN0YXRlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyk7CitfV0tNZWRp
YUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQgdG9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZChX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOwogX1dLTWVkaWFNdXRlZFN0
YXRlIHRvV0tNZWRpYU11dGVkU3RhdGUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0
ZUZsYWdzKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLm1tCmluZGV4IGRlZWI3NWEyNjU5YTNiY2Q1M2Vl
MTM1NmJlYjIyYTc5ZDA5Zjc0M2QuLjQ0YTgxZDQ4YmE3YzEyNGYyYTM4M2JmMzgwNGI0OTg3YzA1
YWUyZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRp
bGl0aWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0
aWVzLm1tCkBAIC0yOCwxNyArMjgsMTcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLV9XS01l
ZGlhQ2FwdHVyZVN0YXRlIHRvV0tNZWRpYUNhcHR1cmVTdGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCitfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0
ZWQgdG9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiB7Ci0gICAgX1dLTWVkaWFDYXB0dXJlU3RhdGUgbWVk
aWFDYXB0dXJlU3RhdGUgPSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmU7CisgICAgX1dLTWVkaWFD
YXB0dXJlU3RhdGVEZXByZWNhdGVkIG1lZGlhQ2FwdHVyZVN0YXRlID0gX1dLTWVkaWFDYXB0dXJl
U3RhdGVEZXByZWNhdGVkTm9uZTsKICAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpIYXNBY3RpdmVBdWRpb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIG1lZGlhQ2FwdHVyZVN0
YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWljcm9waG9uZTsKKyAgICAgICAgbWVk
aWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlTWlj
cm9waG9uZTsKICAgICBpZiAoc3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3Rp
dmVWaWRlb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01l
ZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJhOworICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8
PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVDYW1lcmE7CiAgICAgaWYgKHN0
YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRBdWRpb0NhcHR1cmVEZXZpY2Up
Ci0gICAgICAgIG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRN
aWNyb3Bob25lOworICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVT
dGF0ZURlcHJlY2F0ZWRNdXRlZE1pY3JvcGhvbmU7CiAgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRWaWRlb0NhcHR1cmVEZXZpY2UpCi0gICAgICAgIG1lZGlh
Q2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRDYW1lcmE7CisgICAgICAg
IG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE11dGVk
Q2FtZXJhOwogCiAgICAgcmV0dXJuIG1lZGlhQ2FwdHVyZVN0YXRlOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5oCmluZGV4IGMx
NGY3N2E4NmFlNTAzM2E4ZTNjZGE1NWMwOTdhZWZmMzdhOWZlZjUuLjMxODlmYTAyOGM1NTkyMTJl
NTk4NjUwYTA3NzNlNjE1NTlhN2Y4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLmgKQEAgLTc5LDYgKzc5LDkgQEAgcHVibGlj
OgogICAgIHZvaWQgc3RvcmVBcHBIaWdobGlnaHQoY29uc3QgV2ViQ29yZTo6QXBwSGlnaGxpZ2h0
JikgZmluYWw7CiAjZW5kaWYKIAorICAgIHZvaWQgbWljcm9waG9uZUNhcHR1cmVDaGFuZ2VkKCkg
ZmluYWw7CisgICAgdm9pZCBjYW1lcmFDYXB0dXJlQ2hhbmdlZCgpIGZpbmFsOworCiBwcm90ZWN0
ZWQ6CiAgICAgV2Vha09iakNQdHI8V0tXZWJWaWV3PiBtX3dlYlZpZXc7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcj4gbV9hbHRlcm5hdGl2
ZVRleHRVSUNvbnRyb2xsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbQppbmRleCBkYmYzNDM2MGIyZTFmMjliYTBkNTA3Yjgz
MDMxMGQyZDQwMzI0OWIzLi4zNzg4M2ZiN2E5MzM2YmEyOTY2ODg3ZmY5NjMyNjQ3MjQ4MDk3MWMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1w
bENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJ
bXBsQ29jb2EubW0KQEAgLTE1MCw1ICsxNTAsMTUgQEAgTlNUZXh0QWx0ZXJuYXRpdmVzICpQYWdl
Q2xpZW50SW1wbENvY29hOjpwbGF0Zm9ybURpY3RhdGlvbkFsdGVybmF0aXZlcyhXZWJDb3JlOjoK
IHsKICAgICByZXR1cm4gbV9hbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXItPmFsdGVybmF0aXZl
c0ZvckNvbnRleHQoZGljdGF0aW9uQ29udGV4dCk7CiB9Ci0gICAgCisKK3ZvaWQgUGFnZUNsaWVu
dEltcGxDb2NvYTo6bWljcm9waG9uZUNhcHR1cmVDaGFuZ2VkKCkKK3sKKyAgICBbbV93ZWJWaWV3
IGRpZENoYW5nZVZhbHVlRm9yS2V5OkAiX21pY3JvcGhvbmVDYXB0dXJlU3RhdGUiXTsKK30KKwor
dm9pZCBQYWdlQ2xpZW50SW1wbENvY29hOjpjYW1lcmFDYXB0dXJlQ2hhbmdlZCgpCit7CisgICAg
W21fd2ViVmlldyBkaWRDaGFuZ2VWYWx1ZUZvcktleTpAIl9jYW1lcmFDYXB0dXJlU3RhdGUiXTsK
K30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxl
Z2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5k
ZXggZjA3ODk5NGMwMjUzYjkyZTU0OGMyODM4NzlkODhlNDQzMDZmZmY3Ni4uMmM1Yzc2YmMzMjgz
Y2M1ODU5ZjBjZmZmNTAyYTZjYzlmM2EwMGJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0xMTgzLDcgKzExODMsNyBAQCB2b2lkIFVJRGVsZWdh
dGU6OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZQogICAgIGlmICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS0+bV9kZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld01lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKQogICAgICAgICByZXR1
cm47CiAKLSAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzp3
ZWJWaWV3LmdldCgpLmdldCgpIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOnRvV0tNZWRpYUNh
cHR1cmVTdGF0ZShzdGF0ZSldOworICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVn
YXRlIF93ZWJWaWV3OndlYlZpZXcuZ2V0KCkuZ2V0KCkgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFu
Z2U6dG9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZChzdGF0ZSldOwogfQogCiB2b2lkIFVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdl
YlBhZ2VQcm94eSosIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBzZWN1cml0eU9yaWdp
biwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkLCBGdW5j
dGlvbjx2b2lkICh1bnNpZ25lZCBsb25nIGxvbmcpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IGM4ODQxOTlmNGI2OTNjMmJjZGE3ZjUz
NzI5Y2RjYTNiMzQyNmYxMmQuLjgzYzZhM2JlYjFhMzI3ZWJjNDZjYzFlYTM0NDUyZGExZjZkZDA4
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTUzMSw2ICs1MzEsOSBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZEhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKCkg
PSAwOwogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgbWljcm9waG9uZUNhcHR1cmVDaGFuZ2Vk
KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGNhbWVyYUNhcHR1cmVDaGFuZ2VkKCkgeyB9CisKICAg
ICB2aXJ0dWFsIHZvaWQgdmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2UoKSB7IH0KIAogI2lm
IEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1NfRkFNSUxZ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGI2N2UxMmZlNjc3ZmVl
MWE1YWM3NWEwYWMwYThmMWUwMjJhYjQwYzguLjk5NWJmYjZmYWFjNDY4Y2RmMjIxOTFjY2VkODA3
ODgyY2E0MWJhODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTEw
MSw3ICsxMDEsNyBAQCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoVwogCiBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6flVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5KCkKIHsKLSAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U3RvcE1lZGlh
Q2FwdHVyZSB7IH0pOworICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Oldl
YlBhZ2U6OlN0b3BNZWRpYUNhcHR1cmUgeyBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5k
OjpBdWRpb1ZpZGVvIH0sIFtdIHsgfSk7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBV
c2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkucmV2b2tlU2FuZGJveEV4dGVuc2lv
bnNJZk5lZWRlZChwYWdlKCkucHJvY2VzcygpKTsKICAgICBwcm94aWVzKCkucmVtb3ZlKHRoaXMp
OwpAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk6OnN0b3BDYXB0dXJlKCkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIp
OwogICAgIGludmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMoKTsKLSAgICBtX3BhZ2Uuc3RvcE1lZGlh
Q2FwdHVyZSgpOworICAgIG1fcGFnZS5zdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhQ2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8pOwogfQogCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJlRGV2aWNlc0NoYW5nZWQoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZTQ2ODgwODk1YTkzMzVmOWQ5ZWYy
NDJiYzFmOGU2NzhiZjI3NWQ3OS4uMTc2NmZmNGM5NjAzMTM5ODQyZTIyZTk2MTFhZWIxMWU2ZmUx
ZWI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01OTY2
LDEyICs1OTY2LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNZWRpYVZvbHVtZShmbG9hdCB2
b2x1bWUpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0TWVkaWFWb2x1bWUodm9sdW1l
KSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TXV0ZWQo
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV9tdXRlZFN0YXRl
ID0gc3RhdGU7CiAKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCi0gICAgICAgIHJldHVy
bjsKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogICAgIGJvb2wgaGFzTXV0ZWRDYXB0dXJlU3RyZWFtcyA9IG1fbWVkaWFTdGF0
ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkQ2FwdHVyZU1hc2s7CkBAIC01OTgxLDcg
KzU5ODEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlKQogCiAgICAgbV9wcm9jZXNzLT5wYWdlTXV0ZWRT
dGF0ZUNoYW5nZWQobV93ZWJQYWdlSUQsIHN0YXRlKTsKIAotICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OlNldE11dGVkKHN0YXRlKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpXZWJQYWdlOjpTZXRNdXRlZChzdGF0ZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
ICAgICBhY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKHsgQWN0aXZpdHlTdGF0ZTo6SXNBdWRpYmxlLCBB
Y3Rpdml0eVN0YXRlOjpJc0NhcHR1cmluZ01lZGlhIH0pOwogfQogCkBAIC01OTk3LDE1ICs1OTk3
LDE1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNZWRpYUNhcHR1cmVFbmFibGVkKGJvb2wgZW5h
YmxlZCkKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c3RvcE1lZGlhQ2FwdHVyZSgp
Cit2b2lkIFdlYlBhZ2VQcm94eTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRp
YUNhcHR1cmVLaW5kIGtpbmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCi0gICAgICAgIHJldHVy
bjsKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogICAgIGlmIChtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcikK
ICAgICAgICAgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXItPnJlc2V0QWNjZXNz
KCk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U3RvcE1lZGlhQ2FwdHVyZSgpKTsKKyAg
ICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6OlN0b3BNZWRpYUNhcHR1cmUo
a2luZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICNlbmRpZgogfQogCkBAIC05MTM3
LDggKzkxMzcsMTUgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVJlcG9ydGVkTWVkaWFDYXB0
dXJlU3RhdGUoKQogCiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChXZWJSVEMsICJ1cGRhdGVS
ZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlOiBmcm9tICVkIHRvICVkIiwgbV9yZXBvcnRlZE1lZGlh
Q2FwdHVyZVN0YXRlLCBhY3RpdmVDYXB0dXJlU3RhdGUpOwogCisgICAgYm9vbCBtaWNyb3Bob25l
Q2FwdHVyZUNoYW5nZWQgPSAobV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlICYgTWVkaWFQcm9k
dWNlcjo6QXVkaW9DYXB0dXJlTWFzaykgIT0gKGFjdGl2ZUNhcHR1cmVTdGF0ZSAmIE1lZGlhUHJv
ZHVjZXI6OkF1ZGlvQ2FwdHVyZU1hc2spOworICAgIGJvb2wgY2FtZXJhQ2FwdHVyZUNoYW5nZWQg
PSAobV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlICYgTWVkaWFQcm9kdWNlcjo6VmlkZW9DYXB0
dXJlTWFzaykgIT0gKGFjdGl2ZUNhcHR1cmVTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OlZpZGVvQ2Fw
dHVyZU1hc2spOworCiAgICAgbV9yZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlID0gYWN0aXZlQ2Fw
dHVyZVN0YXRlOwogICAgIG1fdWlDbGllbnQtPm1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKG1f
bWVkaWFTdGF0ZSk7CisgICAgaWYgKG1pY3JvcGhvbmVDYXB0dXJlQ2hhbmdlZCkKKyAgICAgICAg
cGFnZUNsaWVudCgpLm1pY3JvcGhvbmVDYXB0dXJlQ2hhbmdlZCgpOworICAgIGlmIChjYW1lcmFD
YXB0dXJlQ2hhbmdlZCkKKyAgICAgICAgcGFnZUNsaWVudCgpLmNhbWVyYUNhcHR1cmVDaGFuZ2Vk
KCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojp2aWRlb0NvbnRyb2xzTWFuYWdlckRpZENoYW5n
ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGU0NzU4MGZiYTg1
ZDAwZDRjNmQ2NWMwM2RlNDM3YTQyMmEwMjliY2EuLjRhMzRlNDBlMWVkYmZhZWNhYjYxOWQxNzI2
ZGUyNmUyYzczODc0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBA
IC0xMzI2LDEzICsxMzI2LDEzIEBAIHB1YmxpYzoKICAgICB1aW50NjRfdCByZW5kZXJUcmVlU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyVHJlZVNpemU7IH0KIAogICAgIHZvaWQgc2V0TWVk
aWFWb2x1bWUoZmxvYXQpOwotICAgIHZvaWQgc2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNl
cjo6TXV0ZWRTdGF0ZUZsYWdzKTsKKyAgICB2b2lkIHNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok11dGVkU3RhdGVGbGFncywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0gW10g
eyB9KTsKICAgICBib29sIGlzQXVkaW9NdXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWRTdGF0
ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkF1ZGlvSXNNdXRlZDsgfTsKICAgICB2b2lkIHNl
dE1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3coYm9vbCk7CiAgICAgYm9vbCBtYXlTdGFydE1lZGlh
V2hlbkluV2luZG93KCkgY29uc3QgeyByZXR1cm4gbV9tYXlTdGFydE1lZGlhV2hlbkluV2luZG93
OyB9CiAgICAgdm9pZCBzZXRNZWRpYUNhcHR1cmVFbmFibGVkKGJvb2wpOwogICAgIGJvb2wgbWVk
aWFDYXB0dXJlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFDYXB0dXJlRW5hYmxlZDsg
fQotICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVyZSgpOworICAgIHZvaWQgc3RvcE1lZGlhQ2FwdHVy
ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgPSBbXSB7IH0pOwogCiAgICAgdm9pZCBwYXVzZUFsbE1lZGlhUGxheWJh
Y2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHN1c3BlbmRBbGxNZWRp
YVBsYXliYWNrKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDYyOWNkYjc0OGQ4MmJiMGNmNWU5
ZjU3NjQ5MTJhMzc2Y2FmOTA3NDMuLjI2Yjc2NDIzNzI4YjFhY2UyYWM0Y2U2ZmE5ZTliN2FiOWEz
OThjYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC03NTEsNyArNzUxLDcgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdl
SUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIAogICAgIHNl
dE1lZGlhVm9sdW1lKHBhcmFtZXRlcnMubWVkaWFWb2x1bWUpOwogCi0gICAgc2V0TXV0ZWQocGFy
YW1ldGVycy5tdXRlZCk7CisgICAgc2V0TXV0ZWQocGFyYW1ldGVycy5tdXRlZCwgW10geyB9KTsK
IAogICAgIC8vIFdlIHVzZSB0aGUgRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0IG1pbGVz
dG9uZSB0byBkZXRlcm1pbmUgd2hlbiB0byB1bmZyZWV6ZSB0aGUgbGF5ZXIgdHJlZS4KICAgICBt
X3BhZ2UtPmFkZExheW91dE1pbGVzdG9uZXMoeyBEaWRGaXJzdExheW91dCwgRGlkRmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0IH0pOwpAQCAtNTM2NSwxNiArNTM2NSwxOCBAQCB2b2lkIFdlYlBh
Z2U6OnNldE1lZGlhVm9sdW1lKGZsb2F0IHZvbHVtZSkKICAgICBtX3BhZ2UtPnNldE1lZGlhVm9s
dW1lKHZvbHVtZSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6c2V0TXV0ZWQoTWVkaWFQcm9kdWNlcjo6
TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlKQordm9pZCBXZWJQYWdlOjpzZXRNdXRlZChNZWRpYVByb2R1
Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBtX3BhZ2UtPnNldE11dGVkKHN0YXRlKTsKKyAgICBj
b21wbGV0aW9uSGFuZGxlcigpOwogfQogCi12b2lkIFdlYlBhZ2U6OnN0b3BNZWRpYUNhcHR1cmUo
KQordm9pZCBXZWJQYWdlOjpzdG9wTWVkaWFDYXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2Fw
dHVyZUtpbmQga2luZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgbV9wYWdlLT5zdG9wTWVkaWFD
YXB0dXJlKCk7CisgICAgbV9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKGtpbmQpOwogI2VuZGlmCisg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzZXRNYXlTdGFydE1l
ZGlhV2hlbkluV2luZG93KGJvb2wgbWF5U3RhcnRNZWRpYSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAxYzdmNDZiNjViYjNmNzJjNjlkNzIzMjBmYTY3
Nzg2NzYyZjQ5OTQwLi4zNmRlM2E1NGIyNzM0YjI4ZGFhYmQwMzVmMjYzY2Q5MWE5Yzk2OTg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC05ODgsOSAr
OTg4LDkgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlUmVzb3VyY2VSZXF1ZXN0KHVuc2lnbmVk
IGxvbmcpOwogCiAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9hdCk7Ci0gICAgdm9pZCBzZXRN
dXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MpOworICAgIHZvaWQg
c2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0TWF5U3RhcnRNZWRpYVdoZW5Jbldp
bmRvdyhib29sKTsKLSAgICB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoKTsKKyAgICB2b2lkIHN0b3BN
ZWRpYUNhcHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIHZvaWQgdXBkYXRlTWFpbkZyYW1lU2Ny
b2xsT2Zmc2V0UGlubmluZygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAzYmU4OGFhMGNhNGFiZjEyYWJmZTMz
Njk2ZTQxMmYzNTVjOTE4ZDc4Li5kNTEyNDgwZWY4MTE2OWQyNDYzYjQzMWM5OWVhMzcyNzg3ODM0
NDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KQEAgLTQxNSw5ICs0MTUsOSBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRp
bmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlw
ZQogCiAgICAgIyBNZWRpYQogICAgIFNldE1lZGlhVm9sdW1lKGZsb2F0IHZvbHVtZSkKLSAgICBT
ZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MgbXV0ZWQpCisg
ICAgU2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG11dGVk
KSAtPiAoKSBBc3luYwogICAgIFNldE1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3coYm9vbCBtYXlT
dGFydE1lZGlhKQotICAgIFN0b3BNZWRpYUNhcHR1cmUoKQorICAgIFN0b3BNZWRpYUNhcHR1cmUo
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCBraW5kKSAtPiAoKSBBc3lu
YwogCiAgICAgU2V0Q2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGJvb2wgY2FuUnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsKQogICAgIFNldENhblJ1bk1vZGFsKGJvb2wgY2FuUnVuTW9k
YWwpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
N2NiODRiNzZiMDFiNWRhYzFmNzlhNWQxOWM4MzQ0ZmRhNTRlMmNkOC4uYjc0YzdlY2NlZDg0MzVj
MzhiY2E2OGMzNmRmMzQzNTczOTY5MmFlZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTAyLTE5ICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgY2FtZXJhIGFuZCBt
aWNyb3Bob25lIGNhcHR1cmUgc3RhdGUgY29udHJvbCBXS1dlYlZpZXcgQVBJCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNjYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhZWQgYWNjb3JkaW5nIHJl
bmFtaW5nIG9mIF9XS01lZGlhQ2FwdHVyZVN0YXRlIGluIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVw
cmVjYXRlZC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJN
ZWRpYS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OndrTWVkaWFDYXB0dXJlU3RhdGVTdHJp
bmcpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6d2FpdFVudGlsQ2FwdHVyZVN0YXRlKToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hlZC5tbToKKyAgICAgICAgKC1bTWVkaWFT
dHJlYW1UcmFja0RldGFjaGVkVUlEZWxlZ2F0ZSBfd2ViVmlldzptZWRpYUNhcHR1cmVTdGF0ZURp
ZENoYW5nZTpdKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1By
b2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAgICAgICAoLVtHZXRVc2VyTWVkaWFVSURlbGVn
YXRlIF93ZWJWaWV3Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOl0pOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW06CisgICAg
ICAgICgtW1NwZWVjaFJlY29nbml0aW9uVUlEZWxlZ2F0ZSBfd2ViVmlldzptZWRpYUNhcHR1cmVT
dGF0ZURpZENoYW5nZTpdKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RD
b250cm9sbGVyQ29jb2EubW06CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppc0RvaW5n
TWVkaWFDYXB0dXJlIGNvbnN0KToKKwogMjAyMS0wMi0xOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIE1FRElBX1NPVVJDRSBpbiBJT1MgU2ltdWxh
dG9yCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2Vy
TWVkaWEubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEu
bW0KaW5kZXggNDQ0YzA2N2JlNzMwMmEzNWE3N2RjMjNlZTBmMzkxMWVjMGQzMzE2OC4uYzE0NDJj
ZWE2YjkyNDc0YmE2ODRlYzJjYjMzY2JhYzk3OWZlMDBjMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRpYS5tbQpAQCAtNjAsMjkgKzYwLDI5IEBA
IHN0YXRpYyBib29sIGRvbmU7CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAotc3RhdGlj
IFN0cmluZyB3a01lZGlhQ2FwdHVyZVN0YXRlU3RyaW5nKF9XS01lZGlhQ2FwdHVyZVN0YXRlIGZs
YWdzKQorc3RhdGljIFN0cmluZyB3a01lZGlhQ2FwdHVyZVN0YXRlU3RyaW5nKF9XS01lZGlhQ2Fw
dHVyZVN0YXRlRGVwcmVjYXRlZCBmbGFncykKIHsKICAgICBTdHJpbmdCdWlsZGVyIHN0cmluZzsK
LSAgICBpZiAoZmxhZ3MgJiBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZU1pY3JvcGhvbmUpCi0g
ICAgICAgIHN0cmluZy5hcHBlbmQoIl9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWljcm9waG9u
ZSArICIpOwotICAgIGlmIChmbGFncyAmIF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJh
KQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNhbWVy
YSArICIpOwotICAgIGlmIChmbGFncyAmIF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRNaWNyb3Bo
b25lKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkTWlj
cm9waG9uZSArICIpOwotICAgIGlmIChmbGFncyAmIF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRD
YW1lcmEpCi0gICAgICAgIHN0cmluZy5hcHBlbmQoIl9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRD
YW1lcmEgKyAiKTsKKyAgICBpZiAoZmxhZ3MgJiBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0
ZWRBY3RpdmVNaWNyb3Bob25lKQorICAgICAgICBzdHJpbmcuYXBwZW5kKCJfV0tNZWRpYUNhcHR1
cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVNaWNyb3Bob25lICsgIik7CisgICAgaWYgKGZsYWdzICYg
X1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlQ2FtZXJhKQorICAgICAgICBzdHJp
bmcuYXBwZW5kKCJfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVDYW1lcmEgKyAi
KTsKKyAgICBpZiAoZmxhZ3MgJiBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRNdXRlZE1p
Y3JvcGhvbmUpCisgICAgICAgIHN0cmluZy5hcHBlbmQoIl9XS01lZGlhQ2FwdHVyZVN0YXRlRGVw
cmVjYXRlZE11dGVkTWljcm9waG9uZSArICIpOworICAgIGlmIChmbGFncyAmIF9XS01lZGlhQ2Fw
dHVyZVN0YXRlRGVwcmVjYXRlZE11dGVkQ2FtZXJhKQorICAgICAgICBzdHJpbmcuYXBwZW5kKCJf
V0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRNdXRlZENhbWVyYSArICIpOwogICAgIGlmIChz
dHJpbmcuaXNFbXB0eSgpKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJfV0tNZWRpYUNhcHR1cmVT
dGF0ZU5vbmUiKTsKKyAgICAgICAgc3RyaW5nLmFwcGVuZCgiX1dLTWVkaWFDYXB0dXJlU3RhdGVE
ZXByZWNhdGVkTm9uZSIpOwogICAgIGVsc2UKICAgICAgICAgc3RyaW5nLnJlc2l6ZShzdHJpbmcu
bGVuZ3RoKCkgLSAyKTsKIAogICAgIHJldHVybiBzdHJpbmcudG9TdHJpbmcoKTsKIH0KIAotYm9v
bCB3YWl0VW50aWxDYXB0dXJlU3RhdGUoV0tXZWJWaWV3ICp3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1
cmVTdGF0ZSBleHBlY3RlZFN0YXRlKQorYm9vbCB3YWl0VW50aWxDYXB0dXJlU3RhdGUoV0tXZWJW
aWV3ICp3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQgZXhwZWN0ZWRTdGF0
ZSkKIHsKICAgICBOU1RpbWVJbnRlcnZhbCBlbmQgPSBbW05TRGF0ZSBkYXRlXSB0aW1lSW50ZXJ2
YWxTaW5jZVJlZmVyZW5jZURhdGVdICsgMTA7Ci0gICAgX1dLTWVkaWFDYXB0dXJlU3RhdGUgc3Rh
dGU7CisgICAgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkIHN0YXRlOwogICAgIGRvIHsK
ICAgICAgICAgc3RhdGUgPSBbd2ViVmlldyBfbWVkaWFDYXB0dXJlU3RhdGVdOwogICAgICAgICBp
ZiAoc3RhdGUgPT0gZXhwZWN0ZWRTdGF0ZSkKQEAgLTExMywzOCArMTEzLDM4IEBAIFRFU1QoV2Vi
S2l0MiwgQ2FwdHVyZU11dGUpCiAgICAgd2ViVmlldy5fbWVkaWFDYXB0dXJlUmVwb3J0aW5nRGVs
YXlGb3JUZXN0aW5nID0gMDsKIAogICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAiZ2V0
VXNlck1lZGlhIl07Ci0gICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZp
ZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJhKSk7CisgICAgRVhQRUNUX1RSVUUo
d2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVj
YXRlZEFjdGl2ZUNhbWVyYSkpOwogCiAgICAgW3dlYlZpZXcgX3NldFBhZ2VNdXRlZDogX1dLTWVk
aWFDYXB0dXJlRGV2aWNlc011dGVkXTsKLSAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJl
U3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZENhbWVyYSkpOworICAgIEVY
UEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVT
dGF0ZURlcHJlY2F0ZWRNdXRlZENhbWVyYSkpOwogICAgIFt3ZWJWaWV3IF9zZXRQYWdlTXV0ZWQ6
IF9XS01lZGlhTm9uZU11dGVkXTsKLSAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3Rh
dGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVDYW1lcmEpKTsKKyAgICBFWFBF
Q1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3Rh
dGVEZXByZWNhdGVkQWN0aXZlQ2FtZXJhKSk7CiAKICAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OkAic3RvcCgpIl07Ci0gICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2Fw
dHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZSkpOworICAgIEVYUEVD
VF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0
ZURlcHJlY2F0ZWROb25lKSk7CiAKICAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAiY2FwdHVyZUF1ZGlvKCkiXTsKLSAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0
dXJlU3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVNaWNyb3Bob25lKSk7
CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlh
Q2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZU1pY3JvcGhvbmUpKTsKICAgICBbd2ViVmlldyBf
c2V0UGFnZU11dGVkOiBfV0tNZWRpYUNhcHR1cmVEZXZpY2VzTXV0ZWRdOwotICAgIEVYUEVDVF9U
UlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11
dGVkTWljcm9waG9uZSkpOworICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3
ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRNdXRlZE1pY3JvcGhvbmUpKTsK
ICAgICBbd2ViVmlldyBfc2V0UGFnZU11dGVkOiBfV0tNZWRpYU5vbmVNdXRlZF07Ci0gICAgRVhQ
RUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0
YXRlQWN0aXZlTWljcm9waG9uZSkpOworICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVT
dGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVNaWNyb3Bo
b25lKSk7CiAKICAgICBbd2ViVmlldyBfc2V0UGFnZU11dGVkOiBfV0tNZWRpYUNhcHR1cmVEZXZp
Y2VzTXV0ZWRdOwotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3
LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkTWljcm9waG9uZSkpOworICAgIEVYUEVDVF9UUlVF
KHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJl
Y2F0ZWRNdXRlZE1pY3JvcGhvbmUpKTsKIAogICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6QCJzdG9wKCkiXTsKLSAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJl
U3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVOb25lKSk7CisgICAgRVhQRUNUX1RS
VUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVw
cmVjYXRlZE5vbmUpKTsKIAogICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6QCJjYXB0dXJlQXVkaW9BbmRWaWRlbygpIl07Ci0gICAgRVhQRUNUX1RSVUUod2FpdFVudGls
Q2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJhIHwg
X1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVNaWNyb3Bob25lKSk7CisgICAgRVhQRUNUX1RSVUUo
d2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVj
YXRlZEFjdGl2ZUNhbWVyYSB8IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZU1p
Y3JvcGhvbmUpKTsKICAgICBbd2ViVmlldyBfc2V0UGFnZU11dGVkOiBfV0tNZWRpYUNhcHR1cmVE
ZXZpY2VzTXV0ZWRdOwotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJW
aWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkQ2FtZXJhIHwgX1dLTWVkaWFDYXB0dXJlU3Rh
dGVNdXRlZE1pY3JvcGhvbmUpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3Rh
dGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTXV0ZWRDYW1lcmEgfCBf
V0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRNdXRlZE1pY3JvcGhvbmUpKTsKICAgICBbd2Vi
VmlldyBfc2V0UGFnZU11dGVkOiBfV0tNZWRpYU5vbmVNdXRlZF07Ci0gICAgRVhQRUNUX1RSVUUo
d2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZl
Q2FtZXJhIHwgX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVNaWNyb3Bob25lKSk7CisgICAgRVhQ
RUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0
YXRlRGVwcmVjYXRlZEFjdGl2ZUNhbWVyYSB8IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRl
ZEFjdGl2ZU1pY3JvcGhvbmUpKTsKIAogICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6QCJzdG9wKCkiXTsKLSAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3Rh
dGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVOb25lKSk7CisgICAgRVhQRUNUX1RSVUUo
d2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVj
YXRlZE5vbmUpKTsKIH0KIAogVEVTVChXZWJLaXQyLCBDYXB0dXJlU3RvcCkKQEAgLTE2NCwxNCAr
MTY0LDE0IEBAIFRFU1QoV2ViS2l0MiwgQ2FwdHVyZVN0b3ApCiAgICAgd2ViVmlldy5VSURlbGVn
YXRlID0gZGVsZWdhdGUuZ2V0KCk7CiAKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpA
ImdldFVzZXJNZWRpYSJdOwotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3
ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYSkpOworICAgIEVYUEVDVF9U
UlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURl
cHJlY2F0ZWRBY3RpdmVDYW1lcmEpKTsKIAogICAgIFtkZWxlZ2F0ZSB3YWl0VW50aWxQcm9tcHRl
ZF07CiAKICAgICBbd2ViVmlldyBfc2V0UGFnZU11dGVkOiBfV0tNZWRpYUNhcHR1cmVEZXZpY2Vz
TXV0ZWRdOwotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBf
V0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkQ2FtZXJhKSk7CisgICAgRVhQRUNUX1RSVUUod2FpdFVu
dGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE11
dGVkQ2FtZXJhKSk7CiAgICAgW3dlYlZpZXcgX3NldFBhZ2VNdXRlZDogX1dLTWVkaWFOb25lTXV0
ZWRdOwotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tN
ZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYSkpOworICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRp
bENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3Rp
dmVDYW1lcmEpKTsKIAogICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
QCJub3RpZnlFbmRlZEV2ZW50KCkiXTsKICAgICBbd2ViVmlldyBfc3RvcE1lZGlhQ2FwdHVyZV07
CkBAIC0xNzksNyArMTc5LDcgQEAgVEVTVChXZWJLaXQyLCBDYXB0dXJlU3RvcCkKICAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsKIAotICAgIEVY
UEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVT
dGF0ZU5vbmUpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmll
dywgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTm9uZSkpOwogCiAgICAgW3dlYlZpZXcg
c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInByb21wdEZvckNhcHR1cmUoKSJdOwogICAg
IFtkZWxlZ2F0ZSB3YWl0VW50aWxQcm9tcHRlZF07CkBAIC0yMDQsNyArMjA0LDcgQEAgVEVTVChX
ZWJLaXQyLCBDYXB0dXJlSW5kaWNhdG9yRGVsYXkpCiAgICAgd2ViVmlldy5VSURlbGVnYXRlID0g
ZGVsZWdhdGUuZ2V0KCk7CiAKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAImdldFVz
ZXJNZWRpYSJdOwotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3
LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYSkpOworICAgIEVYUEVDVF9UUlVFKHdh
aXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0
ZWRBY3RpdmVDYW1lcmEpKTsKIAogICAgIFtkZWxlZ2F0ZSB3YWl0VW50aWxQcm9tcHRlZF07CiAK
QEAgLTIxMiwxMCArMjEyLDEwIEBAIFRFU1QoV2ViS2l0MiwgQ2FwdHVyZUluZGljYXRvckRlbGF5
KQogCiAgICAgLy8gV2Ugd2FpdCAxIHNlY29uZCwgd2Ugc2hvdWxkIHN0aWxsIHNlZSBjYW1lcmEg
YmUgcmVwb3J0ZWQuCiAgICAgc2xlZXAoMV9zKTsKLSAgICBFWFBFQ1RfRVEoW3dlYlZpZXcgX21l
ZGlhQ2FwdHVyZVN0YXRlXSwgX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVDYW1lcmEpOworICAg
IEVYUEVDVF9FUShbd2ViVmlldyBfbWVkaWFDYXB0dXJlU3RhdGVdLCBfV0tNZWRpYUNhcHR1cmVT
dGF0ZURlcHJlY2F0ZWRBY3RpdmVDYW1lcmEpOwogCiAgICAgLy8gT25lIGFkZGl0aW9uYWwgc2Vj
b25kIHNob3VsZCBhbGxvdyB1cyB0byBnbyBiYWNrIHRvIG5vIGNhcHR1cmUgYmVpbmcgcmVwb3J0
ZWQuCi0gICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01l
ZGlhQ2FwdHVyZVN0YXRlTm9uZSkpOworICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVT
dGF0ZSh3ZWJWaWV3LCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWROb25lKSk7CiB9CiAK
IFRFU1QoV2ViS2l0MiwgQ2FwdHVyZUluZGljYXRvckRlbGF5V2hlbkNsb3NlZCkKQEAgLTIzNywx
MyArMjM3LDEzIEBAIFRFU1QoV2ViS2l0MiwgQ2FwdHVyZUluZGljYXRvckRlbGF5V2hlbkNsb3Nl
ZCkKICAgICB3ZWJWaWV3LlVJRGVsZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsKIAogICAgIFt3ZWJW
aWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAiZ2V0VXNlck1lZGlhIl07Ci0gICAgRVhQRUNUX1RSVUUo
d2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcsIF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZl
Q2FtZXJhKSk7CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcs
IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZUNhbWVyYSkpOwogCiAgICAgW2Rl
bGVnYXRlIHdhaXRVbnRpbFByb21wdGVkXTsKIAogICAgIFt3ZWJWaWV3IF9jbG9zZV07CiAKLSAg
ICBFWFBFQ1RfRVEoW3dlYlZpZXcgX21lZGlhQ2FwdHVyZVN0YXRlXSwgX1dLTWVkaWFDYXB0dXJl
U3RhdGVOb25lKTsKKyAgICBFWFBFQ1RfRVEoW3dlYlZpZXcgX21lZGlhQ2FwdHVyZVN0YXRlXSwg
X1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTm9uZSk7CiB9CiAKIFRFU1QoV2ViS2l0Miwg
R2V0Q2FwYWJpbGl0aWVzKQpAQCAtMjYzLDcgKzI2Myw3IEBAIFRFU1QoV2ViS2l0MiwgR2V0Q2Fw
YWJpbGl0aWVzKQogICAgIHdlYlZpZXcuVUlEZWxlZ2F0ZSA9IGRlbGVnYXRlLmdldCgpOwogCiAg
ICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJnZXRVc2VyTWVkaWEiXTsKLSAgICBFWFBF
Q1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3Rh
dGVBY3RpdmVDYW1lcmEpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUo
d2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlQ2FtZXJhKSk7CiAK
ICAgICBbZGVsZWdhdGUgd2FpdFVudGlsUHJvbXB0ZWRdOwogCkBAIC0zNzIsNyArMzcyLDcgQEAg
VEVTVChXZWJLaXQyLCBDcmFzaEdQVVByb2Nlc3NXaGlsZUNhcHR1cmluZykKICAgICB3ZWJWaWV3
LmdldCgpLlVJRGVsZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsKIAogICAgIFt3ZWJWaWV3IGxvYWRU
ZXN0UGFnZU5hbWVkOkAiZ2V0VXNlck1lZGlhIl07Ci0gICAgRVhQRUNUX1RSVUUod2FpdFVudGls
Q2FwdHVyZVN0YXRlKHdlYlZpZXcuZ2V0KCksIF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2Ft
ZXJhKSk7CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcuZ2V0
KCksIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZUNhbWVyYSkpOwogCiAgICAg
ZG9uZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
QCJjYXB0dXJlQXVkaW9BbmRWaWRlbyh0cnVlKSJdOwpAQCAtNDUyLDcgKzQ1Miw3IEBAIFRFU1Qo
V2ViS2l0MiwgQ3Jhc2hHUFVQcm9jZXNzV2hpbGVDYXB0dXJpbmdBbmRDYWxsaW5nKQogICAgIHdl
YlZpZXcuZ2V0KCkuVUlEZWxlZ2F0ZSA9IGRlbGVnYXRlLmdldCgpOwogCiAgICAgW3dlYlZpZXcg
bG9hZFRlc3RQYWdlTmFtZWQ6QCJnZXRVc2VyTWVkaWEiXTsKLSAgICBFWFBFQ1RfVFJVRSh3YWl0
VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldy5nZXQoKSwgX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3Rp
dmVDYW1lcmEpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmll
dy5nZXQoKSwgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlQ2FtZXJhKSk7CiAK
ICAgICBkb25lID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpAImNhcHR1cmVBdWRpb0FuZFZpZGVvKHRydWUpIl07CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNoZWQu
bW0KaW5kZXggZjY5MGJhY2U3OTQ2OTBkOGQ0YmUwYmU4N2NiNTk3NmQ1MzdhM2YyYy4uMDkyNDY5
NDdmYmQ4MGYwMjNjMDAwMzBhMWM0ZmJkMjdlN2MzZTAzYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlhU3RyZWFtVHJhY2tEZXRhY2hl
ZC5tbQpAQCAtMzksMTMgKzM5LDEzIEBACiBzdGF0aWMgYm9vbCBoYXNSZWNlaXZlZENvcnJlY3RD
YXB0dXJlU3RhdGUgPSBmYWxzZTsKIAogQGludGVyZmFjZSBNZWRpYVN0cmVhbVRyYWNrRGV0YWNo
ZWRVSURlbGVnYXRlIDogVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUKLS0gKHZvaWQpX3dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01l
ZGlhQ2FwdHVyZVN0YXRlKXN0YXRlOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXBy
ZWNhdGVkKXN0YXRlOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gTWVkaWFTdHJlYW1UcmFja0Rl
dGFjaGVkVUlEZWxlZ2F0ZQotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBt
ZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUKKy0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRD
aGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZClzdGF0ZQogewotICAgIGlmIChz
dGF0ZSA9PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZU1pY3JvcGhvbmUpCisgICAgaWYgKHN0
YXRlID09IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZU1pY3JvcGhvbmUpCiAg
ICAgICAgIGhhc1JlY2VpdmVkQ29ycmVjdENhcHR1cmVTdGF0ZSA9IHRydWU7CiB9CiBAZW5kCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NT
d2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCBhZGJjOTlkZGMyODIxNWRhYWQwM2Fl
NjNjY2JjODIxYTVjM2E3ODQ0Li44OWMwNDA0YmQ1MjcxYzE2MTBkMGYzZDQ1M2I0MDBmOTdjYTgz
YjNkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1By
b2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTY0ODIsMTMgKzY0ODIs
MTMgQEAgVEVTVChQcm9jZXNzU3dhcCwgTG9hZEFsdGVybmF0aXZlSFRNTCkKIHN0YXRpYyBib29s
IGlzQ2FwdHVyaW5nID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBpc05vdENhcHR1cmluZyA9IGZhbHNl
OwogQGludGVyZmFjZSBHZXRVc2VyTWVkaWFVSURlbGVnYXRlIDogVXNlck1lZGlhQ2FwdHVyZVVJ
RGVsZWdhdGUKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0
dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlOworLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZToo
X1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKXN0YXRlOwogQGVuZAogCiBAaW1wbGVtZW50
YXRpb24gR2V0VXNlck1lZGlhVUlEZWxlZ2F0ZQotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3Rh
dGUpc3RhdGUKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0
dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZClzdGF0ZQog
ewotICAgIGlzQ2FwdHVyaW5nID0gc3RhdGUgPT0gX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVD
YW1lcmE7CisgICAgaXNDYXB0dXJpbmcgPSBzdGF0ZSA9PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZURl
cHJlY2F0ZWRBY3RpdmVDYW1lcmE7CiAgICAgaXNOb3RDYXB0dXJpbmcgPSAhc3RhdGU7CiB9CiBA
ZW5kCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Nw
ZWVjaFJlY29nbml0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9TcGVlY2hSZWNvZ25pdGlvbi5tbQppbmRleCBiOGEwMmFiZmZmNGUzNzVhYzdkMWIyODM2YjA4
YTNkYmUxYTQ3NWY2Li42ZWE2ZWEwZGUyMDRiMWJhNTY2NjBkYTgxY2QzNTU5ZjY2MDhjZWViIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NwZWVjaFJl
Y29nbml0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
U3BlZWNoUmVjb2duaXRpb24ubW0KQEAgLTQ3LDcgKzQ3LDcgQEAgc3RhdGljIFJldGFpblB0cjxX
S1dlYlZpZXc+IGNyZWF0ZWRXZWJWaWV3OwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyByZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRm9yT3JpZ2luOihXS1Nl
Y3VyaXR5T3JpZ2luICopb3JpZ2luIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCkpZGVj
aXNpb25IYW5kbGVyOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1
ZXN0TWVkaWFDYXB0dXJlUGVybWlzc2lvbjooQk9PTClhdWRpbyB2aWRlbzooQk9PTCl2aWRlbyBk
ZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS1Blcm1pc3Npb25EZWNpc2lvbikpZGVjaXNpb25I
YW5kbGVyOwogLSAoV0tXZWJWaWV3ICopd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjcmVh
dGVXZWJWaWV3V2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKiljb25m
aWd1cmF0aW9uIGZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAqKW5hdmln
YXRpb25BY3Rpb24gd2luZG93RmVhdHVyZXM6KFdLV2luZG93RmVhdHVyZXMgKil3aW5kb3dGZWF0
dXJlczsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJl
U3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlOworLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dL
TWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKXN0YXRlOwogQGVuZAogCiBAaW1wbGVtZW50YXRp
b24gU3BlZWNoUmVjb2duaXRpb25VSURlbGVnYXRlCkBAIC03NSw5ICs3NSw5IEBAIHN0YXRpYyBS
ZXRhaW5QdHI8V0tXZWJWaWV3PiBjcmVhdGVkV2ViVmlldzsKICAgICByZXR1cm4gY3JlYXRlZFdl
YlZpZXcuZ2V0KCk7CiB9CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlCist
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVyZVN0YXRlRGlk
Q2hhbmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQpc3RhdGUKIHsKLSAgICBpc0Nh
cHR1cmluZyA9IHN0YXRlID09IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWljcm9waG9uZTsK
KyAgICBpc0NhcHR1cmluZyA9IHN0YXRlID09IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRl
ZEFjdGl2ZU1pY3JvcGhvbmU7CiAgICAgY2FwdHVyZVN0YXRlRGlkQ2hhbmdlID0gdHJ1ZTsKIH0K
IEBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRy
b2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xs
ZXJDb2NvYS5tbQppbmRleCBjZTM2ZmJhMmQ0YmIxNTFmODc5ZTMxYTE1NDJkNGQwNmU5ZTI5ZGU2
Li4yMDBmZDIzMDNhZDM5NWM3Njg4NDRmN2U3NzEyMTJjZWU4NjRhMmNjIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCkBAIC00
ODQsNyArNDg0LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dlZE1lbnVBY3Rpb25z
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhY3Rpb25zKQogCiBib29sIFRlc3RDb250cm9sbGVyOjpp
c0RvaW5nTWVkaWFDYXB0dXJlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9tYWluV2ViVmlldy0+
cGxhdGZvcm1WaWV3KCkuX21lZGlhQ2FwdHVyZVN0YXRlICE9IF9XS01lZGlhQ2FwdHVyZVN0YXRl
Tm9uZTsKKyAgICByZXR1cm4gbV9tYWluV2ViVmlldy0+cGxhdGZvcm1WaWV3KCkuX21lZGlhQ2Fw
dHVyZVN0YXRlICE9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE5vbmU7CiB9CiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422218</attachid>
            <date>2021-03-04 05:45:19 -0800</date>
            <delta_ts>2021-03-04 08:44:23 -0800</delta_ts>
            <desc>Rebasing</desc>
            <filename>bug-222166-20210304144517.patch</filename>
            <type>text/plain</type>
            <size>51788</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGNhYjZmODE4YWI1MGIx
YjQ4Yjk5MWM2ZGQ2ZjI2MGUyNzRjYTEyZC4uMmM2YWJiODljNTNjZTliYTA0MTg5ZDBjZTczNjVl
OWNhMzdlNzIxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTAzLTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgY2FtZXJhIGFu
ZCBtaWNyb3Bob25lIGNhcHR1cmUgc3RhdGUgY29udHJvbCBXS1dlYlZpZXcgQVBJCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIxNjYKKworICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgSW50cm9kdWNlIHRoZSBwb3Nz
aWJpbGl0eSB0byBtdXRlIGVpdGhlciBjYW1lcmEgYW5kL29yIG1pY3JvcGhvbmUgY2FwdHVyZSBp
bmRlcGVuZGVudGx5LgorICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6OnVwZGF0ZUNhcHR1cmVBY2NvcmRpbmdUb011dGVk
U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlVG9QYWdl
TXV0ZWRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjp0cmFja01hdGNoZXNLaW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6OmVuZENhcHR1cmUpOgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c3RvcE1lZGlhQ2FwdHVyZSk6
CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogcGFnZS9NZWRpYVByb2R1Y2Vy
Lmg6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnN0
b3BNZWRpYUNhcHR1cmUpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorCiAyMDIxLTAzLTA0ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBIYW5kbGUgdGhlIGNh
c2Ugb2Ygc3luY2hyb25vdXMgZmFpbHVyZSBpbiBsb2FkaW5nIGJsb2IuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcw
Y2Y5MTQ2MmI1OTc5ZDI4NTMxYjdlYTI5ZDVlMTYzNTE5OWRkYTEuLjk3MGQ0M2QyOWQ4ZTFmY2Q3
NmE0NWZkMmI3MTVlOWEwZGYxYTBlNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjEt
MDMtMDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0
ZSBjYW1lcmEgYW5kIG1pY3JvcGhvbmUgY2FwdHVyZSBzdGF0ZSBjb250cm9sIFdLV2ViVmlldyBB
UEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjE2
NgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBJbnRyb2R1
Y2UgS1ZPIHN0YXRlcyBmb3IgbWljcm9waG9uZSBhbmQgY2FtZXJhIGNhcHR1cmUgc3RhdGVzLgor
ICAgICAgICBBZGQgdHdvIEFQSXMgdG8gc2V0IG1pY3JvcGhvbmUgYW5kIGNhbWVyYSBzdGF0ZS4K
KyAgICAgICAgVGhpcyBhbGxvd3MgdG8gbXV0ZS91bm11dGUgb3Igc3RvcCBtaWNyb3Bob25lIG9y
IGNhbWVyYSBzdGF0ZS4KKyAgICAgICAgV2UgbmVlZGVkIHRvIGludHJvZHVjZSBtdXRpbmcgb2Yg
ZWl0aGVyIG1pY3JvcGhvbmUgb3IgY2FtZXJhIHNpbmNlIHRoaXMgd2FzIHRpZWQgdG9nZXRoZXIg
YmVmb3JlIHRoZSBwYXRjaC4KKyAgICAgICAgVGhlc2UgdHdvIEFQSXMgdGFrZSBhIGNvbXBsZXRp
b24gaGFuZGxlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRl
UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX2NhbWVyYUNhcHR1cmVTdGF0ZV0pOgorICAgICAgICAoLVtX
S1dlYlZpZXcgX21pY3JvcGhvbmVDYXB0dXJlU3RhdGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IHNldE1pY3JvcGhvbmVDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyBzZXRDYW1lcmFDYXB0dXJlU3RhdGU6Y29tcGxldGlvbkhhbmRsZXI6XSk6
CisgICAgICAgICgtW1dLV2ViVmlldyBfc3RvcE1lZGlhQ2FwdHVyZV0pOgorICAgICAgICAoLVtX
S1dlYlZpZXcgX21lZGlhQ2FwdHVyZVN0YXRlXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL01lZGlh
VXRpbGl0aWVzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLm1t
OgorICAgICAgICAoV2ViS2l0Ojp0b1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKToKKyAg
ICAgICAgKFdlYktpdDo6dG9XS01lZGlhQ2FwdHVyZVN0YXRlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdl
Q2xpZW50SW1wbENvY29hOjptaWNyb3Bob25lQ2FwdHVyZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50SW1wbENvY29hOjpjYW1lcmFDYXB0dXJlQ2hhbmdlZCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OlVJRGVs
ZWdhdGU6OlVJQ2xpZW50OjptZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6bWlj
cm9waG9uZUNhcHR1cmVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6Y2Ft
ZXJhQ2FwdHVyZUNoYW5nZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp+VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6c3RvcENhcHR1cmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldE11dGVkKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdG9wTWVkaWFDYXB0dXJlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVSZXBvcnRlZE1lZGlhQ2FwdHVyZVN0YXRlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6c2V0TXV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0
b3BNZWRpYUNhcHR1cmUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6bV9sYXN0TmF2aWdhdGlvbldhc0FwcEJvdW5kKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0TXV0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpzdG9wTWVkaWFDYXB0dXJlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgor
CiAyMDIxLTAzLTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OIChyMjczNzMyKTogQVNTRVJUSU9OIEZBSUxFRDogQ29tcGxldGlvbiBoYW5k
bGVyIHNob3VsZCBhbHdheXMgYmUgY2FsbGVkIHVuZGVyIFdlYktpdDo6UmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZVByb3h5Ojp+UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
LmNwcAppbmRleCBkYTkyZWNhZjU3MTQ2YTgxYzI0M2I5YzhmNGEwYzE2YjU0NjRhYTZlLi45OTM4
YzA5MDU4MTcxYTU4MWM2ZmY4MmQ2ODkwYmNkOTU3NWMwNGI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKQEAg
LTQ3OSwxMyArNDc5LDEzIEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlQ2FwdHVyZUFj
Y29yZGluZ1RvTXV0ZWRTdGF0ZShEb2N1bWVudCYgZG9jdW1lbnQpCiAKICAgICBhdXRvKiBhY3Rp
dmVBdWRpb1NvdXJjZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1
ZGlvQ2FwdHVyZUZhY3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKICAgICBpZiAoYWN0aXZlQXVkaW9T
b3VyY2UgJiYgaXNTb3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9jdW1lbnQoKmFjdGl2ZUF1ZGlv
U291cmNlLCBkb2N1bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdlTXV0ZWQgPSBwYWdlLT5tdXRl
ZFN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyOjpBdWRpb0FuZFZpZGVvQ2FwdHVyZUlzTXV0ZWQ7Cisg
ICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0ZSgpICYgTWVkaWFQcm9kdWNl
cjo6QXVkaW9DYXB0dXJlSXNNdXRlZDsKICAgICAgICAgYWN0aXZlQXVkaW9Tb3VyY2UtPnNldE11
dGVkKHBhZ2VNdXRlZCB8fCAoZG9jdW1lbnQuaGlkZGVuKCkgJiYgZG9jdW1lbnQuc2V0dGluZ3Mo
KS5pbnRlcnJ1cHRBdWRpb09uUGFnZVZpc2liaWxpdHlDaGFuZ2VFbmFibGVkKCkpKTsKICAgICB9
CiAKICAgICBhdXRvKiBhY3RpdmVWaWRlb1NvdXJjZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNpbmdsZXRvbigpLnZpZGVvQ2FwdHVyZUZhY3RvcnkoKS5hY3RpdmVTb3VyY2UoKTsKICAg
ICBpZiAoYWN0aXZlVmlkZW9Tb3VyY2UgJiYgaXNTb3VyY2VDYXB0dXJpbmdGb3JUcmFja0luRG9j
dW1lbnQoKmFjdGl2ZVZpZGVvU291cmNlLCBkb2N1bWVudCkpIHsKLSAgICAgICAgYm9vbCBwYWdl
TXV0ZWQgPSBwYWdlLT5tdXRlZFN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyOjpBdWRpb0FuZFZpZGVv
Q2FwdHVyZUlzTXV0ZWQ7CisgICAgICAgIGJvb2wgcGFnZU11dGVkID0gcGFnZS0+bXV0ZWRTdGF0
ZSgpICYgTWVkaWFQcm9kdWNlcjo6VmlkZW9DYXB0dXJlSXNNdXRlZDsKICAgICAgICAgYWN0aXZl
VmlkZW9Tb3VyY2UtPnNldE11dGVkKHBhZ2VNdXRlZCB8fCBkb2N1bWVudC5oaWRkZW4oKSk7CiAg
ICAgfQogI2Vsc2UKQEAgLTUwNSw4ICs1MDUsMTAgQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp1
cGRhdGVUb1BhZ2VNdXRlZFN0YXRlKCkKIAogICAgIHN3aXRjaCAoc291cmNlKCkuZGV2aWNlVHlw
ZSgpKSB7CiAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lOgor
ICAgICAgICBtX3ByaXZhdGUtPnNldE11dGVkKHBhZ2UtPm11dGVkU3RhdGUoKSAmIE1lZGlhUHJv
ZHVjZXI6OkF1ZGlvQ2FwdHVyZUlzTXV0ZWQpOworICAgICAgICBicmVhazsKICAgICBjYXNlIENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKLSAgICAgICAgbV9wcml2YXRlLT5zZXRN
dXRlZChwYWdlLT5tdXRlZFN0YXRlKCkgJiBNZWRpYVByb2R1Y2VyOjpBdWRpb0FuZFZpZGVvQ2Fw
dHVyZUlzTXV0ZWQpOworICAgICAgICBtX3ByaXZhdGUtPnNldE11dGVkKHBhZ2UtPm11dGVkU3Rh
dGUoKSAmIE1lZGlhUHJvZHVjZXI6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNjcmVlbjoKICAgICBjYXNl
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKQEAgLTUxOSwxMSArNTIxLDIzIEBA
IHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dXBkYXRlVG9QYWdlTXV0ZWRTdGF0ZSgpCiAgICAgfQog
fQogCi12b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmVuZENhcHR1cmUoRG9jdW1lbnQmIGRvY3VtZW50
KQorc3RhdGljIGlubGluZSBib29sIHRyYWNrTWF0Y2hlc0tpbmQoUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZSB0eXBlLCBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kIGtpbmQpCit7Cisg
ICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVL
aW5kOjpBdWRpbzoKKyAgICAgICAgcmV0dXJuIHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6QXVkaW87CisgICAgY2FzZSBNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpB
dWRpb1ZpZGVvOgorICAgICAgICByZXR1cm4gdHlwZSAhPSBSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlOjpOb25lOworICAgIGNhc2UgTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6Vmlk
ZW86CisgICAgICAgIHJldHVybiB0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZp
ZGVvOworICAgIH0KK30KKwordm9pZCBNZWRpYVN0cmVhbVRyYWNrOjplbmRDYXB0dXJlKERvY3Vt
ZW50JiBkb2N1bWVudCwgTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCBraW5kKQogewog
ICAgIGJvb2wgZGlkRW5kQ2FwdHVyZSA9IGZhbHNlOwogICAgIGZvciAoYXV0byogY2FwdHVyZVRy
YWNrIDogYWxsQ2FwdHVyZVRyYWNrcygpKSB7Ci0gICAgICAgIGlmIChjYXB0dXJlVHJhY2stPmRv
Y3VtZW50KCkgIT0gJmRvY3VtZW50KQorICAgICAgICBpZiAoY2FwdHVyZVRyYWNrLT5kb2N1bWVu
dCgpICE9ICZkb2N1bWVudCB8fCAhdHJhY2tNYXRjaGVzS2luZChjYXB0dXJlVHJhY2stPnByaXZh
dGVUcmFjaygpLnR5cGUoKSwga2luZCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
Y2FwdHVyZVRyYWNrLT5zdG9wVHJhY2soTWVkaWFTdHJlYW1UcmFjazo6U3RvcE1vZGU6OlBvc3RF
dmVudCk7CiAgICAgICAgIGRpZEVuZENhcHR1cmUgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAppbmRleCBmMzgw
ZTZkMDU3ZmY1NjYyMTYwZjMxN2Y4Nzc5YjYwZmZmMjY4MzZjLi41OTJhYjJiYjE1OGU3ZDM1NTIw
YmI1ZTRlYzRiMDdmZDAxOTIxNGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaApAQCAtNjksNyArNjksNyBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxNZWRpYVN0cmVhbVRyYWNrPiBjcmVhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJik7CiAgICAgdmlydHVh
bCB+TWVkaWFTdHJlYW1UcmFjaygpOwogCi0gICAgc3RhdGljIHZvaWQgZW5kQ2FwdHVyZShEb2N1
bWVudCYpOworICAgIHN0YXRpYyB2b2lkIGVuZENhcHR1cmUoRG9jdW1lbnQmLCBNZWRpYVByb2R1
Y2VyOjpNZWRpYUNhcHR1cmVLaW5kKTsKIAogICAgIHN0YXRpYyBNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MgY2FwdHVyZVN0YXRlKERvY3VtZW50Jik7CiAgICAgc3RhdGljIHZvaWQgdXBk
YXRlQ2FwdHVyZUFjY29yZGluZ1RvTXV0ZWRTdGF0ZShEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKaW5kZXggYjJhZjAxMWFmOWRhMzk4NDMyN2M3NzJkODhmMGYxMzBhMDc5M2I1OS4u
NDFlYmVjOGRhYzY4NGQxYzc2MGRlOGM2ZDY5NDVjNmZhM2Q1ZDg5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCkBAIC04MDUyLDkgKzgwNTIsOSBAQCB2b2lkIERvY3VtZW50OjpvcmllbnRhdGlv
bkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKQogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAot
dm9pZCBEb2N1bWVudDo6c3RvcE1lZGlhQ2FwdHVyZSgpCit2b2lkIERvY3VtZW50OjpzdG9wTWVk
aWFDYXB0dXJlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCkKIHsKLSAgICBN
ZWRpYVN0cmVhbVRyYWNrOjplbmRDYXB0dXJlKCp0aGlzKTsKKyAgICBNZWRpYVN0cmVhbVRyYWNr
OjplbmRDYXB0dXJlKCp0aGlzLCBraW5kKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6bWVkaWFTdHJl
YW1DYXB0dXJlU3RhdGVDaGFuZ2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNDU3NDc4Y2Uw
MWUxODZjODZjMjU1NjFjOTBlMDAzYTQ3MTBjMjEyOS4uZDM4YTk0ZDkxMmE4NjVlZGUxNWYwYmJl
NzYzYmI1ZTg2ZDZhODg0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTE0MzcsNyArMTQzNyw3
IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHZvaWQgc2V0SGFzQ2Fw
dHVyZU1lZGlhU3RyZWFtVHJhY2soKSB7IG1faGFzSGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2sg
PSB0cnVlOyB9CiAgICAgYm9vbCBoYXNIYWRDYXB0dXJlTWVkaWFTdHJlYW1UcmFjaygpIGNvbnN0
IHsgcmV0dXJuIG1faGFzSGFkQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2s7IH0KLSAgICB2b2lkIHN0
b3BNZWRpYUNhcHR1cmUoKTsKKyAgICB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNl
cjo6TWVkaWFDYXB0dXJlS2luZCk7CiAgICAgdm9pZCBtZWRpYVN0cmVhbUNhcHR1cmVTdGF0ZUNo
YW5nZWQoKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lZGlh
UHJvZHVjZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9kdWNlci5oCmluZGV4IDhi
MWYwMWM1MWVlNzY4ZWZkNjJhNjdkMDg2NjdlYWU4MDFkNjY4OTMuLmIxN2U2OWYyMTA2YWE5Y2Yy
OGZhNGQ1MjYzZjk1MmE3N2ZjODVhMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TWVkaWFQcm9kdWNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVkaWFQcm9kdWNlci5o
CkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0VudW1U
cmFpdHMuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC02OCwxMyArNjksMjEgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBNZWRpYVN0YXRlRmxh
Z3MgbWVkaWFTdGF0ZSgpIGNvbnN0ID0gMDsKIAorICAgIGVudW0gY2xhc3MgTWVkaWFDYXB0dXJl
S2luZCB7CisgICAgICAgIEF1ZGlvLAorICAgICAgICBWaWRlbywKKyAgICAgICAgQXVkaW9WaWRl
bworICAgIH07CisKICAgICBlbnVtIE11dGVkU3RhdGUgewogICAgICAgICBOb25lTXV0ZWQgPSAw
LAogICAgICAgICBBdWRpb0lzTXV0ZWQgPSAxIDw8IDAsCi0gICAgICAgIEF1ZGlvQW5kVmlkZW9D
YXB0dXJlSXNNdXRlZCA9IDEgPDwgMSwKLSAgICAgICAgU2NyZWVuQ2FwdHVyZUlzTXV0ZWQgPSAx
IDw8IDIsCisgICAgICAgIEF1ZGlvQ2FwdHVyZUlzTXV0ZWQgPSAxIDw8IDEsCisgICAgICAgIFZp
ZGVvQ2FwdHVyZUlzTXV0ZWQgPSAxIDw8IDIsCisgICAgICAgIFNjcmVlbkNhcHR1cmVJc011dGVk
ID0gMSA8PCAzLAogCi0gICAgICAgIE1lZGlhU3RyZWFtQ2FwdHVyZUlzTXV0ZWQgPSBBdWRpb0Fu
ZFZpZGVvQ2FwdHVyZUlzTXV0ZWQgfCBTY3JlZW5DYXB0dXJlSXNNdXRlZCwKKyAgICAgICAgQXVk
aW9BbmRWaWRlb0NhcHR1cmVJc011dGVkID0gQXVkaW9DYXB0dXJlSXNNdXRlZCB8IFZpZGVvQ2Fw
dHVyZUlzTXV0ZWQsCisgICAgICAgIE1lZGlhU3RyZWFtQ2FwdHVyZUlzTXV0ZWQgPSBBdWRpb0Nh
cHR1cmVJc011dGVkIHwgVmlkZW9DYXB0dXJlSXNNdXRlZCB8IFNjcmVlbkNhcHR1cmVJc011dGVk
LAogICAgIH07CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBNdXRlZFN0YXRlRmxhZ3M7CiAKQEAgLTg1
LDMgKzk0LDE2IEBAIHByb3RlY3RlZDoKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZD4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtp
bmQsCisgICAgICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OkF1
ZGlvLAorICAgICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpW
aWRlbywKKyAgICAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZDo6
QXVkaW9WaWRlbworICAgID47Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBmOTUyMDFk
MTI2MDg2M2FjYmFjMjkzZmIxZjk1YmYxYjViYWYyYmI2Li5iNzZiZWY0MTNiODg1ZDVlYjUwYTlm
ZTU0YmM2ZTJjZGYyNTc1YTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTIxMTgsMTEgKzIxMTgs
MTIgQEAgdm9pZCBQYWdlOjpzZXRNdXRlZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mg
bXV0ZWQpCiAgICAgfSk7CiB9CiAKLXZvaWQgUGFnZTo6c3RvcE1lZGlhQ2FwdHVyZSgpCit2b2lk
IFBhZ2U6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCBr
aW5kKQogeworICAgIFVOVVNFRF9QQVJBTShraW5kKTsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQotICAgIGZvckVhY2hEb2N1bWVudChbXSAoRG9jdW1lbnQmIGRvY3VtZW50KSB7Ci0gICAgICAg
IGRvY3VtZW50LnN0b3BNZWRpYUNhcHR1cmUoKTsKKyAgICBmb3JFYWNoRG9jdW1lbnQoW2tpbmRd
IChEb2N1bWVudCYgZG9jdW1lbnQpIHsKKyAgICAgICAgZG9jdW1lbnQuc3RvcE1lZGlhQ2FwdHVy
ZShraW5kKTsKICAgICB9KTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCAxNTJmNDkyNDQ0
ZTE5MzA0YzgyNmJlMmYzMWY4YWQyMjI1NDkwOTlkLi5kMDdlZGVmN2VhNmRlNjA5YWIxZmRlNzVh
MjJiNWE1MDUxNzliMTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNjk1LDcgKzY5NSw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNjaGVkdWxlUGxheWJhY2tDb250cm9sc01hbmFnZXJVcGRhdGUoKTsKICAg
ICB2b2lkIHBsYXliYWNrQ29udHJvbHNNZWRpYUVuZ2luZUNoYW5nZWQoKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyk7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKCk7CisKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJl
S2luZCk7CiAKICAgICBNZWRpYVNlc3Npb25Hcm91cElkZW50aWZpZXIgbWVkaWFTZXNzaW9uR3Jv
dXBJZGVudGlmaWVyKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBtZWRpYVBsYXli
YWNrRXhpc3RzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCAzYTFkM2ZiMDdkZTNhZTE4ODM0ZTJiYTk1
YWM1NWQxMTYzOTE1Njg5Li5hZmQ2YWI0ZDRiMjlhN2M5MDA1MWIxNjRmNDEzMDZmN2Y0OTg2YWY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVn
YXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJ
RGVsZWdhdGVQcml2YXRlLmgKQEAgLTEyNiw3ICsxMjYsNyBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRz
OwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBpbmNsdWRlU2Vuc2l0aXZl
TWVkaWFEZXZpY2VEZXRhaWxzOih2b2lkICheKShCT09MIGluY2x1ZGVTZW5zaXRpdmVEZXRhaWxz
KSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4w
KSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RVc2VyTWVk
aWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczooX1dLQ2FwdHVyZURldmljZXMpZGV2aWNlcyB1cmw6
KE5TVVJMICopdXJsIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkwgZGVjaXNpb25I
YW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOihOU1VSTCAq
KXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRlbnRpZmllcjoo
TlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShOU1N0
cmluZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMi4zKSwgaW9zKDEwLjMpKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVy
ZVN0YXRlKXN0YXRlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwor
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURp
ZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKXN0YXRlIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogLSAoV0tEcmFnRGVzdGluYXRpb25BY3Rp
b24pX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTWFz
a0ZvckRyYWdnaW5nSW5mbzooaWQpZHJhZ2dpbmdJbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTMpLCBpb3MoMTEuMCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBjcmVhdGVXZWJWaWV3V2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpb24g
Kiljb25maWd1cmF0aW9uIGZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlvbiAq
KW5hdmlnYXRpb25BY3Rpb24gd2luZG93RmVhdHVyZXM6KFdLV2luZG93RmVhdHVyZXMgKil3aW5k
b3dGZWF0dXJlcyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV0tXZWJWaWV3ICp3ZWJWaWV3
KSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDEx
LjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdEdlb2xv
Y2F0aW9uUGVybWlzc2lvbkZvckZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGRlY2lzaW9uSGFu
ZGxlcjoodm9pZCAoXikoQk9PTCBhbGxvd2VkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDUzZTg5MzQxNWQ0YmQyYWVmZjc5OWM5
YjM4OGI4NzZhMjA2M2EzODcuLmE5ZDYyNmQyMzUzMzJhYzRmNDNiMzFhMjhiNjFiYzMyZTQyYzdk
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQpAQCAtMTc0Miw2ICsxNzQyLDYyIEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19B
Q1RJT04oRk9SV0FSRF9BQ1RJT05fVE9fV0tDT05URU5UVklFVykKICAgICByZXR1cm4gX3BhZ2Ut
PnBhZ2VMb2FkU3RhdGUoKS5oYXNOZWdvdGlhdGVkTGVnYWN5VExTKCk7CiB9CiAKKy0gKF9XS01l
ZGlhQ2FwdHVyZVN0YXRlKV9jYW1lcmFDYXB0dXJlU3RhdGUKK3sKKyAgICBhdXRvIHN0YXRlID0g
X3BhZ2UtPnJlcG9ydGVkTWVkaWFTdGF0ZSgpOworICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Okhhc0FjdGl2ZVZpZGVvQ2FwdHVyZURldmljZSkKKyAgICAgICAgcmV0dXJu
IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlOworICAgIGlmIChzdGF0ZSAmIFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQorICAgICAgICByZXR1cm4g
X1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZDsKKyAgICByZXR1cm4gX1dLTWVkaWFDYXB0dXJlU3Rh
dGVOb25lOworfQorCistIChfV0tNZWRpYUNhcHR1cmVTdGF0ZSlfbWljcm9waG9uZUNhcHR1cmVT
dGF0ZQoreworICAgIGF1dG8gc3RhdGUgPSBfcGFnZS0+cmVwb3J0ZWRNZWRpYVN0YXRlKCk7Cisg
ICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0
dXJlRGV2aWNlKQorICAgICAgICByZXR1cm4gX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmU7Cisg
ICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFzTXV0ZWRBdWRpb0NhcHR1
cmVEZXZpY2UpCisgICAgICAgIHJldHVybiBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkOworICAg
IHJldHVybiBfV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmU7Cit9CisKKy0gKHZvaWQpc2V0TWljcm9w
aG9uZUNhcHR1cmVTdGF0ZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUpc3RhdGUgY29tcGxldGlvbkhh
bmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgaWYgKHN0YXRl
ID09IF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZSkgeworICAgICAgICBfcGFnZS0+c3RvcE1lZGlh
Q2FwdHVyZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpbywg
W2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gewor
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgfSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgYXV0byBtdXRlZFN0YXRlID0gX3BhZ2UtPm11dGVkU3RhdGVGbGFn
cygpOworICAgIGlmIChzdGF0ZSA9PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZSAmJiBtdXRl
ZFN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6QXVkaW9DYXB0dXJlSXNNdXRlZCkKKyAg
ICAgICAgbXV0ZWRTdGF0ZSBePSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRpb0NhcHR1cmVJ
c011dGVkOworICAgIGVsc2UgaWYgKHN0YXRlID09IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWQp
CisgICAgICAgIG11dGVkU3RhdGUgPSBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRpb0NhcHR1
cmVJc011dGVkOworICAgIF9wYWdlLT5zZXRNdXRlZChtdXRlZFN0YXRlLCBbY29tcGxldGlvbkhh
bmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKCk7CisgICAgfSk7Cit9CisKKy0gKHZvaWQpc2V0Q2FtZXJhQ2FwdHVyZVN0
YXRlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZSlzdGF0ZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
Xikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBpZiAoc3RhdGUgPT0gX1dLTWVkaWFD
YXB0dXJlU3RhdGVOb25lKSB7CisgICAgICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQ6OlZpZGVvLCBbY29tcGxldGlvbkhh
bmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CisgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBhdXRvIG11dGVkU3RhdGUgPSBfcGFnZS0+bXV0ZWRTdGF0ZUZsYWdzKCk7CisgICAgaWYg
KHN0YXRlID09IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlICYmIG11dGVkU3RhdGUgJiBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpWaWRlb0NhcHR1cmVJc011dGVkKQorICAgICAgICBtdXRlZFN0
YXRlIF49IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQ7CisgICAg
ZWxzZSBpZiAoc3RhdGUgPT0gX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZCkKKyAgICAgICAgbXV0
ZWRTdGF0ZSA9IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OlZpZGVvQ2FwdHVyZUlzTXV0ZWQ7Cisg
ICAgX3BhZ2UtPnNldE11dGVkKG11dGVkU3RhdGUsIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VC
bG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
KTsKKyAgICB9KTsKK30KKwogLSAodm9pZClfZnJhbWVzOih2b2lkICheKShfV0tGcmFtZVRyZWVO
b2RlICopKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAgICAgX3BhZ2UtPmdldEFsbEZyYW1lcyhbY29t
cGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpLCBwYWdlID0g
bWFrZVJlZigqX3BhZ2UuZ2V0KCkpXSAoV2ViS2l0OjpGcmFtZVRyZWVOb2RlRGF0YSYmIGRhdGEp
IHsKQEAgLTIwNTIsNyArMjEwOCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gd2tUZXh0
TWFuaXB1bGF0aW9uRXJyb3JzKE5TQXJyYXk8X1dLVGV4dE1hbmlwdWxhdGlvbkl0CiAKIC0gKHZv
aWQpX3N0b3BNZWRpYUNhcHR1cmUKIHsKLSAgICBfcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZSgpOwor
ICAgIF9wYWdlLT5zdG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlh
Q2FwdHVyZUtpbmQ6OkF1ZGlvVmlkZW8pOwogfQogCiAtICh2b2lkKV9zdG9wQWxsTWVkaWFQbGF5
YmFjawpAQCAtMzIyNCw5ICszMjgwLDkgQEAgc3RhdGljIGlubGluZSBPcHRpb25TZXQ8V2ViS2l0
OjpGaW5kT3B0aW9ucz4gdG9GaW5kT3B0aW9ucyhfV0tGaW5kT3B0aW9ucyB3a0ZpbmQKICNlbmRp
ZgogfQogCi0tIChfV0tNZWRpYUNhcHR1cmVTdGF0ZSlfbWVkaWFDYXB0dXJlU3RhdGUKKy0gKF9X
S01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZClfbWVkaWFDYXB0dXJlU3RhdGUKIHsKLSAgICBy
ZXR1cm4gV2ViS2l0Ojp0b1dLTWVkaWFDYXB0dXJlU3RhdGUoX3BhZ2UtPnJlcG9ydGVkTWVkaWFT
dGF0ZSgpKTsKKyAgICByZXR1cm4gV2ViS2l0Ojp0b1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNh
dGVkKF9wYWdlLT5yZXBvcnRlZE1lZGlhU3RhdGUoKSk7CiB9CiAKIC0gKHZvaWQpX3NldE1lZGlh
Q2FwdHVyZUVuYWJsZWQ6KEJPT0wpZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggMGMxMTIwNWY0MDE4Mjgw
ZGUzNzk0MDdkMjBhYzI2YzdjMTlkYmNjZC4uNjVkMjZhNWQ3ZGM3MmM0MzY1NjlkZTU1Y2E3NWFj
Y2Q3ZjExNWU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC00MCwxMyArNDAsMTkgQEAgdHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgX1dLUGFnaW5hdGlvbk1vZGUpIHsKICAgICBfV0tQYWdpbmF0aW9uTW9kZUJv
dHRvbVRvVG9wLAogfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpOwog
Cit0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXBy
ZWNhdGVkKSB7CisgICAgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTm9uZSA9IDAsCisg
ICAgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlTWljcm9waG9uZSA9IDEgPDwg
MCwKKyAgICBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVDYW1lcmEgPSAxIDw8
IDEsCisgICAgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTXV0ZWRNaWNyb3Bob25lID0g
MSA8PCAyLAorICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE11dGVkQ2FtZXJhID0g
MSA8PCAzLAorfSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzKSwgaW9zKDExLjApKTsKKwog
dHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS01lZGlhQ2FwdHVyZVN0YXRlKSB7CiAg
ICAgX1dLTWVkaWFDYXB0dXJlU3RhdGVOb25lID0gMCwKLSAgICBfV0tNZWRpYUNhcHR1cmVTdGF0
ZUFjdGl2ZU1pY3JvcGhvbmUgPSAxIDw8IDAsCi0gICAgX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3Rp
dmVDYW1lcmEgPSAxIDw8IDEsCi0gICAgX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZE1pY3JvcGhv
bmUgPSAxIDw8IDIsCi0gICAgX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZENhbWVyYSA9IDEgPDwg
MywKLX0gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyksIGlvcygxMS4wKSk7CisgICAgX1dL
TWVkaWFDYXB0dXJlU3RhdGVBY3RpdmUgPSAxIDw8IDAsCisgICAgX1dLTWVkaWFDYXB0dXJlU3Rh
dGVNdXRlZCA9IDEgPDwgMSwKK30gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIAogdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS01l
ZGlhTXV0ZWRTdGF0ZSkgewogICAgIF9XS01lZGlhTm9uZU11dGVkID0gMCwKQEAgLTE4Nyw2ICsx
OTMsMTYgQEAgZm9yIHRoaXMgcHJvcGVydHkuCiAqLwogQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBCT09MIF9uZWdvdGlhdGVkTGVnYWN5VExTIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTUuNCksIGlvcygxMy40KSk7CiAKKy8qISBAYWJzdHJhY3QgVGhlIHN0YXRlIG9mIG1lZGlh
IGNhcHR1cmUgb24gYSB3ZWIgcGFnZS4KKyBAZGlzY3Vzc2lvbiBAbGluayBXS1dlYlZpZXcgQC9s
aW5rIGlzIGtleS12YWx1ZSBvYnNlcnZpbmcgKEtWTykgY29tcGxpYW50CisgZm9yIHRoaXMgcHJv
cGVydHkuCisgKi8KK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLTWVkaWFDYXB0
dXJlU3RhdGUgX2NhbWVyYUNhcHR1cmVTdGF0ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBfV0tNZWRpYUNhcHR1cmVTdGF0ZSBfbWljcm9waG9uZUNhcHR1cmVTdGF0ZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCistICh2b2lkKXNl
dE1pY3JvcGhvbmVDYXB0dXJlU3RhdGU6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlIGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClzZXRD
YW1lcmFDYXB0dXJlU3RhdGU6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiAtICh2b2lkKV9mcmFtZXM6
KHZvaWQgKF4pKF9XS0ZyYW1lVHJlZU5vZGUgKikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIAogLy8gRklYTUU6IFJlbW92ZSB0aGVz
ZSBvbmNlIG5vYm9keSBpcyB1c2luZyB0aGVtLgpAQCAtMzM4LDcgKzM1NCw3IEBAIGZvciB0aGlz
IHByb3BlcnR5LgogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RnVsbHNjcmVlbkRl
bGVnYXRlOikgaWQ8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiBfZnVsbHNjcmVlbkRlbGVnYXRlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMpLCBpb3MoMTEuMCkpOwogQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBCT09MIF9pc0luRnVsbHNjcmVlbiBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEyLjMpKTsKIAotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tNZWRp
YUNhcHR1cmVTdGF0ZSBfbWVkaWFDYXB0dXJlU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xNSksIGlvcygxMy4wKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS01l
ZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCBfbWVkaWFDYXB0dXJlU3RhdGUgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xNSksIGlvcygxMy4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIF9XS01lZGlhTXV0ZWRTdGF0ZSBfbWVkaWFNdXRlZFN0YXRlIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiAKIC0gKHZvaWQpX3NldFBhZ2VNdXRlZDooX1dL
TWVkaWFNdXRlZFN0YXRlKW11dGVkU3RhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMyks
IGlvcygxMS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9N
ZWRpYVV0aWxpdGllcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGls
aXRpZXMuaAppbmRleCBlMWE1ZDk0NTVkNzIzOTY4MjM3N2I2MDRkNDU3NTNkZTgwNmEyZDExLi43
NGEzZTY1ZGRmZGVjNDRjNmJhN2FkZWU1NWEwODkxMzlkYjVlNDFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL01lZGlhVXRpbGl0aWVzLmgKQEAgLTMyLDcgKzMyLDcgQEAK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLV9XS01lZGlhQ2FwdHVyZVN0YXRlIHRvV0tNZWRpYUNh
cHR1cmVTdGF0ZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpOworX1dL
TWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkIHRvV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0
ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKTsKIF9XS01lZGlhTXV0
ZWRTdGF0ZSB0b1dLTWVkaWFNdXRlZFN0YXRlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVk
U3RhdGVGbGFncyk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTWVkaWFVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0aWxpdGllcy5tbQppbmRleCBkZWViNzVhMjY1OWEzYmNk
NTNlZTEzNTZiZWIyMmE3OWQwOWY3NDNkLi40NGE4MWQ0OGJhN2MxMjRmMmEzODNiZjM4MDRiNDk4
N2MwNWFlMmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRp
YVV0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9NZWRpYVV0
aWxpdGllcy5tbQpAQCAtMjgsMTcgKzI4LDE3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1f
V0tNZWRpYUNhcHR1cmVTdGF0ZSB0b1dLTWVkaWFDYXB0dXJlU3RhdGUoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQorX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXBy
ZWNhdGVkIHRvV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQoV2ViQ29yZTo6TWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogewotICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRl
IG1lZGlhQ2FwdHVyZVN0YXRlID0gX1dLTWVkaWFDYXB0dXJlU3RhdGVOb25lOworICAgIF9XS01l
ZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZCBtZWRpYUNhcHR1cmVTdGF0ZSA9IF9XS01lZGlhQ2Fw
dHVyZVN0YXRlRGVwcmVjYXRlZE5vbmU7CiAgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlKQotICAgICAgICBtZWRpYUNhcHR1
cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZU1pY3JvcGhvbmU7CisgICAgICAg
IG1lZGlhQ2FwdHVyZVN0YXRlIHw9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2
ZU1pY3JvcGhvbmU7CiAgICAgaWYgKHN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFz
QWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlKQotICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBf
V0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYTsKKyAgICAgICAgbWVkaWFDYXB0dXJlU3Rh
dGUgfD0gX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlQ2FtZXJhOwogICAgIGlm
IChzdGF0ZSAmIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkQXVkaW9DYXB0dXJlRGV2
aWNlKQotICAgICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11
dGVkTWljcm9waG9uZTsKKyAgICAgICAgbWVkaWFDYXB0dXJlU3RhdGUgfD0gX1dLTWVkaWFDYXB0
dXJlU3RhdGVEZXByZWNhdGVkTXV0ZWRNaWNyb3Bob25lOwogICAgIGlmIChzdGF0ZSAmIFdlYkNv
cmU6Ok1lZGlhUHJvZHVjZXI6Okhhc011dGVkVmlkZW9DYXB0dXJlRGV2aWNlKQotICAgICAgICBt
ZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZU11dGVkQ2FtZXJhOworICAg
ICAgICBtZWRpYUNhcHR1cmVTdGF0ZSB8PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRN
dXRlZENhbWVyYTsKIAogICAgIHJldHVybiBtZWRpYUNhcHR1cmVTdGF0ZTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EuaAppbmRl
eCBjMTRmNzdhODZhZTUwMzNhOGUzY2RhNTVjMDk3YWVmZjM3YTlmZWY1Li4zMTg5ZmEwMjhjNTU5
MjEyZTU5ODY1MGEwNzczZTYxNTU5YTdmODljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5oCkBAIC03OSw2ICs3OSw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIHN0b3JlQXBwSGlnaGxpZ2h0KGNvbnN0IFdlYkNvcmU6OkFwcEhpZ2hs
aWdodCYpIGZpbmFsOwogI2VuZGlmCiAKKyAgICB2b2lkIG1pY3JvcGhvbmVDYXB0dXJlQ2hhbmdl
ZCgpIGZpbmFsOworICAgIHZvaWQgY2FtZXJhQ2FwdHVyZUNoYW5nZWQoKSBmaW5hbDsKKwogcHJv
dGVjdGVkOgogICAgIFdlYWtPYmpDUHRyPFdLV2ViVmlldz4gbV93ZWJWaWV3OwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXI+IG1fYWx0ZXJu
YXRpdmVUZXh0VUlDb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EubW0KaW5kZXggZGJmMzQzNjBiMmUxZjI5YmEwZDUw
N2I4MzAzMTBkMmQ0MDMyNDliMy4uMzc4ODNmYjdhOTMzNmJhMjk2Njg4N2ZmOTYzMjY0NzI0ODA5
NzFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVu
dEltcGxDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xp
ZW50SW1wbENvY29hLm1tCkBAIC0xNTAsNSArMTUwLDE1IEBAIE5TVGV4dEFsdGVybmF0aXZlcyAq
UGFnZUNsaWVudEltcGxDb2NvYTo6cGxhdGZvcm1EaWN0YXRpb25BbHRlcm5hdGl2ZXMoV2ViQ29y
ZTo6CiB7CiAgICAgcmV0dXJuIG1fYWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLT5hbHRlcm5h
dGl2ZXNGb3JDb250ZXh0KGRpY3RhdGlvbkNvbnRleHQpOwogfQotICAgIAorCit2b2lkIFBhZ2VD
bGllbnRJbXBsQ29jb2E6Om1pY3JvcGhvbmVDYXB0dXJlQ2hhbmdlZCgpCit7CisgICAgW21fd2Vi
VmlldyBkaWRDaGFuZ2VWYWx1ZUZvcktleTpAIl9taWNyb3Bob25lQ2FwdHVyZVN0YXRlIl07Cit9
CisKK3ZvaWQgUGFnZUNsaWVudEltcGxDb2NvYTo6Y2FtZXJhQ2FwdHVyZUNoYW5nZWQoKQorewor
ICAgIFttX3dlYlZpZXcgZGlkQ2hhbmdlVmFsdWVGb3JLZXk6QCJfY2FtZXJhQ2FwdHVyZVN0YXRl
Il07Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1t
CmluZGV4IGYwNzg5OTRjMDI1M2I5MmU1NDhjMjgzODc5ZDg4ZTQ0MzA2ZmZmNzYuLjJjNWM3NmJj
MzI4M2NjNTg1OWYwY2ZmZjUwMmE2Y2M5ZjNhMDBiZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMTE4Myw3ICsxMTgzLDcgQEAgdm9pZCBVSURl
bGVnYXRlOjpVSUNsaWVudDo6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVk
aWFQcm9kdWNlcjo6TWUKICAgICBpZiAoIWRlbGVnYXRlIHx8ICFtX3VpRGVsZWdhdGUtPm1fZGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdNZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZp
ZXc6d2ViVmlldy5nZXQoKS5nZXQoKSBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTp0b1dLTWVk
aWFDYXB0dXJlU3RhdGUoc3RhdGUpXTsKKyAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilk
ZWxlZ2F0ZSBfd2ViVmlldzp3ZWJWaWV3LmdldCgpLmdldCgpIG1lZGlhQ2FwdHVyZVN0YXRlRGlk
Q2hhbmdlOnRvV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQoc3RhdGUpXTsKIH0KIAogdm9p
ZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90
YShXZWJQYWdlUHJveHkqLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlP
cmlnaW4sIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgdG90YWxCeXRlc05lZWRlZCwg
RnVuY3Rpb248dm9pZCAodW5zaWduZWQgbG9uZyBsb25nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBiYWZhOTJkMTgwNWVkMjAwMTk4
MDcyYWE1Y2YzOTFiYzkyODA3M2ZlLi4wYWNlYzcxNWZlNDZkNzgzN2ZkMmQyZWQyNGQwMjI3YzZk
ZjQzZmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC01MzcsNiArNTM3
LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRIYW5kbGVBY2NlcHRlZENhbmRpZGF0
ZSgpID0gMDsKICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lkIG1pY3JvcGhvbmVDYXB0dXJlQ2hh
bmdlZCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjYW1lcmFDYXB0dXJlQ2hhbmdlZCgpIHsgfQor
CiAgICAgdmlydHVhbCB2b2lkIHZpZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlKCkgeyB9CiAK
ICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TX0ZB
TUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAppbmRleCBiNjQwODE0Mjdj
OGFlNTNkYzQxYjVkY2NhZTc3OTc2MTU0Y2IyMDFhLi5kMzgwZTJjZGNiODY4MjQzMDYyMzE5ODli
ZGJlYTkzMjQ4ODI1NzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBA
IC0xMDEsNyArMTAxLDcgQEAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFcKIAogVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6On5Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eSgpCiB7Ci0gICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlN0b3BN
ZWRpYUNhcHR1cmUgeyB9KTsKKyAgICBtX3BhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpXZWJQYWdlOjpTdG9wTWVkaWFDYXB0dXJlIHsgTWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJl
S2luZDo6QXVkaW9WaWRlbyB9LCBbXSB7IH0pOwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAg
ICAgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OnNpbmdsZXRvbigpLnJldm9rZVNhbmRib3hFeHRl
bnNpb25zSWZOZWVkZWQocGFnZSgpLnByb2Nlc3MoKSk7CiAgICAgcHJveGllcygpLnJlbW92ZSh0
aGlzKTsKQEAgLTEzNSw3ICsxMzUsNyBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpzdG9wQ2FwdHVyZSgpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElG
SUVSKTsKICAgICBpbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKCk7Ci0gICAgbV9wYWdlLnN0b3BN
ZWRpYUNhcHR1cmUoKTsKKyAgICBtX3BhZ2Uuc3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2Vy
OjpNZWRpYUNhcHR1cmVLaW5kOjpBdWRpb1ZpZGVvKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y2FwdHVyZURldmljZXNDaGFuZ2VkKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGEwNjU5MzBiN2Q3ZWJkMDk5
N2RlMzczMWRhZDI2ZWEzMTc2OGUzZmIuLjVmMTUyOWUxMTcxZDMzYjk1NjkxY2UzNzUxNTNmNDRh
MjYxZTQ3ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
NTk2MywxMiArNTk2MywxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TWVkaWFWb2x1bWUoZmxv
YXQgdm9sdW1lKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldE1lZGlhVm9sdW1lKHZv
bHVtZSkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlKQordm9pZCBXZWJQYWdlUHJveHk6OnNldE11
dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBzdGF0ZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIG1fbXV0ZWRT
dGF0ZSA9IHN0YXRlOwogCiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKQotICAgICAgICBy
ZXR1cm47CisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOwogCiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKICAgICBib29sIGhhc011dGVkQ2FwdHVyZVN0cmVhbXMgPSBtX21lZGlh
U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZENhcHR1cmVNYXNrOwpAQCAtNTk3
OCw3ICs1OTc4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldE11dGVkKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBzdGF0ZSkKIAogICAgIG1fcHJvY2Vzcy0+cGFnZU11
dGVkU3RhdGVDaGFuZ2VkKG1fd2ViUGFnZUlELCBzdGF0ZSk7CiAKLSAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpTZXRNdXRlZChzdGF0ZSkpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViUGFnZTo6U2V0TXV0ZWQoc3RhdGUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiAgICAgYWN0aXZpdHlTdGF0ZURpZENoYW5nZSh7IEFjdGl2aXR5U3RhdGU6OklzQXVkaWJs
ZSwgQWN0aXZpdHlTdGF0ZTo6SXNDYXB0dXJpbmdNZWRpYSB9KTsKIH0KIApAQCAtNTk5NCwxNSAr
NTk5NCwxNSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TWVkaWFDYXB0dXJlRW5hYmxlZChib29s
IGVuYWJsZWQpCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnN0b3BNZWRpYUNhcHR1
cmUoKQordm9pZCBXZWJQYWdlUHJveHk6OnN0b3BNZWRpYUNhcHR1cmUoTWVkaWFQcm9kdWNlcjo6
TWVkaWFDYXB0dXJlS2luZCBraW5kLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpKQotICAgICAgICBy
ZXR1cm47CisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOwogCiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKICAgICBpZiAobV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIpCiAgICAgICAgIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLT5yZXNldEFj
Y2VzcygpOwotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlN0b3BNZWRpYUNhcHR1cmUoKSk7
CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpTdG9wTWVkaWFDYXB0
dXJlKGtpbmQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAjZW5kaWYKIH0KIApAQCAt
OTE0OCw4ICs5MTQ4LDE1IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVSZXBvcnRlZE1lZGlh
Q2FwdHVyZVN0YXRlKCkKIAogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoV2ViUlRDLCAidXBk
YXRlUmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZTogZnJvbSAlZCB0byAlZCIsIG1fcmVwb3J0ZWRN
ZWRpYUNhcHR1cmVTdGF0ZSwgYWN0aXZlQ2FwdHVyZVN0YXRlKTsKIAorICAgIGJvb2wgbWljcm9w
aG9uZUNhcHR1cmVDaGFuZ2VkID0gKG1fcmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSAmIE1lZGlh
UHJvZHVjZXI6OkF1ZGlvQ2FwdHVyZU1hc2spICE9IChhY3RpdmVDYXB0dXJlU3RhdGUgJiBNZWRp
YVByb2R1Y2VyOjpBdWRpb0NhcHR1cmVNYXNrKTsKKyAgICBib29sIGNhbWVyYUNhcHR1cmVDaGFu
Z2VkID0gKG1fcmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OlZpZGVv
Q2FwdHVyZU1hc2spICE9IChhY3RpdmVDYXB0dXJlU3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpWaWRl
b0NhcHR1cmVNYXNrKTsKKwogICAgIG1fcmVwb3J0ZWRNZWRpYUNhcHR1cmVTdGF0ZSA9IGFjdGl2
ZUNhcHR1cmVTdGF0ZTsKICAgICBtX3VpQ2xpZW50LT5tZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5n
ZShtX21lZGlhU3RhdGUpOworICAgIGlmIChtaWNyb3Bob25lQ2FwdHVyZUNoYW5nZWQpCisgICAg
ICAgIHBhZ2VDbGllbnQoKS5taWNyb3Bob25lQ2FwdHVyZUNoYW5nZWQoKTsKKyAgICBpZiAoY2Ft
ZXJhQ2FwdHVyZUNoYW5nZWQpCisgICAgICAgIHBhZ2VDbGllbnQoKS5jYW1lcmFDYXB0dXJlQ2hh
bmdlZCgpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6dmlkZW9Db250cm9sc01hbmFnZXJEaWRD
aGFuZ2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAzYWVmYTZm
OGRmYjg1YjkyYzNmZWFkYWVhYzhhMDM1OTY3ZWZhODcwLi5mNDU4ZDgyMTU1MDMwY2Y5YzY5ODNi
ZTc0YmFiNzMxY2Q2N2Y4ZGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aApAQCAtMTMzNiwxMyArMTMzNiwxMyBAQCBwdWJsaWM6CiAgICAgdWludDY0X3QgcmVuZGVyVHJl
ZVNpemUoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlclRyZWVTaXplOyB9CiAKICAgICB2b2lkIHNl
dE1lZGlhVm9sdW1lKGZsb2F0KTsKLSAgICB2b2lkIHNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJv
ZHVjZXI6Ok11dGVkU3RhdGVGbGFncyk7CisgICAgdm9pZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9
IFtdIHsgfSk7CiAgICAgYm9vbCBpc0F1ZGlvTXV0ZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVk
U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRpb0lzTXV0ZWQ7IH07CiAgICAgdm9p
ZCBzZXRNYXlTdGFydE1lZGlhV2hlbkluV2luZG93KGJvb2wpOwogICAgIGJvb2wgbWF5U3RhcnRN
ZWRpYVdoZW5JbldpbmRvdygpIGNvbnN0IHsgcmV0dXJuIG1fbWF5U3RhcnRNZWRpYVdoZW5Jbldp
bmRvdzsgfQogICAgIHZvaWQgc2V0TWVkaWFDYXB0dXJlRW5hYmxlZChib29sKTsKICAgICBib29s
IG1lZGlhQ2FwdHVyZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX21lZGlhQ2FwdHVyZUVuYWJs
ZWQ7IH0KLSAgICB2b2lkIHN0b3BNZWRpYUNhcHR1cmUoKTsKKyAgICB2b2lkIHN0b3BNZWRpYUNh
cHR1cmUoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFDYXB0dXJlS2luZCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmID0gW10geyB9KTsKIAogICAgIHZvaWQgcGF1c2VBbGxNZWRpYVBs
YXliYWNrKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzdXNwZW5kQWxs
TWVkaWFQbGF5YmFjayhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA0NGRiYzg4OTk4MWZiOTI0
OTJmMzA4MGE5YWRiYmNjMTcwYzdkNjBlLi45NTdmYWYwMzRlMTE2NGU5ZWRjNzBiYjg5MDMxOWFj
ZTI3YTlmNzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcApAQCAtNzU5LDcgKzc1OSw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICAKICAg
ICBzZXRNZWRpYVZvbHVtZShwYXJhbWV0ZXJzLm1lZGlhVm9sdW1lKTsKIAotICAgIHNldE11dGVk
KHBhcmFtZXRlcnMubXV0ZWQpOworICAgIHNldE11dGVkKHBhcmFtZXRlcnMubXV0ZWQsIFtdIHsg
fSk7CiAKICAgICAvLyBXZSB1c2UgdGhlIERpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCBt
aWxlc3RvbmUgdG8gZGV0ZXJtaW5lIHdoZW4gdG8gdW5mcmVlemUgdGhlIGxheWVyIHRyZWUuCiAg
ICAgbV9wYWdlLT5hZGRMYXlvdXRNaWxlc3RvbmVzKHsgRGlkRmlyc3RMYXlvdXQsIERpZEZpcnN0
VmlzdWFsbHlOb25FbXB0eUxheW91dCB9KTsKQEAgLTUzNjgsMTYgKzUzNjgsMTggQEAgdm9pZCBX
ZWJQYWdlOjpzZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUpCiAgICAgbV9wYWdlLT5zZXRNZWRp
YVZvbHVtZSh2b2x1bWUpOwogfQogCi12b2lkIFdlYlBhZ2U6OnNldE11dGVkKE1lZGlhUHJvZHVj
ZXI6Ok11dGVkU3RhdGVGbGFncyBzdGF0ZSkKK3ZvaWQgV2ViUGFnZTo6c2V0TXV0ZWQoTWVkaWFQ
cm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbV9wYWdlLT5zZXRNdXRlZChzdGF0ZSk7Cisg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpzdG9wTWVkaWFDYXB0
dXJlKCkKK3ZvaWQgV2ViUGFnZTo6c3RvcE1lZGlhQ2FwdHVyZShNZWRpYVByb2R1Y2VyOjpNZWRp
YUNhcHR1cmVLaW5kIGtpbmQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIG1fcGFnZS0+c3RvcE1l
ZGlhQ2FwdHVyZSgpOworICAgIG1fcGFnZS0+c3RvcE1lZGlhQ2FwdHVyZShraW5kKTsKICNlbmRp
ZgorICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6c2V0TWF5U3Rh
cnRNZWRpYVdoZW5JbldpbmRvdyhib29sIG1heVN0YXJ0TWVkaWEpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggYjBlYmY4M2ViMWJkZDY1MjMwYTBkZTM2
ZGM0OGY5ZWIzZjYyZDYyMi4uMDVjNGRhMzA2ZTNjNWJmNjI3NDJhNTRmZDU0YzMzODM1MDY3Yjc2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtOTg4
LDkgKzk4OCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZVJlc291cmNlUmVxdWVzdCh1bnNp
Z25lZCBsb25nKTsKIAogICAgIHZvaWQgc2V0TWVkaWFWb2x1bWUoZmxvYXQpOwotICAgIHZvaWQg
c2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzKTsKKyAgICB2
b2lkIHNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldE1heVN0YXJ0TWVkaWFXaGVu
SW5XaW5kb3coYm9vbCk7Ci0gICAgdm9pZCBzdG9wTWVkaWFDYXB0dXJlKCk7CisgICAgdm9pZCBz
dG9wTWVkaWFDYXB0dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICB2b2lkIHVwZGF0ZU1haW5GcmFt
ZVNjcm9sbE9mZnNldFBpbm5pbmcoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNzg4MGMzYmUwZGFmMjQ2MGM3
MTQ5NTBkMmE3ZjRjZTIzZWVkYmU5My4uOWIxYmNmNzE1NTc3MWU1NTIxZDgyN2RlNjExYzQzZjhh
NGEwYTZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC00MTUsOSArNDE1LDkgQEAgR2VuZXJhdGVTeW50aGV0aWNF
ZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFu
ZFR5cGUKIAogICAgICMgTWVkaWEKICAgICBTZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUpCi0g
ICAgU2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG11dGVk
KQorICAgIFNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBt
dXRlZCkgLT4gKCkgQXN5bmMKICAgICBTZXRNYXlTdGFydE1lZGlhV2hlbkluV2luZG93KGJvb2wg
bWF5U3RhcnRNZWRpYSkKLSAgICBTdG9wTWVkaWFDYXB0dXJlKCkKKyAgICBTdG9wTWVkaWFDYXB0
dXJlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhQ2FwdHVyZUtpbmQga2luZCkgLT4gKCkg
QXN5bmMKIAogICAgIFNldENhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChib29sIGNhblJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCkKICAgICBTZXRDYW5SdW5Nb2RhbChib29sIGNhblJ1
bk1vZGFsKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDQ1ZGE1MDQ4MWQyOTNjZjNkZWRmODU2NGIzZWJmZWM5ZTYwN2JjOTUuLmZjYmZjYjg3MDJm
YmVjOGRjMTNmZDY4MDdiMGJmMzFmNmFiYjVlODYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMS0wMy0wNCAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIGNhbWVyYSBh
bmQgbWljcm9waG9uZSBjYXB0dXJlIHN0YXRlIGNvbnRyb2wgV0tXZWJWaWV3IEFQSQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMTY2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFVwZGFlZCBhY2NvcmRpbmcg
cmVuYW1pbmcgb2YgX1dLTWVkaWFDYXB0dXJlU3RhdGUgaW4gX1dLTWVkaWFDYXB0dXJlU3RhdGVE
ZXByZWNhdGVkLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvR2V0VXNl
ck1lZGlhLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6d2tNZWRpYUNhcHR1cmVTdGF0ZVN0
cmluZyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjp3YWl0VW50aWxDYXB0dXJlU3RhdGUpOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVkLm1tOgorICAgICAgICAoLVtNZWRp
YVN0cmVhbVRyYWNrRGV0YWNoZWRVSURlbGVnYXRlIF93ZWJWaWV3Om1lZGlhQ2FwdHVyZVN0YXRl
RGlkQ2hhbmdlOl0pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06CisgICAgICAgICgtW0dldFVzZXJNZWRpYVVJRGVs
ZWdhdGUgX3dlYlZpZXc6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6XSk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbToKKyAg
ICAgICAgKC1bU3BlZWNoUmVjb2duaXRpb25VSURlbGVnYXRlIF93ZWJWaWV3Om1lZGlhQ2FwdHVy
ZVN0YXRlRGlkQ2hhbmdlOl0pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVz
dENvbnRyb2xsZXJDb2NvYS5tbToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmlzRG9p
bmdNZWRpYUNhcHR1cmUgY29uc3QpOgorCiAyMDIxLTAzLTAzICBEb24gT2xtc3RlYWQgIDxkb24u
b2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBKYXZhU2NyaXB0Q29yZSBHTGli
IGhlYWRlcnMgc2hvdWxkIGJlIGNvcGllcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvR2V0VXNlck1lZGlhLm1tCmluZGV4IGIxZDllYjJmZmE1YzgxYjgxZjQ4MGM5ZjIx
NDhlY2E2N2RkNDQ4ZDEuLjliMDI3MmI4YmVhYzA3YzRkM2M1YTUyNDRhM2Y4YTJlYWZhNTU4NzEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L0dldFVzZXJNZWRp
YS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9HZXRVc2VyTWVkaWEu
bW0KQEAgLTYwLDI5ICs2MCwyOSBAQCBzdGF0aWMgYm9vbCBkb25lOwogCiBuYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CiAKLXN0YXRpYyBTdHJpbmcgd2tNZWRpYUNhcHR1cmVTdGF0ZVN0cmluZyhf
V0tNZWRpYUNhcHR1cmVTdGF0ZSBmbGFncykKK3N0YXRpYyBTdHJpbmcgd2tNZWRpYUNhcHR1cmVT
dGF0ZVN0cmluZyhfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQgZmxhZ3MpCiB7CiAgICAg
U3RyaW5nQnVpbGRlciBzdHJpbmc7Ci0gICAgaWYgKGZsYWdzICYgX1dLTWVkaWFDYXB0dXJlU3Rh
dGVBY3RpdmVNaWNyb3Bob25lKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJfV0tNZWRpYUNhcHR1
cmVTdGF0ZUFjdGl2ZU1pY3JvcGhvbmUgKyAiKTsKLSAgICBpZiAoZmxhZ3MgJiBfV0tNZWRpYUNh
cHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYSkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiX1dLTWVkaWFD
YXB0dXJlU3RhdGVBY3RpdmVDYW1lcmEgKyAiKTsKLSAgICBpZiAoZmxhZ3MgJiBfV0tNZWRpYUNh
cHR1cmVTdGF0ZU11dGVkTWljcm9waG9uZSkKLSAgICAgICAgc3RyaW5nLmFwcGVuZCgiX1dLTWVk
aWFDYXB0dXJlU3RhdGVNdXRlZE1pY3JvcGhvbmUgKyAiKTsKLSAgICBpZiAoZmxhZ3MgJiBfV0tN
ZWRpYUNhcHR1cmVTdGF0ZU11dGVkQ2FtZXJhKQotICAgICAgICBzdHJpbmcuYXBwZW5kKCJfV0tN
ZWRpYUNhcHR1cmVTdGF0ZU11dGVkQ2FtZXJhICsgIik7CisgICAgaWYgKGZsYWdzICYgX1dLTWVk
aWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlTWljcm9waG9uZSkKKyAgICAgICAgc3RyaW5n
LmFwcGVuZCgiX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlTWljcm9waG9uZSAr
ICIpOworICAgIGlmIChmbGFncyAmIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2
ZUNhbWVyYSkKKyAgICAgICAgc3RyaW5nLmFwcGVuZCgiX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXBy
ZWNhdGVkQWN0aXZlQ2FtZXJhICsgIik7CisgICAgaWYgKGZsYWdzICYgX1dLTWVkaWFDYXB0dXJl
U3RhdGVEZXByZWNhdGVkTXV0ZWRNaWNyb3Bob25lKQorICAgICAgICBzdHJpbmcuYXBwZW5kKCJf
V0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRNdXRlZE1pY3JvcGhvbmUgKyAiKTsKKyAgICBp
ZiAoZmxhZ3MgJiBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRNdXRlZENhbWVyYSkKKyAg
ICAgICAgc3RyaW5nLmFwcGVuZCgiX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTXV0ZWRD
YW1lcmEgKyAiKTsKICAgICBpZiAoc3RyaW5nLmlzRW1wdHkoKSkKLSAgICAgICAgc3RyaW5nLmFw
cGVuZCgiX1dLTWVkaWFDYXB0dXJlU3RhdGVOb25lIik7CisgICAgICAgIHN0cmluZy5hcHBlbmQo
Il9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE5vbmUiKTsKICAgICBlbHNlCiAgICAgICAg
IHN0cmluZy5yZXNpemUoc3RyaW5nLmxlbmd0aCgpIC0gMik7CiAKICAgICByZXR1cm4gc3RyaW5n
LnRvU3RyaW5nKCk7CiB9CiAKLWJvb2wgd2FpdFVudGlsQ2FwdHVyZVN0YXRlKFdLV2ViVmlldyAq
d2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGUgZXhwZWN0ZWRTdGF0ZSkKK2Jvb2wgd2FpdFVu
dGlsQ2FwdHVyZVN0YXRlKFdLV2ViVmlldyAqd2ViVmlldywgX1dLTWVkaWFDYXB0dXJlU3RhdGVE
ZXByZWNhdGVkIGV4cGVjdGVkU3RhdGUpCiB7CiAgICAgTlNUaW1lSW50ZXJ2YWwgZW5kID0gW1tO
U0RhdGUgZGF0ZV0gdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXSArIDEwOwotICAgIF9X
S01lZGlhQ2FwdHVyZVN0YXRlIHN0YXRlOworICAgIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVj
YXRlZCBzdGF0ZTsKICAgICBkbyB7CiAgICAgICAgIHN0YXRlID0gW3dlYlZpZXcgX21lZGlhQ2Fw
dHVyZVN0YXRlXTsKICAgICAgICAgaWYgKHN0YXRlID09IGV4cGVjdGVkU3RhdGUpCkBAIC0xMTMs
MzggKzExMywzOCBAQCBURVNUKFdlYktpdDIsIENhcHR1cmVNdXRlKQogICAgIFt3ZWJWaWV3IF9z
ZXRNZWRpYUNhcHR1cmVSZXBvcnRpbmdEZWxheUZvclRlc3Rpbmc6MF07CiAKICAgICBbd2ViVmll
dyBsb2FkVGVzdFBhZ2VOYW1lZDpAImdldFVzZXJNZWRpYSJdOwotICAgIEVYUEVDVF9UUlVFKHdh
aXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LmdldCgpLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFj
dGl2ZUNhbWVyYSkpOworICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJW
aWV3LmdldCgpLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVDYW1lcmEpKTsK
IAogICAgIFt3ZWJWaWV3IF9zZXRQYWdlTXV0ZWQ6IF9XS01lZGlhQ2FwdHVyZURldmljZXNNdXRl
ZF07Ci0gICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcuZ2V0KCks
IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRDYW1lcmEpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0
VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldy5nZXQoKSwgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXBy
ZWNhdGVkTXV0ZWRDYW1lcmEpKTsKICAgICBbd2ViVmlldyBfc2V0UGFnZU11dGVkOiBfV0tNZWRp
YU5vbmVNdXRlZF07Ci0gICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZp
ZXcuZ2V0KCksIF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlQ2FtZXJhKSk7CisgICAgRVhQRUNU
X1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcuZ2V0KCksIF9XS01lZGlhQ2FwdHVy
ZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZUNhbWVyYSkpOwogCiAgICAgW3dlYlZpZXcgc3RyaW5nQnlF
dmFsdWF0aW5nSmF2YVNjcmlwdDpAInN0b3AoKSJdOwotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRp
bENhcHR1cmVTdGF0ZSh3ZWJWaWV3LmdldCgpLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmUpKTsK
KyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldy5nZXQoKSwgX1dL
TWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkTm9uZSkpOwogCiAgICAgW3dlYlZpZXcgc3RyaW5n
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImNhcHR1cmVBdWRpbygpIl07Ci0gICAgRVhQRUNUX1RS
VUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcuZ2V0KCksIF9XS01lZGlhQ2FwdHVyZVN0
YXRlQWN0aXZlTWljcm9waG9uZSkpOworICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVT
dGF0ZSh3ZWJWaWV3LmdldCgpLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVN
aWNyb3Bob25lKSk7CiAgICAgW3dlYlZpZXcgX3NldFBhZ2VNdXRlZDogX1dLTWVkaWFDYXB0dXJl
RGV2aWNlc011dGVkXTsKLSAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2Vi
Vmlldy5nZXQoKSwgX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZE1pY3JvcGhvbmUpKTsKKyAgICBF
WFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldy5nZXQoKSwgX1dLTWVkaWFD
YXB0dXJlU3RhdGVEZXByZWNhdGVkTXV0ZWRNaWNyb3Bob25lKSk7CiAgICAgW3dlYlZpZXcgX3Nl
dFBhZ2VNdXRlZDogX1dLTWVkaWFOb25lTXV0ZWRdOwotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRp
bENhcHR1cmVTdGF0ZSh3ZWJWaWV3LmdldCgpLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZU1p
Y3JvcGhvbmUpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmll
dy5nZXQoKSwgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlTWljcm9waG9uZSkp
OwogCiAgICAgW3dlYlZpZXcgX3NldFBhZ2VNdXRlZDogX1dLTWVkaWFDYXB0dXJlRGV2aWNlc011
dGVkXTsKLSAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldy5nZXQo
KSwgX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZE1pY3JvcGhvbmUpKTsKKyAgICBFWFBFQ1RfVFJV
RSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldy5nZXQoKSwgX1dLTWVkaWFDYXB0dXJlU3Rh
dGVEZXByZWNhdGVkTXV0ZWRNaWNyb3Bob25lKSk7CiAKICAgICBbd2ViVmlldyBzdHJpbmdCeUV2
YWx1YXRpbmdKYXZhU2NyaXB0OkAic3RvcCgpIl07Ci0gICAgRVhQRUNUX1RSVUUod2FpdFVudGls
Q2FwdHVyZVN0YXRlKHdlYlZpZXcuZ2V0KCksIF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZSkpOwor
ICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LmdldCgpLCBfV0tN
ZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWROb25lKSk7CiAKICAgICBbd2ViVmlldyBzdHJpbmdC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiY2FwdHVyZUF1ZGlvQW5kVmlkZW8oKSJdOwotICAgIEVY
UEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LmdldCgpLCBfV0tNZWRpYUNh
cHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYSB8IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWljcm9w
aG9uZSkpOworICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3Lmdl
dCgpLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVDYW1lcmEgfCBfV0tNZWRp
YUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVNaWNyb3Bob25lKSk7CiAgICAgW3dlYlZpZXcg
X3NldFBhZ2VNdXRlZDogX1dLTWVkaWFDYXB0dXJlRGV2aWNlc011dGVkXTsKLSAgICBFWFBFQ1Rf
VFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldy5nZXQoKSwgX1dLTWVkaWFDYXB0dXJl
U3RhdGVNdXRlZENhbWVyYSB8IF9XS01lZGlhQ2FwdHVyZVN0YXRlTXV0ZWRNaWNyb3Bob25lKSk7
CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcuZ2V0KCksIF9X
S01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE11dGVkQ2FtZXJhIHwgX1dLTWVkaWFDYXB0dXJl
U3RhdGVEZXByZWNhdGVkTXV0ZWRNaWNyb3Bob25lKSk7CiAgICAgW3dlYlZpZXcgX3NldFBhZ2VN
dXRlZDogX1dLTWVkaWFOb25lTXV0ZWRdOwotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1
cmVTdGF0ZSh3ZWJWaWV3LmdldCgpLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYSB8
IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWljcm9waG9uZSkpOworICAgIEVYUEVDVF9UUlVF
KHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LmdldCgpLCBfV0tNZWRpYUNhcHR1cmVTdGF0
ZURlcHJlY2F0ZWRBY3RpdmVDYW1lcmEgfCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRB
Y3RpdmVNaWNyb3Bob25lKSk7CiAKICAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAic3RvcCgpIl07Ci0gICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRl
KHdlYlZpZXcuZ2V0KCksIF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZSkpOworICAgIEVYUEVDVF9U
UlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LmdldCgpLCBfV0tNZWRpYUNhcHR1cmVT
dGF0ZURlcHJlY2F0ZWROb25lKSk7CiB9CiAKIFRFU1QoV2ViS2l0MiwgQ2FwdHVyZVN0b3ApCkBA
IC0xNjQsMTQgKzE2NCwxNCBAQCBURVNUKFdlYktpdDIsIENhcHR1cmVTdG9wKQogICAgIFt3ZWJW
aWV3IHNldFVJRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogCiAgICAgW3dlYlZpZXcgbG9hZFRl
c3RQYWdlTmFtZWQ6QCJnZXRVc2VyTWVkaWEiXTsKLSAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxD
YXB0dXJlU3RhdGUod2ViVmlldy5nZXQoKSwgX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVDYW1l
cmEpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldy5nZXQo
KSwgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlQ2FtZXJhKSk7CiAKICAgICBb
ZGVsZWdhdGUgd2FpdFVudGlsUHJvbXB0ZWRdOwogCiAgICAgW3dlYlZpZXcgX3NldFBhZ2VNdXRl
ZDogX1dLTWVkaWFDYXB0dXJlRGV2aWNlc011dGVkXTsKLSAgICBFWFBFQ1RfVFJVRSh3YWl0VW50
aWxDYXB0dXJlU3RhdGUod2ViVmlldy5nZXQoKSwgX1dLTWVkaWFDYXB0dXJlU3RhdGVNdXRlZENh
bWVyYSkpOworICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3Lmdl
dCgpLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRNdXRlZENhbWVyYSkpOwogICAgIFt3
ZWJWaWV3IF9zZXRQYWdlTXV0ZWQ6IF9XS01lZGlhTm9uZU11dGVkXTsKLSAgICBFWFBFQ1RfVFJV
RSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldy5nZXQoKSwgX1dLTWVkaWFDYXB0dXJlU3Rh
dGVBY3RpdmVDYW1lcmEpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUo
d2ViVmlldy5nZXQoKSwgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlQ2FtZXJh
KSk7CiAKICAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAibm90aWZ5
RW5kZWRFdmVudCgpIl07CiAgICAgW3dlYlZpZXcgX3N0b3BNZWRpYUNhcHR1cmVdOwpAQCAtMTc5
LDcgKzE3OSw3IEBAIFRFU1QoV2ViS2l0MiwgQ2FwdHVyZVN0b3ApCiAgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKLSAgICBFWFBFQ1RfVFJV
RSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldy5nZXQoKSwgX1dLTWVkaWFDYXB0dXJlU3Rh
dGVOb25lKSk7CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcu
Z2V0KCksIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE5vbmUpKTsKIAogICAgIFt3ZWJW
aWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJwcm9tcHRGb3JDYXB0dXJlKCkiXTsK
ICAgICBbZGVsZWdhdGUgd2FpdFVudGlsUHJvbXB0ZWRdOwpAQCAtMjA0LDcgKzIwNCw3IEBAIFRF
U1QoV2ViS2l0MiwgQ2FwdHVyZUluZGljYXRvckRlbGF5KQogICAgIFt3ZWJWaWV3IHNldFVJRGVs
ZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOwogCiAgICAgW3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6
QCJnZXRVc2VyTWVkaWEiXTsKLSAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUo
d2ViVmlldy5nZXQoKSwgX1dLTWVkaWFDYXB0dXJlU3RhdGVBY3RpdmVDYW1lcmEpKTsKKyAgICBF
WFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldy5nZXQoKSwgX1dLTWVkaWFD
YXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlQ2FtZXJhKSk7CiAKICAgICBbZGVsZWdhdGUgd2Fp
dFVudGlsUHJvbXB0ZWRdOwogCkBAIC0yMTIsMTAgKzIxMiwxMCBAQCBURVNUKFdlYktpdDIsIENh
cHR1cmVJbmRpY2F0b3JEZWxheSkKIAogICAgIC8vIFdlIHdhaXQgMSBzZWNvbmQsIHdlIHNob3Vs
ZCBzdGlsbCBzZWUgY2FtZXJhIGJlIHJlcG9ydGVkLgogICAgIHNsZWVwKDFfcyk7Ci0gICAgRVhQ
RUNUX0VRKFt3ZWJWaWV3IF9tZWRpYUNhcHR1cmVTdGF0ZV0sIF9XS01lZGlhQ2FwdHVyZVN0YXRl
QWN0aXZlQ2FtZXJhKTsKKyAgICBFWFBFQ1RfRVEoW3dlYlZpZXcgX21lZGlhQ2FwdHVyZVN0YXRl
XSwgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlQ2FtZXJhKTsKIAogICAgIC8v
IE9uZSBhZGRpdGlvbmFsIHNlY29uZCBzaG91bGQgYWxsb3cgdXMgdG8gZ28gYmFjayB0byBubyBj
YXB0dXJlIGJlaW5nIHJlcG9ydGVkLgotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVT
dGF0ZSh3ZWJWaWV3LmdldCgpLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZU5vbmUpKTsKKyAgICBFWFBF
Q1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldy5nZXQoKSwgX1dLTWVkaWFDYXB0
dXJlU3RhdGVEZXByZWNhdGVkTm9uZSkpOwogfQogCiBURVNUKFdlYktpdDIsIENhcHR1cmVJbmRp
Y2F0b3JEZWxheVdoZW5DbG9zZWQpCkBAIC0yMzcsMTMgKzIzNywxMyBAQCBURVNUKFdlYktpdDIs
IENhcHR1cmVJbmRpY2F0b3JEZWxheVdoZW5DbG9zZWQpCiAgICAgW3dlYlZpZXcgc2V0VUlEZWxl
Z2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CiAKICAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpA
ImdldFVzZXJNZWRpYSJdOwotICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3
ZWJWaWV3LmdldCgpLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZUNhbWVyYSkpOworICAgIEVY
UEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LmdldCgpLCBfV0tNZWRpYUNh
cHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVDYW1lcmEpKTsKIAogICAgIFtkZWxlZ2F0ZSB3YWl0
VW50aWxQcm9tcHRlZF07CiAKICAgICBbd2ViVmlldyBfY2xvc2VdOwogCi0gICAgRVhQRUNUX0VR
KFt3ZWJWaWV3IF9tZWRpYUNhcHR1cmVTdGF0ZV0sIF9XS01lZGlhQ2FwdHVyZVN0YXRlTm9uZSk7
CisgICAgRVhQRUNUX0VRKFt3ZWJWaWV3IF9tZWRpYUNhcHR1cmVTdGF0ZV0sIF9XS01lZGlhQ2Fw
dHVyZVN0YXRlRGVwcmVjYXRlZE5vbmUpOwogfQogCiBURVNUKFdlYktpdDIsIEdldENhcGFiaWxp
dGllcykKQEAgLTI2Myw3ICsyNjMsNyBAQCBURVNUKFdlYktpdDIsIEdldENhcGFiaWxpdGllcykK
ICAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKIAogICAgIFt3ZWJW
aWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAiZ2V0VXNlck1lZGlhIl07Ci0gICAgRVhQRUNUX1RSVUUo
d2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcuZ2V0KCksIF9XS01lZGlhQ2FwdHVyZVN0YXRl
QWN0aXZlQ2FtZXJhKSk7CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdl
YlZpZXcuZ2V0KCksIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZUNhbWVyYSkp
OwogCiAgICAgW2RlbGVnYXRlIHdhaXRVbnRpbFByb21wdGVkXTsKIApAQCAtMzcyLDcgKzM3Miw3
IEBAIFRFU1QoV2ViS2l0MiwgQ3Jhc2hHUFVQcm9jZXNzV2hpbGVDYXB0dXJpbmcpCiAgICAgd2Vi
Vmlldy5nZXQoKS5VSURlbGVnYXRlID0gZGVsZWdhdGUuZ2V0KCk7CiAKICAgICBbd2ViVmlldyBs
b2FkVGVzdFBhZ2VOYW1lZDpAImdldFVzZXJNZWRpYSJdOwotICAgIEVYUEVDVF9UUlVFKHdhaXRV
bnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3LmdldCgpLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2
ZUNhbWVyYSkpOworICAgIEVYUEVDVF9UUlVFKHdhaXRVbnRpbENhcHR1cmVTdGF0ZSh3ZWJWaWV3
LmdldCgpLCBfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVDYW1lcmEpKTsKIAog
ICAgIGRvbmUgPSBmYWxzZTsKICAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0OkAiY2FwdHVyZUF1ZGlvQW5kVmlkZW8odHJ1ZSkiXTsKQEAgLTQ1MSw3ICs0NTEsNyBAQCBU
RVNUKFdlYktpdDIsIENyYXNoR1BVUHJvY2Vzc0FmdGVyQXBwbHlpbmdDb25zdHJhaW50cykKICAg
ICB3ZWJWaWV3LmdldCgpLlVJRGVsZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsKIAogICAgIFt3ZWJW
aWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAiZ2V0VXNlck1lZGlhIl07Ci0gICAgRVhQRUNUX1RSVUUo
d2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdlYlZpZXcuZ2V0KCksIF9XS01lZGlhQ2FwdHVyZVN0YXRl
QWN0aXZlQ2FtZXJhKSk7CisgICAgRVhQRUNUX1RSVUUod2FpdFVudGlsQ2FwdHVyZVN0YXRlKHdl
YlZpZXcuZ2V0KCksIF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZUNhbWVyYSkp
OwogCiAgICAgZG9uZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6QCJjYXB0dXJlQXVkaW9BbmRWaWRlbyh0cnVlKSJdOwpAQCAtNTI3LDcgKzUyNyw3
IEBAIFRFU1QoV2ViS2l0MiwgQ3Jhc2hHUFVQcm9jZXNzV2hpbGVDYXB0dXJpbmdBbmRDYWxsaW5n
KQogICAgIHdlYlZpZXcuZ2V0KCkuVUlEZWxlZ2F0ZSA9IGRlbGVnYXRlLmdldCgpOwogCiAgICAg
W3dlYlZpZXcgbG9hZFRlc3RQYWdlTmFtZWQ6QCJnZXRVc2VyTWVkaWEiXTsKLSAgICBFWFBFQ1Rf
VFJVRSh3YWl0VW50aWxDYXB0dXJlU3RhdGUod2ViVmlldy5nZXQoKSwgX1dLTWVkaWFDYXB0dXJl
U3RhdGVBY3RpdmVDYW1lcmEpKTsKKyAgICBFWFBFQ1RfVFJVRSh3YWl0VW50aWxDYXB0dXJlU3Rh
dGUod2ViVmlldy5nZXQoKSwgX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkQWN0aXZlQ2Ft
ZXJhKSk7CiAKICAgICBkb25lID0gZmFsc2U7CiAgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpAImNhcHR1cmVBdWRpb0FuZFZpZGVvKHRydWUpIl07CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNrRGV0YWNo
ZWQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NZWRpYVN0cmVhbVRyYWNr
RGV0YWNoZWQubW0KaW5kZXggZjY5MGJhY2U3OTQ2OTBkOGQ0YmUwYmU4N2NiNTk3NmQ1MzdhM2Yy
Yy4uMDkyNDY5NDdmYmQ4MGYwMjNjMDAwMzBhMWM0ZmJkMjdlN2MzZTAzYSAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWVkaWFTdHJlYW1UcmFja0RldGFjaGVk
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01lZGlhU3RyZWFtVHJh
Y2tEZXRhY2hlZC5tbQpAQCAtMzksMTMgKzM5LDEzIEBACiBzdGF0aWMgYm9vbCBoYXNSZWNlaXZl
ZENvcnJlY3RDYXB0dXJlU3RhdGUgPSBmYWxzZTsKIAogQGludGVyZmFjZSBNZWRpYVN0cmVhbVRy
YWNrRGV0YWNoZWRVSURlbGVnYXRlIDogVXNlck1lZGlhQ2FwdHVyZVVJRGVsZWdhdGUKLS0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFu
Z2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlOworLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0dXJl
U3RhdGVEZXByZWNhdGVkKXN0YXRlOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gTWVkaWFTdHJl
YW1UcmFja0RldGFjaGVkVUlEZWxlZ2F0ZQotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3RhdGUp
c3RhdGUKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVkaWFDYXB0dXJl
U3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZClzdGF0ZQogewot
ICAgIGlmIChzdGF0ZSA9PSBfV0tNZWRpYUNhcHR1cmVTdGF0ZUFjdGl2ZU1pY3JvcGhvbmUpCisg
ICAgaWYgKHN0YXRlID09IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZEFjdGl2ZU1pY3Jv
cGhvbmUpCiAgICAgICAgIGhhc1JlY2VpdmVkQ29ycmVjdENhcHR1cmVTdGF0ZSA9IHRydWU7CiB9
CiBAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQppbmRleCBkYjIzNGI1ZWQ5ZjZi
ZWVjZjExNWUyN2NiOTQ2YTY3NDFjZjQwNjJhLi44MThjNTdlM2NmZTU1OGY1MjJjOTA1ODIwY2M2
MjE5YjdhNTg1MThmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KQEAgLTY1ODAs
MTMgKzY1ODAsMTMgQEAgVEVTVChQcm9jZXNzU3dhcCwgTG9hZEFsdGVybmF0aXZlSFRNTCkKIHN0
YXRpYyBib29sIGlzQ2FwdHVyaW5nID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBpc05vdENhcHR1cmlu
ZyA9IGZhbHNlOwogQGludGVyZmFjZSBHZXRVc2VyTWVkaWFVSURlbGVnYXRlIDogVXNlck1lZGlh
Q2FwdHVyZVVJRGVsZWdhdGUKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlOwor
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURp
ZENoYW5nZTooX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKXN0YXRlOwogQGVuZAogCiBA
aW1wbGVtZW50YXRpb24gR2V0VXNlck1lZGlhVUlEZWxlZ2F0ZQotLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZTooX1dLTWVkaWFD
YXB0dXJlU3RhdGUpc3RhdGUKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcg
bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRl
ZClzdGF0ZQogewotICAgIGlzQ2FwdHVyaW5nID0gc3RhdGUgPT0gX1dLTWVkaWFDYXB0dXJlU3Rh
dGVBY3RpdmVDYW1lcmE7CisgICAgaXNDYXB0dXJpbmcgPSBzdGF0ZSA9PSBfV0tNZWRpYUNhcHR1
cmVTdGF0ZURlcHJlY2F0ZWRBY3RpdmVDYW1lcmE7CiAgICAgaXNOb3RDYXB0dXJpbmcgPSAhc3Rh
dGU7CiB9CiBAZW5kCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1NwZWVjaFJlY29nbml0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TcGVlY2hSZWNvZ25pdGlvbi5tbQppbmRleCBiOGEwMmFiZmZmNGUzNzVhYzdk
MWIyODM2YjA4YTNkYmUxYTQ3NWY2Li42ZWE2ZWEwZGUyMDRiMWJhNTY2NjBkYTgxY2QzNTU5ZjY2
MDhjZWViIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1NwZWVjaFJlY29nbml0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvU3BlZWNoUmVjb2duaXRpb24ubW0KQEAgLTQ3LDcgKzQ3LDcgQEAgc3RhdGljIFJl
dGFpblB0cjxXS1dlYlZpZXc+IGNyZWF0ZWRXZWJWaWV3OwogLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uRm9yT3Jp
Z2luOihXS1NlY3VyaXR5T3JpZ2luICopb3JpZ2luIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXiko
Qk9PTCkpZGVjaXNpb25IYW5kbGVyOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyByZXF1ZXN0TWVkaWFDYXB0dXJlUGVybWlzc2lvbjooQk9PTClhdWRpbyB2aWRlbzooQk9P
TCl2aWRlbyBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS1Blcm1pc3Npb25EZWNpc2lvbikp
ZGVjaXNpb25IYW5kbGVyOwogLSAoV0tXZWJWaWV3ICopd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBjcmVhdGVXZWJWaWV3V2l0aENvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRp
b24gKiljb25maWd1cmF0aW9uIGZvck5hdmlnYXRpb25BY3Rpb246KFdLTmF2aWdhdGlvbkFjdGlv
biAqKW5hdmlnYXRpb25BY3Rpb24gd2luZG93RmVhdHVyZXM6KFdLV2luZG93RmVhdHVyZXMgKil3
aW5kb3dGZWF0dXJlczsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgbWVk
aWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRlKXN0YXRlOworLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBtZWRpYUNhcHR1cmVTdGF0ZURpZENo
YW5nZTooX1dLTWVkaWFDYXB0dXJlU3RhdGVEZXByZWNhdGVkKXN0YXRlOwogQGVuZAogCiBAaW1w
bGVtZW50YXRpb24gU3BlZWNoUmVjb2duaXRpb25VSURlbGVnYXRlCkBAIC03NSw5ICs3NSw5IEBA
IHN0YXRpYyBSZXRhaW5QdHI8V0tXZWJWaWV3PiBjcmVhdGVkV2ViVmlldzsKICAgICByZXR1cm4g
Y3JlYXRlZFdlYlZpZXcuZ2V0KCk7CiB9CiAKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgbWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KF9XS01lZGlhQ2FwdHVyZVN0YXRl
KXN0YXRlCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IG1lZGlhQ2FwdHVy
ZVN0YXRlRGlkQ2hhbmdlOihfV0tNZWRpYUNhcHR1cmVTdGF0ZURlcHJlY2F0ZWQpc3RhdGUKIHsK
LSAgICBpc0NhcHR1cmluZyA9IHN0YXRlID09IF9XS01lZGlhQ2FwdHVyZVN0YXRlQWN0aXZlTWlj
cm9waG9uZTsKKyAgICBpc0NhcHR1cmluZyA9IHN0YXRlID09IF9XS01lZGlhQ2FwdHVyZVN0YXRl
RGVwcmVjYXRlZEFjdGl2ZU1pY3JvcGhvbmU7CiAgICAgY2FwdHVyZVN0YXRlRGlkQ2hhbmdlID0g
dHJ1ZTsKIH0KIEBlbmQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2Ev
VGVzdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVz
dENvbnRyb2xsZXJDb2NvYS5tbQppbmRleCAzOTIwYzRhNzAzMDQyZmVlZTYxNDk2ZTFlMWQ3Mzhi
YmNjOWY3ODBiLi5iNTI1OWEyNzljMTBmMDcxYzRlODlkY2NkY2ZmYTVkYjg1M2U1OTAyIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2Eu
bW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29h
Lm1tCkBAIC00OTQsNyArNDk0LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dlZE1l
bnVBY3Rpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhY3Rpb25zKQogCiBib29sIFRlc3RDb250
cm9sbGVyOjppc0RvaW5nTWVkaWFDYXB0dXJlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9tYWlu
V2ViVmlldy0+cGxhdGZvcm1WaWV3KCkuX21lZGlhQ2FwdHVyZVN0YXRlICE9IF9XS01lZGlhQ2Fw
dHVyZVN0YXRlTm9uZTsKKyAgICByZXR1cm4gbV9tYWluV2ViVmlldy0+cGxhdGZvcm1WaWV3KCku
X21lZGlhQ2FwdHVyZVN0YXRlICE9IF9XS01lZGlhQ2FwdHVyZVN0YXRlRGVwcmVjYXRlZE5vbmU7
CiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>