<?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>227099</bug_id>
          
          <creation_ts>2021-06-16 15:52:34 -0700</creation_ts>
          <short_desc>Storage Access quirks should prompt up to twice if a user does not allow storage access</short_desc>
          <delta_ts>2021-06-17 13:04:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kate Cheney">katherine_cheney</reporter>
          <assigned_to name="Kate Cheney">katherine_cheney</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1770449</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-06-16 15:52:34 -0700</bug_when>
    <thetext>Storage Access quirks should prompt up to twice if a user does not allow storage access</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770450</commentid>
    <comment_count>1</comment_count>
      <attachid>431617</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-06-16 15:54:44 -0700</bug_when>
    <thetext>Created attachment 431617
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770483</commentid>
    <comment_count>2</comment_count>
      <attachid>431617</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-06-16 17:21:47 -0700</bug_when>
    <thetext>Comment on attachment 431617
Patch

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

r=me with comments.

&gt; Source/WebCore/ChangeLog:12
&gt; +        patch removes this code and utilizes maxNumberOfTimesExplicitlyDeniedFrameSpecificStorageAccess

We could probably rename it to just maxNumberOfTimesExplicitlyDeniedStorageAccess now that we don&apos;t do frame-specific storage access and the member variable inherently belongs to the document.

&gt; Source/WebCore/dom/DocumentStorageAccess.cpp:258
&gt; +    if (!m_document.frame() || !m_document.frame()-&gt;page() || !isAllowedToRequestFrameSpecificStorageAccess()) {

This too could probably be renamed isAllowedToRequestStorageAccess().

&gt; Source/WebCore/dom/Element.h:68
&gt; +enum class IsSyntheticClick : bool { No, Yes };

Nice. I like these boolean abstractions.

&gt; Source/WebCore/loader/ResourceLoadObserver.h:-76
&gt; -    virtual bool hasDeniedCrossPageStorageAccess(const SubResourceDomain&amp;, const TopFrameDomain&amp;) const { return false; }

These have no other implementations than in WebResourceLoadObserver, right?

&gt; Source/WebCore/page/Quirks.cpp:1225
&gt; +        // If the click is synthetic, the user has already gone through the storage access flow. We should not request again.

I think you should rephrase to &quot;… the storage access flow and we should not …&quot; to make sure that it&apos;s clear that those two result from the condition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770701</commentid>
    <comment_count>3</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-06-17 09:57:28 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #2)
&gt; Comment on attachment 431617 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=431617&amp;action=review
&gt; 
&gt; r=me with comments.

Thanks for the review!

&gt; 
&gt; &gt; Source/WebCore/ChangeLog:12
&gt; &gt; +        patch removes this code and utilizes maxNumberOfTimesExplicitlyDeniedFrameSpecificStorageAccess
&gt; 
&gt; We could probably rename it to just
&gt; maxNumberOfTimesExplicitlyDeniedStorageAccess now that we don&apos;t do
&gt; frame-specific storage access and the member variable inherently belongs to
&gt; the document.
&gt; 

Good idea, will change.

&gt; &gt; Source/WebCore/dom/DocumentStorageAccess.cpp:258
&gt; &gt; +    if (!m_document.frame() || !m_document.frame()-&gt;page() || !isAllowedToRequestFrameSpecificStorageAccess()) {
&gt; 
&gt; This too could probably be renamed isAllowedToRequestStorageAccess().

Ditto, will fix.

&gt; 
&gt; &gt; Source/WebCore/dom/Element.h:68
&gt; &gt; +enum class IsSyntheticClick : bool { No, Yes };
&gt; 
&gt; Nice. I like these boolean abstractions.

 :) 

&gt; 
&gt; &gt; Source/WebCore/loader/ResourceLoadObserver.h:-76
&gt; &gt; -    virtual bool hasDeniedCrossPageStorageAccess(const SubResourceDomain&amp;, const TopFrameDomain&amp;) const { return false; }
&gt; 
&gt; These have no other implementations than in WebResourceLoadObserver, right?
&gt; 

Right, this patch deletes the entire original implementation of storing denied storage access in the web process now that we use the Document.

&gt; &gt; Source/WebCore/page/Quirks.cpp:1225
&gt; &gt; +        // If the click is synthetic, the user has already gone through the storage access flow. We should not request again.
&gt; 
&gt; I think you should rephrase to &quot;… the storage access flow and we should not
&gt; …&quot; to make sure that it&apos;s clear that those two result from the condition.

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770723</commentid>
    <comment_count>4</comment_count>
      <attachid>431690</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-06-17 10:51:34 -0700</bug_when>
    <thetext>Created attachment 431690
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770767</commentid>
    <comment_count>5</comment_count>
      <attachid>431702</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-06-17 12:23:40 -0700</bug_when>
    <thetext>Created attachment 431702
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770781</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-17 13:03:14 -0700</bug_when>
    <thetext>Committed r279004 (238929@main): &lt;https://commits.webkit.org/238929@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431702.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770785</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-17 13:04:36 -0700</bug_when>
    <thetext>&lt;rdar://problem/79466721&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431617</attachid>
            <date>2021-06-16 15:54:44 -0700</date>
            <delta_ts>2021-06-17 10:51:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227099-20210616155443.patch</filename>
            <type>text/plain</type>
            <size>16517</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4ODc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ4NjAwOTQ1ZTEzMDBl
NzEwMzdmMmJkMTZkODZhNzkzN2JmZDc0OC4uMmM3ZWUzNTFiYjI5MDY1NDBkNTk3ZGExMDM4YjIz
YWE3ZTJkNmExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTA2LTE2ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JhZ2Ug
QWNjZXNzIHF1aXJrcyBzaG91bGQgcHJvbXB0IHVwIHRvIHR3aWNlIGlmIGEgdXNlciBkb2VzIG5v
dCBhbGxvdyBzdG9yYWdlIGFjY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI3MDk5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83OTQwOTg0Mz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBzaG91
bGQgYWxsb3cgc3RvcmFnZSBhY2Nlc3MgcHJvbXB0cyB0d2ljZSBwZXIgZG9jdW1lbnQgZm9yIHF1
aXJrcworICAgICAgICBqdXN0IGxpa2UgZm9yIG5vbi1xdWlyayBjYXNlcy4gUHJldmlvdXNseSB3
ZSB3ZXJlIG9ubHkgcHJlc2VudGluZworICAgICAgICB0aGUgcXVpcmsgcHJvbXB0IG9uY2UgcGVy
IHdlYiBjb250ZW50IHByb2Nlc3MgaWYgdGhlIHVzZXIgZGVuaWVkLiBUaGlzCisgICAgICAgIHBh
dGNoIHJlbW92ZXMgdGhpcyBjb2RlIGFuZCB1dGlsaXplcyBtYXhOdW1iZXJPZlRpbWVzRXhwbGlj
aXRseURlbmllZEZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzCisgICAgICAgIGluc3RlYWQuCisK
KyAgICAgICAgKiBkb20vRG9jdW1lbnRTdG9yYWdlQWNjZXNzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50U3RvcmFnZUFjY2Vzczo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NGb3JOb25Eb2N1
bWVudFF1aXJrKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50OjpkaXNwYXRjaE1vdXNlRXZlbnQpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6
CisgICAgICAgIEFkZCBhIG5ldyBwcm9wZXJ0eSB0byBFbGVtZW50OjpkaXNwYXRjaE1vdXNlRXZl
bnQsIGNhbGxlZCBpc1N5bnRoZXRpY0NsaWNrLgorICAgICAgICBUaGlzIGFsbG93cyB1cyB0byBz
a2lwIHRoZSBzdG9yYWdlIGFjY2VzcyBjaGVjayBpZiB3ZSBhcmUKKyAgICAgICAgZGlzcGF0Y2hp
bmcgYSBjbGljayBmcm9tIGEgcHJldmlvdXMgc3RvcmFnZSBhY2Nlc3MgY2hlY2ssIGF2b2lkaW5n
IGEKKyAgICAgICAgZG91YmxlIHByb21wdCBzaXR1YXRpb24uCisKKyAgICAgICAgKiBsb2FkZXIv
UmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZE9i
c2VydmVyOjpzZXRIYXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZE9ic2VydmVyOjpoYXNEZW5pZWRDcm9zc1BhZ2VT
dG9yYWdlQWNjZXNzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1F1aXJrcy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjppc1N0b3JhZ2VBY2Nlc3NRdWlya0RvbWFpbkFuZEVsZW1lbnQp
OgorICAgICAgICBEcml2ZS1ieSBmaXggdG8gdXBkYXRlIGVsZW1lbnQgbGFiZWwgbmFtZSBmb3Ig
UGxheXN0YXRpb24gcXVpcmsuCisKKyAgICAgICAgKFdlYkNvcmU6OlF1aXJrczo6cmVxdWVzdFN0
b3JhZ2VBY2Nlc3NBbmRIYW5kbGVDbGljayBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpRdWly
a3M6OnRyaWdnZXJPcHRpb25hbFN0b3JhZ2VBY2Nlc3NRdWlyayBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpoYXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwYWdlL1F1aXJrcy5oOgorCiAyMDIxLTA2LTE1ICBFcmljIENhcmxzb24gIDxlcmljLmNh
cmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIENvcmVNZWRpYSBXcmFwcGVyQ2xhc3Mg
ZG9lcyBub3QgbmVlZCBhbGlnbm1lbnQgZml4dXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggM2M5NWYxZjkwMjk2NDQ0
MGJlZTIwMGY4OGJlOTJhYWY5ZTUzNWQ1MC4uN2RmMGM4OTNiMWZlZmM2NmJiMTk1ZGU4MGRhMjRk
ZTc1M2IwZjFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0wNi0xNiAgS2F0ZSBD
aGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBTdG9yYWdlIEFj
Y2VzcyBxdWlya3Mgc2hvdWxkIHByb21wdCB1cCB0byB0d2ljZSBpZiBhIHVzZXIgZG9lcyBub3Qg
YWxsb3cgc3RvcmFnZSBhY2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNzA5OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzk0MDk4NDM+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGhh
c0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MgZnVuY3Rpb25zLiBUaGV5IGFyZSBub3QgbmVl
ZGVkCisgICAgICAgIG5vdyB0aGF0IHdlIGFyZSBhbGlnbmluZyBzdG9yYWdlIGFjY2VzcyBxdWly
a3Mgd2l0aCBub24tcXVpcmtzIGJ5CisgICAgICAgIHVzaW5nIG1heE51bWJlck9mVGltZXNFeHBs
aWNpdGx5RGVuaWVkRnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3MuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6Omhhc0RlbmllZENyb3NzUGFnZVN0
b3JhZ2VBY2Nlc3MgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJj
ZUxvYWRPYnNlcnZlcjo6c2V0SGFzRGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRP
YnNlcnZlci5oOgorCiAyMDIxLTA2LTE1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBDYWNoZXM6OnJlbW92ZUNhY2hlRW50cnkgc2hvdWxkIGNoZWNrIGZvciBt
X3N0b3JhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0b3JhZ2VB
Y2Nlc3MuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3RvcmFnZUFjY2Vzcy5jcHAK
aW5kZXggNTYyY2YxNWNhZDU4MjAwYjRkOTFhOGJjYmQyMDViZDYwY2FiM2RlMi4uYjU4ZmJjOTYy
YzM0N2EwOTA2MGNlNDEyYzVmOWMzYzBkOTFlOTViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50U3RvcmFnZUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50U3RvcmFnZUFjY2Vzcy5jcHAKQEAgLTI1NSw3ICsyNTUsNyBAQCB2b2lkIERvY3Vt
ZW50U3RvcmFnZUFjY2Vzczo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NGb3JOb25Eb2N1bWVudFF1aXJr
KERvY3VtZW50JiBobwogCiB2b2lkIERvY3VtZW50U3RvcmFnZUFjY2Vzczo6cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NGb3JOb25Eb2N1bWVudFF1aXJrKFJlZ2lzdHJhYmxlRG9tYWluJiYgcmVxdWVzdGlu
Z0RvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgaWYgKCFtX2RvY3VtZW50LmZyYW1lKCkgfHwg
IW1fZG9jdW1lbnQuZnJhbWUoKS0+cGFnZSgpKSB7CisgICAgaWYgKCFtX2RvY3VtZW50LmZyYW1l
KCkgfHwgIW1fZG9jdW1lbnQuZnJhbWUoKS0+cGFnZSgpIHx8ICFpc0FsbG93ZWRUb1JlcXVlc3RG
cmFtZVNwZWNpZmljU3RvcmFnZUFjY2VzcygpKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNDQ1YjY3YjU3MjA0ODE0ZmZmMjYxZGRhN2M2NTA0ZmMx
MGM2MTY3OC4uMjQxNDc5NzYxMzkyYzZmNDY5MjE3NWM5ZDdjNGQwNTMzM2ZjOTFhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcApAQCAtMzczLDcgKzM3Myw3IEBAIHN0YXRpYyBTaG91bGRJZ25vcmVN
b3VzZUV2ZW50IGRpc3BhdGNoUG9pbnRlckV2ZW50SWZOZWVkZWQoRWxlbWVudCYgZWxlbWVudCwg
Y29uCiAgICAgcmV0dXJuIFNob3VsZElnbm9yZU1vdXNlRXZlbnQ6Ok5vOwogfQogCi1ib29sIEVs
ZW1lbnQ6OmRpc3BhdGNoTW91c2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIHBsYXRm
b3JtRXZlbnQsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgaW50IGRldGFpbCwgRWxlbWVu
dCogcmVsYXRlZFRhcmdldCkKK2Jvb2wgRWxlbWVudDo6ZGlzcGF0Y2hNb3VzZUV2ZW50KGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYgcGxhdGZvcm1FdmVudCwgY29uc3QgQXRvbVN0cmluZyYgZXZl
bnRUeXBlLCBpbnQgZGV0YWlsLCBFbGVtZW50KiByZWxhdGVkVGFyZ2V0LCBJc1N5bnRoZXRpY0Ns
aWNrIGlzU3ludGhldGljQ2xpY2spCiB7CiAgICAgaWYgKGlzRGlzYWJsZWRGb3JtQ29udHJvbCgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zOTgsNyArMzk4LDcgQEAgYm9vbCBFbGVtZW50
OjpkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybUV2
ZW50LCBjb25zdAogI2VsaWYgUExBVEZPUk0oTUFDKQogICAgIGlzUGFyZW50UHJvY2Vzc0FGdWxs
V2ViQnJvd3NlciA9IE1hY0FwcGxpY2F0aW9uOjppc1NhZmFyaSgpOwogI2VuZGlmCi0gICAgaWYg
KFF1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdDo6U2hvdWxkQ2FuY2VsRXZlbnQgPT0gZG9jdW1l
bnQoKS5xdWlya3MoKS50cmlnZ2VyT3B0aW9uYWxTdG9yYWdlQWNjZXNzUXVpcmsoKnRoaXMsIHBs
YXRmb3JtRXZlbnQsIGV2ZW50VHlwZSwgZGV0YWlsLCByZWxhdGVkVGFyZ2V0LCBpc1BhcmVudFBy
b2Nlc3NBRnVsbFdlYkJyb3dzZXIpKQorICAgIGlmIChRdWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1
bHQ6OlNob3VsZENhbmNlbEV2ZW50ID09IGRvY3VtZW50KCkucXVpcmtzKCkudHJpZ2dlck9wdGlv
bmFsU3RvcmFnZUFjY2Vzc1F1aXJrKCp0aGlzLCBwbGF0Zm9ybUV2ZW50LCBldmVudFR5cGUsIGRl
dGFpbCwgcmVsYXRlZFRhcmdldCwgaXNQYXJlbnRQcm9jZXNzQUZ1bGxXZWJCcm93c2VyLCBpc1N5
bnRoZXRpY0NsaWNrKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQVNTRVJUKCFtb3Vz
ZUV2ZW50LT50YXJnZXQoKSB8fCBtb3VzZUV2ZW50LT50YXJnZXQoKSAhPSByZWxhdGVkVGFyZ2V0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCmluZGV4IDczZWJlZjI0ZmM4MzhmNzgzYThiODBhYWQ0YTk3ZjFl
ZmM2NDE3MDguLjVkNmY3MGYwYzA4ZjQ0NDA1OTZhNDIyMzczYjhiYjlkZDBhMmU0MTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaApAQCAtNjUsNiArNjUsNyBAQCBjbGFzcyBXZWJBbmltYXRpb247CiAKIGVu
dW0gY2xhc3MgQW5pbWF0aW9uSW1wYWN0OwogZW51bSBjbGFzcyBFdmVudFByb2Nlc3NpbmcgOiB1
aW50OF90OworZW51bSBjbGFzcyBJc1N5bnRoZXRpY0NsaWNrIDogYm9vbCB7IE5vLCBZZXMgfTsK
IGVudW0gY2xhc3MgU2VsZWN0aW9uUmVzdG9yYXRpb25Nb2RlIDogdWludDhfdDsKIAogc3RydWN0
IEdldEFuaW1hdGlvbnNPcHRpb25zOwpAQCAtNTMzLDcgKzUzNCw3IEBAIHB1YmxpYzoKICAgICBJ
bnRQb2ludCBzYXZlZExheWVyU2Nyb2xsUG9zaXRpb24oKSBjb25zdDsKICAgICB2b2lkIHNldFNh
dmVkTGF5ZXJTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYpOwogCi0gICAgYm9vbCBkaXNw
YXRjaE1vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgY29uc3QgQXRvbVN0cmlu
ZyYgZXZlbnRUeXBlLCBpbnQgY2xpY2tDb3VudCA9IDAsIEVsZW1lbnQqIHJlbGF0ZWRUYXJnZXQg
PSBudWxscHRyKTsKKyAgICBib29sIGRpc3BhdGNoTW91c2VFdmVudChjb25zdCBQbGF0Zm9ybU1v
dXNlRXZlbnQmLCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGludCBjbGlja0NvdW50ID0g
MCwgRWxlbWVudCogcmVsYXRlZFRhcmdldCA9IG51bGxwdHIsIElzU3ludGhldGljQ2xpY2sgaXNT
eW50ZXRoaWNDbGljayA9IElzU3ludGhldGljQ2xpY2s6Ok5vKTsKICAgICBib29sIGRpc3BhdGNo
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5k
bGluZz4mLCBFdmVudDo6SXNDYW5jZWxhYmxlID0gRXZlbnQ6OklzQ2FuY2VsYWJsZTo6WWVzKTsK
ICAgICBib29sIGRpc3BhdGNoS2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50Jik7
CiAgICAgYm9vbCBkaXNwYXRjaFNpbXVsYXRlZENsaWNrKEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQs
IFNpbXVsYXRlZENsaWNrTW91c2VFdmVudE9wdGlvbnMgPSBTZW5kTm9FdmVudHMsIFNpbXVsYXRl
ZENsaWNrVmlzdWFsT3B0aW9ucyA9IFNob3dQcmVzc2VkTG9vayk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5oCmluZGV4IGQ3NWE2ZWJjNzQ5ODcxMzJjYzVi
MDg4ZmQzMmM3MGZjODY4NWVhYTQuLmUwMmJmZDhhNGVkZDdjOWI3ZjBlNDMwNTRiYzAzOTM3YjIy
ZDVkYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNl
cnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5o
CkBAIC03MSw5ICs3MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0RG9tYWluc1dp
dGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8VG9wRnJhbWVEb21haW4sIFN1YlJlc291
cmNlRG9tYWluPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoKTsgfQogICAgIHZpcnR1YWwgYm9vbCBoYXNDcm9zc1Bh
Z2VTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YlJlc291cmNlRG9tYWluJiwgY29uc3QgVG9wRnJhbWVE
b21haW4mKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBoYXNIYWRV
c2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQotICAgIAotICAgIHZpcnR1YWwgdm9pZCBzZXRIYXNEZW5pZWRDcm9zc1BhZ2VTdG9y
YWdlQWNjZXNzKEhhc2hNYXA8VG9wRnJhbWVEb21haW4sIFN1YlJlc291cmNlRG9tYWluPiYmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlv
bkhhbmRsZXIoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBoYXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdl
QWNjZXNzKGNvbnN0IFN1YlJlc291cmNlRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUXVpcmtzLmNwcAppbmRleCA0YmU3ZTEyNzRmM2MzNjhlMTdmNjlhYjY4NTEyYjZi
NGRhZjZjOWZlLi5kZGY0ZTNlZmJjOTlkMWVjNzZlNzY4NzU2OGFhMGJlNzljODNhZjVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9RdWlya3MuY3BwCkBAIC0xMDY4LDYgKzEwNjgsNyBAQCBzdGF0aWMgYm9vbCBpc1N0
b3JhZ2VBY2Nlc3NRdWlya0RvbWFpbkFuZEVsZW1lbnQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IEVs
ZW1lbnQmCiAgICAgaWYgKHVybC5ob3N0KCkgPT0gInd3dy5wbGF5c3RhdGlvbi5jb20iX3MgfHwg
dXJsLmhvc3QoKSA9PSAibXkucGxheXN0YXRpb24uY29tIl9zKSB7CiAgICAgICAgIHJldHVybiBl
bGVtZW50Lmhhc0NsYXNzKCkKICAgICAgICAgJiYgKGVsZW1lbnQuY2xhc3NOYW1lcygpLmNvbnRh
aW5zKCJ3ZWItdG9vbGJhcl9fc2lnbmluLWJ1dHRvbiIpCisgICAgICAgIHx8IGVsZW1lbnQuY2xh
c3NOYW1lcygpLmNvbnRhaW5zKCJ3ZWItdG9vbGJhcl9fc2lnbmluLWJ1dHRvbi1sYWJlbCIpCiAg
ICAgICAgIHx8IGVsZW1lbnQuY2xhc3NOYW1lcygpLmNvbnRhaW5zKCJzYi1zaWduaW4tYnV0dG9u
IikpOwogICAgIH0KIApAQCAtMTA4MywxNSArMTA4NCw2IEBAIGJvb2wgUXVpcmtzOjpoYXNTdG9y
YWdlQWNjZXNzRm9yQWxsTG9naW5Eb21haW5zKGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21h
aW4+CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBib29sIGhhc0RlbmllZENyb3NzUGFn
ZVN0b3JhZ2VBY2Nlc3MoY29uc3QgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mIGxvZ2luRG9t
YWlucywgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluKQotewotICAgIGZv
ciAoYXV0byYgbG9naW5Eb21haW4gOiBsb2dpbkRvbWFpbnMpIHsKLSAgICAgICAgaWYgKFJlc291
cmNlTG9hZE9ic2VydmVyOjpzaGFyZWQoKS5oYXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdlQWNjZXNz
KGxvZ2luRG9tYWluLCB0b3BGcmFtZURvbWFpbikpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCiBjb25zdCBTdHJpbmcmIFF1aXJrczo6QkJD
UmFkaW9QbGF5ZXJVUkxTdHJpbmcoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IEJCQ1JhZGlvUGxheWVyVVJMU3RyaW5nID0gImh0dHBzOi8vd3d3LmJiYy5jby51ay9zb3Vu
ZHMvcGxheWVyL2JiY193b3JsZF9zZXJ2aWNlIl9zOwpAQCAtMTEyNyw4ICsxMTE5LDggQEAgUXVp
cmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0IFF1aXJrczo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NBbmRI
YW5kbGVDbGljayhDb21wbGV0aW8KICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU2hvdWxkRGlz
cGF0Y2hDbGljazo6Tm8pOwogICAgICAgICByZXR1cm4gUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVz
dWx0OjpTaG91bGROb3RDYW5jZWxFdmVudDsKICAgICB9Ci0gICAgaWYgKGhhc1N0b3JhZ2VBY2Nl
c3NGb3JBbGxMb2dpbkRvbWFpbnMoKmRvbWFpbnNJbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIGZpcnN0
UGFydHlEb21haW4pCi0gICAgICAgIHx8IGhhc0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3Mo
KmRvbWFpbnNJbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIGZpcnN0UGFydHlEb21haW4pKSB7CisKKyAg
ICBpZiAoaGFzU3RvcmFnZUFjY2Vzc0ZvckFsbExvZ2luRG9tYWlucygqZG9tYWluc0luTmVlZE9m
U3RvcmFnZUFjY2VzcywgZmlyc3RQYXJ0eURvbWFpbikpIHsKICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoU2hvdWxkRGlzcGF0Y2hDbGljazo6Tm8pOwogICAgICAgICByZXR1cm4gUXVpcmtzOjpT
dG9yYWdlQWNjZXNzUmVzdWx0OjpTaG91bGROb3RDYW5jZWxFdmVudDsKICAgICB9CkBAIC0xMTQy
LDkgKzExMzQsNyBAQCBRdWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1bHQgUXVpcmtzOjpyZXF1ZXN0
U3RvcmFnZUFjY2Vzc0FuZEhhbmRsZUNsaWNrKENvbXBsZXRpbwogCiAgICAgRG9jdW1lbnRTdG9y
YWdlQWNjZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0Zvck5vbkRvY3VtZW50UXVpcmsoKm1fZG9j
dW1lbnQsIFdURk1vdmUoZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzKSwgW2ZpcnN0UGFydHlE
b21haW4sIGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcywgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgc3RvcmFn
ZUFjY2Vzc0dyYW50ZWQpIG11dGFibGUgewogICAgICAgICBpZiAoc3RvcmFnZUFjY2Vzc0dyYW50
ZWQgPT0gU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6Ok5vKSB7Ci0gICAgICAgICAgICBSZXNvdXJj
ZUxvYWRPYnNlcnZlcjo6c2hhcmVkKCkuc2V0SGFzRGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vz
cyh7eyBmaXJzdFBhcnR5RG9tYWluLCBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgfX0sIFtj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxl
IHsKLSAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTaG91bGREaXNwYXRjaENsaWNr
OjpZZXMpOwotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihT
aG91bGREaXNwYXRjaENsaWNrOjpZZXMpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKQEAgLTExNTYsNyArMTE0Niw3IEBAIFF1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdCBRdWly
a3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQW5kSGFuZGxlQ2xpY2soQ29tcGxldGlvCiB9CiAjZW5k
aWYKIAotUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0IFF1aXJrczo6dHJpZ2dlck9wdGlvbmFs
U3RvcmFnZUFjY2Vzc1F1aXJrKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFBsYXRmb3JtTW91c2VF
dmVudCYgcGxhdGZvcm1FdmVudCwgY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBpbnQgZGV0
YWlsLCBFbGVtZW50KiByZWxhdGVkVGFyZ2V0LCBib29sIGlzUGFyZW50UHJvY2Vzc0FGdWxsV2Vi
QnJvd3NlcikgY29uc3QKK1F1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdCBRdWlya3M6OnRyaWdn
ZXJPcHRpb25hbFN0b3JhZ2VBY2Nlc3NRdWlyayhFbGVtZW50JiBlbGVtZW50LCBjb25zdCBQbGF0
Zm9ybU1vdXNlRXZlbnQmIHBsYXRmb3JtRXZlbnQsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlw
ZSwgaW50IGRldGFpbCwgRWxlbWVudCogcmVsYXRlZFRhcmdldCwgYm9vbCBpc1BhcmVudFByb2Nl
c3NBRnVsbFdlYkJyb3dzZXIsIElzU3ludGhldGljQ2xpY2sgaXNTeW50aGV0aWNDbGljaykgY29u
c3QKIHsKICAgICBpZiAoIURlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6cmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VuYWJsZWQoKSB8fCAhaXNQYXJlbnRQcm9jZXNzQUZ1bGxXZWJCcm93c2VyKQogICAg
ICAgICByZXR1cm4gUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0OjpTaG91bGROb3RDYW5jZWxF
dmVudDsKQEAgLTEyMzIsMTMgKzEyMjIsMTQgQEAgUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0
IFF1aXJrczo6dHJpZ2dlck9wdGlvbmFsU3RvcmFnZUFjY2Vzc1F1aXJrKEVsZW1lbnQmIGUKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGlmIChpc1N0b3JhZ2VBY2Nlc3NRdWly
a0RvbWFpbkFuZEVsZW1lbnQobV9kb2N1bWVudC0+dXJsKCksIGVsZW1lbnQpKSB7CisgICAgICAg
IC8vIElmIHRoZSBjbGljayBpcyBzeW50aGV0aWMsIHRoZSB1c2VyIGhhcyBhbHJlYWR5IGdvbmUg
dGhyb3VnaCB0aGUgc3RvcmFnZSBhY2Nlc3MgZmxvdy4gV2Ugc2hvdWxkIG5vdCByZXF1ZXN0IGFn
YWluLgorICAgICAgICBpZiAoaXNTdG9yYWdlQWNjZXNzUXVpcmtEb21haW5BbmRFbGVtZW50KG1f
ZG9jdW1lbnQtPnVybCgpLCBlbGVtZW50KSAmJiBpc1N5bnRoZXRpY0NsaWNrID09IElzU3ludGhl
dGljQ2xpY2s6Ok5vKSB7CiAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdFN0b3JhZ2VBY2Nlc3NB
bmRIYW5kbGVDbGljayhbZWxlbWVudCA9IG1ha2VXZWFrUHRyKGVsZW1lbnQpLCBwbGF0Zm9ybUV2
ZW50LCBldmVudFR5cGUsIGRldGFpbCwgcmVsYXRlZFRhcmdldF0gKFNob3VsZERpc3BhdGNoQ2xp
Y2sgc2hvdWxkRGlzcGF0Y2hDbGljaykgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYgKCFl
bGVtZW50KQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgICAgICBp
ZiAoc2hvdWxkRGlzcGF0Y2hDbGljayA9PSBTaG91bGREaXNwYXRjaENsaWNrOjpZZXMpCi0gICAg
ICAgICAgICAgICAgICAgIGVsZW1lbnQtPmRpc3BhdGNoTW91c2VFdmVudChwbGF0Zm9ybUV2ZW50
LCBldmVudFR5cGUsIGRldGFpbCwgcmVsYXRlZFRhcmdldCk7CisgICAgICAgICAgICAgICAgICAg
IGVsZW1lbnQtPmRpc3BhdGNoTW91c2VFdmVudChwbGF0Zm9ybUV2ZW50LCBldmVudFR5cGUsIGRl
dGFpbCwgcmVsYXRlZFRhcmdldCwgSXNTeW50aGV0aWNDbGljazo6WWVzKTsKICAgICAgICAgICAg
IH0pOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5oCmluZGV4IDAxNGQ3MmU5NWYwM2UyMzkx
ZTgwMGZlOTY5YzFiMWI1Y2U0MmViZTAuLjk5ODdiNmJiZjBmMWY2MWRiNmY4OTliOWFhNzQ4YTJl
YWE2MzUyMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaApAQCAtNDQsNiArNDQsOCBAQCBjbGFzcyBSZWdp
c3RyYWJsZURvbWFpbjsKIGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgOiBib29s
OwogI2VuZGlmCiAKK2VudW0gY2xhc3MgSXNTeW50aGV0aWNDbGljayA6IGJvb2w7CisKIGNsYXNz
IFF1aXJrcyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUXVpcmtzKTsgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC0xMjIsNyArMTI0LDcgQEAgcHVibGljOgogCiAgICAg
ZW51bSBTdG9yYWdlQWNjZXNzUmVzdWx0IDogYm9vbCB7IFNob3VsZE5vdENhbmNlbEV2ZW50LCBT
aG91bGRDYW5jZWxFdmVudCB9OwogICAgIGVudW0gU2hvdWxkRGlzcGF0Y2hDbGljayA6IGJvb2wg
eyBObywgWWVzIH07Ci0gICAgU3RvcmFnZUFjY2Vzc1Jlc3VsdCB0cmlnZ2VyT3B0aW9uYWxTdG9y
YWdlQWNjZXNzUXVpcmsoRWxlbWVudCYsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIGNvbnN0
IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgaW50LCBFbGVtZW50KiwgYm9vbCBpc1BhcmVudFByb2Nl
c3NBRnVsbFdlYkJyb3dzZXIpIGNvbnN0OworICAgIFN0b3JhZ2VBY2Nlc3NSZXN1bHQgdHJpZ2dl
ck9wdGlvbmFsU3RvcmFnZUFjY2Vzc1F1aXJrKEVsZW1lbnQmLCBjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmLCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGludCwgRWxlbWVudCosIGJvb2wg
aXNQYXJlbnRQcm9jZXNzQUZ1bGxXZWJCcm93c2VyLCBJc1N5bnRoZXRpY0NsaWNrKSBjb25zdDsK
IAogICAgIGJvb2wgbmVlZHNWUDlGdWxsUmFuZ2VGbGFnUXVpcmsoKSBjb25zdDsKICAgICBib29s
IG5lZWRzSERSUGl4ZWxEZXB0aFF1aXJrKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9h
ZE9ic2VydmVyLmNwcAppbmRleCA1MGMxNTg3MDI3ZDQ3ZWEwNTA0M2E4NDI4ODJmZDk3NGExNDli
NzYwLi5mOWI1YzJjMjgyZTg3OWNjMDE4NTE4Y2JiY2IyZjQxZGM3ZGZhYTgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2Fk
T2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAKQEAgLTQ0MywyNSArNDQzLDYgQEAgdm9pZCBX
ZWJSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2V0RG9tYWluc1dpdGhDcm9zc1BhZ2VTdG9yYWdlQWNj
ZXNzKEhhc2hNYXA8VG9wRnIKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCi1ib29sIFdl
YlJlc291cmNlTG9hZE9ic2VydmVyOjpoYXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKGNv
bnN0IFN1YkZyYW1lRG9tYWluJiBzdWJEb21haW4sIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BE
b21haW4pIGNvbnN0Ci17Ci0gICAgYXV0byBpdCA9IG1fZG9tYWluc1dpdGhEZW5pZWRTdG9yYWdl
QWNjZXNzLmZpbmQodG9wRG9tYWluKTsKLQotICAgIGlmIChpdCAhPSBtX2RvbWFpbnNXaXRoRGVu
aWVkU3RvcmFnZUFjY2Vzcy5lbmQoKSkKLSAgICAgICAgcmV0dXJuIGl0LT52YWx1ZS5jb250YWlu
cyhzdWJEb21haW4pOwotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lkIFdlYlJlc291cmNl
TG9hZE9ic2VydmVyOjpzZXRIYXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8
VG9wRnJhbWVEb21haW4sIFN1YkZyYW1lRG9tYWluPiYmIGRvbWFpbnMsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBmb3IgKGF1dG8mIHRvcERv
bWFpbiA6IGRvbWFpbnMua2V5cygpKSB7Ci0gICAgICAgIG1fZG9tYWluc1dpdGhEZW5pZWRTdG9y
YWdlQWNjZXNzLmVuc3VyZSh0b3BEb21haW4sIFtdIHsgcmV0dXJuIEhhc2hTZXQ8UmVnaXN0cmFi
bGVEb21haW4+IHsgfTsKLSAgICAgICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5hZGQoZG9tYWlu
cy5nZXQodG9wRG9tYWluKSk7Ci0gICAgfQotICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci19Ci0K
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURf
U1RBVElTVElDUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmgKaW5kZXggMTRiOTY5
MzcwYjI1ZmM3OWEzNzYzZjE1NmE2MjY5ZDNhNzlhNDc3Ni4uNjhjOTYzNTQxM2VmMmI4ZWFkODk3
YzNjZjE1ZGZiMWE0NjkzNWY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmgK
QEAgLTY5LDggKzY5LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RG9tYWluc1dpdGhDcm9zc1Bh
Z2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8VG9wRnJhbWVEb21haW4sIFN1YkZyYW1lRG9tYWluPiYm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIGJvb2wgaGFzSGFkVXNl
ckludGVyYWN0aW9uKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3QgZmlu
YWw7CiAgICAgYm9vbCBoYXNDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9t
YWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHNldEhh
c0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoSGFzaE1hcDxUb3BGcmFtZURvbWFpbiwgU3Vi
RnJhbWVEb21haW4+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7Ci0gICAg
Ym9vbCBoYXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWlu
JiwgY29uc3QgVG9wRnJhbWVEb21haW4mKSBjb25zdCBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NG
b3JSZWdpc3RyYWJsZURvbWFpbihjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpOwpA
QCAtOTAsNyArODgsNiBAQCBwcml2YXRlOgogCiAgICAgSGFzaFNldDxXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbj4gbV9kb21haW5zV2l0aFVzZXJJbnRlcmFjdGlvbjsKICAgICBIYXNoTWFwPFRv
cEZyYW1lRG9tYWluLCBIYXNoU2V0PFN1YkZyYW1lRG9tYWluPj4gbV9kb21haW5zV2l0aENyb3Nz
UGFnZVN0b3JhZ2VBY2Nlc3M7Ci0gICAgSGFzaE1hcDxUb3BGcmFtZURvbWFpbiwgSGFzaFNldDxT
dWJGcmFtZURvbWFpbj4+IG1fZG9tYWluc1dpdGhEZW5pZWRTdG9yYWdlQWNjZXNzOwogI2lmICFS
RUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHVpbnQ2NF90IG1fbG9nZ2luZ0NvdW50ZXIgeyAwIH07
CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkTG9nVXNlckludGVyYWN0aW9uOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431690</attachid>
            <date>2021-06-17 10:51:34 -0700</date>
            <delta_ts>2021-06-17 10:56:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-227099-20210617105133.patch</filename>
            <type>text/plain</type>
            <size>21780</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjgxNWY5YTdiMjFhYmE3
NjRhZDExYmIwYjJkODI4NWI3MGViZDViNC4uMTdhZjNhMzcyYzg2YjgwYzA1N2Y1NDc5ZGJhODcy
NjA0NzU0NDQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIxLTA2LTE3ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JhZ2Ug
QWNjZXNzIHF1aXJrcyBzaG91bGQgcHJvbXB0IHVwIHRvIHR3aWNlIGlmIGEgdXNlciBkb2VzIG5v
dCBhbGxvdyBzdG9yYWdlIGFjY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI3MDk5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83OTQwOTg0Mz4K
KworICAgICAgICBSZXZpZXdlZCBieSBKb2huIFdpbGFuZGVyLgorCisgICAgICAgIFJlbW92ZSBo
YXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzIGZ1bmN0aW9ucy4gVGhleSBhcmUgbm90IG5l
ZWRlZAorICAgICAgICBub3cgdGhhdCB3ZSBhcmUgYWxpZ25pbmcgc3RvcmFnZSBhY2Nlc3MgcXVp
cmtzIHdpdGggbm9uLXF1aXJrcyBieQorICAgICAgICB1c2luZyBtYXhOdW1iZXJPZlRpbWVzRXhw
bGljaXRseURlbmllZFN0b3JhZ2VBY2Nlc3MuIAorCisgICAgICAgICogZG9tL0RvY3VtZW50U3Rv
cmFnZUFjY2Vzcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFN0b3JhZ2VBY2Nlc3M6
OnJlcXVlc3RTdG9yYWdlQWNjZXNzUXVpY2tDaGVjayk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudFN0b3JhZ2VBY2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzRm9yTm9uRG9jdW1lbnRRdWly
ayk6CisgICAgICAgICogZG9tL0RvY3VtZW50U3RvcmFnZUFjY2Vzcy5oOgorICAgICAgICAqIGRv
bS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRpc3BhdGNoTW91c2VF
dmVudCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvUmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZE9ic2VydmVy
OjpoYXNIYWRVc2VySW50ZXJhY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXI6OnNldEhhc0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6Omhhc0RlbmllZENy
b3NzUGFnZVN0b3JhZ2VBY2Nlc3MgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvUXVp
cmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzU3RvcmFnZUFjY2Vzc1F1aXJrRG9tYWluQW5k
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpRdWlya3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNz
QW5kSGFuZGxlQ2xpY2sgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UXVpcmtzOjp0cmlnZ2Vy
T3B0aW9uYWxTdG9yYWdlQWNjZXNzUXVpcmsgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6aGFz
RGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9R
dWlya3MuaDoKKworMjAyMS0wNi0xNCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFw
cGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgU3RvcmFnZSBBY2Nlc3MgQVBJIHF1aXJrIG9uIGxp
dmUuY29tCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjY5OTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5MjE4OTg2PgorCisgICAgICAgIFJldmll
d2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgVGhlIHF1aXJrIG9uIGxpdmUuY29tIGlz
IHVubmVjZXNzYXJ5LCBhbmQgd2Ugc2hvdWxkIHJlbW92ZSBpdC4KKworICAgICAgICAqIGRvbS9E
b2N1bWVudFN0b3JhZ2VBY2Nlc3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRTdG9y
YWdlQWNjZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1F1aXJrKToKKyAgICAgICAgKiBwYWdlL1F1
aXJrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1N0b3JhZ2VBY2Nlc3NRdWlya0RvbWFpbkFu
ZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UXVpcmtzOjpyZXF1ZXN0U3RvcmFnZUFjY2Vz
c0FuZEhhbmRsZUNsaWNrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlF1aXJrczo6bWFwVG9U
b3BEb21haW4pOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvUXVpcmtzLmg6CisKIDIwMjEtMDYt
MDcgIEltYW5vbCBGZXJuYW5kZXogIDxpZmVybmFuZGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAg
Q2hhbmdlIFdlYlhSU3BhY2U6OmVmZWN0aXZlT3JpZ2luKCkgbWF0cml4IG11bHRpcGxpY2F0aW9u
IG9yZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGZmNmExZTg5M2E5OGIwYzhhMjJiZjgwN2IzZGI3OWVkMzJkNGQ3
ODkuLjU1ODgwZjkyMjRhMTVkMThmM2IzMDQ1YjNkNDUyNjQ3YTE5YjJjNWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMjEtMDYtMTcgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5l
eUBhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcmFnZSBBY2Nlc3MgcXVpcmtzIHNob3VsZCBwcm9t
cHQgdXAgdG8gdHdpY2UgaWYgYSB1c2VyIGRvZXMgbm90IGFsbG93IHN0b3JhZ2UgYWNjZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcwOTkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5NDA5ODQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpv
aG4gV2lsYW5kZXIuCisKKyAgICAgICAgV2Ugc2hvdWxkIGFsbG93IHN0b3JhZ2UgYWNjZXNzIHBy
b21wdHMgdHdpY2UgcGVyIGRvY3VtZW50IGZvciBxdWlya3MKKyAgICAgICAganVzdCBsaWtlIGZv
ciBub24tcXVpcmsgY2FzZXMuIFByZXZpb3VzbHkgd2Ugd2VyZSBvbmx5IHByZXNlbnRpbmcKKyAg
ICAgICAgdGhlIHF1aXJrIHByb21wdCBvbmNlIHBlciB3ZWIgY29udGVudCBwcm9jZXNzIGlmIHRo
ZSB1c2VyIGRlbmllZC4gVGhpcworICAgICAgICBwYXRjaCByZW1vdmVzIHRoaXMgY29kZSBhbmQg
dXRpbGl6ZXMgbWF4TnVtYmVyT2ZUaW1lc0V4cGxpY2l0bHlEZW5pZWRTdG9yYWdlQWNjZXNzIAor
ICAgICAgICBpbnN0ZWFkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
TG9hZE9ic2VydmVyOjpoYXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNldEhhc0Rl
bmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaDoKKwogMjAyMS0wNi0w
NyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29j
b2FdIEZpbmQtaW4tcGFnZSBzaG91bGQgbWF0Y2ggdGV4dCBpbnNpZGUgaW1hZ2Ugb3ZlcmxheXMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0b3JhZ2VBY2Nlc3MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3RvcmFnZUFjY2Vzcy5jcHAKaW5kZXggZTAx
NGNiNTJiYzc4ZDJiNDU0ZDRiNjE1ODk3NDQwODRlMDYxZjk5NS4uMTgwNDA1YTlmMDRiMTcwMjU5
MjFmZWE1ZGYxYmUyMjU2OTZlYzAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50U3RvcmFnZUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
U3RvcmFnZUFjY2Vzcy5jcHAKQEAgLTE1Myw3ICsxNTMsNyBAQCBzdGQ6Om9wdGlvbmFsPFN0b3Jh
Z2VBY2Nlc3NRdWlja1Jlc3VsdD4gRG9jdW1lbnRTdG9yYWdlQWNjZXNzOjpyZXF1ZXN0U3RvcmFn
ZUFjYwogICAgIGlmIChmcmFtZSAmJiBoYXNGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2VzcygpKQog
ICAgICAgICByZXR1cm4gU3RvcmFnZUFjY2Vzc1F1aWNrUmVzdWx0OjpHcmFudDsKIAotICAgIGlm
ICghZnJhbWUgfHwgbV9kb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmlzVW5pcXVlKCkgfHwgIWlz
QWxsb3dlZFRvUmVxdWVzdEZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzKCkpCisgICAgaWYgKCFm
cmFtZSB8fCBtX2RvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuaXNVbmlxdWUoKSB8fCAhaXNBbGxv
d2VkVG9SZXF1ZXN0U3RvcmFnZUFjY2VzcygpKQogICAgICAgICByZXR1cm4gU3RvcmFnZUFjY2Vz
c1F1aWNrUmVzdWx0OjpSZWplY3Q7CiAKICAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkpCkBA
IC0yNTUsNyArMjU1LDcgQEAgdm9pZCBEb2N1bWVudFN0b3JhZ2VBY2Nlc3M6OnJlcXVlc3RTdG9y
YWdlQWNjZXNzRm9yTm9uRG9jdW1lbnRRdWlyayhEb2N1bWVudCYgaG8KIAogdm9pZCBEb2N1bWVu
dFN0b3JhZ2VBY2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzRm9yTm9uRG9jdW1lbnRRdWlyayhS
ZWdpc3RyYWJsZURvbWFpbiYmIHJlcXVlc3RpbmdEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAg
IGlmICghbV9kb2N1bWVudC5mcmFtZSgpIHx8ICFtX2RvY3VtZW50LmZyYW1lKCktPnBhZ2UoKSkg
eworICAgIGlmICghbV9kb2N1bWVudC5mcmFtZSgpIHx8ICFtX2RvY3VtZW50LmZyYW1lKCktPnBh
Z2UoKSB8fCAhaXNBbGxvd2VkVG9SZXF1ZXN0U3RvcmFnZUFjY2VzcygpKSB7CiAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObyk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkBAIC0yNjcsNyArMjY3LDcgQEAgdm9pZCBEb2N1bWVudFN0b3JhZ2VBY2Nl
c3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzUXVpcmsoUmVnaXN0cmFibGVEb21haW4mJiByZXF1ZXMK
ICAgICBBU1NFUlQobV9kb2N1bWVudC5zZXR0aW5ncygpLnN0b3JhZ2VBY2Nlc3NBUElFbmFibGVk
KCkpOwogICAgIFJFTEVBU0VfQVNTRVJUKG1fZG9jdW1lbnQuZnJhbWUoKSAmJiBtX2RvY3VtZW50
LmZyYW1lKCktPnBhZ2UoKSk7CiAKLSAgICBhdXRvIHRvcEZyYW1lRG9tYWluID0gUXVpcmtzOjpt
YXBUb1RvcERvbWFpbihtX2RvY3VtZW50LnRvcERvY3VtZW50KCkudXJsKCkpOworICAgIGF1dG8g
dG9wRnJhbWVEb21haW4gPSBSZWdpc3RyYWJsZURvbWFpbihtX2RvY3VtZW50LnRvcERvY3VtZW50
KCkudXJsKCkpOwogCiAgICAgbV9kb2N1bWVudC5mcmFtZSgpLT5wYWdlKCktPmNocm9tZSgpLmNs
aWVudCgpLnJlcXVlc3RTdG9yYWdlQWNjZXNzKFdURk1vdmUocmVxdWVzdGluZ0RvbWFpbiksIFdU
Rk1vdmUodG9wRnJhbWVEb21haW4pLCAqbV9kb2N1bWVudC5mcmFtZSgpLCBtX3N0b3JhZ2VBY2Nl
c3NTY29wZSwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoUmVxdWVzdFN0b3JhZ2VBY2Nl
c3NSZXN1bHQgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0b3JhZ2VBY2Nlc3MuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0b3JhZ2VBY2Nlc3MuaAppbmRleCAwMTBlMGRmMjljMTNi
OGJlZThkYWY1MzIxZjIyZWExZGVkZTVkNWYxLi5lZGEyNmZlYjcyZDMxYzg0ZTJkNzY2NzUzY2U3
MzQ3NGU3NmY0NzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdG9y
YWdlQWNjZXNzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3RvcmFnZUFjY2Vz
cy5oCkBAIC02OCw3ICs2OCw3IEBAIHN0cnVjdCBSZXF1ZXN0U3RvcmFnZUFjY2Vzc1Jlc3VsdCB7
CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UmVxdWVz
dFN0b3JhZ2VBY2Nlc3NSZXN1bHQ+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCi1jb25zdCB1bnNp
Z25lZCBtYXhOdW1iZXJPZlRpbWVzRXhwbGljaXRseURlbmllZEZyYW1lU3BlY2lmaWNTdG9yYWdl
QWNjZXNzID0gMjsKK2NvbnN0IHVuc2lnbmVkIG1heE51bWJlck9mVGltZXNFeHBsaWNpdGx5RGVu
aWVkU3RvcmFnZUFjY2VzcyA9IDI7CiAKIGNsYXNzIERvY3VtZW50U3RvcmFnZUFjY2VzcyBmaW5h
bCA6IHB1YmxpYyBTdXBwbGVtZW50PERvY3VtZW50PiwgcHVibGljIENhbk1ha2VXZWFrUHRyPERv
Y3VtZW50U3RvcmFnZUFjY2Vzcz4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAt
OTgsNyArOTgsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50
TmFtZSgpOwogICAgIGJvb2wgaGFzRnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3MoKSBjb25zdDsK
ICAgICB2b2lkIHNldFdhc0V4cGxpY2l0bHlEZW5pZWRGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2Vz
cygpIHsgKyttX251bWJlck9mVGltZXNFeHBsaWNpdGx5RGVuaWVkRnJhbWVTcGVjaWZpY1N0b3Jh
Z2VBY2Nlc3M7IH07Ci0gICAgYm9vbCBpc0FsbG93ZWRUb1JlcXVlc3RGcmFtZVNwZWNpZmljU3Rv
cmFnZUFjY2VzcygpIHsgcmV0dXJuIG1fbnVtYmVyT2ZUaW1lc0V4cGxpY2l0bHlEZW5pZWRGcmFt
ZVNwZWNpZmljU3RvcmFnZUFjY2VzcyA8IG1heE51bWJlck9mVGltZXNFeHBsaWNpdGx5RGVuaWVk
RnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3M7IH07CisgICAgYm9vbCBpc0FsbG93ZWRUb1JlcXVl
c3RTdG9yYWdlQWNjZXNzKCkgeyByZXR1cm4gbV9udW1iZXJPZlRpbWVzRXhwbGljaXRseURlbmll
ZEZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzIDwgbWF4TnVtYmVyT2ZUaW1lc0V4cGxpY2l0bHlE
ZW5pZWRTdG9yYWdlQWNjZXNzOyB9OwogICAgIHZvaWQgZW5hYmxlVGVtcG9yYXJ5VGltZVVzZXJH
ZXN0dXJlKCk7CiAgICAgdm9pZCBjb25zdW1lVGVtcG9yYXJ5VGltZVVzZXJHZXN0dXJlKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAxMmQ3MmJiNTBjOTRjOTY2NWY3OTZiMzc5MTcxMTkx
MGNmNDI3MjIxLi43NTk5ZWE1Yjc1OWUzNzBlOTFjODU2MmVmMTc3Yjg3MGQyYjQ3YjA2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0zNzMsNyArMzczLDcgQEAgc3RhdGljIFNob3VsZElnbm9y
ZU1vdXNlRXZlbnQgZGlzcGF0Y2hQb2ludGVyRXZlbnRJZk5lZWRlZChFbGVtZW50JiBlbGVtZW50
LCBjb24KICAgICByZXR1cm4gU2hvdWxkSWdub3JlTW91c2VFdmVudDo6Tm87CiB9CiAKLWJvb2wg
RWxlbWVudDo6ZGlzcGF0Y2hNb3VzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgcGxh
dGZvcm1FdmVudCwgY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBpbnQgZGV0YWlsLCBFbGVt
ZW50KiByZWxhdGVkVGFyZ2V0KQorYm9vbCBFbGVtZW50OjpkaXNwYXRjaE1vdXNlRXZlbnQoY29u
c3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybUV2ZW50LCBjb25zdCBBdG9tU3RyaW5nJiBl
dmVudFR5cGUsIGludCBkZXRhaWwsIEVsZW1lbnQqIHJlbGF0ZWRUYXJnZXQsIElzU3ludGhldGlj
Q2xpY2sgaXNTeW50aGV0aWNDbGljaykKIHsKICAgICBpZiAoaXNEaXNhYmxlZEZvcm1Db250cm9s
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTM5OCw3ICszOTgsNyBAQCBib29sIEVsZW1l
bnQ6OmRpc3BhdGNoTW91c2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIHBsYXRmb3Jt
RXZlbnQsIGNvbnN0CiAjZWxpZiBQTEFURk9STShNQUMpCiAgICAgaXNQYXJlbnRQcm9jZXNzQUZ1
bGxXZWJCcm93c2VyID0gTWFjQXBwbGljYXRpb246OmlzU2FmYXJpKCk7CiAjZW5kaWYKLSAgICBp
ZiAoUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0OjpTaG91bGRDYW5jZWxFdmVudCA9PSBkb2N1
bWVudCgpLnF1aXJrcygpLnRyaWdnZXJPcHRpb25hbFN0b3JhZ2VBY2Nlc3NRdWlyaygqdGhpcywg
cGxhdGZvcm1FdmVudCwgZXZlbnRUeXBlLCBkZXRhaWwsIHJlbGF0ZWRUYXJnZXQsIGlzUGFyZW50
UHJvY2Vzc0FGdWxsV2ViQnJvd3NlcikpCisgICAgaWYgKFF1aXJrczo6U3RvcmFnZUFjY2Vzc1Jl
c3VsdDo6U2hvdWxkQ2FuY2VsRXZlbnQgPT0gZG9jdW1lbnQoKS5xdWlya3MoKS50cmlnZ2VyT3B0
aW9uYWxTdG9yYWdlQWNjZXNzUXVpcmsoKnRoaXMsIHBsYXRmb3JtRXZlbnQsIGV2ZW50VHlwZSwg
ZGV0YWlsLCByZWxhdGVkVGFyZ2V0LCBpc1BhcmVudFByb2Nlc3NBRnVsbFdlYkJyb3dzZXIsIGlz
U3ludGhldGljQ2xpY2spKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBBU1NFUlQoIW1v
dXNlRXZlbnQtPnRhcmdldCgpIHx8IG1vdXNlRXZlbnQtPnRhcmdldCgpICE9IHJlbGF0ZWRUYXJn
ZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggNzNlYmVmMjRmYzgzOGY3ODNhOGI4MGFhZDRhOTdm
MWVmYzY0MTcwOC4uNWQ2ZjcwZjBjMDhmNDQ0MDU5NmE0MjIzNzNiOGJiOWRkMGEyZTQxOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oCkBAIC02NSw2ICs2NSw3IEBAIGNsYXNzIFdlYkFuaW1hdGlvbjsKIAog
ZW51bSBjbGFzcyBBbmltYXRpb25JbXBhY3Q7CiBlbnVtIGNsYXNzIEV2ZW50UHJvY2Vzc2luZyA6
IHVpbnQ4X3Q7CitlbnVtIGNsYXNzIElzU3ludGhldGljQ2xpY2sgOiBib29sIHsgTm8sIFllcyB9
OwogZW51bSBjbGFzcyBTZWxlY3Rpb25SZXN0b3JhdGlvbk1vZGUgOiB1aW50OF90OwogCiBzdHJ1
Y3QgR2V0QW5pbWF0aW9uc09wdGlvbnM7CkBAIC01MzMsNyArNTM0LDcgQEAgcHVibGljOgogICAg
IEludFBvaW50IHNhdmVkTGF5ZXJTY3JvbGxQb3NpdGlvbigpIGNvbnN0OwogICAgIHZvaWQgc2V0
U2F2ZWRMYXllclNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50Jik7CiAKLSAgICBib29sIGRp
c3BhdGNoTW91c2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBjb25zdCBBdG9tU3Ry
aW5nJiBldmVudFR5cGUsIGludCBjbGlja0NvdW50ID0gMCwgRWxlbWVudCogcmVsYXRlZFRhcmdl
dCA9IG51bGxwdHIpOworICAgIGJvb2wgZGlzcGF0Y2hNb3VzZUV2ZW50KGNvbnN0IFBsYXRmb3Jt
TW91c2VFdmVudCYsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgaW50IGNsaWNrQ291bnQg
PSAwLCBFbGVtZW50KiByZWxhdGVkVGFyZ2V0ID0gbnVsbHB0ciwgSXNTeW50aGV0aWNDbGljayBp
c1N5bnRldGhpY0NsaWNrID0gSXNTeW50aGV0aWNDbGljazo6Tm8pOwogICAgIGJvb2wgZGlzcGF0
Y2hXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxFdmVudEhh
bmRsaW5nPiYsIEV2ZW50OjpJc0NhbmNlbGFibGUgPSBFdmVudDo6SXNDYW5jZWxhYmxlOjpZZXMp
OwogICAgIGJvb2wgZGlzcGF0Y2hLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQm
KTsKICAgICBib29sIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soRXZlbnQqIHVuZGVybHlpbmdFdmVu
dCwgU2ltdWxhdGVkQ2xpY2tNb3VzZUV2ZW50T3B0aW9ucyA9IFNlbmROb0V2ZW50cywgU2ltdWxh
dGVkQ2xpY2tWaXN1YWxPcHRpb25zID0gU2hvd1ByZXNzZWRMb29rKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZE9ic2VydmVyLmgKaW5kZXggZDc1YTZlYmM3NDk4NzEzMmNj
NWIwODhmZDMyYzcwZmM4Njg1ZWFhNC4uZTAyYmZkOGE0ZWRkN2M5YjdmMGU0MzA1NGJjMDM5Mzdi
MjJkNWRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE9i
c2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE9ic2VydmVy
LmgKQEAgLTcxLDkgKzcxLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXREb21haW5z
V2l0aENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoSGFzaE1hcDxUb3BGcmFtZURvbWFpbiwgU3ViUmVz
b3VyY2VEb21haW4+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcigpOyB9CiAgICAgdmlydHVhbCBib29sIGhhc0Nyb3Nz
UGFnZVN0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViUmVzb3VyY2VEb21haW4mLCBjb25zdCBUb3BGcmFt
ZURvbWFpbiYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGhhc0hh
ZFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9Ci0gICAgCi0gICAgdmlydHVhbCB2b2lkIHNldEhhc0RlbmllZENyb3NzUGFnZVN0
b3JhZ2VBY2Nlc3MoSGFzaE1hcDxUb3BGcmFtZURvbWFpbiwgU3ViUmVzb3VyY2VEb21haW4+JiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0
aW9uSGFuZGxlcigpOyB9Ci0gICAgdmlydHVhbCBib29sIGhhc0RlbmllZENyb3NzUGFnZVN0b3Jh
Z2VBY2Nlc3MoY29uc3QgU3ViUmVzb3VyY2VEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9RdWlya3MuY3BwCmluZGV4IDk2ZDIwZDJmMmYyZjA4YTJkYjA2YzA1ZDMwZmEz
MzgyOTNlMmZjNjguLjY4YjA4YjYzYzkyODE5ZTk4ZGJhZmQ3M2JmYmQ5Yjg5MjNlNTBmNDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1F1aXJrcy5jcHAKQEAgLTEwNTAsMTMgKzEwNTAsMTEgQEAgc3RhdGljIGJvb2wg
aXNTdG9yYWdlQWNjZXNzUXVpcmtEb21haW5BbmRFbGVtZW50KGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBFbGVtZW50JgogewogICAgIC8vIE1pY3Jvc29mdCBUZWFtcyBsb2dpbiBjYXNlLgogICAgIC8v
IEZJWE1FKDIxODc3OSk6IFJlbW92ZSB0aGlzIHF1aXJrIG9uY2UgbWljcm9zb2Z0LmNvbSBjb21w
bGV0ZXMgdGhlaXIgbG9naW4gZmxvdyByZWRlc2lnbi4KLSAgICBpZiAodXJsLmhvc3QoKSA9PSAi
d3d3Lm1pY3Jvc29mdC5jb20iX3MgfHwgdXJsLmhvc3QoKSA9PSAibG9naW4ubGl2ZS5jb20iX3Mp
IHsKKyAgICBpZiAodXJsLmhvc3QoKSA9PSAid3d3Lm1pY3Jvc29mdC5jb20iX3MpIHsKICAgICAg
ICAgcmV0dXJuIGVsZW1lbnQuaGFzQ2xhc3MoKQogICAgICAgICAmJiAoZWxlbWVudC5jbGFzc05h
bWVzKCkuY29udGFpbnMoImdseXBoX3NpZ25Jbl9jaXJjbGUiKQogICAgICAgICB8fCBlbGVtZW50
LmNsYXNzTmFtZXMoKS5jb250YWlucygibWVjdHJsX2hlYWRlcnRleHQiKQotICAgICAgICB8fCBl
bGVtZW50LmNsYXNzTmFtZXMoKS5jb250YWlucygibWVjdHJsX2hlYWRlciIpCi0gICAgICAgIHx8
IGVsZW1lbnQuY2xhc3NOYW1lcygpLmNvbnRhaW5zKCJleHQtYnV0dG9uIHByaW1hcnkiKQotICAg
ICAgICB8fCBlbGVtZW50LmNsYXNzTmFtZXMoKS5jb250YWlucygiZXh0LXByaW1hcnkiKSk7Cisg
ICAgICAgIHx8IGVsZW1lbnQuY2xhc3NOYW1lcygpLmNvbnRhaW5zKCJtZWN0cmxfaGVhZGVyIikp
OwogICAgIH0KICAgICAvLyBTa3lwZSBjYXNlLgogICAgIC8vIEZJWE1FKDIyMDEwNSk6IFJlbW92
ZSB0aGlzIHF1aXJrIG9uY2UgU2t5cGUgdW5kZXIgb3V0bG9vay5saXZlLmNvbSBjb21wbGV0ZXMg
dGhlaXIgbG9naW4gZmxvdyByZWRlc2lnbi4KQEAgLTEwNzAsNiArMTA2OCw3IEBAIHN0YXRpYyBi
b29sIGlzU3RvcmFnZUFjY2Vzc1F1aXJrRG9tYWluQW5kRWxlbWVudChjb25zdCBVUkwmIHVybCwg
Y29uc3QgRWxlbWVudCYKICAgICBpZiAodXJsLmhvc3QoKSA9PSAid3d3LnBsYXlzdGF0aW9uLmNv
bSJfcyB8fCB1cmwuaG9zdCgpID09ICJteS5wbGF5c3RhdGlvbi5jb20iX3MpIHsKICAgICAgICAg
cmV0dXJuIGVsZW1lbnQuaGFzQ2xhc3MoKQogICAgICAgICAmJiAoZWxlbWVudC5jbGFzc05hbWVz
KCkuY29udGFpbnMoIndlYi10b29sYmFyX19zaWduaW4tYnV0dG9uIikKKyAgICAgICAgfHwgZWxl
bWVudC5jbGFzc05hbWVzKCkuY29udGFpbnMoIndlYi10b29sYmFyX19zaWduaW4tYnV0dG9uLWxh
YmVsIikKICAgICAgICAgfHwgZWxlbWVudC5jbGFzc05hbWVzKCkuY29udGFpbnMoInNiLXNpZ25p
bi1idXR0b24iKSk7CiAgICAgfQogCkBAIC0xMDg1LDE1ICsxMDg0LDYgQEAgYm9vbCBRdWlya3M6
Omhhc1N0b3JhZ2VBY2Nlc3NGb3JBbGxMb2dpbkRvbWFpbnMoY29uc3QgSGFzaFNldDxSZWdpc3Ry
YWJsZURvbWFpbj4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgaGFzRGVuaWVk
Q3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyhjb25zdCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYg
bG9naW5Eb21haW5zLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4pCi17
Ci0gICAgZm9yIChhdXRvJiBsb2dpbkRvbWFpbiA6IGxvZ2luRG9tYWlucykgewotICAgICAgICBp
ZiAoUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLmhhc0RlbmllZENyb3NzUGFnZVN0b3Jh
Z2VBY2Nlc3MobG9naW5Eb21haW4sIHRvcEZyYW1lRG9tYWluKSkKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIGNvbnN0IFN0cmluZyYgUXVp
cmtzOjpCQkNSYWRpb1BsYXllclVSTFN0cmluZygpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFN0cmluZz4gQkJDUmFkaW9QbGF5ZXJVUkxTdHJpbmcgPSAiaHR0cHM6Ly93d3cuYmJjLmNv
LnVrL3NvdW5kcy9wbGF5ZXIvYmJjX3dvcmxkX3NlcnZpY2UiX3M7CkBAIC0xMTIzLDE0ICsxMTEz
LDE0IEBAIHN0YXRpYyBib29sIGlzQkJDUG9wVXBQbGF5ZXJFbGVtZW50KGNvbnN0IEVsZW1lbnQm
IGVsZW1lbnQpCiAKIFF1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdCBRdWlya3M6OnJlcXVlc3RT
dG9yYWdlQWNjZXNzQW5kSGFuZGxlQ2xpY2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRE
aXNwYXRjaENsaWNrKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKIHsKLSAgICBhdXRvIGZp
cnN0UGFydHlEb21haW4gPSBtYXBUb1RvcERvbWFpbihtX2RvY3VtZW50LT50b3BEb2N1bWVudCgp
LnVybCgpKTsKKyAgICBhdXRvIGZpcnN0UGFydHlEb21haW4gPSBSZWdpc3RyYWJsZURvbWFpbiht
X2RvY3VtZW50LT50b3BEb2N1bWVudCgpLnVybCgpKTsKICAgICBhdXRvIGRvbWFpbnNJbk5lZWRP
ZlN0b3JhZ2VBY2Nlc3MgPSBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN1YlJlc291cmNlRG9tYWlu
c0luTmVlZE9mU3RvcmFnZUFjY2Vzc0ZvckZpcnN0UGFydHkoZmlyc3RQYXJ0eURvbWFpbik7CiAg
ICAgaWYgKCFkb21haW5zSW5OZWVkT2ZTdG9yYWdlQWNjZXNzIHx8IGRvbWFpbnNJbk5lZWRPZlN0
b3JhZ2VBY2Nlc3MudmFsdWUoKS5pc0VtcHR5KCkpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoU2hvdWxkRGlzcGF0Y2hDbGljazo6Tm8pOwogICAgICAgICByZXR1cm4gUXVpcmtzOjpTdG9y
YWdlQWNjZXNzUmVzdWx0OjpTaG91bGROb3RDYW5jZWxFdmVudDsKICAgICB9Ci0gICAgaWYgKGhh
c1N0b3JhZ2VBY2Nlc3NGb3JBbGxMb2dpbkRvbWFpbnMoKmRvbWFpbnNJbk5lZWRPZlN0b3JhZ2VB
Y2Nlc3MsIGZpcnN0UGFydHlEb21haW4pCi0gICAgICAgIHx8IGhhc0RlbmllZENyb3NzUGFnZVN0
b3JhZ2VBY2Nlc3MoKmRvbWFpbnNJbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIGZpcnN0UGFydHlEb21h
aW4pKSB7CisKKyAgICBpZiAoaGFzU3RvcmFnZUFjY2Vzc0ZvckFsbExvZ2luRG9tYWlucygqZG9t
YWluc0luTmVlZE9mU3RvcmFnZUFjY2VzcywgZmlyc3RQYXJ0eURvbWFpbikpIHsKICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoU2hvdWxkRGlzcGF0Y2hDbGljazo6Tm8pOwogICAgICAgICByZXR1
cm4gUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0OjpTaG91bGROb3RDYW5jZWxFdmVudDsKICAg
ICB9CkBAIC0xMTQ0LDkgKzExMzQsNyBAQCBRdWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1bHQgUXVp
cmtzOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0FuZEhhbmRsZUNsaWNrKENvbXBsZXRpbwogCiAgICAg
RG9jdW1lbnRTdG9yYWdlQWNjZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0Zvck5vbkRvY3VtZW50
UXVpcmsoKm1fZG9jdW1lbnQsIFdURk1vdmUoZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzKSwg
W2ZpcnN0UGFydHlEb21haW4sIGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcywgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU3RvcmFnZUFjY2Vzc1dhc0dy
YW50ZWQgc3RvcmFnZUFjY2Vzc0dyYW50ZWQpIG11dGFibGUgewogICAgICAgICBpZiAoc3RvcmFn
ZUFjY2Vzc0dyYW50ZWQgPT0gU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6Ok5vKSB7Ci0gICAgICAg
ICAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkKCkuc2V0SGFzRGVuaWVkQ3Jvc3NQYWdl
U3RvcmFnZUFjY2Vzcyh7eyBmaXJzdFBhcnR5RG9tYWluLCBkb21haW5Jbk5lZWRPZlN0b3JhZ2VB
Y2Nlc3MgfX0sIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSAoKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTaG91bGRE
aXNwYXRjaENsaWNrOjpZZXMpOwotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihTaG91bGREaXNwYXRjaENsaWNrOjpZZXMpOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKQEAgLTExNTYsMTcgKzExNDQsOSBAQCBRdWlya3M6OlN0b3JhZ2VBY2Nl
c3NSZXN1bHQgUXVpcmtzOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0FuZEhhbmRsZUNsaWNrKENvbXBs
ZXRpbwogICAgIH0pOwogICAgIHJldHVybiBRdWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1bHQ6OlNo
b3VsZENhbmNlbEV2ZW50OwogfQotCi1SZWdpc3RyYWJsZURvbWFpbiBRdWlya3M6Om1hcFRvVG9w
RG9tYWluKGNvbnN0IFVSTCYgdXJsVG9NYXApCi17Ci0gICAgaWYgKHVybFRvTWFwLmhvc3QoKSA9
PSAibG9naW4ubGl2ZS5jb20iX3MpCi0gICAgICAgIHJldHVybiBSZWdpc3RyYWJsZURvbWFpbjo6
dW5jaGVja2VkQ3JlYXRlRnJvbVJlZ2lzdHJhYmxlRG9tYWluU3RyaW5nKCJtaWNyb3NvZnQuY29t
Il9zKTsKLQotICAgIHJldHVybiBSZWdpc3RyYWJsZURvbWFpbih1cmxUb01hcCk7Ci19CiAjZW5k
aWYKIAotUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0IFF1aXJrczo6dHJpZ2dlck9wdGlvbmFs
U3RvcmFnZUFjY2Vzc1F1aXJrKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFBsYXRmb3JtTW91c2VF
dmVudCYgcGxhdGZvcm1FdmVudCwgY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBpbnQgZGV0
YWlsLCBFbGVtZW50KiByZWxhdGVkVGFyZ2V0LCBib29sIGlzUGFyZW50UHJvY2Vzc0FGdWxsV2Vi
QnJvd3NlcikgY29uc3QKK1F1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdCBRdWlya3M6OnRyaWdn
ZXJPcHRpb25hbFN0b3JhZ2VBY2Nlc3NRdWlyayhFbGVtZW50JiBlbGVtZW50LCBjb25zdCBQbGF0
Zm9ybU1vdXNlRXZlbnQmIHBsYXRmb3JtRXZlbnQsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlw
ZSwgaW50IGRldGFpbCwgRWxlbWVudCogcmVsYXRlZFRhcmdldCwgYm9vbCBpc1BhcmVudFByb2Nl
c3NBRnVsbFdlYkJyb3dzZXIsIElzU3ludGhldGljQ2xpY2sgaXNTeW50aGV0aWNDbGljaykgY29u
c3QKIHsKICAgICBpZiAoIURlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6cmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VuYWJsZWQoKSB8fCAhaXNQYXJlbnRQcm9jZXNzQUZ1bGxXZWJCcm93c2VyKQogICAg
ICAgICByZXR1cm4gUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0OjpTaG91bGROb3RDYW5jZWxF
dmVudDsKQEAgLTEyNDIsMTMgKzEyMjIsMTQgQEAgUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0
IFF1aXJrczo6dHJpZ2dlck9wdGlvbmFsU3RvcmFnZUFjY2Vzc1F1aXJrKEVsZW1lbnQmIGUKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGlmIChpc1N0b3JhZ2VBY2Nlc3NRdWly
a0RvbWFpbkFuZEVsZW1lbnQobV9kb2N1bWVudC0+dXJsKCksIGVsZW1lbnQpKSB7CisgICAgICAg
IC8vIElmIHRoZSBjbGljayBpcyBzeW50aGV0aWMsIHRoZSB1c2VyIGhhcyBhbHJlYWR5IGdvbmUg
dGhyb3VnaCB0aGUgc3RvcmFnZSBhY2Nlc3MgZmxvdyBhbmQgd2Ugc2hvdWxkIG5vdCByZXF1ZXN0
IGFnYWluLgorICAgICAgICBpZiAoaXNTdG9yYWdlQWNjZXNzUXVpcmtEb21haW5BbmRFbGVtZW50
KG1fZG9jdW1lbnQtPnVybCgpLCBlbGVtZW50KSAmJiBpc1N5bnRoZXRpY0NsaWNrID09IElzU3lu
dGhldGljQ2xpY2s6Ok5vKSB7CiAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdFN0b3JhZ2VBY2Nl
c3NBbmRIYW5kbGVDbGljayhbZWxlbWVudCA9IG1ha2VXZWFrUHRyKGVsZW1lbnQpLCBwbGF0Zm9y
bUV2ZW50LCBldmVudFR5cGUsIGRldGFpbCwgcmVsYXRlZFRhcmdldF0gKFNob3VsZERpc3BhdGNo
Q2xpY2sgc2hvdWxkRGlzcGF0Y2hDbGljaykgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYg
KCFlbGVtZW50KQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgICAg
ICBpZiAoc2hvdWxkRGlzcGF0Y2hDbGljayA9PSBTaG91bGREaXNwYXRjaENsaWNrOjpZZXMpCi0g
ICAgICAgICAgICAgICAgICAgIGVsZW1lbnQtPmRpc3BhdGNoTW91c2VFdmVudChwbGF0Zm9ybUV2
ZW50LCBldmVudFR5cGUsIGRldGFpbCwgcmVsYXRlZFRhcmdldCk7CisgICAgICAgICAgICAgICAg
ICAgIGVsZW1lbnQtPmRpc3BhdGNoTW91c2VFdmVudChwbGF0Zm9ybUV2ZW50LCBldmVudFR5cGUs
IGRldGFpbCwgcmVsYXRlZFRhcmdldCwgSXNTeW50aGV0aWNDbGljazo6WWVzKTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVp
cmtzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5oCmluZGV4IDM1MmMyYWZmMjE5Njlh
MzU0OTg0NWY0NTc5M2FlOWEwZjkyNjdhMjIuLmY1ZjljZTBjNWI1NmEyN2MzMDFjMTIyZmYyMzNj
OTNmNjI1YTBjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaApAQCAtNDQsNiArNDQsOCBAQCBjbGFzcyBS
ZWdpc3RyYWJsZURvbWFpbjsKIGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgOiBi
b29sOwogI2VuZGlmCiAKK2VudW0gY2xhc3MgSXNTeW50aGV0aWNDbGljayA6IGJvb2w7CisKIGNs
YXNzIFF1aXJrcyB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUXVpcmtzKTsgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC0xMjIsNyArMTI0LDcgQEAgcHVibGljOgogCiAg
ICAgZW51bSBTdG9yYWdlQWNjZXNzUmVzdWx0IDogYm9vbCB7IFNob3VsZE5vdENhbmNlbEV2ZW50
LCBTaG91bGRDYW5jZWxFdmVudCB9OwogICAgIGVudW0gU2hvdWxkRGlzcGF0Y2hDbGljayA6IGJv
b2wgeyBObywgWWVzIH07Ci0gICAgU3RvcmFnZUFjY2Vzc1Jlc3VsdCB0cmlnZ2VyT3B0aW9uYWxT
dG9yYWdlQWNjZXNzUXVpcmsoRWxlbWVudCYsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIGNv
bnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgaW50LCBFbGVtZW50KiwgYm9vbCBpc1BhcmVudFBy
b2Nlc3NBRnVsbFdlYkJyb3dzZXIpIGNvbnN0OworICAgIFN0b3JhZ2VBY2Nlc3NSZXN1bHQgdHJp
Z2dlck9wdGlvbmFsU3RvcmFnZUFjY2Vzc1F1aXJrKEVsZW1lbnQmLCBjb25zdCBQbGF0Zm9ybU1v
dXNlRXZlbnQmLCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGludCwgRWxlbWVudCosIGJv
b2wgaXNQYXJlbnRQcm9jZXNzQUZ1bGxXZWJCcm93c2VyLCBJc1N5bnRoZXRpY0NsaWNrKSBjb25z
dDsKIAogICAgIGJvb2wgbmVlZHNWUDlGdWxsUmFuZ2VGbGFnUXVpcmsoKSBjb25zdDsKICAgICBi
b29sIG5lZWRzSERSUGl4ZWxEZXB0aFF1aXJrKCkgY29uc3Q7CkBAIC0xNDMsNyArMTQ1LDYgQEAg
cHVibGljOgogICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIEJCQ1JhZGlvUGxheWVyVVJMU3RyaW5n
KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IFN0cmluZyYgc3RhdGljUmFkaW9Q
bGF5ZXJVUkxTdHJpbmcoKTsKICAgICBTdG9yYWdlQWNjZXNzUmVzdWx0IHJlcXVlc3RTdG9yYWdl
QWNjZXNzQW5kSGFuZGxlQ2xpY2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGREaXNwYXRj
aENsaWNrKT4mJikgY29uc3Q7Ci0gICAgc3RhdGljIFJlZ2lzdHJhYmxlRG9tYWluIG1hcFRvVG9w
RG9tYWluKGNvbnN0IFVSTCYpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291
cmNlTG9hZE9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAKaW5kZXggNTBjMTU4NzAyN2Q0N2VhMDUw
NDNhODQyODgyZmQ5NzRhMTQ5Yjc2MC4uZjliNWMyYzI4MmU4NzljYzAxODUxOGNiYmNiMmY0MWRj
N2RmYWE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCkBAIC00NDMs
MjUgKzQ0Myw2IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNldERvbWFpbnNXaXRo
Q3Jvc3NQYWdlU3RvcmFnZUFjY2VzcyhIYXNoTWFwPFRvcEZyCiAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKIH0KIAotYm9vbCBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlcjo6aGFzRGVuaWVkQ3Jvc3NQ
YWdlU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYgc3ViRG9tYWluLCBjb25zdCBU
b3BGcmFtZURvbWFpbiYgdG9wRG9tYWluKSBjb25zdAotewotICAgIGF1dG8gaXQgPSBtX2RvbWFp
bnNXaXRoRGVuaWVkU3RvcmFnZUFjY2Vzcy5maW5kKHRvcERvbWFpbik7Ci0KLSAgICBpZiAoaXQg
IT0gbV9kb21haW5zV2l0aERlbmllZFN0b3JhZ2VBY2Nlc3MuZW5kKCkpCi0gICAgICAgIHJldHVy
biBpdC0+dmFsdWUuY29udGFpbnMoc3ViRG9tYWluKTsKLQotICAgIHJldHVybiBmYWxzZTsKLX0K
LQotdm9pZCBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2V0SGFzRGVuaWVkQ3Jvc3NQYWdlU3Rv
cmFnZUFjY2VzcyhIYXNoTWFwPFRvcEZyYW1lRG9tYWluLCBTdWJGcmFtZURvbWFpbj4mJiBkb21h
aW5zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0g
ICAgZm9yIChhdXRvJiB0b3BEb21haW4gOiBkb21haW5zLmtleXMoKSkgewotICAgICAgICBtX2Rv
bWFpbnNXaXRoRGVuaWVkU3RvcmFnZUFjY2Vzcy5lbnN1cmUodG9wRG9tYWluLCBbXSB7IHJldHVy
biBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiB7IH07Ci0gICAgICAgICAgICB9KS5pdGVyYXRv
ci0+dmFsdWUuYWRkKGRvbWFpbnMuZ2V0KHRvcERvbWFpbikpOwotICAgIH0KLSAgICBjb21wbGV0
aW9uSGFuZGxlcigpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVO
QUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNl
cnZlci5oCmluZGV4IDE0Yjk2OTM3MGIyNWZjNzlhMzc2M2YxNTZhNjI2OWQzYTc5YTQ3NzYuLjY4
Yzk2MzU0MTNlZjJiOGVhZDg5N2MzY2YxNWRmYjFhNDY5MzVmODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNv
dXJjZUxvYWRPYnNlcnZlci5oCkBAIC02OSw4ICs2OSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dERvbWFpbnNXaXRoQ3Jvc3NQYWdlU3RvcmFnZUFjY2VzcyhIYXNoTWFwPFRvcEZyYW1lRG9tYWlu
LCBTdWJGcmFtZURvbWFpbj4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsK
ICAgICBib29sIGhhc0hhZFVzZXJJbnRlcmFjdGlvbihjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaGFzQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vz
cyhjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJikgY29uc3QgZmlu
YWw7Ci0gICAgdm9pZCBzZXRIYXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8
VG9wRnJhbWVEb21haW4sIFN1YkZyYW1lRG9tYWluPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpIGZpbmFsOwotICAgIGJvb2wgaGFzRGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyhj
b25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJikgY29uc3QgZmluYWw7
CiAKIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcyYgZW5zdXJl
UmVzb3VyY2VTdGF0aXN0aWNzRm9yUmVnaXN0cmFibGVEb21haW4oY29uc3QgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4mKTsKQEAgLTkwLDcgKzg4LDYgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hT
ZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IG1fZG9tYWluc1dpdGhVc2VySW50ZXJhY3Rp
b247CiAgICAgSGFzaE1hcDxUb3BGcmFtZURvbWFpbiwgSGFzaFNldDxTdWJGcmFtZURvbWFpbj4+
IG1fZG9tYWluc1dpdGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzOwotICAgIEhhc2hNYXA8VG9wRnJh
bWVEb21haW4sIEhhc2hTZXQ8U3ViRnJhbWVEb21haW4+PiBtX2RvbWFpbnNXaXRoRGVuaWVkU3Rv
cmFnZUFjY2VzczsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICB1aW50NjRfdCBtX2xv
Z2dpbmdDb3VudGVyIHsgMCB9OwogICAgIHN0YXRpYyBib29sIHNob3VsZExvZ1VzZXJJbnRlcmFj
dGlvbjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431702</attachid>
            <date>2021-06-17 12:23:40 -0700</date>
            <delta_ts>2021-06-17 13:03:15 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-227099-20210617122339.patch</filename>
            <type>text/plain</type>
            <size>18374</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4OTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGUwMzJlY2E5NmUzNTJk
NGU5MTEzMWE0OGZmMzcxNTFhYzgxN2Y3MC4uZjA5NDcxY2Q4NDE2MjE1MGRjZGUyMTA2NGE5MjJh
NDRmZjc0MTAwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTA2LTE3ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIFN0b3JhZ2Ug
QWNjZXNzIHF1aXJrcyBzaG91bGQgcHJvbXB0IHVwIHRvIHR3aWNlIGlmIGEgdXNlciBkb2VzIG5v
dCBhbGxvdyBzdG9yYWdlIGFjY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI3MDk5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83OTQwOTg0Mz4K
KworICAgICAgICBSZXZpZXdlZCBieSBKb2huIFdpbGFuZGVyLgorCisgICAgICAgIFJlbW92ZSBo
YXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzIGZ1bmN0aW9ucy4gVGhleSBhcmUgbm90IG5l
ZWRlZAorICAgICAgICBub3cgdGhhdCB3ZSBhcmUgYWxpZ25pbmcgc3RvcmFnZSBhY2Nlc3MgcXVp
cmtzIHdpdGggbm9uLXF1aXJrcyBieQorICAgICAgICB1c2luZyBtYXhOdW1iZXJPZlRpbWVzRXhw
bGljaXRseURlbmllZFN0b3JhZ2VBY2Nlc3MuIAorCisgICAgICAgICogZG9tL0RvY3VtZW50U3Rv
cmFnZUFjY2Vzcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFN0b3JhZ2VBY2Nlc3M6
OnJlcXVlc3RTdG9yYWdlQWNjZXNzUXVpY2tDaGVjayk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudFN0b3JhZ2VBY2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzRm9yTm9uRG9jdW1lbnRRdWly
ayk6CisgICAgICAgICogZG9tL0RvY3VtZW50U3RvcmFnZUFjY2Vzcy5oOgorICAgICAgICAqIGRv
bS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRpc3BhdGNoTW91c2VF
dmVudCk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvUmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZE9ic2VydmVy
OjpoYXNIYWRVc2VySW50ZXJhY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXI6OnNldEhhc0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6Omhhc0RlbmllZENy
b3NzUGFnZVN0b3JhZ2VBY2Nlc3MgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvUXVp
cmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzU3RvcmFnZUFjY2Vzc1F1aXJrRG9tYWluQW5k
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpRdWlya3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNz
QW5kSGFuZGxlQ2xpY2sgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UXVpcmtzOjp0cmlnZ2Vy
T3B0aW9uYWxTdG9yYWdlQWNjZXNzUXVpcmsgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6aGFz
RGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9R
dWlya3MuaDoKKwogMjAyMS0wNi0xNyAgRW5yaXF1ZSBPY2HDsWEgR29uesOhbGV6ICA8ZW9jYW5o
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVuZXhwZWN0ZWQgdGltZW91dCBpbiBodHRw
L3Rlc3RzL21lZGlhL3ZpZGVvLXBsYXktc3RhbGwtc2Vlay5odG1sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY2ZjA5
M2M4OTk3MDM0Njk2ZTkyZGM1Y2FhODMxMTFiYTU4MmIxMTMuLjQzODBhOWJlM2UyYmRmZTllNzY2
NGQwZTZmOTcyZDk0NzYwZDI2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMDYt
MTcgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAg
U3RvcmFnZSBBY2Nlc3MgcXVpcmtzIHNob3VsZCBwcm9tcHQgdXAgdG8gdHdpY2UgaWYgYSB1c2Vy
IGRvZXMgbm90IGFsbG93IHN0b3JhZ2UgYWNjZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcwOTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5
NDA5ODQzPgorCisgICAgICAgIFJldmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAgICAgICAg
V2Ugc2hvdWxkIGFsbG93IHN0b3JhZ2UgYWNjZXNzIHByb21wdHMgdHdpY2UgcGVyIGRvY3VtZW50
IGZvciBxdWlya3MKKyAgICAgICAganVzdCBsaWtlIGZvciBub24tcXVpcmsgY2FzZXMuIFByZXZp
b3VzbHkgd2Ugd2VyZSBvbmx5IHByZXNlbnRpbmcKKyAgICAgICAgdGhlIHF1aXJrIHByb21wdCBv
bmNlIHBlciB3ZWIgY29udGVudCBwcm9jZXNzIGlmIHRoZSB1c2VyIGRlbmllZC4gVGhpcworICAg
ICAgICBwYXRjaCByZW1vdmVzIHRoaXMgY29kZSBhbmQgdXRpbGl6ZXMgbWF4TnVtYmVyT2ZUaW1l
c0V4cGxpY2l0bHlEZW5pZWRTdG9yYWdlQWNjZXNzIAorICAgICAgICBpbnN0ZWFkLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZE9ic2VydmVyOjpoYXNEZW5pZWRD
cm9zc1BhZ2VTdG9yYWdlQWNjZXNzIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNldEhhc0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nl
c3MpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVz
b3VyY2VMb2FkT2JzZXJ2ZXIuaDoKKwogMjAyMS0wNi0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBjcmFzaGVzIGluIENvbnRlbnRS
dWxlTGlzdFN0b3JlOjpsb29rdXBDb250ZW50UnVsZUxpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudFN0b3JhZ2VBY2Nlc3MuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50U3RvcmFnZUFjY2Vzcy5jcHAKaW5kZXggNTYyY2YxNWNhZDU4MjAwYjRkOTFhOGJj
YmQyMDViZDYwY2FiM2RlMi4uMTgwNDA1YTlmMDRiMTcwMjU5MjFmZWE1ZGYxYmUyMjU2OTZlYzAz
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3RvcmFnZUFjY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3RvcmFnZUFjY2Vzcy5jcHAKQEAg
LTE1Myw3ICsxNTMsNyBAQCBzdGQ6Om9wdGlvbmFsPFN0b3JhZ2VBY2Nlc3NRdWlja1Jlc3VsdD4g
RG9jdW1lbnRTdG9yYWdlQWNjZXNzOjpyZXF1ZXN0U3RvcmFnZUFjYwogICAgIGlmIChmcmFtZSAm
JiBoYXNGcmFtZVNwZWNpZmljU3RvcmFnZUFjY2VzcygpKQogICAgICAgICByZXR1cm4gU3RvcmFn
ZUFjY2Vzc1F1aWNrUmVzdWx0OjpHcmFudDsKIAotICAgIGlmICghZnJhbWUgfHwgbV9kb2N1bWVu
dC5zZWN1cml0eU9yaWdpbigpLmlzVW5pcXVlKCkgfHwgIWlzQWxsb3dlZFRvUmVxdWVzdEZyYW1l
U3BlY2lmaWNTdG9yYWdlQWNjZXNzKCkpCisgICAgaWYgKCFmcmFtZSB8fCBtX2RvY3VtZW50LnNl
Y3VyaXR5T3JpZ2luKCkuaXNVbmlxdWUoKSB8fCAhaXNBbGxvd2VkVG9SZXF1ZXN0U3RvcmFnZUFj
Y2VzcygpKQogICAgICAgICByZXR1cm4gU3RvcmFnZUFjY2Vzc1F1aWNrUmVzdWx0OjpSZWplY3Q7
CiAKICAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkpCkBAIC0yNTUsNyArMjU1LDcgQEAgdm9p
ZCBEb2N1bWVudFN0b3JhZ2VBY2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzRm9yTm9uRG9jdW1l
bnRRdWlyayhEb2N1bWVudCYgaG8KIAogdm9pZCBEb2N1bWVudFN0b3JhZ2VBY2Nlc3M6OnJlcXVl
c3RTdG9yYWdlQWNjZXNzRm9yTm9uRG9jdW1lbnRRdWlyayhSZWdpc3RyYWJsZURvbWFpbiYmIHJl
cXVlc3RpbmdEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFjY2Vzc1dhc0dy
YW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGlmICghbV9kb2N1bWVudC5mcmFt
ZSgpIHx8ICFtX2RvY3VtZW50LmZyYW1lKCktPnBhZ2UoKSkgeworICAgIGlmICghbV9kb2N1bWVu
dC5mcmFtZSgpIHx8ICFtX2RvY3VtZW50LmZyYW1lKCktPnBhZ2UoKSB8fCAhaXNBbGxvd2VkVG9S
ZXF1ZXN0U3RvcmFnZUFjY2VzcygpKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFN0b3Jh
Z2VBY2Nlc3NXYXNHcmFudGVkOjpObyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdG9yYWdlQWNjZXNzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRTdG9yYWdlQWNjZXNzLmgKaW5kZXggMDEwZTBkZjI5YzEzYjhi
ZWU4ZGFmNTMyMWYyMmVhMWRlZGU1ZDVmMS4uZWRhMjZmZWI3MmQzMWM4NGUyZDc2Njc1M2NlNzM0
NzRlNzZmNDcxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3RvcmFn
ZUFjY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0b3JhZ2VBY2Nlc3Mu
aApAQCAtNjgsNyArNjgsNyBAQCBzdHJ1Y3QgUmVxdWVzdFN0b3JhZ2VBY2Nlc3NSZXN1bHQgewog
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlcXVlc3RT
dG9yYWdlQWNjZXNzUmVzdWx0PiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAotY29uc3QgdW5zaWdu
ZWQgbWF4TnVtYmVyT2ZUaW1lc0V4cGxpY2l0bHlEZW5pZWRGcmFtZVNwZWNpZmljU3RvcmFnZUFj
Y2VzcyA9IDI7Citjb25zdCB1bnNpZ25lZCBtYXhOdW1iZXJPZlRpbWVzRXhwbGljaXRseURlbmll
ZFN0b3JhZ2VBY2Nlc3MgPSAyOwogCiBjbGFzcyBEb2N1bWVudFN0b3JhZ2VBY2Nlc3MgZmluYWwg
OiBwdWJsaWMgU3VwcGxlbWVudDxEb2N1bWVudD4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxEb2N1
bWVudFN0b3JhZ2VBY2Nlc3M+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTk4
LDcgKzk4LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5h
bWUoKTsKICAgICBib29sIGhhc0ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzKCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRXYXNFeHBsaWNpdGx5RGVuaWVkRnJhbWVTcGVjaWZpY1N0b3JhZ2VBY2Nlc3Mo
KSB7ICsrbV9udW1iZXJPZlRpbWVzRXhwbGljaXRseURlbmllZEZyYW1lU3BlY2lmaWNTdG9yYWdl
QWNjZXNzOyB9OwotICAgIGJvb2wgaXNBbGxvd2VkVG9SZXF1ZXN0RnJhbWVTcGVjaWZpY1N0b3Jh
Z2VBY2Nlc3MoKSB7IHJldHVybiBtX251bWJlck9mVGltZXNFeHBsaWNpdGx5RGVuaWVkRnJhbWVT
cGVjaWZpY1N0b3JhZ2VBY2Nlc3MgPCBtYXhOdW1iZXJPZlRpbWVzRXhwbGljaXRseURlbmllZEZy
YW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzOyB9OworICAgIGJvb2wgaXNBbGxvd2VkVG9SZXF1ZXN0
U3RvcmFnZUFjY2VzcygpIHsgcmV0dXJuIG1fbnVtYmVyT2ZUaW1lc0V4cGxpY2l0bHlEZW5pZWRG
cmFtZVNwZWNpZmljU3RvcmFnZUFjY2VzcyA8IG1heE51bWJlck9mVGltZXNFeHBsaWNpdGx5RGVu
aWVkU3RvcmFnZUFjY2VzczsgfTsKICAgICB2b2lkIGVuYWJsZVRlbXBvcmFyeVRpbWVVc2VyR2Vz
dHVyZSgpOwogICAgIHZvaWQgY29uc3VtZVRlbXBvcmFyeVRpbWVVc2VyR2VzdHVyZSgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKaW5kZXggZGUwYTZhYWIyZmNkMWYxN2NkMTg3YmVmMTc1NGQ0ZDg5
NWJiOWRiMy4uZWMxMzM4MDE3MTk5MzkyNjJmMjAxYTcxMzU4NmYyNDlkNWNiNWYyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcApAQCAtMzczLDcgKzM3Myw3IEBAIHN0YXRpYyBTaG91bGRJZ25vcmVN
b3VzZUV2ZW50IGRpc3BhdGNoUG9pbnRlckV2ZW50SWZOZWVkZWQoRWxlbWVudCYgZWxlbWVudCwg
Y29uCiAgICAgcmV0dXJuIFNob3VsZElnbm9yZU1vdXNlRXZlbnQ6Ok5vOwogfQogCi1ib29sIEVs
ZW1lbnQ6OmRpc3BhdGNoTW91c2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIHBsYXRm
b3JtRXZlbnQsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgaW50IGRldGFpbCwgRWxlbWVu
dCogcmVsYXRlZFRhcmdldCkKK2Jvb2wgRWxlbWVudDo6ZGlzcGF0Y2hNb3VzZUV2ZW50KGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYgcGxhdGZvcm1FdmVudCwgY29uc3QgQXRvbVN0cmluZyYgZXZl
bnRUeXBlLCBpbnQgZGV0YWlsLCBFbGVtZW50KiByZWxhdGVkVGFyZ2V0LCBJc1N5bnRoZXRpY0Ns
aWNrIGlzU3ludGhldGljQ2xpY2spCiB7CiAgICAgaWYgKGlzRGlzYWJsZWRGb3JtQ29udHJvbCgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zOTksNyArMzk5LDcgQEAgYm9vbCBFbGVtZW50
OjpkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybUV2
ZW50LCBjb25zdAogI2VsaWYgUExBVEZPUk0oTUFDKQogICAgIGlzUGFyZW50UHJvY2Vzc0FGdWxs
V2ViQnJvd3NlciA9IE1hY0FwcGxpY2F0aW9uOjppc1NhZmFyaSgpOwogI2VuZGlmCi0gICAgaWYg
KFF1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdDo6U2hvdWxkQ2FuY2VsRXZlbnQgPT0gZG9jdW1l
bnQoKS5xdWlya3MoKS50cmlnZ2VyT3B0aW9uYWxTdG9yYWdlQWNjZXNzUXVpcmsoKnRoaXMsIHBs
YXRmb3JtRXZlbnQsIGV2ZW50VHlwZSwgZGV0YWlsLCByZWxhdGVkVGFyZ2V0LCBpc1BhcmVudFBy
b2Nlc3NBRnVsbFdlYkJyb3dzZXIpKQorICAgIGlmIChRdWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1
bHQ6OlNob3VsZENhbmNlbEV2ZW50ID09IGRvY3VtZW50KCkucXVpcmtzKCkudHJpZ2dlck9wdGlv
bmFsU3RvcmFnZUFjY2Vzc1F1aXJrKCp0aGlzLCBwbGF0Zm9ybUV2ZW50LCBldmVudFR5cGUsIGRl
dGFpbCwgcmVsYXRlZFRhcmdldCwgaXNQYXJlbnRQcm9jZXNzQUZ1bGxXZWJCcm93c2VyLCBpc1N5
bnRoZXRpY0NsaWNrKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQVNTRVJUKCFtb3Vz
ZUV2ZW50LT50YXJnZXQoKSB8fCBtb3VzZUV2ZW50LT50YXJnZXQoKSAhPSByZWxhdGVkVGFyZ2V0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCmluZGV4IDczZWJlZjI0ZmM4MzhmNzgzYThiODBhYWQ0YTk3ZjFl
ZmM2NDE3MDguLjVkNmY3MGYwYzA4ZjQ0NDA1OTZhNDIyMzczYjhiYjlkZDBhMmU0MTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaApAQCAtNjUsNiArNjUsNyBAQCBjbGFzcyBXZWJBbmltYXRpb247CiAKIGVu
dW0gY2xhc3MgQW5pbWF0aW9uSW1wYWN0OwogZW51bSBjbGFzcyBFdmVudFByb2Nlc3NpbmcgOiB1
aW50OF90OworZW51bSBjbGFzcyBJc1N5bnRoZXRpY0NsaWNrIDogYm9vbCB7IE5vLCBZZXMgfTsK
IGVudW0gY2xhc3MgU2VsZWN0aW9uUmVzdG9yYXRpb25Nb2RlIDogdWludDhfdDsKIAogc3RydWN0
IEdldEFuaW1hdGlvbnNPcHRpb25zOwpAQCAtNTMzLDcgKzUzNCw3IEBAIHB1YmxpYzoKICAgICBJ
bnRQb2ludCBzYXZlZExheWVyU2Nyb2xsUG9zaXRpb24oKSBjb25zdDsKICAgICB2b2lkIHNldFNh
dmVkTGF5ZXJTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYpOwogCi0gICAgYm9vbCBkaXNw
YXRjaE1vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgY29uc3QgQXRvbVN0cmlu
ZyYgZXZlbnRUeXBlLCBpbnQgY2xpY2tDb3VudCA9IDAsIEVsZW1lbnQqIHJlbGF0ZWRUYXJnZXQg
PSBudWxscHRyKTsKKyAgICBib29sIGRpc3BhdGNoTW91c2VFdmVudChjb25zdCBQbGF0Zm9ybU1v
dXNlRXZlbnQmLCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGludCBjbGlja0NvdW50ID0g
MCwgRWxlbWVudCogcmVsYXRlZFRhcmdldCA9IG51bGxwdHIsIElzU3ludGhldGljQ2xpY2sgaXNT
eW50ZXRoaWNDbGljayA9IElzU3ludGhldGljQ2xpY2s6Ok5vKTsKICAgICBib29sIGRpc3BhdGNo
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8RXZlbnRIYW5k
bGluZz4mLCBFdmVudDo6SXNDYW5jZWxhYmxlID0gRXZlbnQ6OklzQ2FuY2VsYWJsZTo6WWVzKTsK
ICAgICBib29sIGRpc3BhdGNoS2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50Jik7
CiAgICAgYm9vbCBkaXNwYXRjaFNpbXVsYXRlZENsaWNrKEV2ZW50KiB1bmRlcmx5aW5nRXZlbnQs
IFNpbXVsYXRlZENsaWNrTW91c2VFdmVudE9wdGlvbnMgPSBTZW5kTm9FdmVudHMsIFNpbXVsYXRl
ZENsaWNrVmlzdWFsT3B0aW9ucyA9IFNob3dQcmVzc2VkTG9vayk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5oCmluZGV4IGQ3NWE2ZWJjNzQ5ODcxMzJjYzVi
MDg4ZmQzMmM3MGZjODY4NWVhYTQuLmUwMmJmZDhhNGVkZDdjOWI3ZjBlNDMwNTRiYzAzOTM3YjIy
ZDVkYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNl
cnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5o
CkBAIC03MSw5ICs3MSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0RG9tYWluc1dp
dGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8VG9wRnJhbWVEb21haW4sIFN1YlJlc291
cmNlRG9tYWluPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoKTsgfQogICAgIHZpcnR1YWwgYm9vbCBoYXNDcm9zc1Bh
Z2VTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YlJlc291cmNlRG9tYWluJiwgY29uc3QgVG9wRnJhbWVE
b21haW4mKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBoYXNIYWRV
c2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQotICAgIAotICAgIHZpcnR1YWwgdm9pZCBzZXRIYXNEZW5pZWRDcm9zc1BhZ2VTdG9y
YWdlQWNjZXNzKEhhc2hNYXA8VG9wRnJhbWVEb21haW4sIFN1YlJlc291cmNlRG9tYWluPiYmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlv
bkhhbmRsZXIoKTsgfQotICAgIHZpcnR1YWwgYm9vbCBoYXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdl
QWNjZXNzKGNvbnN0IFN1YlJlc291cmNlRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUXVpcmtzLmNwcAppbmRleCA0ZWQ3YmM0ZTAwYjIzNjE0NmZlNGVjNzMwYjU2NDQ2
YmU3OTdiYmMxLi4zZDE1Yjg1MmFjZGE1ZmJmZmM2OGQ3NzQxM2QxODkzYzQyNjgyZWI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9RdWlya3MuY3BwCkBAIC0xMDY4LDYgKzEwNjgsNyBAQCBzdGF0aWMgYm9vbCBpc1N0
b3JhZ2VBY2Nlc3NRdWlya0RvbWFpbkFuZEVsZW1lbnQoY29uc3QgVVJMJiB1cmwsIGNvbnN0IEVs
ZW1lbnQmCiAgICAgaWYgKHVybC5ob3N0KCkgPT0gInd3dy5wbGF5c3RhdGlvbi5jb20iX3MgfHwg
dXJsLmhvc3QoKSA9PSAibXkucGxheXN0YXRpb24uY29tIl9zKSB7CiAgICAgICAgIHJldHVybiBl
bGVtZW50Lmhhc0NsYXNzKCkKICAgICAgICAgJiYgKGVsZW1lbnQuY2xhc3NOYW1lcygpLmNvbnRh
aW5zKCJ3ZWItdG9vbGJhcl9fc2lnbmluLWJ1dHRvbiIpCisgICAgICAgIHx8IGVsZW1lbnQuY2xh
c3NOYW1lcygpLmNvbnRhaW5zKCJ3ZWItdG9vbGJhcl9fc2lnbmluLWJ1dHRvbi1sYWJlbCIpCiAg
ICAgICAgIHx8IGVsZW1lbnQuY2xhc3NOYW1lcygpLmNvbnRhaW5zKCJzYi1zaWduaW4tYnV0dG9u
IikpOwogICAgIH0KIApAQCAtMTA4MywxNSArMTA4NCw2IEBAIGJvb2wgUXVpcmtzOjpoYXNTdG9y
YWdlQWNjZXNzRm9yQWxsTG9naW5Eb21haW5zKGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21h
aW4+CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBib29sIGhhc0RlbmllZENyb3NzUGFn
ZVN0b3JhZ2VBY2Nlc3MoY29uc3QgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mIGxvZ2luRG9t
YWlucywgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluKQotewotICAgIGZv
ciAoYXV0byYgbG9naW5Eb21haW4gOiBsb2dpbkRvbWFpbnMpIHsKLSAgICAgICAgaWYgKFJlc291
cmNlTG9hZE9ic2VydmVyOjpzaGFyZWQoKS5oYXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdlQWNjZXNz
KGxvZ2luRG9tYWluLCB0b3BGcmFtZURvbWFpbikpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCiBjb25zdCBTdHJpbmcmIFF1aXJrczo6QkJD
UmFkaW9QbGF5ZXJVUkxTdHJpbmcoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IEJCQ1JhZGlvUGxheWVyVVJMU3RyaW5nID0gImh0dHBzOi8vd3d3LmJiYy5jby51ay9zb3Vu
ZHMvcGxheWVyL2JiY193b3JsZF9zZXJ2aWNlIl9zOwpAQCAtMTEyNyw4ICsxMTE5LDggQEAgUXVp
cmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0IFF1aXJrczo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NBbmRI
YW5kbGVDbGljayhDb21wbGV0aW8KICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU2hvdWxkRGlz
cGF0Y2hDbGljazo6Tm8pOwogICAgICAgICByZXR1cm4gUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVz
dWx0OjpTaG91bGROb3RDYW5jZWxFdmVudDsKICAgICB9Ci0gICAgaWYgKGhhc1N0b3JhZ2VBY2Nl
c3NGb3JBbGxMb2dpbkRvbWFpbnMoKmRvbWFpbnNJbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIGZpcnN0
UGFydHlEb21haW4pCi0gICAgICAgIHx8IGhhc0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3Mo
KmRvbWFpbnNJbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIGZpcnN0UGFydHlEb21haW4pKSB7CisKKyAg
ICBpZiAoaGFzU3RvcmFnZUFjY2Vzc0ZvckFsbExvZ2luRG9tYWlucygqZG9tYWluc0luTmVlZE9m
U3RvcmFnZUFjY2VzcywgZmlyc3RQYXJ0eURvbWFpbikpIHsKICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoU2hvdWxkRGlzcGF0Y2hDbGljazo6Tm8pOwogICAgICAgICByZXR1cm4gUXVpcmtzOjpT
dG9yYWdlQWNjZXNzUmVzdWx0OjpTaG91bGROb3RDYW5jZWxFdmVudDsKICAgICB9CkBAIC0xMTQy
LDkgKzExMzQsNyBAQCBRdWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1bHQgUXVpcmtzOjpyZXF1ZXN0
U3RvcmFnZUFjY2Vzc0FuZEhhbmRsZUNsaWNrKENvbXBsZXRpbwogCiAgICAgRG9jdW1lbnRTdG9y
YWdlQWNjZXNzOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0Zvck5vbkRvY3VtZW50UXVpcmsoKm1fZG9j
dW1lbnQsIFdURk1vdmUoZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzKSwgW2ZpcnN0UGFydHlE
b21haW4sIGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcywgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgc3RvcmFn
ZUFjY2Vzc0dyYW50ZWQpIG11dGFibGUgewogICAgICAgICBpZiAoc3RvcmFnZUFjY2Vzc0dyYW50
ZWQgPT0gU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6Ok5vKSB7Ci0gICAgICAgICAgICBSZXNvdXJj
ZUxvYWRPYnNlcnZlcjo6c2hhcmVkKCkuc2V0SGFzRGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vz
cyh7eyBmaXJzdFBhcnR5RG9tYWluLCBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgfX0sIFtj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxl
IHsKLSAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTaG91bGREaXNwYXRjaENsaWNr
OjpZZXMpOwotICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihT
aG91bGREaXNwYXRjaENsaWNrOjpZZXMpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKQEAgLTExNTYsNyArMTE0Niw3IEBAIFF1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdCBRdWly
a3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQW5kSGFuZGxlQ2xpY2soQ29tcGxldGlvCiB9CiAjZW5k
aWYKIAotUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0IFF1aXJrczo6dHJpZ2dlck9wdGlvbmFs
U3RvcmFnZUFjY2Vzc1F1aXJrKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFBsYXRmb3JtTW91c2VF
dmVudCYgcGxhdGZvcm1FdmVudCwgY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBpbnQgZGV0
YWlsLCBFbGVtZW50KiByZWxhdGVkVGFyZ2V0LCBib29sIGlzUGFyZW50UHJvY2Vzc0FGdWxsV2Vi
QnJvd3NlcikgY29uc3QKK1F1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdCBRdWlya3M6OnRyaWdn
ZXJPcHRpb25hbFN0b3JhZ2VBY2Nlc3NRdWlyayhFbGVtZW50JiBlbGVtZW50LCBjb25zdCBQbGF0
Zm9ybU1vdXNlRXZlbnQmIHBsYXRmb3JtRXZlbnQsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlw
ZSwgaW50IGRldGFpbCwgRWxlbWVudCogcmVsYXRlZFRhcmdldCwgYm9vbCBpc1BhcmVudFByb2Nl
c3NBRnVsbFdlYkJyb3dzZXIsIElzU3ludGhldGljQ2xpY2sgaXNTeW50aGV0aWNDbGljaykgY29u
c3QKIHsKICAgICBpZiAoIURlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6cmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0VuYWJsZWQoKSB8fCAhaXNQYXJlbnRQcm9jZXNzQUZ1bGxXZWJCcm93c2VyKQogICAg
ICAgICByZXR1cm4gUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0OjpTaG91bGROb3RDYW5jZWxF
dmVudDsKQEAgLTEyMzIsMTQgKzEyMjIsMTUgQEAgUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0
IFF1aXJrczo6dHJpZ2dlck9wdGlvbmFsU3RvcmFnZUFjY2Vzc1F1aXJrKEVsZW1lbnQmIGUKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGlmIChpc1N0b3JhZ2VBY2Nlc3NRdWly
a0RvbWFpbkFuZEVsZW1lbnQobV9kb2N1bWVudC0+dXJsKCksIGVsZW1lbnQpKSB7CisgICAgICAg
IC8vIElmIHRoZSBjbGljayBpcyBzeW50aGV0aWMsIHRoZSB1c2VyIGhhcyBhbHJlYWR5IGdvbmUg
dGhyb3VnaCB0aGUgc3RvcmFnZSBhY2Nlc3MgZmxvdyBhbmQgd2Ugc2hvdWxkIG5vdCByZXF1ZXN0
IGFnYWluLgorICAgICAgICBpZiAoaXNTdG9yYWdlQWNjZXNzUXVpcmtEb21haW5BbmRFbGVtZW50
KG1fZG9jdW1lbnQtPnVybCgpLCBlbGVtZW50KSAmJiBpc1N5bnRoZXRpY0NsaWNrID09IElzU3lu
dGhldGljQ2xpY2s6Ok5vKSB7CiAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdFN0b3JhZ2VBY2Nl
c3NBbmRIYW5kbGVDbGljayhbZWxlbWVudCA9IG1ha2VXZWFrUHRyKGVsZW1lbnQpLCBwbGF0Zm9y
bUV2ZW50LCBldmVudFR5cGUsIGRldGFpbCwgcmVsYXRlZFRhcmdldF0gKFNob3VsZERpc3BhdGNo
Q2xpY2sgc2hvdWxkRGlzcGF0Y2hDbGljaykgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgUmVm
UHRyIHByb3RlY3RlZEVsZW1lbnQgeyBlbGVtZW50LmdldCgpIH07CiAgICAgICAgICAgICAgICAg
aWYgKCFwcm90ZWN0ZWRFbGVtZW50KQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgICAgICAgICBpZiAoc2hvdWxkRGlzcGF0Y2hDbGljayA9PSBTaG91bGREaXNwYXRjaENs
aWNrOjpZZXMpCi0gICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZEVsZW1lbnQtPmRpc3BhdGNo
TW91c2VFdmVudChwbGF0Zm9ybUV2ZW50LCBldmVudFR5cGUsIGRldGFpbCwgcmVsYXRlZFRhcmdl
dCk7CisgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZEVsZW1lbnQtPmRpc3BhdGNoTW91c2VF
dmVudChwbGF0Zm9ybUV2ZW50LCBldmVudFR5cGUsIGRldGFpbCwgcmVsYXRlZFRhcmdldCwgSXNT
eW50aGV0aWNDbGljazo6WWVzKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1F1aXJrcy5oCmluZGV4IDAxNGQ3MmU5NWYwM2UyMzkxZTgwMGZlOTY5YzFiMWI1Y2U0MmViZTAu
Ljk5ODdiNmJiZjBmMWY2MWRiNmY4OTliOWFhNzQ4YTJlYWE2MzUyMjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWly
a3MuaApAQCAtNDQsNiArNDQsOCBAQCBjbGFzcyBSZWdpc3RyYWJsZURvbWFpbjsKIGVudW0gY2xh
c3MgU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgOiBib29sOwogI2VuZGlmCiAKK2VudW0gY2xhc3Mg
SXNTeW50aGV0aWNDbGljayA6IGJvb2w7CisKIGNsYXNzIFF1aXJrcyB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoUXVpcmtzKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBA
IC0xMjIsNyArMTI0LDcgQEAgcHVibGljOgogCiAgICAgZW51bSBTdG9yYWdlQWNjZXNzUmVzdWx0
IDogYm9vbCB7IFNob3VsZE5vdENhbmNlbEV2ZW50LCBTaG91bGRDYW5jZWxFdmVudCB9OwogICAg
IGVudW0gU2hvdWxkRGlzcGF0Y2hDbGljayA6IGJvb2wgeyBObywgWWVzIH07Ci0gICAgU3RvcmFn
ZUFjY2Vzc1Jlc3VsdCB0cmlnZ2VyT3B0aW9uYWxTdG9yYWdlQWNjZXNzUXVpcmsoRWxlbWVudCYs
IGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwg
aW50LCBFbGVtZW50KiwgYm9vbCBpc1BhcmVudFByb2Nlc3NBRnVsbFdlYkJyb3dzZXIpIGNvbnN0
OworICAgIFN0b3JhZ2VBY2Nlc3NSZXN1bHQgdHJpZ2dlck9wdGlvbmFsU3RvcmFnZUFjY2Vzc1F1
aXJrKEVsZW1lbnQmLCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBjb25zdCBBdG9tU3RyaW5n
JiBldmVudFR5cGUsIGludCwgRWxlbWVudCosIGJvb2wgaXNQYXJlbnRQcm9jZXNzQUZ1bGxXZWJC
cm93c2VyLCBJc1N5bnRoZXRpY0NsaWNrKSBjb25zdDsKIAogICAgIGJvb2wgbmVlZHNWUDlGdWxs
UmFuZ2VGbGFnUXVpcmsoKSBjb25zdDsKICAgICBib29sIG5lZWRzSERSUGl4ZWxEZXB0aFF1aXJr
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcAppbmRleCA1MGMx
NTg3MDI3ZDQ3ZWEwNTA0M2E4NDI4ODJmZDk3NGExNDliNzYwLi5mOWI1YzJjMjgyZTg3OWNjMDE4
NTE4Y2JiY2IyZjQxZGM3ZGZhYTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZl
ci5jcHAKQEAgLTQ0MywyNSArNDQzLDYgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRPYnNlcnZlcjo6
c2V0RG9tYWluc1dpdGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8VG9wRnIKICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOwogfQogCi1ib29sIFdlYlJlc291cmNlTG9hZE9ic2VydmVyOjpo
YXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiBzdWJE
b21haW4sIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BEb21haW4pIGNvbnN0Ci17Ci0gICAgYXV0
byBpdCA9IG1fZG9tYWluc1dpdGhEZW5pZWRTdG9yYWdlQWNjZXNzLmZpbmQodG9wRG9tYWluKTsK
LQotICAgIGlmIChpdCAhPSBtX2RvbWFpbnNXaXRoRGVuaWVkU3RvcmFnZUFjY2Vzcy5lbmQoKSkK
LSAgICAgICAgcmV0dXJuIGl0LT52YWx1ZS5jb250YWlucyhzdWJEb21haW4pOwotCi0gICAgcmV0
dXJuIGZhbHNlOwotfQotCi12b2lkIFdlYlJlc291cmNlTG9hZE9ic2VydmVyOjpzZXRIYXNEZW5p
ZWRDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8VG9wRnJhbWVEb21haW4sIFN1YkZyYW1l
RG9tYWluPiYmIGRvbWFpbnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKLXsKLSAgICBmb3IgKGF1dG8mIHRvcERvbWFpbiA6IGRvbWFpbnMua2V5cygpKSB7
Ci0gICAgICAgIG1fZG9tYWluc1dpdGhEZW5pZWRTdG9yYWdlQWNjZXNzLmVuc3VyZSh0b3BEb21h
aW4sIFtdIHsgcmV0dXJuIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+IHsgfTsKLSAgICAgICAg
ICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5hZGQoZG9tYWlucy5nZXQodG9wRG9tYWluKSk7Ci0gICAg
fQotICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
CiAjZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRP
YnNlcnZlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJl
c291cmNlTG9hZE9ic2VydmVyLmgKaW5kZXggMTRiOTY5MzcwYjI1ZmM3OWEzNzYzZjE1NmE2MjY5
ZDNhNzlhNDc3Ni4uNjhjOTYzNTQxM2VmMmI4ZWFkODk3YzNjZjE1ZGZiMWE0NjkzNWY4MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291
cmNlTG9hZE9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmgKQEAgLTY5LDggKzY5LDYgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0RG9tYWluc1dpdGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8
VG9wRnJhbWVEb21haW4sIFN1YkZyYW1lRG9tYWluPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpIGZpbmFsOwogICAgIGJvb2wgaGFzSGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3QgZmluYWw7CiAgICAgYm9vbCBoYXNDcm9zc1Bh
Z2VTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21h
aW4mKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHNldEhhc0RlbmllZENyb3NzUGFnZVN0b3JhZ2VB
Y2Nlc3MoSGFzaE1hcDxUb3BGcmFtZURvbWFpbiwgU3ViRnJhbWVEb21haW4+JiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7Ci0gICAgYm9vbCBoYXNEZW5pZWRDcm9zc1BhZ2VT
dG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4m
KSBjb25zdCBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzJiBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihjb25z
dCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpOwpAQCAtOTAsNyArODgsNiBAQCBwcml2YXRl
OgogCiAgICAgSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gbV9kb21haW5zV2l0
aFVzZXJJbnRlcmFjdGlvbjsKICAgICBIYXNoTWFwPFRvcEZyYW1lRG9tYWluLCBIYXNoU2V0PFN1
YkZyYW1lRG9tYWluPj4gbV9kb21haW5zV2l0aENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3M7Ci0gICAg
SGFzaE1hcDxUb3BGcmFtZURvbWFpbiwgSGFzaFNldDxTdWJGcmFtZURvbWFpbj4+IG1fZG9tYWlu
c1dpdGhEZW5pZWRTdG9yYWdlQWNjZXNzOwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAg
IHVpbnQ2NF90IG1fbG9nZ2luZ0NvdW50ZXIgeyAwIH07CiAgICAgc3RhdGljIGJvb2wgc2hvdWxk
TG9nVXNlckludGVyYWN0aW9uOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>