<?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>223510</bug_id>
          
          <creation_ts>2021-03-19 06:47:53 -0700</creation_ts>
          <short_desc>Cannot login to microsoftonline.com without allowing storage access</short_desc>
          <delta_ts>2021-04-30 12:54:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</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>timcappalli</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1741679</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-03-19 06:47:53 -0700</bug_when>
    <thetext>If a user denies storage access on sites with the storage access quirk, we cancel the click and they can&apos;t login. We should consider changing this behavior, because some sites which require storage access share login flows with sites that do not require storage access.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741681</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-19 06:48:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/75619058&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741688</commentid>
    <comment_count>2</comment_count>
      <attachid>423729</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-03-19 07:24:12 -0700</bug_when>
    <thetext>Created attachment 423729
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741694</commentid>
    <comment_count>3</comment_count>
      <attachid>423729</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-19 07:33:39 -0700</bug_when>
    <thetext>Comment on attachment 423729
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:3829
&gt; +bool WebPage::pageIsParentProcessAFullWebBrowser()

I don&apos;t think we should have a &quot;page&quot; prefix for WebPage functions. This is not a common pattern.

&gt; Source/WebKit/WebProcess/WebPage/WebPage.h:1416
&gt; +    bool pageIsParentProcessAFullWebBrowser();

Can this be const?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741744</commentid>
    <comment_count>4</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-03-19 09:44:45 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; Comment on attachment 423729 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423729&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:3829
&gt; &gt; +bool WebPage::pageIsParentProcessAFullWebBrowser()
&gt; 
&gt; I don&apos;t think we should have a &quot;page&quot; prefix for WebPage functions. This is
&gt; not a common pattern.

I needed some way to distinguish it from the isParentProcessAFullWebBrowser function in DefaultWebBrowserChecks.h. I can use something slightly different like isParentProcessAWebBrowser().

&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.h:1416
&gt; &gt; +    bool pageIsParentProcessAFullWebBrowser();
&gt; 
&gt; Can this be const?

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741761</commentid>
    <comment_count>5</comment_count>
      <attachid>423744</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-03-19 10:04:12 -0700</bug_when>
    <thetext>Created attachment 423744
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741848</commentid>
    <comment_count>6</comment_count>
      <attachid>423761</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-03-19 12:51:14 -0700</bug_when>
    <thetext>Created attachment 423761
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741918</commentid>
    <comment_count>7</comment_count>
      <attachid>423761</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-03-19 15:14:02 -0700</bug_when>
    <thetext>Comment on attachment 423761
Patch

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

r=me with comments.

&gt; Source/WebCore/ChangeLog:15
&gt; +        2. Allow login even if the user denies storage access. Previously we

I wouldn&apos;t say &quot;allow login&quot; since the browser doesn&apos;t decide that. I&apos;d say &quot;don&apos;t cancel the click&quot; instead.

&gt; Source/WebKit/ChangeLog:10
&gt; +        allow login on sites even if the user denies storage access. See

Ditto on allowing login.

&gt; Source/WebCore/dom/Element.cpp:400
&gt; +        isParentProcessAFullWebBrowser = true;

This can be just isParentProcessAFullWebBrowser = MacApplication::isSafari().

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:1962
&gt; +    auto* page = m_frame-&gt;page();

I looked and other functions use m_frame directly too so should be fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741924</commentid>
    <comment_count>8</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-03-19 15:20:56 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #7)
&gt; Comment on attachment 423761 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423761&amp;action=review
&gt; 
&gt; r=me with comments.

Thanks! I am also going to replace &quot;tab&quot; with &quot;web content process&quot; in the ChangeLog because a web content process can host multiple tabs sometimes. 

&gt; 
&gt; &gt; Source/WebCore/ChangeLog:15
&gt; &gt; +        2. Allow login even if the user denies storage access. Previously we
&gt; 
&gt; I wouldn&apos;t say &quot;allow login&quot; since the browser doesn&apos;t decide that. I&apos;d say
&gt; &quot;don&apos;t cancel the click&quot; instead.

Good call.

&gt; 
&gt; &gt; Source/WebKit/ChangeLog:10
&gt; &gt; +        allow login on sites even if the user denies storage access. See
&gt; 
&gt; Ditto on allowing login.

Will fix.

&gt; 
&gt; &gt; Source/WebCore/dom/Element.cpp:400
&gt; &gt; +        isParentProcessAFullWebBrowser = true;
&gt; 
&gt; This can be just isParentProcessAFullWebBrowser = MacApplication::isSafari().
&gt; 

Will fix.

&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:1962
&gt; &gt; +    auto* page = m_frame-&gt;page();
&gt; 
&gt; I looked and other functions use m_frame directly too so should be fine.

Yes, it&apos;s a Ref so it can&apos;t be null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741933</commentid>
    <comment_count>9</comment_count>
      <attachid>423786</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-03-19 15:33:56 -0700</bug_when>
    <thetext>Created attachment 423786
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1741946</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-19 16:27:50 -0700</bug_when>
    <thetext>Committed r274746: &lt;https://commits.webkit.org/r274746&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423786.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423729</attachid>
            <date>2021-03-19 07:24:12 -0700</date>
            <delta_ts>2021-03-19 10:04:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223510-20210319072411.patch</filename>
            <type>text/plain</type>
            <size>21346</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWRiYmEwMTg4ZTZlN2Yy
N2ZmYjcxYTM1ZjA5NjFhZTEwNzA2ODQ5OS4uNmJkYTQ3MTJmNDFhZGFhNDE3MzQ0YWVmNTc1NjEz
ODU0NTU1NjAyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIxLTAzLTE4ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIENhbm5vdCBs
b2dpbiB0byBtaWNyb3NvZnRvbmxpbmUuY29tIHdpdGhvdXQgYWxsb3dpbmcgc3RvcmFnZSBhY2Nl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzUx
MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzU2MTkwNTg+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHR3byBj
aGFuZ2VzOiAKKworICAgICAgICAxLiBBY3RpdmF0ZSB0aGUgc3RvcmFnZSBhY2Nlc3MgcXVpcmtz
IGZvciBkZWZhdWx0IGJyb3dzZXJzIG9ubHkuIFRoaXMKKyAgICAgICAgaXMgdGhlIG1haW4gcGxh
Y2Ugd2UgdGVzdCB0aGVtLCBhbmQgY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvciBpbgor
ICAgICAgICBhcHBzIG90aGVyd2lzZS4KKworICAgICAgICAyLiBBbGxvdyBsb2dpbiBldmVuIGlm
IHRoZSB1c2VyIGRlbmllcyBzdG9yYWdlIGFjY2Vzcy4gUHJldmlvdXNseSB3ZQorICAgICAgICB3
ZSB3ZXJlIG5vdCBhbGxvd2luZyB0aGlzIGJlY2F1c2UgaXQgcHJvZHVjZXMgdW5leHBlY3RlZCBi
ZWhhdmlvci4gQnV0LCAKKyAgICAgICAgc2l0ZXMgbGlrZSBsb2dpbi5taWNyb3NvZnRvbmxpbmUu
Y29tIGFyZSB1c2VkIGJ5IG11bHRpcGxlIE1pY3Jvc29mdAorICAgICAgICBsb2dpbiBmbG93cy4g
U2luY2Ugb25seSBhIHN1YnNldCByZXF1aXJlIHN0b3JhZ2UgYWNjZXNzLCBkZW55aW5nIGxvZ2lu
CisgICAgICAgIGFjcm9zcyB0aGUgYm9hcmQgY291bGQgYmUgY29uc2lkZXJlZCByZWdyZXNzaW5n
IGJlaGF2aW9yLgorCisgICAgICAgIFNpbmNlIHN0b3JhZ2UgYWNjZXNzIGRhdGEgaXMgc3RvcmVk
IGluIHRoZSBuZXR3b3JrIHByb2Nlc3MsIHdlCisgICAgICAgIGN1cnJlbnRseSBjYW5jZWwgdGhl
IHVzZXIncyBjbGljayBvbiBxdWlya2VkIHNpdGVzIHdoaWxlIHdlIHdhaXQKKyAgICAgICAgYXN5
bmNyb25vdXNseSBmb3IgdGhlIElQQyByZXNwb25zZS4gSWYgdGhlIHVzZXIgZ3JhbnRzIHN0b3Jh
Z2UgYWNjZXNzLAorICAgICAgICB3ZSBzdG9yZSB0aGlzIGluIHRoZSB3ZWIgY29udGVudCBwcm9j
ZXNzIGFuZCBkaXNwYXRjaCBhIHN5bnRoZXRpYworICAgICAgICBjbGljay4gSW4gdGhpcyBjYXNl
LCB3aGVuIHRoZSBjbGljayB0cmlnZ2VycyBhbm90aGVyIHN0b3JhZ2UgYWNjZXNzCisgICAgICAg
IGNoZWNrLCB3ZSBjYW4gYWxsb3cgdGhlIGNsaWNrIGJlY2F1c2Ugd2Ugbm8gbG9uZ2VyIG5lZWQg
dG8gd2FpdCBmb3IKKyAgICAgICAgaW5mb3JtYXRpb24gZnJvbSB0aGUgbmV0d29yayBwcm9jZXNz
LgorCisgICAgICAgIFdlIG5lZWQgc29tZSBoZXVyaXN0aWMgaW4gdGhlIHdlYiBjb250ZW50IHBy
b2Nlc3MgdG8gaGFuZGxlIHRoZSBjYXNlCisgICAgICAgIG9mIHRoZSB1c2VyIGRlbnlpbmcgc3Rv
cmFnZSBhY2Nlc3MgdG8ga25vdyB3aGV0aGVyIHRvIGFsbG93IGEKKyAgICAgICAgc3ludGhldGlj
IGNsaWNrIHRvIGhhcHBlbi4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIGhhc0Rlbmll
ZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3Mgd2hpY2ggc3RvcmVzIGRvbWFpbnMgaW4gdGhlIHdlYgor
ICAgICAgICBjb250ZW50IHByb2Nlc3Mgd2hpY2ggaGF2ZSBiZWVuIGRlbmllZCBzdG9yYWdlIGFj
Y2VzcyB2aWEgcXVpcmsuIElmCisgICAgICAgIGEgdXNlciBoYXMgcHJldmlvdXNseSBkZW5pZWQg
c3RvcmFnZSBhY2Nlc3MgaW4gdGhhdCB0YWIsIHdlIGRvbid0CisgICAgICAgIHByb21wdCBhZ2Fp
bi4gSWYgdGhleSBvcGVuIGEgbmV3IHRhYiBvciBzZXNzaW9uLCB3ZSB3aWxsIGdpdmUgdGhlbQor
ICAgICAgICBhbm90aGVyIG9wcG9ydHVuaXR5IHRvIGFsbG93L2Rlbnkgc3RvcmFnZSBhY2Nlc3Mu
CisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
OjpkaXNwYXRjaE1vdXNlRXZlbnQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVu
dC5oOgorICAgICAgICBBZGQgYSBjbGllbnQgZnVuY3Rpb24gdG8gY2hlY2sgaWYgdGhlIHBhcmVu
dCBwcm9jZXNzIGlzIGEgZnVsbCB3ZWIKKyAgICAgICAgYnJvd3NlciwgYW5kIHBhc3MgdGhpcyB0
byB0aGUgcGxhY2Ugd2UgYXBwbHkgdGhlIHF1aXJrcy4KKworICAgICAgICAqIGxvYWRlci9SZXNv
dXJjZUxvYWRPYnNlcnZlci5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2
ZXI6OnNldEhhc0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6Omhhc0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3Mg
Y29uc3QpOgorICAgICAgICAqIHBhZ2UvUXVpcmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omhh
c0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6UXVpcmtz
OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0FuZEhhbmRsZUNsaWNrIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlF1aXJrczo6dHJpZ2dlck9wdGlvbmFsU3RvcmFnZUFjY2Vzc1F1aXJrIGNvbnN0KToK
KyAgICAgICAgKiBwYWdlL1F1aXJrcy5oOgorCiAyMDIxLTAzLTE1ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE9wdGltaXplIGNhbnZhcyByZXBhaW50
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAzZDZjYWVmYjNmZjA0YTI3NTA1OGIyNTQxODIwNDg4NTA5NDRjMDhlLi5j
ZDU2NWMxYzdhMmNlNDU1ZDc5ZDdlNTgxYmEzODdiNTA2M2M4ODk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI3IEBACisyMDIxLTAzLTE4ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBw
bGUuY29tPgorCisgICAgICAgIENhbm5vdCBsb2dpbiB0byBtaWNyb3NvZnRvbmxpbmUuY29tIHdp
dGhvdXQgYWxsb3dpbmcgc3RvcmFnZSBhY2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzUxMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzU2
MTkwNTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RGlzYWJsZSB0aGUgc3RvcmFnZSBhY2Nlc3MgcXVpcmsgZm9yIG5vbi1kZWZhdWx0IHdlYiBicm93
c2VycyBhbmQKKyAgICAgICAgYWxsb3cgbG9naW4gb24gc2l0ZXMgZXZlbiBpZiB0aGUgdXNlciBk
ZW5pZXMgc3RvcmFnZSBhY2Nlc3MuIFNlZQorICAgICAgICBXZWJDb3JlIGNoYW5nZWxvZyBmb3Ig
bW9yZSBkZXRhaWxzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xp
ZW50Ojppc1BhcmVudFByb2Nlc3NBRnVsbFdlYkJyb3dzZXIgY29uc3QpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6Omhhc0RlbmllZENyb3Nz
UGFnZVN0b3JhZ2VBY2Nlc3MgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxv
YWRPYnNlcnZlcjo6c2V0SGFzRGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6cGFnZUlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3Nlcik6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCiAyMDIxLTAzLTE1ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0IHIyNzI2MjkgYXMgaXQg
Y2F1c2VkIHJlZ3Jlc3Npb25zIGluIHNvbWUgYXBwcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4
IDdiYmE3Njk3NTg1NjY4Y2UyMDM2OGJkZTM4NGVhYTljZmQwYmFiZDIuLmMyYWEzMzk5ODVjYjFi
OTRjY2E4NDAxOTFlYjY3ODFjZjgzYjBhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTM5
MCw4ICszOTAsMTIgQEAgYm9vbCBFbGVtZW50OjpkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgUGxh
dGZvcm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybUV2ZW50LCBjb25zdAogCiAgICAgaWYgKGRpc3BhdGNo
UG9pbnRlckV2ZW50SWZOZWVkZWQoKnRoaXMsIG1vdXNlRXZlbnQuZ2V0KCksIHBsYXRmb3JtRXZl
bnQsIGRpZE5vdFN3YWxsb3dFdmVudCkgPT0gU2hvdWxkSWdub3JlTW91c2VFdmVudDo6WWVzKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgYXV0byBpc1BhcmVudFByb2Nlc3NBRnVs
bFdlYkJyb3dzZXIgPSBmYWxzZTsKKyAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS5m
cmFtZSgpKQorICAgICAgICBpc1BhcmVudFByb2Nlc3NBRnVsbFdlYkJyb3dzZXIgPSBmcmFtZS0+
bG9hZGVyKCkuY2xpZW50KCkuaXNQYXJlbnRQcm9jZXNzQUZ1bGxXZWJCcm93c2VyKCk7CiAKLSAg
ICBpZiAoUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0OjpTaG91bGRDYW5jZWxFdmVudCA9PSBk
b2N1bWVudCgpLnF1aXJrcygpLnRyaWdnZXJPcHRpb25hbFN0b3JhZ2VBY2Nlc3NRdWlyaygqdGhp
cywgcGxhdGZvcm1FdmVudCwgZXZlbnRUeXBlLCBkZXRhaWwsIHJlbGF0ZWRUYXJnZXQpKQorICAg
IGlmIChRdWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1bHQ6OlNob3VsZENhbmNlbEV2ZW50ID09IGRv
Y3VtZW50KCkucXVpcmtzKCkudHJpZ2dlck9wdGlvbmFsU3RvcmFnZUFjY2Vzc1F1aXJrKCp0aGlz
LCBwbGF0Zm9ybUV2ZW50LCBldmVudFR5cGUsIGRldGFpbCwgcmVsYXRlZFRhcmdldCwgaXNQYXJl
bnRQcm9jZXNzQUZ1bGxXZWJCcm93c2VyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
QVNTRVJUKCFtb3VzZUV2ZW50LT50YXJnZXQoKSB8fCBtb3VzZUV2ZW50LT50YXJnZXQoKSAhPSBy
ZWxhdGVkVGFyZ2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgK
aW5kZXggYTIzMWY4MDQ3ZmUzZmJjZjdmNTdmNDU2MTk0NzQwYmE3MTJmZDNhMy4uMzRlNTE1YWUz
MmU2Yjk1MjY5NjdjOTZmNzdkYjY3ZWE5MzRjMmYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTM4NCw2ICszODQsOCBAQCBwdWJsaWM6CiAjaWYgRU5B
QkxFKFBERktJVF9QTFVHSU4pCiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZVBERlBsdWdpbihj
b25zdCBTdHJpbmcmLCBTdHJpbmdWaWV3KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlm
CisgICAgCisgICAgdmlydHVhbCBib29sIGlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3Nlcigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5oCmluZGV4IGUwMmJm
ZDhhNGVkZDdjOWI3ZjBlNDMwNTRiYzAzOTM3YjIyZDVkYTAuLmQ3NWE2ZWJjNzQ5ODcxMzJjYzVi
MDg4ZmQzMmM3MGZjODY4NWVhYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRPYnNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRPYnNlcnZlci5oCkBAIC03MSw2ICs3MSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RG9tYWluc1dpdGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8VG9wRnJhbWVE
b21haW4sIFN1YlJlc291cmNlRG9tYWluPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoKTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBoYXNDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YlJlc291cmNlRG9tYWluJiwg
Y29uc3QgVG9wRnJhbWVEb21haW4mKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgYm9vbCBoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIAorICAgIHZpcnR1YWwgdm9pZCBzZXRIYXNEZW5p
ZWRDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8VG9wRnJhbWVEb21haW4sIFN1YlJlc291
cmNlRG9tYWluPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBoYXNEZW5pZWRD
cm9zc1BhZ2VTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YlJlc291cmNlRG9tYWluJiwgY29uc3QgVG9w
RnJhbWVEb21haW4mKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogfTsKICAgICAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcAppbmRleCBiMWM1Zjk2MjRhNThmYmM1
N2VmNDlmZDg5YmJlYzM2ZDBhYmFkNGZjLi5iMTAyYzc0OGY5MzJjOGY4OTU0MzhhN2Y0YTdiZDQ5
ODRiYTkyZmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCkBAIC0xMDM3LDYgKzEwMzcsMTUgQEAg
Ym9vbCBRdWlya3M6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JBbGxMb2dpbkRvbWFpbnMoY29uc3QgSGFz
aFNldDxSZWdpc3RyYWJsZURvbWFpbj4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGJv
b2wgaGFzRGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyhjb25zdCBIYXNoU2V0PFJlZ2lzdHJh
YmxlRG9tYWluPiYgbG9naW5Eb21haW5zLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJh
bWVEb21haW4pCit7CisgICAgZm9yIChhdXRvJiBsb2dpbkRvbWFpbiA6IGxvZ2luRG9tYWlucykg
eworICAgICAgICBpZiAoUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLmhhc0RlbmllZENy
b3NzUGFnZVN0b3JhZ2VBY2Nlc3MobG9naW5Eb21haW4sIHRvcEZyYW1lRG9tYWluKSkKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGNvbnN0
IFN0cmluZyYgUXVpcmtzOjpCQkNSYWRpb1BsYXllclVSTFN0cmluZygpCiB7CiAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gQkJDUmFkaW9QbGF5ZXJVUkxTdHJpbmcgPSAiaHR0cHM6
Ly93d3cuYmJjLmNvLnVrL3NvdW5kcy9wbGF5ZXIvYmJjX3dvcmxkX3NlcnZpY2UiX3M7CkBAIC0x
MDY0LDM0ICsxMDczLDM3IEBAIHN0YXRpYyBib29sIGlzQkJDUG9wVXBQbGF5ZXJFbGVtZW50KGNv
bnN0IEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgcmV0dXJuIGVsZW1lbnQucGFyZW50RWxlbWVudCgp
LT5jbGFzc05hbWVzKCkuY29udGFpbnMoInBfYXVkaW9CdXR0b25fYnV0dG9uSW5uZXIiKSAmJiBw
YXJlbnRFbGVtZW50LT5wYXJlbnRFbGVtZW50KCktPmNsYXNzTmFtZXMoKS5jb250YWlucygiaGlk
ZGVuIik7CiB9CiAKLVF1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdCBRdWlya3M6OnJlcXVlc3RT
dG9yYWdlQWNjZXNzQW5kSGFuZGxlQ2xpY2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0CitRdWlya3M6OlN0
b3JhZ2VBY2Nlc3NSZXN1bHQgUXVpcmtzOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0FuZEhhbmRsZUNs
aWNrKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxkRGlzcGF0Y2hDbGljayk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIGNvbnN0CiB7CiAgICAgYXV0byBmaXJzdFBhcnR5RG9tYWluID0gbWFwVG9U
b3BEb21haW4obV9kb2N1bWVudC0+dG9wRG9jdW1lbnQoKS51cmwoKSk7CiAgICAgYXV0byBkb21h
aW5zSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdWJSZXNv
dXJjZURvbWFpbnNJbk5lZWRPZlN0b3JhZ2VBY2Nlc3NGb3JGaXJzdFBhcnR5KGZpcnN0UGFydHlE
b21haW4pOwogICAgIGlmICghZG9tYWluc0luTmVlZE9mU3RvcmFnZUFjY2VzcyB8fCBkb21haW5z
SW5OZWVkT2ZTdG9yYWdlQWNjZXNzLnZhbHVlKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObyk7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFNob3VsZERpc3BhdGNoQ2xpY2s6Ok5vKTsKICAgICAgICAgcmV0dXJuIFF1
aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdDo6U2hvdWxkTm90Q2FuY2VsRXZlbnQ7CiAgICAgfQot
ICAgIGlmIChoYXNTdG9yYWdlQWNjZXNzRm9yQWxsTG9naW5Eb21haW5zKCpkb21haW5zSW5OZWVk
T2ZTdG9yYWdlQWNjZXNzLCBmaXJzdFBhcnR5RG9tYWluKSkgewotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6Tm8pOworICAgIGlmIChoYXNTdG9yYWdl
QWNjZXNzRm9yQWxsTG9naW5Eb21haW5zKCpkb21haW5zSW5OZWVkT2ZTdG9yYWdlQWNjZXNzLCBm
aXJzdFBhcnR5RG9tYWluKQorICAgICAgICB8fCBoYXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdlQWNj
ZXNzKCpkb21haW5zSW5OZWVkT2ZTdG9yYWdlQWNjZXNzLCBmaXJzdFBhcnR5RG9tYWluKSkgewor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTaG91bGREaXNwYXRjaENsaWNrOjpObyk7CiAgICAg
ICAgIHJldHVybiBRdWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1bHQ6OlNob3VsZE5vdENhbmNlbEV2
ZW50OwogICAgIH0KIAogICAgIGF1dG8gZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID0gUmVn
aXN0cmFibGVEb21haW4oKmRvbWFpbnNJbk5lZWRPZlN0b3JhZ2VBY2Nlc3MudmFsdWUoKS5iZWdp
bigpLmdldCgpKTsKIAogICAgIGlmICghbV9kb2N1bWVudCkgewotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6Tm8pOworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihTaG91bGREaXNwYXRjaENsaWNrOjpObyk7CiAgICAgICAgIHJldHVybiBRdWlya3M6
OlN0b3JhZ2VBY2Nlc3NSZXN1bHQ6OlNob3VsZE5vdENhbmNlbEV2ZW50OwogICAgIH0KIAogICAg
IERvY3VtZW50U3RvcmFnZUFjY2Vzczo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NGb3JOb25Eb2N1bWVu
dFF1aXJrKCptX2RvY3VtZW50LCBXVEZNb3ZlKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzcyks
IFtmaXJzdFBhcnR5RG9tYWluLCBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkIHN0b3JhZ2VBY2Nlc3NHcmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHN0b3Jh
Z2VBY2Nlc3NHcmFudGVkID09IFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObykgewotICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RvcmFnZUFjY2Vzc0dyYW50ZWQpOworICAgICAgICAg
ICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLnNldEhhc0RlbmllZENyb3NzUGFnZVN0
b3JhZ2VBY2Nlc3Moe3sgZmlyc3RQYXJ0eURvbWFpbiwgZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNj
ZXNzIH19LCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0g
KCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU2hvdWxkRGlz
cGF0Y2hDbGljazo6WWVzKTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAKLSAgICAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLnNldERv
bWFpbnNXaXRoQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyh7eyBmaXJzdFBhcnR5RG9tYWluLCBkb21h
aW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgfX0sIFtzdG9yYWdlQWNjZXNzR3JhbnRlZCwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7Ci0g
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdG9yYWdlQWNjZXNzR3JhbnRlZCk7CisgICAg
ICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWQoKS5zZXREb21haW5zV2l0aENyb3NzUGFn
ZVN0b3JhZ2VBY2Nlc3Moe3sgZmlyc3RQYXJ0eURvbWFpbiwgZG9tYWluSW5OZWVkT2ZTdG9yYWdl
QWNjZXNzIH19LCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTaG91bGREaXNw
YXRjaENsaWNrOjpZZXMpOwogICAgICAgICB9KTsKICAgICB9KTsKICAgICByZXR1cm4gUXVpcmtz
OjpTdG9yYWdlQWNjZXNzUmVzdWx0OjpTaG91bGRDYW5jZWxFdmVudDsKQEAgLTExMDYsOSArMTEx
OCw5IEBAIFJlZ2lzdHJhYmxlRG9tYWluIFF1aXJrczo6bWFwVG9Ub3BEb21haW4oY29uc3QgVVJM
JiB1cmxUb01hcCkKIH0KICNlbmRpZgogCi1RdWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1bHQgUXVp
cmtzOjp0cmlnZ2VyT3B0aW9uYWxTdG9yYWdlQWNjZXNzUXVpcmsoRWxlbWVudCYgZWxlbWVudCwg
Y29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybUV2ZW50LCBjb25zdCBBdG9tU3RyaW5n
JiBldmVudFR5cGUsIGludCBkZXRhaWwsIEVsZW1lbnQqIHJlbGF0ZWRUYXJnZXQpIGNvbnN0CitR
dWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1bHQgUXVpcmtzOjp0cmlnZ2VyT3B0aW9uYWxTdG9yYWdl
QWNjZXNzUXVpcmsoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBw
bGF0Zm9ybUV2ZW50LCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGludCBkZXRhaWwsIEVs
ZW1lbnQqIHJlbGF0ZWRUYXJnZXQsIGJvb2wgaXNQYXJlbnRQcm9jZXNzQUZ1bGxXZWJCcm93c2Vy
KSBjb25zdAogewotICAgIGlmICghRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpyZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRW5hYmxlZCgpKQorICAgIGlmICghRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdz
OjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpIHx8ICFpc1BhcmVudFByb2Nlc3NBRnVs
bFdlYkJyb3dzZXIpCiAgICAgICAgIHJldHVybiBRdWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1bHQ6
OlNob3VsZE5vdENhbmNlbEV2ZW50OwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKQEAgLTExODMsMTEgKzExOTUsMTEgQEAgUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0
IFF1aXJrczo6dHJpZ2dlck9wdGlvbmFsU3RvcmFnZUFjY2Vzc1F1aXJrKEVsZW1lbnQmIGUKICAg
ICAgICAgfQogCiAgICAgICAgIGlmIChpc1N0b3JhZ2VBY2Nlc3NRdWlya0RvbWFpbkFuZEVsZW1l
bnQobV9kb2N1bWVudC0+dXJsKCksIGVsZW1lbnQpKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmVx
dWVzdFN0b3JhZ2VBY2Nlc3NBbmRIYW5kbGVDbGljayhbZWxlbWVudCA9IG1ha2VXZWFrUHRyKGVs
ZW1lbnQpLCBwbGF0Zm9ybUV2ZW50LCBldmVudFR5cGUsIGRldGFpbCwgcmVsYXRlZFRhcmdldF0g
KFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIHN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgIHJldHVybiByZXF1ZXN0U3RvcmFnZUFjY2Vzc0FuZEhhbmRsZUNsaWNr
KFtlbGVtZW50ID0gbWFrZVdlYWtQdHIoZWxlbWVudCksIHBsYXRmb3JtRXZlbnQsIGV2ZW50VHlw
ZSwgZGV0YWlsLCByZWxhdGVkVGFyZ2V0XSAoU2hvdWxkRGlzcGF0Y2hDbGljayBzaG91bGREaXNw
YXRjaENsaWNrKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBpZiAoIWVsZW1lbnQpCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgICAgIGlmIChzdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCA9PSBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6WWVzKQorICAgICAgICAg
ICAgICAgIGlmIChzaG91bGREaXNwYXRjaENsaWNrID09IFNob3VsZERpc3BhdGNoQ2xpY2s6Olll
cykKICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC0+ZGlzcGF0Y2hNb3VzZUV2ZW50KHBsYXRm
b3JtRXZlbnQsIGV2ZW50VHlwZSwgZGV0YWlsLCByZWxhdGVkVGFyZ2V0KTsKICAgICAgICAgICAg
IH0pOwogICAgICAgICB9CkBAIC0xMTk3LDggKzEyMDksOCBAQCBRdWlya3M6OlN0b3JhZ2VBY2Nl
c3NSZXN1bHQgUXVpcmtzOjp0cmlnZ2VyT3B0aW9uYWxTdG9yYWdlQWNjZXNzUXVpcmsoRWxlbWVu
dCYgZQogCiAgICAgICAgIC8vIEJCQyBSYWRpb1BsYXllciBjYXNlLgogICAgICAgICBpZiAoaXNC
QkNEb21haW4oZG9tYWluKSAmJiBpc0JCQ1BvcFVwUGxheWVyRWxlbWVudChlbGVtZW50KSkgewot
ICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RTdG9yYWdlQWNjZXNzQW5kSGFuZGxlQ2xpY2soW2Rv
Y3VtZW50ID0gbV9kb2N1bWVudF0gKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIHN0b3JhZ2VBY2Nl
c3NXYXNHcmFudGVkKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBpZiAoIWRvY3VtZW50IHx8
IHN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkID09IFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObykK
KyAgICAgICAgICAgIHJldHVybiByZXF1ZXN0U3RvcmFnZUFjY2Vzc0FuZEhhbmRsZUNsaWNrKFtk
b2N1bWVudCA9IG1fZG9jdW1lbnRdIChTaG91bGREaXNwYXRjaENsaWNrIHNob3VsZERpc3BhdGNo
Q2xpY2spIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmICghZG9jdW1lbnQgfHwgc2hvdWxk
RGlzcGF0Y2hDbGljayA9PSBTaG91bGREaXNwYXRjaENsaWNrOjpObykKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICAgICAgYXV0byBkb21XaW5kb3cgPSBkb2N1bWVu
dC0+ZG9tV2luZG93KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaAppbmRleCA4MzhkNjVjYzdlYTVmZmFlMmE3
NzBlYzA4Y2NhNjhjMmU2YzQzN2Q0Li5iYmYwYWRkOGJlOTJiNDg3OWRlNjJhZjE0MTdkZjFlNzJm
M2UwN2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmgKQEAgLTExOSw3ICsxMTksOCBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBzaG91bGRBdm9pZFBhc3RpbmdJbWFnZXNBc1dlYkNvbnRlbnQoKSBjb25zdDsKIAog
ICAgIGVudW0gU3RvcmFnZUFjY2Vzc1Jlc3VsdCA6IGJvb2wgeyBTaG91bGROb3RDYW5jZWxFdmVu
dCwgU2hvdWxkQ2FuY2VsRXZlbnQgfTsKLSAgICBTdG9yYWdlQWNjZXNzUmVzdWx0IHRyaWdnZXJP
cHRpb25hbFN0b3JhZ2VBY2Nlc3NRdWlyayhFbGVtZW50JiwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiwgY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBpbnQsIEVsZW1lbnQqKSBjb25zdDsK
KyAgICBlbnVtIFNob3VsZERpc3BhdGNoQ2xpY2sgOiBib29sIHsgTm8sIFllcyB9OworICAgIFN0
b3JhZ2VBY2Nlc3NSZXN1bHQgdHJpZ2dlck9wdGlvbmFsU3RvcmFnZUFjY2Vzc1F1aXJrKEVsZW1l
bnQmLCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5
cGUsIGludCwgRWxlbWVudCosIGJvb2wgaXNQYXJlbnRQcm9jZXNzQUZ1bGxXZWJCcm93c2VyKSBj
b25zdDsKIAogICAgIGJvb2wgbmVlZHNWUDlGdWxsUmFuZ2VGbGFnUXVpcmsoKSBjb25zdDsKICAg
ICBib29sIG5lZWRzSERSUGl4ZWxEZXB0aFF1aXJrKCkgY29uc3Q7CkBAIC0xMzksNyArMTQwLDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGhhc1N0b3JhZ2VBY2Nlc3NGb3JBbGxMb2dpbkRv
bWFpbnMoY29uc3QgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mLCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYpOwogICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIEJCQ1JhZGlvUGxheWVyVVJMU3Ry
aW5nKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IFN0cmluZyYgc3RhdGljUmFk
aW9QbGF5ZXJVUkxTdHJpbmcoKTsKLSAgICBTdG9yYWdlQWNjZXNzUmVzdWx0IHJlcXVlc3RTdG9y
YWdlQWNjZXNzQW5kSGFuZGxlQ2xpY2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCk+JiYpIGNvbnN0OworICAgIFN0b3JhZ2VBY2Nlc3NSZXN1bHQgcmVxdWVz
dFN0b3JhZ2VBY2Nlc3NBbmRIYW5kbGVDbGljayhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNob3Vs
ZERpc3BhdGNoQ2xpY2spPiYmKSBjb25zdDsKICAgICBzdGF0aWMgUmVnaXN0cmFibGVEb21haW4g
bWFwVG9Ub3BEb21haW4oY29uc3QgVVJMJik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKaW5kZXggMzY1MTIwMjVlY2VhY2RkMzU1YWZmYzU5ZGVlMTRmZGQzYjcwN2Zl
MC4uZWFmMDMwODAxZDAyZTQ5NWE3ODRhM2M0YmY5ZTdkNTA3NTU1ZWQ2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xOTU3LDYgKzE5NTcsMTIgQEAgYm9vbCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6c2hvdWxkVXNlUERGUGx1Z2luKGNvbnN0IFN0cmluZyYgY29udGVudFR5
cGUsIFN0cmluZ1YKIH0KICNlbmRpZgogCitib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojppc1Bh
cmVudFByb2Nlc3NBRnVsbFdlYkJyb3dzZXIoKSBjb25zdAoreworICAgIGF1dG8qIHBhZ2UgPSBt
X2ZyYW1lLT5wYWdlKCk7CisgICAgcmV0dXJuIHBhZ2UgJiYgcGFnZS0+cGFnZUlzUGFyZW50UHJv
Y2Vzc0FGdWxsV2ViQnJvd3NlcigpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3Vu
ZGVmIFBSRUZJWF9QQVJBTUVURVJTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDIz
NDdkYjlhODllMWE2OGEwOTZhMDlhMTRlYzQ3OTU4YTA5MWE4ODMuLjk3MzZkZjViZTcyYWNjZjI1
YzlmM2RkMWRjMzcxODMyZDY3NDY1MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBA
IC0yOTQsNiArMjk0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHNob3VsZFVzZVBERlBsdWdpbihj
b25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBTdHJpbmdWaWV3IHBhdGgpIGNvbnN0IGZpbmFsOwog
I2VuZGlmCiAKKyAgICBib29sIGlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3NlcigpIGNvbnN0
IGZpbmFsOwogfTsKIAogLy8gQXMgbG9uZyBhcyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IGV4aXN0
cyBpbiBXZWJDb3JlLCB0aGlzIGNhbiByZXR1cm4gbnVsbHB0ci4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXIuY3BwCmluZGV4IGY5YjVjMmMyODJlODc5Y2MwMTg1MThjYmJjYjJmNDFk
YzdkZmFhODMuLjUwYzE1ODcwMjdkNDdlYTA1MDQzYTg0Mjg4MmZkOTc0YTE0OWI3NjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJj
ZUxvYWRPYnNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcApAQCAtNDQzLDYgKzQ0MywyNSBAQCB2
b2lkIFdlYlJlc291cmNlTG9hZE9ic2VydmVyOjpzZXREb21haW5zV2l0aENyb3NzUGFnZVN0b3Jh
Z2VBY2Nlc3MoSGFzaE1hcDxUb3BGcgogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKK2Jv
b2wgV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6Omhhc0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nl
c3MoY29uc3QgU3ViRnJhbWVEb21haW4mIHN1YkRvbWFpbiwgY29uc3QgVG9wRnJhbWVEb21haW4m
IHRvcERvbWFpbikgY29uc3QKK3sKKyAgICBhdXRvIGl0ID0gbV9kb21haW5zV2l0aERlbmllZFN0
b3JhZ2VBY2Nlc3MuZmluZCh0b3BEb21haW4pOworCisgICAgaWYgKGl0ICE9IG1fZG9tYWluc1dp
dGhEZW5pZWRTdG9yYWdlQWNjZXNzLmVuZCgpKQorICAgICAgICByZXR1cm4gaXQtPnZhbHVlLmNv
bnRhaW5zKHN1YkRvbWFpbik7CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgV2ViUmVz
b3VyY2VMb2FkT2JzZXJ2ZXI6OnNldEhhc0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoSGFz
aE1hcDxUb3BGcmFtZURvbWFpbiwgU3ViRnJhbWVEb21haW4+JiYgZG9tYWlucywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGZvciAoYXV0byYg
dG9wRG9tYWluIDogZG9tYWlucy5rZXlzKCkpIHsKKyAgICAgICAgbV9kb21haW5zV2l0aERlbmll
ZFN0b3JhZ2VBY2Nlc3MuZW5zdXJlKHRvcERvbWFpbiwgW10geyByZXR1cm4gSGFzaFNldDxSZWdp
c3RyYWJsZURvbWFpbj4geyB9OworICAgICAgICAgICAgfSkuaXRlcmF0b3ItPnZhbHVlLmFkZChk
b21haW5zLmdldCh0b3BEb21haW4pKTsKKyAgICB9CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoUkVTT1VSQ0Vf
TE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaAppbmRleCA2
OGM5NjM1NDEzZWYyYjhlYWQ4OTdjM2NmMTVkZmIxYTQ2OTM1ZjgwLi4xNGI5NjkzNzBiMjVmYzc5
YTM3NjNmMTU2YTYyNjlkM2E3OWE0Nzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2
ZXIuaApAQCAtNjksNiArNjksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREb21haW5zV2l0aENy
b3NzUGFnZVN0b3JhZ2VBY2Nlc3MoSGFzaE1hcDxUb3BGcmFtZURvbWFpbiwgU3ViRnJhbWVEb21h
aW4+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAgICAgYm9vbCBoYXNI
YWRVc2VySW50ZXJhY3Rpb24oY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mKSBjb25z
dCBmaW5hbDsKICAgICBib29sIGhhc0Nyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJh
bWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQg
c2V0SGFzRGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2VzcyhIYXNoTWFwPFRvcEZyYW1lRG9tYWlu
LCBTdWJGcmFtZURvbWFpbj4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsK
KyAgICBib29sIGhhc0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVE
b21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYpIGNvbnN0IGZpbmFsOwogCiBwcml2YXRlOgog
ICAgIFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3MmIGVuc3VyZVJlc291cmNlU3RhdGlz
dGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
Jik7CkBAIC04OCw2ICs5MCw3IEBAIHByaXZhdGU6CiAKICAgICBIYXNoU2V0PFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluPiBtX2RvbWFpbnNXaXRoVXNlckludGVyYWN0aW9uOwogICAgIEhhc2hN
YXA8VG9wRnJhbWVEb21haW4sIEhhc2hTZXQ8U3ViRnJhbWVEb21haW4+PiBtX2RvbWFpbnNXaXRo
Q3Jvc3NQYWdlU3RvcmFnZUFjY2VzczsKKyAgICBIYXNoTWFwPFRvcEZyYW1lRG9tYWluLCBIYXNo
U2V0PFN1YkZyYW1lRG9tYWluPj4gbV9kb21haW5zV2l0aERlbmllZFN0b3JhZ2VBY2Nlc3M7CiAj
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdWludDY0X3QgbV9sb2dnaW5nQ291bnRlciB7
IDAgfTsKICAgICBzdGF0aWMgYm9vbCBzaG91bGRMb2dVc2VySW50ZXJhY3Rpb247CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDFhMzc3YjQwOGMz
MjUxZDcwNDEzZDEyNWRlNDZhODQ1Mzc3NWFjMDIuLmQ3ZGYyMWNkZWYwZjhlNjQ5ZWU3ZTkwMjFi
MDdiZmFkZTk5Y2NkNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC0zODI2LDYgKzM4MjYsMTQgQEAgdm9pZCBXZWJQYWdlOjpwcmVmZXJlbmNl
c0RpZENoYW5nZShjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICB1cGRhdGVQ
cmVmZXJlbmNlcyhzdG9yZSk7CiB9CiAKK2Jvb2wgV2ViUGFnZTo6cGFnZUlzUGFyZW50UHJvY2Vz
c0FGdWxsV2ViQnJvd3NlcigpCit7CisgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKQorICAgICAgICByZXR1
cm4gaXNQYXJlbnRQcm9jZXNzQUZ1bGxXZWJCcm93c2VyKGNvbm5lY3Rpb24tPmdldEF1ZGl0VG9r
ZW4oKSk7CisgICAgCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFdlYlBhZ2U6OnVwZGF0
ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogewogICAgIHVw
ZGF0ZVByZWZlcmVuY2VzR2VuZXJhdGVkKHN0b3JlKTsKQEAgLTM5MzIsMTAgKzM5NDAsOCBAQCB2
b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUm
IHN0b3JlKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKSAmJiBQTEFURk9STShJT1Mp
Ci0gICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpKSB7Ci0gICAgICAgIGlmIChpc1BhcmVudFByb2Nlc3NBRnVs
bFdlYkJyb3dzZXIoY29ubmVjdGlvbi0+Z2V0QXVkaXRUb2tlbigpKSkKLSAgICAgICAgICAgIHNl
dHRpbmdzLnNldFdlYkF1dGhlbnRpY2F0aW9uRW5hYmxlZCh0cnVlKTsKLSAgICB9CisgICAgaWYg
KHBhZ2VJc1BhcmVudFByb2Nlc3NBRnVsbFdlYkJyb3dzZXIoKSkKKyAgICAgICAgc2V0dGluZ3Mu
c2V0V2ViQXV0aGVudGljYXRpb25FbmFibGVkKHRydWUpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUo
V0VCTV9GT1JNQVRfUkVBREVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCmluZGV4IGM3ZDRkMTkwODg1YWJhN2Y1ODAyOGFmMmE3ZWMwMmUyNjc3NjEzOGIuLjFj
ZjE3ZDYzZWVkZmYyYTMzOTA3MWMyMTA5ZDMwOTFmOGIxMDg1ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE0MTMsNiArMTQxMyw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldExhc3ROYXZpZ2F0aW9uV2FzQXBwQm91bmQoYm9vbCB3YXNBcHBCb3Vu
ZCkgeyBtX2xhc3ROYXZpZ2F0aW9uV2FzQXBwQm91bmQgPSB3YXNBcHBCb3VuZDsgfQogICAgIHZv
aWQgbGFzdE5hdmlnYXRpb25XYXNBcHBCb3VuZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKTsKIAorICAgIGJvb2wgcGFnZUlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3NlcigpOwor
ICAgIAogcHJpdmF0ZToKICAgICBXZWJQYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423744</attachid>
            <date>2021-03-19 10:04:12 -0700</date>
            <delta_ts>2021-03-19 12:51:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223510-20210319100411.patch</filename>
            <type>text/plain</type>
            <size>21351</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWRiYmEwMTg4ZTZlN2Yy
N2ZmYjcxYTM1ZjA5NjFhZTEwNzA2ODQ5OS4uNmJkYTQ3MTJmNDFhZGFhNDE3MzQ0YWVmNTc1NjEz
ODU0NTU1NjAyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIxLTAzLTE4ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIENhbm5vdCBs
b2dpbiB0byBtaWNyb3NvZnRvbmxpbmUuY29tIHdpdGhvdXQgYWxsb3dpbmcgc3RvcmFnZSBhY2Nl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzUx
MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzU2MTkwNTg+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHR3byBj
aGFuZ2VzOiAKKworICAgICAgICAxLiBBY3RpdmF0ZSB0aGUgc3RvcmFnZSBhY2Nlc3MgcXVpcmtz
IGZvciBkZWZhdWx0IGJyb3dzZXJzIG9ubHkuIFRoaXMKKyAgICAgICAgaXMgdGhlIG1haW4gcGxh
Y2Ugd2UgdGVzdCB0aGVtLCBhbmQgY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvciBpbgor
ICAgICAgICBhcHBzIG90aGVyd2lzZS4KKworICAgICAgICAyLiBBbGxvdyBsb2dpbiBldmVuIGlm
IHRoZSB1c2VyIGRlbmllcyBzdG9yYWdlIGFjY2Vzcy4gUHJldmlvdXNseSB3ZQorICAgICAgICB3
ZSB3ZXJlIG5vdCBhbGxvd2luZyB0aGlzIGJlY2F1c2UgaXQgcHJvZHVjZXMgdW5leHBlY3RlZCBi
ZWhhdmlvci4gQnV0LCAKKyAgICAgICAgc2l0ZXMgbGlrZSBsb2dpbi5taWNyb3NvZnRvbmxpbmUu
Y29tIGFyZSB1c2VkIGJ5IG11bHRpcGxlIE1pY3Jvc29mdAorICAgICAgICBsb2dpbiBmbG93cy4g
U2luY2Ugb25seSBhIHN1YnNldCByZXF1aXJlIHN0b3JhZ2UgYWNjZXNzLCBkZW55aW5nIGxvZ2lu
CisgICAgICAgIGFjcm9zcyB0aGUgYm9hcmQgY291bGQgYmUgY29uc2lkZXJlZCByZWdyZXNzaW5n
IGJlaGF2aW9yLgorCisgICAgICAgIFNpbmNlIHN0b3JhZ2UgYWNjZXNzIGRhdGEgaXMgc3RvcmVk
IGluIHRoZSBuZXR3b3JrIHByb2Nlc3MsIHdlCisgICAgICAgIGN1cnJlbnRseSBjYW5jZWwgdGhl
IHVzZXIncyBjbGljayBvbiBxdWlya2VkIHNpdGVzIHdoaWxlIHdlIHdhaXQKKyAgICAgICAgYXN5
bmNyb25vdXNseSBmb3IgdGhlIElQQyByZXNwb25zZS4gSWYgdGhlIHVzZXIgZ3JhbnRzIHN0b3Jh
Z2UgYWNjZXNzLAorICAgICAgICB3ZSBzdG9yZSB0aGlzIGluIHRoZSB3ZWIgY29udGVudCBwcm9j
ZXNzIGFuZCBkaXNwYXRjaCBhIHN5bnRoZXRpYworICAgICAgICBjbGljay4gSW4gdGhpcyBjYXNl
LCB3aGVuIHRoZSBjbGljayB0cmlnZ2VycyBhbm90aGVyIHN0b3JhZ2UgYWNjZXNzCisgICAgICAg
IGNoZWNrLCB3ZSBjYW4gYWxsb3cgdGhlIGNsaWNrIGJlY2F1c2Ugd2Ugbm8gbG9uZ2VyIG5lZWQg
dG8gd2FpdCBmb3IKKyAgICAgICAgaW5mb3JtYXRpb24gZnJvbSB0aGUgbmV0d29yayBwcm9jZXNz
LgorCisgICAgICAgIFdlIG5lZWQgc29tZSBoZXVyaXN0aWMgaW4gdGhlIHdlYiBjb250ZW50IHBy
b2Nlc3MgdG8gaGFuZGxlIHRoZSBjYXNlCisgICAgICAgIG9mIHRoZSB1c2VyIGRlbnlpbmcgc3Rv
cmFnZSBhY2Nlc3MgdG8ga25vdyB3aGV0aGVyIHRvIGFsbG93IGEKKyAgICAgICAgc3ludGhldGlj
IGNsaWNrIHRvIGhhcHBlbi4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIGhhc0Rlbmll
ZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3Mgd2hpY2ggc3RvcmVzIGRvbWFpbnMgaW4gdGhlIHdlYgor
ICAgICAgICBjb250ZW50IHByb2Nlc3Mgd2hpY2ggaGF2ZSBiZWVuIGRlbmllZCBzdG9yYWdlIGFj
Y2VzcyB2aWEgcXVpcmsuIElmCisgICAgICAgIGEgdXNlciBoYXMgcHJldmlvdXNseSBkZW5pZWQg
c3RvcmFnZSBhY2Nlc3MgaW4gdGhhdCB0YWIsIHdlIGRvbid0CisgICAgICAgIHByb21wdCBhZ2Fp
bi4gSWYgdGhleSBvcGVuIGEgbmV3IHRhYiBvciBzZXNzaW9uLCB3ZSB3aWxsIGdpdmUgdGhlbQor
ICAgICAgICBhbm90aGVyIG9wcG9ydHVuaXR5IHRvIGFsbG93L2Rlbnkgc3RvcmFnZSBhY2Nlc3Mu
CisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
OjpkaXNwYXRjaE1vdXNlRXZlbnQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVu
dC5oOgorICAgICAgICBBZGQgYSBjbGllbnQgZnVuY3Rpb24gdG8gY2hlY2sgaWYgdGhlIHBhcmVu
dCBwcm9jZXNzIGlzIGEgZnVsbCB3ZWIKKyAgICAgICAgYnJvd3NlciwgYW5kIHBhc3MgdGhpcyB0
byB0aGUgcGxhY2Ugd2UgYXBwbHkgdGhlIHF1aXJrcy4KKworICAgICAgICAqIGxvYWRlci9SZXNv
dXJjZUxvYWRPYnNlcnZlci5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2
ZXI6OnNldEhhc0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6Omhhc0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3Mg
Y29uc3QpOgorICAgICAgICAqIHBhZ2UvUXVpcmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omhh
c0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6UXVpcmtz
OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0FuZEhhbmRsZUNsaWNrIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlF1aXJrczo6dHJpZ2dlck9wdGlvbmFsU3RvcmFnZUFjY2Vzc1F1aXJrIGNvbnN0KToK
KyAgICAgICAgKiBwYWdlL1F1aXJrcy5oOgorCiAyMDIxLTAzLTE1ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE9wdGltaXplIGNhbnZhcyByZXBhaW50
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAzZDZjYWVmYjNmZjA0YTI3NTA1OGIyNTQxODIwNDg4NTA5NDRjMDhlLi5j
ZDU2NWMxYzdhMmNlNDU1ZDc5ZDdlNTgxYmEzODdiNTA2M2M4ODk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI3IEBACisyMDIxLTAzLTE4ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBw
bGUuY29tPgorCisgICAgICAgIENhbm5vdCBsb2dpbiB0byBtaWNyb3NvZnRvbmxpbmUuY29tIHdp
dGhvdXQgYWxsb3dpbmcgc3RvcmFnZSBhY2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzUxMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzU2
MTkwNTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RGlzYWJsZSB0aGUgc3RvcmFnZSBhY2Nlc3MgcXVpcmsgZm9yIG5vbi1kZWZhdWx0IHdlYiBicm93
c2VycyBhbmQKKyAgICAgICAgYWxsb3cgbG9naW4gb24gc2l0ZXMgZXZlbiBpZiB0aGUgdXNlciBk
ZW5pZXMgc3RvcmFnZSBhY2Nlc3MuIFNlZQorICAgICAgICBXZWJDb3JlIGNoYW5nZWxvZyBmb3Ig
bW9yZSBkZXRhaWxzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xp
ZW50Ojppc1BhcmVudFByb2Nlc3NBRnVsbFdlYkJyb3dzZXIgY29uc3QpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6Omhhc0RlbmllZENyb3Nz
UGFnZVN0b3JhZ2VBY2Nlc3MgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxv
YWRPYnNlcnZlcjo6c2V0SGFzRGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6cGFnZUlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3Nlcik6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCiAyMDIxLTAzLTE1ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0IHIyNzI2MjkgYXMgaXQg
Y2F1c2VkIHJlZ3Jlc3Npb25zIGluIHNvbWUgYXBwcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4
IDdiYmE3Njk3NTg1NjY4Y2UyMDM2OGJkZTM4NGVhYTljZmQwYmFiZDIuLmMyYWEzMzk5ODVjYjFi
OTRjY2E4NDAxOTFlYjY3ODFjZjgzYjBhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTM5
MCw4ICszOTAsMTIgQEAgYm9vbCBFbGVtZW50OjpkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgUGxh
dGZvcm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybUV2ZW50LCBjb25zdAogCiAgICAgaWYgKGRpc3BhdGNo
UG9pbnRlckV2ZW50SWZOZWVkZWQoKnRoaXMsIG1vdXNlRXZlbnQuZ2V0KCksIHBsYXRmb3JtRXZl
bnQsIGRpZE5vdFN3YWxsb3dFdmVudCkgPT0gU2hvdWxkSWdub3JlTW91c2VFdmVudDo6WWVzKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgYXV0byBpc1BhcmVudFByb2Nlc3NBRnVs
bFdlYkJyb3dzZXIgPSBmYWxzZTsKKyAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS5m
cmFtZSgpKQorICAgICAgICBpc1BhcmVudFByb2Nlc3NBRnVsbFdlYkJyb3dzZXIgPSBmcmFtZS0+
bG9hZGVyKCkuY2xpZW50KCkuaXNQYXJlbnRQcm9jZXNzQUZ1bGxXZWJCcm93c2VyKCk7CiAKLSAg
ICBpZiAoUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0OjpTaG91bGRDYW5jZWxFdmVudCA9PSBk
b2N1bWVudCgpLnF1aXJrcygpLnRyaWdnZXJPcHRpb25hbFN0b3JhZ2VBY2Nlc3NRdWlyaygqdGhp
cywgcGxhdGZvcm1FdmVudCwgZXZlbnRUeXBlLCBkZXRhaWwsIHJlbGF0ZWRUYXJnZXQpKQorICAg
IGlmIChRdWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1bHQ6OlNob3VsZENhbmNlbEV2ZW50ID09IGRv
Y3VtZW50KCkucXVpcmtzKCkudHJpZ2dlck9wdGlvbmFsU3RvcmFnZUFjY2Vzc1F1aXJrKCp0aGlz
LCBwbGF0Zm9ybUV2ZW50LCBldmVudFR5cGUsIGRldGFpbCwgcmVsYXRlZFRhcmdldCwgaXNQYXJl
bnRQcm9jZXNzQUZ1bGxXZWJCcm93c2VyKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
QVNTRVJUKCFtb3VzZUV2ZW50LT50YXJnZXQoKSB8fCBtb3VzZUV2ZW50LT50YXJnZXQoKSAhPSBy
ZWxhdGVkVGFyZ2V0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgK
aW5kZXggYTIzMWY4MDQ3ZmUzZmJjZjdmNTdmNDU2MTk0NzQwYmE3MTJmZDNhMy4uMzRlNTE1YWUz
MmU2Yjk1MjY5NjdjOTZmNzdkYjY3ZWE5MzRjMmYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTM4NCw2ICszODQsOCBAQCBwdWJsaWM6CiAjaWYgRU5B
QkxFKFBERktJVF9QTFVHSU4pCiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZVBERlBsdWdpbihj
b25zdCBTdHJpbmcmLCBTdHJpbmdWaWV3KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlm
CisgICAgCisgICAgdmlydHVhbCBib29sIGlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3Nlcigp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5oCmluZGV4IGUwMmJm
ZDhhNGVkZDdjOWI3ZjBlNDMwNTRiYzAzOTM3YjIyZDVkYTAuLmQ3NWE2ZWJjNzQ5ODcxMzJjYzVi
MDg4ZmQzMmM3MGZjODY4NWVhYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRPYnNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRPYnNlcnZlci5oCkBAIC03MSw2ICs3MSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RG9tYWluc1dpdGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8VG9wRnJhbWVE
b21haW4sIFN1YlJlc291cmNlRG9tYWluPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoKTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBoYXNDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YlJlc291cmNlRG9tYWluJiwg
Y29uc3QgVG9wRnJhbWVEb21haW4mKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgYm9vbCBoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIAorICAgIHZpcnR1YWwgdm9pZCBzZXRIYXNEZW5p
ZWRDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8VG9wRnJhbWVEb21haW4sIFN1YlJlc291
cmNlRG9tYWluPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBoYXNEZW5pZWRD
cm9zc1BhZ2VTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YlJlc291cmNlRG9tYWluJiwgY29uc3QgVG9w
RnJhbWVEb21haW4mKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogfTsKICAgICAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcAppbmRleCBiMWM1Zjk2MjRhNThmYmM1
N2VmNDlmZDg5YmJlYzM2ZDBhYmFkNGZjLi5iMTAyYzc0OGY5MzJjOGY4OTU0MzhhN2Y0YTdiZDQ5
ODRiYTkyZmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCkBAIC0xMDM3LDYgKzEwMzcsMTUgQEAg
Ym9vbCBRdWlya3M6Omhhc1N0b3JhZ2VBY2Nlc3NGb3JBbGxMb2dpbkRvbWFpbnMoY29uc3QgSGFz
aFNldDxSZWdpc3RyYWJsZURvbWFpbj4KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGJv
b2wgaGFzRGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyhjb25zdCBIYXNoU2V0PFJlZ2lzdHJh
YmxlRG9tYWluPiYgbG9naW5Eb21haW5zLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJh
bWVEb21haW4pCit7CisgICAgZm9yIChhdXRvJiBsb2dpbkRvbWFpbiA6IGxvZ2luRG9tYWlucykg
eworICAgICAgICBpZiAoUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLmhhc0RlbmllZENy
b3NzUGFnZVN0b3JhZ2VBY2Nlc3MobG9naW5Eb21haW4sIHRvcEZyYW1lRG9tYWluKSkKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGNvbnN0
IFN0cmluZyYgUXVpcmtzOjpCQkNSYWRpb1BsYXllclVSTFN0cmluZygpCiB7CiAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gQkJDUmFkaW9QbGF5ZXJVUkxTdHJpbmcgPSAiaHR0cHM6
Ly93d3cuYmJjLmNvLnVrL3NvdW5kcy9wbGF5ZXIvYmJjX3dvcmxkX3NlcnZpY2UiX3M7CkBAIC0x
MDY0LDM0ICsxMDczLDM3IEBAIHN0YXRpYyBib29sIGlzQkJDUG9wVXBQbGF5ZXJFbGVtZW50KGNv
bnN0IEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgcmV0dXJuIGVsZW1lbnQucGFyZW50RWxlbWVudCgp
LT5jbGFzc05hbWVzKCkuY29udGFpbnMoInBfYXVkaW9CdXR0b25fYnV0dG9uSW5uZXIiKSAmJiBw
YXJlbnRFbGVtZW50LT5wYXJlbnRFbGVtZW50KCktPmNsYXNzTmFtZXMoKS5jb250YWlucygiaGlk
ZGVuIik7CiB9CiAKLVF1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdCBRdWlya3M6OnJlcXVlc3RT
dG9yYWdlQWNjZXNzQW5kSGFuZGxlQ2xpY2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0CitRdWlya3M6OlN0
b3JhZ2VBY2Nlc3NSZXN1bHQgUXVpcmtzOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0FuZEhhbmRsZUNs
aWNrKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxkRGlzcGF0Y2hDbGljayk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIGNvbnN0CiB7CiAgICAgYXV0byBmaXJzdFBhcnR5RG9tYWluID0gbWFwVG9U
b3BEb21haW4obV9kb2N1bWVudC0+dG9wRG9jdW1lbnQoKS51cmwoKSk7CiAgICAgYXV0byBkb21h
aW5zSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID0gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdWJSZXNv
dXJjZURvbWFpbnNJbk5lZWRPZlN0b3JhZ2VBY2Nlc3NGb3JGaXJzdFBhcnR5KGZpcnN0UGFydHlE
b21haW4pOwogICAgIGlmICghZG9tYWluc0luTmVlZE9mU3RvcmFnZUFjY2VzcyB8fCBkb21haW5z
SW5OZWVkT2ZTdG9yYWdlQWNjZXNzLnZhbHVlKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObyk7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFNob3VsZERpc3BhdGNoQ2xpY2s6Ok5vKTsKICAgICAgICAgcmV0dXJuIFF1
aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdDo6U2hvdWxkTm90Q2FuY2VsRXZlbnQ7CiAgICAgfQot
ICAgIGlmIChoYXNTdG9yYWdlQWNjZXNzRm9yQWxsTG9naW5Eb21haW5zKCpkb21haW5zSW5OZWVk
T2ZTdG9yYWdlQWNjZXNzLCBmaXJzdFBhcnR5RG9tYWluKSkgewotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6Tm8pOworICAgIGlmIChoYXNTdG9yYWdl
QWNjZXNzRm9yQWxsTG9naW5Eb21haW5zKCpkb21haW5zSW5OZWVkT2ZTdG9yYWdlQWNjZXNzLCBm
aXJzdFBhcnR5RG9tYWluKQorICAgICAgICB8fCBoYXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdlQWNj
ZXNzKCpkb21haW5zSW5OZWVkT2ZTdG9yYWdlQWNjZXNzLCBmaXJzdFBhcnR5RG9tYWluKSkgewor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTaG91bGREaXNwYXRjaENsaWNrOjpObyk7CiAgICAg
ICAgIHJldHVybiBRdWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1bHQ6OlNob3VsZE5vdENhbmNlbEV2
ZW50OwogICAgIH0KIAogICAgIGF1dG8gZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID0gUmVn
aXN0cmFibGVEb21haW4oKmRvbWFpbnNJbk5lZWRPZlN0b3JhZ2VBY2Nlc3MudmFsdWUoKS5iZWdp
bigpLmdldCgpKTsKIAogICAgIGlmICghbV9kb2N1bWVudCkgewotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6Tm8pOworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihTaG91bGREaXNwYXRjaENsaWNrOjpObyk7CiAgICAgICAgIHJldHVybiBRdWlya3M6
OlN0b3JhZ2VBY2Nlc3NSZXN1bHQ6OlNob3VsZE5vdENhbmNlbEV2ZW50OwogICAgIH0KIAogICAg
IERvY3VtZW50U3RvcmFnZUFjY2Vzczo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NGb3JOb25Eb2N1bWVu
dFF1aXJrKCptX2RvY3VtZW50LCBXVEZNb3ZlKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzcyks
IFtmaXJzdFBhcnR5RG9tYWluLCBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKFN0b3JhZ2VBY2Nlc3NXYXNH
cmFudGVkIHN0b3JhZ2VBY2Nlc3NHcmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHN0b3Jh
Z2VBY2Nlc3NHcmFudGVkID09IFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObykgewotICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RvcmFnZUFjY2Vzc0dyYW50ZWQpOworICAgICAgICAg
ICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLnNldEhhc0RlbmllZENyb3NzUGFnZVN0
b3JhZ2VBY2Nlc3Moe3sgZmlyc3RQYXJ0eURvbWFpbiwgZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNj
ZXNzIH19LCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0g
KCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU2hvdWxkRGlz
cGF0Y2hDbGljazo6WWVzKTsKKyAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAKLSAgICAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLnNldERv
bWFpbnNXaXRoQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyh7eyBmaXJzdFBhcnR5RG9tYWluLCBkb21h
aW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgfX0sIFtzdG9yYWdlQWNjZXNzR3JhbnRlZCwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7Ci0g
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdG9yYWdlQWNjZXNzR3JhbnRlZCk7CisgICAg
ICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWQoKS5zZXREb21haW5zV2l0aENyb3NzUGFn
ZVN0b3JhZ2VBY2Nlc3Moe3sgZmlyc3RQYXJ0eURvbWFpbiwgZG9tYWluSW5OZWVkT2ZTdG9yYWdl
QWNjZXNzIH19LCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTaG91bGREaXNw
YXRjaENsaWNrOjpZZXMpOwogICAgICAgICB9KTsKICAgICB9KTsKICAgICByZXR1cm4gUXVpcmtz
OjpTdG9yYWdlQWNjZXNzUmVzdWx0OjpTaG91bGRDYW5jZWxFdmVudDsKQEAgLTExMDYsOSArMTEx
OCw5IEBAIFJlZ2lzdHJhYmxlRG9tYWluIFF1aXJrczo6bWFwVG9Ub3BEb21haW4oY29uc3QgVVJM
JiB1cmxUb01hcCkKIH0KICNlbmRpZgogCi1RdWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1bHQgUXVp
cmtzOjp0cmlnZ2VyT3B0aW9uYWxTdG9yYWdlQWNjZXNzUXVpcmsoRWxlbWVudCYgZWxlbWVudCwg
Y29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybUV2ZW50LCBjb25zdCBBdG9tU3RyaW5n
JiBldmVudFR5cGUsIGludCBkZXRhaWwsIEVsZW1lbnQqIHJlbGF0ZWRUYXJnZXQpIGNvbnN0CitR
dWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1bHQgUXVpcmtzOjp0cmlnZ2VyT3B0aW9uYWxTdG9yYWdl
QWNjZXNzUXVpcmsoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBw
bGF0Zm9ybUV2ZW50LCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGludCBkZXRhaWwsIEVs
ZW1lbnQqIHJlbGF0ZWRUYXJnZXQsIGJvb2wgaXNQYXJlbnRQcm9jZXNzQUZ1bGxXZWJCcm93c2Vy
KSBjb25zdAogewotICAgIGlmICghRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpyZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRW5hYmxlZCgpKQorICAgIGlmICghRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdz
OjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpIHx8ICFpc1BhcmVudFByb2Nlc3NBRnVs
bFdlYkJyb3dzZXIpCiAgICAgICAgIHJldHVybiBRdWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1bHQ6
OlNob3VsZE5vdENhbmNlbEV2ZW50OwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElT
VElDUykKQEAgLTExODMsMTEgKzExOTUsMTEgQEAgUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0
IFF1aXJrczo6dHJpZ2dlck9wdGlvbmFsU3RvcmFnZUFjY2Vzc1F1aXJrKEVsZW1lbnQmIGUKICAg
ICAgICAgfQogCiAgICAgICAgIGlmIChpc1N0b3JhZ2VBY2Nlc3NRdWlya0RvbWFpbkFuZEVsZW1l
bnQobV9kb2N1bWVudC0+dXJsKCksIGVsZW1lbnQpKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmVx
dWVzdFN0b3JhZ2VBY2Nlc3NBbmRIYW5kbGVDbGljayhbZWxlbWVudCA9IG1ha2VXZWFrUHRyKGVs
ZW1lbnQpLCBwbGF0Zm9ybUV2ZW50LCBldmVudFR5cGUsIGRldGFpbCwgcmVsYXRlZFRhcmdldF0g
KFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIHN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgIHJldHVybiByZXF1ZXN0U3RvcmFnZUFjY2Vzc0FuZEhhbmRsZUNsaWNr
KFtlbGVtZW50ID0gbWFrZVdlYWtQdHIoZWxlbWVudCksIHBsYXRmb3JtRXZlbnQsIGV2ZW50VHlw
ZSwgZGV0YWlsLCByZWxhdGVkVGFyZ2V0XSAoU2hvdWxkRGlzcGF0Y2hDbGljayBzaG91bGREaXNw
YXRjaENsaWNrKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBpZiAoIWVsZW1lbnQpCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgICAgIGlmIChzdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCA9PSBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6WWVzKQorICAgICAgICAg
ICAgICAgIGlmIChzaG91bGREaXNwYXRjaENsaWNrID09IFNob3VsZERpc3BhdGNoQ2xpY2s6Olll
cykKICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC0+ZGlzcGF0Y2hNb3VzZUV2ZW50KHBsYXRm
b3JtRXZlbnQsIGV2ZW50VHlwZSwgZGV0YWlsLCByZWxhdGVkVGFyZ2V0KTsKICAgICAgICAgICAg
IH0pOwogICAgICAgICB9CkBAIC0xMTk3LDggKzEyMDksOCBAQCBRdWlya3M6OlN0b3JhZ2VBY2Nl
c3NSZXN1bHQgUXVpcmtzOjp0cmlnZ2VyT3B0aW9uYWxTdG9yYWdlQWNjZXNzUXVpcmsoRWxlbWVu
dCYgZQogCiAgICAgICAgIC8vIEJCQyBSYWRpb1BsYXllciBjYXNlLgogICAgICAgICBpZiAoaXNC
QkNEb21haW4oZG9tYWluKSAmJiBpc0JCQ1BvcFVwUGxheWVyRWxlbWVudChlbGVtZW50KSkgewot
ICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RTdG9yYWdlQWNjZXNzQW5kSGFuZGxlQ2xpY2soW2Rv
Y3VtZW50ID0gbV9kb2N1bWVudF0gKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIHN0b3JhZ2VBY2Nl
c3NXYXNHcmFudGVkKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBpZiAoIWRvY3VtZW50IHx8
IHN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkID09IFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkOjpObykK
KyAgICAgICAgICAgIHJldHVybiByZXF1ZXN0U3RvcmFnZUFjY2Vzc0FuZEhhbmRsZUNsaWNrKFtk
b2N1bWVudCA9IG1fZG9jdW1lbnRdIChTaG91bGREaXNwYXRjaENsaWNrIHNob3VsZERpc3BhdGNo
Q2xpY2spIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmICghZG9jdW1lbnQgfHwgc2hvdWxk
RGlzcGF0Y2hDbGljayA9PSBTaG91bGREaXNwYXRjaENsaWNrOjpObykKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICAgICAgYXV0byBkb21XaW5kb3cgPSBkb2N1bWVu
dC0+ZG9tV2luZG93KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaAppbmRleCA4MzhkNjVjYzdlYTVmZmFlMmE3
NzBlYzA4Y2NhNjhjMmU2YzQzN2Q0Li5iYmYwYWRkOGJlOTJiNDg3OWRlNjJhZjE0MTdkZjFlNzJm
M2UwN2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmgKQEAgLTExOSw3ICsxMTksOCBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBzaG91bGRBdm9pZFBhc3RpbmdJbWFnZXNBc1dlYkNvbnRlbnQoKSBjb25zdDsKIAog
ICAgIGVudW0gU3RvcmFnZUFjY2Vzc1Jlc3VsdCA6IGJvb2wgeyBTaG91bGROb3RDYW5jZWxFdmVu
dCwgU2hvdWxkQ2FuY2VsRXZlbnQgfTsKLSAgICBTdG9yYWdlQWNjZXNzUmVzdWx0IHRyaWdnZXJP
cHRpb25hbFN0b3JhZ2VBY2Nlc3NRdWlyayhFbGVtZW50JiwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiwgY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBpbnQsIEVsZW1lbnQqKSBjb25zdDsK
KyAgICBlbnVtIFNob3VsZERpc3BhdGNoQ2xpY2sgOiBib29sIHsgTm8sIFllcyB9OworICAgIFN0
b3JhZ2VBY2Nlc3NSZXN1bHQgdHJpZ2dlck9wdGlvbmFsU3RvcmFnZUFjY2Vzc1F1aXJrKEVsZW1l
bnQmLCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5
cGUsIGludCwgRWxlbWVudCosIGJvb2wgaXNQYXJlbnRQcm9jZXNzQUZ1bGxXZWJCcm93c2VyKSBj
b25zdDsKIAogICAgIGJvb2wgbmVlZHNWUDlGdWxsUmFuZ2VGbGFnUXVpcmsoKSBjb25zdDsKICAg
ICBib29sIG5lZWRzSERSUGl4ZWxEZXB0aFF1aXJrKCkgY29uc3Q7CkBAIC0xMzksNyArMTQwLDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGhhc1N0b3JhZ2VBY2Nlc3NGb3JBbGxMb2dpbkRv
bWFpbnMoY29uc3QgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mLCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYpOwogICAgIHN0YXRpYyBjb25zdCBTdHJpbmcmIEJCQ1JhZGlvUGxheWVyVVJMU3Ry
aW5nKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IFN0cmluZyYgc3RhdGljUmFk
aW9QbGF5ZXJVUkxTdHJpbmcoKTsKLSAgICBTdG9yYWdlQWNjZXNzUmVzdWx0IHJlcXVlc3RTdG9y
YWdlQWNjZXNzQW5kSGFuZGxlQ2xpY2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCk+JiYpIGNvbnN0OworICAgIFN0b3JhZ2VBY2Nlc3NSZXN1bHQgcmVxdWVz
dFN0b3JhZ2VBY2Nlc3NBbmRIYW5kbGVDbGljayhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNob3Vs
ZERpc3BhdGNoQ2xpY2spPiYmKSBjb25zdDsKICAgICBzdGF0aWMgUmVnaXN0cmFibGVEb21haW4g
bWFwVG9Ub3BEb21haW4oY29uc3QgVVJMJik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKaW5kZXggMzY1MTIwMjVlY2VhY2RkMzU1YWZmYzU5ZGVlMTRmZGQzYjcwN2Zl
MC4uMWExZDYxYmRiMGUzYzgzNzY3ZDdiOWI5NGEwMjNkNDYyNjBiODkzNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xOTU3LDYgKzE5NTcsMTIgQEAgYm9vbCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6c2hvdWxkVXNlUERGUGx1Z2luKGNvbnN0IFN0cmluZyYgY29udGVudFR5
cGUsIFN0cmluZ1YKIH0KICNlbmRpZgogCitib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojppc1Bh
cmVudFByb2Nlc3NBRnVsbFdlYkJyb3dzZXIoKSBjb25zdAoreworICAgIGF1dG8qIHBhZ2UgPSBt
X2ZyYW1lLT5wYWdlKCk7CisgICAgcmV0dXJuIHBhZ2UgJiYgcGFnZS0+aXNQYXJlbnRQcm9jZXNz
QVdlYkJyb3dzZXIoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBQUkVG
SVhfUEFSQU1FVEVSUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAyMzQ3ZGI5YTg5
ZTFhNjhhMDk2YTA5YTE0ZWM0Nzk1OGEwOTFhODgzLi45NzM2ZGY1YmU3MmFjY2YyNWM5ZjNkZDFk
YzM3MTgzMmQ2NzQ2NTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjk0LDYg
KzI5NCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzaG91bGRVc2VQREZQbHVnaW4oY29uc3QgU3Ry
aW5nJiBjb250ZW50VHlwZSwgU3RyaW5nVmlldyBwYXRoKSBjb25zdCBmaW5hbDsKICNlbmRpZgog
CisgICAgYm9vbCBpc1BhcmVudFByb2Nlc3NBRnVsbFdlYkJyb3dzZXIoKSBjb25zdCBmaW5hbDsK
IH07CiAKIC8vIEFzIGxvbmcgYXMgRW1wdHlGcmFtZUxvYWRlckNsaWVudCBleGlzdHMgaW4gV2Vi
Q29yZSwgdGhpcyBjYW4gcmV0dXJuIG51bGxwdHIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9i
c2VydmVyLmNwcAppbmRleCBmOWI1YzJjMjgyZTg3OWNjMDE4NTE4Y2JiY2IyZjQxZGM3ZGZhYTgz
Li41MGMxNTg3MDI3ZDQ3ZWEwNTA0M2E4NDI4ODJmZDk3NGExNDliNzYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2Jz
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAKQEAgLTQ0Myw2ICs0NDMsMjUgQEAgdm9pZCBXZWJS
ZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2V0RG9tYWluc1dpdGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNz
KEhhc2hNYXA8VG9wRnIKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCitib29sIFdlYlJl
c291cmNlTG9hZE9ic2VydmVyOjpoYXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKGNvbnN0
IFN1YkZyYW1lRG9tYWluJiBzdWJEb21haW4sIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BEb21h
aW4pIGNvbnN0Cit7CisgICAgYXV0byBpdCA9IG1fZG9tYWluc1dpdGhEZW5pZWRTdG9yYWdlQWNj
ZXNzLmZpbmQodG9wRG9tYWluKTsKKworICAgIGlmIChpdCAhPSBtX2RvbWFpbnNXaXRoRGVuaWVk
U3RvcmFnZUFjY2Vzcy5lbmQoKSkKKyAgICAgICAgcmV0dXJuIGl0LT52YWx1ZS5jb250YWlucyhz
dWJEb21haW4pOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFdlYlJlc291cmNlTG9h
ZE9ic2VydmVyOjpzZXRIYXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8VG9w
RnJhbWVEb21haW4sIFN1YkZyYW1lRG9tYWluPiYmIGRvbWFpbnMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBmb3IgKGF1dG8mIHRvcERvbWFp
biA6IGRvbWFpbnMua2V5cygpKSB7CisgICAgICAgIG1fZG9tYWluc1dpdGhEZW5pZWRTdG9yYWdl
QWNjZXNzLmVuc3VyZSh0b3BEb21haW4sIFtdIHsgcmV0dXJuIEhhc2hTZXQ8UmVnaXN0cmFibGVE
b21haW4+IHsgfTsKKyAgICAgICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5hZGQoZG9tYWlucy5n
ZXQodG9wRG9tYWluKSk7CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmgKaW5kZXggNjhjOTYzNTQx
M2VmMmI4ZWFkODk3YzNjZjE1ZGZiMWE0NjkzNWY4MC4uMTRiOTY5MzcwYjI1ZmM3OWEzNzYzZjE1
NmE2MjY5ZDNhNzlhNDc3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmgKQEAg
LTY5LDYgKzY5LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0RG9tYWluc1dpdGhDcm9zc1BhZ2VT
dG9yYWdlQWNjZXNzKEhhc2hNYXA8VG9wRnJhbWVEb21haW4sIFN1YkZyYW1lRG9tYWluPiYmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIGJvb2wgaGFzSGFkVXNlcklu
dGVyYWN0aW9uKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3QgZmluYWw7
CiAgICAgYm9vbCBoYXNDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWlu
JiwgY29uc3QgVG9wRnJhbWVEb21haW4mKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHNldEhhc0Rl
bmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoSGFzaE1hcDxUb3BGcmFtZURvbWFpbiwgU3ViRnJh
bWVEb21haW4+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CisgICAgYm9v
bCBoYXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKGNvbnN0IFN1YkZyYW1lRG9tYWluJiwg
Y29uc3QgVG9wRnJhbWVEb21haW4mKSBjb25zdCBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBXZWJD
b3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiBlbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JS
ZWdpc3RyYWJsZURvbWFpbihjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpOwpAQCAt
ODgsNiArOTAsNyBAQCBwcml2YXRlOgogCiAgICAgSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbj4gbV9kb21haW5zV2l0aFVzZXJJbnRlcmFjdGlvbjsKICAgICBIYXNoTWFwPFRvcEZy
YW1lRG9tYWluLCBIYXNoU2V0PFN1YkZyYW1lRG9tYWluPj4gbV9kb21haW5zV2l0aENyb3NzUGFn
ZVN0b3JhZ2VBY2Nlc3M7CisgICAgSGFzaE1hcDxUb3BGcmFtZURvbWFpbiwgSGFzaFNldDxTdWJG
cmFtZURvbWFpbj4+IG1fZG9tYWluc1dpdGhEZW5pZWRTdG9yYWdlQWNjZXNzOwogI2lmICFSRUxF
QVNFX0xPR19ESVNBQkxFRAogICAgIHVpbnQ2NF90IG1fbG9nZ2luZ0NvdW50ZXIgeyAwIH07CiAg
ICAgc3RhdGljIGJvb2wgc2hvdWxkTG9nVXNlckludGVyYWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAxYTM3N2I0MDhjMzI1MWQ3MDQx
M2QxMjVkZTQ2YTg0NTM3NzVhYzAyLi40YjE0YTY0MjM2ODlmOGRmNWQ1MjE3MDFiZDMyMTBhNDRj
OTBjNTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cApAQCAtMzgyNiw2ICszODI2LDE1IEBAIHZvaWQgV2ViUGFnZTo6cHJlZmVyZW5jZXNEaWRDaGFu
Z2UoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgdXBkYXRlUHJlZmVyZW5j
ZXMoc3RvcmUpOwogfQogCitib29sIFdlYlBhZ2U6OmlzUGFyZW50UHJvY2Vzc0FXZWJCcm93c2Vy
KCkgY29uc3QKK3sKKyNpZiBIQVZFKEFVRElUX1RPS0VOKQorICAgIGlmIChhdXRvKiBjb25uZWN0
aW9uID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSkK
KyAgICAgICAgcmV0dXJuIGlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3Nlcihjb25uZWN0aW9u
LT5nZXRBdWRpdFRva2VuKCkpOworI2VuZGlmCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lk
IFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0
b3JlKQogewogICAgIHVwZGF0ZVByZWZlcmVuY2VzR2VuZXJhdGVkKHN0b3JlKTsKQEAgLTM5MzIs
MTAgKzM5NDEsOCBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlBy
ZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKSAm
JiBQTEFURk9STShJT1MpCi0gICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKSB7Ci0gICAgICAgIGlmIChpc1Bh
cmVudFByb2Nlc3NBRnVsbFdlYkJyb3dzZXIoY29ubmVjdGlvbi0+Z2V0QXVkaXRUb2tlbigpKSkK
LSAgICAgICAgICAgIHNldHRpbmdzLnNldFdlYkF1dGhlbnRpY2F0aW9uRW5hYmxlZCh0cnVlKTsK
LSAgICB9CisgICAgaWYgKGlzUGFyZW50UHJvY2Vzc0FXZWJCcm93c2VyKCkpCisgICAgICAgIHNl
dHRpbmdzLnNldFdlYkF1dGhlbnRpY2F0aW9uRW5hYmxlZCh0cnVlKTsKICNlbmRpZgogCiAjaWYg
RU5BQkxFKFdFQk1fRk9STUFUX1JFQURFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAppbmRleCBjN2Q0ZDE5MDg4NWFiYTdmNTgwMjhhZjJhN2VjMDJlMjY3NzYx
MzhiLi4yMzljNGQ3MGMxYWFmNWFmZTVkMTlhODFhYjMzN2Y3NmUyODcxNWRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xNDEzLDYgKzE0MTMsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRMYXN0TmF2aWdhdGlvbldhc0FwcEJvdW5kKGJvb2wgd2Fz
QXBwQm91bmQpIHsgbV9sYXN0TmF2aWdhdGlvbldhc0FwcEJvdW5kID0gd2FzQXBwQm91bmQ7IH0K
ICAgICB2b2lkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwQm91bmQoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CiAKKyAgICBib29sIGlzUGFyZW50UHJvY2Vzc0FXZWJCcm93c2VyKCkgY29u
c3Q7CisgICAgCiBwcml2YXRlOgogICAgIFdlYlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423761</attachid>
            <date>2021-03-19 12:51:14 -0700</date>
            <delta_ts>2021-03-19 15:33:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223510-20210319125113.patch</filename>
            <type>text/plain</type>
            <size>21491</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWRiYmEwMTg4ZTZlN2Yy
N2ZmYjcxYTM1ZjA5NjFhZTEwNzA2ODQ5OS4uNmJkYTQ3MTJmNDFhZGFhNDE3MzQ0YWVmNTc1NjEz
ODU0NTU1NjAyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIxLTAzLTE4ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIENhbm5vdCBs
b2dpbiB0byBtaWNyb3NvZnRvbmxpbmUuY29tIHdpdGhvdXQgYWxsb3dpbmcgc3RvcmFnZSBhY2Nl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzUx
MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzU2MTkwNTg+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHR3byBj
aGFuZ2VzOiAKKworICAgICAgICAxLiBBY3RpdmF0ZSB0aGUgc3RvcmFnZSBhY2Nlc3MgcXVpcmtz
IGZvciBkZWZhdWx0IGJyb3dzZXJzIG9ubHkuIFRoaXMKKyAgICAgICAgaXMgdGhlIG1haW4gcGxh
Y2Ugd2UgdGVzdCB0aGVtLCBhbmQgY2FuIGxlYWQgdG8gdW5leHBlY3RlZCBiZWhhdmlvciBpbgor
ICAgICAgICBhcHBzIG90aGVyd2lzZS4KKworICAgICAgICAyLiBBbGxvdyBsb2dpbiBldmVuIGlm
IHRoZSB1c2VyIGRlbmllcyBzdG9yYWdlIGFjY2Vzcy4gUHJldmlvdXNseSB3ZQorICAgICAgICB3
ZSB3ZXJlIG5vdCBhbGxvd2luZyB0aGlzIGJlY2F1c2UgaXQgcHJvZHVjZXMgdW5leHBlY3RlZCBi
ZWhhdmlvci4gQnV0LCAKKyAgICAgICAgc2l0ZXMgbGlrZSBsb2dpbi5taWNyb3NvZnRvbmxpbmUu
Y29tIGFyZSB1c2VkIGJ5IG11bHRpcGxlIE1pY3Jvc29mdAorICAgICAgICBsb2dpbiBmbG93cy4g
U2luY2Ugb25seSBhIHN1YnNldCByZXF1aXJlIHN0b3JhZ2UgYWNjZXNzLCBkZW55aW5nIGxvZ2lu
CisgICAgICAgIGFjcm9zcyB0aGUgYm9hcmQgY291bGQgYmUgY29uc2lkZXJlZCByZWdyZXNzaW5n
IGJlaGF2aW9yLgorCisgICAgICAgIFNpbmNlIHN0b3JhZ2UgYWNjZXNzIGRhdGEgaXMgc3RvcmVk
IGluIHRoZSBuZXR3b3JrIHByb2Nlc3MsIHdlCisgICAgICAgIGN1cnJlbnRseSBjYW5jZWwgdGhl
IHVzZXIncyBjbGljayBvbiBxdWlya2VkIHNpdGVzIHdoaWxlIHdlIHdhaXQKKyAgICAgICAgYXN5
bmNyb25vdXNseSBmb3IgdGhlIElQQyByZXNwb25zZS4gSWYgdGhlIHVzZXIgZ3JhbnRzIHN0b3Jh
Z2UgYWNjZXNzLAorICAgICAgICB3ZSBzdG9yZSB0aGlzIGluIHRoZSB3ZWIgY29udGVudCBwcm9j
ZXNzIGFuZCBkaXNwYXRjaCBhIHN5bnRoZXRpYworICAgICAgICBjbGljay4gSW4gdGhpcyBjYXNl
LCB3aGVuIHRoZSBjbGljayB0cmlnZ2VycyBhbm90aGVyIHN0b3JhZ2UgYWNjZXNzCisgICAgICAg
IGNoZWNrLCB3ZSBjYW4gYWxsb3cgdGhlIGNsaWNrIGJlY2F1c2Ugd2Ugbm8gbG9uZ2VyIG5lZWQg
dG8gd2FpdCBmb3IKKyAgICAgICAgaW5mb3JtYXRpb24gZnJvbSB0aGUgbmV0d29yayBwcm9jZXNz
LgorCisgICAgICAgIFdlIG5lZWQgc29tZSBoZXVyaXN0aWMgaW4gdGhlIHdlYiBjb250ZW50IHBy
b2Nlc3MgdG8gaGFuZGxlIHRoZSBjYXNlCisgICAgICAgIG9mIHRoZSB1c2VyIGRlbnlpbmcgc3Rv
cmFnZSBhY2Nlc3MgdG8ga25vdyB3aGV0aGVyIHRvIGFsbG93IGEKKyAgICAgICAgc3ludGhldGlj
IGNsaWNrIHRvIGhhcHBlbi4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzCisgICAgICAgIGhhc0Rlbmll
ZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3Mgd2hpY2ggc3RvcmVzIGRvbWFpbnMgaW4gdGhlIHdlYgor
ICAgICAgICBjb250ZW50IHByb2Nlc3Mgd2hpY2ggaGF2ZSBiZWVuIGRlbmllZCBzdG9yYWdlIGFj
Y2VzcyB2aWEgcXVpcmsuIElmCisgICAgICAgIGEgdXNlciBoYXMgcHJldmlvdXNseSBkZW5pZWQg
c3RvcmFnZSBhY2Nlc3MgaW4gdGhhdCB0YWIsIHdlIGRvbid0CisgICAgICAgIHByb21wdCBhZ2Fp
bi4gSWYgdGhleSBvcGVuIGEgbmV3IHRhYiBvciBzZXNzaW9uLCB3ZSB3aWxsIGdpdmUgdGhlbQor
ICAgICAgICBhbm90aGVyIG9wcG9ydHVuaXR5IHRvIGFsbG93L2Rlbnkgc3RvcmFnZSBhY2Nlc3Mu
CisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
OjpkaXNwYXRjaE1vdXNlRXZlbnQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVu
dC5oOgorICAgICAgICBBZGQgYSBjbGllbnQgZnVuY3Rpb24gdG8gY2hlY2sgaWYgdGhlIHBhcmVu
dCBwcm9jZXNzIGlzIGEgZnVsbCB3ZWIKKyAgICAgICAgYnJvd3NlciwgYW5kIHBhc3MgdGhpcyB0
byB0aGUgcGxhY2Ugd2UgYXBwbHkgdGhlIHF1aXJrcy4KKworICAgICAgICAqIGxvYWRlci9SZXNv
dXJjZUxvYWRPYnNlcnZlci5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkT2JzZXJ2
ZXI6OnNldEhhc0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6Omhhc0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3Mg
Y29uc3QpOgorICAgICAgICAqIHBhZ2UvUXVpcmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omhh
c0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6UXVpcmtz
OjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc0FuZEhhbmRsZUNsaWNrIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlF1aXJrczo6dHJpZ2dlck9wdGlvbmFsU3RvcmFnZUFjY2Vzc1F1aXJrIGNvbnN0KToK
KyAgICAgICAgKiBwYWdlL1F1aXJrcy5oOgorCiAyMDIxLTAzLTE1ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE9wdGltaXplIGNhbnZhcyByZXBhaW50
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAzZDZjYWVmYjNmZjA0YTI3NTA1OGIyNTQxODIwNDg4NTA5NDRjMDhlLi5j
ZDU2NWMxYzdhMmNlNDU1ZDc5ZDdlNTgxYmEzODdiNTA2M2M4ODk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI3IEBACisyMDIxLTAzLTE4ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBw
bGUuY29tPgorCisgICAgICAgIENhbm5vdCBsb2dpbiB0byBtaWNyb3NvZnRvbmxpbmUuY29tIHdp
dGhvdXQgYWxsb3dpbmcgc3RvcmFnZSBhY2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzUxMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzU2
MTkwNTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RGlzYWJsZSB0aGUgc3RvcmFnZSBhY2Nlc3MgcXVpcmsgZm9yIG5vbi1kZWZhdWx0IHdlYiBicm93
c2VycyBhbmQKKyAgICAgICAgYWxsb3cgbG9naW4gb24gc2l0ZXMgZXZlbiBpZiB0aGUgdXNlciBk
ZW5pZXMgc3RvcmFnZSBhY2Nlc3MuIFNlZQorICAgICAgICBXZWJDb3JlIGNoYW5nZWxvZyBmb3Ig
bW9yZSBkZXRhaWxzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xp
ZW50Ojppc1BhcmVudFByb2Nlc3NBRnVsbFdlYkJyb3dzZXIgY29uc3QpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6Omhhc0RlbmllZENyb3Nz
UGFnZVN0b3JhZ2VBY2Nlc3MgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxv
YWRPYnNlcnZlcjo6c2V0SGFzRGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6cGFnZUlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3Nlcik6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCiAyMDIxLTAzLTE1ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0IHIyNzI2MjkgYXMgaXQg
Y2F1c2VkIHJlZ3Jlc3Npb25zIGluIHNvbWUgYXBwcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4
IDdiYmE3Njk3NTg1NjY4Y2UyMDM2OGJkZTM4NGVhYTljZmQwYmFiZDIuLmVmYzI5ODA3YTlkOGZj
NTM1ZmNjYWRiZWUzODQzNTM0Y2E5YjJmYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTM5
MCw4ICszOTAsMTYgQEAgYm9vbCBFbGVtZW50OjpkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgUGxh
dGZvcm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybUV2ZW50LCBjb25zdAogCiAgICAgaWYgKGRpc3BhdGNo
UG9pbnRlckV2ZW50SWZOZWVkZWQoKnRoaXMsIG1vdXNlRXZlbnQuZ2V0KCksIHBsYXRmb3JtRXZl
bnQsIGRpZE5vdFN3YWxsb3dFdmVudCkgPT0gU2hvdWxkSWdub3JlTW91c2VFdmVudDo6WWVzKQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVz
dWx0OjpTaG91bGRDYW5jZWxFdmVudCA9PSBkb2N1bWVudCgpLnF1aXJrcygpLnRyaWdnZXJPcHRp
b25hbFN0b3JhZ2VBY2Nlc3NRdWlyaygqdGhpcywgcGxhdGZvcm1FdmVudCwgZXZlbnRUeXBlLCBk
ZXRhaWwsIHJlbGF0ZWRUYXJnZXQpKQorICAgIAorICAgIGF1dG8gaXNQYXJlbnRQcm9jZXNzQUZ1
bGxXZWJCcm93c2VyID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAo
RnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpKQorICAgICAgICBpc1BhcmVudFByb2Nl
c3NBRnVsbFdlYkJyb3dzZXIgPSBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuaXNQYXJlbnRQcm9j
ZXNzQUZ1bGxXZWJCcm93c2VyKCk7CisjZWxpZiBQTEFURk9STShNQUMpCisgICAgaWYgKE1hY0Fw
cGxpY2F0aW9uOjppc1NhZmFyaSgpKQorICAgICAgICBpc1BhcmVudFByb2Nlc3NBRnVsbFdlYkJy
b3dzZXIgPSB0cnVlOworI2VuZGlmCisgICAgaWYgKFF1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3Vs
dDo6U2hvdWxkQ2FuY2VsRXZlbnQgPT0gZG9jdW1lbnQoKS5xdWlya3MoKS50cmlnZ2VyT3B0aW9u
YWxTdG9yYWdlQWNjZXNzUXVpcmsoKnRoaXMsIHBsYXRmb3JtRXZlbnQsIGV2ZW50VHlwZSwgZGV0
YWlsLCByZWxhdGVkVGFyZ2V0LCBpc1BhcmVudFByb2Nlc3NBRnVsbFdlYkJyb3dzZXIpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBBU1NFUlQoIW1vdXNlRXZlbnQtPnRhcmdldCgpIHx8
IG1vdXNlRXZlbnQtPnRhcmdldCgpICE9IHJlbGF0ZWRUYXJnZXQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBhMjMxZjgwNDdmZTNmYmNmN2Y1N2Y0NTYx
OTQ3NDBiYTcxMmZkM2EzLi4zNGU1MTVhZTMyZTZiOTUyNjk2N2M5NmY3N2RiNjdlYTkzNGMyZjEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMzg0LDYg
KzM4NCw4IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoUERGS0lUX1BMVUdJTikKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkVXNlUERGUGx1Z2luKGNvbnN0IFN0cmluZyYsIFN0cmluZ1ZpZXcpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKKyAgICAKKyAgICB2aXJ0dWFsIGJvb2wgaXNQYXJl
bnRQcm9jZXNzQUZ1bGxXZWJCcm93c2VyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRPYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZE9ic2VydmVyLmgKaW5kZXggZTAyYmZkOGE0ZWRkN2M5YjdmMGU0MzA1NGJjMDM5MzdiMjJk
NWRhMC4uZDc1YTZlYmM3NDk4NzEzMmNjNWIwODhmZDMyYzcwZmM4Njg1ZWFhNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE9ic2VydmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE9ic2VydmVyLmgKQEAgLTcxLDYgKzcxLDkg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXREb21haW5zV2l0aENyb3NzUGFnZVN0b3Jh
Z2VBY2Nlc3MoSGFzaE1hcDxUb3BGcmFtZURvbWFpbiwgU3ViUmVzb3VyY2VEb21haW4+JiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9u
SGFuZGxlcigpOyB9CiAgICAgdmlydHVhbCBib29sIGhhc0Nyb3NzUGFnZVN0b3JhZ2VBY2Nlc3Mo
Y29uc3QgU3ViUmVzb3VyY2VEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGhhc0hhZFVzZXJJbnRlcmFjdGlvbihj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgCisg
ICAgdmlydHVhbCB2b2lkIHNldEhhc0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoSGFzaE1h
cDxUb3BGcmFtZURvbWFpbiwgU3ViUmVzb3VyY2VEb21haW4+JiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcigpOyB9Cisg
ICAgdmlydHVhbCBib29sIGhhc0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoY29uc3QgU3Vi
UmVzb3VyY2VEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3Mu
Y3BwCmluZGV4IGIxYzVmOTYyNGE1OGZiYzU3ZWY0OWZkODliYmVjMzZkMGFiYWQ0ZmMuLmIxMDJj
NzQ4ZjkzMmM4Zjg5NTQzOGE3ZjRhN2JkNDk4NGJhOTJmYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5j
cHAKQEAgLTEwMzcsNiArMTAzNywxNSBAQCBib29sIFF1aXJrczo6aGFzU3RvcmFnZUFjY2Vzc0Zv
ckFsbExvZ2luRG9tYWlucyhjb25zdCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPgogICAgIHJl
dHVybiB0cnVlOwogfQogCitzdGF0aWMgYm9vbCBoYXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdlQWNj
ZXNzKGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+JiBsb2dpbkRvbWFpbnMsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbikKK3sKKyAgICBmb3IgKGF1dG8mIGxv
Z2luRG9tYWluIDogbG9naW5Eb21haW5zKSB7CisgICAgICAgIGlmIChSZXNvdXJjZUxvYWRPYnNl
cnZlcjo6c2hhcmVkKCkuaGFzRGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyhsb2dpbkRvbWFp
biwgdG9wRnJhbWVEb21haW4pKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAg
IHJldHVybiBmYWxzZTsKK30KKwogY29uc3QgU3RyaW5nJiBRdWlya3M6OkJCQ1JhZGlvUGxheWVy
VVJMU3RyaW5nKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBCQkNSYWRp
b1BsYXllclVSTFN0cmluZyA9ICJodHRwczovL3d3dy5iYmMuY28udWsvc291bmRzL3BsYXllci9i
YmNfd29ybGRfc2VydmljZSJfczsKQEAgLTEwNjQsMzQgKzEwNzMsMzcgQEAgc3RhdGljIGJvb2wg
aXNCQkNQb3BVcFBsYXllckVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKICAgICByZXR1
cm4gZWxlbWVudC5wYXJlbnRFbGVtZW50KCktPmNsYXNzTmFtZXMoKS5jb250YWlucygicF9hdWRp
b0J1dHRvbl9idXR0b25Jbm5lciIpICYmIHBhcmVudEVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKS0+
Y2xhc3NOYW1lcygpLmNvbnRhaW5zKCJoaWRkZW4iKTsKIH0KIAotUXVpcmtzOjpTdG9yYWdlQWNj
ZXNzUmVzdWx0IFF1aXJrczo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NBbmRIYW5kbGVDbGljayhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgY29uc3QKK1F1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdCBRdWlya3M6OnJlcXVl
c3RTdG9yYWdlQWNjZXNzQW5kSGFuZGxlQ2xpY2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91
bGREaXNwYXRjaENsaWNrKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKIHsKICAgICBhdXRv
IGZpcnN0UGFydHlEb21haW4gPSBtYXBUb1RvcERvbWFpbihtX2RvY3VtZW50LT50b3BEb2N1bWVu
dCgpLnVybCgpKTsKICAgICBhdXRvIGRvbWFpbnNJbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgPSBOZXR3
b3JrU3RvcmFnZVNlc3Npb246OnN1YlJlc291cmNlRG9tYWluc0luTmVlZE9mU3RvcmFnZUFjY2Vz
c0ZvckZpcnN0UGFydHkoZmlyc3RQYXJ0eURvbWFpbik7CiAgICAgaWYgKCFkb21haW5zSW5OZWVk
T2ZTdG9yYWdlQWNjZXNzIHx8IGRvbWFpbnNJbk5lZWRPZlN0b3JhZ2VBY2Nlc3MudmFsdWUoKS5p
c0VtcHR5KCkpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU3RvcmFnZUFjY2Vzc1dhc0dy
YW50ZWQ6Ok5vKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU2hvdWxkRGlzcGF0Y2hDbGlj
azo6Tm8pOwogICAgICAgICByZXR1cm4gUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0OjpTaG91
bGROb3RDYW5jZWxFdmVudDsKICAgICB9Ci0gICAgaWYgKGhhc1N0b3JhZ2VBY2Nlc3NGb3JBbGxM
b2dpbkRvbWFpbnMoKmRvbWFpbnNJbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIGZpcnN0UGFydHlEb21h
aW4pKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVk
OjpObyk7CisgICAgaWYgKGhhc1N0b3JhZ2VBY2Nlc3NGb3JBbGxMb2dpbkRvbWFpbnMoKmRvbWFp
bnNJbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIGZpcnN0UGFydHlEb21haW4pCisgICAgICAgIHx8IGhh
c0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoKmRvbWFpbnNJbk5lZWRPZlN0b3JhZ2VBY2Nl
c3MsIGZpcnN0UGFydHlEb21haW4pKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFNob3Vs
ZERpc3BhdGNoQ2xpY2s6Ok5vKTsKICAgICAgICAgcmV0dXJuIFF1aXJrczo6U3RvcmFnZUFjY2Vz
c1Jlc3VsdDo6U2hvdWxkTm90Q2FuY2VsRXZlbnQ7CiAgICAgfQogCiAgICAgYXV0byBkb21haW5J
bk5lZWRPZlN0b3JhZ2VBY2Nlc3MgPSBSZWdpc3RyYWJsZURvbWFpbigqZG9tYWluc0luTmVlZE9m
U3RvcmFnZUFjY2Vzcy52YWx1ZSgpLmJlZ2luKCkuZ2V0KCkpOwogCiAgICAgaWYgKCFtX2RvY3Vt
ZW50KSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVk
OjpObyk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZERpc3BhdGNoQ2xpY2s6Ok5v
KTsKICAgICAgICAgcmV0dXJuIFF1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdDo6U2hvdWxkTm90
Q2FuY2VsRXZlbnQ7CiAgICAgfQogCiAgICAgRG9jdW1lbnRTdG9yYWdlQWNjZXNzOjpyZXF1ZXN0
U3RvcmFnZUFjY2Vzc0Zvck5vbkRvY3VtZW50UXVpcmsoKm1fZG9jdW1lbnQsIFdURk1vdmUoZG9t
YWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzKSwgW2ZpcnN0UGFydHlEb21haW4sIGRvbWFpbkluTmVl
ZE9mU3RvcmFnZUFjY2VzcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgc3RvcmFnZUFjY2Vzc0dyYW50ZWQpIG11
dGFibGUgewogICAgICAgICBpZiAoc3RvcmFnZUFjY2Vzc0dyYW50ZWQgPT0gU3RvcmFnZUFjY2Vz
c1dhc0dyYW50ZWQ6Ok5vKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdG9yYWdl
QWNjZXNzR3JhbnRlZCk7CisgICAgICAgICAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVk
KCkuc2V0SGFzRGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyh7eyBmaXJzdFBhcnR5RG9tYWlu
LCBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgfX0sIFtjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihTaG91bGREaXNwYXRjaENsaWNrOjpZZXMpOworICAgICAgICAgICAg
fSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBSZXNvdXJjZUxv
YWRPYnNlcnZlcjo6c2hhcmVkKCkuc2V0RG9tYWluc1dpdGhDcm9zc1BhZ2VTdG9yYWdlQWNjZXNz
KHt7IGZpcnN0UGFydHlEb21haW4sIGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyB9fSwgW3N0
b3JhZ2VBY2Nlc3NHcmFudGVkLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0
b3JhZ2VBY2Nlc3NHcmFudGVkKTsKKyAgICAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJl
ZCgpLnNldERvbWFpbnNXaXRoQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyh7eyBmaXJzdFBhcnR5RG9t
YWluLCBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgfX0sIFtjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKFNob3VsZERpc3BhdGNoQ2xpY2s6Olllcyk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogICAgIHJldHVybiBRdWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1bHQ6OlNob3VsZENh
bmNlbEV2ZW50OwpAQCAtMTEwNiw5ICsxMTE4LDkgQEAgUmVnaXN0cmFibGVEb21haW4gUXVpcmtz
OjptYXBUb1RvcERvbWFpbihjb25zdCBVUkwmIHVybFRvTWFwKQogfQogI2VuZGlmCiAKLVF1aXJr
czo6U3RvcmFnZUFjY2Vzc1Jlc3VsdCBRdWlya3M6OnRyaWdnZXJPcHRpb25hbFN0b3JhZ2VBY2Nl
c3NRdWlyayhFbGVtZW50JiBlbGVtZW50LCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIHBsYXRm
b3JtRXZlbnQsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgaW50IGRldGFpbCwgRWxlbWVu
dCogcmVsYXRlZFRhcmdldCkgY29uc3QKK1F1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdCBRdWly
a3M6OnRyaWdnZXJPcHRpb25hbFN0b3JhZ2VBY2Nlc3NRdWlyayhFbGVtZW50JiBlbGVtZW50LCBj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIHBsYXRmb3JtRXZlbnQsIGNvbnN0IEF0b21TdHJpbmcm
IGV2ZW50VHlwZSwgaW50IGRldGFpbCwgRWxlbWVudCogcmVsYXRlZFRhcmdldCwgYm9vbCBpc1Bh
cmVudFByb2Nlc3NBRnVsbFdlYkJyb3dzZXIpIGNvbnN0CiB7Ci0gICAgaWYgKCFEZXByZWNhdGVk
R2xvYmFsU2V0dGluZ3M6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKCkpCisgICAgaWYg
KCFEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVk
KCkgfHwgIWlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3NlcikKICAgICAgICAgcmV0dXJuIFF1
aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdDo6U2hvdWxkTm90Q2FuY2VsRXZlbnQ7CiAKICNpZiBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpAQCAtMTE4MywxMSArMTE5NSwxMSBAQCBR
dWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1bHQgUXVpcmtzOjp0cmlnZ2VyT3B0aW9uYWxTdG9yYWdl
QWNjZXNzUXVpcmsoRWxlbWVudCYgZQogICAgICAgICB9CiAKICAgICAgICAgaWYgKGlzU3RvcmFn
ZUFjY2Vzc1F1aXJrRG9tYWluQW5kRWxlbWVudChtX2RvY3VtZW50LT51cmwoKSwgZWxlbWVudCkp
IHsKLSAgICAgICAgICAgIHJldHVybiByZXF1ZXN0U3RvcmFnZUFjY2Vzc0FuZEhhbmRsZUNsaWNr
KFtlbGVtZW50ID0gbWFrZVdlYWtQdHIoZWxlbWVudCksIHBsYXRmb3JtRXZlbnQsIGV2ZW50VHlw
ZSwgZGV0YWlsLCByZWxhdGVkVGFyZ2V0XSAoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgc3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQpIG11dGFibGUgeworICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RT
dG9yYWdlQWNjZXNzQW5kSGFuZGxlQ2xpY2soW2VsZW1lbnQgPSBtYWtlV2Vha1B0cihlbGVtZW50
KSwgcGxhdGZvcm1FdmVudCwgZXZlbnRUeXBlLCBkZXRhaWwsIHJlbGF0ZWRUYXJnZXRdIChTaG91
bGREaXNwYXRjaENsaWNrIHNob3VsZERpc3BhdGNoQ2xpY2spIG11dGFibGUgewogICAgICAgICAg
ICAgICAgIGlmICghZWxlbWVudCkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAg
ICAgICAgICAgICAgaWYgKHN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkID09IFN0b3JhZ2VBY2Nlc3NX
YXNHcmFudGVkOjpZZXMpCisgICAgICAgICAgICAgICAgaWYgKHNob3VsZERpc3BhdGNoQ2xpY2sg
PT0gU2hvdWxkRGlzcGF0Y2hDbGljazo6WWVzKQogICAgICAgICAgICAgICAgICAgICBlbGVtZW50
LT5kaXNwYXRjaE1vdXNlRXZlbnQocGxhdGZvcm1FdmVudCwgZXZlbnRUeXBlLCBkZXRhaWwsIHJl
bGF0ZWRUYXJnZXQpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KQEAgLTExOTcsOCArMTIw
OSw4IEBAIFF1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3VsdCBRdWlya3M6OnRyaWdnZXJPcHRpb25h
bFN0b3JhZ2VBY2Nlc3NRdWlyayhFbGVtZW50JiBlCiAKICAgICAgICAgLy8gQkJDIFJhZGlvUGxh
eWVyIGNhc2UuCiAgICAgICAgIGlmIChpc0JCQ0RvbWFpbihkb21haW4pICYmIGlzQkJDUG9wVXBQ
bGF5ZXJFbGVtZW50KGVsZW1lbnQpKSB7Ci0gICAgICAgICAgICByZXR1cm4gcmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NBbmRIYW5kbGVDbGljayhbZG9jdW1lbnQgPSBtX2RvY3VtZW50XSAoU3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQgc3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpIG11dGFibGUgewotICAgICAg
ICAgICAgICAgIGlmICghZG9jdW1lbnQgfHwgc3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQgPT0gU3Rv
cmFnZUFjY2Vzc1dhc0dyYW50ZWQ6Ok5vKQorICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RTdG9y
YWdlQWNjZXNzQW5kSGFuZGxlQ2xpY2soW2RvY3VtZW50ID0gbV9kb2N1bWVudF0gKFNob3VsZERp
c3BhdGNoQ2xpY2sgc2hvdWxkRGlzcGF0Y2hDbGljaykgbXV0YWJsZSB7CisgICAgICAgICAgICAg
ICAgaWYgKCFkb2N1bWVudCB8fCBzaG91bGREaXNwYXRjaENsaWNrID09IFNob3VsZERpc3BhdGNo
Q2xpY2s6Ok5vKQogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgICAgICAg
ICBhdXRvIGRvbVdpbmRvdyA9IGRvY3VtZW50LT5kb21XaW5kb3coKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5o
CmluZGV4IDgzOGQ2NWNjN2VhNWZmYWUyYTc3MGVjMDhjY2E2OGMyZTZjNDM3ZDQuLmJiZjBhZGQ4
YmU5MmI0ODc5ZGU2MmFmMTQxN2RmMWU3MmYzZTA3YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUXVpcmtzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaApAQCAt
MTE5LDcgKzExOSw4IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZEF2b2lkUGFzdGluZ0ltYWdl
c0FzV2ViQ29udGVudCgpIGNvbnN0OwogCiAgICAgZW51bSBTdG9yYWdlQWNjZXNzUmVzdWx0IDog
Ym9vbCB7IFNob3VsZE5vdENhbmNlbEV2ZW50LCBTaG91bGRDYW5jZWxFdmVudCB9OwotICAgIFN0
b3JhZ2VBY2Nlc3NSZXN1bHQgdHJpZ2dlck9wdGlvbmFsU3RvcmFnZUFjY2Vzc1F1aXJrKEVsZW1l
bnQmLCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5
cGUsIGludCwgRWxlbWVudCopIGNvbnN0OworICAgIGVudW0gU2hvdWxkRGlzcGF0Y2hDbGljayA6
IGJvb2wgeyBObywgWWVzIH07CisgICAgU3RvcmFnZUFjY2Vzc1Jlc3VsdCB0cmlnZ2VyT3B0aW9u
YWxTdG9yYWdlQWNjZXNzUXVpcmsoRWxlbWVudCYsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYs
IGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgaW50LCBFbGVtZW50KiwgYm9vbCBpc1BhcmVu
dFByb2Nlc3NBRnVsbFdlYkJyb3dzZXIpIGNvbnN0OwogCiAgICAgYm9vbCBuZWVkc1ZQOUZ1bGxS
YW5nZUZsYWdRdWlyaygpIGNvbnN0OwogICAgIGJvb2wgbmVlZHNIRFJQaXhlbERlcHRoUXVpcmso
KSBjb25zdDsKQEAgLTEzOSw3ICsxNDAsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaGFz
U3RvcmFnZUFjY2Vzc0ZvckFsbExvZ2luRG9tYWlucyhjb25zdCBIYXNoU2V0PFJlZ2lzdHJhYmxl
RG9tYWluPiYsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7CiAgICAgc3RhdGljIGNvbnN0IFN0
cmluZyYgQkJDUmFkaW9QbGF5ZXJVUkxTdHJpbmcoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgY29uc3QgU3RyaW5nJiBzdGF0aWNSYWRpb1BsYXllclVSTFN0cmluZygpOwotICAgIFN0b3Jh
Z2VBY2Nlc3NSZXN1bHQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NBbmRIYW5kbGVDbGljayhDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkKT4mJikgY29uc3Q7CisgICAg
U3RvcmFnZUFjY2Vzc1Jlc3VsdCByZXF1ZXN0U3RvcmFnZUFjY2Vzc0FuZEhhbmRsZUNsaWNrKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxkRGlzcGF0Y2hDbGljayk+JiYpIGNvbnN0OwogICAg
IHN0YXRpYyBSZWdpc3RyYWJsZURvbWFpbiBtYXBUb1RvcERvbWFpbihjb25zdCBVUkwmKTsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCAzNjUxMjAyNWVjZWFj
ZGQzNTVhZmZjNTlkZWUxNGZkZDNiNzA3ZmUwLi4xYTFkNjFiZGIwZTNjODM3NjdkN2I5Yjk0YTAy
M2Q0NjI2MGI4OTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTE5NTcs
NiArMTk1NywxMiBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRVc2VQREZQbHVn
aW4oY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwgU3RyaW5nVgogfQogI2VuZGlmCiAKK2Jvb2wg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3NlcigpIGNv
bnN0Cit7CisgICAgYXV0byogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKKyAgICByZXR1cm4gcGFn
ZSAmJiBwYWdlLT5pc1BhcmVudFByb2Nlc3NBV2ViQnJvd3NlcigpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI3VuZGVmIFBSRUZJWF9QQVJBTUVURVJTCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCmluZGV4IDIzNDdkYjlhODllMWE2OGEwOTZhMDlhMTRlYzQ3OTU4YTA5MWE4ODMu
Ljk3MzZkZjViZTcyYWNjZjI1YzlmM2RkMWRjMzcxODMyZDY3NDY1MGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCkBAIC0yOTQsNiArMjk0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHNo
b3VsZFVzZVBERlBsdWdpbihjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBTdHJpbmdWaWV3IHBh
dGgpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKKyAgICBib29sIGlzUGFyZW50UHJvY2Vzc0FGdWxs
V2ViQnJvd3NlcigpIGNvbnN0IGZpbmFsOwogfTsKIAogLy8gQXMgbG9uZyBhcyBFbXB0eUZyYW1l
TG9hZGVyQ2xpZW50IGV4aXN0cyBpbiBXZWJDb3JlLCB0aGlzIGNhbiByZXR1cm4gbnVsbHB0ci4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJS
ZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCmluZGV4IGY5YjVjMmMyODJlODc5
Y2MwMTg1MThjYmJjYjJmNDFkYzdkZmFhODMuLjUwYzE1ODcwMjdkNDdlYTA1MDQzYTg0Mjg4MmZk
OTc0YTE0OWI3NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcApAQCAt
NDQzLDYgKzQ0MywyNSBAQCB2b2lkIFdlYlJlc291cmNlTG9hZE9ic2VydmVyOjpzZXREb21haW5z
V2l0aENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoSGFzaE1hcDxUb3BGcgogICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7CiB9CiAKK2Jvb2wgV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6Omhhc0RlbmllZENy
b3NzUGFnZVN0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mIHN1YkRvbWFpbiwgY29u
c3QgVG9wRnJhbWVEb21haW4mIHRvcERvbWFpbikgY29uc3QKK3sKKyAgICBhdXRvIGl0ID0gbV9k
b21haW5zV2l0aERlbmllZFN0b3JhZ2VBY2Nlc3MuZmluZCh0b3BEb21haW4pOworCisgICAgaWYg
KGl0ICE9IG1fZG9tYWluc1dpdGhEZW5pZWRTdG9yYWdlQWNjZXNzLmVuZCgpKQorICAgICAgICBy
ZXR1cm4gaXQtPnZhbHVlLmNvbnRhaW5zKHN1YkRvbWFpbik7CisKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNldEhhc0RlbmllZENyb3NzUGFn
ZVN0b3JhZ2VBY2Nlc3MoSGFzaE1hcDxUb3BGcmFtZURvbWFpbiwgU3ViRnJhbWVEb21haW4+JiYg
ZG9tYWlucywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIGZvciAoYXV0byYgdG9wRG9tYWluIDogZG9tYWlucy5rZXlzKCkpIHsKKyAgICAgICAg
bV9kb21haW5zV2l0aERlbmllZFN0b3JhZ2VBY2Nlc3MuZW5zdXJlKHRvcERvbWFpbiwgW10geyBy
ZXR1cm4gSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4geyB9OworICAgICAgICAgICAgfSkuaXRl
cmF0b3ItPnZhbHVlLmFkZChkb21haW5zLmdldCh0b3BEb21haW4pKTsKKyAgICB9CisgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAv
LyBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2Fk
T2JzZXJ2ZXIuaAppbmRleCA2OGM5NjM1NDEzZWYyYjhlYWQ4OTdjM2NmMTVkZmIxYTQ2OTM1Zjgw
Li4xNGI5NjkzNzBiMjVmYzc5YTM3NjNmMTU2YTYyNjlkM2E3OWE0Nzc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2Jz
ZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaApAQCAtNjksNiArNjksOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXREb21haW5zV2l0aENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoSGFzaE1hcDxUb3BGcmFtZURv
bWFpbiwgU3ViRnJhbWVEb21haW4+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmlu
YWw7CiAgICAgYm9vbCBoYXNIYWRVc2VySW50ZXJhY3Rpb24oY29uc3QgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4mKSBjb25zdCBmaW5hbDsKICAgICBib29sIGhhc0Nyb3NzUGFnZVN0b3JhZ2VB
Y2Nlc3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYpIGNvbnN0
IGZpbmFsOworICAgIHZvaWQgc2V0SGFzRGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2VzcyhIYXNo
TWFwPFRvcEZyYW1lRG9tYWluLCBTdWJGcmFtZURvbWFpbj4mJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKSBmaW5hbDsKKyAgICBib29sIGhhc0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nl
c3MoY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYpIGNvbnN0IGZp
bmFsOwogCiBwcml2YXRlOgogICAgIFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3MmIGVu
c3VyZVJlc291cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluJik7CkBAIC04OCw2ICs5MCw3IEBAIHByaXZhdGU6CiAKICAgICBI
YXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBtX2RvbWFpbnNXaXRoVXNlckludGVy
YWN0aW9uOwogICAgIEhhc2hNYXA8VG9wRnJhbWVEb21haW4sIEhhc2hTZXQ8U3ViRnJhbWVEb21h
aW4+PiBtX2RvbWFpbnNXaXRoQ3Jvc3NQYWdlU3RvcmFnZUFjY2VzczsKKyAgICBIYXNoTWFwPFRv
cEZyYW1lRG9tYWluLCBIYXNoU2V0PFN1YkZyYW1lRG9tYWluPj4gbV9kb21haW5zV2l0aERlbmll
ZFN0b3JhZ2VBY2Nlc3M7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdWludDY0X3Qg
bV9sb2dnaW5nQ291bnRlciB7IDAgfTsKICAgICBzdGF0aWMgYm9vbCBzaG91bGRMb2dVc2VySW50
ZXJhY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IDFhMzc3YjQwOGMzMjUxZDcwNDEzZDEyNWRlNDZhODQ1Mzc3NWFjMDIuLjRiMTRhNjQy
MzY4OWY4ZGY1ZDUyMTcwMWJkMzIxMGE0NGM5MGM1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zODI2LDYgKzM4MjYsMTUgQEAgdm9pZCBX
ZWJQYWdlOjpwcmVmZXJlbmNlc0RpZENoYW5nZShjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBz
dG9yZSkKICAgICB1cGRhdGVQcmVmZXJlbmNlcyhzdG9yZSk7CiB9CiAKK2Jvb2wgV2ViUGFnZTo6
aXNQYXJlbnRQcm9jZXNzQVdlYkJyb3dzZXIoKSBjb25zdAoreworI2lmIEhBVkUoQVVESVRfVE9L
RU4pCisgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKQorICAgICAgICByZXR1cm4gaXNQYXJlbnRQcm9jZXNz
QUZ1bGxXZWJCcm93c2VyKGNvbm5lY3Rpb24tPmdldEF1ZGl0VG9rZW4oKSk7CisjZW5kaWYKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29u
c3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiB7CiAgICAgdXBkYXRlUHJlZmVyZW5jZXNH
ZW5lcmF0ZWQoc3RvcmUpOwpAQCAtMzkzMiwxMCArMzk0MSw4IEBAIHZvaWQgV2ViUGFnZTo6dXBk
YXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAjZW5kaWYK
IAogI2lmIEVOQUJMRShXRUJfQVVUSE4pICYmIFBMQVRGT1JNKElPUykKLSAgICBpZiAoYXV0byog
Y29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCkpIHsKLSAgICAgICAgaWYgKGlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3Nlcihjb25u
ZWN0aW9uLT5nZXRBdWRpdFRva2VuKCkpKQotICAgICAgICAgICAgc2V0dGluZ3Muc2V0V2ViQXV0
aGVudGljYXRpb25FbmFibGVkKHRydWUpOwotICAgIH0KKyAgICBpZiAoaXNQYXJlbnRQcm9jZXNz
QVdlYkJyb3dzZXIoKSkKKyAgICAgICAgc2V0dGluZ3Muc2V0V2ViQXV0aGVudGljYXRpb25FbmFi
bGVkKHRydWUpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCTV9GT1JNQVRfUkVBREVSKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGM3ZDRkMTkwODg1
YWJhN2Y1ODAyOGFmMmE3ZWMwMmUyNjc3NjEzOGIuLjIzOWM0ZDcwYzFhYWY1YWZlNWQxOWE4MWFi
MzM3Zjc2ZTI4NzE1ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKQEAgLTE0MTMsNiArMTQxMyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExhc3ROYXZp
Z2F0aW9uV2FzQXBwQm91bmQoYm9vbCB3YXNBcHBCb3VuZCkgeyBtX2xhc3ROYXZpZ2F0aW9uV2Fz
QXBwQm91bmQgPSB3YXNBcHBCb3VuZDsgfQogICAgIHZvaWQgbGFzdE5hdmlnYXRpb25XYXNBcHBC
b3VuZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAorICAgIGJvb2wgaXNQYXJl
bnRQcm9jZXNzQVdlYkJyb3dzZXIoKSBjb25zdDsKKyAgICAKIHByaXZhdGU6CiAgICAgV2ViUGFn
ZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmKTsK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423786</attachid>
            <date>2021-03-19 15:33:56 -0700</date>
            <delta_ts>2021-03-19 16:27:51 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-223510-20210319153356.patch</filename>
            <type>text/plain</type>
            <size>21523</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWRiYmEwMTg4ZTZlN2Yy
N2ZmYjcxYTM1ZjA5NjFhZTEwNzA2ODQ5OS4uYTMwMzM3NjExYzc1YmU4MzI1N2JiNWRlMjA5NDEx
OTA1NTBkZjdhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTAzLTE4ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIENhbm5vdCBs
b2dpbiB0byBtaWNyb3NvZnRvbmxpbmUuY29tIHdpdGhvdXQgYWxsb3dpbmcgc3RvcmFnZSBhY2Nl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzUx
MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzU2MTkwNTg+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgSm9obiBXaWxhbmRlci4KKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgdHdvIGNo
YW5nZXM6IAorCisgICAgICAgIDEuIEFjdGl2YXRlIHRoZSBzdG9yYWdlIGFjY2VzcyBxdWlya3Mg
Zm9yIGRlZmF1bHQgYnJvd3NlcnMgb25seS4gVGhpcworICAgICAgICBpcyB0aGUgbWFpbiBwbGFj
ZSB3ZSB0ZXN0IHRoZW0sIGFuZCBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW9yIGluCisg
ICAgICAgIGFwcHMgb3RoZXJ3aXNlLgorCisgICAgICAgIDIuIERvZXNuJ3QgY2FuY2VsIHRoZSBj
bGljayBldmVuIGlmIHRoZSB1c2VyIGRlbmllcyBzdG9yYWdlIGFjY2Vzcy4KKyAgICAgICAgUHJl
dmlvdXNseSB3ZSB3ZSB3ZXJlIG5vdCBhbGxvd2luZyB0aGUgY2xpY2sgYmVjYXVzZSBpdCBwcm9k
dWNlcworICAgICAgICB1bmV4cGVjdGVkIGJlaGF2aW9yLiBCdXQsIHNpdGVzIGxpa2UgbG9naW4u
bWljcm9zb2Z0b25saW5lLmNvbSBhcmUgdXNlZAorICAgICAgICBieSBtdWx0aXBsZSBNaWNyb3Nv
ZnQgbG9naW4gZmxvd3MuIFNpbmNlIG9ubHkgYSBzdWJzZXQgcmVxdWlyZSBzdG9yYWdlCisgICAg
ICAgIGFjY2VzcywgY2FuY2VsaW5nIHRoZSBjbGljayBhY3Jvc3MgdGhlIGJvYXJkIGNvdWxkIGJl
IGNvbnNpZGVyZWQKKyAgICAgICAgcmVncmVzc2luZyBiZWhhdmlvci4KKworICAgICAgICBTaW5j
ZSBzdG9yYWdlIGFjY2VzcyBkYXRhIGlzIHN0b3JlZCBpbiB0aGUgbmV0d29yayBwcm9jZXNzLCB3
ZQorICAgICAgICBjdXJyZW50bHkgY2FuY2VsIHRoZSB1c2VyJ3MgY2xpY2sgb24gcXVpcmtlZCBz
aXRlcyB3aGlsZSB3ZSB3YWl0CisgICAgICAgIGFzeW5jcm9ub3VzbHkgZm9yIHRoZSBJUEMgcmVz
cG9uc2UuIElmIHRoZSB1c2VyIGdyYW50cyBzdG9yYWdlIGFjY2VzcywKKyAgICAgICAgd2Ugc3Rv
cmUgdGhpcyBpbiB0aGUgd2ViIGNvbnRlbnQgcHJvY2VzcyBhbmQgZGlzcGF0Y2ggYSBzeW50aGV0
aWMKKyAgICAgICAgY2xpY2suIEluIHRoaXMgY2FzZSwgd2hlbiB0aGUgY2xpY2sgdHJpZ2dlcnMg
YW5vdGhlciBzdG9yYWdlIGFjY2VzcworICAgICAgICBjaGVjaywgd2UgY2FuIGFsbG93IHRoZSBj
bGljayBiZWNhdXNlIHdlIG5vIGxvbmdlciBuZWVkIHRvIHdhaXQgZm9yCisgICAgICAgIGluZm9y
bWF0aW9uIGZyb20gdGhlIG5ldHdvcmsgcHJvY2Vzcy4KKworICAgICAgICBXZSBuZWVkIHNvbWUg
aGV1cmlzdGljIGluIHRoZSB3ZWIgY29udGVudCBwcm9jZXNzIHRvIGhhbmRsZSB0aGUgY2FzZQor
ICAgICAgICBvZiB0aGUgdXNlciBkZW55aW5nIHN0b3JhZ2UgYWNjZXNzIHRvIGtub3cgd2hldGhl
ciB0byBhbGxvdyBhCisgICAgICAgIHN5bnRoZXRpYyBjbGljayB0byBoYXBwZW4uIFRoaXMgcGF0
Y2ggaW50cm9kdWNlcworICAgICAgICBoYXNEZW5pZWRDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzIHdo
aWNoIHN0b3JlcyBkb21haW5zIGluIHRoZSB3ZWIKKyAgICAgICAgY29udGVudCBwcm9jZXNzIHdo
aWNoIGhhdmUgYmVlbiBkZW5pZWQgc3RvcmFnZSBhY2Nlc3MgdmlhIHF1aXJrLiBJZgorICAgICAg
ICBhIHVzZXIgaGFzIHByZXZpb3VzbHkgZGVuaWVkIHN0b3JhZ2UgYWNjZXNzIGluIHRoYXQgd2Vi
IGNvbnRlbnQKKyAgICAgICAgcHJvY2Vzcywgd2UgZG9uJ3QgcHJvbXB0IGFnYWluLiBBIG5ldyB3
ZWIgY29udGVudCBwcm9jZXNzIHdpbGwgZ2l2ZSB0aGVtCisgICAgICAgIGFub3RoZXIgb3Bwb3J0
dW5pdHkgdG8gYWxsb3cvZGVueSBzdG9yYWdlIGFjY2Vzcy4KKworICAgICAgICAqIGRvbS9FbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRpc3BhdGNoTW91c2VFdmVudCk6
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIEFkZCBhIGNs
aWVudCBmdW5jdGlvbiB0byBjaGVjayBpZiB0aGUgcGFyZW50IHByb2Nlc3MgaXMgYSBmdWxsIHdl
YgorICAgICAgICBicm93c2VyLCBhbmQgcGFzcyB0aGlzIHRvIHRoZSBwbGFjZSB3ZSBhcHBseSB0
aGUgcXVpcmtzLgorCisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZE9ic2VydmVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2V0SGFzRGVuaWVkQ3Jvc3NQ
YWdlU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZl
cjo6aGFzRGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2VzcyBjb25zdCk6CisgICAgICAgICogcGFn
ZS9RdWlya3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGFzRGVuaWVkQ3Jvc3NQYWdlU3RvcmFn
ZUFjY2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpRdWlya3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNz
QW5kSGFuZGxlQ2xpY2sgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UXVpcmtzOjp0cmlnZ2Vy
T3B0aW9uYWxTdG9yYWdlQWNjZXNzUXVpcmsgY29uc3QpOgorICAgICAgICAqIHBhZ2UvUXVpcmtz
Lmg6CisKIDIwMjEtMDMtMTUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgT3B0aW1pemUgY2FudmFzIHJlcGFpbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNkNmNhZWZi
M2ZmMDRhMjc1MDU4YjI1NDE4MjA0ODg1MDk0NGMwOGUuLjA3OGFjMmQwOWZjNmM1MjZkZDZhNjUw
OWU1ZTRhMzYzNjMwMTFhNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjEtMDMtMTgg
IEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2Fu
bm90IGxvZ2luIHRvIG1pY3Jvc29mdG9ubGluZS5jb20gd2l0aG91dCBhbGxvd2luZyBzdG9yYWdl
IGFjY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjIzNTEwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTYxOTA1OD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBKb2huIFdpbGFuZGVyLgorCisgICAgICAgIERpc2FibGUgdGhlIHN0b3JhZ2UgYWNj
ZXNzIHF1aXJrIGZvciBub24tZGVmYXVsdCB3ZWIgYnJvd3NlcnMgYW5kCisgICAgICAgIGRvbid0
IGNhbmNlbCB0aGUgbG9naW4gY2xpY2sgb24gc2l0ZXMgZXZlbiBpZiB0aGUgdXNlciBkZW5pZXMg
c3RvcmFnZQorICAgICAgICBhY2Nlc3MuIFNlZSBXZWJDb3JlIGNoYW5nZWxvZyBmb3IgbW9yZSBk
ZXRhaWxzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50Ojpp
c1BhcmVudFByb2Nlc3NBRnVsbFdlYkJyb3dzZXIgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6Omhhc0RlbmllZENyb3NzUGFnZVN0
b3JhZ2VBY2Nlc3MgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRPYnNl
cnZlcjo6c2V0SGFzRGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6cGFnZUlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3Nlcik6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorCiAyMDIxLTAzLTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0IHIyNzI2MjkgYXMgaXQgY2F1c2Vk
IHJlZ3Jlc3Npb25zIGluIHNvbWUgYXBwcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDdiYmE3
Njk3NTg1NjY4Y2UyMDM2OGJkZTM4NGVhYTljZmQwYmFiZDIuLjJlMzEwODU3MGVhNWE1MzI5YWY1
YTYzODE1MThkNDA1MGNlMGJlZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTM5MCw4ICsz
OTAsMTUgQEAgYm9vbCBFbGVtZW50OjpkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgUGxhdGZvcm1N
b3VzZUV2ZW50JiBwbGF0Zm9ybUV2ZW50LCBjb25zdAogCiAgICAgaWYgKGRpc3BhdGNoUG9pbnRl
ckV2ZW50SWZOZWVkZWQoKnRoaXMsIG1vdXNlRXZlbnQuZ2V0KCksIHBsYXRmb3JtRXZlbnQsIGRp
ZE5vdFN3YWxsb3dFdmVudCkgPT0gU2hvdWxkSWdub3JlTW91c2VFdmVudDo6WWVzKQogICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0OjpT
aG91bGRDYW5jZWxFdmVudCA9PSBkb2N1bWVudCgpLnF1aXJrcygpLnRyaWdnZXJPcHRpb25hbFN0
b3JhZ2VBY2Nlc3NRdWlyaygqdGhpcywgcGxhdGZvcm1FdmVudCwgZXZlbnRUeXBlLCBkZXRhaWws
IHJlbGF0ZWRUYXJnZXQpKQorICAgIAorICAgIGF1dG8gaXNQYXJlbnRQcm9jZXNzQUZ1bGxXZWJC
cm93c2VyID0gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAoRnJhbWUq
IGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpKQorICAgICAgICBpc1BhcmVudFByb2Nlc3NBRnVs
bFdlYkJyb3dzZXIgPSBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuaXNQYXJlbnRQcm9jZXNzQUZ1
bGxXZWJCcm93c2VyKCk7CisjZWxpZiBQTEFURk9STShNQUMpCisgICAgaXNQYXJlbnRQcm9jZXNz
QUZ1bGxXZWJCcm93c2VyID0gTWFjQXBwbGljYXRpb246OmlzU2FmYXJpKCk7CisjZW5kaWYKKyAg
ICBpZiAoUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0OjpTaG91bGRDYW5jZWxFdmVudCA9PSBk
b2N1bWVudCgpLnF1aXJrcygpLnRyaWdnZXJPcHRpb25hbFN0b3JhZ2VBY2Nlc3NRdWlyaygqdGhp
cywgcGxhdGZvcm1FdmVudCwgZXZlbnRUeXBlLCBkZXRhaWwsIHJlbGF0ZWRUYXJnZXQsIGlzUGFy
ZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3NlcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IEFTU0VSVCghbW91c2VFdmVudC0+dGFyZ2V0KCkgfHwgbW91c2VFdmVudC0+dGFyZ2V0KCkgIT0g
cmVsYXRlZFRhcmdldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5o
CmluZGV4IGEyMzFmODA0N2ZlM2ZiY2Y3ZjU3ZjQ1NjE5NDc0MGJhNzEyZmQzYTMuLjM0ZTUxNWFl
MzJlNmI5NTI2OTY3Yzk2Zjc3ZGI2N2VhOTM0YzJmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0zODQsNiArMzg0LDggQEAgcHVibGljOgogI2lmIEVO
QUJMRShQREZLSVRfUExVR0lOKQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VQREZQbHVnaW4o
Y29uc3QgU3RyaW5nJiwgU3RyaW5nVmlldykgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRp
ZgorICAgIAorICAgIHZpcnR1YWwgYm9vbCBpc1BhcmVudFByb2Nlc3NBRnVsbFdlYkJyb3dzZXIo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE9ic2VydmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaAppbmRleCBlMDJi
ZmQ4YTRlZGQ3YzliN2YwZTQzMDU0YmMwMzkzN2IyMmQ1ZGEwLi5kNzVhNmViYzc0OTg3MTMyY2M1
YjA4OGZkMzJjNzBmYzg2ODVlYWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkT2JzZXJ2ZXIuaApAQCAtNzEsNiArNzEsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldERvbWFpbnNXaXRoQ3Jvc3NQYWdlU3RvcmFnZUFjY2VzcyhIYXNoTWFwPFRvcEZyYW1l
RG9tYWluLCBTdWJSZXNvdXJjZURvbWFpbj4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKCk7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaGFzQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJSZXNvdXJjZURvbWFpbiYs
IGNvbnN0IFRvcEZyYW1lRG9tYWluJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaGFzSGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJikg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SGFzRGVu
aWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2VzcyhIYXNoTWFwPFRvcEZyYW1lRG9tYWluLCBTdWJSZXNv
dXJjZURvbWFpbj4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFzRGVuaWVk
Q3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJSZXNvdXJjZURvbWFpbiYsIGNvbnN0IFRv
cEZyYW1lRG9tYWluJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAgICAgCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKaW5kZXggYjFjNWY5NjI0YTU4ZmJj
NTdlZjQ5ZmQ4OWJiZWMzNmQwYWJhZDRmYy4uYjEwMmM3NDhmOTMyYzhmODk1NDM4YTdmNGE3YmQ0
OTg0YmE5MmZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcApAQCAtMTAzNyw2ICsxMDM3LDE1IEBA
IGJvb2wgUXVpcmtzOjpoYXNTdG9yYWdlQWNjZXNzRm9yQWxsTG9naW5Eb21haW5zKGNvbnN0IEhh
c2hTZXQ8UmVnaXN0cmFibGVEb21haW4+CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyBi
b29sIGhhc0RlbmllZENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3MoY29uc3QgSGFzaFNldDxSZWdpc3Ry
YWJsZURvbWFpbj4mIGxvZ2luRG9tYWlucywgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZy
YW1lRG9tYWluKQoreworICAgIGZvciAoYXV0byYgbG9naW5Eb21haW4gOiBsb2dpbkRvbWFpbnMp
IHsKKyAgICAgICAgaWYgKFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWQoKS5oYXNEZW5pZWRD
cm9zc1BhZ2VTdG9yYWdlQWNjZXNzKGxvZ2luRG9tYWluLCB0b3BGcmFtZURvbWFpbikpCisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBjb25z
dCBTdHJpbmcmIFF1aXJrczo6QkJDUmFkaW9QbGF5ZXJVUkxTdHJpbmcoKQogewogICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IEJCQ1JhZGlvUGxheWVyVVJMU3RyaW5nID0gImh0dHBz
Oi8vd3d3LmJiYy5jby51ay9zb3VuZHMvcGxheWVyL2JiY193b3JsZF9zZXJ2aWNlIl9zOwpAQCAt
MTA2NCwzNCArMTA3MywzNyBAQCBzdGF0aWMgYm9vbCBpc0JCQ1BvcFVwUGxheWVyRWxlbWVudChj
b25zdCBFbGVtZW50JiBlbGVtZW50KQogICAgIHJldHVybiBlbGVtZW50LnBhcmVudEVsZW1lbnQo
KS0+Y2xhc3NOYW1lcygpLmNvbnRhaW5zKCJwX2F1ZGlvQnV0dG9uX2J1dHRvbklubmVyIikgJiYg
cGFyZW50RWxlbWVudC0+cGFyZW50RWxlbWVudCgpLT5jbGFzc05hbWVzKCkuY29udGFpbnMoImhp
ZGRlbiIpOwogfQogCi1RdWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1bHQgUXVpcmtzOjpyZXF1ZXN0
U3RvcmFnZUFjY2Vzc0FuZEhhbmRsZUNsaWNrKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFn
ZUFjY2Vzc1dhc0dyYW50ZWQpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAorUXVpcmtzOjpT
dG9yYWdlQWNjZXNzUmVzdWx0IFF1aXJrczo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NBbmRIYW5kbGVD
bGljayhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNob3VsZERpc3BhdGNoQ2xpY2spPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKSBjb25zdAogewogICAgIGF1dG8gZmlyc3RQYXJ0eURvbWFpbiA9IG1hcFRv
VG9wRG9tYWluKG1fZG9jdW1lbnQtPnRvcERvY3VtZW50KCkudXJsKCkpOwogICAgIGF1dG8gZG9t
YWluc0luTmVlZE9mU3RvcmFnZUFjY2VzcyA9IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3ViUmVz
b3VyY2VEb21haW5zSW5OZWVkT2ZTdG9yYWdlQWNjZXNzRm9yRmlyc3RQYXJ0eShmaXJzdFBhcnR5
RG9tYWluKTsKICAgICBpZiAoIWRvbWFpbnNJbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgfHwgZG9tYWlu
c0luTmVlZE9mU3RvcmFnZUFjY2Vzcy52YWx1ZSgpLmlzRW1wdHkoKSkgewotICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6Tm8pOworICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihTaG91bGREaXNwYXRjaENsaWNrOjpObyk7CiAgICAgICAgIHJldHVybiBR
dWlya3M6OlN0b3JhZ2VBY2Nlc3NSZXN1bHQ6OlNob3VsZE5vdENhbmNlbEV2ZW50OwogICAgIH0K
LSAgICBpZiAoaGFzU3RvcmFnZUFjY2Vzc0ZvckFsbExvZ2luRG9tYWlucygqZG9tYWluc0luTmVl
ZE9mU3RvcmFnZUFjY2VzcywgZmlyc3RQYXJ0eURvbWFpbikpIHsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6Ok5vKTsKKyAgICBpZiAoaGFzU3RvcmFn
ZUFjY2Vzc0ZvckFsbExvZ2luRG9tYWlucygqZG9tYWluc0luTmVlZE9mU3RvcmFnZUFjY2Vzcywg
Zmlyc3RQYXJ0eURvbWFpbikKKyAgICAgICAgfHwgaGFzRGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFj
Y2VzcygqZG9tYWluc0luTmVlZE9mU3RvcmFnZUFjY2VzcywgZmlyc3RQYXJ0eURvbWFpbikpIHsK
KyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU2hvdWxkRGlzcGF0Y2hDbGljazo6Tm8pOwogICAg
ICAgICByZXR1cm4gUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0OjpTaG91bGROb3RDYW5jZWxF
dmVudDsKICAgICB9CiAKICAgICBhdXRvIGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyA9IFJl
Z2lzdHJhYmxlRG9tYWluKCpkb21haW5zSW5OZWVkT2ZTdG9yYWdlQWNjZXNzLnZhbHVlKCkuYmVn
aW4oKS5nZXQoKSk7CiAKICAgICBpZiAoIW1fZG9jdW1lbnQpIHsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6Ok5vKTsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoU2hvdWxkRGlzcGF0Y2hDbGljazo6Tm8pOwogICAgICAgICByZXR1cm4gUXVpcmtz
OjpTdG9yYWdlQWNjZXNzUmVzdWx0OjpTaG91bGROb3RDYW5jZWxFdmVudDsKICAgICB9CiAKICAg
ICBEb2N1bWVudFN0b3JhZ2VBY2Nlc3M6OnJlcXVlc3RTdG9yYWdlQWNjZXNzRm9yTm9uRG9jdW1l
bnRRdWlyaygqbV9kb2N1bWVudCwgV1RGTW92ZShkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3Mp
LCBbZmlyc3RQYXJ0eURvbWFpbiwgZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShTdG9yYWdlQWNjZXNzV2Fz
R3JhbnRlZCBzdG9yYWdlQWNjZXNzR3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChzdG9y
YWdlQWNjZXNzR3JhbnRlZCA9PSBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6Tm8pIHsKLSAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0b3JhZ2VBY2Nlc3NHcmFudGVkKTsKKyAgICAgICAg
ICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWQoKS5zZXRIYXNEZW5pZWRDcm9zc1BhZ2VT
dG9yYWdlQWNjZXNzKHt7IGZpcnN0UGFydHlEb21haW4sIGRvbWFpbkluTmVlZE9mU3RvcmFnZUFj
Y2VzcyB9fSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
ICgpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZERp
c3BhdGNoQ2xpY2s6Olllcyk7CisgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogCi0gICAgICAgIFJlc291cmNlTG9hZE9ic2VydmVyOjpzaGFyZWQoKS5zZXRE
b21haW5zV2l0aENyb3NzUGFnZVN0b3JhZ2VBY2Nlc3Moe3sgZmlyc3RQYXJ0eURvbWFpbiwgZG9t
YWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzIH19LCBbc3RvcmFnZUFjY2Vzc0dyYW50ZWQsIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewot
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RvcmFnZUFjY2Vzc0dyYW50ZWQpOworICAg
ICAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkKCkuc2V0RG9tYWluc1dpdGhDcm9zc1Bh
Z2VTdG9yYWdlQWNjZXNzKHt7IGZpcnN0UGFydHlEb21haW4sIGRvbWFpbkluTmVlZE9mU3RvcmFn
ZUFjY2VzcyB9fSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildICgpIG11dGFibGUgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU2hvdWxkRGlz
cGF0Y2hDbGljazo6WWVzKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAgICAgcmV0dXJuIFF1aXJr
czo6U3RvcmFnZUFjY2Vzc1Jlc3VsdDo6U2hvdWxkQ2FuY2VsRXZlbnQ7CkBAIC0xMTA2LDkgKzEx
MTgsOSBAQCBSZWdpc3RyYWJsZURvbWFpbiBRdWlya3M6Om1hcFRvVG9wRG9tYWluKGNvbnN0IFVS
TCYgdXJsVG9NYXApCiB9CiAjZW5kaWYKIAotUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0IFF1
aXJrczo6dHJpZ2dlck9wdGlvbmFsU3RvcmFnZUFjY2Vzc1F1aXJrKEVsZW1lbnQmIGVsZW1lbnQs
IGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgcGxhdGZvcm1FdmVudCwgY29uc3QgQXRvbVN0cmlu
ZyYgZXZlbnRUeXBlLCBpbnQgZGV0YWlsLCBFbGVtZW50KiByZWxhdGVkVGFyZ2V0KSBjb25zdAor
UXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0IFF1aXJrczo6dHJpZ2dlck9wdGlvbmFsU3RvcmFn
ZUFjY2Vzc1F1aXJrKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYg
cGxhdGZvcm1FdmVudCwgY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBpbnQgZGV0YWlsLCBF
bGVtZW50KiByZWxhdGVkVGFyZ2V0LCBib29sIGlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3Nl
cikgY29uc3QKIHsKLSAgICBpZiAoIURlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6cmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQoKSkKKyAgICBpZiAoIURlcHJlY2F0ZWRHbG9iYWxTZXR0aW5n
czo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSB8fCAhaXNQYXJlbnRQcm9jZXNzQUZ1
bGxXZWJCcm93c2VyKQogICAgICAgICByZXR1cm4gUXVpcmtzOjpTdG9yYWdlQWNjZXNzUmVzdWx0
OjpTaG91bGROb3RDYW5jZWxFdmVudDsKIAogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJ
U1RJQ1MpCkBAIC0xMTgzLDExICsxMTk1LDExIEBAIFF1aXJrczo6U3RvcmFnZUFjY2Vzc1Jlc3Vs
dCBRdWlya3M6OnRyaWdnZXJPcHRpb25hbFN0b3JhZ2VBY2Nlc3NRdWlyayhFbGVtZW50JiBlCiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAoaXNTdG9yYWdlQWNjZXNzUXVpcmtEb21haW5BbmRFbGVt
ZW50KG1fZG9jdW1lbnQtPnVybCgpLCBlbGVtZW50KSkgewotICAgICAgICAgICAgcmV0dXJuIHJl
cXVlc3RTdG9yYWdlQWNjZXNzQW5kSGFuZGxlQ2xpY2soW2VsZW1lbnQgPSBtYWtlV2Vha1B0cihl
bGVtZW50KSwgcGxhdGZvcm1FdmVudCwgZXZlbnRUeXBlLCBkZXRhaWwsIHJlbGF0ZWRUYXJnZXRd
IChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCBzdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCkgbXV0YWJs
ZSB7CisgICAgICAgICAgICByZXR1cm4gcmVxdWVzdFN0b3JhZ2VBY2Nlc3NBbmRIYW5kbGVDbGlj
ayhbZWxlbWVudCA9IG1ha2VXZWFrUHRyKGVsZW1lbnQpLCBwbGF0Zm9ybUV2ZW50LCBldmVudFR5
cGUsIGRldGFpbCwgcmVsYXRlZFRhcmdldF0gKFNob3VsZERpc3BhdGNoQ2xpY2sgc2hvdWxkRGlz
cGF0Y2hDbGljaykgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYgKCFlbGVtZW50KQogICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgICAgICBpZiAoc3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQgPT0gU3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQ6OlllcykKKyAgICAgICAg
ICAgICAgICBpZiAoc2hvdWxkRGlzcGF0Y2hDbGljayA9PSBTaG91bGREaXNwYXRjaENsaWNrOjpZ
ZXMpCiAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQtPmRpc3BhdGNoTW91c2VFdmVudChwbGF0
Zm9ybUV2ZW50LCBldmVudFR5cGUsIGRldGFpbCwgcmVsYXRlZFRhcmdldCk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfQpAQCAtMTE5Nyw4ICsxMjA5LDggQEAgUXVpcmtzOjpTdG9yYWdlQWNj
ZXNzUmVzdWx0IFF1aXJrczo6dHJpZ2dlck9wdGlvbmFsU3RvcmFnZUFjY2Vzc1F1aXJrKEVsZW1l
bnQmIGUKIAogICAgICAgICAvLyBCQkMgUmFkaW9QbGF5ZXIgY2FzZS4KICAgICAgICAgaWYgKGlz
QkJDRG9tYWluKGRvbWFpbikgJiYgaXNCQkNQb3BVcFBsYXllckVsZW1lbnQoZWxlbWVudCkpIHsK
LSAgICAgICAgICAgIHJldHVybiByZXF1ZXN0U3RvcmFnZUFjY2Vzc0FuZEhhbmRsZUNsaWNrKFtk
b2N1bWVudCA9IG1fZG9jdW1lbnRdIChTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCBzdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFkb2N1bWVudCB8
fCBzdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCA9PSBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZDo6Tm8p
CisgICAgICAgICAgICByZXR1cm4gcmVxdWVzdFN0b3JhZ2VBY2Nlc3NBbmRIYW5kbGVDbGljayhb
ZG9jdW1lbnQgPSBtX2RvY3VtZW50XSAoU2hvdWxkRGlzcGF0Y2hDbGljayBzaG91bGREaXNwYXRj
aENsaWNrKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoIWRvY3VtZW50IHx8IHNob3Vs
ZERpc3BhdGNoQ2xpY2sgPT0gU2hvdWxkRGlzcGF0Y2hDbGljazo6Tm8pCiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKIAogICAgICAgICAgICAgICAgIGF1dG8gZG9tV2luZG93ID0gZG9jdW1l
bnQtPmRvbVdpbmRvdygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3Mu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmgKaW5kZXggODM4ZDY1Y2M3ZWE1ZmZhZTJh
NzcwZWMwOGNjYTY4YzJlNmM0MzdkNC4uYmJmMGFkZDhiZTkyYjQ4NzlkZTYyYWYxNDE3ZGYxZTcy
ZjNlMDdhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5oCkBAIC0xMTksNyArMTE5LDggQEAgcHVibGljOgog
ICAgIGJvb2wgc2hvdWxkQXZvaWRQYXN0aW5nSW1hZ2VzQXNXZWJDb250ZW50KCkgY29uc3Q7CiAK
ICAgICBlbnVtIFN0b3JhZ2VBY2Nlc3NSZXN1bHQgOiBib29sIHsgU2hvdWxkTm90Q2FuY2VsRXZl
bnQsIFNob3VsZENhbmNlbEV2ZW50IH07Ci0gICAgU3RvcmFnZUFjY2Vzc1Jlc3VsdCB0cmlnZ2Vy
T3B0aW9uYWxTdG9yYWdlQWNjZXNzUXVpcmsoRWxlbWVudCYsIGNvbnN0IFBsYXRmb3JtTW91c2VF
dmVudCYsIGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwgaW50LCBFbGVtZW50KikgY29uc3Q7
CisgICAgZW51bSBTaG91bGREaXNwYXRjaENsaWNrIDogYm9vbCB7IE5vLCBZZXMgfTsKKyAgICBT
dG9yYWdlQWNjZXNzUmVzdWx0IHRyaWdnZXJPcHRpb25hbFN0b3JhZ2VBY2Nlc3NRdWlyayhFbGVt
ZW50JiwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgY29uc3QgQXRvbVN0cmluZyYgZXZlbnRU
eXBlLCBpbnQsIEVsZW1lbnQqLCBib29sIGlzUGFyZW50UHJvY2Vzc0FGdWxsV2ViQnJvd3Nlcikg
Y29uc3Q7CiAKICAgICBib29sIG5lZWRzVlA5RnVsbFJhbmdlRmxhZ1F1aXJrKCkgY29uc3Q7CiAg
ICAgYm9vbCBuZWVkc0hEUlBpeGVsRGVwdGhRdWlyaygpIGNvbnN0OwpAQCAtMTM5LDcgKzE0MCw3
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBoYXNTdG9yYWdlQWNjZXNzRm9yQWxsTG9naW5E
b21haW5zKGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+JiwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mKTsKICAgICBzdGF0aWMgY29uc3QgU3RyaW5nJiBCQkNSYWRpb1BsYXllclVSTFN0
cmluZygpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBjb25zdCBTdHJpbmcmIHN0YXRpY1Jh
ZGlvUGxheWVyVVJMU3RyaW5nKCk7Ci0gICAgU3RvcmFnZUFjY2Vzc1Jlc3VsdCByZXF1ZXN0U3Rv
cmFnZUFjY2Vzc0FuZEhhbmRsZUNsaWNrKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFj
Y2Vzc1dhc0dyYW50ZWQpPiYmKSBjb25zdDsKKyAgICBTdG9yYWdlQWNjZXNzUmVzdWx0IHJlcXVl
c3RTdG9yYWdlQWNjZXNzQW5kSGFuZGxlQ2xpY2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91
bGREaXNwYXRjaENsaWNrKT4mJikgY29uc3Q7CiAgICAgc3RhdGljIFJlZ2lzdHJhYmxlRG9tYWlu
IG1hcFRvVG9wRG9tYWluKGNvbnN0IFVSTCYpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCmluZGV4IDM2NTEyMDI1ZWNlYWNkZDM1NWFmZmM1OWRlZTE0ZmRkM2I3MDdm
ZTAuLjFhMWQ2MWJkYjBlM2M4Mzc2N2Q3YjliOTRhMDIzZDQ2MjYwYjg5MzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTk1Nyw2ICsxOTU3LDEyIEBAIGJvb2wgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OnNob3VsZFVzZVBERlBsdWdpbihjb25zdCBTdHJpbmcmIGNvbnRlbnRU
eXBlLCBTdHJpbmdWCiB9CiAjZW5kaWYKIAorYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6aXNQ
YXJlbnRQcm9jZXNzQUZ1bGxXZWJCcm93c2VyKCkgY29uc3QKK3sKKyAgICBhdXRvKiBwYWdlID0g
bV9mcmFtZS0+cGFnZSgpOworICAgIHJldHVybiBwYWdlICYmIHBhZ2UtPmlzUGFyZW50UHJvY2Vz
c0FXZWJCcm93c2VyKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUFJF
RklYX1BBUkFNRVRFUlMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMjM0N2RiOWE4
OWUxYTY4YTA5NmEwOWExNGVjNDc5NThhMDkxYTg4My4uOTczNmRmNWJlNzJhY2NmMjVjOWYzZGQx
ZGMzNzE4MzJkNjc0NjUwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTI5NCw2
ICsyOTQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgc2hvdWxkVXNlUERGUGx1Z2luKGNvbnN0IFN0
cmluZyYgY29udGVudFR5cGUsIFN0cmluZ1ZpZXcgcGF0aCkgY29uc3QgZmluYWw7CiAjZW5kaWYK
IAorICAgIGJvb2wgaXNQYXJlbnRQcm9jZXNzQUZ1bGxXZWJCcm93c2VyKCkgY29uc3QgZmluYWw7
CiB9OwogCiAvLyBBcyBsb25nIGFzIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgZXhpc3RzIGluIFdl
YkNvcmUsIHRoaXMgY2FuIHJldHVybiBudWxscHRyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9ic2VydmVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRP
YnNlcnZlci5jcHAKaW5kZXggZjliNWMyYzI4MmU4NzljYzAxODUxOGNiYmNiMmY0MWRjN2RmYWE4
My4uNTBjMTU4NzAyN2Q0N2VhMDUwNDNhODQyODgyZmQ5NzRhMTQ5Yjc2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZE9i
c2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCkBAIC00NDMsNiArNDQzLDI1IEBAIHZvaWQgV2Vi
UmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNldERvbWFpbnNXaXRoQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vz
cyhIYXNoTWFwPFRvcEZyCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAorYm9vbCBXZWJS
ZXNvdXJjZUxvYWRPYnNlcnZlcjo6aGFzRGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyhjb25z
dCBTdWJGcmFtZURvbWFpbiYgc3ViRG9tYWluLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRG9t
YWluKSBjb25zdAoreworICAgIGF1dG8gaXQgPSBtX2RvbWFpbnNXaXRoRGVuaWVkU3RvcmFnZUFj
Y2Vzcy5maW5kKHRvcERvbWFpbik7CisKKyAgICBpZiAoaXQgIT0gbV9kb21haW5zV2l0aERlbmll
ZFN0b3JhZ2VBY2Nlc3MuZW5kKCkpCisgICAgICAgIHJldHVybiBpdC0+dmFsdWUuY29udGFpbnMo
c3ViRG9tYWluKTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBXZWJSZXNvdXJjZUxv
YWRPYnNlcnZlcjo6c2V0SGFzRGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2VzcyhIYXNoTWFwPFRv
cEZyYW1lRG9tYWluLCBTdWJGcmFtZURvbWFpbj4mJiBkb21haW5zLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgZm9yIChhdXRvJiB0b3BEb21h
aW4gOiBkb21haW5zLmtleXMoKSkgeworICAgICAgICBtX2RvbWFpbnNXaXRoRGVuaWVkU3RvcmFn
ZUFjY2Vzcy5lbnN1cmUodG9wRG9tYWluLCBbXSB7IHJldHVybiBIYXNoU2V0PFJlZ2lzdHJhYmxl
RG9tYWluPiB7IH07CisgICAgICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWUuYWRkKGRvbWFpbnMu
Z2V0KHRvcERvbWFpbikpOworICAgIH0KKyAgICBjb21wbGV0aW9uSGFuZGxlcigpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oCmluZGV4IDY4Yzk2MzU0
MTNlZjJiOGVhZDg5N2MzY2YxNWRmYjFhNDY5MzVmODAuLjE0Yjk2OTM3MGIyNWZjNzlhMzc2M2Yx
NTZhNjI2OWQzYTc5YTQ3NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oCkBA
IC02OSw2ICs2OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERvbWFpbnNXaXRoQ3Jvc3NQYWdl
U3RvcmFnZUFjY2VzcyhIYXNoTWFwPFRvcEZyYW1lRG9tYWluLCBTdWJGcmFtZURvbWFpbj4mJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAgICBib29sIGhhc0hhZFVzZXJJ
bnRlcmFjdGlvbihjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0IGZpbmFs
OwogICAgIGJvb2wgaGFzQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJikgY29uc3QgZmluYWw7CisgICAgdm9pZCBzZXRIYXNE
ZW5pZWRDcm9zc1BhZ2VTdG9yYWdlQWNjZXNzKEhhc2hNYXA8VG9wRnJhbWVEb21haW4sIFN1YkZy
YW1lRG9tYWluPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOworICAgIGJv
b2wgaGFzRGVuaWVkQ3Jvc3NQYWdlU3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFpbiYs
IGNvbnN0IFRvcEZyYW1lRG9tYWluJikgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgV2Vi
Q29yZTo6UmVzb3VyY2VMb2FkU3RhdGlzdGljcyYgZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9y
UmVnaXN0cmFibGVEb21haW4oY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mKTsKQEAg
LTg4LDYgKzkwLDcgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4+IG1fZG9tYWluc1dpdGhVc2VySW50ZXJhY3Rpb247CiAgICAgSGFzaE1hcDxUb3BG
cmFtZURvbWFpbiwgSGFzaFNldDxTdWJGcmFtZURvbWFpbj4+IG1fZG9tYWluc1dpdGhDcm9zc1Bh
Z2VTdG9yYWdlQWNjZXNzOworICAgIEhhc2hNYXA8VG9wRnJhbWVEb21haW4sIEhhc2hTZXQ8U3Vi
RnJhbWVEb21haW4+PiBtX2RvbWFpbnNXaXRoRGVuaWVkU3RvcmFnZUFjY2VzczsKICNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKICAgICB1aW50NjRfdCBtX2xvZ2dpbmdDb3VudGVyIHsgMCB9Owog
ICAgIHN0YXRpYyBib29sIHNob3VsZExvZ1VzZXJJbnRlcmFjdGlvbjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMWEzNzdiNDA4YzMyNTFkNzA0
MTNkMTI1ZGU0NmE4NDUzNzc1YWMwMi4uNGIxNGE2NDIzNjg5ZjhkZjVkNTIxNzAxYmQzMjEwYTQ0
YzkwYzUzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTM4MjYsNiArMzgyNiwxNSBAQCB2b2lkIFdlYlBhZ2U6OnByZWZlcmVuY2VzRGlkQ2hh
bmdlKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogICAgIHVwZGF0ZVByZWZlcmVu
Y2VzKHN0b3JlKTsKIH0KIAorYm9vbCBXZWJQYWdlOjppc1BhcmVudFByb2Nlc3NBV2ViQnJvd3Nl
cigpIGNvbnN0Cit7CisjaWYgSEFWRShBVURJVF9UT0tFTikKKyAgICBpZiAoYXV0byogY29ubmVj
dGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkp
CisgICAgICAgIHJldHVybiBpc1BhcmVudFByb2Nlc3NBRnVsbFdlYkJyb3dzZXIoY29ubmVjdGlv
bi0+Z2V0QXVkaXRUb2tlbigpKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9p
ZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBz
dG9yZSkKIHsKICAgICB1cGRhdGVQcmVmZXJlbmNlc0dlbmVyYXRlZChzdG9yZSk7CkBAIC0zOTMy
LDEwICszOTQxLDggQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQ
cmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQl9BVVRITikg
JiYgUExBVEZPUk0oSU9TKQotICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSkgewotICAgICAgICBpZiAoaXNQ
YXJlbnRQcm9jZXNzQUZ1bGxXZWJCcm93c2VyKGNvbm5lY3Rpb24tPmdldEF1ZGl0VG9rZW4oKSkp
Ci0gICAgICAgICAgICBzZXR0aW5ncy5zZXRXZWJBdXRoZW50aWNhdGlvbkVuYWJsZWQodHJ1ZSk7
Ci0gICAgfQorICAgIGlmIChpc1BhcmVudFByb2Nlc3NBV2ViQnJvd3NlcigpKQorICAgICAgICBz
ZXR0aW5ncy5zZXRXZWJBdXRoZW50aWNhdGlvbkVuYWJsZWQodHJ1ZSk7CiAjZW5kaWYKIAogI2lm
IEVOQUJMRShXRUJNX0ZPUk1BVF9SRUFERVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKaW5kZXggYzdkNGQxOTA4ODVhYmE3ZjU4MDI4YWYyYTdlYzAyZTI2Nzc2
MTM4Yi4uMjM5YzRkNzBjMWFhZjVhZmU1ZDE5YTgxYWIzMzdmNzZlMjg3MTVkYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTQxMyw2ICsxNDEzLDgg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0TGFzdE5hdmlnYXRpb25XYXNBcHBCb3VuZChib29sIHdh
c0FwcEJvdW5kKSB7IG1fbGFzdE5hdmlnYXRpb25XYXNBcHBCb3VuZCA9IHdhc0FwcEJvdW5kOyB9
CiAgICAgdm9pZCBsYXN0TmF2aWdhdGlvbldhc0FwcEJvdW5kKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpOwogCisgICAgYm9vbCBpc1BhcmVudFByb2Nlc3NBV2ViQnJvd3NlcigpIGNv
bnN0OworICAgIAogcHJpdmF0ZToKICAgICBXZWJQYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>